@discordeno/bot 19.0.0-next.f8f976a → 19.0.0-next.f9bdfce

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 (93) hide show
  1. package/README.md +30 -0
  2. package/dist/cjs/bot.cjs +1 -1
  3. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +2 -2
  4. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +8 -5
  5. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +6 -3
  6. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +4 -2
  7. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +3 -2
  8. package/dist/cjs/transformers/attachment.cjs +2 -1
  9. package/dist/cjs/transformers/avatarDecorationData.cjs +20 -0
  10. package/dist/cjs/transformers/channel.cjs +29 -2
  11. package/dist/cjs/transformers/emoji.cjs +19 -4
  12. package/dist/cjs/transformers/guild.cjs +5 -2
  13. package/dist/cjs/transformers/index.cjs +2 -1
  14. package/dist/cjs/transformers/interaction.cjs +38 -41
  15. package/dist/cjs/transformers/invite.cjs +2 -1
  16. package/dist/cjs/transformers/member.cjs +3 -2
  17. package/dist/cjs/transformers/message.cjs +32 -33
  18. package/dist/cjs/transformers/reverse/member.cjs +7 -2
  19. package/dist/cjs/transformers/sku.cjs +1 -1
  20. package/dist/cjs/transformers/toggles/Permissions.cjs +2 -2
  21. package/dist/cjs/transformers/toggles/channel.cjs +7 -2
  22. package/dist/cjs/transformers/toggles/guild.cjs +74 -52
  23. package/dist/cjs/transformers/user.cjs +2 -2
  24. package/dist/cjs/transformers.cjs +48 -7
  25. package/dist/cjs/typings.cjs +4 -26
  26. package/dist/esm/bot.js +1 -1
  27. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +2 -2
  28. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +8 -5
  29. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +6 -3
  30. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +4 -2
  31. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +3 -2
  32. package/dist/esm/transformers/attachment.js +2 -1
  33. package/dist/esm/transformers/avatarDecorationData.js +10 -0
  34. package/dist/esm/transformers/channel.js +27 -3
  35. package/dist/esm/transformers/emoji.js +8 -1
  36. package/dist/esm/transformers/guild.js +5 -2
  37. package/dist/esm/transformers/index.js +2 -1
  38. package/dist/esm/transformers/interaction.js +37 -40
  39. package/dist/esm/transformers/invite.js +2 -1
  40. package/dist/esm/transformers/member.js +3 -2
  41. package/dist/esm/transformers/message.js +3 -4
  42. package/dist/esm/transformers/reverse/member.js +7 -2
  43. package/dist/esm/transformers/sku.js +1 -1
  44. package/dist/esm/transformers/toggles/Permissions.js +2 -2
  45. package/dist/esm/transformers/toggles/channel.js +7 -2
  46. package/dist/esm/transformers/toggles/guild.js +74 -52
  47. package/dist/esm/transformers/user.js +2 -2
  48. package/dist/esm/transformers.js +51 -10
  49. package/dist/esm/typings.js +1 -15
  50. package/dist/types/bot.d.ts +9 -3
  51. package/dist/types/bot.d.ts.map +1 -1
  52. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -1
  53. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts +1 -1
  54. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
  55. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  56. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  57. package/dist/types/transformers/attachment.d.ts +2 -0
  58. package/dist/types/transformers/attachment.d.ts.map +1 -1
  59. package/dist/types/transformers/avatarDecorationData.d.ts +9 -0
  60. package/dist/types/transformers/avatarDecorationData.d.ts.map +1 -0
  61. package/dist/types/transformers/channel.d.ts +38 -4
  62. package/dist/types/transformers/channel.d.ts.map +1 -1
  63. package/dist/types/transformers/emoji.d.ts +8 -1
  64. package/dist/types/transformers/emoji.d.ts.map +1 -1
  65. package/dist/types/transformers/guild.d.ts +3 -3
  66. package/dist/types/transformers/guild.d.ts.map +1 -1
  67. package/dist/types/transformers/index.d.ts +1 -0
  68. package/dist/types/transformers/index.d.ts.map +1 -1
  69. package/dist/types/transformers/interaction.d.ts +8 -14
  70. package/dist/types/transformers/interaction.d.ts.map +1 -1
  71. package/dist/types/transformers/invite.d.ts +3 -1
  72. package/dist/types/transformers/invite.d.ts.map +1 -1
  73. package/dist/types/transformers/member.d.ts +4 -1
  74. package/dist/types/transformers/member.d.ts.map +1 -1
  75. package/dist/types/transformers/message.d.ts +2 -2
  76. package/dist/types/transformers/message.d.ts.map +1 -1
  77. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  78. package/dist/types/transformers/sku.d.ts +2 -2
  79. package/dist/types/transformers/sku.d.ts.map +1 -1
  80. package/dist/types/transformers/toggles/Permissions.d.ts +4 -4
  81. package/dist/types/transformers/toggles/Permissions.d.ts.map +1 -1
  82. package/dist/types/transformers/toggles/channel.d.ts +3 -0
  83. package/dist/types/transformers/toggles/channel.d.ts.map +1 -1
  84. package/dist/types/transformers/toggles/guild.d.ts +50 -35
  85. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  86. package/dist/types/transformers/user.d.ts +3 -3
  87. package/dist/types/transformers/user.d.ts.map +1 -1
  88. package/dist/types/transformers.d.ts +50 -8
  89. package/dist/types/transformers.d.ts.map +1 -1
  90. package/dist/types/typings.d.ts +0 -24
  91. package/dist/types/typings.d.ts.map +1 -1
  92. package/package.json +13 -13
  93. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,7 +1,6 @@
1
- import { DiscordApplicationIntegrationType } from '@discordeno/types';
1
+ import { DiscordApplicationIntegrationType, MessageFlags } from '@discordeno/types';
2
2
  import { CHANNEL_MENTION_REGEX } from '../constants.js';
3
3
  import { snowflakeToTimestamp } from '../index.js';
4
- import { MessageFlags } from '../typings.js';
5
4
  import { ToggleBitfield } from './toggles/ToggleBitfield.js';
