@discordeno/bot 21.0.1-next.a9d4bc3 → 21.0.1-next.b30e2ff

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 (64) hide show
  1. package/dist/cjs/bot.cjs +1 -1
  2. package/dist/cjs/handlers/guilds/index.cjs +2 -2
  3. package/dist/cjs/handlers/index.cjs +3 -3
  4. package/dist/cjs/handlers/messages/index.cjs +3 -3
  5. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  6. package/dist/cjs/handlers/voice/index.cjs +2 -2
  7. package/dist/cjs/helpers.cjs +2 -21
  8. package/dist/cjs/index.cjs +3 -3
  9. package/dist/cjs/transformers/channel.cjs +2 -2
  10. package/dist/cjs/transformers/interaction.cjs +13 -9
  11. package/dist/cjs/transformers/invite.cjs +1 -1
  12. package/dist/cjs/transformers/member.cjs +2 -2
  13. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  14. package/dist/cjs/transformers/role.cjs +1 -1
  15. package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
  16. package/dist/cjs/transformers/team.cjs +1 -1
  17. package/dist/cjs/transformers/toggles/guild.cjs +7 -1
  18. package/dist/cjs/transformers/webhook.cjs +1 -1
  19. package/dist/cjs/transformers.cjs +1 -1
  20. package/dist/esm/bot.js +2 -2
  21. package/dist/esm/events.js +1 -1
  22. package/dist/esm/handlers/guilds/index.js +2 -2
  23. package/dist/esm/handlers/index.js +3 -3
  24. package/dist/esm/handlers/messages/index.js +3 -3
  25. package/dist/esm/handlers/soundboard/index.js +3 -3
  26. package/dist/esm/handlers/voice/index.js +2 -2
  27. package/dist/esm/helpers.js +2 -21
  28. package/dist/esm/index.js +3 -3
  29. package/dist/esm/transformers/channel.js +2 -2
  30. package/dist/esm/transformers/interaction.js +13 -9
  31. package/dist/esm/transformers/invite.js +2 -2
  32. package/dist/esm/transformers/member.js +2 -2
  33. package/dist/esm/transformers/reverse/team.js +1 -1
  34. package/dist/esm/transformers/role.js +1 -1
  35. package/dist/esm/transformers/scheduledEvent.js +1 -1
  36. package/dist/esm/transformers/team.js +1 -1
  37. package/dist/esm/transformers/toggles/guild.js +7 -1
  38. package/dist/esm/transformers/webhook.js +1 -1
  39. package/dist/esm/transformers.js +1 -1
  40. package/dist/types/bot.d.ts.map +1 -1
  41. package/dist/types/events.d.ts.map +1 -1
  42. package/dist/types/handlers/guilds/index.d.ts +1 -1
  43. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  44. package/dist/types/handlers/index.d.ts +2 -2
  45. package/dist/types/handlers/index.d.ts.map +1 -1
  46. package/dist/types/handlers/messages/index.d.ts +2 -2
  47. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  48. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  49. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  50. package/dist/types/handlers/voice/index.d.ts +1 -1
  51. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  52. package/dist/types/helpers.d.ts +2 -8
  53. package/dist/types/helpers.d.ts.map +1 -1
  54. package/dist/types/index.d.ts +2 -2
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/dist/types/transformers/channel.d.ts.map +1 -1
  57. package/dist/types/transformers/interaction.d.ts.map +1 -1
  58. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  59. package/dist/types/transformers/role.d.ts.map +1 -1
  60. package/dist/types/transformers/team.d.ts.map +1 -1
  61. package/dist/types/transformers/toggles/guild.d.ts +5 -1
  62. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  63. package/dist/types/transformers.d.ts.map +1 -1
  64. package/package.json +9 -9
package/dist/esm/index.js CHANGED
@@ -5,13 +5,13 @@ export * from '@discordeno/utils';
5
5
  export * from './bot.js';
6
6
  export * from './commandOptionsParser.js';
7
7
  export * from './constants.js';
8
+ export * from './desiredProperties.js';
9
+ export * from './events.js';
8
10
  export * from './handlers/index.js';
9
11
  export * from './handlers.js';
10
12
  export * from './helpers.js';
11
13
  export * from './transformers/index.js';
12
14
  export * from './transformers.js';
13
- export * from './events.js';
14
- export * from './desiredProperties.js';
15
15
  export * from './utils.js';
16
16
 
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZXZlbnRzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9kZXNpcmVkUHJvcGVydGllcy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBcUI7QUFDbkMsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxXQUFVO0FBQ3hCLGNBQWMsNEJBQTJCO0FBQ3pDLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMsc0JBQXFCO0FBQ25DLGNBQWMsZ0JBQWU7QUFDN0IsY0FBYyxlQUFjO0FBQzVCLGNBQWMsMEJBQXlCO0FBQ3ZDLGNBQWMsb0JBQW1CO0FBQ2pDLGNBQWMsY0FBYTtBQUMzQixjQUFjLHlCQUF3QjtBQUN0QyxjQUFjLGFBQVkifQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICdAZGlzY29yZGVuby9nYXRld2F5J1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vcmVzdCdcbmV4cG9ydCAqIGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuZXhwb3J0ICogZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5leHBvcnQgKiBmcm9tICcuL2JvdC5qcydcbmV4cG9ydCAqIGZyb20gJy4vY29tbWFuZE9wdGlvbnNQYXJzZXIuanMnXG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vZGVzaXJlZFByb3BlcnRpZXMuanMnXG5leHBvcnQgKiBmcm9tICcuL2V2ZW50cy5qcydcbmV4cG9ydCAqIGZyb20gJy4vaGFuZGxlcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL2hhbmRsZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzLmpzJ1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5leHBvcnQgKiBmcm9tICcuL3RyYW5zZm9ybWVycy5qcydcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMuanMnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBcUI7QUFDbkMsY0FBYyxtQkFBa0I7QUFDaEMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxvQkFBbUI7QUFDakMsY0FBYyxXQUFVO0FBQ3hCLGNBQWMsNEJBQTJCO0FBQ3pDLGNBQWMsaUJBQWdCO0FBQzlCLGNBQWMseUJBQXdCO0FBQ3RDLGNBQWMsY0FBYTtBQUMzQixjQUFjLHNCQUFxQjtBQUNuQyxjQUFjLGdCQUFlO0FBQzdCLGNBQWMsZUFBYztBQUM1QixjQUFjLDBCQUF5QjtBQUN2QyxjQUFjLG9CQUFtQjtBQUNqQyxjQUFjLGFBQVkifQ==
@@ -1,6 +1,6 @@
1
1
  import { calculatePermissions, iconHashToBigInt } from '../index.js';
2
- import { Permissions } from './toggles/Permissions.js';
3
2
  import { ChannelToggles } from './toggles/channel.js';
3
+ import { Permissions } from './toggles/Permissions.js';
4
4
  const Mask = (1n << 64n) - 1n;
