@discordeno/bot 21.0.0 → 21.0.1-next.01dd69b

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 (272) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/bot.cjs +1 -1
  3. package/dist/cjs/commandOptionsParser.cjs +1 -1
  4. package/dist/cjs/constants.cjs +7 -7
  5. package/dist/cjs/desiredProperties.cjs +111 -4
  6. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +4 -2
  7. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +4 -2
  8. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +6 -8
  9. package/dist/cjs/handlers/guilds/index.cjs +2 -2
  10. package/dist/cjs/handlers/index.cjs +3 -3
  11. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +2 -2
  12. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +2 -1
  13. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
  14. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
  15. package/dist/cjs/handlers/messages/index.cjs +3 -3
  16. package/dist/cjs/handlers/soundboard/index.cjs +3 -3
  17. package/dist/cjs/handlers/voice/index.cjs +2 -2
  18. package/dist/cjs/helpers.cjs +52 -34
  19. package/dist/cjs/index.cjs +3 -4
  20. package/dist/cjs/transformers/activity.cjs +5 -5
  21. package/dist/cjs/transformers/application.cjs +2 -1
  22. package/dist/cjs/transformers/attachment.cjs +1 -1
  23. package/dist/cjs/transformers/automodActionExecution.cjs +3 -3
  24. package/dist/cjs/transformers/channel.cjs +11 -9
  25. package/dist/cjs/transformers/component.cjs +184 -64
  26. package/dist/cjs/transformers/emoji.cjs +5 -5
  27. package/dist/cjs/transformers/entitlement.cjs +2 -2
  28. package/dist/cjs/transformers/guild.cjs +12 -4
  29. package/dist/cjs/transformers/incidentsData.cjs +21 -0
  30. package/dist/cjs/transformers/index.cjs +5 -3
  31. package/dist/cjs/transformers/interaction.cjs +38 -22
  32. package/dist/cjs/transformers/invite.cjs +4 -3
  33. package/dist/cjs/transformers/lobby.cjs +41 -0
  34. package/dist/cjs/transformers/member.cjs +5 -5
  35. package/dist/cjs/transformers/message.cjs +23 -8
  36. package/dist/cjs/transformers/onboarding.cjs +6 -6
  37. package/dist/cjs/transformers/poll.cjs +8 -7
  38. package/dist/cjs/transformers/presence.cjs +1 -1
  39. package/dist/cjs/transformers/reverse/application.cjs +1 -1
  40. package/dist/cjs/transformers/reverse/attachment.cjs +15 -14
  41. package/dist/cjs/transformers/reverse/component.cjs +104 -15
  42. package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
  43. package/dist/cjs/transformers/reverse/index.cjs +1 -2
  44. package/dist/cjs/transformers/reverse/member.cjs +37 -35
  45. package/dist/cjs/transformers/reverse/presence.cjs +4 -4
  46. package/dist/cjs/transformers/reverse/team.cjs +1 -1
  47. package/dist/cjs/transformers/role.cjs +17 -5
  48. package/dist/cjs/transformers/scheduledEvent.cjs +4 -4
  49. package/dist/cjs/transformers/sku.cjs +1 -1
  50. package/dist/cjs/transformers/soundboardSound.cjs +1 -1
  51. package/dist/cjs/transformers/stageInstance.cjs +1 -1
  52. package/dist/cjs/transformers/stageInviteInstance.cjs +1 -1
  53. package/dist/cjs/transformers/sticker.cjs +4 -4
  54. package/dist/cjs/transformers/subscription.cjs +2 -2
  55. package/dist/cjs/transformers/team.cjs +1 -1
  56. package/dist/cjs/transformers/template.cjs +1 -1
  57. package/dist/cjs/transformers/threadMember.cjs +8 -7
  58. package/dist/cjs/transformers/toggles/Permissions.cjs +1 -1
  59. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +4 -4
  60. package/dist/cjs/transformers/toggles/channel.cjs +4 -4
  61. package/dist/cjs/transformers/toggles/emoji.cjs +4 -4
  62. package/dist/cjs/transformers/toggles/guild.cjs +24 -7
  63. package/dist/cjs/transformers/toggles/member.cjs +11 -5
  64. package/dist/cjs/transformers/toggles/role.cjs +4 -4
  65. package/dist/cjs/transformers/toggles/user.cjs +4 -4
  66. package/dist/cjs/transformers/toggles/voice.cjs +4 -4
  67. package/dist/cjs/transformers/user.cjs +39 -4
  68. package/dist/cjs/transformers/voiceState.cjs +1 -1
  69. package/dist/cjs/transformers/webhook.cjs +1 -1
  70. package/dist/cjs/transformers/widget.cjs +7 -15
  71. package/dist/cjs/transformers.cjs +165 -142
  72. package/dist/esm/bot.js +2 -2
  73. package/dist/esm/commandOptionsParser.js +1 -1
  74. package/dist/esm/constants.js +2 -2
  75. package/dist/esm/desiredProperties.js +108 -1
  76. package/dist/esm/events.js +1 -1
  77. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +4 -2
  78. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +4 -2
  79. package/dist/esm/handlers/guilds/GUILD_DELETE.js +6 -8
  80. package/dist/esm/handlers/guilds/index.js +2 -2
  81. package/dist/esm/handlers/index.js +3 -3
  82. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +2 -2
  83. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +2 -1
  84. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
  85. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
  86. package/dist/esm/handlers/messages/index.js +3 -3
  87. package/dist/esm/handlers/soundboard/index.js +3 -3
  88. package/dist/esm/handlers/voice/index.js +2 -2
  89. package/dist/esm/helpers.js +52 -34
  90. package/dist/esm/index.js +3 -4
  91. package/dist/esm/transformers/activity.js +1 -1
  92. package/dist/esm/transformers/application.js +2 -1
  93. package/dist/esm/transformers/attachment.js +1 -1
  94. package/dist/esm/transformers/automodActionExecution.js +3 -3
  95. package/dist/esm/transformers/channel.js +5 -3
  96. package/dist/esm/transformers/component.js +170 -61
  97. package/dist/esm/transformers/emoji.js +1 -1
  98. package/dist/esm/transformers/entitlement.js +2 -2
  99. package/dist/esm/transformers/guild.js +9 -1
  100. package/dist/esm/transformers/incidentsData.js +11 -0
  101. package/dist/esm/transformers/index.js +6 -4
  102. package/dist/esm/transformers/interaction.js +32 -14
  103. package/dist/esm/transformers/invite.js +5 -4
  104. package/dist/esm/transformers/lobby.js +23 -0
  105. package/dist/esm/transformers/member.js +2 -2
  106. package/dist/esm/transformers/message.js +14 -2
  107. package/dist/esm/transformers/onboarding.js +2 -2
  108. package/dist/esm/transformers/poll.js +5 -4
  109. package/dist/esm/transformers/presence.js +1 -1
  110. package/dist/esm/transformers/reverse/application.js +1 -1
  111. package/dist/esm/transformers/reverse/attachment.js +15 -14
  112. package/dist/esm/transformers/reverse/component.js +90 -12
  113. package/dist/esm/transformers/reverse/emoji.js +3 -3
  114. package/dist/esm/transformers/reverse/index.js +1 -2
  115. package/dist/esm/transformers/reverse/member.js +34 -32
  116. package/dist/esm/transformers/reverse/presence.js +1 -1
  117. package/dist/esm/transformers/reverse/team.js +1 -1
  118. package/dist/esm/transformers/role.js +11 -2
  119. package/dist/esm/transformers/scheduledEvent.js +1 -1
  120. package/dist/esm/transformers/sku.js +1 -1
  121. package/dist/esm/transformers/soundboardSound.js +1 -1
  122. package/dist/esm/transformers/stageInstance.js +1 -1
  123. package/dist/esm/transformers/stageInviteInstance.js +1 -1
  124. package/dist/esm/transformers/sticker.js +1 -1
  125. package/dist/esm/transformers/subscription.js +2 -2
  126. package/dist/esm/transformers/team.js +1 -1
  127. package/dist/esm/transformers/template.js +1 -1
  128. package/dist/esm/transformers/threadMember.js +5 -4
  129. package/dist/esm/transformers/toggles/Permissions.js +1 -1
  130. package/dist/esm/transformers/toggles/ToggleBitfield.js +1 -1
  131. package/dist/esm/transformers/toggles/channel.js +1 -1
  132. package/dist/esm/transformers/toggles/emoji.js +1 -1
  133. package/dist/esm/transformers/toggles/guild.js +21 -4
  134. package/dist/esm/transformers/toggles/member.js +8 -2
  135. package/dist/esm/transformers/toggles/role.js +1 -1
  136. package/dist/esm/transformers/toggles/user.js +1 -1
  137. package/dist/esm/transformers/toggles/voice.js +1 -1
  138. package/dist/esm/transformers/types.js +2 -2
  139. package/dist/esm/transformers/user.js +27 -1
  140. package/dist/esm/transformers/voiceState.js +1 -1
  141. package/dist/esm/transformers/webhook.js +1 -1
  142. package/dist/esm/transformers/widget.js +7 -15
  143. package/dist/esm/transformers.js +167 -144
  144. package/dist/types/bot.d.ts +0 -2
  145. package/dist/types/bot.d.ts.map +1 -1
  146. package/dist/types/commandOptionsParser.d.ts +11 -2
  147. package/dist/types/commandOptionsParser.d.ts.map +1 -1
  148. package/dist/types/constants.d.ts.map +1 -1
  149. package/dist/types/desiredProperties.d.ts +21 -5
  150. package/dist/types/desiredProperties.d.ts.map +1 -1
  151. package/dist/types/events.d.ts +6 -2
  152. package/dist/types/events.d.ts.map +1 -1
  153. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
  154. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
  155. package/dist/types/handlers/guilds/index.d.ts +1 -1
  156. package/dist/types/handlers/guilds/index.d.ts.map +1 -1
  157. package/dist/types/handlers/index.d.ts +2 -2
  158. package/dist/types/handlers/index.d.ts.map +1 -1
  159. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
  160. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
  161. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
  162. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
  163. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
  164. package/dist/types/handlers/messages/index.d.ts +2 -2
  165. package/dist/types/handlers/messages/index.d.ts.map +1 -1
  166. package/dist/types/handlers/soundboard/index.d.ts +2 -2
  167. package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
  168. package/dist/types/handlers/voice/index.d.ts +1 -1
  169. package/dist/types/handlers/voice/index.d.ts.map +1 -1
  170. package/dist/types/helpers.d.ts +29 -21
  171. package/dist/types/helpers.d.ts.map +1 -1
  172. package/dist/types/index.d.ts +2 -3
  173. package/dist/types/index.d.ts.map +1 -1
  174. package/dist/types/transformers/activity.d.ts +3 -3
  175. package/dist/types/transformers/activity.d.ts.map +1 -1
  176. package/dist/types/transformers/application.d.ts.map +1 -1
  177. package/dist/types/transformers/attachment.d.ts +2 -2
  178. package/dist/types/transformers/attachment.d.ts.map +1 -1
  179. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -1
  180. package/dist/types/transformers/channel.d.ts +5 -5
  181. package/dist/types/transformers/channel.d.ts.map +1 -1
  182. package/dist/types/transformers/component.d.ts +3 -1
  183. package/dist/types/transformers/component.d.ts.map +1 -1
  184. package/dist/types/transformers/emoji.d.ts +4 -4
  185. package/dist/types/transformers/emoji.d.ts.map +1 -1
  186. package/dist/types/transformers/entitlement.d.ts +2 -2
  187. package/dist/types/transformers/entitlement.d.ts.map +1 -1
  188. package/dist/types/transformers/guild.d.ts +4 -4
  189. package/dist/types/transformers/guild.d.ts.map +1 -1
  190. package/dist/types/transformers/incidentsData.d.ts +4 -0
  191. package/dist/types/transformers/incidentsData.d.ts.map +1 -0
  192. package/dist/types/transformers/index.d.ts +5 -3
  193. package/dist/types/transformers/index.d.ts.map +1 -1
  194. package/dist/types/transformers/interaction.d.ts +11 -11
  195. package/dist/types/transformers/interaction.d.ts.map +1 -1
  196. package/dist/types/transformers/invite.d.ts +3 -3
  197. package/dist/types/transformers/invite.d.ts.map +1 -1
  198. package/dist/types/transformers/lobby.d.ts +5 -0
  199. package/dist/types/transformers/lobby.d.ts.map +1 -0
  200. package/dist/types/transformers/member.d.ts +4 -3
  201. package/dist/types/transformers/member.d.ts.map +1 -1
  202. package/dist/types/transformers/message.d.ts +10 -9
  203. package/dist/types/transformers/message.d.ts.map +1 -1
  204. package/dist/types/transformers/onboarding.d.ts +4 -4
  205. package/dist/types/transformers/onboarding.d.ts.map +1 -1
  206. package/dist/types/transformers/poll.d.ts +3 -3
  207. package/dist/types/transformers/poll.d.ts.map +1 -1
  208. package/dist/types/transformers/presence.d.ts +2 -2
  209. package/dist/types/transformers/presence.d.ts.map +1 -1
  210. package/dist/types/transformers/reverse/application.d.ts +2 -2
  211. package/dist/types/transformers/reverse/application.d.ts.map +1 -1
  212. package/dist/types/transformers/reverse/attachment.d.ts +2 -2
  213. package/dist/types/transformers/reverse/attachment.d.ts.map +1 -1
  214. package/dist/types/transformers/reverse/component.d.ts +3 -1
  215. package/dist/types/transformers/reverse/component.d.ts.map +1 -1
  216. package/dist/types/transformers/reverse/emoji.d.ts +2 -2
  217. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
  218. package/dist/types/transformers/reverse/index.d.ts +0 -1
  219. package/dist/types/transformers/reverse/index.d.ts.map +1 -1
  220. package/dist/types/transformers/reverse/member.d.ts +3 -4
  221. package/dist/types/transformers/reverse/member.d.ts.map +1 -1
  222. package/dist/types/transformers/reverse/presence.d.ts +2 -2
  223. package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
  224. package/dist/types/transformers/reverse/team.d.ts +2 -2
  225. package/dist/types/transformers/reverse/team.d.ts.map +1 -1
  226. package/dist/types/transformers/role.d.ts +6 -5
  227. package/dist/types/transformers/role.d.ts.map +1 -1
  228. package/dist/types/transformers/scheduledEvent.d.ts +3 -3
  229. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
  230. package/dist/types/transformers/sku.d.ts +2 -2
  231. package/dist/types/transformers/sku.d.ts.map +1 -1
  232. package/dist/types/transformers/soundboardSound.d.ts +2 -2
  233. package/dist/types/transformers/soundboardSound.d.ts.map +1 -1
  234. package/dist/types/transformers/stageInstance.d.ts +2 -2
  235. package/dist/types/transformers/stageInstance.d.ts.map +1 -1
  236. package/dist/types/transformers/stageInviteInstance.d.ts +3 -3
  237. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
  238. package/dist/types/transformers/sticker.d.ts +3 -3
  239. package/dist/types/transformers/sticker.d.ts.map +1 -1
  240. package/dist/types/transformers/subscription.d.ts +2 -2
  241. package/dist/types/transformers/subscription.d.ts.map +1 -1
  242. package/dist/types/transformers/team.d.ts +2 -2
  243. package/dist/types/transformers/team.d.ts.map +1 -1
  244. package/dist/types/transformers/template.d.ts +2 -2
  245. package/dist/types/transformers/template.d.ts.map +1 -1
  246. package/dist/types/transformers/threadMember.d.ts +11 -2
  247. package/dist/types/transformers/threadMember.d.ts.map +1 -1
  248. package/dist/types/transformers/toggles/guild.d.ts +13 -1
  249. package/dist/types/transformers/toggles/guild.d.ts.map +1 -1
  250. package/dist/types/transformers/toggles/member.d.ts +4 -0
  251. package/dist/types/transformers/toggles/member.d.ts.map +1 -1
  252. package/dist/types/transformers/types.d.ts +171 -18
  253. package/dist/types/transformers/types.d.ts.map +1 -1
  254. package/dist/types/transformers/user.d.ts +7 -4
  255. package/dist/types/transformers/user.d.ts.map +1 -1
  256. package/dist/types/transformers/voiceState.d.ts +3 -3
  257. package/dist/types/transformers/voiceState.d.ts.map +1 -1
  258. package/dist/types/transformers/webhook.d.ts +2 -2
  259. package/dist/types/transformers/webhook.d.ts.map +1 -1
  260. package/dist/types/transformers/widget.d.ts +1 -1
  261. package/dist/types/transformers/widget.d.ts.map +1 -1
  262. package/dist/types/transformers.d.ts +30 -9
  263. package/dist/types/transformers.d.ts.map +1 -1
  264. package/package.json +27 -22
  265. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
  266. package/dist/cjs/utils.cjs +0 -32
  267. package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
  268. package/dist/esm/utils.js +0 -11
  269. package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
  270. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  271. package/dist/types/utils.d.ts +0 -5
  272. package/dist/types/utils.d.ts.map +0 -1
