@wppconnect/server 2.2.5 → 2.4.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.
Files changed (39) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/README.md +24 -2
  3. package/dist/config/upload.js +2 -2
  4. package/dist/config.js +9 -4
  5. package/dist/controller/deviceController.js +23 -19
  6. package/dist/controller/groupController.js +29 -23
  7. package/dist/controller/messageController.js +242 -33
  8. package/dist/controller/newsletterController.js +196 -0
  9. package/dist/controller/orderController.js +14 -29
  10. package/dist/index.js +2 -2
  11. package/dist/mapper/index.js +2 -2
  12. package/dist/mapper/tagone-chat.js +3 -3
  13. package/dist/mapper/tagone-device.js +3 -3
  14. package/dist/mapper/tagone-message-document.js +3 -3
  15. package/dist/mapper/tagone-message-image.js +3 -3
  16. package/dist/mapper/tagone-message-location.js +3 -3
  17. package/dist/mapper/tagone-message-video.js +3 -3
  18. package/dist/mapper/tagone-message.js +3 -3
  19. package/dist/mapper/tagone-onack.js +3 -3
  20. package/dist/mapper/tagone-return.js +3 -3
  21. package/dist/middleware/auth.js +3 -3
  22. package/dist/middleware/instrumentation.js +2 -2
  23. package/dist/middleware/statusConnection.js +7 -3
  24. package/dist/routes/index.js +50 -5
  25. package/dist/swagger.json +571 -51
  26. package/dist/types/ServerOptions.js +1 -1
  27. package/dist/util/bufferutils.js +3 -3
  28. package/dist/util/createSessionUtil.js +9 -2
  29. package/dist/util/db/mongodb/db.js +3 -3
  30. package/dist/util/db/redis/db.js +3 -3
  31. package/dist/util/functions.js +26 -6
  32. package/dist/util/sessionUtil.js +3 -3
  33. package/dist/util/tokenStore/FileTokenStore/FileTokenStore.js +4 -4
  34. package/dist/util/tokenStore/factory.js +3 -3
  35. package/dist/util/tokenStore/fileTokenStory.js +3 -3
  36. package/dist/util/tokenStore/model/token.js +3 -3
  37. package/dist/util/tokenStore/mongodbTokenStory.js +3 -3
  38. package/dist/util/tokenStore/redisTokenStory.js +3 -3
  39. package/package.json +58 -58
@@ -1,2 +1,2 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", { value: true });
2
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1NlcnZlck9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVja2V0TG9jYXRpb25Db25zdHJhaW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJPcHRpb25zIHtcbiAgc2VjcmV0S2V5OiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBvd2VyZWRCeTogc3RyaW5nO1xuICBzdGFydEFsbFNlc3Npb246IGJvb2xlYW47XG4gIHRva2VuU3RvcmVUeXBlOiBzdHJpbmc7XG4gIG1heExpc3RlbmVyczogbnVtYmVyO1xuICBjdXN0b21Vc2VyRGF0YURpcjogc3RyaW5nO1xuICB3ZWJob29rOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgYXV0b0Rvd25sb2FkOiBib29sZWFuO1xuICAgIHVwbG9hZFMzOiBib29sZWFuO1xuICAgIHJlYWRNZXNzYWdlOiBib29sZWFuO1xuICAgIGFsbFVucmVhZE9uU3RhcnQ6IGJvb2xlYW47XG4gICAgbGlzdGVuQWNrczogYm9vbGVhbjtcbiAgICBvblByZXNlbmNlQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBvblBhcnRpY2lwYW50c0NoYW5nZWQ6IGJvb2xlYW47XG4gICAgb25SZWFjdGlvbk1lc3NhZ2U6IGJvb2xlYW47XG4gICAgb25Qb2xsUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgb25SZXZva2VkTWVzc2FnZTogYm9vbGVhbjtcbiAgICBvblNlbGZNZXNzYWdlOiBib29sZWFuO1xuICB9O1xuICBhcmNoaXZlOiB7XG4gICAgZW5hYmxlOiBib29sZWFuO1xuICAgIHdhaXRUaW1lOiBudW1iZXI7XG4gICAgZGF5c1RvQXJjaGl2ZTogbnVtYmVyO1xuICB9O1xuICBsb2c6IHtcbiAgICBsZXZlbDogc3RyaW5nO1xuICAgIGxvZ2dlcjogc3RyaW5nW107XG4gIH07XG4gIGNyZWF0ZU9wdGlvbnM6IHtcbiAgICBicm93c2VyQXJnczogc3RyaW5nW107XG4gIH07XG4gIG1hcHBlcjoge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICBwcmVmaXg6IHN0cmluZztcbiAgfTtcbiAgZGI6IHtcbiAgICBtb25nb2RiRGF0YWJhc2U6IHN0cmluZztcbiAgICBtb25nb2RiQ29sbGVjdGlvbjogc3RyaW5nO1xuICAgIG1vbmdvZGJVc2VyOiBzdHJpbmc7XG4gICAgbW9uZ29kYlBhc3N3b3JkOiBzdHJpbmc7XG4gICAgbW9uZ29kYkhvc3Q6IHN0cmluZztcbiAgICBtb25nb0lzUmVtb3RlOiBib29sZWFuO1xuICAgIG1vbmdvVVJMUmVtb3RlOiBzdHJpbmc7XG4gICAgbW9uZ29kYlBvcnQ6IG51bWJlcjtcbiAgICByZWRpc0hvc3Q6IHN0cmluZztcbiAgICByZWRpc1BvcnQ6IG51bWJlcjtcbiAgICByZWRpc1Bhc3N3b3JkOiBzdHJpbmc7XG4gICAgcmVkaXNEYjogc3RyaW5nO1xuICAgIHJlZGlzUHJlZml4OiBzdHJpbmc7XG4gIH07XG4gIGF3c19zMzoge1xuICAgIHJlZ2lvbjogQnVja2V0TG9jYXRpb25Db25zdHJhaW50IHwgbnVsbDtcbiAgICBhY2Nlc3Nfa2V5X2lkOiBzdHJpbmcgfCBudWxsO1xuICAgIHNlY3JldF9rZXk6IHN0cmluZyB8IG51bGw7XG4gICAgZGVmYXVsdEJ1Y2tldE5hbWU6IHN0cmluZyB8IG51bGw7XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiIifQ==
2
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R5cGVzL1NlcnZlck9wdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnVja2V0TG9jYXRpb25Db25zdHJhaW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJPcHRpb25zIHtcbiAgc2VjcmV0S2V5OiBzdHJpbmc7XG4gIGhvc3Q6IHN0cmluZztcbiAgcG9ydDogbnVtYmVyO1xuICBkZXZpY2VOYW1lOiBzdHJpbmc7XG4gIHBvd2VyZWRCeTogc3RyaW5nO1xuICBzdGFydEFsbFNlc3Npb246IGJvb2xlYW47XG4gIHRva2VuU3RvcmVUeXBlOiBzdHJpbmc7XG4gIG1heExpc3RlbmVyczogbnVtYmVyO1xuICBjdXN0b21Vc2VyRGF0YURpcjogc3RyaW5nO1xuICB3ZWJob29rOiB7XG4gICAgdXJsOiBzdHJpbmc7XG4gICAgYXV0b0Rvd25sb2FkOiBib29sZWFuO1xuICAgIHVwbG9hZFMzOiBib29sZWFuO1xuICAgIHJlYWRNZXNzYWdlOiBib29sZWFuO1xuICAgIGFsbFVucmVhZE9uU3RhcnQ6IGJvb2xlYW47XG4gICAgbGlzdGVuQWNrczogYm9vbGVhbjtcbiAgICBvblByZXNlbmNlQ2hhbmdlZDogYm9vbGVhbjtcbiAgICBvblBhcnRpY2lwYW50c0NoYW5nZWQ6IGJvb2xlYW47XG4gICAgb25SZWFjdGlvbk1lc3NhZ2U6IGJvb2xlYW47XG4gICAgb25Qb2xsUmVzcG9uc2U6IGJvb2xlYW47XG4gICAgb25SZXZva2VkTWVzc2FnZTogYm9vbGVhbjtcbiAgICBvblNlbGZNZXNzYWdlOiBib29sZWFuO1xuICAgIGlnbm9yZTogc3RyaW5nW107XG4gIH07XG4gIHdlYnNvY2tldDoge1xuICAgIGF1dG9Eb3dubG9hZDogYm9vbGVhbjtcbiAgICB1cGxvYWRTMzogYm9vbGVhbjtcbiAgfTtcbiAgYXJjaGl2ZToge1xuICAgIGVuYWJsZTogYm9vbGVhbjtcbiAgICB3YWl0VGltZTogbnVtYmVyO1xuICAgIGRheXNUb0FyY2hpdmU6IG51bWJlcjtcbiAgfTtcbiAgbG9nOiB7XG4gICAgbGV2ZWw6IHN0cmluZztcbiAgICBsb2dnZXI6IHN0cmluZ1tdO1xuICB9O1xuICBjcmVhdGVPcHRpb25zOiB7XG4gICAgYnJvd3NlckFyZ3M6IHN0cmluZ1tdO1xuICB9O1xuICBtYXBwZXI6IHtcbiAgICBlbmFibGU6IGJvb2xlYW47XG4gICAgcHJlZml4OiBzdHJpbmc7XG4gIH07XG4gIGRiOiB7XG4gICAgbW9uZ29kYkRhdGFiYXNlOiBzdHJpbmc7XG4gICAgbW9uZ29kYkNvbGxlY3Rpb246IHN0cmluZztcbiAgICBtb25nb2RiVXNlcjogc3RyaW5nO1xuICAgIG1vbmdvZGJQYXNzd29yZDogc3RyaW5nO1xuICAgIG1vbmdvZGJIb3N0OiBzdHJpbmc7XG4gICAgbW9uZ29Jc1JlbW90ZTogYm9vbGVhbjtcbiAgICBtb25nb1VSTFJlbW90ZTogc3RyaW5nO1xuICAgIG1vbmdvZGJQb3J0OiBudW1iZXI7XG4gICAgcmVkaXNIb3N0OiBzdHJpbmc7XG4gICAgcmVkaXNQb3J0OiBudW1iZXI7XG4gICAgcmVkaXNQYXNzd29yZDogc3RyaW5nO1xuICAgIHJlZGlzRGI6IHN0cmluZztcbiAgICByZWRpc1ByZWZpeDogc3RyaW5nO1xuICB9O1xuICBhd3NfczM6IHtcbiAgICByZWdpb246IEJ1Y2tldExvY2F0aW9uQ29uc3RyYWludCB8IG51bGw7XG4gICAgYWNjZXNzX2tleV9pZDogc3RyaW5nIHwgbnVsbDtcbiAgICBzZWNyZXRfa2V5OiBzdHJpbmcgfCBudWxsO1xuICAgIGRlZmF1bHRCdWNrZXROYW1lOiBzdHJpbmcgfCBudWxsO1xuICB9O1xufVxuIl0sIm1hcHBpbmdzIjoiIn0=
@@ -44,7 +44,7 @@ function bufferToReadableStream(buffer) {const readableInstanceStream = new _str
44
44
  reject(error);
45
45
  });
46
46
  });
47
- }var _default =
47
+ }var _default = exports.default =
48
48
 
49
- { bufferToReadableStream, AsyncBufferToStream };exports.default = _default;
50
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwicmVxdWlyZSIsImJ1ZmZlclRvUmVhZGFibGVTdHJlYW0iLCJidWZmZXIiLCJyZWFkYWJsZUluc3RhbmNlU3RyZWFtIiwiUmVhZGFibGUiLCJyZWFkIiwicHVzaCIsIkFzeW5jQnVmZmVyVG9TdHJlYW0iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImJ1ZmZlclN0cmVhbSIsIm9uIiwiZXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvYnVmZmVydXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5cbi8vIHR5cGUgQXN5bmNCdWZmZXJUb1N0cmVhbVxuXG5mdW5jdGlvbiBidWZmZXJUb1JlYWRhYmxlU3RyZWFtKGJ1ZmZlcjogQnVmZmVyKTogUmVhZGFibGUge1xuICBjb25zdCByZWFkYWJsZUluc3RhbmNlU3RyZWFtID0gbmV3IFJlYWRhYmxlKHtcbiAgICByZWFkKCkge1xuICAgICAgdGhpcy5wdXNoKGJ1ZmZlcik7XG4gICAgICB0aGlzLnB1c2gobnVsbCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHJlYWRhYmxlSW5zdGFuY2VTdHJlYW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIEFzeW5jQnVmZmVyVG9TdHJlYW0oYnVmZmVyOiBCdWZmZXIpOiBQcm9taXNlPFJlYWRhYmxlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYnVmZmVyU3RyZWFtID0gYnVmZmVyVG9SZWFkYWJsZVN0cmVhbShidWZmZXIpO1xuICAgIGJ1ZmZlclN0cmVhbS5vbignZGF0YScsICgpID0+IHtcbiAgICAgIC8vIGRhdGEgPSBjaHVuY2s7XG4gICAgfSk7XG5cbiAgICBidWZmZXJTdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoYnVmZmVyU3RyZWFtKTtcbiAgICB9KTtcblxuICAgIGJ1ZmZlclN0cmVhbS5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIHJlamVjdChlcnJvcik7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7IGJ1ZmZlclRvUmVhZGFibGVTdHJlYW0sIEFzeW5jQnVmZmVyVG9TdHJlYW0gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUEsV0FBa0MsQ0FoQmxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBa0JBO0FBRUEsU0FBU0Msc0JBQXNCQSxDQUFDQyxNQUFjLEVBQVksQ0FDeEQsTUFBTUMsc0JBQXNCLEdBQUcsSUFBSUMsZ0JBQVEsQ0FBQyxFQUMxQ0MsSUFBSUEsQ0FBQSxFQUFHLENBQ0wsSUFBSSxDQUFDQyxJQUFJLENBQUNKLE1BQU0sQ0FBQyxDQUNqQixJQUFJLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDakIsQ0FBQyxDQUNILENBQUMsQ0FBQyxDQUVGLE9BQU9ILHNCQUFzQixDQUMvQixDQUVBLGVBQWVJLG1CQUFtQkEsQ0FBQ0wsTUFBYyxFQUFxQjtFQUNwRSxPQUFPLElBQUlNLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztJQUN0QyxNQUFNQyxZQUFZLEdBQUdWLHNCQUFzQixDQUFDQyxNQUFNLENBQUM7SUFDbkRTLFlBQVksQ0FBQ0MsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNOztNQUM1QjtJQUFBLENBQ0QsQ0FBQztJQUVGRCxZQUFZLENBQUNDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTTtNQUMzQkgsT0FBTyxDQUFDRSxZQUFZLENBQUM7SUFDdkIsQ0FBQyxDQUFDOztJQUVGQSxZQUFZLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQ0MsS0FBSyxLQUFLO01BQ2xDSCxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsSUFBQUMsUUFBQTs7QUFFYyxFQUFFYixzQkFBc0IsRUFBRU0sbUJBQW1CLENBQUMsQ0FBQyxDQUFBUSxPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
49
+ { bufferToReadableStream, AsyncBufferToStream };
50
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfc3RyZWFtIiwicmVxdWlyZSIsImJ1ZmZlclRvUmVhZGFibGVTdHJlYW0iLCJidWZmZXIiLCJyZWFkYWJsZUluc3RhbmNlU3RyZWFtIiwiUmVhZGFibGUiLCJyZWFkIiwicHVzaCIsIkFzeW5jQnVmZmVyVG9TdHJlYW0iLCJQcm9taXNlIiwicmVzb2x2ZSIsInJlamVjdCIsImJ1ZmZlclN0cmVhbSIsIm9uIiwiZXJyb3IiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvYnVmZmVydXRpbHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBSZWFkYWJsZSB9IGZyb20gJ3N0cmVhbSc7XG5cbi8vIHR5cGUgQXN5bmNCdWZmZXJUb1N0cmVhbVxuXG5mdW5jdGlvbiBidWZmZXJUb1JlYWRhYmxlU3RyZWFtKGJ1ZmZlcjogQnVmZmVyKTogUmVhZGFibGUge1xuICBjb25zdCByZWFkYWJsZUluc3RhbmNlU3RyZWFtID0gbmV3IFJlYWRhYmxlKHtcbiAgICByZWFkKCkge1xuICAgICAgdGhpcy5wdXNoKGJ1ZmZlcik7XG4gICAgICB0aGlzLnB1c2gobnVsbCk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcmV0dXJuIHJlYWRhYmxlSW5zdGFuY2VTdHJlYW07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIEFzeW5jQnVmZmVyVG9TdHJlYW0oYnVmZmVyOiBCdWZmZXIpOiBQcm9taXNlPFJlYWRhYmxlPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgYnVmZmVyU3RyZWFtID0gYnVmZmVyVG9SZWFkYWJsZVN0cmVhbShidWZmZXIpO1xuICAgIGJ1ZmZlclN0cmVhbS5vbignZGF0YScsICgpID0+IHtcbiAgICAgIC8vIGRhdGEgPSBjaHVuY2s7XG4gICAgfSk7XG5cbiAgICBidWZmZXJTdHJlYW0ub24oJ2VuZCcsICgpID0+IHtcbiAgICAgIHJlc29sdmUoYnVmZmVyU3RyZWFtKTtcbiAgICB9KTtcblxuICAgIGJ1ZmZlclN0cmVhbS5vbignZXJyb3InLCAoZXJyb3IpID0+IHtcbiAgICAgIHJlamVjdChlcnJvcik7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCB7IGJ1ZmZlclRvUmVhZGFibGVTdHJlYW0sIEFzeW5jQnVmZmVyVG9TdHJlYW0gfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUEsV0FBa0MsQ0FoQmxDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQWRBLENBa0JBO0FBRUEsU0FBU0Msc0JBQXNCQSxDQUFDQyxNQUFjLEVBQVksQ0FDeEQsTUFBTUMsc0JBQXNCLEdBQUcsSUFBSUMsZ0JBQVEsQ0FBQyxFQUMxQ0MsSUFBSUEsQ0FBQSxFQUFHLENBQ0wsSUFBSSxDQUFDQyxJQUFJLENBQUNKLE1BQU0sQ0FBQyxDQUNqQixJQUFJLENBQUNJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FDakIsQ0FBQyxDQUNILENBQUMsQ0FBQyxDQUVGLE9BQU9ILHNCQUFzQixDQUMvQixDQUVBLGVBQWVJLG1CQUFtQkEsQ0FBQ0wsTUFBYyxFQUFxQjtFQUNwRSxPQUFPLElBQUlNLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztJQUN0QyxNQUFNQyxZQUFZLEdBQUdWLHNCQUFzQixDQUFDQyxNQUFNLENBQUM7SUFDbkRTLFlBQVksQ0FBQ0MsRUFBRSxDQUFDLE1BQU0sRUFBRSxNQUFNOztNQUM1QjtJQUFBLENBQ0QsQ0FBQztJQUVGRCxZQUFZLENBQUNDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTTtNQUMzQkgsT0FBTyxDQUFDRSxZQUFZLENBQUM7SUFDdkIsQ0FBQyxDQUFDOztJQUVGQSxZQUFZLENBQUNDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQ0MsS0FBSyxLQUFLO01BQ2xDSCxNQUFNLENBQUNHLEtBQUssQ0FBQztJQUNmLENBQUMsQ0FBQztFQUNKLENBQUMsQ0FBQztBQUNKLENBQUMsSUFBQUMsUUFBQSxHQUFBQyxPQUFBLENBQUFDLE9BQUE7O0FBRWMsRUFBRWYsc0JBQXNCLEVBQUVNLG1CQUFtQixDQUFDLENBQUMifQ==
@@ -232,13 +232,20 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
232
232
  });
233
233
  });
234
234
 