5
5
  export function packOverwrites(allow, deny, id, type) {
6
6
  return pack64(allow, 0) | pack64(deny, 1) | pack64(id, 2) | pack64(type, 3);
@@ -119,4 +119,4 @@ export function transformForumTag(bot, payload) {
119
119
  return bot.transformers.customizers.forumTag(bot, payload, forumTag);
120
120
  }
121
121
 
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCB0eXBlIEZvcnVtVGFnLCB0eXBlIEludGVybmFsQm90LCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBDaGFubmVsVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9jaGFubmVsLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwiaWNvbkhhc2hUb0JpZ0ludCIsIlBlcm1pc3Npb25zIiwiQ2hhbm5lbFRvZ2dsZXMiLCJNYXNrIiwicGFja092ZXJ3cml0ZXMiLCJhbGxvdyIsImRlbnkiLCJpZCIsInR5cGUiLCJwYWNrNjQiLCJ1bnBhY2s2NCIsInYiLCJzaGlmdCIsIkJpZ0ludCIsImIiLCJFcnJvciIsInRvU3RyaW5nIiwic2VwYXJhdGVPdmVyd3JpdGVzIiwiTnVtYmVyIiwiYmFzZUNoYW5uZWwiLCJ1bmRlZmluZWQiLCJhcmNoaXZlZCIsInRvZ2dsZXMiLCJpbnZpdGFibGUiLCJsb2NrZWQiLCJuc2Z3IiwibmV3bHlDcmVhdGVkIiwibWFuYWdlZCIsInBlcm1pc3Npb25PdmVyd3JpdGVzIiwiaW50ZXJuYWxPdmVyd3JpdGVzIiwibWFwIiwib3ZlcndyaXRlIiwidGhyZWFkTWV0YWRhdGEiLCJhcmNoaXZlVGltZXN0YW1wIiwiaW50ZXJuYWxUaHJlYWRNZXRhZGF0YSIsImNyZWF0ZVRpbWVzdGFtcCIsImF1dG9BcmNoaXZlRHVyYXRpb24iLCJ0cmFuc2Zvcm1DaGFubmVsIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwicG9zaXRpb24iLCJuYW1lIiwidG9waWMiLCJsYXN0TWVzc2FnZUlkIiwibGFzdF9tZXNzYWdlX2lkIiwiYml0cmF0ZSIsInVzZXJMaW1pdCIsInVzZXJfbGltaXQiLCJyYXRlTGltaXRQZXJVc2VyIiwicmF0ZV9saW1pdF9wZXJfdXNlciIsIm93bmVySWQiLCJvd25lcl9pZCIsImxhc3RQaW5UaW1lc3RhbXAiLCJsYXN0X3Bpbl90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJydGNSZWdpb24iLCJydGNfcmVnaW9uIiwidmlkZW9RdWFsaXR5TW9kZSIsInZpZGVvX3F1YWxpdHlfbW9kZSIsIm1lc3NhZ2VDb3VudCIsIm1lc3NhZ2VfY291bnQiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInRocmVhZF9tZXRhZGF0YSIsImFyY2hpdmVfdGltZXN0YW1wIiwiY3JlYXRlX3RpbWVzdGFtcCIsImF1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsImRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uIiwiZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24iLCJwZXJtaXNzaW9ucyIsImZsYWdzIiwicGVybWlzc2lvbl9vdmVyd3JpdGVzIiwibyIsInBhcmVudElkIiwicGFyZW50X2lkIiwicmVjaXBpZW50cyIsInUiLCJ1c2VyIiwiaWNvbiIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsInRvdGFsTWVzc2FnZVNlbnQiLCJ0b3RhbF9tZXNzYWdlX3NlbnQiLCJhdmFpbGFibGVUYWdzIiwiYXZhaWxhYmxlX3RhZ3MiLCJ4IiwiZm9ydW1UYWciLCJhcHBsaWVkVGFncyIsImFwcGxpZWRfdGFncyIsImRlZmF1bHRSZWFjdGlvbkVtb2ppIiwiZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSIsImRlZmF1bHRUaHJlYWRSYXRlTGltaXRQZXJVc2VyIiwiZGVmYXVsdF90aHJlYWRfcmF0ZV9saW1pdF9wZXJfdXNlciIsImRlZmF1bHRTb3J0T3JkZXIiLCJkZWZhdWx0X3NvcnRfb3JkZXIiLCJkZWZhdWx0Rm9ydW1MYXlvdXQiLCJkZWZhdWx0X2ZvcnVtX2xheW91dCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRm9ydW1UYWciLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUF3REEsb0JBQW9CLEVBQUVDLGdCQUFnQixRQUFRLGNBQWE7QUFDbkgsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxjQUFjLFFBQVEsdUJBQXNCO0FBRXJELE1BQU1DLE9BQU8sQUFBQyxDQUFBLEVBQUUsSUFBSSxHQUFHLEFBQUQsSUFBSyxFQUFFO0FBRTdCLE9BQU8sU0FBU0MsZUFBZUMsS0FBYSxFQUFFQyxJQUFZLEVBQUVDLEVBQVUsRUFBRUMsSUFBWTtJQUNsRixPQUFPQyxPQUFPSixPQUFPLEtBQUtJLE9BQU9ILE1BQU0sS0FBS0csT0FBT0YsSUFBSSxLQUFLRSxPQUFPRCxNQUFNO0FBQzNFO0FBQ0EsU0FBU0UsU0FBU0MsQ0FBUyxFQUFFQyxLQUFhO0lBQ3hDLE9BQU8sQUFBQ0QsS0FBS0UsT0FBT0QsUUFBUSxNQUFPVDtBQUNyQztBQUNBLFNBQVNNLE9BQU9FLENBQWtCLEVBQUVDLEtBQWE7SUFDL0MsTUFBTUUsSUFBSUQsT0FBT0Y7SUFDakIsSUFBSUcsSUFBSSxLQUFLQSxJQUFJWCxNQUFNLE1BQU0sSUFBSVksTUFBTSxpREFBaURKLEVBQUVLLFFBQVE7SUFDbEcsT0FBT0YsS0FBS0QsT0FBT0QsUUFBUTtBQUM3QjtBQUNBLE9BQU8sU0FBU0ssbUJBQW1CTixDQUFTO0lBQzFDLE9BQU87UUFBQ08sT0FBT1IsU0FBU0MsR0FBRztRQUFLRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7UUFBSUQsU0FBU0MsR0FBRztLQUFHO0FBQ2pGO0FBRUEsT0FBTyxNQUFNUSxjQUF3RTtJQUNuRiwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElB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
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY2hhbm5lbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZENoYW5uZWwsIERpc2NvcmRGb3J1bVRhZyB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgdHlwZSBDaGFubmVsLCBjYWxjdWxhdGVQZXJtaXNzaW9ucywgdHlwZSBGb3J1bVRhZywgdHlwZSBJbnRlcm5hbEJvdCwgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgQ2hhbm5lbFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvY2hhbm5lbC5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuXG5jb25zdCBNYXNrID0gKDFuIDw8IDY0bikgLSAxblxuXG5leHBvcnQgZnVuY3Rpb24gcGFja092ZXJ3cml0ZXMoYWxsb3c6IHN0cmluZywgZGVueTogc3RyaW5nLCBpZDogc3RyaW5nLCB0eXBlOiBudW1iZXIpOiBiaWdpbnQge1xuICByZXR1cm4gcGFjazY0KGFsbG93LCAwKSB8IHBhY2s2NChkZW55LCAxKSB8IHBhY2s2NChpZCwgMikgfCBwYWNrNjQodHlwZSwgMylcbn1cbmZ1bmN0aW9uIHVucGFjazY0KHY6IGJpZ2ludCwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIHJldHVybiAodiA+PiBCaWdJbnQoc2hpZnQgKiA2NCkpICYgTWFza1xufVxuZnVuY3Rpb24gcGFjazY0KHY6IHN0cmluZyB8IG51bWJlciwgc2hpZnQ6IG51bWJlcik6IGJpZ2ludCB7XG4gIGNvbnN0IGIgPSBCaWdJbnQodilcbiAgaWYgKGIgPCAwIHx8IGIgPiBNYXNrKSB0aHJvdyBuZXcgRXJyb3IoJ3Nob3VsZCBoYXZlIGJlZW4gYSA2NCBiaXQgdW5zaWduZWQgaW50ZWdlcjogJyArIHYudG9TdHJpbmcoKSlcbiAgcmV0dXJuIGIgPDwgQmlnSW50KHNoaWZ0ICogNjQpXG59XG5leHBvcnQgZnVuY3Rpb24gc2VwYXJhdGVPdmVyd3JpdGVzKHY6IGJpZ2ludCk6IFtudW1iZXIsIGJpZ2ludCwgYmlnaW50LCBiaWdpbnRdIHtcbiAgcmV0dXJuIFtOdW1iZXIodW5wYWNrNjQodiwgMykpLCB1bnBhY2s2NCh2LCAyKSwgdW5wYWNrNjQodiwgMCksIHVucGFjazY0KHYsIDEpXSBhcyBbbnVtYmVyLCBiaWdpbnQsIGJpZ2ludCwgYmlnaW50XVxufVxuXG5leHBvcnQgY29uc3QgYmFzZUNoYW5uZWw6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnY2hhbm5lbCddKSxcblxuICBnZXQgYXJjaGl2ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5hcmNoaXZlZFxuICB9LFxuICBnZXQgaW52aXRhYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaW52aXRhYmxlXG4gIH0sXG4gIGdldCBsb2NrZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5sb2NrZWRcbiAgfSxcbiAgZ2V0IG5zZncoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uc2Z3XG4gIH0sXG4gIGdldCBuZXdseUNyZWF0ZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5uZXdseUNyZWF0ZWRcbiAgfSxcbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBwZXJtaXNzaW9uT3ZlcndyaXRlcygpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pbnRlcm5hbE92ZXJ3cml0ZXM/Lm1hcCgob3ZlcndyaXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IFt0eXBlLCBpZCwgYWxsb3csIGRlbnldID0gc2VwYXJhdGVPdmVyd3JpdGVzKG92ZXJ3cml0ZSlcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIGlkLFxuICAgICAgICAgIGFsbG93OiBjYWxjdWxhdGVQZXJtaXNzaW9ucyhhbGxvdyksXG4gICAgICAgICAgZGVueTogY2FsY3VsYXRlUGVybWlzc2lvbnMoZGVueSksXG4gICAgICAgIH1cbiAgICAgIH0pID8/IFtdXG4gICAgKVxuICB9LFxuICBnZXQgdGhyZWFkTWV0YWRhdGEoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFyY2hpdmVUaW1lc3RhbXA6IHRoaXMuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YT8uYXJjaGl2ZVRpbWVzdGFtcCxcbiAgICAgIGNyZWF0ZVRpbWVzdGFtcDogdGhpcy5pbnRlcm5hbFRocmVhZE1ldGFkYXRhPy5jcmVhdGVUaW1lc3RhbXAsXG4gICAgICBhdXRvQXJjaGl2ZUR1cmF0aW9uOiB0aGlzLmludGVybmFsVGhyZWFkTWV0YWRhdGE/LmF1dG9BcmNoaXZlRHVyYXRpb24sXG4gICAgICBsb2NrZWQ6ICEhdGhpcy50b2dnbGVzPy5sb2NrZWQsXG4gICAgICBpbnZpdGFibGU6ICEhdGhpcy50b2dnbGVzPy5pbnZpdGFibGUsXG4gICAgICBhcmNoaXZlZDogISF0aGlzLnRvZ2dsZXM/LmFyY2hpdmVkLFxuICAgIH1cbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWwoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgY2hhbm5lbDogRGlzY29yZENoYW5uZWw7IGd1aWxkSWQ/OiBCaWdTdHJpbmcgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmNoYW5uZWwge1xuICBjb25zdCBjaGFubmVsID0gT2JqZWN0LmNyZWF0ZShiYXNlQ2hhbm5lbCkgYXMgQ2hhbm5lbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY2hhbm5lbFxuICBjaGFubmVsLnRvZ2dsZXMgPSBuZXcgQ2hhbm5lbFRvZ2dsZXMocGF5bG9hZC5jaGFubmVsKVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmNoYW5uZWwuaWQpIGNoYW5uZWwuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwuaWQpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIChwYXlsb2FkLmd1aWxkSWQgPz8gcGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkKSlcbiAgICBjaGFubmVsLmd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkSWQpIDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmd1aWxkX2lkISlcbiAgaWYgKHByb3BzLnR5cGUpIGNoYW5uZWwudHlwZSA9IHBheWxvYWQuY2hhbm5lbC50eXBlXG4gIGlmIChwcm9wcy5wb3NpdGlvbikgY2hhbm5lbC5wb3NpdGlvbiA9IHBheWxvYWQuY2hhbm5lbC5wb3NpdGlvblxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLmNoYW5uZWwubmFtZSkgY2hhbm5lbC5uYW1lID0gcGF5bG9hZC5jaGFubmVsLm5hbWVcbiAgaWYgKHByb3BzLnRvcGljICYmIHBheWxvYWQuY2hhbm5lbC50b3BpYykgY2hhbm5lbC50b3BpYyA9IHBheWxvYWQuY2hhbm5lbC50b3BpY1xuICBpZiAocHJvcHMubGFzdE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKSBjaGFubmVsLmxhc3RNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwubGFzdF9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMuYml0cmF0ZSAmJiBwYXlsb2FkLmNoYW5uZWwuYml0cmF0ZSkgY2hhbm5lbC5iaXRyYXRlID0gcGF5bG9hZC5jaGFubmVsLmJpdHJhdGVcbiAgaWYgKHByb3BzLnVzZXJMaW1pdCkgY2hhbm5lbC51c2VyTGltaXQgPSBwYXlsb2FkLmNoYW5uZWwudXNlcl9saW1pdFxuICBpZiAocHJvcHMucmF0ZUxpbWl0UGVyVXNlcikgY2hhbm5lbC5yYXRlTGltaXRQZXJVc2VyID0gcGF5bG9hZC5jaGFubmVsLnJhdGVfbGltaXRfcGVyX3VzZXJcbiAgaWYgKHByb3BzLm93bmVySWQgJiYgcGF5bG9hZC5jaGFubmVsLm93bmVyX2lkKSBjaGFubmVsLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwub3duZXJfaWQpXG4gIGlmIChwcm9wcy5sYXN0UGluVGltZXN0YW1wICYmIHBheWxvYWQuY2hhbm5lbC5sYXN0X3Bpbl90aW1lc3RhbXApIGNoYW5uZWwubGFzdFBpblRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5jaGFubmVsLmxhc3RfcGluX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLnJ0Y1JlZ2lvbiAmJiBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvbikgY2hhbm5lbC5ydGNSZWdpb24gPSBwYXlsb2FkLmNoYW5uZWwucnRjX3JlZ2lvblxuICBpZiAocHJvcHMudmlkZW9RdWFsaXR5TW9kZSAmJiBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlKSBjaGFubmVsLnZpZGVvUXVhbGl0eU1vZGUgPSBwYXlsb2FkLmNoYW5uZWwudmlkZW9fcXVhbGl0eV9tb2RlXG4gIGlmIChwcm9wcy5tZXNzYWdlQ291bnQpIGNoYW5uZWwubWVzc2FnZUNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lc3NhZ2VfY291bnRcbiAgaWYgKHByb3BzLm1lbWJlckNvdW50KSBjaGFubmVsLm1lbWJlckNvdW50ID0gcGF5bG9hZC5jaGFubmVsLm1lbWJlcl9jb3VudFxuICBpZiAocHJvcHMudGhyZWFkTWV0YWRhdGEpIHtcbiAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEgPSB7fSBhcyBOb25OdWxsYWJsZTxDaGFubmVsWydpbnRlcm5hbFRocmVhZE1ldGFkYXRhJ10+XG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmFyY2hpdmVfdGltZXN0YW1wKVxuICAgICAgY2hhbm5lbC5pbnRlcm5hbFRocmVhZE1ldGFkYXRhLmFyY2hpdmVUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGEuYXJjaGl2ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmNyZWF0ZV90aW1lc3RhbXApXG4gICAgICBjaGFubmVsLmludGVybmFsVGhyZWFkTWV0YWRhdGEuY3JlYXRlVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNoYW5uZWwudGhyZWFkX21ldGFkYXRhLmNyZWF0ZV90aW1lc3RhbXApXG4gICAgaWYgKHBheWxvYWQuY2hhbm5lbC50aHJlYWRfbWV0YWRhdGE/LmF1dG9fYXJjaGl2ZV9kdXJhdGlvbilcbiAgICAgIGNoYW5uZWwuaW50ZXJuYWxUaHJlYWRNZXRhZGF0YS5hdXRvQXJjaGl2ZUR1cmF0aW9uID0gcGF5bG9hZC5jaGFubmVsLnRocmVhZF9tZXRhZGF0YS5hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgfVxuICBpZiAocHJvcHMuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfYXV0b19hcmNoaXZlX2R1cmF0aW9uKVxuICAgIGNoYW5uZWwuZGVmYXVsdEF1dG9BcmNoaXZlRHVyYXRpb24gPSBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb25cbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9ucykgY2hhbm5lbC5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLmNoYW5uZWwucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5mbGFncykgY2hhbm5lbC5mbGFncyA9IHBheWxvYWQuY2hhbm5lbC5mbGFnc1xuICBpZiAocHJvcHMucGVybWlzc2lvbk92ZXJ3cml0ZXMgJiYgcGF5bG9hZC5jaGFubmVsLnBlcm1pc3Npb25fb3ZlcndyaXRlcylcbiAgICBjaGFubmVsLmludGVybmFsT3ZlcndyaXRlcyA9IHBheWxvYWQuY2hhbm5lbC5wZXJtaXNzaW9uX292ZXJ3cml0ZXMubWFwKChvKSA9PiBwYWNrT3ZlcndyaXRlcyhvLmFsbG93ID8/ICcwJywgby5kZW55ID8/ICcwJywgby5pZCwgby50eXBlKSlcbiAgaWYgKHByb3BzLnBhcmVudElkICYmIHBheWxvYWQuY2hhbm5lbC5wYXJlbnRfaWQpIGNoYW5uZWwucGFyZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmNoYW5uZWwucGFyZW50X2lkKVxuICBpZiAocHJvcHMucmVjaXBpZW50cyAmJiBwYXlsb2FkLmNoYW5uZWwucmVjaXBpZW50cykgY2hhbm5lbC5yZWNpcGllbnRzID0gcGF5bG9hZC5jaGFubmVsLnJlY2lwaWVudHMubWFwKCh1KSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1KSlcbiAgaWYgKHByb3BzLmljb24gJiYgcGF5bG9hZC5jaGFubmVsLmljb24pIGNoYW5uZWwuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jaGFubmVsLmljb24pXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWNhdGlvbl9pZCkgY2hhbm5lbC5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIHBheWxvYWQuY2hhbm5lbC5tZW1iZXIpIGNoYW5uZWwubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBwYXlsb2FkLmNoYW5uZWwubWVtYmVyKVxuICBpZiAocHJvcHMudG90YWxNZXNzYWdlU2VudCAmJiBwYXlsb2FkLmNoYW5uZWwudG90YWxfbWVzc2FnZV9zZW50ICE9PSB1bmRlZmluZWQpIGNoYW5uZWwudG90YWxNZXNzYWdlU2VudCA9IHBheWxvYWQuY2hhbm5lbC50b3RhbF9tZXNzYWdlX3NlbnRcbiAgaWYgKHByb3BzLmF2YWlsYWJsZVRhZ3MgJiYgcGF5bG9hZC5jaGFubmVsLmF2YWlsYWJsZV90YWdzKVxuICAgIGNoYW5uZWwuYXZhaWxhYmxlVGFncyA9IHBheWxvYWQuY2hhbm5lbC5hdmFpbGFibGVfdGFncy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuZm9ydW1UYWcoYm90LCB4KSlcbiAgaWYgKHByb3BzLmFwcGxpZWRUYWdzICYmIHBheWxvYWQuY2hhbm5lbC5hcHBsaWVkX3RhZ3MpIGNoYW5uZWwuYXBwbGllZFRhZ3MgPSBwYXlsb2FkLmNoYW5uZWwuYXBwbGllZF90YWdzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5kZWZhdWx0UmVhY3Rpb25FbW9qaSAmJiBwYXlsb2FkLmNoYW5uZWwuZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSlcbiAgICBjaGFubmVsLmRlZmF1bHRSZWFjdGlvbkVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5kZWZhdWx0UmVhY3Rpb25FbW9qaShib3QsIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3JlYWN0aW9uX2Vtb2ppKVxuICBpZiAocHJvcHMuZGVmYXVsdFRocmVhZFJhdGVMaW1pdFBlclVzZXIgJiYgcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfdGhyZWFkX3JhdGVfbGltaXRfcGVyX3VzZXIpXG4gICAgY2hhbm5lbC5kZWZhdWx0VGhyZWFkUmF0ZUxpbWl0UGVyVXNlciA9IHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3RocmVhZF9yYXRlX2xpbWl0X3Blcl91c2VyXG4gIGlmIChwcm9wcy5kZWZhdWx0U29ydE9yZGVyICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X3NvcnRfb3JkZXIgIT09IHVuZGVmaW5lZCkgY2hhbm5lbC5kZWZhdWx0U29ydE9yZGVyID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfc29ydF9vcmRlclxuICBpZiAocHJvcHMuZGVmYXVsdEZvcnVtTGF5b3V0ICYmIHBheWxvYWQuY2hhbm5lbC5kZWZhdWx0X2ZvcnVtX2xheW91dCAhPT0gdW5kZWZpbmVkKVxuICAgIGNoYW5uZWwuZGVmYXVsdEZvcnVtTGF5b3V0ID0gcGF5bG9hZC5jaGFubmVsLmRlZmF1bHRfZm9ydW1fbGF5b3V0XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY2hhbm5lbChib3QsIHBheWxvYWQuY2hhbm5lbCwgY2hhbm5lbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUZvcnVtVGFnKGJvdDogSW50ZXJuYWxCb3QsIHBheWxvYWQ6IERpc2NvcmRGb3J1bVRhZyk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmZvcnVtVGFnIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmZvcnVtVGFnXG4gIGNvbnN0IGZvcnVtVGFnID0ge30gYXMgRm9ydW1UYWdcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZm9ydW1UYWcuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGZvcnVtVGFnLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLm1vZGVyYXRlZCAmJiBwYXlsb2FkLm1vZGVyYXRlZCkgZm9ydW1UYWcubW9kZXJhdGVkID0gcGF5bG9hZC5tb2RlcmF0ZWRcbiAgaWYgKHByb3BzLmVtb2ppSWQgJiYgcGF5bG9hZC5lbW9qaV9pZCkgZm9ydW1UYWcuZW1vamlJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZW1vamlfaWQpXG4gIGlmIChwcm9wcy5lbW9qaU5hbWUgJiYgcGF5bG9hZC5lbW9qaV9uYW1lKSBmb3J1bVRhZy5lbW9qaU5hbWUgPSBwYXlsb2FkLmVtb2ppX25hbWVcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5mb3J1bVRhZyhib3QsIHBheWxvYWQsIGZvcnVtVGFnKVxufVxuIl0sIm5hbWVzIjpbImNhbGN1bGF0ZVBlcm1pc3Npb25zIiwiaWNvbkhhc2hUb0JpZ0ludCIsIkNoYW5uZWxUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJNYXNrIiwicGFja092ZXJ3cml0ZXMiLCJhbGxvdyIsImRlbnkiLCJpZCIsInR5cGUiLCJwYWNrNjQiLCJ1bnBhY2s2NCIsInYiLCJzaGlmdCIsIkJpZ0ludCIsImIiLCJFcnJvciIsInRvU3RyaW5nIiwic2VwYXJhdGVPdmVyd3JpdGVzIiwiTnVtYmVyIiwiYmFzZUNoYW5uZWwiLCJ1bmRlZmluZWQiLCJhcmNoaXZlZCIsInRvZ2dsZXMiLCJpbnZpdGFibGUiLCJsb2NrZWQiLCJuc2Z3IiwibmV3bHlDcmVhdGVkIiwibWFuYWdlZCIsInBlcm1pc3Npb25PdmVyd3JpdGVzIiwiaW50ZXJuYWxPdmVyd3JpdGVzIiwibWFwIiwib3ZlcndyaXRlIiwidGhyZWFkTWV0YWRhdGEiLCJhcmNoaXZlVGltZXN0YW1wIiwiaW50ZXJuYWxUaHJlYWRNZXRhZGF0YSIsImNyZWF0ZVRpbWVzdGFtcCIsImF1dG9BcmNoaXZlRHVyYXRpb24iLCJ0cmFuc2Zvcm1DaGFubmVsIiwiYm90IiwicGF5bG9hZCIsImNoYW5uZWwiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic25vd2ZsYWtlIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwicG9zaXRpb24iLCJuYW1lIiwidG9waWMiLCJsYXN0TWVzc2FnZUlkIiwibGFzdF9tZXNzYWdlX2lkIiwiYml0cmF0ZSIsInVzZXJMaW1pdCIsInVzZXJfbGltaXQiLCJyYXRlTGltaXRQZXJVc2VyIiwicmF0ZV9saW1pdF9wZXJfdXNlciIsIm93bmVySWQiLCJvd25lcl9pZCIsImxhc3RQaW5UaW1lc3RhbXAiLCJsYXN0X3Bpbl90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJydGNSZWdpb24iLCJydGNfcmVnaW9uIiwidmlkZW9RdWFsaXR5TW9kZSIsInZpZGVvX3F1YWxpdHlfbW9kZSIsIm1lc3NhZ2VDb3VudCIsIm1lc3NhZ2VfY291bnQiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInRocmVhZF9tZXRhZGF0YSIsImFyY2hpdmVfdGltZXN0YW1wIiwiY3JlYXRlX3RpbWVzdGFtcCIsImF1dG9fYXJjaGl2ZV9kdXJhdGlvbiIsImRlZmF1bHRBdXRvQXJjaGl2ZUR1cmF0aW9uIiwiZGVmYXVsdF9hdXRvX2FyY2hpdmVfZHVyYXRpb24iLCJwZXJtaXNzaW9ucyIsImZsYWdzIiwicGVybWlzc2lvbl9vdmVyd3JpdGVzIiwibyIsInBhcmVudElkIiwicGFyZW50X2lkIiwicmVjaXBpZW50cyIsInUiLCJ1c2VyIiwiaWNvbiIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsIm1lbWJlciIsInRocmVhZE1lbWJlciIsInRvdGFsTWVzc2FnZVNlbnQiLCJ0b3RhbF9tZXNzYWdlX3NlbnQiLCJhdmFpbGFibGVUYWdzIiwiYXZhaWxhYmxlX3RhZ3MiLCJ4IiwiZm9ydW1UYWciLCJhcHBsaWVkVGFncyIsImFwcGxpZWRfdGFncyIsImRlZmF1bHRSZWFjdGlvbkVtb2ppIiwiZGVmYXVsdF9yZWFjdGlvbl9lbW9qaSIsImRlZmF1bHRUaHJlYWRSYXRlTGltaXRQZXJVc2VyIiwiZGVmYXVsdF90aHJlYWRfcmF0ZV9saW1pdF9wZXJfdXNlciIsImRlZmF1bHRTb3J0T3JkZXIiLCJkZWZhdWx0X3NvcnRfb3JkZXIiLCJkZWZhdWx0Rm9ydW1MYXlvdXQiLCJkZWZhdWx0X2ZvcnVtX2xheW91dCIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRm9ydW1UYWciLCJtb2RlcmF0ZWQiLCJlbW9qaUlkIiwiZW1vamlfaWQiLCJlbW9qaU5hbWUiLCJlbW9qaV9uYW1lIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUF1QkEsb0JBQW9CLEVBQW1DQyxnQkFBZ0IsUUFBUSxjQUFhO0FBQ25ILFNBQVNDLGNBQWMsUUFBUSx1QkFBc0I7QUFDckQsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUV0RCxNQUFNQyxPQUFPLEFBQUMsQ0FBQSxFQUFFLElBQUksR0FBRyxBQUFELElBQUssRUFBRTtBQUU3QixPQUFPLFNBQVNDLGVBQWVDLEtBQWEsRUFBRUMsSUFBWSxFQUFFQyxFQUFVLEVBQUVDLElBQVk7SUFDbEYsT0FBT0MsT0FBT0osT0FBTyxLQUFLSSxPQUFPSCxNQUFNLEtBQUtHLE9BQU9GLElBQUksS0FBS0UsT0FBT0QsTUFBTTtBQUMzRTtBQUNBLFNBQVNFLFNBQVNDLENBQVMsRUFBRUMsS0FBYTtJQUN4QyxPQUFPLEFBQUNELEtBQUtFLE9BQU9ELFFBQVEsTUFBT1Q7QUFDckM7QUFDQSxTQUFTTSxPQUFPRSxDQUFrQixFQUFFQyxLQUFhO0lBQy9DLE1BQU1FLElBQUlELE9BQU9GO0lBQ2pCLElBQUlHLElBQUksS0FBS0EsSUFBSVgsTUFBTSxNQUFNLElBQUlZLE1BQU0saURBQWlESixFQUFFSyxRQUFRO0lBQ2xHLE9BQU9GLEtBQUtELE9BQU9ELFFBQVE7QUFDN0I7QUFDQSxPQUFPLFNBQVNLLG1CQUFtQk4sQ0FBUztJQUMxQyxPQUFPO1FBQUNPLE9BQU9SLFNBQVNDLEdBQUc7UUFBS0QsU0FBU0MsR0FBRztRQUFJRCxTQUFTQyxHQUFHO1FBQUlELFNBQVNDLEdBQUc7S0FBRztBQUNqRjtBQUVBLE9BQU8sTUFBTVEsY0FBd0U7SUFDbkYsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxZQUFXO1FBQ2IsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDQyxPQUFPLEVBQUVEO0lBQ3pCO0lBQ0EsSUFBSUUsYUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztJQUN6QjtJQUNBLElBQUlDLFVBQVM7UUFDWCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNGLE9BQU8sRUFBRUU7SUFDekI7SUFDQSxJQUFJQyxRQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFPLEVBQUVHO0lBQ3pCO0lBQ0EsSUFBSUMsZ0JBQWU7UUFDakIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSixPQUFPLEVBQUVJO0lBQ3pCO0lBQ0EsSUFBSUMsV0FBVTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxFQUFFSztJQUN6QjtJQUNBLElBQUlDLHdCQUF1QjtRQUN6QixPQUNFLElBQUksQ0FBQ0Msa0JBQWtCLEVBQUVDLElBQUksQ0FBQ0M7WUFDNUIsTUFBTSxDQUFDdkIsTUFBTUQsSUFBSUYsT0FBT0MsS0FBSyxHQUFHVyxtQkFBbUJjO1lBQ25ELE9BQU87Z0JBQ0x2QjtnQkFDQUQ7Z0JBQ0FGLE9BQU9OLHFCQUFxQk07Z0JBQzVCQyxNQUFNUCxxQkFBcUJPO1lBQzdCO1FBQ0YsTUFBTSxFQUFFO0lBRVo7SUFDQSxJQUFJMEIsa0JBQWlCO1FBQ25CLE9BQU87WUFDTEMsa0JBQWtCLElBQUksQ0FBQ0Msc0JBQXNCLEVBQUVEO1lBQy9DRSxpQkFBaUIsSUFBSSxDQUFDRCxzQkFBc0IsRUFBRUM7WUFDOUNDLHFCQUFxQixJQUFJLENBQUNGLHNCQUFzQixFQUFFRTtZQUNsRFosUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDRixPQUFPLEVBQUVFO1lBQ3hCRCxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUNELE9BQU8sRUFBRUM7WUFDM0JGLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtRQUM1QjtJQUNGO0FBQ0YsRUFBQztBQUVELE9BQU8sU0FBU2dCLGlCQUNkQyxHQUFnQixFQUNoQkMsT0FBeUQ7SUFFekQsTUFBTUMsVUFBVUMsT0FBT0MsTUFBTSxDQUFDdkI7SUFDOUIsTUFBTXdCLFFBQVFMLElBQUlNLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNMLE9BQU87SUFDeERBLFFBQVFsQixPQUFPLEdBQUcsSUFBSXJCLGVBQWVzQyxRQUFRQyxPQUFPO0lBRXBELElBQUlHLE1BQU1wQyxFQUFFLElBQUlnQyxRQUFRQyxPQUFPLENBQUNqQyxFQUFFLEVBQUVpQyxRQUFRakMsRUFBRSxHQUFHK0IsSUFBSU0sWUFBWSxDQUFDRSxTQUFTLENBQUNQLFFBQVFDLE9BQU8sQ0FBQ2pDLEVBQUU7SUFDOUYsSUFBSW9DLE1BQU1JLE9BQU8sSUFBS1IsQ0FBQUEsUUFBUVEsT0FBTyxJQUFJUixRQUFRQyxPQUFPLENBQUNRLFFBQVEsQUFBRCxHQUM5RFIsUUFBUU8sT0FBTyxHQUFHUixRQUFRUSxPQUFPLEdBQUdULElBQUlNLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUCxRQUFRUSxPQUFPLElBQUlULElBQUlNLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUCxRQUFRQyxPQUFPLENBQUNRLFFBQVE7SUFDdkksSUFBSUwsTUFBTW5DLElBQUksRUFBRWdDLFFBQVFoQyxJQUFJLEdBQUcrQixRQUFRQyxPQUFPLENBQUNoQyxJQUFJO0lBQ25ELElBQUltQyxNQUFNTSxRQUFRLEVBQUVULFFBQVFTLFFBQVEsR0FBR1YsUUFBUUMsT0FBTyxDQUFDUyxRQUFRO0lBQy9ELElBQUlOLE1BQU1PLElBQUksSUFBSVgsUUFBUUMsT0FBTyxDQUFDVSxJQUFJLEVBQUVWLFFBQVFVLElBQUksR0FBR1gsUUFBUUMsT0FBTyxDQUFDVSxJQUFJO0lBQzNFLElBQUlQLE1BQU1RLEtBQUssSUFBSVosUUFBUUMsT0FBTyxDQUFDVyxLQUFLLEVBQUVYLFFBQVFXLEtBQUssR0FBR1osUUFBUUMsT0FBTyxDQUFDVyxLQUFLO0lBQy9FLElBQUlSLE1BQU1TLGFBQWEsSUFBSWIsUUFBUUMsT0FBTyxDQUFDYSxlQUFlLEVBQUViLFFBQVFZLGFBQWEsR0FBR2QsSUFBSU0sWUFBWSxDQUFDRSxTQUFTLENBQUNQLFFBQVFDLE9BQU8sQ0FBQ2EsZUFBZTtJQUM5SSxJQUFJVixNQUFNVyxPQUFPLElBQUlmLFFBQVFDLE9BQU8sQ0FBQ2MsT0FBTyxFQUFFZCxRQUFRYyxPQUFPLEdBQUdmLFFBQVFDLE9BQU8sQ0FBQ2MsT0FBTztJQUN2RixJQUFJWCxNQUFNWSxTQUFTLEVBQUVmLFFBQVFlLFNBQVMsR0FBR2hCLFFBQVFDLE9BQU8sQ0FBQ2dCLFVBQVU7SUFDbkUsSUFBSWIsTUFBTWMsZ0JBQWdCLEVBQUVqQixRQUFRaUIsZ0JBQWdCLEdBQUdsQixRQUFRQyxPQUFPLENBQUNrQixtQkFBbUI7SUFDMUYsSUFBSWYsTUFBTWdCLE9BQU8sSUFBSXBCLFFBQVFDLE9BQU8sQ0FBQ29CLFFBQVEsRUFBRXBCLFFBQVFtQixPQUFPLEdBQUdyQixJQUFJTSxZQUFZLENBQUNFLFNBQVMsQ0FBQ1AsUUFBUUMsT0FBTyxDQUFDb0IsUUFBUTtJQUNwSCxJQUFJakIsTUFBTWtCLGdCQUFnQixJQUFJdEIsUUFBUUMsT0FBTyxDQUFDc0Isa0JBQWtCLEVBQUV0QixRQUFRcUIsZ0JBQWdCLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ3pCLFFBQVFDLE9BQU8sQ0FBQ3NCLGtCQUFrQjtJQUMxSSxJQUFJbkIsTUFBTXNCLFNBQVMsSUFBSTFCLFFBQVFDLE9BQU8sQ0FBQzBCLFVBQVUsRUFBRTFCLFFBQVF5QixTQUFTLEdBQUcxQixRQUFRQyxPQUFPLENBQUMwQixVQUFVO0lBQ2pHLElBQUl2QixNQUFNd0IsZ0JBQWdCLElBQUk1QixRQUFRQyxPQUFPLENBQUM0QixrQkFBa0IsRUFBRTVCLFFBQVEyQixnQkFBZ0IsR0FBRzVCLFFBQVFDLE9BQU8sQ0FBQzRCLGtCQUFrQjtJQUMvSCxJQUFJekIsTUFBTTBCLFlBQVksRUFBRTdCLFFBQVE2QixZQUFZLEdBQUc5QixRQUFRQyxPQUFPLENBQUM4QixhQUFhO0lBQzVFLElBQUkzQixNQUFNNEIsV0FBVyxFQUFFL0IsUUFBUStCLFdBQVcsR0FBR2hDLFFBQVFDLE9BQU8sQ0FBQ2dDLFlBQVk7SUFDekUsSUFBSTdCLE1BQU1YLGNBQWMsRUFBRTtRQUN4QlEsUUFBUU4sc0JBQXNCLEdBQUcsQ0FBQztRQUNsQyxJQUFJSyxRQUFRQyxPQUFPLENBQUNpQyxlQUFlLEVBQUVDLG1CQUNuQ2xDLFFBQVFOLHNCQUFzQixDQUFDRCxnQkFBZ0IsR0FBRzhCLEtBQUtDLEtBQUssQ0FBQ3pCLFFBQVFDLE9BQU8sQ0FBQ2lDLGVBQWUsQ0FBQ0MsaUJBQWlCO1FBQ2hILElBQUluQyxRQUFRQyxPQUFPLENBQUNpQyxlQUFlLEVBQUVFLGtCQUNuQ25DLFFBQVFOLHNCQUFzQixDQUFDQyxlQUFlLEdBQUc0QixLQUFLQyxLQUFLLENBQUN6QixRQUFRQyxPQUFPLENBQUNpQyxlQUFlLENBQUNFLGdCQUFnQjtRQUM5RyxJQUFJcEMsUUFBUUMsT0FBTyxDQUFDaUMsZUFBZSxFQUFFRyx1QkFDbkNwQyxRQUFRTixzQkFBc0IsQ0FBQ0UsbUJBQW1CLEdBQUdHLFFBQVFDLE9BQU8sQ0FBQ2lDLGVBQWUsQ0FBQ0cscUJBQXFCO0lBQzlHO0lBQ0EsSUFBSWpDLE1BQU1rQywwQkFBMEIsSUFBSXRDLFFBQVFDLE9BQU8sQ0FBQ3NDLDZCQUE2QixFQUNuRnRDLFFBQVFxQywwQkFBMEIsR0FBR3RDLFFBQVFDLE9BQU8sQ0FBQ3NDLDZCQUE2QjtJQUNwRixJQUFJbkMsTUFBTW9DLFdBQVcsSUFBSXhDLFFBQVFDLE9BQU8sQ0FBQ3VDLFdBQVcsRUFBRXZDLFFBQVF1QyxXQUFXLEdBQUcsSUFBSTdFLFlBQVlxQyxRQUFRQyxPQUFPLENBQUN1QyxXQUFXO0lBQ3ZILElBQUlwQyxNQUFNcUMsS0FBSyxFQUFFeEMsUUFBUXdDLEtBQUssR0FBR3pDLFFBQVFDLE9BQU8sQ0FBQ3dDLEtBQUs7SUFDdEQsSUFBSXJDLE1BQU1mLG9CQUFvQixJQUFJVyxRQUFRQyxPQUFPLENBQUN5QyxxQkFBcUIsRUFDckV6QyxRQUFRWCxrQkFBa0IsR0FBR1UsUUFBUUMsT0FBTyxDQUFDeUMscUJBQXFCLENBQUNuRCxHQUFHLENBQUMsQ0FBQ29ELElBQU05RSxlQUFlOEUsRUFBRTdFLEtBQUssSUFBSSxLQUFLNkUsRUFBRTVFLElBQUksSUFBSSxLQUFLNEUsRUFBRTNFLEVBQUUsRUFBRTJFLEVBQUUxRSxJQUFJO0lBQzFJLElBQUltQyxNQUFNd0MsUUFBUSxJQUFJNUMsUUFBUUMsT0FBTyxDQUFDNEMsU0FBUyxFQUFFNUMsUUFBUTJDLFFBQVEsR0FBRzdDLElBQUlNLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUCxRQUFRQyxPQUFPLENBQUM0QyxTQUFTO0lBQ3hILElBQUl6QyxNQUFNMEMsVUFBVSxJQUFJOUMsUUFBUUMsT0FBTyxDQUFDNkMsVUFBVSxFQUFFN0MsUUFBUTZDLFVBQVUsR0FBRzlDLFFBQVFDLE9BQU8sQ0FBQzZDLFVBQVUsQ0FBQ3ZELEdBQUcsQ0FBQyxDQUFDd0QsSUFBTWhELElBQUlNLFlBQVksQ0FBQzJDLElBQUksQ0FBQ2pELEtBQUtnRDtJQUMxSSxJQUFJM0MsTUFBTTZDLElBQUksSUFBSWpELFFBQVFDLE9BQU8sQ0FBQ2dELElBQUksRUFBRWhELFFBQVFnRCxJQUFJLEdBQUd4RixpQkFBaUJ1QyxRQUFRQyxPQUFPLENBQUNnRCxJQUFJO0lBQzVGLElBQUk3QyxNQUFNOEMsYUFBYSxJQUFJbEQsUUFBUUMsT0FBTyxDQUFDa0QsY0FBYyxFQUFFbEQsUUFBUWlELGFBQWEsR0FBR25ELElBQUlNLFlBQVksQ0FBQ0UsU0FBUyxDQUFDUCxRQUFRQyxPQUFPLENBQUNrRCxjQUFjO0lBQzVJLElBQUkvQyxNQUFNZ0QsTUFBTSxJQUFJcEQsUUFBUUMsT0FBTyxDQUFDbUQsTUFBTSxFQUFFbkQsUUFBUW1ELE1BQU0sR0FBR3JELElBQUlNLFlBQVksQ0FBQ2dELFlBQVksQ0FBQ3RELEtBQUtDLFFBQVFDLE9BQU8sQ0FBQ21ELE1BQU07SUFDdEgsSUFBSWhELE1BQU1rRCxnQkFBZ0IsSUFBSXRELFFBQVFDLE9BQU8sQ0FBQ3NELGtCQUFrQixLQUFLMUUsV0FBV29CLFFBQVFxRCxnQkFBZ0IsR0FBR3RELFFBQVFDLE9BQU8sQ0FBQ3NELGtCQUFrQjtJQUM3SSxJQUFJbkQsTUFBTW9ELGFBQWEsSUFBSXhELFFBQVFDLE9BQU8sQ0FBQ3dELGNBQWMsRUFDdkR4RCxRQUFRdUQsYUFBYSxHQUFHeEQsUUFBUUMsT0FBTyxDQUFDd0QsY0FBYyxDQUFDbEUsR0FBRyxDQUFDLENBQUNtRSxJQUFNM0QsSUFBSU0sWUFBWSxDQUFDc0QsUUFBUSxDQUFDNUQsS0FBSzJEO0lBQ25HLElBQUl0RCxNQUFNd0QsV0FBVyxJQUFJNUQsUUFBUUMsT0FBTyxDQUFDNEQsWUFBWSxFQUFFNUQsUUFBUTJELFdBQVcsR0FBRzVELFFBQVFDLE9BQU8sQ0FBQzRELFlBQVksQ0FBQ3RFLEdBQUcsQ0FBQyxDQUFDbUUsSUFBTTNELElBQUlNLFlBQVksQ0FBQ0UsU0FBUyxDQUFDbUQ7SUFDaEosSUFBSXRELE1BQU0wRCxvQkFBb0IsSUFBSTlELFFBQVFDLE9BQU8sQ0FBQzhELHNCQUFzQixFQUN0RTlELFFBQVE2RCxvQkFBb0IsR0FBRy9ELElBQUlNLFlBQVksQ0FBQ3lELG9CQUFvQixDQUFDL0QsS0FBS0MsUUFBUUMsT0FBTyxDQUFDOEQsc0JBQXNCO0lBQ2xILElBQUkzRCxNQUFNNEQsNkJBQTZCLElBQUloRSxRQUFRQyxPQUFPLENBQUNnRSxrQ0FBa0MsRUFDM0ZoRSxRQUFRK0QsNkJBQTZCLEdBQUdoRSxRQUFRQyxPQUFPLENBQUNnRSxrQ0FBa0M7SUFDNUYsSUFBSTdELE1BQU04RCxnQkFBZ0IsSUFBSWxFLFFBQVFDLE9BQU8sQ0FBQ2tFLGtCQUFrQixLQUFLdEYsV0FBV29CLFFBQVFpRSxnQkFBZ0IsR0FBR2xFLFFBQVFDLE9BQU8sQ0FBQ2tFLGtCQUFrQjtJQUM3SSxJQUFJL0QsTUFBTWdFLGtCQUFrQixJQUFJcEUsUUFBUUMsT0FBTyxDQUFDb0Usb0JBQW9CLEtBQUt4RixXQUN2RW9CLFFBQVFtRSxrQkFBa0IsR0FBR3BFLFFBQVFDLE9BQU8sQ0FBQ29FLG9CQUFvQjtJQUVuRSxPQUFPdEUsSUFBSU0sWUFBWSxDQUFDaUUsV0FBVyxDQUFDckUsT0FBTyxDQUFDRixLQUFLQyxRQUFRQyxPQUFPLEVBQUVBO0FBQ3BFO0FBRUEsT0FBTyxTQUFTc0Usa0JBQWtCeEUsR0FBZ0IsRUFBRUMsT0FBd0I7SUFDMUUsTUFBTUksUUFBUUwsSUFBSU0sWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ3FELFFBQVE7SUFDekQsTUFBTUEsV0FBVyxDQUFDO0lBRWxCLElBQUl2RCxNQUFNcEMsRUFBRSxJQUFJZ0MsUUFBUWhDLEVBQUUsRUFBRTJGLFNBQVMzRixFQUFFLEdBQUcrQixJQUFJTSxZQUFZLENBQUNFLFNBQVMsQ0FBQ1AsUUFBUWhDLEVBQUU7SUFDL0UsSUFBSW9DLE1BQU1PLElBQUksSUFBSVgsUUFBUVcsSUFBSSxFQUFFZ0QsU0FBU2hELElBQUksR0FBR1gsUUFBUVcsSUFBSTtJQUM1RCxJQUFJUCxNQUFNb0UsU0FBUyxJQUFJeEUsUUFBUXdFLFNBQVMsRUFBRWIsU0FBU2EsU0FBUyxHQUFHeEUsUUFBUXdFLFNBQVM7SUFDaEYsSUFBSXBFLE1BQU1xRSxPQUFPLElBQUl6RSxRQUFRMEUsUUFBUSxFQUFFZixTQUFTYyxPQUFPLEdBQUcxRSxJQUFJTSxZQUFZLENBQUNFLFNBQVMsQ0FBQ1AsUUFBUTBFLFFBQVE7SUFDckcsSUFBSXRFLE1BQU11RSxTQUFTLElBQUkzRSxRQUFRNEUsVUFBVSxFQUFFakIsU0FBU2dCLFNBQVMsR0FBRzNFLFFBQVE0RSxVQUFVO0lBRWxGLE9BQU83RSxJQUFJTSxZQUFZLENBQUNpRSxXQUFXLENBQUNYLFFBQVEsQ0FBQzVELEtBQUtDLFNBQVMyRDtBQUM3RCJ9
@@ -20,13 +20,14 @@ export const baseInteraction = {
20
20
  if (this.acknowledged) return await this.bot.helpers.sendFollowupMessage(this.token, response);
21
21
  // Modals cannot be chained
22
22
  if (this.type === InteractionTypes.ModalSubmit && type === InteractionResponseTypes.Modal) throw new Error('Cannot respond to a modal interaction with another modal.');
23
- this.acknowledged = true;
24
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
23
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
25
24
  type,
26
25
  data: response
27
26
  }, {
28
27
  withResponse: options?.withResponse
29
28
  });
