@discordeno/bot 21.0.1-next.4792ad2 → 21.0.1-next.49a8cd1
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.
- package/dist/cjs/bot.cjs +1 -1
- package/dist/cjs/desiredProperties.cjs +1 -1
- package/dist/cjs/handlers/channels/CHANNEL_CREATE.cjs +3 -4
- package/dist/cjs/handlers/channels/CHANNEL_DELETE.cjs +3 -5
- package/dist/cjs/handlers/channels/CHANNEL_UPDATE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_CREATE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_DELETE.cjs +2 -4
- package/dist/cjs/handlers/channels/THREAD_LIST_SYNC.cjs +2 -3
- package/dist/cjs/handlers/channels/THREAD_MEMBERS_UPDATE.cjs +4 -2
- package/dist/cjs/handlers/channels/THREAD_MEMBER_UPDATE.cjs +1 -3
- package/dist/cjs/handlers/channels/THREAD_UPDATE.cjs +2 -4
- package/dist/cjs/handlers/guilds/GUILD_CREATE.cjs +2 -3
- package/dist/cjs/handlers/guilds/GUILD_DELETE.cjs +6 -8
- package/dist/cjs/handlers/guilds/GUILD_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/guilds/index.cjs +2 -2
- package/dist/cjs/handlers/index.cjs +3 -3
- package/dist/cjs/handlers/interactions/INTERACTION_CREATE.cjs +3 -3
- package/dist/cjs/handlers/invites/INVITE_CREATE.cjs +3 -3
- package/dist/cjs/handlers/members/GUILD_MEMBER_ADD.cjs +5 -2
- package/dist/cjs/handlers/members/GUILD_MEMBER_UPDATE.cjs +6 -3
- package/dist/cjs/handlers/messages/MESSAGE_CREATE.cjs +2 -3
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_ADD.cjs +6 -2
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE.cjs +2 -1
- package/dist/cjs/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.cjs +2 -1
- package/dist/cjs/handlers/messages/MESSAGE_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/messages/index.cjs +3 -3
- package/dist/cjs/handlers/misc/TYPING_START.cjs +5 -2
- package/dist/cjs/handlers/roles/GUILD_ROLE_CREATE.cjs +2 -3
- package/dist/cjs/handlers/roles/GUILD_ROLE_UPDATE.cjs +2 -3
- package/dist/cjs/handlers/soundboard/index.cjs +3 -3
- package/dist/cjs/handlers/voice/VOICE_STATE_UPDATE.cjs +3 -3
- package/dist/cjs/handlers/voice/index.cjs +2 -2
- package/dist/cjs/helpers.cjs +82 -150
- package/dist/cjs/index.cjs +3 -4
- package/dist/cjs/transformers/activity.cjs +1 -1
- package/dist/cjs/transformers/application.cjs +44 -45
- package/dist/cjs/transformers/attachment.cjs +1 -1
- package/dist/cjs/transformers/channel.cjs +44 -40
- package/dist/cjs/transformers/component.cjs +2 -2
- package/dist/cjs/transformers/emoji.cjs +1 -1
- package/dist/cjs/transformers/entitlement.cjs +1 -1
- package/dist/cjs/transformers/guild.cjs +75 -68
- package/dist/cjs/transformers/incidentsData.cjs +1 -1
- package/dist/cjs/transformers/interaction.cjs +89 -83
- package/dist/cjs/transformers/invite.cjs +30 -31
- package/dist/cjs/transformers/lobby.cjs +2 -4
- package/dist/cjs/transformers/member.cjs +9 -6
- package/dist/cjs/transformers/message.cjs +72 -69
- package/dist/cjs/transformers/onboarding.cjs +2 -2
- package/dist/cjs/transformers/poll.cjs +5 -4
- package/dist/cjs/transformers/presence.cjs +9 -10
- package/dist/cjs/transformers/reverse/application.cjs +1 -1
- package/dist/cjs/transformers/reverse/attachment.cjs +15 -14
- package/dist/cjs/transformers/reverse/component.cjs +5 -5
- package/dist/cjs/transformers/reverse/emoji.cjs +3 -3
- package/dist/cjs/transformers/reverse/index.cjs +1 -2
- package/dist/cjs/transformers/reverse/member.cjs +34 -32
- package/dist/cjs/transformers/reverse/presence.cjs +1 -1
- package/dist/cjs/transformers/reverse/team.cjs +1 -1
- package/dist/cjs/transformers/role.cjs +19 -19
- package/dist/cjs/transformers/scheduledEvent.cjs +1 -1
- package/dist/cjs/transformers/sku.cjs +1 -1
- package/dist/cjs/transformers/soundboardSound.cjs +1 -1
- package/dist/cjs/transformers/stageInstance.cjs +1 -1
- package/dist/cjs/transformers/stageInviteInstance.cjs +10 -4
- package/dist/cjs/transformers/sticker.cjs +1 -1
- package/dist/cjs/transformers/subscription.cjs +1 -1
- package/dist/cjs/transformers/team.cjs +1 -1
- package/dist/cjs/transformers/template.cjs +1 -1
- package/dist/cjs/transformers/threadMember.cjs +7 -4
- package/dist/cjs/transformers/user.cjs +1 -1
- package/dist/cjs/transformers/voiceState.cjs +11 -9
- package/dist/cjs/transformers/webhook.cjs +1 -1
- package/dist/cjs/transformers/widget.cjs +6 -16
- package/dist/cjs/transformers.cjs +164 -162
- package/dist/esm/bot.js +2 -2
- package/dist/esm/desiredProperties.js +1 -1
- package/dist/esm/events.js +1 -1
- package/dist/esm/handlers/channels/CHANNEL_CREATE.js +3 -4
- package/dist/esm/handlers/channels/CHANNEL_DELETE.js +3 -5
- package/dist/esm/handlers/channels/CHANNEL_UPDATE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_CREATE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_DELETE.js +2 -4
- package/dist/esm/handlers/channels/THREAD_LIST_SYNC.js +2 -3
- package/dist/esm/handlers/channels/THREAD_MEMBERS_UPDATE.js +4 -2
- package/dist/esm/handlers/channels/THREAD_MEMBER_UPDATE.js +1 -3
- package/dist/esm/handlers/channels/THREAD_UPDATE.js +2 -4
- package/dist/esm/handlers/guilds/GUILD_CREATE.js +2 -3
- package/dist/esm/handlers/guilds/GUILD_DELETE.js +6 -8
- package/dist/esm/handlers/guilds/GUILD_UPDATE.js +2 -3
- package/dist/esm/handlers/guilds/index.js +2 -2
- package/dist/esm/handlers/index.js +3 -3
- package/dist/esm/handlers/interactions/INTERACTION_CREATE.js +3 -3
- package/dist/esm/handlers/invites/INVITE_CREATE.js +3 -3
- package/dist/esm/handlers/members/GUILD_MEMBER_ADD.js +5 -2
- package/dist/esm/handlers/members/GUILD_MEMBER_UPDATE.js +6 -3
- package/dist/esm/handlers/messages/MESSAGE_CREATE.js +2 -3
- package/dist/esm/handlers/messages/MESSAGE_REACTION_ADD.js +6 -2
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE.js +2 -1
- package/dist/esm/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.js +2 -1
- package/dist/esm/handlers/messages/MESSAGE_UPDATE.js +2 -3
- package/dist/esm/handlers/messages/index.js +3 -3
- package/dist/esm/handlers/misc/TYPING_START.js +5 -2
- package/dist/esm/handlers/roles/GUILD_ROLE_CREATE.js +2 -3
- package/dist/esm/handlers/roles/GUILD_ROLE_UPDATE.js +2 -3
- package/dist/esm/handlers/soundboard/index.js +3 -3
- package/dist/esm/handlers/voice/VOICE_STATE_UPDATE.js +3 -3
- package/dist/esm/handlers/voice/index.js +2 -2
- package/dist/esm/helpers.js +82 -150
- package/dist/esm/index.js +3 -4
- package/dist/esm/transformers/activity.js +1 -1
- package/dist/esm/transformers/application.js +44 -45
- package/dist/esm/transformers/attachment.js +1 -1
- package/dist/esm/transformers/channel.js +44 -40
- package/dist/esm/transformers/component.js +2 -2
- package/dist/esm/transformers/emoji.js +1 -1
- package/dist/esm/transformers/entitlement.js +1 -1
- package/dist/esm/transformers/guild.js +75 -68
- package/dist/esm/transformers/incidentsData.js +1 -1
- package/dist/esm/transformers/interaction.js +91 -83
- package/dist/esm/transformers/invite.js +31 -32
- package/dist/esm/transformers/lobby.js +2 -4
- package/dist/esm/transformers/member.js +9 -6
- package/dist/esm/transformers/message.js +72 -69
- package/dist/esm/transformers/onboarding.js +2 -2
- package/dist/esm/transformers/poll.js +5 -4
- package/dist/esm/transformers/presence.js +9 -10
- package/dist/esm/transformers/reverse/application.js +1 -1
- package/dist/esm/transformers/reverse/attachment.js +15 -14
- package/dist/esm/transformers/reverse/component.js +5 -5
- package/dist/esm/transformers/reverse/emoji.js +3 -3
- package/dist/esm/transformers/reverse/index.js +1 -2
- package/dist/esm/transformers/reverse/member.js +34 -32
- package/dist/esm/transformers/reverse/presence.js +1 -1
- package/dist/esm/transformers/reverse/team.js +1 -1
- package/dist/esm/transformers/role.js +19 -19
- package/dist/esm/transformers/scheduledEvent.js +1 -1
- package/dist/esm/transformers/sku.js +1 -1
- package/dist/esm/transformers/soundboardSound.js +1 -1
- package/dist/esm/transformers/stageInstance.js +1 -1
- package/dist/esm/transformers/stageInviteInstance.js +10 -4
- package/dist/esm/transformers/sticker.js +1 -1
- package/dist/esm/transformers/subscription.js +1 -1
- package/dist/esm/transformers/team.js +1 -1
- package/dist/esm/transformers/template.js +1 -1
- package/dist/esm/transformers/threadMember.js +7 -4
- package/dist/esm/transformers/types.js +1 -1
- package/dist/esm/transformers/user.js +1 -1
- package/dist/esm/transformers/voiceState.js +11 -9
- package/dist/esm/transformers/webhook.js +1 -1
- package/dist/esm/transformers/widget.js +6 -16
- package/dist/esm/transformers.js +166 -164
- package/dist/types/bot.d.ts +1 -5
- package/dist/types/bot.d.ts.map +1 -1
- package/dist/types/desiredProperties.d.ts +2 -1
- package/dist/types/desiredProperties.d.ts.map +1 -1
- package/dist/types/events.d.ts +4 -4
- package/dist/types/events.d.ts.map +1 -1
- package/dist/types/handlers/channels/CHANNEL_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/channels/CHANNEL_DELETE.d.ts.map +1 -1
- package/dist/types/handlers/channels/THREAD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/guilds/GUILD_DELETE.d.ts.map +1 -1
- package/dist/types/handlers/guilds/index.d.ts +1 -1
- package/dist/types/handlers/guilds/index.d.ts.map +1 -1
- package/dist/types/handlers/index.d.ts +2 -2
- package/dist/types/handlers/index.d.ts.map +1 -1
- package/dist/types/handlers/interactions/INTERACTION_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/invites/INVITE_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts +2 -2
- package/dist/types/handlers/members/GUILD_MEMBER_ADD.d.ts.map +1 -1
- package/dist/types/handlers/members/GUILD_MEMBER_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_ADD.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE.d.ts.map +1 -1
- package/dist/types/handlers/messages/MESSAGE_REACTION_REMOVE_EMOJI.d.ts.map +1 -1
- package/dist/types/handlers/messages/index.d.ts +2 -2
- package/dist/types/handlers/messages/index.d.ts.map +1 -1
- package/dist/types/handlers/roles/GUILD_ROLE_CREATE.d.ts.map +1 -1
- package/dist/types/handlers/roles/GUILD_ROLE_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/soundboard/index.d.ts +2 -2
- package/dist/types/handlers/soundboard/index.d.ts.map +1 -1
- package/dist/types/handlers/voice/VOICE_STATE_UPDATE.d.ts.map +1 -1
- package/dist/types/handlers/voice/index.d.ts +1 -1
- package/dist/types/handlers/voice/index.d.ts.map +1 -1
- package/dist/types/helpers.d.ts +9 -9
- package/dist/types/helpers.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/transformers/activity.d.ts +3 -3
- package/dist/types/transformers/activity.d.ts.map +1 -1
- package/dist/types/transformers/application.d.ts +2 -3
- package/dist/types/transformers/application.d.ts.map +1 -1
- package/dist/types/transformers/attachment.d.ts +2 -2
- package/dist/types/transformers/attachment.d.ts.map +1 -1
- package/dist/types/transformers/channel.d.ts +5 -6
- package/dist/types/transformers/channel.d.ts.map +1 -1
- package/dist/types/transformers/emoji.d.ts +4 -4
- package/dist/types/transformers/emoji.d.ts.map +1 -1
- package/dist/types/transformers/entitlement.d.ts +2 -2
- package/dist/types/transformers/entitlement.d.ts.map +1 -1
- package/dist/types/transformers/guild.d.ts +5 -6
- package/dist/types/transformers/guild.d.ts.map +1 -1
- package/dist/types/transformers/incidentsData.d.ts +2 -2
- package/dist/types/transformers/incidentsData.d.ts.map +1 -1
- package/dist/types/transformers/interaction.d.ts +16 -20
- package/dist/types/transformers/interaction.d.ts.map +1 -1
- package/dist/types/transformers/invite.d.ts +4 -5
- package/dist/types/transformers/invite.d.ts.map +1 -1
- package/dist/types/transformers/lobby.d.ts +3 -3
- package/dist/types/transformers/lobby.d.ts.map +1 -1
- package/dist/types/transformers/member.d.ts +7 -3
- package/dist/types/transformers/member.d.ts.map +1 -1
- package/dist/types/transformers/message.d.ts +13 -13
- package/dist/types/transformers/message.d.ts.map +1 -1
- package/dist/types/transformers/onboarding.d.ts +4 -4
- package/dist/types/transformers/onboarding.d.ts.map +1 -1
- package/dist/types/transformers/poll.d.ts +3 -3
- package/dist/types/transformers/poll.d.ts.map +1 -1
- package/dist/types/transformers/presence.d.ts +2 -2
- package/dist/types/transformers/presence.d.ts.map +1 -1
- package/dist/types/transformers/reverse/application.d.ts +2 -2
- package/dist/types/transformers/reverse/application.d.ts.map +1 -1
- package/dist/types/transformers/reverse/attachment.d.ts +2 -2
- package/dist/types/transformers/reverse/attachment.d.ts.map +1 -1
- package/dist/types/transformers/reverse/emoji.d.ts +2 -2
- package/dist/types/transformers/reverse/emoji.d.ts.map +1 -1
- package/dist/types/transformers/reverse/index.d.ts +0 -1
- package/dist/types/transformers/reverse/index.d.ts.map +1 -1
- package/dist/types/transformers/reverse/member.d.ts +3 -4
- package/dist/types/transformers/reverse/member.d.ts.map +1 -1
- package/dist/types/transformers/reverse/presence.d.ts +2 -2
- package/dist/types/transformers/reverse/presence.d.ts.map +1 -1
- package/dist/types/transformers/reverse/team.d.ts +2 -2
- package/dist/types/transformers/reverse/team.d.ts.map +1 -1
- package/dist/types/transformers/role.d.ts +6 -7
- package/dist/types/transformers/role.d.ts.map +1 -1
- package/dist/types/transformers/scheduledEvent.d.ts +3 -3
- package/dist/types/transformers/scheduledEvent.d.ts.map +1 -1
- package/dist/types/transformers/sku.d.ts +2 -2
- package/dist/types/transformers/sku.d.ts.map +1 -1
- package/dist/types/transformers/soundboardSound.d.ts +2 -2
- package/dist/types/transformers/soundboardSound.d.ts.map +1 -1
- package/dist/types/transformers/stageInstance.d.ts +2 -2
- package/dist/types/transformers/stageInstance.d.ts.map +1 -1
- package/dist/types/transformers/stageInviteInstance.d.ts +4 -4
- package/dist/types/transformers/stageInviteInstance.d.ts.map +1 -1
- package/dist/types/transformers/sticker.d.ts +3 -3
- package/dist/types/transformers/sticker.d.ts.map +1 -1
- package/dist/types/transformers/subscription.d.ts +2 -2
- package/dist/types/transformers/subscription.d.ts.map +1 -1
- package/dist/types/transformers/team.d.ts +2 -2
- package/dist/types/transformers/team.d.ts.map +1 -1
- package/dist/types/transformers/template.d.ts +2 -2
- package/dist/types/transformers/template.d.ts.map +1 -1
- package/dist/types/transformers/threadMember.d.ts +11 -2
- package/dist/types/transformers/threadMember.d.ts.map +1 -1
- package/dist/types/transformers/types.d.ts +8 -8
- package/dist/types/transformers/types.d.ts.map +1 -1
- package/dist/types/transformers/user.d.ts +6 -6
- package/dist/types/transformers/user.d.ts.map +1 -1
- package/dist/types/transformers/voiceState.d.ts +4 -5
- package/dist/types/transformers/voiceState.d.ts.map +1 -1
- package/dist/types/transformers/webhook.d.ts +2 -2
- package/dist/types/transformers/webhook.d.ts.map +1 -1
- package/dist/types/transformers/widget.d.ts +1 -1
- package/dist/types/transformers/widget.d.ts.map +1 -1
- package/dist/types/transformers.d.ts +86 -68
- package/dist/types/transformers.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/cjs/transformers/reverse/createApplicationCommand.cjs +0 -36
- package/dist/cjs/utils.cjs +0 -32
- package/dist/esm/transformers/reverse/createApplicationCommand.js +0 -26
- package/dist/esm/utils.js +0 -11
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts +0 -3
- package/dist/types/transformers/reverse/createApplicationCommand.d.ts.map +0 -1
- package/dist/types/utils.d.ts +0 -5
- package/dist/types/utils.d.ts.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { iconHashToBigInt } from '@discordeno/utils';
|
|
2
|
-
import { Permissions } from './toggles/Permissions.js';
|
|
3
2
|
import { MemberToggles } from './toggles/member.js';
|
|
3
|
+
import { Permissions } from './toggles/Permissions.js';
|
|
4
4
|
export const baseMember = {
|
|
5
5
|
// This allows typescript to still check for type errors on functions below
|
|
6
6
|
...undefined,
|
|
@@ -29,11 +29,11 @@ export const baseMember = {
|
|
|
29
29
|
return !!this.toggles?.completedOnboarding;
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
export function transformMember(bot, payload,
|
|
32
|
+
export function transformMember(bot, payload, extra) {
|
|
33
33
|
const member = Object.create(baseMember);
|
|
34
34
|
const props = bot.transformers.desiredProperties.member;
|
|
35
|
-
if (props.id && userId) member.id = typeof userId === 'string' ? bot.transformers.snowflake(userId) : userId;
|
|
36
|
-
if (props.guildId && guildId) member.guildId = typeof guildId === 'string' ? bot.transformers.snowflake(guildId) : guildId;
|
|
35
|
+
if (props.id && extra?.userId) member.id = typeof extra.userId === 'string' ? bot.transformers.snowflake(extra.userId) : extra.userId;
|
|
36
|
+
if (props.guildId && extra?.guildId) member.guildId = typeof extra.guildId === 'string' ? bot.transformers.snowflake(extra.guildId) : extra.guildId;
|
|
37
37
|
if (props.user && payload.user) member.user = bot.transformers.user(bot, payload.user);
|
|
38
38
|
if (props.nick && payload.nick) member.nick = payload.nick;
|
|
39
39
|
if (props.roles && payload.roles) member.roles = payload.roles.map((id)=>bot.transformers.snowflake(id));
|
|
@@ -45,7 +45,10 @@ export function transformMember(bot, payload, guildId, userId) {
|
|
|
45
45
|
if (props.permissions && payload.permissions) member.permissions = new Permissions(payload.permissions);
|
|
46
46
|
if (props.toggles) member.toggles = new MemberToggles(payload);
|
|
47
47
|
if (props.avatarDecorationData && payload.avatar_decoration_data) member.avatarDecorationData = bot.transformers.avatarDecorationData(bot, payload.avatar_decoration_data);
|
|
48
|
-
return bot.transformers.customizers.member(bot, payload, member
|
|
48
|
+
return bot.transformers.customizers.member(bot, payload, member, {
|
|
49
|
+
guildId: extra?.guildId ? bot.transformers.snowflake(extra.guildId) : undefined,
|
|
50
|
+
userId: extra?.userId ? bot.transformers.snowflake(extra.userId) : undefined
|
|
51
|
+
});
|
|
49
52
|
}
|
|
50
53
|
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVtYmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmlnU3RyaW5nLCBEaXNjb3JkTWVtYmVyIH0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnXG5pbXBvcnQgeyBpY29uSGFzaFRvQmlnSW50IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcydcbmltcG9ydCB0eXBlIHsgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvciwgU2V0dXBEZXNpcmVkUHJvcHMsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzIH0gZnJvbSAnLi4vaW5kZXguanMnXG5pbXBvcnQgeyBNZW1iZXJUb2dnbGVzIH0gZnJvbSAnLi90b2dnbGVzL21lbWJlci5qcydcbmltcG9ydCB7IFBlcm1pc3Npb25zIH0gZnJvbSAnLi90b2dnbGVzL1Blcm1pc3Npb25zLmpzJ1xuaW1wb3J0IHR5cGUgeyBNZW1iZXIgfSBmcm9tICcuL3R5cGVzLmpzJ1xuXG5leHBvcnQgY29uc3QgYmFzZU1lbWJlcjogTWVtYmVyID0ge1xuICAvLyBUaGlzIGFsbG93cyB0eXBlc2NyaXB0IHRvIHN0aWxsIGNoZWNrIGZvciB0eXBlIGVycm9ycyBvbiBmdW5jdGlvbnMgYmVsb3dcbiAgLi4uKHVuZGVmaW5lZCBhcyB1bmtub3duIGFzIE1lbWJlciksXG5cbiAgZ2V0IGRlYWYoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5oYXMoJ2RlYWYnKVxuICB9LFxuICBnZXQgbXV0ZSgpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmhhcygnbXV0ZScpXG4gIH0sXG4gIGdldCBwZW5kaW5nKCkge1xuICAgIHJldHVybiAhIXRoaXMudG9nZ2xlcz8uaGFzKCdwZW5kaW5nJylcbiAgfSxcbiAgZ2V0IGZsYWdzKCkge1xuICAgIHJldHVybiB0aGlzLnRvZ2dsZXM/LmZsYWdzID8/IDBcbiAgfSxcbiAgZ2V0IGRpZFJlam9pbigpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmRpZFJlam9pblxuICB9LFxuICBnZXQgc3RhcnRlZE9uYm9hcmRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5zdGFydGVkT25ib2FyZGluZ1xuICB9LFxuICBnZXQgYnlwYXNzZXNWZXJpZmljYXRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy50b2dnbGVzPy5ieXBhc3Nlc1ZlcmlmaWNhdGlvblxuICB9LFxuICBnZXQgY29tcGxldGVkT25ib2FyZGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLnRvZ2dsZXM/LmNvbXBsZXRlZE9uYm9hcmRpbmdcbiAgfSxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lbWJlcihib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lbWJlciwgZXh0cmE/OiB7IGd1aWxkSWQ/OiBCaWdTdHJpbmc7IHVzZXJJZD86IEJpZ1N0cmluZyB9KTogTWVtYmVyIHtcbiAgY29uc3QgbWVtYmVyOiBTZXR1cERlc2lyZWRQcm9wczxNZW1iZXIsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPiA9IE9iamVjdC5jcmVhdGUoYmFzZU1lbWJlcilcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lbWJlclxuXG4gIGlmIChwcm9wcy5pZCAmJiBleHRyYT8udXNlcklkKSBtZW1iZXIuaWQgPSB0eXBlb2YgZXh0cmEudXNlcklkID09PSAnc3RyaW5nJyA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGV4dHJhLnVzZXJJZCkgOiBleHRyYS51c2VySWRcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZXh0cmE/Lmd1aWxkSWQpIG1lbWJlci5ndWlsZElkID0gdHlwZW9mIGV4dHJhLmd1aWxkSWQgPT09ICdzdHJpbmcnID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZXh0cmEuZ3VpbGRJZCkgOiBleHRyYS5ndWlsZElkXG4gIGlmIChwcm9wcy51c2VyICYmIHBheWxvYWQudXNlcikgbWVtYmVyLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIGlmIChwcm9wcy5uaWNrICYmIHBheWxvYWQubmljaykgbWVtYmVyLm5pY2sgPSBwYXlsb2FkLm5pY2tcbiAgaWYgKHByb3BzLnJvbGVzICYmIHBheWxvYWQucm9sZXMpIG1lbWJlci5yb2xlcyA9IHBheWxvYWQucm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMuam9pbmVkQXQgJiYgcGF5bG9hZC5qb2luZWRfYXQpIG1lbWJlci5qb2luZWRBdCA9IERhdGUucGFyc2UocGF5bG9hZC5qb2luZWRfYXQpXG4gIGlmIChwcm9wcy5wcmVtaXVtU2luY2UgJiYgcGF5bG9hZC5wcmVtaXVtX3NpbmNlKSBtZW1iZXIucHJlbWl1bVNpbmNlID0gRGF0ZS5wYXJzZShwYXlsb2FkLnByZW1pdW1fc2luY2UpXG4gIGlmIChwcm9wcy5jb21tdW5pY2F0aW9uRGlzYWJsZWRVbnRpbCAmJiBwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gICAgbWVtYmVyLmNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsID0gRGF0ZS5wYXJzZShwYXlsb2FkLmNvbW11bmljYXRpb25fZGlzYWJsZWRfdW50aWwpXG4gIGlmIChwcm9wcy5hdmF0YXIgJiYgcGF5bG9hZC5hdmF0YXIpIG1lbWJlci5hdmF0YXIgPSBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuYXZhdGFyKVxuICBpZiAocHJvcHMuYmFubmVyICYmIHBheWxvYWQuYmFubmVyKSBtZW1iZXIuYmFubmVyID0gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmJhbm5lcilcbiAgaWYgKHByb3BzLnBlcm1pc3Npb25zICYmIHBheWxvYWQucGVybWlzc2lvbnMpIG1lbWJlci5wZXJtaXNzaW9ucyA9IG5ldyBQZXJtaXNzaW9ucyhwYXlsb2FkLnBlcm1pc3Npb25zKVxuICBpZiAocHJvcHMudG9nZ2xlcykgbWVtYmVyLnRvZ2dsZXMgPSBuZXcgTWVtYmVyVG9nZ2xlcyhwYXlsb2FkKVxuICBpZiAocHJvcHMuYXZhdGFyRGVjb3JhdGlvbkRhdGEgJiYgcGF5bG9hZC5hdmF0YXJfZGVjb3JhdGlvbl9kYXRhKVxuICAgIG1lbWJlci5hdmF0YXJEZWNvcmF0aW9uRGF0YSA9IGJvdC50cmFuc2Zvcm1lcnMuYXZhdGFyRGVjb3JhdGlvbkRhdGEoYm90LCBwYXlsb2FkLmF2YXRhcl9kZWNvcmF0aW9uX2RhdGEpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVtYmVyKGJvdCwgcGF5bG9hZCwgbWVtYmVyLCB7XG4gICAgZ3VpbGRJZDogZXh0cmE/Lmd1aWxkSWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS5ndWlsZElkKSA6IHVuZGVmaW5lZCxcbiAgICB1c2VySWQ6IGV4dHJhPy51c2VySWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShleHRyYS51c2VySWQpIDogdW5kZWZpbmVkLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImljb25IYXNoVG9CaWdJbnQiLCJNZW1iZXJUb2dnbGVzIiwiUGVybWlzc2lvbnMiLCJiYXNlTWVtYmVyIiwidW5kZWZpbmVkIiwiZGVhZiIsInRvZ2dsZXMiLCJoYXMiLCJtdXRlIiwicGVuZGluZyIsImZsYWdzIiwiZGlkUmVqb2luIiwic3RhcnRlZE9uYm9hcmRpbmciLCJieXBhc3Nlc1ZlcmlmaWNhdGlvbiIsImNvbXBsZXRlZE9uYm9hcmRpbmciLCJ0cmFuc2Zvcm1NZW1iZXIiLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJtZW1iZXIiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiaWQiLCJ1c2VySWQiLCJzbm93Zmxha2UiLCJndWlsZElkIiwidXNlciIsIm5pY2siLCJyb2xlcyIsIm1hcCIsImpvaW5lZEF0Iiwiam9pbmVkX2F0IiwiRGF0ZSIsInBhcnNlIiwicHJlbWl1bVNpbmNlIiwicHJlbWl1bV9zaW5jZSIsImNvbW11bmljYXRpb25EaXNhYmxlZFVudGlsIiwiY29tbXVuaWNhdGlvbl9kaXNhYmxlZF91bnRpbCIsImF2YXRhciIsImJhbm5lciIsInBlcm1pc3Npb25zIiwiYXZhdGFyRGVjb3JhdGlvbkRhdGEiLCJhdmF0YXJfZGVjb3JhdGlvbl9kYXRhIiwiY3VzdG9taXplcnMiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUdwRCxTQUFTQyxhQUFhLFFBQVEsc0JBQXFCO0FBQ25ELFNBQVNDLFdBQVcsUUFBUSwyQkFBMEI7QUFHdEQsT0FBTyxNQUFNQyxhQUFxQjtJQUNoQywyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLFFBQU87UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNDLE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlDLFFBQU87UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNGLE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlFLFdBQVU7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNILE9BQU8sRUFBRUMsSUFBSTtJQUM3QjtJQUNBLElBQUlHLFNBQVE7UUFDVixPQUFPLElBQUksQ0FBQ0osT0FBTyxFQUFFSSxTQUFTO0lBQ2hDO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQ0wsT0FBTyxFQUFFSztJQUN6QjtJQUNBLElBQUlDLHFCQUFvQjtRQUN0QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUNOLE9BQU8sRUFBRU07SUFDekI7SUFDQSxJQUFJQyx3QkFBdUI7UUFDekIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDUCxPQUFPLEVBQUVPO0lBQ3pCO0lBQ0EsSUFBSUMsdUJB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
|
|
@@ -117,89 +117,93 @@ export const baseMessage = {
|
|
|
117
117
|
else this.flags.remove(MessageFlags.Urgent);
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
|
-
export function transformMessage(bot, payload) {
|
|
121
|
-
const guildId = payload.
|
|
122
|
-
const userId = payload.
|
|
120
|
+
export function transformMessage(bot, payload, extra) {
|
|
121
|
+
const guildId = payload.guild_id ? bot.transformers.snowflake(payload.guild_id) : undefined;
|
|
122
|
+
const userId = payload.author?.id ? bot.transformers.snowflake(payload.author.id) : undefined;
|
|
123
123
|
const message = Object.create(baseMessage);
|
|
124
124
|
message.bitfield = new ToggleBitfield();
|
|
125
|
-
message.flags = new ToggleBitfield(payload.
|
|
125
|
+
message.flags = new ToggleBitfield(payload.flags);
|
|
126
126
|
const props = bot.transformers.desiredProperties.message;
|
|
127
|
-
if (props.author && payload.
|
|
128
|
-
if (props.application && payload.
|
|
129
|
-
|
|
130
|
-
shardId:
|
|
127
|
+
if (props.author && payload.author) message.author = bot.transformers.user(bot, payload.author);
|
|
128
|
+
if (props.application && payload.application) // @ts-expect-error TODO: Partials
|
|
129
|
+
message.application = bot.transformers.application(bot, payload.application, {
|
|
130
|
+
shardId: extra?.shardId
|
|
131
131
|
});
|
|
132
|
-
if (props.applicationId && payload.
|
|
133
|
-
if (props.attachments && payload.
|
|
134
|
-
if (props.channelId && payload.
|
|
135
|
-
if (props.components && payload.
|
|
136
|
-
if (props.content) message.content = payload.
|
|
137
|
-
if (props.editedTimestamp && payload.
|
|
138
|
-
if (props.embeds && payload.
|
|
132
|
+
if (props.applicationId && payload.application_id) message.applicationId = bot.transformers.snowflake(payload.application_id);
|
|
133
|
+
if (props.attachments && payload.attachments?.length) message.attachments = payload.attachments.map((attachment)=>bot.transformers.attachment(bot, attachment));
|
|
134
|
+
if (props.channelId && payload.channel_id) message.channelId = bot.transformers.snowflake(payload.channel_id);
|
|
135
|
+
if (props.components && payload.components?.length) message.components = payload.components.map((comp)=>bot.transformers.component(bot, comp));
|
|
136
|
+
if (props.content) message.content = payload.content ?? EMPTY_STRING;
|
|
137
|
+
if (props.editedTimestamp && payload.edited_timestamp) message.editedTimestamp = Date.parse(payload.edited_timestamp);
|
|
138
|
+
if (props.embeds && payload.embeds?.length) message.embeds = payload.embeds.map((embed)=>bot.transformers.embed(bot, embed));
|
|
139
139
|
if (props.guildId && guildId) message.guildId = guildId;
|
|
140
|
-
if (props.id && payload.
|
|
141
|
-
if (props.interactionMetadata && payload.
|
|
142
|
-
if (props.interaction && payload.
|
|
140
|
+
if (props.id && payload.id) message.id = bot.transformers.snowflake(payload.id);
|
|
141
|
+
if (props.interactionMetadata && payload.interaction_metadata) message.interactionMetadata = bot.transformers.messageInteractionMetadata(bot, payload.interaction_metadata);
|
|
142
|
+
if (props.interaction && payload.interaction) {
|
|
143
143
|
const interaction = {};
|
|
144
144
|
const messageInteractionProps = bot.transformers.desiredProperties.messageInteraction;
|
|
145
145
|
if (messageInteractionProps.id) {
|
|
146
|
-
interaction.id = bot.transformers.snowflake(payload.
|
|
146
|
+
interaction.id = bot.transformers.snowflake(payload.interaction.id);
|
|
147
147
|
}
|
|
148
|
-
if (messageInteractionProps.member && payload.
|
|
148
|
+
if (messageInteractionProps.member && payload.interaction.member) {
|
|
149
149
|
// @ts-expect-error TODO: partial - check why this is partial and handle as needed
|
|
150
|
-
interaction.member = bot.transformers.member(bot, payload.
|
|
150
|
+
interaction.member = bot.transformers.member(bot, payload.interaction.member, {
|
|
151
|
+
guildId,
|
|
152
|
+
userId: payload.interaction.user.id
|
|
153
|
+
});
|
|
151
154
|
}
|
|
152
155
|
if (messageInteractionProps.name) {
|
|
153
|
-
interaction.name = payload.
|
|
156
|
+
interaction.name = payload.interaction.name;
|
|
154
157
|
}
|
|
155
158
|
if (messageInteractionProps.type) {
|
|
156
|
-
interaction.type = payload.
|
|
159
|
+
interaction.type = payload.interaction.type;
|
|
157
160
|
}
|
|
158
161
|
if (messageInteractionProps.user) {
|
|
159
|
-
interaction.user = bot.transformers.user(bot, payload.
|
|
162
|
+
interaction.user = bot.transformers.user(bot, payload.interaction.user);
|
|
160
163
|
}
|
|
161
164
|
message.interaction = interaction;
|
|
162
165
|
}
|
|
163
|
-
if (props.member && guildId && userId && payload.
|
|
164
|
-
message.member = bot.transformers.member(bot, payload.
|
|
165
|
-
|
|
166
|
-
|
|
166
|
+
if (props.member && guildId && userId && payload.member) // @ts-expect-error TODO: partial
|
|
167
|
+
message.member = bot.transformers.member(bot, payload.member, {
|
|
168
|
+
guildId,
|
|
169
|
+
userId
|
|
170
|
+
});
|
|
171
|
+
if (payload.mention_everyone) message.mentionEveryone = true;
|
|
172
|
+
if (props.mentionedChannelIds && payload.mention_channels?.length) {
|
|
167
173
|
message.mentionedChannelIds = [
|
|
168
174
|
// Keep any ids tht discord sends
|
|
169
|
-
...(payload.
|
|
175
|
+
...(payload.mention_channels ?? []).map((m)=>bot.transformers.snowflake(m.id)),
|
|
170
176
|
// Add any other ids that can be validated in a channel mention format
|
|
171
|
-
...(payload.
|
|
177
|
+
...(payload.content?.match(CHANNEL_MENTION_REGEX) ?? []).map((text)=>// converts the <#123> into 123
|
|
172
178
|
bot.transformers.snowflake(text.substring(2, text.length - 1)))
|
|
173
179
|
];
|
|
174
180
|
}
|
|
175
|
-
if (props.mentionedRoleIds && payload.
|
|
176
|
-
if (props.mentions && payload.
|
|
177
|
-
if (props.messageReference && payload.
|
|
181
|
+
if (props.mentionedRoleIds && payload.mention_roles?.length) message.mentionedRoleIds = payload.mention_roles.map((id)=>bot.transformers.snowflake(id));
|
|
182
|
+
if (props.mentions && payload.mentions?.length) message.mentions = payload.mentions.map((user)=>bot.transformers.user(bot, user));
|
|
183
|
+
if (props.messageReference && payload.message_reference) {
|
|
178
184
|
const reference = {};
|
|
179
185
|
const messageReferenceProps = bot.transformers.desiredProperties.messageReference;
|
|
180
|
-
if (messageReferenceProps.channelId && payload.
|
|
181
|
-
reference.channelId = bot.transformers.snowflake(payload.
|
|
186
|
+
if (messageReferenceProps.channelId && payload.message_reference.channel_id) {
|
|
187
|
+
reference.channelId = bot.transformers.snowflake(payload.message_reference.channel_id);
|
|
182
188
|
}
|
|
183
|
-
if (messageReferenceProps.guildId && payload.
|
|
184
|
-
reference.guildId = bot.transformers.snowflake(payload.
|
|
189
|
+
if (messageReferenceProps.guildId && payload.message_reference.guild_id) {
|
|
190
|
+
reference.guildId = bot.transformers.snowflake(payload.message_reference.guild_id);
|
|
185
191
|
}
|
|
186
|
-
if (messageReferenceProps.messageId && payload.
|
|
187
|
-
reference.messageId = bot.transformers.snowflake(payload.
|
|
192
|
+
if (messageReferenceProps.messageId && payload.message_reference.message_id) {
|
|
193
|
+
reference.messageId = bot.transformers.snowflake(payload.message_reference.message_id);
|
|
188
194
|
}
|
|
189
195
|
message.messageReference = reference;
|
|
190
196
|
}
|
|
191
|
-
if (props.referencedMessage && payload.
|
|
192
|
-
|
|
193
|
-
shardId: payload.shardId
|
|
197
|
+
if (props.referencedMessage && payload.referenced_message) message.referencedMessage = bot.transformers.message(bot, payload.referenced_message, {
|
|
198
|
+
shardId: extra?.shardId
|
|
194
199
|
});
|
|
195
|
-
if (props.messageSnapshots && payload.
|
|
196
|
-
|
|
197
|
-
shardId: payload.shardId
|
|
200
|
+
if (props.messageSnapshots && payload.message_snapshots) message.messageSnapshots = payload.message_snapshots.map((snap)=>bot.transformers.messageSnapshot(bot, snap, {
|
|
201
|
+
shardId: extra?.shardId
|
|
198
202
|
}));
|
|
199
|
-
if (props.nonce && payload.
|
|
200
|
-
if (payload.
|
|
201
|
-
if (props.reactions && payload.
|
|
202
|
-
message.reactions = payload.
|
|
203
|
+
if (props.nonce && payload.nonce) message.nonce = payload.nonce;
|
|
204
|
+
if (payload.pinned) message.pinned = true;
|
|
205
|
+
if (props.reactions && payload.reactions?.length) {
|
|
206
|
+
message.reactions = payload.reactions.map((reaction)=>({
|
|
203
207
|
me: reaction.me,
|
|
204
208
|
meBurst: reaction.me_burst,
|
|
205
209
|
count: reaction.count,
|
|
@@ -207,44 +211,43 @@ export function transformMessage(bot, payload) {
|
|
|
207
211
|
burst: reaction.count_details.burst,
|
|
208
212
|
normal: reaction.count_details.normal
|
|
209
213
|
},
|
|
214
|
+
// @ts-expect-error TODO: Deal with partials
|
|
210
215
|
emoji: bot.transformers.emoji(bot, reaction.emoji),
|
|
211
216
|
burstColors: reaction.burst_colors
|
|
212
217
|
}));
|
|
213
218
|
}
|
|
214
|
-
if (props.stickerItems && payload.
|
|
219
|
+
if (props.stickerItems && payload.sticker_items?.length) message.stickerItems = payload.sticker_items.map((item)=>({
|
|
215
220
|
id: bot.transformers.snowflake(item.id),
|
|
216
221
|
name: item.name,
|
|
217
222
|
formatType: item.format_type
|
|
218
223
|
}));
|
|
219
|
-
if (payload.
|
|
220
|
-
if (props.thread && payload.
|
|
221
|
-
channel: payload.message.thread,
|
|
224
|
+
if (payload.tts) message.tts = true;
|
|
225
|
+
if (props.thread && payload.thread) message.thread = bot.transformers.channel(bot, payload.thread, {
|
|
222
226
|
guildId
|
|
223
227
|
});
|
|
224
|
-
if (props.type) message.type = payload.
|
|
225
|
-
if (props.webhookId && payload.
|
|
226
|
-
if (props.poll && payload.
|
|
227
|
-
if (props.call && payload.
|
|
228
|
-
return bot.transformers.customizers.message(bot, payload
|
|
228
|
+
if (props.type) message.type = payload.type;
|
|
229
|
+
if (props.webhookId && payload.webhook_id) message.webhookId = bot.transformers.snowflake(payload.webhook_id);
|
|
230
|
+
if (props.poll && payload.poll) message.poll = bot.transformers.poll(bot, payload.poll);
|
|
231
|
+
if (props.call && payload.call) message.call = bot.transformers.messageCall(bot, payload.call);
|
|
232
|
+
return bot.transformers.customizers.message(bot, payload, message, extra);
|
|
229
233
|
}
|
|
230
|
-
export function transformMessagePin(bot, payload) {
|
|
234
|
+
export function transformMessagePin(bot, payload, extra) {
|
|
231
235
|
const props = bot.transformers.desiredProperties.messagePin;
|
|
232
236
|
const messagePin = {};
|
|
233
237
|
if (props.pinnedAt && payload.pinned_at) messagePin.pinnedAt = Date.parse(payload.pinned_at);
|
|
234
|
-
if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, {
|
|
235
|
-
|
|
236
|
-
shardId: 0
|
|
238
|
+
if (props.message && payload.message) messagePin.message = bot.transformers.message(bot, payload.message, {
|
|
239
|
+
shardId: extra?.shardId
|
|
237
240
|
});
|
|
238
|
-
return bot.transformers.customizers.messagePin(bot, payload, messagePin);
|
|
241
|
+
return bot.transformers.customizers.messagePin(bot, payload, messagePin, extra);
|
|
239
242
|
}
|
|
240
|
-
export function transformMessageSnapshot(bot, payload) {
|
|
243
|
+
export function transformMessageSnapshot(bot, payload, extra) {
|
|
241
244
|
const props = bot.transformers.desiredProperties.messageSnapshot;
|
|
242
245
|
const messageSnapshot = {};
|
|
243
|
-
if (props.message && payload.
|
|
244
|
-
|
|
245
|
-
shardId:
|
|
246
|
+
if (props.message && payload.message) // @ts-expect-error TODO: Partials
|
|
247
|
+
messageSnapshot.message = bot.transformers.message(bot, payload.message, {
|
|
248
|
+
shardId: extra?.shardId
|
|
246
249
|
});
|
|
247
|
-
return bot.transformers.customizers.messageSnapshot(bot, payload
|
|
250
|
+
return bot.transformers.customizers.messageSnapshot(bot, payload, messageSnapshot, extra);
|
|
248
251
|
}
|
|
249
252
|
export function transformMessageInteractionMetadata(bot, payload) {
|
|
250
253
|
const props = bot.transformers.desiredProperties.messageInteractionMetadata;
|
|
@@ -281,4 +284,4 @@ export function transformMessageCall(bot, payload) {
|
|
|
281
284
|
return bot.transformers.customizers.messageCall(bot, payload, call);
|
|
282
285
|
}
|
|
283
286
|
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICB0eXBlIERpc2NvcmRBcHBsaWNhdGlvbixcbiAgRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlQ2FsbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VQaW4sXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VTbmFwc2hvdCxcbiAgTWVzc2FnZUZsYWdzLFxufSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IENIQU5ORUxfTUVOVElPTl9SRUdFWCB9IGZyb20gJy4uL2NvbnN0YW50cy5qcydcbmltcG9ydCB7XG4gIHR5cGUgSW50ZXJuYWxCb3QsXG4gIHR5cGUgTWVzc2FnZSxcbiAgdHlwZSBNZXNzYWdlQ2FsbCxcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10gPSB7XG4gIC8vIFRoaXMgYWxsb3dzIHR5cGVzY3JpcHQgdG8gc3RpbGwgY2hlY2sgZm9yIHR5cGUgZXJyb3JzIG9uIGZ1bmN0aW9ucyBiZWxvd1xuICAuLi4odW5kZWZpbmVkIGFzIHVua25vd24gYXMgSW50ZXJuYWxCb3RbJ3RyYW5zZm9ybWVycyddWyckaW5mZXJyZWRUeXBlcyddWydtZXNzYWdlJ10pLFxuXG4gIGdldCBjcm9zc3Bvc3RlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgY3Jvc3Nwb3N0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkNyb3NzcG9zdGVkKVxuICB9LFxuICBnZXQgZXBoZW1lcmFsKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgZXBoZW1lcmFsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5FcGhlbWVyYWwpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICB9LFxuICBnZXQgZmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5GYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZClcbiAgfSxcbiAgZ2V0IGhhc1RocmVhZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkhhc1RocmVhZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGhhc1RocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSGFzVGhyZWFkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgfSxcbiAgZ2V0IGlzQ3Jvc3Nwb3N0KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBpc0Nyb3NzcG9zdCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuSXNDcm9zc3Bvc3QpXG4gIH0sXG4gIGdldCBsb2FkaW5nKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuTG9hZGluZykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuTG9hZGluZylcbiAgfSxcbiAgZ2V0IG1lbnRpb25lZFVzZXJJZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMubWVudGlvbnM/Lm1hcCgodXNlcikgPT4gdXNlci5pZCkgPz8gW11cbiAgfSxcbiAgZ2V0IG1lbnRpb25FdmVyeW9uZSgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMikgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IG1lbnRpb25FdmVyeW9uZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgyKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMilcbiAgfSxcbiAgZ2V0IHBpbm5lZCgpIHtcbiAgICByZXR1cm4gdGhpcy5iaXRmaWVsZD8uY29udGFpbnMoMykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHBpbm5lZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5iaXRmaWVsZCkgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmJpdGZpZWxkLmFkZCgzKVxuICAgIGVsc2UgdGhpcy5iaXRmaWVsZC5yZW1vdmUoMylcbiAgfSxcbiAgZ2V0IHNvdXJjZU1lc3NhZ2VEZWxldGVkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU291cmNlTWVzc2FnZURlbGV0ZWQpXG4gIH0sXG4gIGdldCBzdXBwcmVzc0VtYmVkcygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NFbWJlZHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzRW1iZWRzKVxuICB9LFxuICBnZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc3VwcHJlc3NOb3RpZmljYXRpb25zKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc05vdGlmaWNhdGlvbnMpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICB9LFxuICBnZXQgdGltZXN0YW1wKCkge1xuICAgIHJldHVybiB0aGlzLmlkID8gc25vd2ZsYWtlVG9UaW1lc3RhbXAodGhpcy5pZCkgOiAwXG4gIH0sXG4gIGdldCB0dHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDEpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB0dHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMSlcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDEpXG4gIH0sXG4gIGdldCB1cmdlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5VcmdlbnQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCB1cmdlbnQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlVyZ2VudClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gIH0sXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiB7IG1lc3NhZ2U6IERpc2NvcmRNZXNzYWdlOyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2Uge1xuICBjb25zdCBndWlsZElkID0gcGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yPy5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS5hdXRob3IuaWQpIDogdW5kZWZpbmVkXG5cbiAgY29uc3QgbWVzc2FnZTogTWVzc2FnZSA9IE9iamVjdC5jcmVhdGUoYmFzZU1lc3NhZ2UpXG4gIG1lc3NhZ2UuYml0ZmllbGQgPSBuZXcgVG9nZ2xlQml0ZmllbGQoKVxuICBtZXNzYWdlLmZsYWdzID0gbmV3IFRvZ2dsZUJpdGZpZWxkKHBheWxvYWQubWVzc2FnZS5mbGFncylcblxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVxuXG4gIGlmIChwcm9wcy5hdXRob3IgJiYgcGF5bG9hZC5tZXNzYWdlLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuYXV0aG9yKVxuICBpZiAocHJvcHMuYXBwbGljYXRpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uKVxuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwge1xuICAgICAgYXBwbGljYXRpb246IHBheWxvYWQubWVzc2FnZS5hcHBsaWNhdGlvbiBhcyBEaXNjb3JkQXBwbGljYXRpb24sXG4gICAgICBzaGFyZElkOiBwYXlsb2FkLnNoYXJkSWQsXG4gICAgfSlcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuYXBwbGljYXRpb25faWQpXG4gIGlmIChwcm9wcy5hdHRhY2htZW50cyAmJiBwYXlsb2FkLm1lc3NhZ2UuYXR0YWNobWVudHM/Lmxlbmd0aClcbiAgICBtZXNzYWdlLmF0dGFjaG1lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpIG1lc3NhZ2UuY2hhbm5lbElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLmNoYW5uZWxfaWQpXG4gIGlmIChwcm9wcy5jb21wb25lbnRzICYmIHBheWxvYWQubWVzc2FnZS5jb21wb25lbnRzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5jb21wb25lbnRzID0gcGF5bG9hZC5tZXNzYWdlLmNvbXBvbmVudHMubWFwKChjb21wKSA9PiBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIGNvbXApKVxuICBpZiAocHJvcHMuY29udGVudCkgbWVzc2FnZS5jb250ZW50ID0gcGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5tZXNzYWdlLmVkaXRlZF90aW1lc3RhbXApIG1lc3NhZ2UuZWRpdGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLm1lc3NhZ2UuZWRpdGVkX3RpbWVzdGFtcClcbiAgaWYgKHByb3BzLmVtYmVkcyAmJiBwYXlsb2FkLm1lc3NhZ2UuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5tZXNzYWdlLmVtYmVkcy5tYXAoKGVtYmVkKSA9PiBib3QudHJhbnNmb3JtZXJzLmVtYmVkKGJvdCwgZW1iZWQpKVxuICBpZiAocHJvcHMuZ3VpbGRJZCAmJiBndWlsZElkKSBtZXNzYWdlLmd1aWxkSWQgPSBndWlsZElkXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLm1lc3NhZ2UuaWQpIG1lc3NhZ2UuaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICBtZXNzYWdlLmludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uX21ldGFkYXRhKVxuICBpZiAocHJvcHMuaW50ZXJhY3Rpb24gJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBOb25OdWxsYWJsZTxNZXNzYWdlWydpbnRlcmFjdGlvbiddPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24uaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5tZW1iZXIgJiYgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLm1lbWJlcikge1xuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsIC0gY2hlY2sgd2h5IHRoaXMgaXMgcGFydGlhbCBhbmQgaGFuZGxlIGFzIG5lZWRlZFxuICAgICAgaW50ZXJhY3Rpb24ubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubWVtYmVyLCBndWlsZElkLCBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24udXNlci5pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzLm5hbWUpIHtcbiAgICAgIGludGVyYWN0aW9uLm5hbWUgPSBwYXlsb2FkLm1lc3NhZ2UuaW50ZXJhY3Rpb24ubmFtZVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMudHlwZSkge1xuICAgICAgaW50ZXJhY3Rpb24udHlwZSA9IHBheWxvYWQubWVzc2FnZS5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmludGVyYWN0aW9uLnVzZXIpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbiA9IGludGVyYWN0aW9uXG4gIH1cbiAgaWYgKHByb3BzLm1lbWJlciAmJiBndWlsZElkICYmIHVzZXJJZCAmJiBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogcGFydGlhbFxuICAgIG1lc3NhZ2UubWVtYmVyID0gYm90LnRyYW5zZm9ybWVycy5tZW1iZXIoYm90LCBwYXlsb2FkLm1lc3NhZ2UubWVtYmVyLCBndWlsZElkLCB1c2VySWQpXG4gIGlmIChwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9ldmVyeW9uZSkgbWVzc2FnZS5tZW50aW9uRXZlcnlvbmUgPSB0cnVlXG4gIGlmIChwcm9wcy5tZW50aW9uZWRDaGFubmVsSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lc3NhZ2UubWVudGlvbl9jaGFubmVscyA/PyBbXSkubWFwKChtKSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShtLmlkKSksXG4gICAgICAvLyBBZGQgYW55IG90aGVyIGlkcyB0aGF0IGNhbiBiZSB2YWxpZGF0ZWQgaW4gYSBjaGFubmVsIG1lbnRpb24gZm9ybWF0XG4gICAgICAuLi4ocGF5bG9hZC5tZXNzYWdlLmNvbnRlbnQ/Lm1hdGNoKENIQU5ORUxfTUVOVElPTl9SRUdFWCkgPz8gW10pLm1hcCgodGV4dCkgPT5cbiAgICAgICAgLy8gY29udmVydHMgdGhlIDwjMTIzPiBpbnRvIDEyM1xuICAgICAgICBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh0ZXh0LnN1YnN0cmluZygyLCB0ZXh0Lmxlbmd0aCAtIDEpKSxcbiAgICAgICksXG4gICAgXVxuICB9XG4gIGlmIChwcm9wcy5tZW50aW9uZWRSb2xlSWRzICYmIHBheWxvYWQubWVzc2FnZS5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25fcm9sZXMubWFwKChpZCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoaWQpKVxuICBpZiAocHJvcHMubWVudGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLm1lbnRpb25zPy5sZW5ndGgpIG1lc3NhZ2UubWVudGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlKSB7XG4gICAgY29uc3QgcmVmZXJlbmNlID0ge30gYXMgTm9uTnVsbGFibGU8TWVzc2FnZVsnbWVzc2FnZVJlZmVyZW5jZSddPlxuICAgIGNvbnN0IG1lc3NhZ2VSZWZlcmVuY2VQcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVJlZmVyZW5jZVxuXG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLmNoYW5uZWxfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5jaGFubmVsSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpXG4gICAgfVxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMubWVzc2FnZUlkICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlLm1lc3NhZ2VfcmVmZXJlbmNlLm1lc3NhZ2VfaWQpXG4gICAgfVxuXG4gICAgbWVzc2FnZS5tZXNzYWdlUmVmZXJlbmNlID0gcmVmZXJlbmNlXG4gIH1cbiAgaWYgKHByb3BzLnJlZmVyZW5jZWRNZXNzYWdlICYmIHBheWxvYWQubWVzc2FnZS5yZWZlcmVuY2VkX21lc3NhZ2UpXG4gICAgbWVzc2FnZS5yZWZlcmVuY2VkTWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLnJlZmVyZW5jZWRfbWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG4gIGlmIChwcm9wcy5tZXNzYWdlU25hcHNob3RzICYmIHBheWxvYWQubWVzc2FnZS5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2UubWVzc2FnZV9zbmFwc2hvdHMubWFwKChzbmFwKSA9PlxuICAgICAgYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCB7IG1lc3NhZ2VTbmFwc2hvdDogc25hcCwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pLFxuICAgIClcbiAgaWYgKHByb3BzLm5vbmNlICYmIHBheWxvYWQubWVzc2FnZS5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubWVzc2FnZS5ub25jZVxuICBpZiAocGF5bG9hZC5tZXNzYWdlLnBpbm5lZCkgbWVzc2FnZS5waW5uZWQgPSB0cnVlXG4gIGlmIChwcm9wcy5yZWFjdGlvbnMgJiYgcGF5bG9hZC5tZXNzYWdlLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLm1lc3NhZ2UucmVhY3Rpb25zLm1hcCgocmVhY3Rpb24pID0+ICh7XG4gICAgICBtZTogcmVhY3Rpb24ubWUsXG4gICAgICBtZUJ1cnN0OiByZWFjdGlvbi5tZV9idXJzdCxcbiAgICAgIGNvdW50OiByZWFjdGlvbi5jb3VudCxcbiAgICAgIGNvdW50RGV0YWlsczoge1xuICAgICAgICBidXJzdDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5idXJzdCxcbiAgICAgICAgbm9ybWFsOiByZWFjdGlvbi5jb3VudF9kZXRhaWxzLm5vcm1hbCxcbiAgICAgIH0sXG4gICAgICBlbW9qaTogYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHJlYWN0aW9uLmVtb2ppKSxcbiAgICAgIGJ1cnN0Q29sb3JzOiByZWFjdGlvbi5idXJzdF9jb2xvcnMsXG4gICAgfSkpXG4gIH1cbiAgaWYgKHByb3BzLnN0aWNrZXJJdGVtcyAmJiBwYXlsb2FkLm1lc3NhZ2Uuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5tZXNzYWdlLnN0aWNrZXJfaXRlbXMubWFwKChpdGVtKSA9PiAoe1xuICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGl0ZW0uaWQpLFxuICAgICAgbmFtZTogaXRlbS5uYW1lLFxuICAgICAgZm9ybWF0VHlwZTogaXRlbS5mb3JtYXRfdHlwZSxcbiAgICB9KSlcbiAgaWYgKHBheWxvYWQubWVzc2FnZS50dHMpIG1lc3NhZ2UudHRzID0gdHJ1ZVxuICBpZiAocHJvcHMudGhyZWFkICYmIHBheWxvYWQubWVzc2FnZS50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgeyBjaGFubmVsOiBwYXlsb2FkLm1lc3NhZ2UudGhyZWFkLCBndWlsZElkIH0pXG4gIGlmIChwcm9wcy50eXBlKSBtZXNzYWdlLnR5cGUgPSBwYXlsb2FkLm1lc3NhZ2UudHlwZVxuICBpZiAocHJvcHMud2ViaG9va0lkICYmIHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZS53ZWJob29rX2lkKVxuICBpZiAocHJvcHMucG9sbCAmJiBwYXlsb2FkLm1lc3NhZ2UucG9sbCkgbWVzc2FnZS5wb2xsID0gYm90LnRyYW5zZm9ybWVycy5wb2xsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQubWVzc2FnZS5jYWxsKSBtZXNzYWdlLmNhbGwgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VDYWxsKGJvdCwgcGF5bG9hZC5tZXNzYWdlLmNhbGwpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgbWVzc2FnZSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VQaW4oYm90OiBJbnRlcm5hbEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2VQaW4pOiBNZXNzYWdlUGluIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VQaW5cbiAgY29uc3QgbWVzc2FnZVBpbiA9IHt9IGFzIE1lc3NhZ2VQaW5cblxuICBpZiAocHJvcHMucGlubmVkQXQgJiYgcGF5bG9hZC5waW5uZWRfYXQpIG1lc3NhZ2VQaW4ucGlubmVkQXQgPSBEYXRlLnBhcnNlKHBheWxvYWQucGlubmVkX2F0KVxuICBpZiAocHJvcHMubWVzc2FnZSAmJiBwYXlsb2FkLm1lc3NhZ2UpIG1lc3NhZ2VQaW4ubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlLCBzaGFyZElkOiAwIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVBpbihib3QsIHBheWxvYWQsIG1lc3NhZ2VQaW4pXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoXG4gIGJvdDogSW50ZXJuYWxCb3QsXG4gIHBheWxvYWQ6IHsgbWVzc2FnZVNuYXBzaG90OiBEaXNjb3JkTWVzc2FnZVNuYXBzaG90OyBzaGFyZElkOiBudW1iZXIgfSxcbik6IHR5cGVvZiBib3QudHJhbnNmb3JtZXJzLiRpbmZlcnJlZFR5cGVzLm1lc3NhZ2VTbmFwc2hvdCB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlU25hcHNob3RcbiAgY29uc3QgbWVzc2FnZVNuYXBzaG90ID0ge30gYXMgTWVzc2FnZVNuYXBzaG90XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSlcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHsgbWVzc2FnZTogcGF5bG9hZC5tZXNzYWdlU25hcHNob3QubWVzc2FnZSBhcyBEaXNjb3JkTWVzc2FnZSwgc2hhcmRJZDogcGF5bG9hZC5zaGFyZElkIH0pXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZC5tZXNzYWdlU25hcHNob3QsIG1lc3NhZ2VTbmFwc2hvdClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKFxuICBib3Q6IEludGVybmFsQm90LFxuICBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEsXG4pOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhXG5cbiAgaWYgKHByb3BzLmlkKSBtZXRhZGF0YS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzKSB7XG4gICAgbWV0YWRhdGEuYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyA9IHt9XG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoXG4gICAgICAgIHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycwJ10sXG4gICAgICApXG4gICAgaWYgKHBheWxvYWQuYXV0aG9yaXppbmdfaW50ZWdyYXRpb25fb3duZXJzWycxJ10pXG4gICAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSxcbiAgICAgIClcbiAgfVxuICBpZiAocHJvcHMub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCAmJiBwYXlsb2FkLm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQpXG4gICAgbWV0YWRhdGEub3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgaWYgKHByb3BzLnR5cGUpIG1ldGFkYXRhLnR5cGUgPSBwYXlsb2FkLnR5cGVcbiAgaWYgKHByb3BzLnVzZXIgJiYgcGF5bG9hZC51c2VyKSBtZXRhZGF0YS51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC51c2VyKVxuICAvLyBBcHBsaWNhdGlvbiBjb21tYW5kIG1ldGFkYXRhXG4gIGlmICgndGFyZ2V0X3VzZXInIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudGFyZ2V0VXNlciAmJiBwYXlsb2FkLnRhcmdldF91c2VyKSBtZXRhZGF0YS50YXJnZXRVc2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC50YXJnZXRfdXNlcilcbiAgICBpZiAocHJvcHMudGFyZ2V0TWVzc2FnZUlkICYmIHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpIG1ldGFkYXRhLnRhcmdldE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQudGFyZ2V0X21lc3NhZ2VfaWQpXG4gIH1cbiAgLy8gTWVzc2FnZSBjb21wb25lbnQgbWV0YWRhdGFcbiAgaWYgKCdpbnRlcmFjdGVkX21lc3NhZ2VfaWQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuaW50ZXJhY3RlZE1lc3NhZ2VJZCAmJiBwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgICAgIG1ldGFkYXRhLmludGVyYWN0ZWRNZXNzYWdlSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0ZWRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNb2RhbCBzdWJtaXQgbWV0YWRhdGFcbiAgaWYgKCd0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgICAgIG1ldGFkYXRhLnRyaWdnZXJpbmdJbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQudHJpZ2dlcmluZ19pbnRlcmFjdGlvbl9tZXRhZGF0YSlcbiAgfVxuXG4gIHJldHVybiBib3QudHJhbnNmb3JtZXJzLmN1c3RvbWl6ZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZCwgbWV0YWRhdGEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlQ2FsbChib3Q6IEludGVybmFsQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiB0eXBlb2YgYm90LnRyYW5zZm9ybWVycy4kaW5mZXJyZWRUeXBlcy5tZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBNZXNzYWdlQ2FsbFxuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZUNhbGxcblxuICBpZiAocHJvcHMucGFydGljaXBhbnRzICYmIHBheWxvYWQucGFydGljaXBhbnRzKSBjYWxsLnBhcnRpY2lwYW50cyA9IHBheWxvYWQucGFydGljaXBhbnRzLm1hcCgoeCkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoeCkpXG4gIGlmIChwcm9wcy5lbmRlZFRpbWVzdGFtcCAmJiBwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcCkgY2FsbC5lbmRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lbmRlZF90aW1lc3RhbXApXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUNhbGwoYm90LCBwYXlsb2FkLCBjYWxsKVxufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsIk1lc3NhZ2VGbGFncyIsIkNIQU5ORUxfTUVOVElPTl9SRUdFWCIsInNub3dmbGFrZVRvVGltZXN0YW1wIiwiVG9nZ2xlQml0ZmllbGQiLCJFTVBUWV9TVFJJTkciLCJiYXNlTWVzc2FnZSIsInVuZGVmaW5lZCIsImNyb3NzcG9zdGVkIiwiZmxhZ3MiLCJjb250YWlucyIsIkNyb3NzcG9zdGVkIiwidmFsdWUiLCJhZGQiLCJyZW1vdmUiLCJlcGhlbWVyYWwiLCJFcGhlbWVyYWwiLCJmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCIsIkZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiaGFzVGhyZWFkIiwiSGFzVGhyZWFkIiwiaXNDcm9zc3Bvc3QiLCJJc0Nyb3NzcG9zdCIsImxvYWRpbmciLCJMb2FkaW5nIiwibWVudGlvbmVkVXNlcklkcyIsIm1lbnRpb25zIiwibWFwIiwidXNlciIsImlkIiwibWVudGlvbkV2ZXJ5b25lIiwiYml0ZmllbGQiLCJwaW5uZWQiLCJzb3VyY2VNZXNzYWdlRGVsZXRlZCIsIlNvdXJjZU1lc3NhZ2VEZWxldGVkIiwic3VwcHJlc3NFbWJlZHMiLCJTdXBwcmVzc0VtYmVkcyIsInN1cHByZXNzTm90aWZpY2F0aW9ucyIsIlN1cHByZXNzTm90aWZpY2F0aW9ucyIsInRpbWVzdGFtcCIsInR0cyIsInVyZ2VudCIsIlVyZ2VudCIsInRyYW5zZm9ybU1lc3NhZ2UiLCJib3QiLCJwYXlsb2FkIiwiZ3VpbGRJZCIsIm1lc3NhZ2UiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIk9iamVjdCIsImNyZWF0ZSIsInByb3BzIiwiZGVzaXJlZFByb3BlcnRpZXMiLCJhcHBsaWNhdGlvbiIsInNoYXJkSWQiLCJhcHBsaWNhdGlvbklkIiwiYXBwbGljYXRpb25faWQiLCJhdHRhY2htZW50cyIsImxlbmd0aCIsImF0dGFjaG1lbnQiLCJjaGFubmVsSWQiLCJjaGFubmVsX2lkIiwiY29tcG9uZW50cyIsImNvbXAiLCJjb21wb25lbnQiLCJjb250ZW50IiwiZWRpdGVkVGltZXN0YW1wIiwiZWRpdGVkX3RpbWVzdGFtcCIsIkRhdGUiLCJwYXJzZSIsImVtYmVkcyIsImVtYmVkIiwiaW50ZXJhY3Rpb25NZXRhZGF0YSIsImludGVyYWN0aW9uX21ldGFkYXRhIiwibWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbiIsIm1lc3NhZ2VJbnRlcmFjdGlvblByb3BzIiwibWVzc2FnZUludGVyYWN0aW9uIiwibWVtYmVyIiwibmFtZSIsInR5cGUiLCJtZW50aW9uX2V2ZXJ5b25lIiwibWVudGlvbmVkQ2hhbm5lbElkcyIsIm1lbnRpb25fY2hhbm5lbHMiLCJtIiwibWF0Y2giLCJ0ZXh0Iiwic3Vic3RyaW5nIiwibWVudGlvbmVkUm9sZUlkcyIsIm1lbnRpb25fcm9sZXMiLCJtZXNzYWdlUmVmZXJlbmNlIiwibWVzc2FnZV9yZWZlcmVuY2UiLCJyZWZlcmVuY2UiLCJtZXNzYWdlUmVmZXJlbmNlUHJvcHMiLCJtZXNzYWdlSWQiLCJtZXNzYWdlX2lkIiwicmVmZXJlbmNlZE1lc3NhZ2UiLCJyZWZlcmVuY2VkX21lc3NhZ2UiLCJtZXNzYWdlU25hcHNob3RzIiwibWVzc2FnZV9zbmFwc2hvdHMiLCJzbmFwIiwibWVzc2FnZVNuYXBzaG90Iiwibm9uY2UiLCJyZWFjdGlvbnMiLCJyZWFjdGlvbiIsIm1lIiwibWVCdXJzdCIsIm1lX2J1cnN0IiwiY291bnQiLCJjb3VudERldGFpbHMiLCJidXJzdCIsImNvdW50X2RldGFpbHMiLCJub3JtYWwiLCJlbW9qaSIsImJ1cnN0Q29sb3JzIiwiYnVyc3RfY29sb3JzIiwic3RpY2tlckl0ZW1zIiwic3RpY2tlcl9pdGVtcyIsIml0ZW0iLCJmb3JtYXRUeXBlIiwiZm9ybWF0X3R5cGUiLCJ0aHJlYWQiLCJjaGFubmVsIiwid2ViaG9va0lkIiwid2ViaG9va19pZCIsInBvbGwiLCJjYWxsIiwibWVzc2FnZUNhbGwiLCJjdXN0b21pemVycyIsInRyYW5zZm9ybU1lc3NhZ2VQaW4iLCJtZXNzYWdlUGluIiwicGlubmVkQXQiLCJwaW5uZWRfYXQiLCJ0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QiLCJ0cmFuc2Zvcm1NZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSIsIm1ldGFkYXRhIiwiYXV0aG9yaXppbmdJbnRlZ3JhdGlvbk93bmVycyIsImF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVycyIsIkd1aWxkSW5zdGFsbCIsIlVzZXJJbnN0YWxsIiwib3JpZ2luYWxSZXNwb25zZU1lc3NhZ2VJZCIsIm9yaWdpbmFsX3Jlc3BvbnNlX21lc3NhZ2VfaWQiLCJ0YXJnZXRVc2VyIiwidGFyZ2V0X3VzZXIiLCJ0YXJnZXRNZXNzYWdlSWQiLCJ0YXJnZXRfbWVzc2FnZV9pZCIsImludGVyYWN0ZWRNZXNzYWdlSWQiLCJpbnRlcmFjdGVkX21lc3NhZ2VfaWQiLCJ0cmlnZ2VyaW5nSW50ZXJhY3Rpb25NZXRhZGF0YSIsInRyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEiLCJ0cmFuc2Zvcm1NZXNzYWdlQ2FsbCIsInBhcnRpY2lwYW50cyIsIngiLCJlbmRlZFRpbWVzdGFtcCIsImVuZGVkX3RpbWVzdGFtcCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FFRUEsaUNBQWlDLEVBTWpDQyxZQUFZLFFBQ1Asb0JBQW1CO0FBQzFCLFNBQVNDLHFCQUFxQixRQUFRLGtCQUFpQjtBQUN2RCxTQU9FQyxvQkFBb0IsUUFDZixjQUFhO0FBQ3BCLFNBQVNDLGNBQWMsUUFBUSw4QkFBNkI7QUFFNUQsTUFBTUMsZUFBZTtBQUVyQixPQUFPLE1BQU1DLGNBQXdFO0lBQ25GLDJFQUEyRTtJQUMzRSxHQUFJQyxTQUFTO0lBRWIsSUFBSUMsZUFBYztRQUNoQixPQUFPLElBQUksQ0FBQ0MsS0FBSyxFQUFFQyxTQUFTVCxhQUFhVSxXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJSCxhQUFZSSxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNI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
|
|
287
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvbWVzc2FnZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2UsXG4gIHR5cGUgRGlzY29yZE1lc3NhZ2VDYWxsLFxuICB0eXBlIERpc2NvcmRNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVBpbixcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZVNuYXBzaG90LFxuICBNZXNzYWdlRmxhZ3MsXG59IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJ1xuaW1wb3J0IHsgQ0hBTk5FTF9NRU5USU9OX1JFR0VYIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJ1xuaW1wb3J0IHtcbiAgdHlwZSBCb3QsXG4gIHR5cGUgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcixcbiAgdHlwZSBNZXNzYWdlLFxuICB0eXBlIE1lc3NhZ2VDYWxsLFxuICB0eXBlIE1lc3NhZ2VJbnRlcmFjdGlvbixcbiAgdHlwZSBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSxcbiAgdHlwZSBNZXNzYWdlUGluLFxuICB0eXBlIE1lc3NhZ2VTbmFwc2hvdCxcbiAgdHlwZSBTZXR1cERlc2lyZWRQcm9wcyxcbiAgc25vd2ZsYWtlVG9UaW1lc3RhbXAsXG4gIHR5cGUgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuaW1wb3J0IHsgVG9nZ2xlQml0ZmllbGQgfSBmcm9tICcuL3RvZ2dsZXMvVG9nZ2xlQml0ZmllbGQuanMnXG5cbmNvbnN0IEVNUFRZX1NUUklORyA9ICcnXG5cbmV4cG9ydCBjb25zdCBiYXNlTWVzc2FnZTogTWVzc2FnZSA9IHtcbiAgLy8gVGhpcyBhbGxvd3MgdHlwZXNjcmlwdCB0byBzdGlsbCBjaGVjayBmb3IgdHlwZSBlcnJvcnMgb24gZnVuY3Rpb25zIGJlbG93XG4gIC4uLih1bmRlZmluZWQgYXMgdW5rbm93biBhcyBNZXNzYWdlKSxcblxuICBnZXQgY3Jvc3Nwb3N0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGNyb3NzcG9zdGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5Dcm9zc3Bvc3RlZClcbiAgfSxcbiAgZ2V0IGVwaGVtZXJhbCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbCkgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IGVwaGVtZXJhbCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRXBoZW1lcmFsKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkVwaGVtZXJhbClcbiAgfSxcbiAgZ2V0IGZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkKCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBmYWlsZWRUb01lbnRpb25Tb21lUm9sZXNJblRocmVhZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQpXG4gIH0sXG4gIGdldCBoYXNUaHJlYWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBoYXNUaHJlYWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLkhhc1RocmVhZClcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5IYXNUaHJlYWQpXG4gIH0sXG4gIGdldCBpc0Nyb3NzcG9zdCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgaXNDcm9zc3Bvc3QodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLklzQ3Jvc3Nwb3N0KVxuICB9LFxuICBnZXQgbG9hZGluZygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLkxvYWRpbmcpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBsb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5Mb2FkaW5nKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLkxvYWRpbmcpXG4gIH0sXG4gIGdldCBtZW50aW9uZWRVc2VySWRzKCkge1xuICAgIHJldHVybiB0aGlzLm1lbnRpb25zPy5tYXAoKHVzZXIpID0+IHVzZXIuaWQpID8/IFtdXG4gIH0sXG4gIGdldCBtZW50aW9uRXZlcnlvbmUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDIpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBtZW50aW9uRXZlcnlvbmUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMilcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDIpXG4gIH0sXG4gIGdldCBwaW5uZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYml0ZmllbGQ/LmNvbnRhaW5zKDMpID8/IGZhbHNlXG4gIH0sXG4gIHNldCBwaW5uZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuYml0ZmllbGQpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5iaXRmaWVsZC5hZGQoMylcbiAgICBlbHNlIHRoaXMuYml0ZmllbGQucmVtb3ZlKDMpXG4gIH0sXG4gIGdldCBzb3VyY2VNZXNzYWdlRGVsZXRlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgc291cmNlTWVzc2FnZURlbGV0ZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MpIHJldHVyblxuICAgIGlmICh2YWx1ZSkgdGhpcy5mbGFncy5hZGQoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlNvdXJjZU1lc3NhZ2VEZWxldGVkKVxuICB9LFxuICBnZXQgc3VwcHJlc3NFbWJlZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmxhZ3M/LmNvbnRhaW5zKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzRW1iZWRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgICBlbHNlIHRoaXMuZmxhZ3MucmVtb3ZlKE1lc3NhZ2VGbGFncy5TdXBwcmVzc0VtYmVkcylcbiAgfSxcbiAgZ2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucygpIHtcbiAgICByZXR1cm4gdGhpcy5mbGFncz8uY29udGFpbnMoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucykgPz8gZmFsc2VcbiAgfSxcbiAgc2V0IHN1cHByZXNzTm90aWZpY2F0aW9ucyh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5mbGFncykgcmV0dXJuXG4gICAgaWYgKHZhbHVlKSB0aGlzLmZsYWdzLmFkZChNZXNzYWdlRmxhZ3MuU3VwcHJlc3NOb3RpZmljYXRpb25zKVxuICAgIGVsc2UgdGhpcy5mbGFncy5yZW1vdmUoTWVzc2FnZUZsYWdzLlN1cHByZXNzTm90aWZpY2F0aW9ucylcbiAgfSxcbiAgZ2V0IHRpbWVzdGFtcCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZCA/IHNub3dmbGFrZVRvVGltZXN0YW1wKHRoaXMuaWQpIDogMFxuICB9LFxuICBnZXQgdHRzKCkge1xuICAgIHJldHVybiB0aGlzLmJpdGZpZWxkPy5jb250YWlucygxKSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdHRzKHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmJpdGZpZWxkKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuYml0ZmllbGQuYWRkKDEpXG4gICAgZWxzZSB0aGlzLmJpdGZpZWxkLnJlbW92ZSgxKVxuICB9LFxuICBnZXQgdXJnZW50KCkge1xuICAgIHJldHVybiB0aGlzLmZsYWdzPy5jb250YWlucyhNZXNzYWdlRmxhZ3MuVXJnZW50KSA/PyBmYWxzZVxuICB9LFxuICBzZXQgdXJnZW50KHZhbHVlOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmZsYWdzKSByZXR1cm5cbiAgICBpZiAodmFsdWUpIHRoaXMuZmxhZ3MuYWRkKE1lc3NhZ2VGbGFncy5VcmdlbnQpXG4gICAgZWxzZSB0aGlzLmZsYWdzLnJlbW92ZShNZXNzYWdlRmxhZ3MuVXJnZW50KVxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtTWVzc2FnZShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZE1lc3NhZ2UsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlIHtcbiAgY29uc3QgZ3VpbGRJZCA9IHBheWxvYWQuZ3VpbGRfaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKSA6IHVuZGVmaW5lZFxuICBjb25zdCB1c2VySWQgPSBwYXlsb2FkLmF1dGhvcj8uaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF1dGhvci5pZCkgOiB1bmRlZmluZWRcblxuICBjb25zdCBtZXNzYWdlOiBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj4gPSBPYmplY3QuY3JlYXRlKGJhc2VNZXNzYWdlKVxuICBtZXNzYWdlLmJpdGZpZWxkID0gbmV3IFRvZ2dsZUJpdGZpZWxkKClcbiAgbWVzc2FnZS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKVxuXG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlXG5cbiAgaWYgKHByb3BzLmF1dGhvciAmJiBwYXlsb2FkLmF1dGhvcikgbWVzc2FnZS5hdXRob3IgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmF1dGhvcilcbiAgaWYgKHByb3BzLmFwcGxpY2F0aW9uICYmIHBheWxvYWQuYXBwbGljYXRpb24pXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBQYXJ0aWFsc1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBib3QudHJhbnNmb3JtZXJzLmFwcGxpY2F0aW9uKGJvdCwgcGF5bG9hZC5hcHBsaWNhdGlvbiwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KVxuICBpZiAocHJvcHMuYXBwbGljYXRpb25JZCAmJiBwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKSBtZXNzYWdlLmFwcGxpY2F0aW9uSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmFwcGxpY2F0aW9uX2lkKVxuICBpZiAocHJvcHMuYXR0YWNobWVudHMgJiYgcGF5bG9hZC5hdHRhY2htZW50cz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2UuYXR0YWNobWVudHMgPSBwYXlsb2FkLmF0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5hdHRhY2htZW50KGJvdCwgYXR0YWNobWVudCkpXG4gIGlmIChwcm9wcy5jaGFubmVsSWQgJiYgcGF5bG9hZC5jaGFubmVsX2lkKSBtZXNzYWdlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuY2hhbm5lbF9pZClcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzPy5sZW5ndGgpIG1lc3NhZ2UuY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXApID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcCkpXG4gIGlmIChwcm9wcy5jb250ZW50KSBtZXNzYWdlLmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQgPz8gRU1QVFlfU1RSSU5HXG4gIGlmIChwcm9wcy5lZGl0ZWRUaW1lc3RhbXAgJiYgcGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKSBtZXNzYWdlLmVkaXRlZFRpbWVzdGFtcCA9IERhdGUucGFyc2UocGF5bG9hZC5lZGl0ZWRfdGltZXN0YW1wKVxuICBpZiAocHJvcHMuZW1iZWRzICYmIHBheWxvYWQuZW1iZWRzPy5sZW5ndGgpIG1lc3NhZ2UuZW1iZWRzID0gcGF5bG9hZC5lbWJlZHMubWFwKChlbWJlZCkgPT4gYm90LnRyYW5zZm9ybWVycy5lbWJlZChib3QsIGVtYmVkKSlcbiAgaWYgKHByb3BzLmd1aWxkSWQgJiYgZ3VpbGRJZCkgbWVzc2FnZS5ndWlsZElkID0gZ3VpbGRJZFxuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgbWVzc2FnZS5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbk1ldGFkYXRhICYmIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gICAgbWVzc2FnZS5pbnRlcmFjdGlvbk1ldGFkYXRhID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YShib3QsIHBheWxvYWQuaW50ZXJhY3Rpb25fbWV0YWRhdGEpXG4gIGlmIChwcm9wcy5pbnRlcmFjdGlvbiAmJiBwYXlsb2FkLmludGVyYWN0aW9uKSB7XG4gICAgY29uc3QgaW50ZXJhY3Rpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlSW50ZXJhY3Rpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuICAgIGNvbnN0IG1lc3NhZ2VJbnRlcmFjdGlvblByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25cblxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5pZCkge1xuICAgICAgaW50ZXJhY3Rpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVyYWN0aW9uLmlkKVxuICAgIH1cbiAgICBpZiAobWVzc2FnZUludGVyYWN0aW9uUHJvcHMubWVtYmVyICYmIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyKSB7XG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIFRPRE86IHBhcnRpYWwgLSBjaGVjayB3aHkgdGhpcyBpcyBwYXJ0aWFsIGFuZCBoYW5kbGUgYXMgbmVlZGVkXG4gICAgICBpbnRlcmFjdGlvbi5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQuaW50ZXJhY3Rpb24ubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZDogcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyLmlkIH0pXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy5uYW1lKSB7XG4gICAgICBpbnRlcmFjdGlvbi5uYW1lID0gcGF5bG9hZC5pbnRlcmFjdGlvbi5uYW1lXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy50eXBlKSB7XG4gICAgICBpbnRlcmFjdGlvbi50eXBlID0gcGF5bG9hZC5pbnRlcmFjdGlvbi50eXBlXG4gICAgfVxuICAgIGlmIChtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcy51c2VyKSB7XG4gICAgICBpbnRlcmFjdGlvbi51c2VyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5pbnRlcmFjdGlvbi51c2VyKVxuICAgIH1cblxuICAgIG1lc3NhZ2UuaW50ZXJhY3Rpb24gPSBpbnRlcmFjdGlvblxuICB9XG4gIGlmIChwcm9wcy5tZW1iZXIgJiYgZ3VpbGRJZCAmJiB1c2VySWQgJiYgcGF5bG9hZC5tZW1iZXIpXG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBwYXJ0aWFsXG4gICAgbWVzc2FnZS5tZW1iZXIgPSBib3QudHJhbnNmb3JtZXJzLm1lbWJlcihib3QsIHBheWxvYWQubWVtYmVyLCB7IGd1aWxkSWQsIHVzZXJJZCB9KVxuICBpZiAocGF5bG9hZC5tZW50aW9uX2V2ZXJ5b25lKSBtZXNzYWdlLm1lbnRpb25FdmVyeW9uZSA9IHRydWVcbiAgaWYgKHByb3BzLm1lbnRpb25lZENoYW5uZWxJZHMgJiYgcGF5bG9hZC5tZW50aW9uX2NoYW5uZWxzPy5sZW5ndGgpIHtcbiAgICBtZXNzYWdlLm1lbnRpb25lZENoYW5uZWxJZHMgPSBbXG4gICAgICAvLyBLZWVwIGFueSBpZHMgdGh0IGRpc2NvcmQgc2VuZHNcbiAgICAgIC4uLihwYXlsb2FkLm1lbnRpb25fY2hhbm5lbHMgPz8gW10pLm1hcCgobSkgPT4gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UobS5pZCkpLFxuICAgICAgLy8gQWRkIGFueSBvdGhlciBpZHMgdGhhdCBjYW4gYmUgdmFsaWRhdGVkIGluIGEgY2hhbm5lbCBtZW50aW9uIGZvcm1hdFxuICAgICAgLi4uKHBheWxvYWQuY29udGVudD8ubWF0Y2goQ0hBTk5FTF9NRU5USU9OX1JFR0VYKSA/PyBbXSkubWFwKCh0ZXh0KSA9PlxuICAgICAgICAvLyBjb252ZXJ0cyB0aGUgPCMxMjM+IGludG8gMTIzXG4gICAgICAgIGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHRleHQuc3Vic3RyaW5nKDIsIHRleHQubGVuZ3RoIC0gMSkpLFxuICAgICAgKSxcbiAgICBdXG4gIH1cbiAgaWYgKHByb3BzLm1lbnRpb25lZFJvbGVJZHMgJiYgcGF5bG9hZC5tZW50aW9uX3JvbGVzPy5sZW5ndGgpXG4gICAgbWVzc2FnZS5tZW50aW9uZWRSb2xlSWRzID0gcGF5bG9hZC5tZW50aW9uX3JvbGVzLm1hcCgoaWQpID0+IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGlkKSlcbiAgaWYgKHByb3BzLm1lbnRpb25zICYmIHBheWxvYWQubWVudGlvbnM/Lmxlbmd0aCkgbWVzc2FnZS5tZW50aW9ucyA9IHBheWxvYWQubWVudGlvbnMubWFwKCh1c2VyKSA9PiBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCB1c2VyKSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VSZWZlcmVuY2UgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZSkge1xuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHt9IGFzIE5vbk51bGxhYmxlPE1lc3NhZ2VbJ21lc3NhZ2VSZWZlcmVuY2UnXT5cbiAgICBjb25zdCBtZXNzYWdlUmVmZXJlbmNlUHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLm1lc3NhZ2VSZWZlcmVuY2VcblxuICAgIGlmIChtZXNzYWdlUmVmZXJlbmNlUHJvcHMuY2hhbm5lbElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZCkge1xuICAgICAgcmVmZXJlbmNlLmNoYW5uZWxJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuY2hhbm5lbF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5ndWlsZElkICYmIHBheWxvYWQubWVzc2FnZV9yZWZlcmVuY2UuZ3VpbGRfaWQpIHtcbiAgICAgIHJlZmVyZW5jZS5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5ndWlsZF9pZClcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2VSZWZlcmVuY2VQcm9wcy5tZXNzYWdlSWQgJiYgcGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKSB7XG4gICAgICByZWZlcmVuY2UubWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5tZXNzYWdlX3JlZmVyZW5jZS5tZXNzYWdlX2lkKVxuICAgIH1cblxuICAgIG1lc3NhZ2UubWVzc2FnZVJlZmVyZW5jZSA9IHJlZmVyZW5jZVxuICB9XG4gIGlmIChwcm9wcy5yZWZlcmVuY2VkTWVzc2FnZSAmJiBwYXlsb2FkLnJlZmVyZW5jZWRfbWVzc2FnZSlcbiAgICBtZXNzYWdlLnJlZmVyZW5jZWRNZXNzYWdlID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZC5yZWZlcmVuY2VkX21lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcbiAgaWYgKHByb3BzLm1lc3NhZ2VTbmFwc2hvdHMgJiYgcGF5bG9hZC5tZXNzYWdlX3NuYXBzaG90cylcbiAgICBtZXNzYWdlLm1lc3NhZ2VTbmFwc2hvdHMgPSBwYXlsb2FkLm1lc3NhZ2Vfc25hcHNob3RzLm1hcCgoc25hcCkgPT4gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlU25hcHNob3QoYm90LCBzbmFwLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkIH0pKVxuICBpZiAocHJvcHMubm9uY2UgJiYgcGF5bG9hZC5ub25jZSkgbWVzc2FnZS5ub25jZSA9IHBheWxvYWQubm9uY2VcbiAgaWYgKHBheWxvYWQucGlubmVkKSBtZXNzYWdlLnBpbm5lZCA9IHRydWVcbiAgaWYgKHByb3BzLnJlYWN0aW9ucyAmJiBwYXlsb2FkLnJlYWN0aW9ucz8ubGVuZ3RoKSB7XG4gICAgbWVzc2FnZS5yZWFjdGlvbnMgPSBwYXlsb2FkLnJlYWN0aW9ucy5tYXAoKHJlYWN0aW9uKSA9PiAoe1xuICAgICAgbWU6IHJlYWN0aW9uLm1lLFxuICAgICAgbWVCdXJzdDogcmVhY3Rpb24ubWVfYnVyc3QsXG4gICAgICBjb3VudDogcmVhY3Rpb24uY291bnQsXG4gICAgICBjb3VudERldGFpbHM6IHtcbiAgICAgICAgYnVyc3Q6IHJlYWN0aW9uLmNvdW50X2RldGFpbHMuYnVyc3QsXG4gICAgICAgIG5vcm1hbDogcmVhY3Rpb24uY291bnRfZGV0YWlscy5ub3JtYWwsXG4gICAgICB9LFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBUT0RPOiBEZWFsIHdpdGggcGFydGlhbHNcbiAgICAgIGVtb2ppOiBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcmVhY3Rpb24uZW1vamkpLFxuICAgICAgYnVyc3RDb2xvcnM6IHJlYWN0aW9uLmJ1cnN0X2NvbG9ycyxcbiAgICB9KSlcbiAgfVxuICBpZiAocHJvcHMuc3RpY2tlckl0ZW1zICYmIHBheWxvYWQuc3RpY2tlcl9pdGVtcz8ubGVuZ3RoKVxuICAgIG1lc3NhZ2Uuc3RpY2tlckl0ZW1zID0gcGF5bG9hZC5zdGlja2VyX2l0ZW1zLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShpdGVtLmlkKSxcbiAgICAgIG5hbWU6IGl0ZW0ubmFtZSxcbiAgICAgIGZvcm1hdFR5cGU6IGl0ZW0uZm9ybWF0X3R5cGUsXG4gICAgfSkpXG4gIGlmIChwYXlsb2FkLnR0cykgbWVzc2FnZS50dHMgPSB0cnVlXG4gIGlmIChwcm9wcy50aHJlYWQgJiYgcGF5bG9hZC50aHJlYWQpIG1lc3NhZ2UudGhyZWFkID0gYm90LnRyYW5zZm9ybWVycy5jaGFubmVsKGJvdCwgcGF5bG9hZC50aHJlYWQsIHsgZ3VpbGRJZCB9KVxuICBpZiAocHJvcHMudHlwZSkgbWVzc2FnZS50eXBlID0gcGF5bG9hZC50eXBlXG4gIGlmIChwcm9wcy53ZWJob29rSWQgJiYgcGF5bG9hZC53ZWJob29rX2lkKSBtZXNzYWdlLndlYmhvb2tJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQud2ViaG9va19pZClcbiAgaWYgKHByb3BzLnBvbGwgJiYgcGF5bG9hZC5wb2xsKSBtZXNzYWdlLnBvbGwgPSBib3QudHJhbnNmb3JtZXJzLnBvbGwoYm90LCBwYXlsb2FkLnBvbGwpXG4gIGlmIChwcm9wcy5jYWxsICYmIHBheWxvYWQuY2FsbCkgbWVzc2FnZS5jYWxsID0gYm90LnRyYW5zZm9ybWVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQuY2FsbClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlKGJvdCwgcGF5bG9hZCwgbWVzc2FnZSwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlUGluKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZVBpbiwgZXh0cmE/OiB7IHNoYXJkSWQ/OiBudW1iZXIgfSk6IE1lc3NhZ2VQaW4ge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVBpblxuICBjb25zdCBtZXNzYWdlUGluID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8TWVzc2FnZVBpbiwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLnBpbm5lZEF0ICYmIHBheWxvYWQucGlubmVkX2F0KSBtZXNzYWdlUGluLnBpbm5lZEF0ID0gRGF0ZS5wYXJzZShwYXlsb2FkLnBpbm5lZF9hdClcbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKSBtZXNzYWdlUGluLm1lc3NhZ2UgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2UoYm90LCBwYXlsb2FkLm1lc3NhZ2UsIHsgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQgfSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlUGluKGJvdCwgcGF5bG9hZCwgbWVzc2FnZVBpbiwgZXh0cmEpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1NZXNzYWdlU25hcHNob3QoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRNZXNzYWdlU25hcHNob3QsIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyIH0pOiBNZXNzYWdlU25hcHNob3Qge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVzc2FnZVNuYXBzaG90XG4gIGNvbnN0IG1lc3NhZ2VTbmFwc2hvdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VTbmFwc2hvdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLm1lc3NhZ2UgJiYgcGF5bG9hZC5tZXNzYWdlKVxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgVE9ETzogUGFydGlhbHNcbiAgICBtZXNzYWdlU25hcHNob3QubWVzc2FnZSA9IGJvdC50cmFuc2Zvcm1lcnMubWVzc2FnZShib3QsIHBheWxvYWQubWVzc2FnZSwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCB9KSBhcyBNZXNzYWdlXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZVNuYXBzaG90KGJvdCwgcGF5bG9hZCwgbWVzc2FnZVNuYXBzaG90LCBleHRyYSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEpOiBNZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlSW50ZXJhY3Rpb25NZXRhZGF0YVxuICBjb25zdCBtZXRhZGF0YSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPE1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMuaWQpIG1ldGFkYXRhLmlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pZClcbiAgaWYgKHByb3BzLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMpIHtcbiAgICBtZXRhZGF0YS5hdXRob3JpemluZ0ludGVncmF0aW9uT3duZXJzID0ge31cbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF0gPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShcbiAgICAgICAgcGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzAnXSxcbiAgICAgIClcbiAgICBpZiAocGF5bG9hZC5hdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnNbJzEnXSlcbiAgICAgIG1ldGFkYXRhLmF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnNbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLlVzZXJJbnN0YWxsXSA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKFxuICAgICAgICBwYXlsb2FkLmF1dGhvcml6aW5nX2ludGVncmF0aW9uX293bmVyc1snMSddLFxuICAgICAgKVxuICB9XG4gIGlmIChwcm9wcy5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkICYmIHBheWxvYWQub3JpZ2luYWxfcmVzcG9uc2VfbWVzc2FnZV9pZClcbiAgICBtZXRhZGF0YS5vcmlnaW5hbFJlc3BvbnNlTWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5vcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkKVxuICBpZiAocHJvcHMudHlwZSkgbWV0YWRhdGEudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMudXNlciAmJiBwYXlsb2FkLnVzZXIpIG1ldGFkYXRhLnVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnVzZXIpXG4gIC8vIEFwcGxpY2F0aW9uIGNvbW1hbmQgbWV0YWRhdGFcbiAgaWYgKCd0YXJnZXRfdXNlcicgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy50YXJnZXRVc2VyICYmIHBheWxvYWQudGFyZ2V0X3VzZXIpIG1ldGFkYXRhLnRhcmdldFVzZXIgPSBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLnRhcmdldF91c2VyKVxuICAgIGlmIChwcm9wcy50YXJnZXRNZXNzYWdlSWQgJiYgcGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZCkgbWV0YWRhdGEudGFyZ2V0TWVzc2FnZUlkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC50YXJnZXRfbWVzc2FnZV9pZClcbiAgfVxuICAvLyBNZXNzYWdlIGNvbXBvbmVudCBtZXRhZGF0YVxuICBpZiAoJ2ludGVyYWN0ZWRfbWVzc2FnZV9pZCcgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy5pbnRlcmFjdGVkTWVzc2FnZUlkICYmIHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICAgICAgbWV0YWRhdGEuaW50ZXJhY3RlZE1lc3NhZ2VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZXJhY3RlZF9tZXNzYWdlX2lkKVxuICB9XG4gIC8vIE1vZGFsIHN1Ym1pdCBtZXRhZGF0YVxuICBpZiAoJ3RyaWdnZXJpbmdfaW50ZXJhY3Rpb25fbWV0YWRhdGEnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgJiYgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICAgICAgbWV0YWRhdGEudHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEgPSBib3QudHJhbnNmb3JtZXJzLm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhKGJvdCwgcGF5bG9hZC50cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhKVxuICB9XG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMubWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEoYm90LCBwYXlsb2FkLCBtZXRhZGF0YSlcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lc3NhZ2VDYWxsKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkTWVzc2FnZUNhbGwpOiBNZXNzYWdlQ2FsbCB7XG4gIGNvbnN0IGNhbGwgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZXNzYWdlQ2FsbCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5tZXNzYWdlQ2FsbFxuXG4gIGlmIChwcm9wcy5wYXJ0aWNpcGFudHMgJiYgcGF5bG9hZC5wYXJ0aWNpcGFudHMpIGNhbGwucGFydGljaXBhbnRzID0gcGF5bG9hZC5wYXJ0aWNpcGFudHMubWFwKCh4KSA9PiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZSh4KSlcbiAgaWYgKHByb3BzLmVuZGVkVGltZXN0YW1wICYmIHBheWxvYWQuZW5kZWRfdGltZXN0YW1wKSBjYWxsLmVuZGVkVGltZXN0YW1wID0gRGF0ZS5wYXJzZShwYXlsb2FkLmVuZGVkX3RpbWVzdGFtcClcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5tZXNzYWdlQ2FsbChib3QsIHBheWxvYWQsIGNhbGwpXG59XG4iXSwibmFtZXMiOlsiRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlIiwiTWVzc2FnZUZsYWdzIiwiQ0hBTk5FTF9NRU5USU9OX1JFR0VYIiwic25vd2ZsYWtlVG9UaW1lc3RhbXAiLCJUb2dnbGVCaXRmaWVsZCIsIkVNUFRZX1NUUklORyIsImJhc2VNZXNzYWdlIiwidW5kZWZpbmVkIiwiY3Jvc3Nwb3N0ZWQiLCJmbGFncyIsImNvbnRhaW5zIiwiQ3Jvc3Nwb3N0ZWQiLCJ2YWx1ZSIsImFkZCIsInJlbW92ZSIsImVwaGVtZXJhbCIsIkVwaGVtZXJhbCIsImZhaWxlZFRvTWVudGlvblNvbWVSb2xlc0luVGhyZWFkIiwiRmFpbGVkVG9NZW50aW9uU29tZVJvbGVzSW5UaHJlYWQiLCJoYXNUaHJlYWQiLCJIYXNUaHJlYWQiLCJpc0Nyb3NzcG9zdCIsIklzQ3Jvc3Nwb3N0IiwibG9hZGluZyIsIkxvYWRpbmciLCJtZW50aW9uZWRVc2VySWRzIiwibWVudGlvbnMiLCJtYXAiLCJ1c2VyIiwiaWQiLCJtZW50aW9uRXZlcnlvbmUiLCJiaXRmaWVsZCIsInBpbm5lZCIsInNvdXJjZU1lc3NhZ2VEZWxldGVkIiwiU291cmNlTWVzc2FnZURlbGV0ZWQiLCJzdXBwcmVzc0VtYmVkcyIsIlN1cHByZXNzRW1iZWRzIiwic3VwcHJlc3NOb3RpZmljYXRpb25zIiwiU3VwcHJlc3NOb3RpZmljYXRpb25zIiwidGltZXN0YW1wIiwidHRzIiwidXJnZW50IiwiVXJnZW50IiwidHJhbnNmb3JtTWVzc2FnZSIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImd1aWxkSWQiLCJndWlsZF9pZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsInVzZXJJZCIsImF1dGhvciIsIm1lc3NhZ2UiLCJPYmplY3QiLCJjcmVhdGUiLCJwcm9wcyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiYXBwbGljYXRpb24iLCJzaGFyZElkIiwiYXBwbGljYXRpb25JZCIsImFwcGxpY2F0aW9uX2lkIiwiYXR0YWNobWVudHMiLCJsZW5ndGgiLCJhdHRhY2htZW50IiwiY2hhbm5lbElkIiwiY2hhbm5lbF9pZCIsImNvbXBvbmVudHMiLCJjb21wIiwiY29tcG9uZW50IiwiY29udGVudCIsImVkaXRlZFRpbWVzdGFtcCIsImVkaXRlZF90aW1lc3RhbXAiLCJEYXRlIiwicGFyc2UiLCJlbWJlZHMiLCJlbWJlZCIsImludGVyYWN0aW9uTWV0YWRhdGEiLCJpbnRlcmFjdGlvbl9tZXRhZGF0YSIsIm1lc3NhZ2VJbnRlcmFjdGlvbk1ldGFkYXRhIiwiaW50ZXJhY3Rpb24iLCJtZXNzYWdlSW50ZXJhY3Rpb25Qcm9wcyIsIm1lc3NhZ2VJbnRlcmFjdGlvbiIsIm1lbWJlciIsIm5hbWUiLCJ0eXBlIiwibWVudGlvbl9ldmVyeW9uZSIsIm1lbnRpb25lZENoYW5uZWxJZHMiLCJtZW50aW9uX2NoYW5uZWxzIiwibSIsIm1hdGNoIiwidGV4dCIsInN1YnN0cmluZyIsIm1lbnRpb25lZFJvbGVJZHMiLCJtZW50aW9uX3JvbGVzIiwibWVzc2FnZVJlZmVyZW5jZSIsIm1lc3NhZ2VfcmVmZXJlbmNlIiwicmVmZXJlbmNlIiwibWVzc2FnZVJlZmVyZW5jZVByb3BzIiwibWVzc2FnZUlkIiwibWVzc2FnZV9pZCIsInJlZmVyZW5jZWRNZXNzYWdlIiwicmVmZXJlbmNlZF9tZXNzYWdlIiwibWVzc2FnZVNuYXBzaG90cyIsIm1lc3NhZ2Vfc25hcHNob3RzIiwic25hcCIsIm1lc3NhZ2VTbmFwc2hvdCIsIm5vbmNlIiwicmVhY3Rpb25zIiwicmVhY3Rpb24iLCJtZSIsIm1lQnVyc3QiLCJtZV9idXJzdCIsImNvdW50IiwiY291bnREZXRhaWxzIiwiYnVyc3QiLCJjb3VudF9kZXRhaWxzIiwibm9ybWFsIiwiZW1vamkiLCJidXJzdENvbG9ycyIsImJ1cnN0X2NvbG9ycyIsInN0aWNrZXJJdGVtcyIsInN0aWNrZXJfaXRlbXMiLCJpdGVtIiwiZm9ybWF0VHlwZSIsImZvcm1hdF90eXBlIiwidGhyZWFkIiwiY2hhbm5lbCIsIndlYmhvb2tJZCIsIndlYmhvb2tfaWQiLCJwb2xsIiwiY2FsbCIsIm1lc3NhZ2VDYWxsIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1NZXNzYWdlUGluIiwibWVzc2FnZVBpbiIsInBpbm5lZEF0IiwicGlubmVkX2F0IiwidHJhbnNmb3JtTWVzc2FnZVNuYXBzaG90IiwidHJhbnNmb3JtTWVzc2FnZUludGVyYWN0aW9uTWV0YWRhdGEiLCJtZXRhZGF0YSIsImF1dGhvcml6aW5nSW50ZWdyYXRpb25Pd25lcnMiLCJhdXRob3JpemluZ19pbnRlZ3JhdGlvbl9vd25lcnMiLCJHdWlsZEluc3RhbGwiLCJVc2VySW5zdGFsbCIsIm9yaWdpbmFsUmVzcG9uc2VNZXNzYWdlSWQiLCJvcmlnaW5hbF9yZXNwb25zZV9tZXNzYWdlX2lkIiwidGFyZ2V0VXNlciIsInRhcmdldF91c2VyIiwidGFyZ2V0TWVzc2FnZUlkIiwidGFyZ2V0X21lc3NhZ2VfaWQiLCJpbnRlcmFjdGVkTWVzc2FnZUlkIiwiaW50ZXJhY3RlZF9tZXNzYWdlX2lkIiwidHJpZ2dlcmluZ0ludGVyYWN0aW9uTWV0YWRhdGEiLCJ0cmlnZ2VyaW5nX2ludGVyYWN0aW9uX21ldGFkYXRhIiwidHJhbnNmb3JtTWVzc2FnZUNhbGwiLCJwYXJ0aWNpcGFudHMiLCJ4IiwiZW5kZWRUaW1lc3RhbXAiLCJlbmRlZF90aW1lc3RhbXAiXSwibWFwcGluZ3MiOiJBQUFBLFNBQ0VBLGlDQUFpQyxFQU1qQ0MsWUFBWSxRQUNQLG9CQUFtQjtBQUMxQixTQUFTQyxxQkFBcUIsUUFBUSxrQkFBaUI7QUFDdkQsU0FVRUMsb0JBQW9CLFFBRWYsY0FBYTtBQUNwQixTQUFTQyxjQUFjLFFBQVEsOEJBQTZCO0FBRTVELE1BQU1DLGVBQWU7QUFFckIsT0FBTyxNQUFNQyxjQUF1QjtJQUNsQywyRUFBMkU7SUFDM0UsR0FBSUMsU0FBUztJQUViLElBQUlDLGVBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUNDLEtBQUssRUFBRUMsU0FBU1QsYUFBYVUsV0FBVyxLQUFLO0lBQzNEO0lBQ0EsSUFBSUgsYUFBWUksTUFBZ0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYVUsV0FBVzthQUM3QyxJQUFJLENBQUNGLEtBQUssQ0FBQ0ssTUFBTSxDQUFDYixhQUFhVSxXQUFXO0lBQ2pEO0lBQ0EsSUFBSUksYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDTixLQUFLLEVBQUVDLFNBQVNULGFBQWFlLFNBQVMsS0FBSztJQUN6RDtJQUNBLElBQUlELFdBQVVILE1BQWdCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNaLGFBQWFlLFNBQVM7YUFDM0MsSUFBSSxDQUFDUCxLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYWUsU0FBUztJQUMvQztJQUNBLElBQUlDLG9DQUFtQztRQUNyQyxPQUFPLElBQUksQ0FBQ1IsS0FBSyxFQUFFQyxTQUFTVCxhQUFhaUIsZ0NBQWdDLEtBQUs7SUFDaEY7SUFDQSxJQUFJRCxrQ0FBaUNMLE1BQWdCO1FBQ25ELElBQUksQ0FBQyxJQUFJLENBQUNILEtBQUssRUFBRTtRQUNqQixJQUFJRyxPQUFPLElBQUksQ0FBQ0gsS0FBSyxDQUFDSSxHQUFHLENBQUNaLGFBQWFpQixnQ0FBZ0M7YUFDbEUsSUFBSSxDQUFDVCxLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYWlCLGdDQUFnQztJQUN0RTtJQUNBLElBQUlDLGFBQVk7UUFDZCxPQUFPLElBQUksQ0FBQ1YsS0FBSyxFQUFFQyxTQUFTVCxhQUFhbUIsU0FBUyxLQUFLO0lBQ3pEO0lBQ0EsSUFBSUQsV0FBVVAsTUFBZ0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYW1CLFNBQVM7YUFDM0MsSUFBSSxDQUFDWCxLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYW1CLFNBQVM7SUFDL0M7SUFDQSxJQUFJQyxlQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDWixLQUFLLEVBQUVDLFNBQVNULGFBQWFxQixXQUFXLEtBQUs7SUFDM0Q7SUFDQSxJQUFJRCxhQUFZVCxNQUFnQjtRQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDWixhQUFhcUIsV0FBVzthQUM3QyxJQUFJLENBQUNiLEtBQUssQ0FBQ0ssTUFBTSxDQUFDYixhQUFhcUIsV0FBVztJQUNqRDtJQUNBLElBQUlDLFdBQVU7UUFDWixPQUFPLElBQUksQ0FBQ2QsS0FBSyxFQUFFQyxTQUFTVCxhQUFhdUIsT0FBTyxLQUFLO0lBQ3ZEO0lBQ0EsSUFBSUQsU0FBUVgsTUFBZ0I7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYXVCLE9BQU87YUFDekMsSUFBSSxDQUFDZixLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYXVCLE9BQU87SUFDN0M7SUFDQSxJQUFJQyxvQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUNDLFFBQVEsRUFBRUMsSUFBSSxDQUFDQyxPQUFTQSxLQUFLQyxFQUFFLEtBQUssRUFBRTtJQUNwRDtJQUNBLElBQUlDLG1CQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQ0MsUUFBUSxFQUFFckIsU0FBUyxNQUFNO0lBQ3ZDO0lBQ0EsSUFBSW9CLGlCQUFnQmxCLE1BQWdCO1FBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUNtQixRQUFRLEVBQUU7UUFDcEIsSUFBSW5CLE9BQU8sSUFBSSxDQUFDbUIsUUFBUSxDQUFDbEIsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FBQ2tCLFFBQVEsQ0FBQ2pCLE1BQU0sQ0FBQztJQUM1QjtJQUNBLElBQUlrQixVQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUNELFFBQVEsRUFBRXJCLFNBQVMsTUFBTTtJQUN2QztJQUNBLElBQUlzQixRQUFPcEIsTUFBZ0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQ21CLFFBQVEsRUFBRTtRQUNwQixJQUFJbkIsT0FBTyxJQUFJLENBQUNtQixRQUFRLENBQUNsQixHQUFHLENBQUM7YUFDeEIsSUFBSSxDQUFDa0IsUUFBUSxDQUFDakIsTUFBTSxDQUFDO0lBQzVCO0lBQ0EsSUFBSW1CLHdCQUF1QjtRQUN6QixPQUFPLElBQUksQ0FBQ3hCLEtBQUssRUFBRUMsU0FBU1QsYUFBYWlDLG9CQUFvQixLQUFLO0lBQ3BFO0lBQ0EsSUFBSUQsc0JBQXFCckIsTUFBZ0I7UUFDdkMsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYWlDLG9CQUFvQjthQUN0RCxJQUFJLENBQUN6QixLQUFLLENBQUNLLE1BQU0sQ0FBQ2IsYUFBYWlDLG9CQUFvQjtJQUMxRDtJQUNBLElBQUlDLGtCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQzFCLEtBQUssRUFBRUMsU0FBU1QsYUFBYW1DLGNBQWMsS0FBSztJQUM5RDtJQUNBLElBQUlELGdCQUFldkIsTUFBZ0I7UUFDakMsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYW1DLGNBQWM7YUFDaEQsSUFBSSxDQUFDM0IsS0FBSyxDQUFDSyxNQUFNLENBQUNiLGFBQWFtQyxjQUFjO0lBQ3BEO0lBQ0EsSUFBSUMseUJBQXdCO1FBQzFCLE9BQU8sSUFBSSxDQUFDNUIsS0FBSyxFQUFFQyxTQUFTVCxhQUFhcUMscUJBQXFCLEtBQUs7SUFDckU7SUFDQSxJQUFJRCx1QkFBc0J6QixNQUFnQjtRQUN4QyxJQUFJLENBQUMsSUFBSSxDQUFDSCxLQUFLLEVBQUU7UUFDakIsSUFBSUcsT0FBTyxJQUFJLENBQUNILEtBQUssQ0FBQ0ksR0FBRyxDQUFDWixhQUFhcUMscUJBQXFCO2FBQ3ZELElBQUksQ0FBQzdCLEtBQUssQ0FBQ0ssTUFBTSxDQUFDYixhQUFhcUMscUJBQXFCO0lBQzNEO0lBQ0EsSUFBSUMsYUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDVixFQUFFLEdBQUcxQixxQkFBcUIsSUFBSSxDQUFDMEIsRUFBRSxJQUFJO0lBQ25EO0lBQ0EsSUFBSVcsT0FBTTtRQUNSLE9BQU8sSUFBSSxDQUFDVCxRQUFRLEVBQUVyQixTQUFTLE1BQU07SUFDdkM7SUFDQSxJQUFJOEIsS0FBSTVCLE1BQWdCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUNtQixRQUFRLEVBQUU7UUFDcEIsSUFBSW5CLE9BQU8sSUFBSSxDQUFDbUIsUUFBUSxDQUFDbEIsR0FBRyxDQUFDO2FBQ3hCLElBQUksQ0FBQ2tCLFFBQVEsQ0FBQ2pCLE1BQU0sQ0FBQztJQUM1QjtJQUNBLElBQUkyQixVQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUNoQyxLQUFLLEVBQUVDLFNBQVNULGFBQWF5QyxNQUFNLEtBQUs7SUFDdEQ7SUFDQSxJQUFJRCxRQUFPN0IsTUFBZ0I7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQ0gsS0FBSyxFQUFFO1FBQ2pCLElBQUlHLE9BQU8sSUFBSSxDQUFDSCxLQUFLLENBQUNJLEdBQUcsQ0FBQ1osYUFBYXlDLE1BQU07YUFDeEMsSUFBSSxDQUFDakMsS0FBSyxDQUFDSyxNQUFNLENBQUNiLGFBQWF5QyxNQUFNO0lBQzVDO0FBQ0YsRUFBQztBQUVELE9BQU8sU0FBU0MsaUJBQWlCQyxHQUFRLEVBQUVDLE9BQXVCLEVBQUVDLEtBQTRCO0lBQzlGLE1BQU1DLFVBQVVGLFFBQVFHLFFBQVEsR0FBR0osSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFHLFFBQVEsSUFBSXpDO0lBQ2xGLE1BQU00QyxTQUFTTixRQUFRTyxNQUFNLEVBQUV2QixLQUFLZSxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUU8sTUFBTSxDQUFDdkIsRUFBRSxJQUFJdEI7SUFFcEYsTUFBTThDLFVBQWdHQyxPQUFPQyxNQUFNLENBQUNqRDtJQUNwSCtDLFFBQVF0QixRQUFRLEdBQUcsSUFBSTNCO0lBQ3ZCaUQsUUFBUTVDLEtBQUssR0FBRyxJQUFJTCxlQUFleUMsUUFBUXBDLEtBQUs7SUFFaEQsTUFBTStDLFFBQVFaLElBQUlLLFlBQVksQ0FBQ1EsaUJBQWlCLENBQUNKLE9BQU87SUFFeEQsSUFBSUcsTUFBTUosTUFBTSxJQUFJUCxRQUFRTyxNQUFNLEVBQUVDLFFBQVFELE1BQU0sR0FBR1IsSUFBSUssWUFBWSxDQUFDckIsSUFBSSxDQUFDZ0IsS0FBS0MsUUFBUU8sTUFBTTtJQUM5RixJQUFJSSxNQUFNRSxXQUFXLElBQUliLFFBQVFhLFdBQVcsRUFDMUMsa0NBQWtDO0lBQ2xDTCxRQUFRSyxXQUFXLEdBQUdkLElBQUlLLFlBQVksQ0FBQ1MsV0FBVyxDQUFDZCxLQUFLQyxRQUFRYSxXQUFXLEVBQUU7UUFBRUMsU0FBU2IsT0FBT2E7SUFBUTtJQUN6RyxJQUFJSCxNQUFNSSxhQUFhLElBQUlmLFFBQVFnQixjQUFjLEVBQUVSLFFBQVFPLGFBQWEsR0FBR2hCLElBQUlLLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRZ0IsY0FBYztJQUM1SCxJQUFJTCxNQUFNTSxXQUFXLElBQUlqQixRQUFRaUIsV0FBVyxFQUFFQyxRQUM1Q1YsUUFBUVMsV0FBVyxHQUFHakIsUUFBUWlCLFdBQVcsQ0FBQ25DLEdBQUcsQ0FBQyxDQUFDcUMsYUFBZXBCLElBQUlLLFlBQVksQ0FBQ2UsVUFBVSxDQUFDcEIsS0FBS29CO0lBQ2pHLElBQUlSLE1BQU1TLFNBQVMsSUFBSXBCLFFBQVFxQixVQUFVLEVBQUViLFFBQVFZLFNBQVMsR0FBR3JCLElBQUlLLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRcUIsVUFBVTtJQUM1RyxJQUFJVixNQUFNVyxVQUFVLElBQUl0QixRQUFRc0IsVUFBVSxFQUFFSixRQUFRVixRQUFRYyxVQUFVLEdBQUd0QixRQUFRc0IsVUFBVSxDQUFDeEMsR0FBRyxDQUFDLENBQUN5QyxPQUFTeEIsSUFBSUssWUFBWSxDQUFDb0IsU0FBUyxDQUFDekIsS0FBS3dCO0lBQzFJLElBQUlaLE1BQU1jLE9BQU8sRUFBRWpCLFFBQVFpQixPQUFPLEdBQUd6QixRQUFReUIsT0FBTyxJQUFJakU7SUFDeEQsSUFBSW1ELE1BQU1lLGVBQWUsSUFBSTFCLFFBQVEyQixnQkFBZ0IsRUFBRW5CLFFBQVFrQixlQUFlLEdBQUdFLEtBQUtDLEtBQUssQ0FBQzdCLFFBQVEyQixnQkFBZ0I7SUFDcEgsSUFBSWhCLE1BQU1tQixNQUFNLElBQUk5QixRQUFROEIsTUFBTSxFQUFFWixRQUFRVixRQUFRc0IsTUFBTSxHQUFHOUIsUUFBUThCLE1BQU0sQ0FBQ2hELEdBQUcsQ0FBQyxDQUFDaUQsUUFBVWhDLElBQUlLLFlBQVksQ0FBQzJCLEtBQUssQ0FBQ2hDLEtBQUtnQztJQUN2SCxJQUFJcEIsTUFBTVQsT0FBTyxJQUFJQSxTQUFTTSxRQUFRTixPQUFPLEdBQUdBO0lBQ2hELElBQUlTLE1BQU0zQixFQUFFLElBQUlnQixRQUFRaEIsRUFBRSxFQUFFd0IsUUFBUXhCLEVBQUUsR0FBR2UsSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFoQixFQUFFO0lBQzlFLElBQUkyQixNQUFNcUIsbUJBQW1CLElBQUloQyxRQUFRaUMsb0JBQW9CLEVBQzNEekIsUUFBUXdCLG1CQUFtQixHQUFHakMsSUFBSUssWUFBWSxDQUFDOEIsMEJBQTBCLENBQUNuQyxLQUFLQyxRQUFRaUMsb0JBQW9CO0lBQzdHLElBQUl0QixNQUFNd0IsV0FBVyxJQUFJbkMsUUFBUW1DLFdBQVcsRUFBRTtRQUM1QyxNQUFNQSxjQUFjLENBQUM7UUFDckIsTUFBTUMsMEJBQTBCckMsSUFBSUssWUFBWSxDQUFDUSxpQkFBaUIsQ0FBQ3lCLGtCQUFrQjtRQUVyRixJQUFJRCx3QkFBd0JwRCxFQUFFLEVBQUU7WUFDOUJtRCxZQUFZbkQsRUFBRSxHQUFHZSxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUW1DLFdBQVcsQ0FBQ25ELEVBQUU7UUFDcEU7UUFDQSxJQUFJb0Qsd0JBQXdCRSxNQUFNLElBQUl0QyxRQUFRbUMsV0FBVyxDQUFDRyxNQUFNLEVBQUU7WUFDaEUsa0ZBQWtGO1lBQ2xGSCxZQUFZRyxNQUFNLEdBQUd2QyxJQUFJSyxZQUFZLENBQUNrQyxNQUFNLENBQUN2QyxLQUFLQyxRQUFRbUMsV0FBVyxDQUFDRyxNQUFNLEVBQUU7Z0JBQUVwQztnQkFBU0ksUUFBUU4sUUFBUW1DLFdBQVcsQ0FBQ3BELElBQUksQ0FBQ0MsRUFBRTtZQUFDO1FBQy9IO1FBQ0EsSUFBSW9ELHdCQUF3QkcsSUFBSSxFQUFFO1lBQ2hDSixZQUFZSSxJQUFJLEdBQUd2QyxRQUFRbUMsV0FBVyxDQUFDSSxJQUFJO1FBQzdDO1FBQ0EsSUFBSUgsd0JBQXdCSSxJQUFJLEVBQUU7WUFDaENMLFlBQVlLLElBQUksR0FBR3hDLFFBQVFtQyxXQUFXLENBQUNLLElBQUk7UUFDN0M7UUFDQSxJQUFJSix3QkFBd0JyRCxJQUFJLEVBQUU7WUFDaENvRCxZQUFZcEQsSUFBSSxHQUFHZ0IsSUFBSUssWUFBWSxDQUFDckIsSUFBSSxDQUFDZ0IsS0FBS0MsUUFBUW1DLFdBQVcsQ0FBQ3BELElBQUk7UUFDeEU7UUFFQXlCLFFBQVEyQixXQUFXLEdBQUdBO0lBQ3hCO0lBQ0EsSUFBSXhCLE1BQU0yQixNQUFNLElBQUlwQyxXQUFXSSxVQUFVTixRQUFRc0MsTUFBTSxFQUNyRCxpQ0FBaUM7SUFDakM5QixRQUFROEIsTUFBTSxHQUFHdkMsSUFBSUssWUFBWSxDQUFDa0MsTUFBTSxDQUFDdkMsS0FBS0MsUUFBUXNDLE1BQU0sRUFBRTtRQUFFcEM7UUFBU0k7SUFBTztJQUNsRixJQUFJTixRQUFReUMsZ0JBQWdCLEVBQUVqQyxRQUFRdkIsZUFBZSxHQUFHO0lBQ3hELElBQUkwQixNQUFNK0IsbUJBQW1CLElBQUkxQyxRQUFRMkMsZ0JBQWdCLEVBQUV6QixRQUFRO1FBQ2pFVixRQUFRa0MsbUJBQW1CLEdBQUc7WUFDNUIsaUNBQWlDO2VBQzlCLEFBQUMxQyxDQUFBQSxRQUFRMkMsZ0JBQWdCLElBQUksRUFBRSxBQUFELEVBQUc3RCxHQUFHLENBQUMsQ0FBQzhELElBQU03QyxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ3VDLEVBQUU1RCxFQUFFO1lBQzlFLHNFQUFzRTtlQUNuRSxBQUFDZ0IsQ0FBQUEsUUFBUXlCLE9BQU8sRUFBRW9CLE1BQU14RiwwQkFBMEIsRUFBRSxBQUFELEVBQUd5QixHQUFHLENBQUMsQ0FBQ2dFLE9BQzVELCtCQUErQjtnQkFDL0IvQyxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ3lDLEtBQUtDLFNBQVMsQ0FBQyxHQUFHRCxLQUFLNUIsTUFBTSxHQUFHO1NBRTlEO0lBQ0g7SUFDQSxJQUFJUCxNQUFNcUMsZ0JBQWdCLElBQUloRCxRQUFRaUQsYUFBYSxFQUFFL0IsUUFDbkRWLFFBQVF3QyxnQkFBZ0IsR0FBR2hELFFBQVFpRCxhQUFhLENBQUNuRSxHQUFHLENBQUMsQ0FBQ0UsS0FBT2UsSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUNyQjtJQUMxRixJQUFJMkIsTUFBTTlCLFFBQVEsSUFBSW1CLFFBQVFuQixRQUFRLEVBQUVxQyxRQUFRVixRQUFRM0IsUUFBUSxHQUFHbUIsUUFBUW5CLFFBQVEsQ0FBQ0MsR0FBRyxDQUFDLENBQUNDLE9BQVNnQixJQUFJSyxZQUFZLENBQUNyQixJQUFJLENBQUNnQixLQUFLaEI7SUFDN0gsSUFBSTRCLE1BQU11QyxnQkFBZ0IsSUFBSWxELFFBQVFtRCxpQkFBaUIsRUFBRTtRQUN2RCxNQUFNQyxZQUFZLENBQUM7UUFDbkIsTUFBTUMsd0JBQXdCdEQsSUFBSUssWUFBWSxDQUFDUSxpQkFBaUIsQ0FBQ3NDLGdCQUFnQjtRQUVqRixJQUFJRyxzQkFBc0JqQyxTQUFTLElBQUlwQixRQUFRbUQsaUJBQWlCLENBQUM5QixVQUFVLEVBQUU7WUFDM0UrQixVQUFVaEMsU0FBUyxHQUFHckIsSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFtRCxpQkFBaUIsQ0FBQzlCLFVBQVU7UUFDdkY7UUFDQSxJQUFJZ0Msc0JBQXNCbkQsT0FBTyxJQUFJRixRQUFRbUQsaUJBQWlCLENBQUNoRCxRQUFRLEVBQUU7WUFDdkVpRCxVQUFVbEQsT0FBTyxHQUFHSCxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUW1ELGlCQUFpQixDQUFDaEQsUUFBUTtRQUNuRjtRQUNBLElBQUlrRCxzQkFBc0JDLFNBQVMsSUFBSXRELFFBQVFtRCxpQkFBaUIsQ0FBQ0ksVUFBVSxFQUFFO1lBQzNFSCxVQUFVRSxTQUFTLEdBQUd2RCxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUW1ELGlCQUFpQixDQUFDSSxVQUFVO1FBQ3ZGO1FBRUEvQyxRQUFRMEMsZ0JBQWdCLEdBQUdFO0lBQzdCO0lBQ0EsSUFBSXpDLE1BQU02QyxpQkFBaUIsSUFBSXhELFFBQVF5RCxrQkFBa0IsRUFDdkRqRCxRQUFRZ0QsaUJBQWlCLEdBQUd6RCxJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBS0MsUUFBUXlELGtCQUFrQixFQUFFO1FBQUUzQyxTQUFTYixPQUFPYTtJQUFRO0lBQ2xILElBQUlILE1BQU0rQyxnQkFBZ0IsSUFBSTFELFFBQVEyRCxpQkFBaUIsRUFDckRuRCxRQUFRa0QsZ0JBQWdCLEdBQUcxRCxRQUFRMkQsaUJBQWlCLENBQUM3RSxHQUFHLENBQUMsQ0FBQzhFLE9BQVM3RCxJQUFJSyxZQUFZLENBQUN5RCxlQUFlLENBQUM5RCxLQUFLNkQsTUFBTTtZQUFFOUMsU0FBU2IsT0FBT2E7UUFBUTtJQUMzSSxJQUFJSCxNQUFNbUQsS0FBSyxJQUFJOUQsUUFBUThELEtBQUssRUFBRXRELFFBQVFzRCxLQUFLLEdBQUc5RCxRQUFROEQsS0FBSztJQUMvRCxJQUFJOUQsUUFBUWIsTUFBTSxFQUFFcUIsUUFBUXJCLE1BQU0sR0FBRztJQUNyQyxJQUFJd0IsTUFBTW9ELFNBQVMsSUFBSS9ELFFBQVErRCxTQUFTLEVBQUU3QyxRQUFRO1FBQ2hEVixRQUFRdUQsU0FBUyxHQUFHL0QsUUFBUStELFNBQVMsQ0FBQ2pGLEdBQUcsQ0FBQyxDQUFDa0YsV0FBYyxDQUFBO2dCQUN2REMsSUFBSUQsU0FBU0MsRUFBRTtnQkFDZkMsU0FBU0YsU0FBU0csUUFBUTtnQkFDMUJDLE9BQU9KLFNBQVNJLEtBQUs7Z0JBQ3JCQyxjQUFjO29CQUNaQyxPQUFPTixTQUFTTyxhQUFhLENBQUNELEtBQUs7b0JBQ25DRSxRQUFRUixTQUFTTyxhQUFhLENBQUNDLE1BQU07Z0JBQ3ZDO2dCQUNBLDRDQUE0QztnQkFDNUNDLE9BQU8xRSxJQUFJSyxZQUFZLENBQUNxRSxLQUFLLENBQUMxRSxLQUFLaUUsU0FBU1MsS0FBSztnQkFDakRDLGFBQWFWLFNBQVNXLFlBQVk7WUFDcEMsQ0FBQTtJQUNGO0lBQ0EsSUFBSWhFLE1BQU1pRSxZQUFZLElBQUk1RSxRQUFRNkUsYUFBYSxFQUFFM0QsUUFDL0NWLFFBQVFvRSxZQUFZLEdBQUc1RSxRQUFRNkUsYUFBYSxDQUFDL0YsR0FBRyxDQUFDLENBQUNnRyxPQUFVLENBQUE7WUFDMUQ5RixJQUFJZSxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ3lFLEtBQUs5RixFQUFFO1lBQ3RDdUQsTUFBTXVDLEtBQUt2QyxJQUFJO1lBQ2Z3QyxZQUFZRCxLQUFLRSxXQUFXO1FBQzlCLENBQUE7SUFDRixJQUFJaEYsUUFBUUwsR0FBRyxFQUFFYSxRQUFRYixHQUFHLEdBQUc7SUFDL0IsSUFBSWdCLE1BQU1zRSxNQUFNLElBQUlqRixRQUFRaUYsTUFBTSxFQUFFekUsUUFBUXlFLE1BQU0sR0FBR2xGLElBQUlLLFlBQVksQ0FBQzhFLE9BQU8sQ0FBQ25GLEtBQUtDLFFBQVFpRixNQUFNLEVBQUU7UUFBRS9FO0lBQVE7SUFDN0csSUFBSVMsTUFBTTZCLElBQUksRUFBRWhDLFFBQVFnQyxJQUFJLEdBQUd4QyxRQUFRd0MsSUFBSTtJQUMzQyxJQUFJN0IsTUFBTXdFLFNBQVMsSUFBSW5GLFFBQVFvRixVQUFVLEVBQUU1RSxRQUFRMkUsU0FBUyxHQUFHcEYsSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUNMLFFBQVFvRixVQUFVO0lBQzVHLElBQUl6RSxNQUFNMEUsSUFBSSxJQUFJckYsUUFBUXFGLElBQUksRUFBRTdFLFFBQVE2RSxJQUFJLEdBQUd0RixJQUFJSyxZQUFZLENBQUNpRixJQUFJLENBQUN0RixLQUFLQyxRQUFRcUYsSUFBSTtJQUN0RixJQUFJMUUsTUFBTTJFLElBQUksSUFBSXRGLFFBQVFzRixJQUFJLEVBQUU5RSxRQUFROEUsSUFBSSxHQUFHdkYsSUFBSUssWUFBWSxDQUFDbUYsV0FBVyxDQUFDeEYsS0FBS0MsUUFBUXNGLElBQUk7SUFFN0YsT0FBT3ZGLElBQUlLLFlBQVksQ0FBQ29GLFdBQVcsQ0FBQ2hGLE9BQU8sQ0FBQ1QsS0FBS0MsU0FBU1EsU0FBU1A7QUFDckU7QUFFQSxPQUFPLFNBQVN3RixvQkFBb0IxRixHQUFRLEVBQUVDLE9BQTBCLEVBQUVDLEtBQTRCO0lBQ3BHLE1BQU1VLFFBQVFaLElBQUlLLFlBQVksQ0FBQ1EsaUJBQWlCLENBQUM4RSxVQUFVO0lBQzNELE1BQU1BLGFBQWEsQ0FBQztJQUVwQixJQUFJL0UsTUFBTWdGLFFBQVEsSUFBSTNGLFFBQVE0RixTQUFTLEVBQUVGLFdBQVdDLFFBQVEsR0FBRy9ELEtBQUtDLEtBQUssQ0FBQzdCLFFBQVE0RixTQUFTO0lBQzNGLElBQUlqRixNQUFNSCxPQUFPLElBQUlSLFFBQVFRLE9BQU8sRUFBRWtGLFdBQVdsRixPQUFPLEdBQUdULElBQUlLLFlBQVksQ0FBQ0ksT0FBTyxDQUFDVCxLQUFLQyxRQUFRUSxPQUFPLEVBQUU7UUFBRU0sU0FBU2IsT0FBT2E7SUFBUTtJQUVwSSxPQUFPZixJQUFJSyxZQUFZLENBQUNvRixXQUFXLENBQUNFLFVBQVUsQ0FBQzNGLEtBQUtDLFNBQVMwRixZQUFZekY7QUFDM0U7QUFFQSxPQUFPLFNBQVM0Rix5QkFBeUI5RixHQUFRLEVBQUVDLE9BQStCLEVBQUVDLEtBQTRCO0lBQzlHLE1BQU1VLFFBQVFaLElBQUlLLFlBQVksQ0FBQ1EsaUJBQWlCLENBQUNpRCxlQUFlO0lBQ2hFLE1BQU1BLGtCQUFrQixDQUFDO0lBRXpCLElBQUlsRCxNQUFNSCxPQUFPLElBQUlSLFFBQVFRLE9BQU8sRUFDbEMsa0NBQWtDO0lBQ2xDcUQsZ0JBQWdCckQsT0FBTyxHQUFHVCxJQUFJSyxZQUFZLENBQUNJLE9BQU8sQ0FBQ1QsS0FBS0MsUUFBUVEsT0FBTyxFQUFFO1FBQUVNLFNBQVNiLE9BQU9hO0lBQVE7SUFFckcsT0FBT2YsSUFBSUssWUFBWSxDQUFDb0YsV0FBVyxDQUFDM0IsZUFBZSxDQUFDOUQsS0FBS0MsU0FBUzZELGlCQUFpQjVEO0FBQ3JGO0FBRUEsT0FBTyxTQUFTNkYsb0NBQW9DL0YsR0FBUSxFQUFFQyxPQUEwQztJQUN0RyxNQUFNVyxRQUFRWixJQUFJSyxZQUFZLENBQUNRLGlCQUFpQixDQUFDc0IsMEJBQTBCO0lBQzNFLE1BQU02RCxXQUFXLENBQUM7SUFFbEIsSUFBSXBGLE1BQU0zQixFQUFFLEVBQUUrRyxTQUFTL0csRUFBRSxHQUFHZSxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUWhCLEVBQUU7SUFDakUsSUFBSTJCLE1BQU1xRiw0QkFBNEIsRUFBRTtRQUN0Q0QsU0FBU0MsNEJBQTRCLEdBQUcsQ0FBQztRQUN6QyxJQUFJaEcsUUFBUWlHLDhCQUE4QixDQUFDLElBQUksRUFDN0NGLFNBQVNDLDRCQUE0QixDQUFDN0ksa0NBQWtDK0ksWUFBWSxDQUFDLEdBQUduRyxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FDaEhMLFFBQVFpRyw4QkFBOEIsQ0FBQyxJQUFJO1FBRS9DLElBQUlqRyxRQUFRaUcsOEJBQThCLENBQUMsSUFBSSxFQUM3Q0YsU0FBU0MsNEJBQTRCLENBQUM3SSxrQ0FBa0NnSixXQUFXLENBQUMsR0FBR3BHLElBQUlLLFlBQVksQ0FBQ0MsU0FBUyxDQUMvR0wsUUFBUWlHLDhCQUE4QixDQUFDLElBQUk7SUFFakQ7SUFDQSxJQUFJdEYsTUFBTXlGLHlCQUF5QixJQUFJcEcsUUFBUXFHLDRCQUE0QixFQUN6RU4sU0FBU0sseUJBQXlCLEdBQUdyRyxJQUFJSyxZQUFZLENBQUNDLFNBQVMsQ0FBQ0wsUUFBUXFHLDRCQUE0QjtJQUN0RyxJQUFJMUYsTUFBTTZCLElBQUksRUFBRXVELFNBQVN2RCxJQUFJLEdBQUd4QyxRQUFRd0MsSUFBSTtJQUM1QyxJQUFJN0IsTUFBTTVCLElBQUksSUFBSWlCLFFBQVFqQixJQUFJLEVBQUVnSCxTQUFTaEgsSUFBSSxHQUFHZ0IsSUFBSUssWUFBWSxDQUFDckIsSUFBSSxDQUFDZ0IsS0FBS0MsUUFBUWpCLElBQUk7SUFDdkYsK0JBQStCO0lBQy9CLElBQUksaUJBQWlCaUIsU0FBUztRQUM1QixJQUFJVyxNQUFNMkYsVUFBVSxJQUFJdEcsUUFBUXVHLFdBQVcsRUFBRVIsU0FBU08sVUFBVSxHQUFHdkcsSUFBSUssWUFBWSxDQUFDckIsSUFBSSxDQUFDZ0IsS0FBS0MsUUFBUXVHLFdBQVc7UUFDakgsSUFBSTVGLE1BQU02RixlQUFlLElBQUl4RyxRQUFReUcsaUJBQWlCLEVBQUVWLFNBQVNTLGVBQWUsR0FBR3pHLElBQUlLLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFReUcsaUJBQWlCO0lBQ3pJO0lBQ0EsNkJBQTZCO0lBQzdCLElBQUksMkJBQTJCekcsU0FBUztRQUN0QyxJQUFJVyxNQUFNK0YsbUJBQW1CLElBQUkxRyxRQUFRMkcscUJBQXFCLEVBQzVEWixTQUFTVyxtQkFBbUIsR0FBRzNHLElBQUlLLFlBQVksQ0FBQ0MsU0FBUyxDQUFDTCxRQUFRMkcscUJBQXFCO0lBQzNGO0lBQ0Esd0JBQXdCO0lBQ3hCLElBQUkscUNBQXFDM0csU0FBUztRQUNoRCxJQUFJVyxNQUFNaUcsNkJBQTZCLElBQUk1RyxRQUFRNkcsK0JBQStCLEVBQ2hGZCxTQUFTYSw2QkFBNkIsR0FBRzdHLElBQUlLLFlBQVksQ0FBQzhCLDBCQUEwQixDQUFDbkMsS0FBS0MsUUFBUTZHLCtCQUErQjtJQUNySTtJQUVBLE9BQU85RyxJQUFJSyxZQUFZLENBQUNvRixXQUFXLENBQUN0RCwwQkFBMEIsQ0FBQ25DLEtBQUtDLFNBQVMrRjtBQUMvRTtBQUVBLE9BQU8sU0FBU2UscUJBQXFCL0csR0FBUSxFQUFFQyxPQUEyQjtJQUN4RSxNQUFNc0YsT0FBTyxDQUFDO0lBQ2QsTUFBTTNFLFFBQVFaLElBQUlLLFlBQVksQ0FBQ1EsaUJBQWlCLENBQUMyRSxXQUFXO0lBRTVELElBQUk1RSxNQUFNb0csWUFBWSxJQUFJL0csUUFBUStHLFlBQVksRUFBRXpCLEtBQUt5QixZQUFZLEdBQUcvRyxRQUFRK0csWUFBWSxDQUFDakksR0FBRyxDQUFDLENBQUNrSSxJQUFNakgsSUFBSUssWUFBWSxDQUFDQyxTQUFTLENBQUMyRztJQUMvSCxJQUFJckcsTUFBTXNHLGNBQWMsSUFBSWpILFFBQVFrSCxlQUFlLEVBQUU1QixLQUFLMkIsY0FBYyxHQUFHckYsS0FBS0MsS0FBSyxDQUFDN0IsUUFBUWtILGVBQWU7SUFFN0csT0FBT25ILElBQUlLLFlBQVksQ0FBQ29GLFdBQVcsQ0FBQ0QsV0FBVyxDQUFDeEYsS0FBS0MsU0FBU3NGO0FBQ2hFIn0=
|
|
@@ -11,7 +11,7 @@ export function transformGuildOnboarding(bot, payload) {
|
|
|
11
11
|
export function transformGuildOnboardingPrompt(bot, payload) {
|
|
12
12
|
const props = bot.transformers.desiredProperties.guildOnboardingPrompt;
|
|
13
13
|
const prompt = {};
|
|
14
|
-
if (props.id && payload.id) prompt.id = bot.transformers.snowflake(
|
|
14
|
+
if (props.id && payload.id) prompt.id = bot.transformers.snowflake(payload.id);
|
|
15
15
|
if (props.inOnboarding && payload.in_onboarding) prompt.inOnboarding = payload.in_onboarding;
|
|
16
16
|
if (props.required && payload.required) prompt.required = payload.required;
|
|
17
17
|
if (props.singleSelect && payload.single_select) prompt.singleSelect = payload.single_select;
|
|
@@ -32,4 +32,4 @@ export function transformGuildOnboardingPromptOption(bot, payload) {
|
|
|
32
32
|
return bot.transformers.customizers.guildOnboardingPromptOption(bot, payload, option);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvb25ib2FyZGluZy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRHdWlsZE9uYm9hcmRpbmcsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQsIERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24gfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHtcbiAgQm90LFxuICBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLFxuICBHdWlsZE9uYm9hcmRpbmcsXG4gIEd1aWxkT25ib2FyZGluZ1Byb21wdCxcbiAgR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uLFxuICBTZXR1cERlc2lyZWRQcm9wcyxcbiAgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsXG59IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nKTogR3VpbGRPbmJvYXJkaW5nIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1xuICBjb25zdCBndWlsZE9uYm9hcmRpbmcgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmcsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5ndWlsZElkICYmIHBheWxvYWQuZ3VpbGRfaWQpIGd1aWxkT25ib2FyZGluZy5ndWlsZElkID0gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZClcbiAgaWYgKHByb3BzLmRlZmF1bHRDaGFubmVsSWRzICYmIHBheWxvYWQuZGVmYXVsdF9jaGFubmVsX2lkcylcbiAgICBndWlsZE9uYm9hcmRpbmcuZGVmYXVsdENoYW5uZWxJZHMgPSBwYXlsb2FkLmRlZmF1bHRfY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW5hYmxlZCkgZ3VpbGRPbmJvYXJkaW5nLmVuYWJsZWQgPSBwYXlsb2FkLmVuYWJsZWRcbiAgaWYgKHByb3BzLm1vZGUpIGd1aWxkT25ib2FyZGluZy5tb2RlID0gcGF5bG9hZC5tb2RlXG4gIGlmIChwcm9wcy5wcm9tcHRzICYmIHBheWxvYWQucHJvbXB0cykgZ3VpbGRPbmJvYXJkaW5nLnByb21wdHMgPSBwYXlsb2FkLnByb21wdHMubWFwKChwcm9tcHQpID0+IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcHJvbXB0KSlcblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5ndWlsZE9uYm9hcmRpbmcoYm90LCBwYXlsb2FkLCBndWlsZE9uYm9hcmRpbmcpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHQoYm90OiBCb3QsIHBheWxvYWQ6IERpc2NvcmRHdWlsZE9uYm9hcmRpbmdQcm9tcHQpOiBHdWlsZE9uYm9hcmRpbmdQcm9tcHQge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0XG4gIGNvbnN0IHByb21wdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPEd1aWxkT25ib2FyZGluZ1Byb21wdCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+XG5cbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHByb21wdC5pZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaWQpXG4gIGlmIChwcm9wcy5pbk9uYm9hcmRpbmcgJiYgcGF5bG9hZC5pbl9vbmJvYXJkaW5nKSBwcm9tcHQuaW5PbmJvYXJkaW5nID0gcGF5bG9hZC5pbl9vbmJvYXJkaW5nXG4gIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkKSBwcm9tcHQucmVxdWlyZWQgPSBwYXlsb2FkLnJlcXVpcmVkXG4gIGlmIChwcm9wcy5zaW5nbGVTZWxlY3QgJiYgcGF5bG9hZC5zaW5nbGVfc2VsZWN0KSBwcm9tcHQuc2luZ2xlU2VsZWN0ID0gcGF5bG9hZC5zaW5nbGVfc2VsZWN0XG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBwcm9tcHQudGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy50eXBlKSBwcm9tcHQudHlwZSA9IHBheWxvYWQudHlwZVxuICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpIHByb21wdC5vcHRpb25zID0gcGF5bG9hZC5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBib3QudHJhbnNmb3JtZXJzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvbihib3QsIG9wdGlvbikpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0KGJvdCwgcGF5bG9hZCwgcHJvbXB0KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBEaXNjb3JkR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKTogR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmd1aWxkT25ib2FyZGluZ1Byb21wdE9wdGlvblxuICBjb25zdCBvcHRpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxHdWlsZE9uYm9hcmRpbmdQcm9tcHRPcHRpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBvcHRpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKVxuICBpZiAocHJvcHMuY2hhbm5lbElkcyAmJiBwYXlsb2FkLmNoYW5uZWxfaWRzKSBvcHRpb24uY2hhbm5lbElkcyA9IHBheWxvYWQuY2hhbm5lbF9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMucm9sZUlkcyAmJiBwYXlsb2FkLnJvbGVfaWRzKSBvcHRpb24ucm9sZUlkcyA9IHBheWxvYWQucm9sZV9pZHMubWFwKGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKVxuICBpZiAocHJvcHMuZW1vamkgJiYgcGF5bG9hZC5lbW9qaSkgb3B0aW9uLmVtb2ppID0gYm90LnRyYW5zZm9ybWVycy5lbW9qaShib3QsIHBheWxvYWQuZW1vamkpXG4gIGlmIChwcm9wcy50aXRsZSAmJiBwYXlsb2FkLnRpdGxlKSBvcHRpb24udGl0bGUgPSBwYXlsb2FkLnRpdGxlXG4gIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBvcHRpb24uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMuZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uKGJvdCwgcGF5bG9hZCwgb3B0aW9uKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybUd1aWxkT25ib2FyZGluZyIsImJvdCIsInBheWxvYWQiLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwiZ3VpbGRPbmJvYXJkaW5nIiwiZ3VpbGRJZCIsImd1aWxkX2lkIiwic25vd2ZsYWtlIiwiZGVmYXVsdENoYW5uZWxJZHMiLCJkZWZhdWx0X2NoYW5uZWxfaWRzIiwibWFwIiwiZW5hYmxlZCIsIm1vZGUiLCJwcm9tcHRzIiwicHJvbXB0IiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0IiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1HdWlsZE9uYm9hcmRpbmdQcm9tcHQiLCJpZCIsImluT25ib2FyZGluZyIsImluX29uYm9hcmRpbmciLCJyZXF1aXJlZCIsInNpbmdsZVNlbGVjdCIsInNpbmdsZV9zZWxlY3QiLCJ0aXRsZSIsInR5cGUiLCJvcHRpb25zIiwib3B0aW9uIiwiZ3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwidHJhbnNmb3JtR3VpbGRPbmJvYXJkaW5nUHJvbXB0T3B0aW9uIiwiY2hhbm5lbElkcyIsImNoYW5uZWxfaWRzIiwicm9sZUlkcyIsInJvbGVfaWRzIiwiZW1vamkiLCJkZXNjcmlwdGlvbiJdLCJtYXBwaW5ncyI6IkFBV0EsT0FBTyxTQUFTQSx5QkFBeUJDLEdBQVEsRUFBRUMsT0FBK0I7SUFDaEYsTUFBTUMsUUFBUUYsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ0MsZUFBZTtJQUNoRSxNQUFNQSxrQkFBa0IsQ0FBQztJQUV6QixJQUFJSCxNQUFNSSxPQUFPLElBQUlMLFFBQVFNLFFBQVEsRUFBRUYsZ0JBQWdCQyxPQUFPLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ssU0FBUyxDQUFDUCxRQUFRTSxRQUFRO0lBQzVHLElBQUlMLE1BQU1PLGlCQUFpQixJQUFJUixRQUFRUyxtQkFBbUIsRUFDeERMLGdCQUFnQkksaUJBQWlCLEdBQUdSLFFBQVFTLG1CQUFtQixDQUFDQyxHQUFHLENBQUNYLElBQUlHLFlBQVksQ0FBQ0ssU0FBUztJQUNoRyxJQUFJTixNQUFNVSxPQUFPLEVBQUVQLGdCQUFnQk8sT0FBTyxHQUFHWCxRQUFRVyxPQUFPO0lBQzVELElBQUlWLE1BQU1XLElBQUksRUFBRVIsZ0JBQWdCUSxJQUFJLEdBQUdaLFFBQVFZLElBQUk7SUFDbkQsSUFBSVgsTUFBTVksT0FBTyxJQUFJYixRQUFRYSxPQUFPLEVBQUVULGdCQUFnQlMsT0FBTyxHQUFHYixRQUFR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
|
|
@@ -10,14 +10,15 @@ export function transformPoll(bot, payload) {
|
|
|
10
10
|
if (props.allowMultiselect && payload.allow_multiselect) poll.allowMultiselect = payload.allow_multiselect;
|
|
11
11
|
if (props.layoutType) poll.layoutType = payload.layout_type;
|
|
12
12
|
if (props.results && payload.results) {
|
|
13
|
-
|
|
13
|
+
const results = {};
|
|
14
14
|
const pollResultProps = bot.transformers.desiredProperties.pollResult;
|
|
15
|
-
if (pollResultProps.isFinalized && payload.results.is_finalized)
|
|
16
|
-
if (pollResultProps.answerCounts && payload.results.answer_counts)
|
|
15
|
+
if (pollResultProps.isFinalized && payload.results.is_finalized) results.isFinalized = payload.results.is_finalized;
|
|
16
|
+
if (pollResultProps.answerCounts && payload.results.answer_counts) results.answerCounts = payload.results.answer_counts.map((x)=>({
|
|
17
17
|
id: x.id,
|
|
18
18
|
count: x.count,
|
|
19
19
|
meVoted: x.me_voted
|
|
20
20
|
}));
|
|
21
|
+
poll.results = results;
|
|
21
22
|
}
|
|
22
23
|
return bot.transformers.customizers.poll(bot, payload, poll);
|
|
23
24
|
}
|
|
@@ -29,4 +30,4 @@ export function transformPollMedia(bot, payload) {
|
|
|
29
30
|
return bot.transformers.customizers.pollMedia(bot, payload, pollMedia);
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvcG9sbC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERpc2NvcmRFbW9qaSwgRGlzY29yZFBvbGwsIERpc2NvcmRQb2xsTWVkaWEgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB0eXBlIHsgQm90LCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBQb2xsLCBQb2xsTWVkaWEsIFBvbGxSZXN1bHQsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2luZGV4LmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNmb3JtUG9sbChib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGwpOiBQb2xsIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxcbiAgY29uc3QgcG9sbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPFBvbGwsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPlxuXG4gIGlmIChwcm9wcy5xdWVzdGlvbiAmJiBwYXlsb2FkLnF1ZXN0aW9uKSBwb2xsLnF1ZXN0aW9uID0gYm90LnRyYW5zZm9ybWVycy5wb2xsTWVkaWEoYm90LCBwYXlsb2FkLnF1ZXN0aW9uKVxuICBpZiAocHJvcHMuYW5zd2VycyAmJiBwYXlsb2FkLmFuc3dlcnMpXG4gICAgcG9sbC5hbnN3ZXJzID0gcGF5bG9hZC5hbnN3ZXJzLm1hcCgoeCkgPT4gKHsgYW5zd2VySWQ6IHguYW5zd2VyX2lkLCBwb2xsTWVkaWE6IGJvdC50cmFuc2Zvcm1lcnMucG9sbE1lZGlhKGJvdCwgeC5wb2xsX21lZGlhKSB9KSlcbiAgaWYgKHByb3BzLmV4cGlyeSAmJiBwYXlsb2FkLmV4cGlyeSkgcG9sbC5leHBpcnkgPSBEYXRlLnBhcnNlKHBheWxvYWQuZXhwaXJ5KVxuICBpZiAocHJvcHMuYWxsb3dNdWx0aXNlbGVjdCAmJiBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0KSBwb2xsLmFsbG93TXVsdGlzZWxlY3QgPSBwYXlsb2FkLmFsbG93X211bHRpc2VsZWN0XG4gIGlmIChwcm9wcy5sYXlvdXRUeXBlKSBwb2xsLmxheW91dFR5cGUgPSBwYXlsb2FkLmxheW91dF90eXBlXG4gIGlmIChwcm9wcy5yZXN1bHRzICYmIHBheWxvYWQucmVzdWx0cykge1xuICAgIGNvbnN0IHJlc3VsdHMgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxQb2xsUmVzdWx0LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cbiAgICBjb25zdCBwb2xsUmVzdWx0UHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLnBvbGxSZXN1bHRcblxuICAgIGlmIChwb2xsUmVzdWx0UHJvcHMuaXNGaW5hbGl6ZWQgJiYgcGF5bG9hZC5yZXN1bHRzLmlzX2ZpbmFsaXplZCkgcmVzdWx0cy5pc0ZpbmFsaXplZCA9IHBheWxvYWQucmVzdWx0cy5pc19maW5hbGl6ZWRcbiAgICBpZiAocG9sbFJlc3VsdFByb3BzLmFuc3dlckNvdW50cyAmJiBwYXlsb2FkLnJlc3VsdHMuYW5zd2VyX2NvdW50cylcbiAgICAgIHJlc3VsdHMuYW5zd2VyQ291bnRzID0gcGF5bG9hZC5yZXN1bHRzLmFuc3dlcl9jb3VudHMubWFwKCh4KSA9PiAoeyBpZDogeC5pZCwgY291bnQ6IHguY291bnQsIG1lVm90ZWQ6IHgubWVfdm90ZWQgfSkpXG5cbiAgICBwb2xsLnJlc3VsdHMgPSByZXN1bHRzXG4gIH1cblxuICByZXR1cm4gYm90LnRyYW5zZm9ybWVycy5jdXN0b21pemVycy5wb2xsKGJvdCwgcGF5bG9hZCwgcG9sbClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVBvbGxNZWRpYShib3Q6IEJvdCwgcGF5bG9hZDogRGlzY29yZFBvbGxNZWRpYSk6IFBvbGxNZWRpYSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5wb2xsTWVkaWFcbiAgY29uc3QgcG9sbE1lZGlhID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8UG9sbE1lZGlhLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj5cblxuICBpZiAocHJvcHMudGV4dCAmJiBwYXlsb2FkLnRleHQpIHBvbGxNZWRpYS50ZXh0ID0gcGF5bG9hZC50ZXh0XG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBwb2xsTWVkaWEuZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSBhcyBEaXNjb3JkRW1vamkpXG5cbiAgcmV0dXJuIGJvdC50cmFuc2Zvcm1lcnMuY3VzdG9taXplcnMucG9sbE1lZGlhKGJvdCwgcGF5bG9hZCwgcG9sbE1lZGlhKVxufVxuIl0sIm5hbWVzIjpbInRyYW5zZm9ybVBvbGwiLCJib3QiLCJwYXlsb2FkIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInBvbGwiLCJxdWVzdGlvbiIsInBvbGxNZWRpYSIsImFuc3dlcnMiLCJtYXAiLCJ4IiwiYW5zd2VySWQiLCJhbnN3ZXJfaWQiLCJwb2xsX21lZGlhIiwiZXhwaXJ5IiwiRGF0ZSIsInBhcnNlIiwiYWxsb3dNdWx0aXNlbGVjdCIsImFsbG93X211bHRpc2VsZWN0IiwibGF5b3V0VHlwZSIsImxheW91dF90eXBlIiwicmVzdWx0cyIsInBvbGxSZXN1bHRQcm9wcyIsInBvbGxSZXN1bHQiLCJpc0ZpbmFsaXplZCIsImlzX2ZpbmFsaXplZCIsImFuc3dlckNvdW50cyIsImFuc3dlcl9jb3VudHMiLCJpZCIsImNvdW50IiwibWVWb3RlZCIsIm1lX3ZvdGVkIiwiY3VzdG9taXplcnMiLCJ0cmFuc2Zvcm1Qb2xsTWVkaWEiLCJ0ZXh0IiwiZW1vamkiXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sU0FBU0EsY0FBY0MsR0FBUSxFQUFFQyxPQUFvQjtJQUMxRCxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDQyxJQUFJO0lBQ3JELE1BQU1BLE9BQU8sQ0FBQztJQUVkLElBQUlILE1BQU1JLFFBQVEsSUFBSUwsUUFBUUssUUFBUSxFQUFFRCxLQUFLQyxRQUFRLEdBQUdOLElBQUlHLFlBQVksQ0FBQ0ksU0FBUyxDQUFDUCxLQUFLQyxRQUFRSyxRQUFRO0lBQ3hHLElBQUlKLE1BQU1NLE9BQU8sSUFBSVAsUUFBUU8sT0FBTyxFQUNsQ0gsS0FBS0csT0FBTyxHQUFHUCxRQUFRTyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUFDQyxJQUFPLENBQUE7WUFBRUMsVUFBVUQsRUFBRUUsU0FBUztZQUFFTCxXQUFXUCxJQUFJRyxZQUFZLENBQUNJLFNBQVMsQ0FBQ1AsS0FBS1UsRUFBRUcsVUFBVTtRQUFFLENBQUE7SUFDL0gsSUFBSVgsTUFBTVksTUFBTSxJQUFJYixRQUFRYSxNQUFNLEVBQUVULEtBQUtTLE1BQU0sR0FBR0MsS0FBS0MsS0FBSyxDQUFDZixRQUFRYSxNQUFNO0lBQzNFLElBQUlaLE1BQU1lLGdCQUFnQixJQUFJaEIsUUFBUWlCLGlCQUFpQixFQUFFYixLQUFLWSxnQkFBZ0IsR0FBR2hCLFFBQVFpQixpQkFBaUI7SUFDMUcsSUFBSWhCLE1BQU1pQixVQUFVLEVBQUVkLEtBQUtjLFVBQVUsR0FBR2xCLFFBQVFtQixXQUFXO0lBQzNELElBQUlsQixNQUFNbUIsT0FBTyxJQUFJcEIsUUFBUW9CLE9BQU8sRUFBRTtRQUNwQyxNQUFNQSxVQUFVLENBQUM7UUFDakIsTUFBTUMsa0JBQWtCdEIsSUFBSUcsWUFBWSxDQUFDQyxpQkFBaUIsQ0FBQ21CLFVBQVU7UUFFckUsSUFBSUQsZ0JBQWdCRSxXQUFXLElBQUl2QixRQUFRb0IsT0FBTyxDQUFDSSxZQUFZLEVBQUVKLFFBQVFHLFdBQVcsR0FBR3ZCLFFBQVFvQixPQUFPLENBQUNJLFlBQVk7UUFDbkgsSUFBSUgsZ0JBQWdCSSxZQUFZLElBQUl6QixRQUFRb0IsT0FBTyxDQUFDTSxhQUFhLEVBQy9ETixRQUFRSyxZQUFZLEdBQUd6QixRQUFRb0IsT0FBTyxDQUFDTSxhQUFhLENBQUNsQixHQUFHLENBQUMsQ0FBQ0MsSUFBTyxDQUFBO2dCQUFFa0IsSUFBSWxCLEVBQUVrQixFQUFFO2dCQUFFQyxPQUFPbkIsRUFBRW1CLEtBQUs7Z0JBQUVDLFNBQVNwQixFQUFFcUIsUUFBUTtZQUFDLENBQUE7UUFFbkgxQixLQUFLZ0IsT0FBTyxHQUFHQTtJQUNqQjtJQUVBLE9BQU9yQixJQUFJRyxZQUFZLENBQUM2QixXQUFXLENBQUMzQixJQUFJLENBQUNMLEtBQUtDLFNBQVNJO0FBQ3pEO0FBRUEsT0FBTyxTQUFTNEIsbUJBQW1CakMsR0FBUSxFQUFFQyxPQUF5QjtJQUNwRSxNQUFNQyxRQUFRRixJQUFJRyxZQUFZLENBQUNDLGlCQUFpQixDQUFDRyxTQUFTO0lBQzFELE1BQU1BLFlBQVksQ0FBQztJQUVuQixJQUFJTCxNQUFNZ0MsSUFBSSxJQUFJakMsUUFBUWlDLElBQUksRUFBRTNCLFVBQVUyQixJQUFJLEdBQUdqQyxRQUFRaUMsSUFBSTtJQUM3RCxJQUFJaEMsTUFBTWlDLEtBQUssSUFBSWxDLFFBQVFrQyxLQUFLLEVBQUU1QixVQUFVNEIsS0FBSyxHQUFHbkMsSUFBSUcsWUFBWSxDQUFDZ0MsS0FBSyxDQUFDbkMsS0FBS0MsUUFBUWtDLEtBQUs7SUFFN0YsT0FBT25DLElBQUlHLFlBQVksQ0FBQzZCLFdBQVcsQ0FBQ3pCLFNBQVMsQ0FBQ1AsS0FBS0MsU0FBU007QUFDOUQifQ==
|