235
- await client.onAnyMessage((message) => {
235
+ await client.onAnyMessage(async (message) => {
236
236
  message.session = client.session;
237
237
 
238
238
  if (message.type === 'sticker') {
239
239
  (0, _sessionController.download)(message, client, req.logger);
240
240
  }
241
241
 
242
+ if (
243
+ req.serverOptions?.websocket?.autoDownload ||
244
+ req.serverOptions?.webhook?.autoDownload)
245
+ {
246
+ await (0, _functions.autoDownload)(client, req, message);
247
+ }
248
+
242
249
  req.io.emit('received-message', { response: message });
243
250
  if (req.serverOptions.webhook.onSelfMessage && message.fromMe)
244
251
  (0, _functions.callWebHook)(client, req, 'onselfmessage', message);
@@ -317,4 +324,4 @@ var _factory = _interopRequireDefault(require("./tokenStore/factory")); /*
317
324
  return client;
318
325
  }
319
326
  }exports.default = CreateSessionUtil;
320
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsImZyb21NZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGNhbGxXZWJIb29rLCBzdGFydEhlbHBlciB9IGZyb20gJy4vZnVuY3Rpb25zJztcbmltcG9ydCB7IGNsaWVudHNBcnJheSwgZXZlbnRFbWl0dGVyIH0gZnJvbSAnLi9zZXNzaW9uVXRpbCc7XG5pbXBvcnQgRmFjdG9yeSBmcm9tICcuL3Rva2VuU3RvcmUvZmFjdG9yeSc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENyZWF0ZVNlc3Npb25VdGlsIHtcbiAgc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQ6IGFueSkge1xuICAgIGlmIChjbGllbnQuY29uZmlnLmNoYXRXb290ICYmICFjbGllbnQuX2NoYXRXb290Q2xpZW50KVxuICAgICAgY2xpZW50Ll9jaGF0V29vdENsaWVudCA9IG5ldyBjaGF0V29vdENsaWVudChcbiAgICAgICAgY2xpZW50LmNvbmZpZy5jaGF0V29vdCxcbiAgICAgICAgY2xpZW50LnNlc3Npb25cbiAgICAgICk7XG4gICAgcmV0dXJuIGNsaWVudC5fY2hhdFdvb3RDbGllbnQ7XG4gIH1cblxuICBhc3luYyBjcmVhdGVTZXNzaW9uVXRpbChcbiAgICByZXE6IGFueSxcbiAgICBjbGllbnRzQXJyYXk6IGFueSxcbiAgICBzZXNzaW9uOiBzdHJpbmcsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIHRyeSB7XG4gICAgICBsZXQgY2xpZW50ID0gdGhpcy5nZXRDbGllbnQoc2Vzc2lvbikgYXMgYW55O1xuICAgICAgaWYgKGNsaWVudC5zdGF0dXMgIT0gbnVsbCAmJiBjbGllbnQuc3RhdHVzICE9PSAnQ0xPU0VEJykgcmV0dXJuO1xuICAgICAgY2xpZW50LnN0YXR1cyA9ICdJTklUSUFMSVpJTkcnO1xuICAgICAgY2xpZW50LmNvbmZpZyA9IHJlcS5ib2R5O1xuXG4gICAgICBjb25zdCB0b2tlblN0b3JlID0gbmV3IEZhY3RvcnkoKTtcbiAgICAgIGNvbnN0IG15VG9rZW5TdG9yZSA9IHRva2VuU3RvcmUuY3JlYXRlVG9rZW5TdG9yeShjbGllbnQpO1xuICAgICAgY29uc3QgdG9rZW5EYXRhID0gYXdhaXQgbXlUb2tlblN0b3JlLmdldFRva2VuKHNlc3Npb24pO1xuXG4gICAgICBpZiAoIXRva2VuRGF0YSkge1xuICAgICAgICBteVRva2VuU3RvcmUuc2V0VG9rZW4oc2Vzc2lvbiwge30pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnN0YXJ0Q2hhdFdvb3RDbGllbnQoY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLmN1c3RvbVVzZXJEYXRhRGlyKSB7XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMucHVwcGV0ZWVyT3B0aW9ucyA9IHtcbiAgICAgICAgICB1c2VyRGF0YURpcjogcmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIgKyBzZXNzaW9uLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICBjb25zdCB3cHBDbGllbnQgPSBhd2FpdCBjcmVhdGUoXG4gICAgICAgIE9iamVjdC5hc3NpZ24oXG4gICAgICAgICAge30sXG4gICAgICAgICAgeyB0b2tlblN0b3JlOiBteVRva2VuU3RvcmUgfSxcbiAgICAgICAgICByZXEuc2VydmVyT3B0aW9ucy5jcmVhdGVPcHRpb25zLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICAgICAgICBkZXZpY2VOYW1lOlxuICAgICAgICAgICAgICBjbGllbnQuY29uZmlnPy5kZXZpY2VOYW1lIHx8IHJlcS5zZXJ2ZXJPcHRpb25zLmRldmljZU5hbWUsXG4gICAgICAgICAgICBwb3dlcmVkQnk6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICByZXEuc2VydmVyT3B0aW9ucy5wb3dlcmVkQnkgfHxcbiAgICAgICAgICAgICAgJ1dQUENvbm5lY3QtU2VydmVyJyxcbiAgICAgICAgICAgIGNhdGNoUVI6IChcbiAgICAgICAgICAgICAgYmFzZTY0UXI6IGFueSxcbiAgICAgICAgICAgICAgYXNjaWlRUjogYW55LFxuICAgICAgICAgICAgICBhdHRlbXB0OiBhbnksXG4gICAgICAgICAgICAgIHVybENvZGU6IHN0cmluZ1xuICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuZXhwb3J0UVIocmVxLCBiYXNlNjRRciwgdXJsQ29kZSwgY2xpZW50LCByZXMpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9uTG9hZGluZ1NjcmVlbjogKHBlcmNlbnQ6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgIHJlcS5sb2dnZXIuaW5mbyhgWyR7c2Vzc2lvbn1dICR7cGVyY2VudH0lIC0gJHttZXNzYWdlfWApO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHN0YXR1c0ZpbmQ6IChzdGF0dXNGaW5kOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBldmVudEVtaXR0ZXIuZW1pdChcbiAgICAgICAgICAgICAgICAgIGBzdGF0dXMtJHtjbGllbnQuc2Vzc2lvbn1gLFxuICAgICAgICAgICAgICAgICAgY2xpZW50LFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2F1dG9jbG9zZUNhbGxlZCcgfHxcbiAgICAgICAgICAgICAgICAgIHN0YXR1c0ZpbmQgPT09ICdkZXNjb25uZWN0ZWRNb2JpbGUnXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICBjbGllbnQuc3RhdHVzID0gJ0NMT1NFRCc7XG4gICAgICAgICAgICAgICAgICBjbGllbnQucXJjb2RlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgY2xpZW50c0FycmF5W3Nlc3Npb25dID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ3N0YXR1cy1maW5kJywge1xuICAgICAgICAgICAgICAgICAgc3RhdHVzOiBzdGF0dXNGaW5kLFxuICAgICAgICAgICAgICAgICAgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKHN0YXR1c0ZpbmQgKyAnXFxuXFxuJyk7XG4gICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIClcbiAgICAgICk7XG5cbiAgICAgIGNsaWVudCA9IGNsaWVudHNBcnJheVtzZXNzaW9uXSA9IE9iamVjdC5hc3NpZ24od3BwQ2xpZW50LCBjbGllbnQpO1xuICAgICAgYXdhaXQgdGhpcy5zdGFydChyZXEsIGNsaWVudCk7XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUGFydGljaXBhbnRzQ2hhbmdlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uUGFydGljaXBhbnRzQ2hhbmdlZChyZXEsIGNsaWVudCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmVhY3Rpb25NZXNzYWdlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25SZWFjdGlvbk1lc3NhZ2UoY2xpZW50LCByZXEpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vblJldm9rZWRNZXNzYWdlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25SZXZva2VkTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUG9sbFJlc3BvbnNlKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25Qb2xsUmVzcG9uc2UoY2xpZW50LCByZXEpO1xuICAgICAgfVxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25MYWJlbFVwZGF0ZWQpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vbkxhYmVsVXBkYXRlZChjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBvcGVuZGF0YShyZXE6IFJlcXVlc3QsIHNlc3Npb246IHN0cmluZywgcmVzPzogYW55KSB7XG4gICAgYXdhaXQgdGhpcy5jcmVhdGVTZXNzaW9uVXRpbChyZXEsIGNsaWVudHNBcnJheSwgc2Vzc2lvbiwgcmVzKTtcbiAgfVxuXG4gIGV4cG9ydFFSKFxuICAgIHJlcTogYW55LFxuICAgIHFyQ29kZTogYW55LFxuICAgIHVybENvZGU6IGFueSxcbiAgICBjbGllbnQ6IFdoYXRzQXBwU2VydmVyLFxuICAgIHJlcz86IGFueVxuICApIHtcbiAgICBldmVudEVtaXR0ZXIuZW1pdChgcXJjb2RlLSR7Y2xpZW50LnNlc3Npb259YCwgcXJDb2RlLCB1cmxDb2RlLCBjbGllbnQpO1xuICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7XG4gICAgICBzdGF0dXM6ICdRUkNPREUnLFxuICAgICAgcXJjb2RlOiBxckNvZGUsXG4gICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgIH0pO1xuXG4gICAgcXJDb2RlID0gcXJDb2RlLnJlcGxhY2UoJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwnLCAnJyk7XG4gICAgY29uc3QgaW1hZ2VCdWZmZXIgPSBCdWZmZXIuZnJvbShxckNvZGUsICdiYXNlNjQnKTtcblxuICAgIHJlcS5pby5lbWl0KCdxckNvZGUnLCB7XG4gICAgICBkYXRhOiAnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcgKyBpbWFnZUJ1ZmZlci50b1N0cmluZygnYmFzZTY0JyksXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcblxuICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAncXJjb2RlJywge1xuICAgICAgcXJjb2RlOiBxckNvZGUsXG4gICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24sXG4gICAgfSk7XG4gICAgaWYgKHJlcyAmJiAhcmVzLl9oZWFkZXJTZW50KVxuICAgICAgcmVzLnN0YXR1cygyMDApLmpzb24oe1xuICAgICAgICBzdGF0dXM6ICdxcmNvZGUnLFxuICAgICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgICAgdXJsY29kZTogdXJsQ29kZSxcbiAgICAgICAgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24sXG4gICAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUGFydGljaXBhbnRzQ2hhbmdlZChyZXE6IGFueSwgY2xpZW50OiBhbnkpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25QYXJ0aWNpcGFudHNDaGFuZ2VkKChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wYXJ0aWNpcGFudHNjaGFuZ2VkJywgbWVzc2FnZSk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBzdGFydChyZXE6IFJlcXVlc3QsIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgICBPYmplY3QuYXNzaWduKGNsaWVudCwgeyBzdGF0dXM6ICdDT05ORUNURUQnLCBxcmNvZGU6IG51bGwgfSk7XG5cbiAgICAgIHJlcS5sb2dnZXIuaW5mbyhgU3RhcnRlZCBTZXNzaW9uOiAke2NsaWVudC5zZXNzaW9ufWApO1xuICAgICAgLy9jYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ3Nlc3Npb24tbG9nZ2VkJywgeyBzdGF0dXM6ICdDT05ORUNURUQnfSk7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogdHJ1ZSwgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24gfSk7XG4gICAgICBzdGFydEhlbHBlcihjbGllbnQsIHJlcSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJlcS5sb2dnZXIuZXJyb3IoZXJyb3IpO1xuICAgICAgcmVxLmlvLmVtaXQoJ3Nlc3Npb24tZXJyb3InLCBjbGllbnQuc2Vzc2lvbik7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5jaGVja1N0YXRlU2Vzc2lvbihjbGllbnQsIHJlcSk7XG4gICAgYXdhaXQgdGhpcy5saXN0ZW5NZXNzYWdlcyhjbGllbnQsIHJlcSk7XG5cbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5saXN0ZW5BY2tzKSB7XG4gICAgICBhd2FpdCB0aGlzLmxpc3RlbkFja3MoY2xpZW50LCByZXEpO1xuICAgIH1cblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUHJlc2VuY2VDaGFuZ2VkKSB7XG4gICAgICBhd2FpdCB0aGlzLm9uUHJlc2VuY2VDaGFuZ2VkKGNsaWVudCwgcmVxKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBjaGVja1N0YXRlU2Vzc2lvbihjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQub25TdGF0ZUNoYW5nZSgoc3RhdGUpID0+IHtcbiAgICAgIHJlcS5sb2dnZXIuaW5mbyhgU3RhdGUgQ2hhbmdlICR7c3RhdGV9OiAke2NsaWVudC5zZXNzaW9ufWApO1xuICAgICAgY29uc3QgY29uZmxpdHMgPSBbU29ja2V0U3RhdGUuQ09ORkxJQ1RdO1xuXG4gICAgICBpZiAoY29uZmxpdHMuaW5jbHVkZXMoc3RhdGUpKSB7XG4gICAgICAgIGNsaWVudC51c2VIZXJlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBsaXN0ZW5NZXNzYWdlcyhjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQub25NZXNzYWdlKGFzeW5jIChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgIGV2ZW50RW1pdHRlci5lbWl0KGBtZW5zYWdlbS0ke2NsaWVudC5zZXNzaW9ufWAsIGNsaWVudCwgbWVzc2FnZSk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29ubWVzc2FnZScsIG1lc3NhZ2UpO1xuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ2xvY2F0aW9uJylcbiAgICAgICAgY2xpZW50Lm9uTGl2ZUxvY2F0aW9uKG1lc3NhZ2Uuc2VuZGVyLmlkLCAobG9jYXRpb24pID0+IHtcbiAgICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ2xvY2F0aW9uJywgbG9jYXRpb24pO1xuICAgICAgICB9KTtcbiAgICB9KTtcblxuICAgIGF3YWl0IGNsaWVudC5vbkFueU1lc3NhZ2UoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgbWVzc2FnZS5zZXNzaW9uID0gY2xpZW50LnNlc3Npb247XG5cbiAgICAgIGlmIChtZXNzYWdlLnR5cGUgPT09ICdzdGlja2VyJykge1xuICAgICAgICBkb3dubG9hZChtZXNzYWdlLCBjbGllbnQsIHJlcS5sb2dnZXIpO1xuICAgICAgfVxuXG4gICAgICByZXEuaW8uZW1pdCgncmVjZWl2ZWQtbWVzc2FnZScsIHsgcmVzcG9uc2U6IG1lc3NhZ2UgfSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vblNlbGZNZXNzYWdlICYmIG1lc3NhZ2UuZnJvbU1lKVxuICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uc2VsZm1lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGF3YWl0IGNsaWVudC5vbkluY29taW5nQ2FsbChhc3luYyAoY2FsbCkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ2luY29taW5nY2FsbCcsIGNhbGwpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdpbmNvbWluZ2NhbGwnLCBjYWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RlbkFja3MoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50Lm9uQWNrKGFzeW5jIChhY2spID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbmFjaycsIGFjayk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uYWNrJywgYWNrKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUHJlc2VuY2VDaGFuZ2VkKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblByZXNlbmNlQ2hhbmdlZChhc3luYyAocHJlc2VuY2VDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnByZXNlbmNlY2hhbmdlZCcsIHByZXNlbmNlQ2hhbmdlZEV2ZW50KTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wcmVzZW5jZWNoYW5nZWQnLCBwcmVzZW5jZUNoYW5nZWRFdmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJlYWN0aW9uTWVzc2FnZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25SZWFjdGlvbk1lc3NhZ2UoYXN5bmMgKHJlYWN0aW9uOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnJlYWN0aW9ubWVzc2FnZScsIHJlYWN0aW9uKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZWFjdGlvbm1lc3NhZ2UnLCByZWFjdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJldm9rZWRNZXNzYWdlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblJldm9rZWRNZXNzYWdlKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuICBhc3luYyBvblBvbGxSZXNwb25zZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25Qb2xsUmVzcG9uc2UoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnBvbGxyZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wb2xscmVzcG9uc2UnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgb25MYWJlbFVwZGF0ZWQoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uVXBkYXRlTGFiZWwoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgZW5jb2RlRnVuY3Rpb24oZGF0YTogYW55LCB3ZWJob29rOiBhbnkpIHtcbiAgICBkYXRhLndlYmhvb2sgPSB3ZWJob29rO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfVxuXG4gIGRlY29kZUZ1bmN0aW9uKHRleHQ6IGFueSwgY2xpZW50OiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3QgPSBKU09OLnBhcnNlKHRleHQpO1xuICAgIGlmIChvYmplY3Qud2ViaG9vayAmJiAhY2xpZW50LndlYmhvb2spIGNsaWVudC53ZWJob29rID0gb2JqZWN0LndlYmhvb2s7XG4gICAgZGVsZXRlIG9iamVjdC53ZWJob29rO1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICBnZXRDbGllbnQoc2Vzc2lvbjogYW55KSB7XG4gICAgbGV0IGNsaWVudCA9IGNsaWVudHNBcnJheVtzZXNzaW9uXTtcblxuICAgIGlmICghY2xpZW50KVxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0ge1xuICAgICAgICBzdGF0dXM6IG51bGwsXG4gICAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICB9IGFzIGFueTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTs7O0FBR0EsSUFBQUMsa0JBQUEsR0FBQUQsT0FBQTs7QUFFQSxJQUFBRSxlQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUEsMEJBQTJDLENBdkIzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FXZSxNQUFNTyxpQkFBaUIsQ0FBQyxDQUNyQ0MsbUJBQW1CQSxDQUFDQyxNQUFXLEVBQUUsQ0FDL0IsSUFBSUEsTUFBTSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsSUFBSSxDQUFDRixNQUFNLENBQUNQLGVBQWUsRUFDbkRPLE1BQU0sQ0FBQ1AsZUFBZSxHQUFHLElBQUlVLHVCQUFjLENBQ3pDSCxNQUFNLENBQUNDLE1BQU0sQ0FBQ0MsUUFBUSxFQUN0QkYsTUFBTSxDQUFDSSxPQUNULENBQUMsQ0FDSCxPQUFPSixNQUFNLENBQUNQLGVBQWUsQ0FDL0IsQ0FFQSxNQUFNWSxpQkFBaUJBLENBQ3JCQyxHQUFRLEVBQ1JDLFlBQWlCO0VBQ2pCSCxPQUFlO0VBQ2ZJLEdBQVM7RUFDVDtJQUNBLElBQUk7TUFDRixJQUFJUixNQUFNLEdBQUcsSUFBSSxDQUFDUyxTQUFTLENBQUNMLE9BQU8sQ0FBUTtNQUMzQyxJQUFJSixNQUFNLENBQUNVLE1BQU0sSUFB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
327
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfd3BwY29ubmVjdCIsInJlcXVpcmUiLCJfc2Vzc2lvbkNvbnRyb2xsZXIiLCJfY2hhdFdvb3RDbGllbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2Z1bmN0aW9ucyIsIl9zZXNzaW9uVXRpbCIsIl9mYWN0b3J5IiwiQ3JlYXRlU2Vzc2lvblV0aWwiLCJzdGFydENoYXRXb290Q2xpZW50IiwiY2xpZW50IiwiY29uZmlnIiwiY2hhdFdvb3QiLCJjaGF0V29vdENsaWVudCIsInNlc3Npb24iLCJjcmVhdGVTZXNzaW9uVXRpbCIsInJlcSIsImNsaWVudHNBcnJheSIsInJlcyIsImdldENsaWVudCIsInN0YXR1cyIsImJvZHkiLCJ0b2tlblN0b3JlIiwiRmFjdG9yeSIsIm15VG9rZW5TdG9yZSIsImNyZWF0ZVRva2VuU3RvcnkiLCJ0b2tlbkRhdGEiLCJnZXRUb2tlbiIsInNldFRva2VuIiwic2VydmVyT3B0aW9ucyIsImN1c3RvbVVzZXJEYXRhRGlyIiwiY3JlYXRlT3B0aW9ucyIsInB1cHBldGVlck9wdGlvbnMiLCJ1c2VyRGF0YURpciIsIndwcENsaWVudCIsImNyZWF0ZSIsIk9iamVjdCIsImFzc2lnbiIsImRldmljZU5hbWUiLCJwb3dlcmVkQnkiLCJjYXRjaFFSIiwiYmFzZTY0UXIiLCJhc2NpaVFSIiwiYXR0ZW1wdCIsInVybENvZGUiLCJleHBvcnRRUiIsIm9uTG9hZGluZ1NjcmVlbiIsInBlcmNlbnQiLCJtZXNzYWdlIiwibG9nZ2VyIiwiaW5mbyIsInN0YXR1c0ZpbmQiLCJldmVudEVtaXR0ZXIiLCJlbWl0IiwicXJjb2RlIiwiY2xvc2UiLCJ1bmRlZmluZWQiLCJjYWxsV2ViSG9vayIsImVycm9yIiwic3RhcnQiLCJ3ZWJob29rIiwib25QYXJ0aWNpcGFudHNDaGFuZ2VkIiwib25SZWFjdGlvbk1lc3NhZ2UiLCJvblJldm9rZWRNZXNzYWdlIiwib25Qb2xsUmVzcG9uc2UiLCJvbkxhYmVsVXBkYXRlZCIsImUiLCJvcGVuZGF0YSIsInFyQ29kZSIsInVybGNvZGUiLCJyZXBsYWNlIiwiaW1hZ2VCdWZmZXIiLCJCdWZmZXIiLCJmcm9tIiwiaW8iLCJkYXRhIiwidG9TdHJpbmciLCJfaGVhZGVyU2VudCIsImpzb24iLCJpc0Nvbm5lY3RlZCIsInN0YXJ0SGVscGVyIiwiY2hlY2tTdGF0ZVNlc3Npb24iLCJsaXN0ZW5NZXNzYWdlcyIsImxpc3RlbkFja3MiLCJvblByZXNlbmNlQ2hhbmdlZCIsIm9uU3RhdGVDaGFuZ2UiLCJzdGF0ZSIsImNvbmZsaXRzIiwiU29ja2V0U3RhdGUiLCJDT05GTElDVCIsImluY2x1ZGVzIiwidXNlSGVyZSIsIm9uTWVzc2FnZSIsInR5cGUiLCJvbkxpdmVMb2NhdGlvbiIsInNlbmRlciIsImlkIiwibG9jYXRpb24iLCJvbkFueU1lc3NhZ2UiLCJkb3dubG9hZCIsIndlYnNvY2tldCIsImF1dG9Eb3dubG9hZCIsInJlc3BvbnNlIiwib25TZWxmTWVzc2FnZSIsImZyb21NZSIsIm9uSW5jb21pbmdDYWxsIiwiY2FsbCIsIm9uQWNrIiwiYWNrIiwicHJlc2VuY2VDaGFuZ2VkRXZlbnQiLCJyZWFjdGlvbiIsIm9uVXBkYXRlTGFiZWwiLCJlbmNvZGVGdW5jdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJkZWNvZGVGdW5jdGlvbiIsInRleHQiLCJvYmplY3QiLCJwYXJzZSIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvY3JlYXRlU2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgY3JlYXRlLCBTb2NrZXRTdGF0ZSB9IGZyb20gJ0B3cHBjb25uZWN0LXRlYW0vd3BwY29ubmVjdCc7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5cbmltcG9ydCB7IGRvd25sb2FkIH0gZnJvbSAnLi4vY29udHJvbGxlci9zZXNzaW9uQ29udHJvbGxlcic7XG5pbXBvcnQgeyBXaGF0c0FwcFNlcnZlciB9IGZyb20gJy4uL3R5cGVzL1doYXRzQXBwU2VydmVyJztcbmltcG9ydCBjaGF0V29vdENsaWVudCBmcm9tICcuL2NoYXRXb290Q2xpZW50JztcbmltcG9ydCB7IGF1dG9Eb3dubG9hZCwgY2FsbFdlYkhvb2ssIHN0YXJ0SGVscGVyIH0gZnJvbSAnLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgY2xpZW50c0FycmF5LCBldmVudEVtaXR0ZXIgfSBmcm9tICcuL3Nlc3Npb25VdGlsJztcbmltcG9ydCBGYWN0b3J5IGZyb20gJy4vdG9rZW5TdG9yZS9mYWN0b3J5JztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ3JlYXRlU2Vzc2lvblV0aWwge1xuICBzdGFydENoYXRXb290Q2xpZW50KGNsaWVudDogYW55KSB7XG4gICAgaWYgKGNsaWVudC5jb25maWcuY2hhdFdvb3QgJiYgIWNsaWVudC5fY2hhdFdvb3RDbGllbnQpXG4gICAgICBjbGllbnQuX2NoYXRXb290Q2xpZW50ID0gbmV3IGNoYXRXb290Q2xpZW50KFxuICAgICAgICBjbGllbnQuY29uZmlnLmNoYXRXb290LFxuICAgICAgICBjbGllbnQuc2Vzc2lvblxuICAgICAgKTtcbiAgICByZXR1cm4gY2xpZW50Ll9jaGF0V29vdENsaWVudDtcbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVNlc3Npb25VdGlsKFxuICAgIHJlcTogYW55LFxuICAgIGNsaWVudHNBcnJheTogYW55LFxuICAgIHNlc3Npb246IHN0cmluZyxcbiAgICByZXM/OiBhbnlcbiAgKSB7XG4gICAgdHJ5IHtcbiAgICAgIGxldCBjbGllbnQgPSB0aGlzLmdldENsaWVudChzZXNzaW9uKSBhcyBhbnk7XG4gICAgICBpZiAoY2xpZW50LnN0YXR1cyAhPSBudWxsICYmIGNsaWVudC5zdGF0dXMgIT09ICdDTE9TRUQnKSByZXR1cm47XG4gICAgICBjbGllbnQuc3RhdHVzID0gJ0lOSVRJQUxJWklORyc7XG4gICAgICBjbGllbnQuY29uZmlnID0gcmVxLmJvZHk7XG5cbiAgICAgIGNvbnN0IHRva2VuU3RvcmUgPSBuZXcgRmFjdG9yeSgpO1xuICAgICAgY29uc3QgbXlUb2tlblN0b3JlID0gdG9rZW5TdG9yZS5jcmVhdGVUb2tlblN0b3J5KGNsaWVudCk7XG4gICAgICBjb25zdCB0b2tlbkRhdGEgPSBhd2FpdCBteVRva2VuU3RvcmUuZ2V0VG9rZW4oc2Vzc2lvbik7XG5cbiAgICAgIGlmICghdG9rZW5EYXRhKSB7XG4gICAgICAgIG15VG9rZW5TdG9yZS5zZXRUb2tlbihzZXNzaW9uLCB7fSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc3RhcnRDaGF0V29vdENsaWVudChjbGllbnQpO1xuXG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMuY3VzdG9tVXNlckRhdGFEaXIpIHtcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnMuY3JlYXRlT3B0aW9ucy5wdXBwZXRlZXJPcHRpb25zID0ge1xuICAgICAgICAgIHVzZXJEYXRhRGlyOiByZXEuc2VydmVyT3B0aW9ucy5jdXN0b21Vc2VyRGF0YURpciArIHNlc3Npb24sXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHdwcENsaWVudCA9IGF3YWl0IGNyZWF0ZShcbiAgICAgICAgT2JqZWN0LmFzc2lnbihcbiAgICAgICAgICB7fSxcbiAgICAgICAgICB7IHRva2VuU3RvcmU6IG15VG9rZW5TdG9yZSB9LFxuICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLmNyZWF0ZU9wdGlvbnMsXG4gICAgICAgICAge1xuICAgICAgICAgICAgc2Vzc2lvbjogc2Vzc2lvbixcbiAgICAgICAgICAgIGRldmljZU5hbWU6XG4gICAgICAgICAgICAgIGNsaWVudC5jb25maWc/LmRldmljZU5hbWUgfHwgcmVxLnNlcnZlck9wdGlvbnMuZGV2aWNlTmFtZSxcbiAgICAgICAgICAgIHBvd2VyZWRCeTpcbiAgICAgICAgICAgICAgY2xpZW50LmNvbmZpZz8ucG93ZXJlZEJ5IHx8XG4gICAgICAgICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLnBvd2VyZWRCeSB8fFxuICAgICAgICAgICAgICAnV1BQQ29ubmVjdC1TZXJ2ZXInLFxuICAgICAgICAgICAgY2F0Y2hRUjogKFxuICAgICAgICAgICAgICBiYXNlNjRRcjogYW55LFxuICAgICAgICAgICAgICBhc2NpaVFSOiBhbnksXG4gICAgICAgICAgICAgIGF0dGVtcHQ6IGFueSxcbiAgICAgICAgICAgICAgdXJsQ29kZTogc3RyaW5nXG4gICAgICAgICAgICApID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5leHBvcnRRUihyZXEsIGJhc2U2NFFyLCB1cmxDb2RlLCBjbGllbnQsIHJlcyk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb25Mb2FkaW5nU2NyZWVuOiAocGVyY2VudDogc3RyaW5nLCBtZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgcmVxLmxvZ2dlci5pbmZvKGBbJHtzZXNzaW9ufV0gJHtwZXJjZW50fSUgLSAke21lc3NhZ2V9YCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc3RhdHVzRmluZDogKHN0YXR1c0ZpbmQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGV2ZW50RW1pdHRlci5lbWl0KFxuICAgICAgICAgICAgICAgICAgYHN0YXR1cy0ke2NsaWVudC5zZXNzaW9ufWAsXG4gICAgICAgICAgICAgICAgICBjbGllbnQsXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICBzdGF0dXNGaW5kID09PSAnYXV0b2Nsb3NlQ2FsbGVkJyB8fFxuICAgICAgICAgICAgICAgICAgc3RhdHVzRmluZCA9PT0gJ2Rlc2Nvbm5lY3RlZE1vYmlsZSdcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5zdGF0dXMgPSAnQ0xPU0VEJztcbiAgICAgICAgICAgICAgICAgIGNsaWVudC5xcmNvZGUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgY2xpZW50LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICBjbGllbnRzQXJyYXlbc2Vzc2lvbl0gPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc3RhdHVzLWZpbmQnLCB7XG4gICAgICAgICAgICAgICAgICBzdGF0dXM6IHN0YXR1c0ZpbmQsXG4gICAgICAgICAgICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXEubG9nZ2VyLmluZm8oc3RhdHVzRmluZCArICdcXG5cXG4nKTtcbiAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHt9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgKVxuICAgICAgKTtcblxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0gT2JqZWN0LmFzc2lnbih3cHBDbGllbnQsIGNsaWVudCk7XG4gICAgICBhd2FpdCB0aGlzLnN0YXJ0KHJlcSwgY2xpZW50KTtcblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QYXJ0aWNpcGFudHNDaGFuZ2VkKSB7XG4gICAgICAgIGF3YWl0IHRoaXMub25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcSwgY2xpZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25SZWFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJlYWN0aW9uTWVzc2FnZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLm9uUmV2b2tlZE1lc3NhZ2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblJldm9rZWRNZXNzYWdlKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25Qb2xsUmVzcG9uc2UpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5vblBvbGxSZXNwb25zZShjbGllbnQsIHJlcSk7XG4gICAgICB9XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vbkxhYmVsVXBkYXRlZCkge1xuICAgICAgICBhd2FpdCB0aGlzLm9uTGFiZWxVcGRhdGVkKGNsaWVudCwgcmVxKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXEubG9nZ2VyLmVycm9yKGUpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5kYXRhKHJlcTogUmVxdWVzdCwgc2Vzc2lvbjogc3RyaW5nLCByZXM/OiBhbnkpIHtcbiAgICBhd2FpdCB0aGlzLmNyZWF0ZVNlc3Npb25VdGlsKHJlcSwgY2xpZW50c0FycmF5LCBzZXNzaW9uLCByZXMpO1xuICB9XG5cbiAgZXhwb3J0UVIoXG4gICAgcmVxOiBhbnksXG4gICAgcXJDb2RlOiBhbnksXG4gICAgdXJsQ29kZTogYW55LFxuICAgIGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsXG4gICAgcmVzPzogYW55XG4gICkge1xuICAgIGV2ZW50RW1pdHRlci5lbWl0KGBxcmNvZGUtJHtjbGllbnQuc2Vzc2lvbn1gLCBxckNvZGUsIHVybENvZGUsIGNsaWVudCk7XG4gICAgT2JqZWN0LmFzc2lnbihjbGllbnQsIHtcbiAgICAgIHN0YXR1czogJ1FSQ09ERScsXG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgfSk7XG5cbiAgICBxckNvZGUgPSBxckNvZGUucmVwbGFjZSgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LCcsICcnKTtcbiAgICBjb25zdCBpbWFnZUJ1ZmZlciA9IEJ1ZmZlci5mcm9tKHFyQ29kZSwgJ2Jhc2U2NCcpO1xuXG4gICAgcmVxLmlvLmVtaXQoJ3FyQ29kZScsIHtcbiAgICAgIGRhdGE6ICdkYXRhOmltYWdlL3BuZztiYXNlNjQsJyArIGltYWdlQnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKSxcbiAgICAgIHNlc3Npb246IGNsaWVudC5zZXNzaW9uLFxuICAgIH0pO1xuXG4gICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdxcmNvZGUnLCB7XG4gICAgICBxcmNvZGU6IHFyQ29kZSxcbiAgICAgIHVybGNvZGU6IHVybENvZGUsXG4gICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICB9KTtcbiAgICBpZiAocmVzICYmICFyZXMuX2hlYWRlclNlbnQpXG4gICAgICByZXMuc3RhdHVzKDIwMCkuanNvbih7XG4gICAgICAgIHN0YXR1czogJ3FyY29kZScsXG4gICAgICAgIHFyY29kZTogcXJDb2RlLFxuICAgICAgICB1cmxjb2RlOiB1cmxDb2RlLFxuICAgICAgICBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbixcbiAgICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25QYXJ0aWNpcGFudHNDaGFuZ2VkKHJlcTogYW55LCBjbGllbnQ6IGFueSkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblBhcnRpY2lwYW50c0NoYW5nZWQoKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnBhcnRpY2lwYW50c2NoYW5nZWQnLCBtZXNzYWdlKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KHJlcTogUmVxdWVzdCwgY2xpZW50OiBXaGF0c0FwcFNlcnZlcikge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICAgIE9iamVjdC5hc3NpZ24oY2xpZW50LCB7IHN0YXR1czogJ0NPTk5FQ1RFRCcsIHFyY29kZTogbnVsbCB9KTtcblxuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGFydGVkIFNlc3Npb246ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICAvL2NhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnc2Vzc2lvbi1sb2dnZWQnLCB7IHN0YXR1czogJ0NPTk5FQ1RFRCd9KTtcbiAgICAgIHJlcS5pby5lbWl0KCdzZXNzaW9uLWxvZ2dlZCcsIHsgc3RhdHVzOiB0cnVlLCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9KTtcbiAgICAgIHN0YXJ0SGVscGVyKGNsaWVudCwgcmVxKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlcnJvcik7XG4gICAgICByZXEuaW8uZW1pdCgnc2Vzc2lvbi1lcnJvcicsIGNsaWVudC5zZXNzaW9uKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudCwgcmVxKTtcbiAgICBhd2FpdCB0aGlzLmxpc3Rlbk1lc3NhZ2VzKGNsaWVudCwgcmVxKTtcblxuICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLmxpc3RlbkFja3MpIHtcbiAgICAgIGF3YWl0IHRoaXMubGlzdGVuQWNrcyhjbGllbnQsIHJlcSk7XG4gICAgfVxuXG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sub25QcmVzZW5jZUNoYW5nZWQpIHtcbiAgICAgIGF3YWl0IHRoaXMub25QcmVzZW5jZUNoYW5nZWQoY2xpZW50LCByZXEpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNoZWNrU3RhdGVTZXNzaW9uKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblN0YXRlQ2hhbmdlKChzdGF0ZSkgPT4ge1xuICAgICAgcmVxLmxvZ2dlci5pbmZvKGBTdGF0ZSBDaGFuZ2UgJHtzdGF0ZX06ICR7Y2xpZW50LnNlc3Npb259YCk7XG4gICAgICBjb25zdCBjb25mbGl0cyA9IFtTb2NrZXRTdGF0ZS5DT05GTElDVF07XG5cbiAgICAgIGlmIChjb25mbGl0cy5pbmNsdWRlcyhzdGF0ZSkpIHtcbiAgICAgICAgY2xpZW50LnVzZUhlcmUoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3Rlbk1lc3NhZ2VzKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vbk1lc3NhZ2UoYXN5bmMgKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgZXZlbnRFbWl0dGVyLmVtaXQoYG1lbnNhZ2VtLSR7Y2xpZW50LnNlc3Npb259YCwgY2xpZW50LCBtZXNzYWdlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25tZXNzYWdlJywgbWVzc2FnZSk7XG4gICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnbG9jYXRpb24nKVxuICAgICAgICBjbGllbnQub25MaXZlTG9jYXRpb24obWVzc2FnZS5zZW5kZXIuaWQsIChsb2NhdGlvbikgPT4ge1xuICAgICAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnbG9jYXRpb24nLCBsb2NhdGlvbik7XG4gICAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgYXdhaXQgY2xpZW50Lm9uQW55TWVzc2FnZShhc3luYyAobWVzc2FnZTogYW55KSA9PiB7XG4gICAgICBtZXNzYWdlLnNlc3Npb24gPSBjbGllbnQuc2Vzc2lvbjtcblxuICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ3N0aWNrZXInKSB7XG4gICAgICAgIGRvd25sb2FkKG1lc3NhZ2UsIGNsaWVudCwgcmVxLmxvZ2dlcik7XG4gICAgICB9XG5cbiAgICAgIGlmIChcbiAgICAgICAgcmVxLnNlcnZlck9wdGlvbnM/LndlYnNvY2tldD8uYXV0b0Rvd25sb2FkIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJob29rPy5hdXRvRG93bmxvYWRcbiAgICAgICkge1xuICAgICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIG1lc3NhZ2UpO1xuICAgICAgfVxuXG4gICAgICByZXEuaW8uZW1pdCgncmVjZWl2ZWQtbWVzc2FnZScsIHsgcmVzcG9uc2U6IG1lc3NhZ2UgfSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5vblNlbGZNZXNzYWdlICYmIG1lc3NhZ2UuZnJvbU1lKVxuICAgICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uc2VsZm1lc3NhZ2UnLCBtZXNzYWdlKTtcbiAgICB9KTtcblxuICAgIGF3YWl0IGNsaWVudC5vbkluY29taW5nQ2FsbChhc3luYyAoY2FsbCkgPT4ge1xuICAgICAgcmVxLmlvLmVtaXQoJ2luY29taW5nY2FsbCcsIGNhbGwpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdpbmNvbWluZ2NhbGwnLCBjYWxsKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIGxpc3RlbkFja3MoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50Lm9uQWNrKGFzeW5jIChhY2spID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbmFjaycsIGFjayk7XG4gICAgICBjYWxsV2ViSG9vayhjbGllbnQsIHJlcSwgJ29uYWNrJywgYWNrKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFzeW5jIG9uUHJlc2VuY2VDaGFuZ2VkKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5vblByZXNlbmNlQ2hhbmdlZChhc3luYyAocHJlc2VuY2VDaGFuZ2VkRXZlbnQpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnByZXNlbmNlY2hhbmdlZCcsIHByZXNlbmNlQ2hhbmdlZEV2ZW50KTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wcmVzZW5jZWNoYW5nZWQnLCBwcmVzZW5jZUNoYW5nZWRFdmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJlYWN0aW9uTWVzc2FnZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25SZWFjdGlvbk1lc3NhZ2UoYXN5bmMgKHJlYWN0aW9uOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnJlYWN0aW9ubWVzc2FnZScsIHJlYWN0aW9uKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZWFjdGlvbm1lc3NhZ2UnLCByZWFjdGlvbik7XG4gICAgfSk7XG4gIH1cblxuICBhc3luYyBvblJldm9rZWRNZXNzYWdlKGNsaWVudDogV2hhdHNBcHBTZXJ2ZXIsIHJlcTogUmVxdWVzdCkge1xuICAgIGF3YWl0IGNsaWVudC5pc0Nvbm5lY3RlZCgpO1xuICAgIGF3YWl0IGNsaWVudC5vblJldm9rZWRNZXNzYWdlKGFzeW5jIChyZXNwb25zZTogYW55KSA9PiB7XG4gICAgICByZXEuaW8uZW1pdCgnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25yZXZva2VkbWVzc2FnZScsIHJlc3BvbnNlKTtcbiAgICB9KTtcbiAgfVxuICBhc3luYyBvblBvbGxSZXNwb25zZShjbGllbnQ6IFdoYXRzQXBwU2VydmVyLCByZXE6IFJlcXVlc3QpIHtcbiAgICBhd2FpdCBjbGllbnQuaXNDb25uZWN0ZWQoKTtcbiAgICBhd2FpdCBjbGllbnQub25Qb2xsUmVzcG9uc2UoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnBvbGxyZXNwb25zZScsIHJlc3BvbnNlKTtcbiAgICAgIGNhbGxXZWJIb29rKGNsaWVudCwgcmVxLCAnb25wb2xscmVzcG9uc2UnLCByZXNwb25zZSk7XG4gICAgfSk7XG4gIH1cbiAgYXN5bmMgb25MYWJlbFVwZGF0ZWQoY2xpZW50OiBXaGF0c0FwcFNlcnZlciwgcmVxOiBSZXF1ZXN0KSB7XG4gICAgYXdhaXQgY2xpZW50LmlzQ29ubmVjdGVkKCk7XG4gICAgYXdhaXQgY2xpZW50Lm9uVXBkYXRlTGFiZWwoYXN5bmMgKHJlc3BvbnNlOiBhbnkpID0+IHtcbiAgICAgIHJlcS5pby5lbWl0KCdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICdvbnVwZGF0ZWxhYmVsJywgcmVzcG9uc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgZW5jb2RlRnVuY3Rpb24oZGF0YTogYW55LCB3ZWJob29rOiBhbnkpIHtcbiAgICBkYXRhLndlYmhvb2sgPSB3ZWJob29rO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgfVxuXG4gIGRlY29kZUZ1bmN0aW9uKHRleHQ6IGFueSwgY2xpZW50OiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3QgPSBKU09OLnBhcnNlKHRleHQpO1xuICAgIGlmIChvYmplY3Qud2ViaG9vayAmJiAhY2xpZW50LndlYmhvb2spIGNsaWVudC53ZWJob29rID0gb2JqZWN0LndlYmhvb2s7XG4gICAgZGVsZXRlIG9iamVjdC53ZWJob29rO1xuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cblxuICBnZXRDbGllbnQoc2Vzc2lvbjogYW55KSB7XG4gICAgbGV0IGNsaWVudCA9IGNsaWVudHNBcnJheVtzZXNzaW9uXTtcblxuICAgIGlmICghY2xpZW50KVxuICAgICAgY2xpZW50ID0gY2xpZW50c0FycmF5W3Nlc3Npb25dID0ge1xuICAgICAgICBzdGF0dXM6IG51bGwsXG4gICAgICAgIHNlc3Npb246IHNlc3Npb24sXG4gICAgICB9IGFzIGFueTtcbiAgICByZXR1cm4gY2xpZW50O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7OztBQWVBLElBQUFBLFdBQUEsR0FBQUMsT0FBQTs7O0FBR0EsSUFBQUMsa0JBQUEsR0FBQUQsT0FBQTs7QUFFQSxJQUFBRSxlQUFBLEdBQUFDLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxZQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxRQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUEsMEJBQTJDLENBdkIzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FXZSxNQUFNTyxpQkFBaUIsQ0FBQyxDQUNyQ0MsbUJBQW1CQSxDQUFDQyxNQUFXLEVBQUUsQ0FDL0IsSUFBSUEsTUFBTSxDQUFDQyxNQUFNLENBQUNDLFFBQVEsSUFBSSxDQUFDRixNQUFNLENBQUNQLGVBQWUsRUFDbkRPLE1BQU0sQ0FBQ1AsZUFBZSxHQUFHLElBQUlVLHVCQUFjLENBQ3pDSCxNQUFNLENBQUNDLE1BQU0s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
@@ -25,7 +25,7 @@ if (_config.default.tokenStoreType === 'mongodb') {
25
25
  useUnifiedTopology: true
26
26
  });
27
27
  }
28
- }var _default =
28
+ }var _default = exports.default =
29
29
 
30
- mongoose;exports.default = _default;
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzdDLEdBQUVQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFZLElBQUdOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFnQixHQUFFO0VBQ3hELEVBQUU7O0VBRVIsSUFBSSxDQUFDUCxlQUFNLENBQUNLLEVBQUUsQ0FBQ0csYUFBYSxFQUFFO0lBQzVCVCxRQUFRLENBQUNVLE9BQU87TUFDYixhQUFZTCxlQUFnQixHQUFFSixlQUFNLENBQUNLLEVBQUUsQ0FBQ0ssV0FBWSxJQUFHVixlQUFNLENBQUNLLEVBQUUsQ0FBQ00sV0FBWSxJQUFHWCxlQUFNLENBQUNLLEVBQUUsQ0FBQ08sZUFBZ0IsRUFBQztNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUE7O0FBRWNqQixRQUFRLENBQUFrQixPQUFBLENBQUFDLE9BQUEsR0FBQUYsUUFBQSJ9
30
+ mongoose;
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJtb25nb29zZSIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUHJvbWlzZSIsImdsb2JhbCIsInVzZXJBbmRQYXNzd29yZCIsImRiIiwibW9uZ29kYlVzZXIiLCJtb25nb2RiUGFzc3dvcmQiLCJtb25nb0lzUmVtb3RlIiwiY29ubmVjdCIsIm1vbmdvZGJIb3N0IiwibW9uZ29kYlBvcnQiLCJtb25nb2RiRGF0YWJhc2UiLCJ1c2VOZXdVcmxQYXJzZXIiLCJ1c2VVbmlmaWVkVG9wb2xvZ3kiLCJtb25nb1VSTFJlbW90ZSIsIl9kZWZhdWx0IiwiZXhwb3J0cyIsImRlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbC9kYi9tb25nb2RiL2RiLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vaW1wb3J0IG1vbmdvb3NlIGZyb20gJ21vbmdvb3NlJztcbmltcG9ydCBjb25maWcgZnJvbSAnLi4vLi4vLi4vY29uZmlnJztcblxuY29uc3QgbW9uZ29vc2UgPVxuICBjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdtb25nb2RiJyA/IHJlcXVpcmUoJ21vbmdvb3NlJykgOiBudWxsO1xuXG5pZiAoY29uZmlnLnRva2VuU3RvcmVUeXBlID09PSAnbW9uZ29kYicpIHtcbiAgbW9uZ29vc2UuUHJvbWlzZSA9IGdsb2JhbC5Qcm9taXNlO1xuICBjb25zdCB1c2VyQW5kUGFzc3dvcmQgPVxuICAgIGNvbmZpZy5kYi5tb25nb2RiVXNlciAmJiBjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkXG4gICAgICA/IGAke2NvbmZpZy5kYi5tb25nb2RiVXNlcn06JHtjb25maWcuZGIubW9uZ29kYlBhc3N3b3JkfUBgXG4gICAgICA6ICcnO1xuXG4gIGlmICghY29uZmlnLmRiLm1vbmdvSXNSZW1vdGUpIHtcbiAgICBtb25nb29zZS5jb25uZWN0KFxuICAgICAgYG1vbmdvZGI6Ly8ke3VzZXJBbmRQYXNzd29yZH0ke2NvbmZpZy5kYi5tb25nb2RiSG9zdH06JHtjb25maWcuZGIubW9uZ29kYlBvcnR9LyR7Y29uZmlnLmRiLm1vbmdvZGJEYXRhYmFzZX1gLFxuICAgICAge1xuICAgICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICAgIHVzZVVuaWZpZWRUb3BvbG9neTogdHJ1ZSxcbiAgICAgIH1cbiAgICApO1xuICB9IGVsc2Uge1xuICAgIG1vbmdvb3NlLmNvbm5lY3QoY29uZmlnLmRiLm1vbmdvVVJMUmVtb3RlLCB7XG4gICAgICB1c2VOZXdVcmxQYXJzZXI6IHRydWUsXG4gICAgICB1c2VVbmlmaWVkVG9wb2xvZ3k6IHRydWUsXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbW9uZ29vc2U7XG4iXSwibWFwcGluZ3MiOiI7QUFDQSxJQUFBQSxPQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUEscUJBQXFDLENBRHJDOztBQUdBLE1BQU1DLFFBQVE7QUFDWkMsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxHQUFHSCxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSTs7QUFFbEUsSUFBSUUsZUFBTSxDQUFDQyxjQUFjLEtBQUssU0FBUyxFQUFFO0VBQ3ZDRixRQUFRLENBQUNHLE9BQU8sR0FBR0MsTUFBTSxDQUFDRCxPQUFPO0VBQ2pDLE1BQU1FLGVBQWU7RUFDbkJKLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFXLElBQUlOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFlO0VBQzdDLEdBQUVQLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDQyxXQUFZLElBQUdOLGVBQU0sQ0FBQ0ssRUFBRSxDQUFDRSxlQUFnQixHQUFFO0VBQ3hELEVBQUU7O0VBRVIsSUFBSSxDQUFDUCxlQUFNLENBQUNLLEVBQUUsQ0FBQ0csYUFBYSxFQUFFO0lBQzVCVCxRQUFRLENBQUNVLE9BQU87TUFDYixhQUFZTCxlQUFnQixHQUFFSixlQUFNLENBQUNLLEVBQUUsQ0FBQ0ssV0FBWSxJQUFHVixlQUFNLENBQUNLLEVBQUUsQ0FBQ00sV0FBWSxJQUFHWCxlQUFNLENBQUNLLEVBQUUsQ0FBQ08sZUFBZ0IsRUFBQztNQUM1RztRQUNFQyxlQUFlLEVBQUUsSUFBSTtRQUNyQkMsa0JBQWtCLEVBQUU7TUFDdEI7SUFDRixDQUFDO0VBQ0gsQ0FBQyxNQUFNO0lBQ0xmLFFBQVEsQ0FBQ1UsT0FBTyxDQUFDVCxlQUFNLENBQUNLLEVBQUUsQ0FBQ1UsY0FBYyxFQUFFO01BQ3pDRixlQUFlLEVBQUUsSUFBSTtNQUNyQkMsa0JBQWtCLEVBQUU7SUFDdEIsQ0FBQyxDQUFDO0VBQ0o7QUFDRixDQUFDLElBQUFFLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjbkIsUUFBUSJ9
@@ -9,7 +9,7 @@ if (_config.default.tokenStoreType === 'redis') {
9
9
  password: _config.default.db.redisPassword,
10
10
  db: _config.default.db.redisDb
11
11
  });
12
- }var _default =
12
+ }var _default = exports.default =
13
13
 
14
- RedisClient;exports.default = _default;
15
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJyZWRpcyIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUmVkaXNDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJkYiIsInJlZGlzUG9ydCIsInJlZGlzSG9zdCIsInBhc3N3b3JkIiwicmVkaXNQYXNzd29yZCIsInJlZGlzRGIiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGIvcmVkaXMvZGIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi8uLi9jb25maWcnO1xuXG5jb25zdCByZWRpcyA9IGNvbmZpZy50b2tlblN0b3JlVHlwZSA9PT0gJ3JlZGlzJyA/IHJlcXVpcmUoJ3JlZGlzJykgOiBudWxsO1xuXG5sZXQgUmVkaXNDbGllbnQ6IGFueSA9IG51bGw7XG5cbmlmIChjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdyZWRpcycpIHtcbiAgUmVkaXNDbGllbnQgPSByZWRpcy5jcmVhdGVDbGllbnQoY29uZmlnLmRiLnJlZGlzUG9ydCwgY29uZmlnLmRiLnJlZGlzSG9zdCwge1xuICAgIHBhc3N3b3JkOiBjb25maWcuZGIucmVkaXNQYXNzd29yZCxcbiAgICBkYjogY29uZmlnLmRiLnJlZGlzRGIsXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NsaWVudDtcbiJdLCJtYXBwaW5ncyI6InlMQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxNQUFNQyxLQUFLLEdBQUdDLGVBQU0sQ0FBQ0MsY0FBYyxLQUFLLE9BQU8sR0FBR0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUk7O0FBRXpFLElBQUlJLFdBQWdCLEdBQUcsSUFBSTs7QUFFM0IsSUFBSUYsZUFBTSxDQUFDQyxjQUFjLEtBQUssT0FBTyxFQUFFO0VBQ3JDQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0ksWUFBWSxDQUFDSCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0MsU0FBUyxFQUFFTCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0UsU0FBUyxFQUFFO0lBQ3pFQyxRQUFRLEVBQUVQLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSSxhQUFhO0lBQ2pDSixFQUFFLEVBQUVKLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSztFQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLElBQUFDLFFBQUE7O0FBRWNSLFdBQVcsQ0FBQVMsT0FBQSxDQUFBQyxPQUFBLEdBQUFGLFFBQUEifQ==
14
+ RedisClient;
15
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uZmlnIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJyZWRpcyIsImNvbmZpZyIsInRva2VuU3RvcmVUeXBlIiwiUmVkaXNDbGllbnQiLCJjcmVhdGVDbGllbnQiLCJkYiIsInJlZGlzUG9ydCIsInJlZGlzSG9zdCIsInBhc3N3b3JkIiwicmVkaXNQYXNzd29yZCIsInJlZGlzRGIiLCJfZGVmYXVsdCIsImV4cG9ydHMiLCJkZWZhdWx0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZGIvcmVkaXMvZGIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNvbmZpZyBmcm9tICcuLi8uLi8uLi9jb25maWcnO1xuXG5jb25zdCByZWRpcyA9IGNvbmZpZy50b2tlblN0b3JlVHlwZSA9PT0gJ3JlZGlzJyA/IHJlcXVpcmUoJ3JlZGlzJykgOiBudWxsO1xuXG5sZXQgUmVkaXNDbGllbnQ6IGFueSA9IG51bGw7XG5cbmlmIChjb25maWcudG9rZW5TdG9yZVR5cGUgPT09ICdyZWRpcycpIHtcbiAgUmVkaXNDbGllbnQgPSByZWRpcy5jcmVhdGVDbGllbnQoY29uZmlnLmRiLnJlZGlzUG9ydCwgY29uZmlnLmRiLnJlZGlzSG9zdCwge1xuICAgIHBhc3N3b3JkOiBjb25maWcuZGIucmVkaXNQYXNzd29yZCxcbiAgICBkYjogY29uZmlnLmRiLnJlZGlzRGIsXG4gIH0pO1xufVxuXG5leHBvcnQgZGVmYXVsdCBSZWRpc0NsaWVudDtcbiJdLCJtYXBwaW5ncyI6InlMQUFBLElBQUFBLE9BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTs7QUFFQSxNQUFNQyxLQUFLLEdBQUdDLGVBQU0sQ0FBQ0MsY0FBYyxLQUFLLE9BQU8sR0FBR0gsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLElBQUk7O0FBRXpFLElBQUlJLFdBQWdCLEdBQUcsSUFBSTs7QUFFM0IsSUFBSUYsZUFBTSxDQUFDQyxjQUFjLEtBQUssT0FBTyxFQUFFO0VBQ3JDQyxXQUFXLEdBQUdILEtBQUssQ0FBQ0ksWUFBWSxDQUFDSCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0MsU0FBUyxFQUFFTCxlQUFNLENBQUNJLEVBQUUsQ0FBQ0UsU0FBUyxFQUFFO0lBQ3pFQyxRQUFRLEVBQUVQLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSSxhQUFhO0lBQ2pDSixFQUFFLEVBQUVKLGVBQU0sQ0FBQ0ksRUFBRSxDQUFDSztFQUNoQixDQUFDLENBQUM7QUFDSixDQUFDLElBQUFDLFFBQUEsR0FBQUMsT0FBQSxDQUFBQyxPQUFBOztBQUVjVixXQUFXIn0=
@@ -1,4 +1,4 @@
1
- "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.callWebHook = callWebHook;exports.contactToArray = contactToArray;exports.createCatalogLink = createCatalogLink;exports.createFolders = createFolders;exports.getIPAddress = getIPAddress;exports.groupNameToArray = groupNameToArray;exports.groupToArray = groupToArray;exports.setMaxListners = setMaxListners;exports.startAllSessions = startAllSessions;exports.startHelper = startHelper;exports.strToBool = strToBool;exports.unlinkAsync = void 0;
1
+ "use strict";var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports, "__esModule", { value: true });exports.autoDownload = autoDownload;exports.callWebHook = callWebHook;exports.contactToArray = contactToArray;exports.createCatalogLink = createCatalogLink;exports.createFolders = createFolders;exports.getIPAddress = getIPAddress;exports.groupNameToArray = groupNameToArray;exports.groupToArray = groupToArray;exports.setMaxListners = setMaxListners;exports.startAllSessions = startAllSessions;exports.startHelper = startHelper;exports.strToBool = strToBool;exports.unlinkAsync = void 0;
2
2
 
3
3
 
4
4
 
@@ -46,18 +46,28 @@ var _bucketAlreadyExists = require("./bucketAlreadyExists"); /*
46
46
  * See the License for the specific language governing permissions and
47
47
  * limitations under the License.
48
48
  */let mime, crypto; //, aws: any;
49
- if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;}function contactToArray(number, isGroup) {const localArr = [];if (Array.isArray(number)) {for (let contact of number) {isGroup ? contact = contact.split('@')[0] : contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');if (contact !== '')
49
+ if (_config.default.webhook.uploadS3) {mime = _config.default.webhook.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.webhook.uploadS3 ? _crypto.default : null;}if (_config.default?.websocket?.uploadS3) {mime = _config.default.websocket.uploadS3 ? _mimeTypes.default : null;crypto = _config.default.websocket.uploadS3 ? _crypto.default : null;}function contactToArray(number, isGroup, isNewsletter)
50
+ {
51
+ const localArr = [];
52
+ if (Array.isArray(number)) {
53
+ for (let contact of number) {
54
+ isGroup || isNewsletter ?
55
+ contact = contact.split('@')[0] :
56
+ contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
57
+ if (contact !== '')
50
58
  if (isGroup) localArr.push(`${contact}@g.us`);else
59
+ if (isNewsletter) localArr.push(`${contact}@newsletter`);else
51
60
  localArr.push(`${contact}@c.us`);
52
61
  }
53
62
  } else {
54
63
  const arrContacts = number.split(/\s*[,;]\s*/g);
55
64
  for (let contact of arrContacts) {
56
- isGroup ?
65
+ isGroup || isNewsletter ?
57
66
  contact = contact.split('@')[0] :
58
67
  contact = contact.split('@')[0]?.replace(/[^\w ]/g, '');
59
68
  if (contact !== '')
60
69
  if (isGroup) localArr.push(`${contact}@g.us`);else
70
+ if (isNewsletter) localArr.push(`${contact}@newsletter`);else
61
71
  localArr.push(`${contact}@c.us`);
62
72
  }
63
73
  }
@@ -108,6 +118,13 @@ data)
108
118
  const webhook =
109
119
  client?.config.webhook || req.serverOptions.webhook.url || false;
110
120
  if (webhook) {
121
+ if (
122
+ req.serverOptions.webhook?.ignore && (
123
+ req.serverOptions.webhook.ignore.includes(event) ||
124
+ req.serverOptions.webhook.ignore.includes(data?.from) ||
125
+ req.serverOptions.webhook.ignore.includes(data?.type)))
126
+
127
+ return;
111
128
  if (req.serverOptions.webhook.autoDownload)
112
129
  await autoDownload(client, req, data);
113
130
  try {
@@ -140,7 +157,10 @@ async function autoDownload(client, req, message) {
140
157
  try {
141
158
  if (message && (message['mimetype'] || message.isMedia || message.isMMS)) {
142
159
  const buffer = await client.decryptFile(message);
143
- if (req.serverOptions.webhook.uploadS3) {
160
+ if (
161
+ req.serverOptions.webhook.uploadS3 ||
162
+ req.serverOptions?.websocket?.uploadS3)
163
+ {
144
164
  const hashName = crypto.randomBytes(24).toString('hex');
145
165
 
146
166
  if (
@@ -341,10 +361,10 @@ function setMaxListners(serverOptions) {
341
361
  }
342
362
  }
343
363
 
344
- const unlinkAsync = (0, _util.promisify)(_fs.default.unlink);exports.unlinkAsync = unlinkAsync;
364
+ const unlinkAsync = exports.unlinkAsync = (0, _util.promisify)(_fs.default.unlink);
345
365
 
346
366
  function createCatalogLink(session) {
347
367
  const [wid] = session.split('@');
348
368
  return `https://wa.me/c/${wid}`;
349
369
  }
350
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImF1dG9Eb3dubG9hZCIsImNoYXRJZCIsImZyb20iLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJpbmNsdWRlcyIsInJlYWRNZXNzYWdlIiwic2VuZFNlZW4iLCJlIiwiY2F0Y2giLCJsb2dnZXIiLCJ3YXJuIiwiZXJyb3IiLCJtZXNzYWdlIiwiaXNNZWRpYSIsImlzTU1TIiwiYnVmZmVyIiwiZGVjcnlwdEZpbGUiLCJoYXNoTmFtZSIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJhd3NfczMiLCJyZWdpb24iLCJhY2Nlc3Nfa2V5X2lkIiwic2VjcmV0X2tleSIsIkVycm9yIiwiczNDbGllbnQiLCJTM0NsaWVudCIsImVuZHBvaW50IiwidW5kZWZpbmVkIiwiZm9yY2VQYXRoU3R5bGUiLCJidWNrZXROYW1lIiwiZGVmYXVsdEJ1Y2tldE5hbWUiLCJub3JtYWxpemUiLCJ0b0xvd2VyQ2FzZSIsImxlbmd0aCIsIk1hdGgiLCJmbG9vciIsInJhbmRvbSIsImZpbGVOYW1lIiwiZXh0ZW5zaW9uIiwibWltZXR5cGUiLCJidWNrZXRBbHJlYWR5RXhpc3RzIiwic2VuZCIsIkNyZWF0ZUJ1Y2tldENvbW1hbmQiLCJCdWNrZXQiLCJPYmplY3RPd25lcnNoaXAiLCJQdXRQdWJsaWNBY2Nlc3NCbG9ja0NvbW1hbmQiLCJQdWJsaWNBY2Nlc3NCbG9ja0NvbmZpZ3VyYXRpb24iLCJCbG9ja1B1YmxpY0FjbHMiLCJJZ25vcmVQdWJsaWNBY2xzIiwiQmxvY2tQdWJsaWNQb2xpY3kiLCJQdXRPYmplY3RDb21tYW5kIiwiS2V5IiwiQm9keSIsIkNvbnRlbnRUeXBlIiwiQUNMIiwiZmlsZVVybCIsImJvZHkiLCJzdGFydEFsbFNlc3Npb25zIiwiaG9zdCIsInBvcnQiLCJzZWNyZXRLZXkiLCJzdGFydEhlbHBlciIsImFsbFVucmVhZE9uU3RhcnQiLCJzZW5kVW5yZWFkIiwiYXJjaGl2ZSIsImluZm8iLCJjaGF0cyIsImdldEFsbENoYXRzV2l0aE1lc3NhZ2VzIiwiaSIsImoiLCJtc2dzIiwiZXgiLCJzbGVlcCIsInRpbWUiLCJQcm9taXNlIiwicmVzb2x2ZSIsInNldFRpbWVvdXQiLCJnZXRBbGxDaGF0cyIsImZpbHRlciIsImMiLCJkYXRlIiwiRGF0ZSIsInQiLCJEYXlzQmV0d2VlbiIsImRheXNUb0FyY2hpdmUiLCJhcmNoaXZlQ2hhdCIsImlkIiwid2FpdFRpbWUiLCJTdGFydERhdGUiLCJlbmREYXRlIiwib25lRGF5Iiwic3RhcnQiLCJVVEMiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImVuZCIsImNyZWF0ZUZvbGRlcnMiLCJfX2Rpcm5hbWUiLCJwYXRoIiwiZGlybmFtZSIsImRpckZpbGVzIiwiZnMiLCJleGlzdHNTeW5jIiwibWtkaXJTeW5jIiwiZGlyVXBsb2FkIiwic3RyVG9Cb29sIiwicyIsInRlc3QiLCJnZXRJUEFkZHJlc3MiLCJpbnRlcmZhY2VzIiwib3MiLCJuZXR3b3JrSW50ZXJmYWNlcyIsImRldk5hbWUiLCJpZmFjZSIsImFsaWFzIiwiZmFtaWx5IiwiYWRkcmVzcyIsImludGVybmFsIiwic2V0TWF4TGlzdG5lcnMiLCJOdW1iZXIiLCJpc0ludGVnZXIiLCJtYXhMaXN0ZW5lcnMiLCJwcm9jZXNzIiwic2V0TWF4TGlzdGVuZXJzIiwidW5saW5rQXN5bmMiLCJwcm9taXNpZnkiLCJ1bmxpbmsiLCJleHBvcnRzIiwiY3JlYXRlQ2F0YWxvZ0xpbmsiLCJ3aWQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9mdW5jdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIzIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHtcbiAgQ3JlYXRlQnVja2V0Q29tbWFuZCxcbiAgUHV0T2JqZWN0Q29tbWFuZCxcbiAgUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kLFxuICBTM0NsaWVudCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXMzJztcbmltcG9ydCBhcGkgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IENyeXB0byBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgUmVxdWVzdCB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBtaW1ldHlwZXMgZnJvbSAnbWltZS10eXBlcyc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcblxuaW1wb3J0IGNvbmZpZyBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgY29udmVydCB9IGZyb20gJy4uL21hcHBlci9pbmRleCc7XG5pbXBvcnQgeyBTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi4vdHlwZXMvU2VydmVyT3B0aW9ucyc7XG5pbXBvcnQgeyBidWNrZXRBbHJlYWR5RXhpc3RzIH0gZnJvbSAnLi9idWNrZXRBbHJlYWR5RXhpc3RzJztcblxubGV0IG1pbWU6IGFueSwgY3J5cHRvOiBhbnk7IC8vLCBhd3M6IGFueTtcbmlmIChjb25maWcud2ViaG9vay51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBtaW1ldHlwZXMgOiBudWxsO1xuICBjcnlwdG8gPSBjb25maWcud2ViaG9vay51cGxvYWRTMyA/IENyeXB0byA6IG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb250YWN0VG9BcnJheShudW1iZXI6IGFueSwgaXNHcm91cD86IGJvb2xlYW4pIHtcbiAgY29uc3QgbG9jYWxBcnI6IGFueSA9IFtdO1xuICBpZiAoQXJyYXkuaXNBcnJheShudW1iZXIpKSB7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBudW1iZXIpIHtcbiAgICAgIGlzR3JvdXBcbiAgICAgICAgPyAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXSlcbiAgICAgICAgOiAoY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXT8ucmVwbGFjZSgvW15cXHcgXS9nLCAnJykpO1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKVxuICAgICAgICBpZiAoaXNHcm91cCkgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgICAgIGVsc2UgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBjLnVzYCk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFyckNvbnRhY3RzID0gbnVtYmVyLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaXNHcm91cFxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IFJlcXVlc3QsXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suYXV0b0Rvd25sb2FkKVxuICAgICAgYXdhaXQgYXV0b0Rvd25sb2FkKGNsaWVudCwgcmVxLCBkYXRhKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2hhdElkID1cbiAgICAgICAgZGF0YS5mcm9tIHx8XG4gICAgICAgIGRhdGEuY2hhdElkIHx8XG4gICAgICAgIChkYXRhLmNoYXRJZCA/IGRhdGEuY2hhdElkLl9zZXJpYWxpemVkIDogbnVsbCk7XG4gICAgICBkYXRhID0gT2JqZWN0LmFzc2lnbih7IGV2ZW50OiBldmVudCwgc2Vzc2lvbjogY2xpZW50LnNlc3Npb24gfSwgZGF0YSk7XG4gICAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLmVuYWJsZSlcbiAgICAgICAgZGF0YSA9IGF3YWl0IGNvbnZlcnQocmVxLnNlcnZlck9wdGlvbnMubWFwcGVyLnByZWZpeCwgZGF0YSk7XG4gICAgICBhcGlcbiAgICAgICAgLnBvc3Qod2ViaG9vaywgZGF0YSlcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBldmVudHMgPSBbJ3VucmVhZG1lc3NhZ2VzJywgJ29ubWVzc2FnZSddO1xuICAgICAgICAgICAgaWYgKGV2ZW50cy5pbmNsdWRlcyhldmVudCkgJiYgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5yZWFkTWVzc2FnZSlcbiAgICAgICAgICAgICAgY2xpZW50LnNlbmRTZWVuKGNoYXRJZCk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgcmVxLmxvZ2dlci53YXJuKCdFcnJvciBjYWxsaW5nIFdlYmhvb2suJywgZSk7XG4gICAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5yZWdpb24gfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LmFjY2Vzc19rZXlfaWQgfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LnNlY3JldF9rZXlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlLCBjb25maWd1cmUgeW91ciBhd3MgY29uZmlncycpO1xuICAgICAgICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCh7XG4gICAgICAgICAgcmVnaW9uOiBjb25maWc/LmF3c19zMz8ucmVnaW9uLFxuICAgICAgICAgIGVuZHBvaW50OiBjb25maWc/LmF3c19zMz8uZW5kcG9pbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGZvcmNlUGF0aFN0eWxlOiBjb25maWc/LmF3c19zMz8uZm9yY2VQYXRoU3R5bGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGJ1Y2tldE5hbWUgPSBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA/IGNvbmZpZz8uYXdzX3MzPy5kZWZhdWx0QnVja2V0TmFtZVxuICAgICAgICAgIDogY2xpZW50LnNlc3Npb247XG4gICAgICAgIGJ1Y2tldE5hbWUgPSBidWNrZXROYW1lXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl18W+KAlCBfLiw/IV0vZywgJycpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJ1Y2tldE5hbWUgPVxuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIDwgM1xuICAgICAgICAgICAgPyBidWNrZXROYW1lICtcbiAgICAgICAgICAgICAgYCR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDk5OSAtIDEwMCArIDEpKSArIDEwMH1gXG4gICAgICAgICAgICA6IGJ1Y2tldE5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7XG4gICAgICAgICAgY29uZmlnLmF3c19zMy5kZWZhdWx0QnVja2V0TmFtZSA/IGNsaWVudC5zZXNzaW9uICsgJy8nIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgJiZcbiAgICAgICAgICAhKGF3YWl0IGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgT2JqZWN0T3duZXJzaGlwOiAnT2JqZWN0V3JpdGVyJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lc3NhZ2UuZmlsZVVybCA9IGBodHRwczovLyR7YnVja2V0TmFtZX0uczMuYW1hem9uYXdzLmNvbS8ke2ZpbGVOYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLmJvZHkgPSBhd2FpdCBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWxsU2Vzc2lvbnMoY29uZmlnOiBhbnksIGxvZ2dlcjogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXBpLnBvc3QoXG4gICAgICBgJHtjb25maWcuaG9zdH06JHtjb25maWcucG9ydH0vYXBpLyR7Y29uZmlnLnNlY3JldEtleX0vc3RhcnQtYWxsYFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0SGVscGVyKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hbGxVbnJlYWRPblN0YXJ0KSBhd2FpdCBzZW5kVW5yZWFkKGNsaWVudCwgcmVxKTtcblxuICBpZiAocmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5lbmFibGUpIGF3YWl0IGFyY2hpdmUoY2xpZW50LCByZXEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVW5yZWFkKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXModHJ1ZSk7XG5cbiAgICBpZiAoY2hhdHMgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKylcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGF0c1tpXS5tc2dzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICd1bnJlYWRtZXNzYWdlcycsIGNoYXRzW2ldLm1zZ3Nbal0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBhcmNoaXZlKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSAqIDEwKSk7XG4gIH1cblxuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGFycXVpdmFuZG8gY2hhdHNgKTtcblxuICB0cnkge1xuICAgIGxldCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGF0cyA9IGNoYXRzLmZpbHRlcigoYykgPT4gIWMuYXJjaGl2ZSk7XG4gICAgfVxuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjaGF0c1tpXS50ICogMTAwMCk7XG5cbiAgICAgICAgaWYgKERheXNCZXR3ZWVuKGRhdGUpID4gcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5kYXlzVG9BcmNoaXZlKSB7XG4gICAgICAgICAgYXdhaXQgY2xpZW50LmFyY2hpdmVDaGF0KFxuICAgICAgICAgICAgY2hhdHNbaV0uaWQuaWQgfHwgY2hhdHNbaV0uaWQuX3NlcmlhbGl6ZWQsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUud2FpdFRpbWUgKyAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBhcnF1aXZhbmRvIGNoYXRzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gRGF5c0JldHdlZW4oU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAvLyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhbGwgVVRDIGRheXMgKG5vIERTVClcbiAgY29uc3Qgb25lRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAvLyBBIGRheSBpbiBVVEMgYWx3YXlzIGxhc3RzIDI0IGhvdXJzICh1bmxpa2UgaW4gb3RoZXIgdGltZSBmb3JtYXRzKVxuICBjb25zdCBzdGFydCA9IERhdGUuVVRDKFxuICAgIGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBlbmREYXRlLmdldE1vbnRoKCksXG4gICAgZW5kRGF0ZS5nZXREYXRlKClcbiAgKTtcbiAgY29uc3QgZW5kID0gRGF0ZS5VVEMoXG4gICAgU3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgU3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgU3RhcnREYXRlLmdldERhdGUoKVxuICApO1xuXG4gIC8vIHNvIGl0J3Mgc2FmZSB0byBkaXZpZGUgYnkgMjQgaG91cnNcbiAgcmV0dXJuIChzdGFydCAtIGVuZCkgLyBvbmVEYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2xkZXJzKCkge1xuICBjb25zdCBfX2Rpcm5hbWUgPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKCcnKSk7XG4gIGNvbnN0IGRpckZpbGVzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ1doYXRzQXBwSW1hZ2VzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJGaWxlcykpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyRmlsZXMpO1xuICB9XG5cbiAgY29uc3QgZGlyVXBsb2FkID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3VwbG9hZHMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpclVwbG9hZCkpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyVXBsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9Cb29sKHM6IHN0cmluZykge1xuICByZXR1cm4gL14odHJ1ZXwxKSQvaS50ZXN0KHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVBBZGRyZXNzKCkge1xuICBjb25zdCBpbnRlcmZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgZm9yIChjb25zdCBkZXZOYW1lIGluIGludGVyZmFjZXMpIHtcbiAgICBjb25zdCBpZmFjZTogYW55ID0gaW50ZXJmYWNlc1tkZXZOYW1lXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhbGlhcyA9IGlmYWNlW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBhbGlhcy5mYW1pbHkgPT09ICdJUHY0JyAmJlxuICAgICAgICBhbGlhcy5hZGRyZXNzICE9PSAnMTI3LjAuMC4xJyAmJlxuICAgICAgICAhYWxpYXMuaW50ZXJuYWxcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGFsaWFzLmFkZHJlc3M7XG4gICAgfVxuICB9XG4gIHJldHVybiAnMC4wLjAuMCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNYXhMaXN0bmVycyhzZXJ2ZXJPcHRpb25zOiBTZXJ2ZXJPcHRpb25zKSB7XG4gIGlmIChzZXJ2ZXJPcHRpb25zICYmIE51bWJlci5pc0ludGVnZXIoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpKSB7XG4gICAgcHJvY2Vzcy5zZXRNYXhMaXN0ZW5lcnMoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1bmxpbmtBc3luYyA9IHByb21pc2lmeShmcy51bmxpbmspO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2F0YWxvZ0xpbmsoc2Vzc2lvbjogYW55KSB7XG4gIGNvbnN0IFt3aWRdID0gc2Vzc2lvbi5zcGxpdCgnQCcpO1xuICByZXR1cm4gYGh0dHBzOi8vd2EubWUvYy8ke3dpZH1gO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFlQSxJQUFBQSxRQUFBLEdBQUFDLE9BQUE7Ozs7OztBQU1BLElBQUFDLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE9BQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTs7QUFFQSxJQUFBSSxHQUFBLEdBQUFGLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFILHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTSxHQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxLQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxLQUFBLEdBQUFSLE9BQUE7O0FBRUEsSUFBQVMsT0FBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsTUFBQSxHQUFBVixPQUFBOztBQUVBLElBQUFXLG9CQUFBLEdBQUFYLE9BQUEsMEJBQTRELENBakM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FxQkEsSUFBSVksSUFBUyxFQUFFQyxNQUFXLENBQUMsQ0FBQztBQUM1QixJQUFJQyxlQUFNLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUSxFQUFFLENBQzNCSixJQUFJLEdBQUdFLGVBQU0sQ0FBQ0MsT0FBTyxDQUFDQyxRQUFRLEdBQUdDLGtCQUFTLEdBQUcsSUFBSSxDQUNqREosTUFBTSxHQUFHQyxlQUFNLENBQUNDLE9BQU8sQ0FBQ0MsUUFBUSxHQUFHRSxlQUFNLEdBQUcsSUFB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
370
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xpZW50UyIsInJlcXVpcmUiLCJfYXhpb3MiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2NyeXB0byIsIl9mcyIsIl9taW1lVHlwZXMiLCJfb3MiLCJfcGF0aCIsIl91dGlsIiwiX2NvbmZpZyIsIl9pbmRleCIsIl9idWNrZXRBbHJlYWR5RXhpc3RzIiwibWltZSIsImNyeXB0byIsImNvbmZpZyIsIndlYmhvb2siLCJ1cGxvYWRTMyIsIm1pbWV0eXBlcyIsIkNyeXB0byIsIndlYnNvY2tldCIsImNvbnRhY3RUb0FycmF5IiwibnVtYmVyIiwiaXNHcm91cCIsImlzTmV3c2xldHRlciIsImxvY2FsQXJyIiwiQXJyYXkiLCJpc0FycmF5IiwiY29udGFjdCIsInNwbGl0IiwicmVwbGFjZSIsInB1c2giLCJhcnJDb250YWN0cyIsImdyb3VwVG9BcnJheSIsImdyb3VwIiwiZ3JvdXBOYW1lVG9BcnJheSIsImNhbGxXZWJIb29rIiwiY2xpZW50IiwicmVxIiwiZXZlbnQiLCJkYXRhIiwic2VydmVyT3B0aW9ucyIsInVybCIsImlnbm9yZSIsImluY2x1ZGVzIiwiZnJvbSIsInR5cGUiLCJhdXRvRG93bmxvYWQiLCJjaGF0SWQiLCJfc2VyaWFsaXplZCIsIk9iamVjdCIsImFzc2lnbiIsInNlc3Npb24iLCJtYXBwZXIiLCJlbmFibGUiLCJjb252ZXJ0IiwicHJlZml4IiwiYXBpIiwicG9zdCIsInRoZW4iLCJldmVudHMiLCJyZWFkTWVzc2FnZSIsInNlbmRTZWVuIiwiZSIsImNhdGNoIiwibG9nZ2VyIiwid2FybiIsImVycm9yIiwibWVzc2FnZSIsImlzTWVkaWEiLCJpc01NUyIsImJ1ZmZlciIsImRlY3J5cHRGaWxlIiwiaGFzaE5hbWUiLCJyYW5kb21CeXRlcyIsInRvU3RyaW5nIiwiYXdzX3MzIiwicmVnaW9uIiwiYWNjZXNzX2tleV9pZCIsInNlY3JldF9rZXkiLCJFcnJvciIsInMzQ2xpZW50IiwiUzNDbGllbnQiLCJlbmRwb2ludCIsInVuZGVmaW5lZCIsImZvcmNlUGF0aFN0eWxlIiwiYnVja2V0TmFtZSIsImRlZmF1bHRCdWNrZXROYW1lIiwibm9ybWFsaXplIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJmaWxlTmFtZSIsImV4dGVuc2lvbiIsIm1pbWV0eXBlIiwiYnVja2V0QWxyZWFkeUV4aXN0cyIsInNlbmQiLCJDcmVhdGVCdWNrZXRDb21tYW5kIiwiQnVja2V0IiwiT2JqZWN0T3duZXJzaGlwIiwiUHV0UHVibGljQWNjZXNzQmxvY2tDb21tYW5kIiwiUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uIiwiQmxvY2tQdWJsaWNBY2xzIiwiSWdub3JlUHVibGljQWNscyIsIkJsb2NrUHVibGljUG9saWN5IiwiUHV0T2JqZWN0Q29tbWFuZCIsIktleSIsIkJvZHkiLCJDb250ZW50VHlwZSIsIkFDTCIsImZpbGVVcmwiLCJib2R5Iiwic3RhcnRBbGxTZXNzaW9ucyIsImhvc3QiLCJwb3J0Iiwic2VjcmV0S2V5Iiwic3RhcnRIZWxwZXIiLCJhbGxVbnJlYWRPblN0YXJ0Iiwic2VuZFVucmVhZCIsImFyY2hpdmUiLCJpbmZvIiwiY2hhdHMiLCJnZXRBbGxDaGF0c1dpdGhNZXNzYWdlcyIsImkiLCJqIiwibXNncyIsImV4Iiwic2xlZXAiLCJ0aW1lIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXRUaW1lb3V0IiwiZ2V0QWxsQ2hhdHMiLCJmaWx0ZXIiLCJjIiwiZGF0ZSIsIkRhdGUiLCJ0IiwiRGF5c0JldHdlZW4iLCJkYXlzVG9BcmNoaXZlIiwiYXJjaGl2ZUNoYXQiLCJpZCIsIndhaXRUaW1lIiwiU3RhcnREYXRlIiwiZW5kRGF0ZSIsIm9uZURheSIsInN0YXJ0IiwiVVRDIiwiZ2V0RnVsbFllYXIiLCJnZXRNb250aCIsImdldERhdGUiLCJlbmQiLCJjcmVhdGVGb2xkZXJzIiwiX19kaXJuYW1lIiwicGF0aCIsImRpcm5hbWUiLCJkaXJGaWxlcyIsImZzIiwiZXhpc3RzU3luYyIsIm1rZGlyU3luYyIsImRpclVwbG9hZCIsInN0clRvQm9vbCIsInMiLCJ0ZXN0IiwiZ2V0SVBBZGRyZXNzIiwiaW50ZXJmYWNlcyIsIm9zIiwibmV0d29ya0ludGVyZmFjZXMiLCJkZXZOYW1lIiwiaWZhY2UiLCJhbGlhcyIsImZhbWlseSIsImFkZHJlc3MiLCJpbnRlcm5hbCIsInNldE1heExpc3RuZXJzIiwiTnVtYmVyIiwiaXNJbnRlZ2VyIiwibWF4TGlzdGVuZXJzIiwicHJvY2VzcyIsInNldE1heExpc3RlbmVycyIsInVubGlua0FzeW5jIiwiZXhwb3J0cyIsInByb21pc2lmeSIsInVubGluayIsImNyZWF0ZUNhdGFsb2dMaW5rIiwid2lkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvZnVuY3Rpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAyMyBXUFBDb25uZWN0IFRlYW1cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7XG4gIENyZWF0ZUJ1Y2tldENvbW1hbmQsXG4gIFB1dE9iamVjdENvbW1hbmQsXG4gIFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCxcbiAgUzNDbGllbnQsXG59IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1zMyc7XG5pbXBvcnQgYXBpIGZyb20gJ2F4aW9zJztcbmltcG9ydCBDcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgbWltZXR5cGVzIGZyb20gJ21pbWUtdHlwZXMnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5cbmltcG9ydCBjb25maWcgZnJvbSAnLi4vY29uZmlnJztcbmltcG9ydCB7IGNvbnZlcnQgfSBmcm9tICcuLi9tYXBwZXIvaW5kZXgnO1xuaW1wb3J0IHsgU2VydmVyT3B0aW9ucyB9IGZyb20gJy4uL3R5cGVzL1NlcnZlck9wdGlvbnMnO1xuaW1wb3J0IHsgYnVja2V0QWxyZWFkeUV4aXN0cyB9IGZyb20gJy4vYnVja2V0QWxyZWFkeUV4aXN0cyc7XG5cbmxldCBtaW1lOiBhbnksIGNyeXB0bzogYW55OyAvLywgYXdzOiBhbnk7XG5pZiAoY29uZmlnLndlYmhvb2sudXBsb2FkUzMpIHtcbiAgbWltZSA9IGNvbmZpZy53ZWJob29rLnVwbG9hZFMzID8gbWltZXR5cGVzIDogbnVsbDtcbiAgY3J5cHRvID0gY29uZmlnLndlYmhvb2sudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuaWYgKGNvbmZpZz8ud2Vic29ja2V0Py51cGxvYWRTMykge1xuICBtaW1lID0gY29uZmlnLndlYnNvY2tldC51cGxvYWRTMyA/IG1pbWV0eXBlcyA6IG51bGw7XG4gIGNyeXB0byA9IGNvbmZpZy53ZWJzb2NrZXQudXBsb2FkUzMgPyBDcnlwdG8gOiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29udGFjdFRvQXJyYXkoXG4gIG51bWJlcjogYW55LFxuICBpc0dyb3VwPzogYm9vbGVhbixcbiAgaXNOZXdzbGV0dGVyPzogYm9vbGVhblxuKSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkobnVtYmVyKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgbnVtYmVyKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBudW1iZXIuc3BsaXQoL1xccypbLDtdXFxzKi9nKTtcbiAgICBmb3IgKGxldCBjb250YWN0IG9mIGFyckNvbnRhY3RzKSB7XG4gICAgICBpc0dyb3VwIHx8IGlzTmV3c2xldHRlclxuICAgICAgICA/IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdKVxuICAgICAgICA6IChjb250YWN0ID0gY29udGFjdC5zcGxpdCgnQCcpWzBdPy5yZXBsYWNlKC9bXlxcdyBdL2csICcnKSk7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpXG4gICAgICAgIGlmIChpc0dyb3VwKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGcudXNgKTtcbiAgICAgICAgZWxzZSBpZiAoaXNOZXdzbGV0dGVyKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QG5ld3NsZXR0ZXJgKTtcbiAgICAgICAgZWxzZSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9QGMudXNgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbG9jYWxBcnI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBncm91cFRvQXJyYXkoZ3JvdXA6IGFueSkge1xuICBjb25zdCBsb2NhbEFycjogYW55ID0gW107XG4gIGlmIChBcnJheS5pc0FycmF5KGdyb3VwKSkge1xuICAgIGZvciAobGV0IGNvbnRhY3Qgb2YgZ3JvdXApIHtcbiAgICAgIGNvbnRhY3QgPSBjb250YWN0LnNwbGl0KCdAJylbMF07XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1AZy51c2ApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBhcnJDb250YWN0cyA9IGdyb3VwLnNwbGl0KC9cXHMqWyw7XVxccyovZyk7XG4gICAgZm9yIChsZXQgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgY29udGFjdCA9IGNvbnRhY3Quc3BsaXQoJ0AnKVswXTtcbiAgICAgIGlmIChjb250YWN0ICE9PSAnJykgKGxvY2FsQXJyIGFzIGFueSkucHVzaChgJHtjb250YWN0fUBnLnVzYCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ3JvdXBOYW1lVG9BcnJheShncm91cDogYW55KSB7XG4gIGNvbnN0IGxvY2FsQXJyOiBhbnkgPSBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkoZ3JvdXApKSB7XG4gICAgZm9yIChjb25zdCBjb250YWN0IG9mIGdyb3VwKSB7XG4gICAgICBpZiAoY29udGFjdCAhPT0gJycpIChsb2NhbEFyciBhcyBhbnkpLnB1c2goYCR7Y29udGFjdH1gKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXJyQ29udGFjdHMgPSBncm91cC5zcGxpdCgvXFxzKlssO11cXHMqL2cpO1xuICAgIGZvciAoY29uc3QgY29udGFjdCBvZiBhcnJDb250YWN0cykge1xuICAgICAgaWYgKGNvbnRhY3QgIT09ICcnKSAobG9jYWxBcnIgYXMgYW55KS5wdXNoKGAke2NvbnRhY3R9YCk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGxvY2FsQXJyO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY2FsbFdlYkhvb2soXG4gIGNsaWVudDogYW55LFxuICByZXE6IFJlcXVlc3QsXG4gIGV2ZW50OiBhbnksXG4gIGRhdGE6IGFueVxuKSB7XG4gIGNvbnN0IHdlYmhvb2sgPVxuICAgIGNsaWVudD8uY29uZmlnLndlYmhvb2sgfHwgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay51cmwgfHwgZmFsc2U7XG4gIGlmICh3ZWJob29rKSB7XG4gICAgaWYgKFxuICAgICAgcmVxLnNlcnZlck9wdGlvbnMud2ViaG9vaz8uaWdub3JlICYmXG4gICAgICAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5pZ25vcmUuaW5jbHVkZXMoZXZlbnQpIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LmZyb20pIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zLndlYmhvb2suaWdub3JlLmluY2x1ZGVzKGRhdGE/LnR5cGUpKVxuICAgIClcbiAgICAgIHJldHVybjtcbiAgICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hdXRvRG93bmxvYWQpXG4gICAgICBhd2FpdCBhdXRvRG93bmxvYWQoY2xpZW50LCByZXEsIGRhdGEpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBjaGF0SWQgPVxuICAgICAgICBkYXRhLmZyb20gfHxcbiAgICAgICAgZGF0YS5jaGF0SWQgfHxcbiAgICAgICAgKGRhdGEuY2hhdElkID8gZGF0YS5jaGF0SWQuX3NlcmlhbGl6ZWQgOiBudWxsKTtcbiAgICAgIGRhdGEgPSBPYmplY3QuYXNzaWduKHsgZXZlbnQ6IGV2ZW50LCBzZXNzaW9uOiBjbGllbnQuc2Vzc2lvbiB9LCBkYXRhKTtcbiAgICAgIGlmIChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIuZW5hYmxlKVxuICAgICAgICBkYXRhID0gYXdhaXQgY29udmVydChyZXEuc2VydmVyT3B0aW9ucy5tYXBwZXIucHJlZml4LCBkYXRhKTtcbiAgICAgIGFwaVxuICAgICAgICAucG9zdCh3ZWJob29rLCBkYXRhKVxuICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50cyA9IFsndW5yZWFkbWVzc2FnZXMnLCAnb25tZXNzYWdlJ107XG4gICAgICAgICAgICBpZiAoZXZlbnRzLmluY2x1ZGVzKGV2ZW50KSAmJiByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnJlYWRNZXNzYWdlKVxuICAgICAgICAgICAgICBjbGllbnQuc2VuZFNlZW4oY2hhdElkKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICByZXEubG9nZ2VyLndhcm4oJ0Vycm9yIGNhbGxpbmcgV2ViaG9vay4nLCBlKTtcbiAgICAgICAgfSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgcmVxLmxvZ2dlci5lcnJvcihlKTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGF1dG9Eb3dubG9hZChjbGllbnQ6IGFueSwgcmVxOiBhbnksIG1lc3NhZ2U6IGFueSkge1xuICB0cnkge1xuICAgIGlmIChtZXNzYWdlICYmIChtZXNzYWdlWydtaW1ldHlwZSddIHx8IG1lc3NhZ2UuaXNNZWRpYSB8fCBtZXNzYWdlLmlzTU1TKSkge1xuICAgICAgY29uc3QgYnVmZmVyID0gYXdhaXQgY2xpZW50LmRlY3J5cHRGaWxlKG1lc3NhZ2UpO1xuICAgICAgaWYgKFxuICAgICAgICByZXEuc2VydmVyT3B0aW9ucy53ZWJob29rLnVwbG9hZFMzIHx8XG4gICAgICAgIHJlcS5zZXJ2ZXJPcHRpb25zPy53ZWJzb2NrZXQ/LnVwbG9hZFMzXG4gICAgICApIHtcbiAgICAgICAgY29uc3QgaGFzaE5hbWUgPSBjcnlwdG8ucmFuZG9tQnl0ZXMoMjQpLnRvU3RyaW5nKCdoZXgnKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZz8uYXdzX3MzPy5yZWdpb24gfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LmFjY2Vzc19rZXlfaWQgfHxcbiAgICAgICAgICAhY29uZmlnPy5hd3NfczM/LnNlY3JldF9rZXlcbiAgICAgICAgKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGxlYXNlLCBjb25maWd1cmUgeW91ciBhd3MgY29uZmlncycpO1xuICAgICAgICBjb25zdCBzM0NsaWVudCA9IG5ldyBTM0NsaWVudCh7XG4gICAgICAgICAgcmVnaW9uOiBjb25maWc/LmF3c19zMz8ucmVnaW9uLFxuICAgICAgICAgIGVuZHBvaW50OiBjb25maWc/LmF3c19zMz8uZW5kcG9pbnQgfHwgdW5kZWZpbmVkLFxuICAgICAgICAgIGZvcmNlUGF0aFN0eWxlOiBjb25maWc/LmF3c19zMz8uZm9yY2VQYXRoU3R5bGUgfHwgdW5kZWZpbmVkLFxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGJ1Y2tldE5hbWUgPSBjb25maWc/LmF3c19zMz8uZGVmYXVsdEJ1Y2tldE5hbWVcbiAgICAgICAgICA/IGNvbmZpZz8uYXdzX3MzPy5kZWZhdWx0QnVja2V0TmFtZVxuICAgICAgICAgIDogY2xpZW50LnNlc3Npb247XG4gICAgICAgIGJ1Y2tldE5hbWUgPSBidWNrZXROYW1lXG4gICAgICAgICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAgICAgICAucmVwbGFjZSgvW1xcdTAzMDAtXFx1MDM2Zl18W+KAlCBfLiw/IV0vZywgJycpXG4gICAgICAgICAgLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIGJ1Y2tldE5hbWUgPVxuICAgICAgICAgIGJ1Y2tldE5hbWUubGVuZ3RoIDwgM1xuICAgICAgICAgICAgPyBidWNrZXROYW1lICtcbiAgICAgICAgICAgICAgYCR7TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKDk5OSAtIDEwMCArIDEpKSArIDEwMH1gXG4gICAgICAgICAgICA6IGJ1Y2tldE5hbWU7XG4gICAgICAgIGNvbnN0IGZpbGVOYW1lID0gYCR7XG4gICAgICAgICAgY29uZmlnLmF3c19zMy5kZWZhdWx0QnVja2V0TmFtZSA/IGNsaWVudC5zZXNzaW9uICsgJy8nIDogJydcbiAgICAgICAgfSR7aGFzaE5hbWV9LiR7bWltZS5leHRlbnNpb24obWVzc2FnZS5taW1ldHlwZSl9YDtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWNvbmZpZy5hd3NfczMuZGVmYXVsdEJ1Y2tldE5hbWUgJiZcbiAgICAgICAgICAhKGF3YWl0IGJ1Y2tldEFscmVhZHlFeGlzdHMoYnVja2V0TmFtZSkpXG4gICAgICAgICkge1xuICAgICAgICAgIGF3YWl0IHMzQ2xpZW50LnNlbmQoXG4gICAgICAgICAgICBuZXcgQ3JlYXRlQnVja2V0Q29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgT2JqZWN0T3duZXJzaGlwOiAnT2JqZWN0V3JpdGVyJyxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgICAgbmV3IFB1dFB1YmxpY0FjY2Vzc0Jsb2NrQ29tbWFuZCh7XG4gICAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgICAgUHVibGljQWNjZXNzQmxvY2tDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICAgICAgQmxvY2tQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBJZ25vcmVQdWJsaWNBY2xzOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBCbG9ja1B1YmxpY1BvbGljeTogZmFsc2UsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICBhd2FpdCBzM0NsaWVudC5zZW5kKFxuICAgICAgICAgIG5ldyBQdXRPYmplY3RDb21tYW5kKHtcbiAgICAgICAgICAgIEJ1Y2tldDogYnVja2V0TmFtZSxcbiAgICAgICAgICAgIEtleTogZmlsZU5hbWUsXG4gICAgICAgICAgICBCb2R5OiBidWZmZXIsXG4gICAgICAgICAgICBDb250ZW50VHlwZTogbWVzc2FnZS5taW1ldHlwZSxcbiAgICAgICAgICAgIEFDTDogJ3B1YmxpYy1yZWFkJyxcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIG1lc3NhZ2UuZmlsZVVybCA9IGBodHRwczovLyR7YnVja2V0TmFtZX0uczMuYW1hem9uYXdzLmNvbS8ke2ZpbGVOYW1lfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBtZXNzYWdlLmJvZHkgPSBhd2FpdCBidWZmZXIudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuICAgICAgfVxuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIHJlcS5sb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0QWxsU2Vzc2lvbnMoY29uZmlnOiBhbnksIGxvZ2dlcjogYW55KSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgYXBpLnBvc3QoXG4gICAgICBgJHtjb25maWcuaG9zdH06JHtjb25maWcucG9ydH0vYXBpLyR7Y29uZmlnLnNlY3JldEtleX0vc3RhcnQtYWxsYFxuICAgICk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2dnZXIuZXJyb3IoZSk7XG4gIH1cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0SGVscGVyKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBpZiAocmVxLnNlcnZlck9wdGlvbnMud2ViaG9vay5hbGxVbnJlYWRPblN0YXJ0KSBhd2FpdCBzZW5kVW5yZWFkKGNsaWVudCwgcmVxKTtcblxuICBpZiAocmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5lbmFibGUpIGF3YWl0IGFyY2hpdmUoY2xpZW50LCByZXEpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBzZW5kVW5yZWFkKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGVudmlhciBtZW5zYWdlbnMgbsOjbyBsaWRhc2ApO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hhdHMgPSBhd2FpdCBjbGllbnQuZ2V0QWxsQ2hhdHNXaXRoTWVzc2FnZXModHJ1ZSk7XG5cbiAgICBpZiAoY2hhdHMgJiYgY2hhdHMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGF0cy5sZW5ndGg7IGkrKylcbiAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBjaGF0c1tpXS5tc2dzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgY2FsbFdlYkhvb2soY2xpZW50LCByZXEsICd1bnJlYWRtZXNzYWdlcycsIGNoYXRzW2ldLm1zZ3Nbal0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBlbnZpYXIgbWVuc2FnZW5zIG7Do28gbGlkYXNgKTtcbiAgfSBjYXRjaCAoZXgpIHtcbiAgICByZXEubG9nZ2VyLmVycm9yKGV4KTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBhcmNoaXZlKGNsaWVudDogYW55LCByZXE6IGFueSkge1xuICBhc3luYyBmdW5jdGlvbiBzbGVlcCh0aW1lOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgdGltZSAqIDEwKSk7XG4gIH1cblxuICByZXEubG9nZ2VyLmluZm8oYCR7Y2xpZW50LnNlc3Npb259IDogSW5pY2lvIGFycXVpdmFuZG8gY2hhdHNgKTtcblxuICB0cnkge1xuICAgIGxldCBjaGF0cyA9IGF3YWl0IGNsaWVudC5nZXRBbGxDaGF0cygpO1xuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBjaGF0cyA9IGNoYXRzLmZpbHRlcigoYykgPT4gIWMuYXJjaGl2ZSk7XG4gICAgfVxuICAgIGlmIChjaGF0cyAmJiBBcnJheS5pc0FycmF5KGNoYXRzKSAmJiBjaGF0cy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoYXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjaGF0c1tpXS50ICogMTAwMCk7XG5cbiAgICAgICAgaWYgKERheXNCZXR3ZWVuKGRhdGUpID4gcmVxLnNlcnZlck9wdGlvbnMuYXJjaGl2ZS5kYXlzVG9BcmNoaXZlKSB7XG4gICAgICAgICAgYXdhaXQgY2xpZW50LmFyY2hpdmVDaGF0KFxuICAgICAgICAgICAgY2hhdHNbaV0uaWQuaWQgfHwgY2hhdHNbaV0uaWQuX3NlcmlhbGl6ZWQsXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKTtcbiAgICAgICAgICBhd2FpdCBzbGVlcChcbiAgICAgICAgICAgIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHJlcS5zZXJ2ZXJPcHRpb25zLmFyY2hpdmUud2FpdFRpbWUgKyAxKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmVxLmxvZ2dlci5pbmZvKGAke2NsaWVudC5zZXNzaW9ufSA6IEZpbSBhcnF1aXZhbmRvIGNoYXRzYCk7XG4gIH0gY2F0Y2ggKGV4KSB7XG4gICAgcmVxLmxvZ2dlci5lcnJvcihleCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gRGF5c0JldHdlZW4oU3RhcnREYXRlOiBEYXRlKSB7XG4gIGNvbnN0IGVuZERhdGUgPSBuZXcgRGF0ZSgpO1xuICAvLyBUaGUgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBpbiBhbGwgVVRDIGRheXMgKG5vIERTVClcbiAgY29uc3Qgb25lRGF5ID0gMTAwMCAqIDYwICogNjAgKiAyNDtcblxuICAvLyBBIGRheSBpbiBVVEMgYWx3YXlzIGxhc3RzIDI0IGhvdXJzICh1bmxpa2UgaW4gb3RoZXIgdGltZSBmb3JtYXRzKVxuICBjb25zdCBzdGFydCA9IERhdGUuVVRDKFxuICAgIGVuZERhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICBlbmREYXRlLmdldE1vbnRoKCksXG4gICAgZW5kRGF0ZS5nZXREYXRlKClcbiAgKTtcbiAgY29uc3QgZW5kID0gRGF0ZS5VVEMoXG4gICAgU3RhcnREYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgU3RhcnREYXRlLmdldE1vbnRoKCksXG4gICAgU3RhcnREYXRlLmdldERhdGUoKVxuICApO1xuXG4gIC8vIHNvIGl0J3Mgc2FmZSB0byBkaXZpZGUgYnkgMjQgaG91cnNcbiAgcmV0dXJuIChzdGFydCAtIGVuZCkgLyBvbmVEYXk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVGb2xkZXJzKCkge1xuICBjb25zdCBfX2Rpcm5hbWUgPSBwYXRoLnJlc29sdmUocGF0aC5kaXJuYW1lKCcnKSk7XG4gIGNvbnN0IGRpckZpbGVzID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ1doYXRzQXBwSW1hZ2VzJyk7XG4gIGlmICghZnMuZXhpc3RzU3luYyhkaXJGaWxlcykpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyRmlsZXMpO1xuICB9XG5cbiAgY29uc3QgZGlyVXBsb2FkID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJ3VwbG9hZHMnKTtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGRpclVwbG9hZCkpIHtcbiAgICBmcy5ta2RpclN5bmMoZGlyVXBsb2FkKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9Cb29sKHM6IHN0cmluZykge1xuICByZXR1cm4gL14odHJ1ZXwxKSQvaS50ZXN0KHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SVBBZGRyZXNzKCkge1xuICBjb25zdCBpbnRlcmZhY2VzID0gb3MubmV0d29ya0ludGVyZmFjZXMoKTtcbiAgZm9yIChjb25zdCBkZXZOYW1lIGluIGludGVyZmFjZXMpIHtcbiAgICBjb25zdCBpZmFjZTogYW55ID0gaW50ZXJmYWNlc1tkZXZOYW1lXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGlmYWNlLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBhbGlhcyA9IGlmYWNlW2ldO1xuICAgICAgaWYgKFxuICAgICAgICBhbGlhcy5mYW1pbHkgPT09ICdJUHY0JyAmJlxuICAgICAgICBhbGlhcy5hZGRyZXNzICE9PSAnMTI3LjAuMC4xJyAmJlxuICAgICAgICAhYWxpYXMuaW50ZXJuYWxcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIGFsaWFzLmFkZHJlc3M7XG4gICAgfVxuICB9XG4gIHJldHVybiAnMC4wLjAuMCc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRNYXhMaXN0bmVycyhzZXJ2ZXJPcHRpb25zOiBTZXJ2ZXJPcHRpb25zKSB7XG4gIGlmIChzZXJ2ZXJPcHRpb25zICYmIE51bWJlci5pc0ludGVnZXIoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpKSB7XG4gICAgcHJvY2Vzcy5zZXRNYXhMaXN0ZW5lcnMoc2VydmVyT3B0aW9ucy5tYXhMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCB1bmxpbmtBc3luYyA9IHByb21pc2lmeShmcy51bmxpbmspO1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2F0YWxvZ0xpbmsoc2Vzc2lvbjogYW55KSB7XG4gIGNvbnN0IFt3aWRdID0gc2Vzc2lvbi5zcGxp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
@@ -28,7 +28,7 @@ var _events = require("events"); /*
28
28
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
29
  * See the License for the specific language governing permissions and
30
30
  * limitations under the License.
31
- */const chromiumArgs = ['--disable-web-security', // Disables web security
31
+ */const chromiumArgs = exports.chromiumArgs = ['--disable-web-security', // Disables web security
32
32
  '--no-sandbox', // Disables sandbox
33
33
  '--aggressive-cache-discard', // Aggressively discards cache
34
34
  '--disable-cache', // Disables cache
@@ -49,5 +49,5 @@ var _events = require("events"); /*
49
49
  '--ignore-ssl-errors', // Ignores SSL errors
50
50
  '--ignore-certificate-errors-spki-list' // Ignores certificate errors in SPKI list
51
51
  ]; // eslint-disable-next-line prefer-const
52
- exports.chromiumArgs = chromiumArgs;let clientsArray = [];exports.clientsArray = clientsArray;const sessions = [];exports.sessions = sessions;const eventEmitter = new _events.EventEmitter();exports.eventEmitter = eventEmitter;function deleteSessionOnArray(session) {const newArray = clientsArray;delete clientsArray[session];exports.clientsArray = clientsArray = newArray;}
53
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsImNocm9taXVtQXJncyIsImV4cG9ydHMiLCJjbGllbnRzQXJyYXkiLCJzZXNzaW9ucyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciIsImRlbGV0ZVNlc3Npb25PbkFycmF5Iiwic2Vzc2lvbiIsIm5ld0FycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvc2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgV2hhdHNhcHAgfSBmcm9tICdAd3BwY29ubmVjdC10ZWFtL3dwcGNvbm5lY3QnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuZXhwb3J0IGNvbnN0IGNocm9taXVtQXJncyA9IFtcbiAgJy0tZGlzYWJsZS13ZWItc2VjdXJpdHknLCAvLyBEaXNhYmxlcyB3ZWIgc2VjdXJpdHlcbiAgJy0tbm8tc2FuZGJveCcsIC8vIERpc2FibGVzIHNhbmRib3hcbiAgJy0tYWdncmVzc2l2ZS1jYWNoZS1kaXNjYXJkJywgLy8gQWdncmVzc2l2ZWx5IGRpc2NhcmRzIGNhY2hlXG4gICctLWRpc2FibGUtY2FjaGUnLCAvLyBEaXNhYmxlcyBjYWNoZVxuICAnLS1kaXNhYmxlLWFwcGxpY2F0aW9uLWNhY2hlJywgLy8gRGlzYWJsZXMgYXBwbGljYXRpb24gY2FjaGVcbiAgJy0tZGlzYWJsZS1vZmZsaW5lLWxvYWQtc3RhbGUtY2FjaGUnLCAvLyBEaXNhYmxlcyBsb2FkaW5nIHN0YWxlIG9mZmxpbmUgY2FjaGVcbiAgJy0tZGlzay1jYWNoZS1zaXplPTAnLCAvLyBTZXRzIGRpc2sgY2FjaGUgc2l6ZSB0byAwXG4gICctLWRpc2FibGUtYmFja2dyb3VuZC1uZXR3b3JraW5nJywgLy8gRGlzYWJsZXMgYmFja2dyb3VuZCBuZXR3b3JraW5nIGFjdGl2aXRpZXNcbiAgJy0tZGlzYWJsZS1kZWZhdWx0LWFwcHMnLCAvLyBEaXNhYmxlcyBkZWZhdWx0IGFwcHNcbiAgJy0tZGlzYWJsZS1leHRlbnNpb25zJywgLy8gRGlzYWJsZXMgZXh0ZW5zaW9uc1xuICAnLS1kaXNhYmxlLXN5bmMnLCAvLyBEaXNhYmxlcyBzeW5jaHJvbml6YXRpb25cbiAgJy0tZGlzYWJsZS10cmFuc2xhdGUnLCAvLyBEaXNhYmxlcyB0cmFuc2xhdGlvblxuICAnLS1oaWRlLXNjcm9sbGJhcnMnLCAvLyBIaWRlcyBzY3JvbGxiYXJzXG4gICctLW1ldHJpY3MtcmVjb3JkaW5nLW9ubHknLCAvLyBSZWNvcmRzIG1ldHJpY3Mgb25seVxuICAnLS1tdXRlLWF1ZGlvJywgLy8gTXV0ZXMgYXVkaW9cbiAgJy0tbm8tZmlyc3QtcnVuJywgLy8gU2tpcHMgZmlyc3QgcnVuXG4gICctLXNhZmVicm93c2luZy1kaXNhYmxlLWF1dG8tdXBkYXRlJywgLy8gRGlzYWJsZXMgU2FmZSBCcm93c2luZyBhdXRvLXVwZGF0ZVxuICAnLS1pZ25vcmUtY2VydGlmaWNhdGUtZXJyb3JzJywgLy8gSWdub3JlcyBjZXJ0aWZpY2F0ZSBlcnJvcnNcbiAgJy0taWdub3JlLXNzbC1lcnJvcnMnLCAvLyBJZ25vcmVzIFNTTCBlcnJvcnNcbiAgJy0taWdub3JlLWNlcnRpZmljYXRlLWVycm9ycy1zcGtpLWxpc3QnLCAvLyBJZ25vcmVzIGNlcnRpZmljYXRlIGVycm9ycyBpbiBTUEtJIGxpc3Rcbl07XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5leHBvcnQgbGV0IGNsaWVudHNBcnJheTogV2hhdHNhcHBbXSA9IFtdO1xuZXhwb3J0IGNvbnN0IHNlc3Npb25zID0gW107XG5leHBvcnQgY29uc3QgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlU2Vzc2lvbk9uQXJyYXkoc2Vzc2lvbjogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG5ld0FycmF5ID0gY2xpZW50c0FycmF5O1xuICBkZWxldGUgY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICBjbGllbnRzQXJyYXkgPSBuZXdBcnJheTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUEsV0FBc0MsQ0FoQnRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUlPLE1BQU1DLFlBQVksR0FBRyxDQUMxQix3QkFBd0IsRUFBRTtBQUMxQixjQUFjLEVBQUU7QUFDaEIsNEJBQTRCLEVBQUU7QUFDOUIsaUJBQWlCLEVBQUU7QUFDbkIsNkJBQTZCLEVBQUU7QUFDL0Isb0NBQW9DLEVBQUU7QUFDdEMscUJBQXFCLEVBQUU7QUFDdkIsaUNBQWlDLEVBQUU7QUFDbkMsd0JBQXdCLEVBQUU7QUFDMUIsc0JBQXNCLEVBQUU7QUFDeEIsZ0JBQWdCLEVBQUU7QUFDbEIscUJBQXFCLEVBQUU7QUFDdkIsbUJBQW1CLEVBQUU7QUFDckIsMEJBQTBCLEVBQUU7QUFDNUIsY0FBYyxFQUFFO0FBQ2hCLGdCQUFnQixFQUFFO0FBQ2xCLG9DQUFvQyxFQUFFO0FBQ3RDLDZCQUE2QixFQUFFO0FBQy9CLHFCQUFxQixFQUFFO0FBQ3ZCLHVDQUF1QyxDQUFFO0FBQUEsQ0FDMUMsQ0FBQyxDQUNGO0FBQUFDLE9BQUEsQ0FBQUQsWUFBQSxHQUFBQSxZQUFBLENBQ08sSUFBSUUsWUFBd0IsR0FBRyxFQUFFLENBQUNELE9BQUEsQ0FBQUMsWUFBQSxHQUFBQSxZQUFBLENBQ2xDLE1BQU1DLFFBQVEsR0FBRyxFQUFFLENBQUNGLE9BQUEsQ0FBQUUsUUFBQSxHQUFBQSxRQUFBLENBQ3BCLE1BQU1DLFlBQVksR0FBRyxJQUFJQyxvQkFBWSxDQUFDLENBQUMsQ0FBQ0osT0FBQSxDQUFBRyxZQUFBLEdBQUFBLFlBQUEsQ0FFeEMsU0FBU0Usb0JBQW9CQSxDQUFDQyxPQUFlLEVBQVEsQ0FDMUQsTUFBTUMsUUFBUSxHQUFHTixZQUFZLENBQzdCLE9BQU9BLFlBQVksQ0FBQ0ssT0FBTyxDQUFDLENBQzVCTixPQUFBLENBQUFDLFlBQUEsR0FBQUEsWUFBWSxHQUFHTSxRQUFRLENBQ3pCIn0=
52
+ let clientsArray = exports.clientsArray = [];const sessions = exports.sessions = [];const eventEmitter = exports.eventEmitter = new _events.EventEmitter();function deleteSessionOnArray(session) {const newArray = clientsArray;delete clientsArray[session];exports.clientsArray = clientsArray = newArray;}
53
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsImNocm9taXVtQXJncyIsImV4cG9ydHMiLCJjbGllbnRzQXJyYXkiLCJzZXNzaW9ucyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciIsImRlbGV0ZVNlc3Npb25PbkFycmF5Iiwic2Vzc2lvbiIsIm5ld0FycmF5Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWwvc2Vzc2lvblV0aWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDIxIFdQUENvbm5lY3QgVGVhbVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgV2hhdHNhcHAgfSBmcm9tICdAd3BwY29ubmVjdC10ZWFtL3dwcGNvbm5lY3QnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnZXZlbnRzJztcblxuZXhwb3J0IGNvbnN0IGNocm9taXVtQXJncyA9IFtcbiAgJy0tZGlzYWJsZS13ZWItc2VjdXJpdHknLCAvLyBEaXNhYmxlcyB3ZWIgc2VjdXJpdHlcbiAgJy0tbm8tc2FuZGJveCcsIC8vIERpc2FibGVzIHNhbmRib3hcbiAgJy0tYWdncmVzc2l2ZS1jYWNoZS1kaXNjYXJkJywgLy8gQWdncmVzc2l2ZWx5IGRpc2NhcmRzIGNhY2hlXG4gICctLWRpc2FibGUtY2FjaGUnLCAvLyBEaXNhYmxlcyBjYWNoZVxuICAnLS1kaXNhYmxlLWFwcGxpY2F0aW9uLWNhY2hlJywgLy8gRGlzYWJsZXMgYXBwbGljYXRpb24gY2FjaGVcbiAgJy0tZGlzYWJsZS1vZmZsaW5lLWxvYWQtc3RhbGUtY2FjaGUnLCAvLyBEaXNhYmxlcyBsb2FkaW5nIHN0YWxlIG9mZmxpbmUgY2FjaGVcbiAgJy0tZGlzay1jYWNoZS1zaXplPTAnLCAvLyBTZXRzIGRpc2sgY2FjaGUgc2l6ZSB0byAwXG4gICctLWRpc2FibGUtYmFja2dyb3VuZC1uZXR3b3JraW5nJywgLy8gRGlzYWJsZXMgYmFja2dyb3VuZCBuZXR3b3JraW5nIGFjdGl2aXRpZXNcbiAgJy0tZGlzYWJsZS1kZWZhdWx0LWFwcHMnLCAvLyBEaXNhYmxlcyBkZWZhdWx0IGFwcHNcbiAgJy0tZGlzYWJsZS1leHRlbnNpb25zJywgLy8gRGlzYWJsZXMgZXh0ZW5zaW9uc1xuICAnLS1kaXNhYmxlLXN5bmMnLCAvLyBEaXNhYmxlcyBzeW5jaHJvbml6YXRpb25cbiAgJy0tZGlzYWJsZS10cmFuc2xhdGUnLCAvLyBEaXNhYmxlcyB0cmFuc2xhdGlvblxuICAnLS1oaWRlLXNjcm9sbGJhcnMnLCAvLyBIaWRlcyBzY3JvbGxiYXJzXG4gICctLW1ldHJpY3MtcmVjb3JkaW5nLW9ubHknLCAvLyBSZWNvcmRzIG1ldHJpY3Mgb25seVxuICAnLS1tdXRlLWF1ZGlvJywgLy8gTXV0ZXMgYXVkaW9cbiAgJy0tbm8tZmlyc3QtcnVuJywgLy8gU2tpcHMgZmlyc3QgcnVuXG4gICctLXNhZmVicm93c2luZy1kaXNhYmxlLWF1dG8tdXBkYXRlJywgLy8gRGlzYWJsZXMgU2FmZSBCcm93c2luZyBhdXRvLXVwZGF0ZVxuICAnLS1pZ25vcmUtY2VydGlmaWNhdGUtZXJyb3JzJywgLy8gSWdub3JlcyBjZXJ0aWZpY2F0ZSBlcnJvcnNcbiAgJy0taWdub3JlLXNzbC1lcnJvcnMnLCAvLyBJZ25vcmVzIFNTTCBlcnJvcnNcbiAgJy0taWdub3JlLWNlcnRpZmljYXRlLWVycm9ycy1zcGtpLWxpc3QnLCAvLyBJZ25vcmVzIGNlcnRpZmljYXRlIGVycm9ycyBpbiBTUEtJIGxpc3Rcbl07XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJlZmVyLWNvbnN0XG5leHBvcnQgbGV0IGNsaWVudHNBcnJheTogV2hhdHNhcHBbXSA9IFtdO1xuZXhwb3J0IGNvbnN0IHNlc3Npb25zID0gW107XG5leHBvcnQgY29uc3QgZXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlU2Vzc2lvbk9uQXJyYXkoc2Vzc2lvbjogc3RyaW5nKTogdm9pZCB7XG4gIGNvbnN0IG5ld0FycmF5ID0gY2xpZW50c0FycmF5O1xuICBkZWxldGUgY2xpZW50c0FycmF5W3Nlc3Npb25dO1xuICBjbGllbnRzQXJyYXkgPSBuZXdBcnJheTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQWdCQSxJQUFBQSxPQUFBLEdBQUFDLE9BQUEsV0FBc0MsQ0FoQnRDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUlPLE1BQU1DLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUcsQ0FDMUIsd0JBQXdCLEVBQUU7QUFDMUIsY0FBYyxFQUFFO0FBQ2hCLDRCQUE0QixFQUFFO0FBQzlCLGlCQUFpQixFQUFFO0FBQ25CLDZCQUE2QixFQUFFO0FBQy9CLG9DQUFvQyxFQUFFO0FBQ3RDLHFCQUFxQixFQUFFO0FBQ3ZCLGlDQUFpQyxFQUFFO0FBQ25DLHdCQUF3QixFQUFFO0FBQzFCLHNCQUFzQixFQUFFO0FBQ3hCLGdCQUFnQixFQUFFO0FBQ2xCLHFCQUFxQixFQUFFO0FBQ3ZCLG1CQUFtQixFQUFFO0FBQ3JCLDBCQUEwQixFQUFFO0FBQzVCLGNBQWMsRUFBRTtBQUNoQixnQkFBZ0IsRUFBRTtBQUNsQixvQ0FBb0MsRUFBRTtBQUN0Qyw2QkFBNkIsRUFBRTtBQUMvQixxQkFBcUIsRUFBRTtBQUN2Qix1Q0FBdUMsQ0FBRTtBQUFBLENBQzFDLENBQUMsQ0FDRjtBQUNPLElBQUlFLFlBQXdCLEdBQUFELE9BQUEsQ0FBQUMsWUFBQSxHQUFHLEVBQUUsQ0FDakMsTUFBTUMsUUFBUSxHQUFBRixPQUFBLENBQUFFLFFBQUEsR0FBRyxFQUFFLENBQ25CLE1BQU1DLFlBQVksR0FBQUgsT0FBQSxDQUFBRyxZQUFBLEdBQUcsSUFBSUMsb0JBQVksQ0FBQyxDQUFDLENBRXZDLFNBQVNDLG9CQUFvQkEsQ0FBQ0MsT0FBZSxFQUFRLENBQzFELE1BQU1DLFFBQVEsR0FBR04sWUFBWSxDQUM3QixPQUFPQSxZQUFZLENBQUNLLE9BQU8sQ0FBQyxDQUM1Qk4sT0FBQSxDQUFBQyxZQUFBLEdBQUFBLFlBQVksR0FBR00sUUFBUSxDQUN6QiJ9
@@ -19,7 +19,7 @@ var fs = _interopRequireWildcard(require("fs"));
19
19
  var path = _interopRequireWildcard(require("path"));
20
20
  var _sanitizeFilename = _interopRequireDefault(require("sanitize-filename"));
21
21
 
22
- var _ = require("../../..");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);}function _interopRequireWildcard(obj, nodeInterop) {if (!nodeInterop && obj && obj.__esModule) {return obj;}if (obj === null || typeof obj !== "object" && typeof obj !== "function") {return { default: obj };}var cache = _getRequireWildcardCache(nodeInterop);if (cache && cache.has(obj)) {return cache.get(obj);}var newObj = {};var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var key in obj) {if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;if (desc && (desc.get || desc.set)) {Object.defineProperty(newObj, key, desc);} else {newObj[key] = obj[key];}}}newObj.default = obj;if (cache) {cache.set(obj, newObj);}return newObj;} /*
22
+ var _ = require("../../..");function _getRequireWildcardCache(e) {if ("function" != typeof WeakMap) return null;var r = new WeakMap(),t = new WeakMap();return (_getRequireWildcardCache = function (e) {return e ? t : r;})(e);}function _interopRequireWildcard(e, r) {if (!r && e && e.__esModule) return e;if (null === e || "object" != typeof e && "function" != typeof e) return { default: e };var t = _getRequireWildcardCache(r);if (t && t.has(e)) return t.get(e);var n = { __proto__: null },a = Object.defineProperty && Object.getOwnPropertyDescriptor;for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) {var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];}return n.default = e, t && t.set(e, n), n;} /*
23
23
  * This file is part of WPPConnect.
24
24
  *
25
25
  * WPPConnect is free software: you can redistribute it and/or modify
@@ -53,13 +53,13 @@ var _ = require("../../..");function _getRequireWildcardCache(nodeInterop) {if (
53
53
 
54
54
 
55
55
 
56
- const defaultFileTokenStoreOptions = {
56
+ const defaultFileTokenStoreOptions = exports.defaultFileTokenStoreOptions = {
57
57
  decodeFunction: JSON.parse,
58
58
  encodeFunction: JSON.stringify,
59
59
  encoding: 'utf8',
60
60
  fileExtension: '.data.json',
61
61
  path: './tokens'
62
- };exports.defaultFileTokenStoreOptions = defaultFileTokenStoreOptions;
62
+ };
63
63
 
64
64
  class FileTokenStore {
65
65
  options;
@@ -175,4 +175,4 @@ class FileTokenStore {
175
175
  }
176
176
  }
177
177
  }exports.FileTokenStore = FileTokenStore;
178
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsImRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiZXhwb3J0cyIsIkZpbGVUb2tlblN0b3JlIiwib3B0aW9ucyIsImNvbnN0cnVjdG9yIiwiYXNzaWduIiwicmVzb2x2ZXJQYXRoIiwic2Vzc2lvbk5hbWUiLCJmaWxlbmFtZSIsInNhbml0aXplIiwicmVzb2x2ZSIsInByb2Nlc3MiLCJjd2QiLCJqb2luIiwiZ2V0VG9rZW4iLCJmaWxlUGF0aCIsImV4aXN0c1N5bmMiLCJ1bmRlZmluZWQiLCJ0ZXh0IiwicHJvbWlzZXMiLCJyZWFkRmlsZSIsImNhdGNoIiwiZXJyb3IiLCJsb2dnZXIiLCJkZWJ1ZyIsInNldFRva2VuIiwidG9rZW5EYXRhIiwibWtkaXIiLCJyZWN1cnNpdmUiLCJ3cml0ZUZpbGUiLCJyZW1vdmVUb2tlbiIsInVubGluayIsImxpc3RUb2tlbnMiLCJmaWxlcyIsInJlYWRkaXIiLCJmaWx0ZXIiLCJmaWxlIiwiZW5kc1dpdGgiLCJtYXAiLCJiYXNlbmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlsL3Rva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUvRmlsZVRva2VuU3RvcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFdQUENvbm5lY3QuXG4gKlxuICogV1BQQ29ubmVjdCBpcyBmcmVlIHNvZnR3YXJlOiB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5XG4gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnlcbiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yXG4gKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLlxuICpcbiAqIFdQUENvbm5lY3QgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCxcbiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mXG4gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlXG4gKiBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VcbiAqIGFsb25nIHdpdGggV1BQQ29ubmVjdC4gIElmIG5vdCwgc2VlIDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uXG4gKi9cbi8vLyA8cmVmZXJlbmNlIHR5cGVzPVwibm9kZVwiIC8+XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNhbml0aXplIGZyb20gJ3Nhbml0aXplLWZpbGVuYW1lJztcblxuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vLi4vLi4nO1xuaW1wb3J0IHsgU2Vzc2lvblRva2VuLCBUb2tlblN0b3JlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZpbGVUb2tlblN0b3JlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBEZWNvZGUgZnVuY3Rpb24gdG8gcGFyc2UgdG9rZW4gZmlsZSAoRGVmYXVsdCBgSlNPTi5wYXJzZWApIHtAbGluayBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zfVxuICAgKiBAZGVmYXVsdCBgSlNPTi5wYXJzZWBcbiAgICovXG4gIGRlY29kZUZ1bmN0aW9uOiAodGV4dDogc3RyaW5nKSA9PiBhbnk7XG5cbiAgLyoqXG4gICAqIEVuY29kZSBmdW5jdGlvbiB0byBzYXZlIHRva2VucyAoRGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgKVxuICAgKiBAZGVmYXVsdCBgSlNPTi5zdHJpbmdpZnlgXG4gICAqL1xuICBlbmNvZGVGdW5jdGlvbjogKGRhdGE6IGFueSkgPT4gc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbmNvZGluZyB1c2VkIHRvIHJlYWQgYW5kIHNhdmUgZmlsZXNcbiAgICogQGRlZmF1bHQgJ3V0ZjgnXG4gICAqL1xuICBlbmNvZGluZzogQnVmZmVyRW5jb2Rpbmc7XG5cbiAgLyoqXG4gICAqIEBkZWZhdWx0ICcuZGF0YS5qc29uJ1xuICAgKi9cbiAgZmlsZUV4dGVuc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBGb2xkZXIgcGF0aCB0byBzdG9yZSB0b2tlbnNcbiAgICogQGRlZmF1bHQgJy4vdG9rZW5zJ1xuICAgKi9cbiAgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zID0ge1xuICBkZWNvZGVGdW5jdGlvbjogSlNPTi5wYXJzZSxcbiAgZW5jb2RlRnVuY3Rpb246IEpTT04uc3RyaW5naWZ5LFxuICBlbmNvZGluZzogJ3V0ZjgnLFxuICBmaWxlRXh0ZW5zaW9uOiAnLmRhdGEuanNvbicsXG4gIHBhdGg6ICcuL3Rva2VucycsXG59O1xuXG5leHBvcnQgY2xhc3MgRmlsZVRva2VuU3RvcmUgaW1wbGVtZW50cyBUb2tlblN0b3JlIHtcbiAgcHJvdGVjdGVkIG9wdGlvbnM6IEZpbGVUb2tlblN0b3JlT3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBQYXJ0aWFsPEZpbGVUb2tlblN0b3JlT3B0aW9ucz4gPSB7fSkge1xuICAgIHRoaXMub3B0aW9ucyA9IE9iamVjdC5hc3NpZ24oXG4gICAgICB7fSxcbiAgICAgIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnMsXG4gICAgICBvcHRpb25zXG4gICAgKSBhcyBGaWxlVG9rZW5TdG9yZU9wdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgcGF0aCBvZiBmaWxlXG4gICAqIEBwYXJhbSBzZXNzaW9uTmFtZSBOYW1lIG9mIHNlc3Npb25cbiAgICogQHJldHVybnMgRnVsbCBwYXRoIG9mIHRva2VuIGZpbGVcbiAgICovXG4gIHByb3RlY3RlZCByZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZmlsZW5hbWUgPSBzYW5pdGl6ZShzZXNzaW9uTmFtZSkgKyB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbjtcbiAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIHBhdGguam9pbih0aGlzLm9wdGlvbnMucGF0aCwgZmlsZW5hbWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nXG4gICk6IFByb21pc2U8U2Vzc2lvblRva2VuIHwgdW5kZWZpbmVkPiB7XG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIGNvbnN0IHRleHQgPSBhd2FpdCBmcy5wcm9taXNlc1xuICAgICAgLnJlYWRGaWxlKGZpbGVQYXRoLCB7XG4gICAgICAgIGVuY29kaW5nOiB0aGlzLm9wdGlvbnMuZW5jb2RpbmcsXG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IG51bGwpO1xuXG4gICAgaWYgKCF0ZXh0KSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmRlY29kZUZ1bmN0aW9uKHRleHQpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0VG9rZW4oXG4gICAgc2Vzc2lvbk5hbWU6IHN0cmluZyxcbiAgICB0b2tlbkRhdGE6IFNlc3Npb25Ub2tlbiB8IG51bGxcbiAgKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgaWYgKCF0b2tlbkRhdGEpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy5ta2Rpcih0aGlzLm9wdGlvbnMucGF0aCwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJlc29sdmVyUGF0aChzZXNzaW9uTmFtZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IHRoaXMub3B0aW9ucy5lbmNvZGVGdW5jdGlvbih0b2tlbkRhdGEpO1xuXG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZVBhdGgsIHRleHQsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlbW92ZVRva2VuKHNlc3Npb25OYW1lOiBzdHJpbmcpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgZnMucHJvbWlzZXMudW5saW5rKGZpbGVQYXRoKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBsaXN0VG9rZW5zKCk6IFByb21pc2U8c3RyaW5nW10+IHtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5vcHRpb25zLnBhdGgpKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGxldCBmaWxlcyA9IGF3YWl0IGZzLnByb21pc2VzLnJlYWRkaXIodGhpcy5vcHRpb25zLnBhdGgpO1xuXG4gICAgICAvLyBPbmx5IHNlc3Npb25zIHdpdGggc2FtZSBmaWxlRXh0ZW5zaW9uXG4gICAgICBmaWxlcyA9IGZpbGVzLmZpbHRlcigoZmlsZSkgPT4gZmlsZS5lbmRzV2l0aCh0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbikpO1xuXG4gICAgICAvLyBSZXR1cm4gbmFtZSBvbmx5XG4gICAgICBmaWxlcyA9IGZpbGVzLm1hcCgoZmlsZSkgPT5cbiAgICAgICAgcGF0aC5iYXNlbmFtZShmaWxlLCB0aGlzLm9wdGlvbnMuZmlsZUV4dGVuc2lvbilcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBmaWxlcztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQkEsSUFBQUEsRUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsSUFBQSxHQUFBRix1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsaUJBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTs7QUFFQSxJQUFBSSxDQUFBLEdBQUFKLE9BQUEsYUFBa0MsU0FBQUsseUJBQUFDLFdBQUEsY0FBQUMsT0FBQSxpQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxPQUFBRSxnQkFBQSxPQUFBRixPQUFBLFdBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsVUFBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxJQUFBRixXQUFBLFlBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsUUFBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxVQUFBRCxHQUFBLE1BQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsMkJBQUFFLE9BQUEsRUFBQUYsR0FBQSxRQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsTUFBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxXQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxPQUFBTSxNQUFBLFVBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFVBQUFDLEdBQUEsSUFBQVgsR0FBQSxP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
178
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmcyIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsInBhdGgiLCJfc2FuaXRpemVGaWxlbmFtZSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyIsImV4cG9ydHMiLCJkZWNvZGVGdW5jdGlvbiIsIkpTT04iLCJwYXJzZSIsImVuY29kZUZ1bmN0aW9uIiwic3RyaW5naWZ5IiwiZW5jb2RpbmciLCJmaWxlRXh0ZW5zaW9uIiwiRmlsZVRva2VuU3RvcmUiLCJvcHRpb25zIiwiY29uc3RydWN0b3IiLCJhc3NpZ24iLCJyZXNvbHZlclBhdGgiLCJzZXNzaW9uTmFtZSIsImZpbGVuYW1lIiwic2FuaXRpemUiLCJyZXNvbHZlIiwicHJvY2VzcyIsImN3ZCIsImpvaW4iLCJnZXRUb2tlbiIsImZpbGVQYXRoIiwiZXhpc3RzU3luYyIsInVuZGVmaW5lZCIsInRleHQiLCJwcm9taXNlcyIsInJlYWRGaWxlIiwiY2F0Y2giLCJlcnJvciIsImxvZ2dlciIsImRlYnVnIiwic2V0VG9rZW4iLCJ0b2tlbkRhdGEiLCJta2RpciIsInJlY3Vyc2l2ZSIsIndyaXRlRmlsZSIsInJlbW92ZVRva2VuIiwidW5saW5rIiwibGlzdFRva2VucyIsImZpbGVzIiwicmVhZGRpciIsImZpbHRlciIsImZpbGUiLCJlbmRzV2l0aCIsIm1hcCIsImJhc2VuYW1lIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvdG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS9GaWxlVG9rZW5TdG9yZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgV1BQQ29ubmVjdC5cbiAqXG4gKiBXUFBDb25uZWN0IGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnlcbiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieVxuICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3JcbiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uXG4gKlxuICogV1BQQ29ubmVjdCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLFxuICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2ZcbiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGVcbiAqIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZVxuICogYWxvbmcgd2l0aCBXUFBDb25uZWN0LiAgSWYgbm90LCBzZWUgPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi5cbiAqL1xuLy8vIDxyZWZlcmVuY2UgdHlwZXM9XCJub2RlXCIgLz5cbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgc2FuaXRpemUgZnJvbSAnc2FuaXRpemUtZmlsZW5hbWUnO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi8uLi8uLic7XG5pbXBvcnQgeyBTZXNzaW9uVG9rZW4sIFRva2VuU3RvcmUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmlsZVRva2VuU3RvcmVPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlY29kZSBmdW5jdGlvbiB0byBwYXJzZSB0b2tlbiBmaWxlIChEZWZhdWx0IGBKU09OLnBhcnNlYCkge0BsaW5rIGRlZmF1bHRGaWxlVG9rZW5TdG9yZU9wdGlvbnN9XG4gICAqIEBkZWZhdWx0IGBKU09OLnBhcnNlYFxuICAgKi9cbiAgZGVjb2RlRnVuY3Rpb246ICh0ZXh0OiBzdHJpbmcpID0+IGFueTtcblxuICAvKipcbiAgICogRW5jb2RlIGZ1bmN0aW9uIHRvIHNhdmUgdG9rZW5zIChEZWZhdWx0IGBKU09OLnN0cmluZ2lmeWApXG4gICAqIEBkZWZhdWx0IGBKU09OLnN0cmluZ2lmeWBcbiAgICovXG4gIGVuY29kZUZ1bmN0aW9uOiAoZGF0YTogYW55KSA9PiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVuY29kaW5nIHVzZWQgdG8gcmVhZCBhbmQgc2F2ZSBmaWxlc1xuICAgKiBAZGVmYXVsdCAndXRmOCdcbiAgICovXG4gIGVuY29kaW5nOiBCdWZmZXJFbmNvZGluZztcblxuICAvKipcbiAgICogQGRlZmF1bHQgJy5kYXRhLmpzb24nXG4gICAqL1xuICBmaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEZvbGRlciBwYXRoIHRvIHN0b3JlIHRva2Vuc1xuICAgKiBAZGVmYXVsdCAnLi90b2tlbnMnXG4gICAqL1xuICBwYXRoOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBkZWZhdWx0RmlsZVRva2VuU3RvcmVPcHRpb25zOiBGaWxlVG9rZW5TdG9yZU9wdGlvbnMgPSB7XG4gIGRlY29kZUZ1bmN0aW9uOiBKU09OLnBhcnNlLFxuICBlbmNvZGVGdW5jdGlvbjogSlNPTi5zdHJpbmdpZnksXG4gIGVuY29kaW5nOiAndXRmOCcsXG4gIGZpbGVFeHRlbnNpb246ICcuZGF0YS5qc29uJyxcbiAgcGF0aDogJy4vdG9rZW5zJyxcbn07XG5cbmV4cG9ydCBjbGFzcyBGaWxlVG9rZW5TdG9yZSBpbXBsZW1lbnRzIFRva2VuU3RvcmUge1xuICBwcm90ZWN0ZWQgb3B0aW9uczogRmlsZVRva2VuU3RvcmVPcHRpb25zO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBhcnRpYWw8RmlsZVRva2VuU3RvcmVPcHRpb25zPiA9IHt9KSB7XG4gICAgdGhpcy5vcHRpb25zID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdEZpbGVUb2tlblN0b3JlT3B0aW9ucyxcbiAgICAgIG9wdGlvbnNcbiAgICApIGFzIEZpbGVUb2tlblN0b3JlT3B0aW9ucztcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNvbHZlIHRoZSBwYXRoIG9mIGZpbGVcbiAgICogQHBhcmFtIHNlc3Npb25OYW1lIE5hbWUgb2Ygc2Vzc2lvblxuICAgKiBAcmV0dXJucyBGdWxsIHBhdGggb2YgdG9rZW4gZmlsZVxuICAgKi9cbiAgcHJvdGVjdGVkIHJlc29sdmVyUGF0aChzZXNzaW9uTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBmaWxlbmFtZSA9IHNhbml0aXplKHNlc3Npb25OYW1lKSArIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcGF0aC5qb2luKHRoaXMub3B0aW9ucy5wYXRoLCBmaWxlbmFtZSkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFRva2VuKFxuICAgIHNlc3Npb25OYW1lOiBzdHJpbmdcbiAgKTogUHJvbWlzZTxTZXNzaW9uVG9rZW4gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIGlmICghZnMuZXhpc3RzU3luYyhmaWxlUGF0aCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnByb21pc2VzXG4gICAgICAucmVhZEZpbGUoZmlsZVBhdGgsIHtcbiAgICAgICAgZW5jb2Rpbmc6IHRoaXMub3B0aW9ucy5lbmNvZGluZyxcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4gbnVsbCk7XG5cbiAgICBpZiAoIXRleHQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZGVjb2RlRnVuY3Rpb24odGV4dCk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzZXRUb2tlbihcbiAgICBzZXNzaW9uTmFtZTogc3RyaW5nLFxuICAgIHRva2VuRGF0YTogU2Vzc2lvblRva2VuIHwgbnVsbFxuICApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICBpZiAoIXRva2VuRGF0YSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLm1rZGlyKHRoaXMub3B0aW9ucy5wYXRoLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmVzb2x2ZXJQYXRoKHNlc3Npb25OYW1lKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy5vcHRpb25zLmVuY29kZUZ1bmN0aW9uKHRva2VuRGF0YSk7XG5cbiAgICAgIGF3YWl0IGZzLnByb21pc2VzLndyaXRlRmlsZShmaWxlUGF0aCwgdGV4dCwge1xuICAgICAgICBlbmNvZGluZzogdGhpcy5vcHRpb25zLmVuY29kaW5nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmRlYnVnKGVycm9yKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlVG9rZW4oc2Vzc2lvbk5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdGhpcy5yZXNvbHZlclBhdGgoc2Vzc2lvbk5hbWUpO1xuXG4gICAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmcy5wcm9taXNlcy51bmxpbmsoZmlsZVBhdGgpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhlcnJvcik7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGxpc3RUb2tlbnMoKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLm9wdGlvbnMucGF0aCkpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgbGV0IGZpbGVzID0gYXdhaXQgZnMucHJvbWlzZXMucmVhZGRpcih0aGlzLm9wdGlvbnMucGF0aCk7XG5cbiAgICAgIC8vIE9ubHkgc2Vzc2lvbnMgd2l0aCBzYW1lIGZpbGVFeHRlbnNpb25cbiAgICAgIGZpbGVzID0gZmlsZXMuZmlsdGVyKChmaWxlKSA9PiBmaWxlLmVuZHNXaXRoKHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKSk7XG5cbiAgICAgIC8vIFJldHVybiBuYW1lIG9ubHlcbiAgICAgIGZpbGVzID0gZmlsZXMubWFwKChmaWxlKSA9PlxuICAgICAgICBwYXRoLmJhc2VuYW1lKGZpbGUsIHRoaXMub3B0aW9ucy5maWxlRXh0ZW5zaW9uKVxuICAgICAgKTtcblxuICAgICAgcmV0dXJuIGZpbGVzO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZGVidWcoZXJyb3IpO1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQWlCQSxJQUFBQSxFQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxJQUFBLEdBQUFGLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBOztBQUVBLElBQUFJLENBQUEsR0FBQUosT0FBQSxhQUFrQyxTQUFBSyx5QkFBQUMsQ0FBQSw0QkFBQUMsT0FBQSxrQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLEdBQUFFLENBQUEsT0FBQUYsT0FBQSxXQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxDQUFBLFVBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLElBQUFGLENBQUEsWUFBQVAsd0JBQUFPLENBQUEsRUFBQUUsQ0FBQSxRQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsY0FBQUEsQ0FBQSx1QkFBQUEsQ0FBQSx5QkFBQUEsQ0FBQSxXQUFBSyxPQUFBLEVBQUFMLENBQUEsT0FBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE1BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsTUFBQVEsQ0FBQSxLQUFBQyxTQUFBLFNBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsVUFBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLElBQUFILE1BQUEsQ0FBQUksU0FBQSxDQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWpCLENBQUEs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