@@ -9,79 +9,188 @@ export function transformComponent(bot, payload) {
9
9
  case MessageComponentTypes.Button:
10
10
  component = transformButtonComponent(bot, payload);
11
11
  break;
12
- case MessageComponentTypes.InputText:
12
+ case MessageComponentTypes.Container:
13
+ component = transformContainerComponent(bot, payload);
14
+ break;
15
+ case MessageComponentTypes.TextInput:
13
16
  component = transformInputTextComponent(bot, payload);
14
17
  break;
15
- case MessageComponentTypes.SelectMenu:
16
- case MessageComponentTypes.SelectMenuChannels:
17
- case MessageComponentTypes.SelectMenuRoles:
18
- case MessageComponentTypes.SelectMenuUsers:
19
- case MessageComponentTypes.SelectMenuUsersAndRoles:
18
+ case MessageComponentTypes.StringSelect:
19
+ case MessageComponentTypes.UserSelect:
20
+ case MessageComponentTypes.RoleSelect:
21
+ case MessageComponentTypes.MentionableSelect:
22
+ case MessageComponentTypes.ChannelSelect:
20
23
  component = transformSelectMenuComponent(bot, payload);
21
24
  break;
25
+ case MessageComponentTypes.Section:
26
+ component = transformSectionComponent(bot, payload);
27
+ break;
28
+ case MessageComponentTypes.Thumbnail:
29
+ component = transformThumbnailComponent(bot, payload);
30
+ break;
31
+ case MessageComponentTypes.MediaGallery:
32
+ component = transformMediaGalleryComponent(bot, payload);
33
+ break;
34
+ case MessageComponentTypes.File:
35
+ component = transformFileComponent(bot, payload);
36
+ break;
37
+ case MessageComponentTypes.Separator:
38
+ component = transformSeparatorComponent(bot, payload);
39
+ break;
40
+ case MessageComponentTypes.TextDisplay:
41
+ component = transformTextDisplayComponent(bot, payload);
42
+ break;
22
43
  }
23
44
  return bot.transformers.customizers.component(bot, payload, component);
24
45
  }
46
+ export function transformUnfurledMediaItem(bot, payload) {
47
+ const props = bot.transformers.desiredProperties.unfurledMediaItem;
48
+ const mediaItem = {};
49
+ if (props.url && payload.url) mediaItem.url = payload.url;
50
+ if (props.proxyUrl && payload.proxy_url) mediaItem.proxyUrl = payload.proxy_url;
51
+ if (props.height && payload.height) mediaItem.height = payload.height;
52
+ if (props.width && payload.width) mediaItem.width = payload.width;
53
+ if (props.contentType && payload.content_type) mediaItem.contentType = payload.content_type;
54
+ if (props.attachmentId && payload.attachment_id) mediaItem.attachmentId = bot.transformers.snowflake(payload.attachment_id);
55
+ return bot.transformers.customizers.unfurledMediaItem(bot, payload, mediaItem);
56
+ }
57
+ export function transformMediaGalleryItem(bot, payload) {
58
+ const props = bot.transformers.desiredProperties.mediaGalleryItem;
59
+ const galleryItem = {};
60
+ if (props.media && payload.media) galleryItem.media = bot.transformers.unfurledMediaItem(bot, payload.media);
61
+ if (props.description && payload.description) galleryItem.description = payload.description;
62
+ if (props.spoiler && payload.spoiler) galleryItem.spoiler = payload.spoiler;
63
+ return bot.transformers.customizers.mediaGalleryItem(bot, payload, galleryItem);
64
+ }
25
65
  function transformActionRow(bot, payload) {
26
- return {
27
- type: MessageComponentTypes.ActionRow,
28
- components: payload.components.map((component)=>bot.transformers.component(bot, component))
29
- };
66
+ const props = bot.transformers.desiredProperties.component;
67
+ const actionRow = {};
68
+ if (props.type && payload.type) actionRow.type = payload.type;
69
+ if (props.id && payload.id) actionRow.id = payload.id;
70
+ if (props.components && payload.components) actionRow.components = payload.components.map((component)=>bot.transformers.component(bot, component));
71
+ return actionRow;
72
+ }
73
+ function transformContainerComponent(bot, payload) {
74
+ const props = bot.transformers.desiredProperties.component;
75
+ const container = {};
76
+ if (props.type && payload.type) container.type = payload.type;
77
+ if (props.id && payload.id) container.id = payload.id;
78
+ if (props.accentColor && payload.accent_color) container.accentColor = payload.accent_color;
79
+ if (props.spoiler && payload.spoiler) container.spoiler = payload.spoiler;
80
+ if (props.components && payload.components) container.components = payload.components.map((component)=>bot.transformers.component(bot, component));
81
+ return container;
30
82
  }
31
83
  function transformButtonComponent(bot, payload) {
32
- return {
33
- type: MessageComponentTypes.Button,
34
- label: payload.label,
35
- customId: payload.custom_id,
36
- style: payload.style,
37
- emoji: payload.emoji ? {
38
- id: payload.emoji.id ? bot.transformers.snowflake(payload.emoji.id) : undefined,
39
- name: payload.emoji.name,
40
- animated: payload.emoji.animated
41
- } : undefined,
42
- url: payload.url,
43
- disabled: payload.disabled,
44
- skuId: payload.sku_id ? bot.transformers.snowflake(payload.sku_id) : undefined
45
- };
84
+ const props = bot.transformers.desiredProperties.component;
85
+ const button = {};
86
+ if (props.type && payload.type) button.type = payload.type;
87
+ if (props.id && payload.id) button.id = payload.id;
88
+ if (props.label && payload.label) button.label = payload.label;
89
+ if (props.customId && payload.custom_id) button.customId = payload.custom_id;
90
+ if (props.style && payload.style) button.style = payload.style;
91
+ if (props.emoji && payload.emoji) button.emoji = bot.transformers.emoji(bot, payload.emoji);
92
+ if (props.url && payload.url) button.url = payload.url;
93
+ if (props.disabled && payload.disabled) button.disabled = payload.disabled;
94
+ if (props.skuId && payload.sku_id) button.skuId = bot.transformers.snowflake(payload.sku_id);
95
+ return button;
46
96
  }
