@discordeno/bot 21.0.1-next.f6ea699 → 22.0.1-next.269a5bf

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 (1122) hide show
  1. package/dist/bot.d.ts +82 -0
  2. package/dist/bot.d.ts.map +1 -0
  3. package/dist/bot.js +72 -0
  4. package/dist/commandOptionsParser.d.ts.map +1 -0
  5. package/dist/commandOptionsParser.js +43 -0
  6. package/dist/constants.d.ts.map +1 -0
  7. package/dist/constants.js +6 -0
  8. package/dist/desiredProperties.d.ts +213 -0
  9. package/dist/desiredProperties.d.ts.map +1 -0
  10. package/dist/desiredProperties.js +631 -0
  11. package/dist/events.d.ts +232 -0
  12. package/dist/events.d.ts.map +1 -0
  13. package/dist/events.js +3 -0
  14. package/dist/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -0
  15. package/dist/handlers/channels/CHANNEL_CREATE.js +10 -0
  16. package/dist/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -0
  17. package/dist/handlers/channels/CHANNEL_DELETE.js +9 -0
  18. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +1 -0
  19. package/dist/handlers/channels/CHANNEL_PINS_UPDATE.js +11 -0
  20. package/dist/handlers/channels/CHANNEL_UPDATE.d.ts.map +1 -0
  21. package/dist/handlers/channels/CHANNEL_UPDATE.js +8 -0
  22. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +1 -0
  23. package/dist/handlers/channels/STAGE_INSTANCE_CREATE.js +12 -0
  24. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +1 -0
  25. package/dist/handlers/channels/STAGE_INSTANCE_DELETE.js +12 -0
  26. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +1 -0
  27. package/dist/handlers/channels/STAGE_INSTANCE_UPDATE.js +12 -0
  28. package/dist/handlers/channels/THREAD_CREATE.d.ts.map +1 -0
  29. package/dist/handlers/channels/THREAD_CREATE.js +7 -0
  30. package/dist/handlers/channels/THREAD_DELETE.d.ts.map +1 -0
  31. package/dist/handlers/channels/THREAD_DELETE.js +7 -0
  32. package/dist/handlers/channels/THREAD_LIST_SYNC.d.ts.map +1 -0
  33. package/dist/handlers/channels/THREAD_LIST_SYNC.js +20 -0
  34. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +1 -0
  35. package/dist/handlers/channels/THREAD_MEMBERS_UPDATE.js +14 -0
  36. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -0
  37. package/dist/handlers/channels/THREAD_MEMBER_UPDATE.js +12 -0
  38. package/dist/handlers/channels/THREAD_UPDATE.d.ts.map +1 -0
  39. package/dist/handlers/channels/THREAD_UPDATE.js +7 -0
  40. package/dist/handlers/channels/index.d.ts.map +1 -0
  41. package/dist/handlers/channels/index.js +15 -0
  42. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +1 -0
  43. package/dist/handlers/emojis/GUILD_EMOJIS_UPDATE.js +14 -0
  44. package/dist/handlers/emojis/index.d.ts.map +1 -0
  45. package/dist/handlers/emojis/index.js +3 -0
  46. package/dist/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +1 -0
  47. package/dist/handlers/entitlements/ENTITLEMENT_CREATE.js +7 -0
  48. package/dist/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +1 -0
  49. package/dist/handlers/entitlements/ENTITLEMENT_DELETE.js +7 -0
  50. package/dist/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +1 -0
  51. package/dist/handlers/entitlements/ENTITLEMENT_UPDATE.js +7 -0
  52. package/dist/handlers/entitlements/index.d.ts.map +1 -0
  53. package/dist/handlers/entitlements/index.js +5 -0
  54. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +1 -0
  55. package/dist/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +8 -0
  56. package/dist/handlers/guilds/GUILD_BAN_ADD.d.ts.map +1 -0
  57. package/dist/handlers/guilds/GUILD_BAN_ADD.js +7 -0
  58. package/dist/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +1 -0
  59. package/dist/handlers/guilds/GUILD_BAN_REMOVE.js +7 -0
  60. package/dist/handlers/guilds/GUILD_CREATE.d.ts.map +1 -0
  61. package/dist/handlers/guilds/GUILD_CREATE.js +9 -0
  62. package/dist/handlers/guilds/GUILD_DELETE.d.ts.map +1 -0
  63. package/dist/handlers/guilds/GUILD_DELETE.js +10 -0
  64. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +1 -0
  65. package/dist/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +9 -0
  66. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +1 -0
  67. package/dist/handlers/guilds/GUILD_STICKERS_UPDATE.js +13 -0
  68. package/dist/handlers/guilds/GUILD_UPDATE.d.ts.map +1 -0
  69. package/dist/handlers/guilds/GUILD_UPDATE.js +9 -0
  70. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +1 -0
  71. package/dist/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +7 -0
  72. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +1 -0
  73. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +7 -0
  74. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +1 -0
  75. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +7 -0
  76. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +1 -0
  77. package/dist/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +7 -0
  78. package/dist/handlers/guilds/automod/index.d.ts.map +1 -0
  79. package/dist/handlers/guilds/automod/index.js +6 -0
  80. package/dist/handlers/guilds/index.d.ts.map +1 -0
  81. package/dist/handlers/guilds/index.js +12 -0
  82. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +1 -0
  83. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +7 -0
  84. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +1 -0
  85. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +7 -0
  86. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +1 -0
  87. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +7 -0
  88. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +1 -0
  89. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +11 -0
  90. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +1 -0
  91. package/dist/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +11 -0
  92. package/dist/handlers/guilds/scheduledEvents/index.d.ts.map +1 -0
  93. package/dist/handlers/guilds/scheduledEvents/index.js +7 -0
  94. package/dist/handlers/index.d.ts.map +1 -0
  95. package/dist/handlers/index.js +18 -0
  96. package/dist/handlers/integrations/INTEGRATION_CREATE.d.ts.map +1 -0
  97. package/dist/handlers/integrations/INTEGRATION_CREATE.js +6 -0
  98. package/dist/handlers/integrations/INTEGRATION_DELETE.d.ts.map +1 -0
  99. package/dist/handlers/integrations/INTEGRATION_DELETE.js +11 -0
  100. package/dist/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +1 -0
  101. package/dist/handlers/integrations/INTEGRATION_UPDATE.js +6 -0
  102. package/dist/handlers/integrations/index.d.ts.map +1 -0
  103. package/dist/handlers/integrations/index.js +5 -0
  104. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +1 -0
  105. package/dist/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +7 -0
  106. package/dist/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -0
  107. package/dist/handlers/interactions/INTERACTION_CREATE.js +9 -0
  108. package/dist/handlers/interactions/index.d.ts.map +1 -0
  109. package/dist/handlers/interactions/index.js +4 -0
  110. package/dist/handlers/invites/INVITE_CREATE.d.ts.map +1 -0
  111. package/dist/handlers/invites/INVITE_CREATE.js +9 -0
  112. package/dist/handlers/invites/INVITE_DELETE.d.ts.map +1 -0
  113. package/dist/handlers/invites/INVITE_DELETE.js +11 -0
  114. package/dist/handlers/invites/index.d.ts.map +1 -0
  115. package/dist/handlers/invites/index.js +4 -0
  116. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +1 -0
  117. package/dist/handlers/members/GUILD_MEMBERS_CHUNK.js +20 -0
  118. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts +4 -0
  119. package/dist/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -0
  120. package/dist/handlers/members/GUILD_MEMBER_ADD.js +13 -0
  121. package/dist/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +1 -0
  122. package/dist/handlers/members/GUILD_MEMBER_REMOVE.js +9 -0
  123. package/dist/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -0
  124. package/dist/handlers/members/GUILD_MEMBER_UPDATE.js +12 -0
  125. package/dist/handlers/members/index.d.ts.map +1 -0
  126. package/dist/handlers/members/index.js +6 -0
  127. package/dist/handlers/messages/MESSAGE_CREATE.d.ts.map +1 -0
  128. package/dist/handlers/messages/MESSAGE_CREATE.js +9 -0
  129. package/dist/handlers/messages/MESSAGE_DELETE.d.ts.map +1 -0
  130. package/dist/handlers/messages/MESSAGE_DELETE.js +11 -0
  131. package/dist/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +1 -0
  132. package/dist/handlers/messages/MESSAGE_DELETE_BULK.js +13 -0
  133. package/dist/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -0
  134. package/dist/handlers/messages/MESSAGE_REACTION_ADD.js +24 -0
  135. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -0
  136. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE.js +15 -0
  137. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +1 -0
  138. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +11 -0
  139. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -0
  140. package/dist/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +13 -0
  141. package/dist/handlers/messages/MESSAGE_UPDATE.d.ts.map +1 -0
  142. package/dist/handlers/messages/MESSAGE_UPDATE.js +10 -0
  143. package/dist/handlers/messages/index.d.ts.map +1 -0
  144. package/dist/handlers/messages/index.js +10 -0
  145. package/dist/handlers/misc/PRESENCE_UPDATE.d.ts.map +1 -0
  146. package/dist/handlers/misc/PRESENCE_UPDATE.js +6 -0
  147. package/dist/handlers/misc/READY.d.ts.map +1 -0
  148. package/dist/handlers/misc/READY.js +18 -0
  149. package/dist/handlers/misc/TYPING_START.d.ts.map +1 -0
  150. package/dist/handlers/misc/TYPING_START.js +18 -0
  151. package/dist/handlers/misc/USER_UPDATE.d.ts.map +1 -0
  152. package/dist/handlers/misc/USER_UPDATE.js +7 -0
  153. package/dist/handlers/misc/index.d.ts.map +1 -0
  154. package/dist/handlers/misc/index.js +6 -0
  155. package/dist/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +1 -0
  156. package/dist/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +13 -0
  157. package/dist/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +1 -0
  158. package/dist/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +13 -0
  159. package/dist/handlers/poll/index.d.ts.map +1 -0
  160. package/dist/handlers/poll/index.js +4 -0
  161. package/dist/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -0
  162. package/dist/handlers/roles/GUILD_ROLE_CREATE.js +9 -0
  163. package/dist/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +1 -0
  164. package/dist/handlers/roles/GUILD_ROLE_DELETE.js +10 -0
  165. package/dist/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -0
  166. package/dist/handlers/roles/GUILD_ROLE_UPDATE.js +9 -0
  167. package/dist/handlers/roles/index.d.ts.map +1 -0
  168. package/dist/handlers/roles/index.js +5 -0
  169. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +1 -0
  170. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +10 -0
  171. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +1 -0
  172. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +7 -0
  173. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +1 -0
  174. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +10 -0
  175. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +1 -0
  176. package/dist/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +7 -0
  177. package/dist/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +1 -0
  178. package/dist/handlers/soundboard/SOUNDBOARD_SOUNDS.js +10 -0
  179. package/dist/handlers/soundboard/index.d.ts.map +1 -0
  180. package/dist/handlers/soundboard/index.js +7 -0
  181. package/dist/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +1 -0
  182. package/dist/handlers/subscriptions/SUBSCRIPTION_CREATE.js +7 -0
  183. package/dist/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +1 -0
  184. package/dist/handlers/subscriptions/SUBSCRIPTION_DELETE.js +7 -0
  185. package/dist/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +1 -0
  186. package/dist/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +7 -0
  187. package/dist/handlers/subscriptions/index.d.ts.map +1 -0
  188. package/dist/handlers/subscriptions/index.js +5 -0
  189. package/dist/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +1 -0
  190. package/dist/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  191. package/dist/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +1 -0
  192. package/dist/handlers/voice/VOICE_SERVER_UPDATE.js +11 -0
  193. package/dist/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -0
  194. package/dist/handlers/voice/VOICE_STATE_UPDATE.js +12 -0
  195. package/dist/handlers/voice/index.d.ts.map +1 -0
  196. package/dist/handlers/voice/index.js +5 -0
  197. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +1 -0
  198. package/dist/handlers/webhooks/WEBHOOKS_UPDATE.js +10 -0
  199. package/dist/handlers/webhooks/index.d.ts.map +1 -0
  200. package/dist/handlers/webhooks/index.js +3 -0
  201. package/dist/handlers.d.ts.map +1 -0
  202. package/dist/handlers.js +81 -0
  203. package/dist/helpers.d.ts +244 -0
  204. package/dist/helpers.d.ts.map +1 -0
  205. package/dist/helpers.js +715 -0
  206. package/dist/index.d.ts +15 -0
  207. package/dist/index.d.ts.map +1 -0
  208. package/dist/index.js +16 -0
  209. package/dist/transformers/activity.d.ts +5 -0
  210. package/dist/transformers/activity.d.ts.map +1 -0
  211. package/dist/transformers/activity.js +53 -0
  212. package/dist/transformers/application.d.ts +5 -0
  213. package/dist/transformers/application.d.ts.map +1 -0
  214. package/dist/transformers/application.js +59 -0
  215. package/dist/transformers/applicationCommand.d.ts.map +1 -0
  216. package/dist/transformers/applicationCommand.js +19 -0
  217. package/dist/transformers/applicationCommandOption.d.ts.map +1 -0
  218. package/dist/transformers/applicationCommandOption.js +21 -0
  219. package/dist/transformers/applicationCommandOptionChoice.d.ts.map +1 -0
  220. package/dist/transformers/applicationCommandOptionChoice.js +10 -0
  221. package/dist/transformers/applicationCommandPermission.d.ts.map +1 -0
  222. package/dist/transformers/applicationCommandPermission.js +15 -0
  223. package/dist/transformers/attachment.d.ts +4 -0
  224. package/dist/transformers/attachment.d.ts.map +1 -0
  225. package/dist/transformers/attachment.js +21 -0
  226. package/dist/transformers/auditLogEntry.d.ts.map +1 -0
  227. package/dist/transformers/auditLogEntry.js +27 -0
  228. package/dist/transformers/automodActionExecution.d.ts.map +1 -0
  229. package/dist/transformers/automodActionExecution.js +25 -0
  230. package/dist/transformers/automodRule.d.ts.map +1 -0
  231. package/dist/transformers/automodRule.js +31 -0
  232. package/dist/transformers/avatarDecorationData.d.ts.map +1 -0
  233. package/dist/transformers/avatarDecorationData.js +10 -0
  234. package/dist/transformers/channel.d.ts +10 -0
  235. package/dist/transformers/channel.d.ts.map +1 -0
  236. package/dist/transformers/channel.js +126 -0
  237. package/dist/transformers/component.d.ts.map +1 -0
  238. package/dist/transformers/component.js +196 -0
  239. package/dist/transformers/embed.d.ts.map +1 -0
  240. package/dist/transformers/embed.js +44 -0
  241. package/dist/transformers/emoji.d.ts +6 -0
  242. package/dist/transformers/emoji.d.ts.map +1 -0
  243. package/dist/transformers/emoji.js +36 -0
  244. package/dist/transformers/entitlement.d.ts +4 -0
  245. package/dist/transformers/entitlement.d.ts.map +1 -0
  246. package/dist/transformers/entitlement.js +17 -0
  247. package/dist/transformers/gatewayBot.d.ts.map +1 -0
  248. package/dist/transformers/gatewayBot.js +15 -0
  249. package/dist/transformers/guild.d.ts +7 -0
  250. package/dist/transformers/guild.d.ts.map +1 -0
  251. package/dist/transformers/guild.js +147 -0
  252. package/dist/transformers/incidentsData.d.ts +4 -0
  253. package/dist/transformers/incidentsData.d.ts.map +1 -0
  254. package/dist/transformers/incidentsData.js +11 -0
  255. package/dist/transformers/index.d.ts.map +1 -0
  256. package/dist/transformers/index.js +52 -0
  257. package/dist/transformers/integration.d.ts.map +1 -0
  258. package/dist/transformers/integration.js +34 -0
  259. package/dist/transformers/interaction.d.ts +19 -0
  260. package/dist/transformers/interaction.d.ts.map +1 -0
  261. package/dist/transformers/interaction.js +258 -0
  262. package/dist/transformers/invite.d.ts +6 -0
  263. package/dist/transformers/invite.d.ts.map +1 -0
  264. package/dist/transformers/invite.js +41 -0
  265. package/dist/transformers/lobby.d.ts +5 -0
  266. package/dist/transformers/lobby.d.ts.map +1 -0
  267. package/dist/transformers/lobby.js +21 -0
  268. package/dist/transformers/member.d.ts +9 -0
  269. package/dist/transformers/member.d.ts.map +1 -0
  270. package/dist/transformers/member.js +54 -0
  271. package/dist/transformers/message.d.ts +15 -0
  272. package/dist/transformers/message.d.ts.map +1 -0
  273. package/dist/transformers/message.js +287 -0
  274. package/dist/transformers/onboarding.d.ts +6 -0
  275. package/dist/transformers/onboarding.d.ts.map +1 -0
  276. package/dist/transformers/onboarding.js +35 -0
  277. package/dist/transformers/poll.d.ts +5 -0
  278. package/dist/transformers/poll.d.ts.map +1 -0
  279. package/dist/transformers/poll.js +33 -0
  280. package/dist/transformers/presence.d.ts +4 -0
  281. package/dist/transformers/presence.d.ts.map +1 -0
  282. package/dist/transformers/presence.js +14 -0
  283. package/dist/transformers/reverse/activity.d.ts.map +1 -0
  284. package/dist/transformers/reverse/activity.js +43 -0
  285. package/dist/transformers/reverse/allowedMentions.d.ts.map +1 -0
  286. package/dist/transformers/reverse/allowedMentions.js +10 -0
  287. package/dist/transformers/reverse/application.d.ts +3 -0
  288. package/dist/transformers/reverse/application.d.ts.map +1 -0
  289. package/dist/transformers/reverse/application.js +28 -0
  290. package/dist/transformers/reverse/applicationCommand.d.ts.map +1 -0
  291. package/dist/transformers/reverse/applicationCommand.js +18 -0
  292. package/dist/transformers/reverse/applicationCommandOption.d.ts.map +1 -0
  293. package/dist/transformers/reverse/applicationCommandOption.js +20 -0
  294. package/dist/transformers/reverse/applicationCommandOptionChoice.d.ts.map +1 -0
  295. package/dist/transformers/reverse/applicationCommandOptionChoice.js +9 -0
  296. package/dist/transformers/reverse/applicationCommandPermission.d.ts.map +1 -0
  297. package/dist/transformers/reverse/applicationCommandPermission.js +14 -0
  298. package/dist/transformers/reverse/attachment.d.ts +3 -0
  299. package/dist/transformers/reverse/attachment.d.ts.map +1 -0
  300. package/dist/transformers/reverse/attachment.js +20 -0
  301. package/dist/transformers/reverse/auditLogEntry.d.ts.map +1 -0
  302. package/dist/transformers/reverse/auditLogEntry.js +27 -0
  303. package/dist/transformers/reverse/component.d.ts.map +1 -0
  304. package/dist/transformers/reverse/component.js +162 -0
  305. package/dist/transformers/reverse/embed.d.ts.map +1 -0
  306. package/dist/transformers/reverse/embed.js +43 -0
  307. package/dist/transformers/reverse/emoji.d.ts +4 -0
  308. package/dist/transformers/reverse/emoji.d.ts.map +1 -0
  309. package/dist/transformers/reverse/emoji.js +14 -0
  310. package/dist/transformers/reverse/gatewayBot.d.ts.map +1 -0
  311. package/dist/transformers/reverse/gatewayBot.js +14 -0
  312. package/dist/transformers/reverse/index.d.ts +18 -0
  313. package/dist/transformers/reverse/index.d.ts.map +1 -0
  314. package/dist/transformers/reverse/index.js +19 -0
  315. package/dist/transformers/reverse/member.d.ts +5 -0
  316. package/dist/transformers/reverse/member.d.ts.map +1 -0
  317. package/dist/transformers/reverse/member.js +43 -0
  318. package/dist/transformers/reverse/presence.d.ts +10 -0
  319. package/dist/transformers/reverse/presence.d.ts.map +1 -0
  320. package/dist/transformers/reverse/presence.js +23 -0
  321. package/dist/transformers/reverse/team.d.ts +4 -0
  322. package/dist/transformers/reverse/team.d.ts.map +1 -0
  323. package/dist/transformers/reverse/team.js +18 -0
  324. package/dist/transformers/reverse/widgetSettings.d.ts.map +1 -0
  325. package/dist/transformers/reverse/widgetSettings.js +8 -0
  326. package/dist/transformers/role.d.ts +8 -0
  327. package/dist/transformers/role.d.ts.map +1 -0
  328. package/dist/transformers/role.js +69 -0
  329. package/dist/transformers/scheduledEvent.d.ts +5 -0
  330. package/dist/transformers/scheduledEvent.d.ts.map +1 -0
  331. package/dist/transformers/scheduledEvent.js +40 -0
  332. package/dist/transformers/sku.d.ts +4 -0
  333. package/dist/transformers/sku.d.ts.map +1 -0
  334. package/dist/transformers/sku.js +13 -0
  335. package/dist/transformers/soundboardSound.d.ts +4 -0
  336. package/dist/transformers/soundboardSound.d.ts.map +1 -0
  337. package/dist/transformers/soundboardSound.js +15 -0
  338. package/dist/transformers/stageInstance.d.ts +4 -0
  339. package/dist/transformers/stageInstance.d.ts.map +1 -0
  340. package/dist/transformers/stageInstance.js +12 -0
  341. package/dist/transformers/stageInviteInstance.d.ts +6 -0
  342. package/dist/transformers/stageInviteInstance.d.ts.map +1 -0
  343. package/dist/transformers/stageInviteInstance.js +19 -0
  344. package/dist/transformers/sticker.d.ts +5 -0
  345. package/dist/transformers/sticker.d.ts.map +1 -0
  346. package/dist/transformers/sticker.js +30 -0
  347. package/dist/transformers/subscription.d.ts +4 -0
  348. package/dist/transformers/subscription.d.ts.map +1 -0
  349. package/dist/transformers/subscription.js +17 -0
  350. package/dist/transformers/team.d.ts +4 -0
  351. package/dist/transformers/team.d.ts.map +1 -0
  352. package/dist/transformers/team.js +19 -0
  353. package/dist/transformers/template.d.ts +4 -0
  354. package/dist/transformers/template.d.ts.map +1 -0
  355. package/dist/transformers/template.js +18 -0
  356. package/dist/transformers/threadMember.d.ts +14 -0
  357. package/dist/transformers/threadMember.d.ts.map +1 -0
  358. package/dist/transformers/threadMember.js +21 -0
  359. package/dist/transformers/toggles/Permissions.d.ts.map +1 -0
  360. package/dist/transformers/toggles/Permissions.js +18 -0
  361. package/dist/transformers/toggles/ToggleBitfield.d.ts.map +1 -0
  362. package/dist/transformers/toggles/ToggleBitfield.js +42 -0
  363. package/dist/transformers/toggles/channel.d.ts.map +1 -0
  364. package/dist/transformers/toggles/channel.js +55 -0
  365. package/dist/transformers/toggles/emoji.d.ts.map +1 -0
  366. package/dist/transformers/toggles/emoji.js +45 -0
  367. package/dist/transformers/toggles/guild.d.ts.map +1 -0
  368. package/dist/transformers/toggles/guild.js +256 -0
  369. package/dist/transformers/toggles/index.d.ts.map +1 -0
  370. package/dist/transformers/toggles/index.js +11 -0
  371. package/dist/transformers/toggles/member.d.ts.map +1 -0
  372. package/dist/transformers/toggles/member.js +114 -0
  373. package/dist/transformers/toggles/role.d.ts.map +1 -0
  374. package/dist/transformers/toggles/role.js +55 -0
  375. package/dist/transformers/toggles/user.d.ts.map +1 -0
  376. package/dist/transformers/toggles/user.js +45 -0
  377. package/dist/transformers/toggles/voice.d.ts.map +1 -0
  378. package/dist/transformers/toggles/voice.js +60 -0
  379. package/dist/transformers/types.d.ts +1758 -0
  380. package/dist/transformers/types.d.ts.map +1 -0
  381. package/dist/transformers/types.js +3 -0
  382. package/dist/transformers/user.d.ts +8 -0
  383. package/dist/transformers/user.d.ts.map +1 -0
  384. package/dist/transformers/user.js +68 -0
  385. package/dist/transformers/voiceRegion.d.ts.map +1 -0
  386. package/dist/transformers/voiceRegion.js +12 -0
  387. package/dist/transformers/voiceState.d.ts +6 -0
  388. package/dist/transformers/voiceState.d.ts.map +1 -0
  389. package/dist/transformers/voiceState.js +16 -0
  390. package/dist/transformers/webhook.d.ts +4 -0
  391. package/dist/transformers/webhook.d.ts.map +1 -0
  392. package/dist/transformers/webhook.js +27 -0
  393. package/dist/transformers/welcomeScreen.d.ts.map +1 -0
  394. package/dist/transformers/welcomeScreen.js +14 -0
  395. package/dist/transformers/widget.d.ts.map +1 -0
  396. package/dist/transformers/widget.js +15 -0
  397. package/dist/transformers/widgetSettings.d.ts.map +1 -0
  398. package/dist/transformers/widgetSettings.js +9 -0
  399. package/dist/transformers.d.ts +237 -0
  400. package/dist/transformers.d.ts.map +1 -0
  401. package/dist/transformers.js +178 -0
  402. package/package.json +14 -21
  403. package/dist/cjs/bot.cjs +0 -82
  404. package/dist/cjs/commandOptionsParser.cjs +0 -53
  405. package/dist/cjs/constants.cjs +0 -30
  406. package/dist/cjs/desiredProperties.cjs +0 -649
  407. package/dist/cjs/events.cjs +0 -6
  408. package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +0 -21
  409. package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +0 -21
  410. package/dist/cjs/handlers/channels/CHANNEL_PINS_UPDATE.cjs +0 -21
  411. package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +0 -20
  412. package/dist/cjs/handlers/channels/STAGE_INSTANCE_CREATE.cjs +0 -22
  413. package/dist/cjs/handlers/channels/STAGE_INSTANCE_DELETE.cjs +0 -22
  414. package/dist/cjs/handlers/channels/STAGE_INSTANCE_UPDATE.cjs +0 -22
  415. package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +0 -19
  416. package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +0 -19
  417. package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +0 -31
  418. package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +0 -22
  419. package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +0 -24
  420. package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +0 -19
  421. package/dist/cjs/handlers/channels/index.cjs +0 -32
  422. package/dist/cjs/handlers/emojis/GUILD_EMOJIS_UPDATE.cjs +0 -24
  423. package/dist/cjs/handlers/emojis/index.cjs +0 -20
  424. package/dist/cjs/handlers/entitlements/ENTITLEMENT_CREATE.cjs +0 -17
  425. package/dist/cjs/handlers/entitlements/ENTITLEMENT_DELETE.cjs +0 -17
  426. package/dist/cjs/handlers/entitlements/ENTITLEMENT_UPDATE.cjs +0 -17
  427. package/dist/cjs/handlers/entitlements/index.cjs +0 -22
  428. package/dist/cjs/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.cjs +0 -18
  429. package/dist/cjs/handlers/guilds/GUILD_BAN_ADD.cjs +0 -17
  430. package/dist/cjs/handlers/guilds/GUILD_BAN_REMOVE.cjs +0 -17
  431. package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +0 -20
  432. package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +0 -22
  433. package/dist/cjs/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.cjs +0 -19
  434. package/dist/cjs/handlers/guilds/GUILD_STICKERS_UPDATE.cjs +0 -23
  435. package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +0 -20
  436. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.cjs +0 -17
  437. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.cjs +0 -17
  438. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.cjs +0 -17
  439. package/dist/cjs/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.cjs +0 -17
  440. package/dist/cjs/handlers/guilds/automod/index.cjs +0 -23
  441. package/dist/cjs/handlers/guilds/index.cjs +0 -29
  442. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.cjs +0 -17
  443. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.cjs +0 -17
  444. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.cjs +0 -17
  445. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.cjs +0 -21
  446. package/dist/cjs/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.cjs +0 -21
  447. package/dist/cjs/handlers/guilds/scheduledEvents/index.cjs +0 -24
  448. package/dist/cjs/handlers/index.cjs +0 -35
  449. package/dist/cjs/handlers/integrations/INTEGRATION_CREATE.cjs +0 -16
  450. package/dist/cjs/handlers/integrations/INTEGRATION_DELETE.cjs +0 -21
  451. package/dist/cjs/handlers/integrations/INTEGRATION_UPDATE.cjs +0 -16
  452. package/dist/cjs/handlers/integrations/index.cjs +0 -22
  453. package/dist/cjs/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.cjs +0 -17
  454. package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +0 -19
  455. package/dist/cjs/handlers/interactions/index.cjs +0 -21
  456. package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +0 -19
  457. package/dist/cjs/handlers/invites/INVITE_DELETE.cjs +0 -21
  458. package/dist/cjs/handlers/invites/index.cjs +0 -21
  459. package/dist/cjs/handlers/members/GUILD_MEMBERS_CHUNK.cjs +0 -30
  460. package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +0 -20
  461. package/dist/cjs/handlers/members/GUILD_MEMBER_REMOVE.cjs +0 -19
  462. package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +0 -19
  463. package/dist/cjs/handlers/members/index.cjs +0 -23
  464. package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +0 -20
  465. package/dist/cjs/handlers/messages/MESSAGE_DELETE.cjs +0 -21
  466. package/dist/cjs/handlers/messages/MESSAGE_DELETE_BULK.cjs +0 -23
  467. package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +0 -31
  468. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +0 -25
  469. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.cjs +0 -21
  470. package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +0 -23
  471. package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +0 -21
  472. package/dist/cjs/handlers/messages/index.cjs +0 -27
  473. package/dist/cjs/handlers/misc/PRESENCE_UPDATE.cjs +0 -16
  474. package/dist/cjs/handlers/misc/READY.cjs +0 -28
  475. package/dist/cjs/handlers/misc/TYPING_START.cjs +0 -25
  476. package/dist/cjs/handlers/misc/USER_UPDATE.cjs +0 -17
  477. package/dist/cjs/handlers/misc/index.cjs +0 -23
  478. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_ADD.cjs +0 -23
  479. package/dist/cjs/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.cjs +0 -23
  480. package/dist/cjs/handlers/poll/index.cjs +0 -21
  481. package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +0 -20
  482. package/dist/cjs/handlers/roles/GUILD_ROLE_DELETE.cjs +0 -20
  483. package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +0 -20
  484. package/dist/cjs/handlers/roles/index.cjs +0 -22
  485. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.cjs +0 -20
  486. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.cjs +0 -17
  487. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.cjs +0 -20
  488. package/dist/cjs/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.cjs +0 -17
  489. package/dist/cjs/handlers/soundboard/SOUNDBOARD_SOUNDS.cjs +0 -20
  490. package/dist/cjs/handlers/soundboard/index.cjs +0 -24
  491. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_CREATE.cjs +0 -17
  492. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_DELETE.cjs +0 -17
  493. package/dist/cjs/handlers/subscriptions/SUBSCRIPTION_UPDATE.cjs +0 -17
  494. package/dist/cjs/handlers/subscriptions/index.cjs +0 -22
  495. package/dist/cjs/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.cjs +0 -26
  496. package/dist/cjs/handlers/voice/VOICE_SERVER_UPDATE.cjs +0 -21
  497. package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +0 -22
  498. package/dist/cjs/handlers/voice/index.cjs +0 -22
  499. package/dist/cjs/handlers/webhooks/WEBHOOKS_UPDATE.cjs +0 -20
  500. package/dist/cjs/handlers/webhooks/index.cjs +0 -20
  501. package/dist/cjs/handlers.cjs +0 -132
  502. package/dist/cjs/helpers.cjs +0 -792
  503. package/dist/cjs/index.cjs +0 -34
  504. package/dist/cjs/transformers/activity.cjs +0 -74
  505. package/dist/cjs/transformers/application.cjs +0 -70
  506. package/dist/cjs/transformers/applicationCommand.cjs +0 -29
  507. package/dist/cjs/transformers/applicationCommandOption.cjs +0 -31
  508. package/dist/cjs/transformers/applicationCommandOptionChoice.cjs +0 -20
  509. package/dist/cjs/transformers/applicationCommandPermission.cjs +0 -25
  510. package/dist/cjs/transformers/attachment.cjs +0 -31
  511. package/dist/cjs/transformers/auditLogEntry.cjs +0 -37
  512. package/dist/cjs/transformers/automodActionExecution.cjs +0 -35
  513. package/dist/cjs/transformers/automodRule.cjs +0 -41
  514. package/dist/cjs/transformers/avatarDecorationData.cjs +0 -20
  515. package/dist/cjs/transformers/channel.cjs +0 -149
  516. package/dist/cjs/transformers/component.cjs +0 -217
  517. package/dist/cjs/transformers/embed.cjs +0 -54
  518. package/dist/cjs/transformers/emoji.cjs +0 -57
  519. package/dist/cjs/transformers/entitlement.cjs +0 -27
  520. package/dist/cjs/transformers/gatewayBot.cjs +0 -25
  521. package/dist/cjs/transformers/guild.cjs +0 -158
  522. package/dist/cjs/transformers/incidentsData.cjs +0 -21
  523. package/dist/cjs/transformers/index.cjs +0 -68
  524. package/dist/cjs/transformers/integration.cjs +0 -44
  525. package/dist/cjs/transformers/interaction.cjs +0 -285
  526. package/dist/cjs/transformers/invite.cjs +0 -52
  527. package/dist/cjs/transformers/lobby.cjs +0 -41
  528. package/dist/cjs/transformers/member.cjs +0 -69
  529. package/dist/cjs/transformers/message.cjs +0 -315
  530. package/dist/cjs/transformers/onboarding.cjs +0 -56
  531. package/dist/cjs/transformers/poll.cjs +0 -50
  532. package/dist/cjs/transformers/presence.cjs +0 -25
  533. package/dist/cjs/transformers/reverse/activity.cjs +0 -53
  534. package/dist/cjs/transformers/reverse/allowedMentions.cjs +0 -20
  535. package/dist/cjs/transformers/reverse/application.cjs +0 -38
  536. package/dist/cjs/transformers/reverse/applicationCommand.cjs +0 -28
  537. package/dist/cjs/transformers/reverse/applicationCommandOption.cjs +0 -30
  538. package/dist/cjs/transformers/reverse/applicationCommandOptionChoice.cjs +0 -19
  539. package/dist/cjs/transformers/reverse/applicationCommandPermission.cjs +0 -24
  540. package/dist/cjs/transformers/reverse/attachment.cjs +0 -29
  541. package/dist/cjs/transformers/reverse/auditLogEntry.cjs +0 -37
  542. package/dist/cjs/transformers/reverse/component.cjs +0 -183
  543. package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
  544. package/dist/cjs/transformers/reverse/embed.cjs +0 -53
  545. package/dist/cjs/transformers/reverse/emoji.cjs +0 -24
  546. package/dist/cjs/transformers/reverse/gatewayBot.cjs +0 -24
  547. package/dist/cjs/transformers/reverse/index.cjs +0 -37
  548. package/dist/cjs/transformers/reverse/member.cjs +0 -59
  549. package/dist/cjs/transformers/reverse/presence.cjs +0 -41
  550. package/dist/cjs/transformers/reverse/team.cjs +0 -28
  551. package/dist/cjs/transformers/reverse/widgetSettings.cjs +0 -18
  552. package/dist/cjs/transformers/role.cjs +0 -90
  553. package/dist/cjs/transformers/scheduledEvent.cjs +0 -58
  554. package/dist/cjs/transformers/sku.cjs +0 -23
  555. package/dist/cjs/transformers/soundboardSound.cjs +0 -25
  556. package/dist/cjs/transformers/stageInstance.cjs +0 -22
  557. package/dist/cjs/transformers/stageInviteInstance.cjs +0 -23
  558. package/dist/cjs/transformers/sticker.cjs +0 -48
  559. package/dist/cjs/transformers/subscription.cjs +0 -27
  560. package/dist/cjs/transformers/team.cjs +0 -29
  561. package/dist/cjs/transformers/template.cjs +0 -28
  562. package/dist/cjs/transformers/threadMember.cjs +0 -36
  563. package/dist/cjs/transformers/toggles/Permissions.cjs +0 -28
  564. package/dist/cjs/transformers/toggles/ToggleBitfield.cjs +0 -60
  565. package/dist/cjs/transformers/toggles/channel.cjs +0 -73
  566. package/dist/cjs/transformers/toggles/emoji.cjs +0 -63
  567. package/dist/cjs/transformers/toggles/guild.cjs +0 -274
  568. package/dist/cjs/transformers/toggles/index.cjs +0 -28
  569. package/dist/cjs/transformers/toggles/member.cjs +0 -132
  570. package/dist/cjs/transformers/toggles/role.cjs +0 -73
  571. package/dist/cjs/transformers/toggles/user.cjs +0 -63
  572. package/dist/cjs/transformers/toggles/voice.cjs +0 -78
  573. package/dist/cjs/transformers/types.cjs +0 -6
  574. package/dist/cjs/transformers/user.cjs +0 -95
  575. package/dist/cjs/transformers/voiceRegion.cjs +0 -22
  576. package/dist/cjs/transformers/voiceState.cjs +0 -24
  577. package/dist/cjs/transformers/webhook.cjs +0 -37
  578. package/dist/cjs/transformers/welcomeScreen.cjs +0 -24
  579. package/dist/cjs/transformers/widget.cjs +0 -27
  580. package/dist/cjs/transformers/widgetSettings.cjs +0 -19
  581. package/dist/cjs/transformers.cjs +0 -186
  582. package/dist/cjs/utils.cjs +0 -32
  583. package/dist/esm/bot.js +0 -72
  584. package/dist/esm/commandOptionsParser.js +0 -43
  585. package/dist/esm/constants.js +0 -6
  586. package/dist/esm/desiredProperties.js +0 -631
  587. package/dist/esm/events.js +0 -3
  588. package/dist/esm/handlers/channels/CHANNEL_CREATE.js +0 -11
  589. package/dist/esm/handlers/channels/CHANNEL_DELETE.js +0 -11
  590. package/dist/esm/handlers/channels/CHANNEL_PINS_UPDATE.js +0 -11
  591. package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +0 -10
  592. package/dist/esm/handlers/channels/STAGE_INSTANCE_CREATE.js +0 -12
  593. package/dist/esm/handlers/channels/STAGE_INSTANCE_DELETE.js +0 -12
  594. package/dist/esm/handlers/channels/STAGE_INSTANCE_UPDATE.js +0 -12
  595. package/dist/esm/handlers/channels/THREAD_CREATE.js +0 -9
  596. package/dist/esm/handlers/channels/THREAD_DELETE.js +0 -9
  597. package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +0 -21
  598. package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +0 -12
  599. package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +0 -14
  600. package/dist/esm/handlers/channels/THREAD_UPDATE.js +0 -9
  601. package/dist/esm/handlers/channels/index.js +0 -15
  602. package/dist/esm/handlers/emojis/GUILD_EMOJIS_UPDATE.js +0 -14
  603. package/dist/esm/handlers/emojis/index.js +0 -3
  604. package/dist/esm/handlers/entitlements/ENTITLEMENT_CREATE.js +0 -7
  605. package/dist/esm/handlers/entitlements/ENTITLEMENT_DELETE.js +0 -7
  606. package/dist/esm/handlers/entitlements/ENTITLEMENT_UPDATE.js +0 -7
  607. package/dist/esm/handlers/entitlements/index.js +0 -5
  608. package/dist/esm/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.js +0 -8
  609. package/dist/esm/handlers/guilds/GUILD_BAN_ADD.js +0 -7
  610. package/dist/esm/handlers/guilds/GUILD_BAN_REMOVE.js +0 -7
  611. package/dist/esm/handlers/guilds/GUILD_CREATE.js +0 -10
  612. package/dist/esm/handlers/guilds/GUILD_DELETE.js +0 -12
  613. package/dist/esm/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.js +0 -9
  614. package/dist/esm/handlers/guilds/GUILD_STICKERS_UPDATE.js +0 -13
  615. package/dist/esm/handlers/guilds/GUILD_UPDATE.js +0 -10
  616. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.js +0 -7
  617. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.js +0 -7
  618. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.js +0 -7
  619. package/dist/esm/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.js +0 -7
  620. package/dist/esm/handlers/guilds/automod/index.js +0 -6
  621. package/dist/esm/handlers/guilds/index.js +0 -12
  622. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.js +0 -7
  623. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.js +0 -7
  624. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.js +0 -7
  625. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.js +0 -11
  626. package/dist/esm/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +0 -11
  627. package/dist/esm/handlers/guilds/scheduledEvents/index.js +0 -7
  628. package/dist/esm/handlers/index.js +0 -18
  629. package/dist/esm/handlers/integrations/INTEGRATION_CREATE.js +0 -6
  630. package/dist/esm/handlers/integrations/INTEGRATION_DELETE.js +0 -11
  631. package/dist/esm/handlers/integrations/INTEGRATION_UPDATE.js +0 -6
  632. package/dist/esm/handlers/integrations/index.js +0 -5
  633. package/dist/esm/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +0 -7
  634. package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +0 -9
  635. package/dist/esm/handlers/interactions/index.js +0 -4
  636. package/dist/esm/handlers/invites/INVITE_CREATE.js +0 -9
  637. package/dist/esm/handlers/invites/INVITE_DELETE.js +0 -11
  638. package/dist/esm/handlers/invites/index.js +0 -4
  639. package/dist/esm/handlers/members/GUILD_MEMBERS_CHUNK.js +0 -20
  640. package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +0 -10
  641. package/dist/esm/handlers/members/GUILD_MEMBER_REMOVE.js +0 -9
  642. package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +0 -9
  643. package/dist/esm/handlers/members/index.js +0 -6
  644. package/dist/esm/handlers/messages/MESSAGE_CREATE.js +0 -10
  645. package/dist/esm/handlers/messages/MESSAGE_DELETE.js +0 -11
  646. package/dist/esm/handlers/messages/MESSAGE_DELETE_BULK.js +0 -13
  647. package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +0 -21
  648. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +0 -15
  649. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.js +0 -11
  650. package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +0 -13
  651. package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +0 -11
  652. package/dist/esm/handlers/messages/index.js +0 -10
  653. package/dist/esm/handlers/misc/PRESENCE_UPDATE.js +0 -6
  654. package/dist/esm/handlers/misc/READY.js +0 -18
  655. package/dist/esm/handlers/misc/TYPING_START.js +0 -15
  656. package/dist/esm/handlers/misc/USER_UPDATE.js +0 -7
  657. package/dist/esm/handlers/misc/index.js +0 -6
  658. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_ADD.js +0 -13
  659. package/dist/esm/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.js +0 -13
  660. package/dist/esm/handlers/poll/index.js +0 -4
  661. package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +0 -10
  662. package/dist/esm/handlers/roles/GUILD_ROLE_DELETE.js +0 -10
  663. package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +0 -10
  664. package/dist/esm/handlers/roles/index.js +0 -5
  665. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -10
  666. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -7
  667. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -10
  668. package/dist/esm/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -7
  669. package/dist/esm/handlers/soundboard/SOUNDBOARD_SOUNDS.js +0 -10
  670. package/dist/esm/handlers/soundboard/index.js +0 -7
  671. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_CREATE.js +0 -7
  672. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_DELETE.js +0 -7
  673. package/dist/esm/handlers/subscriptions/SUBSCRIPTION_UPDATE.js +0 -7
  674. package/dist/esm/handlers/subscriptions/index.js +0 -5
  675. package/dist/esm/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.js +0 -16
  676. package/dist/esm/handlers/voice/VOICE_SERVER_UPDATE.js +0 -11
  677. package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +0 -12
  678. package/dist/esm/handlers/voice/index.js +0 -5
  679. package/dist/esm/handlers/webhooks/WEBHOOKS_UPDATE.js +0 -10
  680. package/dist/esm/handlers/webhooks/index.js +0 -3
  681. package/dist/esm/handlers.js +0 -81
  682. package/dist/esm/helpers.js +0 -782
  683. package/dist/esm/index.js +0 -17
  684. package/dist/esm/transformers/activity.js +0 -53
  685. package/dist/esm/transformers/application.js +0 -60
  686. package/dist/esm/transformers/applicationCommand.js +0 -19
  687. package/dist/esm/transformers/applicationCommandOption.js +0 -21
  688. package/dist/esm/transformers/applicationCommandOptionChoice.js +0 -10
  689. package/dist/esm/transformers/applicationCommandPermission.js +0 -15
  690. package/dist/esm/transformers/attachment.js +0 -21
  691. package/dist/esm/transformers/auditLogEntry.js +0 -27
  692. package/dist/esm/transformers/automodActionExecution.js +0 -25
  693. package/dist/esm/transformers/automodRule.js +0 -31
  694. package/dist/esm/transformers/avatarDecorationData.js +0 -10
  695. package/dist/esm/transformers/channel.js +0 -122
  696. package/dist/esm/transformers/component.js +0 -196
  697. package/dist/esm/transformers/embed.js +0 -44
  698. package/dist/esm/transformers/emoji.js +0 -36
  699. package/dist/esm/transformers/entitlement.js +0 -17
  700. package/dist/esm/transformers/gatewayBot.js +0 -15
  701. package/dist/esm/transformers/guild.js +0 -140
  702. package/dist/esm/transformers/incidentsData.js +0 -11
  703. package/dist/esm/transformers/index.js +0 -52
  704. package/dist/esm/transformers/integration.js +0 -34
  705. package/dist/esm/transformers/interaction.js +0 -252
  706. package/dist/esm/transformers/invite.js +0 -42
  707. package/dist/esm/transformers/lobby.js +0 -23
  708. package/dist/esm/transformers/member.js +0 -51
  709. package/dist/esm/transformers/message.js +0 -285
  710. package/dist/esm/transformers/onboarding.js +0 -35
  711. package/dist/esm/transformers/poll.js +0 -32
  712. package/dist/esm/transformers/presence.js +0 -15
  713. package/dist/esm/transformers/reverse/activity.js +0 -43
  714. package/dist/esm/transformers/reverse/allowedMentions.js +0 -10
  715. package/dist/esm/transformers/reverse/application.js +0 -28
  716. package/dist/esm/transformers/reverse/applicationCommand.js +0 -18
  717. package/dist/esm/transformers/reverse/applicationCommandOption.js +0 -20
  718. package/dist/esm/transformers/reverse/applicationCommandOptionChoice.js +0 -9
  719. package/dist/esm/transformers/reverse/applicationCommandPermission.js +0 -14
  720. package/dist/esm/transformers/reverse/attachment.js +0 -19
  721. package/dist/esm/transformers/reverse/auditLogEntry.js +0 -27
  722. package/dist/esm/transformers/reverse/component.js +0 -162
  723. package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
  724. package/dist/esm/transformers/reverse/embed.js +0 -43
  725. package/dist/esm/transformers/reverse/emoji.js +0 -14
  726. package/dist/esm/transformers/reverse/gatewayBot.js +0 -14
  727. package/dist/esm/transformers/reverse/index.js +0 -20
  728. package/dist/esm/transformers/reverse/member.js +0 -41
  729. package/dist/esm/transformers/reverse/presence.js +0 -23
  730. package/dist/esm/transformers/reverse/team.js +0 -18
  731. package/dist/esm/transformers/reverse/widgetSettings.js +0 -8
  732. package/dist/esm/transformers/role.js +0 -69
  733. package/dist/esm/transformers/scheduledEvent.js +0 -40
  734. package/dist/esm/transformers/sku.js +0 -13
  735. package/dist/esm/transformers/soundboardSound.js +0 -15
  736. package/dist/esm/transformers/stageInstance.js +0 -12
  737. package/dist/esm/transformers/stageInviteInstance.js +0 -13
  738. package/dist/esm/transformers/sticker.js +0 -30
  739. package/dist/esm/transformers/subscription.js +0 -17
  740. package/dist/esm/transformers/team.js +0 -19
  741. package/dist/esm/transformers/template.js +0 -18
  742. package/dist/esm/transformers/threadMember.js +0 -18
  743. package/dist/esm/transformers/toggles/Permissions.js +0 -18
  744. package/dist/esm/transformers/toggles/ToggleBitfield.js +0 -42
  745. package/dist/esm/transformers/toggles/channel.js +0 -55
  746. package/dist/esm/transformers/toggles/emoji.js +0 -45
  747. package/dist/esm/transformers/toggles/guild.js +0 -256
  748. package/dist/esm/transformers/toggles/index.js +0 -11
  749. package/dist/esm/transformers/toggles/member.js +0 -114
  750. package/dist/esm/transformers/toggles/role.js +0 -55
  751. package/dist/esm/transformers/toggles/user.js +0 -45
  752. package/dist/esm/transformers/toggles/voice.js +0 -60
  753. package/dist/esm/transformers/types.js +0 -3
  754. package/dist/esm/transformers/user.js +0 -68
  755. package/dist/esm/transformers/voiceRegion.js +0 -12
  756. package/dist/esm/transformers/voiceState.js +0 -14
  757. package/dist/esm/transformers/webhook.js +0 -27
  758. package/dist/esm/transformers/welcomeScreen.js +0 -14
  759. package/dist/esm/transformers/widget.js +0 -17
  760. package/dist/esm/transformers/widgetSettings.js +0 -9
  761. package/dist/esm/transformers.js +0 -176
  762. package/dist/esm/utils.js +0 -11
  763. package/dist/types/bot.d.ts +0 -86
  764. package/dist/types/bot.d.ts.map +0 -1
  765. package/dist/types/commandOptionsParser.d.ts.map +0 -1
  766. package/dist/types/constants.d.ts.map +0 -1
  767. package/dist/types/desiredProperties.d.ts +0 -212
  768. package/dist/types/desiredProperties.d.ts.map +0 -1
  769. package/dist/types/events.d.ts +0 -232
  770. package/dist/types/events.d.ts.map +0 -1
  771. package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +0 -1
  772. package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +0 -1
  773. package/dist/types/handlers/channels/CHANNEL_PINS_UPDATE.d.ts.map +0 -1
  774. package/dist/types/handlers/channels/CHANNEL_UPDATE.d.ts.map +0 -1
  775. package/dist/types/handlers/channels/STAGE_INSTANCE_CREATE.d.ts.map +0 -1
  776. package/dist/types/handlers/channels/STAGE_INSTANCE_DELETE.d.ts.map +0 -1
  777. package/dist/types/handlers/channels/STAGE_INSTANCE_UPDATE.d.ts.map +0 -1
  778. package/dist/types/handlers/channels/THREAD_CREATE.d.ts.map +0 -1
  779. package/dist/types/handlers/channels/THREAD_DELETE.d.ts.map +0 -1
  780. package/dist/types/handlers/channels/THREAD_LIST_SYNC.d.ts.map +0 -1
  781. package/dist/types/handlers/channels/THREAD_MEMBERS_UPDATE.d.ts.map +0 -1
  782. package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +0 -1
  783. package/dist/types/handlers/channels/THREAD_UPDATE.d.ts.map +0 -1
  784. package/dist/types/handlers/channels/index.d.ts.map +0 -1
  785. package/dist/types/handlers/emojis/GUILD_EMOJIS_UPDATE.d.ts.map +0 -1
  786. package/dist/types/handlers/emojis/index.d.ts.map +0 -1
  787. package/dist/types/handlers/entitlements/ENTITLEMENT_CREATE.d.ts.map +0 -1
  788. package/dist/types/handlers/entitlements/ENTITLEMENT_DELETE.d.ts.map +0 -1
  789. package/dist/types/handlers/entitlements/ENTITLEMENT_UPDATE.d.ts.map +0 -1
  790. package/dist/types/handlers/entitlements/index.d.ts.map +0 -1
  791. package/dist/types/handlers/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts.map +0 -1
  792. package/dist/types/handlers/guilds/GUILD_BAN_ADD.d.ts.map +0 -1
  793. package/dist/types/handlers/guilds/GUILD_BAN_REMOVE.d.ts.map +0 -1
  794. package/dist/types/handlers/guilds/GUILD_CREATE.d.ts.map +0 -1
  795. package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +0 -1
  796. package/dist/types/handlers/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts.map +0 -1
  797. package/dist/types/handlers/guilds/GUILD_STICKERS_UPDATE.d.ts.map +0 -1
  798. package/dist/types/handlers/guilds/GUILD_UPDATE.d.ts.map +0 -1
  799. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts.map +0 -1
  800. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts.map +0 -1
  801. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts.map +0 -1
  802. package/dist/types/handlers/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts.map +0 -1
  803. package/dist/types/handlers/guilds/automod/index.d.ts.map +0 -1
  804. package/dist/types/handlers/guilds/index.d.ts.map +0 -1
  805. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts.map +0 -1
  806. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts.map +0 -1
  807. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts.map +0 -1
  808. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts.map +0 -1
  809. package/dist/types/handlers/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts.map +0 -1
  810. package/dist/types/handlers/guilds/scheduledEvents/index.d.ts.map +0 -1
  811. package/dist/types/handlers/index.d.ts.map +0 -1
  812. package/dist/types/handlers/integrations/INTEGRATION_CREATE.d.ts.map +0 -1
  813. package/dist/types/handlers/integrations/INTEGRATION_DELETE.d.ts.map +0 -1
  814. package/dist/types/handlers/integrations/INTEGRATION_UPDATE.d.ts.map +0 -1
  815. package/dist/types/handlers/integrations/index.d.ts.map +0 -1
  816. package/dist/types/handlers/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts.map +0 -1
  817. package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +0 -1
  818. package/dist/types/handlers/interactions/index.d.ts.map +0 -1
  819. package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +0 -1
  820. package/dist/types/handlers/invites/INVITE_DELETE.d.ts.map +0 -1
  821. package/dist/types/handlers/invites/index.d.ts.map +0 -1
  822. package/dist/types/handlers/members/GUILD_MEMBERS_CHUNK.d.ts.map +0 -1
  823. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +0 -4
  824. package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +0 -1
  825. package/dist/types/handlers/members/GUILD_MEMBER_REMOVE.d.ts.map +0 -1
  826. package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +0 -1
  827. package/dist/types/handlers/members/index.d.ts.map +0 -1
  828. package/dist/types/handlers/messages/MESSAGE_CREATE.d.ts.map +0 -1
  829. package/dist/types/handlers/messages/MESSAGE_DELETE.d.ts.map +0 -1
  830. package/dist/types/handlers/messages/MESSAGE_DELETE_BULK.d.ts.map +0 -1
  831. package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +0 -1
  832. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +0 -1
  833. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts.map +0 -1
  834. package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +0 -1
  835. package/dist/types/handlers/messages/MESSAGE_UPDATE.d.ts.map +0 -1
  836. package/dist/types/handlers/messages/index.d.ts.map +0 -1
  837. package/dist/types/handlers/misc/PRESENCE_UPDATE.d.ts.map +0 -1
  838. package/dist/types/handlers/misc/READY.d.ts.map +0 -1
  839. package/dist/types/handlers/misc/TYPING_START.d.ts.map +0 -1
  840. package/dist/types/handlers/misc/USER_UPDATE.d.ts.map +0 -1
  841. package/dist/types/handlers/misc/index.d.ts.map +0 -1
  842. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_ADD.d.ts.map +0 -1
  843. package/dist/types/handlers/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts.map +0 -1
  844. package/dist/types/handlers/poll/index.d.ts.map +0 -1
  845. package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +0 -1
  846. package/dist/types/handlers/roles/GUILD_ROLE_DELETE.d.ts.map +0 -1
  847. package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +0 -1
  848. package/dist/types/handlers/roles/index.d.ts.map +0 -1
  849. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts.map +0 -1
  850. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts.map +0 -1
  851. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts.map +0 -1
  852. package/dist/types/handlers/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts.map +0 -1
  853. package/dist/types/handlers/soundboard/SOUNDBOARD_SOUNDS.d.ts.map +0 -1
  854. package/dist/types/handlers/soundboard/index.d.ts.map +0 -1
  855. package/dist/types/handlers/subscriptions/SUBSCRIPTION_CREATE.d.ts.map +0 -1
  856. package/dist/types/handlers/subscriptions/SUBSCRIPTION_DELETE.d.ts.map +0 -1
  857. package/dist/types/handlers/subscriptions/SUBSCRIPTION_UPDATE.d.ts.map +0 -1
  858. package/dist/types/handlers/subscriptions/index.d.ts.map +0 -1
  859. package/dist/types/handlers/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts.map +0 -1
  860. package/dist/types/handlers/voice/VOICE_SERVER_UPDATE.d.ts.map +0 -1
  861. package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +0 -1
  862. package/dist/types/handlers/voice/index.d.ts.map +0 -1
  863. package/dist/types/handlers/webhooks/WEBHOOKS_UPDATE.d.ts.map +0 -1
  864. package/dist/types/handlers/webhooks/index.d.ts.map +0 -1
  865. package/dist/types/handlers.d.ts.map +0 -1
  866. package/dist/types/helpers.d.ts +0 -244
  867. package/dist/types/helpers.d.ts.map +0 -1
  868. package/dist/types/index.d.ts +0 -16
  869. package/dist/types/index.d.ts.map +0 -1
  870. package/dist/types/transformers/activity.d.ts +0 -5
  871. package/dist/types/transformers/activity.d.ts.map +0 -1
  872. package/dist/types/transformers/application.d.ts +0 -6
  873. package/dist/types/transformers/application.d.ts.map +0 -1
  874. package/dist/types/transformers/applicationCommand.d.ts.map +0 -1
  875. package/dist/types/transformers/applicationCommandOption.d.ts.map +0 -1
  876. package/dist/types/transformers/applicationCommandOptionChoice.d.ts.map +0 -1
  877. package/dist/types/transformers/applicationCommandPermission.d.ts.map +0 -1
  878. package/dist/types/transformers/attachment.d.ts +0 -4
  879. package/dist/types/transformers/attachment.d.ts.map +0 -1
  880. package/dist/types/transformers/auditLogEntry.d.ts.map +0 -1
  881. package/dist/types/transformers/automodActionExecution.d.ts.map +0 -1
  882. package/dist/types/transformers/automodRule.d.ts.map +0 -1
  883. package/dist/types/transformers/avatarDecorationData.d.ts.map +0 -1
  884. package/dist/types/transformers/channel.d.ts +0 -11
  885. package/dist/types/transformers/channel.d.ts.map +0 -1
  886. package/dist/types/transformers/component.d.ts.map +0 -1
  887. package/dist/types/transformers/embed.d.ts.map +0 -1
  888. package/dist/types/transformers/emoji.d.ts +0 -6
  889. package/dist/types/transformers/emoji.d.ts.map +0 -1
  890. package/dist/types/transformers/entitlement.d.ts +0 -4
  891. package/dist/types/transformers/entitlement.d.ts.map +0 -1
  892. package/dist/types/transformers/gatewayBot.d.ts.map +0 -1
  893. package/dist/types/transformers/guild.d.ts +0 -8
  894. package/dist/types/transformers/guild.d.ts.map +0 -1
  895. package/dist/types/transformers/incidentsData.d.ts +0 -4
  896. package/dist/types/transformers/incidentsData.d.ts.map +0 -1
  897. package/dist/types/transformers/index.d.ts.map +0 -1
  898. package/dist/types/transformers/integration.d.ts.map +0 -1
  899. package/dist/types/transformers/interaction.d.ts +0 -23
  900. package/dist/types/transformers/interaction.d.ts.map +0 -1
  901. package/dist/types/transformers/invite.d.ts +0 -7
  902. package/dist/types/transformers/invite.d.ts.map +0 -1
  903. package/dist/types/transformers/lobby.d.ts +0 -5
  904. package/dist/types/transformers/lobby.d.ts.map +0 -1
  905. package/dist/types/transformers/member.d.ts +0 -5
  906. package/dist/types/transformers/member.d.ts.map +0 -1
  907. package/dist/types/transformers/message.d.ts +0 -15
  908. package/dist/types/transformers/message.d.ts.map +0 -1
  909. package/dist/types/transformers/onboarding.d.ts +0 -6
  910. package/dist/types/transformers/onboarding.d.ts.map +0 -1
  911. package/dist/types/transformers/poll.d.ts +0 -5
  912. package/dist/types/transformers/poll.d.ts.map +0 -1
  913. package/dist/types/transformers/presence.d.ts +0 -4
  914. package/dist/types/transformers/presence.d.ts.map +0 -1
  915. package/dist/types/transformers/reverse/activity.d.ts.map +0 -1
  916. package/dist/types/transformers/reverse/allowedMentions.d.ts.map +0 -1
  917. package/dist/types/transformers/reverse/application.d.ts +0 -3
  918. package/dist/types/transformers/reverse/application.d.ts.map +0 -1
  919. package/dist/types/transformers/reverse/applicationCommand.d.ts.map +0 -1
  920. package/dist/types/transformers/reverse/applicationCommandOption.d.ts.map +0 -1
  921. package/dist/types/transformers/reverse/applicationCommandOptionChoice.d.ts.map +0 -1
  922. package/dist/types/transformers/reverse/applicationCommandPermission.d.ts.map +0 -1
  923. package/dist/types/transformers/reverse/attachment.d.ts +0 -3
  924. package/dist/types/transformers/reverse/attachment.d.ts.map +0 -1
  925. package/dist/types/transformers/reverse/auditLogEntry.d.ts.map +0 -1
  926. package/dist/types/transformers/reverse/component.d.ts.map +0 -1
  927. package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
  928. package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
  929. package/dist/types/transformers/reverse/embed.d.ts.map +0 -1
  930. package/dist/types/transformers/reverse/emoji.d.ts +0 -4
  931. package/dist/types/transformers/reverse/emoji.d.ts.map +0 -1
  932. package/dist/types/transformers/reverse/gatewayBot.d.ts.map +0 -1
  933. package/dist/types/transformers/reverse/index.d.ts +0 -19
  934. package/dist/types/transformers/reverse/index.d.ts.map +0 -1
  935. package/dist/types/transformers/reverse/member.d.ts +0 -6
  936. package/dist/types/transformers/reverse/member.d.ts.map +0 -1
  937. package/dist/types/transformers/reverse/presence.d.ts +0 -10
  938. package/dist/types/transformers/reverse/presence.d.ts.map +0 -1
  939. package/dist/types/transformers/reverse/team.d.ts +0 -4
  940. package/dist/types/transformers/reverse/team.d.ts.map +0 -1
  941. package/dist/types/transformers/reverse/widgetSettings.d.ts.map +0 -1
  942. package/dist/types/transformers/role.d.ts +0 -9
  943. package/dist/types/transformers/role.d.ts.map +0 -1
  944. package/dist/types/transformers/scheduledEvent.d.ts +0 -5
  945. package/dist/types/transformers/scheduledEvent.d.ts.map +0 -1
  946. package/dist/types/transformers/sku.d.ts +0 -4
  947. package/dist/types/transformers/sku.d.ts.map +0 -1
  948. package/dist/types/transformers/soundboardSound.d.ts +0 -4
  949. package/dist/types/transformers/soundboardSound.d.ts.map +0 -1
  950. package/dist/types/transformers/stageInstance.d.ts +0 -4
  951. package/dist/types/transformers/stageInstance.d.ts.map +0 -1
  952. package/dist/types/transformers/stageInviteInstance.d.ts +0 -6
  953. package/dist/types/transformers/stageInviteInstance.d.ts.map +0 -1
  954. package/dist/types/transformers/sticker.d.ts +0 -5
  955. package/dist/types/transformers/sticker.d.ts.map +0 -1
  956. package/dist/types/transformers/subscription.d.ts +0 -4
  957. package/dist/types/transformers/subscription.d.ts.map +0 -1
  958. package/dist/types/transformers/team.d.ts +0 -4
  959. package/dist/types/transformers/team.d.ts.map +0 -1
  960. package/dist/types/transformers/template.d.ts +0 -4
  961. package/dist/types/transformers/template.d.ts.map +0 -1
  962. package/dist/types/transformers/threadMember.d.ts +0 -5
  963. package/dist/types/transformers/threadMember.d.ts.map +0 -1
  964. package/dist/types/transformers/toggles/Permissions.d.ts.map +0 -1
  965. package/dist/types/transformers/toggles/ToggleBitfield.d.ts.map +0 -1
  966. package/dist/types/transformers/toggles/channel.d.ts.map +0 -1
  967. package/dist/types/transformers/toggles/emoji.d.ts.map +0 -1
  968. package/dist/types/transformers/toggles/guild.d.ts.map +0 -1
  969. package/dist/types/transformers/toggles/index.d.ts.map +0 -1
  970. package/dist/types/transformers/toggles/member.d.ts.map +0 -1
  971. package/dist/types/transformers/toggles/role.d.ts.map +0 -1
  972. package/dist/types/transformers/toggles/user.d.ts.map +0 -1
  973. package/dist/types/transformers/toggles/voice.d.ts.map +0 -1
  974. package/dist/types/transformers/types.d.ts +0 -1758
  975. package/dist/types/transformers/types.d.ts.map +0 -1
  976. package/dist/types/transformers/user.d.ts +0 -8
  977. package/dist/types/transformers/user.d.ts.map +0 -1
  978. package/dist/types/transformers/voiceRegion.d.ts.map +0 -1
  979. package/dist/types/transformers/voiceState.d.ts +0 -7
  980. package/dist/types/transformers/voiceState.d.ts.map +0 -1
  981. package/dist/types/transformers/webhook.d.ts +0 -4
  982. package/dist/types/transformers/webhook.d.ts.map +0 -1
  983. package/dist/types/transformers/welcomeScreen.d.ts.map +0 -1
  984. package/dist/types/transformers/widget.d.ts.map +0 -1
  985. package/dist/types/transformers/widgetSettings.d.ts.map +0 -1
  986. package/dist/types/transformers.d.ts +0 -219
  987. package/dist/types/transformers.d.ts.map +0 -1
  988. package/dist/types/utils.d.ts +0 -5
  989. package/dist/types/utils.d.ts.map +0 -1
  990. /package/dist/{types/commandOptionsParser.d.ts → commandOptionsParser.d.ts} +0 -0
  991. /package/dist/{types/constants.d.ts → constants.d.ts} +0 -0
  992. /package/dist/{types/handlers → handlers}/channels/CHANNEL_CREATE.d.ts +0 -0
  993. /package/dist/{types/handlers → handlers}/channels/CHANNEL_DELETE.d.ts +0 -0
  994. /package/dist/{types/handlers → handlers}/channels/CHANNEL_PINS_UPDATE.d.ts +0 -0
  995. /package/dist/{types/handlers → handlers}/channels/CHANNEL_UPDATE.d.ts +0 -0
  996. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_CREATE.d.ts +0 -0
  997. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_DELETE.d.ts +0 -0
  998. /package/dist/{types/handlers → handlers}/channels/STAGE_INSTANCE_UPDATE.d.ts +0 -0
  999. /package/dist/{types/handlers → handlers}/channels/THREAD_CREATE.d.ts +0 -0
  1000. /package/dist/{types/handlers → handlers}/channels/THREAD_DELETE.d.ts +0 -0
  1001. /package/dist/{types/handlers → handlers}/channels/THREAD_LIST_SYNC.d.ts +0 -0
  1002. /package/dist/{types/handlers → handlers}/channels/THREAD_MEMBERS_UPDATE.d.ts +0 -0
  1003. /package/dist/{types/handlers → handlers}/channels/THREAD_MEMBER_UPDATE.d.ts +0 -0
  1004. /package/dist/{types/handlers → handlers}/channels/THREAD_UPDATE.d.ts +0 -0
  1005. /package/dist/{types/handlers → handlers}/channels/index.d.ts +0 -0
  1006. /package/dist/{types/handlers → handlers}/emojis/GUILD_EMOJIS_UPDATE.d.ts +0 -0
  1007. /package/dist/{types/handlers → handlers}/emojis/index.d.ts +0 -0
  1008. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_CREATE.d.ts +0 -0
  1009. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_DELETE.d.ts +0 -0
  1010. /package/dist/{types/handlers → handlers}/entitlements/ENTITLEMENT_UPDATE.d.ts +0 -0
  1011. /package/dist/{types/handlers → handlers}/entitlements/index.d.ts +0 -0
  1012. /package/dist/{types/handlers → handlers}/guilds/GUILD_AUDIT_LOG_ENTRY_CREATE.d.ts +0 -0
  1013. /package/dist/{types/handlers → handlers}/guilds/GUILD_BAN_ADD.d.ts +0 -0
  1014. /package/dist/{types/handlers → handlers}/guilds/GUILD_BAN_REMOVE.d.ts +0 -0
  1015. /package/dist/{types/handlers → handlers}/guilds/GUILD_CREATE.d.ts +0 -0
  1016. /package/dist/{types/handlers → handlers}/guilds/GUILD_DELETE.d.ts +0 -0
  1017. /package/dist/{types/handlers → handlers}/guilds/GUILD_INTEGRATIONS_UPDATE.d.ts +0 -0
  1018. /package/dist/{types/handlers → handlers}/guilds/GUILD_STICKERS_UPDATE.d.ts +0 -0
  1019. /package/dist/{types/handlers → handlers}/guilds/GUILD_UPDATE.d.ts +0 -0
  1020. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_ACTION_EXECUTION.d.ts +0 -0
  1021. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_CREATE.d.ts +0 -0
  1022. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_DELETE.d.ts +0 -0
  1023. /package/dist/{types/handlers → handlers}/guilds/automod/AUTO_MODERATION_RULE_UPDATE.d.ts +0 -0
  1024. /package/dist/{types/handlers → handlers}/guilds/automod/index.d.ts +0 -0
  1025. /package/dist/{types/handlers → handlers}/guilds/index.d.ts +0 -0
  1026. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_CREATE.d.ts +0 -0
  1027. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_DELETE.d.ts +0 -0
  1028. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_UPDATE.d.ts +0 -0
  1029. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_ADD.d.ts +0 -0
  1030. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/GUILD_SCHEDULED_EVENT_USER_REMOVE.d.ts +0 -0
  1031. /package/dist/{types/handlers → handlers}/guilds/scheduledEvents/index.d.ts +0 -0
  1032. /package/dist/{types/handlers → handlers}/index.d.ts +0 -0
  1033. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_CREATE.d.ts +0 -0
  1034. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_DELETE.d.ts +0 -0
  1035. /package/dist/{types/handlers → handlers}/integrations/INTEGRATION_UPDATE.d.ts +0 -0
  1036. /package/dist/{types/handlers → handlers}/integrations/index.d.ts +0 -0
  1037. /package/dist/{types/handlers → handlers}/interactions/APPLICATION_COMMAND_PERMISSIONS_UPDATE.d.ts +0 -0
  1038. /package/dist/{types/handlers → handlers}/interactions/INTERACTION_CREATE.d.ts +0 -0
  1039. /package/dist/{types/handlers → handlers}/interactions/index.d.ts +0 -0
  1040. /package/dist/{types/handlers → handlers}/invites/INVITE_CREATE.d.ts +0 -0
  1041. /package/dist/{types/handlers → handlers}/invites/INVITE_DELETE.d.ts +0 -0
  1042. /package/dist/{types/handlers → handlers}/invites/index.d.ts +0 -0
  1043. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBERS_CHUNK.d.ts +0 -0
  1044. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBER_REMOVE.d.ts +0 -0
  1045. /package/dist/{types/handlers → handlers}/members/GUILD_MEMBER_UPDATE.d.ts +0 -0
  1046. /package/dist/{types/handlers → handlers}/members/index.d.ts +0 -0
  1047. /package/dist/{types/handlers → handlers}/messages/MESSAGE_CREATE.d.ts +0 -0
  1048. /package/dist/{types/handlers → handlers}/messages/MESSAGE_DELETE.d.ts +0 -0
  1049. /package/dist/{types/handlers → handlers}/messages/MESSAGE_DELETE_BULK.d.ts +0 -0
  1050. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_ADD.d.ts +0 -0
  1051. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE.d.ts +0 -0
  1052. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE_ALL.d.ts +0 -0
  1053. /package/dist/{types/handlers → handlers}/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts +0 -0
  1054. /package/dist/{types/handlers → handlers}/messages/MESSAGE_UPDATE.d.ts +0 -0
  1055. /package/dist/{types/handlers → handlers}/messages/index.d.ts +0 -0
  1056. /package/dist/{types/handlers → handlers}/misc/PRESENCE_UPDATE.d.ts +0 -0
  1057. /package/dist/{types/handlers → handlers}/misc/READY.d.ts +0 -0
  1058. /package/dist/{types/handlers → handlers}/misc/TYPING_START.d.ts +0 -0
  1059. /package/dist/{types/handlers → handlers}/misc/USER_UPDATE.d.ts +0 -0
  1060. /package/dist/{types/handlers → handlers}/misc/index.d.ts +0 -0
  1061. /package/dist/{types/handlers → handlers}/poll/MESSAGE_POLL_VOTE_ADD.d.ts +0 -0
  1062. /package/dist/{types/handlers → handlers}/poll/MESSAGE_POLL_VOTE_REMOVE.d.ts +0 -0
  1063. /package/dist/{types/handlers → handlers}/poll/index.d.ts +0 -0
  1064. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_CREATE.d.ts +0 -0
  1065. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_DELETE.d.ts +0 -0
  1066. /package/dist/{types/handlers → handlers}/roles/GUILD_ROLE_UPDATE.d.ts +0 -0
  1067. /package/dist/{types/handlers → handlers}/roles/index.d.ts +0 -0
  1068. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUNDS_UPDATE.d.ts +0 -0
  1069. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_CREATE.d.ts +0 -0
  1070. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_DELETE.d.ts +0 -0
  1071. /package/dist/{types/handlers → handlers}/soundboard/GUILD_SOUNDBOARD_SOUND_UPDATE.d.ts +0 -0
  1072. /package/dist/{types/handlers → handlers}/soundboard/SOUNDBOARD_SOUNDS.d.ts +0 -0
  1073. /package/dist/{types/handlers → handlers}/soundboard/index.d.ts +0 -0
  1074. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_CREATE.d.ts +0 -0
  1075. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_DELETE.d.ts +0 -0
  1076. /package/dist/{types/handlers → handlers}/subscriptions/SUBSCRIPTION_UPDATE.d.ts +0 -0
  1077. /package/dist/{types/handlers → handlers}/subscriptions/index.d.ts +0 -0
  1078. /package/dist/{types/handlers → handlers}/voice/VOICE_CHANNEL_EFFECT_SEND.d.ts +0 -0
  1079. /package/dist/{types/handlers → handlers}/voice/VOICE_SERVER_UPDATE.d.ts +0 -0
  1080. /package/dist/{types/handlers → handlers}/voice/VOICE_STATE_UPDATE.d.ts +0 -0
  1081. /package/dist/{types/handlers → handlers}/voice/index.d.ts +0 -0
  1082. /package/dist/{types/handlers → handlers}/webhooks/WEBHOOKS_UPDATE.d.ts +0 -0
  1083. /package/dist/{types/handlers → handlers}/webhooks/index.d.ts +0 -0
  1084. /package/dist/{types/handlers.d.ts → handlers.d.ts} +0 -0
  1085. /package/dist/{types/transformers → transformers}/applicationCommand.d.ts +0 -0
  1086. /package/dist/{types/transformers → transformers}/applicationCommandOption.d.ts +0 -0
  1087. /package/dist/{types/transformers → transformers}/applicationCommandOptionChoice.d.ts +0 -0
  1088. /package/dist/{types/transformers → transformers}/applicationCommandPermission.d.ts +0 -0
  1089. /package/dist/{types/transformers → transformers}/auditLogEntry.d.ts +0 -0
  1090. /package/dist/{types/transformers → transformers}/automodActionExecution.d.ts +0 -0
  1091. /package/dist/{types/transformers → transformers}/automodRule.d.ts +0 -0
  1092. /package/dist/{types/transformers → transformers}/avatarDecorationData.d.ts +0 -0
  1093. /package/dist/{types/transformers → transformers}/component.d.ts +0 -0
  1094. /package/dist/{types/transformers → transformers}/embed.d.ts +0 -0
  1095. /package/dist/{types/transformers → transformers}/gatewayBot.d.ts +0 -0
  1096. /package/dist/{types/transformers → transformers}/index.d.ts +0 -0
  1097. /package/dist/{types/transformers → transformers}/integration.d.ts +0 -0
  1098. /package/dist/{types/transformers → transformers}/reverse/activity.d.ts +0 -0
  1099. /package/dist/{types/transformers → transformers}/reverse/allowedMentions.d.ts +0 -0
  1100. /package/dist/{types/transformers → transformers}/reverse/applicationCommand.d.ts +0 -0
  1101. /package/dist/{types/transformers → transformers}/reverse/applicationCommandOption.d.ts +0 -0
  1102. /package/dist/{types/transformers → transformers}/reverse/applicationCommandOptionChoice.d.ts +0 -0
  1103. /package/dist/{types/transformers → transformers}/reverse/applicationCommandPermission.d.ts +0 -0
  1104. /package/dist/{types/transformers → transformers}/reverse/auditLogEntry.d.ts +0 -0
  1105. /package/dist/{types/transformers → transformers}/reverse/component.d.ts +0 -0
  1106. /package/dist/{types/transformers → transformers}/reverse/embed.d.ts +0 -0
  1107. /package/dist/{types/transformers → transformers}/reverse/gatewayBot.d.ts +0 -0
  1108. /package/dist/{types/transformers → transformers}/reverse/widgetSettings.d.ts +0 -0
  1109. /package/dist/{types/transformers → transformers}/toggles/Permissions.d.ts +0 -0
  1110. /package/dist/{types/transformers → transformers}/toggles/ToggleBitfield.d.ts +0 -0
  1111. /package/dist/{types/transformers → transformers}/toggles/channel.d.ts +0 -0
  1112. /package/dist/{types/transformers → transformers}/toggles/emoji.d.ts +0 -0
  1113. /package/dist/{types/transformers → transformers}/toggles/guild.d.ts +0 -0
  1114. /package/dist/{types/transformers → transformers}/toggles/index.d.ts +0 -0
  1115. /package/dist/{types/transformers → transformers}/toggles/member.d.ts +0 -0
  1116. /package/dist/{types/transformers → transformers}/toggles/role.d.ts +0 -0
  1117. /package/dist/{types/transformers → transformers}/toggles/user.d.ts +0 -0
  1118. /package/dist/{types/transformers → transformers}/toggles/voice.d.ts +0 -0
  1119. /package/dist/{types/transformers → transformers}/voiceRegion.d.ts +0 -0
  1120. /package/dist/{types/transformers → transformers}/welcomeScreen.d.ts +0 -0
  1121. /package/dist/{types/transformers → transformers}/widget.d.ts +0 -0
  1122. /package/dist/{types/transformers → transformers}/widgetSettings.d.ts +0 -0