29
+ this.acknowledged = true;
30
+ return result;
30
31
  },
31
32
  async edit (response, messageId, options) {
32
33
  if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction.');
@@ -39,11 +40,12 @@ export const baseInteraction = {
39
40
  }
40
41
  if (!this.acknowledged) {
41
42
  if (this.type !== InteractionTypes.MessageComponent && this.type !== InteractionTypes.ModalSubmit) throw new Error("This interaction has not been responded to yet and this isn't a MessageComponent or ModalSubmit interaction.");
42
- this.acknowledged = true;
43
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
43
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
44
44
  type: InteractionResponseTypes.UpdateMessage,
45
45
  data: response
46
46
  }, options);
47
+ this.acknowledged = true;
48
+ return result;
47
49
  }
48
50
  return await this.bot.helpers.editOriginalInteractionResponse(this.token, response);
49
51
  },
@@ -51,20 +53,22 @@ export const baseInteraction = {
51
53
  if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot edit an autocomplete interaction.');
52
54
  if (this.acknowledged) throw new Error('Cannot defer an already responded interaction.');
53
55
  if (this.type !== InteractionTypes.MessageComponent && this.type !== InteractionTypes.ModalSubmit) throw new Error("Cannot defer to then edit an interaction that isn't a MessageComponent or ModalSubmit interaction.");
54
- this.acknowledged = true;
55
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
56
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
56
57
  type: InteractionResponseTypes.DeferredUpdateMessage
57
58
  }, options);