6
5
  const baseMessage = {
7
6
  get crossposted () {
@@ -234,7 +233,7 @@ export function transformMessageInteractionMetadata(bot, payload) {
234
233
  if (props.originalResponseMessageId && payload.original_response_message_id) metadata.originalResponseMessageId = bot.transformers.snowflake(payload.original_response_message_id);
235
234
  if (props.triggeringInteractionMetadata && payload.triggering_interaction_metadata) metadata.triggeringInteractionMetadata = transformMessageInteractionMetadata(bot, payload.triggering_interaction_metadata);
236
235
  if (props.type) metadata.type = payload.type;
237
- if (props.userId) metadata.userId = bot.transformers.snowflake(payload.user_id);
236
+ if (props.user && payload.user) metadata.user = bot.transformers.user(bot, payload.user);
238
237
  return bot.transformers.customizers.messageInteractionMetadata(bot, payload, metadata);
239
238
  }
240
239
  export function transformMessageCall(bot, payload) {
@@ -245,4 +244,4 @@ export function transformMessageCall(bot, payload) {
245
244
  return bot.transformers.customizers.messageCall(bot, payload, call);
246
245
  }
247
246
 
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBJbnRlcmFjdGlvblR5cGVzLFxuICB0eXBlIE1lc3NhZ2VBY3Rpdml0eVR5cGVzLFxuICB0eXBlIE1lc3NhZ2VUeXBlcyxcbiAgdHlwZSBTdGlja2VyRm9ybWF0VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHsgc25vd2ZsYWtlVG9UaW1lc3RhbXAsIHR5cGUgQm90LCB0eXBlIFBvbGwgfSBmcm9tICcuLi9pbmRleC5qcydcbmltcG9ydCB7IE1lc3NhZ2VGbGFncyB9IGZyb20gJy4uL3R5cGluZ3MuanMnXG5pbXBvcnQgdHlwZSB7IEF0dGFjaG1lbnQgfSBmcm9tICcuL2F0dGFjaG1lbnQuanMnXG5pbXBvcnQgdHlwZSB7IENoYW5uZWwgfSBmcm9tICcuL2NoYW5uZWwuanMnXG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBFbWJlZCB9IGZyb20gJy4vZW1iZWQuanMnXG5pbXBvcnQgdHlwZSB7IEVtb2ppIH0gZnJvbSAnLi9lbW9qaS5qcydcbmltcG9ydCB0eXBlIHsgTWVtYmVyIH0gZnJvbSAnLi9tZW1iZXIuanMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4vdXNlci5qcydcblxuY29uc3QgYmFzZU1lc3NhZ2U6IFBhcnRpYWw8TWVzc2FnZT4gJiBNZXNzYWdlQmFzZSA9IHtcbiAgZ2V0IGNyb3NzcG9zdGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBjcm9zc3Bvc3RlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuQ3Jvc3Nwb3N0ZWQpXG4gIH0sXG4gIGdldCBlcGhlbWVyYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBlcGhlbWVyYWwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gIH0sXG4gIGdldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKVxuICB9LFxuICBnZXQgaGFzVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgaGFzVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICB9LFxuICBnZXQgaXNDcm9zc3Bvc3QoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGlzQ3Jvc3Nwb3N0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Jc0Nyb3NzcG9zdClcbiAgfSxcbiAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKVxuICB9LFxuICBnZXQgbWVudGlvbmVkVXNlcklkcygpIHtcbiAgICByZXR1cm4gdGhpcy5tZW50aW9ucz8ubWFwKCh1c2VyKSA9PiB1c2VyLmlkKSA/PyBbXVxuICB9LFxuICBnZXQgbWVudGlvbkV2ZXJ5b25lKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygyKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgbWVudGlvbkV2ZXJ5b25lKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDIpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgyKVxuICB9LFxuICBnZXQgcGlubmVkKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgcGlubmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDMpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgzKVxuICB9LFxuICBnZXQgc291cmNlTWVzc2FnZURlbGV0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Tb3VyY2VNZXNzYWdlRGVsZXRlZClcbiAgfSxcbiAgZ2V0IHN1cHByZXNzRW1iZWRzKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzdXBwcmVzc0VtYmVkcyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NFbWJlZHMpXG4gIH0sXG4gIGdldCBzdXBwcmVzc05vdGlmaWNhdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzdXBwcmVzc05vdGlmaWNhdGlvbnModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gIH0sXG4gIGdldCB0aW1lc3RhbXAoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWQgPyBzbm93Zmxha2VUb1RpbWVzdGFtcCh0aGlzLmlkKSA6IDBcbiAgfSxcbiAgZ2V0IHR0cygpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMSkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHR0cyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgxKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMSlcbiAgfSxcbiAgZ2V0IHVyZ2VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlVyZ2VudCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHVyZ2VudCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuVXJnZW50KVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgfSxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQmFzZSB7XG4gIC8qKiBIb2xkcyBhbGwgdGhlIGJvb2xlYW4gdmFsdWVzIG9uIHRoaXMgbWVzc2FnZS4gKi9cbiAgYml0ZmllbGQ/OiBUb2dnbGVCaXRmaWVsZFxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaGFzIGJlZW4gcHVibGlzaGVkIHRvIHN1YnNjcmliZWQgY2hhbm5lbHMgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgY3Jvc3Nwb3N0ZWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGlzIG9ubHkgdmlzaWJsZSB0byB0aGUgdXNlciB3aG8gaW52b2tlZCB0aGUgSW50ZXJhY3Rpb24gKi9cbiAgZXBoZW1lcmFsOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBmYWlsZWQgdG8gbWVudGlvbiBzb21lIHJvbGVzIGFuZCBhZGQgdGhlaXIgbWVtYmVycyB0byB0aGUgdGhyZWFkICovXG4gIGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkOiBib29sZWFuXG4gIC8qKiBNZXNzYWdlIGZsYWdzIGNvbWJpbmVkIGFzIGEgYml0ZmllbGQgKi9cbiAgZmxhZ3M/OiBUb2dnbGVCaXRmaWVsZFxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaGFzIGFuIGFzc29jaWF0ZWQgdGhyZWFkLCB3aXRoIHRoZSBzYW1lIGlkIGFzIHRoZSBtZXNzYWdlICovXG4gIGhhc1RocmVhZDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2Ugb3JpZ2luYXRlZCBmcm9tIGEgbWVzc2FnZSBpbiBhbm90aGVyIGNoYW5uZWwgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgaXNDcm9zc3Bvc3Q6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGlzIGFuIEludGVyYWN0aW9uIFJlc3BvbnNlIGFuZCB0aGUgYm90IGlzIFwidGhpbmtpbmdcIiAqL1xuICBsb2FkaW5nOiBib29sZWFuXG4gIC8qKiBUaGUgaWRzIG9mIHRoZSB1c2VycyB3aG8gd2VyZSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlLiAqL1xuICBtZW50aW9uZWRVc2VySWRzOiBiaWdpbnRbXVxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgbWVudGlvbnMgZXZlcnlvbmUgKi9cbiAgbWVudGlvbkV2ZXJ5b25lOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBwaW5uZWQgKi9cbiAgcGlubmVkOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoZSBzb3VyY2UgbWVzc2FnZSBmb3IgdGhpcyBjcm9zc3Bvc3QgaGFzIGJlZW4gZGVsZXRlZCAodmlhIENoYW5uZWwgRm9sbG93aW5nKSAqL1xuICBzb3VyY2VNZXNzYWdlRGVsZXRlZDogYm9vbGVhblxuICAvKiogV2hldGhlciBkbyBub3QgaW5jbHVkZSBhbnkgZW1iZWRzIHdoZW4gc2VyaWFsaXppbmcgdGhpcyBtZXNzYWdlICovXG4gIHN1cHByZXNzRW1iZWRzOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSB3aWxsIG5vdCB0cmlnZ2VyIHB1c2ggYW5kIGRlc2t0b3Agbm90aWZpY2F0aW9ucyAqL1xuICBzdXBwcmVzc05vdGlmaWNhdGlvbnM6IGJvb2xlYW5cbiAgLyoqIFRoZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gdGhpcyBtZXNzYWdlIHdhcyBjcmVhdGVkICovXG4gIHRpbWVzdGFtcDogbnVtYmVyXG4gIC8qKiBXaGV0aGVyIHRoaXMgd2FzIGEgVFRTIG1lc3NhZ2UuICovXG4gIHR0czogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgY2FtZSBmcm9tIHRoZSB1cmdlbnQgbWVzc2FnZSBzeXN0ZW0gKi9cbiAgdXJnZW50OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZSBleHRlbmRzIE1lc3NhZ2VCYXNlIHtcbiAgLyoqIFNlbnQgd2l0aCBSaWNoIFByZXNlbmNlLXJlbGF0ZWQgY2hhdCBlbWJlZHMgKi9cbiAgYWN0aXZpdHk/OiB7XG4gICAgLyoqIFR5cGUgb2YgbWVzc2FnZSBhY3Rpdml0eSAqL1xuICAgIHR5cGU6IE1lc3NhZ2VBY3Rpdml0eVR5cGVzXG4gICAgLyoqIHBhcnR5X2lkIGZyb20gYSBSaWNoIFByZXNlbmNlIGV2ZW50ICovXG4gICAgcGFydHlJZD86IHN0cmluZ1xuICB9XG4gIC8qKiBpZiB0aGUgbWVzc2FnZSBpcyBhbiBJbnRlcmFjdGlvbiBvciBhcHBsaWNhdGlvbi1vd25lZCB3ZWJob29rLCB0aGlzIGlzIHRoZSBpZCBvZiB0aGUgYXBwbGljYXRpb24gKi9cbiAgYXBwbGljYXRpb25JZD86IGJpZ2ludFxuICAvKiogQW55IGF0dGFjaGVkIGZpbGVzIG9uIHRoaXMgbWVzc2FnZS4gKi9cbiAgYXR0YWNobWVudHM/OiBBdHRhY2htZW50W11cbiAgLyoqIFRoZSBhdXRob3Igb2YgdGhpcyBtZXNzYWdlIChub3QgZ3VhcmFudGVlZCB0byBiZSBhIHZhbGlkIHVzZXIpIE5vdGU6IFRoZSBhdXRob3Igb2JqZWN0IGZvbGxvd3MgdGhlIHN0cnVjdHVyZSBvZiB0aGUgdXNlciBvYmplY3QsIGJ1dCBpcyBvbmx5IGEgdmFsaWQgdXNlciBpbiB0aGUgY2FzZSB3aGVyZSB0aGUgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB1c2VyIG9yIGJvdCB1c2VyLiBJZiB0aGUgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB3ZWJob29rLCB0aGUgYXV0aG9yIG9iamVjdCBjb3JyZXNwb25kcyB0byB0aGUgd2ViaG9vaydzIGlkLCB1c2VybmFtZSwgYW5kIGF2YXRhci4gWW91IGNhbiB0ZWxsIGlmIGEgbWVzc2FnZSBpcyBnZW5lcmF0ZWQgYnkgYSB3ZWJob29rIGJ5IGNoZWNraW5nIGZvciB0aGUgd2ViaG9va19pZCBvbiB0aGUgbWVzc2FnZSBvYmplY3QuICovXG4gIGF1dGhvcjogVXNlclxuICAvKiogaWQgb2YgdGhlIGNoYW5uZWwgdGhlIG1lc3NhZ2Ugd2FzIHNlbnQgaW4gKi9cbiAgY2hhbm5lbElkOiBiaWdpbnRcbiAgLyoqIFRoZSBjb21wb25lbnRzIHJlbGF0ZWQgdG8gdGhpcyBtZXNzYWdlICovXG4gIGNvbXBvbmVudHM6IENvbXBvbmVudFtdXG4gIC8qKiBDb250ZW50cyBvZiB0aGUgbWVzc2FnZSAqL1xuICBjb250ZW50OiBzdHJpbmdcbiAgLyoqIFRoZSB0aW1lc3RhbXAgaW4gbWlsbGlzZWNvbmRzIHdoZW4gdGhpcyBtZXNzYWdlIHdhcyBlZGl0ZWQgbGFzdC4gKi9cbiAgZWRpdGVkVGltZXN0YW1wPzogbnVtYmVyXG4gIC8qKiBBbnkgZW1iZWRkZWQgY29udGVudCAqL1xuICBlbWJlZHM/OiBFbWJlZFtdXG4gIC8qKiBpZCBvZiB0aGUgZ3VpbGQgdGhlIG1lc3NhZ2Ugd2FzIHNlbnQgaW4gTm90ZTogRm9yIE1FU1NBR0VfQ1JFQVRFIGFuZCBNRVNTQUdFX1VQREFURSBldmVudHMsIHRoZSBtZXNzYWdlIG9iamVjdCBtYXkgbm90IGNvbnRhaW4gYSBndWlsZF9pZCBvciBtZW1iZXIgZmllbGQgc2luY2UgdGhlIGV2ZW50cyBhcmUgc2VudCBkaXJlY3RseSB0byB0aGUgcmVjZWl2aW5nIHVzZXIgYW5kIHRoZSBib3Qgd2hvIHNlbnQgdGhlIG1lc3NhZ2UsIHJhdGhlciB0aGFuIGJlaW5nIHNlbnQgdGhyb3VnaCB0aGUgZ3VpbGQgbGlrZSBub24tZXBoZW1lcmFsIG1lc3NhZ2VzLiAqL1xuICBndWlsZElkPzogYmlnaW50XG4gIC8qKiBpZCBvZiB0aGUgbWVzc2FnZSAqL1xuICBpZDogYmlnaW50XG4gIC8qKiBzZW50IGlmIHRoZSBtZXNzYWdlIGlzIHNlbnQgYXMgYSByZXN1bHQgb2YgYW4gaW50ZXJhY3Rpb24gKi9cbiAgaW50ZXJhY3Rpb25NZXRhZGF0YT86IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG4gIC8qKlxuICAgKiBTZW50IGlmIHRoZSBtZXNzYWdlIGlzIGEgcmVzcG9uc2UgdG8gYW4gSW50ZXJhY3Rpb25cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBpbiBmYXZvciBvZiB7QGxpbmsgaW50ZXJhY3Rpb25NZXRhZGF0YX1cbiAgICovXG4gIGludGVyYWN0aW9uPzoge1xuICAgIC8qKiBJZCBvZiB0aGUgaW50ZXJhY3Rpb24gKi9cbiAgICBpZDogYmlnaW50XG4gICAgLyoqIFRoZSBtZW1iZXIgd2hvIGludm9rZWQgdGhlIGludGVyYWN0aW9uIGluIHRoZSBndWlsZCAgKi9cbiAgICBtZW1iZXI/OiBNZW1iZXJcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhlIEFwcGxpY2F0aW9uQ29tbWFuZCBpbmNsdWRpbmcgdGhlIG5hbWUgb2YgdGhlIHN1YmNvbW1hbmQvc3ViY29tbWFuZCBncm91cCAqL1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIC8qKiBUaGUgdHlwZSBvZiBpbnRlcmFjdGlvbiAqL1xuICAgIHR5cGU6IEludGVyYWN0aW9uVHlwZXNcbiAgICAvKiogVGhlIHVzZXIgd2hvIGludm9rZWQgdGhlIGludGVyYWN0aW9uICovXG4gICAgdXNlcjogVXNlclxuICB9XG4gIC8qKiBNZW1iZXIgcHJvcGVydGllcyBmb3IgdGhpcyBtZXNzYWdlJ3MgYXV0aG9yIE5vdGU6IFRoZSBtZW1iZXIgb2JqZWN0IGV4aXN0cyBpbiBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzIGZyb20gdGV4dC1iYXNlZCBndWlsZCBjaGFubmVscy4gVGhpcyBhbGxvd3MgYm90cyB0byBvYnRhaW4gcmVhbC10aW1lIG1lbWJlciBkYXRhIHdpdGhvdXQgcmVxdWlyaW5nIGJvdHMgdG8gc3RvcmUgbWVtYmVyIHN0YXRlIGluIG1lbW9yeS4gKi9cbiAgbWVtYmVyPzogTWVtYmVyXG4gIC8qKiBVc2VycyBzcGVjaWZpY2FsbHkgbWVudGlvbmVkIGluIHRoZSBtZXNzYWdlIE5vdGU6IFRoZSB1c2VyIG9iamVjdHMgaW4gdGhlIG1lbnRpb25zIGFycmF5IHdpbGwgb25seSBoYXZlIHRoZSBwYXJ0aWFsIG1lbWJlciBmaWVsZCBwcmVzZW50IGluIE1FU1NBR0VfQ1JFQVRFIGFuZCBNRVNTQUdFX1VQREFURSBldmVudHMgZnJvbSB0ZXh0LWJhc2VkIGd1aWxkIGNoYW5uZWxzLiAqL1xuICBtZW50aW9ucz86IFVzZXJbXVxuICAvKiogQ2hhbm5lbHMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGlzIG1lc3NhZ2UgTm90ZTogTm90IGFsbCBjaGFubmVsIG1lbnRpb25zIGluIGEgbWVzc2FnZSB3aWxsIGFwcGVhciBpbiBtZW50aW9uX2NoYW5uZWxzLiBPbmx5IHRleHR1YWwgY2hhbm5lbHMgdGhhdCBhcmUgdmlzaWJsZSB0byBldmVyeW9uZSBpbiBhIGRpc2NvdmVyYWJsZSBndWlsZCB3aWxsIGV2ZXIgYmUgaW5jbHVkZWQuIE9ubHkgY3Jvc3Nwb3N0ZWQgbWVzc2FnZXMgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgY3VycmVudGx5IGluY2x1ZGUgbWVudGlvbl9jaGFubmVscyBhdCBhbGwuIElmIG5vIG1lbnRpb25zIGluIHRoZSBtZXNzYWdlIG1lZXQgdGhlc2UgcmVxdWlyZW1lbnRzLCB0aGlzIGZpZWxkIHdpbGwgbm90IGJlIHNlbnQuICovXG4gIG1lbnRpb25lZENoYW5uZWxJZHM/OiBiaWdpbnRbXVxuICAvKiogUm9sZXMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGlzIG1lc3NhZ2UgKi9cbiAgbWVudGlvbmVkUm9sZUlkcz86IGJpZ2ludFtdXG4gIC8qKiBEYXRhIHNob3dpbmcgdGhlIHNvdXJjZSBvZiBhIGNyb3NzcG9zdGVkIGNoYW5uZWwgZm9sbG93IGFkZCwgcGluIG9yIHJlcGx5IG1lc3NhZ2UgKi9cbiAgbWVzc2FnZVJlZmVyZW5jZT86IHtcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UncyBjaGFubmVsIE5vdGU6IGNoYW5uZWxfaWQgaXMgb3B0aW9uYWwgd2hlbiBjcmVhdGluZyBhIHJlcGx5LCBidXQgd2lsbCBhbHdheXMgYmUgcHJlc2VudCB3aGVuIHJlY2VpdmluZyBhbiBldmVudC9yZXNwb25zZSB0aGF0IGluY2x1ZGVzIHRoaXMgZGF0YSBtb2RlbC4gKi9cbiAgICBjaGFubmVsSWQ/OiBiaWdpbnRcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UncyBndWlsZCAqL1xuICAgIGd1aWxkSWQ/OiBiaWdpbnRcbiAgICAvKiogaWQgb2YgdGhlIG9yaWdpbmF0aW5nIG1lc3NhZ2UgKi9cbiAgICBtZXNzYWdlSWQ/OiBiaWdpbnRcbiAgfVxuICAvKiogVXNlZCBmb3IgdmFsaWRhdGluZyBhIG1lc3NhZ2Ugd2FzIHNlbnQgKi9cbiAgbm9uY2U/OiBzdHJpbmcgfCBudW1iZXJcbiAgLyoqIFJlYWN0aW9ucyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIHJlYWN0aW9ucz86IEFycmF5PHtcbiAgICAvKiogV2hldGhlciB0aGUgY3VycmVudCB1c2VyIHJlYWN0ZWQgdXNpbmcgdGhpcyBlbW9qaSAqL1xuICAgIG1lOiBib29sZWFuXG4gICAgLyoqXHRXaGV0aGVyIHRoZSBjdXJyZW50IHVzZXIgc3VwZXItcmVhY3RlZCB1c2luZyB0aGlzIGVtb2ppICovXG4gICAgbWVCdXJzdDogYm9vbGVhblxuICAgIC8qKiBUaW1lcyB0aGlzIGVtb2ppIGhhcyBiZWVuIHVzZWQgdG8gcmVhY3QgKi9cbiAgICBjb3VudDogbnVtYmVyXG4gICAgLyoqXHRSZWFjdGlvbiBjb3VudCBkZXRhaWxzIG9iamVjdCAqL1xuICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgLyoqIENvdW50IG9mIHN1cGVyIHJlYWN0aW9ucyAqL1xuICAgICAgYnVyc3Q6IG51bWJlclxuICAgICAgLyoqXHRDb3VudCBvZiBub3JtYWwgcmVhY3Rpb25zICovXG4gICAgICBub3JtYWw6IG51bWJlclxuICAgIH1cbiAgICAvKiogRW1vamkgaW5mb3JtYXRpb24gKi9cbiAgICBlbW9qaTogRW1vamlcbiAgICAvKiogSEVYIGNvbG9ycyB1c2VkIGZvciBzdXBlciByZWFjdGlvbiAqL1xuICAgIGJ1cnN0Q29sb3JzOiBzdHJpbmdbXVxuICB9PlxuICAvKiogU2VudCBpZiB0aGUgbWVzc2FnZSBjb250YWlucyBzdGlja2VycyAqL1xuICBzdGlja2VySXRlbXM/OiBBcnJheTx7XG4gICAgLyoqIFRoZSBpZCBvZiB0aGlzIHN0aWNrZXIuICovXG4gICAgaWQ6IGJpZ2ludFxuICAgIC8qKiBUaGUgbmFtZSBvZiB0aGlzIHN0aWNrZXIuICovXG4gICAgbmFtZTogc3RyaW5nXG4gICAgLyoqIFRoZSB0eXBlIG9mIHRoaXMgc3RpY2tlcnMgZm9ybWF0LiAqL1xuICAgIGZvcm1hdFR5cGU6IFN0aWNrZXJGb3JtYXRUeXBlc1xuICB9PlxuICAvKiogVHlwZSBvZiBtZXNzYWdlICovXG4gIHR5cGU6IE1lc3NhZ2VUeXBlc1xuICAvKiogVGhlIHRocmVhZCB0aGF0IHdhcyBzdGFydGVkIGZyb20gdGhpcyBtZXNzYWdlLCBpbmNsdWRlcyB0aHJlYWQgbWVtYmVyIG9iamVjdCAgKi9cbiAgdGhyZWFkPzogQ2hhbm5lbFxuICAvKiogSWYgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vaywgdGhpcyBpcyB0aGUgd2ViaG9vaydzIGlkICovXG4gIHdlYmhvb2tJZD86IGJpZ2ludFxuICAvKiogQSBwb2xsISAqL1xuICBwb2xsPzogUG9sbFxuICAvKiogVGhlIGNhbGwgYXNzb2NpYXRlZCB3aXRoIHRoZSBtZXNzYWdlICovXG4gIGNhbGw/OiBNZXNzYWdlQ2FsbFxufVxuXG5jb25zdCBFTVBUWV9TVFJJTkcgPSAnJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2UpOiBNZXNzYWdlIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZClcblxuICBjb25zdCBtZXNzYWdlOiBNZXNzYWdlID0gT2JqZWN0LmNyZWF0ZShiYXNlTWVzc2FnZSlcbiAgbWVzc2FnZS5iaXRmaWVsZCA9IG5ldyBUb2dnbGVCaXRmaWVsZCgpXG4gIG1lc3NhZ2UuZmxhZ3MgPSBuZXcgVG9nZ2xlQml0ZmllbGQocGF5bG9hZC5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5hdXRob3IpIG1lc3NhZ2UuYXV0aG9yID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5hdXRob3IpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuYXBwbGljYXRpb25faWQpIG1lc3NhZ2UuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLmF0dGFjaG1lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5hdHRhY2htZW50cyA9IHBheWxvYWQuYXR0YWNobWVudHMubWFwKChhdHRhY2htZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmF0dGFjaG1lbnQoYm90LCBhdHRhY2htZW50KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxJZCAmJiBwYXlsb2FkLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHM/Lmxlbmd0aCkgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wKSlcbiAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKVxuICBpZiAocHJvcHMuZW1iZWRzICYmIHBheWxvYWQuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5lbWJlZHMubWFwKChlbWJlZCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbWJlZChib3QsIGVtYmVkKSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKSBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGxldCBlZGl0ZWQgPSBmYWxzZVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24ubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IHBhcnRpYWwgLSBjaGVjayB3aHkgdGhpcyBpcyBwYXJ0aWFsIGFuZCBoYW5kbGUgYXMgbmVlZGVkXG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLmludGVyYWN0aW9uLnVzZXIuaWQpXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi50eXBlKSB7XG4gICAgICBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5pbnRlcmFjdGlvbi51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChlZGl0ZWQpIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvblxuICB9XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiBwYXlsb2FkLm1lbWJlcikgbWVzc2FnZS5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lbnRpb25fZXZlcnlvbmUpIG1lc3NhZ2UubWVudGlvbkV2ZXJ5b25lID0gdHJ1ZVxuICBpZiAocHJvcHMubWVudGlvbmVkQ2hhbm5lbElkcyAmJiBwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHM/Lmxlbmd0aCkge1xuICAgIG1lc3NhZ2UubWVudGlvbmVkQ2hhbm5lbElkcyA9IFtcbiAgICAgIC8vIEtlZXAgYW55IGlkcyB0aHQgZGlzY29yZCBzZW5kc1xuICAgICAgLi4uKHBheWxvYWQubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5jb250ZW50Py5tYXRjaChDSEFOTkVMX01FTlRJT05fUkVHRVgpID8/IFtdKS5tYXAoKHRleHQpID0+XG4gICAgICAgIC8vIGNvbnZlcnRzIHRoZSA8IzEyMz4gaW50byAxMjNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UodGV4dC5zdWJzdHJpbmcoMiwgdGV4dC5sZW5ndGggLSAxKSksXG4gICAgICApLFxuICAgIF1cbiAgfVxuICBpZiAocHJvcHMubWVudGlvbmVkUm9sZUlkcyAmJiBwYXlsb2FkLm1lbnRpb25fcm9sZXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLm1lbnRpb25lZFJvbGVJZHMgPSBwYXlsb2FkLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZW50aW9ucz8ubGVuZ3RoKSBtZXNzYWdlLm1lbnRpb25zID0gcGF5bG9hZC5tZW50aW9ucy5tYXAoKHVzZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHVzZXIpKVxuICBpZiAocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZSkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ21lc3NhZ2VSZWZlcmVuY2UnXT5cbiAgICBsZXQgZWRpdGVkID0gZmFsc2VcblxuICAgIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlLmNoYW5uZWxJZCAmJiBwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpXG4gICAgICBlZGl0ZWQgPSB0cnVlXG4gICAgfVxuICAgIGlmIChwcm9wcy5tZXNzYWdlUmVmZXJlbmNlLmd1aWxkSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2VfcmVmZXJlbmNlLmd1aWxkX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cblxuICAgIGlmIChlZGl0ZWQpIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZVxuICB9XG4gIGlmIChwcm9wcy5ub25jZSAmJiBwYXlsb2FkLm5vbmNlKSBtZXNzYWdlLm5vbmNlID0gcGF5bG9hZC5ub25jZVxuICBpZiAocGF5bG9hZC5waW5uZWQpIG1lc3NhZ2UucGlubmVkID0gdHJ1ZVxuICBpZiAocHJvcHMucmVhY3Rpb25zICYmIHBheWxvYWQucmVhY3Rpb25zPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLnJlYWN0aW9ucyA9IHBheWxvYWQucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLnN0aWNrZXJfaXRlbXM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLnN0aWNrZXJJdGVtcyA9IHBheWxvYWQuc3RpY2tlcl9pdGVtcy5tYXAoKGl0ZW0pID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaXRlbS5pZCksXG4gICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICBmb3JtYXRUeXBlOiBpdGVtLmZvcm1hdF90eXBlLFxuICAgIH0pKVxuICBpZiAocGF5bG9hZC50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQudGhyZWFkKSBtZXNzYWdlLnRocmVhZCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogcGF5bG9hZC50aHJlYWQsIGd1aWxkSWQgfSlcbiAgaWYgKHByb3BzLnR5cGUpIG1lc3NhZ2UudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQud2ViaG9va19pZCkgbWVzc2FnZS53ZWJob29rSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLndlYmhvb2tfaWQpXG4gIGlmIChwcm9wcy5wb2xsICYmIHBheWxvYWQucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5wb2xsKVxuICBpZiAocHJvcHMuY2FsbCAmJiBwYXlsb2FkLmNhbGwpIG1lc3NhZ2UuY2FsbCA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQsIG1lc3NhZ2UpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKTogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhXG4gIGNvbnN0IG1ldGFkYXRhID0ge30gYXMgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgJiYgcGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICAgIG1ldGFkYXRhLm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy50cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSAmJiBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSB0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXJJZCkgbWV0YWRhdGEudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VDYWxsKTogTWVzc2FnZUNhbGwge1xuICBjb25zdCBjYWxsID0ge30gYXMgTWVzc2FnZUNhbGxcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2UuY2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEge1xuICAvKiogSWQgb2YgdGhlIGludGVyYWN0aW9uICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFRoZSB0eXBlIG9mIGludGVyYWN0aW9uICovXG4gIHR5cGU6IEludGVyYWN0aW9uVHlwZXNcbiAgLyoqIElEIG9mIHRoZSB1c2VyIHdobyB0cmlnZ2VyZWQgdGhlIGludGVyYWN0aW9uICovXG4gIHVzZXJJZDogYmlnaW50XG4gIC8qKiBJRHMgZm9yIGluc3RhbGxhdGlvbiBjb250ZXh0KHMpIHJlbGF0ZWQgdG8gYW4gaW50ZXJhY3Rpb24gKi9cbiAgYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVyczogUGFydGlhbDxSZWNvcmQ8RGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLCBiaWdpbnQ+PlxuICAvKiogSUQgb2YgdGhlIG9yaWdpbmFsIHJlc3BvbnNlIG1lc3NhZ2UsIHByZXNlbnQgb25seSBvbiBmb2xsb3ctdXAgbWVzc2FnZXMgKi9cbiAgb3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogSUQgb2YgdGhlIG1lc3NhZ2UgdGhhdCBjb250YWluZWQgaW50ZXJhY3RpdmUgY29tcG9uZW50LCBwcmVzZW50IG9ubHkgb24gbWVzc2FnZXMgY3JlYXRlZCBmcm9tIGNvbXBvbmVudCBpbnRlcmFjdGlvbnMgKi9cbiAgaW50ZXJhY3RlZE1lc3NhZ2VJZD86IGJpZ2ludFxuICAvKiogTWV0YWRhdGEgZm9yIHRoZSBpbnRlcmFjdGlvbiB0aGF0IHdhcyB1c2VkIHRvIG9wZW4gdGhlIG1vZGFsLCBwcmVzZW50IG9ubHkgb24gbW9kYWwgc3VibWl0IGludGVyYWN0aW9ucyAqL1xuICB0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YT86IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUNhbGwge1xuICAvKiogQXJyYXkgb2YgdXNlciBvYmplY3QgaWRzIHRoYXQgcGFydGljaXBhdGVkIGluIHRoZSBjYWxsICovXG4gIHBhcnRpY2lwYW50czogYmlnaW50W11cbiAgLyoqIFRpbWUgd2hlbiBjYWxsIGVuZGVkICovXG4gIGVuZGVkVGltZXN0YW1wOiBudW1iZXJcbn1cbiJdLCJuYW1lcyI6WyJEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUiLCJDSEFOTkVMX01FTlRJT05fUkVHRVgiLCJzbm93Zmxha2VUb1RpbWVzdGFtcCIsIk1lc3NhZ2VGbGFncyIsIlRvZ2dsZUJpdGZpZWxkIiwiYmFzZU1lc3NhZ2UiLCJjcm9zc3Bvc3RlZCIsImZsYWdzIiwiY29udGFpbnMiLCJDcm9zc3Bvc3RlZCIsInZhbHVlIiwiYWRkIiwicmVtb3ZlIiwiZXBoZW1lcmFsIiwiRXBoZW1lcmFsIiwiZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJGYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsImhhc1RocmVhZCIsIkhhc1RocmVhZCIsImlzQ3Jvc3Nwb3N0IiwiSXNDcm9zc3Bvc3QiLCJsb2FkaW5nIiwiTG9hZGluZyIsIm1lbnRpb25lZFVzZXJJZHMiLCJtZW50aW9ucyIsIm1hcCIsInVzZXIiLCJpZCIsIm1lbnRpb25FdmVyeW9uZSIsImJpdGZpZWxkIiwicGlubmVkIiwic291cmNlTWVzc2FnZURlbGV0ZWQiLCJTb3VyY2VNZXNzYWdlRGVsZXRlZCIsInN1cHByZXNzRW1iZWRzIiwiU3VwcHJlc3NFbWJlZHMiLCJzdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJTdXBwcmVzc05vdGlmaWNhdGlvbnMiLCJ0aW1lc3RhbXAiLCJ0dHMiLCJ1cmdlbnQiLCJVcmdlbnQiLCJFTVBUWV9TVFJJTkciLCJ0cmFuc2Zvcm1NZXNzYWdlIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVuZGVmaW5lZCIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uX21ldGFkYXRhIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJlZGl0ZWQiLCJtZW1iZXIiLCJuYW1lIiwidHlwZSIsIm1lbnRpb25fZXZlcnlvbmUiLCJtZW50aW9uZWRDaGFubmVsSWRzIiwibWVudGlvbl9jaGFubmVscyIsIm0iLCJtYXRjaCIsInRleHQiLCJzdWJzdHJpbmciLCJtZW50aW9uZWRSb2xlSWRzIiwibWVudGlvbl9yb2xlcyIsIm1lc3NhZ2VfcmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWVzc2FnZVJlZmVyZW5jZSIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2VfaWQiLCJub25jZSIsInJlYWN0aW9ucyIsInJlYWN0aW9uIiwibWUiLCJtZUJ1cnN0IiwibWVfYnVyc3QiLCJjb3VudCIsImNvdW50RGV0YWlscyIsImJ1cnN0IiwiY291bnRfZGV0YWlscyIsIm5vcm1hbCIsImVtb2ppIiwiYnVyc3RDb2xvcnMiLCJidXJzdF9jb2xvcnMiLCJzdGlja2VySXRlbXMiLCJzdGlja2VyX2l0ZW1zIiwiaXRlbSIsImZvcm1hdFR5cGUiLCJmb3JtYXRfdHlwZSIsInRocmVhZCIsImNoYW5uZWwiLCJ3ZWJob29rSWQiLCJ3ZWJob29rX2lkIiwicG9sbCIsImNhbGwiLCJtZXNzYWdlQ2FsbCIsImN1c3RvbWl6ZXJzIiwibWV0YWRhdGEiLCJhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzIiwiYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzIiwiR3VpbGRJbnN0YWxsIiwiVXNlckluc3RhbGwiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ1c2VyX2lkIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FDRUEsaUNBQWlDLFFBUTVCLG9CQUFtQjtBQUMxQixTQUFTQyxxQkFBcUIsUUFBUSxrQkFBaUI7QUFDdkQsU0FBU0Msb0JBQW9CLFFBQTZCLGNBQWE7QUFDdkUsU0FBU0MsWUFBWSxRQUFRLGdCQUFlO0FBTzVDLFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFHNUQsTUFBTUMsY0FBOEM7SUFDbEQsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTTCxhQUFhTSxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDUixhQUFhTSxXQUFXO2FBQzdDLElBQUksQ0FBQ0YsS0FBSyxDQUFDSyxNQUFNLENBQUNULGFBQWFNLFdBQVc7SUFDakQ7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
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIE1lc3NhZ2VGbGFncyxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUNhbGwsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLFxuICB0eXBlIEludGVyYWN0aW9uVHlwZXMsXG4gIHR5cGUgTWVzc2FnZUFjdGl2aXR5VHlwZXMsXG4gIHR5cGUgTWVzc2FnZVR5cGVzLFxuICB0eXBlIFN0aWNrZXJGb3JtYXRUeXBlcyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBDSEFOTkVMX01FTlRJT05fUkVHRVggfSBmcm9tICcuLi9jb25zdGFudHMuanMnXG5pbXBvcnQgeyBzbm93Zmxha2VUb1RpbWVzdGFtcCwgdHlwZSBCb3QsIHR5cGUgUG9sbCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHR5cGUgeyBBdHRhY2htZW50IH0gZnJvbSAnLi9hdHRhY2htZW50LmpzJ1xuaW1wb3J0IHR5cGUgeyBDaGFubmVsIH0gZnJvbSAnLi9jaGFubmVsLmpzJ1xuaW1wb3J0IHR5cGUgeyBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudC5qcydcbmltcG9ydCB0eXBlIHsgRW1iZWQgfSBmcm9tICcuL2VtYmVkLmpzJ1xuaW1wb3J0IHR5cGUgeyBFbW9qaSB9IGZyb20gJy4vZW1vamkuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4vbWVtYmVyLmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5pbXBvcnQgdHlwZSB7IFVzZXIgfSBmcm9tICcuL3VzZXIuanMnXG5cbmNvbnN0IGJhc2VNZXNzYWdlOiBQYXJ0aWFsPE1lc3NhZ2U+ICYgTWVzc2FnZUJhc2UgPSB7XG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZUJhc2Uge1xuICAvKiogSG9sZHMgYWxsIHRoZSBib29sZWFuIHZhbHVlcyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIGJpdGZpZWxkPzogVG9nZ2xlQml0ZmllbGRcbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGhhcyBiZWVuIHB1Ymxpc2hlZCB0byBzdWJzY3JpYmVkIGNoYW5uZWxzICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpICovXG4gIGNyb3NzcG9zdGVkOiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBvbmx5IHZpc2libGUgdG8gdGhlIHVzZXIgd2hvIGludm9rZWQgdGhlIEludGVyYWN0aW9uICovXG4gIGVwaGVtZXJhbDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgZmFpbGVkIHRvIG1lbnRpb24gc29tZSByb2xlcyBhbmQgYWRkIHRoZWlyIG1lbWJlcnMgdG8gdGhlIHRocmVhZCAqL1xuICBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZDogYm9vbGVhblxuICAvKiogTWVzc2FnZSBmbGFncyBjb21iaW5lZCBhcyBhIGJpdGZpZWxkICovXG4gIGZsYWdzPzogVG9nZ2xlQml0ZmllbGRcbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGhhcyBhbiBhc3NvY2lhdGVkIHRocmVhZCwgd2l0aCB0aGUgc2FtZSBpZCBhcyB0aGUgbWVzc2FnZSAqL1xuICBoYXNUaHJlYWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIG9yaWdpbmF0ZWQgZnJvbSBhIG1lc3NhZ2UgaW4gYW5vdGhlciBjaGFubmVsICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpICovXG4gIGlzQ3Jvc3Nwb3N0OiBib29sZWFuXG4gIC8qKiBXaGV0aGVyIHRoaXMgbWVzc2FnZSBpcyBhbiBJbnRlcmFjdGlvbiBSZXNwb25zZSBhbmQgdGhlIGJvdCBpcyBcInRoaW5raW5nXCIgKi9cbiAgbG9hZGluZzogYm9vbGVhblxuICAvKiogVGhlIGlkcyBvZiB0aGUgdXNlcnMgd2hvIHdlcmUgbWVudGlvbmVkIGluIHRoaXMgbWVzc2FnZS4gKi9cbiAgbWVudGlvbmVkVXNlcklkczogYmlnaW50W11cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIG1lbnRpb25zIGV2ZXJ5b25lICovXG4gIG1lbnRpb25FdmVyeW9uZTogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2UgaXMgcGlubmVkICovXG4gIHBpbm5lZDogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGUgc291cmNlIG1lc3NhZ2UgZm9yIHRoaXMgY3Jvc3Nwb3N0IGhhcyBiZWVuIGRlbGV0ZWQgKHZpYSBDaGFubmVsIEZvbGxvd2luZykgKi9cbiAgc291cmNlTWVzc2FnZURlbGV0ZWQ6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgZG8gbm90IGluY2x1ZGUgYW55IGVtYmVkcyB3aGVuIHNlcmlhbGl6aW5nIHRoaXMgbWVzc2FnZSAqL1xuICBzdXBwcmVzc0VtYmVkczogYm9vbGVhblxuICAvKiogV2hldGhlciB0aGlzIG1lc3NhZ2Ugd2lsbCBub3QgdHJpZ2dlciBwdXNoIGFuZCBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgKi9cbiAgc3VwcHJlc3NOb3RpZmljYXRpb25zOiBib29sZWFuXG4gIC8qKiBUaGUgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoaXMgbWVzc2FnZSB3YXMgY3JlYXRlZCAqL1xuICB0aW1lc3RhbXA6IG51bWJlclxuICAvKiogV2hldGhlciB0aGlzIHdhcyBhIFRUUyBtZXNzYWdlLiAqL1xuICB0dHM6IGJvb2xlYW5cbiAgLyoqIFdoZXRoZXIgdGhpcyBtZXNzYWdlIGNhbWUgZnJvbSB0aGUgdXJnZW50IG1lc3NhZ2Ugc3lzdGVtICovXG4gIHVyZ2VudDogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2UgZXh0ZW5kcyBNZXNzYWdlQmFzZSB7XG4gIC8qKiBTZW50IHdpdGggUmljaCBQcmVzZW5jZS1yZWxhdGVkIGNoYXQgZW1iZWRzICovXG4gIGFjdGl2aXR5Pzoge1xuICAgIC8qKiBUeXBlIG9mIG1lc3NhZ2UgYWN0aXZpdHkgKi9cbiAgICB0eXBlOiBNZXNzYWdlQWN0aXZpdHlUeXBlc1xuICAgIC8qKiBwYXJ0eV9pZCBmcm9tIGEgUmljaCBQcmVzZW5jZSBldmVudCAqL1xuICAgIHBhcnR5SWQ/OiBzdHJpbmdcbiAgfVxuICAvKiogaWYgdGhlIG1lc3NhZ2UgaXMgYW4gSW50ZXJhY3Rpb24gb3IgYXBwbGljYXRpb24tb3duZWQgd2ViaG9vaywgdGhpcyBpcyB0aGUgaWQgb2YgdGhlIGFwcGxpY2F0aW9uICovXG4gIGFwcGxpY2F0aW9uSWQ/OiBiaWdpbnRcbiAgLyoqIEFueSBhdHRhY2hlZCBmaWxlcyBvbiB0aGlzIG1lc3NhZ2UuICovXG4gIGF0dGFjaG1lbnRzPzogQXR0YWNobWVudFtdXG4gIC8qKiBUaGUgYXV0aG9yIG9mIHRoaXMgbWVzc2FnZSAobm90IGd1YXJhbnRlZWQgdG8gYmUgYSB2YWxpZCB1c2VyKSBOb3RlOiBUaGUgYXV0aG9yIG9iamVjdCBmb2xsb3dzIHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIHVzZXIgb2JqZWN0LCBidXQgaXMgb25seSBhIHZhbGlkIHVzZXIgaW4gdGhlIGNhc2Ugd2hlcmUgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgdXNlciBvciBib3QgdXNlci4gSWYgdGhlIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vaywgdGhlIGF1dGhvciBvYmplY3QgY29ycmVzcG9uZHMgdG8gdGhlIHdlYmhvb2sncyBpZCwgdXNlcm5hbWUsIGFuZCBhdmF0YXIuIFlvdSBjYW4gdGVsbCBpZiBhIG1lc3NhZ2UgaXMgZ2VuZXJhdGVkIGJ5IGEgd2ViaG9vayBieSBjaGVja2luZyBmb3IgdGhlIHdlYmhvb2tfaWQgb24gdGhlIG1lc3NhZ2Ugb2JqZWN0LiAqL1xuICBhdXRob3I6IFVzZXJcbiAgLyoqIGlkIG9mIHRoZSBjaGFubmVsIHRoZSBtZXNzYWdlIHdhcyBzZW50IGluICovXG4gIGNoYW5uZWxJZDogYmlnaW50XG4gIC8qKiBUaGUgY29tcG9uZW50cyByZWxhdGVkIHRvIHRoaXMgbWVzc2FnZSAqL1xuICBjb21wb25lbnRzOiBDb21wb25lbnRbXVxuICAvKiogQ29udGVudHMgb2YgdGhlIG1lc3NhZ2UgKi9cbiAgY29udGVudDogc3RyaW5nXG4gIC8qKiBUaGUgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyB3aGVuIHRoaXMgbWVzc2FnZSB3YXMgZWRpdGVkIGxhc3QuICovXG4gIGVkaXRlZFRpbWVzdGFtcD86IG51bWJlclxuICAvKiogQW55IGVtYmVkZGVkIGNvbnRlbnQgKi9cbiAgZW1iZWRzPzogRW1iZWRbXVxuICAvKiogaWQgb2YgdGhlIGd1aWxkIHRoZSBtZXNzYWdlIHdhcyBzZW50IGluIE5vdGU6IEZvciBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzLCB0aGUgbWVzc2FnZSBvYmplY3QgbWF5IG5vdCBjb250YWluIGEgZ3VpbGRfaWQgb3IgbWVtYmVyIGZpZWxkIHNpbmNlIHRoZSBldmVudHMgYXJlIHNlbnQgZGlyZWN0bHkgdG8gdGhlIHJlY2VpdmluZyB1c2VyIGFuZCB0aGUgYm90IHdobyBzZW50IHRoZSBtZXNzYWdlLCByYXRoZXIgdGhhbiBiZWluZyBzZW50IHRocm91Z2ggdGhlIGd1aWxkIGxpa2Ugbm9uLWVwaGVtZXJhbCBtZXNzYWdlcy4gKi9cbiAgZ3VpbGRJZD86IGJpZ2ludFxuICAvKiogaWQgb2YgdGhlIG1lc3NhZ2UgKi9cbiAgaWQ6IGJpZ2ludFxuICAvKiogc2VudCBpZiB0aGUgbWVzc2FnZSBpcyBzZW50IGFzIGEgcmVzdWx0IG9mIGFuIGludGVyYWN0aW9uICovXG4gIGludGVyYWN0aW9uTWV0YWRhdGE/OiBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICAvKipcbiAgICogU2VudCBpZiB0aGUgbWVzc2FnZSBpcyBhIHJlc3BvbnNlIHRvIGFuIEludGVyYWN0aW9uXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIERlcHJlY2F0ZWQgaW4gZmF2b3Igb2Yge0BsaW5rIGludGVyYWN0aW9uTWV0YWRhdGF9XG4gICAqL1xuICBpbnRlcmFjdGlvbj86IHtcbiAgICAvKiogSWQgb2YgdGhlIGludGVyYWN0aW9uICovXG4gICAgaWQ6IGJpZ2ludFxuICAgIC8qKiBUaGUgbWVtYmVyIHdobyBpbnZva2VkIHRoZSBpbnRlcmFjdGlvbiBpbiB0aGUgZ3VpbGQgICovXG4gICAgbWVtYmVyPzogTWVtYmVyXG4gICAgLyoqIFRoZSBuYW1lIG9mIHRoZSBBcHBsaWNhdGlvbkNvbW1hbmQgaW5jbHVkaW5nIHRoZSBuYW1lIG9mIHRoZSBzdWJjb21tYW5kL3N1YmNvbW1hbmQgZ3JvdXAgKi9cbiAgICBuYW1lOiBzdHJpbmdcbiAgICAvKiogVGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gKi9cbiAgICB0eXBlOiBJbnRlcmFjdGlvblR5cGVzXG4gICAgLyoqIFRoZSB1c2VyIHdobyBpbnZva2VkIHRoZSBpbnRlcmFjdGlvbiAqL1xuICAgIHVzZXI6IFVzZXJcbiAgfVxuICAvKiogTWVtYmVyIHByb3BlcnRpZXMgZm9yIHRoaXMgbWVzc2FnZSdzIGF1dGhvciBOb3RlOiBUaGUgbWVtYmVyIG9iamVjdCBleGlzdHMgaW4gTUVTU0FHRV9DUkVBVEUgYW5kIE1FU1NBR0VfVVBEQVRFIGV2ZW50cyBmcm9tIHRleHQtYmFzZWQgZ3VpbGQgY2hhbm5lbHMuIFRoaXMgYWxsb3dzIGJvdHMgdG8gb2J0YWluIHJlYWwtdGltZSBtZW1iZXIgZGF0YSB3aXRob3V0IHJlcXVpcmluZyBib3RzIHRvIHN0b3JlIG1lbWJlciBzdGF0ZSBpbiBtZW1vcnkuICovXG4gIG1lbWJlcj86IE1lbWJlclxuICAvKiogVXNlcnMgc3BlY2lmaWNhbGx5IG1lbnRpb25lZCBpbiB0aGUgbWVzc2FnZSBOb3RlOiBUaGUgdXNlciBvYmplY3RzIGluIHRoZSBtZW50aW9ucyBhcnJheSB3aWxsIG9ubHkgaGF2ZSB0aGUgcGFydGlhbCBtZW1iZXIgZmllbGQgcHJlc2VudCBpbiBNRVNTQUdFX0NSRUFURSBhbmQgTUVTU0FHRV9VUERBVEUgZXZlbnRzIGZyb20gdGV4dC1iYXNlZCBndWlsZCBjaGFubmVscy4gKi9cbiAgbWVudGlvbnM/OiBVc2VyW11cbiAgLyoqIENoYW5uZWxzIHNwZWNpZmljYWxseSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlIE5vdGU6IE5vdCBhbGwgY2hhbm5lbCBtZW50aW9ucyBpbiBhIG1lc3NhZ2Ugd2lsbCBhcHBlYXIgaW4gbWVudGlvbl9jaGFubmVscy4gT25seSB0ZXh0dWFsIGNoYW5uZWxzIHRoYXQgYXJlIHZpc2libGUgdG8gZXZlcnlvbmUgaW4gYSBkaXNjb3ZlcmFibGUgZ3VpbGQgd2lsbCBldmVyIGJlIGluY2x1ZGVkLiBPbmx5IGNyb3NzcG9zdGVkIG1lc3NhZ2VzICh2aWEgQ2hhbm5lbCBGb2xsb3dpbmcpIGN1cnJlbnRseSBpbmNsdWRlIG1lbnRpb25fY2hhbm5lbHMgYXQgYWxsLiBJZiBubyBtZW50aW9ucyBpbiB0aGUgbWVzc2FnZSBtZWV0IHRoZXNlIHJlcXVpcmVtZW50cywgdGhpcyBmaWVsZCB3aWxsIG5vdCBiZSBzZW50LiAqL1xuICBtZW50aW9uZWRDaGFubmVsSWRzPzogYmlnaW50W11cbiAgLyoqIFJvbGVzIHNwZWNpZmljYWxseSBtZW50aW9uZWQgaW4gdGhpcyBtZXNzYWdlICovXG4gIG1lbnRpb25lZFJvbGVJZHM/OiBiaWdpbnRbXVxuICAvKiogRGF0YSBzaG93aW5nIHRoZSBzb3VyY2Ugb2YgYSBjcm9zc3Bvc3RlZCBjaGFubmVsIGZvbGxvdyBhZGQsIHBpbiBvciByZXBseSBtZXNzYWdlICovXG4gIG1lc3NhZ2VSZWZlcmVuY2U/OiB7XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlJ3MgY2hhbm5lbCBOb3RlOiBjaGFubmVsX2lkIGlzIG9wdGlvbmFsIHdoZW4gY3JlYXRpbmcgYSByZXBseSwgYnV0IHdpbGwgYWx3YXlzIGJlIHByZXNlbnQgd2hlbiByZWNlaXZpbmcgYW4gZXZlbnQvcmVzcG9uc2UgdGhhdCBpbmNsdWRlcyB0aGlzIGRhdGEgbW9kZWwuICovXG4gICAgY2hhbm5lbElkPzogYmlnaW50XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlJ3MgZ3VpbGQgKi9cbiAgICBndWlsZElkPzogYmlnaW50XG4gICAgLyoqIGlkIG9mIHRoZSBvcmlnaW5hdGluZyBtZXNzYWdlICovXG4gICAgbWVzc2FnZUlkPzogYmlnaW50XG4gIH1cbiAgLyoqIFVzZWQgZm9yIHZhbGlkYXRpbmcgYSBtZXNzYWdlIHdhcyBzZW50ICovXG4gIG5vbmNlPzogc3RyaW5nIHwgbnVtYmVyXG4gIC8qKiBSZWFjdGlvbnMgb24gdGhpcyBtZXNzYWdlLiAqL1xuICByZWFjdGlvbnM/OiBBcnJheTx7XG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgdXNlciByZWFjdGVkIHVzaW5nIHRoaXMgZW1vamkgKi9cbiAgICBtZTogYm9vbGVhblxuICAgIC8qKlx0V2hldGhlciB0aGUgY3VycmVudCB1c2VyIHN1cGVyLXJlYWN0ZWQgdXNpbmcgdGhpcyBlbW9qaSAqL1xuICAgIG1lQnVyc3Q6IGJvb2xlYW5cbiAgICAvKiogVGltZXMgdGhpcyBlbW9qaSBoYXMgYmVlbiB1c2VkIHRvIHJlYWN0ICovXG4gICAgY291bnQ6IG51bWJlclxuICAgIC8qKlx0UmVhY3Rpb24gY291bnQgZGV0YWlscyBvYmplY3QgKi9cbiAgICBjb3VudERldGFpbHM6IHtcbiAgICAgIC8qKiBDb3VudCBvZiBzdXBlciByZWFjdGlvbnMgKi9cbiAgICAgIGJ1cnN0OiBudW1iZXJcbiAgICAgIC8qKlx0Q291bnQgb2Ygbm9ybWFsIHJlYWN0aW9ucyAqL1xuICAgICAgbm9ybWFsOiBudW1iZXJcbiAgICB9XG4gICAgLyoqIEVtb2ppIGluZm9ybWF0aW9uICovXG4gICAgZW1vamk6IEVtb2ppXG4gICAgLyoqIEhFWCBjb2xvcnMgdXNlZCBmb3Igc3VwZXIgcmVhY3Rpb24gKi9cbiAgICBidXJzdENvbG9yczogc3RyaW5nW11cbiAgfT5cbiAgLyoqIFNlbnQgaWYgdGhlIG1lc3NhZ2UgY29udGFpbnMgc3RpY2tlcnMgKi9cbiAgc3RpY2tlckl0ZW1zPzogQXJyYXk8e1xuICAgIC8qKiBUaGUgaWQgb2YgdGhpcyBzdGlja2VyLiAqL1xuICAgIGlkOiBiaWdpbnRcbiAgICAvKiogVGhlIG5hbWUgb2YgdGhpcyBzdGlja2VyLiAqL1xuICAgIG5hbWU6IHN0cmluZ1xuICAgIC8qKiBUaGUgdHlwZSBvZiB0aGlzIHN0aWNrZXJzIGZvcm1hdC4gKi9cbiAgICBmb3JtYXRUeXBlOiBTdGlja2VyRm9ybWF0VHlwZXNcbiAgfT5cbiAgLyoqIFR5cGUgb2YgbWVzc2FnZSAqL1xuICB0eXBlOiBNZXNzYWdlVHlwZXNcbiAgLyoqIFRoZSB0aHJlYWQgdGhhdCB3YXMgc3RhcnRlZCBmcm9tIHRoaXMgbWVzc2FnZSwgaW5jbHVkZXMgdGhyZWFkIG1lbWJlciBvYmplY3QgICovXG4gIHRocmVhZD86IENoYW5uZWxcbiAgLyoqIElmIHRoZSBtZXNzYWdlIGlzIGdlbmVyYXRlZCBieSBhIHdlYmhvb2ssIHRoaXMgaXMgdGhlIHdlYmhvb2sncyBpZCAqL1xuICB3ZWJob29rSWQ/OiBiaWdpbnRcbiAgLyoqIEEgcG9sbCEgKi9cbiAgcG9sbD86IFBvbGxcbiAgLyoqIFRoZSBjYWxsIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZSAqL1xuICBjYWxsPzogTWVzc2FnZUNhbGxcbn1cblxuY29uc3QgRU1QVFlfU1RSSU5HID0gJydcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2UoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlKTogTWVzc2FnZSB7XG4gIGNvbnN0IGd1aWxkSWQgPSBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWRcbiAgY29uc3QgdXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdXRob3IuaWQpXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQuZmxhZ3MpXG5cbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VcblxuICBpZiAocHJvcHMuYXV0aG9yICYmIHBheWxvYWQuYXV0aG9yKSBtZXNzYWdlLmF1dGhvciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50ID8/IEVNUFRZX1NUUklOR1xuICBpZiAocHJvcHMuZWRpdGVkVGltZXN0YW1wICYmIHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcCkgbWVzc2FnZS5lZGl0ZWRUaW1lc3RhbXAgPSBEYXRlLnBhcnNlKHBheWxvYWQuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLmVtYmVkcz8ubGVuZ3RoKSBtZXNzYWdlLmVtYmVkcyA9IHBheWxvYWQuZW1iZWRzLm1hcCgoZW1iZWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1iZWQoYm90LCBlbWJlZCkpXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIGd1aWxkSWQpIG1lc3NhZ2UuZ3VpbGRJZCA9IGd1aWxkSWRcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbl9tZXRhZGF0YSkgbWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhID0gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocGF5bG9hZC5pbnRlcmFjdGlvbikge1xuICAgIGNvbnN0IGludGVyYWN0aW9uID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnaW50ZXJhY3Rpb24nXT5cbiAgICBsZXQgZWRpdGVkID0gZmFsc2VcbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24uaWQpIHtcbiAgICAgIGludGVyYWN0aW9uLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGlvbi5pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHByb3BzLmludGVyYWN0aW9uLm1lbWJlciAmJiBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLmludGVyYWN0aW9uLm1lbWJlciwgZ3VpbGRJZCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24ubmFtZSkge1xuICAgICAgaW50ZXJhY3Rpb24ubmFtZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24ubmFtZVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24udHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQuaW50ZXJhY3Rpb24udHlwZVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMuaW50ZXJhY3Rpb24udXNlcikge1xuICAgICAgaW50ZXJhY3Rpb24udXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24udXNlcilcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoZWRpdGVkKSBtZXNzYWdlLmludGVyYWN0aW9uID0gaW50ZXJhY3Rpb25cbiAgfVxuICBpZiAocHJvcHMubWVtYmVyICYmIGd1aWxkSWQgJiYgcGF5bG9hZC5tZW1iZXIpIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lbWJlciwgZ3VpbGRJZCwgdXNlcklkKVxuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWVcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdXG4gIH1cbiAgaWYgKHByb3BzLm1lbnRpb25lZFJvbGVJZHMgJiYgcGF5bG9hZC5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZW50aW9uX3JvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UpIHtcbiAgICBjb25zdCByZWZlcmVuY2UgPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydtZXNzYWdlUmVmZXJlbmNlJ10+XG4gICAgbGV0IGVkaXRlZCA9IGZhbHNlXG5cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5jaGFubmVsX2lkKSB7XG4gICAgICByZWZlcmVuY2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5jaGFubmVsX2lkKVxuICAgICAgZWRpdGVkID0gdHJ1ZVxuICAgIH1cbiAgICBpZiAocHJvcHMubWVzc2FnZVJlZmVyZW5jZS5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG4gICAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZCkge1xuICAgICAgcmVmZXJlbmNlLm1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UubWVzc2FnZV9pZClcbiAgICAgIGVkaXRlZCA9IHRydWVcbiAgICB9XG5cbiAgICBpZiAoZWRpdGVkKSBtZXNzYWdlLm1lc3NhZ2VSZWZlcmVuY2UgPSByZWZlcmVuY2VcbiAgfVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgZW1vamk6IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCByZWFjdGlvbi5lbW9qaSksXG4gICAgICBidXJzdENvbG9yczogcmVhY3Rpb24uYnVyc3RfY29sb3JzLFxuICAgIH0pKVxuICB9XG4gIGlmIChwcm9wcy5zdGlja2VySXRlbXMgJiYgcGF5bG9hZC5zdGlja2VyX2l0ZW1zPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5zdGlja2VySXRlbXMgPSBwYXlsb2FkLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQudHRzKSBtZXNzYWdlLnR0cyA9IHRydWVcbiAgaWYgKHByb3BzLnRocmVhZCAmJiBwYXlsb2FkLnRocmVhZCkgbWVzc2FnZS50aHJlYWQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHBheWxvYWQudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLndlYmhvb2tJZCAmJiBwYXlsb2FkLndlYmhvb2tfaWQpIG1lc3NhZ2Uud2ViaG9va0lkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLnBvbGwpIG1lc3NhZ2UucG9sbCA9IGJvdC50cmFuc2Zvcm1lcnMucG9sbChib3QsIHBheWxvYWQucG9sbClcbiAgaWYgKHByb3BzLmNhbGwgJiYgcGF5bG9hZC5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5jYWxsKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLCBtZXNzYWdlKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSk6IE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2UuaW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5pbnRlcmFjdGVkTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlcmFjdGVkX21lc3NhZ2VfaWQpXG4gIGlmIChwcm9wcy5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gdHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLnRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwcm9wcy50eXBlKSBtZXRhZGF0YS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWV0YWRhdGEudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQsIG1ldGFkYXRhKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZUNhbGwoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlQ2FsbCk6IE1lc3NhZ2VDYWxsIHtcbiAgY29uc3QgY2FsbCA9IHt9IGFzIE1lc3NhZ2VDYWxsXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlLmNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIHtcbiAgLyoqIElkIG9mIHRoZSBpbnRlcmFjdGlvbiAqL1xuICBpZDogYmlnaW50XG4gIC8qKiBUaGUgdHlwZSBvZiBpbnRlcmFjdGlvbiAqL1xuICB0eXBlOiBJbnRlcmFjdGlvblR5cGVzXG4gIC8qKiBVc2VyIHdobyB0cmlnZ2VyZWQgdGhlIGludGVyYWN0aW9uICovXG4gIHVzZXI6IFVzZXJcbiAgLyoqIElEcyBmb3IgaW5zdGFsbGF0aW9uIGNvbnRleHQocykgcmVsYXRlZCB0byBhbiBpbnRlcmFjdGlvbiAqL1xuICBhdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzOiBQYXJ0aWFsPFJlY29yZDxEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsIGJpZ2ludD4+XG4gIC8qKiBJRCBvZiB0aGUgb3JpZ2luYWwgcmVzcG9uc2UgbWVzc2FnZSwgcHJlc2VudCBvbmx5IG9uIGZvbGxvdy11cCBtZXNzYWdlcyAqL1xuICBvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkPzogYmlnaW50XG4gIC8qKiBJRCBvZiB0aGUgbWVzc2FnZSB0aGF0IGNvbnRhaW5lZCBpbnRlcmFjdGl2ZSBjb21wb25lbnQsIHByZXNlbnQgb25seSBvbiBtZXNzYWdlcyBjcmVhdGVkIGZyb20gY29tcG9uZW50IGludGVyYWN0aW9ucyAqL1xuICBpbnRlcmFjdGVkTWVzc2FnZUlkPzogYmlnaW50XG4gIC8qKiBNZXRhZGF0YSBmb3IgdGhlIGludGVyYWN0aW9uIHRoYXQgd2FzIHVzZWQgdG8gb3BlbiB0aGUgbW9kYWwsIHByZXNlbnQgb25seSBvbiBtb2RhbCBzdWJtaXQgaW50ZXJhY3Rpb25zICovXG4gIHRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhPzogTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlQ2FsbCB7XG4gIC8qKiBBcnJheSBvZiB1c2VyIG9iamVjdCBpZHMgdGhhdCBwYXJ0aWNpcGF0ZWQgaW4gdGhlIGNhbGwgKi9cbiAgcGFydGljaXBhbnRzOiBiaWdpbnRbXVxuICAvKiogVGltZSB3aGVuIGNhbGwgZW5kZWQgKi9cbiAgZW5kZWRUaW1lc3RhbXA6IG51bWJlclxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJiYXNlTWVzc2FnZSIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsIkVNUFRZX1NUUklORyIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwidW5kZWZpbmVkIiwidXNlcklkIiwiYXV0aG9yIiwibWVzc2FnZSIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJpbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsImVkaXRlZCIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJwb2xsIiwiY2FsbCIsIm1lc3NhZ2VDYWxsIiwiY3VzdG9taXplcnMiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJvcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkIiwib3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZCIsInRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQUNqQ0MsWUFBWSxRQVFQLG9CQUFtQjtBQUMxQixTQUFTQyxxQkFBcUIsUUFBUSxrQkFBaUI7QUFDdkQsU0FBU0Msb0JBQW9CLFFBQTZCLGNBQWE7QUFPdkUsU0FBU0MsY0FBYyxRQUFRLDhCQUE2QjtBQUc1RCxNQUFNQyxjQUE4QztJQUNsRCxJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDQyxLQUFLLEVBQUVDLFNBQVNQLGFBQWFRLFdBQVcsS0FBSztJQUMzRDtJQUNBLElBQUlILGFBQVlJLE1BQWdCO1FBQzlCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNWLGFBQWFRLFdBQVc7YUFDN0MsSUFBSSxDQUFDRixLQUFLLENBQUNLLE1BQU0sQ0FBQ1gsYUFBYVEsV0FBVztJQUNqRDtJQUNBLElBQUlJLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ04sS0FBSyxFQUFFQyxTQUFTUCxhQUFhYSxT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
@@ -28,8 +28,13 @@ export function transformMemberToDiscordMember(bot, payload) {
28
28
  communication_disabled_until: payload.communicationDisabledUntil ? new Date(payload.communicationDisabledUntil).toISOString() : undefined,
29
29
  deaf: payload.toggles?.deaf,
30
30
  mute: payload.toggles?.mute,
31
- pending: payload.toggles?.pending
31
+ pending: payload.toggles?.pending,
32
+ avatar_decoration_data: {
33
+ asset: iconBigintToHash(payload.avatarDecorationData.asset),
34
+ sku_id: bot.transformers.reverse.snowflake(payload.avatarDecorationData.skuId)
35
+ },
36
+ user: payload.user ? bot.transformers.reverse.user(bot, payload.user) : undefined
32
37
  };
33
38
  }
34
39
 
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS9tZW1iZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTWVtYmVyLCBEaXNjb3JkVXNlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4uL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uL3VzZXIuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Vc2VyVG9EaXNjb3JkVXNlcihib3Q6IEJvdCwgcGF5bG9hZDogVXNlcik6IERpc2NvcmRVc2VyIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogcGF5bG9hZC5pZC50b1N0cmluZygpLFxuICAgIHVzZXJuYW1lOiBwYXlsb2FkLnVzZXJuYW1lLFxuICAgIGdsb2JhbF9uYW1lOiBwYXlsb2FkLmdsb2JhbE5hbWUgPz8gbnVsbCxcbiAgICBkaXNjcmltaW5hdG9yOiBwYXlsb2FkLmRpc2NyaW1pbmF0b3IsXG4gICAgYXZhdGFyOiBwYXlsb2FkLmF2YXRhciA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5hdmF0YXIpIDogbnVsbCxcbiAgICBsb2NhbGU6IHBheWxvYWQubG9jYWxlLFxuICAgIGVtYWlsOiBwYXlsb2FkLmVtYWlsID8/IHVuZGVmaW5lZCxcbiAgICBmbGFnczogcGF5bG9hZC5mbGFncz8udG9KU09OKCksXG4gICAgcHJlbWl1bV90eXBlOiBwYXlsb2FkLnByZW1pdW1UeXBlLFxuICAgIHB1YmxpY19mbGFnczogcGF5bG9hZC5wdWJsaWNGbGFncz8udG9KU09OKCksXG4gICAgYm90OiBwYXlsb2FkLnRvZ2dsZXM/LmJvdCxcbiAgICBzeXN0ZW06IHBheWxvYWQudG9nZ2xlcz8uc3lzdGVtLFxuICAgIG1mYV9lbmFibGVkOiBwYXlsb2FkLnRvZ2dsZXM/Lm1mYUVuYWJsZWQsXG4gICAgdmVyaWZpZWQ6IHBheWxvYWQudG9nZ2xlcz8udmVyaWZpZWQsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlclRvRGlzY29yZE1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogTWVtYmVyKTogRGlzY29yZE1lbWJlciB7XG4gIHJldHVybiB7XG4gICAgbmljazogcGF5bG9hZC5uaWNrID8/IHVuZGVmaW5lZCxcbiAgICByb2xlczogcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBpZC50b1N0cmluZygpKSxcbiAgICBqb2luZWRfYXQ6IG5ldyBEYXRlKHBheWxvYWQuam9pbmVkQXQpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJlbWl1bV9zaW5jZTogcGF5bG9hZC5wcmVtaXVtU2luY2UgPyBuZXcgRGF0ZShwYXlsb2FkLnByZW1pdW1TaW5jZSkudG9JU09TdHJpbmcoKSA6IHVuZGVmaW5lZCxcbiAgICBhdmF0YXI6IHBheWxvYWQuYXZhdGFyID8gaWNvbkJpZ2ludFRvSGFzaChwYXlsb2FkLmF2YXRhcikgOiB1bmRlZmluZWQsXG4gICAgcGVybWlzc2lvbnM6IHBheWxvYWQucGVybWlzc2lvbnM/LnRvU3RyaW5nKCksXG4gICAgY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbDogcGF5bG9hZC5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCA/IG5ldyBEYXRlKHBheWxvYWQuY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwpLnRvSVNPU3RyaW5nKCkgOiB1bmRlZmluZWQsXG4gICAgZGVhZjogcGF5bG9hZC50b2dnbGVzPy5kZWFmLFxuICAgIG11dGU6IHBheWxvYWQudG9nZ2xlcz8ubXV0ZSxcbiAgICBwZW5kaW5nOiBwYXlsb2FkLnRvZ2dsZXM/LnBlbmRpbmcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpY29uQmlnaW50VG9IYXNoIiwidHJhbnNmb3JtVXNlclRvRGlzY29yZFVzZXIiLCJib3QiLCJwYXlsb2FkIiwiaWQiLCJ0b1N0cmluZyIsInVzZXJuYW1lIiwiZ2xvYmFsX25hbWUiLCJnbG9iYWxOYW1lIiwiZGlzY3JpbWluYXRvciIsImF2YXRhciIsImxvY2FsZSIsImVtYWlsIiwidW5kZWZpbmVkIiwiZmxhZ3MiLCJ0b0pTT04iLCJwcmVtaXVtX3R5cGUiLCJwcmVtaXVtVHlwZSIsInB1YmxpY19mbGFncyIsInB1YmxpY0ZsYWdzIiwidG9nZ2xlcyIsInN5c3RlbSIsIm1mYV9lbmFibGVkIiwibWZhRW5hYmxlZCIsInZlcmlmaWVkIiwidHJhbnNmb3JtTWVtYmVyVG9EaXNjb3JkTWVtYmVyIiwibmljayIsInJvbGVzIiwibWFwIiwiam9pbmVkX2F0IiwiRGF0ZSIsImpvaW5lZEF0IiwidG9JU09TdHJpbmciLCJwcmVtaXVtX3NpbmNlIiwicHJlbWl1bVNpbmNlIiwicGVybWlzc2lvbnMiLCJjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsIiwiY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwiLCJkZWFmIiwibXV0ZSIsInBlbmRpbmciXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUtwRCxPQUFPLFNBQVNDLDJCQUEyQkMsR0FBUSxFQUFFQyxPQUFhO0lBQ2hFLE9BQU87UUFDTEMsSUFBSUQsUUFBUUMsRUFBRSxDQUFDQyxRQUFRO1FBQ3ZCQyxVQUFVSCxRQUFRRyxRQUFRO1FBQzFCQyxhQUFhSixRQUFRSyxVQUFVLElBQUk7UUFDbkNDLGVBQWVOLFFBQVFNLGFBQWE7UUFDcENDLFFBQVFQLFFBQVFPLE1BQU0sR0FBR1YsaUJBQWlCRyxRQUFRTyxNQUFNLElBQUk7UUFDNURDLFFBQVFSLFFBQVFRLE1BQU07UUFDdEJDLE9BQU9ULFFBQVFTLEtBQUssSUFBSUM7UUFDeEJDLE9BQU9YLFFBQVFXLEtBQUssRUFBRUM7UUFDdEJDLGNBQWNiLFFBQVFjLFdBQVc7UUFDakNDLGNBQWNmLFFBQVFnQixXQUFXLEVBQUVKO1FBQ25DYixLQUFLQyxRQUFRaUIsT0FBTyxFQUFFbEI7UUFDdEJtQixRQUFRbEIsUUFBUWlCLE9BQU8sRUFBRUM7UUFDekJDLGFBQWFuQixRQUFRaUIsT0FBTyxFQUFFRztRQUM5QkMsVUFBVXJCLFFBQVFpQixPQUFPLEVBQUVJO0lBQzdCO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLCtCQUErQnZCLEdBQVEsRUFBRUMsT0FBZTtJQUN0RSxPQUFPO1FBQ0x1QixNQUFNdkIsUUFBUXVCLElBQUksSUFBSWI7UUFDdEJjLE9BQU94QixRQUFRd0IsS0FBSyxDQUFDQyxHQUFHLENBQUMsQ0FBQ3hCLEtBQU9BLEdBQUdDLFFBQVE7UUFDNUN3QixXQUFXLElBQUlDLEtBQUszQixRQUFRNEIsUUFBUSxFQUFFQyxXQUFXO1FBQ2pEQyxlQUFlOUIsUUFBUStCLFlBQVksR0FBRyxJQUFJSixLQUFLM0IsUUFBUStCLFlBQVksRUFBRUYsV0FBVyxLQUFLbkI7UUFDckZILFFBQVFQLFFBQVFPLE1BQU0sR0FBR1YsaUJBQWlCRyxRQUFRTyxNQUFNLElBQUlHO1FBQzVEc0IsYUFBYWhDLFFBQVFnQyxXQUFXLEVBQUU5QjtRQUNsQytCLDhCQUE4QmpDLFFBQVFrQywwQkFBMEIsR0FBRyxJQUFJUCxLQUFLM0IsUUFBUWtDLDBCQUEwQixFQUFFTCxXQUFXLEtBQUtuQjtRQUNoSXlCLE1BQU1uQyxRQUFRaUIsT0FBTyxFQUFFa0I7UUFDdkJDLE1BQU1wQyxRQUFRaUIsT0FBTyxFQUFFbUI7UUFDdkJDLFNBQVNyQyxRQUFRaUIsT0FBTyxFQUFFb0I7SUFDNUI7QUFDRiJ9
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcmV2ZXJzZS9tZW1iZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkTWVtYmVyLCBEaXNjb3JkVXNlciB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgaWNvbkJpZ2ludFRvSGFzaCB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi8uLi9ib3QuanMnXG5pbXBvcnQgdHlwZSB7IE1lbWJlciB9IGZyb20gJy4uL21lbWJlci5qcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJy4uL3VzZXIuanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Vc2VyVG9EaXNjb3JkVXNlcihib3Q6IEJvdCwgcGF5bG9hZDogVXNlcik6IERpc2NvcmRVc2VyIHtcbiAgcmV0dXJuIHtcbiAgICBpZDogcGF5bG9hZC5pZC50b1N0cmluZygpLFxuICAgIHVzZXJuYW1lOiBwYXlsb2FkLnVzZXJuYW1lLFxuICAgIGdsb2JhbF9uYW1lOiBwYXlsb2FkLmdsb2JhbE5hbWUgPz8gbnVsbCxcbiAgICBkaXNjcmltaW5hdG9yOiBwYXlsb2FkLmRpc2NyaW1pbmF0b3IsXG4gICAgYXZhdGFyOiBwYXlsb2FkLmF2YXRhciA/IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5hdmF0YXIpIDogbnVsbCxcbiAgICBsb2NhbGU6IHBheWxvYWQubG9jYWxlLFxuICAgIGVtYWlsOiBwYXlsb2FkLmVtYWlsID8/IHVuZGVmaW5lZCxcbiAgICBmbGFnczogcGF5bG9hZC5mbGFncz8udG9KU09OKCksXG4gICAgcHJlbWl1bV90eXBlOiBwYXlsb2FkLnByZW1pdW1UeXBlLFxuICAgIHB1YmxpY19mbGFnczogcGF5bG9hZC5wdWJsaWNGbGFncz8udG9KU09OKCksXG4gICAgYm90OiBwYXlsb2FkLnRvZ2dsZXM/LmJvdCxcbiAgICBzeXN0ZW06IHBheWxvYWQudG9nZ2xlcz8uc3lzdGVtLFxuICAgIG1mYV9lbmFibGVkOiBwYXlsb2FkLnRvZ2dsZXM/Lm1mYUVuYWJsZWQsXG4gICAgdmVyaWZpZWQ6IHBheWxvYWQudG9nZ2xlcz8udmVyaWZpZWQsXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlclRvRGlzY29yZE1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogTWVtYmVyKTogRGlzY29yZE1lbWJlciB7XG4gIHJldHVybiB7XG4gICAgbmljazogcGF5bG9hZC5uaWNrID8/IHVuZGVmaW5lZCxcbiAgICByb2xlczogcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBpZC50b1N0cmluZygpKSxcbiAgICBqb2luZWRfYXQ6IG5ldyBEYXRlKHBheWxvYWQuam9pbmVkQXQpLnRvSVNPU3RyaW5nKCksXG4gICAgcHJlbWl1bV9zaW5jZTogcGF5bG9hZC5wcmVtaXVtU2luY2UgPyBuZXcgRGF0ZShwYXlsb2FkLnByZW1pdW1TaW5jZSkudG9JU09TdHJpbmcoKSA6IHVuZGVmaW5lZCxcbiAgICBhdmF0YXI6IHBheWxvYWQuYXZhdGFyID8gaWNvbkJpZ2ludFRvSGFzaChwYXlsb2FkLmF2YXRhcikgOiB1bmRlZmluZWQsXG4gICAgcGVybWlzc2lvbnM6IHBheWxvYWQucGVybWlzc2lvbnM/LnRvU3RyaW5nKCksXG4gICAgY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbDogcGF5bG9hZC5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCA/IG5ldyBEYXRlKHBheWxvYWQuY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwpLnRvSVNPU3RyaW5nKCkgOiB1bmRlZmluZWQsXG4gICAgZGVhZjogcGF5bG9hZC50b2dnbGVzPy5kZWFmLFxuICAgIG11dGU6IHBheWxvYWQudG9nZ2xlcz8ubXV0ZSxcbiAgICBwZW5kaW5nOiBwYXlsb2FkLnRvZ2dsZXM/LnBlbmRpbmcsXG4gICAgYXZhdGFyX2RlY29yYXRpb25fZGF0YToge1xuICAgICAgYXNzZXQ6IGljb25CaWdpbnRUb0hhc2gocGF5bG9hZC5hdmF0YXJEZWNvcmF0aW9uRGF0YS5hc3NldCksXG4gICAgICBza3VfaWQ6IGJvdC50cmFuc2Zvcm1lcnMucmV2ZXJzZS5zbm93Zmxha2UocGF5bG9hZC5hdmF0YXJEZWNvcmF0aW9uRGF0YS5za3VJZCksXG4gICAgfSxcbiAgICB1c2VyOiBwYXlsb2FkLnVzZXIgPyBib3QudHJhbnNmb3JtZXJzLnJldmVyc2UudXNlcihib3QsIHBheWxvYWQudXNlcikgOiB1bmRlZmluZWQsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpY29uQmlnaW50VG9IYXNoIiwidHJhbnNmb3JtVXNlclRvRGlzY29yZFVzZXIiLCJib3QiLCJwYXlsb2FkIiwiaWQiLCJ0b1N0cmluZyIsInVzZXJuYW1lIiwiZ2xvYmFsX25hbWUiLCJnbG9iYWxOYW1lIiwiZGlzY3JpbWluYXRvciIsImF2YXRhciIsImxvY2FsZSIsImVtYWlsIiwidW5kZWZpbmVkIiwiZmxhZ3MiLCJ0b0pTT04iLCJwcmVtaXVtX3R5cGUiLCJwcmVtaXVtVHlwZSIsInB1YmxpY19mbGFncyIsInB1YmxpY0ZsYWdzIiwidG9nZ2xlcyIsInN5c3RlbSIsIm1mYV9lbmFibGVkIiwibWZhRW5hYmxlZCIsInZlcmlmaWVkIiwidHJhbnNmb3JtTWVtYmVyVG9EaXNjb3JkTWVtYmVyIiwibmljayIsInJvbGVzIiwibWFwIiwiam9pbmVkX2F0IiwiRGF0ZSIsImpvaW5lZEF0IiwidG9JU09TdHJpbmciLCJwcmVtaXVtX3NpbmNlIiwicHJlbWl1bVNpbmNlIiwicGVybWlzc2lvbnMiLCJjb21tdW5pY2F0aW9uX2Rpc2FibGVkX3VudGlsIiwiY29tbXVuaWNhdGlvbkRpc2FibGVkVW50aWwiLCJkZWFmIiwibXV0ZSIsInBlbmRpbmciLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiYXNzZXQiLCJhdmF0YXJEZWNvcmF0aW9uRGF0YSIsInNrdV9pZCIsInRyYW5zZm9ybWVycyIsInJldmVyc2UiLCJzbm93Zmxha2UiLCJza3VJZCIsInVzZXIiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUtwRCxPQUFPLFNBQVNDLDJCQUEyQkMsR0FBUSxFQUFFQyxPQUFhO0lBQ2hFLE9BQU87UUFDTEMsSUFBSUQsUUFBUUMsRUFBRSxDQUFDQyxRQUFRO1FBQ3ZCQyxVQUFVSCxRQUFRRyxRQUFRO1FBQzFCQyxhQUFhSixRQUFRSyxVQUFVLElBQUk7UUFDbkNDLGVBQWVOLFFBQVFNLGFBQWE7UUFDcENDLFFBQVFQLFFBQVFPLE1BQU0sR0FBR1YsaUJBQWlCRyxRQUFRTyxNQUFNLElBQUk7UUFDNURDLFFBQVFSLFFBQVFRLE1BQU07UUFDdEJDLE9BQU9ULFFBQVFTLEtBQUssSUFBSUM7UUFDeEJDLE9BQU9YLFFBQVFXLEtBQUssRUFBRUM7UUFDdEJDLGNBQWNiLFFBQVFjLFdBQVc7UUFDakNDLGNBQWNmLFFBQVFnQixXQUFXLEVBQUVKO1FBQ25DYixLQUFLQyxRQUFRaUIsT0FBTyxFQUFFbEI7UUFDdEJtQixRQUFRbEIsUUFBUWlCLE9BQU8sRUFBRUM7UUFDekJDLGFBQWFuQixRQUFRaUIsT0FBTyxFQUFFRztRQUM5QkMsVUFBVXJCLFFBQVFpQixPQUFPLEVBQUVJO0lBQzdCO0FBQ0Y7QUFFQSxPQUFPLFNBQVNDLCtCQUErQnZCLEdBQVEsRUFBRUMsT0FBZTtJQUN0RSxPQUFPO1FBQ0x1QixNQUFNdkIsUUFBUXVCLElBQUksSUFBSWI7UUFDdEJjLE9BQU94QixRQUFRd0IsS0FBSyxDQUFDQyxHQUFHLENBQUMsQ0FBQ3hCLEtBQU9BLEdBQUdDLFFBQVE7UUFDNUN3QixXQUFXLElBQUlDLEtBQUszQixRQUFRNEIsUUFBUSxFQUFFQyxXQUFXO1FBQ2pEQyxlQUFlOUIsUUFBUStCLFlBQVksR0FBRyxJQUFJSixLQUFLM0IsUUFBUStCLFlBQVksRUFBRUYsV0FBVyxLQUFLbkI7UUFDckZILFFBQVFQLFFBQVFPLE1BQU0sR0FBR1YsaUJBQWlCRyxRQUFRTyxNQUFNLElBQUlHO1FBQzVEc0IsYUFBYWhDLFFBQVFnQyxXQUFXLEVBQUU5QjtRQUNsQytCLDhCQUE4QmpDLFFBQVFrQywwQkFBMEIsR0FBRyxJQUFJUCxLQUFLM0IsUUFBUWtDLDBCQUEwQixFQUFFTCxXQUFXLEtBQUtuQjtRQUNoSXlCLE1BQU1uQyxRQUFRaUIsT0FBTyxFQUFFa0I7UUFDdkJDLE1BQU1wQyxRQUFRaUIsT0FBTyxFQUFFbUI7UUFDdkJDLFNBQVNyQyxRQUFRaUIsT0FBTyxFQUFFb0I7UUFDMUJDLHdCQUF3QjtZQUN0QkMsT0FBTzFDLGlCQUFpQkcsUUFBUXdDLG9CQUFvQixDQUFDRCxLQUFLO1lBQzFERSxRQUFRMUMsSUFBSTJDLFlBQVksQ0FBQ0MsT0FBTyxDQUFDQyxTQUFTLENBQUM1QyxRQUFRd0Msb0JBQW9CLENBQUNLLEtBQUs7UUFDL0U7UUFDQUMsTUFBTTlDLFFBQVE4QyxJQUFJLEdBQUcvQyxJQUFJMkMsWUFBWSxDQUFDQyxPQUFPLENBQUNHLElBQUksQ0FBQy9DLEtBQUtDLFFBQVE4QyxJQUFJLElBQUlwQztJQUMxRTtBQUNGIn0=
@@ -10,4 +10,4 @@ export function transformSku(bot, payload) {
10
10
  return bot.transformers.customizers.sku(bot, payload, sku);
11
11
  }
12
12
 
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc2t1LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFNrdSwgRGlzY29yZFNrdUZsYWcsIERpc2NvcmRTa3VUeXBlIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU2t1KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkU2t1KTogU2t1IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnNrdVxuICBjb25zdCBza3UgPSB7fSBhcyBTa3VcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2t1LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBza3UudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBza3UuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5uYW1lICYmIHBheWxvYWQubmFtZSkgc2t1Lm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnNsdWcgJiYgcGF5bG9hZC5zbHVnKSBza3Uuc2x1ZyA9IHBheWxvYWQuc2x1Z1xuICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5mbGFncykgc2t1LmZsYWdzID0gcGF5bG9hZC5mbGFnc1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnNrdShib3QsIHBheWxvYWQsIHNrdSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTa3Uge1xuICAvKiogSUQgb2YgU0tVICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFR5cGUgb2YgU0tVICovXG4gIHR5cGU6IERpc2NvcmRTa3VUeXBlXG4gIC8qKiBJRCBvZiB0aGUgcGFyZW50IGFwcGxpY2F0aW9uICovXG4gIGFwcGxpY2F0aW9uSWQ6IGJpZ2ludFxuICAvKiogQ3VzdG9tZXItZmFjaW5nIG5hbWUgb2YgeW91ciBwcmVtaXVtIG9mZmVyaW5nICovXG4gIG5hbWU6IHN0cmluZ1xuICAvKiogU3lzdGVtLWdlbmVyYXRlZCBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgU0tVJ3MgbmFtZSAqL1xuICBzbHVnOiBzdHJpbmdcbiAgLyoqIFNLVSBmbGFncyBjb21iaW5lZCBhcyBhIGJpdGZpZWxkICovXG4gIGZsYWdzOiBEaXNjb3JkU2t1RmxhZ1xufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVNrdSIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic2t1IiwiaWQiLCJzbm93Zmxha2UiLCJ0eXBlIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibmFtZSIsInNsdWciLCJmbGFncyIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFNBQVNBLGFBQWFDLEdBQVEsRUFBRUMsT0FBbUI7SUFDeEQsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsR0FBRztJQUNwRCxNQUFNQSxNQUFNLENBQUM7SUFFYixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsSUFBSUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUMxRSxJQUFJSixNQUFNTSxJQUFJLElBQUlQLFFBQVFPLElBQUksRUFBRUgsSUFBSUcsSUFBSSxHQUFHUCxRQUFRTyxJQUFJO0lBQ3ZELElBQUlOLE1BQU1PLGFBQWEsSUFBSVIsUUFBUVMsY0FBYyxFQUFFTCxJQUFJSSxhQUFhLEdBQUdULElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRUyxjQUFjO0lBQ3hILElBQUlSLE1BQU1TLElBQUksSUFBSVYsUUFBUVUsSUFBSSxFQUFFTixJQUFJTSxJQUFJLEdBQUdWLFFBQVFVLElBQUk7SUFDdkQsSUFBSVQsTUFBTVUsSUFBSSxJQUFJWCxRQUFRVyxJQUFJLEVBQUVQLElBQUlPLElBQUksR0FBR1gsUUFBUVcsSUFBSTtJQUN2RCxJQUFJVixNQUFNVyxLQUFLLElBQUlaLFFBQVFZLEtBQUssRUFBRVIsSUFBSVEsS0FBSyxHQUFHWixRQUFRWSxLQUFLO0lBRTNELE9BQU9iLElBQUlHLFlBQVksQ0FBQ1csV0FBVyxDQUFDVCxHQUFHLENBQUNMLEtBQUtDLFNBQVNJO0FBQ3hEIn0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvc2t1LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZFNrdSwgRGlzY29yZFNrdVR5cGUsIFNrdUZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtU2t1KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkU2t1KTogU2t1IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnNrdVxuICBjb25zdCBza3UgPSB7fSBhcyBTa3VcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2t1LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBza3UudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBza3UuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5uYW1lICYmIHBheWxvYWQubmFtZSkgc2t1Lm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnNsdWcgJiYgcGF5bG9hZC5zbHVnKSBza3Uuc2x1ZyA9IHBheWxvYWQuc2x1Z1xuICBpZiAocHJvcHMuZmxhZ3MgJiYgcGF5bG9hZC5mbGFncykgc2t1LmZsYWdzID0gcGF5bG9hZC5mbGFnc1xuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnNrdShib3QsIHBheWxvYWQsIHNrdSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTa3Uge1xuICAvKiogSUQgb2YgU0tVICovXG4gIGlkOiBiaWdpbnRcbiAgLyoqIFR5cGUgb2YgU0tVICovXG4gIHR5cGU6IERpc2NvcmRTa3VUeXBlXG4gIC8qKiBJRCBvZiB0aGUgcGFyZW50IGFwcGxpY2F0aW9uICovXG4gIGFwcGxpY2F0aW9uSWQ6IGJpZ2ludFxuICAvKiogQ3VzdG9tZXItZmFjaW5nIG5hbWUgb2YgeW91ciBwcmVtaXVtIG9mZmVyaW5nICovXG4gIG5hbWU6IHN0cmluZ1xuICAvKiogU3lzdGVtLWdlbmVyYXRlZCBVUkwgc2x1ZyBiYXNlZCBvbiB0aGUgU0tVJ3MgbmFtZSAqL1xuICBzbHVnOiBzdHJpbmdcbiAgLyoqIFNLVSBmbGFncyBjb21iaW5lZCBhcyBhIGJpdGZpZWxkICovXG4gIGZsYWdzOiBTa3VGbGFnc1xufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVNrdSIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwic2t1IiwiaWQiLCJzbm93Zmxha2UiLCJ0eXBlIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwibmFtZSIsInNsdWciLCJmbGFncyIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFNBQVNBLGFBQWFDLEdBQVEsRUFBRUMsT0FBbUI7SUFDeEQsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsR0FBRztJQUNwRCxNQUFNQSxNQUFNLENBQUM7SUFFYixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsSUFBSUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUMxRSxJQUFJSixNQUFNTSxJQUFJLElBQUlQLFFBQVFPLElBQUksRUFBRUgsSUFBSUcsSUFBSSxHQUFHUCxRQUFRTyxJQUFJO0lBQ3ZELElBQUlOLE1BQU1PLGFBQWEsSUFBSVIsUUFBUVMsY0FBYyxFQUFFTCxJQUFJSSxhQUFhLEdBQUdULElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRUyxjQUFjO0lBQ3hILElBQUlSLE1BQU1TLElBQUksSUFBSVYsUUFBUVUsSUFBSSxFQUFFTixJQUFJTSxJQUFJLEdBQUdWLFFBQVFVLElBQUk7SUFDdkQsSUFBSVQsTUFBTVUsSUFBSSxJQUFJWCxRQUFRVyxJQUFJLEVBQUVQLElBQUlPLElBQUksR0FBR1gsUUFBUVcsSUFBSTtJQUN2RCxJQUFJVixNQUFNVyxLQUFLLElBQUlaLFFBQVFZLEtBQUssRUFBRVIsSUFBSVEsS0FBSyxHQUFHWixRQUFRWSxLQUFLO0lBRTNELE9BQU9iLElBQUlHLFlBQVksQ0FBQ1csV0FBVyxDQUFDVCxHQUFHLENBQUNMLEtBQUtDLFNBQVNJO0FBQ3hEIn0=
@@ -5,7 +5,7 @@ export class Permissions extends ToggleBitfieldBigint {
5
5
  super(BigInt(bits));
6
6
  }
7
7
  has(permission) {
8
- return this.contains(BigInt(BitwisePermissionFlags[permission]));
8
+ return this.contains(BitwisePermissionFlags[permission]);
9
9
  }
10
10
  hasAll(permissions) {
11
11
  return permissions.every((key)=>this.has(key));
@@ -15,4 +15,4 @@ export class Permissions extends ToggleBitfieldBigint {
15
15
  }
16
16
  }
17
17
 
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9QZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZEJpZ2ludCB9IGZyb20gJy4vVG9nZ2xlQml0ZmllbGQuanMnXG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9ucyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkQmlnaW50IHtcbiAgY29uc3RydWN0b3IoYml0czogc3RyaW5nIHwgYmlnaW50KSB7XG4gICAgc3VwZXIoQmlnSW50KGJpdHMpKVxuICB9XG5cbiAgaGFzKHBlcm1pc3Npb246IGtleW9mIHR5cGVvZiBCaXR3aXNlUGVybWlzc2lvbkZsYWdzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbnMoQmlnSW50KEJpdHdpc2VQZXJtaXNzaW9uRmxhZ3NbcGVybWlzc2lvbl0pKVxuICB9XG5cbiAgaGFzQWxsKHBlcm1pc3Npb25zOiBBcnJheTxrZXlvZiB0eXBlb2YgQml0d2lzZVBlcm1pc3Npb25GbGFncz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gcGVybWlzc2lvbnMuZXZlcnkoKGtleSkgPT4gdGhpcy5oYXMoa2V5KSlcbiAgfVxuXG4gIG1pc3NpbmcocGVybWlzc2lvbnM6IEFycmF5PGtleW9mIHR5cGVvZiBCaXR3aXNlUGVybWlzc2lvbkZsYWdzPik6IEFycmF5PGtleW9mIHR5cGVvZiBCaXR3aXNlUGVybWlzc2lvbkZsYWdzPiB7XG4gICAgcmV0dXJuIHBlcm1pc3Npb25zLmZpbHRlcigoa2V5KSA9PiAhdGhpcy5oYXMoa2V5KSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbIkJpdHdpc2VQZXJtaXNzaW9uRmxhZ3MiLCJUb2dnbGVCaXRmaWVsZEJpZ2ludCIsIlBlcm1pc3Npb25zIiwiY29uc3RydWN0b3IiLCJiaXRzIiwiQmlnSW50IiwiaGFzIiwicGVybWlzc2lvbiIsImNvbnRhaW5zIiwiaGFzQWxsIiwicGVybWlzc2lvbnMiLCJldmVyeSIsImtleSIsIm1pc3NpbmciLCJmaWx0ZXIiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLHNCQUFzQixRQUFRLG9CQUFtQjtBQUMxRCxTQUFTQyxvQkFBb0IsUUFBUSxzQkFBcUI7QUFFMUQsT0FBTyxNQUFNQyxvQkFBb0JEO0lBQy9CRSxZQUFZQyxJQUFxQixDQUFFO1FBQ2pDLEtBQUssQ0FBQ0MsT0FBT0Q7SUFDZjtJQUVBRSxJQUFJQyxVQUErQyxFQUFXO1FBQzVELE9BQU8sSUFBSSxDQUFDQyxRQUFRLENBQUNILE9BQU9MLHNCQUFzQixDQUFDTyxXQUFXO0lBQ2hFO0lBRUFFLE9BQU9DLFdBQXVELEVBQVc7UUFDdkUsT0FBT0EsWUFBWUMsS0FBSyxDQUFDLENBQUNDLE1BQVEsSUFBSSxDQUFDTixHQUFHLENBQUNNO0lBQzdDO0lBRUFDLFFBQVFILFdBQXVELEVBQThDO1FBQzNHLE9BQU9BLFlBQVlJLE1BQU0sQ0FBQyxDQUFDRixNQUFRLENBQUMsSUFBSSxDQUFDTixHQUFHLENBQUNNO0lBQy9DO0FBQ0YifQ==
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9QZXJtaXNzaW9ucy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFBlcm1pc3Npb25TdHJpbmdzLCBCaXR3aXNlUGVybWlzc2lvbkZsYWdzIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZEJpZ2ludCB9IGZyb20gJy4vVG9nZ2xlQml0ZmllbGQuanMnXG5cbmV4cG9ydCBjbGFzcyBQZXJtaXNzaW9ucyBleHRlbmRzIFRvZ2dsZUJpdGZpZWxkQmlnaW50IHtcbiAgY29uc3RydWN0b3IoYml0czogc3RyaW5nIHwgYmlnaW50KSB7XG4gICAgc3VwZXIoQmlnSW50KGJpdHMpKVxuICB9XG5cbiAgaGFzKHBlcm1pc3Npb246IFBlcm1pc3Npb25TdHJpbmdzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29udGFpbnMoQml0d2lzZVBlcm1pc3Npb25GbGFnc1twZXJtaXNzaW9uXSlcbiAgfVxuXG4gIGhhc0FsbChwZXJtaXNzaW9uczogUGVybWlzc2lvblN0cmluZ3NbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwZXJtaXNzaW9ucy5ldmVyeSgoa2V5KSA9PiB0aGlzLmhhcyhrZXkpKVxuICB9XG5cbiAgbWlzc2luZyhwZXJtaXNzaW9uczogUGVybWlzc2lvblN0cmluZ3NbXSk6IFBlcm1pc3Npb25TdHJpbmdzW10ge1xuICAgIHJldHVybiBwZXJtaXNzaW9ucy5maWx0ZXIoKGtleSkgPT4gIXRoaXMuaGFzKGtleSkpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJCaXR3aXNlUGVybWlzc2lvbkZsYWdzIiwiVG9nZ2xlQml0ZmllbGRCaWdpbnQiLCJQZXJtaXNzaW9ucyIsImNvbnN0cnVjdG9yIiwiYml0cyIsIkJpZ0ludCIsImhhcyIsInBlcm1pc3Npb24iLCJjb250YWlucyIsImhhc0FsbCIsInBlcm1pc3Npb25zIiwiZXZlcnkiLCJrZXkiLCJtaXNzaW5nIiwiZmlsdGVyIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFpQ0Esc0JBQXNCLFFBQVEsb0JBQW1CO0FBQ2xGLFNBQVNDLG9CQUFvQixRQUFRLHNCQUFxQjtBQUUxRCxPQUFPLE1BQU1DLG9CQUFvQkQ7SUFDL0JFLFlBQVlDLElBQXFCLENBQUU7UUFDakMsS0FBSyxDQUFDQyxPQUFPRDtJQUNmO0lBRUFFLElBQUlDLFVBQTZCLEVBQVc7UUFDMUMsT0FBTyxJQUFJLENBQUNDLFFBQVEsQ0FBQ1Isc0JBQXNCLENBQUNPLFdBQVc7SUFDekQ7SUFFQUUsT0FBT0MsV0FBZ0MsRUFBVztRQUNoRCxPQUFPQSxZQUFZQyxLQUFLLENBQUMsQ0FBQ0MsTUFBUSxJQUFJLENBQUNOLEdBQUcsQ0FBQ007SUFDN0M7SUFFQUMsUUFBUUgsV0FBZ0MsRUFBdUI7UUFDN0QsT0FBT0EsWUFBWUksTUFBTSxDQUFDLENBQUNGLE1BQVEsQ0FBQyxJQUFJLENBQUNOLEdBQUcsQ0FBQ007SUFDL0M7QUFDRiJ9
@@ -4,7 +4,8 @@ export const ChannelToggle = {
4
4
  /** When a thread is locked, only users with `MANAGE_THREADS` can unarchive it */ locked: 1 << 1,
5
5
  /** whether non-moderators can add other non-moderators to a thread; only available on private threads */ invitable: 1 << 2,
6
6
  /** Whether the thread is archived */ archived: 1 << 3,
7
- /** When a thread is created this will be true on that channel payload for the thread. */ newlyCreated: 1 << 4
7
+ /** When a thread is created this will be true on that channel payload for the thread. */ newlyCreated: 1 << 4,
8
+ /** for group DM channels: whether the channel is managed by an application via the `gdm.join` OAuth2 scope */ managed: 1 << 5
8
9
  };
9
10
  export class ChannelToggles extends ToggleBitfield {
10
11
  constructor(channelOrBitfield){
@@ -17,6 +18,7 @@ export class ChannelToggles extends ToggleBitfield {
17
18
  if (channel.thread_metadata?.invitable) this.add(ChannelToggle.invitable);
18
19
  if (channel.thread_metadata?.archived) this.add(ChannelToggle.archived);
19
20
  if (channel.newly_created) this.add(ChannelToggle.newlyCreated);
21
+ if (channel.managed) this.add(ChannelToggle.managed);
20
22
  }
21
23
  }
22
24
  /** Whether or not this channel is an nsfw channel. */ get nsfw() {
@@ -34,6 +36,9 @@ export class ChannelToggles extends ToggleBitfield {
34
36
  /** Whether or not this thread channel is newly created. */ get newlyCreated() {
35
37
  return this.has('newlyCreated');
36
38
  }
39
+ get managed() {
40
+ return this.has('managed');
41
+ }
37
42
  /** Checks whether or not the permissions exist in this */ has(permissions) {
38
43
  if (!Array.isArray(permissions)) return super.contains(ChannelToggle[permissions]);
39
44
  return super.contains(permissions.reduce((a, b)=>a |= ChannelToggle[b], 0));
@@ -47,4 +52,4 @@ export class ChannelToggles extends ToggleBitfield {
47
52
  }
48
53
  }
49
54
 
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9jaGFubmVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZENoYW5uZWwgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IENoYW5uZWxUb2dnbGUgPSB7XG4gIC8qKiBXaGV0aGVyIHRoZSBjaGFubmVsIGlzIG5zZncgKi9cbiAgbnNmdzogMSA8PCAwLFxuICAvKiogV2hlbiBhIHRocmVhZCBpcyBsb2NrZWQsIG9ubHkgdXNlcnMgd2l0aCBgTUFOQUdFX1RIUkVBRFNgIGNhbiB1bmFyY2hpdmUgaXQgKi9cbiAgbG9ja2VkOiAxIDw8IDEsXG4gIC8qKiB3aGV0aGVyIG5vbi1tb2RlcmF0b3JzIGNhbiBhZGQgb3RoZXIgbm9uLW1vZGVyYXRvcnMgdG8gYSB0aHJlYWQ7IG9ubHkgYXZhaWxhYmxlIG9uIHByaXZhdGUgdGhyZWFkcyAqL1xuICBpbnZpdGFibGU6IDEgPDwgMixcbiAgLyoqIFdoZXRoZXIgdGhlIHRocmVhZCBpcyBhcmNoaXZlZCAqL1xuICBhcmNoaXZlZDogMSA8PCAzLFxuICAvKiogV2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkIHRoaXMgd2lsbCBiZSB0cnVlIG9uIHRoYXQgY2hhbm5lbCBwYXlsb2FkIGZvciB0aGUgdGhyZWFkLiAqL1xuICBuZXdseUNyZWF0ZWQ6IDEgPDwgNCxcbn1cblxuZXhwb3J0IGNsYXNzIENoYW5uZWxUb2dnbGVzIGV4dGVuZHMgVG9nZ2xlQml0ZmllbGQge1xuICBjb25zdHJ1Y3RvcihjaGFubmVsT3JCaXRmaWVsZDogRGlzY29yZENoYW5uZWwgfCBudW1iZXIpIHtcbiAgICBzdXBlcigpXG5cbiAgICBpZiAodHlwZW9mIGNoYW5uZWxPckJpdGZpZWxkID09PSAnbnVtYmVyJykgdGhpcy5iaXRmaWVsZCA9IGNoYW5uZWxPckJpdGZpZWxkXG4gICAgZWxzZSB7XG4gICAgICBjb25zdCBjaGFubmVsID0gY2hhbm5lbE9yQml0ZmllbGRcbiAgICAgIGlmIChjaGFubmVsLm5zZncpIHRoaXMuYWRkKENoYW5uZWxUb2dnbGUubnNmdylcbiAgICAgIGlmIChjaGFubmVsLnRocmVhZF9tZXRhZGF0YT8ubG9ja2VkKSB0aGlzLmFkZChDaGFubmVsVG9nZ2xlLmxvY2tlZClcbiAgICAgIGlmIChjaGFubmVsLnRocmVhZF9tZXRhZGF0YT8uaW52aXRhYmxlKSB0aGlzLmFkZChDaGFubmVsVG9nZ2xlLmludml0YWJsZSlcbiAgICAgIGlmIChjaGFubmVsLnRocmVhZF9tZXRhZGF0YT8uYXJjaGl2ZWQpIHRoaXMuYWRkKENoYW5uZWxUb2dnbGUuYXJjaGl2ZWQpXG4gICAgICBpZiAoY2hhbm5lbC5uZXdseV9jcmVhdGVkKSB0aGlzLmFkZChDaGFubmVsVG9nZ2xlLm5ld2x5Q3JlYXRlZClcbiAgICB9XG4gIH1cblxuICAvKiogV2hldGhlciBvciBub3QgdGhpcyBjaGFubmVsIGlzIGFuIG5zZncgY2hhbm5lbC4gKi9cbiAgZ2V0IG5zZncoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCduc2Z3JylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHRocmVhZCBjaGFubmVsIGlzIGxvY2tlZC4gKi9cbiAgZ2V0IGxvY2tlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2xvY2tlZCcpXG4gIH1cblxuICAvKiogV2hldGhlciBvciBub3QgdGhpcyB0aHJlYWQgY2hhbm5lbCBpcyBpbnZpdGFibGUuICovXG4gIGdldCBpbnZpdGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCdpbnZpdGFibGUnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoaXMgdGhyZWFkIGNoYW5uZWwgaXMgYXJjaGl2ZWQuICovXG4gIGdldCBhcmNoaXZlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2FyY2hpdmVkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHRocmVhZCBjaGFubmVsIGlzIG5ld2x5IGNyZWF0ZWQuICovXG4gIGdldCBuZXdseUNyZWF0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaGFzKCduZXdseUNyZWF0ZWQnKVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgcGVybWlzc2lvbnMgZXhpc3QgaW4gdGhpcyAqL1xuICBoYXMocGVybWlzc2lvbnM6IENoYW5uZWxUb2dnbGVLZXlzIHwgQ2hhbm5lbFRvZ2dsZUtleXNbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwZXJtaXNzaW9ucykpIHJldHVybiBzdXBlci5jb250YWlucyhDaGFubmVsVG9nZ2xlW3Blcm1pc3Npb25zXSlcblxuICAgIHJldHVybiBzdXBlci5jb250YWlucyhwZXJtaXNzaW9ucy5yZWR1Y2UoKGEsIGIpID0+IChhIHw9IENoYW5uZWxUb2dnbGVbYl0pLCAwKSlcbiAgfVxuXG4gIC8qKiBMaXN0cyBhbGwgdGhlIHRvZ2dsZXMgZm9yIHRoZSByb2xlIGFuZCB3aGV0aGVyIG9yIG5vdCBlYWNoIGlzIHRydWUgb3IgZmFsc2UuICovXG4gIGxpc3QoKTogUmVjb3JkPENoYW5uZWxUb2dnbGVLZXlzLCBib29sZWFuPiB7XG4gICAgY29uc3QganNvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKENoYW5uZWxUb2dnbGUpKSB7XG4gICAgICBqc29uW2tleV0gPSBzdXBlci5jb250YWlucyh2YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4ganNvbiBhcyBSZWNvcmQ8Q2hhbm5lbFRvZ2dsZUtleXMsIGJvb2xlYW4+XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ2hhbm5lbFRvZ2dsZUtleXMgPSBrZXlvZiB0eXBlb2YgQ2hhbm5lbFRvZ2dsZVxuIl0sIm5hbWVzIjpbIlRvZ2dsZUJpdGZpZWxkIiwiQ2hhbm5lbFRvZ2dsZSIsIm5zZnciLCJsb2NrZWQiLCJpbnZpdGFibGUiLCJhcmNoaXZlZCIsIm5ld2x5Q3JlYXRlZCIsIkNoYW5uZWxUb2dnbGVzIiwiY29uc3RydWN0b3IiLCJjaGFubmVsT3JCaXRmaWVsZCIsImJpdGZpZWxkIiwiY2hhbm5lbCIsImFkZCIsInRocmVhZF9tZXRhZGF0YSIsIm5ld2x5X2NyZWF0ZWQiLCJoYXMiLCJwZXJtaXNzaW9ucyIsIkFycmF5IiwiaXNBcnJheSIsImNvbnRhaW5zIiwicmVkdWNlIiwiYSIsImIiLCJsaXN0IiwianNvbiIsImtleSIsInZhbHVlIiwiT2JqZWN0IiwiZW50cmllcyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsY0FBYyxRQUFRLHNCQUFxQjtBQUVwRCxPQUFPLE1BQU1DLGdCQUFnQjtJQUMzQixnQ0FBZ0MsR0FDaENDLE1BQU0sS0FBSztJQUNYLCtFQUErRSxHQUMvRUMsUUFBUSxLQUFLO0lBQ2IsdUdBQXVHLEdBQ3ZHQyxXQUFXLEtBQUs7SUFDaEIsbUNBQW1DLEdBQ25DQyxVQUFVLEtBQUs7SUFDZix1RkFBdUYsR0FDdkZDLGNBQWMsS0FBSztBQUNyQixFQUFDO0FBRUQsT0FBTyxNQUFNQyx1QkFBdUJQO0lBQ2xDUSxZQUFZQyxpQkFBMEMsQ0FBRTtRQUN0RCxLQUFLO1FBRUwsSUFBSSxPQUFPQSxzQkFBc0IsVUFBVSxJQUFJLENBQUNDLFFBQVEsR0FBR0Q7YUFDdEQ7WUFDSCxNQUFNRSxVQUFVRjtZQUNoQixJQUFJRSxRQUFRVCxJQUFJLEVBQUUsSUFBSSxDQUFDVSxHQUFHLENBQUNYLGNBQWNDLElBQUk7WUFDN0MsSUFBSVMsUUFBUUUsZUFBZSxFQUFFVixRQUFRLElBQUksQ0FBQ1MsR0FBRyxDQUFDWCxjQUFjRSxNQUFNO1lBQ2xFLElBQUlRLFFBQVFFLGVBQWUsRUFBRVQsV0FBVyxJQUFJLENBQUNRLEdBQUcsQ0FBQ1gsY0FBY0csU0FBUztZQUN4RSxJQUFJTyxRQUFRRSxlQUFlLEVBQUVSLFVBQVUsSUFBSSxDQUFDTyxHQUFHLENBQUNYLGNBQWNJLFFBQVE7WUFDdEUsSUFBSU0sUUFBUUcsYUFBYSxFQUFFLElBQUksQ0FBQ0YsR0FBRyxDQUFDWCxjQUFjSyxZQUFZO1FBQ2hFO0lBQ0Y7SUFFQSxvREFBb0QsR0FDcEQsSUFBSUosT0FBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUNhLEdBQUcsQ0FBQztJQUNsQjtJQUVBLGtEQUFrRCxHQUNsRCxJQUFJWixTQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQ1ksR0FBRyxDQUFDO0lBQ2xCO0lBRUEscURBQXFELEdBQ3JELElBQUlYLFlBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDVyxHQUFHLENBQUM7SUFDbEI7SUFFQSxvREFBb0QsR0FDcEQsSUFBSVYsV0FBb0I7UUFDdEIsT0FBTyxJQUFJLENBQUNVLEdBQUcsQ0FBQztJQUNsQjtJQUVBLHlEQUF5RCxHQUN6RCxJQUFJVCxlQUF3QjtRQUMxQixPQUFPLElBQUksQ0FBQ1MsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsd0RBQXdELEdBQ3hEQSxJQUFJQyxXQUFvRCxFQUFXO1FBQ2pFLElBQUksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixjQUFjLE9BQU8sS0FBSyxDQUFDRyxTQUFTbEIsYUFBYSxDQUFDZSxZQUFZO1FBRWpGLE9BQU8sS0FBSyxDQUFDRyxTQUFTSCxZQUFZSSxNQUFNLENBQUMsQ0FBQ0MsR0FBR0MsSUFBT0QsS0FBS3BCLGFBQWEsQ0FBQ3FCLEVBQUUsRUFBRztJQUM5RTtJQUVBLGlGQUFpRixHQUNqRkMsT0FBMkM7UUFDekMsTUFBTUMsT0FBZ0MsQ0FBQztRQUN2QyxLQUFLLE1BQU0sQ0FBQ0MsS0FBS0MsTUFBTSxJQUFJQyxPQUFPQyxPQUFPLENBQUMzQixlQUFnQjtZQUN4RHVCLElBQUksQ0FBQ0MsSUFBSSxHQUFHLEtBQUssQ0FBQ04sU0FBU087UUFDN0I7UUFFQSxPQUFPRjtJQUNUO0FBQ0YifQ==
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvdG9nZ2xlcy9jaGFubmVsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRGlzY29yZENoYW5uZWwgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi9Ub2dnbGVCaXRmaWVsZC5qcydcblxuZXhwb3J0IGNvbnN0IENoYW5uZWxUb2dnbGUgPSB7XG4gIC8qKiBXaGV0aGVyIHRoZSBjaGFubmVsIGlzIG5zZncgKi9cbiAgbnNmdzogMSA8PCAwLFxuICAvKiogV2hlbiBhIHRocmVhZCBpcyBsb2NrZWQsIG9ubHkgdXNlcnMgd2l0aCBgTUFOQUdFX1RIUkVBRFNgIGNhbiB1bmFyY2hpdmUgaXQgKi9cbiAgbG9ja2VkOiAxIDw8IDEsXG4gIC8qKiB3aGV0aGVyIG5vbi1tb2RlcmF0b3JzIGNhbiBhZGQgb3RoZXIgbm9uLW1vZGVyYXRvcnMgdG8gYSB0aHJlYWQ7IG9ubHkgYXZhaWxhYmxlIG9uIHByaXZhdGUgdGhyZWFkcyAqL1xuICBpbnZpdGFibGU6IDEgPDwgMixcbiAgLyoqIFdoZXRoZXIgdGhlIHRocmVhZCBpcyBhcmNoaXZlZCAqL1xuICBhcmNoaXZlZDogMSA8PCAzLFxuICAvKiogV2hlbiBhIHRocmVhZCBpcyBjcmVhdGVkIHRoaXMgd2lsbCBiZSB0cnVlIG9uIHRoYXQgY2hhbm5lbCBwYXlsb2FkIGZvciB0aGUgdGhyZWFkLiAqL1xuICBuZXdseUNyZWF0ZWQ6IDEgPDwgNCxcbiAgLyoqIGZvciBncm91cCBETSBjaGFubmVsczogd2hldGhlciB0aGUgY2hhbm5lbCBpcyBtYW5hZ2VkIGJ5IGFuIGFwcGxpY2F0aW9uIHZpYSB0aGUgYGdkbS5qb2luYCBPQXV0aDIgc2NvcGUgKi9cbiAgbWFuYWdlZDogMSA8PCA1LFxufVxuXG5leHBvcnQgY2xhc3MgQ2hhbm5lbFRvZ2dsZXMgZXh0ZW5kcyBUb2dnbGVCaXRmaWVsZCB7XG4gIGNvbnN0cnVjdG9yKGNoYW5uZWxPckJpdGZpZWxkOiBEaXNjb3JkQ2hhbm5lbCB8IG51bWJlcikge1xuICAgIHN1cGVyKClcblxuICAgIGlmICh0eXBlb2YgY2hhbm5lbE9yQml0ZmllbGQgPT09ICdudW1iZXInKSB0aGlzLmJpdGZpZWxkID0gY2hhbm5lbE9yQml0ZmllbGRcbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IGNoYW5uZWwgPSBjaGFubmVsT3JCaXRmaWVsZFxuICAgICAgaWYgKGNoYW5uZWwubnNmdykgdGhpcy5hZGQoQ2hhbm5lbFRvZ2dsZS5uc2Z3KVxuICAgICAgaWYgKGNoYW5uZWwudGhyZWFkX21ldGFkYXRhPy5sb2NrZWQpIHRoaXMuYWRkKENoYW5uZWxUb2dnbGUubG9ja2VkKVxuICAgICAgaWYgKGNoYW5uZWwudGhyZWFkX21ldGFkYXRhPy5pbnZpdGFibGUpIHRoaXMuYWRkKENoYW5uZWxUb2dnbGUuaW52aXRhYmxlKVxuICAgICAgaWYgKGNoYW5uZWwudGhyZWFkX21ldGFkYXRhPy5hcmNoaXZlZCkgdGhpcy5hZGQoQ2hhbm5lbFRvZ2dsZS5hcmNoaXZlZClcbiAgICAgIGlmIChjaGFubmVsLm5ld2x5X2NyZWF0ZWQpIHRoaXMuYWRkKENoYW5uZWxUb2dnbGUubmV3bHlDcmVhdGVkKVxuICAgICAgaWYgKGNoYW5uZWwubWFuYWdlZCkgdGhpcy5hZGQoQ2hhbm5lbFRvZ2dsZS5tYW5hZ2VkKVxuICAgIH1cbiAgfVxuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIGNoYW5uZWwgaXMgYW4gbnNmdyBjaGFubmVsLiAqL1xuICBnZXQgbnNmdygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ25zZncnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoaXMgdGhyZWFkIGNoYW5uZWwgaXMgbG9ja2VkLiAqL1xuICBnZXQgbG9ja2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnbG9ja2VkJylcbiAgfVxuXG4gIC8qKiBXaGV0aGVyIG9yIG5vdCB0aGlzIHRocmVhZCBjaGFubmVsIGlzIGludml0YWJsZS4gKi9cbiAgZ2V0IGludml0YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ2ludml0YWJsZScpXG4gIH1cblxuICAvKiogV2hldGhlciBvciBub3QgdGhpcyB0aHJlYWQgY2hhbm5lbCBpcyBhcmNoaXZlZC4gKi9cbiAgZ2V0IGFyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmhhcygnYXJjaGl2ZWQnKVxuICB9XG5cbiAgLyoqIFdoZXRoZXIgb3Igbm90IHRoaXMgdGhyZWFkIGNoYW5uZWwgaXMgbmV3bHkgY3JlYXRlZC4gKi9cbiAgZ2V0IG5ld2x5Q3JlYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ25ld2x5Q3JlYXRlZCcpXG4gIH1cblxuICBnZXQgbWFuYWdlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5oYXMoJ21hbmFnZWQnKVxuICB9XG5cbiAgLyoqIENoZWNrcyB3aGV0aGVyIG9yIG5vdCB0aGUgcGVybWlzc2lvbnMgZXhpc3QgaW4gdGhpcyAqL1xuICBoYXMocGVybWlzc2lvbnM6IENoYW5uZWxUb2dnbGVLZXlzIHwgQ2hhbm5lbFRvZ2dsZUtleXNbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShwZXJtaXNzaW9ucykpIHJldHVybiBzdXBlci5jb250YWlucyhDaGFubmVsVG9nZ2xlW3Blcm1pc3Npb25zXSlcblxuICAgIHJldHVybiBzdXBlci5jb250YWlucyhwZXJtaXNzaW9ucy5yZWR1Y2UoKGEsIGIpID0+IChhIHw9IENoYW5uZWxUb2dnbGVbYl0pLCAwKSlcbiAgfVxuXG4gIC8qKiBMaXN0cyBhbGwgdGhlIHRvZ2dsZXMgZm9yIHRoZSByb2xlIGFuZCB3aGV0aGVyIG9yIG5vdCBlYWNoIGlzIHRydWUgb3IgZmFsc2UuICovXG4gIGxpc3QoKTogUmVjb3JkPENoYW5uZWxUb2dnbGVLZXlzLCBib29sZWFuPiB7XG4gICAgY29uc3QganNvbjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fVxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKENoYW5uZWxUb2dnbGUpKSB7XG4gICAgICBqc29uW2tleV0gPSBzdXBlci5jb250YWlucyh2YWx1ZSlcbiAgICB9XG5cbiAgICByZXR1cm4ganNvbiBhcyBSZWNvcmQ8Q2hhbm5lbFRvZ2dsZUtleXMsIGJvb2xlYW4+XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgQ2hhbm5lbFRvZ2dsZUtleXMgPSBrZXlvZiB0eXBlb2YgQ2hhbm5lbFRvZ2dsZVxuIl0sIm5hbWVzIjpbIlRvZ2dsZUJpdGZpZWxkIiwiQ2hhbm5lbFRvZ2dsZSIsIm5zZnciLCJsb2NrZWQiLCJpbnZpdGFibGUiLCJhcmNoaXZlZCIsIm5ld2x5Q3JlYXRlZCIsIm1hbmFnZWQiLCJDaGFubmVsVG9nZ2xlcyIsImNvbnN0cnVjdG9yIiwiY2hhbm5lbE9yQml0ZmllbGQiLCJiaXRmaWVsZCIsImNoYW5uZWwiLCJhZGQiLCJ0aHJlYWRfbWV0YWRhdGEiLCJuZXdseV9jcmVhdGVkIiwiaGFzIiwicGVybWlzc2lvbnMiLCJBcnJheSIsImlzQXJyYXkiLCJjb250YWlucyIsInJlZHVjZSIsImEiLCJiIiwibGlzdCIsImpzb24iLCJrZXkiLCJ2YWx1ZSIsIk9iamVjdCIsImVudHJpZXMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGNBQWMsUUFBUSxzQkFBcUI7QUFFcEQsT0FBTyxNQUFNQyxnQkFBZ0I7SUFDM0IsZ0NBQWdDLEdBQ2hDQyxNQUFNLEtBQUs7SUFDWCwrRUFBK0UsR0FDL0VDLFFBQVEsS0FBSztJQUNiLHVHQUF1RyxHQUN2R0MsV0FBVyxLQUFLO0lBQ2hCLG1DQUFtQyxHQUNuQ0MsVUFBVSxLQUFLO0lBQ2YsdUZBQXVGLEdBQ3ZGQyxjQUFjLEtBQUs7SUFDbkIsNEdBQTRHLEdBQzVHQyxTQUFTLEtBQUs7QUFDaEIsRUFBQztBQUVELE9BQU8sTUFBTUMsdUJBQXVCUjtJQUNsQ1MsWUFBWUMsaUJBQTBDLENBQUU7UUFDdEQsS0FBSztRQUVMLElBQUksT0FBT0Esc0JBQXNCLFVBQVUsSUFBSSxDQUFDQyxRQUFRLEdBQUdEO2FBQ3REO1lBQ0gsTUFBTUUsVUFBVUY7WUFDaEIsSUFBSUUsUUFBUVYsSUFBSSxFQUFFLElBQUksQ0FBQ1csR0FBRyxDQUFDWixjQUFjQyxJQUFJO1lBQzdDLElBQUlVLFFBQVFFLGVBQWUsRUFBRVgsUUFBUSxJQUFJLENBQUNVLEdBQUcsQ0FBQ1osY0FBY0UsTUFBTTtZQUNsRSxJQUFJUyxRQUFRRSxlQUFlLEVBQUVWLFdBQVcsSUFBSSxDQUFDUyxHQUFHLENBQUNaLGNBQWNHLFNBQVM7WUFDeEUsSUFBSVEsUUFBUUUsZUFBZSxFQUFFVCxVQUFVLElBQUksQ0FBQ1EsR0FBRyxDQUFDWixjQUFjSSxRQUFRO1lBQ3RFLElBQUlPLFFBQVFHLGFBQWEsRUFBRSxJQUFJLENBQUNGLEdBQUcsQ0FBQ1osY0FBY0ssWUFBWTtZQUM5RCxJQUFJTSxRQUFRTCxPQUFPLEVBQUUsSUFBSSxDQUFDTSxHQUFHLENBQUNaLGNBQWNNLE9BQU87UUFDckQ7SUFDRjtJQUVBLG9EQUFvRCxHQUNwRCxJQUFJTCxPQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQ2MsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsa0RBQWtELEdBQ2xELElBQUliLFNBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDYSxHQUFHLENBQUM7SUFDbEI7SUFFQSxxREFBcUQsR0FDckQsSUFBSVosWUFBcUI7UUFDdkIsT0FBTyxJQUFJLENBQUNZLEdBQUcsQ0FBQztJQUNsQjtJQUVBLG9EQUFvRCxHQUNwRCxJQUFJWCxXQUFvQjtRQUN0QixPQUFPLElBQUksQ0FBQ1csR0FBRyxDQUFDO0lBQ2xCO0lBRUEseURBQXlELEdBQ3pELElBQUlWLGVBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDVSxHQUFHLENBQUM7SUFDbEI7SUFFQSxJQUFJVCxVQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQ1MsR0FBRyxDQUFDO0lBQ2xCO0lBRUEsd0RBQXdELEdBQ3hEQSxJQUFJQyxXQUFvRCxFQUFXO1FBQ2pFLElBQUksQ0FBQ0MsTUFBTUMsT0FBTyxDQUFDRixjQUFjLE9BQU8sS0FBSyxDQUFDRyxTQUFTbkIsYUFBYSxDQUFDZ0IsWUFBWTtRQUVqRixPQUFPLEtBQUssQ0FBQ0csU0FBU0gsWUFBWUksTUFBTSxDQUFDLENBQUNDLEdBQUdDLElBQU9ELEtBQUtyQixhQUFhLENBQUNzQixFQUFFLEVBQUc7SUFDOUU7SUFFQSxpRkFBaUYsR0FDakZDLE9BQTJDO1FBQ3pDLE1BQU1DLE9BQWdDLENBQUM7UUFDdkMsS0FBSyxNQUFNLENBQUNDLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDNUIsZUFBZ0I7WUFDeER3QixJQUFJLENBQUNDLElBQUksR0FBRyxLQUFLLENBQUNOLFNBQVNPO1FBQzdCO1FBRUEsT0FBT0Y7SUFDVDtBQUNGIn0=