@discordeno/bot 19.0.0-next.f98bb9b → 19.0.0-next.faaa8af

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 (1205) hide show
  1. package/README.md +30 -0
  2. package/dist/cjs/bot.cjs +79 -0
  3. package/dist/cjs/commandOptionsParser.cjs +51 -0
  4. package/dist/cjs/constants.cjs +30 -0
  5. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +21 -0
  6. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +21 -0
  7. package/dist/cjs/handlers/channels/CHANNEL_PINS_UPDATE.cjs +21 -0
  8. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +20 -0
  9. package/dist/cjs/handlers/channels/STAGE_INSTANCE_CREATE.cjs +22 -0
  10. package/dist/cjs/handlers/channels/STAGE_INSTANCE_DELETE.cjs +22 -0
  11. package/dist/cjs/handlers/channels/STAGE_INSTANCE_UPDATE.cjs +22 -0
  12. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +19 -0
  13. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +19 -0
  14. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +31 -0
  15. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +22 -0
  16. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +22 -0
  17. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +19 -0
  18. package/dist/cjs/handlers/channels/index.cjs +32 -0
  19. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +24 -0
  20. package/dist/cjs/handlers/emojis/index.cjs +20 -0
  21. package/dist/cjs/handlers/entitlements/ENTITLEMENT_CREATE.cjs +17 -0
  22. package/dist/cjs/handlers/entitlements/ENTITLEMENT_DELETE.cjs +17 -0
  23. package/dist/cjs/handlers/entitlements/ENTITLEMENT_UPDATE.cjs +17 -0
  24. package/dist/cjs/handlers/entitlements/index.cjs +22 -0
  25. package/dist/cjs/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.cjs +18 -0
  26. package/dist/cjs/handlers/guilds/GUILD_BAN_ADD.cjs +17 -0
  27. package/dist/cjs/handlers/guilds/GUILD_BAN_REMOVE.cjs +17 -0
  28. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +20 -0
  29. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +22 -0
  30. package/dist/cjs/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.cjs +19 -0
  31. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +23 -0
  32. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +20 -0
  33. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.cjs +17 -0
  34. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.cjs +17 -0
  35. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.cjs +17 -0
  36. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.cjs +17 -0
  37. package/dist/cjs/handlers/guilds/automod/index.cjs +23 -0
  38. package/dist/cjs/handlers/guilds/index.cjs +29 -0
  39. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.cjs +17 -0
  40. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.cjs +17 -0
  41. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.cjs +17 -0
  42. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.cjs +21 -0
  43. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.cjs +21 -0
  44. package/dist/cjs/handlers/guilds/scheduledEvents/index.cjs +24 -0
  45. package/dist/cjs/handlers/index.cjs +33 -0
  46. package/dist/cjs/handlers/integrations/INTEGRATION_CREATE.cjs +16 -0
  47. package/dist/cjs/handlers/integrations/INTEGRATION_DELETE.cjs +21 -0
  48. package/dist/cjs/handlers/integrations/INTEGRATION_UPDATE.cjs +16 -0
  49. package/dist/cjs/handlers/integrations/index.cjs +22 -0
  50. package/dist/cjs/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.cjs +17 -0
  51. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +19 -0
  52. package/dist/cjs/handlers/interactions/index.cjs +21 -0
  53. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +19 -0
  54. package/dist/cjs/handlers/invites/INVITE_DELETE.cjs +21 -0
  55. package/dist/cjs/handlers/invites/index.cjs +21 -0
  56. package/dist/cjs/handlers/members/GUILD_MEMBERS_CHUNK.cjs +30 -0
  57. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +20 -0
  58. package/dist/cjs/handlers/members/GUILD_MEMBER_REMOVE.cjs +19 -0
  59. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +19 -0
  60. package/dist/cjs/handlers/members/index.cjs +23 -0
  61. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +17 -0
  62. package/dist/cjs/handlers/messages/MESSAGE_DELETE.cjs +21 -0
  63. package/dist/cjs/handlers/messages/MESSAGE_DELETE_BULK.cjs +23 -0
  64. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +30 -0
  65. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +24 -0
  66. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.cjs +21 -0
  67. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +22 -0
  68. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +18 -0
  69. package/dist/cjs/handlers/messages/index.cjs +27 -0
  70. package/dist/cjs/handlers/misc/PRESENCE_UPDATE.cjs +16 -0
  71. package/dist/cjs/handlers/misc/READY.cjs +28 -0
  72. package/dist/cjs/handlers/misc/TYPING_START.cjs +25 -0
  73. package/dist/cjs/handlers/misc/USER_UPDATE.cjs +17 -0
  74. package/dist/cjs/handlers/misc/index.cjs +23 -0
  75. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_ADD.cjs +23 -0
  76. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.cjs +23 -0
  77. package/dist/cjs/handlers/poll/index.cjs +21 -0
  78. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +20 -0
  79. package/dist/cjs/handlers/roles/GUILD_ROLE_DELETE.cjs +20 -0
  80. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +20 -0
  81. package/dist/cjs/handlers/roles/index.cjs +22 -0
  82. package/dist/cjs/handlers/voice/VOICE_SERVER_UPDATE.cjs +21 -0
  83. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +22 -0
  84. package/dist/cjs/handlers/voice/index.cjs +21 -0
  85. package/dist/cjs/handlers/webhooks/WEBHOOKS_UPDATE.cjs +20 -0
  86. package/dist/cjs/handlers/webhooks/index.cjs +20 -0
  87. package/dist/cjs/handlers.cjs +123 -0
  88. package/dist/cjs/helpers.cjs +672 -0
  89. package/dist/cjs/index.cjs +34 -0
  90. package/dist/cjs/optionalize.cjs +7 -0
  91. package/dist/cjs/transformers/activity.cjs +44 -0
  92. package/dist/cjs/transformers/application.cjs +58 -0
  93. package/dist/cjs/transformers/applicationCommand.cjs +29 -0
  94. package/dist/cjs/transformers/applicationCommandOption.cjs +31 -0
  95. package/dist/cjs/transformers/applicationCommandOptionChoice.cjs +20 -0
  96. package/dist/cjs/transformers/applicationCommandPermission.cjs +25 -0
  97. package/dist/cjs/transformers/attachment.cjs +31 -0
  98. package/dist/cjs/transformers/auditLogEntry.cjs +145 -0
  99. package/dist/cjs/transformers/automodActionExecution.cjs +35 -0
  100. package/dist/cjs/transformers/automodRule.cjs +41 -0
  101. package/dist/cjs/transformers/avatarDecorationData.cjs +20 -0
  102. package/dist/cjs/transformers/channel.cjs +147 -0
  103. package/dist/cjs/transformers/component.cjs +47 -0
  104. package/dist/cjs/transformers/embed.cjs +54 -0
  105. package/dist/cjs/transformers/emoji.cjs +38 -0
  106. package/dist/cjs/transformers/entitlement.cjs +27 -0
  107. package/dist/cjs/transformers/gatewayBot.cjs +25 -0
  108. package/dist/cjs/transformers/guild.cjs +146 -0
  109. package/dist/cjs/transformers/index.cjs +64 -0
  110. package/dist/cjs/transformers/integration.cjs +44 -0
  111. package/dist/cjs/transformers/interaction.cjs +214 -0
  112. package/dist/cjs/transformers/invite.cjs +51 -0
  113. package/dist/cjs/transformers/member.cjs +58 -0
  114. package/dist/cjs/transformers/message.cjs +271 -0
  115. package/dist/cjs/transformers/onboarding.cjs +56 -0
  116. package/dist/cjs/transformers/poll.cjs +50 -0
  117. package/dist/cjs/transformers/presence.cjs +25 -0
  118. package/dist/cjs/transformers/reverse/activity.cjs +53 -0
  119. package/dist/cjs/transformers/reverse/allowedMentions.cjs +20 -0
  120. package/dist/cjs/transformers/reverse/application.cjs +34 -0
  121. package/dist/cjs/transformers/reverse/applicationCommand.cjs +28 -0
  122. package/dist/cjs/transformers/reverse/applicationCommandOption.cjs +30 -0
  123. package/dist/cjs/transformers/reverse/applicationCommandOptionChoice.cjs +19 -0
  124. package/dist/cjs/transformers/reverse/applicationCommandPermission.cjs +24 -0
  125. package/dist/cjs/transformers/reverse/attachment.cjs +29 -0
  126. package/dist/cjs/transformers/reverse/auditLogEntry.cjs +148 -0
  127. package/dist/cjs/transformers/reverse/component.cjs +47 -0
  128. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +37 -0
  129. package/dist/cjs/transformers/reverse/embed.cjs +53 -0
  130. package/dist/cjs/transformers/reverse/emoji.cjs +24 -0
  131. package/dist/cjs/transformers/reverse/gatewayBot.cjs +24 -0
  132. package/dist/cjs/transformers/reverse/index.cjs +38 -0
  133. package/dist/cjs/transformers/reverse/interactionResponse.cjs +34 -0
  134. package/dist/cjs/transformers/reverse/member.cjs +59 -0
  135. package/dist/cjs/transformers/reverse/presence.cjs +41 -0
  136. package/dist/cjs/transformers/reverse/team.cjs +28 -0
  137. package/dist/cjs/transformers/reverse/widgetSettings.cjs +18 -0
  138. package/dist/cjs/transformers/role.cjs +68 -0
  139. package/dist/cjs/transformers/scheduledEvent.cjs +34 -0
  140. package/dist/cjs/transformers/sku.cjs +23 -0
  141. package/dist/cjs/transformers/stageInstance.cjs +22 -0
  142. package/dist/cjs/transformers/stageInviteInstance.cjs +23 -0
  143. package/dist/cjs/transformers/sticker.cjs +48 -0
  144. package/dist/cjs/transformers/team.cjs +29 -0
  145. package/dist/cjs/transformers/template.cjs +28 -0
  146. package/dist/cjs/transformers/threadMember.cjs +35 -0
  147. package/dist/cjs/transformers/toggles/Permissions.cjs +28 -0
  148. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +60 -0
  149. package/dist/cjs/transformers/toggles/channel.cjs +73 -0
  150. package/dist/cjs/transformers/toggles/emoji.cjs +63 -0
  151. package/dist/cjs/transformers/toggles/guild.cjs +246 -0
  152. package/dist/cjs/transformers/toggles/index.cjs +28 -0
  153. package/dist/cjs/transformers/toggles/member.cjs +96 -0
  154. package/dist/cjs/transformers/toggles/role.cjs +73 -0
  155. package/dist/cjs/transformers/toggles/user.cjs +63 -0
  156. package/dist/cjs/transformers/toggles/voice.cjs +78 -0
  157. package/dist/cjs/transformers/types.cjs +6 -0
  158. package/dist/cjs/transformers/user.cjs +50 -0
  159. package/dist/cjs/transformers/voiceRegion.cjs +22 -0
  160. package/dist/cjs/transformers/voiceState.cjs +24 -0
  161. package/dist/cjs/transformers/webhook.cjs +37 -0
  162. package/dist/cjs/transformers/welcomeScreen.cjs +24 -0
  163. package/dist/cjs/transformers/widget.cjs +35 -0
  164. package/dist/cjs/transformers/widgetSettings.cjs +19 -0
  165. package/dist/cjs/transformers.cjs +610 -0
  166. package/dist/cjs/typings.cjs +16 -0
  167. package/dist/cjs/utils.cjs +32 -0
  168. package/dist/esm/bot.js +74 -0
  169. package/dist/esm/commandOptionsParser.js +41 -0
  170. package/dist/esm/constants.js +6 -0
  171. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +11 -0
  172. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +11 -0
  173. package/dist/esm/handlers/channels/CHANNEL_PINS_UPDATE.js +11 -0
  174. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +10 -0
  175. package/dist/esm/handlers/channels/STAGE_INSTANCE_CREATE.js +12 -0
  176. package/dist/esm/handlers/channels/STAGE_INSTANCE_DELETE.js +12 -0
  177. package/dist/esm/handlers/channels/STAGE_INSTANCE_UPDATE.js +12 -0
  178. package/dist/esm/handlers/channels/THREAD_CREATE.js +9 -0
  179. package/dist/esm/handlers/channels/THREAD_DELETE.js +9 -0
  180. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +21 -0
  181. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +12 -0
  182. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +12 -0
  183. package/dist/esm/handlers/channels/THREAD_UPDATE.js +9 -0
  184. package/dist/esm/handlers/channels/index.js +15 -0
  185. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +14 -0
  186. package/dist/esm/handlers/emojis/index.js +3 -0
  187. package/dist/esm/handlers/entitlements/ENTITLEMENT_CREATE.js +7 -0
  188. package/dist/esm/handlers/entitlements/ENTITLEMENT_DELETE.js +7 -0
  189. package/dist/esm/handlers/entitlements/ENTITLEMENT_UPDATE.js +7 -0
  190. package/dist/esm/handlers/entitlements/index.js +5 -0
  191. package/dist/esm/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +8 -0
  192. package/dist/esm/handlers/guilds/GUILD_BAN_ADD.js +7 -0
  193. package/dist/esm/handlers/guilds/GUILD_BAN_REMOVE.js +7 -0
  194. package/dist/esm/handlers/guilds/GUILD_CREATE.js +10 -0
  195. package/dist/esm/handlers/guilds/GUILD_DELETE.js +12 -0
  196. package/dist/esm/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +9 -0
  197. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +13 -0
  198. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +10 -0
  199. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +7 -0
  200. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +7 -0
  201. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +7 -0
  202. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +7 -0
  203. package/dist/esm/handlers/guilds/automod/index.js +6 -0
  204. package/dist/esm/handlers/guilds/index.js +12 -0
  205. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +7 -0
  206. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +7 -0
  207. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +7 -0
  208. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +11 -0
  209. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +11 -0
  210. package/dist/esm/handlers/guilds/scheduledEvents/index.js +7 -0
  211. package/dist/esm/handlers/index.js +16 -0
  212. package/dist/esm/handlers/integrations/INTEGRATION_CREATE.js +6 -0
  213. package/dist/esm/handlers/integrations/INTEGRATION_DELETE.js +11 -0
  214. package/dist/esm/handlers/integrations/INTEGRATION_UPDATE.js +6 -0
  215. package/dist/esm/handlers/integrations/index.js +5 -0
  216. package/dist/esm/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +7 -0
  217. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +9 -0
  218. package/dist/esm/handlers/interactions/index.js +4 -0
  219. package/dist/esm/handlers/invites/INVITE_CREATE.js +9 -0
  220. package/dist/esm/handlers/invites/INVITE_DELETE.js +11 -0
  221. package/dist/esm/handlers/invites/index.js +4 -0
  222. package/dist/esm/handlers/members/GUILD_MEMBERS_CHUNK.js +20 -0
  223. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +10 -0
  224. package/dist/esm/handlers/members/GUILD_MEMBER_REMOVE.js +9 -0
  225. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +9 -0
  226. package/dist/esm/handlers/members/index.js +6 -0
  227. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +7 -0
  228. package/dist/esm/handlers/messages/MESSAGE_DELETE.js +11 -0
  229. package/dist/esm/handlers/messages/MESSAGE_DELETE_BULK.js +13 -0
  230. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +20 -0
  231. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +14 -0
  232. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +11 -0
  233. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +12 -0
  234. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +8 -0
  235. package/dist/esm/handlers/messages/index.js +10 -0
  236. package/dist/esm/handlers/misc/PRESENCE_UPDATE.js +6 -0
  237. package/dist/esm/handlers/misc/READY.js +18 -0
  238. package/dist/esm/handlers/misc/TYPING_START.js +15 -0
  239. package/dist/esm/handlers/misc/USER_UPDATE.js +7 -0
  240. package/dist/esm/handlers/misc/index.js +6 -0
  241. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +13 -0
  242. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +13 -0
  243. package/dist/esm/handlers/poll/index.js +4 -0
  244. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +10 -0
  245. package/dist/esm/handlers/roles/GUILD_ROLE_DELETE.js +10 -0
  246. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +10 -0
  247. package/dist/esm/handlers/roles/index.js +5 -0
  248. package/dist/esm/handlers/voice/VOICE_SERVER_UPDATE.js +11 -0
  249. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +12 -0
  250. package/dist/esm/handlers/voice/index.js +4 -0
  251. package/dist/esm/handlers/webhooks/WEBHOOKS_UPDATE.js +10 -0
  252. package/dist/esm/handlers/webhooks/index.js +3 -0
  253. package/dist/esm/handlers.js +72 -0
  254. package/dist/esm/helpers.js +662 -0
  255. package/dist/esm/index.js +17 -0
  256. package/dist/esm/optionalize.js +3 -0
  257. package/dist/esm/transformers/activity.js +34 -0
  258. package/dist/esm/transformers/application.js +48 -0
  259. package/dist/esm/transformers/applicationCommand.js +19 -0
  260. package/dist/esm/transformers/applicationCommandOption.js +21 -0
  261. package/dist/esm/transformers/applicationCommandOptionChoice.js +10 -0
  262. package/dist/esm/transformers/applicationCommandPermission.js +15 -0
  263. package/dist/esm/transformers/attachment.js +21 -0
  264. package/dist/esm/transformers/auditLogEntry.js +135 -0
  265. package/dist/esm/transformers/automodActionExecution.js +25 -0
  266. package/dist/esm/transformers/automodRule.js +31 -0
  267. package/dist/esm/transformers/avatarDecorationData.js +10 -0
  268. package/dist/esm/transformers/channel.js +120 -0
  269. package/dist/esm/transformers/component.js +37 -0
  270. package/dist/esm/transformers/embed.js +44 -0
  271. package/dist/esm/transformers/emoji.js +20 -0
  272. package/dist/esm/transformers/entitlement.js +17 -0
  273. package/dist/esm/transformers/gatewayBot.js +15 -0
  274. package/dist/esm/transformers/guild.js +136 -0
  275. package/dist/esm/transformers/index.js +47 -0
  276. package/dist/esm/transformers/integration.js +34 -0
  277. package/dist/esm/transformers/interaction.js +193 -0
  278. package/dist/esm/transformers/invite.js +41 -0
  279. package/dist/esm/transformers/member.js +48 -0
  280. package/dist/esm/transformers/message.js +247 -0
  281. package/dist/esm/transformers/onboarding.js +35 -0
  282. package/dist/esm/transformers/poll.js +32 -0
  283. package/dist/esm/transformers/presence.js +15 -0
  284. package/dist/esm/transformers/reverse/activity.js +43 -0
  285. package/dist/esm/transformers/reverse/allowedMentions.js +10 -0
  286. package/dist/esm/transformers/reverse/application.js +24 -0
  287. package/dist/esm/transformers/reverse/applicationCommand.js +18 -0
  288. package/dist/esm/transformers/reverse/applicationCommandOption.js +20 -0
  289. package/dist/esm/transformers/reverse/applicationCommandOptionChoice.js +9 -0
  290. package/dist/esm/transformers/reverse/applicationCommandPermission.js +14 -0
  291. package/dist/esm/transformers/reverse/attachment.js +19 -0
  292. package/dist/esm/transformers/reverse/auditLogEntry.js +138 -0
  293. package/dist/esm/transformers/reverse/component.js +37 -0
  294. package/dist/esm/transformers/reverse/createApplicationCommand.js +27 -0
  295. package/dist/esm/transformers/reverse/embed.js +43 -0
  296. package/dist/esm/transformers/reverse/emoji.js +14 -0
  297. package/dist/esm/transformers/reverse/gatewayBot.js +14 -0
  298. package/dist/esm/transformers/reverse/index.js +21 -0
  299. package/dist/esm/transformers/reverse/interactionResponse.js +24 -0
  300. package/dist/esm/transformers/reverse/member.js +41 -0
  301. package/dist/esm/transformers/reverse/presence.js +23 -0
  302. package/dist/esm/transformers/reverse/team.js +18 -0
  303. package/dist/esm/transformers/reverse/widgetSettings.js +8 -0
  304. package/dist/esm/transformers/role.js +58 -0
  305. package/dist/esm/transformers/scheduledEvent.js +24 -0
  306. package/dist/esm/transformers/sku.js +13 -0
  307. package/dist/esm/transformers/stageInstance.js +12 -0
  308. package/dist/esm/transformers/stageInviteInstance.js +13 -0
  309. package/dist/esm/transformers/sticker.js +30 -0
  310. package/dist/esm/transformers/team.js +19 -0
  311. package/dist/esm/transformers/template.js +18 -0
  312. package/dist/esm/transformers/threadMember.js +17 -0
  313. package/dist/esm/transformers/toggles/Permissions.js +18 -0
  314. package/dist/esm/transformers/toggles/ToggleBitfield.js +42 -0
  315. package/dist/esm/transformers/toggles/channel.js +55 -0
  316. package/dist/esm/transformers/toggles/emoji.js +45 -0
  317. package/dist/esm/transformers/toggles/guild.js +228 -0
  318. package/dist/esm/transformers/toggles/index.js +11 -0
  319. package/dist/esm/transformers/toggles/member.js +78 -0
  320. package/dist/esm/transformers/toggles/role.js +55 -0
  321. package/dist/esm/transformers/toggles/user.js +45 -0
  322. package/dist/esm/transformers/toggles/voice.js +60 -0
  323. package/dist/esm/transformers/types.js +3 -0
  324. package/dist/esm/transformers/user.js +40 -0
  325. package/dist/esm/transformers/voiceRegion.js +12 -0
  326. package/dist/esm/transformers/voiceState.js +14 -0
  327. package/dist/esm/transformers/webhook.js +27 -0
  328. package/dist/esm/transformers/welcomeScreen.js +14 -0
  329. package/dist/esm/transformers/widget.js +25 -0
  330. package/dist/esm/transformers/widgetSettings.js +9 -0
  331. package/dist/esm/transformers.js +592 -0
  332. package/dist/esm/typings.js +6 -0
  333. package/dist/esm/utils.js +11 -0
  334. package/dist/types/bot.d.ts +282 -0
  335. package/dist/types/bot.d.ts.map +1 -0
  336. package/dist/types/commandOptionsParser.d.ts +12 -0
  337. package/dist/types/commandOptionsParser.d.ts.map +1 -0
  338. package/dist/types/constants.d.ts.map +1 -0
  339. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts +3 -0
  340. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -0
  341. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -0
  342. package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -0
  343. package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -0
  344. package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -0
  345. package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -0
  346. package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -0
  347. package/dist/types/handlers/channels/THREAD_CREATE.d.ts.map +1 -0
  348. package/dist/types/handlers/channels/THREAD_DELETE.d.ts.map +1 -0
  349. package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -0
  350. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts +4 -0
  351. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -0
  352. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts +4 -0
  353. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -0
  354. package/dist/types/handlers/channels/THREAD_UPDATE.d.ts.map +1 -0
  355. package/dist/types/handlers/channels/index.d.ts.map +1 -0
  356. package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -0
  357. package/dist/types/handlers/emojis/index.d.ts.map +1 -0
  358. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts +4 -0
  359. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +1 -0
  360. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts +4 -0
  361. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +1 -0
  362. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts +4 -0
  363. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +1 -0
  364. package/dist/types/handlers/entitlements/index.d.ts +4 -0
  365. package/dist/types/handlers/entitlements/index.d.ts.map +1 -0
  366. package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -0
  367. package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -0
  368. package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -0
  369. package/dist/types/handlers/guilds/GUILD_CREATE.d.ts.map +1 -0
  370. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -0
  371. package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -0
  372. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +3 -0
  373. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -0
  374. package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -0
  375. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +5 -0
  376. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -0
  377. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +5 -0
  378. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -0
  379. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +5 -0
  380. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -0
  381. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +5 -0
  382. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -0
  383. package/dist/types/handlers/guilds/automod/index.d.ts.map +1 -0
  384. package/dist/types/handlers/guilds/index.d.ts.map +1 -0
  385. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +4 -0
  386. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -0
  387. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -0
  388. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -0
  389. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -0
  390. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -0
  391. package/dist/types/handlers/guilds/scheduledEvents/index.d.ts.map +1 -0
  392. package/dist/types/handlers/index.d.ts +15 -0
  393. package/dist/types/handlers/index.d.ts.map +1 -0
  394. package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -0
  395. package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -0
  396. package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -0
  397. package/dist/types/handlers/integrations/index.d.ts.map +1 -0
  398. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +3 -0
  399. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -0
  400. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts +4 -0
  401. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -0
  402. package/dist/types/handlers/interactions/index.d.ts.map +1 -0
  403. package/dist/types/handlers/invites/INVITE_CREATE.d.ts +4 -0
  404. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -0
  405. package/dist/types/handlers/invites/INVITE_DELETE.d.ts.map +1 -0
  406. package/dist/types/handlers/invites/index.d.ts.map +1 -0
  407. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +4 -0
  408. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -0
  409. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -0
  410. package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -0
  411. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -0
  412. package/dist/types/handlers/members/index.d.ts.map +1 -0
  413. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -0
  414. package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -0
  415. package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -0
  416. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -0
  417. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -0
  418. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -0
  419. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -0
  420. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -0
  421. package/dist/types/handlers/messages/index.d.ts.map +1 -0
  422. package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -0
  423. package/dist/types/handlers/misc/READY.d.ts.map +1 -0
  424. package/dist/types/handlers/misc/TYPING_START.d.ts.map +1 -0
  425. package/dist/types/handlers/misc/USER_UPDATE.d.ts.map +1 -0
  426. package/dist/types/handlers/misc/index.d.ts.map +1 -0
  427. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts +4 -0
  428. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +1 -0
  429. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts +4 -0
  430. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +1 -0
  431. package/dist/types/handlers/poll/index.d.ts +3 -0
  432. package/dist/types/handlers/poll/index.d.ts.map +1 -0
  433. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -0
  434. package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -0
  435. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -0
  436. package/dist/types/handlers/roles/index.d.ts.map +1 -0
  437. package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -0
  438. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -0
  439. package/dist/types/handlers/voice/index.d.ts.map +1 -0
  440. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts +4 -0
  441. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -0
  442. package/dist/types/handlers/webhooks/index.d.ts.map +1 -0
  443. package/dist/types/handlers.d.ts.map +1 -0
  444. package/dist/types/helpers.d.ts +219 -0
  445. package/dist/types/helpers.d.ts.map +1 -0
  446. package/dist/types/index.d.ts.map +1 -0
  447. package/dist/types/optionalize.d.ts +46 -0
  448. package/dist/types/optionalize.d.ts.map +1 -0
  449. package/dist/types/transformers/activity.d.ts +3 -0
  450. package/dist/types/transformers/activity.d.ts.map +1 -0
  451. package/dist/types/transformers/application.d.ts +6 -0
  452. package/dist/types/transformers/application.d.ts.map +1 -0
  453. package/dist/types/transformers/applicationCommand.d.ts +4 -0
  454. package/dist/types/transformers/applicationCommand.d.ts.map +1 -0
  455. package/dist/types/transformers/applicationCommandOption.d.ts +4 -0
  456. package/dist/types/transformers/applicationCommandOption.d.ts.map +1 -0
  457. package/dist/types/transformers/applicationCommandOptionChoice.d.ts +4 -0
  458. package/dist/types/transformers/applicationCommandOptionChoice.d.ts.map +1 -0
  459. package/dist/types/transformers/applicationCommandPermission.d.ts +4 -0
  460. package/dist/types/transformers/applicationCommandPermission.d.ts.map +1 -0
  461. package/dist/types/transformers/attachment.d.ts +4 -0
  462. package/dist/types/transformers/attachment.d.ts.map +1 -0
  463. package/dist/types/transformers/auditLogEntry.d.ts +4 -0
  464. package/dist/types/transformers/auditLogEntry.d.ts.map +1 -0
  465. package/dist/types/transformers/automodActionExecution.d.ts +4 -0
  466. package/dist/types/transformers/automodActionExecution.d.ts.map +1 -0
  467. package/dist/types/transformers/automodRule.d.ts +4 -0
  468. package/dist/types/transformers/automodRule.d.ts.map +1 -0
  469. package/dist/types/transformers/avatarDecorationData.d.ts +3 -0
  470. package/dist/types/transformers/avatarDecorationData.d.ts.map +1 -0
  471. package/dist/types/transformers/channel.d.ts +12 -0
  472. package/dist/types/transformers/channel.d.ts.map +1 -0
  473. package/dist/types/transformers/component.d.ts +4 -0
  474. package/dist/types/transformers/component.d.ts.map +1 -0
  475. package/dist/types/transformers/embed.d.ts +4 -0
  476. package/dist/types/transformers/embed.d.ts.map +1 -0
  477. package/dist/types/transformers/emoji.d.ts +5 -0
  478. package/dist/types/transformers/emoji.d.ts.map +1 -0
  479. package/dist/types/transformers/entitlement.d.ts +4 -0
  480. package/dist/types/transformers/entitlement.d.ts.map +1 -0
  481. package/dist/types/transformers/gatewayBot.d.ts +4 -0
  482. package/dist/types/transformers/gatewayBot.d.ts.map +1 -0
  483. package/dist/types/transformers/guild.d.ts +8 -0
  484. package/dist/types/transformers/guild.d.ts.map +1 -0
  485. package/dist/types/transformers/index.d.ts +46 -0
  486. package/dist/types/transformers/index.d.ts.map +1 -0
  487. package/dist/types/transformers/integration.d.ts +4 -0
  488. package/dist/types/transformers/integration.d.ts.map +1 -0
  489. package/dist/types/transformers/interaction.d.ts +10 -0
  490. package/dist/types/transformers/interaction.d.ts.map +1 -0
  491. package/dist/types/transformers/invite.d.ts +7 -0
  492. package/dist/types/transformers/invite.d.ts.map +1 -0
  493. package/dist/types/transformers/member.d.ts +5 -0
  494. package/dist/types/transformers/member.d.ts.map +1 -0
  495. package/dist/types/transformers/message.d.ts +7 -0
  496. package/dist/types/transformers/message.d.ts.map +1 -0
  497. package/dist/types/transformers/onboarding.d.ts +6 -0
  498. package/dist/types/transformers/onboarding.d.ts.map +1 -0
  499. package/dist/types/transformers/poll.d.ts +5 -0
  500. package/dist/types/transformers/poll.d.ts.map +1 -0
  501. package/dist/types/transformers/presence.d.ts +4 -0
  502. package/dist/types/transformers/presence.d.ts.map +1 -0
  503. package/dist/types/transformers/reverse/activity.d.ts +3 -0
  504. package/dist/types/transformers/reverse/activity.d.ts.map +1 -0
  505. package/dist/types/transformers/reverse/allowedMentions.d.ts +3 -0
  506. package/dist/types/transformers/reverse/allowedMentions.d.ts.map +1 -0
  507. package/dist/types/transformers/reverse/application.d.ts +3 -0
  508. package/dist/types/transformers/reverse/application.d.ts.map +1 -0
  509. package/dist/types/transformers/reverse/applicationCommand.d.ts +3 -0
  510. package/dist/types/transformers/reverse/applicationCommand.d.ts.map +1 -0
  511. package/dist/types/transformers/reverse/applicationCommandOption.d.ts +3 -0
  512. package/dist/types/transformers/reverse/applicationCommandOption.d.ts.map +1 -0
  513. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts +3 -0
  514. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -0
  515. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts +3 -0
  516. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts.map +1 -0
  517. package/dist/types/transformers/reverse/attachment.d.ts +3 -0
  518. package/dist/types/transformers/reverse/attachment.d.ts.map +1 -0
  519. package/dist/types/transformers/reverse/auditLogEntry.d.ts +4 -0
  520. package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +1 -0
  521. package/dist/types/transformers/reverse/component.d.ts +4 -0
  522. package/dist/types/transformers/reverse/component.d.ts.map +1 -0
  523. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +1 -0
  524. package/dist/types/transformers/reverse/embed.d.ts +4 -0
  525. package/dist/types/transformers/reverse/embed.d.ts.map +1 -0
  526. package/dist/types/transformers/reverse/emoji.d.ts +4 -0
  527. package/dist/types/transformers/reverse/emoji.d.ts.map +1 -0
  528. package/dist/types/transformers/reverse/gatewayBot.d.ts +4 -0
  529. package/dist/types/transformers/reverse/gatewayBot.d.ts.map +1 -0
  530. package/dist/types/transformers/reverse/index.d.ts.map +1 -0
  531. package/dist/types/transformers/reverse/interactionResponse.d.ts.map +1 -0
  532. package/dist/types/transformers/reverse/member.d.ts +6 -0
  533. package/dist/types/transformers/reverse/member.d.ts.map +1 -0
  534. package/dist/types/transformers/reverse/presence.d.ts +10 -0
  535. package/dist/types/transformers/reverse/presence.d.ts.map +1 -0
  536. package/dist/types/transformers/reverse/team.d.ts +4 -0
  537. package/dist/types/transformers/reverse/team.d.ts.map +1 -0
  538. package/dist/types/transformers/reverse/widgetSettings.d.ts +4 -0
  539. package/dist/types/transformers/reverse/widgetSettings.d.ts.map +1 -0
  540. package/dist/types/transformers/role.d.ts +8 -0
  541. package/dist/types/transformers/role.d.ts.map +1 -0
  542. package/dist/types/transformers/scheduledEvent.d.ts +4 -0
  543. package/dist/types/transformers/scheduledEvent.d.ts.map +1 -0
  544. package/dist/types/transformers/sku.d.ts +4 -0
  545. package/dist/types/transformers/sku.d.ts.map +1 -0
  546. package/dist/types/transformers/stageInstance.d.ts +4 -0
  547. package/dist/types/transformers/stageInstance.d.ts.map +1 -0
  548. package/dist/types/transformers/stageInviteInstance.d.ts +6 -0
  549. package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -0
  550. package/dist/types/transformers/sticker.d.ts +5 -0
  551. package/dist/types/transformers/sticker.d.ts.map +1 -0
  552. package/dist/types/transformers/team.d.ts +4 -0
  553. package/dist/types/transformers/team.d.ts.map +1 -0
  554. package/dist/types/transformers/template.d.ts +4 -0
  555. package/dist/types/transformers/template.d.ts.map +1 -0
  556. package/dist/types/transformers/threadMember.d.ts +6 -0
  557. package/dist/types/transformers/threadMember.d.ts.map +1 -0
  558. package/dist/types/transformers/toggles/Permissions.d.ts +9 -0
  559. package/dist/types/transformers/toggles/Permissions.d.ts.map +1 -0
  560. package/dist/types/transformers/toggles/ToggleBitfield.d.ts.map +1 -0
  561. package/dist/types/transformers/toggles/channel.d.ts +36 -0
  562. package/dist/types/transformers/toggles/channel.d.ts.map +1 -0
  563. package/dist/types/transformers/toggles/emoji.d.ts.map +1 -0
  564. package/dist/types/transformers/toggles/guild.d.ts +145 -0
  565. package/dist/types/transformers/toggles/guild.d.ts.map +1 -0
  566. package/dist/types/transformers/toggles/index.d.ts.map +1 -0
  567. package/dist/types/transformers/toggles/member.d.ts +45 -0
  568. package/dist/types/transformers/toggles/member.d.ts.map +1 -0
  569. package/dist/types/transformers/toggles/role.d.ts.map +1 -0
  570. package/dist/types/transformers/toggles/user.d.ts.map +1 -0
  571. package/dist/types/transformers/toggles/voice.d.ts.map +1 -0
  572. package/dist/types/transformers/types.d.ts +1439 -0
  573. package/dist/types/transformers/types.d.ts.map +1 -0
  574. package/dist/types/transformers/user.d.ts +4 -0
  575. package/dist/types/transformers/user.d.ts.map +1 -0
  576. package/dist/types/transformers/voiceRegion.d.ts +4 -0
  577. package/dist/types/transformers/voiceRegion.d.ts.map +1 -0
  578. package/dist/types/transformers/voiceState.d.ts +8 -0
  579. package/dist/types/transformers/voiceState.d.ts.map +1 -0
  580. package/dist/types/transformers/webhook.d.ts +4 -0
  581. package/dist/types/transformers/webhook.d.ts.map +1 -0
  582. package/dist/types/transformers/welcomeScreen.d.ts +4 -0
  583. package/dist/types/transformers/welcomeScreen.d.ts.map +1 -0
  584. package/dist/types/transformers/widget.d.ts +4 -0
  585. package/dist/types/transformers/widget.d.ts.map +1 -0
  586. package/dist/types/transformers/widgetSettings.d.ts +4 -0
  587. package/dist/types/transformers/widgetSettings.d.ts.map +1 -0
  588. package/dist/types/transformers.d.ts +582 -0
  589. package/dist/types/transformers.d.ts.map +1 -0
  590. package/dist/types/typings.d.ts +178 -0
  591. package/dist/types/typings.d.ts.map +1 -0
  592. package/dist/types/utils.d.ts.map +1 -0
  593. package/package.json +31 -27
  594. package/dist/bot.d.ts +0 -248
  595. package/dist/bot.d.ts.map +0 -1
  596. package/dist/bot.js +0 -67
  597. package/dist/bot.js.map +0 -1
  598. package/dist/commandOptionsParser.d.ts +0 -3
  599. package/dist/commandOptionsParser.d.ts.map +0 -1
  600. package/dist/commandOptionsParser.js +0 -41
  601. package/dist/commandOptionsParser.js.map +0 -1
  602. package/dist/constants.d.ts.map +0 -1
  603. package/dist/constants.js +0 -6
  604. package/dist/constants.js.map +0 -1
  605. package/dist/handlers/channels/CHANNEL_CREATE.d.ts +0 -3
  606. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +0 -1
  607. package/dist/handlers/channels/CHANNEL_CREATE.js +0 -11
  608. package/dist/handlers/channels/CHANNEL_CREATE.js.map +0 -1
  609. package/dist/handlers/channels/CHANNEL_DELETE.d.ts.map +0 -1
  610. package/dist/handlers/channels/CHANNEL_DELETE.js +0 -11
  611. package/dist/handlers/channels/CHANNEL_DELETE.js.map +0 -1
  612. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +0 -1
  613. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js +0 -11
  614. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js.map +0 -1
  615. package/dist/handlers/channels/CHANNEL_UPDATE.d.ts.map +0 -1
  616. package/dist/handlers/channels/CHANNEL_UPDATE.js +0 -10
  617. package/dist/handlers/channels/CHANNEL_UPDATE.js.map +0 -1
  618. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +0 -1
  619. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js +0 -12
  620. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js.map +0 -1
  621. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +0 -1
  622. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js +0 -12
  623. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js.map +0 -1
  624. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +0 -1
  625. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js +0 -12
  626. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js.map +0 -1
  627. package/dist/handlers/channels/THREAD_CREATE.d.ts.map +0 -1
  628. package/dist/handlers/channels/THREAD_CREATE.js +0 -9
  629. package/dist/handlers/channels/THREAD_CREATE.js.map +0 -1
  630. package/dist/handlers/channels/THREAD_DELETE.d.ts.map +0 -1
  631. package/dist/handlers/channels/THREAD_DELETE.js +0 -9
  632. package/dist/handlers/channels/THREAD_DELETE.js.map +0 -1
  633. package/dist/handlers/channels/THREAD_LIST_SYNC.d.ts.map +0 -1
  634. package/dist/handlers/channels/THREAD_LIST_SYNC.js +0 -21
  635. package/dist/handlers/channels/THREAD_LIST_SYNC.js.map +0 -1
  636. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts +0 -4
  637. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +0 -1
  638. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +0 -12
  639. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js.map +0 -1
  640. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts +0 -4
  641. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +0 -1
  642. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js +0 -12
  643. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js.map +0 -1
  644. package/dist/handlers/channels/THREAD_UPDATE.d.ts.map +0 -1
  645. package/dist/handlers/channels/THREAD_UPDATE.js +0 -9
  646. package/dist/handlers/channels/THREAD_UPDATE.js.map +0 -1
  647. package/dist/handlers/channels/index.d.ts.map +0 -1
  648. package/dist/handlers/channels/index.js +0 -15
  649. package/dist/handlers/channels/index.js.map +0 -1
  650. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +0 -1
  651. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js +0 -14
  652. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js.map +0 -1
  653. package/dist/handlers/emojis/index.d.ts.map +0 -1
  654. package/dist/handlers/emojis/index.js +0 -3
  655. package/dist/handlers/emojis/index.js.map +0 -1
  656. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +0 -1
  657. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +0 -8
  658. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js.map +0 -1
  659. package/dist/handlers/guilds/GUILD_BAN_ADD.d.ts.map +0 -1
  660. package/dist/handlers/guilds/GUILD_BAN_ADD.js +0 -7
  661. package/dist/handlers/guilds/GUILD_BAN_ADD.js.map +0 -1
  662. package/dist/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +0 -1
  663. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js +0 -7
  664. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js.map +0 -1
  665. package/dist/handlers/guilds/GUILD_CREATE.d.ts.map +0 -1
  666. package/dist/handlers/guilds/GUILD_CREATE.js +0 -10
  667. package/dist/handlers/guilds/GUILD_CREATE.js.map +0 -1
  668. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +0 -1
  669. package/dist/handlers/guilds/GUILD_DELETE.js +0 -11
  670. package/dist/handlers/guilds/GUILD_DELETE.js.map +0 -1
  671. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +0 -1
  672. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +0 -9
  673. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js.map +0 -1
  674. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts +0 -3
  675. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +0 -1
  676. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js +0 -10
  677. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js.map +0 -1
  678. package/dist/handlers/guilds/GUILD_UPDATE.d.ts.map +0 -1
  679. package/dist/handlers/guilds/GUILD_UPDATE.js +0 -10
  680. package/dist/handlers/guilds/GUILD_UPDATE.js.map +0 -1
  681. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +0 -5
  682. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +0 -1
  683. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +0 -7
  684. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js.map +0 -1
  685. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +0 -5
  686. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +0 -1
  687. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +0 -7
  688. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js.map +0 -1
  689. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +0 -5
  690. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +0 -1
  691. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +0 -7
  692. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js.map +0 -1
  693. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +0 -5
  694. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +0 -1
  695. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +0 -7
  696. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js.map +0 -1
  697. package/dist/handlers/guilds/automod/index.d.ts.map +0 -1
  698. package/dist/handlers/guilds/automod/index.js +0 -6
  699. package/dist/handlers/guilds/automod/index.js.map +0 -1
  700. package/dist/handlers/guilds/index.d.ts.map +0 -1
  701. package/dist/handlers/guilds/index.js +0 -12
  702. package/dist/handlers/guilds/index.js.map +0 -1
  703. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +0 -4
  704. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +0 -1
  705. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +0 -7
  706. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js.map +0 -1
  707. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +0 -1
  708. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +0 -7
  709. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js.map +0 -1
  710. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +0 -1
  711. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +0 -7
  712. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js.map +0 -1
  713. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +0 -1
  714. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +0 -11
  715. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js.map +0 -1
  716. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +0 -1
  717. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +0 -11
  718. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js.map +0 -1
  719. package/dist/handlers/guilds/scheduledEvents/index.d.ts.map +0 -1
  720. package/dist/handlers/guilds/scheduledEvents/index.js +0 -7
  721. package/dist/handlers/guilds/scheduledEvents/index.js.map +0 -1
  722. package/dist/handlers/index.d.ts +0 -13
  723. package/dist/handlers/index.d.ts.map +0 -1
  724. package/dist/handlers/index.js +0 -14
  725. package/dist/handlers/index.js.map +0 -1
  726. package/dist/handlers/integrations/INTEGRATION_CREATE.d.ts.map +0 -1
  727. package/dist/handlers/integrations/INTEGRATION_CREATE.js +0 -6
  728. package/dist/handlers/integrations/INTEGRATION_CREATE.js.map +0 -1
  729. package/dist/handlers/integrations/INTEGRATION_DELETE.d.ts.map +0 -1
  730. package/dist/handlers/integrations/INTEGRATION_DELETE.js +0 -11
  731. package/dist/handlers/integrations/INTEGRATION_DELETE.js.map +0 -1
  732. package/dist/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +0 -1
  733. package/dist/handlers/integrations/INTEGRATION_UPDATE.js +0 -6
  734. package/dist/handlers/integrations/INTEGRATION_UPDATE.js.map +0 -1
  735. package/dist/handlers/integrations/index.d.ts.map +0 -1
  736. package/dist/handlers/integrations/index.js +0 -5
  737. package/dist/handlers/integrations/index.js.map +0 -1
  738. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +0 -3
  739. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +0 -1
  740. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +0 -7
  741. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js.map +0 -1
  742. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts +0 -4
  743. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts.map +0 -1
  744. package/dist/handlers/interactions/INTERACTION_CREATE.js +0 -6
  745. package/dist/handlers/interactions/INTERACTION_CREATE.js.map +0 -1
  746. package/dist/handlers/interactions/index.d.ts.map +0 -1
  747. package/dist/handlers/interactions/index.js +0 -4
  748. package/dist/handlers/interactions/index.js.map +0 -1
  749. package/dist/handlers/invites/INVITE_CREATE.d.ts +0 -4
  750. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +0 -1
  751. package/dist/handlers/invites/INVITE_CREATE.js +0 -6
  752. package/dist/handlers/invites/INVITE_CREATE.js.map +0 -1
  753. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +0 -1
  754. package/dist/handlers/invites/INVITE_DELETE.js +0 -11
  755. package/dist/handlers/invites/INVITE_DELETE.js.map +0 -1
  756. package/dist/handlers/invites/index.d.ts.map +0 -1
  757. package/dist/handlers/invites/index.js +0 -4
  758. package/dist/handlers/invites/index.js.map +0 -1
  759. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts +0 -4
  760. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +0 -1
  761. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js +0 -26
  762. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js.map +0 -1
  763. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts.map +0 -1
  764. package/dist/handlers/members/GUILD_MEMBER_ADD.js +0 -10
  765. package/dist/handlers/members/GUILD_MEMBER_ADD.js.map +0 -1
  766. package/dist/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +0 -1
  767. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js +0 -9
  768. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js.map +0 -1
  769. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +0 -1
  770. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +0 -8
  771. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js.map +0 -1
  772. package/dist/handlers/members/index.d.ts.map +0 -1
  773. package/dist/handlers/members/index.js +0 -6
  774. package/dist/handlers/members/index.js.map +0 -1
  775. package/dist/handlers/messages/MESSAGE_CREATE.d.ts.map +0 -1
  776. package/dist/handlers/messages/MESSAGE_CREATE.js +0 -7
  777. package/dist/handlers/messages/MESSAGE_CREATE.js.map +0 -1
  778. package/dist/handlers/messages/MESSAGE_DELETE.d.ts.map +0 -1
  779. package/dist/handlers/messages/MESSAGE_DELETE.js +0 -11
  780. package/dist/handlers/messages/MESSAGE_DELETE.js.map +0 -1
  781. package/dist/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +0 -1
  782. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js +0 -13
  783. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js.map +0 -1
  784. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +0 -1
  785. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +0 -18
  786. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js.map +0 -1
  787. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +0 -1
  788. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +0 -13
  789. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js.map +0 -1
  790. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +0 -1
  791. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +0 -11
  792. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js.map +0 -1
  793. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +0 -1
  794. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +0 -12
  795. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js.map +0 -1
  796. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts.map +0 -1
  797. package/dist/handlers/messages/MESSAGE_UPDATE.js +0 -8
  798. package/dist/handlers/messages/MESSAGE_UPDATE.js.map +0 -1
  799. package/dist/handlers/messages/index.d.ts.map +0 -1
  800. package/dist/handlers/messages/index.js +0 -10
  801. package/dist/handlers/messages/index.js.map +0 -1
  802. package/dist/handlers/misc/PRESENCE_UPDATE.d.ts.map +0 -1
  803. package/dist/handlers/misc/PRESENCE_UPDATE.js +0 -6
  804. package/dist/handlers/misc/PRESENCE_UPDATE.js.map +0 -1
  805. package/dist/handlers/misc/READY.d.ts.map +0 -1
  806. package/dist/handlers/misc/READY.js +0 -18
  807. package/dist/handlers/misc/READY.js.map +0 -1
  808. package/dist/handlers/misc/TYPING_START.d.ts.map +0 -1
  809. package/dist/handlers/misc/TYPING_START.js +0 -15
  810. package/dist/handlers/misc/TYPING_START.js.map +0 -1
  811. package/dist/handlers/misc/USER_UPDATE.d.ts.map +0 -1
  812. package/dist/handlers/misc/USER_UPDATE.js +0 -7
  813. package/dist/handlers/misc/USER_UPDATE.js.map +0 -1
  814. package/dist/handlers/misc/index.d.ts.map +0 -1
  815. package/dist/handlers/misc/index.js +0 -6
  816. package/dist/handlers/misc/index.js.map +0 -1
  817. package/dist/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +0 -1
  818. package/dist/handlers/roles/GUILD_ROLE_CREATE.js +0 -10
  819. package/dist/handlers/roles/GUILD_ROLE_CREATE.js.map +0 -1
  820. package/dist/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +0 -1
  821. package/dist/handlers/roles/GUILD_ROLE_DELETE.js +0 -10
  822. package/dist/handlers/roles/GUILD_ROLE_DELETE.js.map +0 -1
  823. package/dist/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +0 -1
  824. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js +0 -10
  825. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js.map +0 -1
  826. package/dist/handlers/roles/index.d.ts.map +0 -1
  827. package/dist/handlers/roles/index.js +0 -5
  828. package/dist/handlers/roles/index.js.map +0 -1
  829. package/dist/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +0 -1
  830. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js +0 -11
  831. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js.map +0 -1
  832. package/dist/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +0 -1
  833. package/dist/handlers/voice/VOICE_STATE_UPDATE.js +0 -12
  834. package/dist/handlers/voice/VOICE_STATE_UPDATE.js.map +0 -1
  835. package/dist/handlers/voice/index.d.ts.map +0 -1
  836. package/dist/handlers/voice/index.js +0 -4
  837. package/dist/handlers/voice/index.js.map +0 -1
  838. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts +0 -4
  839. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +0 -1
  840. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js +0 -10
  841. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js.map +0 -1
  842. package/dist/handlers/webhooks/index.d.ts.map +0 -1
  843. package/dist/handlers/webhooks/index.js +0 -3
  844. package/dist/handlers/webhooks/index.js.map +0 -1
  845. package/dist/handlers.d.ts.map +0 -1
  846. package/dist/handlers.js +0 -67
  847. package/dist/handlers.js.map +0 -1
  848. package/dist/helpers.d.ts +0 -222
  849. package/dist/helpers.d.ts.map +0 -1
  850. package/dist/helpers.js +0 -602
  851. package/dist/helpers.js.map +0 -1
  852. package/dist/index.d.ts.map +0 -1
  853. package/dist/index.js +0 -17
  854. package/dist/index.js.map +0 -1
  855. package/dist/optionalize.d.ts +0 -47
  856. package/dist/optionalize.d.ts.map +0 -1
  857. package/dist/optionalize.js +0 -3
  858. package/dist/optionalize.js.map +0 -1
  859. package/dist/transformers/activity.d.ts +0 -35
  860. package/dist/transformers/activity.d.ts.map +0 -1
  861. package/dist/transformers/activity.js +0 -34
  862. package/dist/transformers/activity.js.map +0 -1
  863. package/dist/transformers/application.d.ts +0 -22
  864. package/dist/transformers/application.d.ts.map +0 -1
  865. package/dist/transformers/application.js +0 -25
  866. package/dist/transformers/application.js.map +0 -1
  867. package/dist/transformers/applicationCommand.d.ts +0 -18
  868. package/dist/transformers/applicationCommand.d.ts.map +0 -1
  869. package/dist/transformers/applicationCommand.js +0 -19
  870. package/dist/transformers/applicationCommand.js.map +0 -1
  871. package/dist/transformers/applicationCommandOption.d.ts +0 -35
  872. package/dist/transformers/applicationCommandOption.d.ts.map +0 -1
  873. package/dist/transformers/applicationCommandOption.js +0 -21
  874. package/dist/transformers/applicationCommandOption.js.map +0 -1
  875. package/dist/transformers/applicationCommandOptionChoice.d.ts +0 -9
  876. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +0 -1
  877. package/dist/transformers/applicationCommandOptionChoice.js +0 -10
  878. package/dist/transformers/applicationCommandOptionChoice.js.map +0 -1
  879. package/dist/transformers/applicationCommandPermission.d.ts +0 -14
  880. package/dist/transformers/applicationCommandPermission.d.ts.map +0 -1
  881. package/dist/transformers/applicationCommandPermission.js +0 -15
  882. package/dist/transformers/applicationCommandPermission.js.map +0 -1
  883. package/dist/transformers/attachment.d.ts +0 -30
  884. package/dist/transformers/attachment.d.ts.map +0 -1
  885. package/dist/transformers/attachment.js +0 -17
  886. package/dist/transformers/attachment.js.map +0 -1
  887. package/dist/transformers/auditLogEntry.d.ts +0 -44
  888. package/dist/transformers/auditLogEntry.d.ts.map +0 -1
  889. package/dist/transformers/auditLogEntry.js +0 -134
  890. package/dist/transformers/auditLogEntry.js.map +0 -1
  891. package/dist/transformers/automodActionExecution.d.ts +0 -24
  892. package/dist/transformers/automodActionExecution.d.ts.map +0 -1
  893. package/dist/transformers/automodActionExecution.js +0 -25
  894. package/dist/transformers/automodActionExecution.js.map +0 -1
  895. package/dist/transformers/automodRule.d.ts +0 -30
  896. package/dist/transformers/automodRule.d.ts.map +0 -1
  897. package/dist/transformers/automodRule.js +0 -31
  898. package/dist/transformers/automodRule.js.map +0 -1
  899. package/dist/transformers/channel.d.ts +0 -107
  900. package/dist/transformers/channel.d.ts.map +0 -1
  901. package/dist/transformers/channel.js +0 -98
  902. package/dist/transformers/channel.js.map +0 -1
  903. package/dist/transformers/component.d.ts +0 -48
  904. package/dist/transformers/component.d.ts.map +0 -1
  905. package/dist/transformers/component.js +0 -37
  906. package/dist/transformers/component.js.map +0 -1
  907. package/dist/transformers/embed.d.ts +0 -50
  908. package/dist/transformers/embed.d.ts.map +0 -1
  909. package/dist/transformers/embed.js +0 -44
  910. package/dist/transformers/embed.js.map +0 -1
  911. package/dist/transformers/emoji.d.ts +0 -24
  912. package/dist/transformers/emoji.d.ts.map +0 -1
  913. package/dist/transformers/emoji.js +0 -13
  914. package/dist/transformers/emoji.js.map +0 -1
  915. package/dist/transformers/gatewayBot.d.ts +0 -14
  916. package/dist/transformers/gatewayBot.d.ts.map +0 -1
  917. package/dist/transformers/gatewayBot.js +0 -15
  918. package/dist/transformers/gatewayBot.js.map +0 -1
  919. package/dist/transformers/guild.d.ts +0 -117
  920. package/dist/transformers/guild.d.ts.map +0 -1
  921. package/dist/transformers/guild.js +0 -132
  922. package/dist/transformers/guild.js.map +0 -1
  923. package/dist/transformers/index.d.ts +0 -39
  924. package/dist/transformers/index.d.ts.map +0 -1
  925. package/dist/transformers/index.js +0 -40
  926. package/dist/transformers/index.js.map +0 -1
  927. package/dist/transformers/integration.d.ts +0 -32
  928. package/dist/transformers/integration.d.ts.map +0 -1
  929. package/dist/transformers/integration.js +0 -34
  930. package/dist/transformers/integration.js.map +0 -1
  931. package/dist/transformers/interaction.d.ts +0 -90
  932. package/dist/transformers/interaction.d.ts.map +0 -1
  933. package/dist/transformers/interaction.js +0 -169
  934. package/dist/transformers/interaction.js.map +0 -1
  935. package/dist/transformers/invite.d.ts +0 -41
  936. package/dist/transformers/invite.d.ts.map +0 -1
  937. package/dist/transformers/invite.js +0 -40
  938. package/dist/transformers/invite.js.map +0 -1
  939. package/dist/transformers/member.d.ts +0 -39
  940. package/dist/transformers/member.d.ts.map +0 -1
  941. package/dist/transformers/member.js +0 -34
  942. package/dist/transformers/member.js.map +0 -1
  943. package/dist/transformers/message.d.ts +0 -133
  944. package/dist/transformers/message.d.ts.map +0 -1
  945. package/dist/transformers/message.js +0 -221
  946. package/dist/transformers/message.js.map +0 -1
  947. package/dist/transformers/presence.d.ts +0 -13
  948. package/dist/transformers/presence.d.ts.map +0 -1
  949. package/dist/transformers/presence.js +0 -15
  950. package/dist/transformers/presence.js.map +0 -1
  951. package/dist/transformers/reverse/activity.d.ts +0 -4
  952. package/dist/transformers/reverse/activity.d.ts.map +0 -1
  953. package/dist/transformers/reverse/activity.js +0 -43
  954. package/dist/transformers/reverse/activity.js.map +0 -1
  955. package/dist/transformers/reverse/allowedMentions.d.ts +0 -3
  956. package/dist/transformers/reverse/allowedMentions.d.ts.map +0 -1
  957. package/dist/transformers/reverse/allowedMentions.js +0 -10
  958. package/dist/transformers/reverse/allowedMentions.js.map +0 -1
  959. package/dist/transformers/reverse/application.d.ts +0 -4
  960. package/dist/transformers/reverse/application.d.ts.map +0 -1
  961. package/dist/transformers/reverse/application.js +0 -24
  962. package/dist/transformers/reverse/application.js.map +0 -1
  963. package/dist/transformers/reverse/applicationCommand.d.ts +0 -4
  964. package/dist/transformers/reverse/applicationCommand.d.ts.map +0 -1
  965. package/dist/transformers/reverse/applicationCommand.js +0 -18
  966. package/dist/transformers/reverse/applicationCommand.js.map +0 -1
  967. package/dist/transformers/reverse/applicationCommandOption.d.ts +0 -4
  968. package/dist/transformers/reverse/applicationCommandOption.d.ts.map +0 -1
  969. package/dist/transformers/reverse/applicationCommandOption.js +0 -20
  970. package/dist/transformers/reverse/applicationCommandOption.js.map +0 -1
  971. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts +0 -4
  972. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts.map +0 -1
  973. package/dist/transformers/reverse/applicationCommandOptionChoice.js +0 -9
  974. package/dist/transformers/reverse/applicationCommandOptionChoice.js.map +0 -1
  975. package/dist/transformers/reverse/applicationCommandPermission.d.ts +0 -4
  976. package/dist/transformers/reverse/applicationCommandPermission.d.ts.map +0 -1
  977. package/dist/transformers/reverse/applicationCommandPermission.js +0 -14
  978. package/dist/transformers/reverse/applicationCommandPermission.js.map +0 -1
  979. package/dist/transformers/reverse/attachment.d.ts +0 -4
  980. package/dist/transformers/reverse/attachment.d.ts.map +0 -1
  981. package/dist/transformers/reverse/attachment.js +0 -16
  982. package/dist/transformers/reverse/attachment.js.map +0 -1
  983. package/dist/transformers/reverse/auditLogEntry.d.ts +0 -5
  984. package/dist/transformers/reverse/auditLogEntry.d.ts.map +0 -1
  985. package/dist/transformers/reverse/auditLogEntry.js +0 -137
  986. package/dist/transformers/reverse/auditLogEntry.js.map +0 -1
  987. package/dist/transformers/reverse/component.d.ts +0 -5
  988. package/dist/transformers/reverse/component.d.ts.map +0 -1
  989. package/dist/transformers/reverse/component.js +0 -37
  990. package/dist/transformers/reverse/component.js.map +0 -1
  991. package/dist/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  992. package/dist/transformers/reverse/createApplicationCommand.js +0 -27
  993. package/dist/transformers/reverse/createApplicationCommand.js.map +0 -1
  994. package/dist/transformers/reverse/embed.d.ts +0 -5
  995. package/dist/transformers/reverse/embed.d.ts.map +0 -1
  996. package/dist/transformers/reverse/embed.js +0 -43
  997. package/dist/transformers/reverse/embed.js.map +0 -1
  998. package/dist/transformers/reverse/emoji.d.ts +0 -5
  999. package/dist/transformers/reverse/emoji.d.ts.map +0 -1
  1000. package/dist/transformers/reverse/emoji.js +0 -14
  1001. package/dist/transformers/reverse/emoji.js.map +0 -1
  1002. package/dist/transformers/reverse/gatewayBot.d.ts +0 -4
  1003. package/dist/transformers/reverse/gatewayBot.d.ts.map +0 -1
  1004. package/dist/transformers/reverse/gatewayBot.js +0 -14
  1005. package/dist/transformers/reverse/gatewayBot.js.map +0 -1
  1006. package/dist/transformers/reverse/index.d.ts.map +0 -1
  1007. package/dist/transformers/reverse/index.js +0 -21
  1008. package/dist/transformers/reverse/index.js.map +0 -1
  1009. package/dist/transformers/reverse/interactionResponse.d.ts.map +0 -1
  1010. package/dist/transformers/reverse/interactionResponse.js +0 -24
  1011. package/dist/transformers/reverse/interactionResponse.js.map +0 -1
  1012. package/dist/transformers/reverse/member.d.ts +0 -7
  1013. package/dist/transformers/reverse/member.d.ts.map +0 -1
  1014. package/dist/transformers/reverse/member.js +0 -35
  1015. package/dist/transformers/reverse/member.js.map +0 -1
  1016. package/dist/transformers/reverse/presence.d.ts +0 -11
  1017. package/dist/transformers/reverse/presence.d.ts.map +0 -1
  1018. package/dist/transformers/reverse/presence.js +0 -23
  1019. package/dist/transformers/reverse/presence.js.map +0 -1
  1020. package/dist/transformers/reverse/team.d.ts +0 -5
  1021. package/dist/transformers/reverse/team.d.ts.map +0 -1
  1022. package/dist/transformers/reverse/team.js +0 -18
  1023. package/dist/transformers/reverse/team.js.map +0 -1
  1024. package/dist/transformers/reverse/widgetSettings.d.ts +0 -5
  1025. package/dist/transformers/reverse/widgetSettings.d.ts.map +0 -1
  1026. package/dist/transformers/reverse/widgetSettings.js +0 -8
  1027. package/dist/transformers/reverse/widgetSettings.js.map +0 -1
  1028. package/dist/transformers/role.d.ts +0 -77
  1029. package/dist/transformers/role.d.ts.map +0 -1
  1030. package/dist/transformers/role.js +0 -57
  1031. package/dist/transformers/role.js.map +0 -1
  1032. package/dist/transformers/scheduledEvent.d.ts +0 -38
  1033. package/dist/transformers/scheduledEvent.d.ts.map +0 -1
  1034. package/dist/transformers/scheduledEvent.js +0 -24
  1035. package/dist/transformers/scheduledEvent.js.map +0 -1
  1036. package/dist/transformers/stageInstance.d.ts +0 -16
  1037. package/dist/transformers/stageInstance.d.ts.map +0 -1
  1038. package/dist/transformers/stageInstance.js +0 -12
  1039. package/dist/transformers/stageInstance.js.map +0 -1
  1040. package/dist/transformers/stageInviteInstance.d.ts +0 -16
  1041. package/dist/transformers/stageInviteInstance.d.ts.map +0 -1
  1042. package/dist/transformers/stageInviteInstance.js +0 -13
  1043. package/dist/transformers/stageInviteInstance.js.map +0 -1
  1044. package/dist/transformers/sticker.d.ts +0 -38
  1045. package/dist/transformers/sticker.d.ts.map +0 -1
  1046. package/dist/transformers/sticker.js +0 -30
  1047. package/dist/transformers/sticker.js.map +0 -1
  1048. package/dist/transformers/team.d.ts +0 -16
  1049. package/dist/transformers/team.d.ts.map +0 -1
  1050. package/dist/transformers/team.js +0 -19
  1051. package/dist/transformers/team.js.map +0 -1
  1052. package/dist/transformers/template.d.ts +0 -17
  1053. package/dist/transformers/template.d.ts.map +0 -1
  1054. package/dist/transformers/template.js +0 -18
  1055. package/dist/transformers/template.js.map +0 -1
  1056. package/dist/transformers/threadMember.d.ts +0 -15
  1057. package/dist/transformers/threadMember.d.ts.map +0 -1
  1058. package/dist/transformers/threadMember.js +0 -17
  1059. package/dist/transformers/threadMember.js.map +0 -1
  1060. package/dist/transformers/toggles/Permissions.d.ts +0 -9
  1061. package/dist/transformers/toggles/Permissions.d.ts.map +0 -1
  1062. package/dist/transformers/toggles/Permissions.js +0 -18
  1063. package/dist/transformers/toggles/Permissions.js.map +0 -1
  1064. package/dist/transformers/toggles/ToggleBitfield.d.ts.map +0 -1
  1065. package/dist/transformers/toggles/ToggleBitfield.js +0 -42
  1066. package/dist/transformers/toggles/ToggleBitfield.js.map +0 -1
  1067. package/dist/transformers/toggles/channel.d.ts +0 -33
  1068. package/dist/transformers/toggles/channel.d.ts.map +0 -1
  1069. package/dist/transformers/toggles/channel.js +0 -50
  1070. package/dist/transformers/toggles/channel.js.map +0 -1
  1071. package/dist/transformers/toggles/emoji.d.ts.map +0 -1
  1072. package/dist/transformers/toggles/emoji.js +0 -45
  1073. package/dist/transformers/toggles/emoji.js.map +0 -1
  1074. package/dist/transformers/toggles/guild.d.ts +0 -130
  1075. package/dist/transformers/toggles/guild.d.ts.map +0 -1
  1076. package/dist/transformers/toggles/guild.js +0 -206
  1077. package/dist/transformers/toggles/guild.js.map +0 -1
  1078. package/dist/transformers/toggles/index.d.ts.map +0 -1
  1079. package/dist/transformers/toggles/index.js +0 -11
  1080. package/dist/transformers/toggles/index.js.map +0 -1
  1081. package/dist/transformers/toggles/member.d.ts +0 -25
  1082. package/dist/transformers/toggles/member.d.ts.map +0 -1
  1083. package/dist/transformers/toggles/member.js +0 -40
  1084. package/dist/transformers/toggles/member.js.map +0 -1
  1085. package/dist/transformers/toggles/role.d.ts.map +0 -1
  1086. package/dist/transformers/toggles/role.js +0 -55
  1087. package/dist/transformers/toggles/role.js.map +0 -1
  1088. package/dist/transformers/toggles/user.d.ts.map +0 -1
  1089. package/dist/transformers/toggles/user.js +0 -45
  1090. package/dist/transformers/toggles/user.js.map +0 -1
  1091. package/dist/transformers/toggles/voice.d.ts.map +0 -1
  1092. package/dist/transformers/toggles/voice.js +0 -60
  1093. package/dist/transformers/toggles/voice.js.map +0 -1
  1094. package/dist/transformers/user.d.ts +0 -44
  1095. package/dist/transformers/user.d.ts.map +0 -1
  1096. package/dist/transformers/user.js +0 -42
  1097. package/dist/transformers/user.js.map +0 -1
  1098. package/dist/transformers/voiceRegion.d.ts +0 -11
  1099. package/dist/transformers/voiceRegion.d.ts.map +0 -1
  1100. package/dist/transformers/voiceRegion.js +0 -12
  1101. package/dist/transformers/voiceRegion.js.map +0 -1
  1102. package/dist/transformers/voiceState.d.ts +0 -17
  1103. package/dist/transformers/voiceState.d.ts.map +0 -1
  1104. package/dist/transformers/voiceState.js +0 -14
  1105. package/dist/transformers/voiceState.js.map +0 -1
  1106. package/dist/transformers/webhook.d.ts +0 -30
  1107. package/dist/transformers/webhook.d.ts.map +0 -1
  1108. package/dist/transformers/webhook.js +0 -27
  1109. package/dist/transformers/webhook.js.map +0 -1
  1110. package/dist/transformers/welcomeScreen.d.ts +0 -13
  1111. package/dist/transformers/welcomeScreen.d.ts.map +0 -1
  1112. package/dist/transformers/welcomeScreen.js +0 -14
  1113. package/dist/transformers/welcomeScreen.js.map +0 -1
  1114. package/dist/transformers/widget.d.ts +0 -23
  1115. package/dist/transformers/widget.d.ts.map +0 -1
  1116. package/dist/transformers/widget.js +0 -25
  1117. package/dist/transformers/widget.js.map +0 -1
  1118. package/dist/transformers/widgetSettings.d.ts +0 -8
  1119. package/dist/transformers/widgetSettings.d.ts.map +0 -1
  1120. package/dist/transformers/widgetSettings.js +0 -9
  1121. package/dist/transformers/widgetSettings.js.map +0 -1
  1122. package/dist/transformers.d.ts +0 -447
  1123. package/dist/transformers.d.ts.map +0 -1
  1124. package/dist/transformers.js +0 -513
  1125. package/dist/transformers.js.map +0 -1
  1126. package/dist/typings.d.ts +0 -196
  1127. package/dist/typings.d.ts.map +0 -1
  1128. package/dist/typings.js +0 -19
  1129. package/dist/typings.js.map +0 -1
  1130. package/dist/utils.d.ts.map +0 -1
  1131. package/dist/utils.js +0 -11
  1132. package/dist/utils.js.map +0 -1
  1133. /package/dist/{constants.d.ts → types/constants.d.ts} +0 -0
  1134. /package/dist/{handlers → types/handlers}/channels/CHANNEL_DELETE.d.ts +0 -0
  1135. /package/dist/{handlers → types/handlers}/channels/CHANNEL_PINS_UPDATE.d.ts +0 -0
  1136. /package/dist/{handlers → types/handlers}/channels/CHANNEL_UPDATE.d.ts +0 -0
  1137. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_CREATE.d.ts +0 -0
  1138. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_DELETE.d.ts +0 -0
  1139. /package/dist/{handlers → types/handlers}/channels/STAGE_INSTANCE_UPDATE.d.ts +0 -0
  1140. /package/dist/{handlers → types/handlers}/channels/THREAD_CREATE.d.ts +0 -0
  1141. /package/dist/{handlers → types/handlers}/channels/THREAD_DELETE.d.ts +0 -0
  1142. /package/dist/{handlers → types/handlers}/channels/THREAD_LIST_SYNC.d.ts +0 -0
  1143. /package/dist/{handlers → types/handlers}/channels/THREAD_UPDATE.d.ts +0 -0
  1144. /package/dist/{handlers → types/handlers}/channels/index.d.ts +0 -0
  1145. /package/dist/{handlers → types/handlers}/emojis/GUILD_EMOJIS_UPDATE.d.ts +0 -0
  1146. /package/dist/{handlers → types/handlers}/emojis/index.d.ts +0 -0
  1147. /package/dist/{handlers → types/handlers}/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts +0 -0
  1148. /package/dist/{handlers → types/handlers}/guilds/GUILD_BAN_ADD.d.ts +0 -0
  1149. /package/dist/{handlers → types/handlers}/guilds/GUILD_BAN_REMOVE.d.ts +0 -0
  1150. /package/dist/{handlers → types/handlers}/guilds/GUILD_CREATE.d.ts +0 -0
  1151. /package/dist/{handlers → types/handlers}/guilds/GUILD_DELETE.d.ts +0 -0
  1152. /package/dist/{handlers → types/handlers}/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts +0 -0
  1153. /package/dist/{handlers → types/handlers}/guilds/GUILD_UPDATE.d.ts +0 -0
  1154. /package/dist/{handlers → types/handlers}/guilds/automod/index.d.ts +0 -0
  1155. /package/dist/{handlers → types/handlers}/guilds/index.d.ts +0 -0
  1156. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts +0 -0
  1157. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts +0 -0
  1158. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts +0 -0
  1159. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts +0 -0
  1160. /package/dist/{handlers → types/handlers}/guilds/scheduledEvents/index.d.ts +0 -0
  1161. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_CREATE.d.ts +0 -0
  1162. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_DELETE.d.ts +0 -0
  1163. /package/dist/{handlers → types/handlers}/integrations/INTEGRATION_UPDATE.d.ts +0 -0
  1164. /package/dist/{handlers → types/handlers}/integrations/index.d.ts +0 -0
  1165. /package/dist/{handlers → types/handlers}/interactions/index.d.ts +0 -0
  1166. /package/dist/{handlers → types/handlers}/invites/INVITE_DELETE.d.ts +0 -0
  1167. /package/dist/{handlers → types/handlers}/invites/index.d.ts +0 -0
  1168. /package/dist/{handlers → types/handlers}/members/GUILD_MEMBER_ADD.d.ts +0 -0
  1169. /package/dist/{handlers → types/handlers}/members/GUILD_MEMBER_REMOVE.d.ts +0 -0
  1170. /package/dist/{handlers → types/handlers}/members/GUILD_MEMBER_UPDATE.d.ts +0 -0
  1171. /package/dist/{handlers → types/handlers}/members/index.d.ts +0 -0
  1172. /package/dist/{handlers → types/handlers}/messages/MESSAGE_CREATE.d.ts +0 -0
  1173. /package/dist/{handlers → types/handlers}/messages/MESSAGE_DELETE.d.ts +0 -0
  1174. /package/dist/{handlers → types/handlers}/messages/MESSAGE_DELETE_BULK.d.ts +0 -0
  1175. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_ADD.d.ts +0 -0
  1176. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE.d.ts +0 -0
  1177. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts +0 -0
  1178. /package/dist/{handlers → types/handlers}/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts +0 -0
  1179. /package/dist/{handlers → types/handlers}/messages/MESSAGE_UPDATE.d.ts +0 -0
  1180. /package/dist/{handlers → types/handlers}/messages/index.d.ts +0 -0
  1181. /package/dist/{handlers → types/handlers}/misc/PRESENCE_UPDATE.d.ts +0 -0
  1182. /package/dist/{handlers → types/handlers}/misc/READY.d.ts +0 -0
  1183. /package/dist/{handlers → types/handlers}/misc/TYPING_START.d.ts +0 -0
  1184. /package/dist/{handlers → types/handlers}/misc/USER_UPDATE.d.ts +0 -0
  1185. /package/dist/{handlers → types/handlers}/misc/index.d.ts +0 -0
  1186. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_CREATE.d.ts +0 -0
  1187. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_DELETE.d.ts +0 -0
  1188. /package/dist/{handlers → types/handlers}/roles/GUILD_ROLE_UPDATE.d.ts +0 -0
  1189. /package/dist/{handlers → types/handlers}/roles/index.d.ts +0 -0
  1190. /package/dist/{handlers → types/handlers}/voice/VOICE_SERVER_UPDATE.d.ts +0 -0
  1191. /package/dist/{handlers → types/handlers}/voice/VOICE_STATE_UPDATE.d.ts +0 -0
  1192. /package/dist/{handlers → types/handlers}/voice/index.d.ts +0 -0
  1193. /package/dist/{handlers → types/handlers}/webhooks/index.d.ts +0 -0
  1194. /package/dist/{handlers.d.ts → types/handlers.d.ts} +0 -0
  1195. /package/dist/{index.d.ts → types/index.d.ts} +0 -0
  1196. /package/dist/{transformers → types/transformers}/reverse/createApplicationCommand.d.ts +0 -0
  1197. /package/dist/{transformers → types/transformers}/reverse/index.d.ts +0 -0
  1198. /package/dist/{transformers → types/transformers}/reverse/interactionResponse.d.ts +0 -0
  1199. /package/dist/{transformers → types/transformers}/toggles/ToggleBitfield.d.ts +0 -0
  1200. /package/dist/{transformers → types/transformers}/toggles/emoji.d.ts +0 -0
  1201. /package/dist/{transformers → types/transformers}/toggles/index.d.ts +0 -0
  1202. /package/dist/{transformers → types/transformers}/toggles/role.d.ts +0 -0
  1203. /package/dist/{transformers → types/transformers}/toggles/user.d.ts +0 -0
  1204. /package/dist/{transformers → types/transformers}/toggles/voice.d.ts +0 -0
  1205. /package/dist/{utils.d.ts → types/utils.d.ts} +0 -0