59
+ this.acknowledged = true;
60
+ return result;
58
61
  },
59
62
  async defer (isPrivate, options) {
60
63
  if (this.acknowledged) throw new Error('Cannot defer an already responded interaction.');
61
- this.acknowledged = true;
62
- return await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
64
+ const result = await this.bot.helpers.sendInteractionResponse(this.id, this.token, {
63
65
  type: InteractionResponseTypes.DeferredChannelMessageWithSource,
64
66
  data: {
65
67
  flags: isPrivate ? MessageFlags.Ephemeral : undefined
66
68
  }
67
69
  }, options);
70
+ this.acknowledged = true;
71
+ return result;
68
72
  },
69
73
  async delete (messageId) {
70
74
  if (this.type === InteractionTypes.ApplicationCommandAutocomplete) throw new Error('Cannot delete an autocomplete interaction');
@@ -243,4 +247,4 @@ export function transformInteractionResource(bot, payload) {
243
247
  return bot.transformers.customizers.interactionResource(bot, payload.interactionResource, resource);
244
248
  }
245
249
 
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy5pZCwgdGhpcy50b2tlbiwgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LCB7IHdpdGhSZXNwb25zZTogb3B0aW9ucz8ud2l0aFJlc3BvbnNlIH0pXG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbiwgcmVzcG9uc2UpXG4gIH0sXG4gIGFzeW5jIGRlZmVyRWRpdChvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMudHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlcy5BcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGVkaXQgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uLicpXG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgaWYgKHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5NZXNzYWdlQ29tcG9uZW50ICYmIHRoaXMudHlwZSAhPT0gSW50ZXJhY3Rpb25UeXBlcy5Nb2RhbFN1Ym1pdClcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkNhbm5vdCBkZWZlciB0byB0aGVuIGVkaXQgYW4gaW50ZXJhY3Rpb24gdGhhdCBpc24ndCBhIE1lc3NhZ2VDb21wb25lbnQgb3IgTW9kYWxTdWJtaXQgaW50ZXJhY3Rpb24uXCIpXG5cbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLmlkLCB0aGlzLnRva2VuLCB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZFVwZGF0ZU1lc3NhZ2UgfSwgb3B0aW9ucylcbiAgfSxcbiAgYXN5bmMgZGVmZXIoaXNQcml2YXRlLCBvcHRpb25zKSB7XG4gICAgaWYgKHRoaXMuYWNrbm93bGVkZ2VkKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWZlciBhbiBhbHJlYWR5IHJlc3BvbmRlZCBpbnRlcmFjdGlvbi4nKVxuXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHtcbiAgICAgICAgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmxhZ3M6IGlzUHJpdmF0ZSA/IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwgOiB1bmRlZmluZWQsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gIH0sXG4gIGFzeW5jIGRlbGV0ZShtZXNzYWdlSWQpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZGVsZXRlIGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbicpXG5cbiAgICBpZiAobWVzc2FnZUlkKSByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRoaXMudG9rZW4sIG1lc3NhZ2VJZClcbiAgICBlbHNlIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodGhpcy50b2tlbilcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb247IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb24ge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGRfaWQpIDogdW5kZWZpbmVkXG4gIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcj8udXNlciA/PyBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIhKVxuXG4gIGNvbnN0IGludGVyYWN0aW9uOiBJbnRlcmFjdGlvbiA9IE9iamVjdC5jcmVhdGUoYmFzZUludGVyYWN0aW9uKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggdGhpcywgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGlzIGEgQm90XG4gIGludGVyYWN0aW9uLmJvdCA9IGJvdCBhcyB1bmtub3duIGFzIEJvdFxuICBpbnRlcmFjdGlvbi5hY2tub3dsZWRnZWQgPSBmYWxzZVxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmlkKSBpbnRlcmFjdGlvbi5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gICAgaW50ZXJhY3Rpb24uYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZSkgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICBpZiAocHJvcHMudG9rZW4gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50b2tlbikgaW50ZXJhY3Rpb24udG9rZW4gPSBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuXG4gIGlmIChwcm9wcy52ZXJzaW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvbikgaW50ZXJhY3Rpb24udmVyc2lvbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udmVyc2lvblxuICBpZiAocHJvcHMubG9jYWxlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlKSBpbnRlcmFjdGlvbi5sb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmxvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGRMb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGUpIGludGVyYWN0aW9uLmd1aWxkTG9jYWxlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9sb2NhbGVcbiAgaWYgKHByb3BzLmd1aWxkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkIGlzIGEgUGFydGlhbDxEaXNjb3JkR3VpbGQ+XG4gICAgaW50ZXJhY3Rpb24uZ3VpbGQgPSBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIGludGVyYWN0aW9uLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHVzZXIpIGludGVyYWN0aW9uLnVzZXIgPSB1c2VyXG4gIGlmIChwcm9wcy5hcHBQZXJtaXNzaW9ucyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmFwcF9wZXJtaXNzaW9ucylcbiAgICBpbnRlcmFjdGlvbi5hcHBQZXJtaXNzaW9ucyA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UpXG4gICAgaW50ZXJhY3Rpb24ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG4gIGlmIChwcm9wcy5jaGFubmVsICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbClcbiAgICBpbnRlcmFjdGlvbi5jaGFubmVsID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWwgYXMgRGlzY29yZENoYW5uZWwsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmNoYW5uZWxfaWQpIGludGVyYWN0aW9uLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKVxuICAgIGludGVyYWN0aW9uLm1lbWJlciA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIsIGd1aWxkSWQsIHVzZXIuaWQpXG4gIGlmIChwcm9wcy5lbnRpdGxlbWVudHMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMpXG4gICAgaW50ZXJhY3Rpb24uZW50aXRsZW1lbnRzID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMubWFwKChlKSA9PiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgZSkpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzKSB7XG4gICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG5cbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIGludGVyYWN0aW9uLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5jb250ZXh0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dCkgaW50ZXJhY3Rpb24uY29udGV4dCA9IHBheWxvYWQuaW50ZXJhY3Rpb24uY29udGV4dFxuICBpZiAocHJvcHMuYXR0YWNobWVudFNpemVMaW1pdCAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdClcbiAgICBpbnRlcmFjdGlvbi5hdHRhY2htZW50U2l6ZUxpbWl0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5hdHRhY2htZW50X3NpemVfbGltaXRcbiAgaWYgKHByb3BzLmRhdGEgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhKSB7XG4gICAgaW50ZXJhY3Rpb24uZGF0YSA9IHtcbiAgICAgIHR5cGU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50eXBlLFxuICAgICAgY29tcG9uZW50VHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmNvbXBvbmVudF90eXBlLFxuICAgICAgY3VzdG9tSWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jdXN0b21faWQsXG4gICAgICBjb21wb25lbnRzOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50cz8ubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSksXG4gICAgICB2YWx1ZXM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS52YWx1ZXMsXG4gICAgICBpZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmlkKSA6IHVuZGVmaW5lZCxcbiAgICAgIG5hbWU6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5uYW1lLFxuICAgICAgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZFxuICAgICAgICA/IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCB7IHJlc29sdmVkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEucmVzb2x2ZWQsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCwgZ3VpbGRJZCB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG9wdGlvbnM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5vcHRpb25zPy5tYXAoKG9wdCkgPT4gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0KSksXG4gICAgICB0YXJnZXRJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS50YXJnZXRfaWQpIDogdW5kZWZpbmVkLFxuICAgIH1cbiAgfVxuXG4gIC8vIFR5cGVzY3JpcHQgaGFzIGFuIGhhcmQgdGltZSB3aXRoIGludGVyYWN0aW9uLmJvdCwgc28gd2UgbmVlZCB0byB0ZWxsIGhpbSBmb3Igc3VyZSB0aGlzIGludGVyYWN0aW9uIGlzIHRoZSBvZiB0aGUgY29ycmVjdCB0eXBlXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uKGJvdCwgcGF5bG9hZCwgaW50ZXJhY3Rpb24gYXMgdW5rbm93biBhcyB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbilcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbihib3Q6IEJvdCwgb3B0aW9uOiBEaXNjb3JkSW50ZXJhY3Rpb25EYXRhT3B0aW9uKTogSW50ZXJhY3Rpb25EYXRhT3B0aW9uIHtcbiAgY29uc3Qgb3B0ID0ge1xuICAgIG5hbWU6IG9wdGlvbi5uYW1lLFxuICAgIHR5cGU6IG9wdGlvbi50eXBlLFxuICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgb3B0aW9uczogb3B0aW9uLm9wdGlvbnMsXG4gICAgZm9jdXNlZDogb3B0aW9uLmZvY3VzZWQsXG4gIH0gYXMgSW50ZXJhY3Rpb25EYXRhT3B0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyhib3QsIG9wdGlvbiwgb3B0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgcmVzb2x2ZWQ6IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZDsgc2hhcmRJZDogbnVtYmVyOyBndWlsZElkPzogYmlnaW50IH0sXG4pOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCB7XG4gIGNvbnN0IHRyYW5zZm9ybWVkOiBJbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCA9IHt9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQubWVzc2FnZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZXNzYWdlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogdmFsdWUsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuICAgICAgICByZXR1cm4gW21lc3NhZ2UuaWQsIG1lc3NhZ2VdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC51c2Vycykge1xuICAgIHRyYW5zZm9ybWVkLnVzZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLnVzZXJzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCB1c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgdmFsdWUpXG4gICAgICAgIHJldHVybiBbdXNlci5pZCwgdXNlcl1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLmd1aWxkSWQgJiYgcGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5tZW1iZXJzKS5tYXAoKFtpZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCB2YWx1ZSwgcGF5bG9hZC5ndWlsZElkISwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICAgICAgICByZXR1cm4gW21lbWJlci5pZCwgbWVtYmVyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLnJvbGVzKSB7XG4gICAgdHJhbnNmb3JtZWQucm9sZXMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQucm9sZXMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHJvbGUgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGU6IHZhbHVlLCBndWlsZElkOiBwYXlsb2FkLmd1aWxkSWQhIH0pXG4gICAgICAgIHJldHVybiBbcm9sZS5pZCwgcm9sZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmNoYW5uZWxzKSB7XG4gICAgdHJhbnNmb3JtZWQuY2hhbm5lbHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHZhbHVlIH0pIGFzIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsXG4gICAgICAgIHJldHVybiBbY2hhbm5lbC5pZCwgY2hhbm5lbF1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLmF0dGFjaG1lbnRzKSB7XG4gICAgdHJhbnNmb3JtZWQuYXR0YWNobWVudHMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IGlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoa2V5KVxuICAgICAgICByZXR1cm4gW2lkLCBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCB2YWx1ZSldXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQsIHRyYW5zZm9ybWVkKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZTsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG4gIGNvbnN0IHJlc3BvbnNlID0ge30gYXMgSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlXG5cbiAgaWYgKHByb3BzLmludGVyYWN0aW9uICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLmludGVyYWN0aW9uKVxuICAgIHJlc3BvbnNlLmludGVyYWN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gIGlmIChwcm9wcy5yZXNvdXJjZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5yZXNvdXJjZSlcbiAgICByZXNwb25zZS5yZXNvdXJjZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25SZXNvdXJjZShib3QsIHtcbiAgICAgIGludGVyYWN0aW9uUmVzb3VyY2U6IHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlLFxuICAgICAgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLFxuICAgIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIHJlc3BvbnNlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayhcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZEludGVyYWN0aW9uQ2FsbGJhY2ssXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbkNhbGxiYWNrIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludGVyYWN0aW9uQ2FsbGJhY2tcbiAgY29uc3QgY2FsbGJhY2sgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNhbGxiYWNrLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjYWxsYmFjay50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlSWQgJiYgcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZCkgY2FsbGJhY2suYWN0aXZpdHlJbnN0YW5jZUlkID0gcGF5bG9hZC5hY3Rpdml0eV9pbnN0YW5jZV9pZFxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9sb2FkaW5nKSBjYWxsYmFjay5yZXNwb25zZU1lc3NhZ2VMb2FkaW5nID0gcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmdcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrKGJvdCwgcGF5bG9hZCwgY2FsbGJhY2spXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IGludGVyYWN0aW9uUmVzb3VyY2U6IERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uUmVzb3VyY2Uge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25SZXNvdXJjZVxuICBjb25zdCByZXNvdXJjZSA9IHt9IGFzIEludGVyYWN0aW9uUmVzb3VyY2VcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UudHlwZSkgcmVzb3VyY2UudHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlXG4gIGlmIChwcm9wcy5hY3Rpdml0eUluc3RhbmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5hY3Rpdml0eV9pbnN0YW5jZSlcbiAgICByZXNvdXJjZS5hY3Rpdml0eUluc3RhbmNlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlKVxuICAgIHJlc291cmNlLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS5tZXNzYWdlLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLCByZXNvdXJjZSlcbn1cbiJdLCJuYW1lcyI6WyJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMiLCJJbnRlcmFjdGlvblR5cGVzIiwiTWVzc2FnZUZsYWdzIiwiQ29sbGVjdGlvbiIsImJhc2VJbnRlcmFjdGlvbiIsInVuZGVmaW5lZCIsInJlc3BvbmQiLCJyZXNwb25zZSIsIm9wdGlvbnMiLCJ0eXBlIiwiQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlIiwiY29udGVudCIsInRpdGxlIiwiTW9kYWwiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGUiLCJBcHBsaWNhdGlvbkNvbW1hbmRBdXRvY29tcGxldGVSZXN1bHQiLCJpc1ByaXZhdGUiLCJmbGFncyIsIkVwaGVtZXJhbCIsImFja25vd2xlZGdlZCIsImJvdCIsImhlbHBlcnMiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwidG9rZW4iLCJNb2RhbFN1Ym1pdCIsIkVycm9yIiwic2VuZEludGVyYWN0aW9uUmVzcG9uc2UiLCJpZCIsImRhdGEiLCJ3aXRoUmVzcG9uc2UiLCJlZGl0IiwibWVzc2FnZUlkIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsIk1lc3NhZ2VDb21wb25lbnQiLCJVcGRhdGVNZXNzYWdlIiwiZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlZmVyRWRpdCIsIkRlZmVycmVkVXBkYXRlTWVzc2FnZSIsImRlZmVyIiwiRGVmZXJyZWRDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJkZWxldGUiLCJkZWxldGVGb2xsb3d1cE1lc3NhZ2UiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbiIsInBheWxvYWQiLCJndWlsZElkIiwiaW50ZXJhY3Rpb24iLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXIiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidmVyc2lvbiIsImxvY2FsZSIsImd1aWxkTG9jYWxlIiwiZ3VpbGRfbG9jYWxlIiwiZ3VpbGQiLCJzaGFyZElkIiwiYXBwUGVybWlzc2lvbnMiLCJhcHBfcGVybWlzc2lvbnMiLCJtZXNzYWdlIiwiY2hhbm5lbCIsImNoYW5uZWxJZCIsImNoYW5uZWxfaWQiLCJlbnRpdGxlbWVudHMiLCJtYXAiLCJlIiwiZW50aXRsZW1lbnQiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJjb250ZXh0IiwiYXR0YWNobWVudFNpemVMaW1pdCIsImF0dGFjaG1lbnRfc2l6ZV9saW1pdCIsImNvbXBvbmVudFR5cGUiLCJjb21wb25lbnRfdHlwZSIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwiY29tcG9uZW50cyIsImNvbXBvbmVudCIsInZhbHVlcyIsIm5hbWUiLCJyZXNvbHZlZCIsImludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwib3B0IiwiaW50ZXJhY3Rpb25EYXRhT3B0aW9ucyIsInRhcmdldElkIiwidGFyZ2V0X2lkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFPcHRpb24iLCJvcHRpb24iLCJ2YWx1ZSIsImZvY3VzZWQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsInRyYW5zZm9ybWVkIiwibWVzc2FnZXMiLCJlbnRyaWVzIiwiX2lkIiwidXNlcnMiLCJtZW1iZXJzIiwicm9sZXMiLCJyb2xlIiwiY2hhbm5lbHMiLCJhdHRhY2htZW50cyIsImtleSIsImF0dGFjaG1lbnQiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UiLCJpbnRlcmFjdGlvbkNhbGxiYWNrIiwicmVzb3VyY2UiLCJpbnRlcmFjdGlvblJlc291cmNlIiwidHJhbnNmb3JtSW50ZXJhY3Rpb25DYWxsYmFjayIsImNhbGxiYWNrIiwiYWN0aXZpdHlJbnN0YW5jZUlkIiwiYWN0aXZpdHlfaW5zdGFuY2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VJZCIsInJlc3BvbnNlX21lc3NhZ2VfaWQiLCJyZXNwb25zZU1lc3NhZ2VFcGhlbWVyYWwiLCJyZXNwb25zZV9tZXNzYWdlX2VwaGVtZXJhbCIsInJlc3BvbnNlTWVzc2FnZUxvYWRpbmciLCJyZXNwb25zZV9tZXNzYWdlX2xvYWRpbmciLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvblJlc291cmNlIiwiYWN0aXZpdHlJbnN0YW5jZSIsImFjdGl2aXR5X2luc3RhbmNlIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUNFQSxpQ0FBaUMsRUFPakNDLHdCQUF3QixFQUN4QkMsZ0JBQWdCLEVBQ2hCQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLFVBQVUsUUFBUSxvQkFBbUI7QUFnQjlDLE9BQU8sTUFBTUMsa0JBQWdGO0lBQzNGLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsTUFBTUMsU0FBUUMsUUFBUSxFQUFFQyxPQUFPO1FBQzdCLElBQUlDLE9BQU9ULHlCQUF5QlUsd0JBQXdCO1FBRTVELDREQUE0RDtRQUM1RCxJQUFJLE9BQU9ILGFBQWEsVUFBVUEsV0FBVztZQUFFSSxTQUFTSjtRQUFT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
250
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW50ZXJhY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbixcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbiAgdHlwZSBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24sXG4gIHR5cGUgRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkLFxuICB0eXBlIERpc2NvcmRJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMsXG4gIEludGVyYWN0aW9uVHlwZXMsXG4gIE1lc3NhZ2VGbGFncyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7XG4gIEJvdCxcbiAgRGlzY29yZENoYW5uZWwsXG4gIEludGVyYWN0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludGVyYWN0aW9uRGF0YU9wdGlvbixcbiAgSW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQsXG4gIEludGVyYWN0aW9uUmVzb2x2ZWRDaGFubmVsLFxuICBJbnRlcmFjdGlvblJlc291cmNlLFxuICBJbnRlcm5hbEJvdCxcbiAgTWVtYmVyLFxuICBNZXNzYWdlLFxufSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VJbnRlcmFjdGlvbjogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydpbnRlcmFjdGlvbiddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnaW50ZXJhY3Rpb24nXSksXG5cbiAgYXN5bmMgcmVzcG9uZChyZXNwb25zZSwgb3B0aW9ucykge1xuICAgIGxldCB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkNoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICAvLyBJZiB1c2VyIHByb3ZpZGVzIGFuIG9iamVjdCwgZGV0ZXJtaW5lIGlmIGl0IHNob3VsZCBiZSBhbiBhdXRvY29tcGxldGUgb3IgYSBtb2RhbCByZXNwb25zZVxuICAgIGlmIChyZXNwb25zZS50aXRsZSkgdHlwZSA9IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5Nb2RhbFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0eXBlID0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdFxuICAgIGlmICh0eXBlID09PSBJbnRlcmFjdGlvblJlc3BvbnNlVHlwZXMuQ2hhbm5lbE1lc3NhZ2VXaXRoU291cmNlICYmIG9wdGlvbnM/LmlzUHJpdmF0ZSkge1xuICAgICAgcmVzcG9uc2UuZmxhZ3MgPz89IDBcbiAgICAgIHJlc3BvbnNlLmZsYWdzIHw9IE1lc3NhZ2VGbGFncy5FcGhlbWVyYWxcbiAgICB9XG5cbiAgICAvLyBTaW5jZSB0aGlzIGhhcyBhbHJlYWR5IGJlZW4gZ2l2ZW4gYSByZXNwb25zZSwgYW55IGZ1cnRoZXIgcmVzcG9uc2VzIG11c3QgYmUgZm9sbG93dXBzLlxuICAgIGlmICh0aGlzLmFja25vd2xlZGdlZCkgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCByZXNwb25zZSlcblxuICAgIC8vIE1vZGFscyBjYW5ub3QgYmUgY2hhaW5lZFxuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQgJiYgdHlwZSA9PT0gSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLk1vZGFsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgcmVzcG9uZCB0byBhIG1vZGFsIGludGVyYWN0aW9uIHdpdGggYW5vdGhlciBtb2RhbC4nKVxuXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5ib3QuaGVscGVycy5zZW5kSW50ZXJhY3Rpb25SZXNwb25zZShcbiAgICAgIHRoaXMuaWQsXG4gICAgICB0aGlzLnRva2VuLFxuICAgICAgeyB0eXBlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgeyB3aXRoUmVzcG9uc2U6IG9wdGlvbnM/LndpdGhSZXNwb25zZSB9LFxuICAgIClcbiAgICB0aGlzLmFja25vd2xlZGdlZCA9IHRydWVcbiAgICByZXR1cm4gcmVzdWx0XG4gIH0sXG4gIGFzeW5jIGVkaXQocmVzcG9uc2UsIG1lc3NhZ2VJZCwgb3B0aW9ucykge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBlZGl0IGFuIGF1dG9jb21wbGV0ZSBpbnRlcmFjdGlvbi4nKVxuXG4gICAgLy8gSWYgdXNlciBwcm92aWRlcyBhIHN0cmluZywgY2hhbmdlIGl0IHRvIGEgcmVzcG9uc2Ugb2JqZWN0XG4gICAgaWYgKHR5cGVvZiByZXNwb25zZSA9PT0gJ3N0cmluZycpIHJlc3BvbnNlID0geyBjb250ZW50OiByZXNwb25zZSB9XG5cbiAgICBpZiAobWVzc2FnZUlkKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5ib3Q/LmhlbHBlcnMuZWRpdEZvbGxvd3VwTWVzc2FnZSh0aGlzLnRva2VuLCBtZXNzYWdlSWQsIHJlc3BvbnNlKVxuICAgIH1cblxuICAgIGlmICghdGhpcy5hY2tub3dsZWRnZWQpIHtcbiAgICAgIGlmICh0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTWVzc2FnZUNvbXBvbmVudCAmJiB0aGlzLnR5cGUgIT09IEludGVyYWN0aW9uVHlwZXMuTW9kYWxTdWJtaXQpXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcIlRoaXMgaW50ZXJhY3Rpb24gaGFzIG5vdCBiZWVuIHJlc3BvbmRlZCB0byB5ZXQgYW5kIHRoaXMgaXNuJ3QgYSBNZXNzYWdlQ29tcG9uZW50IG9yIE1vZGFsU3VibWl0IGludGVyYWN0aW9uLlwiKVxuXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgICB0aGlzLmlkLFxuICAgICAgICB0aGlzLnRva2VuLFxuICAgICAgICB7IHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5VcGRhdGVNZXNzYWdlLCBkYXRhOiByZXNwb25zZSB9LFxuICAgICAgICBvcHRpb25zLFxuICAgICAgKVxuICAgICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgfVxuXG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuLCByZXNwb25zZSlcbiAgfSxcbiAgYXN5bmMgZGVmZXJFZGl0KG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBJbnRlcmFjdGlvblR5cGVzLkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSkgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgZWRpdCBhbiBhdXRvY29tcGxldGUgaW50ZXJhY3Rpb24uJylcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBpZiAodGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1lc3NhZ2VDb21wb25lbnQgJiYgdGhpcy50eXBlICE9PSBJbnRlcmFjdGlvblR5cGVzLk1vZGFsU3VibWl0KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiQ2Fubm90IGRlZmVyIHRvIHRoZW4gZWRpdCBhbiBpbnRlcmFjdGlvbiB0aGF0IGlzbid0IGEgTWVzc2FnZUNvbXBvbmVudCBvciBNb2RhbFN1Ym1pdCBpbnRlcmFjdGlvbi5cIilcblxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuYm90LmhlbHBlcnMuc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoXG4gICAgICB0aGlzLmlkLFxuICAgICAgdGhpcy50b2tlbixcbiAgICAgIHsgdHlwZTogSW50ZXJhY3Rpb25SZXNwb25zZVR5cGVzLkRlZmVycmVkVXBkYXRlTWVzc2FnZSB9LFxuICAgICAgb3B0aW9ucyxcbiAgICApXG4gICAgdGhpcy5hY2tub3dsZWRnZWQgPSB0cnVlXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9LFxuICBhc3luYyBkZWZlcihpc1ByaXZhdGUsIG9wdGlvbnMpIHtcbiAgICBpZiAodGhpcy5hY2tub3dsZWRnZWQpIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGRlZmVyIGFuIGFscmVhZHkgcmVzcG9uZGVkIGludGVyYWN0aW9uLicpXG5cbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmJvdC5oZWxwZXJzLnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMudG9rZW4sXG4gICAgICB7XG4gICAgICAgIHR5cGU6IEludGVyYWN0aW9uUmVzcG9uc2VUeXBlcy5EZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZsYWdzOiBpc1ByaXZhdGUgPyBNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIG9wdGlvbnMsXG4gICAgKVxuICAgIHRoaXMuYWNrbm93bGVkZ2VkID0gdHJ1ZVxuICAgIHJldHVybiByZXN1bHRcbiAgfSxcbiAgYXN5bmMgZGVsZXRlKG1lc3NhZ2VJZCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IEludGVyYWN0aW9uVHlwZXMuQXBwbGljYXRpb25Db21tYW5kQXV0b2NvbXBsZXRlKSB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBkZWxldGUgYW4gYXV0b2NvbXBsZXRlIGludGVyYWN0aW9uJylcblxuICAgIGlmIChtZXNzYWdlSWQpIHJldHVybiBhd2FpdCB0aGlzLmJvdD8uaGVscGVycy5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodGhpcy50b2tlbiwgbWVzc2FnZUlkKVxuICAgIGVsc2UgcmV0dXJuIGF3YWl0IHRoaXMuYm90Py5oZWxwZXJzLmRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSh0aGlzLnRva2VuKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb24oXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb246IERpc2NvcmRJbnRlcmFjdGlvbjsgc2hhcmRJZDogbnVtYmVyIH0sXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5pbnRlcmFjdGlvbiB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyPy51c2VyID8/IHBheWxvYWQuaW50ZXJhY3Rpb24udXNlciEpXG5cbiAgY29uc3QgaW50ZXJhY3Rpb246IEludGVyYWN0aW9uID0gT2JqZWN0LmNyZWF0ZShiYXNlSW50ZXJhY3Rpb24pXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblxuICAvLyBUeXBlc2NyaXB0IGhhcyBhbiBoYXJkIHRpbWUgd2l0aCB0aGlzLCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaXMgYSBCb3RcbiAgaW50ZXJhY3Rpb24uYm90ID0gYm90IGFzIHVua25vd24gYXMgQm90XG4gIGludGVyYWN0aW9uLmFja25vd2xlZGdlZCA9IGZhbHNlXG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uaWQpIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgICBpbnRlcmFjdGlvbi5hcHBsaWNhdGlvbklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBsaWNhdGlvbl9pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlKSBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gIGlmIChwcm9wcy50b2tlbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uLnRva2VuKSBpbnRlcmFjdGlvbi50b2tlbiA9IHBheWxvYWQuaW50ZXJhY3Rpb24udG9rZW5cbiAgaWYgKHByb3BzLnZlcnNpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uKSBpbnRlcmFjdGlvbi52ZXJzaW9uID0gcGF5bG9hZC5pbnRlcmFjdGlvbi52ZXJzaW9uXG4gIGlmIChwcm9wcy5sb2NhbGUgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5sb2NhbGUpIGludGVyYWN0aW9uLmxvY2FsZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubG9jYWxlXG4gIGlmIChwcm9wcy5ndWlsZExvY2FsZSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZSkgaW50ZXJhY3Rpb24uZ3VpbGRMb2NhbGUgPSBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkX2xvY2FsZVxuICBpZiAocHJvcHMuZ3VpbGQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5ndWlsZClcbiAgICAvLyBAdHMtZXhwZWN0LWVycm9yIHBheWxvYWQuaW50ZXJhY3Rpb24uZ3VpbGQgaXMgYSBQYXJ0aWFsPERpc2NvcmRHdWlsZD5cbiAgICBpbnRlcmFjdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBwYXlsb2FkLmludGVyYWN0aW9uLmd1aWxkLCBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgaW50ZXJhY3Rpb24uZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLnVzZXIgJiYgdXNlcikgaW50ZXJhY3Rpb24udXNlciA9IHVzZXJcbiAgaWYgKHByb3BzLmFwcFBlcm1pc3Npb25zICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXBwX3Blcm1pc3Npb25zKVxuICAgIGludGVyYWN0aW9uLmFwcFBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5hcHBfcGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5tZXNzYWdlICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVzc2FnZSlcbiAgICBpbnRlcmFjdGlvbi5tZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBwYXlsb2FkLmludGVyYWN0aW9uLm1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgaWYgKHByb3BzLmNoYW5uZWwgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsKVxuICAgIGludGVyYWN0aW9uLmNoYW5uZWwgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbCBhcyBEaXNjb3JkQ2hhbm5lbCwgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uY2hhbm5lbF9pZCkgaW50ZXJhY3Rpb24uY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5tZW1iZXIpXG4gICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgdXNlci5pZClcbiAgaWYgKHByb3BzLmVudGl0bGVtZW50cyAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cylcbiAgICBpbnRlcmFjdGlvbi5lbnRpdGxlbWVudHMgPSBwYXlsb2FkLmludGVyYWN0aW9uLmVudGl0bGVtZW50cy5tYXAoKGUpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBlKSlcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMpIHtcbiAgICBpbnRlcmFjdGlvbi5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cblxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuR3VpbGRJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMCddLFxuICAgICAgKVxuICAgIGlmIChwYXlsb2FkLmludGVyYWN0aW9uLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddKVxuICAgICAgaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyc1tEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuaW50ZXJhY3Rpb24uYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10sXG4gICAgICApXG4gIH1cbiAgaWYgKHByb3BzLmNvbnRleHQgJiYgcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0KSBpbnRlcmFjdGlvbi5jb250ZXh0ID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5jb250ZXh0XG4gIGlmIChwcm9wcy5hdHRhY2htZW50U2l6ZUxpbWl0ICYmIHBheWxvYWQuaW50ZXJhY3Rpb24uYXR0YWNobWVudF9zaXplX2xpbWl0KVxuICAgIGludGVyYWN0aW9uLmF0dGFjaG1lbnRTaXplTGltaXQgPSBwYXlsb2FkLmludGVyYWN0aW9uLmF0dGFjaG1lbnRfc2l6ZV9saW1pdFxuICBpZiAocHJvcHMuZGF0YSAmJiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEpIHtcbiAgICBpbnRlcmFjdGlvbi5kYXRhID0ge1xuICAgICAgdHlwZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnR5cGUsXG4gICAgICBjb21wb25lbnRUeXBlOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuY29tcG9uZW50X3R5cGUsXG4gICAgICBjdXN0b21JZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLmN1c3RvbV9pZCxcbiAgICAgIGNvbXBvbmVudHM6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5jb21wb25lbnRzPy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKSxcbiAgICAgIHZhbHVlczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnZhbHVlcyxcbiAgICAgIGlkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEuaWQpIDogdW5kZWZpbmVkLFxuICAgICAgbmFtZTogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm5hbWUsXG4gICAgICByZXNvbHZlZDogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnJlc29sdmVkXG4gICAgICAgID8gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHsgcmVzb2x2ZWQ6IHBheWxvYWQuaW50ZXJhY3Rpb24uZGF0YS5yZXNvbHZlZCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkLCBndWlsZElkIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgb3B0aW9uczogcGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLm9wdGlvbnM/Lm1hcCgob3B0KSA9PiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YU9wdGlvbnMoYm90LCBvcHQpKSxcbiAgICAgIHRhcmdldElkOiBwYXlsb2FkLmludGVyYWN0aW9uLmRhdGEudGFyZ2V0X2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5kYXRhLnRhcmdldF9pZCkgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9XG5cbiAgLy8gVHlwZXNjcmlwdCBoYXMgYW4gaGFyZCB0aW1lIHdpdGggaW50ZXJhY3Rpb24uYm90LCBzbyB3ZSBuZWVkIHRvIHRlbGwgaGltIGZvciBzdXJlIHRoaXMgaW50ZXJhY3Rpb24gaXMgdGhlIG9mIHRoZSBjb3JyZWN0IHR5cGVcbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW50ZXJhY3Rpb24oYm90LCBwYXlsb2FkLCBpbnRlcmFjdGlvbiBhcyB1bmtub3duIGFzIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtSW50ZXJhY3Rpb25EYXRhT3B0aW9uKGJvdDogQm90LCBvcHRpb246IERpc2NvcmRJbnRlcmFjdGlvbkRhdGFPcHRpb24pOiBJbnRlcmFjdGlvbkRhdGFPcHRpb24ge1xuICBjb25zdCBvcHQgPSB7XG4gICAgbmFtZTogb3B0aW9uLm5hbWUsXG4gICAgdHlwZTogb3B0aW9uLnR5cGUsXG4gICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICBvcHRpb25zOiBvcHRpb24ub3B0aW9ucyxcbiAgICBmb2N1c2VkOiBvcHRpb24uZm9jdXNlZCxcbiAgfSBhcyBJbnRlcmFjdGlvbkRhdGFPcHRpb25cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkRhdGFPcHRpb25zKGJvdCwgb3B0aW9uLCBvcHQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyByZXNvbHZlZDogRGlzY29yZEludGVyYWN0aW9uRGF0YVJlc29sdmVkOyBzaGFyZElkOiBudW1iZXI7IGd1aWxkSWQ/OiBiaWdpbnQgfSxcbik6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkIHtcbiAgY29uc3QgdHJhbnNmb3JtZWQ6IEludGVyYWN0aW9uRGF0YVJlc29sdmVkID0ge31cblxuICBpZiAocGF5bG9hZC5yZXNvbHZlZC5tZXNzYWdlcykge1xuICAgIHRyYW5zZm9ybWVkLm1lc3NhZ2VzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lc3NhZ2VzKS5tYXAoKFtfaWQsIHZhbHVlXSkgPT4ge1xuICAgICAgICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiB2YWx1ZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gICAgICAgIHJldHVybiBbbWVzc2FnZS5pZCwgbWVzc2FnZV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIGlmIChwYXlsb2FkLnJlc29sdmVkLnVzZXJzKSB7XG4gICAgdHJhbnNmb3JtZWQudXNlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIE9iamVjdC5lbnRyaWVzKHBheWxvYWQucmVzb2x2ZWQudXNlcnMpLm1hcCgoW19pZCwgdmFsdWVdKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB2YWx1ZSlcbiAgICAgICAgcmV0dXJuIFt1c2VyLmlkLCB1c2VyXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQuZ3VpbGRJZCAmJiBwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpIHtcbiAgICB0cmFuc2Zvcm1lZC5tZW1iZXJzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBPYmplY3QuZW50cmllcyhwYXlsb2FkLnJlc29sdmVkLm1lbWJlcnMpLm1hcCgoW2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgbWVtYmVyOiBNZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHZhbHVlLCBwYXlsb2FkLmd1aWxkSWQhLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gICAgICAgIHJldHVybiBbbWVtYmVyLmlkLCBtZW1iZXJdXG4gICAgICB9KSxcbiAgICApXG4gIH1cblxuICBpZiAocGF5bG9hZC5ndWlsZElkICYmIHBheWxvYWQucmVzb2x2ZWQucm9sZXMpIHtcbiAgICB0cmFuc2Zvcm1lZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5yb2xlcykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3Qgcm9sZSA9IGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogdmFsdWUsIGd1aWxkSWQ6IHBheWxvYWQuZ3VpbGRJZCEgfSlcbiAgICAgICAgcmV0dXJuIFtyb2xlLmlkLCByb2xlXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuY2hhbm5lbHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5jaGFubmVscykubWFwKChbX2lkLCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgY2hhbm5lbCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogdmFsdWUgfSkgYXMgSW50ZXJhY3Rpb25SZXNvbHZlZENoYW5uZWxcbiAgICAgICAgcmV0dXJuIFtjaGFubmVsLmlkLCBjaGFubmVsXVxuICAgICAgfSksXG4gICAgKVxuICB9XG5cbiAgaWYgKHBheWxvYWQucmVzb2x2ZWQuYXR0YWNobWVudHMpIHtcbiAgICB0cmFuc2Zvcm1lZC5hdHRhY2htZW50cyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgT2JqZWN0LmVudHJpZXMocGF5bG9hZC5yZXNvbHZlZC5hdHRhY2htZW50cykubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgY29uc3QgaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShrZXkpXG4gICAgICAgIHJldHVybiBbaWQsIGJvdC50cmFuc2Zvcm1lcnMuYXR0YWNobWVudChib3QsIHZhbHVlKV1cbiAgICAgIH0pLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZCwgdHJhbnNmb3JtZWQpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcbiAgY29uc3QgcmVzcG9uc2UgPSB7fSBhcyBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2VcblxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UuaW50ZXJhY3Rpb24pXG4gICAgcmVzcG9uc2UuaW50ZXJhY3Rpb24gPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZS5pbnRlcmFjdGlvbilcbiAgaWYgKHByb3BzLnJlc291cmNlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlLnJlc291cmNlKVxuICAgIHJlc3BvbnNlLnJlc291cmNlID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvblJlc291cmNlKGJvdCwge1xuICAgICAgaW50ZXJhY3Rpb25SZXNvdXJjZTogcGF5bG9hZC5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UucmVzb3VyY2UsXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5pbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSwgcmVzcG9uc2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkSW50ZXJhY3Rpb25DYWxsYmFjayxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmludGVyYWN0aW9uQ2FsbGJhY2sge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW50ZXJhY3Rpb25DYWxsYmFja1xuICBjb25zdCBjYWxsYmFjayA9IHt9IGFzIEludGVyYWN0aW9uQ2FsbGJhY2tcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2FsbGJhY2suaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNhbGxiYWNrLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2VJZCAmJiBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkKSBjYWxsYmFjay5hY3Rpdml0eUluc3RhbmNlSWQgPSBwYXlsb2FkLmFjdGl2aXR5X2luc3RhbmNlX2lkXG4gIGlmIChwcm9wcy5yZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfaWQpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMucmVzcG9uc2VNZXNzYWdlRXBoZW1lcmFsICYmIHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWwpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCA9IHBheWxvYWQucmVzcG9uc2VfbWVzc2FnZV9lcGhlbWVyYWxcbiAgaWYgKHByb3BzLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgJiYgcGF5bG9hZC5yZXNwb25zZV9tZXNzYWdlX2xvYWRpbmcpIGNhbGxiYWNrLnJlc3BvbnNlTWVzc2FnZUxvYWRpbmcgPSBwYXlsb2FkLnJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZ1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uQ2FsbGJhY2soYm90LCBwYXlsb2FkLCBjYWxsYmFjaylcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgaW50ZXJhY3Rpb25SZXNvdXJjZTogRGlzY29yZEludGVyYWN0aW9uUmVzb3VyY2U7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW50ZXJhY3Rpb25SZXNvdXJjZSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5pbnRlcmFjdGlvblJlc291cmNlXG4gIGNvbnN0IHJlc291cmNlID0ge30gYXMgSW50ZXJhY3Rpb25SZXNvdXJjZVxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQuaW50ZXJhY3Rpb25SZXNvdXJjZS50eXBlKSByZXNvdXJjZS50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLnR5cGVcbiAgaWYgKHByb3BzLmFjdGl2aXR5SW5zdGFuY2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLmFjdGl2aXR5X2luc3RhbmNlKVxuICAgIHJlc291cmNlLmFjdGl2aXR5SW5zdGFuY2UgPSBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UuYWN0aXZpdHlfaW5zdGFuY2VcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UpXG4gICAgcmVzb3VyY2UubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5pbnRlcmFjdGlvblJlc291cmNlLm1lc3NhZ2UsIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCB9KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmludGVyYWN0aW9uUmVzb3VyY2UoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uUmVzb3VyY2UsIHJlc291cmNlKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIkludGVyYWN0aW9uUmVzcG9uc2VUeXBlcyIsIkludGVyYWN0aW9uVHlwZXMiLCJNZXNzYWdlRmxhZ3MiLCJDb2xsZWN0aW9uIiwiYmFzZUludGVyYWN0aW9uIiwidW5kZWZpbmVkIiwicmVzcG9uZCIsInJlc3BvbnNlIiwib3B0aW9ucyIsInR5cGUiLCJDaGFubmVsTWVzc2FnZVdpdGhTb3VyY2UiLCJjb250ZW50IiwidGl0bGUiLCJNb2RhbCIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZSIsIkFwcGxpY2F0aW9uQ29tbWFuZEF1dG9jb21wbGV0ZVJlc3VsdCIsImlzUHJpdmF0ZSIsImZsYWdzIiwiRXBoZW1lcmFsIiwiYWNrbm93bGVkZ2VkIiwiYm90IiwiaGVscGVycyIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIk1vZGFsU3VibWl0IiwiRXJyb3IiLCJyZXN1bHQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImlkIiwiZGF0YSIsIndpdGhSZXNwb25zZSIsImVkaXQiLCJtZXNzYWdlSWQiLCJlZGl0Rm9sbG93dXBNZXNzYWdlIiwiTWVzc2FnZUNvbXBvbmVudCIsIlVwZGF0ZU1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZGVmZXJFZGl0IiwiRGVmZXJyZWRVcGRhdGVNZXNzYWdlIiwiZGVmZXIiLCJEZWZlcnJlZENoYW5uZWxNZXNzYWdlV2l0aFNvdXJjZSIsImRlbGV0ZSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsInRyYW5zZm9ybUludGVyYWN0aW9uIiwicGF5bG9hZCIsImd1aWxkSWQiLCJpbnRlcmFjdGlvbiIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidXNlciIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJ2ZXJzaW9uIiwibG9jYWxlIiwiZ3VpbGRMb2NhbGUiLCJndWlsZF9sb2NhbGUiLCJndWlsZCIsInNoYXJkSWQiLCJhcHBQZXJtaXNzaW9ucyIsImFwcF9wZXJtaXNzaW9ucyIsIm1lc3NhZ2UiLCJjaGFubmVsIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImVudGl0bGVtZW50cyIsIm1hcCIsImUiLCJlbnRpdGxlbWVudCIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImNvbnRleHQiLCJhdHRhY2htZW50U2l6ZUxpbWl0IiwiYXR0YWNobWVudF9zaXplX2xpbWl0IiwiY29tcG9uZW50VHlwZSIsImNvbXBvbmVudF90eXBlIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidmFsdWVzIiwibmFtZSIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJvcHQiLCJpbnRlcmFjdGlvbkRhdGFPcHRpb25zIiwidGFyZ2V0SWQiLCJ0YXJnZXRfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YU9wdGlvbiIsIm9wdGlvbiIsInZhbHVlIiwiZm9jdXNlZCIsInRyYW5zZm9ybUludGVyYWN0aW9uRGF0YVJlc29sdmVkIiwidHJhbnNmb3JtZWQiLCJtZXNzYWdlcyIsImVudHJpZXMiLCJfaWQiLCJ1c2VycyIsIm1lbWJlcnMiLCJyb2xlcyIsInJvbGUiLCJjaGFubmVscyIsImF0dGFjaG1lbnRzIiwia2V5IiwiYXR0YWNobWVudCIsInRyYW5zZm9ybUludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2siLCJyZXNvdXJjZSIsImludGVyYWN0aW9uUmVzb3VyY2UiLCJ0cmFuc2Zvcm1JbnRlcmFjdGlvbkNhbGxiYWNrIiwiY2FsbGJhY2siLCJhY3Rpdml0eUluc3RhbmNlSWQiLCJhY3Rpdml0eV9pbnN0YW5jZV9pZCIsInJlc3BvbnNlTWVzc2FnZUlkIiwicmVzcG9uc2VfbWVzc2FnZV9pZCIsInJlc3BvbnNlTWVzc2FnZUVwaGVtZXJhbCIsInJlc3BvbnNlX21lc3NhZ2VfZXBoZW1lcmFsIiwicmVzcG9uc2VNZXNzYWdlTG9hZGluZyIsInJlc3BvbnNlX21lc3NhZ2VfbG9hZGluZyIsInRyYW5zZm9ybUludGVyYWN0aW9uUmVzb3VyY2UiLCJhY3Rpdml0eUluc3RhbmNlIiwiYWN0aXZpdHlfaW5zdGFuY2UiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQU9qQ0Msd0JBQXdCLEVBQ3hCQyxnQkFBZ0IsRUFDaEJDLFlBQVksUUFDUCxvQkFBbUI7QUFDMUIsU0FBU0MsVUFBVSxRQUFR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
@@ -1,4 +1,4 @@
1
- import { ToggleBitfield, isInviteWithMetadata } from '../index.js';
1
+ import { isInviteWithMetadata, ToggleBitfield } from '../index.js';
2
2
  export function transformInvite(bot, payload) {
3
3
  const props = bot.transformers.desiredProperties.invite;
4
4
  const invite = {};
@@ -39,4 +39,4 @@ export function transformInvite(bot, payload) {
39
39
  return bot.transformers.customizers.invite(bot, payload.invite, invite);
40
40
  }
41
41
 
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBUb2dnbGVCaXRmaWVsZCwgaXNJbnZpdGVXaXRoTWV0YWRhdGEgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJUb2dnbGVCaXRmaWVsZCIsImlzSW52aXRlV2l0aE1ldGFkYXRhIiwidHJhbnNmb3JtSW52aXRlIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJjaGFubmVsSWQiLCJjaGFubmVsIiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJ1bmRlZmluZWQiLCJndWlsZFNjaGVkdWxlZEV2ZW50IiwiZ3VpbGRfc2NoZWR1bGVkX2V2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJzdGFnZUluc3RhbmNlIiwic3RhZ2VfaW5zdGFuY2UiLCJpbnZpdGVTdGFnZUluc3RhbmNlIiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQXdDQSxjQUFjLEVBQUVDLG9CQUFvQixRQUFRLGNBQWE7QUFFakcsT0FBTyxTQUFTQyxnQkFDZEMsR0FBZ0IsRUFDaEJDLE9BQWlGO0lBRWpGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTCxRQUFRSSxNQUFNLEVBQUVBLE9BQU9DLElBQUksR0FBR0wsUUFBUUksTUFBTSxDQUFDQyxJQUFJO0lBQzdFLElBQUlKLE1BQU1LLElBQUksSUFBSU4sUUFBUUksTUFBTSxDQUFDRSxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR04sUUFBUUksTUFBTSxDQUFDRSxJ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
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW52aXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZEFwcGxpY2F0aW9uLCBEaXNjb3JkSW52aXRlQ3JlYXRlLCBEaXNjb3JkSW52aXRlTWV0YWRhdGEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgSW52aXRlLCBpc0ludml0ZVdpdGhNZXRhZGF0YSwgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuLi9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUludml0ZShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogeyBpbnZpdGU6IERpc2NvcmRJbnZpdGVDcmVhdGUgfCBEaXNjb3JkSW52aXRlTWV0YWRhdGE7IHNoYXJkSWQ6IG51bWJlciB9LFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuaW52aXRlIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmludml0ZVxuICBjb25zdCBpbnZpdGUgPSB7fSBhcyBJbnZpdGVcblxuICBpZiAocHJvcHMudHlwZSAmJiAndHlwZScgaW4gcGF5bG9hZC5pbnZpdGUpIGludml0ZS50eXBlID0gcGF5bG9hZC5pbnZpdGUudHlwZVxuICBpZiAocHJvcHMuY29kZSAmJiBwYXlsb2FkLmludml0ZS5jb2RlKSBpbnZpdGUuY29kZSA9IHBheWxvYWQuaW52aXRlLmNvZGVcbiAgaWYgKHByb3BzLmNyZWF0ZWRBdCAmJiBwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KSBpbnZpdGUuY3JlYXRlZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5jcmVhdGVkX2F0KVxuICBpZiAocHJvcHMuaW52aXRlciAmJiBwYXlsb2FkLmludml0ZS5pbnZpdGVyKSBpbnZpdGUuaW52aXRlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLmludml0ZXIpXG4gIGlmIChwcm9wcy5tYXhBZ2UpIGludml0ZS5tYXhBZ2UgPSBwYXlsb2FkLmludml0ZS5tYXhfYWdlXG4gIGlmIChwcm9wcy5tYXhVc2VzKSBpbnZpdGUubWF4VXNlcyA9IHBheWxvYWQuaW52aXRlLm1heF91c2VzXG4gIGlmIChwcm9wcy50YXJnZXRUeXBlICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlKSBpbnZpdGUudGFyZ2V0VHlwZSA9IHBheWxvYWQuaW52aXRlLnRhcmdldF90eXBlXG4gIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKSBpbnZpdGUudGFyZ2V0VXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW52aXRlLnRhcmdldF91c2VyKVxuICBpZiAocHJvcHMudGFyZ2V0QXBwbGljYXRpb24gJiYgcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uKVxuICAgIGludml0ZS50YXJnZXRBcHBsaWNhdGlvbiA9IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7XG4gICAgICBhcHBsaWNhdGlvbjogcGF5bG9hZC5pbnZpdGUudGFyZ2V0X2FwcGxpY2F0aW9uIGFzIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgICAgIHNoYXJkSWQ6IHBheWxvYWQuc2hhcmRJZCxcbiAgICB9KVxuICBpZiAocHJvcHMudGVtcG9yYXJ5ICYmIHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeSkgaW52aXRlLnRlbXBvcmFyeSA9IHBheWxvYWQuaW52aXRlLnRlbXBvcmFyeVxuICBpZiAocHJvcHMudXNlcyAmJiBwYXlsb2FkLmludml0ZS51c2VzKSBpbnZpdGUudXNlcyA9IHBheWxvYWQuaW52aXRlLnVzZXNcblxuICBpZiAoaXNJbnZpdGVXaXRoTWV0YWRhdGEocGF5bG9hZC5pbnZpdGUpKSB7XG4gICAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmludml0ZS5jaGFubmVsPy5pZCkgaW52aXRlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmNoYW5uZWwuaWQpXG4gICAgaWYgKHByb3BzLmd1aWxkSWQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGQ/LmlkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkLmlkKVxuICAgIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX21lbWJlcl9jb3VudClcbiAgICAgIGludml0ZS5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5pbnZpdGUuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gICAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmludml0ZS5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgICAgaW52aXRlLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuaW52aXRlLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gICAgaWYgKHByb3BzLmd1aWxkU2NoZWR1bGVkRXZlbnQgJiYgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgICAgaW52aXRlLmd1aWxkU2NoZWR1bGVkRXZlbnQgPSBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgcGF5bG9hZC5pbnZpdGUuZ3VpbGRfc2NoZWR1bGVkX2V2ZW50KVxuICAgIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlICYmIGludml0ZS5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLnN0YWdlX2luc3RhbmNlKSB7XG4gICAgICBpbnZpdGUuc3RhZ2VJbnN0YW5jZSA9IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlU3RhZ2VJbnN0YW5jZShib3QsIHtcbiAgICAgICAgLi4ucGF5bG9hZC5pbnZpdGUuc3RhZ2VfaW5zdGFuY2UsXG4gICAgICAgIGd1aWxkSWQ6IGludml0ZS5ndWlsZElkLFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKHByb3BzLmV4cGlyZXNBdCAmJiBwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KSB7XG4gICAgICBpbnZpdGUuZXhwaXJlc0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLmludml0ZS5leHBpcmVzX2F0KVxuICAgIH1cbiAgICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5pbnZpdGUuZmxhZ3MpIGludml0ZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmludml0ZS5mbGFncylcbiAgfSBlbHNlIHtcbiAgICBpZiAocHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQuaW52aXRlLmNoYW5uZWxfaWQpIGludml0ZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludml0ZS5jaGFubmVsX2lkKVxuICAgIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKSBpbnZpdGUuZ3VpbGRJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW52aXRlLmd1aWxkX2lkKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuaW52aXRlKGJvdCwgcGF5bG9hZC5pbnZpdGUsIGludml0ZSlcbn1cbiJdLCJuYW1lcyI6WyJpc0ludml0ZVdpdGhNZXRhZGF0YSIsIlRvZ2dsZUJpdGZpZWxkIiwidHJhbnNmb3JtSW52aXRlIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpbnZpdGUiLCJ0eXBlIiwiY29kZSIsImNyZWF0ZWRBdCIsImNyZWF0ZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJpbnZpdGVyIiwidXNlciIsIm1heEFnZSIsIm1heF9hZ2UiLCJtYXhVc2VzIiwibWF4X3VzZXMiLCJ0YXJnZXRUeXBlIiwidGFyZ2V0X3R5cGUiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRBcHBsaWNhdGlvbiIsInRhcmdldF9hcHBsaWNhdGlvbiIsImFwcGxpY2F0aW9uIiwic2hhcmRJZCIsInRlbXBvcmFyeSIsInVzZXMiLCJjaGFubmVsSWQiLCJjaGFubmVsIiwiaWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwiZ3VpbGQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJ1bmRlZmluZWQiLCJndWlsZFNjaGVkdWxlZEV2ZW50IiwiZ3VpbGRfc2NoZWR1bGVkX2V2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJzdGFnZUluc3RhbmNlIiwic3RhZ2VfaW5zdGFuY2UiLCJpbnZpdGVTdGFnZUluc3RhbmNlIiwiZXhwaXJlc0F0IiwiZXhwaXJlc19hdCIsImZsYWdzIiwiY2hhbm5lbF9pZCIsImd1aWxkX2lkIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQXdDQSxvQkFBb0IsRUFBRUMsY0FBYyxRQUFRLGNBQWE7QUFFakcsT0FBTyxTQUFTQyxnQkFDZEMsR0FBZ0IsRUFDaEJDLE9BQWlGO0lBRWpGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLE1BQU07SUFDdkQsTUFBTUEsU0FBUyxDQUFDO0lBRWhCLElBQUlILE1BQU1JLElBQUksSUFBSSxVQUFVTCxRQUFRSSxNQUFNLEVBQUVBLE9BQU9DLElBQUksR0FBR0wsUUFBUUksTUFBTSxDQUFDQyxJQUFJO0lBQzdFLElBQUlKLE1BQU1LLElBQUksSUFBSU4sUUFBUUksTUFBTSxDQUFDRSxJQUFJLEVBQUVGLE9BQU9FLElBQUksR0FBR04sUUFBUUksTUFBTSxDQUFDRSxJQUFJO0lBQ3hFLElBQUlMLE1BQU1NLFNBQVMsSUFBSVAsUUFBUUksTUFBTSxDQUFDSSxVQUFVLEVBQUVKLE9BQU9HLFNBQVMsR0FBR0UsS0FBS0MsS0FBSyxDQUFDVixRQUFRSSxNQUFNLENBQUNJLFVBQVU7SUFDekcsSUFBSVAsTUFBTVUsT0FBTyxJQUFJWCxRQUFRSSxNQUFNLENBQUNPLE9BQU8sRUFBRVAsT0FBT08sT0FBTyxHQUFHWixJQUFJRyxZQUFZLENBQUNVLElBQUksQ0FBQ2IsS0FBS0MsUUFBUUksTUFBTSxDQUFDTyxPQUFPO0lBQy9HLElBQUlWLE1BQU1ZLE1BQU0sRUFBRVQsT0FBT1MsTUFBTSxHQUFHYixRQUFRSSxNQUFNLENBQUNVLE9BQU87SUFDeEQsSUFBSWIsTUFBTWMsT0FBTyxFQUFFWCxPQUFPVyxPQUFPLEdBQUdmLFFBQVFJLE1BQU0sQ0FBQ1ksUUFBUTtJQUMzRCxJQUFJZixNQUFNZ0IsVUFBVSxJQUFJakIsUUFBUUksTUFBTSxDQUFDYyxXQUFXLEVBQUVkLE9BQU9hLFVBQVUsR0FBR2pCLFFBQVFJLE1BQU0sQ0FBQ2MsV0FBVztJQUNsRyxJQUFJakIsTUFBTWtCLFVBQVUsSUFBSW5CLFFBQVFJLE1BQU0sQ0FBQ2dCLFdBQVcsRUFBRWhCLE9BQU9lLFVBQVUsR0FBR3BCLElBQUlHLFlBQVksQ0FBQ1UsSUFBSSxDQUFDYixLQUFLQyxRQUFRSSxNQUFNLENBQUNnQixXQUFXO0lBQzdILElBQUluQixNQUFNb0IsaUJBQWlCLElBQUlyQixRQUFRSSxNQUFNLENBQUNrQixrQkFBa0IsRUFDOURsQixPQUFPaUIsaUJBQWlCLEdBQUd0QixJQUFJRyxZQUFZLENBQUNxQixXQUFXLENBQUN4QixLQUFLO1FBQzNEd0IsYUFBYXZCLFFBQVFJLE1BQU0sQ0FBQ2tCLGtCQUFrQjtRQUM5Q0UsU0FBU3hCLFFBQVF3QixPQUFPO0lBQzFCO0lBQ0YsSUFBSXZCLE1BQU13QixTQUFTLElBQUl6QixRQUFRSSxNQUFNLENBQUNxQixTQUFTLEVBQUVyQixPQUFPcUIsU0FBUyxHQUFHekIsUUFBUUksTUFBTSxDQUFDcUIsU0FBUztJQUM1RixJQUFJeEIsTUFBTXlCLElBQUksSUFBSTFCLFFBQVFJLE1BQU0sQ0FBQ3NCLElBQUksRUFBRXRCLE9BQU9zQixJQUFJLEdBQUcxQixRQUFRSSxNQUFNLENBQUNzQixJQUFJO0lBRXhFLElBQUk5QixxQkFBcUJJLFFBQVFJLE1BQU0sR0FBRztRQUN4QyxJQUFJSCxNQUFNMEIsU0FBUyxJQUFJM0IsUUFBUUksTUFBTSxDQUFDd0IsT0FBTyxFQUFFQyxJQUFJekIsT0FBT3VCLFNBQVMsR0FBRzVCLElBQUlHLFlBQVksQ0FBQzRCLFNBQVMsQ0FBQzlCLFFBQVFJLE1BQU0sQ0FBQ3dCLE9BQU8sQ0FBQ0MsRUFBRTtRQUMxSCxJQUFJNUIsTUFBTThCLE9BQU8sSUFBSS9CLFFBQVFJLE1BQU0sQ0FBQzRCLEtBQUssRUFBRUgsSUFBSXpCLE9BQU8yQixPQUFPLEdBQUdoQyxJQUFJRyxZQUFZLENBQUM0QixTQUFTLENBQUM5QixRQUFRSSxNQUFNLENBQUM0QixLQUFLLENBQUNILEVBQUU7UUFDbEgsSUFBSTVCLE1BQU1nQyxzQkFBc0IsSUFBSWpDLFFBQVFJLE1BQU0sQ0FBQzhCLHdCQUF3QixFQUN6RTlCLE9BQU82QixzQkFBc0IsR0FBR2pDLFFBQVFJLE1BQU0sQ0FBQzhCLHdCQUF3QjtRQUN6RSxJQUFJakMsTUFBTWtDLHdCQUF3QixJQUFJbkMsUUFBUUksTUFBTSxDQUFDZ0MsMEJBQTBCLEtBQUtDLFdBQ2xGakMsT0FBTytCLHdCQUF3QixHQUFHbkMsUUFBUUksTUFBTSxDQUFDZ0MsMEJBQTBCO1FBQzdFLElBQUluQyxNQUFNcUMsbUJBQW1CLElBQUl0QyxRQUFRSSxNQUFNLENBQUNtQyxxQkFBcUIsRUFDbkVuQyxPQUFPa0MsbUJBQW1CLEdBQUd2QyxJQUFJRyxZQUFZLENBQUNzQyxjQUFjLENBQUN6QyxLQUFLQyxRQUFRSSxNQUFNLENBQUNtQyxxQkFBcUI7UUFDeEcsSUFBSXRDLE1BQU13QyxhQUFhLElBQUlyQyxPQUFPMkIsT0FBTyxJQUFJL0IsUUFBUUksTUFBTSxDQUFDc0MsY0FBYyxFQUFFO1lBQzFFdEMsT0FBT3FDLGFBQWEsR0FBRzFDLElBQUlHLFlBQVksQ0FBQ3lDLG1CQUFtQixDQUFDNUMsS0FBSztnQkFDL0QsR0FBR0MsUUFBUUksTUFBTSxDQUFDc0MsY0FBYztnQkFDaENYLFNBQVMzQixPQUFPMkIsT0FBTztZQUN6QjtRQUNGO1FBQ0EsSUFBSTlCLE1BQU0yQyxTQUFTLElBQUk1QyxRQUFRSSxNQUFNLENBQUN5QyxVQUFVLEVBQUU7WUFDaER6QyxPQUFPd0MsU0FBUyxHQUFHbkMsS0FBS0MsS0FBSyxDQUFDVixRQUFRSSxNQUFNLENBQUN5QyxVQUFVO1FBQ3pEO1FBQ0EsSUFBSTVDLE1BQU02QyxLQUFLLElBQUk5QyxRQUFRSSxNQUFNLENBQUMwQyxLQUFLLEVBQUUxQyxPQUFPMEMsS0FBSyxHQUFHLElBQUlqRCxlQUFlRyxRQUFRSSxNQUFNLENBQUMwQyxLQUFLO0lBQ2pHLE9BQU87UUFDTCxJQUFJN0MsTUFBTTBCLFNBQVMsSUFBSTNCLFFBQVFJLE1BQU0sQ0FBQzJDLFVBQVUsRUFBRTNDLE9BQU91QixTQUFTLEdBQUc1QixJQUFJRyxZQUFZLENBQUM0QixTQUFTLENBQUM5QixRQUFRSSxNQUFNLENBQUMyQyxVQUFVO1FBQ3pILElBQUk5QyxNQUFNOEIsT0FBTyxJQUFJL0IsUUFBUUksTUFBTSxDQUFDNEMsUUFBUSxFQUFFNUMsT0FBTzJCLE9BQU8sR0FBR2hDLElBQUlHLFlBQVksQ0FBQzRCLFNBQVMsQ0FBQzlCLFFBQVFJLE1BQU0sQ0FBQzRDLFFBQVE7SUFDbkg7SUFFQSxPQUFPakQsSUFBSUcsWUFBWSxDQUFDK0MsV0FBVyxDQUFDN0MsTUFBTSxDQUFDTCxLQUFLQyxRQUFRSSxNQUFNLEVBQUVBO0FBQ2xFIn0=
@@ -1,6 +1,6 @@
1
1
  import { iconHashToBigInt } from '@discordeno/utils';
2
- import { Permissions } from './toggles/Permissions.js';
3
2
  import { MemberToggles } from './toggles/member.js';
3
+ import { Permissions } from './toggles/Permissions.js';
4
4
  export const baseMember = {
5
5
  // This allows typescript to still check for type errors on functions below
6
6
  ...undefined,
@@ -48,4 +48,4 @@ export function transformMember(bot, payload, guildId, userId) {
48
48
  return bot.transformers.customizers.member(bot, payload, member);
49
49
  }
50
50
 
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJQZXJtaXNzaW9ucyIsIk1lbWJlclRvZ2dsZXMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInVzZXJJZCIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsInVzZXIiLCJuaWNrIiwicm9sZXMiLCJtYXAiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsInByZW1pdW1TaW5jZSIsInByZW1pdW1fc2luY2UiLCJjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCIsImNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwiLCJhdmF0YXIiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEludGVybmFsQm90IH0gZnJvbSAnLi4vYm90LmpzJ1xuaW1wb3J0IHsgTWVtYmVyVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9tZW1iZXIuanMnXG5pbXBvcnQgeyBQZXJtaXNzaW9ucyB9IGZyb20gJy4vdG9nZ2xlcy9QZXJtaXNzaW9ucy5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi90eXBlcy5qcydcblxuZXhwb3J0IGNvbnN0IGJhc2VNZW1iZXI6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnbWVtYmVyJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZW1iZXInXSksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZE1lbWJlcixcbiAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICB1c2VySWQ6IEJpZ1N0cmluZyxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lbWJlciB7XG4gIGNvbnN0IG1lbWJlcjogTWVtYmVyID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVtYmVyKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVtYmVyXG5cbiAgaWYgKHByb3BzLmlkICYmIHVzZXJJZCkgbWVtYmVyLmlkID0gdHlwZW9mIHVzZXJJZCA9PT0gJ3N0cmluZycgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh1c2VySWQpIDogdXNlcklkXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZ3VpbGRJZCkgOiBndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyKVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJNZW1iZXJUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsInVzZXJJZCIsIm1lbWJlciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsInVzZXIiLCJuaWNrIiwicm9sZXMiLCJtYXAiLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsInByZW1pdW1TaW5jZSIsInByZW1pdW1fc2luY2UiLCJjb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCIsImNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwiLCJhdmF0YXIiLCJiYW5uZXIiLCJwZXJtaXNzaW9ucyIsImF2YXRhckRlY29yYXRpb25EYXRhIiwiYXZhdGFyX2RlY29yYXRpb25fZGF0YSIsImN1c3RvbWl6ZXJzIl0s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
@@ -15,4 +15,4 @@ export function transformTeamToDiscordTeam(bot, payload) {
15
15
  };
16
16
  }
17
17
 
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS90ZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFRlYW0gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIHR5cGUgVGVhbSwgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogVGVhbSk6IERpc2NvcmRUZWFtIHtcbiAgY29uc3QgaWQgPSBwYXlsb2FkLmlkLnRvU3RyaW5nKClcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBheWxvYWQubmFtZSxcblxuICAgIGlkLFxuICAgIGljb246IHBheWxvYWQuaWNvbiA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5pY29uKSA6IG51bGwsXG4gICAgb3duZXJfdXNlcl9pZDogcGF5bG9hZC5vd25lclVzZXJJZC50b1N0cmluZygpLFxuICAgIG1lbWJlcnM6IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gKHtcbiAgICAgIG1lbWJlcnNoaXBfc3RhdGU6IG1lbWJlci5tZW1iZXJzaGlwU3RhdGUsXG4gICAgICB0ZWFtX2lkOiBpZCxcbiAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51c2VyKGJvdCwgbWVtYmVyLnVzZXIpLFxuICAgICAgcm9sZTogbWVtYmVyLnJvbGUsXG4gICAgfSkpLFxuICB9XG59XG4iXSwibmFtZXMiOlsiaWNvbkJpZ2ludFRvSGFzaCIsInRyYW5zZm9ybVRlYW1Ub0Rpc2NvcmRUZWFtIiwiYm90IiwicGF5bG9hZCIsImlkIiwidG9TdHJpbmciLCJuYW1lIiwiaWNvbiIsIm93bmVyX3VzZXJfaWQiLCJvd25lclVzZXJJZCIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJtZW1iZXJzaGlwX3N0YXRlIiwibWVtYmVyc2hpcFN0YXRlIiwidGVhbV9pZCIsInVzZXIiLCJ0cmFuc2Zvcm1lcnMiLCJyZXZlcnNlIiwicm9sZSJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBc0NBLGdCQUFnQixRQUFRLGlCQUFnQjtBQUU5RSxPQUFPLFNBQVNDLDJCQUEyQkMsR0FBZ0IsRUFBRUMsT0FBYTtJQUN4RSxNQUFNQyxLQUFLRCxRQUFRQyxFQUFFLENBQUNDLFFBQVE7SUFFOUIsT0FBTztRQUNMQyxNQUFNSCxRQUFRRyxJQUFJO1FBRWxCRjtRQUNBRyxNQUFNSixRQUFRSSxJQUFJLEdBQUdQLGlCQUFpQkcsUUFBUUksSUFBSSxJQUFJO1FBQ3REQyxlQUFlTCxRQUFRTSxXQUFXLENBQUNKLFFBQVE7UUFDM0NLLFNBQVNQLFFBQVFPLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLFNBQVksQ0FBQTtnQkFDeENDLGtCQUFrQkQsT0FBT0UsZUFBZTtnQkFDeENDLFNBQVNYO2dCQUNUWSxNQUFNZCxJQUFJZSxZQUFZLENBQUNDLE9BQU8sQ0FBQ0YsSUFBSSxDQUFDZCxLQUFLVSxPQUFPSSxJQUFJO2dCQUNwREcsTUFBTVAsT0FBT08sSUFBSTtZQUNuQixDQUFBO0lBQ0Y7QUFDRiJ9
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS90ZWFtLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFRlYW0gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHR5cGUgSW50ZXJuYWxCb3QsIGljb25CaWdpbnRUb0hhc2gsIHR5cGUgVGVhbSB9IGZyb20gJy4uLy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtVGVhbVRvRGlzY29yZFRlYW0oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogVGVhbSk6IERpc2NvcmRUZWFtIHtcbiAgY29uc3QgaWQgPSBwYXlsb2FkLmlkLnRvU3RyaW5nKClcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBheWxvYWQubmFtZSxcblxuICAgIGlkLFxuICAgIGljb246IHBheWxvYWQuaWNvbiA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5pY29uKSA6IG51bGwsXG4gICAgb3duZXJfdXNlcl9pZDogcGF5bG9hZC5vd25lclVzZXJJZC50b1N0cmluZygpLFxuICAgIG1lbWJlcnM6IHBheWxvYWQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gKHtcbiAgICAgIG1lbWJlcnNoaXBfc3RhdGU6IG1lbWJlci5tZW1iZXJzaGlwU3RhdGUsXG4gICAgICB0ZWFtX2lkOiBpZCxcbiAgICAgIHVzZXI6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS51c2VyKGJvdCwgbWVtYmVyLnVzZXIpLFxuICAgICAgcm9sZTogbWVtYmVyLnJvbGUsXG4gICAgfSkpLFxuICB9XG59XG4iXSwibmFtZXMiOlsiaWNvbkJpZ2ludFRvSGFzaCIsInRyYW5zZm9ybVRlYW1Ub0Rpc2NvcmRUZWFtIiwiYm90IiwicGF5bG9hZCIsImlkIiwidG9TdHJpbmciLCJuYW1lIiwiaWNvbiIsIm93bmVyX3VzZXJfaWQiLCJvd25lclVzZXJJZCIsIm1lbWJlcnMiLCJtYXAiLCJtZW1iZXIiLCJtZW1iZXJzaGlwX3N0YXRlIiwibWVtYmVyc2hpcFN0YXRlIiwidGVhbV9pZCIsInVzZXIiLCJ0cmFuc2Zvcm1lcnMiLCJyZXZlcnNlIiwicm9sZSJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBMkJBLGdCQUFnQixRQUFtQixpQkFBZ0I7QUFFOUUsT0FBTyxTQUFTQywyQkFBMkJDLEdBQWdCLEVBQUVDLE9BQWE7SUFDeEUsTUFBTUMsS0FBS0QsUUFBUUMsRUFBRSxDQUFDQyxRQUFRO0lBRTlCLE9BQU87UUFDTEMsTUFBTUgsUUFBUUcsSUFBSTtRQUVsQkY7UUFDQUcsTUFBTUosUUFBUUksSUFBSSxHQUFHUCxpQkFBaUJHLFFBQVFJLElBQUksSUFBSTtRQUN0REMsZUFBZUwsUUFBUU0sV0FBVyxDQUFDSixRQUFRO1FBQzNDSyxTQUFTUCxRQUFRTyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxTQUFZLENBQUE7Z0JBQ3hDQyxrQkFBa0JELE9BQU9FLGVBQWU7Z0JBQ3hDQyxTQUFTWDtnQkFDVFksTUFBTWQsSUFBSWUsWUFBWSxDQUFDQyxPQUFPLENBQUNGLElBQUksQ0FBQ2QsS0FBS1UsT0FBT0ksSUFBSTtnQkFDcERHLE1BQU1QLE9BQU9PLElBQUk7WUFDbkIsQ0FBQTtJQUNGO0FBQ0YifQ==
@@ -66,4 +66,4 @@ export function transformRoleColors(bot, payload) {
66
66
  return bot.transformers.customizers.roleColors(bot, payload, roleColors);
67
67
  }
68
68
 
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUsIERpc2NvcmRSb2xlQ29sb3JzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQm90LCB0eXBlIFJvbGUsIHR5cGUgUm9sZUNvbG9ycywgaWNvbkhhc2hUb0JpZ0ludCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgLy8gUm9sZSBuYW1lIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUgIT09IHVuZGVmaW5lZCkgcm9sZS5uYW1lID0gcGF5bG9hZC5yb2xlLm5hbWVcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSByb2xlLnBvc2l0aW9uID0gcGF5bG9hZC5yb2xlLnBvc2l0aW9uXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRJZCkgcm9sZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZElkKVxuICBpZiAocHJvcHMuY29sb3IgJiYgcGF5bG9hZC5yb2xlLmNvbG9yICE9PSB1bmRlZmluZWQpIHJvbGUuY29sb3IgPSBwYXlsb2FkLnJvbGUuY29sb3JcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucm9sZS5wZXJtaXNzaW9ucykgcm9sZS5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQucm9sZS5pY29uKSByb2xlLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQucm9sZS5pY29uKVxuICBpZiAocHJvcHMudW5pY29kZUVtb2ppICYmIHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppKSByb2xlLnVuaWNvZGVFbW9qaSA9IHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppXG4gIGlmIChwcm9wcy5mbGFncykgcm9sZS5mbGFncyA9IHBheWxvYWQucm9sZS5mbGFnc1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnJvbGUudGFncykge1xuICAgIHJvbGUuaW50ZXJuYWxUYWdzID0ge31cbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuYm90X2lkKSByb2xlLmludGVybmFsVGFncy5ib3RJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpIHJvbGUuaW50ZXJuYWxUYWdzLmludGVncmF0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5pbnRlZ3JhdGlvbl9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gICAgICByb2xlLmludGVybmFsVGFncy5zdWJzY3JpcHRpb25MaXN0aW5nSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5zdWJzY3JpcHRpb25fbGlzdGluZ19pZClcbiAgfVxuICBpZiAocHJvcHMudG9nZ2xlcykge1xuICAgIHJvbGUudG9nZ2xlcyA9IG5ldyBSb2xlVG9nZ2xlcyhwYXlsb2FkLnJvbGUpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5yb2xlKGJvdCwgcGF5bG9hZC5yb2xlLCByb2xlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZUNvbG9ycyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUm9sZUNvbG9ycyk6IFJvbGVDb2xvcnMge1xuICBjb25zdCByb2xlQ29sb3JzID0ge30gYXMgUm9sZUNvbG9yc1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucm9sZUNvbG9yc1xuXG4gIGlmIChwcm9wcy5wcmltYXJ5Q29sb3IgJiYgcGF5bG9hZC5wcmltYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQpIHJvbGVDb2xvcnMucHJpbWFyeUNvbG9yID0gcGF5bG9hZC5wcmltYXJ5X2NvbG9yXG4gIGlmIChwcm9wcy5zZWNvbmRhcnlDb2xvciAmJiBwYXlsb2FkLnNlY29uZGFyeV9jb2xvciAhPT0gdW5kZWZpbmVkICYmIHBheWxvYWQuc2Vjb25kYXJ5X2NvbG9yICE9PSBudWxsKVxuICAgIHJvbGVDb2xvcnMuc2Vjb25kYXJ5Q29sb3IgPSBwYXlsb2FkLnNlY29uZGFyeV9jb2xvclxuICBpZiAocHJvcHMudGVydGlhcnlDb2xvciAmJiBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQgJiYgcGF5bG9hZC50ZXJ0aWFyeV9jb2xvciAhPT0gbnVsbClcbiAgICByb2xlQ29sb3JzLnRlcnRpYXJ5Q29sb3IgPSBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucm9sZUNvbG9ycyhib3QsIHBheWxvYWQsIHJvbGVDb2xvcnMpXG59XG4iXSwibmFtZXMiOlsiaWNvbkhhc2hUb0JpZ0ludCIsIlBlcm1pc3Npb25zIiwiUm9sZVRvZ2dsZXMiLCJiYXNlUm9sZSIsInVuZGVmaW5lZCIsInRhZ3MiLCJib3RJZCIsImludGVybmFsVGFncyIsImludGVncmF0aW9uSWQiLCJzdWJzY3JpcHRpb25MaXN0aW5nSWQiLCJhdmFpbGFibGVGb3JQdXJjaGFzZSIsInRvZ2dsZXMiLCJndWlsZENvbm5lY3Rpb25zIiwicHJlbWl1bVN1YnNjcmliZXIiLCJob2lzdCIsImhhcyIsIm1hbmFnZWQiLCJtZW50aW9uYWJsZSIsInRyYW5zZm9ybVJvbGUiLCJib3QiLCJwYXlsb2FkIiwicm9sZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsIm5hbWUiLCJwb3NpdGlvbiIsImd1aWxkSWQiLCJjb2xvciIsInBlcm1pc3Npb25zIiwiaWNvbiIsInVuaWNvZGVFbW9qaSIsInVuaWNvZGVfZW1vamkiLCJmbGFncyIsImJvdF9pZCIsImludGVncmF0aW9uX2lkIiwic3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybVJvbGVDb2xvcnMiLCJyb2xlQ29sb3JzIiwicHJpbWFyeUNvbG9yIiwicHJpbWFyeV9jb2xvciIsInNlY29uZGFyeUNvbG9yIiwic2Vjb25kYXJ5X2NvbG9yIiwidGVydGlhcnlDb2xvciIsInRlcnRpYXJ5X2NvbG9yIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUF1REEsZ0JBQWdCLFFBQVEsY0FBYTtBQUM1RixTQUFTQyxXQUFXLFFBQVEsMkJBQTBCO0FBQ3RELFNBQVNDLFdBQVcsUUFBUSxvQkFBbUI7QUFFL0MsT0FBTyxNQUFNQyxXQUFrRTtJQUM3RSwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFFBQU87UUFDVCxPQUFPO1lBQ0xDLE9BQU8sSUFBSSxDQUFDQyxZQUFZLEVBQUVEO1lBQzFCRSxlQUFlLElBQUksQ0FBQ0QsWUFBWSxFQUFFQztZQUNsQ0MsdUJBQXVCLElBQUksQ0FBQ0YsWUFBWSxFQUFFRTtZQUMxQ0Msc0JBQXNCLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtZQUNwQ0Usa0JBQWtCLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztZQUNoQ0MsbUJBQW1CLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtRQUNuQztJQUNGO0lBQ0EsMERBQTBELEdBQzFELElBQUlDLFNBQVE7UUFDVixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNILE9BQU8s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
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJpZ1N0cmluZywgRGlzY29yZFJvbGUsIERpc2NvcmRSb2xlQ29sb3JzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyB0eXBlIEludGVybmFsQm90LCBpY29uSGFzaFRvQmlnSW50LCB0eXBlIFJvbGUsIHR5cGUgUm9sZUNvbG9ycyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgUGVybWlzc2lvbnMgfSBmcm9tICcuL3RvZ2dsZXMvUGVybWlzc2lvbnMuanMnXG5pbXBvcnQgeyBSb2xlVG9nZ2xlcyB9IGZyb20gJy4vdG9nZ2xlcy9yb2xlLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZVJvbGU6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsncm9sZSddKSxcblxuICBnZXQgdGFncygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgYm90SWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5ib3RJZCxcbiAgICAgIGludGVncmF0aW9uSWQ6IHRoaXMuaW50ZXJuYWxUYWdzPy5pbnRlZ3JhdGlvbklkLFxuICAgICAgc3Vic2NyaXB0aW9uTGlzdGluZ0lkOiB0aGlzLmludGVybmFsVGFncz8uc3Vic2NyaXB0aW9uTGlzdGluZ0lkLFxuICAgICAgYXZhaWxhYmxlRm9yUHVyY2hhc2U6IHRoaXMudG9nZ2xlcz8uYXZhaWxhYmxlRm9yUHVyY2hhc2UsXG4gICAgICBndWlsZENvbm5lY3Rpb25zOiB0aGlzLnRvZ2dsZXM/Lmd1aWxkQ29ubmVjdGlvbnMsXG4gICAgICBwcmVtaXVtU3Vic2NyaWJlcjogdGhpcy50b2dnbGVzPy5wcmVtaXVtU3Vic2NyaWJlcixcbiAgICB9XG4gIH0sXG4gIC8qKiBJZiB0aGlzIHJvbGUgaXMgc2hvd2VkIHNlcGFyYXRlbHkgaW4gdGhlIHVzZXIgbGlzdGluZyAqL1xuICBnZXQgaG9pc3QoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2hvaXN0JylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIG1hbmFnZWQgYnkgYW4gaW50ZWdyYXRpb24gKi9cbiAgZ2V0IG1hbmFnZWQoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ21hbmFnZWQnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIHJvbGUgaXMgbWVudGlvbmFibGUgKi9cbiAgZ2V0IG1lbnRpb25hYmxlKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdtZW50aW9uYWJsZScpXG4gIH0sXG4gIC8qKiBXaGV0aGVyIHRoaXMgaXMgdGhlIGd1aWxkcyBwcmVtaXVtIHN1YnNjcmliZXIgcm9sZSAqL1xuICBnZXQgcHJlbWl1bVN1YnNjcmliZXIoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ3ByZW1pdW1TdWJzY3JpYmVyJylcbiAgfSxcbiAgLyoqIFdoZXRoZXIgdGhpcyByb2xlIGlzIGF2YWlsYWJsZSBmb3IgcHVyY2hhc2UuICovXG4gIGdldCBhdmFpbGFibGVGb3JQdXJjaGFzZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnYXZhaWxhYmxlRm9yUHVyY2hhc2UnKVxuICB9LFxuICAvKiogV2hldGhlciB0aGlzIGlzIGEgZ3VpbGQncyBsaW5rZWQgcm9sZS4gKi9cbiAgZ2V0IGd1aWxkQ29ubmVjdGlvbnMoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2d1aWxkQ29ubmVjdGlvbnMnKVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZShib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IHJvbGU6IERpc2NvcmRSb2xlOyBndWlsZElkOiBCaWdTdHJpbmcgfSk6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLnJvbGUge1xuICBjb25zdCByb2xlOiBSb2xlID0gT2JqZWN0LmNyZWF0ZShiYXNlUm9sZSlcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnJvbGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQucm9sZS5pZCkgcm9sZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS5pZClcbiAgLy8gUm9sZSBuYW1lIGNhbiBiZSBhbiBlbXB0eSBzdHJpbmdcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5yb2xlLm5hbWUgIT09IHVuZGVmaW5lZCkgcm9sZS5uYW1lID0gcGF5bG9hZC5yb2xlLm5hbWVcbiAgaWYgKHByb3BzLnBvc2l0aW9uKSByb2xlLnBvc2l0aW9uID0gcGF5bG9hZC5yb2xlLnBvc2l0aW9uXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRJZCkgcm9sZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZElkKVxuICBpZiAocHJvcHMuY29sb3IgJiYgcGF5bG9hZC5yb2xlLmNvbG9yICE9PSB1bmRlZmluZWQpIHJvbGUuY29sb3IgPSBwYXlsb2FkLnJvbGUuY29sb3JcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucm9sZS5wZXJtaXNzaW9ucykgcm9sZS5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnJvbGUucGVybWlzc2lvbnMpXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQucm9sZS5pY29uKSByb2xlLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQucm9sZS5pY29uKVxuICBpZiAocHJvcHMudW5pY29kZUVtb2ppICYmIHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppKSByb2xlLnVuaWNvZGVFbW9qaSA9IHBheWxvYWQucm9sZS51bmljb2RlX2Vtb2ppXG4gIGlmIChwcm9wcy5mbGFncykgcm9sZS5mbGFncyA9IHBheWxvYWQucm9sZS5mbGFnc1xuICBpZiAocHJvcHMudGFncyAmJiBwYXlsb2FkLnJvbGUudGFncykge1xuICAgIHJvbGUuaW50ZXJuYWxUYWdzID0ge31cbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuYm90X2lkKSByb2xlLmludGVybmFsVGFncy5ib3RJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQucm9sZS50YWdzLmJvdF9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3MuaW50ZWdyYXRpb25faWQpIHJvbGUuaW50ZXJuYWxUYWdzLmludGVncmF0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5pbnRlZ3JhdGlvbl9pZClcbiAgICBpZiAocGF5bG9hZC5yb2xlLnRhZ3Muc3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQpXG4gICAgICByb2xlLmludGVybmFsVGFncy5zdWJzY3JpcHRpb25MaXN0aW5nSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLnJvbGUudGFncy5zdWJzY3JpcHRpb25fbGlzdGluZ19pZClcbiAgfVxuICBpZiAocHJvcHMudG9nZ2xlcykge1xuICAgIHJvbGUudG9nZ2xlcyA9IG5ldyBSb2xlVG9nZ2xlcyhwYXlsb2FkLnJvbGUpXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5yb2xlKGJvdCwgcGF5bG9hZC5yb2xlLCByb2xlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUm9sZUNvbG9ycyhib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkUm9sZUNvbG9ycyk6IFJvbGVDb2xvcnMge1xuICBjb25zdCByb2xlQ29sb3JzID0ge30gYXMgUm9sZUNvbG9yc1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMucm9sZUNvbG9yc1xuXG4gIGlmIChwcm9wcy5wcmltYXJ5Q29sb3IgJiYgcGF5bG9hZC5wcmltYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQpIHJvbGVDb2xvcnMucHJpbWFyeUNvbG9yID0gcGF5bG9hZC5wcmltYXJ5X2NvbG9yXG4gIGlmIChwcm9wcy5zZWNvbmRhcnlDb2xvciAmJiBwYXlsb2FkLnNlY29uZGFyeV9jb2xvciAhPT0gdW5kZWZpbmVkICYmIHBheWxvYWQuc2Vjb25kYXJ5X2NvbG9yICE9PSBudWxsKVxuICAgIHJvbGVDb2xvcnMuc2Vjb25kYXJ5Q29sb3IgPSBwYXlsb2FkLnNlY29uZGFyeV9jb2xvclxuICBpZiAocHJvcHMudGVydGlhcnlDb2xvciAmJiBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yICE9PSB1bmRlZmluZWQgJiYgcGF5bG9hZC50ZXJ0aWFyeV9jb2xvciAhPT0gbnVsbClcbiAgICByb2xlQ29sb3JzLnRlcnRpYXJ5Q29sb3IgPSBwYXlsb2FkLnRlcnRpYXJ5X2NvbG9yXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucm9sZUNvbG9ycyhib3QsIHBheWxvYWQsIHJvbGVDb2xvcnMpXG59XG4iXSwibmFtZXMiOlsiaWNvbkhhc2hUb0JpZ0ludCIsIlBlcm1pc3Npb25zIiwiUm9sZVRvZ2dsZXMiLCJiYXNlUm9sZSIsInVuZGVmaW5lZCIsInRhZ3MiLCJib3RJZCIsImludGVybmFsVGFncyIsImludGVncmF0aW9uSWQiLCJzdWJzY3JpcHRpb25MaXN0aW5nSWQiLCJhdmFpbGFibGVGb3JQdXJjaGFzZSIsInRvZ2dsZXMiLCJndWlsZENvbm5lY3Rpb25zIiwicHJlbWl1bVN1YnNjcmliZXIiLCJob2lzdCIsImhhcyIsIm1hbmFnZWQiLCJtZW50aW9uYWJsZSIsInRyYW5zZm9ybVJvbGUiLCJib3QiLCJwYXlsb2FkIiwicm9sZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJpZCIsInNub3dmbGFrZSIsIm5hbWUiLCJwb3NpdGlvbiIsImd1aWxkSWQiLCJjb2xvciIsInBlcm1pc3Npb25zIiwiaWNvbiIsInVuaWNvZGVFbW9qaSIsInVuaWNvZGVfZW1vamkiLCJmbGFncyIsImJvdF9pZCIsImludGVncmF0aW9uX2lkIiwic3Vic2NyaXB0aW9uX2xpc3RpbmdfaWQiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybVJvbGVDb2xvcnMiLCJyb2xlQ29sb3JzIiwicHJpbWFyeUNvbG9yIiwicHJpbWFyeV9jb2xvciIsInNlY29uZGFyeUNvbG9yIiwic2Vjb25kYXJ5X2NvbG9yIiwidGVydGlhcnlDb2xvciIsInRlcnRpYXJ5X2NvbG9yIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUEyQkEsZ0JBQWdCLFFBQW9DLGNBQWE7QUFDNUYsU0FBU0MsV0FBVyxRQUFRLDJCQUEwQjtBQUN0RCxTQUFTQyxXQUFXLFFBQVEsb0JBQW1CO0FBRS9DLE9BQU8sTUFBTUMsV0FBa0U7SUFDN0UsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxRQUFPO1FBQ1QsT0FBTztZQUNMQyxPQUFPLElBQUksQ0FBQ0MsWUFBWSxFQUFFRDtZQUMxQkUsZUFBZSxJQUFJLENBQUNELFlBQVksRUFBRUM7WUFDbENDLHVCQUF1QixJQUFJLENBQUNGLFlBQVksRUFBRUU7WUFDMUNDLHNCQUFzQixJQUFJLENBQUNDLE9BQU8sRUFBRUQ7WUFDcENFLGtCQUFrQixJQUFJLENBQUNELE9BQU8sRUFBRUM7WUFDaENDLG1CQUFtQixJQUFJLENBQUNGLE9BQU8sRUFBRUU7UUFDbkM7SUFDRjtJQUNBLDBEQUEwRCxHQUMxRCxJQUFJQyxTQUFRO1FBQ1YsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDSCxPQUFP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