47
- function transformInputTextComponent(_bot, payload) {
48
- return {
49
- type: MessageComponentTypes.InputText,
50
- style: payload.style,
51
- required: payload.required,
52
- customId: payload.custom_id,
53
- label: payload.label,
54
- placeholder: payload.placeholder,
55
- minLength: payload.min_length,
56
- maxLength: payload.max_length,
57
- value: payload.value
58
- };
97
+ function transformInputTextComponent(bot, payload) {
98
+ const props = bot.transformers.desiredProperties.component;
99
+ const input = {};
100
+ if (props.type && payload.type) input.type = payload.type;
101
+ if (props.id && payload.id) input.id = payload.id;
102
+ if (props.style && payload.style) input.style = payload.style;
103
+ if (props.required && payload.required) input.required = payload.required;
104
+ if (props.customId && payload.custom_id) input.customId = payload.custom_id;
105
+ if (props.label && payload.label) input.label = payload.label;
106
+ if (props.placeholder && payload.placeholder) input.placeholder = payload.placeholder;
107
+ if (props.minLength && payload.min_length) input.minLength = payload.min_length;
108
+ if (props.maxLength && payload.max_length) input.maxLength = payload.max_length;
109
+ if (props.value && payload.value) input.value = payload.value;
110
+ return input;
59
111
  }
60
112
  function transformSelectMenuComponent(bot, payload) {
61
- return {
62
- type: payload.type,
63
- customId: payload.custom_id,
64
- placeholder: payload.placeholder,
65
- minValues: payload.min_values,
66
- maxValues: payload.max_values,
67
- defaultValues: payload.default_values?.map((defaultValue)=>({
68
- id: bot.transformers.snowflake(defaultValue.id),
69
- type: defaultValue.type
70
- })),
71
- channelTypes: payload.channel_types,
72
- options: payload.options?.map((option)=>({
73
- label: option.label,
74
- value: option.value,
75
- description: option.description,
76
- emoji: option.emoji ? {
77
- id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,
78
- name: option.emoji.name,
79
- animated: option.emoji.animated
80
- } : undefined,
81
- default: option.default
82
- })),
83
- disabled: payload.disabled
84
- };
113
+ const props = bot.transformers.desiredProperties.component;
114
+ const select = {};
115
+ if (props.type && payload.type) select.type = payload.type;
116
+ if (props.id && payload.id) select.id = payload.id;
117
+ if (props.customId && payload.custom_id) select.customId = payload.custom_id;
118
+ if (props.placeholder && payload.placeholder) select.placeholder = payload.placeholder;
119
+ if (props.minValues && payload.min_values) select.minValues = payload.min_values;
120
+ if (props.maxValues && payload.max_values) select.maxValues = payload.max_values;
121
+ if (props.defaultValues && payload.default_values) select.defaultValues = payload.default_values.map((defaultValue)=>({
122
+ id: bot.transformers.snowflake(defaultValue.id),
123
+ type: defaultValue.type
124
+ }));
125
+ if (props.channelTypes && payload.channel_types) select.channelTypes = payload.channel_types;
126
+ if (props.options && payload.options) select.options = payload.options.map((option)=>({
127
+ label: option.label,
128
+ value: option.value,
129
+ description: option.description,
130
+ emoji: option.emoji ? {
131
+ id: option.emoji.id ? bot.transformers.snowflake(option.emoji.id) : undefined,
132
+ name: option.emoji.name ?? undefined,
133
+ animated: option.emoji.animated
134
+ } : undefined,
135
+ default: option.default
136
+ }));
137
+ if (props.disabled && payload.disabled) select.disabled = payload.disabled;
138
+ return select;
139
+ }
140
+ function transformSectionComponent(bot, payload) {
141
+ const props = bot.transformers.desiredProperties.component;
142
+ const section = {};
143
+ if (props.type && payload.type) section.type = payload.type;
144
+ if (props.id && payload.id) section.id = payload.id;
145
+ if (props.components && payload.components) section.components = payload.components.map((component)=>bot.transformers.component(bot, component));
146
+ if (props.accessory && payload.accessory) section.accessory = bot.transformers.component(bot, payload.accessory);
147
+ return section;
148
+ }
149
+ function transformThumbnailComponent(bot, payload) {
150
+ const props = bot.transformers.desiredProperties.component;
151
+ const thumbnail = {};
152
+ if (props.type && payload.type) thumbnail.type = payload.type;
153
+ if (props.id && payload.id) thumbnail.id = payload.id;
154
+ if (props.media && payload.media) thumbnail.media = bot.transformers.unfurledMediaItem(bot, payload.media);
155
+ if (props.description && payload.description) thumbnail.description = payload.description;
156
+ if (props.spoiler && payload.spoiler) thumbnail.spoiler = payload.spoiler;
157
+ return thumbnail;
158
+ }
159
+ function transformMediaGalleryComponent(bot, payload) {
160
+ const props = bot.transformers.desiredProperties.component;
161
+ const mediaGallery = {};
162
+ if (props.type && payload.type) mediaGallery.type = payload.type;
163
+ if (props.id && payload.id) mediaGallery.id = payload.id;
164
+ if (props.items && payload.items) mediaGallery.items = payload.items.map((item)=>bot.transformers.mediaGalleryItem(bot, item));
165
+ return mediaGallery;
166
+ }
167
+ function transformFileComponent(bot, payload) {
168
+ const props = bot.transformers.desiredProperties.component;
169
+ const file = {};
170
+ if (props.type && payload.type) file.type = payload.type;
171
+ if (props.id && payload.id) file.id = payload.id;
172
+ if (props.file && payload.file) file.file = bot.transformers.unfurledMediaItem(bot, payload.file);
173
+ if (props.spoiler && payload.spoiler) file.spoiler = payload.spoiler;
174
+ if (props.name && payload.name) file.name = payload.name;
175
+ if (props.size && payload.size) file.size = payload.size;
176
+ return file;
177
+ }
178
+ function transformTextDisplayComponent(bot, payload) {
179
+ const props = bot.transformers.desiredProperties.component;
180
+ const textDisplay = {};
181
+ if (props.type && payload.type) textDisplay.type = payload.type;
182
+ if (props.id && payload.id) textDisplay.id = payload.id;
183
+ if (props.content && payload.content) textDisplay.content = payload.content;
184
+ return textDisplay;
185
+ }
186
+ function transformSeparatorComponent(bot, payload) {
187
+ const props = bot.transformers.desiredProperties.component;
188
+ const separator = {};
189
+ if (props.type && payload.type) separator.type = payload.type;
190
+ if (props.id && payload.id) separator.id = payload.id;
191
+ if (props.divider && payload.divider) separator.divider = payload.divider;
192
+ if (props.spacing && payload.spacing) separator.spacing = payload.spacing;
193
+ return separator;
85
194
  }
86
195
 
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRJbnB1dFRleHRDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIE1lc3NhZ2VDb21wb25lbnRUeXBlcyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJvdCwgQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgbGV0IGNvbXBvbmVudDogQ29tcG9uZW50XG5cbiAgLy8gVGhpcyBzd2l0Y2ggaXMgZXhoYXVzdGl2ZSwgc28gd2UgZG9udCBuZWVkIHRoZSBkZWZhdWx0IGNhc2UgYW5kIFRTIGRvZXMgbm90IGVycm9yIG91dCBmb3IgdGhlIHVuLWluaXRpYWxpemVkIGNvbXBvbmVudCB2YXJpYWJsZVxuICBzd2l0Y2ggKHBheWxvYWQudHlwZSkge1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkFjdGlvblJvdzpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUFjdGlvblJvdyhib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3QsIHBheWxvYWQgYXMgRGlzY29yZEJ1dHRvbkNvbXBvbmVudClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuSW5wdXRUZXh0OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdCwgcGF5bG9hZCBhcyBEaXNjb3JkSW5wdXRUZXh0Q29tcG9uZW50KVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWxlY3RNZW51OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnVDaGFubmVsczpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWxlY3RNZW51Um9sZXM6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VsZWN0TWVudVVzZXJzOlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlbGVjdE1lbnVVc2Vyc0FuZFJvbGVzOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQgYXMgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQpXG4gICAgICBicmVha1xuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuY29tcG9uZW50KGJvdCwgcGF5bG9hZCwgY29tcG9uZW50KVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3csXG4gICAgY29tcG9uZW50czogcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpLFxuICB9XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEJ1dHRvbkNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbixcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCxcbiAgICBjdXN0b21JZDogcGF5bG9hZC5jdXN0b21faWQsXG4gICAgc3R5bGU6IHBheWxvYWQuc3R5bGUsXG4gICAgZW1vamk6IHBheWxvYWQuZW1vamlcbiAgICAgID8ge1xuICAgICAgICAgIGlkOiBwYXlsb2FkLmVtb2ppLmlkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgbmFtZTogcGF5bG9hZC5lbW9qaS5uYW1lLFxuICAgICAgICAgIGFuaW1hdGVkOiBwYXlsb2FkLmVtb2ppLmFuaW1hdGVkLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZCxcbiAgICB1cmw6IHBheWxvYWQudXJsLFxuICAgIGRpc2FibGVkOiBwYXlsb2FkLmRpc2FibGVkLFxuICAgIHNrdUlkOiBwYXlsb2FkLnNrdV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKSA6IHVuZGVmaW5lZCxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoX2JvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkSW5wdXRUZXh0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBNZXNzYWdlQ29tcG9uZW50VHlwZXMuSW5wdXRUZXh0LFxuICAgIHN0eWxlOiBwYXlsb2FkLnN0eWxlLFxuICAgIHJlcXVpcmVkOiBwYXlsb2FkLnJlcXVpcmVkLFxuICAgIGN1c3RvbUlkOiBwYXlsb2FkLmN1c3RvbV9pZCxcbiAgICBsYWJlbDogcGF5bG9hZC5sYWJlbCxcbiAgICBwbGFjZWhvbGRlcjogcGF5bG9hZC5wbGFjZWhvbGRlcixcbiAgICBtaW5MZW5ndGg6IHBheWxvYWQubWluX2xlbmd0aCxcbiAgICBtYXhMZW5ndGg6IHBheWxvYWQubWF4X2xlbmd0aCxcbiAgICB2YWx1ZTogcGF5bG9hZC52YWx1ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkU2VsZWN0TWVudUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogcGF5bG9hZC50eXBlLFxuICAgIGN1c3RvbUlkOiBwYXlsb2FkLmN1c3RvbV9pZCxcbiAgICBwbGFjZWhvbGRlcjogcGF5bG9hZC5wbGFjZWhvbGRlcixcbiAgICBtaW5WYWx1ZXM6IHBheWxvYWQubWluX3ZhbHVlcyxcbiAgICBtYXhWYWx1ZXM6IHBheWxvYWQubWF4X3ZhbHVlcyxcbiAgICBkZWZhdWx0VmFsdWVzOiBwYXlsb2FkLmRlZmF1bHRfdmFsdWVzPy5tYXAoKGRlZmF1bHRWYWx1ZSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgdHlwZTogZGVmYXVsdFZhbHVlLnR5cGUsXG4gICAgfSkpLFxuICAgIGNoYW5uZWxUeXBlczogcGF5bG9hZC5jaGFubmVsX3R5cGVzLFxuICAgIG9wdGlvbnM6IHBheWxvYWQub3B0aW9ucz8ubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSxcbiAgICAgICAgICAgIGFuaW1hdGVkOiBvcHRpb24uZW1vamkuYW5pbWF0ZWQsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgIH0pKSxcbiAgICBkaXNhYmxlZDogcGF5bG9hZC5kaXNhYmxlZCxcbiAgfVxufVxuIl0sIm5hbWVzIjpbIk1lc3NhZ2VDb21wb25lbnRUeXBlcyIsInRyYW5zZm9ybUNvbXBvbmVudCIsImJvdCIsInBheWxvYWQiLCJjb21wb25lbnQiLCJ0eXBlIiwiQWN0aW9uUm93IiwidHJhbnNmb3JtQWN0aW9uUm93IiwiQnV0dG9uIiwidHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50IiwiSW5wdXRUZXh0IiwidHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50IiwiU2VsZWN0TWVudSIsIlNlbGVjdE1lbnVDaGFubmVscyIsIlNlbGVjdE1lbnVSb2xlcyIsIlNlbGVjdE1lbnVVc2VycyIsIlNlbGVjdE1lbnVVc2Vyc0FuZFJvbGVzIiwidHJhbnNmb3JtU2VsZWN0TWVudUNvbXBvbmVudCIsInRyYW5zZm9ybWVycyIsImN1c3RvbWl6ZXJzIiwiY29tcG9uZW50cyIsIm1hcCIsImxhYmVsIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJzdHlsZSIsImVtb2ppIiwiaWQiLCJzbm93Zmxha2UiLCJ1bmRlZmluZWQiLCJuYW1lIiwiYW5pbWF0ZWQiLCJ1cmwiLCJkaXNhYmxlZCIsInNrdUlkIiwic2t1X2lkIiwiX2JvdCIsInJlcXVpcmVkIiwicGxhY2Vob2xkZXIiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInZhbHVlIiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwib3B0aW9ucyIsIm9wdGlvbiIsImRlc2NyaXB0aW9uIiwiZGVmYXVsdCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FNRUEscUJBQXFCLFFBQ2hCLG9CQUFtQjtBQUcxQixPQUFPLFNBQVNDLG1CQUFtQkMsR0FBUSxFQUFFQyxPQUFnQztJQUMzRSxJQUFJQztJQUVKLGtJQUFrSTtJQUNsSSxPQUFRRCxRQUFRRSxJQUFJO1FBQ2xCLEtBQUtMLHNCQUFzQk0sU0FBUztZQUNsQ0YsWUFBWUcsbUJBQW1CTCxLQUFLQztZQUNwQztRQUNGLEtBQUtILHNCQUFzQlEsTUFBTTtZQUMvQkosWUFBWUsseUJBQXlCUCxLQUFLQztZQUMxQztRQUNGLEtBQUtILHNCQUFzQlUsU0FBUztZQUNsQ04sWUFBWU8sNEJBQTRCVCxLQUFLQztZQUM3QztRQUNGLEtBQUtILHNCQUFzQlksVUFBVTtRQUNyQyxLQUFLWixzQkFBc0JhLGtCQUFrQjtRQUM3QyxLQUFLYixzQkFBc0JjLGVBQWU7UUFDMUMsS0FBS2Qsc0JBQXNCZSxlQUFlO1FBQzFDLEtBQUtmLHNCQUFzQmdCLHVCQUF1QjtZQUNoRFosWUFBWWEsNkJBQTZCZixLQUFLQztZQUM5QztJQUNKO0lBRUEsT0FBT0QsSUFBSWdCLFlBQVksQ0FBQ0MsV0FBVyxDQUFDZixTQUFTLENBQUNGLEtBQUtDLFNBQVNDO0FBQzlEO0FBRUEsU0FBU0csbUJBQW1CTCxHQUFRLEVBQUVDLE9BQXlCO0lBQzdELE9BQU87UUFDTEUsTUFBTUwsc0JBQXNCTSxTQUFTO1FBQ3JDYyxZQUFZakIsUUFBUWlCLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDLENBQUNqQixZQUFjRixJQUFJZ0IsWUFBWSxDQUFDZCxTQUFTLENBQUNGLEtBQUtFO0lBQ3BGO0FBQ0Y7QUFFQSxTQUFTSyx5QkFBeUJQLEdBQVEsRUFBRUMsT0FBK0I7SUFDekUsT0FBTztRQUNMRSxNQUFNTCxzQkFBc0JRLE1BQU07UUFDbENjLE9BQU9uQixRQUFRbUIsS0FBSztRQUNwQkMsVUFBVXBCLFFBQVFxQixTQUFTO1FBQzNCQyxPQUFPdEIsUUFBUXNCLEtBQUs7UUFDcEJDLE9BQU92QixRQUFRdUIsS0FBSyxHQUNoQjtZQUNFQyxJQUFJeEIsUUFBUXVCLEtBQUssQ0FBQ0MsRUFBRSxHQUFHekIsSUFBSWdCLFlBQVksQ0FBQ1UsU0FBUyxDQUFDekIsUUFBUXVCLEtBQUssQ0FBQ0MsRUFBRSxJQUFJRTtZQUN0RUMsTUFBTTNCLFFBQVF1QixLQUFLLENBQUNJLElBQUk7WUFDeEJDLFVBQVU1QixRQUFRdUIsS0FBSyxDQUFDSyxRQUFRO1FBQ2xDLElBQ0FGO1FBQ0pHLEtBQUs3QixRQUFRNkIsR0FBRztRQUNoQkMsVUFBVTlCLFFBQVE4QixRQUFRO1FBQzFCQyxPQUFPL0IsUUFBUWdDLE1BQU0sR0FBR2pDLElBQUlnQixZQUFZLENBQUNVLFNBQVMsQ0FBQ3pCLFFBQVFnQyxNQUFNLElBQUlOO0lBQ3ZFO0FBQ0Y7QUFFQSxTQUFTbEIsNEJBQTRCeUIsSUFBUyxFQUFFakMsT0FBa0M7SUFDaEYsT0FBTztRQUNMRSxNQUFNTCxzQkFBc0JVLFNBQVM7UUFDckNlLE9BQU90QixRQUFRc0IsS0FBSztRQUNwQlksVUFBVWxDLFFBQVFrQyxRQUFRO1FBQzFCZCxVQUFVcEIsUUFBUXFCLFNBQVM7UUFDM0JGLE9BQU9uQixRQUFRbUIsS0FBSztRQUNwQmdCLGFBQWFuQyxRQUFRbUMsV0FBVztRQUNoQ0MsV0FBV3BDLFFBQVFxQyxVQUFVO1FBQzdCQyxXQUFXdEMsUUFBUXVDLFVBQVU7UUFDN0JDLE9BQU94QyxRQUFRd0MsS0FBSztJQUN0QjtBQUNGO0FBRUEsU0FBUzFCLDZCQUE2QmYsR0FBUSxFQUFFQyxPQUFtQztJQUNqRixPQUFPO1FBQ0xFLE1BQU1GLFFBQVFFLElBQUk7UUFDbEJrQixVQUFVcEIsUUFBUXFCLFNBQVM7UUFDM0JjLGFBQWFuQyxRQUFRbUMsV0FBVztRQUNoQ00sV0FBV3pDLFFBQVEwQyxVQUFVO1FBQzdCQyxXQUFXM0MsUUFBUTRDLFVBQVU7UUFDN0JDLGVBQWU3QyxRQUFROEMsY0FBYyxFQUFFNUIsSUFBSSxDQUFDNkIsZUFBa0IsQ0FBQTtnQkFDNUR2QixJQUFJekIsSUFBSWdCLFlBQVksQ0FBQ1UsU0FBUyxDQUFDc0IsYUFBYXZCLEVBQUU7Z0JBQzlDdEIsTUFBTTZDLGFBQWE3QyxJQUFJO1lBQ3pCLENBQUE7UUFDQThDLGNBQWNoRCxRQUFRaUQsYUFBYTtRQUNuQ0MsU0FBU2xELFFBQVFrRCxPQUFPLEVBQUVoQyxJQUFJLENBQUNpQyxTQUFZLENBQUE7Z0JBQ3pDaEMsT0FBT2dDLE9BQU9oQyxLQUFLO2dCQUNuQnFCLE9BQU9XLE9BQU9YLEtBQUs7Z0JBQ25CWSxhQUFhRCxPQUFPQyxXQUFXO2dCQUMvQjdCLE9BQU80QixPQUFPNUIsS0FBSyxHQUNmO29CQUNFQyxJQUFJMkIsT0FBTzVCLEtBQUssQ0FBQ0MsRUFBRSxHQUFHekIsSUFBSWdCLFlBQVksQ0FBQ1UsU0FBUyxDQUFDMEIsT0FBTzVCLEtBQUssQ0FBQ0MsRUFBRSxJQUFJRTtvQkFDcEVDLE1BQU13QixPQUFPNUIsS0FBSyxDQUFDSSxJQUFJO29CQUN2QkMsVUFBVXVCLE9BQU81QixLQUFLLENBQUNLLFFBQVE7Z0JBQ2pDLElBQ0FGO2dCQUNKMkIsU0FBU0YsT0FBT0UsT0FBTztZQUN6QixDQUFBO1FBQ0F2QixVQUFVOUIsUUFBUThCLFFBQVE7SUFDNUI7QUFDRiJ9
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRGaWxlQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlY3Rpb25Db21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlbGVjdE1lbnVDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFNlcGFyYXRvckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICBNZXNzYWdlQ29tcG9uZW50VHlwZXMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBCb3QsXG4gIENvbXBvbmVudCxcbiAgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0sXG4gIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgTWVkaWFHYWxsZXJ5SXRlbSxcbiAgVW5mdXJsZWRNZWRpYUl0ZW0sXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCk6IENvbXBvbmVudCB7XG4gIGxldCBjb21wb25lbnQ6IENvbXBvbmVudFxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5CdXR0b246XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Db250YWluZXI6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TdHJpbmdTZWxlY3Q6XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVXNlclNlbGVjdDpcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5Sb2xlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLk1lbnRpb25hYmxlU2VsZWN0OlxuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoYW5uZWxTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZClcbiAgICAgIGJyZWFrXG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuU2VjdGlvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UaHVtYm5haWw6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5GaWxlOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtRmlsZUNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlNlcGFyYXRvcjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3QsIHBheWxvYWQpXG4gICAgICBicmVha1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKVxuICAgICAgYnJlYWtcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQsIGNvbXBvbmVudClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVW5mdXJsZWRNZWRpYUl0ZW0pOiBVbmZ1cmxlZE1lZGlhSXRlbSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbVxuICBjb25zdCBtZWRpYUl0ZW0gPSB7fSBhcyBVbmZ1cmxlZE1lZGlhSXRlbVxuXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIG1lZGlhSXRlbS51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMucHJveHlVcmwgJiYgcGF5bG9hZC5wcm94eV91cmwpIG1lZGlhSXRlbS5wcm94eVVybCA9IHBheWxvYWQucHJveHlfdXJsXG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodFxuICBpZiAocHJvcHMud2lkdGggJiYgcGF5bG9hZC53aWR0aCkgbWVkaWFJdGVtLndpZHRoID0gcGF5bG9hZC53aWR0aFxuICBpZiAocHJvcHMuY29udGVudFR5cGUgJiYgcGF5bG9hZC5jb250ZW50X3R5cGUpIG1lZGlhSXRlbS5jb250ZW50VHlwZSA9IHBheWxvYWQuY29udGVudF90eXBlXG4gIGlmIChwcm9wcy5hdHRhY2htZW50SWQgJiYgcGF5bG9hZC5hdHRhY2htZW50X2lkKSBtZWRpYUl0ZW0uYXR0YWNobWVudElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5hdHRhY2htZW50X2lkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZCwgbWVkaWFJdGVtKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0pOiBNZWRpYUdhbGxlcnlJdGVtIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lZGlhR2FsbGVyeUl0ZW1cbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBNZWRpYUdhbGxlcnlJdGVtXG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBnYWxsZXJ5SXRlbS5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb25cbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBnYWxsZXJ5SXRlbS5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIHBheWxvYWQsIGdhbGxlcnlJdGVtKVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRBY3Rpb25Sb3cpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGFjdGlvblJvdy5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBhY3Rpb25Sb3cuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKVxuXG4gIHJldHVybiBhY3Rpb25Sb3dcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkQ29udGFpbmVyQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBjb250YWluZXIgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGNvbnRhaW5lci50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5hY2NlbnRDb2xvciAmJiBwYXlsb2FkLmFjY2VudF9jb2xvcikgY29udGFpbmVyLmFjY2VudENvbG9yID0gcGF5bG9hZC5hY2NlbnRfY29sb3JcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBjb250YWluZXIuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlclxuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIGNvbnRhaW5lci5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG5cbiAgcmV0dXJuIGNvbnRhaW5lclxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRCdXR0b25Db21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGJ1dHRvbi5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGJ1dHRvbi5sYWJlbCA9IHBheWxvYWQubGFiZWxcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZFxuICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgYnV0dG9uLnN0eWxlID0gcGF5bG9hZC5zdHlsZVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgYnV0dG9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy51cmwgJiYgcGF5bG9hZC51cmwpIGJ1dHRvbi51cmwgPSBwYXlsb2FkLnVybFxuICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgcGF5bG9hZC5kaXNhYmxlZCkgYnV0dG9uLmRpc2FibGVkID0gcGF5bG9hZC5kaXNhYmxlZFxuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuXG4gIHJldHVybiBidXR0b25cbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkVGV4dElucHV0Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBpbnB1dCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgaW5wdXQuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5zdHlsZSAmJiBwYXlsb2FkLnN0eWxlKSBpbnB1dC5zdHlsZSA9IHBheWxvYWQuc3R5bGVcbiAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQpIGlucHV0LnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZFxuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGlucHV0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbFxuICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyXG4gIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGhcbiAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aFxuICBpZiAocHJvcHMudmFsdWUgJiYgcGF5bG9hZC52YWx1ZSkgaW5wdXQudmFsdWUgPSBwYXlsb2FkLnZhbHVlXG5cbiAgcmV0dXJuIGlucHV0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWxlY3RNZW51Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBDb21wb25lbnRcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWRcbiAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIHBheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IHBheWxvYWQucGxhY2Vob2xkZXJcbiAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXNcbiAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXNcbiAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IHBheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgIH0pKVxuICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIHBheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IHBheWxvYWQuY2hhbm5lbF90eXBlc1xuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpXG4gICAgc2VsZWN0Lm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICBsYWJlbDogb3B0aW9uLmxhYmVsLFxuICAgICAgdmFsdWU6IG9wdGlvbi52YWx1ZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICBlbW9qaTogb3B0aW9uLmVtb2ppXG4gICAgICAgID8ge1xuICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICBuYW1lOiBvcHRpb24uZW1vamkubmFtZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICBhbmltYXRlZDogb3B0aW9uLmVtb2ppLmFuaW1hdGVkLFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICBkZWZhdWx0OiBvcHRpb24uZGVmYXVsdCxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmRpc2FibGVkICYmIHBheWxvYWQuZGlzYWJsZWQpIHNlbGVjdC5kaXNhYmxlZCA9IHBheWxvYWQuZGlzYWJsZWRcblxuICByZXR1cm4gc2VsZWN0XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZWN0aW9uQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBzZWN0aW9uID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlY3Rpb24uaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQuY29tcG9uZW50cykgc2VjdGlvbi5jb21wb25lbnRzID0gcGF5bG9hZC5jb21wb25lbnRzLm1hcCgoY29tcG9uZW50KSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXBvbmVudCkpXG4gIGlmIChwcm9wcy5hY2Nlc3NvcnkgJiYgcGF5bG9hZC5hY2Nlc3NvcnkpIHNlY3Rpb24uYWNjZXNzb3J5ID0gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBwYXlsb2FkLmFjY2Vzc29yeSlcblxuICByZXR1cm4gc2VjdGlvblxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRUaHVtYm5haWxDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHRodW1ibmFpbCA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGh1bWJuYWlsLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHRodW1ibmFpbC5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIHRodW1ibmFpbC5tZWRpYSA9IGJvdC50cmFuc2Zvcm1lcnMudW5mdXJsZWRNZWRpYUl0ZW0oYm90LCBwYXlsb2FkLm1lZGlhKVxuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5kZXNjcmlwdGlvbikgdGh1bWJuYWlsLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5kZXNjcmlwdGlvblxuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIHRodW1ibmFpbC5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyXG5cbiAgcmV0dXJuIHRodW1ibmFpbFxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IG1lZGlhR2FsbGVyeSA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgbWVkaWFHYWxsZXJ5LnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lZGlhR2FsbGVyeS5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLml0ZW1zICYmIHBheWxvYWQuaXRlbXMpIG1lZGlhR2FsbGVyeS5pdGVtcyA9IHBheWxvYWQuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lZGlhR2FsbGVyeUl0ZW0oYm90LCBpdGVtKSlcblxuICByZXR1cm4gbWVkaWFHYWxsZXJ5XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUZpbGVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRGaWxlQ29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCBmaWxlID0ge30gYXMgQ29tcG9uZW50XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBmaWxlLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGZpbGUuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5maWxlICYmIHBheWxvYWQuZmlsZSkgZmlsZS5maWxlID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQuZmlsZSlcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBmaWxlLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXJcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBmaWxlLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnNpemUgJiYgcGF5bG9hZC5zaXplKSBmaWxlLnNpemUgPSBwYXlsb2FkLnNpemVcblxuICByZXR1cm4gZmlsZVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50KTogQ29tcG9uZW50IHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudFxuICBjb25zdCB0ZXh0RGlzcGxheSA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGV4dERpc3BsYXkudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGV4dERpc3BsYXkuaWQgPSBwYXlsb2FkLmlkXG4gIGlmIChwcm9wcy5jb250ZW50ICYmIHBheWxvYWQuY29udGVudCkgdGV4dERpc3BsYXkuY29udGVudCA9IHBheWxvYWQuY29udGVudFxuXG4gIHJldHVybiB0ZXh0RGlzcGxheVxufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRTZXBhcmF0b3JDb21wb25lbnQpOiBDb21wb25lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50XG4gIGNvbnN0IHNlcGFyYXRvciA9IHt9IGFzIENvbXBvbmVudFxuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgc2VwYXJhdG9yLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlcGFyYXRvci5pZCA9IHBheWxvYWQuaWRcbiAgaWYgKHByb3BzLmRpdmlkZXIgJiYgcGF5bG9hZC5kaXZpZGVyKSBzZXBhcmF0b3IuZGl2aWRlciA9IHBheWxvYWQuZGl2aWRlclxuICBpZiAocHJvcHMuc3BhY2luZyAmJiBwYXlsb2FkLnNwYWNpbmcpIHNlcGFyYXRvci5zcGFjaW5nID0gcGF5bG9hZC5zcGFjaW5nXG5cbiAgcmV0dXJuIHNlcGFyYXRvclxufVxuIl0sIm5hbWVzIjpbIk1lc3NhZ2VDb21wb25lbnRUeXBlcyIsInRyYW5zZm9ybUNvbXBvbmVudCIsImJvdCIsInBheWxvYWQiLCJjb21wb25lbnQiLCJ0eXBlIiwiQWN0aW9uUm93IiwidHJhbnNmb3JtQWN0aW9uUm93IiwiQnV0dG9uIiwidHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50IiwiQ29udGFpbmVyIiwidHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50IiwiVGV4dElucHV0IiwidHJhbnNmb3JtSW5wdXRUZXh0Q29tcG9uZW50IiwiU3RyaW5nU2VsZWN0IiwiVXNlclNlbGVjdCIsIlJvbGVTZWxlY3QiLCJNZW50aW9uYWJsZVNlbGVjdCIsIkNoYW5uZWxTZWxlY3QiLCJ0cmFuc2Zvcm1TZWxlY3RNZW51Q29tcG9uZW50IiwiU2VjdGlvbiIsInRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQiLCJUaHVtYm5haWwiLCJ0cmFuc2Zvcm1UaHVtYm5haWxDb21wb25lbnQiLCJNZWRpYUdhbGxlcnkiLCJ0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQiLCJGaWxlIiwidHJhbnNmb3JtRmlsZUNvbXBvbmVudCIsIlNlcGFyYXRvciIsInRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudCIsIlRleHREaXNwbGF5IiwidHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQiLCJ0cmFuc2Zvcm1lcnMiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwicHJvcHMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiYXR0YWNobWVudElkIiwiYXR0YWNobWVudF9pZCIsInNub3dmbGFrZSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUl0ZW0iLCJtZWRpYUdhbGxlcnlJdGVtIiwiZ2FsbGVyeUl0ZW0iLCJtZWRpYSIsImRlc2NyaXB0aW9uIiwic3BvaWxlciIsImFjdGlvblJvdyIsImlkIiwiY29tcG9uZW50cyIsIm1hcCIsImNvbnRhaW5lciIsImFjY2VudENvbG9yIiwiYWNjZW50X2NvbG9yIiwiYnV0dG9uIiwibGFiZWwiLCJjdXN0b21JZCIsImN1c3RvbV9pZCIsInN0eWxlIiwiZW1vamkiLCJkaXNhYmxlZCIsInNrdUlkIiwic2t1X2lkIiwiaW5wdXQiLCJyZXF1aXJlZCIsInBsYWNlaG9sZGVyIiwibWluTGVuZ3RoIiwibWluX2xlbmd0aCIsIm1heExlbmd0aCIsIm1heF9sZW5ndGgiLCJ2YWx1ZSIsInNlbGVjdCIsIm1pblZhbHVlcyIsIm1pbl92YWx1ZXMiLCJtYXhWYWx1ZXMiLCJtYXhfdmFsdWVzIiwiZGVmYXVsdFZhbHVlcyIsImRlZmF1bHRfdmFsdWVzIiwiZGVmYXVsdFZhbHVlIiwiY2hhbm5lbFR5cGVzIiwiY2hhbm5lbF90eXBlcyIsIm9wdGlvbnMiLCJvcHRpb24iLCJ1bmRlZmluZWQiLCJuYW1lIiwiYW5pbWF0ZWQiLCJkZWZhdWx0Iiwic2VjdGlvbiIsImFjY2Vzc29yeSIsInRodW1ibmFpbCIsIm1lZGlhR2FsbGVyeSIsIml0ZW1zIiwiaXRlbSIsImZpbGUiLCJzaXplIiwidGV4dERpc3BsYXkiLCJjb250ZW50Iiwic2VwYXJhdG9yIiwiZGl2aWRlciIsInNwYWNpbmciXSwibWFwcGluZ3MiOiJBQUFBLFNBWUVBLHFCQUFxQixRQUNoQixvQkFBbUI7QUFXMUIsT0FBTyxTQUFTQyxtQkFBbUJDLEdBQVEsRUFBRUMsT0FBZ0M7SUFDM0UsSUFBSUM7SUFFSixrSUFBa0k7SUFDbEksT0FBUUQsUUFBUUUsSUFBSTtRQUNsQixLQUFLTCxzQkFBc0JNLFNBQVM7WUFDbENGLFlBQVlHLG1CQUFtQkwsS0FBS0M7WUFDcEM7UUFDRixLQUFLSCxzQkFBc0JRLE1BQU07WUFDL0JK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
@@ -33,4 +33,4 @@ export function transformDefaultReactionEmoji(bot, payload) {
33
33
  return bot.transformers.customizers.defaultReactionEmoji(bot, payload, defaultReactionEmoji);
34
34
  }
35
35
 
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEZWZhdWx0UmVhY3Rpb25FbW9qaSwgRW1vamksIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZW1vamknXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2Vtb2ppJ10pLFxuXG4gIGdldCBhbmltYXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5hbmltYXRlZFxuICB9LFxuICBnZXQgcmVxdWlyZUNvbG9ucygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5yZXF1aXJlQ29sb25zXG4gIH0sXG4gIGdldCBtYW5hZ2VkKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/Lm1hbmFnZWRcbiAgfSxcbiAgZ2V0IGF2YWlsYWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmF2YWlsYWJsZVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRW1vamkoYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZEVtb2ppKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW1vamlcbiAgY29uc3QgZW1vamkgPSBPYmplY3QuY3JlYXRlKGJhc2VFbW9qaSkgYXMgRW1vamlcblxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgZW1vamkuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMubmFtZSAmJiBwYXlsb2FkLm5hbWUpIGVtb2ppLm5hbWUgPSBwYXlsb2FkLm5hbWVcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIGVtb2ppLnJvbGVzID0gcGF5bG9hZC5yb2xlcy5tYXAoKGlkKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpZCkpXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgZW1vamkudXNlciA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQudXNlcilcblxuICBlbW9qaS50b2dnbGVzID0gbmV3IEVtb2ppVG9nZ2xlcyhwYXlsb2FkKVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmVtb2ppKGJvdCwgcGF5bG9hZCwgZW1vamkpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1EZWZhdWx0UmVhY3Rpb25FbW9qaShcbiAgYm90OiBJbnRlcm5hbEJvdCxcbiAgcGF5bG9hZDogRGlzY29yZERlZmF1bHRSZWFjdGlvbkVtb2ppLFxuKTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZGVmYXVsdFJlYWN0aW9uRW1vamkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZGVmYXVsdFJlYWN0aW9uRW1vamlcbiAgY29uc3QgZGVmYXVsdFJlYWN0aW9uRW1vamkgPSB7fSBhcyBEZWZhdWx0UmVhY3Rpb25FbW9qaVxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJFbW9qaVRvZ2dsZXMiLCJiYXNlRW1vamkiLCJ1bmRlZmluZWQiLCJhbmltYXRlZCIsInRvZ2dsZXMiLCJyZXF1aXJlQ29sb25zIiwibWFuYWdlZCIsImF2YWlsYWJsZSIsInRyYW5zZm9ybUVtb2ppIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJlbW9qaSIsIk9iamVjdCIsImNyZWF0ZSIsImlkIiwic25vd2ZsYWtlIiwibmFtZSIsInJvbGVzIiwibWFwIiwidXNlciIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLFlBQVksUUFBUSxxQkFBb0I7QUFFakQsT0FBTyxNQUFNQyxZQUFvRTtJQUMvRSwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFlBQVc7UUFDYixPQUFPLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtJQUN2QjtJQUNBLElBQUlFLGlCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztJQUN2QjtJQUNBLElBQUlDLFdBQVU7UUFDWixPQUFPLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtJQUN2QjtJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ0gsT0FBTyxDQUFDRyxTQUFTO0lBQy9CO0FBQ0YsRUFBQztBQUVELE9BQU8sU0FBU0MsZUFBZUMsR0FBZ0IsRUFBRUMsT0FBcUI7SUFDcEUsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsS0FBSztJQUN0RCxNQUFNQSxRQUFRQyxPQUFPQyxNQUFNLENBQUNmO0lBRTVCLElBQUlVLE1BQU1NLEVBQUUsSUFBSVAsUUFBUU8sRUFBRSxFQUFFSCxNQUFNRyxFQUFFLEdBQUdSLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRTyxFQUFFO0lBQzVFLElBQUlOLE1BQU1RLElBQUksSUFBSVQsUUFBUVMsSUFBSSxFQUFFTCxNQUFNSyxJQUFJLEdBQUdULFFBQVFTLElBQUk7SUFDekQsSUFBSVIsTUFBTVMsS0FBSyxJQUFJVixRQUFRVSxLQUFLLEVBQUVOLE1BQU1NLEtBQUssR0FBR1YsUUFBUVUsS0FBSyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0osS0FBT1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNEO0lBQ3JHLElBQUlOLE1BQU1XLElBQUksSUFBSVosUUFBUVksSUFBSSxFQUFFUixNQUFNUSxJQUFJLEdBQUdiLElBQUlHLFlBQVksQ0FBQ1UsSUFBSSxDQUFDYixLQUFLQyxRQUFRWSxJQUFJO0lBRXBGUixNQUFNVixPQUFPLEdBQUcsSUFBSUosYUFBYVU7SUFFakMsT0FBT0QsSUFBSUcsWUFBWSxDQUFDVyxXQUFXLENBQUNULEtBQUssQ0FBQ0wsS0FBS0MsU0FBU0k7QUFDMUQ7QUFFQSxPQUFPLFNBQVNVLDhCQUNkZixHQUFnQixFQUNoQkMsT0FBb0M7SUFFcEMsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ1ksb0JBQW9CO0lBQ3JFLE1BQU1BLHVCQUF1QixDQUFDO0lBRTlCLElBQUlkLE1BQU1lLE9BQU8sSUFBSWhCLFFBQVFpQixRQUFRLEVBQUVGLHFCQUFxQkMsT0FBTyxHQUFHakIsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFpQixRQUFRO0lBQ2pILElBQUloQixNQUFNaUIsU0FBUyxJQUFJbEIsUUFBUW1CLFVBQVUsRUFBRUoscUJBQXFCRyxTQUFTLEdBQUdsQixRQUFRbUIsVUFBVTtJQUU5RixPQUFPcEIsSUFBSUcsWUFBWSxDQUFDVyxXQUFXLENBQUNFLG9CQUFvQixDQUFDaEIsS0FBS0MsU0FBU2U7QUFDekUifQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW1vamkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRGVmYXVsdFJlYWN0aW9uRW1vamksIERpc2NvcmRFbW9qaSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCb3QsIERlZmF1bHRSZWFjdGlvbkVtb2ppLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBFbW9qaSwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBFbW9qaVRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZW1vamkuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlRW1vamk6IEVtb2ppID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEVtb2ppKSxcblxuICBnZXQgYW5pbWF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlcz8uYW5pbWF0ZWRcbiAgfSxcbiAgZ2V0IHJlcXVpcmVDb2xvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlcz8ucmVxdWlyZUNvbG9uc1xuICB9LFxuICBnZXQgbWFuYWdlZCgpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzPy5tYW5hZ2VkXG4gIH0sXG4gIGdldCBhdmFpbGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlcy5hdmFpbGFibGVcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUVtb2ppKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkRW1vamkpOiBFbW9qaSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5lbW9qaVxuICBjb25zdCBlbW9qaSA9IE9iamVjdC5jcmVhdGUoYmFzZUVtb2ppKSBhcyBTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGVtb2ppLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBlbW9qaS5uYW1lID0gcGF5bG9hZC5uYW1lXG4gIGlmIChwcm9wcy5yb2xlcyAmJiBwYXlsb2FkLnJvbGVzKSBlbW9qaS5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIGVtb2ppLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG5cbiAgZW1vamkudG9nZ2xlcyA9IG5ldyBFbW9qaVRvZ2dsZXMocGF5bG9hZClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5lbW9qaShib3QsIHBheWxvYWQsIGVtb2ppKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtRGVmYXVsdFJlYWN0aW9uRW1vamkoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmREZWZhdWx0UmVhY3Rpb25FbW9qaSk6IERlZmF1bHRSZWFjdGlvbkVtb2ppIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmRlZmF1bHRSZWFjdGlvbkVtb2ppXG4gIGNvbnN0IGRlZmF1bHRSZWFjdGlvbkVtb2ppID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8RGVmYXVsdFJlYWN0aW9uRW1vamksIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5lbW9qaUlkICYmIHBheWxvYWQuZW1vamlfaWQpIGRlZmF1bHRSZWFjdGlvbkVtb2ppLmVtb2ppSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmVtb2ppX2lkKVxuICBpZiAocHJvcHMuZW1vamlOYW1lICYmIHBheWxvYWQuZW1vamlfbmFtZSkgZGVmYXVsdFJlYWN0aW9uRW1vamkuZW1vamlOYW1lID0gcGF5bG9hZC5lbW9qaV9uYW1lXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZGVmYXVsdFJlYWN0aW9uRW1vamkoYm90LCBwYXlsb2FkLCBkZWZhdWx0UmVhY3Rpb25FbW9qaSlcbn1cbiJdLCJuYW1lcyI6WyJFbW9qaVRvZ2dsZXMiLCJiYXNlRW1vamkiLCJ1bmRlZmluZWQiLCJhbmltYXRlZCIsInRvZ2dsZXMiLCJyZXF1aXJlQ29sb25zIiwibWFuYWdlZCIsImF2YWlsYWJsZSIsInRyYW5zZm9ybUVtb2ppIiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJlbW9qaSIsIk9iamVjdCIsImNyZWF0ZSIsImlkIiwic25vd2ZsYWtlIiwibmFtZSIsInJvbGVzIiwibWFwIiwidXNlciIsImN1c3RvbWl6ZXJzIiwidHJhbnNmb3JtRGVmYXVsdFJlYWN0aW9uRW1vamkiLCJkZWZhdWx0UmVhY3Rpb25FbW9qaSIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLFlBQVksUUFBUSxxQkFBb0I7QUFFakQsT0FBTyxNQUFNQyxZQUFtQjtJQUM5QiwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFlBQVc7UUFDYixPQUFPLElBQUksQ0FBQ0MsT0FBTyxFQUFFRDtJQUN2QjtJQUNBLElBQUlFLGlCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQ0QsT0FBTyxFQUFFQztJQUN2QjtJQUNBLElBQUlDLFdBQVU7UUFDWixPQUFPLElBQUksQ0FBQ0YsT0FBTyxFQUFFRTtJQUN2QjtJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ0gsT0FBTyxDQUFDRyxTQUFTO0lBQy9CO0FBQ0YsRUFBQztBQUVELE9BQU8sU0FBU0MsZUFBZUMsR0FBUSxFQUFFQyxPQUFxQjtJQUM1RCxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxLQUFLO0lBQ3RELE1BQU1BLFFBQVFDLE9BQU9DLE1BQU0sQ0FBQ2Y7SUFFNUIsSUFBSVUsTUFBTU0sRUFBRSxJQUFJUCxRQUFRTyxFQUFFLEVBQUVILE1BQU1HLEVBQUUsR0FBR1IsSUFBSUcsWUFBWSxDQUFDTSxTQUFTLENBQUNSLFFBQVFPLEVBQUU7SUFDNUUsSUFBSU4sTUFBTVEsSUFBSSxJQUFJVCxRQUFRUyxJQUFJLEVBQUVMLE1BQU1LLElBQUksR0FBR1QsUUFBUVMsSUFBSTtJQUN6RCxJQUFJUixNQUFNUyxLQUFLLElBQUlWLFFBQVFVLEtBQUssRUFBRU4sTUFBTU0sS0FBSyxHQUFHVixRQUFRVSxLQUFLLENBQUNDLEdBQUcsQ0FBQyxDQUFDSixLQUFPUixJQUFJRyxZQUFZLENBQUNNLFNBQVMsQ0FBQ0Q7SUFDckcsSUFBSU4sTUFBTVcsSUFBSSxJQUFJWixRQUFRWSxJQUFJLEVBQUVSLE1BQU1RLElBQUksR0FBR2IsSUFBSUcsWUFBWSxDQUFDVSxJQUFJLENBQUNiLEtBQUtDLFFBQVFZLElBQUk7SUFFcEZSLE1BQU1WLE9BQU8sR0FBRyxJQUFJSixhQUFhVTtJQUVqQyxPQUFPRCxJQUFJRyxZQUFZLENBQUNXLFdBQVcsQ0FBQ1QsS0FBSyxDQUFDTCxLQUFLQyxTQUFTSTtBQUMxRDtBQUVBLE9BQU8sU0FBU1UsOEJBQThCZixHQUFRLEVBQUVDLE9BQW9DO0lBQzFGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNZLG9CQUFvQjtJQUNyRSxNQUFNQSx1QkFBdUIsQ0FBQztJQUU5QixJQUFJZCxNQUFNZSxPQUFPLElBQUloQixRQUFRaUIsUUFBUSxFQUFFRixxQkFBcUJDLE9BQU8sR0FBR2pCLElBQUlHLFlBQVksQ0FBQ00sU0FBUyxDQUFDUixRQUFRaUIsUUFBUTtJQUNqSCxJQUFJaEIsTUFBTWlCLFNBQVMsSUFBSWxCLFFBQVFtQixVQUFVLEVBQUVKLHFCQUFxQkcsU0FBUyxHQUFHbEIsUUFBUW1CLFVBQVU7SUFFOUYsT0FBT3BCLElBQUlHLFlBQVksQ0FBQ1csV0FBVyxDQUFDRSxvQkFBb0IsQ0FBQ2hCLEtBQUtDLFNBQVNlO0FBQ3pFIn0=
@@ -7,11 +7,11 @@ export function transformEntitlement(bot, payload) {
7
7
  if (props.guildId && payload.guild_id) entitlement.guildId = bot.transformers.snowflake(payload.guild_id);
8
8
  if (props.applicationId && payload.application_id) entitlement.applicationId = bot.transformers.snowflake(payload.application_id);
9
9
  if (props.type && payload.type) entitlement.type = payload.type;
10
- if (props.deleted && payload.deleted) entitlement.deleted = payload.deleted;
10
+ if (props.deleted && payload.deleted !== undefined) entitlement.deleted = payload.deleted;
11
11
  if (props.startsAt && payload.starts_at) entitlement.startsAt = Date.parse(payload.starts_at);
12
12
  if (props.endsAt && payload.ends_at) entitlement.endsAt = Date.parse(payload.ends_at);
13
13
  if (props.consumed && payload.consumed !== undefined) entitlement.consumed = payload.consumed;
14
14
  return bot.transformers.customizers.entitlement(bot, payload, entitlement);
15
15
  }
16
16
 
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW50aXRsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRW50aXRsZW1lbnQgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgRW50aXRsZW1lbnQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1FbnRpdGxlbWVudChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkRW50aXRsZW1lbnQpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5lbnRpdGxlbWVudCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5lbnRpdGxlbWVudFxuICBjb25zdCBlbnRpdGxlbWVudCA9IHt9IGFzIEVudGl0bGVtZW50XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGVudGl0bGVtZW50LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnNrdUlkICYmIHBheWxvYWQuc2t1X2lkKSBlbnRpdGxlbWVudC5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuICBpZiAocHJvcHMudXNlcklkICYmIHBheWxvYWQudXNlcl9pZCkgZW50aXRsZW1lbnQudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBlbnRpdGxlbWVudC5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgZW50aXRsZW1lbnQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgZW50aXRsZW1lbnQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuZGVsZXRlZCAmJiBwYXlsb2FkLmRlbGV0ZWQpIGVudGl0bGVtZW50LmRlbGV0ZWQgPSBwYXlsb2FkLmRlbGV0ZWRcbiAgaWYgKHByb3BzLnN0YXJ0c0F0ICYmIHBheWxvYWQuc3RhcnRzX2F0KSBlbnRpdGxlbWVudC5zdGFydHNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5zdGFydHNfYXQpXG4gIGlmIChwcm9wcy5lbmRzQXQgJiYgcGF5bG9hZC5lbmRzX2F0KSBlbnRpdGxlbWVudC5lbmRzQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuZW5kc19hdClcbiAgaWYgKHByb3BzLmNvbnN1bWVkICYmIHBheWxvYWQuY29uc3VtZWQgIT09IHVuZGVmaW5lZCkgZW50aXRsZW1lbnQuY29uc3VtZWQgPSBwYXlsb2FkLmNvbnN1bWVkXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZW50aXRsZW1lbnQoYm90LCBwYXlsb2FkLCBlbnRpdGxlbWVudClcbn1cbiJdLCJuYW1lcyI6WyJ0cmFuc2Zvcm1FbnRpdGxlbWVudCIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiZW50aXRsZW1lbnQiLCJpZCIsInNub3dmbGFrZSIsInNrdUlkIiwic2t1X2lkIiwidXNlcklkIiwidXNlcl9pZCIsImd1aWxkSWQiLCJndWlsZF9pZCIsImFwcGxpY2F0aW9uSWQiLCJhcHBsaWNhdGlvbl9pZCIsInR5cGUiLCJkZWxldGVkIiwic3RhcnRzQXQiLCJzdGFydHNfYXQiLCJEYXRlIiwicGFyc2UiLCJlbmRzQXQiLCJlbmRzX2F0IiwiY29uc3VtZWQiLCJ1bmRlZmluZWQiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxTQUFTQSxxQkFBcUJDLEdBQWdCLEVBQUVDLE9BQTJCO0lBQ2hGLE1BQU1DLFFBQVFGLElBQUlHLFlBQVksQ0FBQ0MsaUJBQWlCLENBQUNDLFdBQVc7SUFDNUQsTUFBTUEsY0FBYyxDQUFDO0lBRXJCLElBQUlILE1BQU1JLEVBQUUsSUFBSUwsUUFBUUssRUFBRSxFQUFFRCxZQUFZQyxFQUFFLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRSyxFQUFFO0lBQ2xGLElBQUlKLE1BQU1NLEtBQUssSUFBSVAsUUFBUVEsTUFBTSxFQUFFSixZQUFZRyxLQUFLLEdBQUdSLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRUSxNQUFNO0lBQ2hHLElBQUlQLE1BQU1RLE1BQU0sSUFBSVQsUUFBUVUsT0FBTyxFQUFFTixZQUFZSyxNQUFNLEdBQUdWLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRVSxPQUFPO0lBQ3BHLElBQUlULE1BQU1VLE9BQU8sSUFBSVgsUUFBUVksUUFBUSxFQUFFUixZQUFZTyxPQUFPLEdBQUdaLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRWSxRQUFRO0lBQ3hHLElBQUlYLE1BQU1ZLGFBQWEsSUFBSWIsUUFBUWMsY0FBYyxFQUFFVixZQUFZUyxhQUFhLEdBQUdkLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDTixRQUFRYyxjQUFjO0lBQ2hJLElBQUliLE1BQU1jLElBQUksSUFBSWYsUUFBUWUsSUFBSSxFQUFFWCxZQUFZVyxJQUFJLEdBQUdmLFFBQVFlLElBQUk7SUFDL0QsSUFBSWQsTUFBTWUsT0FBTyxJQUFJaEIsUUFBUWdCLE9BQU8sRUFBRVosWUFBWVksT0FBTyxHQUFHaEIsUUFBUWdCLE9BQU87SUFDM0UsSUFBSWYsTUFBTWdCLFFBQVEsSUFBSWpCLFFBQVFrQixTQUFTLEVBQUVkLFlBQVlhLFFBQVEsR0FBR0UsS0FBS0MsS0FBSyxDQUFDcEIsUUFBUWtCLFNBQVM7SUFDNUYsSUFBSWpCLE1BQU1vQixNQUFNLElBQUlyQixRQUFRc0IsT0FBTyxFQUFFbEIsWUFBWWlCLE1BQU0sR0FBR0YsS0FBS0MsS0FBSyxDQUFDcEIsUUFBUXNCLE9BQU87SUFDcEYsSUFBSXJCLE1BQU1zQixRQUFRLElBQUl2QixRQUFRdUIsUUFBUSxLQUFLQyxXQUFXcEIsWUFBWW1CLFFBQVEsR0FBR3ZCLFFBQVF1QixRQUFRO0lBRTdGLE9BQU94QixJQUFJRyxZQUFZLENBQUN1QixXQUFXLENBQUNyQixXQUFXLENBQUNMLEtBQUtDLFNBQVNJO0FBQ2hFIn0=
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZW50aXRsZW1lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEaXNjb3JkRW50aXRsZW1lbnQgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQm90LCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBFbnRpdGxlbWVudCwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1FbnRpdGxlbWVudChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZEVudGl0bGVtZW50KTogRW50aXRsZW1lbnQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZW50aXRsZW1lbnRcbiAgY29uc3QgZW50aXRsZW1lbnQgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGVudGl0bGVtZW50LmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLnNrdUlkICYmIHBheWxvYWQuc2t1X2lkKSBlbnRpdGxlbWVudC5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKVxuICBpZiAocHJvcHMudXNlcklkICYmIHBheWxvYWQudXNlcl9pZCkgZW50aXRsZW1lbnQudXNlcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC51c2VyX2lkKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBwYXlsb2FkLmd1aWxkX2lkKSBlbnRpdGxlbWVudC5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5hcHBsaWNhdGlvbl9pZCkgZW50aXRsZW1lbnQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgZW50aXRsZW1lbnQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMuZGVsZXRlZCAmJiBwYXlsb2FkLmRlbGV0ZWQgIT09IHVuZGVmaW5lZCkgZW50aXRsZW1lbnQuZGVsZXRlZCA9IHBheWxvYWQuZGVsZXRlZFxuICBpZiAocHJvcHMuc3RhcnRzQXQgJiYgcGF5bG9hZC5zdGFydHNfYXQpIGVudGl0bGVtZW50LnN0YXJ0c0F0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLnN0YXJ0c19hdClcbiAgaWYgKHByb3BzLmVuZHNBdCAmJiBwYXlsb2FkLmVuZHNfYXQpIGVudGl0bGVtZW50LmVuZHNBdCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRzX2F0KVxuICBpZiAocHJvcHMuY29uc3VtZWQgJiYgcGF5bG9hZC5jb25zdW1lZCAhPT0gdW5kZWZpbmVkKSBlbnRpdGxlbWVudC5jb25zdW1lZCA9IHBheWxvYWQuY29uc3VtZWRcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5lbnRpdGxlbWVudChib3QsIHBheWxvYWQsIGVudGl0bGVtZW50KVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUVudGl0bGVtZW50IiwiYm90IiwicGF5bG9hZCIsInByb3BzIiwidHJhbnNmb3JtZXJzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJlbnRpdGxlbWVudCIsImlkIiwic25vd2ZsYWtlIiwic2t1SWQiLCJza3VfaWQiLCJ1c2VySWQiLCJ1c2VyX2lkIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwidHlwZSIsImRlbGV0ZWQiLCJ1bmRlZmluZWQiLCJzdGFydHNBdCIsInN0YXJ0c19hdCIsIkRhdGUiLCJwYXJzZSIsImVuZHNBdCIsImVuZHNfYXQiLCJjb25zdW1lZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFHQSxPQUFPLFNBQVNBLHFCQUFxQkMsR0FBUSxFQUFFQyxPQUEyQjtJQUN4RSxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxXQUFXO0lBQzVELE1BQU1BLGNBQWMsQ0FBQztJQUVyQixJQUFJSCxNQUFNSSxFQUFFLElBQUlMLFFBQVFLLEVBQUUsRUFBRUQsWUFBWUMsRUFBRSxHQUFHTixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUUssRUFBRTtJQUNsRixJQUFJSixNQUFNTSxLQUFLLElBQUlQLFFBQVFRLE1BQU0sRUFBRUosWUFBWUcsS0FBSyxHQUFHUixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVEsTUFBTTtJQUNoRyxJQUFJUCxNQUFNUSxNQUFNLElBQUlULFFBQVFVLE9BQU8sRUFBRU4sWUFBWUssTUFBTSxHQUFHVixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVUsT0FBTztJQUNwRyxJQUFJVCxNQUFNVSxPQUFPLElBQUlYLFFBQVFZLFFBQVEsRUFBRVIsWUFBWU8sT0FBTyxHQUFHWixJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUVksUUFBUTtJQUN4RyxJQUFJWCxNQUFNWSxhQUFhLElBQUliLFFBQVFjLGNBQWMsRUFBRVYsWUFBWVMsYUFBYSxHQUFHZCxJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ04sUUFBUWMsY0FBYztJQUNoSSxJQUFJYixNQUFNYyxJQUFJLElBQUlmLFFBQVFlLElBQUksRUFBRVgsWUFBWVcsSUFBSSxHQUFHZixRQUFRZSxJQUFJO0lBQy9ELElBQUlkLE1BQU1lLE9BQU8sSUFBSWhCLFFBQVFnQixPQUFPLEtBQUtDLFdBQVdiLFlBQVlZLE9BQU8sR0FBR2hCLFFBQVFnQixPQUFPO0lBQ3pGLElBQUlmLE1BQU1pQixRQUFRLElBQUlsQixRQUFRbUIsU0FBUyxFQUFFZixZQUFZYyxRQUFRLEdBQUdFLEtBQUtDLEtBQUssQ0FBQ3JCLFFBQVFtQixTQUFTO0lBQzVGLElBQUlsQixNQUFNcUIsTUFBTSxJQUFJdEIsUUFBUXVCLE9BQU8sRUFBRW5CLFlBQVlrQixNQUFNLEdBQUdGLEtBQUtDLEtBQUssQ0FBQ3JCLFFBQVF1QixPQUFPO0lBQ3BGLElBQUl0QixNQUFNdUIsUUFBUSxJQUFJeEIsUUFBUXdCLFFBQVEsS0FBS1AsV0FBV2IsWUFBWW9CLFFBQVEsR0FBR3hCLFFBQVF3QixRQUFRO0lBRTdGLE9BQU96QixJQUFJRyxZQUFZLENBQUN1QixXQUFXLENBQUNyQixXQUFXLENBQUNMLEtBQUtDLFNBQVNJO0FBQ2hFIn0=
@@ -51,6 +51,8 @@ export function transformGuild(bot, payload) {
51
51
  channel,
52
52
  guildId
53
53
  });
