tedious 15.0.0-beta.1 → 15.1.0

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.
package/lib/message-io.js CHANGED
@@ -62,7 +62,12 @@ class MessageIO extends _events.EventEmitter {
62
62
  } // Negotiate TLS encryption.
63
63
 
64
64
 
65
- startTls(secureContext, hostname, trustServerCertificate) {
65
+ startTls(credentialsDetails, hostname, trustServerCertificate) {
66
+ if (!credentialsDetails.maxVersion || !['TLSv1.2', 'TLSv1.1', 'TLSv1'].includes(credentialsDetails.maxVersion)) {
67
+ credentialsDetails.maxVersion = 'TLSv1.2';
68
+ }
69
+
70
+ const secureContext = tls.createSecureContext(credentialsDetails);
66
71
  return new Promise((resolve, reject) => {
67
72
  const duplexpair = new _nativeDuplexpair.default();
68
73
  const securePair = this.securePair = {
@@ -181,4 +186,4 @@ class MessageIO extends _events.EventEmitter {
181
186
  var _default = MessageIO;
182
187
  exports.default = _default;
183
188
  module.exports = MessageIO;
184
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJzZWN1cmVQYWlyIiwiaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IiLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwiT3V0Z29pbmdNZXNzYWdlU3RyZWFtIiwicGlwZSIsImFyZ3MiLCJsZW5ndGgiLCJsb2ciLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsInNlY3VyZUNvbnRleHQiLCJob3N0bmFtZSIsInRydXN0U2VydmVyQ2VydGlmaWNhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImR1cGxleHBhaXIiLCJEdXBsZXhQYWlyIiwidGxzIiwiY29ubmVjdCIsInNvY2tldDEiLCJzZXJ2ZXJuYW1lIiwicmVqZWN0VW5hdXRob3JpemVkIiwiZW5jcnlwdGVkIiwic29ja2V0MiIsIm9uU2VjdXJlQ29ubmVjdCIsInJlbW92ZUxpc3RlbmVyIiwib25SZWFkYWJsZSIsIm9uRXJyb3IiLCJvbmNlIiwiZXJyIiwiZGVzdHJveSIsImNpcGhlciIsImdldENpcGhlciIsIm5hbWUiLCJ2ZXJzaW9uIiwiZW1pdCIsInVucGlwZSIsIm1lc3NhZ2UiLCJNZXNzYWdlIiwidHlwZSIsIlRZUEUiLCJQUkVMT0dJTiIsInJlc2V0Q29ubmVjdGlvbiIsImNodW5rIiwicmVhZCIsIndyaXRlIiwiZW5kIiwicmVhZE1lc3NhZ2UiLCJ0aGVuIiwicmVzcG9uc2UiLCJkYXRhIiwiY2F0Y2giLCJzZW5kTWVzc2FnZSIsInBhY2tldFR5cGUiLCJyZXN1bHQiLCJuZXh0IiwiZG9uZSIsIkVycm9yIiwidmFsdWUiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL21lc3NhZ2UtaW8udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IER1cGxleFBhaXIgZnJvbSAnbmF0aXZlLWR1cGxleHBhaXInO1xuXG5pbXBvcnQgeyBEdXBsZXggfSBmcm9tICdzdHJlYW0nO1xuaW1wb3J0ICogYXMgdGxzIGZyb20gJ3Rscyc7XG5pbXBvcnQgeyBTb2NrZXQgfSBmcm9tICduZXQnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuaW1wb3J0IERlYnVnIGZyb20gJy4vZGVidWcnO1xuXG5pbXBvcnQgTWVzc2FnZSBmcm9tICcuL21lc3NhZ2UnO1xuaW1wb3J0IHsgVFlQRSB9IGZyb20gJy4vcGFja2V0JztcblxuaW1wb3J0IEluY29taW5nTWVzc2FnZVN0cmVhbSBmcm9tICcuL2luY29taW5nLW1lc3NhZ2Utc3RyZWFtJztcbmltcG9ydCBPdXRnb2luZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9vdXRnb2luZy1tZXNzYWdlLXN0cmVhbSc7XG5cbmNsYXNzIE1lc3NhZ2VJTyBleHRlbmRzIEV2ZW50RW1pdHRlciB7XG4gIHNvY2tldDogU29ja2V0O1xuICBkZWJ1ZzogRGVidWc7XG5cbiAgdGxzTmVnb3RpYXRpb25Db21wbGV0ZTogYm9vbGVhbjtcblxuICBwcml2YXRlIGluY29taW5nTWVzc2FnZVN0cmVhbTogSW5jb21pbmdNZXNzYWdlU3RyZWFtO1xuICBvdXRnb2luZ01lc3NhZ2VTdHJlYW06IE91dGdvaW5nTWVzc2FnZVN0cmVhbTtcblxuICBzZWN1cmVQYWlyPzoge1xuICAgIGNsZWFydGV4dDogdGxzLlRMU1NvY2tldDtcbiAgICBlbmNyeXB0ZWQ6IER1cGxleDtcbiAgfVxuXG4gIGluY29taW5nTWVzc2FnZUl0ZXJhdG9yOiBBc3luY0l0ZXJhYmxlSXRlcmF0b3I8TWVzc2FnZT47XG5cbiAgY29uc3RydWN0b3Ioc29ja2V0OiBTb2NrZXQsIHBhY2tldFNpemU6IG51bWJlciwgZGVidWc6IERlYnVnKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc29ja2V0ID0gc29ja2V0O1xuICAgIHRoaXMuZGVidWcgPSBkZWJ1ZztcblxuICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IGZhbHNlO1xuXG4gICAgdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0gPSBuZXcgSW5jb21pbmdNZXNzYWdlU3RyZWFtKHRoaXMuZGVidWcpO1xuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IgPSB0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbVtTeW1ib2wuYXN5bmNJdGVyYXRvcl0oKTtcblxuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtID0gbmV3IE91dGdvaW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnLCB7IHBhY2tldFNpemU6IHBhY2tldFNpemUgfSk7XG5cbiAgICB0aGlzLnNvY2tldC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5waXBlKHRoaXMuc29ja2V0KTtcbiAgfVxuXG4gIHBhY2tldFNpemUoLi4uYXJnczogW251bWJlcl0pIHtcbiAgICBpZiAoYXJncy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWNrZXRTaXplID0gYXJnc1swXTtcbiAgICAgIHRoaXMuZGVidWcubG9nKCdQYWNrZXQgc2l6ZSBjaGFuZ2VkIGZyb20gJyArIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgKyAnIHRvICcgKyBwYWNrZXRTaXplKTtcbiAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUgPSBwYWNrZXRTaXplO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnNlY3VyZVBhaXIpIHtcbiAgICAgIHRoaXMuc2VjdXJlUGFpci5jbGVhcnRleHQuc2V0TWF4U2VuZEZyYWdtZW50KHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBhY2tldFNpemUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplO1xuICB9XG5cbiAgLy8gTmVnb3RpYXRlIFRMUyBlbmNyeXB0aW9uLlxuICBzdGFydFRscyhzZWN1cmVDb250ZXh0OiB0bHMuU2VjdXJlQ29udGV4dCwgaG9zdG5hbWU6IHN0cmluZywgdHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZTogYm9vbGVhbikge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBjb25zdCBkdXBsZXhwYWlyID0gbmV3IER1cGxleFBhaXIoKTtcbiAgICAgIGNvbnN0IHNlY3VyZVBhaXIgPSB0aGlzLnNlY3VyZVBhaXIgPSB7XG4gICAgICAgIGNsZWFydGV4dDogdGxzLmNvbm5lY3Qoe1xuICAgICAgICAgIHNvY2tldDogZHVwbGV4cGFpci5zb2NrZXQxIGFzIFNvY2tldCxcbiAgICAgICAgICBzZXJ2ZXJuYW1lOiBob3N0bmFtZSxcbiAgICAgICAgICBzZWN1cmVDb250ZXh0OiBzZWN1cmVDb250ZXh0LFxuICAgICAgICAgIHJlamVjdFVuYXV0aG9yaXplZDogIXRydXN0U2VydmVyQ2VydGlmaWNhdGVcbiAgICAgICAgfSksXG4gICAgICAgIGVuY3J5cHRlZDogZHVwbGV4cGFpci5zb2NrZXQyXG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvblNlY3VyZUNvbm5lY3QgPSAoKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIC8vIElmIHdlIGVuY291bnRlciBhbnkgZXJyb3JzIGZyb20gdGhpcyBwb2ludCBvbixcbiAgICAgICAgLy8gd2UganVzdCBmb3J3YXJkIHRoZW0gdG8gdGhlIGFjdHVhbCBuZXR3b3JrIHNvY2tldC5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnZXJyb3InLCAoZXJyKSA9PiB7XG4gICAgICAgICAgdGhpcy5zb2NrZXQuZGVzdHJveShlcnIpO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjaXBoZXIgPSBzZWN1cmVQYWlyLmNsZWFydGV4dC5nZXRDaXBoZXIoKTtcbiAgICAgICAgaWYgKGNpcGhlcikge1xuICAgICAgICAgIHRoaXMuZGVidWcubG9nKCdUTFMgbmVnb3RpYXRlZCAoJyArIGNpcGhlci5uYW1lICsgJywgJyArIGNpcGhlci52ZXJzaW9uICsgJyknKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZW1pdCgnc2VjdXJlJywgc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcblxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS51bnBpcGUodGhpcy5zb2NrZXQpO1xuICAgICAgICB0aGlzLnNvY2tldC51bnBpcGUodGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW0pO1xuXG4gICAgICAgIHRoaXMuc29ja2V0LnBpcGUoc2VjdXJlUGFpci5lbmNyeXB0ZWQpO1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5waXBlKHRoaXMuc29ja2V0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZShzZWN1cmVQYWlyLmNsZWFydGV4dCk7XG5cbiAgICAgICAgdGhpcy50bHNOZWdvdGlhdGlvbkNvbXBsZXRlID0gdHJ1ZTtcblxuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkVycm9yID0gKGVycj86IEVycm9yKSA9PiB7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLnJlbW92ZUxpc3RlbmVyKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5yZW1vdmVMaXN0ZW5lcignZXJyb3InLCBvbkVycm9yKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ3NlY3VyZUNvbm5lY3QnLCBvblNlY3VyZUNvbm5lY3QpO1xuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LmRlc3Ryb3koKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQuZGVzdHJveSgpO1xuXG4gICAgICAgIHJlamVjdChlcnIpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25SZWFkYWJsZSA9ICgpID0+IHtcbiAgICAgICAgLy8gV2hlbiB0aGVyZSBpcyBoYW5kc2hha2UgZGF0YSBvbiB0aGUgZW5jcnlwZWQgc3RyZWFtIG9mIHRoZSBzZWN1cmUgcGFpcixcbiAgICAgICAgLy8gd2Ugd3JhcCBpdCBpbnRvIGEgYFBSRUxPR0lOYCBtZXNzYWdlIGFuZCBzZW5kIGl0IHRvIHRoZSBzZXJ2ZXIuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIEZvciBlYWNoIGBQUkVMT0dJTmAgbWVzc2FnZSB3ZSBzZW50IHdlIGdldCBiYWNrIGV4YWN0bHkgb25lIHJlc3BvbnNlIG1lc3NhZ2VcbiAgICAgICAgLy8gdGhhdCBjb250YWlucyB0aGUgc2VydmVyJ3MgaGFuZHNoYWtlIHJlc3BvbnNlIGRhdGEuXG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgTWVzc2FnZSh7IHR5cGU6IFRZUEUuUFJFTE9HSU4sIHJlc2V0Q29ubmVjdGlvbjogZmFsc2UgfSk7XG5cbiAgICAgICAgbGV0IGNodW5rO1xuICAgICAgICB3aGlsZSAoY2h1bmsgPSBzZWN1cmVQYWlyLmVuY3J5cHRlZC5yZWFkKCkpIHtcbiAgICAgICAgICBtZXNzYWdlLndyaXRlKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS53cml0ZShtZXNzYWdlKTtcbiAgICAgICAgbWVzc2FnZS5lbmQoKTtcblxuICAgICAgICB0aGlzLnJlYWRNZXNzYWdlKCkudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAvLyBTZXR1cCByZWFkYWJsZSBoYW5kbGVyIGZvciB0aGUgbmV4dCByb3VuZCBvZiBoYW5kc2hha2luZy5cbiAgICAgICAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYSBgc2VjdXJlQ29ubmVjdGAgb24gdGhlIGNsZWFydGV4dCBzaWRlXG4gICAgICAgICAgLy8gb2YgdGhlIHNlY3VyZSBwYWlyLCB0aGUgYHJlYWRhYmxlYCBoYW5kbGVyIGlzIGNsZWFyZWRcbiAgICAgICAgICAvLyBhbmQgbm8gZnVydGhlciBoYW5kc2hha2UgaGFuZGxpbmcgd2lsbCBoYXBwZW4uXG4gICAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQub25jZSgncmVhZGFibGUnLCBvblJlYWRhYmxlKTtcblxuICAgICAgICAgIGZvciBhd2FpdCAoY29uc3QgZGF0YSBvZiByZXNwb25zZSkge1xuICAgICAgICAgICAgLy8gV2UgZmVlZCB0aGUgc2VydmVyJ3MgaGFuZHNoYWtlIHJlc3BvbnNlIGJhY2sgaW50byB0aGVcbiAgICAgICAgICAgIC8vIGVuY3J5cHRlZCBlbmQgb2YgdGhlIHNlY3VyZSBwYWlyLlxuICAgICAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQud3JpdGUoZGF0YSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KS5jYXRjaChvbkVycm9yKTtcbiAgICAgIH07XG5cbiAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0Lm9uY2UoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdzZWN1cmVDb25uZWN0Jywgb25TZWN1cmVDb25uZWN0KTtcbiAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBUT0RPIGxpc3RlbiBmb3IgJ2RyYWluJyBldmVudCB3aGVuIHNvY2tldC53cml0ZSByZXR1cm5zIGZhbHNlLlxuICAvLyBUT0RPIGltcGxlbWVudCBpbmNvbXBsZXRlIHJlcXVlc3QgY2FuY2VsYXRpb24gKDIuMi4xLjYpXG4gIHNlbmRNZXNzYWdlKHBhY2tldFR5cGU6IG51bWJlciwgZGF0YT86IEJ1ZmZlciwgcmVzZXRDb25uZWN0aW9uPzogYm9vbGVhbikge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBuZXcgTWVzc2FnZSh7IHR5cGU6IHBhY2tldFR5cGUsIHJlc2V0Q29ubmVjdGlvbjogcmVzZXRDb25uZWN0aW9uIH0pO1xuICAgIG1lc3NhZ2UuZW5kKGRhdGEpO1xuICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLndyaXRlKG1lc3NhZ2UpO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWQgdGhlIG5leHQgaW5jb21pbmcgbWVzc2FnZSBmcm9tIHRoZSBzb2NrZXQuXG4gICAqL1xuICBhc3luYyByZWFkTWVzc2FnZSgpOiBQcm9taXNlPE1lc3NhZ2U+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmluY29taW5nTWVzc2FnZUl0ZXJhdG9yLm5leHQoKTtcblxuICAgIGlmIChyZXN1bHQuZG9uZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCd1bmV4cGVjdGVkIGVuZCBvZiBtZXNzYWdlIHN0cmVhbScpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQudmFsdWU7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTWVzc2FnZUlPO1xubW9kdWxlLmV4cG9ydHMgPSBNZXNzYWdlSU87XG4iXSwibWFwcGluZ3MiOiI7Ozs7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
189
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNZXNzYWdlSU8iLCJFdmVudEVtaXR0ZXIiLCJjb25zdHJ1Y3RvciIsInNvY2tldCIsInBhY2tldFNpemUiLCJkZWJ1ZyIsInRsc05lZ290aWF0aW9uQ29tcGxldGUiLCJpbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJvdXRnb2luZ01lc3NhZ2VTdHJlYW0iLCJzZWN1cmVQYWlyIiwiaW5jb21pbmdNZXNzYWdlSXRlcmF0b3IiLCJJbmNvbWluZ01lc3NhZ2VTdHJlYW0iLCJTeW1ib2wiLCJhc3luY0l0ZXJhdG9yIiwiT3V0Z29pbmdNZXNzYWdlU3RyZWFtIiwicGlwZSIsImFyZ3MiLCJsZW5ndGgiLCJsb2ciLCJjbGVhcnRleHQiLCJzZXRNYXhTZW5kRnJhZ21lbnQiLCJzdGFydFRscyIsImNyZWRlbnRpYWxzRGV0YWlscyIsImhvc3RuYW1lIiwidHJ1c3RTZXJ2ZXJDZXJ0aWZpY2F0ZSIsIm1heFZlcnNpb24iLCJpbmNsdWRlcyIsInNlY3VyZUNvbnRleHQiLCJ0bHMiLCJjcmVhdGVTZWN1cmVDb250ZXh0IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJkdXBsZXhwYWlyIiwiRHVwbGV4UGFpciIsImNvbm5lY3QiLCJzb2NrZXQxIiwic2VydmVybmFtZSIsInJlamVjdFVuYXV0aG9yaXplZCIsImVuY3J5cHRlZCIsInNvY2tldDIiLCJvblNlY3VyZUNvbm5lY3QiLCJyZW1vdmVMaXN0ZW5lciIsIm9uUmVhZGFibGUiLCJvbkVycm9yIiwib25jZSIsImVyciIsImRlc3Ryb3kiLCJjaXBoZXIiLCJnZXRDaXBoZXIiLCJuYW1lIiwidmVyc2lvbiIsImVtaXQiLCJ1bnBpcGUiLCJtZXNzYWdlIiwiTWVzc2FnZSIsInR5cGUiLCJUWVBFIiwiUFJFTE9HSU4iLCJyZXNldENvbm5lY3Rpb24iLCJjaHVuayIsInJlYWQiLCJ3cml0ZSIsImVuZCIsInJlYWRNZXNzYWdlIiwidGhlbiIsInJlc3BvbnNlIiwiZGF0YSIsImNhdGNoIiwic2VuZE1lc3NhZ2UiLCJwYWNrZXRUeXBlIiwicmVzdWx0IiwibmV4dCIsImRvbmUiLCJFcnJvciIsInZhbHVlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXNzYWdlLWlvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEdXBsZXhQYWlyIGZyb20gJ25hdGl2ZS1kdXBsZXhwYWlyJztcblxuaW1wb3J0IHsgRHVwbGV4IH0gZnJvbSAnc3RyZWFtJztcbmltcG9ydCAqIGFzIHRscyBmcm9tICd0bHMnO1xuaW1wb3J0IHsgU29ja2V0IH0gZnJvbSAnbmV0JztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5cbmltcG9ydCBEZWJ1ZyBmcm9tICcuL2RlYnVnJztcblxuaW1wb3J0IE1lc3NhZ2UgZnJvbSAnLi9tZXNzYWdlJztcbmltcG9ydCB7IFRZUEUgfSBmcm9tICcuL3BhY2tldCc7XG5cbmltcG9ydCBJbmNvbWluZ01lc3NhZ2VTdHJlYW0gZnJvbSAnLi9pbmNvbWluZy1tZXNzYWdlLXN0cmVhbSc7XG5pbXBvcnQgT3V0Z29pbmdNZXNzYWdlU3RyZWFtIGZyb20gJy4vb3V0Z29pbmctbWVzc2FnZS1zdHJlYW0nO1xuXG5jbGFzcyBNZXNzYWdlSU8gZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuICBzb2NrZXQ6IFNvY2tldDtcbiAgZGVidWc6IERlYnVnO1xuXG4gIHRsc05lZ290aWF0aW9uQ29tcGxldGU6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBpbmNvbWluZ01lc3NhZ2VTdHJlYW06IEluY29taW5nTWVzc2FnZVN0cmVhbTtcbiAgb3V0Z29pbmdNZXNzYWdlU3RyZWFtOiBPdXRnb2luZ01lc3NhZ2VTdHJlYW07XG5cbiAgc2VjdXJlUGFpcj86IHtcbiAgICBjbGVhcnRleHQ6IHRscy5UTFNTb2NrZXQ7XG4gICAgZW5jcnlwdGVkOiBEdXBsZXg7XG4gIH1cblxuICBpbmNvbWluZ01lc3NhZ2VJdGVyYXRvcjogQXN5bmNJdGVyYWJsZUl0ZXJhdG9yPE1lc3NhZ2U+O1xuXG4gIGNvbnN0cnVjdG9yKHNvY2tldDogU29ja2V0LCBwYWNrZXRTaXplOiBudW1iZXIsIGRlYnVnOiBEZWJ1Zykge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNvY2tldCA9IHNvY2tldDtcbiAgICB0aGlzLmRlYnVnID0gZGVidWc7XG5cbiAgICB0aGlzLnRsc05lZ290aWF0aW9uQ29tcGxldGUgPSBmYWxzZTtcblxuICAgIHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtID0gbmV3IEluY29taW5nTWVzc2FnZVN0cmVhbSh0aGlzLmRlYnVnKTtcbiAgICB0aGlzLmluY29taW5nTWVzc2FnZUl0ZXJhdG9yID0gdGhpcy5pbmNvbWluZ01lc3NhZ2VTdHJlYW1bU3ltYm9sLmFzeW5jSXRlcmF0b3JdKCk7XG5cbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbSA9IG5ldyBPdXRnb2luZ01lc3NhZ2VTdHJlYW0odGhpcy5kZWJ1ZywgeyBwYWNrZXRTaXplOiBwYWNrZXRTaXplIH0pO1xuXG4gICAgdGhpcy5zb2NrZXQucGlwZSh0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbSk7XG4gICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGlwZSh0aGlzLnNvY2tldCk7XG4gIH1cblxuICBwYWNrZXRTaXplKC4uLmFyZ3M6IFtudW1iZXJdKSB7XG4gICAgaWYgKGFyZ3MubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgcGFja2V0U2l6ZSA9IGFyZ3NbMF07XG4gICAgICB0aGlzLmRlYnVnLmxvZygnUGFja2V0IHNpemUgY2hhbmdlZCBmcm9tICcgKyB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplICsgJyB0byAnICsgcGFja2V0U2l6ZSk7XG4gICAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplID0gcGFja2V0U2l6ZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zZWN1cmVQYWlyKSB7XG4gICAgICB0aGlzLnNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnNldE1heFNlbmRGcmFnbWVudCh0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS5wYWNrZXRTaXplKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGFja2V0U2l6ZTtcbiAgfVxuXG4gIC8vIE5lZ290aWF0ZSBUTFMgZW5jcnlwdGlvbi5cbiAgc3RhcnRUbHMoY3JlZGVudGlhbHNEZXRhaWxzOiB0bHMuU2VjdXJlQ29udGV4dE9wdGlvbnMsIGhvc3RuYW1lOiBzdHJpbmcsIHRydXN0U2VydmVyQ2VydGlmaWNhdGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIWNyZWRlbnRpYWxzRGV0YWlscy5tYXhWZXJzaW9uIHx8ICFbJ1RMU3YxLjInLCAnVExTdjEuMScsICdUTFN2MSddLmluY2x1ZGVzKGNyZWRlbnRpYWxzRGV0YWlscy5tYXhWZXJzaW9uKSkge1xuICAgICAgY3JlZGVudGlhbHNEZXRhaWxzLm1heFZlcnNpb24gPSAnVExTdjEuMic7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VjdXJlQ29udGV4dCA9IHRscy5jcmVhdGVTZWN1cmVDb250ZXh0KGNyZWRlbnRpYWxzRGV0YWlscyk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgY29uc3QgZHVwbGV4cGFpciA9IG5ldyBEdXBsZXhQYWlyKCk7XG4gICAgICBjb25zdCBzZWN1cmVQYWlyID0gdGhpcy5zZWN1cmVQYWlyID0ge1xuICAgICAgICBjbGVhcnRleHQ6IHRscy5jb25uZWN0KHtcbiAgICAgICAgICBzb2NrZXQ6IGR1cGxleHBhaXIuc29ja2V0MSBhcyBTb2NrZXQsXG4gICAgICAgICAgc2VydmVybmFtZTogaG9zdG5hbWUsXG4gICAgICAgICAgc2VjdXJlQ29udGV4dDogc2VjdXJlQ29udGV4dCxcbiAgICAgICAgICByZWplY3RVbmF1dGhvcml6ZWQ6ICF0cnVzdFNlcnZlckNlcnRpZmljYXRlXG4gICAgICAgIH0pLFxuICAgICAgICBlbmNyeXB0ZWQ6IGR1cGxleHBhaXIuc29ja2V0MlxuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25TZWN1cmVDb25uZWN0ID0gKCkgPT4ge1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5yZW1vdmVMaXN0ZW5lcigncmVhZGFibGUnLCBvblJlYWRhYmxlKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnJlbW92ZUxpc3RlbmVyKCdzZWN1cmVDb25uZWN0Jywgb25TZWN1cmVDb25uZWN0KTtcblxuICAgICAgICAvLyBJZiB3ZSBlbmNvdW50ZXIgYW55IGVycm9ycyBmcm9tIHRoaXMgcG9pbnQgb24sXG4gICAgICAgIC8vIHdlIGp1c3QgZm9yd2FyZCB0aGVtIHRvIHRoZSBhY3R1YWwgbmV0d29yayBzb2NrZXQuXG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0Lm9uY2UoJ2Vycm9yJywgKGVycikgPT4ge1xuICAgICAgICAgIHRoaXMuc29ja2V0LmRlc3Ryb3koZXJyKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2lwaGVyID0gc2VjdXJlUGFpci5jbGVhcnRleHQuZ2V0Q2lwaGVyKCk7XG4gICAgICAgIGlmIChjaXBoZXIpIHtcbiAgICAgICAgICB0aGlzLmRlYnVnLmxvZygnVExTIG5lZ290aWF0ZWQgKCcgKyBjaXBoZXIubmFtZSArICcsICcgKyBjaXBoZXIudmVyc2lvbiArICcpJyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtaXQoJ3NlY3VyZScsIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5zZXRNYXhTZW5kRnJhZ21lbnQodGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ucGFja2V0U2l6ZSk7XG5cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0udW5waXBlKHRoaXMuc29ja2V0KTtcbiAgICAgICAgdGhpcy5zb2NrZXQudW5waXBlKHRoaXMuaW5jb21pbmdNZXNzYWdlU3RyZWFtKTtcblxuICAgICAgICB0aGlzLnNvY2tldC5waXBlKHNlY3VyZVBhaXIuZW5jcnlwdGVkKTtcbiAgICAgICAgc2VjdXJlUGFpci5lbmNyeXB0ZWQucGlwZSh0aGlzLnNvY2tldCk7XG5cbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucGlwZSh0aGlzLmluY29taW5nTWVzc2FnZVN0cmVhbSk7XG4gICAgICAgIHRoaXMub3V0Z29pbmdNZXNzYWdlU3RyZWFtLnBpcGUoc2VjdXJlUGFpci5jbGVhcnRleHQpO1xuXG4gICAgICAgIHRoaXMudGxzTmVnb3RpYXRpb25Db21wbGV0ZSA9IHRydWU7XG5cbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfTtcblxuICAgICAgY29uc3Qgb25FcnJvciA9IChlcnI/OiBFcnJvcikgPT4ge1xuICAgICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5yZW1vdmVMaXN0ZW5lcigncmVhZGFibGUnLCBvblJlYWRhYmxlKTtcbiAgICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQucmVtb3ZlTGlzdGVuZXIoJ2Vycm9yJywgb25FcnJvcik7XG4gICAgICAgIHNlY3VyZVBhaXIuY2xlYXJ0ZXh0LnJlbW92ZUxpc3RlbmVyKCdzZWN1cmVDb25uZWN0Jywgb25TZWN1cmVDb25uZWN0KTtcblxuICAgICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5kZXN0cm95KCk7XG4gICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLmRlc3Ryb3koKTtcblxuICAgICAgICByZWplY3QoZXJyKTtcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uUmVhZGFibGUgPSAoKSA9PiB7XG4gICAgICAgIC8vIFdoZW4gdGhlcmUgaXMgaGFuZHNoYWtlIGRhdGEgb24gdGhlIGVuY3J5cGVkIHN0cmVhbSBvZiB0aGUgc2VjdXJlIHBhaXIsXG4gICAgICAgIC8vIHdlIHdyYXAgaXQgaW50byBhIGBQUkVMT0dJTmAgbWVzc2FnZSBhbmQgc2VuZCBpdCB0byB0aGUgc2VydmVyLlxuICAgICAgICAvL1xuICAgICAgICAvLyBGb3IgZWFjaCBgUFJFTE9HSU5gIG1lc3NhZ2Ugd2Ugc2VudCB3ZSBnZXQgYmFjayBleGFjdGx5IG9uZSByZXNwb25zZSBtZXNzYWdlXG4gICAgICAgIC8vIHRoYXQgY29udGFpbnMgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBkYXRhLlxuICAgICAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBUWVBFLlBSRUxPR0lOLCByZXNldENvbm5lY3Rpb246IGZhbHNlIH0pO1xuXG4gICAgICAgIGxldCBjaHVuaztcbiAgICAgICAgd2hpbGUgKGNodW5rID0gc2VjdXJlUGFpci5lbmNyeXB0ZWQucmVhZCgpKSB7XG4gICAgICAgICAgbWVzc2FnZS53cml0ZShjaHVuayk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5vdXRnb2luZ01lc3NhZ2VTdHJlYW0ud3JpdGUobWVzc2FnZSk7XG4gICAgICAgIG1lc3NhZ2UuZW5kKCk7XG5cbiAgICAgICAgdGhpcy5yZWFkTWVzc2FnZSgpLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgLy8gU2V0dXAgcmVhZGFibGUgaGFuZGxlciBmb3IgdGhlIG5leHQgcm91bmQgb2YgaGFuZHNoYWtpbmcuXG4gICAgICAgICAgLy8gSWYgd2UgZW5jb3VudGVyIGEgYHNlY3VyZUNvbm5lY3RgIG9uIHRoZSBjbGVhcnRleHQgc2lkZVxuICAgICAgICAgIC8vIG9mIHRoZSBzZWN1cmUgcGFpciwgdGhlIGByZWFkYWJsZWAgaGFuZGxlciBpcyBjbGVhcmVkXG4gICAgICAgICAgLy8gYW5kIG5vIGZ1cnRoZXIgaGFuZHNoYWtlIGhhbmRsaW5nIHdpbGwgaGFwcGVuLlxuICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLm9uY2UoJ3JlYWRhYmxlJywgb25SZWFkYWJsZSk7XG5cbiAgICAgICAgICBmb3IgYXdhaXQgKGNvbnN0IGRhdGEgb2YgcmVzcG9uc2UpIHtcbiAgICAgICAgICAgIC8vIFdlIGZlZWQgdGhlIHNlcnZlcidzIGhhbmRzaGFrZSByZXNwb25zZSBiYWNrIGludG8gdGhlXG4gICAgICAgICAgICAvLyBlbmNyeXB0ZWQgZW5kIG9mIHRoZSBzZWN1cmUgcGFpci5cbiAgICAgICAgICAgIHNlY3VyZVBhaXIuZW5jcnlwdGVkLndyaXRlKGRhdGEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2gob25FcnJvcik7XG4gICAgICB9O1xuXG4gICAgICBzZWN1cmVQYWlyLmNsZWFydGV4dC5vbmNlKCdlcnJvcicsIG9uRXJyb3IpO1xuICAgICAgc2VjdXJlUGFpci5jbGVhcnRleHQub25jZSgnc2VjdXJlQ29ubmVjdCcsIG9uU2VjdXJlQ29ubmVjdCk7XG4gICAgICBzZWN1cmVQYWlyLmVuY3J5cHRlZC5vbmNlKCdyZWFkYWJsZScsIG9uUmVhZGFibGUpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVE9ETyBsaXN0ZW4gZm9yICdkcmFpbicgZXZlbnQgd2hlbiBzb2NrZXQud3JpdGUgcmV0dXJucyBmYWxzZS5cbiAgLy8gVE9ETyBpbXBsZW1lbnQgaW5jb21wbGV0ZSByZXF1ZXN0IGNhbmNlbGF0aW9uICgyLjIuMS42KVxuICBzZW5kTWVzc2FnZShwYWNrZXRUeXBlOiBudW1iZXIsIGRhdGE/OiBCdWZmZXIsIHJlc2V0Q29ubmVjdGlvbj86IGJvb2xlYW4pIHtcbiAgICBjb25zdCBtZXNzYWdlID0gbmV3IE1lc3NhZ2UoeyB0eXBlOiBwYWNrZXRUeXBlLCByZXNldENvbm5lY3Rpb246IHJlc2V0Q29ubmVjdGlvbiB9KTtcbiAgICBtZXNzYWdlLmVuZChkYXRhKTtcbiAgICB0aGlzLm91dGdvaW5nTWVzc2FnZVN0cmVhbS53cml0ZShtZXNzYWdlKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkIHRoZSBuZXh0IGluY29taW5nIG1lc3NhZ2UgZnJvbSB0aGUgc29ja2V0LlxuICAgKi9cbiAgYXN5bmMgcmVhZE1lc3NhZ2UoKTogUHJvbWlzZTxNZXNzYWdlPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5pbmNvbWluZ01lc3NhZ2VJdGVyYXRvci5uZXh0KCk7XG5cbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgbWVzc2FnZSBzdHJlYW0nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnZhbHVlO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NhZ2VJTztcbm1vZHVsZS5leHBvcnRzID0gTWVzc2FnZUlPO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUE7O0FBR0E7O0FBRUE7O0FBSUE7O0FBQ0E7O0FBRUE7O0FBQ0E7Ozs7Ozs7O0FBRUEsTUFBTUEsU0FBTixTQUF3QkMsb0JBQXhCLENBQXFDO0VBZ0JuQ0MsV0FBVyxDQUFDQyxNQUFELEVBQWlCQyxVQUFqQixFQUFxQ0MsS0FBckMsRUFBbUQ7SUFDNUQ7SUFENEQsS0FmOURGLE1BZThEO0lBQUEsS0FkOURFLEtBYzhEO0lBQUEsS0FaOURDLHNCQVk4RDtJQUFBLEtBVnREQyxxQkFVc0Q7SUFBQSxLQVQ5REMscUJBUzhEO0lBQUEsS0FQOURDLFVBTzhEO0lBQUEsS0FGOURDLHVCQUU4RDtJQUc1RCxLQUFLUCxNQUFMLEdBQWNBLE1BQWQ7SUFDQSxLQUFLRSxLQUFMLEdBQWFBLEtBQWI7SUFFQSxLQUFLQyxzQkFBTCxHQUE4QixLQUE5QjtJQUVBLEtBQUtDLHFCQUFMLEdBQTZCLElBQUlJLDhCQUFKLENBQTBCLEtBQUtOLEtBQS9CLENBQTdCO0lBQ0EsS0FBS0ssdUJBQUwsR0FBK0IsS0FBS0gscUJBQUwsQ0FBMkJLLE1BQU0sQ0FBQ0MsYUFBbEMsR0FBL0I7SUFFQSxLQUFLTCxxQkFBTCxHQUE2QixJQUFJTSw4QkFBSixDQUEwQixLQUFLVCxLQUEvQixFQUFzQztNQUFFRCxVQUFVLEVBQUVBO0lBQWQs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
@@ -9,8 +9,6 @@ var _writableTrackingBuffer = _interopRequireDefault(require("./tracking-buffer/
9
9
 
10
10
  var crypto = _interopRequireWildcard(require("crypto"));
11
11
 
12
- var _jsbi = _interopRequireDefault(require("jsbi"));
13
-
14
12
  var _jsMd = _interopRequireDefault(require("js-md4"));
15
13
 
16
14
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -116,12 +114,9 @@ class NTLMResponsePayload {
116
114
  }
117
115
 
118
116
  createTimestamp(time) {
119
- const tenthsOfAMicrosecond = _jsbi.default.multiply(_jsbi.default.add(_jsbi.default.BigInt(time), _jsbi.default.BigInt(11644473600)), _jsbi.default.BigInt(10000000));
120
-
121
- const lo = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(tenthsOfAMicrosecond, _jsbi.default.BigInt(0xffffffff)));
122
-
123
- const hi = _jsbi.default.toNumber(_jsbi.default.bitwiseAnd(_jsbi.default.signedRightShift(tenthsOfAMicrosecond, _jsbi.default.BigInt(32)), _jsbi.default.BigInt(0xffffffff)));
124
-
117
+ const tenthsOfAMicrosecond = (BigInt(time) + BigInt(11644473600)) * BigInt(10000000);
118
+ const lo = Number(tenthsOfAMicrosecond & BigInt(0xffffffff));
119
+ const hi = Number(tenthsOfAMicrosecond >> BigInt(32) & BigInt(0xffffffff));
125
120
  const result = Buffer.alloc(8);
126
121
  result.writeUInt32LE(lo, 0);
127
122
  result.writeUInt32LE(hi, 4);
@@ -160,4 +155,4 @@ class NTLMResponsePayload {
160
155
  var _default = NTLMResponsePayload;
161
156
  exports.default = _default;
162
157
  module.exports = NTLMResponsePayload;
163
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOVExNUmVzcG9uc2VQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJsb2dpbkRhdGEiLCJkYXRhIiwiY3JlYXRlUmVzcG9uc2UiLCJ0b1N0cmluZyIsImluZGVudCIsImNoYWxsZW5nZSIsImNsaWVudF9ub25jZSIsImNyZWF0ZUNsaWVudE5vbmNlIiwibG12MmxlbiIsIm50bG12MmxlbiIsImRvbWFpbiIsInVzZXJuYW1lIiwidXNlck5hbWUiLCJwYXNzd29yZCIsIm50bG1EYXRhIiwibnRsbXBhY2tldCIsInNlcnZlcl9kYXRhIiwidGFyZ2V0Iiwic2VydmVyX25vbmNlIiwibm9uY2UiLCJidWZmZXJMZW5ndGgiLCJsZW5ndGgiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwicG9zaXRpb24iLCJ3cml0ZVN0cmluZyIsIndyaXRlVUludDMyTEUiLCJiYXNlSWR4IiwiZG5JZHgiLCJ1bklkeCIsImwySWR4IiwibnRJZHgiLCJ3cml0ZVVJbnQxNkxFIiwibG12MkRhdGEiLCJsbXYyUmVzcG9uc2UiLCJjb3B5RnJvbSIsImdlblRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm50bG1EYXRhQnVmZmVyIiwibnRsbXYyUmVzcG9uc2UiLCJ0aW1lc3RhbXAiLCJjcmVhdGVUaW1lc3RhbXAiLCJCdWZmZXIiLCJhbGxvYyIsIm5pZHgiLCJ3cml0ZVVJbnQ4IiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJ1c2VyIiwic2VydmVyTm9uY2UiLCJ0YXJnZXRJbmZvIiwiY2xpZW50Tm9uY2UiLCJteXRpbWUiLCJoYXNoIiwibnR2Mkhhc2giLCJkYXRhTGVuZ3RoIiwiY29weSIsImhtYWNNRDUiLCJ0aW1lIiwidGVudGhzT2ZBTWljcm9zZWNvbmQiLCJKU0JJIiwibXVsdGlwbHkiLCJhZGQiLCJCaWdJbnQiLCJsbyIsInRvTnVtYmVyIiwiYml0d2lzZUFuZCIsImhpIiwic2lnbmVkUmlnaHRTaGlmdCIsInJlc3VsdCIsIm5ld2hhc2giLCJyZXNwb25zZSIsIm50SGFzaCIsImlkZW50aXR5IiwiZnJvbSIsInRvVXBwZXJDYXNlIiwidGV4dCIsInVuaWNvZGVTdHJpbmciLCJtZDQiLCJhcnJheUJ1ZmZlciIsImtleSIsImNyeXB0byIsImNyZWF0ZUhtYWMiLCJ1cGRhdGUiLCJkaWdlc3QiLCJtb2R1bGUiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vc3JjL250bG0tcGF5bG9hZC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgV3JpdGFibGVUcmFja2luZ0J1ZmZlciBmcm9tICcuL3RyYWNraW5nLWJ1ZmZlci93cml0YWJsZS10cmFja2luZy1idWZmZXInO1xuaW1wb3J0ICogYXMgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgSlNCSSBmcm9tICdqc2JpJztcbmltcG9ydCBtZDQgZnJvbSAnanMtbWQ0JztcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBkb21haW46IHN0cmluZztcbiAgdXNlck5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgbnRsbXBhY2tldDoge1xuICAgIHRhcmdldDogQnVmZmVyO1xuICAgIG5vbmNlOiBCdWZmZXI7XG4gIH07XG59XG5cbmNsYXNzIE5UTE1SZXNwb25zZVBheWxvYWQge1xuICBkYXRhOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobG9naW5EYXRhOiBPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5jcmVhdGVSZXNwb25zZShsb2dpbkRhdGEpO1xuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgJ05UTE0gQXV0aCc7XG4gIH1cblxuICBjcmVhdGVSZXNwb25zZShjaGFsbGVuZ2U6IE9wdGlvbnMpIHtcbiAgICBjb25zdCBjbGllbnRfbm9uY2UgPSB0aGlzLmNyZWF0ZUNsaWVudE5vbmNlKCk7XG4gICAgY29uc3QgbG12MmxlbiA9IDI0O1xuICAgIGNvbnN0IG50bG12MmxlbiA9IDE2O1xuICAgIGNvbnN0IGRvbWFpbiA9IGNoYWxsZW5nZS5kb21haW47XG4gICAgY29uc3QgdXNlcm5hbWUgPSBjaGFsbGVuZ2UudXNlck5hbWU7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBjaGFsbGVuZ2UucGFzc3dvcmQ7XG4gICAgY29uc3QgbnRsbURhdGEgPSBjaGFsbGVuZ2UubnRsbXBhY2tldDtcbiAgICBjb25zdCBzZXJ2ZXJfZGF0YSA9IG50bG1EYXRhLnRhcmdldDtcbiAgICBjb25zdCBzZXJ2ZXJfbm9uY2UgPSBudGxtRGF0YS5ub25jZTtcbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSA2NCArIChkb21haW4ubGVuZ3RoICogMikgKyAodXNlcm5hbWUubGVuZ3RoICogMikgKyBsbXYybGVuICsgbnRsbXYybGVuICsgOCArIDggKyA4ICsgNCArIHNlcnZlcl9kYXRhLmxlbmd0aCArIDQ7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKGJ1ZmZlckxlbmd0aCk7XG4gICAgZGF0YS5wb3NpdGlvbiA9IDA7XG4gICAgZGF0YS53cml0ZVN0cmluZygnTlRMTVNTUFxcdTAwMDAnLCAndXRmOCcpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAzKTtcbiAgICBjb25zdCBiYXNlSWR4ID0gNjQ7XG4gICAgY29uc3QgZG5JZHggPSBiYXNlSWR4O1xuICAgIGNvbnN0IHVuSWR4ID0gZG5JZHggKyBkb21haW4ubGVuZ3RoICogMjtcbiAgICBjb25zdCBsMklkeCA9IHVuSWR4ICsgdXNlcm5hbWUubGVuZ3RoICogMjtcbiAgICBjb25zdCBudElkeCA9IGwySWR4ICsgbG12MmxlbjtcbiAgICBkYXRhLndyaXRlVUludDE2TEUobG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKGxtdjJsZW4pO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRShsMklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKG50SWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUoZG9tYWluLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRShkb21haW4ubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKGRuSWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUodXNlcm5hbWUubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKHVzZXJuYW1lLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSh1bklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4ODIwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4MDgpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcoZG9tYWluLCAndWNzMicpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcodXNlcm5hbWUsICd1Y3MyJyk7XG4gICAgY29uc3QgbG12MkRhdGEgPSB0aGlzLmxtdjJSZXNwb25zZShkb21haW4sIHVzZXJuYW1lLCBwYXNzd29yZCwgc2VydmVyX25vbmNlLCBjbGllbnRfbm9uY2UpO1xuICAgIGRhdGEuY29weUZyb20obG12MkRhdGEpO1xuICAgIGNvbnN0IGdlblRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBudGxtRGF0YUJ1ZmZlciA9IHRoaXMubnRsbXYyUmVzcG9uc2UoZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIHNlcnZlcl9ub25jZSwgc2VydmVyX2RhdGEsIGNsaWVudF9ub25jZSwgZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbShudGxtRGF0YUJ1ZmZlcik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDEwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDAwMCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAoZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbSh0aW1lc3RhbXApO1xuICAgIGRhdGEuY29weUZyb20oY2xpZW50X25vbmNlKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICBkYXRhLmNvcHlGcm9tKHNlcnZlcl9kYXRhKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICByZXR1cm4gZGF0YS5kYXRhO1xuICB9XG5cbiAgY3JlYXRlQ2xpZW50Tm9uY2UoKSB7XG4gICAgY29uc3QgY2xpZW50X25vbmNlID0gQnVmZmVyLmFsbG9jKDgsIDApO1xuICAgIGxldCBuaWR4ID0gMDtcbiAgICB3aGlsZSAobmlkeCA8IDgpIHtcbiAgICAgIGNsaWVudF9ub25jZS53cml0ZVVJbnQ4KE1hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KSwgbmlkeCk7XG4gICAgICBuaWR4Kys7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRfbm9uY2U7XG4gIH1cblxuICBudGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCB0YXJnZXRJbmZvOiBCdWZmZXIsIGNsaWVudE5vbmNlOiBCdWZmZXIsIG15dGltZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAobXl0aW1lKTtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udHYySGFzaChkb21haW4sIHVzZXIsIHBhc3N3b3JkKTtcbiAgICBjb25zdCBkYXRhTGVuZ3RoID0gNDAgKyB0YXJnZXRJbmZvLmxlbmd0aDtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKGRhdGFMZW5ndGgsIDApO1xuICAgIHNlcnZlck5vbmNlLmNvcHkoZGF0YSwgMCwgMCwgOCk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MTAxLCA4KTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAxMik7XG4gICAgdGltZXN0YW1wLmNvcHkoZGF0YSwgMTYsIDAsIDgpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkoZGF0YSwgMjQsIDAsIDgpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAsIDMyKTtcbiAgICB0YXJnZXRJbmZvLmNvcHkoZGF0YSwgMzYsIDAsIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAzNiArIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICByZXR1cm4gdGhpcy5obWFjTUQ1KGRhdGEsIGhhc2gpO1xuICB9XG5cbiAgY3JlYXRlVGltZXN0YW1wKHRpbWU6IG51bWJlcikge1xuICAgIGNvbnN0IHRlbnRoc09mQU1pY3Jvc2Vjb25kID0gSlNCSS5tdWx0aXBseShKU0JJLmFkZChKU0JJLkJpZ0ludCh0aW1lKSwgSlNCSS5CaWdJbnQoMTE2NDQ0NzM2MDApKSwgSlNCSS5CaWdJbnQoMTAwMDAwMDApKTtcblxuICAgIGNvbnN0IGxvID0gSlNCSS50b051bWJlcihKU0JJLmJpdHdpc2VBbmQodGVudGhzT2ZBTWljcm9zZWNvbmQsIEpTQkkuQmlnSW50KDB4ZmZmZmZmZmYpKSk7XG4gICAgY29uc3QgaGkgPSBKU0JJLnRvTnVtYmVyKEpTQkkuYml0d2lzZUFuZChKU0JJLnNpZ25lZFJpZ2h0U2hpZnQodGVudGhzT2ZBTWljcm9zZWNvbmQsIEpTQkkuQmlnSW50KDMyKSksIEpTQkkuQmlnSW50KDB4ZmZmZmZmZmYpKSk7XG5cbiAgICBjb25zdCByZXN1bHQgPSBCdWZmZXIuYWxsb2MoOCk7XG4gICAgcmVzdWx0LndyaXRlVUludDMyTEUobG8sIDApO1xuICAgIHJlc3VsdC53cml0ZVVJbnQzMkxFKGhpLCA0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgbG12MlJlc3BvbnNlKGRvbWFpbjogc3RyaW5nLCB1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcsIHNlcnZlck5vbmNlOiBCdWZmZXIsIGNsaWVudE5vbmNlOiBCdWZmZXIpIHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udHYySGFzaChkb21haW4sIHVzZXIsIHBhc3N3b3JkKTtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKHNlcnZlck5vbmNlLmxlbmd0aCArIGNsaWVudE5vbmNlLmxlbmd0aCwgMCk7XG5cbiAgICBzZXJ2ZXJOb25jZS5jb3B5KGRhdGEpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkoZGF0YSwgc2VydmVyTm9uY2UubGVuZ3RoLCAwLCBjbGllbnROb25jZS5sZW5ndGgpO1xuXG4gICAgY29uc3QgbmV3aGFzaCA9IHRoaXMuaG1hY01ENShkYXRhLCBoYXNoKTtcbiAgICBjb25zdCByZXNwb25zZSA9IEJ1ZmZlci5hbGxvYyhuZXdoYXNoLmxlbmd0aCArIGNsaWVudE5vbmNlLmxlbmd0aCwgMCk7XG5cbiAgICBuZXdoYXNoLmNvcHkocmVzcG9uc2UpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkocmVzcG9uc2UsIG5ld2hhc2gubGVuZ3RoLCAwLCBjbGllbnROb25jZS5sZW5ndGgpO1xuXG4gICAgcmV0dXJuIHJlc3BvbnNlO1xuICB9XG5cbiAgbnR2Mkhhc2goZG9tYWluOiBzdHJpbmcsIHVzZXI6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZykge1xuICAgIGNvbnN0IGhhc2ggPSB0aGlzLm50SGFzaChwYXNzd29yZCk7XG4gICAgY29uc3QgaWRlbnRpdHkgPSBCdWZmZXIuZnJvbSh1c2VyLnRvVXBwZXJDYXNlKCkgKyBkb21haW4udG9VcHBlckNhc2UoKSwgJ3VjczInKTtcbiAgICByZXR1cm4gdGhpcy5obWFjTUQ1KGlkZW50aXR5LCBoYXNoKTtcbiAgfVxuXG4gIG50SGFzaCh0ZXh0OiBzdHJpbmcpIHtcbiAgICBjb25zdCB1bmljb2RlU3RyaW5nID0gQnVmZmVyLmZyb20odGV4dCwgJ3VjczInKTtcbiAgICByZXR1cm4gQnVmZmVyLmZyb20obWQ0LmFycmF5QnVmZmVyKHVuaWNvZGVTdHJpbmcpKTtcbiAgfVxuXG4gIGhtYWNNRDUoZGF0YTogQnVmZmVyLCBrZXk6IEJ1ZmZlcikge1xuICAgIHJldHVybiBjcnlwdG8uY3JlYXRlSG1hYygnTUQ1Jywga2V5KS51cGRhdGUoZGF0YSkuZGlnZXN0KCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgTlRMTVJlc3BvbnNlUGF5bG9hZDtcbm1vZHVsZS5leHBvcnRzID0gTlRMTVJlc3BvbnNlUGF5bG9hZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7OztBQVlBLE1BQU1BLG1CQUFOLENBQTBCO0VBR3hCQyxXQUFXLENBQUNDLFNBQUQsRUFBcUI7SUFBQSxLQUZoQ0MsSUFFZ0M7SUFDOUIsS0FBS0EsSUFBTCxHQUFZLEtBQUtDLGNBQUwsQ0FBb0JGLFNBQXBCLENBQVo7RUFDRDs7RUFFREcsUUFBUSxDQUFDQyxNQUFNLEdBQUcsRUFBVixFQUFjO0lBQ3BCLE9BQU9BLE1BQU0sR0FBRyxXQUFoQjtFQUNEOztFQUVERixjQUFjLENBQUNHLFNBQUQsRUFBcUI7SUFDakMsTUFBTUMsWUFBWSxHQUFHLEtBQUtDLGlCQUFMLEVBQXJCO0lBQ0EsTUFBTUMsT0FBTyxHQUFHLEVBQWhCO0lBQ0EsTUFBTUMsU0FBUyxHQUFHLEVBQWxCO0lBQ0EsTUFBTUMsTUFBTSxHQUFHTCxTQUFTLENBQUNLLE1BQXpCO0lBQ0EsTUFBTUMsUUFBUSxHQUFHTixTQUFTLENBQUNPLFFBQTNCO0lBQ0EsTUFBTUMsUUFBUSxHQUFHUixTQUFTLENBQUNRLFFBQTNCO0lBQ0EsTUFBTUMsUUFBUSxHQUFHVCxTQUFTLENBQUNVLFVBQTNCO0lBQ0EsTUFBTUMsV0FBVyxHQUFHRixRQUFRLENBQUNHLE1BQTdCO0lBQ0EsTUFBTUMsWUFBWSxHQUFHSixRQUFRLENBQUNLLEtBQTlCO0lBQ0EsTUFBTUMs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
158
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOVExNUmVzcG9uc2VQYXlsb2FkIiwiY29uc3RydWN0b3IiLCJsb2dpbkRhdGEiLCJkYXRhIiwiY3JlYXRlUmVzcG9uc2UiLCJ0b1N0cmluZyIsImluZGVudCIsImNoYWxsZW5nZSIsImNsaWVudF9ub25jZSIsImNyZWF0ZUNsaWVudE5vbmNlIiwibG12MmxlbiIsIm50bG12MmxlbiIsImRvbWFpbiIsInVzZXJuYW1lIiwidXNlck5hbWUiLCJwYXNzd29yZCIsIm50bG1EYXRhIiwibnRsbXBhY2tldCIsInNlcnZlcl9kYXRhIiwidGFyZ2V0Iiwic2VydmVyX25vbmNlIiwibm9uY2UiLCJidWZmZXJMZW5ndGgiLCJsZW5ndGgiLCJXcml0YWJsZVRyYWNraW5nQnVmZmVyIiwicG9zaXRpb24iLCJ3cml0ZVN0cmluZyIsIndyaXRlVUludDMyTEUiLCJiYXNlSWR4IiwiZG5JZHgiLCJ1bklkeCIsImwySWR4IiwibnRJZHgiLCJ3cml0ZVVJbnQxNkxFIiwibG12MkRhdGEiLCJsbXYyUmVzcG9uc2UiLCJjb3B5RnJvbSIsImdlblRpbWUiLCJEYXRlIiwiZ2V0VGltZSIsIm50bG1EYXRhQnVmZmVyIiwibnRsbXYyUmVzcG9uc2UiLCJ0aW1lc3RhbXAiLCJjcmVhdGVUaW1lc3RhbXAiLCJCdWZmZXIiLCJhbGxvYyIsIm5pZHgiLCJ3cml0ZVVJbnQ4IiwiTWF0aCIsImNlaWwiLCJyYW5kb20iLCJ1c2VyIiwic2VydmVyTm9uY2UiLCJ0YXJnZXRJbmZvIiwiY2xpZW50Tm9uY2UiLCJteXRpbWUiLCJoYXNoIiwibnR2Mkhhc2giLCJkYXRhTGVuZ3RoIiwiY29weSIsImhtYWNNRDUiLCJ0aW1lIiwidGVudGhzT2ZBTWljcm9zZWNvbmQiLCJCaWdJbnQiLCJsbyIsIk51bWJlciIsImhpIiwicmVzdWx0IiwibmV3aGFzaCIsInJlc3BvbnNlIiwibnRIYXNoIiwiaWRlbnRpdHkiLCJmcm9tIiwidG9VcHBlckNhc2UiLCJ0ZXh0IiwidW5pY29kZVN0cmluZyIsIm1kNCIsImFycmF5QnVmZmVyIiwia2V5IiwiY3J5cHRvIiwiY3JlYXRlSG1hYyIsInVwZGF0ZSIsImRpZ2VzdCIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi9zcmMvbnRsbS1wYXlsb2FkLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBXcml0YWJsZVRyYWNraW5nQnVmZmVyIGZyb20gJy4vdHJhY2tpbmctYnVmZmVyL3dyaXRhYmxlLXRyYWNraW5nLWJ1ZmZlcic7XG5pbXBvcnQgKiBhcyBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCBtZDQgZnJvbSAnanMtbWQ0JztcblxuaW50ZXJmYWNlIE9wdGlvbnMge1xuICBkb21haW46IHN0cmluZztcbiAgdXNlck5hbWU6IHN0cmluZztcbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgbnRsbXBhY2tldDoge1xuICAgIHRhcmdldDogQnVmZmVyO1xuICAgIG5vbmNlOiBCdWZmZXI7XG4gIH07XG59XG5cbmNsYXNzIE5UTE1SZXNwb25zZVBheWxvYWQge1xuICBkYXRhOiBCdWZmZXI7XG5cbiAgY29uc3RydWN0b3IobG9naW5EYXRhOiBPcHRpb25zKSB7XG4gICAgdGhpcy5kYXRhID0gdGhpcy5jcmVhdGVSZXNwb25zZShsb2dpbkRhdGEpO1xuICB9XG5cbiAgdG9TdHJpbmcoaW5kZW50ID0gJycpIHtcbiAgICByZXR1cm4gaW5kZW50ICsgJ05UTE0gQXV0aCc7XG4gIH1cblxuICBjcmVhdGVSZXNwb25zZShjaGFsbGVuZ2U6IE9wdGlvbnMpIHtcbiAgICBjb25zdCBjbGllbnRfbm9uY2UgPSB0aGlzLmNyZWF0ZUNsaWVudE5vbmNlKCk7XG4gICAgY29uc3QgbG12MmxlbiA9IDI0O1xuICAgIGNvbnN0IG50bG12MmxlbiA9IDE2O1xuICAgIGNvbnN0IGRvbWFpbiA9IGNoYWxsZW5nZS5kb21haW47XG4gICAgY29uc3QgdXNlcm5hbWUgPSBjaGFsbGVuZ2UudXNlck5hbWU7XG4gICAgY29uc3QgcGFzc3dvcmQgPSBjaGFsbGVuZ2UucGFzc3dvcmQ7XG4gICAgY29uc3QgbnRsbURhdGEgPSBjaGFsbGVuZ2UubnRsbXBhY2tldDtcbiAgICBjb25zdCBzZXJ2ZXJfZGF0YSA9IG50bG1EYXRhLnRhcmdldDtcbiAgICBjb25zdCBzZXJ2ZXJfbm9uY2UgPSBudGxtRGF0YS5ub25jZTtcbiAgICBjb25zdCBidWZmZXJMZW5ndGggPSA2NCArIChkb21haW4ubGVuZ3RoICogMikgKyAodXNlcm5hbWUubGVuZ3RoICogMikgKyBsbXYybGVuICsgbnRsbXYybGVuICsgOCArIDggKyA4ICsgNCArIHNlcnZlcl9kYXRhLmxlbmd0aCArIDQ7XG4gICAgY29uc3QgZGF0YSA9IG5ldyBXcml0YWJsZVRyYWNraW5nQnVmZmVyKGJ1ZmZlckxlbmd0aCk7XG4gICAgZGF0YS5wb3NpdGlvbiA9IDA7XG4gICAgZGF0YS53cml0ZVN0cmluZygnTlRMTVNTUFxcdTAwMDAnLCAndXRmOCcpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAzKTtcbiAgICBjb25zdCBiYXNlSWR4ID0gNjQ7XG4gICAgY29uc3QgZG5JZHggPSBiYXNlSWR4O1xuICAgIGNvbnN0IHVuSWR4ID0gZG5JZHggKyBkb21haW4ubGVuZ3RoICogMjtcbiAgICBjb25zdCBsMklkeCA9IHVuSWR4ICsgdXNlcm5hbWUubGVuZ3RoICogMjtcbiAgICBjb25zdCBudElkeCA9IGwySWR4ICsgbG12MmxlbjtcbiAgICBkYXRhLndyaXRlVUludDE2TEUobG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKGxtdjJsZW4pO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRShsMklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKG50bG12Mmxlbik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKG50SWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUoZG9tYWluLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRShkb21haW4ubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKGRuSWR4KTtcbiAgICBkYXRhLndyaXRlVUludDE2TEUodXNlcm5hbWUubGVuZ3RoICogMik7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKHVzZXJuYW1lLmxlbmd0aCAqIDIpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSh1bklkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDApO1xuICAgIGRhdGEud3JpdGVVSW50MTZMRSgwKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoYmFzZUlkeCk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4ODIwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQxNkxFKDB4MDgpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcoZG9tYWluLCAndWNzMicpO1xuICAgIGRhdGEud3JpdGVTdHJpbmcodXNlcm5hbWUsICd1Y3MyJyk7XG4gICAgY29uc3QgbG12MkRhdGEgPSB0aGlzLmxtdjJSZXNwb25zZShkb21haW4sIHVzZXJuYW1lLCBwYXNzd29yZCwgc2VydmVyX25vbmNlLCBjbGllbnRfbm9uY2UpO1xuICAgIGRhdGEuY29weUZyb20obG12MkRhdGEpO1xuICAgIGNvbnN0IGdlblRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICBjb25zdCBudGxtRGF0YUJ1ZmZlciA9IHRoaXMubnRsbXYyUmVzcG9uc2UoZG9tYWluLCB1c2VybmFtZSwgcGFzc3dvcmQsIHNlcnZlcl9ub25jZSwgc2VydmVyX2RhdGEsIGNsaWVudF9ub25jZSwgZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbShudGxtRGF0YUJ1ZmZlcik7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDEwMSk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MDAwMCk7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAoZ2VuVGltZSk7XG4gICAgZGF0YS5jb3B5RnJvbSh0aW1lc3RhbXApO1xuICAgIGRhdGEuY29weUZyb20oY2xpZW50X25vbmNlKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICBkYXRhLmNvcHlGcm9tKHNlcnZlcl9kYXRhKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwMDAwKTtcbiAgICByZXR1cm4gZGF0YS5kYXRhO1xuICB9XG5cbiAgY3JlYXRlQ2xpZW50Tm9uY2UoKSB7XG4gICAgY29uc3QgY2xpZW50X25vbmNlID0gQnVmZmVyLmFsbG9jKDgsIDApO1xuICAgIGxldCBuaWR4ID0gMDtcbiAgICB3aGlsZSAobmlkeCA8IDgpIHtcbiAgICAgIGNsaWVudF9ub25jZS53cml0ZVVJbnQ4KE1hdGguY2VpbChNYXRoLnJhbmRvbSgpICogMjU1KSwgbmlkeCk7XG4gICAgICBuaWR4Kys7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRfbm9uY2U7XG4gIH1cblxuICBudGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCB0YXJnZXRJbmZvOiBCdWZmZXIsIGNsaWVudE5vbmNlOiBCdWZmZXIsIG15dGltZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdGltZXN0YW1wID0gdGhpcy5jcmVhdGVUaW1lc3RhbXAobXl0aW1lKTtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udHYySGFzaChkb21haW4sIHVzZXIsIHBhc3N3b3JkKTtcbiAgICBjb25zdCBkYXRhTGVuZ3RoID0gNDAgKyB0YXJnZXRJbmZvLmxlbmd0aDtcbiAgICBjb25zdCBkYXRhID0gQnVmZmVyLmFsbG9jKGRhdGFMZW5ndGgsIDApO1xuICAgIHNlcnZlck5vbmNlLmNvcHkoZGF0YSwgMCwgMCwgOCk7XG4gICAgZGF0YS53cml0ZVVJbnQzMkxFKDB4MTAxLCA4KTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAxMik7XG4gICAgdGltZXN0YW1wLmNvcHkoZGF0YSwgMTYsIDAsIDgpO1xuICAgIGNsaWVudE5vbmNlLmNvcHkoZGF0YSwgMjQsIDAsIDgpO1xuICAgIGRhdGEud3JpdGVVSW50MzJMRSgweDAsIDMyKTtcbiAgICB0YXJnZXRJbmZvLmNvcHkoZGF0YSwgMzYsIDAsIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICBkYXRhLndyaXRlVUludDMyTEUoMHgwLCAzNiArIHRhcmdldEluZm8ubGVuZ3RoKTtcbiAgICByZXR1cm4gdGhpcy5obWFjTUQ1KGRhdGEsIGhhc2gpO1xuICB9XG5cbiAgY3JlYXRlVGltZXN0YW1wKHRpbWU6IG51bWJlcikge1xuICAgIGNvbnN0IHRlbnRoc09mQU1pY3Jvc2Vjb25kID0gKEJpZ0ludCh0aW1lKSArIEJpZ0ludCgxMTY0NDQ3MzYwMCkpICogQmlnSW50KDEwMDAwMDAwKTtcblxuICAgIGNvbnN0IGxvID0gTnVtYmVyKHRlbnRoc09mQU1pY3Jvc2Vjb25kICYgQmlnSW50KDB4ZmZmZmZmZmYpKTtcbiAgICBjb25zdCBoaSA9IE51bWJlcigodGVudGhzT2ZBTWljcm9zZWNvbmQgPj4gQmlnSW50KDMyKSkgJiBCaWdJbnQoMHhmZmZmZmZmZikpO1xuXG4gICAgY29uc3QgcmVzdWx0ID0gQnVmZmVyLmFsbG9jKDgpO1xuICAgIHJlc3VsdC53cml0ZVVJbnQzMkxFKGxvLCAwKTtcbiAgICByZXN1bHQud3JpdGVVSW50MzJMRShoaSwgNCk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGxtdjJSZXNwb25zZShkb21haW46IHN0cmluZywgdXNlcjogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nLCBzZXJ2ZXJOb25jZTogQnVmZmVyLCBjbGllbnROb25jZTogQnVmZmVyKSB7XG4gICAgY29uc3QgaGFzaCA9IHRoaXMubnR2Mkhhc2goZG9tYWluLCB1c2VyLCBwYXNzd29yZCk7XG4gICAgY29uc3QgZGF0YSA9IEJ1ZmZlci5hbGxvYyhzZXJ2ZXJOb25jZS5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgc2VydmVyTm9uY2UuY29weShkYXRhKTtcbiAgICBjbGllbnROb25jZS5jb3B5KGRhdGEsIHNlcnZlck5vbmNlLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIGNvbnN0IG5ld2hhc2ggPSB0aGlzLmhtYWNNRDUoZGF0YSwgaGFzaCk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBCdWZmZXIuYWxsb2MobmV3aGFzaC5sZW5ndGggKyBjbGllbnROb25jZS5sZW5ndGgsIDApO1xuXG4gICAgbmV3aGFzaC5jb3B5KHJlc3BvbnNlKTtcbiAgICBjbGllbnROb25jZS5jb3B5KHJlc3BvbnNlLCBuZXdoYXNoLmxlbmd0aCwgMCwgY2xpZW50Tm9uY2UubGVuZ3RoKTtcblxuICAgIHJldHVybiByZXNwb25zZTtcbiAgfVxuXG4gIG50djJIYXNoKGRvbWFpbjogc3RyaW5nLCB1c2VyOiBzdHJpbmcsIHBhc3N3b3JkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBoYXNoID0gdGhpcy5udEhhc2gocGFzc3dvcmQpO1xuICAgIGNvbnN0IGlkZW50aXR5ID0gQnVmZmVyLmZyb20odXNlci50b1VwcGVyQ2FzZSgpICsgZG9tYWluLnRvVXBwZXJDYXNlKCksICd1Y3MyJyk7XG4gICAgcmV0dXJuIHRoaXMuaG1hY01ENShpZGVudGl0eSwgaGFzaCk7XG4gIH1cblxuICBudEhhc2godGV4dDogc3RyaW5nKSB7XG4gICAgY29uc3QgdW5pY29kZVN0cmluZyA9IEJ1ZmZlci5mcm9tKHRleHQsICd1Y3MyJyk7XG4gICAgcmV0dXJuIEJ1ZmZlci5mcm9tKG1kNC5hcnJheUJ1ZmZlcih1bmljb2RlU3RyaW5nKSk7XG4gIH1cblxuICBobWFjTUQ1KGRhdGE6IEJ1ZmZlciwga2V5OiBCdWZmZXIpIHtcbiAgICByZXR1cm4gY3J5cHRvLmNyZWF0ZUhtYWMoJ01ENScsIGtleSkudXBkYXRlKGRhdGEpLmRpZ2VzdCgpO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IE5UTE1SZXNwb25zZVBheWxvYWQ7XG5tb2R1bGUuZXhwb3J0cyA9IE5UTE1SZXNwb25zZVBheWxvYWQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFZQSxNQUFNQSxtQkFBTixDQUEwQjtFQUd4QkMsV0FBVyxDQUFDQyxTQUFELEVBQXFCO0lBQUEsS0FGaENDLElBRWdDO0lBQzlCLEtBQUtBLElBQUwsR0FBWSxLQUFLQyxjQUFMLENBQW9CRixTQUFwQixDQUFaO0VBQ0Q7O0VBRURHLFFBQVEsQ0FBQ0MsTUFBTSxHQUFHLEVBQVYsRUFBYztJQUNwQixPQUFPQSxNQUFNLEdBQUcsV0FBaEI7RUFDRDs7RUFFREYsY0FBYyxDQUFDRyxTQUFELEVBQXFCO0lBQ2pDLE1BQU1DLFlBQVksR0FBRyxLQUFLQyxpQkFBTCxFQUFyQjtJQUNBLE1BQU1DLE9BQU8sR0FBRyxFQUFoQjtJQUNBLE1BQU1DLFNBQVMsR0FBRyxFQUFsQjtJQUNBLE1BQU1DLE1BQU0sR0FBR0wsU0FBUyxDQUFDSyxNQUF6QjtJQUNBLE1BQU1DLFFBQVEsR0FBR04sU0FBUyxDQUFDTyxRQUEzQjtJQUNBLE1BQU1DLFFBQVEsR0FBR1IsU0FBUyxDQUFDUSxRQUEzQjtJQUNBLE1BQU1DLFFBQVEsR0FBR1QsU0FBUyxDQUFDVSxVQUEzQjtJQUNBLE1BQU1DLFdBQVcsR0FBR0YsUUFBUSxDQUFDRyxNQUE3QjtJQUNBLE1BQU1DLFlBQVksR0FBR0osUUFBUSxDQUFDSyxLQUE5QjtJQUNBLE1BQU1DLFlBQVksR0FBRyxLQUFNVixNQUFNLENBQUNXLE1BQVAsR0FBZ0IsQ0FBdEIsR0FBNEJWLFFBQVEsQ0FBQ1UsTUFBVCxHQUFrQixDQUE5QyxHQUFtRGIsT0FBbkQsR0FBNkRDLFNBQTdELEdBQXlFLENBQXpFLEdBQTZFLENBQTdFLEdBQWlGLENBQWpGLEdBQXFGLENBQXJGLEdBQXlGTyxXQUFXLENBQUNLLE1BQXJHLEdBQThHLENBQW5JO0lBQ0EsTUFBTXBCLElBQUks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
@@ -7,12 +7,8 @@ exports.doneInProcParser = doneInProcParser;
7
7
  exports.doneParser = doneParser;
8
8
  exports.doneProcParser = doneProcParser;
9
9
 
10
- var _jsbi = _interopRequireDefault(require("jsbi"));
11
-
12
10
  var _token = require("./token");
13
11
 
14
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
-
16
12
  // s2.2.7.5/6/7
17
13
  const STATUS = {
18
14
  MORE: 0x0001,
@@ -47,7 +43,7 @@ function parseToken(parser, options, callback) {
47
43
  parser.readUInt32LE(next);
48
44
  } else {
49
45
  parser.readBigUInt64LE(rowCount => {
50
- next(_jsbi.default.toNumber(rowCount));
46
+ next(Number(rowCount));
51
47
  });
52
48
  }
53
49
  });
@@ -71,4 +67,4 @@ function doneProcParser(parser, options, callback) {
71
67
  callback(new _token.DoneProcToken(data));
72
68
  });
73
69
  }
74
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFUVVMiLCJNT1JFIiwiRVJST1IiLCJJTlhBQ1QiLCJDT1VOVCIsIkFUVE4iLCJTUlZFUlJPUiIsInBhcnNlVG9rZW4iLCJwYXJzZXIiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJyZWFkVUludDE2TEUiLCJzdGF0dXMiLCJtb3JlIiwic3FsRXJyb3IiLCJyb3dDb3VudFZhbGlkIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJjdXJDbWQiLCJuZXh0Iiwicm93Q291bnQiLCJ1bmRlZmluZWQiLCJ0ZHNWZXJzaW9uIiwicmVhZFVJbnQzMkxFIiwicmVhZEJpZ1VJbnQ2NExFIiwiSlNCSSIsInRvTnVtYmVyIiwiZG9uZVBhcnNlciIsImRhdGEiLCJEb25lVG9rZW4iLCJkb25lSW5Qcm9jUGFyc2VyIiwiRG9uZUluUHJvY1Rva2VuIiwiZG9uZVByb2NQYXJzZXIiLCJEb25lUHJvY1Rva2VuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2RvbmUtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBKU0JJIGZyb20gJ2pzYmknO1xuXG5pbXBvcnQgUGFyc2VyLCB7IFBhcnNlck9wdGlvbnMgfSBmcm9tICcuL3N0cmVhbS1wYXJzZXInO1xuaW1wb3J0IHsgRG9uZVRva2VuLCBEb25lSW5Qcm9jVG9rZW4sIERvbmVQcm9jVG9rZW4gfSBmcm9tICcuL3Rva2VuJztcblxuLy8gczIuMi43LjUvNi83XG5cbmNvbnN0IFNUQVRVUyA9IHtcbiAgTU9SRTogMHgwMDAxLFxuICBFUlJPUjogMHgwMDAyLFxuICAvLyBUaGlzIGJpdCBpcyBub3QgeWV0IGluIHVzZSBieSBTUUwgU2VydmVyLCBzbyBpcyBub3QgZXhwb3NlZCBpbiB0aGUgcmV0dXJuZWQgdG9rZW5cbiAgSU5YQUNUOiAweDAwMDQsXG4gIENPVU5UOiAweDAwMTAsXG4gIEFUVE46IDB4MDAyMCxcbiAgU1JWRVJST1I6IDB4MDEwMFxufTtcblxuaW50ZXJmYWNlIFRva2VuRGF0YSB7XG4gIG1vcmU6IGJvb2xlYW47XG4gIHNxbEVycm9yOiBib29sZWFuO1xuICBhdHRlbnRpb246IGJvb2xlYW47XG4gIHNlcnZlckVycm9yOiBib29sZWFuO1xuICByb3dDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBjdXJDbWQ6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGFyc2VUb2tlbihwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6IChkYXRhOiBUb2tlbkRhdGEpID0+IHZvaWQpIHtcbiAgcGFyc2VyLnJlYWRVSW50MTZMRSgoc3RhdHVzKSA9PiB7XG4gICAgY29uc3QgbW9yZSA9ICEhKHN0YXR1cyAmIFNUQVRVUy5NT1JFKTtcbiAgICBjb25zdCBzcWxFcnJvciA9ICEhKHN0YXR1cyAmIFNUQVRVUy5FUlJPUik7XG4gICAgY29uc3Qgcm93Q291bnRWYWxpZCA9ICEhKHN0YXR1cyAmIFNUQVRVUy5DT1VOVCk7XG4gICAgY29uc3QgYXR0ZW50aW9uID0gISEoc3RhdHVzICYgU1RBVFVTLkFUVE4pO1xuICAgIGNvbnN0IHNlcnZlckVycm9yID0gISEoc3RhdHVzICYgU1RBVFVTLlNSVkVSUk9SKTtcblxuICAgIHBhcnNlci5yZWFkVUludDE2TEUoKGN1ckNtZCkgPT4ge1xuICAgICAgY29uc3QgbmV4dCA9IChyb3dDb3VudDogbnVtYmVyKSA9PiB7XG4gICAgICAgIGNhbGxiYWNrKHtcbiAgICAgICAgICBtb3JlOiBtb3JlLFxuICAgICAgICAgIHNxbEVycm9yOiBzcWxFcnJvcixcbiAgICAgICAgICBhdHRlbnRpb246IGF0dGVudGlvbixcbiAgICAgICAgICBzZXJ2ZXJFcnJvcjogc2VydmVyRXJyb3IsXG4gICAgICAgICAgcm93Q291bnQ6IHJvd0NvdW50VmFsaWQgPyByb3dDb3VudCA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBjdXJDbWQ6IGN1ckNtZFxuICAgICAgICB9KTtcbiAgICAgIH07XG5cbiAgICAgIGlmIChvcHRpb25zLnRkc1ZlcnNpb24gPCAnN18yJykge1xuICAgICAgICBwYXJzZXIucmVhZFVJbnQzMkxFKG5leHQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyc2VyLnJlYWRCaWdVSW50NjRMRSgocm93Q291bnQpID0+IHtcbiAgICAgICAgICBuZXh0KEpTQkkudG9OdW1iZXIocm93Q291bnQpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZVBhcnNlcihwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6ICh0b2tlbjogRG9uZVRva2VuKSA9PiB2b2lkKSB7XG4gIHBhcnNlVG9rZW4ocGFyc2VyLCBvcHRpb25zLCAoZGF0YSkgPT4ge1xuICAgIGNhbGxiYWNrKG5ldyBEb25lVG9rZW4oZGF0YSkpO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvbmVJblByb2NQYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IERvbmVJblByb2NUb2tlbikgPT4gdm9pZCkge1xuICBwYXJzZVRva2VuKHBhcnNlciwgb3B0aW9ucywgKGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayhuZXcgRG9uZUluUHJvY1Rva2VuKGRhdGEpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb25lUHJvY1BhcnNlcihwYXJzZXI6IFBhcnNlciwgb3B0aW9uczogUGFyc2VyT3B0aW9ucywgY2FsbGJhY2s6ICh0b2tlbjogRG9uZVByb2NUb2tlbikgPT4gdm9pZCkge1xuICBwYXJzZVRva2VuKHBhcnNlciwgb3B0aW9ucywgKGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayhuZXcgRG9uZVByb2NUb2tlbihkYXRhKSk7XG4gIH0pO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFHQTs7OztBQUVBO0FBRUEsTUFBTUEsTUFBTSxHQUFHO0VBQ2JDLElB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
70
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTVEFUVVMiLCJNT1JFIiwiRVJST1IiLCJJTlhBQ1QiLCJDT1VOVCIsIkFUVE4iLCJTUlZFUlJPUiIsInBhcnNlVG9rZW4iLCJwYXJzZXIiLCJvcHRpb25zIiwiY2FsbGJhY2siLCJyZWFkVUludDE2TEUiLCJzdGF0dXMiLCJtb3JlIiwic3FsRXJyb3IiLCJyb3dDb3VudFZhbGlkIiwiYXR0ZW50aW9uIiwic2VydmVyRXJyb3IiLCJjdXJDbWQiLCJuZXh0Iiwicm93Q291bnQiLCJ1bmRlZmluZWQiLCJ0ZHNWZXJzaW9uIiwicmVhZFVJbnQzMkxFIiwicmVhZEJpZ1VJbnQ2NExFIiwiTnVtYmVyIiwiZG9uZVBhcnNlciIsImRhdGEiLCJEb25lVG9rZW4iLCJkb25lSW5Qcm9jUGFyc2VyIiwiRG9uZUluUHJvY1Rva2VuIiwiZG9uZVByb2NQYXJzZXIiLCJEb25lUHJvY1Rva2VuIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rva2VuL2RvbmUtdG9rZW4tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXJzZXIsIHsgUGFyc2VyT3B0aW9ucyB9IGZyb20gJy4vc3RyZWFtLXBhcnNlcic7XG5pbXBvcnQgeyBEb25lVG9rZW4sIERvbmVJblByb2NUb2tlbiwgRG9uZVByb2NUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuXG4vLyBzMi4yLjcuNS82LzdcblxuY29uc3QgU1RBVFVTID0ge1xuICBNT1JFOiAweDAwMDEsXG4gIEVSUk9SOiAweDAwMDIsXG4gIC8vIFRoaXMgYml0IGlzIG5vdCB5ZXQgaW4gdXNlIGJ5IFNRTCBTZXJ2ZXIsIHNvIGlzIG5vdCBleHBvc2VkIGluIHRoZSByZXR1cm5lZCB0b2tlblxuICBJTlhBQ1Q6IDB4MDAwNCxcbiAgQ09VTlQ6IDB4MDAxMCxcbiAgQVRUTjogMHgwMDIwLFxuICBTUlZFUlJPUjogMHgwMTAwXG59O1xuXG5pbnRlcmZhY2UgVG9rZW5EYXRhIHtcbiAgbW9yZTogYm9vbGVhbjtcbiAgc3FsRXJyb3I6IGJvb2xlYW47XG4gIGF0dGVudGlvbjogYm9vbGVhbjtcbiAgc2VydmVyRXJyb3I6IGJvb2xlYW47XG4gIHJvd0NvdW50OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGN1ckNtZDogbnVtYmVyO1xufVxuXG5mdW5jdGlvbiBwYXJzZVRva2VuKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKGRhdGE6IFRva2VuRGF0YSkgPT4gdm9pZCkge1xuICBwYXJzZXIucmVhZFVJbnQxNkxFKChzdGF0dXMpID0+IHtcbiAgICBjb25zdCBtb3JlID0gISEoc3RhdHVzICYgU1RBVFVTLk1PUkUpO1xuICAgIGNvbnN0IHNxbEVycm9yID0gISEoc3RhdHVzICYgU1RBVFVTLkVSUk9SKTtcbiAgICBjb25zdCByb3dDb3VudFZhbGlkID0gISEoc3RhdHVzICYgU1RBVFVTLkNPVU5UKTtcbiAgICBjb25zdCBhdHRlbnRpb24gPSAhIShzdGF0dXMgJiBTVEFUVVMuQVRUTik7XG4gICAgY29uc3Qgc2VydmVyRXJyb3IgPSAhIShzdGF0dXMgJiBTVEFUVVMuU1JWRVJST1IpO1xuXG4gICAgcGFyc2VyLnJlYWRVSW50MTZMRSgoY3VyQ21kKSA9PiB7XG4gICAgICBjb25zdCBuZXh0ID0gKHJvd0NvdW50OiBudW1iZXIpID0+IHtcbiAgICAgICAgY2FsbGJhY2soe1xuICAgICAgICAgIG1vcmU6IG1vcmUsXG4gICAgICAgICAgc3FsRXJyb3I6IHNxbEVycm9yLFxuICAgICAgICAgIGF0dGVudGlvbjogYXR0ZW50aW9uLFxuICAgICAgICAgIHNlcnZlckVycm9yOiBzZXJ2ZXJFcnJvcixcbiAgICAgICAgICByb3dDb3VudDogcm93Q291bnRWYWxpZCA/IHJvd0NvdW50IDogdW5kZWZpbmVkLFxuICAgICAgICAgIGN1ckNtZDogY3VyQ21kXG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgaWYgKG9wdGlvbnMudGRzVmVyc2lvbiA8ICc3XzInKSB7XG4gICAgICAgIHBhcnNlci5yZWFkVUludDMyTEUobmV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwYXJzZXIucmVhZEJpZ1VJbnQ2NExFKChyb3dDb3VudCkgPT4ge1xuICAgICAgICAgIG5leHQoTnVtYmVyKHJvd0NvdW50KSk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRvbmVQYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IERvbmVUb2tlbikgPT4gdm9pZCkge1xuICBwYXJzZVRva2VuKHBhcnNlciwgb3B0aW9ucywgKGRhdGEpID0+IHtcbiAgICBjYWxsYmFjayhuZXcgRG9uZVRva2VuKGRhdGEpKTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkb25lSW5Qcm9jUGFyc2VyKHBhcnNlcjogUGFyc2VyLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjYWxsYmFjazogKHRva2VuOiBEb25lSW5Qcm9jVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VUb2tlbihwYXJzZXIsIG9wdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sobmV3IERvbmVJblByb2NUb2tlbihkYXRhKSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZG9uZVByb2NQYXJzZXIocGFyc2VyOiBQYXJzZXIsIG9wdGlvbnM6IFBhcnNlck9wdGlvbnMsIGNhbGxiYWNrOiAodG9rZW46IERvbmVQcm9jVG9rZW4pID0+IHZvaWQpIHtcbiAgcGFyc2VUb2tlbihwYXJzZXIsIG9wdGlvbnMsIChkYXRhKSA9PiB7XG4gICAgY2FsbGJhY2sobmV3IERvbmVQcm9jVG9rZW4oZGF0YSkpO1xuICB9KTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQ0E7O0FBRUE7QUFFQSxNQUFNQSxNQUFNLEdBQUc7RUFDYkMsSUFBSSxFQUFFLE1BRE87RUFFYkMsS0FBSyxFQUFFLE1BRk07RUFHYjtFQUNBQyxNQUFNLEVB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
@@ -5,8 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = void 0;
7
7
 
8
- var _jsbi = _interopRequireDefault(require("jsbi"));
9
-
10
8
  var _token = require("./token");
11
9
 
12
10
  var _colmetadataTokenParser = _interopRequireDefault(require("./colmetadata-token-parser"));
@@ -272,11 +270,9 @@ class Parser {
272
270
 
273
271
  readBigInt64LE(callback) {
274
272
  this.awaitData(8, () => {
275
- const result = _jsbi.default.add(_jsbi.default.leftShift(_jsbi.default.BigInt(this.buffer[this.position + 4] + this.buffer[this.position + 5] * 2 ** 8 + this.buffer[this.position + 6] * 2 ** 16 + (this.buffer[this.position + 7] << 24) // Overflow
276
- ), _jsbi.default.BigInt(32)), _jsbi.default.BigInt(this.buffer[this.position] + this.buffer[this.position + 1] * 2 ** 8 + this.buffer[this.position + 2] * 2 ** 16 + this.buffer[this.position + 3] * 2 ** 24));
277
-
273
+ const data = this.buffer.readBigInt64LE(this.position);
278
274
  this.position += 8;
279
- callback(result);
275
+ callback(data);
280
276
  });
281
277
  }
282
278
 
@@ -298,12 +294,9 @@ class Parser {
298
294
 
299
295
  readBigUInt64LE(callback) {
300
296
  this.awaitData(8, () => {
301
- const low = _jsbi.default.BigInt(this.buffer.readUInt32LE(this.position));
302
-
303
- const high = _jsbi.default.BigInt(this.buffer.readUInt32LE(this.position + 4));
304
-
297
+ const data = this.buffer.readBigUInt64LE(this.position);
305
298
  this.position += 8;
306
- callback(_jsbi.default.add(low, _jsbi.default.leftShift(high, _jsbi.default.BigInt(32))));
299
+ callback(data);
307
300
  });
308
301
  }
309
302
 
@@ -449,4 +442,4 @@ class Parser {
449
442
  var _default = Parser;
450
443
  exports.default = _default;
451
444
  module.exports = Parser;
452
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0b2tlblBhcnNlcnMiLCJUWVBFIiwiRE9ORSIsImRvbmVQYXJzZXIiLCJET05FSU5QUk9DIiwiZG9uZUluUHJvY1BhcnNlciIsIkRPTkVQUk9DIiwiZG9uZVByb2NQYXJzZXIiLCJFTlZDSEFOR0UiLCJlbnZDaGFuZ2VQYXJzZXIiLCJFUlJPUiIsImVycm9yUGFyc2VyIiwiRkVEQVVUSElORk8iLCJmZWRBdXRoSW5mb1BhcnNlciIsIkZFQVRVUkVFWFRBQ0siLCJmZWF0dXJlRXh0QWNrUGFyc2VyIiwiSU5GTyIsImluZm9QYXJzZXIiLCJMT0dJTkFDSyIsImxvZ2luQWNrUGFyc2VyIiwiT1JERVIiLCJvcmRlclBhcnNlciIsIlJFVFVSTlNUQVRVUyIsInJldHVyblN0YXR1c1BhcnNlciIsIlJFVFVSTlZBTFVFIiwicmV0dXJuVmFsdWVQYXJzZXIiLCJTU1BJIiwic3NwaVBhcnNlciIsIlN0cmVhbUJ1ZmZlciIsImNvbnN0cnVjdG9yIiwiaXRlcmFibGUiLCJpdGVyYXRvciIsImJ1ZmZlciIsInBvc2l0aW9uIiwiU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsImNhbGwiLCJCdWZmZXIiLCJhbGxvYyIsIndhaXRGb3JDaHVuayIsInJlc3VsdCIsIm5leHQiLCJkb25lIiwiRXJyb3IiLCJsZW5ndGgiLCJ2YWx1ZSIsImNvbmNhdCIsInNsaWNlIiwiUGFyc2VyIiwicGFyc2VUb2tlbnMiLCJkZWJ1ZyIsIm9wdGlvbnMiLCJjb2xNZXRhZGF0YSIsInRva2VuIiwib25Eb25lUGFyc2luZyIsInQiLCJzdHJlYW1CdWZmZXIiLCJwYXJzZXIiLCJlcnIiLCJzdXNwZW5kZWQiLCJDb2xNZXRhZGF0YVRva2VuIiwiY29sdW1ucyIsInR5cGUiLCJyZWFkVUludDgiLCJDT0xNRVRBREFUQSIsIlJPVyIsIk5CQ1JPVyIsInVuZGVmaW5lZCIsInN1c3BlbmQiLCJhd2FpdERhdGEiLCJjYWxsYmFjayIsInJlYWRJbnQ4IiwiZGF0YSIsInJlYWRJbnQxNkxFIiwicmVhZEludDE2QkUiLCJyZWFkVUludDE2TEUiLCJyZWFkVUludDE2QkUiLCJyZWFkSW50MzJMRSIsInJlYWRJbnQzMkJFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZEJpZ0ludDY0TEUiLCJKU0JJIiwiYWRkIiwibGVmdFNoaWZ0IiwiQmlnSW50IiwicmVhZEludDY0TEUiLCJNYXRoIiwicG93IiwicmVhZEludDY0QkUiLCJyZWFkQmlnVUludDY0TEUiLCJsb3ciLCJoaWdoIiwicmVhZFVJbnQ2NExFIiwicmVhZFVJbnQ2NEJFIiwicmVhZEZsb2F0TEUiLCJyZWFkRmxvYXRCRSIsInJlYWREb3VibGVMRSIsInJlYWREb3VibGVCRSIsInJlYWRVSW50MjRMRSIsInJlYWRVSW50NDBMRSIsInJlYWRVTnVtZXJpYzY0TEUiLCJyZWFkVU51bWVyaWM5NkxFIiwiZHdvcmQxIiwiZHdvcmQyIiwiZHdvcmQzIiwicmVhZFVOdW1lcmljMTI4TEUiLCJkd29yZDQiLCJyZWFkQnVmZmVyIiwicmVhZEJWYXJDaGFyIiwidG9TdHJpbmciLCJyZWFkVXNWYXJDaGFyIiwicmVhZEJWYXJCeXRlIiwicmVhZFVzVmFyQnl0ZSIsIm1vZHVsZSIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdG9rZW4vc3RyZWFtLXBhcnNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgRGVidWcgZnJvbSAnLi4vZGVidWcnO1xuaW1wb3J0IHsgSW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucyB9IGZyb20gJy4uL2Nvbm5lY3Rpb24nO1xuaW1wb3J0IEpTQkkgZnJvbSAnanNiaSc7XG5cbmltcG9ydCB7IFRZUEUsIFRva2VuLCBDb2xNZXRhZGF0YVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCBjb2xNZXRhZGF0YVBhcnNlciwgeyBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcbmltcG9ydCB7IGRvbmVQYXJzZXIsIGRvbmVJblByb2NQYXJzZXIsIGRvbmVQcm9jUGFyc2VyIH0gZnJvbSAnLi9kb25lLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgZW52Q2hhbmdlUGFyc2VyIGZyb20gJy4vZW52LWNoYW5nZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgZXJyb3JQYXJzZXIsIGluZm9QYXJzZXIgfSBmcm9tICcuL2luZm9lcnJvci10b2tlbi1wYXJzZXInO1xuaW1wb3J0IGZlZEF1dGhJbmZvUGFyc2VyIGZyb20gJy4vZmVkYXV0aC1pbmZvLXBhcnNlcic7XG5pbXBvcnQgZmVhdHVyZUV4dEFja1BhcnNlciBmcm9tICcuL2ZlYXR1cmUtZXh0LWFjay1wYXJzZXInO1xuaW1wb3J0IGxvZ2luQWNrUGFyc2VyIGZyb20gJy4vbG9naW5hY2stdG9rZW4tcGFyc2VyJztcbmltcG9ydCBvcmRlclBhcnNlciBmcm9tICcuL29yZGVyLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuU3RhdHVzUGFyc2VyIGZyb20gJy4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuVmFsdWVQYXJzZXIgZnJvbSAnLi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHJvd1BhcnNlciBmcm9tICcuL3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IG5iY1Jvd1BhcnNlciBmcm9tICcuL25iY3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHNzcGlQYXJzZXIgZnJvbSAnLi9zc3BpLXRva2VuLXBhcnNlcic7XG5cbmNvbnN0IHRva2VuUGFyc2VycyA9IHtcbiAgW1RZUEUuRE9ORV06IGRvbmVQYXJzZXIsXG4gIFtUWVBFLkRPTkVJTlBST0NdOiBkb25lSW5Qcm9jUGFyc2VyLFxuICBbVFlQRS5ET05FUFJPQ106IGRvbmVQcm9jUGFyc2VyLFxuICBbVFlQRS5FTlZDSEFOR0VdOiBlbnZDaGFuZ2VQYXJzZXIsXG4gIFtUWVBFLkVSUk9SXTogZXJyb3JQYXJzZXIsXG4gIFtUWVBFLkZFREFVVEhJTkZPXTogZmVkQXV0aEluZm9QYXJzZXIsXG4gIFtUWVBFLkZFQVRVUkVFWFRBQ0tdOiBmZWF0dXJlRXh0QWNrUGFyc2VyLFxuICBbVFlQRS5JTkZPXTogaW5mb1BhcnNlcixcbiAgW1RZUEUuTE9HSU5BQ0tdOiBsb2dpbkFja1BhcnNlcixcbiAgW1RZUEUuT1JERVJdOiBvcmRlclBhcnNlcixcbiAgW1RZUEUuUkVUVVJOU1RBVFVTXTogcmV0dXJuU3RhdHVzUGFyc2VyLFxuICBbVFlQRS5SRVRVUk5WQUxVRV06IHJldHVyblZhbHVlUGFyc2VyLFxuICBbVFlQRS5TU1BJXTogc3NwaVBhcnNlclxufTtcblxuZXhwb3J0IHR5cGUgUGFyc2VyT3B0aW9ucyA9IFBpY2s8SW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucywgJ3VzZVVUQycgfCAnbG93ZXJDYXNlR3VpZHMnIHwgJ3Rkc1ZlcnNpb24nIHwgJ3VzZUNvbHVtbk5hbWVzJyB8ICdjb2x1bW5OYW1lUmVwbGFjZXInIHwgJ2NhbWVsQ2FzZUNvbHVtbnMnPjtcblxuY2xhc3MgU3RyZWFtQnVmZmVyIHtcbiAgaXRlcmF0b3I6IEFzeW5jSXRlcmF0b3I8QnVmZmVyLCBhbnksIHVuZGVmaW5lZD4gfCBJdGVyYXRvcjxCdWZmZXIsIGFueSwgdW5kZWZpbmVkPjtcbiAgYnVmZmVyOiBCdWZmZXI7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoaXRlcmFibGU6IEFzeW5jSXRlcmFibGU8QnVmZmVyPiB8IEl0ZXJhYmxlPEJ1ZmZlcj4pIHtcbiAgICB0aGlzLml0ZXJhdG9yID0gKChpdGVyYWJsZSBhcyBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4pW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSB8fCAoaXRlcmFibGUgYXMgSXRlcmFibGU8QnVmZmVyPilbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChpdGVyYWJsZSk7XG5cbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygwKTtcbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JDaHVuaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLml0ZXJhdG9yLm5leHQoKTtcbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgZGF0YScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSB0aGlzLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gcmVzdWx0LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24pLCByZXN1bHQudmFsdWVdKTtcbiAgICB9XG4gICAgdGhpcy5wb3NpdGlvbiA9IDA7XG4gIH1cbn1cblxuY2xhc3MgUGFyc2VyIHtcbiAgZGVidWc6IERlYnVnO1xuICBjb2xNZXRhZGF0YTogQ29sdW1uTWV0YWRhdGFbXTtcbiAgb3B0aW9uczogUGFyc2VyT3B0aW9ucztcblxuICBzdXNwZW5kZWQ6IGJvb2xlYW47XG4gIG5leHQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgc3RyZWFtQnVmZmVyOiBTdHJlYW1CdWZmZXI7XG5cbiAgc3RhdGljIGFzeW5jICpwYXJzZVRva2VucyhpdGVyYWJsZTogQXN5bmNJdGVyYWJsZTxCdWZmZXI+IHwgSXRlcmFibGU8QnVmZmVyPiwgZGVidWc6IERlYnVnLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjb2xNZXRhZGF0YTogQ29sdW1uTWV0YWRhdGFbXSA9IFtdKSB7XG4gICAgbGV0IHRva2VuOiBUb2tlbiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvbkRvbmVQYXJzaW5nID0gKHQ6IFRva2VuIHwgdW5kZWZpbmVkKSA9PiB7IHRva2VuID0gdDsgfTtcblxuICAgIGNvbnN0IHN0cmVhbUJ1ZmZlciA9IG5ldyBTdHJlYW1CdWZmZXIoaXRlcmFibGUpO1xuXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihzdHJlYW1CdWZmZXIsIGRlYnVnLCBvcHRpb25zKTtcbiAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSBjb2xNZXRhZGF0YTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzdHJlYW1CdWZmZXIud2FpdEZvckNodW5rKCk7XG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHN0cmVhbUJ1ZmZlci5wb3NpdGlvbiA9PT0gc3RyZWFtQnVmZmVyLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJzZXIuc3VzcGVuZGVkKSB7XG4gICAgICAgIC8vIFVuc3VzcGVuZCBhbmQgY29udGludWUgZnJvbSB3aGVyZSBldmVyIHdlIGxlZnQgb2ZmLlxuICAgICAgICBwYXJzZXIuc3VzcGVuZGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5leHQgPSBwYXJzZXIubmV4dCE7XG5cbiAgICAgICAgbmV4dCgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgbmV3IHRva2VuIHdhcyBwYXJzZWQgYWZ0ZXIgdW5zdXNwZW5zaW9uLlxuICAgICAgICBpZiAoIXBhcnNlci5zdXNwZW5kZWQgJiYgdG9rZW4pIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBDb2xNZXRhZGF0YVRva2VuKSB7XG4gICAgICAgICAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSB0b2tlbi5jb2x1bW5zO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHdoaWxlICghcGFyc2VyLnN1c3BlbmRlZCAmJiBwYXJzZXIucG9zaXRpb24gKyAxIDw9IHBhcnNlci5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBwYXJzZXIuYnVmZmVyLnJlYWRVSW50OChwYXJzZXIucG9zaXRpb24pO1xuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiArPSAxO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUWVBFLkNPTE1FVEFEQVRBKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBjb2xNZXRhZGF0YVBhcnNlcihwYXJzZXIpO1xuICAgICAgICAgIHBhcnNlci5jb2xNZXRhZGF0YSA9IHRva2VuLmNvbHVtbnM7XG4gICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVFlQRS5ST1cpIHtcbiAgICAgICAgICB5aWVsZCByb3dQYXJzZXIocGFyc2VyKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUWVBFLk5CQ1JPVykge1xuICAgICAgICAgIHlpZWxkIG5iY1Jvd1BhcnNlcihwYXJzZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRva2VuUGFyc2Vyc1t0eXBlXSkge1xuICAgICAgICAgIHRva2VuUGFyc2Vyc1t0eXBlXShwYXJzZXIsIHBhcnNlci5vcHRpb25zLCBvbkRvbmVQYXJzaW5nKTtcblxuICAgICAgICAgIC8vIENoZWNrIGlmIGEgbmV3IHRva2VuIHdhcyBwYXJzZWQgYWZ0ZXIgdW5zdXNwZW5zaW9uLlxuICAgICAgICAgIGlmICghcGFyc2VyLnN1c3BlbmRlZCAmJiB0b2tlbikge1xuICAgICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQ29sTWV0YWRhdGFUb2tlbikge1xuICAgICAgICAgICAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSB0b2tlbi5jb2x1bW5zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biB0eXBlOiAnICsgdHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzdHJlYW1CdWZmZXI6IFN0cmVhbUJ1ZmZlciwgZGVidWc6IERlYnVnLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKSB7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xuICAgIHRoaXMuY29sTWV0YWRhdGEgPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgdGhpcy5zdHJlYW1CdWZmZXIgPSBzdHJlYW1CdWZmZXI7XG4gICAgdGhpcy5zdXNwZW5kZWQgPSBmYWxzZTtcbiAgICB0aGlzLm5leHQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYnVmZmVyKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmVhbUJ1ZmZlci5idWZmZXI7XG4gIH1cblxuICBnZXQgcG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtQnVmZmVyLnBvc2l0aW9uO1xuICB9XG5cbiAgc2V0IHBvc2l0aW9uKHZhbHVlKSB7XG4gICAgdGhpcy5zdHJlYW1CdWZmZXIucG9zaXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHN1c3BlbmQobmV4dDogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuc3VzcGVuZGVkID0gdHJ1ZTtcbiAgICB0aGlzLm5leHQgPSBuZXh0O1xuICB9XG5cbiAgYXdhaXREYXRhKGxlbmd0aDogbnVtYmVyLCBjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnBvc2l0aW9uICsgbGVuZ3RoIDw9IHRoaXMuYnVmZmVyLmxlbmd0aCkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXNwZW5kKCgpID0+IHtcbiAgICAgICAgdGhpcy5hd2FpdERhdGEobGVuZ3RoLCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWFkSW50OChjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDEsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkSW50OCh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gMTtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVJbnQ4KGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoMSwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRVSW50OCh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gMTtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDE2TEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEludDE2TEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDI7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRJbnQxNkJFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoMiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRJbnQxNkJFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDE2TEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZFVJbnQxNkxFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDE2QkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZFVJbnQxNkJFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkSW50MzJMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkSW50MzJMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gNDtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDMyQkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg0LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEludDMyQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MzJMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MzJCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRCaWdJbnQ2NExFKGNhbGxiYWNrOiAoZGF0YTogSlNCSSkgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IEpTQkkuYWRkKFxuICAgICAgICBKU0JJLmxlZnRTaGlmdChcbiAgICAgICAgICBKU0JJLkJpZ0ludChcbiAgICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb24gKyA0XSArXG4gICAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLnBvc2l0aW9uICsgNV0gKiAyICoqIDggK1xuICAgICAgICAgICAgdGhpcy5idWZmZXJbdGhpcy5wb3NpdGlvbiArIDZdICogMiAqKiAxNiArXG4gICAgICAgICAgICAodGhpcy5idWZmZXJbdGhpcy5wb3NpdGlvbiArIDddIDw8IDI0KSAvLyBPdmVyZmxvd1xuICAgICAgICAgICksXG4gICAgICAgICAgSlNCSS5CaWdJbnQoMzIpXG4gICAgICAgICksXG4gICAgICAgIEpTQkkuQmlnSW50KFxuICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb25dICtcbiAgICAgICAgICB0aGlzLmJ1ZmZlclt0aGlzLnBvc2l0aW9uICsgMV0gKiAyICoqIDggK1xuICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb24gKyAyXSAqIDIgKiogMTYgK1xuICAgICAgICAgIHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb24gKyAzXSAqIDIgKiogMjRcbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgdGhpcy5wb3NpdGlvbiArPSA4O1xuXG4gICAgICBjYWxsYmFjayhyZXN1bHQpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDY0TEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg4LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gTWF0aC5wb3coMiwgMzIpICogdGhpcy5idWZmZXIucmVhZEludDMyTEUodGhpcy5wb3NpdGlvbiArIDQpICsgKCh0aGlzLmJ1ZmZlclt0aGlzLnBvc2l0aW9uICsgNF0gJiAweDgwKSA9PT0gMHg4MCA/IDEgOiAtMSkgKiB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRJbnQ2NEJFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IE1hdGgucG93KDIsIDMyKSAqIHRoaXMuYnVmZmVyLnJlYWRJbnQzMkJFKHRoaXMucG9zaXRpb24pICsgKCh0aGlzLmJ1ZmZlclt0aGlzLnBvc2l0aW9uXSAmIDB4ODApID09PSAweDgwID8gMSA6IC0xKSAqIHRoaXMuYnVmZmVyLnJlYWRVSW50MzJCRSh0aGlzLnBvc2l0aW9uICsgNCk7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRCaWdVSW50NjRMRShjYWxsYmFjazogKGRhdGE6IEpTQkkpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg4LCAoKSA9PiB7XG4gICAgICBjb25zdCBsb3cgPSBKU0JJLkJpZ0ludCh0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbikpO1xuICAgICAgY29uc3QgaGlnaCA9IEpTQkkuQmlnSW50KHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCkpO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG5cbiAgICAgIGNhbGxiYWNrKEpTQkkuYWRkKGxvdywgSlNCSS5sZWZ0U2hpZnQoaGlnaCwgSlNCSS5CaWdJbnQoMzIpKSkpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVJbnQ2NExFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IE1hdGgucG93KDIsIDMyKSAqIHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCkgKyB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50NjRCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBNYXRoLnBvdygyLCAzMikgKiB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbikgKyB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSA4O1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkRmxvYXRMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRmxvYXRMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gNDtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEZsb2F0QkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg0LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEZsb2F0QkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWREb3VibGVMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRG91YmxlTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWREb3VibGVCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRG91YmxlQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MjRMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDMsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvdyA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MTZMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIGNvbnN0IGhpZ2ggPSB0aGlzLmJ1ZmZlci5yZWFkVUludDgodGhpcy5wb3NpdGlvbiArIDIpO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDM7XG5cbiAgICAgIGNhbGxiYWNrKGxvdyB8IChoaWdoIDw8IDE2KSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDQwTEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg1LCAoKSA9PiB7XG4gICAgICBjb25zdCBsb3cgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBoaWdoID0gdGhpcy5idWZmZXIucmVhZFVJbnQ4KHRoaXMucG9zaXRpb24gKyA0KTtcblxuICAgICAgdGhpcy5wb3NpdGlvbiArPSA1O1xuXG4gICAgICBjYWxsYmFjaygoMHgxMDAwMDAwMDAgKiBoaWdoKSArIGxvdyk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVU51bWVyaWM2NExFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgbG93ID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24pO1xuICAgICAgY29uc3QgaGlnaCA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCk7XG5cbiAgICAgIHRoaXMucG9zaXRpb24gKz0gODtcblxuICAgICAgY2FsbGJhY2soKDB4MTAwMDAwMDAwICogaGlnaCkgKyBsb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVOdW1lcmljOTZMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDEyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkd29yZDEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBkd29yZDIgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgY29uc3QgZHdvcmQzID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24gKyA4KTtcblxuICAgICAgdGhpcy5wb3NpdGlvbiArPSAxMjtcblxuICAgICAgY2FsbGJhY2soZHdvcmQxICsgKDB4MTAwMDAwMDAwICogZHdvcmQyKSArICgweDEwMDAwMDAwMCAqIDB4MTAwMDAwMDAwICogZHdvcmQzKSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVU51bWVyaWMxMjhMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDE2LCAoKSA9PiB7XG4gICAgICBjb25zdCBkd29yZDEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBkd29yZDIgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgY29uc3QgZHdvcmQzID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24gKyA4KTtcbiAgICAgIGNvbnN0IGR3b3JkNCA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgMTIpO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDE2O1xuXG4gICAgICBjYWxsYmFjayhkd29yZDEgKyAoMHgxMDAwMDAwMDAgKiBkd29yZDIpICsgKDB4MTAwMDAwMDAwICogMHgxMDAwMDAwMDAgKiBkd29yZDMpICsgKDB4MTAwMDAwMDAwICogMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkNCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFyaWFibGUgbGVuZ3RoIGRhdGFcblxuICByZWFkQnVmZmVyKGxlbmd0aDogbnVtYmVyLCBjYWxsYmFjazogKGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKGxlbmd0aCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24sIHRoaXMucG9zaXRpb24gKyBsZW5ndGgpO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSBsZW5ndGg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlYWQgYSBVbmljb2RlIFN0cmluZyAoQlZBUkNIQVIpXG4gIHJlYWRCVmFyQ2hhcihjYWxsYmFjazogKGRhdGE6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMucmVhZFVJbnQ4KChsZW5ndGgpID0+IHtcbiAgICAgIHRoaXMucmVhZEJ1ZmZlcihsZW5ndGggKiAyLCAoZGF0YSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhLnRvU3RyaW5nKCd1Y3MyJykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZWFkIGEgVW5pY29kZSBTdHJpbmcgKFVTVkFSQ0hBUilcbiAgcmVhZFVzVmFyQ2hhcihjYWxsYmFjazogKGRhdGE6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMucmVhZFVJbnQxNkxFKChsZW5ndGgpID0+IHtcbiAgICAgIHRoaXMucmVhZEJ1ZmZlcihsZW5ndGggKiAyLCAoZGF0YSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhLnRvU3RyaW5nKCd1Y3MyJykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZWFkIGJpbmFyeSBkYXRhIChCVkFSQllURSlcbiAgcmVhZEJWYXJCeXRlKGNhbGxiYWNrOiAoZGF0YTogQnVmZmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZWFkVUludDgoKGxlbmd0aCkgPT4ge1xuICAgICAgdGhpcy5yZWFkQnVmZmVyKGxlbmd0aCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gUmVhZCBiaW5hcnkgZGF0YSAoVVNWQVJCWVRFKVxuICByZWFkVXNWYXJCeXRlKGNhbGxiYWNrOiAoZGF0YTogQnVmZmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZWFkVUludDE2TEUoKGxlbmd0aCkgPT4ge1xuICAgICAgdGhpcy5yZWFkQnVmZmVyKGxlbmd0aCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlcjtcbm1vZHVs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
445
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ0b2tlblBhcnNlcnMiLCJUWVBFIiwiRE9ORSIsImRvbmVQYXJzZXIiLCJET05FSU5QUk9DIiwiZG9uZUluUHJvY1BhcnNlciIsIkRPTkVQUk9DIiwiZG9uZVByb2NQYXJzZXIiLCJFTlZDSEFOR0UiLCJlbnZDaGFuZ2VQYXJzZXIiLCJFUlJPUiIsImVycm9yUGFyc2VyIiwiRkVEQVVUSElORk8iLCJmZWRBdXRoSW5mb1BhcnNlciIsIkZFQVRVUkVFWFRBQ0siLCJmZWF0dXJlRXh0QWNrUGFyc2VyIiwiSU5GTyIsImluZm9QYXJzZXIiLCJMT0dJTkFDSyIsImxvZ2luQWNrUGFyc2VyIiwiT1JERVIiLCJvcmRlclBhcnNlciIsIlJFVFVSTlNUQVRVUyIsInJldHVyblN0YXR1c1BhcnNlciIsIlJFVFVSTlZBTFVFIiwicmV0dXJuVmFsdWVQYXJzZXIiLCJTU1BJIiwic3NwaVBhcnNlciIsIlN0cmVhbUJ1ZmZlciIsImNvbnN0cnVjdG9yIiwiaXRlcmFibGUiLCJpdGVyYXRvciIsImJ1ZmZlciIsInBvc2l0aW9uIiwiU3ltYm9sIiwiYXN5bmNJdGVyYXRvciIsImNhbGwiLCJCdWZmZXIiLCJhbGxvYyIsIndhaXRGb3JDaHVuayIsInJlc3VsdCIsIm5leHQiLCJkb25lIiwiRXJyb3IiLCJsZW5ndGgiLCJ2YWx1ZSIsImNvbmNhdCIsInNsaWNlIiwiUGFyc2VyIiwicGFyc2VUb2tlbnMiLCJkZWJ1ZyIsIm9wdGlvbnMiLCJjb2xNZXRhZGF0YSIsInRva2VuIiwib25Eb25lUGFyc2luZyIsInQiLCJzdHJlYW1CdWZmZXIiLCJwYXJzZXIiLCJlcnIiLCJzdXNwZW5kZWQiLCJDb2xNZXRhZGF0YVRva2VuIiwiY29sdW1ucyIsInR5cGUiLCJyZWFkVUludDgiLCJDT0xNRVRBREFUQSIsIlJPVyIsIk5CQ1JPVyIsInVuZGVmaW5lZCIsInN1c3BlbmQiLCJhd2FpdERhdGEiLCJjYWxsYmFjayIsInJlYWRJbnQ4IiwiZGF0YSIsInJlYWRJbnQxNkxFIiwicmVhZEludDE2QkUiLCJyZWFkVUludDE2TEUiLCJyZWFkVUludDE2QkUiLCJyZWFkSW50MzJMRSIsInJlYWRJbnQzMkJFIiwicmVhZFVJbnQzMkxFIiwicmVhZFVJbnQzMkJFIiwicmVhZEJpZ0ludDY0TEUiLCJyZWFkSW50NjRMRSIsIk1hdGgiLCJwb3ciLCJyZWFkSW50NjRCRSIsInJlYWRCaWdVSW50NjRMRSIsInJlYWRVSW50NjRMRSIsInJlYWRVSW50NjRCRSIsInJlYWRGbG9hdExFIiwicmVhZEZsb2F0QkUiLCJyZWFkRG91YmxlTEUiLCJyZWFkRG91YmxlQkUiLCJyZWFkVUludDI0TEUiLCJsb3ciLCJoaWdoIiwicmVhZFVJbnQ0MExFIiwicmVhZFVOdW1lcmljNjRMRSIsInJlYWRVTnVtZXJpYzk2TEUiLCJkd29yZDEiLCJkd29yZDIiLCJkd29yZDMiLCJyZWFkVU51bWVyaWMxMjhMRSIsImR3b3JkNCIsInJlYWRCdWZmZXIiLCJyZWFkQlZhckNoYXIiLCJ0b1N0cmluZyIsInJlYWRVc1ZhckNoYXIiLCJyZWFkQlZhckJ5dGUiLCJyZWFkVXNWYXJCeXRlIiwibW9kdWxlIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90b2tlbi9zdHJlYW0tcGFyc2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEZWJ1ZyBmcm9tICcuLi9kZWJ1Zyc7XG5pbXBvcnQgeyBJbnRlcm5hbENvbm5lY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vY29ubmVjdGlvbic7XG5cbmltcG9ydCB7IFRZUEUsIFRva2VuLCBDb2xNZXRhZGF0YVRva2VuIH0gZnJvbSAnLi90b2tlbic7XG5cbmltcG9ydCBjb2xNZXRhZGF0YVBhcnNlciwgeyBDb2x1bW5NZXRhZGF0YSB9IGZyb20gJy4vY29sbWV0YWRhdGEtdG9rZW4tcGFyc2VyJztcbmltcG9ydCB7IGRvbmVQYXJzZXIsIGRvbmVJblByb2NQYXJzZXIsIGRvbmVQcm9jUGFyc2VyIH0gZnJvbSAnLi9kb25lLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgZW52Q2hhbmdlUGFyc2VyIGZyb20gJy4vZW52LWNoYW5nZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHsgZXJyb3JQYXJzZXIsIGluZm9QYXJzZXIgfSBmcm9tICcuL2luZm9lcnJvci10b2tlbi1wYXJzZXInO1xuaW1wb3J0IGZlZEF1dGhJbmZvUGFyc2VyIGZyb20gJy4vZmVkYXV0aC1pbmZvLXBhcnNlcic7XG5pbXBvcnQgZmVhdHVyZUV4dEFja1BhcnNlciBmcm9tICcuL2ZlYXR1cmUtZXh0LWFjay1wYXJzZXInO1xuaW1wb3J0IGxvZ2luQWNrUGFyc2VyIGZyb20gJy4vbG9naW5hY2stdG9rZW4tcGFyc2VyJztcbmltcG9ydCBvcmRlclBhcnNlciBmcm9tICcuL29yZGVyLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuU3RhdHVzUGFyc2VyIGZyb20gJy4vcmV0dXJuc3RhdHVzLXRva2VuLXBhcnNlcic7XG5pbXBvcnQgcmV0dXJuVmFsdWVQYXJzZXIgZnJvbSAnLi9yZXR1cm52YWx1ZS10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHJvd1BhcnNlciBmcm9tICcuL3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IG5iY1Jvd1BhcnNlciBmcm9tICcuL25iY3Jvdy10b2tlbi1wYXJzZXInO1xuaW1wb3J0IHNzcGlQYXJzZXIgZnJvbSAnLi9zc3BpLXRva2VuLXBhcnNlcic7XG5cbmNvbnN0IHRva2VuUGFyc2VycyA9IHtcbiAgW1RZUEUuRE9ORV06IGRvbmVQYXJzZXIsXG4gIFtUWVBFLkRPTkVJTlBST0NdOiBkb25lSW5Qcm9jUGFyc2VyLFxuICBbVFlQRS5ET05FUFJPQ106IGRvbmVQcm9jUGFyc2VyLFxuICBbVFlQRS5FTlZDSEFOR0VdOiBlbnZDaGFuZ2VQYXJzZXIsXG4gIFtUWVBFLkVSUk9SXTogZXJyb3JQYXJzZXIsXG4gIFtUWVBFLkZFREFVVEhJTkZPXTogZmVkQXV0aEluZm9QYXJzZXIsXG4gIFtUWVBFLkZFQVRVUkVFWFRBQ0tdOiBmZWF0dXJlRXh0QWNrUGFyc2VyLFxuICBbVFlQRS5JTkZPXTogaW5mb1BhcnNlcixcbiAgW1RZUEUuTE9HSU5BQ0tdOiBsb2dpbkFja1BhcnNlcixcbiAgW1RZUEUuT1JERVJdOiBvcmRlclBhcnNlcixcbiAgW1RZUEUuUkVUVVJOU1RBVFVTXTogcmV0dXJuU3RhdHVzUGFyc2VyLFxuICBbVFlQRS5SRVRVUk5WQUxVRV06IHJldHVyblZhbHVlUGFyc2VyLFxuICBbVFlQRS5TU1BJXTogc3NwaVBhcnNlclxufTtcblxuZXhwb3J0IHR5cGUgUGFyc2VyT3B0aW9ucyA9IFBpY2s8SW50ZXJuYWxDb25uZWN0aW9uT3B0aW9ucywgJ3VzZVVUQycgfCAnbG93ZXJDYXNlR3VpZHMnIHwgJ3Rkc1ZlcnNpb24nIHwgJ3VzZUNvbHVtbk5hbWVzJyB8ICdjb2x1bW5OYW1lUmVwbGFjZXInIHwgJ2NhbWVsQ2FzZUNvbHVtbnMnPjtcblxuY2xhc3MgU3RyZWFtQnVmZmVyIHtcbiAgaXRlcmF0b3I6IEFzeW5jSXRlcmF0b3I8QnVmZmVyLCBhbnksIHVuZGVmaW5lZD4gfCBJdGVyYXRvcjxCdWZmZXIsIGFueSwgdW5kZWZpbmVkPjtcbiAgYnVmZmVyOiBCdWZmZXI7XG4gIHBvc2l0aW9uOiBudW1iZXI7XG5cbiAgY29uc3RydWN0b3IoaXRlcmFibGU6IEFzeW5jSXRlcmFibGU8QnVmZmVyPiB8IEl0ZXJhYmxlPEJ1ZmZlcj4pIHtcbiAgICB0aGlzLml0ZXJhdG9yID0gKChpdGVyYWJsZSBhcyBBc3luY0l0ZXJhYmxlPEJ1ZmZlcj4pW1N5bWJvbC5hc3luY0l0ZXJhdG9yXSB8fCAoaXRlcmFibGUgYXMgSXRlcmFibGU8QnVmZmVyPilbU3ltYm9sLml0ZXJhdG9yXSkuY2FsbChpdGVyYWJsZSk7XG5cbiAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5hbGxvYygwKTtcbiAgICB0aGlzLnBvc2l0aW9uID0gMDtcbiAgfVxuXG4gIGFzeW5jIHdhaXRGb3JDaHVuaygpIHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLml0ZXJhdG9yLm5leHQoKTtcbiAgICBpZiAocmVzdWx0LmRvbmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcigndW5leHBlY3RlZCBlbmQgb2YgZGF0YScpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnBvc2l0aW9uID09PSB0aGlzLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYnVmZmVyID0gcmVzdWx0LnZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1ZmZlciA9IEJ1ZmZlci5jb25jYXQoW3RoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24pLCByZXN1bHQudmFsdWVdKTtcbiAgICB9XG4gICAgdGhpcy5wb3NpdGlvbiA9IDA7XG4gIH1cbn1cblxuY2xhc3MgUGFyc2VyIHtcbiAgZGVidWc6IERlYnVnO1xuICBjb2xNZXRhZGF0YTogQ29sdW1uTWV0YWRhdGFbXTtcbiAgb3B0aW9uczogUGFyc2VyT3B0aW9ucztcblxuICBzdXNwZW5kZWQ6IGJvb2xlYW47XG4gIG5leHQ6ICgoKSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcbiAgc3RyZWFtQnVmZmVyOiBTdHJlYW1CdWZmZXI7XG5cbiAgc3RhdGljIGFzeW5jICpwYXJzZVRva2VucyhpdGVyYWJsZTogQXN5bmNJdGVyYWJsZTxCdWZmZXI+IHwgSXRlcmFibGU8QnVmZmVyPiwgZGVidWc6IERlYnVnLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zLCBjb2xNZXRhZGF0YTogQ29sdW1uTWV0YWRhdGFbXSA9IFtdKSB7XG4gICAgbGV0IHRva2VuOiBUb2tlbiB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBvbkRvbmVQYXJzaW5nID0gKHQ6IFRva2VuIHwgdW5kZWZpbmVkKSA9PiB7IHRva2VuID0gdDsgfTtcblxuICAgIGNvbnN0IHN0cmVhbUJ1ZmZlciA9IG5ldyBTdHJlYW1CdWZmZXIoaXRlcmFibGUpO1xuXG4gICAgY29uc3QgcGFyc2VyID0gbmV3IFBhcnNlcihzdHJlYW1CdWZmZXIsIGRlYnVnLCBvcHRpb25zKTtcbiAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSBjb2xNZXRhZGF0YTtcblxuICAgIHdoaWxlICh0cnVlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBzdHJlYW1CdWZmZXIud2FpdEZvckNodW5rKCk7XG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgaWYgKHN0cmVhbUJ1ZmZlci5wb3NpdGlvbiA9PT0gc3RyZWFtQnVmZmVyLmJ1ZmZlci5sZW5ndGgpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG5cbiAgICAgIGlmIChwYXJzZXIuc3VzcGVuZGVkKSB7XG4gICAgICAgIC8vIFVuc3VzcGVuZCBhbmQgY29udGludWUgZnJvbSB3aGVyZSBldmVyIHdlIGxlZnQgb2ZmLlxuICAgICAgICBwYXJzZXIuc3VzcGVuZGVkID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IG5leHQgPSBwYXJzZXIubmV4dCE7XG5cbiAgICAgICAgbmV4dCgpO1xuXG4gICAgICAgIC8vIENoZWNrIGlmIGEgbmV3IHRva2VuIHdhcyBwYXJzZWQgYWZ0ZXIgdW5zdXNwZW5zaW9uLlxuICAgICAgICBpZiAoIXBhcnNlci5zdXNwZW5kZWQgJiYgdG9rZW4pIHtcbiAgICAgICAgICBpZiAodG9rZW4gaW5zdGFuY2VvZiBDb2xNZXRhZGF0YVRva2VuKSB7XG4gICAgICAgICAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSB0b2tlbi5jb2x1bW5zO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHlpZWxkIHRva2VuO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHdoaWxlICghcGFyc2VyLnN1c3BlbmRlZCAmJiBwYXJzZXIucG9zaXRpb24gKyAxIDw9IHBhcnNlci5idWZmZXIubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHR5cGUgPSBwYXJzZXIuYnVmZmVyLnJlYWRVSW50OChwYXJzZXIucG9zaXRpb24pO1xuXG4gICAgICAgIHBhcnNlci5wb3NpdGlvbiArPSAxO1xuXG4gICAgICAgIGlmICh0eXBlID09PSBUWVBFLkNPTE1FVEFEQVRBKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBjb2xNZXRhZGF0YVBhcnNlcihwYXJzZXIpO1xuICAgICAgICAgIHBhcnNlci5jb2xNZXRhZGF0YSA9IHRva2VuLmNvbHVtbnM7XG4gICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gVFlQRS5ST1cpIHtcbiAgICAgICAgICB5aWVsZCByb3dQYXJzZXIocGFyc2VyKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBUWVBFLk5CQ1JPVykge1xuICAgICAgICAgIHlpZWxkIG5iY1Jvd1BhcnNlcihwYXJzZXIpO1xuICAgICAgICB9IGVsc2UgaWYgKHRva2VuUGFyc2Vyc1t0eXBlXSkge1xuICAgICAgICAgIHRva2VuUGFyc2Vyc1t0eXBlXShwYXJzZXIsIHBhcnNlci5vcHRpb25zLCBvbkRvbmVQYXJzaW5nKTtcblxuICAgICAgICAgIC8vIENoZWNrIGlmIGEgbmV3IHRva2VuIHdhcyBwYXJzZWQgYWZ0ZXIgdW5zdXNwZW5zaW9uLlxuICAgICAgICAgIGlmICghcGFyc2VyLnN1c3BlbmRlZCAmJiB0b2tlbikge1xuICAgICAgICAgICAgaWYgKHRva2VuIGluc3RhbmNlb2YgQ29sTWV0YWRhdGFUb2tlbikge1xuICAgICAgICAgICAgICBwYXJzZXIuY29sTWV0YWRhdGEgPSB0b2tlbi5jb2x1bW5zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgeWllbGQgdG9rZW47XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biB0eXBlOiAnICsgdHlwZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzdHJlYW1CdWZmZXI6IFN0cmVhbUJ1ZmZlciwgZGVidWc6IERlYnVnLCBvcHRpb25zOiBQYXJzZXJPcHRpb25zKSB7XG4gICAgdGhpcy5kZWJ1ZyA9IGRlYnVnO1xuICAgIHRoaXMuY29sTWV0YWRhdGEgPSBbXTtcbiAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXG4gICAgdGhpcy5zdHJlYW1CdWZmZXIgPSBzdHJlYW1CdWZmZXI7XG4gICAgdGhpcy5zdXNwZW5kZWQgPSBmYWxzZTtcbiAgICB0aGlzLm5leHQgPSB1bmRlZmluZWQ7XG4gIH1cblxuICBnZXQgYnVmZmVyKCkge1xuICAgIHJldHVybiB0aGlzLnN0cmVhbUJ1ZmZlci5idWZmZXI7XG4gIH1cblxuICBnZXQgcG9zaXRpb24oKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RyZWFtQnVmZmVyLnBvc2l0aW9uO1xuICB9XG5cbiAgc2V0IHBvc2l0aW9uKHZhbHVlKSB7XG4gICAgdGhpcy5zdHJlYW1CdWZmZXIucG9zaXRpb24gPSB2YWx1ZTtcbiAgfVxuXG4gIHN1c3BlbmQobmV4dDogKCkgPT4gdm9pZCkge1xuICAgIHRoaXMuc3VzcGVuZGVkID0gdHJ1ZTtcbiAgICB0aGlzLm5leHQgPSBuZXh0O1xuICB9XG5cbiAgYXdhaXREYXRhKGxlbmd0aDogbnVtYmVyLCBjYWxsYmFjazogKCkgPT4gdm9pZCkge1xuICAgIGlmICh0aGlzLnBvc2l0aW9uICsgbGVuZ3RoIDw9IHRoaXMuYnVmZmVyLmxlbmd0aCkge1xuICAgICAgY2FsbGJhY2soKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdXNwZW5kKCgpID0+IHtcbiAgICAgICAgdGhpcy5hd2FpdERhdGEobGVuZ3RoLCBjYWxsYmFjayk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWFkSW50OChjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDEsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkSW50OCh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gMTtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVJbnQ4KGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoMSwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRVSW50OCh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gMTtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDE2TEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEludDE2TEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDI7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRJbnQxNkJFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoMiwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRJbnQxNkJFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDE2TEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZFVJbnQxNkxFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDE2QkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSgyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZFVJbnQxNkJFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSAyO1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkSW50MzJMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkSW50MzJMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gNDtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDMyQkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg0LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEludDMyQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MzJMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MzJCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRCaWdJbnQ2NExFKGNhbGxiYWNrOiAoZGF0YTogYmlnaW50KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRCaWdJbnQ2NExFKHRoaXMucG9zaXRpb24pO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSA4O1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkSW50NjRMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBNYXRoLnBvdygyLCAzMikgKiB0aGlzLmJ1ZmZlci5yZWFkSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCkgKyAoKHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb24gKyA0XSAmIDB4ODApID09PSAweDgwID8gMSA6IC0xKSAqIHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gODtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEludDY0QkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg4LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gTWF0aC5wb3coMiwgMzIpICogdGhpcy5idWZmZXIucmVhZEludDMyQkUodGhpcy5wb3NpdGlvbikgKyAoKHRoaXMuYnVmZmVyW3RoaXMucG9zaXRpb25dICYgMHg4MCkgPT09IDB4ODAgPyAxIDogLTEpICogdGhpcy5idWZmZXIucmVhZFVJbnQzMkJFKHRoaXMucG9zaXRpb24gKyA0KTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gODtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEJpZ1VJbnQ2NExFKGNhbGxiYWNrOiAoZGF0YTogYmlnaW50KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnJlYWRCaWdVSW50NjRMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gODtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVJbnQ2NExFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IE1hdGgucG93KDIsIDMyKSAqIHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCkgKyB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50NjRCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBNYXRoLnBvdygyLCAzMikgKiB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbikgKyB0aGlzLmJ1ZmZlci5yZWFkVUludDMyQkUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSA4O1xuICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkRmxvYXRMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDQsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRmxvYXRMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIHRoaXMucG9zaXRpb24gKz0gNDtcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZEZsb2F0QkUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg0LCAoKSA9PiB7XG4gICAgICBjb25zdCBkYXRhID0gdGhpcy5idWZmZXIucmVhZEZsb2F0QkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDQ7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWREb3VibGVMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRG91YmxlTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWREb3VibGVCRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDgsICgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmJ1ZmZlci5yZWFkRG91YmxlQkUodGhpcy5wb3NpdGlvbik7XG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlYWRVSW50MjRMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDMsICgpID0+IHtcbiAgICAgIGNvbnN0IGxvdyA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MTZMRSh0aGlzLnBvc2l0aW9uKTtcbiAgICAgIGNvbnN0IGhpZ2ggPSB0aGlzLmJ1ZmZlci5yZWFkVUludDgodGhpcy5wb3NpdGlvbiArIDIpO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDM7XG5cbiAgICAgIGNhbGxiYWNrKGxvdyB8IChoaWdoIDw8IDE2KSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVUludDQwTEUoY2FsbGJhY2s6IChkYXRhOiBudW1iZXIpID0+IHZvaWQpIHtcbiAgICB0aGlzLmF3YWl0RGF0YSg1LCAoKSA9PiB7XG4gICAgICBjb25zdCBsb3cgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBoaWdoID0gdGhpcy5idWZmZXIucmVhZFVJbnQ4KHRoaXMucG9zaXRpb24gKyA0KTtcblxuICAgICAgdGhpcy5wb3NpdGlvbiArPSA1O1xuXG4gICAgICBjYWxsYmFjaygoMHgxMDAwMDAwMDAgKiBoaWdoKSArIGxvdyk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVU51bWVyaWM2NExFKGNhbGxiYWNrOiAoZGF0YTogbnVtYmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5hd2FpdERhdGEoOCwgKCkgPT4ge1xuICAgICAgY29uc3QgbG93ID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24pO1xuICAgICAgY29uc3QgaGlnaCA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgNCk7XG5cbiAgICAgIHRoaXMucG9zaXRpb24gKz0gODtcblxuICAgICAgY2FsbGJhY2soKDB4MTAwMDAwMDAwICogaGlnaCkgKyBsb3cpO1xuICAgIH0pO1xuICB9XG5cbiAgcmVhZFVOdW1lcmljOTZMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDEyLCAoKSA9PiB7XG4gICAgICBjb25zdCBkd29yZDEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBkd29yZDIgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgY29uc3QgZHdvcmQzID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24gKyA4KTtcblxuICAgICAgdGhpcy5wb3NpdGlvbiArPSAxMjtcblxuICAgICAgY2FsbGJhY2soZHdvcmQxICsgKDB4MTAwMDAwMDAwICogZHdvcmQyKSArICgweDEwMDAwMDAwMCAqIDB4MTAwMDAwMDAwICogZHdvcmQzKSk7XG4gICAgfSk7XG4gIH1cblxuICByZWFkVU51bWVyaWMxMjhMRShjYWxsYmFjazogKGRhdGE6IG51bWJlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKDE2LCAoKSA9PiB7XG4gICAgICBjb25zdCBkd29yZDEgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbik7XG4gICAgICBjb25zdCBkd29yZDIgPSB0aGlzLmJ1ZmZlci5yZWFkVUludDMyTEUodGhpcy5wb3NpdGlvbiArIDQpO1xuICAgICAgY29uc3QgZHdvcmQzID0gdGhpcy5idWZmZXIucmVhZFVJbnQzMkxFKHRoaXMucG9zaXRpb24gKyA4KTtcbiAgICAgIGNvbnN0IGR3b3JkNCA9IHRoaXMuYnVmZmVyLnJlYWRVSW50MzJMRSh0aGlzLnBvc2l0aW9uICsgMTIpO1xuXG4gICAgICB0aGlzLnBvc2l0aW9uICs9IDE2O1xuXG4gICAgICBjYWxsYmFjayhkd29yZDEgKyAoMHgxMDAwMDAwMDAgKiBkd29yZDIpICsgKDB4MTAwMDAwMDAwICogMHgxMDAwMDAwMDAgKiBkd29yZDMpICsgKDB4MTAwMDAwMDAwICogMHgxMDAwMDAwMDAgKiAweDEwMDAwMDAwMCAqIGR3b3JkNCkpO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gVmFyaWFibGUgbGVuZ3RoIGRhdGFcblxuICByZWFkQnVmZmVyKGxlbmd0aDogbnVtYmVyLCBjYWxsYmFjazogKGRhdGE6IEJ1ZmZlcikgPT4gdm9pZCkge1xuICAgIHRoaXMuYXdhaXREYXRhKGxlbmd0aCwgKCkgPT4ge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuYnVmZmVyLnNsaWNlKHRoaXMucG9zaXRpb24sIHRoaXMucG9zaXRpb24gKyBsZW5ndGgpO1xuICAgICAgdGhpcy5wb3NpdGlvbiArPSBsZW5ndGg7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFJlYWQgYSBVbmljb2RlIFN0cmluZyAoQlZBUkNIQVIpXG4gIHJlYWRCVmFyQ2hhcihjYWxsYmFjazogKGRhdGE6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMucmVhZFVJbnQ4KChsZW5ndGgpID0+IHtcbiAgICAgIHRoaXMucmVhZEJ1ZmZlcihsZW5ndGggKiAyLCAoZGF0YSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhLnRvU3RyaW5nKCd1Y3MyJykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZWFkIGEgVW5pY29kZSBTdHJpbmcgKFVTVkFSQ0hBUilcbiAgcmVhZFVzVmFyQ2hhcihjYWxsYmFjazogKGRhdGE6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMucmVhZFVJbnQxNkxFKChsZW5ndGgpID0+IHtcbiAgICAgIHRoaXMucmVhZEJ1ZmZlcihsZW5ndGggKiAyLCAoZGF0YSkgPT4ge1xuICAgICAgICBjYWxsYmFjayhkYXRhLnRvU3RyaW5nKCd1Y3MyJykpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBSZWFkIGJpbmFyeSBkYXRhIChCVkFSQllURSlcbiAgcmVhZEJWYXJCeXRlKGNhbGxiYWNrOiAoZGF0YTogQnVmZmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZWFkVUludDgoKGxlbmd0aCkgPT4ge1xuICAgICAgdGhpcy5yZWFkQnVmZmVyKGxlbmd0aCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gUmVhZCBiaW5hcnkgZGF0YSAoVVNWQVJCWVRFKVxuICByZWFkVXNWYXJCeXRlKGNhbGxiYWNrOiAoZGF0YTogQnVmZmVyKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5yZWFkVUludDE2TEUoKGxlbmd0aCkgPT4ge1xuICAgICAgdGhpcy5yZWFkQnVmZmVyKGxlbmd0aCwgY2FsbGJhY2spO1xuICAgIH0pO1xuICB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFBhcnNlcjtcbm1vZHVsZS5leHBvcnRzID0gUGFyc2VyO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBR0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7QUFFQSxNQUFNQSxZQUFZLEdBQUc7RUFDbkIsQ0FBQ0MsWUFBS0MsSUFBTixHQUFhQywyQkFETTtFQUVuQixDQUFDRixZQUFLRyxVQUFOLEdBQW1CQyxpQ0FGQTtFQUduQixDQUFDSixZQUFLSyxRQUFOLEdBQWlCQywrQkFIRTtFQUluQixDQUFDTixZQUFLTyxTQUFOLEdBQWtCQyw2QkFKQztFQUtuQixDQUFDUixZQUFLUyxLQUFOLEdBQWNDLGlDQUxLO0VBTW5CLENBQUNWLFlBQUtXLFdBQU4sR0FBb0JDLDBCQU5EO0VBT25CLENBQUNaLFlBQUthLGFBQU4sR0FBc0JDLDRCQVBIO0VBUW5CLENBQUNkLFlBQUtlLElBQU4sR0FBYUMsZ0NBUk07RUFTbkIsQ0FBQ2hCLFlBQUtpQixRQUFOLEdBQWlCQyw0QkFURTtFQVVuQixDQUFDbEIsWUFBS21CLEtBQU4sR0FBY0MseUJBVks7RUFXbkIsQ0FBQ3BCLFlBQUtxQixZQUFOLEdBQXFCQyxnQ0FYRjtFQVluQixDQUFDdEIsWUFBS3VCLFdBQU4sR0FBb0JDLCtCQVpEO0VBYW5CLENBQUN4QixZQUFLeUIsSUFBTixHQUFhQztBQWJNLENBQXJCOztBQWtCQSxNQUFNQyxZQUFOLENBQW1CO0VBS2pCQyxXQUFXLENBQUNDLFFBQUQsRUFBcUQ7SUFBQSxLQUpoRUMsUUFJZ0U7SUFBQSxLQUhoRUMsTUFHZ0U7SUFBQSxLQUZoRUMsUUFFZ0U7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