@@ -1,782 +0,0 @@
1
- import { snakelize } from '@discordeno/utils';
2
- export function createBotHelpers(bot) {
3
- return {
4
- createAutomodRule: async (guildId, options, reason)=>{
5
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.createAutomodRule(guildId, options, reason)));
6
- },
7
- createChannel: async (guildId, options, reason)=>{
8
- return bot.transformers.channel(bot, {
9
- channel: snakelize(await bot.rest.createChannel(guildId, options, reason)),
10
- guildId
11
- });
12
- },
13
- createEmoji: async (guildId, options, reason)=>{
14
- return bot.transformers.emoji(bot, snakelize(await bot.rest.createEmoji(guildId, options, reason)));
15
- },
16
- createApplicationEmoji: async (options)=>{
17
- return bot.transformers.emoji(bot, snakelize(await bot.rest.createApplicationEmoji(options)));
18
- },
19
- createForumThread: async (channelId, options, reason)=>{
20
- return bot.transformers.channel(bot, {
21
- channel: snakelize(await bot.rest.createForumThread(channelId, options, reason))
22
- });
23
- },
24
- createGlobalApplicationCommand: async (command, options)=>{
25
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.createGlobalApplicationCommand(command, options)));
26
- },
27
- createGuildApplicationCommand: async (command, guildId, options)=>{
28
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.createGuildApplicationCommand(command, guildId, options)));
29
- },
30
- createGuildSticker: async (guildId, options, reason)=>{
31
- return bot.transformers.sticker(bot, snakelize(await bot.rest.createGuildSticker(guildId, options, reason)));
32
- },
33
- createGuildTemplate: async (guildId, options)=>{
34
- return bot.transformers.template(bot, snakelize(await bot.rest.createGuildTemplate(guildId, options)));
35
- },
36
- createInvite: async (channelId, options, reason)=>{
37
- return await bot.rest.createInvite(channelId, options, reason);
38
- },
39
- createRole: async (guildId, options, reason)=>{
40
- return bot.transformers.role(bot, {
41
- role: snakelize(await bot.rest.createRole(guildId, options, reason)),
42
- guildId
43
- });
44
- },
45
- createScheduledEvent: async (guildId, options, reason)=>{
46
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.createScheduledEvent(guildId, options, reason)));
47
- },
48
- createStageInstance: async (options, reason)=>{
49
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.createStageInstance(options, reason)));
50
- },
51
- createWebhook: async (channelId, options, reason)=>{
52
- return bot.transformers.webhook(bot, snakelize(await bot.rest.createWebhook(channelId, options, reason)));
53
- },
54
- editApplicationCommandPermissions: async (guildId, commandId, bearerToken, options)=>{
55
- return bot.transformers.applicationCommandPermission(bot, snakelize(await bot.rest.editApplicationCommandPermissions(guildId, commandId, bearerToken, options)));
56
- },
57
- editAutomodRule: async (guildId, ruleId, options, reason)=>{
58
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.editAutomodRule(guildId, ruleId, options, reason)));
59
- },
60
- editBotProfile: async (options)=>{
61
- return bot.transformers.user(bot, snakelize(await bot.rest.editBotProfile(options)));
62
- },
63
- editChannel: async (channelId, options, reason)=>{
64
- return bot.transformers.channel(bot, {
65
- channel: snakelize(await bot.rest.editChannel(channelId, options, reason))
66
- });
67
- },
68
- editEmoji: async (guildId, id, options, reason)=>{
69
- return bot.transformers.emoji(bot, snakelize(await bot.rest.editEmoji(guildId, id, options, reason)));
70
- },
71
- editApplicationEmoji: async (id, options)=>{
72
- return bot.transformers.emoji(bot, snakelize(await bot.rest.editApplicationEmoji(id, options)));
73
- },
74
- editFollowupMessage: async (token, messageId, options)=>{
75
- return bot.transformers.message(bot, {
76
- message: snakelize(await bot.rest.editFollowupMessage(token, messageId, options)),
77
- shardId: 0
78
- });
79
- },
80
- editGlobalApplicationCommand: async (commandId, options)=>{
81
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGlobalApplicationCommand(commandId, options)));
82
- },
83
- editGuild: async (guildId, options, reason)=>{
84
- return bot.transformers.guild(bot, {
85
- guild: snakelize(await bot.rest.editGuild(guildId, options, reason)),
86
- shardId: 0
87
- });
88
- },
89
- editGuildApplicationCommand: async (commandId, guildId, options)=>{
90
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.editGuildApplicationCommand(commandId, guildId, options)));
91
- },
92
- editGuildSticker: async (guildId, stickerId, options, reason)=>{
93
- return bot.transformers.sticker(bot, snakelize(await bot.rest.editGuildSticker(guildId, stickerId, options, reason)));
94
- },
95
- editGuildTemplate: async (guildId, templateCode, options)=>{
96
- return bot.transformers.template(bot, snakelize(await bot.rest.editGuildTemplate(guildId, templateCode, options)));
97
- },
98
- editMessage: async (channelId, messageId, options)=>{
99
- return bot.transformers.message(bot, {
100
- message: snakelize(await bot.rest.editMessage(channelId, messageId, options)),
101
- shardId: 0
102
- });
103
- },
104
- editOriginalInteractionResponse: async (token, options)=>{
105
- return bot.transformers.message(bot, {
106
- message: snakelize(await bot.rest.editOriginalInteractionResponse(token, options)),
107
- shardId: 0
108
- });
109
- },
110
- editRole: async (guildId, roleId, options, reason)=>{
111
- return bot.transformers.role(bot, {
112
- role: snakelize(await bot.rest.editRole(guildId, roleId, options, reason)),
113
- guildId
114
- });
115
- },
116
- editRolePositions: async (guildId, options, reason)=>{
117
- return snakelize(await bot.rest.editRolePositions(guildId, options, reason)).map((role)=>bot.transformers.role(bot, {
118
- role,
119
- guildId
120
- }));
121
- },
122
- editScheduledEvent: async (guildId, eventId, options, reason)=>{
123
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.editScheduledEvent(guildId, eventId, options, reason)));
124
- },
125
- editStageInstance: async (channelId, topic, reason)=>{
126
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.editStageInstance(channelId, topic, reason)));
127
- },
128
- editWebhook: async (webhookId, options, reason)=>{
129
- return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhook(webhookId, options, reason)));
130
- },
131
- editWebhookMessage: async (webhookId, token, messageId, options)=>{
132
- return bot.transformers.message(bot, {
133
- message: snakelize(await bot.rest.editWebhookMessage(webhookId, token, messageId, options)),
134
- shardId: 0
135
- });
136
- },
137
- editWebhookWithToken: async (webhookId, token, options)=>{
138
- return bot.transformers.webhook(bot, snakelize(await bot.rest.editWebhookWithToken(webhookId, token, options)));
139
- },
140
- editWelcomeScreen: async (guildId, options, reason)=>{
141
- return bot.transformers.welcomeScreen(bot, snakelize(await bot.rest.editWelcomeScreen(guildId, options, reason)));
142
- },
143
- editWidgetSettings: async (guildId, options, reason)=>{
144
- return bot.transformers.widgetSettings(bot, snakelize(await bot.rest.editWidgetSettings(guildId, options, reason)));
145
- },
146
- executeWebhook: async (webhookId, token, options)=>{
147
- const result = await bot.rest.executeWebhook(webhookId, token, options);
148
- if (!result) return;
149
- return bot.transformers.message(bot, {
150
- message: snakelize(result),
151
- shardId: 0
152
- });
153
- },
154
- followAnnouncement: async (sourceChannelId, targetChannelId)=>{
155
- return await bot.rest.followAnnouncement(sourceChannelId, targetChannelId);
156
- },
157
- getActiveThreads: async (guildId)=>{
158
- const result = await bot.rest.getActiveThreads(guildId);
159
- return {
160
- threads: result.threads.map((thread)=>bot.transformers.channel(bot, {
161
- guildId,
162
- channel: snakelize(thread)
163
- })),
164
- members: result.members.map((member)=>bot.transformers.threadMember(bot, snakelize(member)))
165
- };
166
- },
167
- getApplicationInfo: async ()=>{
168
- return bot.transformers.application(bot, {
169
- application: snakelize(await bot.rest.getApplicationInfo()),
170
- shardId: 0
171
- });
172
- },
173
- editApplicationInfo: async (body)=>{
174
- return bot.transformers.application(bot, {
175
- application: snakelize(await bot.rest.editApplicationInfo(body)),
176
- shardId: 0
177
- });
178
- },
179
- getCurrentAuthenticationInfo: async (bearerToken)=>{
180
- return await bot.rest.getCurrentAuthenticationInfo(bearerToken);
181
- },
182
- exchangeToken: async (clientId, clientSecret, options)=>{
183
- return await bot.rest.exchangeToken(clientId, clientSecret, options);
184
- },
185
- revokeToken: async (clientId, clientSecret, options)=>{
186
- return await bot.rest.revokeToken(clientId, clientSecret, options);
187
- },
188
- getApplicationCommandPermission: async (guildId, commandId, options)=>{
189
- const res = await bot.rest.getApplicationCommandPermission(guildId, commandId, options);
190
- const snakedRes = snakelize(res);
191
- return bot.transformers.applicationCommandPermission(bot, snakedRes);
192
- },
193
- getApplicationCommandPermissions: async (guildId, options)=>{
194
- return (await bot.rest.getApplicationCommandPermissions(guildId, options)).map((res)=>bot.transformers.applicationCommandPermission(bot, snakelize(res)));
195
- },
196
- getAuditLog: async (guildId, options)=>{
197
- return await bot.rest.getAuditLog(guildId, options);
198
- },
199
- getAutomodRule: async (guildId, ruleId)=>{
200
- return bot.transformers.automodRule(bot, snakelize(await bot.rest.getAutomodRule(guildId, ruleId)));
201
- },
202
- getAutomodRules: async (guildId)=>{
203
- return (await bot.rest.getAutomodRules(guildId)).map((res)=>bot.transformers.automodRule(bot, snakelize(res)));
204
- },
205
- getAvailableVoiceRegions: async ()=>{
206
- return (await bot.rest.getAvailableVoiceRegions()).map((res)=>bot.transformers.voiceRegion(bot, snakelize(res)));
207
- },
208
- getBan: async (guildId, userId)=>{
209
- return await bot.rest.getBan(guildId, userId);
210
- },
211
- getBans: async (guildId, options)=>{
212
- return await bot.rest.getBans(guildId, options);
213
- },
214
- getChannel: async (channelId)=>{
215
- return bot.transformers.channel(bot, {
216
- channel: snakelize(await bot.rest.getChannel(channelId))
217
- });
218
- },
219
- getChannelInvites: async (channelId)=>{
220
- return await bot.rest.getChannelInvites(channelId);
221
- // return (await bot.rest.getChannelInvites(channelId)).map((res) => bot.transformers.invite(bot, snakelize(res)))
222
- },
223
- getChannels: async (guildId)=>{
224
- return (await bot.rest.getChannels(guildId)).map((res)=>bot.transformers.channel(bot, {
225
- channel: snakelize(res),
226
- guildId
227
- }));
228
- },
229
- getChannelWebhooks: async (channelId)=>{
230
- return (await bot.rest.getChannelWebhooks(channelId)).map((res)=>bot.transformers.webhook(bot, snakelize(res)));
231
- },
232
- getDmChannel: async (userId)=>{
233
- return bot.transformers.channel(bot, {
234
- channel: snakelize(await bot.rest.getDmChannel(userId))
235
- });
236
- },
237
- getGroupDmChannel: async (options)=>{
238
- return bot.transformers.channel(bot, {
239
- channel: snakelize(await bot.rest.getGroupDmChannel(options))
240
- });
241
- },
242
- getEmoji: async (guildId, emojiId)=>{
243
- return bot.transformers.emoji(bot, snakelize(await bot.rest.getEmoji(guildId, emojiId)));
244
- },
245
- getApplicationEmoji: async (emojiId)=>{
246
- return bot.transformers.emoji(bot, snakelize(await bot.rest.getApplicationEmoji(emojiId)));
247
- },
248
- getEmojis: async (guildId)=>{
249
- return (await bot.rest.getEmojis(guildId)).map((res)=>bot.transformers.emoji(bot, snakelize(res)));
250
- },
251
- getApplicationEmojis: async ()=>{
252
- const res = await bot.rest.getApplicationEmojis();
253
- return {
254
- items: res.items.map((item)=>bot.transformers.emoji(bot, snakelize(item)))
255
- };
256
- },
257
- getFollowupMessage: async (token, messageId)=>{
258
- return bot.transformers.message(bot, {
259
- message: snakelize(await bot.rest.getFollowupMessage(token, messageId)),
260
- shardId: 0
261
- });
262
- },
263
- getGatewayBot: async ()=>{
264
- return bot.transformers.gatewayBot(bot, snakelize(await bot.rest.getGatewayBot()));
265
- },
266
- getGlobalApplicationCommand: async (commandId)=>{
267
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.getGlobalApplicationCommand(commandId)));
268
- },
269
- getGlobalApplicationCommands: async ()=>{
270
- return (await bot.rest.getGlobalApplicationCommands()).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
271
- },
272
- getGuild: async (guildId, options)=>{
273
- return bot.transformers.guild(bot, {
274
- guild: snakelize(await bot.rest.getGuild(guildId, options)),
275
- shardId: 0
276
- });
277
- },
278
- getGuilds: async (bearerToken, options)=>{
279
- return (await bot.rest.getGuilds(bearerToken, options)).map((res)=>// @ts-expect-error getGuilds returns partial guilds
280
- bot.transformers.guild(bot, {
281
- guild: snakelize(res),
282
- shardId: 0
283
- }));
284
- },
285
- getGuildApplicationCommand: async (commandId, guildId)=>{
286
- return bot.transformers.applicationCommand(bot, snakelize(await bot.rest.getGuildApplicationCommand(commandId, guildId)));
287
- },
288
- getGuildApplicationCommands: async (guildId)=>{
289
- return (await bot.rest.getGuildApplicationCommands(guildId)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
290
- },
291
- getGuildPreview: async (guildId)=>{
292
- return await bot.rest.getGuildPreview(guildId);
293
- // return bot.transformers.xxx(bot, snakelize(await bot.rest.getGuildPreview(guildId)))
294
- },
295
- getGuildSticker: async (guildId, stickerId)=>{
296
- return bot.transformers.sticker(bot, snakelize(await bot.rest.getGuildSticker(guildId, stickerId)));
297
- },
298
- getGuildStickers: async (guildId)=>{
299
- return (await bot.rest.getGuildStickers(guildId)).map((res)=>bot.transformers.sticker(bot, snakelize(res)));
300
- },
301
- getGuildTemplate: async (templateCode)=>{
302
- return bot.transformers.template(bot, snakelize(await bot.rest.getGuildTemplate(templateCode)));
303
- },
304
- getGuildTemplates: async (guildId)=>{
305
- return (await bot.rest.getGuildTemplates(guildId)).map((res)=>bot.transformers.template(bot, snakelize(res)));
306
- },
307
- getGuildWebhooks: async (guildId)=>{
308
- return (await bot.rest.getGuildWebhooks(guildId)).map((res)=>bot.transformers.webhook(bot, snakelize(res)));
309
- },
310
- getIntegrations: async (guildId)=>{
311
- return (await bot.rest.getIntegrations(guildId)).map((res)=>bot.transformers.integration(bot, snakelize({
312
- ...res,
313
- guildId: guildId.toString()
314
- })));
315
- },
316
- getInvite: async (inviteCode, options)=>{
317
- return bot.transformers.invite(bot, {
318
- invite: snakelize(await bot.rest.getInvite(inviteCode, options)),
319
- shardId: 0
320
- });
321
- },
322
- getInvites: async (guildId)=>{
323
- return (await bot.rest.getInvites(guildId)).map((res)=>bot.transformers.invite(bot, {
324
- invite: snakelize(res),
325
- shardId: 0
326
- }));
327
- },
328
- getMessage: async (channelId, messageId)=>{
329
- return bot.transformers.message(bot, {
330
- message: snakelize(await bot.rest.getMessage(channelId, messageId)),
331
- shardId: 0
332
- });
333
- },
334
- getMessages: async (channelId, options)=>{
335
- return (await bot.rest.getMessages(channelId, options)).map((res)=>bot.transformers.message(bot, {
336
- message: snakelize(res),
337
- shardId: 0
338
- }));
339
- },
340
- getStickerPack: async (stickerPackId)=>{
341
- return bot.transformers.stickerPack(bot, snakelize(await bot.rest.getStickerPack(stickerPackId)));
342
- },
343
- getStickerPacks: async ()=>{
344
- return (await bot.rest.getStickerPacks()).map((res)=>bot.transformers.stickerPack(bot, snakelize(res)));
345
- },
346
- getOriginalInteractionResponse: async (token)=>{
347
- return bot.transformers.message(bot, {
348
- message: snakelize(await bot.rest.getOriginalInteractionResponse(token)),
349
- shardId: 0
350
- });
351
- },
352
- getChannelPins: async (channelId, options)=>{
353
- const res = snakelize(await bot.rest.getChannelPins(channelId, options));
354
- return {
355
- hasMore: res.has_more,
356
- items: res.items.map((item)=>bot.transformers.messagePin(bot, item))
357
- };
358
- },
359
- getPinnedMessages: async (channelId)=>{
360
- return (await bot.rest.getPinnedMessages(channelId)).map((res)=>bot.transformers.message(bot, {
361
- message: snakelize(res),
362
- shardId: 0
363
- }));
364
- },
365
- getPrivateArchivedThreads: async (channelId, options)=>{
366
- return await bot.rest.getPrivateArchivedThreads(channelId, options);
367
- },
368
- getPrivateJoinedArchivedThreads: async (channelId, options)=>{
369
- return await bot.rest.getPrivateJoinedArchivedThreads(channelId, options);
370
- },
371
- getPruneCount: async (guildId, options)=>{
372
- return await bot.rest.getPruneCount(guildId, options);
373
- },
374
- getPublicArchivedThreads: async (channelId, options)=>{
375
- return await bot.rest.getPublicArchivedThreads(channelId, options);
376
- },
377
- getRoles: async (guildId)=>{
378
- return snakelize(await bot.rest.getRoles(guildId)).map((role)=>bot.transformers.role(bot, {
379
- role,
380
- guildId
381
- }));
382
- },
383
- getRole: async (guildId, roleId)=>{
384
- return bot.transformers.role(bot, {
385
- role: snakelize(await bot.rest.getRole(guildId, roleId)),
386
- guildId
387
- });
388
- },
389
- getScheduledEvent: async (guildId, eventId, options)=>{
390
- return bot.transformers.scheduledEvent(bot, snakelize(await bot.rest.getScheduledEvent(guildId, eventId, options)));
391
- },
392
- getScheduledEvents: async (guildId, options)=>{
393
- return (await bot.rest.getScheduledEvents(guildId, options)).map((res)=>bot.transformers.scheduledEvent(bot, snakelize(res)));
394
- },
395
- getScheduledEventUsers: async (guildId, eventId, options)=>{
396
- return (await bot.rest.getScheduledEventUsers(guildId, eventId, options)).map((u)=>{
397
- return {
398
- user: bot.transformers.user(bot, snakelize(u.user)),
399
- member: u.member && bot.transformers.member(bot, snakelize(u.member), guildId, bot.transformers.snowflake(u.user.id))
400
- };
401
- });
402
- },
403
- getSessionInfo: async ()=>{
404
- return bot.transformers.gatewayBot(bot, snakelize(await bot.rest.getSessionInfo()));
405
- },
406
- getStageInstance: async (channelId)=>{
407
- return bot.transformers.stageInstance(bot, snakelize(await bot.rest.getStageInstance(channelId)));
408
- },
409
- getOwnVoiceState: async (guildId)=>{
410
- return bot.transformers.voiceState(bot, {
411
- guildId,
412
- voiceState: snakelize(await bot.rest.getOwnVoiceState(guildId))
413
- });
414
- },
415
- getUserVoiceState: async (guildId, userId)=>{
416
- return bot.transformers.voiceState(bot, {
417
- guildId,
418
- voiceState: snakelize(await bot.rest.getUserVoiceState(guildId, userId))
419
- });
420
- },
421
- getSticker: async (stickerId)=>{
422
- return bot.transformers.sticker(bot, snakelize(await bot.rest.getSticker(stickerId)));
423
- },
424
- getThreadMember: async (channelId, userId, options)=>{
425
- return bot.transformers.threadMember(bot, snakelize(await bot.rest.getThreadMember(channelId, userId, options)));
426
- },
427
- getThreadMembers: async (channelId, options)=>{
428
- return (await bot.rest.getThreadMembers(channelId, options)).map((res)=>bot.transformers.threadMember(bot, snakelize(res)));
429
- },
430
- getReactions: async (channelId, messageId, reaction, options)=>{
431
- return (await bot.rest.getReactions(channelId, messageId, reaction, options)).map((res)=>bot.transformers.user(bot, snakelize(res)));
432
- },
433
- getUser: async (id)=>{
434
- return bot.transformers.user(bot, snakelize(await bot.rest.getUser(id)));
435
- },
436
- getCurrentUser: async (bearerToken)=>{
437
- return bot.transformers.user(bot, snakelize(await bot.rest.getCurrentUser(bearerToken)));
438
- },
439
- getUserConnections: async (bearerToken)=>{
440
- return await bot.rest.getUserConnections(bearerToken);
441
- },
442
- getUserApplicationRoleConnection: async (bearerToken, applicationId)=>{
443
- return await bot.rest.getUserApplicationRoleConnection(bearerToken, applicationId);
444
- },
445
- getVanityUrl: async (guildId)=>{
446
- return await bot.rest.getVanityUrl(guildId);
447
- },
448
- getVoiceRegions: async (guildId)=>{
449
- return (await bot.rest.getVoiceRegions(guildId)).map((res)=>bot.transformers.voiceRegion(bot, snakelize(res)));
450
- },
451
- getWebhook: async (webhookId)=>{
452
- return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhook(webhookId)));
453
- },
454
- getWebhookMessage: async (webhookId, token, messageId, options)=>{
455
- return bot.transformers.message(bot, {
456
- message: snakelize(await bot.rest.getWebhookMessage(webhookId, token, messageId, options)),
457
- shardId: 0
458
- });
459
- },
460
- getWebhookWithToken: async (webhookId, token)=>{
461
- return bot.transformers.webhook(bot, snakelize(await bot.rest.getWebhookWithToken(webhookId, token)));
462
- },
463
- getWelcomeScreen: async (guildId)=>{
464
- return bot.transformers.welcomeScreen(bot, snakelize(await bot.rest.getWelcomeScreen(guildId)));
465
- },
466
- getWidget: async (guildId)=>{
467
- return bot.transformers.widget(bot, snakelize(await bot.rest.getWidget(guildId)));
468
- },
469
- getWidgetSettings: async (guildId)=>{
470
- return bot.transformers.widgetSettings(bot, snakelize(await bot.rest.getWidgetSettings(guildId)));
471
- },
472
- publishMessage: async (channelId, messageId)=>{
473
- return bot.transformers.message(bot, {
474
- message: snakelize(await bot.rest.publishMessage(channelId, messageId)),
475
- shardId: 0
476
- });
477
- },
478
- sendMessage: async (channelId, options)=>{
479
- return bot.transformers.message(bot, {
480
- message: snakelize(await bot.rest.sendMessage(channelId, options)),
481
- shardId: 0
482
- });
483
- },
484
- sendFollowupMessage: async (token, options)=>{
485
- return bot.transformers.message(bot, {
486
- message: snakelize(await bot.rest.sendFollowupMessage(token, options)),
487
- shardId: 0
488
- });
489
- },
490
- startThreadWithMessage: async (channelId, messageId, options, reason)=>{
491
- return bot.transformers.channel(bot, {
492
- channel: snakelize(await bot.rest.startThreadWithMessage(channelId, messageId, options, reason))
493
- });
494
- },
495
- startThreadWithoutMessage: async (channelId, options, reason)=>{
496
- return bot.transformers.channel(bot, {
497
- channel: snakelize(await bot.rest.startThreadWithoutMessage(channelId, options, reason))
498
- });
499
- },
500
- syncGuildTemplate: async (guildId)=>{
501
- return bot.transformers.template(bot, snakelize(await bot.rest.syncGuildTemplate(guildId)));
502
- },
503
- upsertGlobalApplicationCommands: async (commands, options)=>{
504
- return (await bot.rest.upsertGlobalApplicationCommands(commands, options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
505
- },
506
- upsertGuildApplicationCommands: async (guildId, commands, options)=>{
507
- return (await bot.rest.upsertGuildApplicationCommands(guildId, commands, options)).map((res)=>bot.transformers.applicationCommand(bot, snakelize(res)));
508
- },
509
- editBotMember: async (guildId, options, reason)=>{
510
- return bot.transformers.member(bot, snakelize(await bot.rest.editBotMember(guildId, options, reason)), guildId, bot.id);
511
- },
512
- editMember: async (guildId, userId, options, reason)=>{
513
- return bot.transformers.member(bot, snakelize(await bot.rest.editMember(guildId, userId, options, reason)), guildId, userId);
514
- },
515
- getMember: async (guildId, userId)=>{
516
- return bot.transformers.member(bot, snakelize(await bot.rest.getMember(guildId, userId)), guildId, userId);
517
- },
518
- getCurrentMember: async (guildId, bearerToken)=>{
519
- const res = await bot.rest.getCurrentMember(guildId, bearerToken);
520
- return bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id));
521
- },
522
- getMembers: async (guildId, options)=>{
523
- return (await bot.rest.getMembers(guildId, options)).map((res)=>bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)));
524
- },
525
- pruneMembers: async (guildId, options, reason)=>{
526
- return await bot.rest.pruneMembers(guildId, options, reason);
527
- },
528
- searchMembers: async (guildId, query, options)=>{
529
- return (await bot.rest.searchMembers(guildId, query, options)).map((res)=>bot.transformers.member(bot, snakelize(res), guildId, bot.transformers.snowflake(res.user.id)));
530
- },
531
- bulkBanMembers: async (guildId, options, reason)=>{
532
- const res = await bot.rest.bulkBanMembers(guildId, options, reason);
533
- return {
534
- bannedUsers: res.bannedUsers.map((x)=>bot.transformers.snowflake(x)),
535
- failedUsers: res.failedUsers.map((x)=>bot.transformers.snowflake(x))
536
- };
537
- },
538
- getApplicationActivityInstance: async (applicationId, instanceId)=>{
539
- return await bot.rest.getApplicationActivityInstance(applicationId, instanceId);
540
- },
541
- listApplicationRoleConnectionsMetadataRecords: async (applicationId)=>{
542
- return await bot.rest.listApplicationRoleConnectionsMetadataRecords(applicationId);
543
- },
544
- updateApplicationRoleConnectionsMetadataRecords: async (applicationId, options)=>{
545
- return await bot.rest.updateApplicationRoleConnectionsMetadataRecords(applicationId, options);
546
- },
547
- createLobby: async (options)=>{
548
- return bot.transformers.lobby(bot, snakelize(await bot.rest.createLobby(options)));
549
- },
550
- getLobby: async (lobbyId)=>{
551
- return bot.transformers.lobby(bot, snakelize(await bot.rest.getLobby(lobbyId)));
552
- },
553
- modifyLobby: async (lobbyId, options)=>{
554
- return bot.transformers.lobby(bot, snakelize(await bot.rest.modifyLobby(lobbyId, options)));
555
- },
556
- addMemberToLobby: async (lobbyId, userId, options)=>{
557
- return bot.transformers.lobbyMember(bot, snakelize(await bot.rest.addMemberToLobby(lobbyId, userId, options)));
558
- },
559
- linkChannelToLobby: async (lobbyId, bearerToken, options)=>{
560
- return bot.transformers.lobby(bot, snakelize(await bot.rest.linkChannelToLobby(lobbyId, bearerToken, options)));
561
- },
562
- unlinkChannelToLobby: async (lobbyId, bearerToken)=>{
563
- return bot.transformers.lobby(bot, snakelize(await bot.rest.unlinkChannelToLobby(lobbyId, bearerToken)));
564
- },
565
- // All useless void return functions here
566
- addReaction: async (channelId, messageId, reaction)=>{
567
- return await bot.rest.addReaction(channelId, messageId, reaction);
568
- },
569
- addReactions: async (channelId, messageId, reactions, ordered)=>{
570
- return await bot.rest.addReactions(channelId, messageId, reactions, ordered);
571
- },
572
- addRole: async (guildId, userId, roleId, reason)=>{
573
- return await bot.rest.addRole(guildId, userId, roleId, reason);
574
- },
575
- addThreadMember: async (channelId, userId)=>{
576
- return await bot.rest.addThreadMember(channelId, userId);
577
- },
578
- addDmRecipient: async (channelId, userId, options)=>{
579
- return await bot.rest.addDmRecipient(channelId, userId, options);
580
- },
581
- addGuildMember: async (guildId, userId, options)=>{
582
- return await bot.rest.addGuildMember(guildId, userId, options);
583
- },
584
- deleteAutomodRule: async (guildId, ruleId, reason)=>{
585
- return await bot.rest.deleteAutomodRule(guildId, ruleId, reason);
586
- },
587
- deleteChannel: async (channelId, reason)=>{
588
- return await bot.rest.deleteChannel(channelId, reason);
589
- },
590
- deleteChannelPermissionOverride: async (channelId, overwriteId, reason)=>{
591
- return await bot.rest.deleteChannelPermissionOverride(channelId, overwriteId, reason);
592
- },
593
- deleteEmoji: async (guildId, id, reason)=>{
594
- return await bot.rest.deleteEmoji(guildId, id, reason);
595
- },
596
- deleteApplicationEmoji: async (id)=>{
597
- return await bot.rest.deleteApplicationEmoji(id);
598
- },
599
- deleteFollowupMessage: async (token, messageId)=>{
600
- return await bot.rest.deleteFollowupMessage(token, messageId);
601
- },
602
- deleteGlobalApplicationCommand: async (commandId)=>{
603
- return await bot.rest.deleteGlobalApplicationCommand(commandId);
604
- },
605
- deleteGuildApplicationCommand: async (commandId, guildId)=>{
606
- return await bot.rest.deleteGuildApplicationCommand(commandId, guildId);
607
- },
608
- deleteGuildSticker: async (guildId, stickerId, reason)=>{
609
- return await bot.rest.deleteGuildSticker(guildId, stickerId, reason);
610
- },
611
- deleteGuildTemplate: async (guildId, templateCode)=>{
612
- return await bot.rest.deleteGuildTemplate(guildId, templateCode);
613
- },
614
- deleteIntegration: async (guildId, integrationId, reason)=>{
615
- return await bot.rest.deleteIntegration(guildId, integrationId, reason);
616
- },
617
- deleteInvite: async (inviteCode, reason)=>{
618
- return await bot.rest.deleteInvite(inviteCode, reason);
619
- },
620
- deleteMessage: async (channelId, messageId, reason)=>{
621
- return await bot.rest.deleteMessage(channelId, messageId, reason);
622
- },
623
- deleteMessages: async (channelId, messageIds, reason)=>{
624
- return await bot.rest.deleteMessages(channelId, messageIds, reason);
625
- },
626
- deleteOriginalInteractionResponse: async (token)=>{
627
- return await bot.rest.deleteOriginalInteractionResponse(token);
628
- },
629
- deleteOwnReaction: async (channelId, messageId, reaction)=>{
630
- return await bot.rest.deleteOwnReaction(channelId, messageId, reaction);
631
- },
632
- deleteReactionsAll: async (channelId, messageId)=>{
633
- return await bot.rest.deleteReactionsAll(channelId, messageId);
634
- },
635
- deleteReactionsEmoji: async (channelId, messageId, reaction)=>{
636
- return await bot.rest.deleteReactionsEmoji(channelId, messageId, reaction);
637
- },
638
- deleteRole: async (guildId, roleId, reason)=>{
639
- return await bot.rest.deleteRole(guildId, roleId, reason);
640
- },
641
- deleteScheduledEvent: async (guildId, eventId)=>{
642
- return await bot.rest.deleteScheduledEvent(guildId, eventId);
643
- },
644
- deleteStageInstance: async (channelId, reason)=>{
645
- return await bot.rest.deleteStageInstance(channelId, reason);
646
- },
647
- deleteUserReaction: async (channelId, messageId, userId, reaction)=>{
648
- return await bot.rest.deleteUserReaction(channelId, messageId, userId, reaction);
649
- },
650
- deleteWebhook: async (webhookId, reason)=>{
651
- return await bot.rest.deleteWebhook(webhookId, reason);
652
- },
653
- deleteWebhookMessage: async (webhookId, token, messageId, options)=>{
654
- return await bot.rest.deleteWebhookMessage(webhookId, token, messageId, options);
655
- },
656
- deleteWebhookWithToken: async (webhookId, token)=>{
657
- return await bot.rest.deleteWebhookWithToken(webhookId, token);
658
- },
659
- editChannelPermissionOverrides: async (channelId, options, reason)=>{
660
- return await bot.rest.editChannelPermissionOverrides(channelId, options, reason);
661
- },
662
- editChannelPositions: async (guildId, channelPositions)=>{
663
- return await bot.rest.editChannelPositions(guildId, channelPositions);
664
- },
665
- editOwnVoiceState: async (guildId, options)=>{
666
- return await bot.rest.editOwnVoiceState(guildId, options);
667
- },
668
- editUserVoiceState: async (guildId, options)=>{
669
- return await bot.rest.editUserVoiceState(guildId, options);
670
- },
671
- editUserApplicationRoleConnection: async (bearerToken, applicationId, options)=>{
672
- return await bot.rest.editUserApplicationRoleConnection(bearerToken, applicationId, options);
673
- },
674
- joinThread: async (channelId)=>{
675
- return await bot.rest.joinThread(channelId);
676
- },
677
- leaveGuild: async (guildId)=>{
678
- return await bot.rest.leaveGuild(guildId);
679
- },
680
- leaveThread: async (channelId)=>{
681
- return await bot.rest.leaveThread(channelId);
682
- },
683
- removeRole: async (guildId, userId, roleId, reason)=>{
684
- return await bot.rest.removeRole(guildId, userId, roleId, reason);
685
- },
686
- removeThreadMember: async (channelId, userId)=>{
687
- return await bot.rest.removeThreadMember(channelId, userId);
688
- },
689
- removeDmRecipient: async (channelId, userId)=>{
690
- return await bot.rest.removeDmRecipient(channelId, userId);
691
- },
692
- sendInteractionResponse: async (interactionId, token, options, params)=>{
693
- const response = await bot.rest.sendInteractionResponse(interactionId, token, options, params);
694
- if (!response) return;
695
- return bot.transformers.interactionCallbackResponse(bot, {
696
- interactionCallbackResponse: snakelize(response),
697
- shardId: 0
698
- });
699
- },
700
- triggerTypingIndicator: async (channelId)=>{
701
- return await bot.rest.triggerTypingIndicator(channelId);
702
- },
703
- banMember: async (guildId, userId, options, reason)=>{
704
- return await bot.rest.banMember(guildId, userId, options, reason);
705
- },
706
- kickMember: async (guildId, userId, reason)=>{
707
- return await bot.rest.kickMember(guildId, userId, reason);
708
- },
709
- pinMessage: async (channelId, messageId, reason)=>{
710
- return await bot.rest.pinMessage(channelId, messageId, reason);
711
- },
712
- unbanMember: async (guildId, userId, reason)=>{
713
- return await bot.rest.unbanMember(guildId, userId, reason);
714
- },
715
- unpinMessage: async (channelId, messageId, reason)=>{
716
- return await bot.rest.unpinMessage(channelId, messageId, reason);
717
- },
718
- getGuildOnboarding: async (guildId)=>{
719
- return bot.transformers.guildOnboarding(bot, snakelize(await bot.rest.getGuildOnboarding(guildId)));
720
- },
721
- editGuildOnboarding: async (guildId, options, reason)=>{
722
- return bot.transformers.guildOnboarding(bot, snakelize(await bot.rest.editGuildOnboarding(guildId, options, reason)));
723
- },
724
- listEntitlements: async (applicationId, options)=>{
725
- return (await bot.rest.listEntitlements(applicationId, options)).map((entitlement)=>bot.transformers.entitlement(bot, snakelize(entitlement)));
726
- },
727
- getEntitlement: async (applicationId, entitlementId)=>{
728
- return bot.transformers.entitlement(bot, snakelize(await bot.rest.getEntitlement(applicationId, entitlementId)));
729
- },
730
- createTestEntitlement: async (applicationId, body)=>{
731
- // @ts-expect-error createTestEntitlement gives a partial, and this method returns a partial
732
- return bot.transformers.entitlement(bot, snakelize(await bot.rest.createTestEntitlement(applicationId, body)));
733
- },
734
- deleteTestEntitlement: async (applicationId, entitlementId)=>{
735
- await bot.rest.deleteTestEntitlement(applicationId, entitlementId);
736
- },
737
- listSkus: async (applicationId)=>{
738
- return (await bot.rest.listSkus(applicationId)).map((sku)=>bot.transformers.sku(bot, snakelize(sku)));
739
- },
740
- getSubscription: async (skuId, subscriptionId)=>{
741
- return bot.transformers.subscription(bot, snakelize(await bot.rest.getSubscription(skuId, subscriptionId)));
742
- },
743
- listSubscriptions: async (skuId, options)=>{
744
- return (await bot.rest.listSubscriptions(skuId, options)).map((subscription)=>bot.transformers.subscription(bot, snakelize(subscription)));
745
- },
746
- sendSoundboardSound: async (channelId, options)=>{
747
- await bot.rest.sendSoundboardSound(channelId, options);
748
- },
749
- listDefaultSoundboardSounds: async ()=>{
750
- return (await bot.rest.listDefaultSoundboardSounds()).map((sound)=>bot.transformers.soundboardSound(bot, snakelize(sound)));
751
- },
752
- listGuildSoundboardSounds: async (guildId)=>{
753
- const res = await bot.rest.listGuildSoundboardSounds(guildId);
754
- return {
755
- items: res.items.map((sound)=>bot.transformers.soundboardSound(bot, snakelize(sound)))
756
- };
757
- },
758
- getGuildSoundboardSound: async (guildId, soundId)=>{
759
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.getGuildSoundboardSound(guildId, soundId)));
760
- },
761
- createGuildSoundboardSound: async (guildId, options, reason)=>{
762
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.createGuildSoundboardSound(guildId, options, reason)));
763
- },
764
- modifyGuildSoundboardSound: async (guildId, soundId, options, reason)=>{
765
- return bot.transformers.soundboardSound(bot, snakelize(await bot.rest.modifyGuildSoundboardSound(guildId, soundId, options, reason)));
766
- },
767
- deleteGuildSoundboardSound: async (guildId, soundId, reason)=>{
768
- await bot.rest.deleteGuildSoundboardSound(guildId, soundId, reason);
769
- },
770
- deleteLobby: async (lobbyId)=>{
771
- await bot.rest.deleteLobby(lobbyId);
772
- },
773
- removeMemberFromLobby: async (lobbyId, userId)=>{
774
- await bot.rest.removeMemberFromLobby(lobbyId, userId);
775
- },
776
- leaveLobby: async (lobbyId, bearerToken)=>{
777
- await bot.rest.leaveLobby(lobbyId, bearerToken);
778
- }
779
- };
780
- }
781
-
782
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9oZWxwZXJzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcbiAgQWRkRG1SZWNpcGllbnRPcHRpb25zLFxuICBBZGRHdWlsZE1lbWJlck9wdGlvbnMsXG4gIEFkZExvYmJ5TWVtYmVyLFxuICBBdExlYXN0T25lLFxuICBCZWdpbkd1aWxkUHJ1bmUsXG4gIEJpZ1N0cmluZyxcbiAgQ2FtZWxpemUsXG4gIENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZCxcbiAgQ3JlYXRlQXBwbGljYXRpb25FbW9qaSxcbiAgQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgQ3JlYXRlQ2hhbm5lbEludml0ZSxcbiAgQ3JlYXRlRW50aXRsZW1lbnQsXG4gIENyZWF0ZUZvcnVtUG9zdFdpdGhNZXNzYWdlLFxuICBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gIENyZWF0ZUd1aWxkQmFuLFxuICBDcmVhdGVHdWlsZEJ1bGtCYW4sXG4gIENyZWF0ZUd1aWxkQ2hhbm5lbCxcbiAgQ3JlYXRlR3VpbGRFbW9qaSxcbiAgQ3JlYXRlR3VpbGRSb2xlLFxuICBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgQ3JlYXRlR3VpbGRTdGlja2VyT3B0aW9ucyxcbiAgQ3JlYXRlTG9iYnksXG4gIENyZWF0ZU1lc3NhZ2VPcHRpb25zLFxuICBDcmVhdGVTY2hlZHVsZWRFdmVudCxcbiAgQ3JlYXRlU3RhZ2VJbnN0YW5jZSxcbiAgQ3JlYXRlVGVtcGxhdGUsXG4gIENyZWF0ZVdlYmhvb2ssXG4gIERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgRGlzY29yZEFjY2Vzc1Rva2VuUmVzcG9uc2UsXG4gIERpc2NvcmRBY3Rpdml0eUluc3RhbmNlLFxuICBEaXNjb3JkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uLFxuICBEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhLFxuICBEaXNjb3JkQXVkaXRMb2csXG4gIERpc2NvcmRCYW4sXG4gIERpc2NvcmRDb25uZWN0aW9uLFxuICBEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24sXG4gIERpc2NvcmRGb2xsb3dlZENoYW5uZWwsXG4gIERpc2NvcmRHZXRHYXRld2F5Qm90LFxuICBEaXNjb3JkR3VpbGRQcmV2aWV3LFxuICBEaXNjb3JkR3VpbGRXaWRnZXRTZXR0aW5ncyxcbiAgRGlzY29yZEludml0ZSxcbiAgRGlzY29yZEludml0ZU1ldGFkYXRhLFxuICBEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcyxcbiAgRGlzY29yZE1lc3NhZ2UsXG4gIERpc2NvcmRNb2RpZnlHdWlsZFdlbGNvbWVTY3JlZW4sXG4gIERpc2NvcmRQcnVuZWRDb3VudCxcbiAgRGlzY29yZFRva2VuRXhjaGFuZ2UsXG4gIERpc2NvcmRUb2tlblJldm9jYXRpb24sXG4gIERpc2NvcmRWYW5pdHlVcmwsXG4gIERpc2NvcmRWb2ljZVJlZ2lvbixcbiAgRWRpdEFwcGxpY2F0aW9uLFxuICBFZGl0QXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucyxcbiAgRWRpdEJvdE1lbWJlck9wdGlvbnMsXG4gIEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsXG4gIEVkaXRHdWlsZE9uYm9hcmRpbmcsXG4gIEVkaXRHdWlsZFJvbGUsXG4gIEVkaXRHdWlsZFN0aWNrZXJPcHRpb25zLFxuICBFZGl0TWVzc2FnZSxcbiAgRWRpdE93blZvaWNlU3RhdGUsXG4gIEVkaXRTY2hlZHVsZWRFdmVudCxcbiAgRWRpdFVzZXJWb2ljZVN0YXRlLFxuICBFZGl0V2ViaG9va01lc3NhZ2VPcHRpb25zLFxuICBFeGVjdXRlV2ViaG9vayxcbiAgR2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbk9wdGlvbnMsXG4gIEdldEJhbnMsXG4gIEdldENoYW5uZWxQaW5zT3B0aW9ucyxcbiAgR2V0RW50aXRsZW1lbnRzLFxuICBHZXRHcm91cERtT3B0aW9ucyxcbiAgR2V0R3VpbGRBdWRpdExvZyxcbiAgR2V0R3VpbGRQcnVuZUNvdW50UXVlcnksXG4gIEdldEludml0ZSxcbiAgR2V0TWVzc2FnZXNPcHRpb25zLFxuICBHZXRSZWFjdGlvbnMsXG4gIEdldFNjaGVkdWxlZEV2ZW50cyxcbiAgR2V0U2NoZWR1bGVkRXZlbnRVc2VycyxcbiAgR2V0VGhyZWFkTWVtYmVyLFxuICBHZXRVc2VyR3VpbGRzLFxuICBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gIEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgTGlua0NoYW5uZWxUb0xvYmJ5LFxuICBMaXN0QXJjaGl2ZWRUaHJlYWRzLFxuICBMaXN0R3VpbGRNZW1iZXJzLFxuICBMaXN0U2t1U3Vic2NyaXB0aW9uc09wdGlvbnMsXG4gIExpc3RUaHJlYWRNZW1iZXJzLFxuICBNb2RpZnlBcHBsaWNhdGlvbkVtb2ppLFxuICBNb2RpZnlDaGFubmVsLFxuICBNb2RpZnlHdWlsZCxcbiAgTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zLFxuICBNb2RpZnlHdWlsZEVtb2ppLFxuICBNb2RpZnlHdWlsZE1lbWJlcixcbiAgTW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQsXG4gIE1vZGlmeUd1aWxkVGVtcGxhdGUsXG4gIE1vZGlmeUxvYmJ5LFxuICBNb2RpZnlSb2xlUG9zaXRpb25zLFxuICBNb2RpZnlXZWJob29rLFxuICBTZWFyY2hNZW1iZXJzLFxuICBTZW5kU291bmRib2FyZFNvdW5kLFxuICBTdGFydFRocmVhZFdpdGhNZXNzYWdlLFxuICBTdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlLFxuICBVcHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICBVcHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgc25ha2VsaXplIH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4vYm90LmpzJ1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJ1xuaW1wb3J0IHR5cGUge1xuICBBcHBsaWNhdGlvbixcbiAgQXBwbGljYXRpb25Db21tYW5kLFxuICBBdXRvTW9kZXJhdGlvblJ1bGUsXG4gIENoYW5uZWwsXG4gIEVtb2ppLFxuICBFbnRpdGxlbWVudCxcbiAgR3VpbGQsXG4gIEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMsXG4gIEd1aWxkT25ib2FyZGluZyxcbiAgR3VpbGRXaWRnZXQsXG4gIEd1aWxkV2lkZ2V0U2V0dGluZ3MsXG4gIEludGVncmF0aW9uLFxuICBJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsXG4gIEludml0ZSxcbiAgTG9iYnksXG4gIExvYmJ5TWVtYmVyLFxuICBNZW1iZXIsXG4gIE1lc3NhZ2UsXG4gIE1lc3NhZ2VQaW4sXG4gIFJvbGUsXG4gIFNjaGVkdWxlZEV2ZW50LFxuICBTa3UsXG4gIFNvdW5kYm9hcmRTb3VuZCxcbiAgU3RhZ2VJbnN0YW5jZSxcbiAgU3RpY2tlcixcbiAgU3RpY2tlclBhY2ssXG4gIFN1YnNjcmlwdGlvbixcbiAgVGVtcGxhdGUsXG4gIFRocmVhZE1lbWJlcixcbiAgVXNlcixcbiAgVm9pY2VTdGF0ZSxcbiAgV2ViaG9vayxcbiAgV2VsY29tZVNjcmVlbixcbn0gZnJvbSAnLi90cmFuc2Zvcm1lcnMvaW5kZXguanMnXG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVCb3RIZWxwZXJzPFRQcm9wcyBleHRlbmRzIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBUQmVoYXZpb3IgZXh0ZW5kcyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPihcbiAgYm90OiBCb3Q8VFByb3BzLCBUQmVoYXZpb3I+LFxuKTogQm90SGVscGVyczxUUHJvcHMsIFRCZWhhdmlvcj4ge1xuICByZXR1cm4ge1xuICAgIGNyZWF0ZUF1dG9tb2RSdWxlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hdXRvbW9kUnVsZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVBdXRvbW9kUnVsZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGNyZWF0ZUNoYW5uZWw6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVDaGFubmVsKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkIH0pXG4gICAgfSxcbiAgICBjcmVhdGVFbW9qaTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlRW1vamkoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBjcmVhdGVBcHBsaWNhdGlvbkVtb2ppOiBhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW1vamkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlQXBwbGljYXRpb25FbW9qaShvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVGb3J1bVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlRm9ydW1UaHJlYWQoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSB9KVxuICAgIH0sXG4gICAgY3JlYXRlR2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmQsIGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kLCBndWlsZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBjcmVhdGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTdGlja2VyKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnRlbXBsYXRlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUd1aWxkVGVtcGxhdGUoZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgY3JlYXRlSW52aXRlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5jcmVhdGVJbnZpdGUoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBjcmVhdGVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlUm9sZShndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgY3JlYXRlU2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnNjaGVkdWxlZEV2ZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVNjaGVkdWxlZEV2ZW50KGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlU3RhZ2VJbnN0YW5jZTogYXN5bmMgKG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5jcmVhdGVTdGFnZUluc3RhbmNlKG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgY3JlYXRlV2ViaG9vazogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVdlYmhvb2soY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIGNvbW1hbmRJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oXG4gICAgICAgIGJvdCxcbiAgICAgICAgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyhndWlsZElkLCBjb21tYW5kSWQsIGJlYXJlclRva2VuLCBvcHRpb25zKSksXG4gICAgICApXG4gICAgfSxcbiAgICBlZGl0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXV0b21vZFJ1bGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0Qm90UHJvZmlsZTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEJvdFByb2ZpbGUob3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRDaGFubmVsKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIGVkaXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRFbW9qaShndWlsZElkLCBpZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25FbW9qaTogYXN5bmMgKGlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0QXBwbGljYXRpb25FbW9qaShpZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEZvbGxvd3VwTWVzc2FnZTogYXN5bmMgKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogYXN5bmMgKGNvbW1hbmRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb25Db21tYW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgeyBndWlsZDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZChndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkLCBndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCwgZ3VpbGRJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCwgdGVtcGxhdGVDb2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy50ZW1wbGF0ZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0R3VpbGRUZW1wbGF0ZShndWlsZElkLCB0ZW1wbGF0ZUNvZGUsIG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGVkaXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7XG4gICAgICAgIG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0TWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgb3B0aW9ucykpIGFzIERpc2NvcmRNZXNzYWdlLFxuICAgICAgICBzaGFyZElkOiAwLFxuICAgICAgfSlcbiAgICB9LFxuICAgIGVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4sIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZWRpdFJvbGU6IGFzeW5jIChndWlsZElkLCByb2xlSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMucm9sZShib3QsIHsgcm9sZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlKGd1aWxkSWQsIHJvbGVJZCwgb3B0aW9ucywgcmVhc29uKSksIGd1aWxkSWQgfSlcbiAgICB9LFxuICAgIGVkaXRSb2xlUG9zaXRpb25zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRSb2xlUG9zaXRpb25zKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikpLm1hcCgocm9sZSkgPT4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlLCBndWlsZElkIH0pKVxuICAgIH0sXG4gICAgZWRpdFNjaGVkdWxlZEV2ZW50OiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0U3RhZ2VJbnN0YW5jZTogYXN5bmMgKGNoYW5uZWxJZCwgdG9waWMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RhZ2VJbnN0YW5jZShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5lZGl0U3RhZ2VJbnN0YW5jZShjaGFubmVsSWQsIHRvcGljLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2sod2ViaG9va0lkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGVkaXRXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHtcbiAgICAgICAgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXZWJob29rTWVzc2FnZSh3ZWJob29rSWQsIHRva2VuLCBtZXNzYWdlSWQsIG9wdGlvbnMpKSBhcyBEaXNjb3JkTWVzc2FnZSxcbiAgICAgICAgc2hhcmRJZDogMCxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBlZGl0V2ViaG9va1dpdGhUb2tlbjogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZWRpdFdlbGNvbWVTY3JlZW46IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdFdlbGNvbWVTY3JlZW4oZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBlZGl0V2lkZ2V0U2V0dGluZ3M6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndpZGdldFNldHRpbmdzKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmVkaXRXaWRnZXRTZXR0aW5ncyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGV4ZWN1dGVXZWJob29rOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYm90LnJlc3QuZXhlY3V0ZVdlYmhvb2sod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucylcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm5cblxuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKHJlc3VsdCkgYXMgRGlzY29yZE1lc3NhZ2UsIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGZvbGxvd0Fubm91bmNlbWVudDogYXN5bmMgKHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZm9sbG93QW5ub3VuY2VtZW50KHNvdXJjZUNoYW5uZWxJZCwgdGFyZ2V0Q2hhbm5lbElkKVxuICAgIH0sXG4gICAgZ2V0QWN0aXZlVGhyZWFkczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGJvdC5yZXN0LmdldEFjdGl2ZVRocmVhZHMoZ3VpbGRJZClcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHRocmVhZHM6IHJlc3VsdC50aHJlYWRzLm1hcCgodGhyZWFkKSA9PiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGd1aWxkSWQsIGNoYW5uZWw6IHNuYWtlbGl6ZSh0aHJlYWQpIH0pKSxcbiAgICAgICAgbWVtYmVyczogcmVzdWx0Lm1lbWJlcnMubWFwKChtZW1iZXIpID0+IGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKG1lbWJlcikpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uSW5mbzogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25JbmZvKCkpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBlZGl0QXBwbGljYXRpb25JbmZvOiBhc3luYyAoYm9keSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuYXBwbGljYXRpb24oYm90LCB7IGFwcGxpY2F0aW9uOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEFwcGxpY2F0aW9uSW5mbyhib2R5KSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm86IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRBdXRoZW50aWNhdGlvbkluZm8oYmVhcmVyVG9rZW4pXG4gICAgfSxcbiAgICBleGNoYW5nZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmV4Y2hhbmdlVG9rZW4oY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucylcbiAgICB9LFxuICAgIHJldm9rZVRva2VuOiBhc3luYyAoY2xpZW50SWQsIGNsaWVudFNlY3JldCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnJldm9rZVRva2VuKGNsaWVudElkLCBjbGllbnRTZWNyZXQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uOiBhc3luYyAoZ3VpbGRJZCwgY29tbWFuZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uKGd1aWxkSWQsIGNvbW1hbmRJZCwgb3B0aW9ucylcbiAgICAgIGNvbnN0IHNuYWtlZFJlcyA9IHNuYWtlbGl6ZShyZXMpXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWRSZXMpXG4gICAgfSxcbiAgICBnZXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnMoZ3VpbGRJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb24oYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICBnZXRBdWRpdExvZzogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRBdWRpdExvZyhndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGU6IGFzeW5jIChndWlsZElkLCBydWxlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEF1dG9tb2RSdWxlKGd1aWxkSWQsIHJ1bGVJZCkpKVxuICAgIH0sXG4gICAgZ2V0QXV0b21vZFJ1bGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRBdXRvbW9kUnVsZXMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmF1dG9tb2RSdWxlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0QXZhaWxhYmxlVm9pY2VSZWdpb25zOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucygpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEJhbjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbihndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRCYW5zOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldEJhbnMoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldENoYW5uZWw6IGFzeW5jIChjaGFubmVsSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsKGNoYW5uZWxJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRDaGFubmVsSW52aXRlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxJbnZpdGVzKGNoYW5uZWxJZClcbiAgICAgIC8vIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Q2hhbm5lbEludml0ZXMoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbHM6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldENoYW5uZWxzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCB9KSlcbiAgICB9LFxuICAgIGdldENoYW5uZWxXZWJob29rczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsV2ViaG9va3MoY2hhbm5lbElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMud2ViaG9vayhib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldERtQ2hhbm5lbDogYXN5bmMgKHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY2hhbm5lbChib3QsIHsgY2hhbm5lbDogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldERtQ2hhbm5lbCh1c2VySWQpKSB9KVxuICAgIH0sXG4gICAgZ2V0R3JvdXBEbUNoYW5uZWw6IGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3JvdXBEbUNoYW5uZWwob3B0aW9ucykpIH0pXG4gICAgfSxcbiAgICBnZXRFbW9qaTogYXN5bmMgKGd1aWxkSWQsIGVtb2ppSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEVtb2ppKGd1aWxkSWQsIGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChlbW9qaUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppKGVtb2ppSWQpKSlcbiAgICB9LFxuICAgIGdldEVtb2ppczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0RW1vamlzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uRW1vamlzOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkVtb2ppcygpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgc25ha2VsaXplKGl0ZW0pKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Rm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0R2F0ZXdheUJvdDogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ2F0ZXdheUJvdChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHYXRld2F5Qm90KCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kOiBhc3luYyAoY29tbWFuZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kKGNvbW1hbmRJZCkpKVxuICAgIH0sXG4gICAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCB7IGd1aWxkOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGQoZ3VpbGRJZCwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRHdWlsZHM6IGFzeW5jIChiZWFyZXJUb2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZHMoYmVhcmVyVG9rZW4sIG9wdGlvbnMpKS5tYXA8UGFydGlhbDx0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5ndWlsZD4+KChyZXMpID0+XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgZ2V0R3VpbGRzIHJldHVybnMgcGFydGlhbCBndWlsZHNcbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5ndWlsZChib3QsIHsgZ3VpbGQ6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uQ29tbWFuZChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFByZXZpZXc6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpXG4gICAgICAvLyByZXR1cm4gYm90LnRyYW5zZm9ybWVycy54eHgoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRQcmV2aWV3KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkU3RpY2tlcjogYXN5bmMgKGd1aWxkSWQsIHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc3RpY2tlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXIoZ3VpbGRJZCwgc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFN0aWNrZXJzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFN0aWNrZXJzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRUZW1wbGF0ZTogYXN5bmMgKHRlbXBsYXRlQ29kZSkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0R3VpbGRUZW1wbGF0ZSh0ZW1wbGF0ZUNvZGUpKSlcbiAgICB9LFxuICAgIGdldEd1aWxkVGVtcGxhdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFRlbXBsYXRlcyhndWlsZElkKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRHdWlsZFdlYmhvb2tzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRHdWlsZFdlYmhvb2tzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0SW50ZWdyYXRpb25zOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnRlZ3JhdGlvbnMoZ3VpbGRJZCkpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLmludGVncmF0aW9uKGJvdCwgc25ha2VsaXplKHsgLi4ucmVzLCBndWlsZElkOiBndWlsZElkLnRvU3RyaW5nKCkgfSkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgZ2V0SW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuaW52aXRlKGJvdCwgeyBpbnZpdGU6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRJbnZpdGUoaW52aXRlQ29kZSwgb3B0aW9ucykpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICBnZXRJbnZpdGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRJbnZpdGVzKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5pbnZpdGUoYm90LCB7IGludml0ZTogc25ha2VsaXplKHJlcyksIHNoYXJkSWQ6IDAgfSkpXG4gICAgfSxcbiAgICBnZXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldE1lc3NhZ2VzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldE1lc3NhZ2VzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShyZXMpLCBzaGFyZElkOiAwIH0pKVxuICAgIH0sXG4gICAgZ2V0U3RpY2tlclBhY2s6IGFzeW5jIChzdGlja2VyUGFja0lkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyUGFjayhib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTdGlja2VyUGFjayhzdGlja2VyUGFja0lkKSkpXG4gICAgfSxcbiAgICBnZXRTdGlja2VyUGFja3M6IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0U3RpY2tlclBhY2tzKCkpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnN0aWNrZXJQYWNrKGJvdCwgc25ha2VsaXplKHJlcykpKVxuICAgIH0sXG4gICAgZ2V0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCB7IG1lc3NhZ2U6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4pKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgZ2V0Q2hhbm5lbFBpbnM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRDaGFubmVsUGlucyhjaGFubmVsSWQsIG9wdGlvbnMpKVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBoYXNNb3JlOiByZXMuaGFzX21vcmUsXG4gICAgICAgIGl0ZW1zOiByZXMuaXRlbXMubWFwKChpdGVtKSA9PiBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VQaW4oYm90LCBpdGVtKSksXG4gICAgICB9XG4gICAgfSxcbiAgICBnZXRQaW5uZWRNZXNzYWdlczogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRQaW5uZWRNZXNzYWdlcyhjaGFubmVsSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUocmVzKSwgc2hhcmRJZDogMCB9KSlcbiAgICB9LFxuICAgIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHM6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFBydW5lQ291bnQ6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHJ1bmVDb3VudChndWlsZElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzKGNoYW5uZWxJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGdldFJvbGVzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRSb2xlcyhndWlsZElkKSkubWFwKChyb2xlKSA9PiBib3QudHJhbnNmb3JtZXJzLnJvbGUoYm90LCB7IHJvbGUsIGd1aWxkSWQgfSkpXG4gICAgfSxcbiAgICBnZXRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5yb2xlKGJvdCwgeyByb2xlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0Um9sZShndWlsZElkLCByb2xlSWQpKSwgZ3VpbGRJZCB9KVxuICAgIH0sXG4gICAgZ2V0U2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zY2hlZHVsZWRFdmVudChib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudChndWlsZElkLCBldmVudElkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudHM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LmdldFNjaGVkdWxlZEV2ZW50cyhndWlsZElkLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2NoZWR1bGVkRXZlbnQoYm90LCBzbmFrZWxpemUocmVzKSkpXG4gICAgfSxcbiAgICBnZXRTY2hlZHVsZWRFdmVudFVzZXJzOiBhc3luYyAoZ3VpbGRJZCwgZXZlbnRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRTY2hlZHVsZWRFdmVudFVzZXJzKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnMpKS5tYXAoKHUpID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1c2VyOiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBzbmFrZWxpemUodS51c2VyKSksXG4gICAgICAgICAgbWVtYmVyOiB1Lm1lbWJlciAmJiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZSh1Lm1lbWJlciksIGd1aWxkSWQsIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHUudXNlci5pZCkpLFxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0sXG4gICAgZ2V0U2Vzc2lvbkluZm86IGFzeW5jICgpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmdhdGV3YXlCb3QoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U2Vzc2lvbkluZm8oKSkpXG4gICAgfSxcbiAgICBnZXRTdGFnZUluc3RhbmNlOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGFnZUluc3RhbmNlKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0YWdlSW5zdGFuY2UoY2hhbm5lbElkKSkpXG4gICAgfSxcbiAgICBnZXRPd25Wb2ljZVN0YXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgZ3VpbGRJZCwgdm9pY2VTdGF0ZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldE93blZvaWNlU3RhdGUoZ3VpbGRJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudm9pY2VTdGF0ZShib3QsIHsgZ3VpbGRJZCwgdm9pY2VTdGF0ZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFVzZXJWb2ljZVN0YXRlKGd1aWxkSWQsIHVzZXJJZCkpIH0pXG4gICAgfSxcbiAgICBnZXRTdGlja2VyOiBhc3luYyAoc3RpY2tlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdGlja2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFN0aWNrZXIoc3RpY2tlcklkKSkpXG4gICAgfSxcbiAgICBnZXRUaHJlYWRNZW1iZXI6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGhyZWFkTWVtYmVyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFRocmVhZE1lbWJlcihjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgZ2V0VGhyZWFkTWVtYmVyczogYXN5bmMgKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRUaHJlYWRNZW1iZXJzKGNoYW5uZWxJZCwgb3B0aW9ucykpLm1hcCgocmVzKSA9PiBib3QudHJhbnNmb3JtZXJzLnRocmVhZE1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFJlYWN0aW9uczogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRSZWFjdGlvbnMoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYWN0aW9uLCBvcHRpb25zKSkubWFwKChyZXMpID0+IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFVzZXI6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRVc2VyKGlkKSkpXG4gICAgfSxcbiAgICBnZXRDdXJyZW50VXNlcjogYXN5bmMgKGJlYXJlclRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEN1cnJlbnRVc2VyKGJlYXJlclRva2VuKSkpXG4gICAgfSxcbiAgICBnZXRVc2VyQ29ubmVjdGlvbnM6IGFzeW5jIChiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmdldFVzZXJDb25uZWN0aW9ucyhiZWFyZXJUb2tlbilcbiAgICB9LFxuICAgIGdldFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uOiBhc3luYyAoYmVhcmVyVG9rZW4sIGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbihiZWFyZXJUb2tlbiwgYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIGdldFZhbml0eVVybDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRWYW5pdHlVcmwoZ3VpbGRJZClcbiAgICB9LFxuICAgIGdldFZvaWNlUmVnaW9uczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3QuZ2V0Vm9pY2VSZWdpb25zKGd1aWxkSWQpKS5tYXAoKHJlcykgPT4gYm90LnRyYW5zZm9ybWVycy52b2ljZVJlZ2lvbihib3QsIHNuYWtlbGl6ZShyZXMpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlYmhvb2soYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9vayh3ZWJob29rSWQpKSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tNZXNzYWdlOiBhc3luYyAod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2ViaG9va01lc3NhZ2Uod2ViaG9va0lkLCB0b2tlbiwgbWVzc2FnZUlkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIGdldFdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53ZWJob29rKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldFdlYmhvb2tXaXRoVG9rZW4od2ViaG9va0lkLCB0b2tlbikpKVxuICAgIH0sXG4gICAgZ2V0V2VsY29tZVNjcmVlbjogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLndlbGNvbWVTY3JlZW4oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2VsY29tZVNjcmVlbihndWlsZElkKSkpXG4gICAgfSxcbiAgICBnZXRXaWRnZXQ6IGFzeW5jIChndWlsZElkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy53aWRnZXQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2lkZ2V0KGd1aWxkSWQpKSlcbiAgICB9LFxuICAgIGdldFdpZGdldFNldHRpbmdzOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMud2lkZ2V0U2V0dGluZ3MoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0V2lkZ2V0U2V0dGluZ3MoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgcHVibGlzaE1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnB1Ymxpc2hNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHNlbmRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgeyBtZXNzYWdlOiBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc2VuZE1lc3NhZ2UoY2hhbm5lbElkLCBvcHRpb25zKSksIHNoYXJkSWQ6IDAgfSlcbiAgICB9LFxuICAgIHNlbmRGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LnNlbmRGb2xsb3d1cE1lc3NhZ2UodG9rZW4sIG9wdGlvbnMpKSwgc2hhcmRJZDogMCB9KVxuICAgIH0sXG4gICAgc3RhcnRUaHJlYWRXaXRoTWVzc2FnZTogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7XG4gICAgICAgIGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhNZXNzYWdlKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBvcHRpb25zLCByZWFzb24pKSxcbiAgICAgIH0pXG4gICAgfSxcbiAgICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmNoYW5uZWwoYm90LCB7IGNoYW5uZWw6IHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5zdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlKGNoYW5uZWxJZCwgb3B0aW9ucywgcmVhc29uKSkgfSlcbiAgICB9LFxuICAgIHN5bmNHdWlsZFRlbXBsYXRlOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMudGVtcGxhdGUoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3Quc3luY0d1aWxkVGVtcGxhdGUoZ3VpbGRJZCkpKVxuICAgIH0sXG4gICAgdXBzZXJ0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogYXN5bmMgKGNvbW1hbmRzLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0LnVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMoY29tbWFuZHMsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICB1cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHM6IGFzeW5jIChndWlsZElkLCBjb21tYW5kcywgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC51cHNlcnRHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZHMoZ3VpbGRJZCwgY29tbWFuZHMsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5hcHBsaWNhdGlvbkNvbW1hbmQoYm90LCBzbmFrZWxpemUocmVzKSksXG4gICAgICApXG4gICAgfSxcbiAgICBlZGl0Qm90TWVtYmVyOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEJvdE1lbWJlcihndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSwgZ3VpbGRJZCwgYm90LmlkKVxuICAgIH0sXG4gICAgZWRpdE1lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdE1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikpLCBndWlsZElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBnZXRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5nZXRNZW1iZXIoZ3VpbGRJZCwgdXNlcklkKSksIGd1aWxkSWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGdldEN1cnJlbnRNZW1iZXI6IGFzeW5jIChndWlsZElkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgYm90LnJlc3QuZ2V0Q3VycmVudE1lbWJlcihndWlsZElkLCBiZWFyZXJUb2tlbilcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpXG4gICAgfSxcbiAgICBnZXRNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5nZXRNZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMpKS5tYXAoKHJlcykgPT5cbiAgICAgICAgYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBzbmFrZWxpemUocmVzKSwgZ3VpbGRJZCwgYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocmVzLnVzZXIuaWQpKSxcbiAgICAgIClcbiAgICB9LFxuICAgIHBydW5lTWVtYmVyczogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnBydW5lTWVtYmVycyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBzZWFyY2hNZW1iZXJzOiBhc3luYyAoZ3VpbGRJZCwgcXVlcnksIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiAoYXdhaXQgYm90LnJlc3Quc2VhcmNoTWVtYmVycyhndWlsZElkLCBxdWVyeSwgb3B0aW9ucykpLm1hcCgocmVzKSA9PlxuICAgICAgICBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHNuYWtlbGl6ZShyZXMpLCBndWlsZElkLCBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShyZXMudXNlci5pZCkpLFxuICAgICAgKVxuICAgIH0sXG4gICAgYnVsa0Jhbk1lbWJlcnM6IGFzeW5jIChndWlsZElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0LmJ1bGtCYW5NZW1iZXJzKGd1aWxkSWQsIG9wdGlvbnMsIHJlYXNvbilcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYmFubmVkVXNlcnM6IHJlcy5iYW5uZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgICAgZmFpbGVkVXNlcnM6IHJlcy5mYWlsZWRVc2Vycy5tYXAoKHgpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHgpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEFwcGxpY2F0aW9uQWN0aXZpdHlJbnN0YW5jZTogYXN5bmMgKGFwcGxpY2F0aW9uSWQsIGluc3RhbmNlSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5nZXRBcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZClcbiAgICB9LFxuICAgIGxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkczogYXN5bmMgKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5saXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHMoYXBwbGljYXRpb25JZClcbiAgICB9LFxuICAgIHVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzOiBhc3luYyAoYXBwbGljYXRpb25JZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBjcmVhdGVMb2JieTogYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZUxvYmJ5KG9wdGlvbnMpKSlcbiAgICB9LFxuICAgIGdldExvYmJ5OiBhc3luYyAobG9iYnlJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0TG9iYnkobG9iYnlJZCkpKVxuICAgIH0sXG4gICAgbW9kaWZ5TG9iYnk6IGFzeW5jIChsb2JieUlkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieShib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5tb2RpZnlMb2JieShsb2JieUlkLCBvcHRpb25zKSkpXG4gICAgfSxcbiAgICBhZGRNZW1iZXJUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgdXNlcklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5sb2JieU1lbWJlcihib3QsIHNuYWtlbGl6ZShhd2FpdCBib3QucmVzdC5hZGRNZW1iZXJUb0xvYmJ5KGxvYmJ5SWQsIHVzZXJJZCwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgbGlua0NoYW5uZWxUb0xvYmJ5OiBhc3luYyAobG9iYnlJZCwgYmVhcmVyVG9rZW4sIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmxvYmJ5KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmxpbmtDaGFubmVsVG9Mb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbiwgb3B0aW9ucykpKVxuICAgIH0sXG4gICAgdW5saW5rQ2hhbm5lbFRvTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMubG9iYnkoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QudW5saW5rQ2hhbm5lbFRvTG9iYnkobG9iYnlJZCwgYmVhcmVyVG9rZW4pKSlcbiAgICB9LFxuICAgIC8vIEFsbCB1c2VsZXNzIHZvaWQgcmV0dXJuIGZ1bmN0aW9ucyBoZXJlXG4gICAgYWRkUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBhZGRSZWFjdGlvbnM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb25zLCBvcmRlcmVkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkUmVhY3Rpb25zKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbnMsIG9yZGVyZWQpXG4gICAgfSxcbiAgICBhZGRSb2xlOiBhc3luYyAoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZFJvbGUoZ3VpbGRJZCwgdXNlcklkLCByb2xlSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGFkZFRocmVhZE1lbWJlcjogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuYWRkVGhyZWFkTWVtYmVyKGNoYW5uZWxJZCwgdXNlcklkKVxuICAgIH0sXG4gICAgYWRkRG1SZWNpcGllbnQ6IGFzeW5jIChjaGFubmVsSWQsIHVzZXJJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmFkZERtUmVjaXBpZW50KGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgYWRkR3VpbGRNZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5hZGRHdWlsZE1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMpXG4gICAgfSxcbiAgICBkZWxldGVBdXRvbW9kUnVsZTogYXN5bmMgKGd1aWxkSWQsIHJ1bGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlQXV0b21vZFJ1bGUoZ3VpbGRJZCwgcnVsZUlkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVDaGFubmVsOiBhc3luYyAoY2hhbm5lbElkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVDaGFubmVsKGNoYW5uZWxJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZTogYXN5bmMgKGNoYW5uZWxJZCwgb3ZlcndyaXRlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUoY2hhbm5lbElkLCBvdmVyd3JpdGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlRW1vamk6IGFzeW5jIChndWlsZElkLCBpZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRW1vamkoZ3VpbGRJZCwgaWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUFwcGxpY2F0aW9uRW1vamk6IGFzeW5jIChpZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUFwcGxpY2F0aW9uRW1vamkoaWQpXG4gICAgfSxcbiAgICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6IGFzeW5jICh0b2tlbiwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlRm9sbG93dXBNZXNzYWdlKHRva2VuLCBtZXNzYWdlSWQpXG4gICAgfSxcbiAgICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQoY29tbWFuZElkKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IGFzeW5jIChjb21tYW5kSWQsIGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZChjb21tYW5kSWQsIGd1aWxkSWQpXG4gICAgfSxcbiAgICBkZWxldGVHdWlsZFN0aWNrZXI6IGFzeW5jIChndWlsZElkLCBzdGlja2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU3RpY2tlcihndWlsZElkLCBzdGlja2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IGFzeW5jIChndWlsZElkLCB0ZW1wbGF0ZUNvZGUpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVHdWlsZFRlbXBsYXRlKGd1aWxkSWQsIHRlbXBsYXRlQ29kZSlcbiAgICB9LFxuICAgIGRlbGV0ZUludGVncmF0aW9uOiBhc3luYyAoZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlSW50ZWdyYXRpb24oZ3VpbGRJZCwgaW50ZWdyYXRpb25JZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlSW52aXRlOiBhc3luYyAoaW52aXRlQ29kZSwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlSW52aXRlKGludml0ZUNvZGUsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZU1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlTWVzc2FnZXM6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZHMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU1lc3NhZ2VzKGNoYW5uZWxJZCwgbWVzc2FnZUlkcywgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlT3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlOiBhc3luYyAodG9rZW4pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UodG9rZW4pXG4gICAgfSxcbiAgICBkZWxldGVPd25SZWFjdGlvbjogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZU93blJlYWN0aW9uKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVJlYWN0aW9uc0FsbDogYXN5bmMgKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlUmVhY3Rpb25zQWxsKGNoYW5uZWxJZCwgbWVzc2FnZUlkKVxuICAgIH0sXG4gICAgZGVsZXRlUmVhY3Rpb25zRW1vamk6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSZWFjdGlvbnNFbW9qaShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhY3Rpb24pXG4gICAgfSxcbiAgICBkZWxldGVSb2xlOiBhc3luYyAoZ3VpbGRJZCwgcm9sZUlkLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5kZWxldGVSb2xlKGd1aWxkSWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZGVsZXRlU2NoZWR1bGVkRXZlbnQ6IGFzeW5jIChndWlsZElkLCBldmVudElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlU2NoZWR1bGVkRXZlbnQoZ3VpbGRJZCwgZXZlbnRJZClcbiAgICB9LFxuICAgIGRlbGV0ZVN0YWdlSW5zdGFuY2U6IGFzeW5jIChjaGFubmVsSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVN0YWdlSW5zdGFuY2UoY2hhbm5lbElkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVVc2VyUmVhY3Rpb246IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVVzZXJSZWFjdGlvbihjaGFubmVsSWQsIG1lc3NhZ2VJZCwgdXNlcklkLCByZWFjdGlvbilcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2s6IGFzeW5jICh3ZWJob29rSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2sod2ViaG9va0lkLCByZWFzb24pXG4gICAgfSxcbiAgICBkZWxldGVXZWJob29rTWVzc2FnZTogYXN5bmMgKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZVdlYmhvb2tNZXNzYWdlKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGRlbGV0ZVdlYmhvb2tXaXRoVG9rZW46IGFzeW5jICh3ZWJob29rSWQsIHRva2VuKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZGVsZXRlV2ViaG9va1dpdGhUb2tlbih3ZWJob29rSWQsIHRva2VuKVxuICAgIH0sXG4gICAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiBhc3luYyAoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMoY2hhbm5lbElkLCBvcHRpb25zLCByZWFzb24pXG4gICAgfSxcbiAgICBlZGl0Q2hhbm5lbFBvc2l0aW9uczogYXN5bmMgKGd1aWxkSWQsIGNoYW5uZWxQb3NpdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0Q2hhbm5lbFBvc2l0aW9ucyhndWlsZElkLCBjaGFubmVsUG9zaXRpb25zKVxuICAgIH0sXG4gICAgZWRpdE93blZvaWNlU3RhdGU6IGFzeW5jIChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdE93blZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyVm9pY2VTdGF0ZTogYXN5bmMgKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5lZGl0VXNlclZvaWNlU3RhdGUoZ3VpbGRJZCwgb3B0aW9ucylcbiAgICB9LFxuICAgIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogYXN5bmMgKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QuZWRpdFVzZXJBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uKGJlYXJlclRva2VuLCBhcHBsaWNhdGlvbklkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgam9pblRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmpvaW5UaHJlYWQoY2hhbm5lbElkKVxuICAgIH0sXG4gICAgbGVhdmVHdWlsZDogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5sZWF2ZUd1aWxkKGd1aWxkSWQpXG4gICAgfSxcbiAgICBsZWF2ZVRocmVhZDogYXN5bmMgKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmxlYXZlVGhyZWFkKGNoYW5uZWxJZClcbiAgICB9LFxuICAgIHJlbW92ZVJvbGU6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlUm9sZShndWlsZElkLCB1c2VySWQsIHJvbGVJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgcmVtb3ZlVGhyZWFkTWVtYmVyOiBhc3luYyAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgIHJldHVybiBhd2FpdCBib3QucmVzdC5yZW1vdmVUaHJlYWRNZW1iZXIoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICByZW1vdmVEbVJlY2lwaWVudDogYXN5bmMgKGNoYW5uZWxJZCwgdXNlcklkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucmVtb3ZlRG1SZWNpcGllbnQoY2hhbm5lbElkLCB1c2VySWQpXG4gICAgfSxcbiAgICBzZW5kSW50ZXJhY3Rpb25SZXNwb25zZTogYXN5bmMgKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zLCBwYXJhbXMpID0+IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYm90LnJlc3Quc2VuZEludGVyYWN0aW9uUmVzcG9uc2UoaW50ZXJhY3Rpb25JZCwgdG9rZW4sIG9wdGlvbnMsIHBhcmFtcylcblxuICAgICAgaWYgKCFyZXNwb25zZSkgcmV0dXJuXG5cbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZShib3QsIHsgaW50ZXJhY3Rpb25DYWxsYmFja1Jlc3BvbnNlOiBzbmFrZWxpemUocmVzcG9uc2UpLCBzaGFyZElkOiAwIH0pXG4gICAgfSxcbiAgICB0cmlnZ2VyVHlwaW5nSW5kaWNhdG9yOiBhc3luYyAoY2hhbm5lbElkKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QudHJpZ2dlclR5cGluZ0luZGljYXRvcihjaGFubmVsSWQpXG4gICAgfSxcbiAgICBiYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LmJhbk1lbWJlcihndWlsZElkLCB1c2VySWQsIG9wdGlvbnMsIHJlYXNvbilcbiAgICB9LFxuXG4gICAga2lja01lbWJlcjogYXN5bmMgKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3Qua2lja01lbWJlcihndWlsZElkLCB1c2VySWQsIHJlYXNvbilcbiAgICB9LFxuICAgIHBpbk1lc3NhZ2U6IGFzeW5jIChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYXdhaXQgYm90LnJlc3QucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5iYW5NZW1iZXI6IGFzeW5jIChndWlsZElkLCB1c2VySWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVuYmFuTWVtYmVyKGd1aWxkSWQsIHVzZXJJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgdW5waW5NZXNzYWdlOiBhc3luYyAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGF3YWl0IGJvdC5yZXN0LnVucGluTWVzc2FnZShjaGFubmVsSWQsIG1lc3NhZ2VJZCwgcmVhc29uKVxuICAgIH0sXG4gICAgZ2V0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkT25ib2FyZGluZyhndWlsZElkKSkpXG4gICAgfSxcbiAgICBlZGl0R3VpbGRPbmJvYXJkaW5nOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZWRpdEd1aWxkT25ib2FyZGluZyhndWlsZElkLCBvcHRpb25zLCByZWFzb24pKSlcbiAgICB9LFxuICAgIGxpc3RFbnRpdGxlbWVudHM6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBvcHRpb25zKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3RFbnRpdGxlbWVudHMoYXBwbGljYXRpb25JZCwgb3B0aW9ucykpLm1hcCgoZW50aXRsZW1lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoZW50aXRsZW1lbnQpKSlcbiAgICB9LFxuICAgIGdldEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuZW50aXRsZW1lbnQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkpKVxuICAgIH0sXG4gICAgY3JlYXRlVGVzdEVudGl0bGVtZW50OiBhc3luYyAoYXBwbGljYXRpb25JZCwgYm9keSkgPT4ge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBjcmVhdGVUZXN0RW50aXRsZW1lbnQgZ2l2ZXMgYSBwYXJ0aWFsLCBhbmQgdGhpcyBtZXRob2QgcmV0dXJucyBhIHBhcnRpYWxcbiAgICAgIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmVudGl0bGVtZW50KGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmNyZWF0ZVRlc3RFbnRpdGxlbWVudChhcHBsaWNhdGlvbklkLCBib2R5KSkpIGFzIFBhcnRpYWw8XG4gICAgICAgIHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLmVudGl0bGVtZW50XG4gICAgICA+XG4gICAgfSxcbiAgICBkZWxldGVUZXN0RW50aXRsZW1lbnQ6IGFzeW5jIChhcHBsaWNhdGlvbklkLCBlbnRpdGxlbWVudElkKSA9PiB7XG4gICAgICBhd2FpdCBib3QucmVzdC5kZWxldGVUZXN0RW50aXRsZW1lbnQoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZClcbiAgICB9LFxuICAgIGxpc3RTa3VzOiBhc3luYyAoYXBwbGljYXRpb25JZCkgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U2t1cyhhcHBsaWNhdGlvbklkKSkubWFwKChza3UpID0+IGJvdC50cmFuc2Zvcm1lcnMuc2t1KGJvdCwgc25ha2VsaXplKHNrdSkpKVxuICAgIH0sXG4gICAgZ2V0U3Vic2NyaXB0aW9uOiBhc3luYyAoc2t1SWQsIHN1YnNjcmlwdGlvbklkKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zdWJzY3JpcHRpb24oYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuZ2V0U3Vic2NyaXB0aW9uKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkpKVxuICAgIH0sXG4gICAgbGlzdFN1YnNjcmlwdGlvbnM6IGFzeW5jIChza3VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgcmV0dXJuIChhd2FpdCBib3QucmVzdC5saXN0U3Vic2NyaXB0aW9ucyhza3VJZCwgb3B0aW9ucykpLm1hcCgoc3Vic2NyaXB0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLnN1YnNjcmlwdGlvbihib3QsIHNuYWtlbGl6ZShzdWJzY3JpcHRpb24pKSlcbiAgICB9LFxuICAgIHNlbmRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LnNlbmRTb3VuZGJvYXJkU291bmQoY2hhbm5lbElkLCBvcHRpb25zKVxuICAgIH0sXG4gICAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiBhc3luYyAoKSA9PiB7XG4gICAgICByZXR1cm4gKGF3YWl0IGJvdC5yZXN0Lmxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcygpKS5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKVxuICAgIH0sXG4gICAgbGlzdEd1aWxkU291bmRib2FyZFNvdW5kczogYXN5bmMgKGd1aWxkSWQpID0+IHtcbiAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IGJvdC5yZXN0Lmxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHMoZ3VpbGRJZClcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgaXRlbXM6IHJlcy5pdGVtcy5tYXAoKHNvdW5kKSA9PiBib3QudHJhbnNmb3JtZXJzLnNvdW5kYm9hcmRTb3VuZChib3QsIHNuYWtlbGl6ZShzb3VuZCkpKSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGdldEd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0LmdldEd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQpKSlcbiAgICB9LFxuICAgIGNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kOiBhc3luYyAoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSA9PiB7XG4gICAgICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5zb3VuZGJvYXJkU291bmQoYm90LCBzbmFrZWxpemUoYXdhaXQgYm90LnJlc3QuY3JlYXRlR3VpbGRTb3VuZGJvYXJkU291bmQoZ3VpbGRJZCwgb3B0aW9ucywgcmVhc29uKSkpXG4gICAgfSxcbiAgICBtb2RpZnlHdWlsZFNvdW5kYm9hcmRTb3VuZDogYXN5bmMgKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikgPT4ge1xuICAgICAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuc291bmRib2FyZFNvdW5kKGJvdCwgc25ha2VsaXplKGF3YWl0IGJvdC5yZXN0Lm1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIG9wdGlvbnMsIHJlYXNvbikpKVxuICAgIH0sXG4gICAgZGVsZXRlR3VpbGRTb3VuZGJvYXJkU291bmQ6IGFzeW5jIChndWlsZElkLCBzb3VuZElkLCByZWFzb24pID0+IHtcbiAgICAgIGF3YWl0IGJvdC5yZXN0LmRlbGV0ZUd1aWxkU291bmRib2FyZFNvdW5kKGd1aWxkSWQsIHNvdW5kSWQsIHJlYXNvbilcbiAgICB9LFxuICAgIGRlbGV0ZUxvYmJ5OiBhc3luYyAobG9iYnlJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QuZGVsZXRlTG9iYnkobG9iYnlJZClcbiAgICB9LFxuICAgIHJlbW92ZU1lbWJlckZyb21Mb2JieTogYXN5bmMgKGxvYmJ5SWQsIHVzZXJJZCkgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QucmVtb3ZlTWVtYmVyRnJvbUxvYmJ5KGxvYmJ5SWQsIHVzZXJJZClcbiAgICB9LFxuICAgIGxlYXZlTG9iYnk6IGFzeW5jIChsb2JieUlkLCBiZWFyZXJUb2tlbikgPT4ge1xuICAgICAgYXdhaXQgYm90LnJlc3QubGVhdmVMb2JieShsb2JieUlkLCBiZWFyZXJUb2tlbilcbiAgICB9LFxuICB9XG59XG5cbmV4cG9ydCB0eXBlIEJvdEhlbHBlcnM8VFByb3BzIGV4dGVuZHMgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIFRCZWhhdmlvciBleHRlbmRzIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+ID0ge1xuICBjcmVhdGVBdXRvbW9kUnVsZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXV0b01vZGVyYXRpb25SdWxlT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgY3JlYXRlQ2hhbm5lbDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRDaGFubmVsLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlR3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUFwcGxpY2F0aW9uRW1vamk6IChvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkVtb2ppKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZUZvcnVtVGhyZWFkOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ3JlYXRlRm9ydW1Qb3N0V2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsIG9wdGlvbnM/OiBDcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQ6IChcbiAgICBjb21tYW5kOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQsXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZE9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGNyZWF0ZUd1aWxkU3RpY2tlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFN0aWNrZXJPcHRpb25zLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgY3JlYXRlR3VpbGRUZW1wbGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlVGVtcGxhdGUpID0+IFByb21pc2U8VGVtcGxhdGU+XG4gIGNyZWF0ZUludml0ZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogQ3JlYXRlQ2hhbm5lbEludml0ZSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGU+PlxuICBjcmVhdGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVHdWlsZFJvbGUsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENyZWF0ZVNjaGVkdWxlZEV2ZW50LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGNyZWF0ZVN0YWdlSW5zdGFuY2U6IChvcHRpb25zOiBDcmVhdGVTdGFnZUluc3RhbmNlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U3RhZ2VJbnN0YW5jZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVXZWJob29rOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kSWQ6IEJpZ1N0cmluZyxcbiAgICBiZWFyZXJUb2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5bXSxcbiAgKSA9PiBQcm9taXNlPEd1aWxkQXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM+XG4gIGVkaXRBdXRvbW9kUnVsZTogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBydWxlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPEVkaXRBdXRvTW9kZXJhdGlvblJ1bGVPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxBdXRvTW9kZXJhdGlvblJ1bGU+XG4gIGVkaXRCb3RQcm9maWxlOiAob3B0aW9uczoge1xuICAgIHVzZXJuYW1lPzogc3RyaW5nXG4gICAgYm90QXZhdGFyVVJMPzogc3RyaW5nIHwgbnVsbFxuICAgIGJvdEJhbm5lclVSTD86IHN0cmluZyB8IG51bGxcbiAgfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUNoYW5uZWwsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRFbW9qaSwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5QXBwbGljYXRpb25FbW9qaSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbW9qaSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Rm9sbG93dXBNZXNzYWdlOiAoXG4gICAgdG9rZW46IHN0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBJbnRlcmFjdGlvbkNhbGxiYWNrRGF0YSxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBDcmVhdGVBcHBsaWNhdGlvbkNvbW1hbmQpID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kPlxuICBlZGl0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUd1aWxkLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8R3VpbGQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZWRpdEd1aWxkU3RpY2tlcjogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBzdGlja2VySWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBBdExlYXN0T25lPEVkaXRHdWlsZFN0aWNrZXJPcHRpb25zPixcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB0ZW1wbGF0ZUNvZGU6IHN0cmluZywgb3B0aW9uczogTW9kaWZ5R3VpbGRUZW1wbGF0ZSkgPT4gUHJvbWlzZTxUZW1wbGF0ZT5cbiAgZWRpdE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRNZXNzYWdlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFJvbGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0R3VpbGRSb2xlLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0Um9sZVBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogTW9kaWZ5Um9sZVBvc2l0aW9uc1tdLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Um9sZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGVkaXRTY2hlZHVsZWRFdmVudDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogUGFydGlhbDxFZGl0U2NoZWR1bGVkRXZlbnQ+LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRTdGFnZUluc3RhbmNlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHRvcGljOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGFnZUluc3RhbmNlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeVdlYmhvb2ssIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGVkaXRXZWJob29rTWVzc2FnZTogKFxuICAgIHdlYmhvb2tJZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgbWVzc2FnZUlkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogRWRpdFdlYmhvb2tNZXNzYWdlT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdFdlYmhvb2tXaXRoVG9rZW46IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG9wdGlvbnM6IE9taXQ8TW9kaWZ5V2ViaG9vaywgJ2NoYW5uZWxJZCc+LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8V2ViaG9vaywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0V2VsY29tZVNjcmVlbjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZE1vZGlmeUd1aWxkV2VsY29tZVNjcmVlbj4sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTxXZWxjb21lU2NyZWVuPlxuICBlZGl0V2lkZ2V0U2V0dGluZ3M6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRHdWlsZFdpZGdldFNldHRpbmdzPiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0U2V0dGluZ3M+XG4gIGVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKFxuICAgIGJlYXJlclRva2VuOiBzdHJpbmcsXG4gICAgYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPixcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uPj5cbiAgZXhlY3V0ZVdlYmhvb2s6ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZywgb3B0aW9uczogRXhlY3V0ZVdlYmhvb2spID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+IHwgdW5kZWZpbmVkPlxuICBmb2xsb3dBbm5vdW5jZW1lbnQ6IChzb3VyY2VDaGFubmVsSWQ6IEJpZ1N0cmluZywgdGFyZ2V0Q2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEZvbGxvd2VkQ2hhbm5lbD4+XG4gIGdldEFjdGl2ZVRocmVhZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyB0aHJlYWRzOiBTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgbWVtYmVyczogVGhyZWFkTWVtYmVyW10gfT5cbiAgZ2V0QXBwbGljYXRpb25JbmZvOiAoKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBlZGl0QXBwbGljYXRpb25JbmZvOiAoYm9keTogRWRpdEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uPlxuICBnZXRDdXJyZW50QXV0aGVudGljYXRpb25JbmZvOiAoYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQ3VycmVudEF1dGhvcml6YXRpb24+PlxuICBleGNoYW5nZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlbkV4Y2hhbmdlPikgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQWNjZXNzVG9rZW5SZXNwb25zZT4+XG4gIHJldm9rZVRva2VuOiAoY2xpZW50SWQ6IEJpZ1N0cmluZywgY2xpZW50U2VjcmV0OiBzdHJpbmcsIG9wdGlvbnM6IENhbWVsaXplPERpc2NvcmRUb2tlblJldm9jYXRpb24+KSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb246IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgY29tbWFuZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucz5cbiAgZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbnM6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25PcHRpb25zLFxuICApID0+IFByb21pc2U8R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9uc1tdPlxuICBnZXRBdWRpdExvZzogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkQXVkaXRMb2cpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEF1ZGl0TG9nPj5cbiAgZ2V0QXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZT5cbiAgZ2V0QXV0b21vZFJ1bGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEF1dG9Nb2RlcmF0aW9uUnVsZVtdPlxuICBnZXRBdmFpbGFibGVWb2ljZVJlZ2lvbnM6ICgpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZFZvaWNlUmVnaW9uPltdPlxuICBnZXRCYW46IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRCYW4+PlxuICBnZXRCYW5zOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0QmFucykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQmFuPltdPlxuICBnZXRDaGFubmVsOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDaGFubmVsSW52aXRlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRJbnZpdGVNZXRhZGF0YT5bXT5cbiAgZ2V0Q2hhbm5lbHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldENoYW5uZWxXZWJob29rczogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXREbUNoYW5uZWw6ICh1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEdyb3VwRG1DaGFubmVsOiAob3B0aW9uczogR2V0R3JvdXBEbU9wdGlvbnMpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRFbW9qaTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgZW1vamlJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldEFwcGxpY2F0aW9uRW1vamk6IChlbW9qaUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0RW1vamlzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVtb2ppLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0QXBwbGljYXRpb25FbW9qaXM6ICgpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8RW1vamksIFRQcm9wcywgVEJlaGF2aW9yPltdIH0+XG4gIGdldEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R2F0ZXdheUJvdDogKCkgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkR2V0R2F0ZXdheUJvdD4+XG4gIGdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZD5cbiAgZ2V0R2xvYmFsQXBwbGljYXRpb25Db21tYW5kczogKCkgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGQ6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiB7IGNvdW50cz86IGJvb2xlYW4gfSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRHdWlsZHM6IChiZWFyZXJUb2tlbjogc3RyaW5nLCBvcHRpb25zPzogR2V0VXNlckd1aWxkcykgPT4gUHJvbWlzZTxQYXJ0aWFsPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkLCBUUHJvcHMsIFRCZWhhdmlvcj4+W10+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kOiAoY29tbWFuZElkOiBCaWdTdHJpbmcsIGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmQ+XG4gIGdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxBcHBsaWNhdGlvbkNvbW1hbmRbXT5cbiAgZ2V0R3VpbGRQcmV2aWV3OiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRHdWlsZFByZXZpZXc+PlxuICBnZXRHdWlsZFN0aWNrZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHN0aWNrZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0aWNrZXIsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0R3VpbGRTdGlja2VyczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0R3VpbGRUZW1wbGF0ZTogKHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICBnZXRHdWlsZFRlbXBsYXRlczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxUZW1wbGF0ZVtdPlxuICBnZXRHdWlsZFdlYmhvb2tzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRJbnRlZ3JhdGlvbnM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8SW50ZWdyYXRpb25bXT5cbiAgZ2V0SW52aXRlOiAoaW52aXRlQ29kZTogc3RyaW5nLCBvcHRpb25zPzogR2V0SW52aXRlKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRJbnZpdGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEludml0ZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldE1lc3NhZ2U6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZXNzYWdlczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0TWVzc2FnZXNPcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTdGlja2VyUGFjazogKHN0aWNrZXJQYWNrSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTdGlja2VyUGFjaz5cbiAgZ2V0U3RpY2tlclBhY2tzOiAoKSA9PiBQcm9taXNlPFN0aWNrZXJQYWNrW10+XG4gIGdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZTogKHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDaGFubmVsUGluczogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRDaGFubmVsUGluc09wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTx7IGl0ZW1zOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlUGluLCBUUHJvcHMsIFRCZWhhdmlvcj5bXTsgaGFzTW9yZTogYm9vbGVhbiB9PlxuICAvKiogQGRlcHJlY2F0ZWQgVXNlIHtAbGluayBCb3RIZWxwZXJzLmdldENoYW5uZWxQaW5zfSBpbnN0ZWFkICovXG4gIGdldFBpbm5lZE1lc3NhZ2VzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGdldFByaXZhdGVBcmNoaXZlZFRocmVhZHM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RBcmNoaXZlZFRocmVhZHMpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZExpc3RBcmNoaXZlZFRocmVhZHM+PlxuICBnZXRQcml2YXRlSm9pbmVkQXJjaGl2ZWRUaHJlYWRzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBMaXN0QXJjaGl2ZWRUaHJlYWRzKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRMaXN0QXJjaGl2ZWRUaHJlYWRzPj5cbiAgZ2V0UHJ1bmVDb3VudDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldEd1aWxkUHJ1bmVDb3VudFF1ZXJ5KSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRQcnVuZWRDb3VudD4+XG4gIGdldFB1YmxpY0FyY2hpdmVkVGhyZWFkczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogTGlzdEFyY2hpdmVkVGhyZWFkcykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkTGlzdEFyY2hpdmVkVGhyZWFkcz4+XG4gIGdldFJvbGVzOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFJvbGUsIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxSb2xlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFNjaGVkdWxlZEV2ZW50OiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIGV2ZW50SWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zPzogeyB3aXRoVXNlckNvdW50PzogYm9vbGVhbiB9LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8U2NoZWR1bGVkRXZlbnQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0U2NoZWR1bGVkRXZlbnRzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNjaGVkdWxlZEV2ZW50LCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0U2NoZWR1bGVkRXZlbnRVc2VyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBldmVudElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9ucz86IEdldFNjaGVkdWxlZEV2ZW50VXNlcnMsXG4gICkgPT4gUHJvbWlzZTxBcnJheTx7IHVzZXI6IFNldHVwRGVzaXJlZFByb3BzPFVzZXIsIFRQcm9wcywgVEJlaGF2aW9yPjsgbWVtYmVyPzogU2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj4gfT4+XG4gIGdldFNlc3Npb25JbmZvOiAoKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRHZXRHYXRld2F5Qm90Pj5cbiAgZ2V0U3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN0YWdlSW5zdGFuY2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0T3duVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxWb2ljZVN0YXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFVzZXJWb2ljZVN0YXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxWb2ljZVN0YXRlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFN0aWNrZXI6IChzdGlja2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdGlja2VyLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFRocmVhZE1lbWJlcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IEdldFRocmVhZE1lbWJlcikgPT4gUHJvbWlzZTxUaHJlYWRNZW1iZXI+XG4gIGdldFRocmVhZE1lbWJlcnM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RUaHJlYWRNZW1iZXJzKSA9PiBQcm9taXNlPFRocmVhZE1lbWJlcltdPlxuICBnZXRSZWFjdGlvbnM6IChcbiAgICBjaGFubmVsSWQ6IEJpZ1N0cmluZyxcbiAgICBtZXNzYWdlSWQ6IEJpZ1N0cmluZyxcbiAgICByZWFjdGlvbjogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRSZWFjdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxVc2VyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0VXNlcjogKGlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDdXJyZW50VXNlcjogKGJlYXJlclRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8VXNlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRVc2VyQ29ubmVjdGlvbnM6IChiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRDb25uZWN0aW9uPltdPlxuICBnZXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbjogKGJlYXJlclRva2VuOiBzdHJpbmcsIGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbj4+XG4gIGdldFZhbml0eVVybDogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxDYW1lbGl6ZTxEaXNjb3JkVmFuaXR5VXJsPj5cbiAgZ2V0Vm9pY2VSZWdpb25zOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRWb2ljZVJlZ2lvbj5bXT5cbiAgZ2V0V2ViaG9vazogKHdlYmhvb2tJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFdlYmhvb2ssIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0V2ViaG9va01lc3NhZ2U6IChcbiAgICB3ZWJob29rSWQ6IEJpZ1N0cmluZyxcbiAgICB0b2tlbjogc3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM/OiBHZXRXZWJob29rTWVzc2FnZU9wdGlvbnMsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFdlYmhvb2tXaXRoVG9rZW46ICh3ZWJob29rSWQ6IEJpZ1N0cmluZywgdG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxXZWJob29rLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGdldFdlbGNvbWVTY3JlZW46IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8V2VsY29tZVNjcmVlbj5cbiAgZ2V0V2lkZ2V0OiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPEd1aWxkV2lkZ2V0PlxuICBnZXRXaWRnZXRTZXR0aW5nczogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxHdWlsZFdpZGdldFNldHRpbmdzPlxuICBwdWJsaXNoTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHNlbmRNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZU1lc3NhZ2VPcHRpb25zKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc2VuZEZvbGxvd3VwTWVzc2FnZTogKHRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IEludGVyYWN0aW9uQ2FsbGJhY2tEYXRhKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgc3RhcnRUaHJlYWRXaXRoTWVzc2FnZTogKFxuICAgIGNoYW5uZWxJZDogQmlnU3RyaW5nLFxuICAgIG1lc3NhZ2VJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IFN0YXJ0VGhyZWFkV2l0aE1lc3NhZ2UsXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8Q2hhbm5lbCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzdGFydFRocmVhZFdpdGhvdXRNZXNzYWdlOiAoXG4gICAgY2hhbm5lbElkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogU3RhcnRUaHJlYWRXaXRob3V0TWVzc2FnZSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxDaGFubmVsLCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIHN5bmNHdWlsZFRlbXBsYXRlOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFRlbXBsYXRlPlxuICB1cHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRzOiAoXG4gICAgY29tbWFuZHM6IENyZWF0ZUFwcGxpY2F0aW9uQ29tbWFuZFtdLFxuICAgIG9wdGlvbnM/OiBVcHNlcnRHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmRPcHRpb25zLFxuICApID0+IFByb21pc2U8QXBwbGljYXRpb25Db21tYW5kW10+XG4gIHVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBjb21tYW5kczogQ3JlYXRlQXBwbGljYXRpb25Db21tYW5kW10sXG4gICAgb3B0aW9ucz86IFVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPEFwcGxpY2F0aW9uQ29tbWFuZFtdPlxuICBlZGl0Qm90TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBFZGl0Qm90TWVtYmVyT3B0aW9ucywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBlZGl0TWVtYmVyOiAoXG4gICAgZ3VpbGRJZDogQmlnU3RyaW5nLFxuICAgIHVzZXJJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkTWVtYmVyLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRDdXJyZW50TWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBnZXRNZW1iZXJzOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBMaXN0R3VpbGRNZW1iZXJzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPE1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIHBydW5lTWVtYmVyczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogQmVnaW5HdWlsZFBydW5lLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8eyBwcnVuZWQ6IG51bWJlciB8IG51bGwgfT5cbiAgc2VhcmNoTWVtYmVyczogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBxdWVyeTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBPbWl0PFNlYXJjaE1lbWJlcnMsICdxdWVyeSc+LFxuICApID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TWVtYmVyLCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgYnVsa0Jhbk1lbWJlcnM6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IENyZWF0ZUd1aWxkQnVsa0JhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHsgYmFubmVkVXNlcnM6IGJpZ2ludFtdOyBmYWlsZWRVc2VyczogYmlnaW50W10gfT5cbiAgZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBpbnN0YW5jZUlkOiBzdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFjdGl2aXR5SW5zdGFuY2U+PlxuICBsaXN0QXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8Q2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXT5cbiAgdXBkYXRlQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbnNNZXRhZGF0YVJlY29yZHM6IChcbiAgICBhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsXG4gICAgb3B0aW9uczogQ2FtZWxpemU8RGlzY29yZEFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25NZXRhZGF0YT5bXSxcbiAgKSA9PiBQcm9taXNlPENhbWVsaXplPERpc2NvcmRBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGE+W10+XG4gIGNyZWF0ZUxvYmJ5OiAob3B0aW9uczogQ3JlYXRlTG9iYnkpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZ2V0TG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8U2V0dXBEZXNpcmVkUHJvcHM8TG9iYnksIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgbW9kaWZ5TG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IE1vZGlmeUxvYmJ5KSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPExvYmJ5LCBUUHJvcHMsIFRCZWhhdmlvcj4+XG4gIGFkZE1lbWJlclRvTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGRMb2JieU1lbWJlcikgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieU1lbWJlciwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBsaW5rQ2hhbm5lbFRvTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcsIGJlYXJlclRva2VuOiBzdHJpbmcsIG9wdGlvbnM6IExpbmtDaGFubmVsVG9Mb2JieSkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICB1bmxpbmtDaGFubmVsVG9Mb2JieTogKGxvYmJ5SWQ6IEJpZ1N0cmluZywgYmVhcmVyVG9rZW46IHN0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxMb2JieSwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICAvLyBmdW5jdGlvbnMgcmV0dXJuIFZvaWQgc28gZG9udCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nXG4gIGFkZFJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZFJlYWN0aW9uczogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb25zOiBzdHJpbmdbXSwgb3JkZXJlZD86IGJvb2xlYW4pID0+IFByb21pc2U8dm9pZD5cbiAgYWRkUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGFkZERtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGREbVJlY2lwaWVudE9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgYWRkR3VpbGRNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCBvcHRpb25zOiBBZGRHdWlsZE1lbWJlck9wdGlvbnMpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQXV0b21vZFJ1bGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHJ1bGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlQ2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBvdmVyd3JpdGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlRW1vamk6IChndWlsZElkOiBCaWdTdHJpbmcsIGlkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVBcHBsaWNhdGlvbkVtb2ppOiAoaWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVGb2xsb3d1cE1lc3NhZ2U6ICh0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQ6IChjb21tYW5kSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVHdWlsZEFwcGxpY2F0aW9uQ29tbWFuZDogKGNvbW1hbmRJZDogQmlnU3RyaW5nLCBndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlR3VpbGRTdGlja2VyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBzdGlja2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUd1aWxkVGVtcGxhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIHRlbXBsYXRlQ29kZTogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZUludGVncmF0aW9uOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBpbnRlZ3JhdGlvbklkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVJbnZpdGU6IChpbnZpdGVDb2RlOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVNZXNzYWdlOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTWVzc2FnZXM6IChjaGFubmVsSWQ6IEJpZ1N0cmluZywgbWVzc2FnZUlkczogQmlnU3RyaW5nW10sIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2U6ICh0b2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZU93blJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCByZWFjdGlvbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVJlYWN0aW9uc0FsbDogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSZWFjdGlvbnNFbW9qaTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVSb2xlOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCByb2xlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGRlbGV0ZVNjaGVkdWxlZEV2ZW50OiAoZ3VpbGRJZDogQmlnU3RyaW5nLCBldmVudElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlU3RhZ2VJbnN0YW5jZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlVXNlclJlYWN0aW9uOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG1lc3NhZ2VJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhY3Rpb246IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rTWVzc2FnZTogKHdlYmhvb2tJZDogQmlnU3RyaW5nLCB0b2tlbjogc3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IERlbGV0ZVdlYmhvb2tNZXNzYWdlT3B0aW9ucykgPT4gUHJvbWlzZTx2b2lkPlxuICBkZWxldGVXZWJob29rV2l0aFRva2VuOiAod2ViaG9va0lkOiBCaWdTdHJpbmcsIHRva2VuOiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdENoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGVzOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRDaGFubmVsUGVybWlzc2lvbk92ZXJyaWRlc09wdGlvbnMsIHJlYXNvbj86IHN0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBlZGl0Q2hhbm5lbFBvc2l0aW9uczogKGd1aWxkSWQ6IEJpZ1N0cmluZywgY2hhbm5lbFBvc2l0aW9uczogTW9kaWZ5R3VpbGRDaGFubmVsUG9zaXRpb25zW10pID0+IFByb21pc2U8dm9pZD5cbiAgZWRpdE93blZvaWNlU3RhdGU6IChndWlsZElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IEVkaXRPd25Wb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGVkaXRVc2VyVm9pY2VTdGF0ZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgb3B0aW9uczogRWRpdFVzZXJWb2ljZVN0YXRlKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGpvaW5UaHJlYWQ6IChjaGFubmVsSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUd1aWxkOiAoZ3VpbGRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxlYXZlVGhyZWFkOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlUm9sZTogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIHJvbGVJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlVGhyZWFkTWVtYmVyOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHJlbW92ZURtUmVjaXBpZW50OiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHNlbmRJbnRlcmFjdGlvblJlc3BvbnNlOiAoXG4gICAgaW50ZXJhY3Rpb25JZDogQmlnU3RyaW5nLFxuICAgIHRva2VuOiBzdHJpbmcsXG4gICAgb3B0aW9uczogSW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgICBwYXJhbXM/OiBJbnRlcmFjdGlvbkNhbGxiYWNrT3B0aW9ucyxcbiAgKSA9PiBQcm9taXNlPHZvaWQgfCBTZXR1cERlc2lyZWRQcm9wczxJbnRlcmFjdGlvbkNhbGxiYWNrUmVzcG9uc2UsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgdHJpZ2dlclR5cGluZ0luZGljYXRvcjogKGNoYW5uZWxJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGJhbk1lbWJlcjogKGd1aWxkSWQ6IEJpZ1N0cmluZywgdXNlcklkOiBCaWdTdHJpbmcsIG9wdGlvbnM/OiBDcmVhdGVHdWlsZEJhbiwgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGtpY2tNZW1iZXI6IChndWlsZElkOiBCaWdTdHJpbmcsIHVzZXJJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVuYmFuTWVtYmVyOiAoZ3VpbGRJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIHVucGluTWVzc2FnZTogKGNoYW5uZWxJZDogQmlnU3RyaW5nLCBtZXNzYWdlSWQ6IEJpZ1N0cmluZywgcmVhc29uPzogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGdldEd1aWxkT25ib2FyZGluZzogKGd1aWxkSWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgZWRpdEd1aWxkT25ib2FyZGluZzogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBFZGl0R3VpbGRPbmJvYXJkaW5nLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZywgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBsaXN0RW50aXRsZW1lbnRzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nLCBvcHRpb25zPzogR2V0RW50aXRsZW1lbnRzKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPEVudGl0bGVtZW50LCBUUHJvcHMsIFRCZWhhdmlvcj5bXT5cbiAgZ2V0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGVudGl0bGVtZW50SWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxFbnRpdGxlbWVudCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVUZXN0RW50aXRsZW1lbnQ6IChhcHBsaWNhdGlvbklkOiBCaWdTdHJpbmcsIGJvZHk6IENyZWF0ZUVudGl0bGVtZW50KSA9PiBQcm9taXNlPFBhcnRpYWw8U2V0dXBEZXNpcmVkUHJvcHM8RW50aXRsZW1lbnQsIFRQcm9wcywgVEJlaGF2aW9yPj4+XG4gIGRlbGV0ZVRlc3RFbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQ6IEJpZ1N0cmluZywgZW50aXRsZW1lbnRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGxpc3RTa3VzOiAoYXBwbGljYXRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNrdSwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGxpc3RTdWJzY3JpcHRpb25zOiAoc2t1SWQ6IEJpZ1N0cmluZywgb3B0aW9ucz86IExpc3RTa3VTdWJzY3JpcHRpb25zT3B0aW9ucykgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTdWJzY3JpcHRpb24sIFRQcm9wcywgVEJlaGF2aW9yPltdPlxuICBnZXRTdWJzY3JpcHRpb246IChza3VJZDogQmlnU3RyaW5nLCBzdWJzY3JpcHRpb25JZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFN1YnNjcmlwdGlvbiwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBzZW5kU291bmRib2FyZFNvdW5kOiAoY2hhbm5lbElkOiBCaWdTdHJpbmcsIG9wdGlvbnM6IFNlbmRTb3VuZGJvYXJkU291bmQpID0+IFByb21pc2U8dm9pZD5cbiAgbGlzdERlZmF1bHRTb3VuZGJvYXJkU291bmRzOiAoKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+W10+XG4gIGxpc3RHdWlsZFNvdW5kYm9hcmRTb3VuZHM6IChndWlsZElkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8eyBpdGVtczogU2V0dXBEZXNpcmVkUHJvcHM8U291bmRib2FyZFNvdW5kLCBUUHJvcHMsIFRCZWhhdmlvcj5bXSB9PlxuICBnZXRHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBjcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKFxuICAgIGd1aWxkSWQ6IEJpZ1N0cmluZyxcbiAgICBvcHRpb25zOiBDcmVhdGVHdWlsZFNvdW5kYm9hcmRTb3VuZCxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICkgPT4gUHJvbWlzZTxTZXR1cERlc2lyZWRQcm9wczxTb3VuZGJvYXJkU291bmQsIFRQcm9wcywgVEJlaGF2aW9yPj5cbiAgbW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQ6IChcbiAgICBndWlsZElkOiBCaWdTdHJpbmcsXG4gICAgc291bmRJZDogQmlnU3RyaW5nLFxuICAgIG9wdGlvbnM6IE1vZGlmeUd1aWxkU291bmRib2FyZFNvdW5kLFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgKSA9PiBQcm9taXNlPFNldHVwRGVzaXJlZFByb3BzPFNvdW5kYm9hcmRTb3VuZCwgVFByb3BzLCBUQmVoYXZpb3I+PlxuICBkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZDogKGd1aWxkSWQ6IEJpZ1N0cmluZywgc291bmRJZDogQmlnU3RyaW5nLCByZWFzb24/OiBzdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgZGVsZXRlTG9iYnk6IChsb2JieUlkOiBCaWdTdHJpbmcpID0+IFByb21pc2U8dm9pZD5cbiAgcmVtb3ZlTWVtYmVyRnJvbUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCB1c2VySWQ6IEJpZ1N0cmluZykgPT4gUHJvbWlzZTx2b2lkPlxuICBsZWF2ZUxvYmJ5OiAobG9iYnlJZDogQmlnU3RyaW5nLCBiZWFyZXJUb2tlbjogc3RyaW5nKSA9PiBQcm9taXNlPHZvaWQ+XG59XG4iXSwibmFtZXMiOlsic25ha2VsaXplIiwiY3JlYXRlQm90SGVscGVycyIsImJvdCIsImNyZWF0ZUF1dG9tb2RSdWxlIiwiZ3VpbGRJZCIsIm9wdGlvbnMiLCJyZWFzb24iLCJ0cmFuc2Zvcm1lcnMiLCJhdXRvbW9kUnVsZSIsInJlc3QiLCJjcmVhdGVDaGFubmVsIiwiY2hhbm5lbCIsImNyZWF0ZUVtb2ppIiwiZW1vamkiLCJjcmVhdGVBcHBsaWNhdGlvbkVtb2ppIiwiY3JlYXRlRm9ydW1UaHJlYWQiLCJjaGFubmVsSWQiLCJjcmVhdGVHbG9iYWxBcHBsaWNhdGlvbkNvbW1hbmQiLCJjb21tYW5kIiwiYXBwbGljYXRpb25Db21tYW5kIiwiY3JlYXRlR3VpbGRBcHBsaWNhdGlvbkNvbW1hbmQiLCJjcmVhdGVHdWlsZFN0aWNrZXIiLCJzdGlja2VyIiwiY3JlYXRlR3VpbGRUZW1wbGF0ZSIsInRlbXBsYXRlIiwiY3JlYXRlSW52aXRlIiwiY3JlYXRlUm9sZSIsInJvbGUiLCJjcmVhdGVTY2hlZHVsZWRFdmVudCIsInNjaGVkdWxlZEV2ZW50IiwiY3JlYXRlU3RhZ2VJbnN0YW5jZSIsInN0YWdlSW5zdGFuY2UiLCJjcmVhdGVXZWJob29rIiwid2ViaG9vayIsImVkaXRBcHBsaWNhdGlvbkNvbW1hbmRQZXJtaXNzaW9ucyIsImNvbW1hbmRJZCIsImJlYXJlclRva2VuIiwiYXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsImVkaXRBdXRvbW9kUnVsZSIsInJ1bGVJZCIsImVkaXRCb3RQcm9maWxlIiwidXNlciIsImVkaXRDaGFubmVsIiwiZWRpdEVtb2ppIiwiaWQiLCJlZGl0QXBwbGljYXRpb25FbW9qaSIsImVkaXRGb2xsb3d1cE1lc3NhZ2UiLCJ0b2tlbiIsIm1lc3NhZ2VJZCIsIm1lc3NhZ2UiLCJzaGFyZElkIiwiZWRpdEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImVkaXRHdWlsZCIsImd1aWxkIiwiZWRpdEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZWRpdEd1aWxkU3RpY2tlciIsInN0aWNrZXJJZCIsImVkaXRHdWlsZFRlbXBsYXRlIiwidGVtcGxhdGVDb2RlIiwiZWRpdE1lc3NhZ2UiLCJlZGl0T3JpZ2luYWxJbnRlcmFjdGlvblJlc3BvbnNlIiwiZWRpdFJvbGUiLCJyb2xlSWQiLCJlZGl0Um9sZVBvc2l0aW9ucyIsIm1hcCIsImVkaXRTY2hlZHVsZWRFdmVudCIsImV2ZW50SWQiLCJlZGl0U3RhZ2VJbnN0YW5jZSIsInRvcGljIiwiZWRpdFdlYmhvb2siLCJ3ZWJob29rSWQiLCJlZGl0V2ViaG9va01lc3NhZ2UiLCJlZGl0V2ViaG9va1dpdGhUb2tlbiIsImVkaXRXZWxjb21lU2NyZWVuIiwid2VsY29tZVNjcmVlbiIsImVkaXRXaWRnZXRTZXR0aW5ncyIsIndpZGdldFNldHRpbmdzIiwiZXhlY3V0ZVdlYmhvb2siLCJyZXN1bHQiLCJmb2xsb3dBbm5vdW5jZW1lbnQiLCJzb3VyY2VDaGFubmVsSWQiLCJ0YXJnZXRDaGFubmVsSWQiLCJnZXRBY3RpdmVUaHJlYWRzIiwidGhyZWFkcyIsInRocmVhZCIsIm1lbWJlcnMiLCJtZW1iZXIiLCJ0aHJlYWRNZW1iZXIiLCJnZXRBcHBsaWNhdGlvbkluZm8iLCJhcHBsaWNhdGlvbiIsImVkaXRBcHBsaWNhdGlvbkluZm8iLCJib2R5IiwiZ2V0Q3VycmVudEF1dGhlbnRpY2F0aW9uSW5mbyIsImV4Y2hhbmdlVG9rZW4iLCJjbGllbnRJZCIsImNsaWVudFNlY3JldCIsInJldm9rZVRva2VuIiwiZ2V0QXBwbGljYXRpb25Db21tYW5kUGVybWlzc2lvbiIsInJlcyIsInNuYWtlZFJlcyIsImdldEFwcGxpY2F0aW9uQ29tbWFuZFBlcm1pc3Npb25zIiwiZ2V0QXVkaXRMb2ciLCJnZXRBdXRvbW9kUnVsZSIsImdldEF1dG9tb2RSdWxlcyIsImdldEF2YWlsYWJsZVZvaWNlUmVnaW9ucyIsInZvaWNlUmVnaW9uIiwiZ2V0QmFuIiwidXNlcklkIiwiZ2V0QmFucyIsImdldENoYW5uZWwiLCJnZXRDaGFubmVsSW52aXRlcyIsImdldENoYW5uZWxzIiwiZ2V0Q2hhbm5lbFdlYmhvb2tzIiwiZ2V0RG1DaGFubmVsIiwiZ2V0R3JvdXBEbUNoYW5uZWwiLCJnZXRFbW9qaSIsImVtb2ppSWQiLCJnZXRBcHBsaWNhdGlvbkVtb2ppIiwiZ2V0RW1vamlzIiwiZ2V0QXBwbGljYXRpb25FbW9qaXMiLCJpdGVtcyIsIml0ZW0iLCJnZXRGb2xsb3d1cE1lc3NhZ2UiLCJnZXRHYXRld2F5Qm90IiwiZ2F0ZXdheUJvdCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImdldEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJnZXRHdWlsZCIsImdldEd1aWxkcyIsImdldEd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZ2V0R3VpbGRBcHBsaWNhdGlvbkNvbW1hbmRzIiwiZ2V0R3VpbGRQcmV2aWV3IiwiZ2V0R3VpbGRTdGlja2VyIiwiZ2V0R3VpbGRTdGlja2VycyIsImdldEd1aWxkVGVtcGxhdGUiLCJnZXRHdWlsZFRlbXBsYXRlcyIsImdldEd1aWxkV2ViaG9va3MiLCJnZXRJbnRlZ3JhdGlvbnMiLCJpbnRlZ3JhdGlvbiIsInRvU3RyaW5nIiwiZ2V0SW52aXRlIiwiaW52aXRlQ29kZSIsImludml0ZSIsImdldEludml0ZXMiLCJnZXRNZXNzYWdlIiwiZ2V0TWVzc2FnZXMiLCJnZXRTdGlja2VyUGFjayIsInN0aWNrZXJQYWNrSWQiLCJzdGlja2VyUGFjayIsImdldFN0aWNrZXJQYWNrcyIsImdldE9yaWdpbmFsSW50ZXJhY3Rpb25SZXNwb25zZSIsImdldENoYW5uZWxQaW5zIiwiaGFzTW9yZSIsImhhc19tb3JlIiwibWVzc2FnZVBpbiIsImdldFBpbm5lZE1lc3NhZ2VzIiwiZ2V0UHJpdmF0ZUFyY2hpdmVkVGhyZWFkcyIsImdldFByaXZhdGVKb2luZWRBcmNoaXZlZFRocmVhZHMiLCJnZXRQcnVuZUNvdW50IiwiZ2V0UHVibGljQXJjaGl2ZWRUaHJlYWRzIiwiZ2V0Um9sZXMiLCJnZXRSb2xlIiwiZ2V0U2NoZWR1bGVkRXZlbnQiLCJnZXRTY2hlZHVsZWRFdmVudHMiLCJnZXRTY2hlZHVsZWRFdmVudFVzZXJzIiwidSIsInNub3dmbGFrZSIsImdldFNlc3Npb25JbmZvIiwiZ2V0U3RhZ2VJbnN0YW5jZSIsImdldE93blZvaWNlU3RhdGUiLCJ2b2ljZVN0YXRlIiwiZ2V0VXNlclZvaWNlU3RhdGUiLCJnZXRTdGlja2VyIiwiZ2V0VGhyZWFkTWVtYmVyIiwiZ2V0VGhyZWFkTWVtYmVycyIsImdldFJlYWN0aW9ucyIsInJlYWN0aW9uIiwiZ2V0VXNlciIsImdldEN1cnJlbnRVc2VyIiwiZ2V0VXNlckNvbm5lY3Rpb25zIiwiZ2V0VXNlckFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb24iLCJhcHBsaWNhdGlvbklkIiwiZ2V0VmFuaXR5VXJsIiwiZ2V0Vm9pY2VSZWdpb25zIiwiZ2V0V2ViaG9vayIsImdldFdlYmhvb2tNZXNzYWdlIiwiZ2V0V2ViaG9va1dpdGhUb2tlbiIsImdldFdlbGNvbWVTY3JlZW4iLCJnZXRXaWRnZXQiLCJ3aWRnZXQiLCJnZXRXaWRnZXRTZXR0aW5ncyIsInB1Ymxpc2hNZXNzYWdlIiwic2VuZE1lc3NhZ2UiLCJzZW5kRm9sbG93dXBNZXNzYWdlIiwic3RhcnRUaHJlYWRXaXRoTWVzc2FnZSIsInN0YXJ0VGhyZWFkV2l0aG91dE1lc3NhZ2UiLCJzeW5jR3VpbGRUZW1wbGF0ZSIsInVwc2VydEdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZHMiLCJjb21tYW5kcyIsInVwc2VydEd1aWxkQXBwbGljYXRpb25Db21tYW5kcyIsImVkaXRCb3RNZW1iZXIiLCJlZGl0TWVtYmVyIiwiZ2V0TWVtYmVyIiwiZ2V0Q3VycmVudE1lbWJlciIsImdldE1lbWJlcnMiLCJwcnVuZU1lbWJlcnMiLCJzZWFyY2hNZW1iZXJzIiwicXVlcnkiLCJidWxrQmFuTWVtYmVycyIsImJhbm5lZFVzZXJzIiwieCIsImZhaWxlZFVzZXJzIiwiZ2V0QXBwbGljYXRpb25BY3Rpdml0eUluc3RhbmNlIiwiaW5zdGFuY2VJZCIsImxpc3RBcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uc01ldGFkYXRhUmVjb3JkcyIsInVwZGF0ZUFwcGxpY2F0aW9uUm9sZUNvbm5lY3Rpb25zTWV0YWRhdGFSZWNvcmRzIiwiY3JlYXRlTG9iYnkiLCJsb2JieSIsImdldExvYmJ5IiwibG9iYnlJZCIsIm1vZGlmeUxvYmJ5IiwiYWRkTWVtYmVyVG9Mb2JieSIsImxvYmJ5TWVtYmVyIiwibGlua0NoYW5uZWxUb0xvYmJ5IiwidW5saW5rQ2hhbm5lbFRvTG9iYnkiLCJhZGRSZWFjdGlvbiIsImFkZFJlYWN0aW9ucyIsInJlYWN0aW9ucyIsIm9yZGVyZWQiLCJhZGRSb2xlIiwiYWRkVGhyZWFkTWVtYmVyIiwiYWRkRG1SZWNpcGllbnQiLCJhZGRHdWlsZE1lbWJlciIsImRlbGV0ZUF1dG9tb2RSdWxlIiwiZGVsZXRlQ2hhbm5lbCIsImRlbGV0ZUNoYW5uZWxQZXJtaXNzaW9uT3ZlcnJpZGUiLCJvdmVyd3JpdGVJZCIsImRlbGV0ZUVtb2ppIiwiZGVsZXRlQXBwbGljYXRpb25FbW9qaSIsImRlbGV0ZUZvbGxvd3VwTWVzc2FnZSIsImRlbGV0ZUdsb2JhbEFwcGxpY2F0aW9uQ29tbWFuZCIsImRlbGV0ZUd1aWxkQXBwbGljYXRpb25Db21tYW5kIiwiZGVsZXRlR3VpbGRTdGlja2VyIiwiZGVsZXRlR3VpbGRUZW1wbGF0ZSIsImRlbGV0ZUludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImRlbGV0ZUludml0ZSIsImRlbGV0ZU1lc3NhZ2UiLCJkZWxldGVNZXNzYWdlcyIsIm1lc3NhZ2VJZHMiLCJkZWxldGVPcmlnaW5hbEludGVyYWN0aW9uUmVzcG9uc2UiLCJkZWxldGVPd25SZWFjdGlvbiIsImRlbGV0ZVJlYWN0aW9uc0FsbCIsImRlbGV0ZVJlYWN0aW9uc0Vtb2ppIiwiZGVsZXRlUm9sZSIsImRlbGV0ZVNjaGVkdWxlZEV2ZW50IiwiZGVsZXRlU3RhZ2VJbnN0YW5jZSIsImRlbGV0ZVVzZXJSZWFjdGlvbiIsImRlbGV0ZVdlYmhvb2siLCJkZWxldGVXZWJob29rTWVzc2FnZSIsImRlbGV0ZVdlYmhvb2tXaXRoVG9rZW4iLCJlZGl0Q2hhbm5lbFBlcm1pc3Npb25PdmVycmlkZXMiLCJlZGl0Q2hhbm5lbFBvc2l0aW9ucyIsImNoYW5uZWxQb3NpdGlvbnMiLCJlZGl0T3duVm9pY2VTdGF0ZSIsImVkaXRVc2VyVm9pY2VTdGF0ZSIsImVkaXRVc2VyQXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbiIsImpvaW5UaHJlYWQiLCJsZWF2ZUd1aWxkIiwibGVhdmVUaHJlYWQiLCJyZW1vdmVSb2xlIiwicmVtb3ZlVGhyZWFkTWVtYmVyIiwicmVtb3ZlRG1SZWNpcGllbnQiLCJzZW5kSW50ZXJhY3Rpb25SZXNwb25zZSIsImludGVyYWN0aW9uSWQiLCJwYXJhbXMiLCJyZXNwb25zZSIsImludGVyYWN0aW9uQ2FsbGJhY2tSZXNwb25zZSIsInRyaWdnZXJUeXBpbmdJbmRpY2F0b3IiLCJiYW5NZW1iZXIiLCJraWNrTWVtYmVyIiwicGluTWVzc2FnZSIsInVuYmFuTWVtYmVyIiwidW5waW5NZXNzYWdlIiwiZ2V0R3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZWRpdEd1aWxkT25ib2FyZGluZyIsImxpc3RFbnRpdGxlbWVudHMiLCJlbnRpdGxlbWVudCIsImdldEVudGl0bGVtZW50IiwiZW50aXRsZW1lbnRJZCIsImNyZWF0ZVRlc3RFbnRpdGxlbWVudCIsImRlbGV0ZVRlc3RFbnRpdGxlbWVudCIsImxpc3RTa3VzIiwic2t1IiwiZ2V0U3Vic2NyaXB0aW9uIiwic2t1SWQiLCJzdWJzY3JpcHRpb25JZCIsInN1YnNjcmlwdGlvbiIsImxpc3RTdWJzY3JpcHRpb25zIiwic2VuZFNvdW5kYm9hcmRTb3VuZCIsImxpc3REZWZhdWx0U291bmRib2FyZFNvdW5kcyIsInNvdW5kIiwic291bmRib2FyZFNvdW5kIiwibGlzdEd1aWxkU291bmRib2FyZFNvdW5kcyIsImdldEd1aWxkU291bmRib2FyZFNvdW5kIiwic291bmRJZCIsImNyZWF0ZUd1aWxkU291bmRib2FyZFNvdW5kIiwibW9kaWZ5R3VpbGRTb3VuZGJvYXJkU291bmQiLCJkZWxldGVHdWlsZFNvdW5kYm9hcmRTb3VuZCIsImRlbGV0ZUxvYmJ5IiwicmVtb3ZlTWVtYmVyRnJvbUxvYmJ5IiwibGVhdmVMb2JieSJdLCJtYXBwaW5ncyI6IkFBMkdBLFNBQVNBLFNBQVMsUUFBUSxvQkFBbUI7QUF1QzdDLE9BQU8sU0FBU0MsaUJBQ2RDLEdBQTJCO0lBRTNCLE9BQU87UUFDTEMsbUJBQW1CLE9BQU9DLFNBQVNDLFNBQVNDO1lBQzFDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ0MsV0FBVyxDQUFDTixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ04saUJBQWlCLENBQUNDLFNBQVNDLFNBQVNDO1FBQ3hHO1FBQ0FJLGVBQWUsT0FBT04sU0FBU0MsU0FBU0M7WUFDdEMsT0FBT0osSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7Z0JBQUVTLFNBQVNYLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDQyxhQUFhLENBQUNOLFNBQVNDLFNBQVNDO2dCQUFVRjtZQUFRO1FBQzdIO1FBQ0FRLGFBQWEsT0FBT1IsU0FBU0MsU0FBU0M7WUFDcEMsT0FBT0osSUFBSUssWUFBWSxDQUFDTSxLQUFLLENBQUNYLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDRyxXQUFXLENBQUNSLFNBQVNDLFNBQVNDO1FBQzVGO1FBQ0FRLHdCQUF3QixPQUFPVDtZQUM3QixPQUFPSCxJQUFJSyxZQUFZLENBQUNNLEtBQUssQ0FBQ1gsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNLLHNCQUFzQixDQUFDVDtRQUNyRjtRQUNBVSxtQkFBbUIsT0FBT0MsV0FBV1gsU0FBU0M7WUFDNUMsT0FBT0osSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7Z0JBQUVTLFNBQVNYLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDTSxpQkFBaUIsQ0FBQ0MsV0FBV1gsU0FBU0M7WUFBUztRQUMxSDtRQUNBVyxnQ0FBZ0MsT0FBT0MsU0FBU2I7WUFDOUMsT0FBT0gsSUFBSUssWUFBWSxDQUFDWSxrQkFBa0IsQ0FBQ2pCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDUSw4QkFBOEIsQ0FBQ0MsU0FBU2I7UUFDbkg7UUFDQWUsK0JBQStCLE9BQU9GLFNBQVNkLFNBQVNDO1lBQ3RELE9BQU9ILElBQUlLLFlBQVksQ0FBQ1ksa0JBQWtCLENBQUNqQixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ1csNkJBQTZCLENBQUNGLFNBQVNkLFNBQVNDO1FBQzNIO1FBQ0FnQixvQkFBb0IsT0FBT2pCLFNBQVNDLFNBQVNDO1lBQzNDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ2UsT0FBTyxDQUFDcEIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNZLGtCQUFrQixDQUFDakIsU0FBU0MsU0FBU0M7UUFDckc7UUFDQWlCLHFCQUFxQixPQUFPbkIsU0FBU0M7WUFDbkMsT0FBT0gsSUFBSUssWUFBWSxDQUFDaUIsUUFBUSxDQUFDdEIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNjLG1CQUFtQixDQUFDbkIsU0FBU0M7UUFDOUY7UUFDQW9CLGNBQWMsT0FBT1QsV0FBV1gsU0FBU0M7WUFDdkMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUNnQixZQUFZLENBQUNULFdBQVdYLFNBQVNDO1FBQ3pEO1FBQ0FvQixZQUFZLE9BQU90QixTQUFTQyxTQUFTQztZQUNuQyxPQUFPSixJQUFJSyxZQUFZLENBQUNvQixJQUFJLENBQUN6QixLQUFLO2dCQUFFeUIsTUFBTTNCLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDaUIsVUFBVSxDQUFDdEIsU0FBU0MsU0FBU0M7Z0JBQVVGO1lBQVE7UUFDcEg7UUFDQXdCLHNCQUFzQixPQUFPeEIsU0FBU0MsU0FBU0M7WUFDN0MsT0FBT0osSUFBSUssWUFBWSxDQUFDc0IsY0FBYyxDQUFDM0IsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNtQixvQkFBb0IsQ0FBQ3hCLFNBQVNDLFNBQVNDO1FBQzlHO1FBQ0F3QixxQkFBcUIsT0FBT3pCLFNBQVNDO1lBQ25DLE9BQU9KLElBQUlLLFlBQVksQ0FBQ3dCLGFBQWEsQ0FBQzdCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDcUIsbUJBQW1CLENBQUN6QixTQUFTQztRQUNuRztRQUNBMEIsZUFBZSxPQUFPaEIsV0FBV1gsU0FBU0M7WUFDeEMsT0FBT0osSUFBSUssWUFBWSxDQUFDMEIsT0FBTyxDQUFDL0IsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN1QixhQUFhLENBQUNoQixXQUFXWCxTQUFTQztRQUNsRztRQUNBNEIsbUNBQW1DLE9BQU85QixTQUFTK0IsV0FBV0MsYUFBYS9CO1lBQ3pFLE9BQU9ILElBQUlLLFlBQVksQ0FBQzhCLDRCQUE0QixDQUNsRG5DLEtBQ0FGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDeUIsaUNBQWlDLENBQUM5QixTQUFTK0IsV0FBV0MsYUFBYS9CO1FBRWhHO1FBQ0FpQyxpQkFBaUIsT0FBT2xDLFNBQVNtQyxRQUFRbEMsU0FBU0M7WUFDaEQsT0FBT0osSUFBSUssWUFBWSxDQUFDQyxXQUFXLENBQUNOLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDNkIsZUFBZSxDQUFDbEMsU0FBU21DLFFBQVFsQyxTQUFTQztRQUM5RztRQUNBa0MsZ0JBQWdCLE9BQU9uQztZQUNyQixPQUFPSCxJQUFJSyxZQUFZLENBQUNrQyxJQUFJLENBQUN2QyxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQytCLGNBQWMsQ0FBQ25DO1FBQzVFO1FBQ0FxQyxhQUFhLE9BQU8xQixXQUFXWCxTQUFTQztZQUN0QyxPQUFPSixJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBSztnQkFBRVMsU0FBU1gsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNpQyxXQUFXLENBQUMxQixXQUFXWCxTQUFTQztZQUFTO1FBQ3BIO1FBQ0FxQyxXQUFXLE9BQU92QyxTQUFTd0MsSUFBSXZDLFNBQVNDO1lBQ3RDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ00sS0FBSyxDQUFDWCxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2tDLFNBQVMsQ0FBQ3ZDLFNBQVN3QyxJQUFJdkMsU0FBU0M7UUFDOUY7UUFDQXVDLHNCQUFzQixPQUFPRCxJQUFJdkM7WUFDL0IsT0FBT0gsSUFBSUssWUFBWSxDQUFDTSxLQUFLLENBQUNYLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDb0Msb0JBQW9CLENBQUNELElBQUl2QztRQUN2RjtRQUNBeUMscUJBQXFCLE9BQU9DLE9BQU9DLFdBQVczQztZQUM1QyxPQUFPSCxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDcUMsbUJBQW1CLENBQUNDLE9BQU9DLFdBQVczQztnQkFBVzZDLFNBQVM7WUFBRTtRQUN2STtRQUNBQyw4QkFBOEIsT0FBT2hCLFdBQVc5QjtZQUM5QyxPQUFPSCxJQUFJSyxZQUFZLENBQUNZLGtCQUFrQixDQUFDakIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMwQyw0QkFBNEIsQ0FBQ2hCLFdBQVc5QjtRQUNuSDtRQUNBK0MsV0FBVyxPQUFPaEQsU0FBU0MsU0FBU0M7WUFDbEMsT0FBT0osSUFBSUssWUFBWSxDQUFDOEMsS0FBSyxDQUFDbkQsS0FBSztnQkFBRW1ELE9BQU9yRCxVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzJDLFNBQVMsQ0FBQ2hELFNBQVNDLFNBQVNDO2dCQUFVNEMsU0FBUztZQUFFO1FBQ3hIO1FBQ0FJLDZCQUE2QixPQUFPbkIsV0FBVy9CLFNBQVNDO1lBQ3RELE9BQU9ILElBQUlLLFlBQVksQ0FBQ1ksa0JBQWtCLENBQUNqQixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzZDLDJCQUEyQixDQUFDbkIsV0FBVy9CLFNBQVNDO1FBQzNIO1FBQ0FrRCxrQkFBa0IsT0FBT25ELFNBQVNvRCxXQUFXbkQsU0FBU0M7WUFDcEQsT0FBT0osSUFBSUssWUFBWSxDQUFDZSxPQUFPLENBQUNwQixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzhDLGdCQUFnQixDQUFDbkQsU0FBU29ELFdBQVduRCxTQUFTQztRQUM5RztRQUNBbUQsbUJBQW1CLE9BQU9yRCxTQUFTc0QsY0FBY3JEO1lBQy9DLE9BQU9ILElBQUlLLFlBQVksQ0FBQ2lCLFFBQVEsQ0FBQ3RCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDZ0QsaUJBQWlCLENBQUNyRCxTQUFTc0QsY0FBY3JEO1FBQzFHO1FBQ0FzRCxhQUFhLE9BQU8zQyxXQUFXZ0MsV0FBVzNDO1lBQ3hDLE9BQU9ILElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7Z0JBQ25DK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDa0QsV0FBVyxDQUFDM0MsV0FBV2dDLFdBQVczQztnQkFDcEU2QyxTQUFTO1lBQ1g7UUFDRjtRQUNBVSxpQ0FBaUMsT0FBT2IsT0FBTzFDO1lBQzdDLE9BQU9ILElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7Z0JBQUUrQyxTQUFTakQsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNtRCwrQkFBK0IsQ0FBQ2IsT0FBTzFDO2dCQUFXNkMsU0FBUztZQUFFO1FBQ3hJO1FBQ0FXLFVBQVUsT0FBT3pELFNBQVMwRCxRQUFRekQsU0FBU0M7WUFDekMsT0FBT0osSUFBSUssWUFBWSxDQUFDb0IsSUFBSSxDQUFDekIsS0FBSztnQkFBRXlCLE1BQU0zQixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ29ELFFBQVEsQ0FBQ3pELFNBQVMwRCxRQUFRekQsU0FBU0M7Z0JBQVVGO1lBQVE7UUFDMUg7UUFDQTJELG1CQUFtQixPQUFPM0QsU0FBU0MsU0FBU0M7WUFDMUMsT0FBT04sVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNzRCxpQkFBaUIsQ0FBQzNELFNBQVNDLFNBQVNDLFNBQVMwRCxHQUFHLENBQUMsQ0FBQ3JDLE9BQVN6QixJQUFJSyxZQUFZLENBQUNvQixJQUFJLENBQUN6QixLQUFLO29CQUFFeUI7b0JBQU12QjtnQkFBUTtRQUN4STtRQUNBNkQsb0JBQW9CLE9BQU83RCxTQUFTOEQsU0FBUzdELFNBQVNDO1lBQ3BELE9BQU9KLElBQUlLLFlBQVksQ0FBQ3NCLGNBQWMsQ0FBQzNCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDd0Qsa0JBQWtCLENBQUM3RCxTQUFTOEQsU0FBUzdELFNBQVNDO1FBQ3JIO1FBQ0E2RCxtQkFBbUIsT0FBT25ELFdBQVdvRCxPQUFPOUQ7WUFDMUMsT0FBT0osSUFBSUssWUFBWSxDQUFDd0IsYUFBYSxDQUFDN0IsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMwRCxpQkFBaUIsQ0FBQ25ELFdBQVdvRCxPQUFPOUQ7UUFDMUc7UUFDQStELGFBQWEsT0FBT0MsV0FBV2pFLFNBQVNDO1lBQ3RDLE9BQU9KLElBQUlLLFlBQVksQ0FBQzBCLE9BQU8sQ0FBQy9CLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDNEQsV0FBVyxDQUFDQyxXQUFXakUsU0FBU0M7UUFDaEc7UUFDQWlFLG9CQUFvQixPQUFPRCxXQUFXdkIsT0FBT0MsV0FBVzNDO1lBQ3RELE9BQU9ILElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7Z0JBQ25DK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDOEQsa0JBQWtCLENBQUNELFdBQVd2QixPQUFPQyxXQUFXM0M7Z0JBQ2xGNkMsU0FBUztZQUNYO1FBQ0Y7UUFDQXNCLHNCQUFzQixPQUFPRixXQUFXdkIsT0FBTzFDO1lBQzdDLE9BQU9ILElBQUlLLFlBQVksQ0FBQzBCLE9BQU8sQ0FBQy9CLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDK0Qsb0JBQW9CLENBQUNGLFdBQVd2QixPQUFPMUM7UUFDdkc7UUFDQW9FLG1CQUFtQixPQUFPckUsU0FBU0MsU0FBU0M7WUFDMUMsT0FBT0osSUFBSUssWUFBWSxDQUFDbUUsYUFBYSxDQUFDeEUsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNnRSxpQkFBaUIsQ0FBQ3JFLFNBQVNDLFNBQVNDO1FBQzFHO1FBQ0FxRSxvQkFBb0IsT0FBT3ZFLFNBQVNDLFNBQVNDO1lBQzNDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ3FFLGNBQWMsQ0FBQzFFLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDa0Usa0JBQWtCLENBQUN2RSxTQUFTQyxTQUFTQztRQUM1RztRQUNBdUUsZ0JBQWdCLE9BQU9QLFdBQVd2QixPQUFPMUM7WUFDdkMsTUFBTXlFLFNBQVMsTUFBTTVFLElBQUlPLElBQUksQ0FBQ29FLGNBQWMsQ0FBQ1AsV0FBV3ZCLE9BQU8xQztZQUMvRCxJQUFJLENBQUN5RSxRQUFRO1lBRWIsT0FBTzVFLElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7Z0JBQUUrQyxTQUFTakQsVUFBVThFO2dCQUEyQjVCLFNBQVM7WUFBRTtRQUNsRztRQUNBNkIsb0JBQW9CLE9BQU9DLGlCQUFpQkM7WUFDMUMsT0FBTyxNQUFNL0UsSUFBSU8sSUFBSSxDQUFDc0Usa0JBQWtCLENBQUNDLGlCQUFpQkM7UUFDNUQ7UUFDQUMsa0JBQWtCLE9BQU85RTtZQUN2QixNQUFNMEUsU0FBUyxNQUFNNUUsSUFBSU8sSUFBSSxDQUFDeUUsZ0JBQWdCLENBQUM5RTtZQUMvQyxPQUFPO2dCQUNMK0UsU0FBU0wsT0FBT0ssT0FBTyxDQUFDbkIsR0FBRyxDQUFDLENBQUNvQixTQUFXbEYsSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7d0JBQUVFO3dCQUFTTyxTQUFTWCxVQUFVb0Y7b0JBQVE7Z0JBQzVHQyxTQUFTUCxPQUFPTyxPQUFPLENBQUNyQixHQUFHLENBQUMsQ0FBQ3NCLFNBQVdwRixJQUFJSyxZQUFZLENBQUNnRixZQUFZLENBQUNyRixLQUFLRixVQUFVc0Y7WUFDdkY7UUFDRjtRQUNBRSxvQkFBb0I7WUFDbEIsT0FBT3RGLElBQUlLLFlBQVksQ0FBQ2tGLFdBQVcsQ0FBQ3ZGLEtBQUs7Z0JBQUV1RixhQUFhekYsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMrRSxrQkFBa0I7Z0JBQUt0QyxTQUFTO1lBQUU7UUFDckg7UUFDQXdDLHFCQUFxQixPQUFPQztZQUMxQixPQUFPekYsSUFBSUssWUFBWSxDQUFDa0YsV0FBVyxDQUFDdkYsS0FBSztnQkFBRXVGLGFBQWF6RixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2lGLG1CQUFtQixDQUFDQztnQkFBUXpDLFNBQVM7WUFBRTtRQUMxSDtRQUNBMEMsOEJBQThCLE9BQU94RDtZQUNuQyxPQUFPLE1BQU1sQyxJQUFJTyxJQUFJLENBQUNtRiw0QkFBNEIsQ0FBQ3hEO1FBQ3JEO1FBQ0F5RCxlQUFlLE9BQU9DLFVBQVVDLGNBQWMxRjtZQUM1QyxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQ29GLGFBQWEsQ0FBQ0MsVUFBVUMsY0FBYzFGO1FBQzlEO1FBQ0EyRixhQUFhLE9BQU9GLFVBQVVDLGNBQWMxRjtZQUMxQyxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQ3VGLFdBQVcsQ0FBQ0YsVUFBVUMsY0FBYzFGO1FBQzVEO1FBQ0E0RixpQ0FBaUMsT0FBTzdGLFNBQVMrQixXQUFXOUI7WUFDMUQsTUFBTTZGLE1BQU0sTUFBTWhHLElBQUlPLElBQUksQ0FBQ3dGLCtCQUErQixDQUFDN0YsU0FBUytCLFdBQVc5QjtZQUMvRSxNQUFNOEYsWUFBWW5HLFVBQVVrRztZQUU1QixPQUFPaEcsSUFBSUssWUFBWSxDQUFDOEIsNEJBQTRCLENBQUNuQyxLQUFLaUc7UUFDNUQ7UUFDQUMsa0NBQWtDLE9BQU9oRyxTQUFTQztZQUNoRCxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJTyxJQUFJLENBQUMyRixnQ0FBZ0MsQ0FBQ2hHLFNBQVNDLFFBQU8sRUFBRzJELEdBQUcsQ0FBQyxDQUFDa0MsTUFDOUVoRyxJQUFJSyxZQUFZLENBQUM4Qiw0QkFBNEIsQ0FBQ25DLEtBQUtGLFVBQVVrRztRQUVqRTtRQUNBRyxhQUFhLE9BQU9qRyxTQUFTQztZQUMzQixPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQzRGLFdBQVcsQ0FBQ2pHLFNBQVNDO1FBQzdDO1FBQ0FpRyxnQkFBZ0IsT0FBT2xHLFNBQVNtQztZQUM5QixPQUFPckMsSUFBSUssWUFBWSxDQUFDQyxXQUFXLENBQUNOLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDNkYsY0FBYyxDQUFDbEcsU0FBU21DO1FBQzVGO1FBQ0FnRSxpQkFBaUIsT0FBT25HO1lBQ3RCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlPLElBQUksQ0FBQzhGLGVBQWUsQ0FBQ25HLFFBQU8sRUFBRzRELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ0MsV0FBVyxDQUFDTixLQUFLRixVQUFVa0c7UUFDNUc7UUFDQU0sMEJBQTBCO1lBQ3hCLE9BQU8sQUFBQyxDQUFBLE1BQU10RyxJQUFJTyxJQUFJLENBQUMrRix3QkFBd0IsRUFBQyxFQUFHeEMsR0FBRyxDQUFDLENBQUNrQyxNQUFRaEcsSUFBSUssWUFBWSxDQUFDa0csV0FBVyxDQUFDdkcsS0FBS0YsVUFBVWtHO1FBQzlHO1FBQ0FRLFFBQVEsT0FBT3RHLFNBQVN1RztZQUN0QixPQUFPLE1BQU16RyxJQUFJTyxJQUFJLENBQUNpRyxNQUFNLENBQUN0RyxTQUFTdUc7UUFDeEM7UUFDQUMsU0FBUyxPQUFPeEcsU0FBU0M7WUFDdkIsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUNtRyxPQUFPLENBQUN4RyxTQUFTQztRQUN6QztRQUNBd0csWUFBWSxPQUFPN0Y7WUFDakIsT0FBT2QsSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7Z0JBQUVTLFNBQVNYLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDb0csVUFBVSxDQUFDN0Y7WUFBWTtRQUNsRztRQUNBOEYsbUJBQW1CLE9BQU85RjtZQUN4QixPQUFPLE1BQU1kLElBQUlPLElBQUksQ0FBQ3FHLGlCQUFpQixDQUFDOUY7UUFDeEMsa0hBQWtIO1FBQ3BIO1FBQ0ErRixhQUFhLE9BQU8zRztZQUNsQixPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJTyxJQUFJLENBQUNzRyxXQUFXLENBQUMzRyxRQUFPLEVBQUc0RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBSztvQkFBRVMsU0FBU1gsVUFBVWtHO29CQUFNOUY7Z0JBQVE7UUFDN0g7UUFDQTRHLG9CQUFvQixPQUFPaEc7WUFDekIsT0FBTyxBQUFDLENBQUEsTUFBTWQsSUFBSU8sSUFBSSxDQUFDdUcsa0JBQWtCLENBQUNoRyxVQUFTLEVBQUdnRCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUMwQixPQUFPLENBQUMvQixLQUFLRixVQUFVa0c7UUFDN0c7UUFDQWUsY0FBYyxPQUFPTjtZQUNuQixPQUFPekcsSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7Z0JBQUVTLFNBQVNYLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDd0csWUFBWSxDQUFDTjtZQUFTO1FBQ2pHO1FBQ0FPLG1CQUFtQixPQUFPN0c7WUFDeEIsT0FBT0gsSUFBSUssWUFBWSxDQUFDSSxPQUFPLENBQUNULEtBQUs7Z0JBQUVTLFNBQVNYLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDeUcsaUJBQWlCLENBQUM3RztZQUFVO1FBQ3ZHO1FBQ0E4RyxVQUFVLE9BQU8vRyxTQUFTZ0g7WUFDeEIsT0FBT2xILElBQUlLLFlBQVksQ0FBQ00sS0FBSyxDQUFDWCxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzBHLFFBQVEsQ0FBQy9HLFNBQVNnSDtRQUNoRjtRQUNBQyxxQkFBcUIsT0FBT0Q7WUFDMUIsT0FBT2xILElBQUlLLFlBQVksQ0FBQ00sS0FBSyxDQUFDWCxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzRHLG1CQUFtQixDQUFDRDtRQUNsRjtRQUNBRSxXQUFXLE9BQU9sSDtZQUNoQixPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJTyxJQUFJLENBQUM2RyxTQUFTLENBQUNsSCxRQUFPLEVBQUc0RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNNLEtBQUssQ0FBQ1gsS0FBS0YsVUFBVWtHO1FBQ2hHO1FBQ0FxQixzQkFBc0I7WUFDcEIsTUFBTXJCLE1BQU0sTUFBTWhHLElBQUlPLElBQUksQ0FBQzhHLG9CQUFvQjtZQUUvQyxPQUFPO2dCQUNMQyxPQUFPdEIsSUFBSXNCLEtBQUssQ0FBQ3hELEdBQUcsQ0FBQyxDQUFDeUQsT0FBU3ZILElBQUlLLFlBQVksQ0FBQ00sS0FBSyxDQUFDWCxLQUFLRixVQUFVeUg7WUFDdkU7UUFDRjtRQUNBQyxvQkFBb0IsT0FBTzNFLE9BQU9DO1lBQ2hDLE9BQU85QyxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDaUgsa0JBQWtCLENBQUMzRSxPQUFPQztnQkFBYUUsU0FBUztZQUFFO1FBQzdIO1FBQ0F5RSxlQUFlO1lBQ2IsT0FBT3pILElBQUlLLFlBQVksQ0FBQ3FILFVBQVUsQ0FBQzFILEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDa0gsYUFBYTtRQUNoRjtRQUNBRSw2QkFBNkIsT0FBTzFGO1lBQ2xDLE9BQU9qQyxJQUFJSyxZQUFZLENBQUNZLGtCQUFrQixDQUFDakIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNvSCwyQkFBMkIsQ0FBQzFGO1FBQ3ZHO1FBQ0EyRiw4QkFBOEI7WUFDNUIsT0FBTyxBQUFDLENBQUEsTUFBTTVILElBQUlPLElBQUksQ0FBQ3FILDRCQUE0QixFQUFDLEVBQUc5RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNZLGtCQUFrQixDQUFDakIsS0FBS0YsVUFBVWtHO1FBQ3pIO1FBQ0E2QixVQUFVLE9BQU8zSCxTQUFTQztZQUN4QixPQUFPSCxJQUFJSyxZQUFZLENBQUM4QyxLQUFLLENBQUNuRCxLQUFLO2dCQUFFbUQsT0FBT3JELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDc0gsUUFBUSxDQUFDM0gsU0FBU0M7Z0JBQVc2QyxTQUFTO1lBQUU7UUFDL0c7UUFDQThFLFdBQVcsT0FBTzVGLGFBQWEvQjtZQUM3QixPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJTyxJQUFJLENBQUN1SCxTQUFTLENBQUM1RixhQUFhL0IsUUFBTyxFQUFHMkQsR0FBRyxDQUF3RCxDQUFDa0MsTUFDbEgsb0RBQW9EO2dCQUNwRGhHLElBQUlLLFlBQVksQ0FBQzhDLEtBQUssQ0FBQ25ELEtBQUs7b0JBQUVtRCxPQUFPckQsVUFBVWtHO29CQUFNaEQsU0FBUztnQkFBRTtRQUVwRTtRQUNBK0UsNEJBQTRCLE9BQU85RixXQUFXL0I7WUFDNUMsT0FBT0YsSUFBSUssWUFBWSxDQUFDWSxrQkFBa0IsQ0FBQ2pCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDd0gsMEJBQTBCLENBQUM5RixXQUFXL0I7UUFDakg7UUFDQThILDZCQUE2QixPQUFPOUg7WUFDbEMsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSU8sSUFBSSxDQUFDeUgsMkJBQTJCLENBQUM5SCxRQUFPLEVBQUc0RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNZLGtCQUFrQixDQUFDakIsS0FBS0YsVUFBVWtHO1FBQy9IO1FBQ0FpQyxpQkFBaUIsT0FBTy9IO1lBQ3RCLE9BQU8sTUFBTUYsSUFBSU8sSUFBSSxDQUFDMEgsZUFBZSxDQUFDL0g7UUFDdEMsdUZBQXVGO1FBQ3pGO1FBQ0FnSSxpQkFBaUIsT0FBT2hJLFNBQVNvRDtZQUMvQixPQUFPdEQsSUFBSUssWUFBWSxDQUFDZSxPQUFPLENBQUNwQixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzJILGVBQWUsQ0FBQ2hJLFNBQVNvRDtRQUN6RjtRQUNBNkUsa0JBQWtCLE9BQU9qSTtZQUN2QixPQUFPLEFBQUMsQ0FBQSxNQUFNRixJQUFJTyxJQUFJLENBQUM0SCxnQkFBZ0IsQ0FBQ2pJLFFBQU8sRUFBRzRELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ2UsT0FBTyxDQUFDcEIsS0FBS0YsVUFBVWtHO1FBQ3pHO1FBQ0FvQyxrQkFBa0IsT0FBTzVFO1lBQ3ZCLE9BQU94RCxJQUFJSyxZQUFZLENBQUNpQixRQUFRLENBQUN0QixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzZILGdCQUFnQixDQUFDNUU7UUFDbEY7UUFDQTZFLG1CQUFtQixPQUFPbkk7WUFDeEIsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSU8sSUFBSSxDQUFDOEgsaUJBQWlCLENBQUNuSSxRQUFPLEVBQUc0RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNpQixRQUFRLENBQUN0QixLQUFLRixVQUFVa0c7UUFDM0c7UUFDQXNDLGtCQUFrQixPQUFPcEk7WUFDdkIsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSU8sSUFBSSxDQUFDK0gsZ0JBQWdCLENBQUNwSSxRQUFPLEVBQUc0RCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUMwQixPQUFPLENBQUMvQixLQUFLRixVQUFVa0c7UUFDekc7UUFDQXVDLGlCQUFpQixPQUFPckk7WUFDdEIsT0FBTyxBQUFDLENBQUEsTUFBTUYsSUFBSU8sSUFBSSxDQUFDZ0ksZUFBZSxDQUFDckksUUFBTyxFQUFHNEQsR0FBRyxDQUFDLENBQUNrQyxNQUNwRGhHLElBQUlLLFlBQVksQ0FBQ21JLFdBQVcsQ0FBQ3hJLEtBQUtGLFVBQVU7b0JBQUUsR0FBR2tHLEdBQUc7b0JBQUU5RixTQUFTQSxRQUFRdUksUUFBUTtnQkFBRztRQUV0RjtRQUNBQyxXQUFXLE9BQU9DLFlBQVl4STtZQUM1QixPQUFPSCxJQUFJSyxZQUFZLENBQUN1SSxNQUFNLENBQUM1SSxLQUFLO2dCQUFFNEksUUFBUTlJLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDbUksU0FBUyxDQUFDQyxZQUFZeEk7Z0JBQVc2QyxTQUFTO1lBQUU7UUFDckg7UUFDQTZGLFlBQVksT0FBTzNJO1lBQ2pCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlPLElBQUksQ0FBQ3NJLFVBQVUsQ0FBQzNJLFFBQU8sRUFBRzRELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ3VJLE1BQU0sQ0FBQzVJLEtBQUs7b0JBQUU0SSxRQUFROUksVUFBVWtHO29CQUFNaEQsU0FBUztnQkFBRTtRQUM3SDtRQUNBOEYsWUFBWSxPQUFPaEksV0FBV2dDO1lBQzVCLE9BQU85QyxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDdUksVUFBVSxDQUFDaEksV0FBV2dDO2dCQUFhRSxTQUFTO1lBQUU7UUFDekg7UUFDQStGLGFBQWEsT0FBT2pJLFdBQVdYO1lBQzdCLE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlPLElBQUksQ0FBQ3dJLFdBQVcsQ0FBQ2pJLFdBQVdYLFFBQU8sRUFBRzJELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7b0JBQUUrQyxTQUFTakQsVUFBVWtHO29CQUFNaEQsU0FBUztnQkFBRTtRQUMzSTtRQUNBZ0csZ0JBQWdCLE9BQU9DO1lBQ3JCLE9BQU9qSixJQUFJSyxZQUFZLENBQUM2SSxXQUFXLENBQUNsSixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ3lJLGNBQWMsQ0FBQ0M7UUFDbkY7UUFDQUUsaUJBQWlCO1lBQ2YsT0FBTyxBQUFDLENBQUEsTUFBTW5KLElBQUlPLElBQUksQ0FBQzRJLGVBQWUsRUFBQyxFQUFHckYsR0FBRyxDQUFDLENBQUNrQyxNQUFRaEcsSUFBSUssWUFBWSxDQUFDNkksV0FBVyxDQUFDbEosS0FBS0YsVUFBVWtHO1FBQ3JHO1FBQ0FvRCxnQ0FBZ0MsT0FBT3ZHO1lBQ3JDLE9BQU83QyxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDNkksOEJBQThCLENBQUN2RztnQkFBU0csU0FBUztZQUFFO1FBQzlIO1FBQ0FxRyxnQkFBZ0IsT0FBT3ZJLFdBQVdYO1lBQ2hDLE1BQU02RixNQUFNbEcsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUM4SSxjQUFjLENBQUN2SSxXQUFXWDtZQUUvRCxPQUFPO2dCQUNMbUosU0FBU3RELElBQUl1RCxRQUFRO2dCQUNyQmpDLE9BQU90QixJQUFJc0IsS0FBSyxDQUFDeEQsR0FBRyxDQUFDLENBQUN5RCxPQUFTdkgsSUFBSUssWUFBWSxDQUFDbUosVUFBVSxDQUFDeEosS0FBS3VIO1lBQ2xFO1FBQ0Y7UUFDQWtDLG1CQUFtQixPQUFPM0k7WUFDeEIsT0FBTyxBQUFDLENBQUEsTUFBTWQsSUFBSU8sSUFBSSxDQUFDa0osaUJBQWlCLENBQUMzSSxVQUFTLEVBQUdnRCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO29CQUFFK0MsU0FBU2pELFVBQVVrRztvQkFBTWhELFNBQVM7Z0JBQUU7UUFDeEk7UUFDQTBHLDJCQUEyQixPQUFPNUksV0FBV1g7WUFDM0MsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUNtSix5QkFBeUIsQ0FBQzVJLFdBQVdYO1FBQzdEO1FBQ0F3SixpQ0FBaUMsT0FBTzdJLFdBQVdYO1lBQ2pELE9BQU8sTUFBTUgsSUFBSU8sSUFBSSxDQUFDb0osK0JBQStCLENBQUM3SSxXQUFXWDtRQUNuRTtRQUNBeUosZUFBZSxPQUFPMUosU0FBU0M7WUFDN0IsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUNxSixhQUFhLENBQUMxSixTQUFTQztRQUMvQztRQUNBMEosMEJBQTBCLE9BQU8vSSxXQUFXWDtZQUMxQyxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQ3NKLHdCQUF3QixDQUFDL0ksV0FBV1g7UUFDNUQ7UUFDQTJKLFVBQVUsT0FBTzVKO1lBQ2YsT0FBT0osVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN1SixRQUFRLENBQUM1SixVQUFVNEQsR0FBRyxDQUFDLENBQUNyQyxPQUFTekIsSUFBSUssWUFBWSxDQUFDb0IsSUFBSSxDQUFDekIsS0FBSztvQkFBRXlCO29CQUFNdkI7Z0JBQVE7UUFDOUc7UUFDQTZKLFNBQVMsT0FBTzdKLFNBQVMwRDtZQUN2QixPQUFPNUQsSUFBSUssWUFBWSxDQUFDb0IsSUFBSSxDQUFDekIsS0FBSztnQkFBRXlCLE1BQU0zQixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ3dKLE9BQU8sQ0FBQzdKLFNBQVMwRDtnQkFBVTFEO1lBQVE7UUFDeEc7UUFDQThKLG1CQUFtQixPQUFPOUosU0FBUzhELFNBQVM3RDtZQUMxQyxPQUFPSCxJQUFJSyxZQUFZLENBQUNzQixjQUFjLENBQUMzQixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ3lKLGlCQUFpQixDQUFDOUosU0FBUzhELFNBQVM3RDtRQUMzRztRQUNBOEosb0JBQW9CLE9BQU8vSixTQUFTQztZQUNsQyxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJTyxJQUFJLENBQUMwSixrQkFBa0IsQ0FBQy9KLFNBQVNDLFFBQU8sRUFBRzJELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ3NCLGNBQWMsQ0FBQzNCLEtBQUtGLFVBQVVrRztRQUMzSDtRQUNBa0Usd0JBQXdCLE9BQU9oSyxTQUFTOEQsU0FBUzdEO1lBQy9DLE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlPLElBQUksQ0FBQzJKLHNCQUFzQixDQUFDaEssU0FBUzhELFNBQVM3RCxRQUFPLEVBQUcyRCxHQUFHLENBQUMsQ0FBQ3FHO2dCQUM3RSxPQUFPO29CQUNMNUgsTUFBTXZDLElBQUlLLFlBQVksQ0FBQ2tDLElBQUksQ0FBQ3ZDLEtBQUtGLFVBQVVxSyxFQUFFNUgsSUFBSTtvQkFDakQ2QyxRQUFRK0UsRUFBRS9FLE1BQU0sSUFBSXBGLElBQUlLLFlBQVksQ0FBQytFLE1BQU0sQ0FBQ3BGLEtBQUtGLFVBQVVxSyxFQUFFL0UsTUFBTSxHQUFHbEYsU0FBU0YsSUFBSUssWUFBWSxDQUFDK0osU0FBUyxDQUFDRCxFQUFFNUgsSUFBSSxDQUFDRyxFQUFFO2dCQUNySDtZQUNGO1FBQ0Y7UUFDQTJILGdCQUFnQjtZQUNkLE9BQU9ySyxJQUFJSyxZQUFZLENBQUNxSCxVQUFVLENBQUMxSCxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzhKLGNBQWM7UUFDakY7UUFDQUMsa0JBQWtCLE9BQU94SjtZQUN2QixPQUFPZCxJQUFJSyxZQUFZLENBQUN3QixhQUFhLENBQUM3QixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQytKLGdCQUFnQixDQUFDeEo7UUFDdkY7UUFDQXlKLGtCQUFrQixPQUFPcks7WUFDdkIsT0FBT0YsSUFBSUssWUFBWSxDQUFDbUssVUFBVSxDQUFDeEssS0FBSztnQkFBRUU7Z0JBQVNzSyxZQUFZMUssVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNnSyxnQkFBZ0IsQ0FBQ3JLO1lBQVU7UUFDckg7UUFDQXVLLG1CQUFtQixPQUFPdkssU0FBU3VHO1lBQ2pDLE9BQU96RyxJQUFJSyxZQUFZLENBQUNtSyxVQUFVLENBQUN4SyxLQUFLO2dCQUFFRTtnQkFBU3NLLFlBQVkxSyxVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2tLLGlCQUFpQixDQUFDdkssU0FBU3VHO1lBQVM7UUFDOUg7UUFDQWlFLFlBQVksT0FBT3BIO1lBQ2pCLE9BQU90RCxJQUFJSyxZQUFZLENBQUNlLE9BQU8sQ0FBQ3BCLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDbUssVUFBVSxDQUFDcEg7UUFDM0U7UUFDQXFILGlCQUFpQixPQUFPN0osV0FBVzJGLFFBQVF0RztZQUN6QyxPQUFPSCxJQUFJSyxZQUFZLENBQUNnRixZQUFZLENBQUNyRixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ29LLGVBQWUsQ0FBQzdKLFdBQVcyRixRQUFRdEc7UUFDeEc7UUFDQXlLLGtCQUFrQixPQUFPOUosV0FBV1g7WUFDbEMsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSU8sSUFBSSxDQUFDcUssZ0JBQWdCLENBQUM5SixXQUFXWCxRQUFPLEVBQUcyRCxHQUFHLENBQUMsQ0FBQ2tDLE1BQVFoRyxJQUFJSyxZQUFZLENBQUNnRixZQUFZLENBQUNyRixLQUFLRixVQUFVa0c7UUFDekg7UUFDQTZFLGNBQWMsT0FBTy9KLFdBQVdnQyxXQUFXZ0ksVUFBVTNLO1lBQ25ELE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlPLElBQUksQ0FBQ3NLLFlBQVksQ0FBQy9KLFdBQVdnQyxXQUFXZ0ksVUFBVTNLLFFBQU8sRUFBRzJELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ2tDLElBQUksQ0FBQ3ZDLEtBQUtGLFVBQVVrRztRQUNsSTtRQUNBK0UsU0FBUyxPQUFPckk7WUFDZCxPQUFPMUMsSUFBSUssWUFBWSxDQUFDa0MsSUFBSSxDQUFDdkMsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN3SyxPQUFPLENBQUNySTtRQUNyRTtRQUNBc0ksZ0JBQWdCLE9BQU85STtZQUNyQixPQUFPbEMsSUFBSUssWUFBWSxDQUFDa0MsSUFBSSxDQUFDdkMsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN5SyxjQUFjLENBQUM5STtRQUM1RTtRQUNBK0ksb0JBQW9CLE9BQU8vSTtZQUN6QixPQUFPLE1BQU1sQyxJQUFJTyxJQUFJLENBQUMwSyxrQkFBa0IsQ0FBQy9JO1FBQzNDO1FBQ0FnSixrQ0FBa0MsT0FBT2hKLGFBQWFpSjtZQUNwRCxPQUFPLE1BQU1uTCxJQUFJTyxJQUFJLENBQUMySyxnQ0FBZ0MsQ0FBQ2hKLGFBQWFpSjtRQUN0RTtRQUNBQyxjQUFjLE9BQU9sTDtZQUNuQixPQUFPLE1BQU1GLElBQUlPLElBQUksQ0FBQzZLLFlBQVksQ0FBQ2xMO1FBQ3JDO1FBQ0FtTCxpQkFBaUIsT0FBT25MO1lBQ3RCLE9BQU8sQUFBQyxDQUFBLE1BQU1GLElBQUlPLElBQUksQ0FBQzhLLGVBQWUsQ0FBQ25MLFFBQU8sRUFBRzRELEdBQUcsQ0FBQyxDQUFDa0MsTUFBUWhHLElBQUlLLFlBQVksQ0FBQ2tHLFdBQVcsQ0FBQ3ZHLEtBQUtGLFVBQVVrRztRQUM1RztRQUNBc0YsWUFBWSxPQUFPbEg7WUFDakIsT0FBT3BFLElBQUlLLFlBQVksQ0FBQzBCLE9BQU8sQ0FBQy9CLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDK0ssVUFBVSxDQUFDbEg7UUFDM0U7UUFDQW1ILG1CQUFtQixPQUFPbkgsV0FBV3ZCLE9BQU9DLFdBQVczQztZQUNyRCxPQUFPSCxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDZ0wsaUJBQWlCLENBQUNuSCxXQUFXdkIsT0FBT0MsV0FBVzNDO2dCQUFXNkMsU0FBUztZQUFFO1FBQ2hKO1FBQ0F3SSxxQkFBcUIsT0FBT3BILFdBQVd2QjtZQUNyQyxPQUFPN0MsSUFBSUssWUFBWSxDQUFDMEIsT0FBTyxDQUFDL0IsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNpTCxtQkFBbUIsQ0FBQ3BILFdBQVd2QjtRQUMvRjtRQUNBNEksa0JBQWtCLE9BQU92TDtZQUN2QixPQUFPRixJQUFJSyxZQUFZLENBQUNtRSxhQUFhLENBQUN4RSxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2tMLGdCQUFnQixDQUFDdkw7UUFDdkY7UUFDQXdMLFdBQVcsT0FBT3hMO1lBQ2hCLE9BQU9GLElBQUlLLFlBQVksQ0FBQ3NMLE1BQU0sQ0FBQzNMLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDbUwsU0FBUyxDQUFDeEw7UUFDekU7UUFDQTBMLG1CQUFtQixPQUFPMUw7WUFDeEIsT0FBT0YsSUFBSUssWUFBWSxDQUFDcUUsY0FBYyxDQUFDMUUsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNxTCxpQkFBaUIsQ0FBQzFMO1FBQ3pGO1FBQ0EyTCxnQkFBZ0IsT0FBTy9LLFdBQVdnQztZQUNoQyxPQUFPOUMsSUFBSUssWUFBWSxDQUFDMEMsT0FBTyxDQUFDL0MsS0FBSztnQkFBRStDLFNBQVNqRCxVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ3NMLGNBQWMsQ0FBQy9LLFdBQVdnQztnQkFBYUUsU0FBUztZQUFFO1FBQzdIO1FBQ0E4SSxhQUFhLE9BQU9oTCxXQUFXWDtZQUM3QixPQUFPSCxJQUFJSyxZQUFZLENBQUMwQyxPQUFPLENBQUMvQyxLQUFLO2dCQUFFK0MsU0FBU2pELFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDdUwsV0FBVyxDQUFDaEwsV0FBV1g7Z0JBQVc2QyxTQUFTO1lBQUU7UUFDeEg7UUFDQStJLHFCQUFxQixPQUFPbEosT0FBTzFDO1lBQ2pDLE9BQU9ILElBQUlLLFlBQVksQ0FBQzBDLE9BQU8sQ0FBQy9DLEtBQUs7Z0JBQUUrQyxTQUFTakQsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN3TCxtQkFBbUIsQ0FBQ2xKLE9BQU8xQztnQkFBVzZDLFNBQVM7WUFBRTtRQUM1SDtRQUNBZ0osd0JBQXdCLE9BQU9sTCxXQUFXZ0MsV0FBVzNDLFNBQVNDO1lBQzVELE9BQU9KLElBQUlLLFlBQVksQ0FBQ0ksT0FBTyxDQUFDVCxLQUFLO2dCQUNuQ1MsU0FBU1gsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN5TCxzQkFBc0IsQ0FBQ2xMLFdBQVdnQyxXQUFXM0MsU0FBU0M7WUFDMUY7UUFDRjtRQUNBNkwsMkJBQTJCLE9BQU9uTCxXQUFXWCxTQUFTQztZQUNwRCxPQUFPSixJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBSztnQkFBRVMsU0FBU1gsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMwTCx5QkFBeUIsQ0FBQ25MLFdBQVdYLFNBQVNDO1lBQVM7UUFDbEk7UUFDQThMLG1CQUFtQixPQUFPaE07WUFDeEIsT0FBT0YsSUFBSUssWUFBWSxDQUFDaUIsUUFBUSxDQUFDdEIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMyTCxpQkFBaUIsQ0FBQ2hNO1FBQ25GO1FBQ0FpTSxpQ0FBaUMsT0FBT0MsVUFBVWpNO1lBQ2hELE9BQU8sQUFBQyxDQUFBLE1BQU1ILElBQUlPLElBQUksQ0FBQzRMLCtCQUErQixDQUFDQyxVQUFVak0sUUFBTyxFQUFHMkQsR0FBRyxDQUFDLENBQUNrQyxNQUM5RWhHLElBQUlLLFlBQVksQ0FBQ1ksa0JBQWtCLENBQUNqQixLQUFLRixVQUFVa0c7UUFFdkQ7UUFDQXFHLGdDQUFnQyxPQUFPbk0sU0FBU2tNLFVBQVVqTTtZQUN4RCxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJTyxJQUFJLENBQUM4TCw4QkFBOEIsQ0FBQ25NLFNBQVNrTSxVQUFVak0sUUFBTyxFQUFHMkQsR0FBRyxDQUFDLENBQUNrQyxNQUN0RmhHLElBQUlLLFlBQVksQ0FBQ1ksa0JBQWtCLENBQUNqQixLQUFLRixVQUFVa0c7UUFFdkQ7UUFDQXNHLGVBQWUsT0FBT3BNLFNBQVNDLFNBQVNDO1lBQ3RDLE9BQU9KLElBQUlLLFlBQVksQ0FBQytFLE1BQU0sQ0FBQ3BGLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDK0wsYUFBYSxDQUFDcE0sU0FBU0MsU0FBU0MsVUFBVUYsU0FBU0YsSUFBSTBDLEVBQUU7UUFDeEg7UUFDQTZKLFlBQVksT0FBT3JNLFNBQVN1RyxRQUFRdEcsU0FBU0M7WUFDM0MsT0FBT0osSUFBSUssWUFBWSxDQUFDK0UsTUFBTSxDQUFDcEYsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNnTSxVQUFVLENBQUNyTSxTQUFTdUcsUUFBUXRHLFNBQVNDLFVBQVVGLFNBQVN1RztRQUN2SDtRQUNBK0YsV0FBVyxPQUFPdE0sU0FBU3VHO1lBQ3pCLE9BQU96RyxJQUFJSyxZQUFZLENBQUMrRSxNQUFNLENBQUNwRixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2lNLFNBQVMsQ0FBQ3RNLFNBQVN1RyxVQUFVdkcsU0FBU3VHO1FBQ3JHO1FBQ0FnRyxrQkFBa0IsT0FBT3ZNLFNBQVNnQztZQUNoQyxNQUFNOEQsTUFBTSxNQUFNaEcsSUFBSU8sSUFBSSxDQUFDa00sZ0JBQWdCLENBQUN2TSxTQUFTZ0M7WUFDckQsT0FBT2xDLElBQUlLLFlBQVksQ0FBQytFLE1BQU0sQ0FBQ3BGLEtBQUtGLFVBQVVrRyxNQUFNOUYsU0FBU0YsSUFBSUssWUFBWSxDQUFDK0osU0FBUyxDQUFDcEUsSUFBSXpELElBQUksQ0FBQ0csRUFBRTtRQUNyRztRQUNBZ0ssWUFBWSxPQUFPeE0sU0FBU0M7WUFDMUIsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSU8sSUFBSSxDQUFDbU0sVUFBVSxDQUFDeE0sU0FBU0MsUUFBTyxFQUFHMkQsR0FBRyxDQUFDLENBQUNrQyxNQUN4RGhHLElBQUlLLFlBQVksQ0FBQytFLE1BQU0sQ0FBQ3BGLEtBQUtGLFVBQVVrRyxNQUFNOUYsU0FBU0YsSUFBSUssWUFBWSxDQUFDK0osU0FBUyxDQUFDcEUsSUFBSXpELElBQUksQ0FBQ0csRUFBRTtRQUVoRztRQUNBaUssY0FBYyxPQUFPek0sU0FBU0MsU0FBU0M7WUFDckMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUNvTSxZQUFZLENBQUN6TSxTQUFTQyxTQUFTQztRQUN2RDtRQUNBd00sZUFBZSxPQUFPMU0sU0FBUzJNLE9BQU8xTTtZQUNwQyxPQUFPLEFBQUMsQ0FBQSxNQUFNSCxJQUFJTyxJQUFJLENBQUNxTSxhQUFhLENBQUMxTSxTQUFTMk0sT0FBTzFNLFFBQU8sRUFBRzJELEdBQUcsQ0FBQyxDQUFDa0MsTUFDbEVoRyxJQUFJSyxZQUFZLENBQUMrRSxNQUFNLENBQUNwRixLQUFLRixVQUFVa0csTUFBTTlGLFNBQVNGLElBQUlLLFlBQVksQ0FBQytKLFNBQVMsQ0FBQ3BFLElBQUl6RCxJQUFJLENBQUNHLEVBQUU7UUFFaEc7UUFDQW9LLGdCQUFnQixPQUFPNU0sU0FBU0MsU0FBU0M7WUFDdkMsTUFBTTRGLE1BQU0sTUFBTWhHLElBQUlPLElBQUksQ0FBQ3VNLGNBQWMsQ0FBQzVNLFNBQVNDLFNBQVNDO1lBRTVELE9BQU87Z0JBQ0wyTSxhQUFhL0csSUFBSStHLFdBQVcsQ0FBQ2pKLEdBQUcsQ0FBQyxDQUFDa0osSUFBTWhOLElBQUlLLFlBQVksQ0FBQytKLFNBQVMsQ0FBQzRDO2dCQUNuRUMsYUFBYWpILElBQUlpSCxXQUFXLENBQUNuSixHQUFHLENBQUMsQ0FBQ2tKLElBQU1oTixJQUFJSyxZQUFZLENBQUMrSixTQUFTLENBQUM0QztZQUNyRTtRQUNGO1FBQ0FFLGdDQUFnQyxPQUFPL0IsZUFBZWdDO1lBQ3BELE9BQU8sTUFBTW5OLElBQUlPLElBQUksQ0FBQzJNLDhCQUE4QixDQUFDL0IsZUFBZWdDO1FBQ3RFO1FBQ0FDLCtDQUErQyxPQUFPakM7WUFDcEQsT0FBTyxNQUFNbkwsSUFBSU8sSUFBSSxDQUFDNk0sNkNBQTZDLENBQUNqQztRQUN0RTtRQUNBa0MsaURBQWlELE9BQU9sQyxlQUFlaEw7WUFDckUsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUM4TSwrQ0FBK0MsQ0FBQ2xDLGVBQWVoTDtRQUN2RjtRQUNBbU4sYUFBYSxPQUFPbk47WUFDbEIsT0FBT0gsSUFBSUssWUFBWSxDQUFDa04sS0FBSyxDQUFDdk4sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUMrTSxXQUFXLENBQUNuTjtRQUMxRTtRQUNBcU4sVUFBVSxPQUFPQztZQUNmLE9BQU96TixJQUFJSyxZQUFZLENBQUNrTixLQUFLLENBQUN2TixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQ2lOLFFBQVEsQ0FBQ0M7UUFDdkU7UUFDQUMsYUFBYSxPQUFPRCxTQUFTdE47WUFDM0IsT0FBT0gsSUFBSUssWUFBWSxDQUFDa04sS0FBSyxDQUFDdk4sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNtTixXQUFXLENBQUNELFNBQVN0TjtRQUNuRjtRQUNBd04sa0JBQWtCLE9BQU9GLFNBQVNoSCxRQUFRdEc7WUFDeEMsT0FBT0gsSUFBSUssWUFBWSxDQUFDdU4sV0FBVyxDQUFDNU4sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNvTixnQkFBZ0IsQ0FBQ0YsU0FBU2hILFFBQVF0RztRQUN0RztRQUNBME4sb0JBQW9CLE9BQU9KLFNBQVN2TCxhQUFhL0I7WUFDL0MsT0FBT0gsSUFBSUssWUFBWSxDQUFDa04sS0FBSyxDQUFDdk4sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNzTixrQkFBa0IsQ0FBQ0osU0FBU3ZMLGFBQWEvQjtRQUN2RztRQUNBMk4sc0JBQXNCLE9BQU9MLFNBQVN2TDtZQUNwQyxPQUFPbEMsSUFBSUssWUFBWSxDQUFDa04sS0FBSyxDQUFDdk4sS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN1TixvQkFBb0IsQ0FBQ0wsU0FBU3ZMO1FBQzVGO1FBQ0EseUNBQXlDO1FBQ3pDNkwsYUFBYSxPQUFPak4sV0FBV2dDLFdBQVdnSTtZQUN4QyxPQUFPLE1BQU05SyxJQUFJTyxJQUFJLENBQUN3TixXQUFXLENBQUNqTixXQUFXZ0MsV0FBV2dJO1FBQzFEO1FBQ0FrRCxjQUFjLE9BQU9sTixXQUFXZ0MsV0FBV21MLFdBQVdDO1lBQ3BELE9BQU8sTUFBTWxPLElBQUlPLElBQUksQ0FBQ3lOLFlBQVksQ0FBQ2xOLFdBQVdnQyxXQUFXbUwsV0FBV0M7UUFDdEU7UUFDQUMsU0FBUyxPQUFPak8sU0FBU3VHLFFBQVE3QyxRQUFReEQ7WUFDdkMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUM0TixPQUFPLENBQUNqTyxTQUFTdUcsUUFBUTdDLFFBQVF4RDtRQUN6RDtRQUNBZ08saUJBQWlCLE9BQU90TixXQUFXMkY7WUFDakMsT0FBTyxNQUFNekcsSUFBSU8sSUFBSSxDQUFDNk4sZUFBZSxDQUFDdE4sV0FBVzJGO1FBQ25EO1FBQ0E0SCxnQkFBZ0IsT0FBT3ZOLFdBQVcyRixRQUFRdEc7WUFDeEMsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUM4TixjQUFjLENBQUN2TixXQUFXMkYsUUFBUXRHO1FBQzFEO1FBQ0FtTyxnQkFBZ0IsT0FBT3BPLFNBQVN1RyxRQUFRdEc7WUFDdEMsT0FBTyxNQUFNSCxJQUFJTyxJQUFJLENBQUMrTixjQUFjLENBQUNwTyxTQUFTdUcsUUFBUXRHO1FBQ3hEO1FBQ0FvTyxtQkFBbUIsT0FBT3JPLFNBQVNtQyxRQUFRakM7WUFDekMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUNnTyxpQkFBaUIsQ0FBQ3JPLFNBQVNtQyxRQUFRakM7UUFDM0Q7UUFDQW9PLGVBQWUsT0FBTzFOLFdBQVdWO1lBQy9CLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDaU8sYUFBYSxDQUFDMU4sV0FBV1Y7UUFDakQ7UUFDQXFPLGlDQUFpQyxPQUFPM04sV0FBVzROLGFBQWF0TztZQUM5RCxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQ2tPLCtCQUErQixDQUFDM04sV0FBVzROLGFBQWF0TztRQUNoRjtRQUNBdU8sYUFBYSxPQUFPek8sU0FBU3dDLElBQUl0QztZQUMvQixPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQ29PLFdBQVcsQ0FBQ3pPLFNBQVN3QyxJQUFJdEM7UUFDakQ7UUFDQXdPLHdCQUF3QixPQUFPbE07WUFDN0IsT0FBTyxNQUFNMUMsSUFBSU8sSUFBSSxDQUFDcU8sc0JBQXNCLENBQUNsTTtRQUMvQztRQUNBbU0sdUJBQXVCLE9BQU9oTSxPQUFPQztZQUNuQyxPQUFPLE1BQU05QyxJQUFJTyxJQUFJLENBQUNzTyxxQkFBcUIsQ0FBQ2hNLE9BQU9DO1FBQ3JEO1FBQ0FnTSxnQ0FBZ0MsT0FBTzdNO1lBQ3JDLE9BQU8sTUFBTWpDLElBQUlPLElBQUksQ0FBQ3VPLDhCQUE4QixDQUFDN007UUFDdkQ7UUFDQThNLCtCQUErQixPQUFPOU0sV0FBVy9CO1lBQy9DLE9BQU8sTUFBTUYsSUFBSU8sSUFBSSxDQUFDd08sNkJBQTZCLENBQUM5TSxXQUFXL0I7UUFDakU7UUFDQThPLG9CQUFvQixPQUFPOU8sU0FBU29ELFdBQVdsRDtZQUM3QyxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQ3lPLGtCQUFrQixDQUFDOU8sU0FBU29ELFdBQVdsRDtRQUMvRDtRQUNBNk8scUJBQXFCLE9BQU8vTyxTQUFTc0Q7WUFDbkMsT0FBTyxNQUFNeEQsSUFBSU8sSUFBSSxDQUFDME8sbUJBQW1CLENBQUMvTyxTQUFTc0Q7UUFDckQ7UUFDQTBMLG1CQUFtQixPQUFPaFAsU0FBU2lQLGVBQWUvTztZQUNoRCxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQzJPLGlCQUFpQixDQUFDaFAsU0FBU2lQLGVBQWUvTztRQUNsRTtRQUNBZ1AsY0FBYyxPQUFPekcsWUFBWXZJO1lBQy9CLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDNk8sWUFBWSxDQUFDekcsWUFBWXZJO1FBQ2pEO1FBQ0FpUCxlQUFlLE9BQU92TyxXQUFXZ0MsV0FBVzFDO1lBQzFDLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDOE8sYUFBYSxDQUFDdk8sV0FBV2dDLFdBQVcxQztRQUM1RDtRQUNBa1AsZ0JBQWdCLE9BQU94TyxXQUFXeU8sWUFBWW5QO1lBQzVDLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDK08sY0FBYyxDQUFDeE8sV0FBV3lPLFlBQVluUDtRQUM5RDtRQUNBb1AsbUNBQW1DLE9BQU8zTTtZQUN4QyxPQUFPLE1BQU03QyxJQUFJTyxJQUFJLENBQUNpUCxpQ0FBaUMsQ0FBQzNNO1FBQzFEO1FBQ0E0TSxtQkFBbUIsT0FBTzNPLFdBQVdnQyxXQUFXZ0k7WUFDOUMsT0FBTyxNQUFNOUssSUFBSU8sSUFBSSxDQUFDa1AsaUJBQWlCLENBQUMzTyxXQUFXZ0MsV0FBV2dJO1FBQ2hFO1FBQ0E0RSxvQkFBb0IsT0FBTzVPLFdBQVdnQztZQUNwQyxPQUFPLE1BQU05QyxJQUFJTyxJQUFJLENBQUNtUCxrQkFBa0IsQ0FBQzVPLFdBQVdnQztRQUN0RDtRQUNBNk0sc0JBQXNCLE9BQU83TyxXQUFXZ0MsV0FBV2dJO1lBQ2pELE9BQU8sTUFBTTlLLElBQUlPLElBQUksQ0FBQ29QLG9CQUFvQixDQUFDN08sV0FBV2dDLFdBQVdnSTtRQUNuRTtRQUNBOEUsWUFBWSxPQUFPMVAsU0FBUzBELFFBQVF4RDtZQUNsQyxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQ3FQLFVBQVUsQ0FBQzFQLFNBQVMwRCxRQUFReEQ7UUFDcEQ7UUFDQXlQLHNCQUFzQixPQUFPM1AsU0FBUzhEO1lBQ3BDLE9BQU8sTUFBTWhFLElBQUlPLElBQUksQ0FBQ3NQLG9CQUFvQixDQUFDM1AsU0FBUzhEO1FBQ3REO1FBQ0E4TCxxQkFBcUIsT0FBT2hQLFdBQVdWO1lBQ3JDLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDdVAsbUJBQW1CLENBQUNoUCxXQUFXVjtRQUN2RDtRQUNBMlAsb0JBQW9CLE9BQU9qUCxXQUFXZ0MsV0FBVzJELFFBQVFxRTtZQUN2RCxPQUFPLE1BQU05SyxJQUFJTyxJQUFJLENBQUN3UCxrQkFBa0IsQ0FBQ2pQLFdBQVdnQyxXQUFXMkQsUUFBUXFFO1FBQ3pFO1FBQ0FrRixlQUFlLE9BQU81TCxXQUFXaEU7WUFDL0IsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUN5UCxhQUFhLENBQUM1TCxXQUFXaEU7UUFDakQ7UUFDQTZQLHNCQUFzQixPQUFPN0wsV0FBV3ZCLE9BQU9DLFdBQVczQztZQUN4RCxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQzBQLG9CQUFvQixDQUFDN0wsV0FBV3ZCLE9BQU9DLFdBQVczQztRQUMxRTtRQUNBK1Asd0JBQXdCLE9BQU85TCxXQUFXdkI7WUFDeEMsT0FBTyxNQUFNN0MsSUFBSU8sSUFBSSxDQUFDMlAsc0JBQXNCLENBQUM5TCxXQUFXdkI7UUFDMUQ7UUFDQXNOLGdDQUFnQyxPQUFPclAsV0FBV1gsU0FBU0M7WUFDekQsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUM0UCw4QkFBOEIsQ0FBQ3JQLFdBQVdYLFNBQVNDO1FBQzNFO1FBQ0FnUSxzQkFBc0IsT0FBT2xRLFNBQVNtUTtZQUNwQyxPQUFPLE1BQU1yUSxJQUFJTyxJQUFJLENBQUM2UCxvQkFBb0IsQ0FBQ2xRLFNBQVNtUTtRQUN0RDtRQUNBQyxtQkFBbUIsT0FBT3BRLFNBQVNDO1lBQ2pDLE9BQU8sTUFBTUgsSUFBSU8sSUFBSSxDQUFDK1AsaUJBQWlCLENBQUNwUSxTQUFTQztRQUNuRDtRQUNBb1Esb0JBQW9CLE9BQU9yUSxTQUFTQztZQUNsQyxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQ2dRLGtCQUFrQixDQUFDclEsU0FBU0M7UUFDcEQ7UUFDQXFRLG1DQUFtQyxPQUFPdE8sYUFBYWlKLGVBQWVoTDtZQUNwRSxPQUFPLE1BQU1ILElBQUlPLElBQUksQ0FBQ2lRLGlDQUFpQyxDQUFDdE8sYUFBYWlKLGVBQWVoTDtRQUN0RjtRQUNBc1EsWUFBWSxPQUFPM1A7WUFDakIsT0FBTyxNQUFNZCxJQUFJTyxJQUFJLENBQUNrUSxVQUFVLENBQUMzUDtRQUNuQztRQUNBNFAsWUFBWSxPQUFPeFE7WUFDakIsT0FBTyxNQUFNRixJQUFJTyxJQUFJLENBQUNtUSxVQUFVLENBQUN4UTtRQUNuQztRQUNBeVEsYUFBYSxPQUFPN1A7WUFDbEIsT0FBTyxNQUFNZCxJQUFJTyxJQUFJLENBQUNvUSxXQUFXLENBQUM3UDtRQUNwQztRQUNBOFAsWUFBWSxPQUFPMVEsU0FBU3VHLFFBQVE3QyxRQUFReEQ7WUFDMUMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUNxUSxVQUFVLENBQUMxUSxTQUFTdUcsUUFBUTdDLFFBQVF4RDtRQUM1RDtRQUNBeVEsb0JBQW9CLE9BQU8vUCxXQUFXMkY7WUFDcEMsT0FBTyxNQUFNekcsSUFBSU8sSUFBSSxDQUFDc1Esa0JBQWtCLENBQUMvUCxXQUFXMkY7UUFDdEQ7UUFDQXFLLG1CQUFtQixPQUFPaFEsV0FBVzJGO1lBQ25DLE9BQU8sTUFBTXpHLElBQUlPLElBQUksQ0FBQ3VRLGlCQUFpQixDQUFDaFEsV0FBVzJGO1FBQ3JEO1FBQ0FzSyx5QkFBeUIsT0FBT0MsZUFBZW5PLE9BQU8xQyxTQUFTOFE7WUFDN0QsTUFBTUMsV0FBVyxNQUFNbFIsSUFBSU8sSUFBSSxDQUFDd1EsdUJBQXVCLENBQUNDLGVBQWVuTyxPQUFPMUMsU0FBUzhRO1lBRXZGLElBQUksQ0FBQ0MsVUFBVTtZQUVmLE9BQU9sUixJQUFJSyxZQUFZLENBQUM4USwyQkFBMkIsQ0FBQ25SLEtBQUs7Z0JBQUVtUiw2QkFBNkJyUixVQUFVb1I7Z0JBQVdsTyxTQUFTO1lBQUU7UUFDMUg7UUFDQW9PLHdCQUF3QixPQUFPdFE7WUFDN0IsT0FBTyxNQUFNZCxJQUFJTyxJQUFJLENBQUM2USxzQkFBc0IsQ0FBQ3RRO1FBQy9DO1FBQ0F1USxXQUFXLE9BQU9uUixTQUFTdUcsUUFBUXRHLFNBQVNDO1lBQzFDLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDOFEsU0FBUyxDQUFDblIsU0FBU3VHLFFBQVF0RyxTQUFTQztRQUM1RDtRQUVBa1IsWUFBWSxPQUFPcFIsU0FBU3VHLFFBQVFyRztZQUNsQyxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQytRLFVBQVUsQ0FBQ3BSLFNBQVN1RyxRQUFRckc7UUFDcEQ7UUFDQW1SLFlBQVksT0FBT3pRLFdBQVdnQyxXQUFXMUM7WUFDdkMsT0FBTyxNQUFNSixJQUFJTyxJQUFJLENBQUNnUixVQUFVLENBQUN6USxXQUFXZ0MsV0FBVzFDO1FBQ3pEO1FBQ0FvUixhQUFhLE9BQU90UixTQUFTdUcsUUFBUXJHO1lBQ25DLE9BQU8sTUFBTUosSUFBSU8sSUFBSSxDQUFDaVIsV0FBVyxDQUFDdFIsU0FBU3VHLFFBQVFyRztRQUNyRDtRQUNBcVIsY0FBYyxPQUFPM1EsV0FBV2dDLFdBQVcxQztZQUN6QyxPQUFPLE1BQU1KLElBQUlPLElBQUksQ0FBQ2tSLFlBQVksQ0FBQzNRLFdBQVdnQyxXQUFXMUM7UUFDM0Q7UUFDQXNSLG9CQUFvQixPQUFPeFI7WUFDekIsT0FBT0YsSUFBSUssWUFBWSxDQUFDc1IsZUFBZSxDQUFDM1IsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUNtUixrQkFBa0IsQ0FBQ3hSO1FBQzNGO1FBQ0EwUixxQkFBcUIsT0FBTzFSLFNBQVNDLFNBQVNDO1lBQzVDLE9BQU9KLElBQUlLLFlBQVksQ0FBQ3NSLGVBQWUsQ0FBQzNSLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDcVIsbUJBQW1CLENBQUMxUixTQUFTQyxTQUFTQztRQUM5RztRQUNBeVIsa0JBQWtCLE9BQU8xRyxlQUFlaEw7WUFDdEMsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSU8sSUFBSSxDQUFDc1IsZ0JBQWdCLENBQUMxRyxlQUFlaEwsUUFBTyxFQUFHMkQsR0FBRyxDQUFDLENBQUNnTyxjQUFnQjlSLElBQUlLLFlBQVksQ0FBQ3lSLFdBQVcsQ0FBQzlSLEtBQUtGLFVBQVVnUztRQUNwSTtRQUNBQyxnQkFBZ0IsT0FBTzVHLGVBQWU2RztZQUNwQyxPQUFPaFMsSUFBSUssWUFBWSxDQUFDeVIsV0FBVyxDQUFDOVIsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUN3UixjQUFjLENBQUM1RyxlQUFlNkc7UUFDbEc7UUFDQUMsdUJBQXVCLE9BQU85RyxlQUFlMUY7WUFDM0MsNEZBQTRGO1lBQzVGLE9BQU96RixJQUFJSyxZQUFZLENBQUN5UixXQUFXLENBQUM5UixLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzBSLHFCQUFxQixDQUFDOUcsZUFBZTFGO1FBR3pHO1FBQ0F5TSx1QkFBdUIsT0FBTy9HLGVBQWU2RztZQUMzQyxNQUFNaFMsSUFBSU8sSUFBSSxDQUFDMlIscUJBQXFCLENBQUMvRyxlQUFlNkc7UUFDdEQ7UUFDQUcsVUFBVSxPQUFPaEg7WUFDZixPQUFPLEFBQUMsQ0FBQSxNQUFNbkwsSUFBSU8sSUFBSSxDQUFDNFIsUUFBUSxDQUFDaEgsY0FBYSxFQUFHckgsR0FBRyxDQUFDLENBQUNzTyxNQUFRcFMsSUFBSUssWUFBWSxDQUFDK1IsR0FBRyxDQUFDcFMsS0FBS0YsVUFBVXNTO1FBQ25HO1FBQ0FDLGlCQUFpQixPQUFPQyxPQUFPQztZQUM3QixPQUFPdlMsSUFBSUssWUFBWSxDQUFDbVMsWUFBWSxDQUFDeFMsS0FBS0YsVUFBVSxNQUFNRSxJQUFJTyxJQUFJLENBQUM4UixlQUFlLENBQUNDLE9BQU9DO1FBQzVGO1FBQ0FFLG1CQUFtQixPQUFPSCxPQUFPblM7WUFDL0IsT0FBTyxBQUFDLENBQUEsTUFBTUgsSUFBSU8sSUFBSSxDQUFDa1MsaUJBQWlCLENBQUNILE9BQU9uUyxRQUFPLEVBQUcyRCxHQUFHLENBQUMsQ0FBQzBPLGVBQWlCeFMsSUFBSUssWUFBWSxDQUFDbVMsWUFBWSxDQUFDeFMsS0FBS0YsVUFBVTBTO1FBQy9IO1FBQ0FFLHFCQUFxQixPQUFPNVIsV0FBV1g7WUFDckMsTUFBTUgsSUFBSU8sSUFBSSxDQUFDbVMsbUJBQW1CLENBQUM1UixXQUFXWDtRQUNoRDtRQUNBd1MsNkJBQTZCO1lBQzNCLE9BQU8sQUFBQyxDQUFBLE1BQU0zUyxJQUFJTyxJQUFJLENBQUNvUywyQkFBMkIsRUFBQyxFQUFHN08sR0FBRyxDQUFDLENBQUM4TyxRQUFVNVMsSUFBSUssWUFBWSxDQUFDd1MsZUFBZSxDQUFDN1MsS0FBS0YsVUFBVThTO1FBQ3ZIO1FBQ0FFLDJCQUEyQixPQUFPNVM7WUFDaEMsTUFBTThGLE1BQU0sTUFBTWhHLElBQUlPLElBQUksQ0FBQ3VTLHlCQUF5QixDQUFDNVM7WUFFckQsT0FBTztnQkFDTG9ILE9BQU90QixJQUFJc0IsS0FBSyxDQUFDeEQsR0FBRyxDQUFDLENBQUM4TyxRQUFVNVMsSUFBSUssWUFBWSxDQUFDd1MsZUFBZSxDQUFDN1MsS0FBS0YsVUFBVThTO1lBQ2xGO1FBQ0Y7UUFDQUcseUJBQXlCLE9BQU83UyxTQUFTOFM7WUFDdkMsT0FBT2hULElBQUlLLFlBQVksQ0FBQ3dTLGVBQWUsQ0FBQzdTLEtBQUtGLFVBQVUsTUFBTUUsSUFBSU8sSUFBSSxDQUFDd1MsdUJBQXVCLENBQUM3UyxTQUFTOFM7UUFDekc7UUFDQUMsNEJBQTRCLE9BQU8vUyxTQUFTQyxTQUFTQztZQUNuRCxPQUFPSixJQUFJSyxZQUFZLENBQUN3UyxlQUFlLENBQUM3UyxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzBTLDBCQUEwQixDQUFDL1MsU0FBU0MsU0FBU0M7UUFDckg7UUFDQThTLDRCQUE0QixPQUFPaFQsU0FBUzhTLFNBQVM3UyxTQUFTQztZQUM1RCxPQUFPSixJQUFJSyxZQUFZLENBQUN3UyxlQUFlLENBQUM3UyxLQUFLRixVQUFVLE1BQU1FLElBQUlPLElBQUksQ0FBQzJTLDBCQUEwQixDQUFDaFQsU0FBUzhTLFNBQVM3UyxTQUFTQztRQUM5SDtRQUNBK1MsNEJBQTRCLE9BQU9qVCxTQUFTOFMsU0FBUzVTO1lBQ25ELE1BQU1KLElBQUlPLElBQUksQ0FBQzRTLDBCQUEwQixDQUFDalQsU0FBUzhTLFNBQVM1UztRQUM5RDtRQUNBZ1QsYUFBYSxPQUFPM0Y7WUFDbEIsTUFBTXpOLElBQUlPLElBQUksQ0FBQzZTLFdBQVcsQ0FBQzNGO1FBQzdCO1FBQ0E0Rix1QkFBdUIsT0FBTzVGLFNBQVNoSDtZQUNyQyxNQUFNekcsSUFBSU8sSUFBSSxDQUFDOFMscUJBQXFCLENBQUM1RixTQUFTaEg7UUFDaEQ7UUFDQTZNLFlBQVksT0FBTzdGLFNBQVN2TDtZQUMxQixNQUFNbEMsSUFBSU8sSUFBSSxDQUFDK1MsVUFBVSxDQUFDN0YsU0FBU3ZMO1FBQ3JDO0lBQ0Y7QUFDRiJ9