54
+ // TODO: We should check that id exists, or else the collection will have undefined as it's key (This is valid for all the collections below as well)
55
+ // @ts-expect-error: We TODO above
54
56
  return [
55
57
  result.id,
56
58
  result
@@ -58,6 +60,7 @@ export function transformGuild(bot, payload) {
58
60
  }));
59
61
  if (props.members && payload.guild.members) guild.members = new Collection(payload.guild.members.map((member)=>{
60
62
  const result = bot.transformers.member(bot, member, guildId, bot.transformers.snowflake(member.user.id));
63
+ // @ts-expect-error: We TODO above
61
64
  return [
62
65
  result.id,
63
66
  result
@@ -68,6 +71,7 @@ export function transformGuild(bot, payload) {
68
71
  role,
69
72
  guildId
70
73
  });
74
+ // @ts-expect-error: We TODO above
71
75
  return [
72
76
  result.id,
73
77
  result
@@ -75,6 +79,7 @@ export function transformGuild(bot, payload) {
75
79
  }));
76
80
  if (props.emojis && payload.guild.emojis) guild.emojis = new Collection(payload.guild.emojis.map((emoji)=>{
77
81
  const result = bot.transformers.emoji(bot, emoji);
82
+ // @ts-expect-error: We TODO above
78
83
  return [
79
84
  result.id,
80
85
  result
@@ -85,6 +90,7 @@ export function transformGuild(bot, payload) {
85
90
  voiceState,
86
91
  guildId
87
92
  });
93
+ // @ts-expect-error: We TODO above
88
94
  return [
89
95
  result.userId,
90
96
  result
@@ -92,6 +98,7 @@ export function transformGuild(bot, payload) {
92
98
  }));
93
99
  if (props.stickers && payload.guild.stickers) guild.stickers = new Collection(payload.guild.stickers?.map((sticker)=>{
94
100
  const result = bot.transformers.sticker(bot, sticker);
101
+ // @ts-expect-error: We TODO above
95
102
  return [
96
103
  result.id,
97
104
  result
@@ -133,7 +140,8 @@ export function transformGuild(bot, payload) {
133
140
  if (props.iconHash && payload.guild.icon_hash) guild.iconHash = iconHashToBigInt(payload.guild.icon_hash);
134
141
  if (props.presences && payload.guild.presences) guild.presences = payload.guild.presences?.map((presence)=>bot.transformers.presence(bot, presence));
135
142
  if (props.safetyAlertsChannelId && payload.guild.safety_alerts_channel_id) guild.safetyAlertsChannelId = bot.transformers.snowflake(payload.guild.safety_alerts_channel_id);
143
+ if (props.incidentsData && payload.guild.incidents_data) guild.incidentsData = bot.transformers.incidentsData(bot, payload.guild.incidents_data);
136
144
  return bot.transformers.customizers.guild(bot, payload.guild, guild);
137
145
  }
138
146
 
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQ2hhbm5lbCwgR3VpbGQsIEludGVybmFsQm90IH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEludGVybmFsQm90Wyd0cmFuc2Zvcm1lcnMnXVsnJGluZmVycmVkVHlwZXMnXVsnZ3VpbGQnXSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBJbnRlcm5hbEJvdFsndHJhbnNmb3JtZXJzJ11bJyRpbmZlcnJlZFR5cGVzJ11bJ2d1aWxkJ10pLFxuXG4gIGdldCB0aHJlYWRzKCkge1xuICAgIGlmICghdGhpcy5jaGFubmVscykgcmV0dXJuIG5ldyBDb2xsZWN0aW9uPGJpZ2ludCwgQ2hhbm5lbD4oKVxuXG4gICAgY29uc3QgdGhyZWFkcyA9IHRoaXMuY2hhbm5lbHNcbiAgICAgIC5hcnJheSgpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5QdWJsaWNUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuUHJpdmF0ZVRocmVhZCB8fCB4LnR5cGUgPT09IENoYW5uZWxUeXBlcy5Bbm5vdW5jZW1lbnRUaHJlYWQpXG5cbiAgICByZXR1cm4gbmV3IENvbGxlY3Rpb24odGhyZWFkcy5tYXAoKHgpID0+IFt4LmlkLCB4XSkpXG4gIH0sXG4gIGdldCBmZWF0dXJlcygpIHtcbiAgICByZXR1cm4gdGhpcy50b2dnbGVzLmZlYXR1cmVzXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiB7IGd1aWxkOiBEaXNjb3JkR3VpbGQ7IHNoYXJkSWQ6IG51bWJlciB9KTogdHlwZW9mIGJvdC50cmFuc2Zvcm1lcnMuJGluZmVycmVkVHlwZXMuZ3VpbGQge1xuICBjb25zdCBndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5pZClcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkXG4gIGNvbnN0IGd1aWxkOiBHdWlsZCA9IE9iamVjdC5jcmVhdGUoYmFzZUd1aWxkKVxuXG4gIGlmIChwcm9wcy5hZmtUaW1lb3V0ICYmIHBheWxvYWQuZ3VpbGQuYWZrX3RpbWVvdXQpIGd1aWxkLmFma1RpbWVvdXQgPSBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZU1lbWJlckNvdW50ICYmIHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50KSBndWlsZC5hcHByb3hpbWF0ZU1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9tZW1iZXJfY291bnRcbiAgaWYgKHByb3BzLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50KVxuICAgIGd1aWxkLmFwcHJveGltYXRlUHJlc2VuY2VDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnRcbiAgaWYgKHByb3BzLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucykgZ3VpbGQuZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zID0gcGF5bG9hZC5ndWlsZC5kZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9uc1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvbikgZ3VpbGQuZGVzY3JpcHRpb24gPSBwYXlsb2FkLmd1aWxkLmRlc2NyaXB0aW9uXG4gIGlmIChwcm9wcy50b2dnbGVzKSBndWlsZC50b2dnbGVzID0gbmV3IEd1aWxkVG9nZ2xlcyhwYXlsb2FkLmd1aWxkKVxuICBpZiAocHJvcHMuZXhwbGljaXRDb250ZW50RmlsdGVyKSBndWlsZC5leHBsaWNpdENvbnRlbnRGaWx0ZXIgPSBwYXlsb2FkLmd1aWxkLmV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyXG4gIGlmIChwcm9wcy5tYXhNZW1iZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X21lbWJlcnMpIGd1aWxkLm1heE1lbWJlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzXG4gIGlmIChwcm9wcy5tYXhQcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzKSBndWlsZC5tYXhQcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLm1heF9wcmVzZW5jZXMgPz8gdW5kZWZpbmVkXG4gIGlmIChwcm9wcy5tYXhWaWRlb0NoYW5uZWxVc2VycyAmJiBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzKSBndWlsZC5tYXhWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycylcbiAgICBndWlsZC5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2Vyc1xuICBpZiAocHJvcHMubWZhTGV2ZWwpIGd1aWxkLm1mYUxldmVsID0gcGF5bG9hZC5ndWlsZC5tZmFfbGV2ZWxcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5ndWlsZC5uYW1lKSBndWlsZC5uYW1lID0gcGF5bG9hZC5ndWlsZC5uYW1lXG4gIGlmIChwcm9wcy5uc2Z3TGV2ZWwpIGd1aWxkLm5zZndMZXZlbCA9IHBheWxvYWQuZ3VpbGQubnNmd19sZXZlbFxuICBpZiAocHJvcHMucHJlZmVycmVkTG9jYWxlICYmIHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZSkgZ3VpbGQucHJlZmVycmVkTG9jYWxlID0gcGF5bG9hZC5ndWlsZC5wcmVmZXJyZWRfbG9jYWxlXG4gIGlmIChwcm9wcy5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3N1YnNjcmlwdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGd1aWxkLnByZW1pdW1TdWJzY3JpcHRpb25Db3VudCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnRcbiAgaWYgKHByb3BzLnByZW1pdW1UaWVyKSBndWlsZC5wcmVtaXVtVGllciA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV90aWVyXG4gIGlmIChwcm9wcy5zdGFnZUluc3RhbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcylcbiAgICBndWlsZC5zdGFnZUluc3RhbmNlcyA9IHBheWxvYWQuZ3VpbGQuc3RhZ2VfaW5zdGFuY2VzLm1hcCgoc2kpID0+ICh7XG4gICAgICAvKiogVGhlIGlkIG9mIHRoaXMgU3RhZ2UgaW5zdGFuY2UgKi9cbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShzaS5pZCksXG4gICAgICAvKiogVGhlIGd1aWxkIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGd1aWxkSWQsXG4gICAgICAvKiogVGhlIGlkIG9mIHRoZSBhc3NvY2lhdGVkIFN0YWdlIGNoYW5uZWwgKi9cbiAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuY2hhbm5lbF9pZCksXG4gICAgICAvKiogVGhlIHRvcGljIG9mIHRoZSBTdGFnZSBpbnN0YW5jZSAoMS0xMjAgY2hhcmFjdGVycykgKi9cbiAgICAgIHRvcGljOiBzaS50b3BpYyxcbiAgICB9KSlcbiAgaWYgKHByb3BzLmNoYW5uZWxzICYmICghIXBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgfHwgISFwYXlsb2FkLmd1aWxkLnRocmVhZHMpKVxuICAgIGd1aWxkLmNoYW5uZWxzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBbLi4uKHBheWxvYWQuZ3VpbGQuY2hhbm5lbHMgPz8gW10pLCAuLi4ocGF5bG9hZC5ndWlsZC50aHJlYWRzID8/IFtdKV0ubWFwKChjaGFubmVsKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbCwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMucm9sZXMgJiYgcGF5bG9hZC5ndWlsZC5yb2xlcylcbiAgICBndWlsZC5yb2xlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5yb2xlcy5tYXAoKHJvbGUpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5lbW9qaXMgJiYgcGF5bG9hZC5ndWlsZC5lbW9qaXMpXG4gICAgZ3VpbGQuZW1vamlzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLmVtb2ppcy5tYXAoKGVtb2ppKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBlbW9qaSlcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC51c2VySWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN0aWNrZXJzICYmIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnMpXG4gICAgZ3VpbGQuc3RpY2tlcnMgPSBuZXcgQ29sbGVjdGlvbihcbiAgICAgIHBheWxvYWQuZ3VpbGQuc3RpY2tlcnM/Lm1hcCgoc3RpY2tlcikgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzdGlja2VyKVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbEZsYWdzICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3MpIGd1aWxkLnN5c3RlbUNoYW5uZWxGbGFncyA9IHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfZmxhZ3NcbiAgaWYgKHByb3BzLnZhbml0eVVybENvZGUgJiYgcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGUpIGd1aWxkLnZhbml0eVVybENvZGUgPSBwYXlsb2FkLmd1aWxkLnZhbml0eV91cmxfY29kZVxuICBpZiAocHJvcHMudmVyaWZpY2F0aW9uTGV2ZWwpIGd1aWxkLnZlcmlmaWNhdGlvbkxldmVsID0gcGF5bG9hZC5ndWlsZC52ZXJpZmljYXRpb25fbGV2ZWxcbiAgaWYgKHByb3BzLndlbGNvbWVTY3JlZW4gJiYgcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbilcbiAgICBndWlsZC53ZWxjb21lU2NyZWVuID0ge1xuICAgICAgZGVzY3JpcHRpb246IHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4uZGVzY3JpcHRpb24gPz8gdW5kZWZpbmVkLFxuICAgICAgd2VsY29tZUNoYW5uZWxzOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLndlbGNvbWVfY2hhbm5lbHMubWFwKCh3YykgPT4gKHtcbiAgICAgICAgY2hhbm5lbElkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5jaGFubmVsX2lkKSxcbiAgICAgICAgZGVzY3JpcHRpb246IHdjLmRlc2NyaXB0aW9uLFxuICAgICAgICBlbW9qaUlkOiB3Yy5lbW9qaV9pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHdjLmVtb2ppX2lkKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgZW1vamlOYW1lOiB3Yy5lbW9qaV9uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgIH0pKSxcbiAgICB9XG4gIGlmIChwcm9wcy5kaXNjb3ZlcnlTcGxhc2ggJiYgcGF5bG9hZC5ndWlsZC5kaXNjb3Zlcnlfc3BsYXNoKSBndWlsZC5kaXNjb3ZlcnlTcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaClcbiAgaWYgKHByb3BzLmpvaW5lZEF0ICYmIHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KSBndWlsZC5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5ndWlsZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5tZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCkgZ3VpbGQubWVtYmVyQ291bnQgPSBwYXlsb2FkLmd1aWxkLm1lbWJlcl9jb3VudCA/PyAwXG4gIGlmIChwcm9wcy5zaGFyZElkKSBndWlsZC5zaGFyZElkID0gcGF5bG9hZC5zaGFyZElkXG4gIGlmIChwcm9wcy5pY29uICYmIHBheWxvYWQuZ3VpbGQuaWNvbikgZ3VpbGQuaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuZ3VpbGQuYmFubmVyKSBndWlsZC5iYW5uZXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuYmFubmVyKVxuICBpZiAocHJvcHMuc3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuc3BsYXNoKSBndWlsZC5zcGxhc2ggPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuc3BsYXNoKVxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5ndWlsZC5pZCkgZ3VpbGQuaWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5vd25lcklkICYmIHBheWxvYWQuZ3VpbGQub3duZXJfaWQpIGd1aWxkLm93bmVySWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLm93bmVyX2lkKVxuICBpZiAocHJvcHMucGVybWlzc2lvbnMgJiYgcGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucykgZ3VpbGQucGVybWlzc2lvbnMgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMuYWZrQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpIGd1aWxkLmFma0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYWZrX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy53aWRnZXRDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZCkgZ3VpbGQud2lkZ2V0Q2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC53aWRnZXRfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5ndWlsZC5hcHBsaWNhdGlvbl9pZCkgZ3VpbGQuYXBwbGljYXRpb25JZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5zeXN0ZW1DaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZCkgZ3VpbGQuc3lzdGVtQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zeXN0ZW1fY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnJ1bGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucnVsZXNfY2hhbm5lbF9pZCkgZ3VpbGQucnVsZXNDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgICBndWlsZC5wdWJsaWNVcGRhdGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCAmJiBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQpXG4gICAgZ3VpbGQucHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQucHJlbWl1bV9wcm9ncmVzc19iYXJfZW5hYmxlZFxuICBpZiAocHJvcHMubGFyZ2UgJiYgcGF5bG9hZC5ndWlsZC5sYXJnZSkgZ3VpbGQubGFyZ2UgPSBwYXlsb2FkLmd1aWxkLmxhcmdlXG4gIGlmIChwcm9wcy5vd25lciAmJiBwYXlsb2FkLmd1aWxkLm93bmVyKSBndWlsZC5vd25lciA9IHBheWxvYWQuZ3VpbGQub3duZXJcbiAgaWYgKHByb3BzLndpZGdldEVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC53aWRnZXRfZW5hYmxlZCkgZ3VpbGQud2lkZ2V0RW5hYmxlZCA9IHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWRcbiAgaWYgKHByb3BzLnVuYXZhaWxhYmxlICYmIHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGUpIGd1aWxkLnVuYXZhaWxhYmxlID0gcGF5bG9hZC5ndWlsZC51bmF2YWlsYWJsZVxuICBpZiAocHJvcHMuaWNvbkhhc2ggJiYgcGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpIGd1aWxkLmljb25IYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmljb25faGFzaClcbiAgaWYgKHByb3BzLnByZXNlbmNlcyAmJiBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcylcbiAgICBndWlsZC5wcmVzZW5jZXMgPSBwYXlsb2FkLmd1aWxkLnByZXNlbmNlcz8ubWFwKChwcmVzZW5jZSkgPT4gYm90LnRyYW5zZm9ybWVycy5wcmVzZW5jZShib3QsIHByZXNlbmNlIGFzIERpc2NvcmRQcmVzZW5jZVVwZGF0ZSkpXG4gIGlmIChwcm9wcy5zYWZldHlBbGVydHNDaGFubmVsSWQgJiYgcGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQuc2FmZXR5QWxlcnRzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5zYWZldHlfYWxlcnRzX2NoYW5uZWxfaWQpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGQoYm90LCBwYXlsb2FkLmd1aWxkLCBndWlsZClcbn1cbiJdLCJuYW1lcyI6WyJDaGFubmVsVHlwZXMiLCJDb2xsZWN0aW9uIiwiaWNvbkhhc2hUb0JpZ0ludCIsIkd1aWxkVG9nZ2xlcyIsImJhc2VHdWlsZCIsInVuZGVmaW5lZCIsInRocmVhZHMiLCJjaGFubmVscyIsImFycmF5IiwiZmlsdGVyIiwieCIsInR5cGUiLCJQdWJsaWNUaHJlYWQiLCJQcml2YXRlVGhyZWFkIiwiQW5ub3VuY2VtZW50VGhyZWFkIiwibWFwIiwiaWQiLCJmZWF0dXJlcyIsInRvZ2dsZXMiLCJ0cmFuc2Zvcm1HdWlsZCIsImJvdCIsInBheWxvYWQiLCJndWlsZElkIiwidHJhbnNmb3JtZXJzIiwic25vd2ZsYWtlIiwiZ3VpbGQiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiT2JqZWN0IiwiY3JlYXRlIiwiYWZrVGltZW91dCIsImFma190aW1lb3V0IiwiYXBwcm94aW1hdGVNZW1iZXJDb3VudCIsImFwcHJveGltYXRlX21lbWJlcl9jb3VudCIsImFwcHJveGltYXRlUHJlc2VuY2VDb3VudCIsImFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50IiwiZGVmYXVsdE1lc3NhZ2VOb3RpZmljYXRpb25zIiwiZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnMiLCJkZXNjcmlwdGlvbiIsImV4cGxpY2l0Q29udGVudEZpbHRlciIsImV4cGxpY2l0X2NvbnRlbnRfZmlsdGVyIiwibWF4TWVtYmVycyIsIm1heF9tZW1iZXJzIiwibWF4UHJlc2VuY2VzIiwibWF4X3ByZXNlbmNlcyIsIm1heFZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzIiwibWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnMiLCJtZmFMZXZlbCIsIm1mYV9sZXZlbCIsIm5hbWUiLCJuc2Z3TGV2ZWwiLCJuc2Z3X2xldmVsIiwicHJlZmVycmVkTG9jYWxlIiwicHJlZmVycmVkX2xvY2FsZSIsInByZW1pdW1TdWJzY3JpcHRpb25Db3VudCIsInByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50IiwicHJlbWl1bVRpZXIiLCJwcmVtaXVtX3RpZXIiLCJzdGFnZUluc3RhbmNlcyIsInN0YWdlX2luc3RhbmNlcyIsInNpIiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsInRvcGljIiwiY2hhbm5lbCIsInJlc3VsdCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ1c2VyIiwicm9sZXMiLCJyb2xlIiwiZW1vamlzIiwiZW1vamkiLCJ2b2ljZVN0YXRlcyIsInZvaWNlX3N0YXRlcyIsInZvaWNlU3RhdGUiLCJ1c2VySWQiLCJzdGlja2VycyIsInN0aWNrZXIiLCJzeXN0ZW1DaGFubmVsRmxhZ3MiLCJzeXN0ZW1fY2hhbm5lbF9mbGFncyIsInZhbml0eVVybENvZGUiLCJ2YW5pdHlfdXJsX2NvZGUiLCJ2ZXJpZmljYXRpb25MZXZlbCIsInZlcmlmaWNhdGlvbl9sZXZlbCIsIndlbGNvbWVTY3JlZW4iLCJ3ZWxjb21lX3NjcmVlbiIsIndlbGNvbWVDaGFubmVscyIsIndlbGNvbWVfY2hhbm5lbHMiLCJ3YyIsImVtb2ppSWQiLCJlbW9qaV9pZCIsImVtb2ppTmFtZSIsImVtb2ppX25hbWUiLCJkaXNjb3ZlcnlTcGxhc2giLCJkaXNjb3Zlcnlfc3BsYXNoIiwiam9pbmVkQXQiLCJqb2luZWRfYXQiLCJEYXRlIiwicGFyc2UiLCJtZW1iZXJDb3VudCIsIm1lbWJlcl9jb3VudCIsInNoYXJkSWQiLCJpY29uIiwiYmFubmVyIiwic3BsYXNoIiwib3duZXJJZCIsIm93bmVyX2lkIiwicGVybWlzc2lvbnMiLCJhZmtDaGFubmVsSWQiLCJhZmtfY2hhbm5lbF9pZCIsIndpZGdldENoYW5uZWxJZCIsIndpZGdldF9jaGFubmVsX2lkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwic3lzdGVtQ2hhbm5lbElkIiwic3lzdGVtX2NoYW5uZWxfaWQiLCJydWxlc0NoYW5uZWxJZCIsInJ1bGVzX2NoYW5uZWxfaWQiLCJwdWJsaWNVcGRhdGVzQ2hhbm5lbElkIiwicHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZCIsInByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQiLCJwcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkIiwibGFyZ2UiLCJvd25lciIsIndpZGdldEVuYWJsZWQiLCJ3aWRnZXRfZW5hYmxlZCIsInVuYXZhaWxhYmxlIiwiaWNvbkhhc2giLCJpY29uX2hhc2giLCJwcmVzZW5jZXMiLCJwcmVzZW5jZSIsInNhZmV0eUFsZXJ0c0NoYW5uZWxJZCIsInNhZmV0eV9hbGVydHNfY2hhbm5lbF9pZCIsImN1c3RvbWl6ZXJzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxZQUFZLFFBQXVELG9CQUFtQjtBQUMvRixTQUFTQyxVQUFVLEVBQUVDLGdCQUFnQixRQUFRLG9CQUFtQjtBQUVoRSxTQUFTQyxZQUFZLFFBQVEscUJBQW9CO0FBRWpELE9BQU8sTUFBTUMsWUFBb0U7SUFDL0UsMkVBQTJFO0lBQzNFLEdBQUlDLFNBQVM7SUFFYixJQUFJQyxXQUFVO1FBQ1osSUFBSSxDQUFDLElBQUksQ0FBQ0MsUUFBUSxFQUFFLE9BQU8sSUFBSU47UUFFL0IsTUFBTUssVUFBVSxJQUFJLENBQUNDLFFBQVEsQ0FDMUJDLEtBQUssR0FDTEMsTUFBTSxDQUFDLENBQUNDLElBQU1BLEVBQUVDLElBQUksS0FBS1gsYUFBYVksWUFBWSxJQUFJRixFQUFFQyxJQUFJLEtBQUtYLGFBQWFhLGFBQWEsSUFBSUgsRUFB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
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvZ3VpbGQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbm5lbFR5cGVzLCB0eXBlIERpc2NvcmRHdWlsZCwgdHlwZSBEaXNjb3JkUHJlc2VuY2VVcGRhdGUgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENvbGxlY3Rpb24sIGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscydcbmltcG9ydCB0eXBlIHsgQm90LCBDaGFubmVsLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBHdWlsZCwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBHdWlsZFRvZ2dsZXMgfSBmcm9tICcuL3RvZ2dsZXMvZ3VpbGQuanMnXG5cbmV4cG9ydCBjb25zdCBiYXNlR3VpbGQ6IEd1aWxkID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIEd1aWxkKSxcblxuICBnZXQgdGhyZWFkcygpIHtcbiAgICBpZiAoIXRoaXMuY2hhbm5lbHMpIHJldHVybiBuZXcgQ29sbGVjdGlvbjxiaWdpbnQsIENoYW5uZWw+KClcblxuICAgIGNvbnN0IHRocmVhZHMgPSB0aGlzLmNoYW5uZWxzXG4gICAgICAuYXJyYXkoKVxuICAgICAgLmZpbHRlcigoeCkgPT4geC50eXBlID09PSBDaGFubmVsVHlwZXMuUHVibGljVGhyZWFkIHx8IHgudHlwZSA9PT0gQ2hhbm5lbFR5cGVzLlByaXZhdGVUaHJlYWQgfHwgeC50eXBlID09PSBDaGFubmVsVHlwZXMuQW5ub3VuY2VtZW50VGhyZWFkKVxuXG4gICAgcmV0dXJuIG5ldyBDb2xsZWN0aW9uKHRocmVhZHMubWFwKCh4KSA9PiBbeC5pZCwgeF0pKVxuICB9LFxuICBnZXQgZmVhdHVyZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9nZ2xlcy5mZWF0dXJlc1xuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGQoYm90OiBCb3QsIHBheWxvYWQ6IHsgZ3VpbGQ6IERpc2NvcmRHdWlsZDsgc2hhcmRJZDogbnVtYmVyIH0pOiBHdWlsZCB7XG4gIGNvbnN0IGd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLmlkKVxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZ3VpbGRcbiAgY29uc3QgZ3VpbGQ6IFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VHdWlsZClcblxuICBpZiAocHJvcHMuYWZrVGltZW91dCAmJiBwYXlsb2FkLmd1aWxkLmFma190aW1lb3V0KSBndWlsZC5hZmtUaW1lb3V0ID0gcGF5bG9hZC5ndWlsZC5hZmtfdGltZW91dFxuICBpZiAocHJvcHMuYXBwcm94aW1hdGVNZW1iZXJDb3VudCAmJiBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX21lbWJlcl9jb3VudCkgZ3VpbGQuYXBwcm94aW1hdGVNZW1iZXJDb3VudCA9IHBheWxvYWQuZ3VpbGQuYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50XG4gIGlmIChwcm9wcy5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5hcHByb3hpbWF0ZV9wcmVzZW5jZV9jb3VudClcbiAgICBndWlsZC5hcHByb3hpbWF0ZVByZXNlbmNlQ291bnQgPSBwYXlsb2FkLmd1aWxkLmFwcHJveGltYXRlX3ByZXNlbmNlX2NvdW50XG4gIGlmIChwcm9wcy5kZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMpIGd1aWxkLmRlZmF1bHRNZXNzYWdlTm90aWZpY2F0aW9ucyA9IHBheWxvYWQuZ3VpbGQuZGVmYXVsdF9tZXNzYWdlX25vdGlmaWNhdGlvbnNcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZ3VpbGQuZGVzY3JpcHRpb24pIGd1aWxkLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5ndWlsZC5kZXNjcmlwdGlvblxuICBpZiAocHJvcHMudG9nZ2xlcykgZ3VpbGQudG9nZ2xlcyA9IG5ldyBHdWlsZFRvZ2dsZXMocGF5bG9hZC5ndWlsZClcbiAgaWYgKHByb3BzLmV4cGxpY2l0Q29udGVudEZpbHRlcikgZ3VpbGQuZXhwbGljaXRDb250ZW50RmlsdGVyID0gcGF5bG9hZC5ndWlsZC5leHBsaWNpdF9jb250ZW50X2ZpbHRlclxuICBpZiAocHJvcHMubWF4TWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1heF9tZW1iZXJzKSBndWlsZC5tYXhNZW1iZXJzID0gcGF5bG9hZC5ndWlsZC5tYXhfbWVtYmVyc1xuICBpZiAocHJvcHMubWF4UHJlc2VuY2VzICYmIHBheWxvYWQuZ3VpbGQubWF4X3ByZXNlbmNlcykgZ3VpbGQubWF4UHJlc2VuY2VzID0gcGF5bG9hZC5ndWlsZC5tYXhfcHJlc2VuY2VzID8/IHVuZGVmaW5lZFxuICBpZiAocHJvcHMubWF4VmlkZW9DaGFubmVsVXNlcnMgJiYgcGF5bG9hZC5ndWlsZC5tYXhfdmlkZW9fY2hhbm5lbF91c2VycykgZ3VpbGQubWF4VmlkZW9DaGFubmVsVXNlcnMgPSBwYXlsb2FkLmd1aWxkLm1heF92aWRlb19jaGFubmVsX3VzZXJzXG4gIGlmIChwcm9wcy5tYXhTdGFnZVZpZGVvQ2hhbm5lbFVzZXJzICYmIHBheWxvYWQuZ3VpbGQubWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnMpXG4gICAgZ3VpbGQubWF4U3RhZ2VWaWRlb0NoYW5uZWxVc2VycyA9IHBheWxvYWQuZ3VpbGQubWF4X3N0YWdlX3ZpZGVvX2NoYW5uZWxfdXNlcnNcbiAgaWYgKHByb3BzLm1mYUxldmVsKSBndWlsZC5tZmFMZXZlbCA9IHBheWxvYWQuZ3VpbGQubWZhX2xldmVsXG4gIGlmIChwcm9wcy5uYW1lICYmIHBheWxvYWQuZ3VpbGQubmFtZSkgZ3VpbGQubmFtZSA9IHBheWxvYWQuZ3VpbGQubmFtZVxuICBpZiAocHJvcHMubnNmd0xldmVsKSBndWlsZC5uc2Z3TGV2ZWwgPSBwYXlsb2FkLmd1aWxkLm5zZndfbGV2ZWxcbiAgaWYgKHByb3BzLnByZWZlcnJlZExvY2FsZSAmJiBwYXlsb2FkLmd1aWxkLnByZWZlcnJlZF9sb2NhbGUpIGd1aWxkLnByZWZlcnJlZExvY2FsZSA9IHBheWxvYWQuZ3VpbGQucHJlZmVycmVkX2xvY2FsZVxuICBpZiAocHJvcHMucHJlbWl1bVN1YnNjcmlwdGlvbkNvdW50ICYmIHBheWxvYWQuZ3VpbGQucHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnQgIT09IHVuZGVmaW5lZClcbiAgICBndWlsZC5wcmVtaXVtU3Vic2NyaXB0aW9uQ291bnQgPSBwYXlsb2FkLmd1aWxkLnByZW1pdW1fc3Vic2NyaXB0aW9uX2NvdW50XG4gIGlmIChwcm9wcy5wcmVtaXVtVGllcikgZ3VpbGQucHJlbWl1bVRpZXIgPSBwYXlsb2FkLmd1aWxkLnByZW1pdW1fdGllclxuICBpZiAocHJvcHMuc3RhZ2VJbnN0YW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5zdGFnZV9pbnN0YW5jZXMpXG4gICAgZ3VpbGQuc3RhZ2VJbnN0YW5jZXMgPSBwYXlsb2FkLmd1aWxkLnN0YWdlX2luc3RhbmNlcy5tYXAoKHNpKSA9PiAoe1xuICAgICAgLyoqIFRoZSBpZCBvZiB0aGlzIFN0YWdlIGluc3RhbmNlICovXG4gICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uoc2kuaWQpLFxuICAgICAgLyoqIFRoZSBndWlsZCBpZCBvZiB0aGUgYXNzb2NpYXRlZCBTdGFnZSBjaGFubmVsICovXG4gICAgICBndWlsZElkLFxuICAgICAgLyoqIFRoZSBpZCBvZiB0aGUgYXNzb2NpYXRlZCBTdGFnZSBjaGFubmVsICovXG4gICAgICBjaGFubmVsSWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHNpLmNoYW5uZWxfaWQpLFxuICAgICAgLyoqIFRoZSB0b3BpYyBvZiB0aGUgU3RhZ2UgaW5zdGFuY2UgKDEtMTIwIGNoYXJhY3RlcnMpICovXG4gICAgICB0b3BpYzogc2kudG9waWMsXG4gICAgfSkpXG4gIGlmIChwcm9wcy5jaGFubmVscyAmJiAoISFwYXlsb2FkLmd1aWxkLmNoYW5uZWxzIHx8ICEhcGF5bG9hZC5ndWlsZC50aHJlYWRzKSlcbiAgICBndWlsZC5jaGFubmVscyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgWy4uLihwYXlsb2FkLmd1aWxkLmNoYW5uZWxzID8/IFtdKSwgLi4uKHBheWxvYWQuZ3VpbGQudGhyZWFkcyA/PyBbXSldLm1hcCgoY2hhbm5lbCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWwsIGd1aWxkSWQgfSlcbiAgICAgICAgLy8gVE9ETzogV2Ugc2hvdWxkIGNoZWNrIHRoYXQgaWQgZXhpc3RzLCBvciBlbHNlIHRoZSBjb2xsZWN0aW9uIHdpbGwgaGF2ZSB1bmRlZmluZWQgYXMgaXQncyBrZXkgKFRoaXMgaXMgdmFsaWQgZm9yIGFsbCB0aGUgY29sbGVjdGlvbnMgYmVsb3cgYXMgd2VsbClcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogV2UgVE9ETyBhYm92ZVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMubWVtYmVycyAmJiBwYXlsb2FkLmd1aWxkLm1lbWJlcnMpXG4gICAgZ3VpbGQubWVtYmVycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5tZW1iZXJzLm1hcCgobWVtYmVyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgbWVtYmVyLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtZW1iZXIudXNlciEuaWQpKVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBXZSBUT0RPIGFib3ZlXG4gICAgICAgIHJldHVybiBbcmVzdWx0LmlkLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy5yb2xlcyAmJiBwYXlsb2FkLmd1aWxkLnJvbGVzKVxuICAgIGd1aWxkLnJvbGVzID0gbmV3IENvbGxlY3Rpb24oXG4gICAgICBwYXlsb2FkLmd1aWxkLnJvbGVzLm1hcCgocm9sZSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGUsIGd1aWxkSWQgfSlcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogV2UgVE9ETyBhYm92ZVxuICAgICAgICByZXR1cm4gW3Jlc3VsdC5pZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuZW1vamlzICYmIHBheWxvYWQuZ3VpbGQuZW1vamlzKVxuICAgIGd1aWxkLmVtb2ppcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5lbW9qaXMubWFwKChlbW9qaSkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgZW1vamkpXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFdlIFRPRE8gYWJvdmVcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQhLCByZXN1bHRdXG4gICAgICB9KSxcbiAgICApXG4gIGlmIChwcm9wcy52b2ljZVN0YXRlcyAmJiBwYXlsb2FkLmd1aWxkLnZvaWNlX3N0YXRlcylcbiAgICBndWlsZC52b2ljZVN0YXRlcyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC52b2ljZV9zdGF0ZXMubWFwKCh2b2ljZVN0YXRlKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgdm9pY2VTdGF0ZSwgZ3VpbGRJZCB9KVxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBXZSBUT0RPIGFib3ZlXG4gICAgICAgIHJldHVybiBbcmVzdWx0LnVzZXJJZCwgcmVzdWx0XVxuICAgICAgfSksXG4gICAgKVxuICBpZiAocHJvcHMuc3RpY2tlcnMgJiYgcGF5bG9hZC5ndWlsZC5zdGlja2VycylcbiAgICBndWlsZC5zdGlja2VycyA9IG5ldyBDb2xsZWN0aW9uKFxuICAgICAgcGF5bG9hZC5ndWlsZC5zdGlja2Vycz8ubWFwKChzdGlja2VyKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHN0aWNrZXIpXG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFdlIFRPRE8gYWJvdmVcbiAgICAgICAgcmV0dXJuIFtyZXN1bHQuaWQsIHJlc3VsdF1cbiAgICAgIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLnN5c3RlbUNoYW5uZWxGbGFncyAmJiBwYXlsb2FkLmd1aWxkLnN5c3RlbV9jaGFubmVsX2ZsYWdzKSBndWlsZC5zeXN0ZW1DaGFubmVsRmxhZ3MgPSBwYXlsb2FkLmd1aWxkLnN5c3RlbV9jaGFubmVsX2ZsYWdzXG4gIGlmIChwcm9wcy52YW5pdHlVcmxDb2RlICYmIHBheWxvYWQuZ3VpbGQudmFuaXR5X3VybF9jb2RlKSBndWlsZC52YW5pdHlVcmxDb2RlID0gcGF5bG9hZC5ndWlsZC52YW5pdHlfdXJsX2NvZGVcbiAgaWYgKHByb3BzLnZlcmlmaWNhdGlvbkxldmVsKSBndWlsZC52ZXJpZmljYXRpb25MZXZlbCA9IHBheWxvYWQuZ3VpbGQudmVyaWZpY2F0aW9uX2xldmVsXG4gIGlmIChwcm9wcy53ZWxjb21lU2NyZWVuICYmIHBheWxvYWQuZ3VpbGQud2VsY29tZV9zY3JlZW4pXG4gICAgZ3VpbGQud2VsY29tZVNjcmVlbiA9IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBwYXlsb2FkLmd1aWxkLndlbGNvbWVfc2NyZWVuLmRlc2NyaXB0aW9uID8/IHVuZGVmaW5lZCxcbiAgICAgIHdlbGNvbWVDaGFubmVsczogcGF5bG9hZC5ndWlsZC53ZWxjb21lX3NjcmVlbi53ZWxjb21lX2NoYW5uZWxzLm1hcCgod2MpID0+ICh7XG4gICAgICAgIGNoYW5uZWxJZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2Uod2MuY2hhbm5lbF9pZCksXG4gICAgICAgIGRlc2NyaXB0aW9uOiB3Yy5kZXNjcmlwdGlvbixcbiAgICAgICAgZW1vamlJZDogd2MuZW1vamlfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh3Yy5lbW9qaV9pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgIGVtb2ppTmFtZTogd2MuZW1vamlfbmFtZSA/PyB1bmRlZmluZWQsXG4gICAgICB9KSksXG4gICAgfVxuICBpZiAocHJvcHMuZGlzY292ZXJ5U3BsYXNoICYmIHBheWxvYWQuZ3VpbGQuZGlzY292ZXJ5X3NwbGFzaCkgZ3VpbGQuZGlzY292ZXJ5U3BsYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmRpc2NvdmVyeV9zcGxhc2gpXG4gIGlmIChwcm9wcy5qb2luZWRBdCAmJiBwYXlsb2FkLmd1aWxkLmpvaW5lZF9hdCkgZ3VpbGQuam9pbmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuZ3VpbGQuam9pbmVkX2F0KVxuICBpZiAocHJvcHMubWVtYmVyQ291bnQgJiYgcGF5bG9hZC5ndWlsZC5tZW1iZXJfY291bnQpIGd1aWxkLm1lbWJlckNvdW50ID0gcGF5bG9hZC5ndWlsZC5tZW1iZXJfY291bnQgPz8gMFxuICBpZiAocHJvcHMuc2hhcmRJZCkgZ3VpbGQuc2hhcmRJZCA9IHBheWxvYWQuc2hhcmRJZFxuICBpZiAocHJvcHMuaWNvbiAmJiBwYXlsb2FkLmd1aWxkLmljb24pIGd1aWxkLmljb24gPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuZ3VpbGQuaWNvbilcbiAgaWYgKHByb3BzLmJhbm5lciAmJiBwYXlsb2FkLmd1aWxkLmJhbm5lcikgZ3VpbGQuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLmJhbm5lcilcbiAgaWYgKHByb3BzLnNwbGFzaCAmJiBwYXlsb2FkLmd1aWxkLnNwbGFzaCkgZ3VpbGQuc3BsYXNoID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmd1aWxkLnNwbGFzaClcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuZ3VpbGQuaWQpIGd1aWxkLmlkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMub3duZXJJZCAmJiBwYXlsb2FkLmd1aWxkLm93bmVyX2lkKSBndWlsZC5vd25lcklkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5vd25lcl9pZClcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQuZ3VpbGQucGVybWlzc2lvbnMpIGd1aWxkLnBlcm1pc3Npb25zID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5wZXJtaXNzaW9ucylcbiAgaWYgKHByb3BzLmFma0NoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLmFma19jaGFubmVsX2lkKSBndWlsZC5hZmtDaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLmFma19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMud2lkZ2V0Q2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQud2lkZ2V0X2NoYW5uZWxfaWQpIGd1aWxkLndpZGdldENoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQud2lkZ2V0X2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5hcHBsaWNhdGlvbklkICYmIHBheWxvYWQuZ3VpbGQuYXBwbGljYXRpb25faWQpIGd1aWxkLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuc3lzdGVtQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfaWQpIGd1aWxkLnN5c3RlbUNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuc3lzdGVtX2NoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5ydWxlc0NoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLnJ1bGVzX2NoYW5uZWxfaWQpIGd1aWxkLnJ1bGVzQ2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZC5ydWxlc19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMucHVibGljVXBkYXRlc0NoYW5uZWxJZCAmJiBwYXlsb2FkLmd1aWxkLnB1YmxpY191cGRhdGVzX2NoYW5uZWxfaWQpXG4gICAgZ3VpbGQucHVibGljVXBkYXRlc0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQucHVibGljX3VwZGF0ZXNfY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLnByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQgJiYgcGF5bG9hZC5ndWlsZC5wcmVtaXVtX3Byb2dyZXNzX2Jhcl9lbmFibGVkKVxuICAgIGd1aWxkLnByZW1pdW1Qcm9ncmVzc0JhckVuYWJsZWQgPSBwYXlsb2FkLmd1aWxkLnByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWRcbiAgaWYgKHByb3BzLmxhcmdlICYmIHBheWxvYWQuZ3VpbGQubGFyZ2UpIGd1aWxkLmxhcmdlID0gcGF5bG9hZC5ndWlsZC5sYXJnZVxuICBpZiAocHJvcHMub3duZXIgJiYgcGF5bG9hZC5ndWlsZC5vd25lcikgZ3VpbGQub3duZXIgPSBwYXlsb2FkLmd1aWxkLm93bmVyXG4gIGlmIChwcm9wcy53aWRnZXRFbmFibGVkICYmIHBheWxvYWQuZ3VpbGQud2lkZ2V0X2VuYWJsZWQpIGd1aWxkLndpZGdldEVuYWJsZWQgPSBwYXlsb2FkLmd1aWxkLndpZGdldF9lbmFibGVkXG4gIGlmIChwcm9wcy51bmF2YWlsYWJsZSAmJiBwYXlsb2FkLmd1aWxkLnVuYXZhaWxhYmxlKSBndWlsZC51bmF2YWlsYWJsZSA9IHBheWxvYWQuZ3VpbGQudW5hdmFpbGFibGVcbiAgaWYgKHByb3BzLmljb25IYXNoICYmIHBheWxvYWQuZ3VpbGQuaWNvbl9oYXNoKSBndWlsZC5pY29uSGFzaCA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5ndWlsZC5pY29uX2hhc2gpXG4gIGlmIChwcm9wcy5wcmVzZW5jZXMgJiYgcGF5bG9hZC5ndWlsZC5wcmVzZW5jZXMpXG4gICAgZ3VpbGQucHJlc2VuY2VzID0gcGF5bG9hZC5ndWlsZC5wcmVzZW5jZXM/Lm1hcCgocHJlc2VuY2UpID0+IGJvdC50cmFuc2Zvcm1lcnMucHJlc2VuY2UoYm90LCBwcmVzZW5jZSBhcyBEaXNjb3JkUHJlc2VuY2VVcGRhdGUpKVxuICBpZiAocHJvcHMuc2FmZXR5QWxlcnRzQ2hhbm5lbElkICYmIHBheWxvYWQuZ3VpbGQuc2FmZXR5X2FsZXJ0c19jaGFubmVsX2lkKVxuICAgIGd1aWxkLnNhZmV0eUFsZXJ0c0NoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuZ3VpbGQuc2FmZXR5X2FsZXJ0c19jaGFubmVsX2lkKVxuICBpZiAocHJvcHMuaW5jaWRlbnRzRGF0YSAmJiBwYXlsb2FkLmd1aWxkLmluY2lkZW50c19kYXRhKSBndWlsZC5pbmNpZGVudHNEYXRhID0gYm90LnRyYW5zZm9ybWVycy5pbmNpZGVudHNEYXRhKGJvdCwgcGF5bG9hZC5ndWlsZC5pbmNpZGVudHNfZGF0YSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZChib3QsIHBheWxvYWQuZ3VpbGQsIGd1aWxkKVxufVxuIl0sIm5hbWVzIjpbIkNoYW5uZWxUeXBlcyIsIkNvbGxlY3Rpb24iLCJpY29uSGFzaFRvQmlnSW50IiwiR3VpbGRUb2dnbGVzIiwiYmFzZUd1aWxkIiwidW5kZWZpbmVkIiwidGhyZWFkcyIsImNoYW5uZWxzIiwiYXJyYXkiLCJmaWx0ZXIiLCJ4IiwidHlwZSIsIlB1YmxpY1RocmVhZCIsIlByaXZhdGVUaHJlYWQiLCJBbm5vdW5jZW1lbnRUaHJlYWQiLCJtYXAiLCJpZCIsImZlYXR1cmVzIiwidG9nZ2xlcyIsInRyYW5zZm9ybUd1aWxkIiwiYm90IiwicGF5bG9hZCIsImd1aWxkSWQiLCJ0cmFuc2Zvcm1lcnMiLCJzbm93Zmxha2UiLCJndWlsZCIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJPYmplY3QiLCJjcmVhdGUiLCJhZmtUaW1lb3V0IiwiYWZrX3RpbWVvdXQiLCJhcHByb3hpbWF0ZU1lbWJlckNvdW50IiwiYXBwcm94aW1hdGVfbWVtYmVyX2NvdW50IiwiYXBwcm94aW1hdGVQcmVzZW5jZUNvdW50IiwiYXBwcm94aW1hdGVfcHJlc2VuY2VfY291bnQiLCJkZWZhdWx0TWVzc2FnZU5vdGlmaWNhdGlvbnMiLCJkZWZhdWx0X21lc3NhZ2Vfbm90aWZpY2F0aW9ucyIsImRlc2NyaXB0aW9uIiwiZXhwbGljaXRDb250ZW50RmlsdGVyIiwiZXhwbGljaXRfY29udGVudF9maWx0ZXIiLCJtYXhNZW1iZXJzIiwibWF4X21lbWJlcnMiLCJtYXhQcmVzZW5jZXMiLCJtYXhfcHJlc2VuY2VzIiwibWF4VmlkZW9DaGFubmVsVXNlcnMiLCJtYXhfdmlkZW9fY2hhbm5lbF91c2VycyIsIm1heFN0YWdlVmlkZW9DaGFubmVsVXNlcnMiLCJtYXhfc3RhZ2VfdmlkZW9fY2hhbm5lbF91c2VycyIsIm1mYUxldmVsIiwibWZhX2xldmVsIiwibmFtZSIsIm5zZndMZXZlbCIsIm5zZndfbGV2ZWwiLCJwcmVmZXJyZWRMb2NhbGUiLCJwcmVmZXJyZWRfbG9jYWxlIiwicHJlbWl1bVN1YnNjcmlwdGlvbkNvdW50IiwicHJlbWl1bV9zdWJzY3JpcHRpb25fY291bnQiLCJwcmVtaXVtVGllciIsInByZW1pdW1fdGllciIsInN0YWdlSW5zdGFuY2VzIiwic3RhZ2VfaW5zdGFuY2VzIiwic2kiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwidG9waWMiLCJjaGFubmVsIiwicmVzdWx0IiwibWVtYmVycyIsIm1lbWJlciIsInVzZXIiLCJyb2xlcyIsInJvbGUiLCJlbW9qaXMiLCJlbW9qaSIsInZvaWNlU3RhdGVzIiwidm9pY2Vfc3RhdGVzIiwidm9pY2VTdGF0ZSIsInVzZXJJZCIsInN0aWNrZXJzIiwic3RpY2tlciIsInN5c3RlbUNoYW5uZWxGbGFncyIsInN5c3RlbV9jaGFubmVsX2ZsYWdzIiwidmFuaXR5VXJsQ29kZSIsInZhbml0eV91cmxfY29kZSIsInZlcmlmaWNhdGlvbkxldmVsIiwidmVyaWZpY2F0aW9uX2xldmVsIiwid2VsY29tZVNjcmVlbiIsIndlbGNvbWVfc2NyZWVuIiwid2VsY29tZUNoYW5uZWxzIiwid2VsY29tZV9jaGFubmVscyIsIndjIiwiZW1vamlJZCIsImVtb2ppX2lkIiwiZW1vamlOYW1lIiwiZW1vamlfbmFtZSIsImRpc2NvdmVyeVNwbGFzaCIsImRpc2NvdmVyeV9zcGxhc2giLCJqb2luZWRBdCIsImpvaW5lZF9hdCIsIkRhdGUiLCJwYXJzZSIsIm1lbWJlckNvdW50IiwibWVtYmVyX2NvdW50Iiwic2hhcmRJZCIsImljb24iLCJiYW5uZXIiLCJzcGxhc2giLCJvd25lcklkIiwib3duZXJfaWQiLCJwZXJtaXNzaW9ucyIsImFma0NoYW5uZWxJZCIsImFma19jaGFubmVsX2lkIiwid2lkZ2V0Q2hhbm5lbElkIiwid2lkZ2V0X2NoYW5uZWxfaWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJzeXN0ZW1DaGFubmVsSWQiLCJzeXN0ZW1fY2hhbm5lbF9pZCIsInJ1bGVzQ2hhbm5lbElkIiwicnVsZXNfY2hhbm5lbF9pZCIsInB1YmxpY1VwZGF0ZXNDaGFubmVsSWQiLCJwdWJsaWNfdXBkYXRlc19jaGFubmVsX2lkIiwicHJlbWl1bVByb2dyZXNzQmFyRW5hYmxlZCIsInByZW1pdW1fcHJvZ3Jlc3NfYmFyX2VuYWJsZWQiLCJsYXJnZSIsIm93bmVyIiwid2lkZ2V0RW5hYmxlZCIsIndpZGdldF9lbmFibGVkIiwidW5hdmFpbGFibGUiLCJpY29uSGFzaCIsImljb25faGFzaCIsInByZXNlbmNlcyIsInByZXNlbmNlIiwic2FmZXR5QWxlcnRzQ2hhbm5lbElkIiwic2FmZXR5X2FsZXJ0c19jaGFubmVsX2lkIiwiaW5jaWRlbnRzRGF0YSIsImluY2lkZW50c19kYXRhIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFlBQVksUUFBdUQsb0JBQW1CO0FBQy9GLFNBQVNDLFVBQVUsRUFBRUMsZ0JBQWdCLFFBQVEsb0JBQW1CO0FBRWhFLFNBQVNDLFlBQVksUUFBUSxxQkFBb0I7QUFFakQsT0FBTyxNQUFNQyxZQUFtQjtJQUM5QiwyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFdBQVU7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDQyxRQUFRLEVBQUUsT0FBTyxJQUFJTjtRQUUvQixNQUFNSyxVQUFVLElBQUksQ0FBQ0MsUUFBUSxDQUMxQkMsS0FBSyxHQUNMQyxNQUFNLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLWCxhQUFhWSxZQUFZLElBQUlGLEVBQUVDLElBQUksS0FBS1gsYUFBYWEsYUFBYSxJQUFJSCxFQUFFQyxJQUFJLEtBQUtYLGFBQWFjLGtCQUFrQjtRQUU1SSxPQUFPLElBQUliLFdBQVdLLFFBQVFTLEdBQUcsQ0FBQyxDQUFDTCxJQUFNO2dCQUFDQSxFQUFFTSxFQUFFO2dCQUFFTjthQUFFO0lBQ3BEO0lBQ0EsSUFBSU8sWUFBVztRQUNiLE9BQU8sSUFBSSxDQUFDQyxPQUFPLENBQUNELFFBQVE7SUFDOUI7QUFDRixFQUFDO0FBRUQsT0FBTyxTQUFTRSxlQUFlQyxHQUFRLEVBQUVDLE9BQWlEO0lBQ3hGLE1BQU1DLFVBQVVGLElBQUlHLFlBQVksQ0FBQ0MsU0FBUyxDQUFDSCxRQUFRSSxLQUFLLENBQUNULEVBQUU7SUFDM0Qs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
@@ -0,0 +1,11 @@
1
+ export function transformIncidentsData(bot, payload) {
2
+ const props = bot.transformers.desiredProperties.incidentsData;
3
+ const incidentsData = {};
4
+ if (props.invitesDisabledUntil && payload.invites_disabled_until) incidentsData.invitesDisabledUntil = Date.parse(payload.invites_disabled_until);
5
+ if (props.dmsDisabledUntil && payload.dms_disabled_until) incidentsData.dmsDisabledUntil = Date.parse(payload.dms_disabled_until);
6
+ if (props.dmSpamDetectedAt && payload.dm_spam_detected_at) incidentsData.dmSpamDetectedAt = Date.parse(payload.dm_spam_detected_at);
7
+ if (props.raidDetectedAt && payload.raid_detected_at) incidentsData.raidDetectedAt = Date.parse(payload.raid_detected_at);
8
+ return bot.transformers.customizers.incidentsData(bot, payload, incidentsData);
9
+ }
10
+
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvaW5jaWRlbnRzRGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRJbmNpZGVudHNEYXRhIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJvdCwgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgSW5jaWRlbnRzRGF0YSwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1JbmNpZGVudHNEYXRhKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkSW5jaWRlbnRzRGF0YSk6IEluY2lkZW50c0RhdGEge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuaW5jaWRlbnRzRGF0YVxuICBjb25zdCBpbmNpZGVudHNEYXRhID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8SW5jaWRlbnRzRGF0YSwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmludml0ZXNEaXNhYmxlZFVudGlsICYmIHBheWxvYWQuaW52aXRlc19kaXNhYmxlZF91bnRpbCkgaW5jaWRlbnRzRGF0YS5pbnZpdGVzRGlzYWJsZWRVbnRpbCA9IERhdGUucGFyc2UocGF5bG9hZC5pbnZpdGVzX2Rpc2FibGVkX3VudGlsKVxuICBpZiAocHJvcHMuZG1zRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmRtc19kaXNhYmxlZF91bnRpbCkgaW5jaWRlbnRzRGF0YS5kbXNEaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmRtc19kaXNhYmxlZF91bnRpbClcbiAgaWYgKHByb3BzLmRtU3BhbURldGVjdGVkQXQgJiYgcGF5bG9hZC5kbV9zcGFtX2RldGVjdGVkX2F0KSBpbmNpZGVudHNEYXRhLmRtU3BhbURldGVjdGVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQuZG1fc3BhbV9kZXRlY3RlZF9hdClcbiAgaWYgKHByb3BzLnJhaWREZXRlY3RlZEF0ICYmIHBheWxvYWQucmFpZF9kZXRlY3RlZF9hdCkgaW5jaWRlbnRzRGF0YS5yYWlkRGV0ZWN0ZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5yYWlkX2RldGVjdGVkX2F0KVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLmluY2lkZW50c0RhdGEoYm90LCBwYXlsb2FkLCBpbmNpZGVudHNEYXRhKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUluY2lkZW50c0RhdGEiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsImluY2lkZW50c0RhdGEiLCJpbnZpdGVzRGlzYWJsZWRVbnRpbCIsImludml0ZXNfZGlzYWJsZWRfdW50aWwiLCJEYXRlIiwicGFyc2UiLCJkbXNEaXNhYmxlZFVudGlsIiwiZG1zX2Rpc2FibGVkX3VudGlsIiwiZG1TcGFtRGV0ZWN0ZWRBdCIsImRtX3NwYW1fZGV0ZWN0ZWRfYXQiLCJyYWlkRGV0ZWN0ZWRBdCIsInJhaWRfZGV0ZWN0ZWRfYXQiLCJjdXN0b21pemVycyJdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxTQUFTQSx1QkFBdUJDLEdBQVEsRUFBRUMsT0FBNkI7SUFDNUUsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsYUFBYTtJQUM5RCxNQUFNQSxnQkFBZ0IsQ0FBQztJQUV2QixJQUFJSCxNQUFNSSxvQkFBb0IsSUFBSUwsUUFBUU0sc0JBQXNCLEVBQUVGLGNBQWNDLG9CQUFvQixHQUFHRSxLQUFLQyxLQUFLLENBQUNSLFFBQVFNLHNCQUFzQjtJQUNoSixJQUFJTCxNQUFNUSxnQkFBZ0IsSUFBSVQsUUFBUVUsa0JBQWtCLEVBQUVOLGNBQWNLLGdCQUFnQixHQUFHRixLQUFLQyxLQUFLLENBQUNSLFFBQVFVLGtCQUFrQjtJQUNoSSxJQUFJVCxNQUFNVSxnQkFBZ0IsSUFBSVgsUUFBUVksbUJBQW1CLEVBQUVSLGNBQWNPLGdCQUFnQixHQUFHSixLQUFLQyxLQUFLLENBQUNSLFFBQVFZLG1CQUFtQjtJQUNsSSxJQUFJWCxNQUFNWSxjQUFjLElBQUliLFFBQVFjLGdCQUFnQixFQUFFVixjQUFjUyxjQUFjLEdBQUdOLEtBQUtDLEtBQUssQ0FBQ1IsUUFBUWMsZ0JBQWdCO0lBRXhILE9BQU9mLElBQUlHLFlBQVksQ0FBQ2EsV0FBVyxDQUFDWCxhQUFhLENBQUNMLEtBQUtDLFNBQVNJO0FBQ2xFIn0=