@@ -0,0 +1,672 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ Object.defineProperty(exports, "createBotHelpers", {
6
+ enumerable: true,
7
+ get: function() {
8
+ return createBotHelpers;
9
+ }
10
+ });
11
+ const _utils = require("@discordeno/utils");
12
+ function createBotHelpers(bot) {
13
+ return {
14
+ createAutomodRule: async (guildId, options, reason)=>{
15
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.createAutomodRule(guildId, options, reason)));
16
+ },
17
+ createChannel: async (guildId, options, reason)=>{
18
+ return bot.transformers.channel(bot, {
19
+ channel: (0, _utils.snakelize)(await bot.rest.createChannel(guildId, options, reason)),
20
+ guildId
21
+ });
22
+ },
23
+ createEmoji: async (guildId, options, reason)=>{
24
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.createEmoji(guildId, options, reason)));
25
+ },
26
+ createApplicationEmoji: async (options)=>{
27
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.createApplicationEmoji(options)));
28
+ },
29
+ createForumThread: async (channelId, options, reason)=>{
30
+ return bot.transformers.channel(bot, {
31
+ channel: (0, _utils.snakelize)(await bot.rest.createForumThread(channelId, options, reason))
32
+ });
33
+ },
34
+ createGlobalApplicationCommand: async (command, options)=>{
35
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGlobalApplicationCommand(command, options)));
36
+ },
37
+ createGuild: async (options)=>{
38
+ return bot.transformers.guild(bot, {
39
+ guild: (0, _utils.snakelize)(await bot.rest.createGuild(options)),
40
+ shardId: 0
41
+ });
42
+ },
43
+ createGuildApplicationCommand: async (command, guildId, options)=>{
44
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.createGuildApplicationCommand(command, guildId, options)));
45
+ },
46
+ createGuildFromTemplate: async (templateCode, options)=>{
47
+ return bot.transformers.guild(bot, {
48
+ guild: (0, _utils.snakelize)(await bot.rest.createGuildFromTemplate(templateCode, options)),
49
+ shardId: 0
50
+ });
51
+ },
52
+ createGuildSticker: async (guildId, options, reason)=>{
53
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.createGuildSticker(guildId, options, reason)));
54
+ },
55
+ createGuildTemplate: async (guildId, options)=>{
56
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.createGuildTemplate(guildId, options)));
57
+ },
58
+ createInvite: async (channelId, options, reason)=>{
59
+ return await bot.rest.createInvite(channelId, options, reason);
60
+ },
61
+ createRole: async (guildId, options, reason)=>{
62
+ return bot.transformers.role(bot, {
63
+ role: (0, _utils.snakelize)(await bot.rest.createRole(guildId, options, reason)),
64
+ guildId
65
+ });
66
+ },
67
+ createScheduledEvent: async (guildId, options, reason)=>{
68
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.createScheduledEvent(guildId, options, reason)));
69
+ },
70
+ createStageInstance: async (options, reason)=>{
71
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.createStageInstance(options, reason)));
72
+ },
73
+ createWebhook: async (channelId, options, reason)=>{
74
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.createWebhook(channelId, options, reason)));
75
+ },
76
+ editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
77
+ return bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
78
+ },
79
+ editAutomodRule: async (guildId, ruleId, options, reason)=>{
80
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
81
+ },
82
+ editBotProfile: async (options)=>{
83
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.editBotProfile(options)));
84
+ },
85
+ editChannel: async (channelId, options, reason)=>{
86
+ return bot.transformers.channel(bot, {
87
+ channel: (0, _utils.snakelize)(await bot.rest.editChannel(channelId, options, reason))
88
+ });
89
+ },
90
+ editEmoji: async (guildId, id, options, reason)=>{
91
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.editEmoji(guildId, id, options, reason)));
92
+ },
93
+ editApplicationEmoji: async (id, options)=>{
94
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.editApplicationEmoji(id, options)));
95
+ },
96
+ editFollowupMessage: async (token, messageId, options)=>{
97
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editFollowupMessage(token, messageId, options)));
98
+ },
99
+ editGlobalApplicationCommand: async (commandId, options)=>{
100
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGlobalApplicationCommand(commandId, options)));
101
+ },
102
+ editGuild: async (guildId, options, reason)=>{
103
+ return bot.transformers.guild(bot, {
104
+ guild: (0, _utils.snakelize)(await bot.rest.editGuild(guildId, options, reason)),
105
+ shardId: 0
106
+ });
107
+ },
108
+ editGuildApplicationCommand: async (commandId, guildId, options)=>{
109
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)));
110
+ },
111
+ editGuildSticker: async (guildId, stickerId, options, reason)=>{
112
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.editGuildSticker(guildId, stickerId, options, reason)));
113
+ },
114
+ editGuildTemplate: async (guildId, templateCode, options)=>{
115
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.editGuildTemplate(guildId, templateCode, options)));
116
+ },
117
+ editMessage: async (channelId, messageId, options)=>{
118
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editMessage(channelId, messageId, options)));
119
+ },
120
+ editOriginalInteractionResponse: async (token, options)=>{
121
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editOriginalInteractionResponse(token, options)));
122
+ },
123
+ editOriginalWebhookMessage: async (webhookId, token, options)=>{
124
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editOriginalWebhookMessage(webhookId, token, options)));
125
+ },
126
+ editRole: async (guildId, roleId, options, reason)=>{
127
+ return bot.transformers.role(bot, {
128
+ role: (0, _utils.snakelize)(await bot.rest.editRole(guildId, roleId, options, reason)),
129
+ guildId
130
+ });
131
+ },
132
+ editRolePositions: async (guildId, options, reason)=>{
133
+ return (0, _utils.snakelize)(await bot.rest.editRolePositions(guildId, options, reason)).map((role)=>bot.transformers.role(bot, {
134
+ role,
135
+ guildId
136
+ }));
137
+ },
138
+ editScheduledEvent: async (guildId, eventId, options, reason)=>{
139
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)));
140
+ },
141
+ editStageInstance: async (channelId, topic, reason)=>{
142
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.editStageInstance(channelId, topic, reason)));
143
+ },
144
+ editWebhook: async (webhookId, options, reason)=>{
145
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhook(webhookId, options, reason)));
146
+ },
147
+ editWebhookMessage: async (webhookId, token, messageId, options)=>{
148
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)));
149
+ },
150
+ editWebhookWithToken: async (webhookId, token, options)=>{
151
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.editWebhookWithToken(webhookId, token, options)));
152
+ },
153
+ editWelcomeScreen: async (guildId, options, reason)=>{
154
+ return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.editWelcomeScreen(guildId, options, reason)));
155
+ },
156
+ editWidgetSettings: async (guildId, options, reason)=>{
157
+ return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.editWidgetSettings(guildId, options, reason)));
158
+ },
159
+ executeWebhook: async (webhookId, token, options)=>{
160
+ const result = await bot.rest.executeWebhook(webhookId, token, options);
161
+ if (!result) return;
162
+ return bot.transformers.message(bot, (0, _utils.snakelize)(result));
163
+ },
164
+ followAnnouncement: async (sourceChannelId, targetChannelId)=>{
165
+ return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId);
166
+ },
167
+ getActiveThreads: async (guildId)=>{
168
+ const result = await bot.rest.getActiveThreads(guildId);
169
+ return {
170
+ threads: result.threads.map((thread)=>bot.transformers.channel(bot, {
171
+ guildId,
172
+ channel: (0, _utils.snakelize)(thread)
173
+ })),
174
+ members: result.members.map((member)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(member)))
175
+ };
176
+ },
177
+ getApplicationInfo: async ()=>{
178
+ return bot.transformers.application(bot, {
179
+ application: (0, _utils.snakelize)(await bot.rest.getApplicationInfo()),
180
+ shardId: 0
181
+ });
182
+ },
183
+ editApplicationInfo: async (body)=>{
184
+ return bot.transformers.application(bot, {
185
+ application: (0, _utils.snakelize)(await bot.rest.editApplicationInfo(body)),
186
+ shardId: 0
187
+ });
188
+ },
189
+ getCurrentAuthenticationInfo: async (bearerToken)=>{
190
+ return await bot.rest.getCurrentAuthenticationInfo(bearerToken);
191
+ },
192
+ exchangeToken: async (clientId, clientSecret, options)=>{
193
+ return await bot.rest.exchangeToken(clientId, clientSecret, options);
194
+ },
195
+ revokeToken: async (clientId, clientSecret, options)=>{
196
+ return await bot.rest.revokeToken(clientId, clientSecret, options);
197
+ },
198
+ getApplicationCommandPermission: async (guildId, commandId, options)=>{
199
+ const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
200
+ const snakedRes = (0, _utils.snakelize)(res);
201
+ return bot.transformers.applicationCommandPermission(bot, snakedRes);
202
+ },
203
+ getApplicationCommandPermissions: async (guildId, options)=>{
204
+ return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.applicationCommandPermission(bot, (0, _utils.snakelize)(res)));
205
+ },
206
+ getAuditLog: async (guildId, options)=>{
207
+ return await bot.rest.getAuditLog(guildId, options);
208
+ },
209
+ getAutomodRule: async (guildId, ruleId)=>{
210
+ return bot.transformers.automodRule(bot, (0, _utils.snakelize)(await bot.rest.getAutomodRule(guildId, ruleId)));
211
+ },
212
+ getAutomodRules: async (guildId)=>{
213
+ return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.automodRule(bot, (0, _utils.snakelize)(res)));
214
+ },
215
+ getAvailableVoiceRegions: async ()=>{
216
+ return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
217
+ },
218
+ getBan: async (guildId, userId)=>{
219
+ return await bot.rest.getBan(guildId, userId);
220
+ },
221
+ getBans: async (guildId, options)=>{
222
+ return await bot.rest.getBans(guildId, options);
223
+ },
224
+ getChannel: async (channelId)=>{
225
+ return bot.transformers.channel(bot, {
226
+ channel: (0, _utils.snakelize)(await bot.rest.getChannel(channelId))
227
+ });
228
+ },
229
+ getChannelInvites: async (channelId)=>{
230
+ return await bot.rest.getChannelInvites(channelId);
231
+ // return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
232
+ },
233
+ getChannels: async (guildId)=>{
234
+ return (await bot.rest.getChannels(guildId)).map((res)=>bot.transformers.channel(bot, {
235
+ channel: (0, _utils.snakelize)(res),
236
+ guildId
237
+ }));
238
+ },
239
+ getChannelWebhooks: async (channelId)=>{
240
+ return (await bot.rest.getChannelWebhooks(channelId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
241
+ },
242
+ getDmChannel: async (userId)=>{
243
+ return bot.transformers.channel(bot, {
244
+ channel: (0, _utils.snakelize)(await bot.rest.getDmChannel(userId))
245
+ });
246
+ },
247
+ getGroupDmChannel: async (options)=>{
248
+ return bot.transformers.channel(bot, {
249
+ channel: (0, _utils.snakelize)(await bot.rest.getGroupDmChannel(options))
250
+ });
251
+ },
252
+ getEmoji: async (guildId, emojiId)=>{
253
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.getEmoji(guildId, emojiId)));
254
+ },
255
+ getApplicationEmoji: async (emojiId)=>{
256
+ return bot.transformers.emoji(bot, (0, _utils.snakelize)(await bot.rest.getApplicationEmoji(emojiId)));
257
+ },
258
+ getEmojis: async (guildId)=>{
259
+ return (await bot.rest.getEmojis(guildId)).map((res)=>bot.transformers.emoji(bot, (0, _utils.snakelize)(res)));
260
+ },
261
+ getApplicationEmojis: async ()=>{
262
+ const res = await bot.rest.getApplicationEmojis();
263
+ return {
264
+ items: res.items.map((item)=>bot.transformers.emoji(bot, (0, _utils.snakelize)(item)))
265
+ };
266
+ },
267
+ getFollowupMessage: async (token, messageId)=>{
268
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getFollowupMessage(token, messageId)));
269
+ },
270
+ getGatewayBot: async ()=>{
271
+ return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getGatewayBot()));
272
+ },
273
+ getGlobalApplicationCommand: async (commandId)=>{
274
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGlobalApplicationCommand(commandId)));
275
+ },
276
+ getGlobalApplicationCommands: async ()=>{
277
+ return (await bot.rest.getGlobalApplicationCommands()).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
278
+ },
279
+ getGuild: async (guildId, options)=>{
280
+ return bot.transformers.guild(bot, {
281
+ guild: (0, _utils.snakelize)(await bot.rest.getGuild(guildId, options)),
282
+ shardId: 0
283
+ });
284
+ },
285
+ getGuilds: async (bearerToken, options)=>{
286
+ // @ts-expect-error getGuilds returns partial guilds
287
+ return (await bot.rest.getGuilds(bearerToken, options)).map((res)=>bot.transformers.guild(bot, {
288
+ guild: (0, _utils.snakelize)(res),
289
+ shardId: 0
290
+ }));
291
+ },
292
+ getGuildApplicationCommand: async (commandId, guildId)=>{
293
+ return bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
294
+ },
295
+ getGuildApplicationCommands: async (guildId)=>{
296
+ return (await bot.rest.getGuildApplicationCommands(guildId)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
297
+ },
298
+ getGuildPreview: async (guildId)=>{
299
+ return await bot.rest.getGuildPreview(guildId);
300
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getGuildPreview(guildId)))
301
+ },
302
+ getGuildSticker: async (guildId, stickerId)=>{
303
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getGuildSticker(guildId, stickerId)));
304
+ },
305
+ getGuildStickers: async (guildId)=>{
306
+ return (await bot.rest.getGuildStickers(guildId)).map((res)=>bot.transformers.sticker(bot, (0, _utils.snakelize)(res)));
307
+ },
308
+ getGuildTemplate: async (templateCode)=>{
309
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.getGuildTemplate(templateCode)));
310
+ },
311
+ getGuildTemplates: async (guildId)=>{
312
+ return (await bot.rest.getGuildTemplates(guildId)).map((res)=>bot.transformers.template(bot, (0, _utils.snakelize)(res)));
313
+ },
314
+ getGuildWebhooks: async (guildId)=>{
315
+ return (await bot.rest.getGuildWebhooks(guildId)).map((res)=>bot.transformers.webhook(bot, (0, _utils.snakelize)(res)));
316
+ },
317
+ getIntegrations: async (guildId)=>{
318
+ return (await bot.rest.getIntegrations(guildId)).map((res)=>bot.transformers.integration(bot, (0, _utils.snakelize)({
319
+ ...res,
320
+ guildId: guildId.toString()
321
+ })));
322
+ },
323
+ getInvite: async (inviteCode, options)=>{
324
+ return bot.transformers.invite(bot, {
325
+ invite: (0, _utils.snakelize)(await bot.rest.getInvite(inviteCode, options)),
326
+ shardId: 0
327
+ });
328
+ },
329
+ getInvites: async (guildId)=>{
330
+ return (await bot.rest.getInvites(guildId)).map((res)=>bot.transformers.invite(bot, {
331
+ invite: (0, _utils.snakelize)(res),
332
+ shardId: 0
333
+ }));
334
+ },
335
+ getMessage: async (channelId, messageId)=>{
336
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getMessage(channelId, messageId)));
337
+ },
338
+ getMessages: async (channelId, options)=>{
339
+ return (await bot.rest.getMessages(channelId, options)).map((res)=>bot.transformers.message(bot, (0, _utils.snakelize)(res)));
340
+ },
341
+ getStickerPacks: async ()=>{
342
+ return (await bot.rest.getStickerPacks()).map((res)=>bot.transformers.stickerPack(bot, (0, _utils.snakelize)(res)));
343
+ },
344
+ getOriginalInteractionResponse: async (token)=>{
345
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getOriginalInteractionResponse(token)));
346
+ },
347
+ getPinnedMessages: async (channelId)=>{
348
+ return (await bot.rest.getPinnedMessages(channelId)).map((res)=>bot.transformers.message(bot, (0, _utils.snakelize)(res)));
349
+ },
350
+ getPrivateArchivedThreads: async (channelId, options)=>{
351
+ return await bot.rest.getPrivateArchivedThreads(channelId, options);
352
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getPrivateArchivedThreads(channelId, options)))
353
+ },
354
+ getPrivateJoinedArchivedThreads: async (channelId, options)=>{
355
+ return await bot.rest.getPrivateJoinedArchivedThreads(channelId, options);
356
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getPrivateJoinedArchivedThreads(channelId, options)))
357
+ },
358
+ getPruneCount: async (guildId, options)=>{
359
+ return await bot.rest.getPruneCount(guildId, options);
360
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getPruneCount(guildId, options)))
361
+ },
362
+ getPublicArchivedThreads: async (channelId, options)=>{
363
+ return await bot.rest.getPublicArchivedThreads(channelId, options);
364
+ // return bot.transformers.xxx(bot, snakelize(await bot.rest.getPublicArchivedThreads(channelId, options)))
365
+ },
366
+ getRoles: async (guildId)=>{
367
+ return (0, _utils.snakelize)(await bot.rest.getRoles(guildId)).map((role)=>bot.transformers.role(bot, {
368
+ role,
369
+ guildId
370
+ }));
371
+ },
372
+ getScheduledEvent: async (guildId, eventId, options)=>{
373
+ return bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(await bot.rest.getScheduledEvent(guildId, eventId, options)));
374
+ },
375
+ getScheduledEvents: async (guildId, options)=>{
376
+ return (await bot.rest.getScheduledEvents(guildId, options)).map((res)=>bot.transformers.scheduledEvent(bot, (0, _utils.snakelize)(res)));
377
+ },
378
+ getScheduledEventUsers: async (guildId, eventId, options)=>{
379
+ return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u)=>{
380
+ return {
381
+ user: bot.transformers.user(bot, (0, _utils.snakelize)(u.user)),
382
+ member: u.member && bot.transformers.member(bot, (0, _utils.snakelize)(u.member), guildId, bot.transformers.snowflake(u.user.id))
383
+ };
384
+ });
385
+ },
386
+ getSessionInfo: async ()=>{
387
+ return bot.transformers.gatewayBot(bot, (0, _utils.snakelize)(await bot.rest.getSessionInfo()));
388
+ },
389
+ getStageInstance: async (channelId)=>{
390
+ return bot.transformers.stageInstance(bot, (0, _utils.snakelize)(await bot.rest.getStageInstance(channelId)));
391
+ },
392
+ getSticker: async (stickerId)=>{
393
+ return bot.transformers.sticker(bot, (0, _utils.snakelize)(await bot.rest.getSticker(stickerId)));
394
+ },
395
+ getThreadMember: async (channelId, userId)=>{
396
+ return bot.transformers.threadMember(bot, (0, _utils.snakelize)(await bot.rest.getThreadMember(channelId, userId)));
397
+ },
398
+ getThreadMembers: async (channelId)=>{
399
+ return (await bot.rest.getThreadMembers(channelId)).map((res)=>bot.transformers.threadMember(bot, (0, _utils.snakelize)(res)));
400
+ },
401
+ getReactions: async (channelId, messageId, reaction, options)=>{
402
+ return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res)=>bot.transformers.user(bot, (0, _utils.snakelize)(res)));
403
+ },
404
+ getUser: async (id)=>{
405
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getUser(id)));
406
+ },
407
+ getCurrentUser: async (bearerToken)=>{
408
+ return bot.transformers.user(bot, (0, _utils.snakelize)(await bot.rest.getCurrentUser(bearerToken)));
409
+ },
410
+ getUserConnections: async (bearerToken)=>{
411
+ return await bot.rest.getUserConnections(bearerToken);
412
+ },
413
+ getUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
414
+ return await bot.rest.getUserApplicationRoleConnection(bearerToken, applicationId);
415
+ },
416
+ getVanityUrl: async (guildId)=>{
417
+ return await bot.rest.getVanityUrl(guildId);
418
+ },
419
+ getVoiceRegions: async (guildId)=>{
420
+ return (await bot.rest.getVoiceRegions(guildId)).map((res)=>bot.transformers.voiceRegion(bot, (0, _utils.snakelize)(res)));
421
+ },
422
+ getWebhook: async (webhookId)=>{
423
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhook(webhookId)));
424
+ },
425
+ getWebhookMessage: async (webhookId, token, messageId, options)=>{
426
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)));
427
+ },
428
+ getWebhookWithToken: async (webhookId, token)=>{
429
+ return bot.transformers.webhook(bot, (0, _utils.snakelize)(await bot.rest.getWebhookWithToken(webhookId, token)));
430
+ },
431
+ getWelcomeScreen: async (guildId)=>{
432
+ return bot.transformers.welcomeScreen(bot, (0, _utils.snakelize)(await bot.rest.getWelcomeScreen(guildId)));
433
+ },
434
+ getWidget: async (guildId)=>{
435
+ return bot.transformers.widget(bot, (0, _utils.snakelize)(await bot.rest.getWidget(guildId)));
436
+ },
437
+ getWidgetSettings: async (guildId)=>{
438
+ return bot.transformers.widgetSettings(bot, (0, _utils.snakelize)(await bot.rest.getWidgetSettings(guildId)));
439
+ },
440
+ publishMessage: async (channelId, messageId)=>{
441
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.publishMessage(channelId, messageId)));
442
+ },
443
+ sendMessage: async (channelId, options)=>{
444
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.sendMessage(channelId, options)));
445
+ },
446
+ sendFollowupMessage: async (token, options)=>{
447
+ return bot.transformers.message(bot, (0, _utils.snakelize)(await bot.rest.sendFollowupMessage(token, options)));
448
+ },
449
+ startThreadWithMessage: async (channelId, messageId, options, reason)=>{
450
+ return bot.transformers.channel(bot, {
451
+ channel: (0, _utils.snakelize)(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason))
452
+ });
453
+ },
454
+ startThreadWithoutMessage: async (channelId, options, reason)=>{
455
+ return bot.transformers.channel(bot, {
456
+ channel: (0, _utils.snakelize)(await bot.rest.startThreadWithoutMessage(channelId, options, reason))
457
+ });
458
+ },
459
+ syncGuildTemplate: async (guildId)=>{
460
+ return bot.transformers.template(bot, (0, _utils.snakelize)(await bot.rest.syncGuildTemplate(guildId)));
461
+ },
462
+ upsertGlobalApplicationCommands: async (commands, options)=>{
463
+ return (await bot.rest.upsertGlobalApplicationCommands(commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
464
+ },
465
+ upsertGuildApplicationCommands: async (guildId, commands, options)=>{
466
+ return (await bot.rest.upsertGuildApplicationCommands(guildId, commands, options)).map((res)=>bot.transformers.applicationCommand(bot, (0, _utils.snakelize)(res)));
467
+ },
468
+ editBotMember: async (guildId, options, reason)=>{
469
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id);
470
+ },
471
+ editMember: async (guildId, userId, options, reason)=>{
472
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId);
473
+ },
474
+ getMember: async (guildId, userId)=>{
475
+ return bot.transformers.member(bot, (0, _utils.snakelize)(await bot.rest.getMember(guildId, userId)), guildId, userId);
476
+ },
477
+ getCurrentMember: async (guildId, bearerToken)=>{
478
+ const res = await bot.rest.getCurrentMember(guildId, bearerToken);
479
+ return bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id));
480
+ },
481
+ getMembers: async (guildId, options)=>{
482
+ return (await bot.rest.getMembers(guildId, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
483
+ },
484
+ pruneMembers: async (guildId, options, reason)=>{
485
+ return await bot.rest.pruneMembers(guildId, options, reason);
486
+ },
487
+ searchMembers: async (guildId, query, options)=>{
488
+ return (await bot.rest.searchMembers(guildId, query, options)).map((res)=>bot.transformers.member(bot, (0, _utils.snakelize)(res), guildId, bot.transformers.snowflake(res.user.id)));
489
+ },
490
+ bulkBanMembers: async (guildId, options, reason)=>{
491
+ const res = await bot.rest.bulkBanMembers(guildId, options, reason);
492
+ return {
493
+ bannedUsers: res.bannedUsers.map((x)=>bot.transformers.snowflake(x)),
494
+ failedUsers: res.failedUsers.map((x)=>bot.transformers.snowflake(x))
495
+ };
496
+ },
497
+ // All useless void return functions here
498
+ addReaction: async (channelId, messageId, reaction)=>{
499
+ return await bot.rest.addReaction(channelId, messageId, reaction);
500
+ },
501
+ addReactions: async (channelId, messageId, reactions, ordered)=>{
502
+ return await bot.rest.addReactions(channelId, messageId, reactions, ordered);
503
+ },
504
+ addRole: async (guildId, userId, roleId, reason)=>{
505
+ return await bot.rest.addRole(guildId, userId, roleId, reason);
506
+ },
507
+ addThreadMember: async (channelId, userId)=>{
508
+ return await bot.rest.addThreadMember(channelId, userId);
509
+ },
510
+ addDmRecipient: async (channelId, userId, options)=>{
511
+ return await bot.rest.addDmRecipient(channelId, userId, options);
512
+ },
513
+ addGuildMember: async (guildId, userId, options)=>{
514
+ return await bot.rest.addGuildMember(guildId, userId, options);
515
+ },
516
+ deleteAutomodRule: async (guildId, ruleId, reason)=>{
517
+ return await bot.rest.deleteAutomodRule(guildId, ruleId, reason);
518
+ },
519
+ deleteChannel: async (channelId, reason)=>{
520
+ return await bot.rest.deleteChannel(channelId, reason);
521
+ },
522
+ deleteChannelPermissionOverride: async (channelId, overwriteId, reason)=>{
523
+ return await bot.rest.deleteChannelPermissionOverride(channelId, overwriteId, reason);
524
+ },
525
+ deleteEmoji: async (guildId, id, reason)=>{
526
+ return await bot.rest.deleteEmoji(guildId, id, reason);
527
+ },
528
+ deleteApplicationEmoji: async (id)=>{
529
+ return await bot.rest.deleteApplicationEmoji(id);
530
+ },
531
+ deleteFollowupMessage: async (token, messageId)=>{
532
+ return await bot.rest.deleteFollowupMessage(token, messageId);
533
+ },
534
+ deleteGlobalApplicationCommand: async (commandId)=>{
535
+ return await bot.rest.deleteGlobalApplicationCommand(commandId);
536
+ },
537
+ deleteGuild: async (guildId)=>{
538
+ return await bot.rest.deleteGuild(guildId);
539
+ },
540
+ deleteGuildApplicationCommand: async (commandId, guildId)=>{
541
+ return await bot.rest.deleteGuildApplicationCommand(commandId, guildId);
542
+ },
543
+ deleteGuildSticker: async (guildId, stickerId, reason)=>{
544
+ return await bot.rest.deleteGuildSticker(guildId, stickerId, reason);
545
+ },
546
+ deleteGuildTemplate: async (guildId, templateCode)=>{
547
+ return await bot.rest.deleteGuildTemplate(guildId, templateCode);
548
+ },
549
+ deleteIntegration: async (guildId, integrationId, reason)=>{
550
+ return await bot.rest.deleteIntegration(guildId, integrationId, reason);
551
+ },
552
+ deleteInvite: async (inviteCode, reason)=>{
553
+ return await bot.rest.deleteInvite(inviteCode, reason);
554
+ },
555
+ deleteMessage: async (channelId, messageId, reason)=>{
556
+ return await bot.rest.deleteMessage(channelId, messageId, reason);
557
+ },
558
+ deleteMessages: async (channelId, messageIds, reason)=>{
559
+ return await bot.rest.deleteMessages(channelId, messageIds, reason);
560
+ },
561
+ deleteOriginalInteractionResponse: async (token)=>{
562
+ return await bot.rest.deleteOriginalInteractionResponse(token);
563
+ },
564
+ deleteOwnReaction: async (channelId, messageId, reaction)=>{
565
+ return await bot.rest.deleteOwnReaction(channelId, messageId, reaction);
566
+ },
567
+ deleteReactionsAll: async (channelId, messageId)=>{
568
+ return await bot.rest.deleteReactionsAll(channelId, messageId);
569
+ },
570
+ deleteReactionsEmoji: async (channelId, messageId, reaction)=>{
571
+ return await bot.rest.deleteReactionsEmoji(channelId, messageId, reaction);
572
+ },
573
+ deleteRole: async (guildId, roleId, reason)=>{
574
+ return await bot.rest.deleteRole(guildId, roleId, reason);
575
+ },
576
+ deleteScheduledEvent: async (guildId, eventId)=>{
577
+ return await bot.rest.deleteScheduledEvent(guildId, eventId);
578
+ },
579
+ deleteStageInstance: async (channelId, reason)=>{
580
+ return await bot.rest.deleteStageInstance(channelId, reason);
581
+ },
582
+ deleteUserReaction: async (channelId, messageId, userId, reaction)=>{
583
+ return await bot.rest.deleteUserReaction(channelId, messageId, userId, reaction);
584
+ },
585
+ deleteWebhook: async (webhookId, reason)=>{
586
+ return await bot.rest.deleteWebhook(webhookId, reason);
587
+ },
588
+ deleteWebhookMessage: async (webhookId, token, messageId, options)=>{
589
+ return await bot.rest.deleteWebhookMessage(webhookId, token, messageId, options);
590
+ },
591
+ deleteWebhookWithToken: async (webhookId, token)=>{
592
+ return await bot.rest.deleteWebhookWithToken(webhookId, token);
593
+ },
594
+ editChannelPermissionOverrides: async (channelId, options, reason)=>{
595
+ return await bot.rest.editChannelPermissionOverrides(channelId, options, reason);
596
+ },
597
+ editChannelPositions: async (guildId, channelPositions)=>{
598
+ return await bot.rest.editChannelPositions(guildId, channelPositions);
599
+ },
600
+ editGuildMfaLevel: async (guildId, mfaLevel, reason)=>{
601
+ return await bot.rest.editGuildMfaLevel(guildId, mfaLevel, reason);
602
+ },
603
+ editOwnVoiceState: async (guildId, options)=>{
604
+ return await bot.rest.editOwnVoiceState(guildId, options);
605
+ },
606
+ editUserVoiceState: async (guildId, options)=>{
607
+ return await bot.rest.editUserVoiceState(guildId, options);
608
+ },
609
+ editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
610
+ return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
611
+ },
612
+ joinThread: async (channelId)=>{
613
+ return await bot.rest.joinThread(channelId);
614
+ },
615
+ leaveGuild: async (guildId)=>{
616
+ return await bot.rest.leaveGuild(guildId);
617
+ },
618
+ leaveThread: async (channelId)=>{
619
+ return await bot.rest.leaveThread(channelId);
620
+ },
621
+ removeRole: async (guildId, userId, roleId, reason)=>{
622
+ return await bot.rest.removeRole(guildId, userId, roleId, reason);
623
+ },
624
+ removeThreadMember: async (channelId, userId)=>{
625
+ return await bot.rest.removeThreadMember(channelId, userId);
626
+ },
627
+ removeDmRecipient: async (channelId, userId)=>{
628
+ return await bot.rest.removeDmRecipient(channelId, userId);
629
+ },
630
+ sendInteractionResponse: async (interactionId, token, options)=>{
631
+ return await bot.rest.sendInteractionResponse(interactionId, token, options);
632
+ },
633
+ triggerTypingIndicator: async (channelId)=>{
634
+ return await bot.rest.triggerTypingIndicator(channelId);
635
+ },
636
+ banMember: async (guildId, userId, options, reason)=>{
637
+ return await bot.rest.banMember(guildId, userId, options, reason);
638
+ },
639
+ kickMember: async (guildId, userId, reason)=>{
640
+ return await bot.rest.kickMember(guildId, userId, reason);
641
+ },
642
+ pinMessage: async (channelId, messageId, reason)=>{
643
+ return await bot.rest.pinMessage(channelId, messageId, reason);
644
+ },
645
+ unbanMember: async (guildId, userId, reason)=>{
646
+ return await bot.rest.unbanMember(guildId, userId, reason);
647
+ },
648
+ unpinMessage: async (channelId, messageId, reason)=>{
649
+ return await bot.rest.unpinMessage(channelId, messageId, reason);
650
+ },
651
+ getGuildOnboarding: async (guildId)=>{
652
+ return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.getGuildOnboarding(guildId)));
653
+ },
654
+ editGuildOnboarding: async (guildId, options, reason)=>{
655
+ return bot.transformers.guildOnboarding(bot, (0, _utils.snakelize)(await bot.rest.editGuildOnboarding(guildId, options, reason)));
656
+ },
657
+ listEntitlements: async (applicationId, options)=>{
658
+ return (await bot.rest.listEntitlements(applicationId, options)).map((entitlement)=>bot.transformers.entitlement(bot, (0, _utils.snakelize)(entitlement)));
659
+ },
660
+ createTestEntitlement: async (applicationId, body)=>{
661
+ return bot.transformers.entitlement(bot, (0, _utils.snakelize)(await bot.rest.createTestEntitlement(applicationId, body)));
662
+ },
663
+ deleteTestEntitlement: async (applicationId, entitlementId)=>{
664
+ await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
665
+ },
666
+ listSkus: async (applicationId)=>{
667
+ return (await bot.rest.listSkus(applicationId)).map((sku)=>bot.transformers.sku(bot, (0, _utils.snakelize)(sku)));
668
+ }
669
+ };
670
+ }
671
+
672
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ3JlYXRlV2ViaG9vayB9IGZyb20gJ0BkaXNjb3JkZW5vL3Jlc3QnXG5pbXBvcnQgdHlwZSB7XG4gIEFkZERtUmVjaXBpZW50T3B0aW9ucyxcbiAgQWRkR3VpbGRNZW1iZXJPcHRpb25zLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemVkRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2UsXG4gIENhbWVsaXplZERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyxcbiAgQ2FtZWxpemVkRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24sXG4gIENhbWVsaXplZERpc2NvcmRBcmNoaXZlZFRocmVhZHMsXG4gIENhbWVsaXplZERpc2NvcmRBdWRpdExvZyxcbiAgQ2FtZWxpemVkRGlzY29yZEJhbixcbiAgQ2FtZWxpemVkRGlzY29yZENvbm5lY3Rpb24sXG4gIENhbWVsaXplZERpc2NvcmRDdXJyZW50QXV0aG9yaXphdGlvbixcbiAgQ2FtZWxpemVkRGlzY29yZEZvbGxvd2VkQ2hhbm5lbCxcbiAgQ2FtZWxpemVkRGlzY29yZEdldEdhdGV3YXlCb3QsXG4gIENhbWVsaXplZERpc2NvcmRHdWlsZFByZXZpZXcsXG4gIENhbWVsaXplZERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzLFxuICBDYW1lbGl6ZWREaXNjb3JkSW52aXRlLFxuICBDYW1lbGl6ZWREaXNjb3JkSW52aXRlTWV0YWRhdGEsXG4gIENhbWVsaXplZERpc2NvcmRNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4sXG4gIENhbWVsaXplZERpc2NvcmRQcnVuZWRDb3VudCxcbiAgQ2FtZWxpemVkRGlzY29yZFRva2VuRXhjaGFuZ2UsXG4gIENhbWVsaXplZERpc2NvcmRUb2tlblJldm9jYXRpb24sXG4gIENhbWVsaXplZERpc2NvcmRWYW5pdHlVcmwsXG4gIENhbWVsaXplZERpc2NvcmRWb2ljZVJlZ2lvbixcbiAgQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kLFxuICBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppLFxuICBDcmVhdGVBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBDcmVhdGVDaGFubmVsSW52aXRlLFxuICBDcmVhdGVFbnRpdGxlbWVudCxcbiAgQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gIENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUsXG4gIENyZWF0ZUd1aWxkUm9sZSxcbiAgQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgQ3JlYXRlTWVzc2FnZU9wdGlvbnMsXG4gIENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICBDcmVhdGVTdGFnZUluc3RhbmNlLFxuICBDcmVhdGVUZW1wbGF0ZSxcbiAgRGVsZXRlV2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBEaXNjb3JkRW50aXRsZW1lbnQsXG4gIERpc2NvcmRNZXNzYWdlLFxuICBFZGl0QXBwbGljYXRpb24sXG4gIEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zLFxuICBFZGl0Qm90TWVtYmVyT3B0aW9ucyxcbiAgRWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzT3B0aW9ucyxcbiAgRWRpdEd1aWxkT25ib2FyZGluZyxcbiAgRWRpdEd1aWxkUm9sZSxcbiAgRWRpdEd1aWxkU3RpY2tlck9wdGlvbnMsXG4gIEVkaXRNZXNzYWdlLFxuICBFZGl0T3duVm9pY2VTdGF0ZSxcbiAgRWRpdFNjaGVkdWxlZEV2ZW50LFxuICBFZGl0VXNlclZvaWNlU3RhdGUsXG4gIEV4ZWN1dGVXZWJob29rLFxuICBHZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uT3B0aW9ucyxcbiAgR2V0QmFucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0VXNlckd1aWxkcyxcbiAgR2V0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgTGlzdEFyY2hpdmVkVGhyZWFkcyxcbiAgTGlzdEd1aWxkTWVtYmVycyxcbiAgTWZhTGV2ZWxzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRUZW1wbGF0ZSxcbiAgTW9kaWZ5Um9sZVBvc2l0aW9ucyxcbiAgTW9kaWZ5V2ViaG9vayxcbiAgU2VhcmNoTWVtYmVycyxcbiAgU3RhcnRUaHJlYWRXaXRoTWVzc2FnZSxcbiAgU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgVXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IHNuYWtlbGl6ZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuL2JvdC5qcydcbmltcG9ydCB0eXBlIHtcbiAgQXBwbGljYXRpb24sXG4gIEFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQXV0b01vZGVyYXRpb25SdWxlLFxuICBDaGFubmVsLFxuICBFbW9qaSxcbiAgRW50aXRsZW1lbnQsXG4gIEd1aWxkLFxuICBHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkV2lkZ2V0LFxuICBHdWlsZFdpZGdldFNldHRpbmdzLFxuICBJbnRlZ3JhdGlvbixcbiAgSW52aXRlLFxuICBNZW1iZXIsXG4gIE1lc3NhZ2UsXG4gIFJvbGUsXG4gIFNjaGVkdWxlZEV2ZW50LFxuICBTa3UsXG4gIFN0YWdlSW5zdGFuY2UsXG4gIFN0aWNrZXIsXG4gIFN0aWNrZXJQYWNrLFxuICBUZW1wbGF0ZSxcbiAgVGhyZWFkTWVtYmVyLFxuICBVc2VyLFxuICBXZWJob29rLFxuICBXZWxjb21lU2NyZWVuLFxufSBmcm9tICcuL3RyYW5zZm9ybWVycy9pbmRleC5qcydcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJvdEhlbHBlcnMoYm90OiBCb3QpOiBCb3RIZWxwZXJzIHtcbiAgcmV0dXJuIHtcbiAgICBjcmVhdGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVDaGFubmVsOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQ2hhbm5lbChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUVtb2ppKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlQXBwbGljYXRpb25FbW9qaTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUFwcGxpY2F0aW9uRW1vamkob3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlRm9ydW1UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUZvcnVtVGhyZWFkKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGQ6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZChvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkRnJvbVRlbXBsYXRlOiBhc3luYyAodGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRTdGlja2VyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUludml0ZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuY3JlYXRlSW52aXRlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKVxuICAgIH0sXG4gICAgY3JlYXRlUm9sZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVJvbGUoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTY2hlZHVsZWRFdmVudChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0YWdlSW5zdGFuY2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlU3RhZ2VJbnN0YW5jZShvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZVdlYmhvb2s6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVXZWJob29rKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKFxuICAgICAgICBib3QsXG4gICAgICAgIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgY29tbWFuZElkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZWRpdEF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEJvdFByb2ZpbGU6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRCb3RQcm9maWxlKG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikpIH0pXG4gICAgfSxcbiAgICBlZGl0RW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0RW1vamkoZ3VpbGRJZCwgaWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uRW1vamkoaWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSlcbiAgICB9LFxuICAgIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlKVxuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZWRpdFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSkgYXMgRGlzY29yZE1lc3NhZ2UpXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXaWRnZXRTZXR0aW5ncyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucylcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShyZXN1bHQpIGFzIERpc2NvcmRNZXNzYWdlKVxuICAgIH0sXG4gICAgZm9sbG93QW5ub3VuY2VtZW50OiBhc3luYyAoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5mb2xsb3dBbm5vdW5jZW1lbnQoc291cmNlQ2hhbm5lbElkLCB0YXJnZXRDaGFubmVsSWQpXG4gICAgfSxcbiAgICBnZXRBY3RpdmVUaHJlYWRzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZ2V0QWN0aXZlVGhyZWFkcyhndWlsZElkKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGhyZWFkczogcmVzdWx0LnRocmVhZHMubWFwKCh0aHJlYWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgZ3VpbGRJZCwgY2hhbm5lbDogc25ha2VsaXplKHRocmVhZCkgfSkpLFxuICAgICAgICBtZW1iZXJzOiByZXN1bHQubWVtYmVycy5tYXAoKG1lbWJlcikgPT4gYm90LnRyYW5zZm9ybWVycy50aHJlYWRNZW1iZXIoYm90LCBzbmFrZWxpemUobWVtYmVyKSkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkluZm8oKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkluZm86IGFzeW5jIChib2R5KSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbihib3QsIHsgYXBwbGljYXRpb246IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25JbmZvKGJvZHkpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbzogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGV4Y2hhbmdlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZXhjaGFuZ2VUb2tlbihjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKVxuICAgIH0sXG4gICAgcmV2b2tlVG9rZW46IGFzeW5jIChjbGllbnRJZCwgY2xpZW50U2VjcmV0LCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmV2b2tlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IGFzeW5jIChndWlsZElkLCBjb21tYW5kSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKVxuICAgICAgY29uc3Qgc25ha2VkUmVzID0gc25ha2VsaXplKHJlcylcblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlZFJlcylcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEF1ZGl0TG9nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEF1ZGl0TG9nKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkKSkpXG4gICAgfSxcbiAgICBnZXRBdXRvbW9kUnVsZXM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnZvaWNlUmVnaW9uKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QmFuOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFuKGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEJhbnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0QmFucyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWwoY2hhbm5lbElkKSkgfSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxJbnZpdGVzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKVxuICAgICAgLy8gcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsSW52aXRlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRDaGFubmVsczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbHMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShyZXMpLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxXZWJob29rcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0RG1DaGFubmVsOiBhc3luYyAodXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RG1DaGFubmVsKHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRHcm91cERtQ2hhbm5lbDogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHcm91cERtQ2hhbm5lbChvcHRpb25zKSkgfSlcbiAgICB9LFxuICAgIGdldEVtb2ppOiBhc3luYyAoZ3VpbGRJZCwgZW1vamlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamkoZ3VpbGRJZCwgZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamkoZW1vamlJZCkpKVxuICAgIH0sXG4gICAgZ2V0RW1vamlzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRFbW9qaXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXBwbGljYXRpb25FbW9qaXM6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmdldEFwcGxpY2F0aW9uRW1vamlzKClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoaXRlbSkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSlcbiAgICB9LFxuICAgIGdldEdhdGV3YXlCb3Q6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2F0ZXdheUJvdCgpKSlcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQpKSlcbiAgICB9LFxuICAgIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZDogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkKGd1aWxkSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R3VpbGRzOiBhc3luYyAoYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0R3VpbGRzIHJldHVybnMgcGFydGlhbCBndWlsZHNcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRzKGJlYXJlclRva2VuLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRQcmV2aWV3OiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkUHJldmlldyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VyKGd1aWxkSWQsIHN0aWNrZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRTdGlja2VyczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRTdGlja2VycyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGU6IGFzeW5jICh0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkVGVtcGxhdGUodGVtcGxhdGVDb2RlKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFRlbXBsYXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRXZWJob29rczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRXZWJob29rcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEludGVncmF0aW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW50ZWdyYXRpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5pbnRlZ3JhdGlvbihib3QsIHNuYWtlbGl6ZSh7IC4uLnJlcywgZ3VpbGRJZDogZ3VpbGRJZC50b1N0cmluZygpIH0pKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGdldEludml0ZTogYXN5bmMgKGludml0ZUNvZGUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludml0ZShib3QsIHsgaW52aXRlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlKGludml0ZUNvZGUsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0SW52aXRlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0SW52aXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0TWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQpKSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2VzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlKHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRQaW5uZWRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRQaW5uZWRNZXNzYWdlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpXG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0UHJpdmF0ZUpvaW5lZEFyY2hpdmVkVGhyZWFkcyhjaGFubmVsSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldFBydW5lQ291bnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJ1bmVDb3VudChndWlsZElkLCBvcHRpb25zKVxuICAgICAgLy8gcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMueHh4KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFBydW5lQ291bnQoZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICAgIC8vIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnh4eChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRQdWJsaWNBcmNoaXZlZFRocmVhZHMoY2hhbm5lbElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRSb2xlczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZXMoZ3VpbGRJZCkpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50cyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudFVzZXJzKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKS5tYXAoKHUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1c2VyOiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUodS51c2VyKSksXG4gICAgICAgICAgbWVtYmVyOiB1Lm1lbWJlciAmJiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZSh1Lm1lbWJlciksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHUudXNlci5pZCkpLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgZ2V0U2Vzc2lvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKSkpXG4gICAgfSxcbiAgICBnZXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyOiBhc3luYyAoc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXIoc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZCkpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXJzKGNoYW5uZWxJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFVzZXI6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyKGlkKSkpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50VXNlcjogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRVc2VyKGJlYXJlclRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyQ29ubmVjdGlvbnM6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJDb25uZWN0aW9ucyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIGdldFZhbml0eVVybDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRWYW5pdHlVcmwoZ3VpbGRJZClcbiAgICB9LFxuICAgIGdldFZvaWNlUmVnaW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Vm9pY2VSZWdpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9vayh3ZWJob29rSWQpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRXZWxjb21lU2NyZWVuOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2VsY29tZVNjcmVlbihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXZWxjb21lU2NyZWVuKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXQoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgZ2V0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXRTZXR0aW5ncyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRXaWRnZXRTZXR0aW5ncyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBwdWJsaXNoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnB1Ymxpc2hNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSkpXG4gICAgfSxcbiAgICBzZW5kTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kTWVzc2FnZShjaGFubmVsSWQsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIHNlbmRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zZW5kRm9sbG93dXBNZXNzYWdlKHRva2VuLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHtcbiAgICAgICAgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMsIHJlYXNvbikpLFxuICAgICAgfSlcbiAgICB9LFxuICAgIHN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgc3luY0d1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zeW5jR3VpbGRUZW1wbGF0ZShndWlsZElkKSkpXG4gICAgfSxcbiAgICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiBhc3luYyAoY29tbWFuZHMsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QudXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyhjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyhndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIGVkaXRCb3RNZW1iZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Qm90TWVtYmVyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCBib3QuaWQpXG4gICAgfSxcbiAgICBlZGl0TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcihndWlsZElkLCB1c2VySWQpKSwgZ3VpbGRJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgZ2V0Q3VycmVudE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIGJlYXJlclRva2VuKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRDdXJyZW50TWVtYmVyKGd1aWxkSWQsIGJlYXJlclRva2VuKVxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSlcbiAgICB9LFxuICAgIGdldE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgcHJ1bmVNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucHJ1bmVNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuICAgIHNlYXJjaE1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBxdWVyeSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5zZWFyY2hNZW1iZXJzKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSkubWFwKChyZXMpID0+XG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMubWVtYmVyKGJvdCwgc25ha2VsaXplKHJlcyksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHJlcy51c2VyLmlkKSksXG4gICAgICApXG4gICAgfSxcbiAgICBidWxrQmFuTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuYnVsa0Jhbk1lbWJlcnMoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBiYW5uZWRVc2VyczogcmVzLmJhbm5lZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgICBmYWlsZWRVc2VyczogcmVzLmZhaWxlZFVzZXJzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpLFxuICAgICAgfVxuICAgIH0sXG4gICAgLy8gQWxsIHVzZWxlc3Mgdm9pZCByZXR1cm4gZnVuY3Rpb25zIGhlcmVcbiAgICBhZGRSZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGFkZFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbnMsIG9yZGVyZWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9ucywgb3JkZXJlZClcbiAgICB9LFxuICAgIGFkZFJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgYWRkVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBhZGREbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBhZGRHdWlsZE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZEd1aWxkTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGRlbGV0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVBdXRvbW9kUnVsZShndWlsZElkLCBydWxlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUNoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUNoYW5uZWwoY2hhbm5lbElkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlOiBhc3luYyAoY2hhbm5lbElkLCBvdmVyd3JpdGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZShjaGFubmVsSWQsIG92ZXJ3cml0ZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVFbW9qaShndWlsZElkLCBpZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQXBwbGljYXRpb25FbW9qaShpZClcbiAgICB9LFxuICAgIGRlbGV0ZUZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG1lc3NhZ2VJZClcbiAgICB9LFxuICAgIGRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZChndWlsZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSlcbiAgICB9LFxuICAgIGRlbGV0ZUludGVncmF0aW9uOiBhc3luYyAoZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlSW50ZWdyYXRpb24oZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlSW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlSW52aXRlKGludml0ZUNvZGUsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU1lc3NhZ2VzKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4pXG4gICAgfSxcbiAgICBkZWxldGVPd25SZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU93blJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0FsbDogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zQWxsKGNoYW5uZWxJZCwgbWVzc2FnZUlkKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNFbW9qaShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSb2xlKGd1aWxkSWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlU2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZClcbiAgICB9LFxuICAgIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVN0YWdlSW5zdGFuY2UoY2hhbm5lbElkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVVc2VyUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVVzZXJSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2sod2ViaG9va0lkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBvc2l0aW9uczogYXN5bmMgKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbFBvc2l0aW9ucyhndWlsZElkLCBjaGFubmVsUG9zaXRpb25zKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkTWZhTGV2ZWw6IGFzeW5jIChndWlsZElkLCBtZmFMZXZlbCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkTWZhTGV2ZWwoZ3VpbGRJZCwgbWZhTGV2ZWwsIHJlYXNvbilcbiAgICB9LFxuICAgIGVkaXRPd25Wb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRPd25Wb2ljZVN0YXRlKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0VXNlclZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJWb2ljZVN0YXRlKGd1aWxkSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IGFzeW5jIChiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGpvaW5UaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5qb2luVGhyZWFkKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIGxlYXZlR3VpbGQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QubGVhdmVHdWlsZChndWlsZElkKVxuICAgIH0sXG4gICAgbGVhdmVUaHJlYWQ6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZVRocmVhZChjaGFubmVsSWQpXG4gICAgfSxcbiAgICByZW1vdmVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZVJvbGUoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHJlbW92ZVRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlVGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgcmVtb3ZlRG1SZWNpcGllbnQ6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJlbW92ZURtUmVjaXBpZW50KGNoYW5uZWxJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgc2VuZEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jIChpbnRlcmFjdGlvbklkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnNlbmRJbnRlcmFjdGlvblJlc3BvbnNlKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zKVxuICAgIH0sXG4gICAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnRyaWdnZXJUeXBpbmdJbmRpY2F0b3IoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgYmFuTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5iYW5NZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBraWNrTWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5raWNrTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcGluTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bmJhbk1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5iYW5NZW1iZXIoZ3VpbGRJZCwgdXNlcklkLCByZWFzb24pXG4gICAgfSxcbiAgICB1bnBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudW5waW5NZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBnZXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZE9uYm9hcmRpbmc6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZyhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRPbmJvYXJkaW5nKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgbGlzdEVudGl0bGVtZW50czogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QubGlzdEVudGl0bGVtZW50cyhhcHBsaWNhdGlvbklkLCBvcHRpb25zKSkubWFwKChlbnRpdGxlbWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbnRpdGxlbWVudChib3QsIHNuYWtlbGl6ZShlbnRpdGxlbWVudCkpKVxuICAgIH0sXG4gICAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgYm9keSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlVGVzdEVudGl0bGVtZW50KGFwcGxpY2F0aW9uSWQsIGJvZHkpKSBhcyBEaXNjb3JkRW50aXRsZW1lbnQpXG4gICAgfSxcbiAgICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVUZXN0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZClcbiAgICB9LFxuICAgIGxpc3RTa3VzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U2t1cyhhcHBsaWNhdGlvbklkKSkubWFwKChza3UpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2t1KGJvdCwgc25ha2VsaXplKHNrdSkpKVxuICAgIH0sXG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb3RIZWxwZXJzIHtcbiAgY3JlYXRlQXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUF1dG9Nb2RlcmF0aW9uUnVsZU9wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGNyZWF0ZUNoYW5uZWw6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQ2hhbm5lbCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGNyZWF0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZEVtb2ppLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8RW1vamk+XG4gIGNyZWF0ZUFwcGxpY2F0aW9uRW1vamk6IChvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPEVtb2ppPlxuICBjcmVhdGVGb3J1bVRocmVhZDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVGb3J1bVBvc3RXaXRoTWVzc2FnZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCwgb3B0aW9ucz86IENyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBjcmVhdGVHdWlsZDogKG9wdGlvbnM6IENyZWF0ZUd1aWxkKSA9PiBQcm9taXNlPEd1aWxkPlxuICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKFxuICAgIGNvbW1hbmQ6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IENyZWF0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgY3JlYXRlR3VpbGRGcm9tVGVtcGxhdGU6ICh0ZW1wbGF0ZUNvZGU6IHN0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRGcm9tVGVtcGxhdGUpID0+IFByb21pc2U8R3VpbGQ+XG4gIGNyZWF0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXI+XG4gIGNyZWF0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVRlbXBsYXRlKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBjcmVhdGVJbnZpdGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IENyZWF0ZUNoYW5uZWxJbnZpdGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkSW52aXRlPlxuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxSb2xlPlxuICBjcmVhdGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlU2NoZWR1bGVkRXZlbnQsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTY2hlZHVsZWRFdmVudD5cbiAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogKG9wdGlvbnM6IENyZWF0ZVN0YWdlSW5zdGFuY2UsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTdGFnZUluc3RhbmNlPlxuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWJob29rPlxuICBlZGl0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgYmVhcmVyVG9rZW46IHN0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZWREaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnNbXSxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGVkaXRBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBydWxlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGVkaXRCb3RQcm9maWxlOiAob3B0aW9uczogeyB1c2VybmFtZT86IHN0cmluZzsgYm90QXZhdGFyVVJMPzogc3RyaW5nIHwgbnVsbCB9KSA9PiBQcm9taXNlPFVzZXI+XG4gIGVkaXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUNoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxDaGFubmVsPlxuICBlZGl0RW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkRW1vamksIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxFbW9qaT5cbiAgZWRpdEFwcGxpY2F0aW9uRW1vamk6IChpZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPEVtb2ppPlxuICBlZGl0Rm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBNb2RpZnlHdWlsZCwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkPlxuICBlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQXRMZWFzdE9uZTxFZGl0R3VpbGRTdGlja2VyT3B0aW9ucz4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyPlxuICBlZGl0R3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdGVtcGxhdGVDb2RlOiBzdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGVkaXRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0TWVzc2FnZSkgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEpID0+IFByb21pc2U8TWVzc2FnZT5cbiAgZWRpdE9yaWdpbmFsV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0pID0+IFByb21pc2U8TWVzc2FnZT5cbiAgZWRpdFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0R3VpbGRSb2xlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Um9sZT5cbiAgZWRpdFJvbGVQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeVJvbGVQb3NpdGlvbnNbXSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFJvbGVbXT5cbiAgZWRpdFNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFBhcnRpYWw8RWRpdFNjaGVkdWxlZEV2ZW50PiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNjaGVkdWxlZEV2ZW50PlxuICBlZGl0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB0b3BpYzogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U3RhZ2VJbnN0YW5jZT5cbiAgZWRpdFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5V2ViaG9vaywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFdlYmhvb2s+XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25DYWxsYmFja0RhdGEgJiB7IHRocmVhZElkPzogQmlnU3RyaW5nIH0sXG4gICkgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBlZGl0V2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBPbWl0PE1vZGlmeVdlYmhvb2ssICdjaGFubmVsSWQnPikgPT4gUHJvbWlzZTxXZWJob29rPlxuICBlZGl0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFdlbGNvbWVTY3JlZW4+XG4gIGVkaXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZEd1aWxkV2lkZ2V0U2V0dGluZ3MsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldFNldHRpbmdzPlxuICBlZGl0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDYW1lbGl6ZWREaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPlxuICBleGVjdXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBFeGVjdXRlV2ViaG9vaykgPT4gUHJvbWlzZTxNZXNzYWdlIHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEZvbGxvd2VkQ2hhbm5lbD5cbiAgZ2V0QWN0aXZlVGhyZWFkczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx7IHRocmVhZHM6IENoYW5uZWxbXTsgbWVtYmVyczogVGhyZWFkTWVtYmVyW10gfT5cbiAgZ2V0QXBwbGljYXRpb25JbmZvOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBlZGl0QXBwbGljYXRpb25JbmZvOiAoYm9keTogRWRpdEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24+XG4gIGV4Y2hhbmdlVG9rZW46IChjbGllbnRJZDogQmlnU3RyaW5nLCBjbGllbnRTZWNyZXQ6IHN0cmluZywgb3B0aW9uczogQ2FtZWxpemVkRGlzY29yZFRva2VuRXhjaGFuZ2UpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2U+XG4gIHJldm9rZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplZERpc2NvcmRUb2tlblJldm9jYXRpb24pID0+IFByb21pc2U8dm9pZD5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zPlxuICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zW10+XG4gIGdldEF1ZGl0TG9nOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0R3VpbGRBdWRpdExvZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkQXVkaXRMb2c+XG4gIGdldEF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGdldEF1dG9tb2RSdWxlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGVbXT5cbiAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiAoKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRWb2ljZVJlZ2lvbltdPlxuICBnZXRCYW46IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRCYW4+XG4gIGdldEJhbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBHZXRCYW5zKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRCYW5bXT5cbiAgZ2V0Q2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGdldENoYW5uZWxJbnZpdGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEludml0ZU1ldGFkYXRhW10+XG4gIGdldENoYW5uZWxzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENoYW5uZWxbXT5cbiAgZ2V0Q2hhbm5lbFdlYmhvb2tzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8V2ViaG9va1tdPlxuICBnZXREbUNoYW5uZWw6ICh1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDaGFubmVsPlxuICBnZXRHcm91cERtQ2hhbm5lbDogKG9wdGlvbnM6IEdldEdyb3VwRG1PcHRpb25zKSA9PiBQcm9taXNlPENoYW5uZWw+XG4gIGdldEVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBlbW9qaUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8RW1vamk+XG4gIGdldEFwcGxpY2F0aW9uRW1vamk6IChlbW9qaUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8RW1vamk+XG4gIGdldEVtb2ppczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxFbW9qaVtdPlxuICBnZXRBcHBsaWNhdGlvbkVtb2ppczogKCkgPT4gUHJvbWlzZTx7IGl0ZW1zOiBFbW9qaVtdIH0+XG4gIGdldEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGdldEdhdGV3YXlCb3Q6ICgpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEdldEdhdGV3YXlCb3Q+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxHdWlsZD5cbiAgZ2V0R3VpbGRzOiAoYmVhcmVyVG9rZW46IHN0cmluZywgb3B0aW9ucz86IEdldFVzZXJHdWlsZHMpID0+IFByb21pc2U8UGFydGlhbDxHdWlsZD5bXT5cbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBnZXRHdWlsZFByZXZpZXc6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEd1aWxkUHJldmlldz5cbiAgZ2V0R3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyPlxuICBnZXRHdWlsZFN0aWNrZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXJbXT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBnZXRHdWlsZFRlbXBsYXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZVtdPlxuICBnZXRHdWlsZFdlYmhvb2tzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFdlYmhvb2tbXT5cbiAgZ2V0SW50ZWdyYXRpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEludGVncmF0aW9uW10+XG4gIGdldEludml0ZTogKGludml0ZUNvZGU6IHN0cmluZywgb3B0aW9ucz86IEdldEludml0ZSkgPT4gUHJvbWlzZTxJbnZpdGU+XG4gIGdldEludml0ZXM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8SW52aXRlW10+XG4gIGdldE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8TWVzc2FnZT5cbiAgZ2V0TWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4gUHJvbWlzZTxNZXNzYWdlW10+XG4gIGdldFN0aWNrZXJQYWNrczogKCkgPT4gUHJvbWlzZTxTdGlja2VyUGFja1tdPlxuICBnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIGdldFBpbm5lZE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8TWVzc2FnZVtdPlxuICBnZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRBcmNoaXZlZFRocmVhZHM+XG4gIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFyY2hpdmVkVGhyZWFkcz5cbiAgZ2V0UHJ1bmVDb3VudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5KSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRQcnVuZWRDb3VudD5cbiAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRBcmNoaXZlZFRocmVhZHM+XG4gIGdldFJvbGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFJvbGVbXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnQ6IChndWlsZElkOiBCaWdTdHJpbmcsIGV2ZW50SWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IHsgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTY2hlZHVsZWRFdmVudD5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRzKSA9PiBQcm9taXNlPFNjaGVkdWxlZEV2ZW50W10+XG4gIGdldFNjaGVkdWxlZEV2ZW50VXNlcnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgZXZlbnRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzLFxuICApID0+IFByb21pc2U8QXJyYXk8eyB1c2VyOiBVc2VyOyBtZW1iZXI/OiBNZW1iZXIgfT4+XG4gIGdldFNlc3Npb25JbmZvOiAoKSA9PiBQcm9taXNlPENhbWVsaXplZERpc2NvcmRHZXRHYXRld2F5Qm90PlxuICBnZXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U3RhZ2VJbnN0YW5jZT5cbiAgZ2V0U3RpY2tlcjogKHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFN0aWNrZXI+XG4gIGdldFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXI+XG4gIGdldFRocmVhZE1lbWJlcnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXJbXT5cbiAgZ2V0UmVhY3Rpb25zOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nLCBvcHRpb25zPzogR2V0UmVhY3Rpb25zKSA9PiBQcm9taXNlPFVzZXJbXT5cbiAgZ2V0VXNlcjogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VXNlcj5cbiAgZ2V0Q3VycmVudFVzZXI6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFVzZXI+XG4gIGdldFVzZXJDb25uZWN0aW9uczogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZENvbm5lY3Rpb25bXT5cbiAgZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb246IChiZWFyZXJUb2tlbjogc3RyaW5nLCBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24+XG4gIGdldFZhbml0eVVybDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZWREaXNjb3JkVmFuaXR5VXJsPlxuICBnZXRWb2ljZVJlZ2lvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemVkRGlzY29yZFZvaWNlUmVnaW9uW10+XG4gIGdldFdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWJob29rPlxuICBnZXRXZWJob29rTWVzc2FnZTogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldFdlYmhvb2tNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBnZXRXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8V2ViaG9vaz5cbiAgZ2V0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBnZXRXaWRnZXQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRXaWRnZXQ+XG4gIGdldFdpZGdldFNldHRpbmdzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIHB1Ymxpc2hNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIHNlbmRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZU1lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPE1lc3NhZ2U+XG4gIHNlbmRGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSkgPT4gUHJvbWlzZTxNZXNzYWdlPlxuICBzdGFydFRocmVhZFdpdGhNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhNZXNzYWdlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Q2hhbm5lbD5cbiAgc3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8Q2hhbm5lbD5cbiAgc3luY0d1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIHVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHM6IChcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgdXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGNvbW1hbmRzOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmRbXSxcbiAgICBvcHRpb25zPzogVXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIGVkaXRCb3RNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRCb3RNZW1iZXJPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8TWVtYmVyPlxuICBlZGl0TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRNZW1iZXIsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxNZW1iZXI+XG4gIGdldE1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8TWVtYmVyPlxuICBnZXRDdXJyZW50TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPE1lbWJlcj5cbiAgZ2V0TWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTGlzdEd1aWxkTWVtYmVycykgPT4gUHJvbWlzZTxNZW1iZXJbXT5cbiAgcHJ1bmVNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBCZWdpbkd1aWxkUHJ1bmUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx7IHBydW5lZDogbnVtYmVyIHwgbnVsbCB9PlxuICBzZWFyY2hNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBxdWVyeTogc3RyaW5nLCBvcHRpb25zPzogT21pdDxTZWFyY2hNZW1iZXJzLCAncXVlcnknPikgPT4gUHJvbWlzZTxNZW1iZXJbXT5cbiAgYnVsa0Jhbk1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQnVsa0JhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgYmFubmVkVXNlcnM6IGJpZ2ludFtdOyBmYWlsZWRVc2VyczogYmlnaW50W10gfT5cbiAgLy8gZnVuY3Rpb25zIHJldHVybiBWb2lkIHNvIGRvbnQgbmVlZCBhbnkgc3BlY2lhbCBoYW5kbGluZ1xuICBhZGRSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGRSZWFjdGlvbnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uczogc3RyaW5nW10sIG9yZGVyZWQ/OiBib29sZWFuKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBhZGREbVJlY2lwaWVudDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkRG1SZWNpcGllbnRPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZEd1aWxkTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQWRkR3VpbGRNZW1iZXJPcHRpb25zKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUF1dG9tb2RSdWxlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBydWxlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGU6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3ZlcndyaXRlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUVtb2ppOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXBwbGljYXRpb25FbW9qaTogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRm9sbG93dXBNZXNzYWdlOiAodG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZywgZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkU3RpY2tlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc3RpY2tlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnRlZ3JhdGlvbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaW50ZWdyYXRpb25JZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlSW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZHM6IEJpZ1N0cmluZ1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiAodG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPd25SZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNBbGw6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgcm9sZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVTY2hlZHVsZWRFdmVudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZXZlbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVVzZXJSZWFjdGlvbjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYWN0aW9uOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va01lc3NhZ2U6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBEZWxldGVXZWJob29rTWVzc2FnZU9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlV2ViaG9va1dpdGhUb2tlbjogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXNPcHRpb25zLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQb3NpdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcsIGNoYW5uZWxQb3NpdGlvbnM6IE1vZGlmeUd1aWxkQ2hhbm5lbFBvc2l0aW9uc1tdKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRHdWlsZE1mYUxldmVsOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBtZmFMZXZlbDogTWZhTGV2ZWxzLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRPd25Wb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdFVzZXJWb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGpvaW5UaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZURtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiAoaW50ZXJhY3Rpb25JZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBvcHRpb25zOiBJbnRlcmFjdGlvblJlc3BvbnNlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHRyaWdnZXJUeXBpbmdJbmRpY2F0b3I6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBiYW5NZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlR3VpbGRCYW4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBraWNrTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bmJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICB1bnBpbk1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBnZXRHdWlsZE9uYm9hcmRpbmc6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8R3VpbGRPbmJvYXJkaW5nPlxuICBlZGl0R3VpbGRPbmJvYXJkaW5nOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0R3VpbGRPbmJvYXJkaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8R3VpbGRPbmJvYXJkaW5nPlxuICBsaXN0RW50aXRsZW1lbnRzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0RW50aXRsZW1lbnRzKSA9PiBQcm9taXNlPEVudGl0bGVtZW50W10+XG4gIGNyZWF0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgYm9keTogQ3JlYXRlRW50aXRsZW1lbnQpID0+IFByb21pc2U8UGFydGlhbDxFbnRpdGxlbWVudD4+XG4gIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3RTa3VzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNrdVtdPlxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUJvdEhlbHBlcnMiLCJib3QiLCJjcmVhdGVBdXRvbW9kUnVsZSIsImd1aWxkSWQiLCJvcHRpb25zIiwicmVhc29uIiwidHJhbnNmb3JtZXJzIiwiYXV0b21vZFJ1bGUiLCJzbmFrZWxpemUiLCJyZXN0IiwiY3JlYXRlQ2hhbm5lbCIsImNoYW5uZWwiLCJjcmVhdGVFbW9qaSIsImVtb2ppIiwiY3JlYXRlQXBwbGljYXRpb25FbW9qaSIsImNyZWF0ZUZvcnVtVGhyZWFkIiwiY2hhbm5lbElkIiwiY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kIiwiY29tbWFuZCIsImFwcGxpY2F0aW9uQ29tbWFuZCIsImNyZWF0ZUd1aWxkIiwiZ3VpbGQiLCJzaGFyZElkIiwiY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZEZyb21UZW1wbGF0ZSIsInRlbXBsYXRlQ29kZSIsImNyZWF0ZUd1aWxkU3RpY2tlciIsInN0aWNrZXIiLCJjcmVhdGVHdWlsZFRlbXBsYXRlIiwidGVtcGxhdGUiLCJjcmVhdGVJbnZpdGUiLCJjcmVhdGVSb2xlIiwicm9sZSIsImNyZWF0ZVNjaGVkdWxlZEV2ZW50Iiwic2NoZWR1bGVkRXZlbnQiLCJjcmVhdGVTdGFnZUluc3RhbmNlIiwic3RhZ2VJbnN0YW5jZSIsImNyZWF0ZVdlYmhvb2siLCJ3ZWJob29rIiwiZWRpdEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiY29tbWFuZElkIiwiYmVhcmVyVG9rZW4iLCJhcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uIiwiZWRpdEF1dG9tb2RSdWxlIiwicnVsZUlkIiwiZWRpdEJvdFByb2ZpbGUiLCJ1c2VyIiwiZWRpdENoYW5uZWwiLCJlZGl0RW1vamkiLCJpZCIsImVkaXRBcHBsaWNhdGlvbkVtb2ppIiwiZWRpdEZvbGxvd3VwTWVzc2FnZSIsInRva2VuIiwibWVzc2FnZUlkIiwibWVzc2FnZSIsImVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGQiLCJlZGl0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJlZGl0R3VpbGRTdGlja2VyIiwic3RpY2tlcklkIiwiZWRpdEd1aWxkVGVtcGxhdGUiLCJlZGl0TWVzc2FnZSIsImVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJlZGl0T3JpZ2luYWxXZWJob29rTWVzc2FnZSIsIndlYmhvb2tJZCIsImVkaXRSb2xlIiwicm9sZUlkIiwiZWRpdFJvbGVQb3NpdGlvbnMiLCJtYXAiLCJlZGl0U2NoZWR1bGVkRXZlbnQiLCJldmVudElkIiwiZWRpdFN0YWdlSW5zdGFuY2UiLCJ0b3BpYyIsImVkaXRXZWJob29rIiwiZWRpdFdlYmhvb2tNZXNzYWdlIiwiZWRpdFdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0V2VsY29tZVNjcmVlbiIsIndlbGNvbWVTY3JlZW4iLCJlZGl0V2lkZ2V0U2V0dGluZ3MiLCJ3aWRnZXRTZXR0aW5ncyIsImV4ZWN1dGVXZWJob29rIiwicmVzdWx0IiwiZm9sbG93QW5ub3VuY2VtZW50Iiwic291cmNlQ2hhbm5lbElkIiwidGFyZ2V0Q2hhbm5lbElkIiwiZ2V0QWN0aXZlVGhyZWFkcyIsInRocmVhZHMiLCJ0aHJlYWQiLCJtZW1iZXJzIiwibWVtYmVyIiwidGhyZWFkTWVtYmVyIiwiZ2V0QXBwbGljYXRpb25JbmZvIiwiYXBwbGljYXRpb24iLCJlZGl0QXBwbGljYXRpb25JbmZvIiwiYm9keSIsImdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8iLCJleGNoYW5nZVRva2VuIiwiY2xpZW50SWQiLCJjbGllbnRTZWNyZXQiLCJyZXZva2VUb2tlbiIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24iLCJyZXMiLCJzbmFrZWRSZXMiLCJnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImdldEF1ZGl0TG9nIiwiZ2V0QXV0b21vZFJ1bGUiLCJnZXRBdXRvbW9kUnVsZXMiLCJnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnMiLCJ2b2ljZVJlZ2lvbiIsImdldEJhbiIsInVzZXJJZCIsImdldEJhbnMiLCJnZXRDaGFubmVsIiwiZ2V0Q2hhbm5lbEludml0ZXMiLCJnZXRDaGFubmVscyIsImdldENoYW5uZWxXZWJob29rcyIsImdldERtQ2hhbm5lbCIsImdldEdyb3VwRG1DaGFubmVsIiwiZ2V0RW1vamkiLCJlbW9qaUlkIiwiZ2V0QXBwbGljYXRpb25FbW9qaSIsImdldEVtb2ppcyIsImdldEFwcGxpY2F0aW9uRW1vamlzIiwiaXRlbXMiLCJpdGVtIiwiZ2V0Rm9sbG93dXBNZXNzYWdlIiwiZ2V0R2F0ZXdheUJvdCIsImdhdGV3YXlCb3QiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJnZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGQiLCJnZXRHdWlsZHMiLCJnZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImdldEd1aWxkUHJldmlldyIsImdldEd1aWxkU3RpY2tlciIsImdldEd1aWxkU3RpY2tlcnMiLCJnZXRHdWlsZFRlbXBsYXRlIiwiZ2V0R3VpbGRUZW1wbGF0ZXMiLCJnZXRHdWlsZFdlYmhvb2tzIiwiZ2V0SW50ZWdyYXRpb25zIiwiaW50ZWdyYXRpb24iLCJ0b1N0cmluZyIsImdldEludml0ZSIsImludml0ZUNvZGUiLCJpbnZpdGUiLCJnZXRJbnZpdGVzIiwiZ2V0TWVzc2FnZSIsImdldE1lc3NhZ2VzIiwiZ2V0U3RpY2tlclBhY2tzIiwic3RpY2tlclBhY2siLCJnZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJnZXRQaW5uZWRNZXNzYWdlcyIsImdldFByaXZhdGVBcmNoaXZlZFRocmVhZHMiLCJnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0UHJ1bmVDb3VudCIsImdldFB1YmxpY0FyY2hpdmVkVGhyZWFkcyIsImdldFJvbGVzIiwiZ2V0U2NoZWR1bGVkRXZlbnQiLCJnZXRTY2hlZHVsZWRFdmVudHMiLCJnZXRTY2hlZHVsZWRFdmVudFVzZXJzIiwidSIsInNub3dmbGFrZSIsImdldFNlc3Npb25JbmZvIiwiZ2V0U3RhZ2VJbnN0YW5jZSIsImdldFN0aWNrZXIiLCJnZXRUaHJlYWRNZW1iZXIiLCJnZXRUaHJlYWRNZW1iZXJzIiwiZ2V0UmVhY3Rpb25zIiwicmVhY3Rpb24iLCJnZXRVc2VyIiwiZ2V0Q3VycmVudFVzZXIiLCJnZXRVc2VyQ29ubmVjdGlvbnMiLCJnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImFwcGxpY2F0aW9uSWQiLCJnZXRWYW5pdHlVcmwiLCJnZXRWb2ljZVJlZ2lvbnMiLCJnZXRXZWJob29rIiwiZ2V0V2ViaG9va01lc3NhZ2UiLCJnZXRXZWJob29rV2l0aFRva2VuIiwiZ2V0V2VsY29tZVNjcmVlbiIsImdldFdpZGdldCIsIndpZGdldCIsImdldFdpZGdldFNldHRpbmdzIiwicHVibGlzaE1lc3NhZ2UiLCJzZW5kTWVzc2FnZSIsInNlbmRGb2xsb3d1cE1lc3NhZ2UiLCJzdGFydFRocmVhZFdpdGhNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSIsInN5bmNHdWlsZFRlbXBsYXRlIiwidXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kcyIsImNvbW1hbmRzIiwidXBzZXJ0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZWRpdEJvdE1lbWJlciIsImVkaXRNZW1iZXIiLCJnZXRNZW1iZXIiLCJnZXRDdXJyZW50TWVtYmVyIiwiZ2V0TWVtYmVycyIsInBydW5lTWVtYmVycyIsInNlYXJjaE1lbWJlcnMiLCJxdWVyeSIsImJ1bGtCYW5NZW1iZXJzIiwiYmFubmVkVXNlcnMiLCJ4IiwiZmFpbGVkVXNlcnMiLCJhZGRSZWFjdGlvbiIsImFkZFJlYWN0aW9ucyIsInJlYWN0aW9ucyIsIm9yZGVyZWQiLCJhZGRSb2xlIiwiYWRkVGhyZWFkTWVtYmVyIiwiYWRkRG1SZWNpcGllbnQiLCJhZGRHdWlsZE1lbWJlciIsImRlbGV0ZUF1dG9tb2RSdWxlIiwiZGVsZXRlQ2hhbm5lbCIsImRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUiLCJvdmVyd3JpdGVJZCIsImRlbGV0ZUVtb2ppIiwiZGVsZXRlQXBwbGljYXRpb25FbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkIiwiZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJkZWxldGVHdWlsZFN0aWNrZXIiLCJkZWxldGVHdWlsZFRlbXBsYXRlIiwiZGVsZXRlSW50ZWdyYXRpb24iLCJpbnRlZ3JhdGlvbklkIiwiZGVsZXRlSW52aXRlIiwiZGVsZXRlTWVzc2FnZSIsImRlbGV0ZU1lc3NhZ2VzIiwibWVzc2FnZUlkcyIsImRlbGV0ZU9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImRlbGV0ZU93blJlYWN0aW9uIiwiZGVsZXRlUmVhY3Rpb25zQWxsIiwiZGVsZXRlUmVhY3Rpb25zRW1vamkiLCJkZWxldGVSb2xlIiwiZGVsZXRlU2NoZWR1bGVkRXZlbnQiLCJkZWxldGVTdGFnZUluc3RhbmNlIiwiZGVsZXRlVXNlclJlYWN0aW9uIiwiZGVsZXRlV2ViaG9vayIsImRlbGV0ZVdlYmhvb2tNZXNzYWdlIiwiZGVsZXRlV2ViaG9va1dpdGhUb2tlbiIsImVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlcyIsImVkaXRDaGFubmVsUG9zaXRpb25zIiwiY2hhbm5lbFBvc2l0aW9ucyIsImVkaXRHdWlsZE1mYUxldmVsIiwibWZhTGV2ZWwiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJ0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yIiwiYmFuTWVtYmVyIiwia2lja01lbWJlciIsInBpbk1lc3NhZ2UiLCJ1bmJhbk1lbWJlciIsInVucGluTWVzc2FnZSIsImdldEd1aWxkT25ib2FyZGluZyIsImd1aWxkT25ib2FyZGluZyIsImVkaXRHdWlsZE9uYm9hcmRpbmciLCJsaXN0RW50aXRsZW1lbnRzIiwiZW50aXRsZW1lbnQiLCJjcmVhdGVUZXN0RW50aXRsZW1lbnQiLCJkZWxldGVUZXN0RW50aXRsZW1lbnQi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