oceanic.js 1.11.1-dev.f66367a → 1.11.2-dev.b146b3c
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/.node-version +1 -0
- package/dist/lib/Constants.d.ts +83 -10
- package/dist/lib/Constants.js +51 -4
- package/dist/lib/gateway/Dispatcher.d.ts +17 -0
- package/dist/lib/gateway/Dispatcher.js +55 -0
- package/dist/lib/gateway/Shard.d.ts +6 -3
- package/dist/lib/gateway/Shard.js +65 -954
- package/dist/lib/gateway/ShardManager.d.ts +3 -1
- package/dist/lib/gateway/ShardManager.js +46 -27
- package/dist/lib/gateway/events.d.ts +70 -0
- package/dist/lib/gateway/events.js +914 -0
- package/dist/lib/index.d.ts +3 -0
- package/dist/lib/index.js +6 -3
- package/dist/lib/routes/Applications.d.ts +36 -1
- package/dist/lib/routes/Applications.js +71 -1
- package/dist/lib/routes/Guilds.d.ts +3 -3
- package/dist/lib/routes/Guilds.js +7 -7
- package/dist/lib/routes/Interactions.js +11 -2
- package/dist/lib/routes/Webhooks.js +10 -2
- package/dist/lib/structures/Attachment.d.ts +2 -0
- package/dist/lib/structures/Attachment.js +4 -1
- package/dist/lib/structures/ClientApplication.d.ts +29 -1
- package/dist/lib/structures/ClientApplication.js +39 -1
- package/dist/lib/structures/CommandInteraction.d.ts +1 -1
- package/dist/lib/structures/CommandInteraction.js +1 -1
- package/dist/lib/structures/ComponentInteraction.d.ts +1 -1
- package/dist/lib/structures/ComponentInteraction.js +1 -1
- package/dist/lib/structures/Guild.d.ts +3 -3
- package/dist/lib/structures/Guild.js +2 -2
- package/dist/lib/structures/Member.d.ts +8 -0
- package/dist/lib/structures/Member.js +16 -1
- package/dist/lib/structures/Message.d.ts +4 -13
- package/dist/lib/structures/Message.js +37 -1
- package/dist/lib/structures/ModalSubmitInteraction.d.ts +1 -1
- package/dist/lib/structures/ModalSubmitInteraction.js +1 -1
- package/dist/lib/structures/OAuthGuild.d.ts +8 -0
- package/dist/lib/structures/OAuthGuild.js +13 -1
- package/dist/lib/types/applications.d.ts +23 -1
- package/dist/lib/types/channels.d.ts +36 -0
- package/dist/lib/types/events.d.ts +5 -12
- package/dist/lib/types/gateway.d.ts +17 -1
- package/dist/lib/types/guilds.d.ts +5 -12
- package/dist/lib/types/json.d.ts +19 -0
- package/dist/lib/types/misc.d.ts +12 -0
- package/dist/lib/util/Routes.d.ts +2 -0
- package/dist/lib/util/Routes.js +6 -2
- package/dist/lib/util/Util.d.ts +3 -2
- package/dist/lib/util/Util.js +5 -2
- package/dist/package.json +1 -1
- package/esm.mjs +4 -0
- package/package.json +1 -1
@@ -0,0 +1,914 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.PRESENCE_UPDATE = exports.MESSAGE_UPDATE = exports.MESSAGE_REACTION_REMOVE_EMOJI = exports.MESSAGE_REACTION_REMOVE_ALL = exports.MESSAGE_REACTION_REMOVE = exports.MESSAGE_REACTION_ADD = exports.MESSAGE_POLL_VOTE_REMOVE = exports.MESSAGE_POLL_VOTE_ADD = exports.MESSAGE_DELETE_BULK = exports.MESSAGE_DELETE = exports.MESSAGE_CREATE = exports.INVITE_DELETE = exports.INVITE_CREATE = exports.INTERACTION_CREATE = exports.INTEGRATION_UPDATE = exports.INTEGRATION_DELETE = exports.INTEGRATION_CREATE = exports.GUILD_UPDATE = exports.GUILD_STICKERS_UPDATE = exports.GUILD_SCHEDULED_EVENT_USER_REMOVE = exports.GUILD_SCHEDULED_EVENT_USER_ADD = exports.GUILD_SCHEDULED_EVENT_UPDATE = exports.GUILD_SCHEDULED_EVENT_DELETE = exports.GUILD_SCHEDULED_EVENT_CREATE = exports.GUILD_ROLE_UPDATE = exports.GUILD_ROLE_DELETE = exports.GUILD_ROLE_CREATE = exports.GUILD_MEMBER_UPDATE = exports.GUILD_MEMBER_REMOVE = exports.GUILD_MEMBERS_CHUNK = exports.GUILD_MEMBER_ADD = exports.GUILD_INTEGRATIONS_UPDATE = exports.GUILD_EMOJIS_UPDATE = exports.GUILD_DELETE = exports.GUILD_CREATE = exports.GUILD_BAN_REMOVE = exports.GUILD_BAN_ADD = exports.GUILD_AUDIT_LOG_ENTRY_CREATE = exports.ENTITLEMENT_UPDATE = exports.ENTITLEMENT_DELETE = exports.ENTITLEMENT_CREATE = exports.CHANNEL_UPDATE = exports.CHANNEL_PINS_UPDATE = exports.CHANNEL_DELETE = exports.CHANNEL_CREATE = exports.AUTO_MODERATION_RULE_UPDATE = exports.AUTO_MODERATION_RULE_DELETE = exports.AUTO_MODERATION_RULE_CREATE = exports.AUTO_MODERATION_ACTION_EXECUTION = exports.APPLICATION_COMMAND_PERMISSIONS_UPDATE = void 0;
|
4
|
+
exports.WEBHOOKS_UPDATE = exports.VOICE_SERVER_UPDATE = exports.VOICE_CHANNEL_STATUS_UPDATE = exports.VOICE_STATE_UPDATE = exports.VOICE_CHANNEL_EFFECT_SEND = exports.USER_UPDATE = exports.TYPING_START = exports.THREAD_UPDATE = exports.THREAD_MEMBERS_UPDATE = exports.THREAD_MEMBER_UPDATE = exports.THREAD_LIST_SYNC = exports.THREAD_DELETE = exports.THREAD_CREATE = exports.STAGE_INSTANCE_UPDATE = exports.STAGE_INSTANCE_DELETE = exports.STAGE_INSTANCE_CREATE = exports.RESUMED = exports.READY = void 0;
|
5
|
+
const tslib_1 = require("tslib");
|
6
|
+
const Constants_1 = require("../Constants");
|
7
|
+
const Member_1 = tslib_1.__importDefault(require("../structures/Member"));
|
8
|
+
const AutoModerationRule_1 = tslib_1.__importDefault(require("../structures/AutoModerationRule"));
|
9
|
+
const Channel_1 = tslib_1.__importDefault(require("../structures/Channel"));
|
10
|
+
const VoiceChannel_1 = tslib_1.__importDefault(require("../structures/VoiceChannel"));
|
11
|
+
const StageChannel_1 = tslib_1.__importDefault(require("../structures/StageChannel"));
|
12
|
+
const GuildScheduledEvent_1 = tslib_1.__importDefault(require("../structures/GuildScheduledEvent"));
|
13
|
+
const Invite_1 = tslib_1.__importDefault(require("../structures/Invite"));
|
14
|
+
const Message_1 = tslib_1.__importDefault(require("../structures/Message"));
|
15
|
+
const StageInstance_1 = tslib_1.__importDefault(require("../structures/StageInstance"));
|
16
|
+
const Interaction_1 = tslib_1.__importDefault(require("../structures/Interaction"));
|
17
|
+
const Guild_1 = tslib_1.__importDefault(require("../structures/Guild"));
|
18
|
+
const Role_1 = tslib_1.__importDefault(require("../structures/Role"));
|
19
|
+
const Integration_1 = tslib_1.__importDefault(require("../structures/Integration"));
|
20
|
+
const VoiceState_1 = tslib_1.__importDefault(require("../structures/VoiceState"));
|
21
|
+
const AuditLogEntry_1 = tslib_1.__importDefault(require("../structures/AuditLogEntry"));
|
22
|
+
async function APPLICATION_COMMAND_PERMISSIONS_UPDATE(data, shard) {
|
23
|
+
shard.client.emit("applicationCommandPermissionsUpdate", shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id }, {
|
24
|
+
application: data.application_id === shard.client.application.id ? shard.client.application : undefined,
|
25
|
+
applicationID: data.application_id,
|
26
|
+
id: data.id,
|
27
|
+
permissions: data.permissions
|
28
|
+
});
|
29
|
+
}
|
30
|
+
exports.APPLICATION_COMMAND_PERMISSIONS_UPDATE = APPLICATION_COMMAND_PERMISSIONS_UPDATE;
|
31
|
+
async function AUTO_MODERATION_ACTION_EXECUTION(data, shard) {
|
32
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
33
|
+
const channel = shard.client.getChannel(data.channel_id ?? "");
|
34
|
+
shard.client.emit("autoModerationActionExecution", guild ?? { id: data.guild_id }, data.channel_id === undefined ? null : channel ?? { id: data.channel_id }, shard.client.users.get(data.user_id) ?? { id: data.user_id }, {
|
35
|
+
action: {
|
36
|
+
metadata: {
|
37
|
+
channelID: data.action.metadata.channel_id,
|
38
|
+
customMessage: data.action.metadata.custom_message,
|
39
|
+
durationSeconds: data.action.metadata.duration_seconds
|
40
|
+
},
|
41
|
+
type: data.action.type
|
42
|
+
},
|
43
|
+
alertSystemMessageID: data.alert_system_message_id,
|
44
|
+
content: data.content,
|
45
|
+
matchedContent: data.matched_content,
|
46
|
+
matchedKeyword: data.matched_keyword,
|
47
|
+
messageID: data.message_id,
|
48
|
+
rule: guild?.autoModerationRules.get(data.rule_id),
|
49
|
+
ruleID: data.rule_id,
|
50
|
+
ruleTriggerType: data.rule_trigger_type
|
51
|
+
});
|
52
|
+
}
|
53
|
+
exports.AUTO_MODERATION_ACTION_EXECUTION = AUTO_MODERATION_ACTION_EXECUTION;
|
54
|
+
async function AUTO_MODERATION_RULE_CREATE(data, shard) {
|
55
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
56
|
+
const rule = guild?.autoModerationRules.update(data) ?? new AutoModerationRule_1.default(data, shard.client);
|
57
|
+
shard.client.emit("autoModerationRuleCreate", rule);
|
58
|
+
}
|
59
|
+
exports.AUTO_MODERATION_RULE_CREATE = AUTO_MODERATION_RULE_CREATE;
|
60
|
+
async function AUTO_MODERATION_RULE_DELETE(data, shard) {
|
61
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
62
|
+
const rule = guild?.autoModerationRules.update(data) ?? new AutoModerationRule_1.default(data, shard.client);
|
63
|
+
guild?.autoModerationRules.delete(data.id);
|
64
|
+
shard.client.emit("autoModerationRuleDelete", rule);
|
65
|
+
}
|
66
|
+
exports.AUTO_MODERATION_RULE_DELETE = AUTO_MODERATION_RULE_DELETE;
|
67
|
+
async function AUTO_MODERATION_RULE_UPDATE(data, shard) {
|
68
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
69
|
+
const oldRule = guild?.autoModerationRules.get(data.id)?.toJSON() ?? null;
|
70
|
+
const rule = guild?.autoModerationRules.update(data) ?? new AutoModerationRule_1.default(data, shard.client);
|
71
|
+
shard.client.emit("autoModerationRuleUpdate", rule, oldRule);
|
72
|
+
shard.client.emit("autoModerationRuleUpdate", rule, oldRule);
|
73
|
+
}
|
74
|
+
exports.AUTO_MODERATION_RULE_UPDATE = AUTO_MODERATION_RULE_UPDATE;
|
75
|
+
async function CHANNEL_CREATE(data, shard) {
|
76
|
+
const channel = shard.client.util.updateChannel(data);
|
77
|
+
shard.client.emit("channelCreate", channel);
|
78
|
+
}
|
79
|
+
exports.CHANNEL_CREATE = CHANNEL_CREATE;
|
80
|
+
async function CHANNEL_DELETE(data, shard) {
|
81
|
+
if (data.type === Constants_1.ChannelTypes.DM) {
|
82
|
+
const channel = shard.client.privateChannels.get(data.id);
|
83
|
+
shard.client.privateChannels.delete(data.id);
|
84
|
+
shard.client.emit("channelDelete", channel ?? {
|
85
|
+
id: data.id,
|
86
|
+
flags: data.flags,
|
87
|
+
lastMessageID: data.last_message_id,
|
88
|
+
type: data.type
|
89
|
+
});
|
90
|
+
return;
|
91
|
+
}
|
92
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
93
|
+
const channel = shard.client.util.updateChannel(data);
|
94
|
+
if (channel instanceof VoiceChannel_1.default || channel instanceof StageChannel_1.default) {
|
95
|
+
for (const [, member] of channel.voiceMembers) {
|
96
|
+
channel.voiceMembers.delete(member.id);
|
97
|
+
shard.client.emit("voiceChannelLeave", member, channel);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
guild?.channels.delete(data.id);
|
101
|
+
shard.client.emit("channelDelete", channel);
|
102
|
+
}
|
103
|
+
exports.CHANNEL_DELETE = CHANNEL_DELETE;
|
104
|
+
async function CHANNEL_PINS_UPDATE(data, shard) {
|
105
|
+
const channel = shard.client.getChannel(data.channel_id);
|
106
|
+
shard.client.emit("channelPinsUpdate", channel ?? { id: data.channel_id }, data.last_pin_timestamp === undefined || data.last_pin_timestamp === null ? null : new Date(data.last_pin_timestamp));
|
107
|
+
}
|
108
|
+
exports.CHANNEL_PINS_UPDATE = CHANNEL_PINS_UPDATE;
|
109
|
+
async function CHANNEL_UPDATE(data, shard) {
|
110
|
+
const oldChannel = shard.client.getChannel(data.id)?.toJSON() ?? null;
|
111
|
+
let channel;
|
112
|
+
if (oldChannel && oldChannel.type !== data.type) {
|
113
|
+
if (shard.client.channelGuildMap[data.id]) {
|
114
|
+
shard.client.guilds.get(shard.client.channelGuildMap[data.id]).channels.delete(data.id);
|
115
|
+
}
|
116
|
+
channel = shard.client.util.updateChannel(data);
|
117
|
+
}
|
118
|
+
else {
|
119
|
+
channel = shard.client.util.updateChannel(data);
|
120
|
+
}
|
121
|
+
shard.client.emit("channelUpdate", channel, oldChannel);
|
122
|
+
}
|
123
|
+
exports.CHANNEL_UPDATE = CHANNEL_UPDATE;
|
124
|
+
async function ENTITLEMENT_CREATE(data, shard) {
|
125
|
+
const entitlement = shard.client.util.updateEntitlement(data);
|
126
|
+
shard.client.emit("entitlementCreate", entitlement);
|
127
|
+
}
|
128
|
+
exports.ENTITLEMENT_CREATE = ENTITLEMENT_CREATE;
|
129
|
+
async function ENTITLEMENT_DELETE(data, shard) {
|
130
|
+
const entitlement = shard.client.util.updateEntitlement(data);
|
131
|
+
shard.client["_application"]?.entitlements.delete(data.id);
|
132
|
+
shard.client.emit("entitlementDelete", entitlement);
|
133
|
+
}
|
134
|
+
exports.ENTITLEMENT_DELETE = ENTITLEMENT_DELETE;
|
135
|
+
async function ENTITLEMENT_UPDATE(data, shard) {
|
136
|
+
const oldEntitlement = shard.client["_application"]?.entitlements.get(data.id)?.toJSON() ?? null;
|
137
|
+
const entitlement = shard.client.util.updateEntitlement(data);
|
138
|
+
shard.client.emit("entitlementUpdate", entitlement, oldEntitlement);
|
139
|
+
}
|
140
|
+
exports.ENTITLEMENT_UPDATE = ENTITLEMENT_UPDATE;
|
141
|
+
async function GUILD_AUDIT_LOG_ENTRY_CREATE(data, shard) {
|
142
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
143
|
+
shard.client.emit("guildAuditLogEntryCreate", guild ?? { id: data.guild_id }, guild?.auditLogEntries.update(data) ?? new AuditLogEntry_1.default(data, shard.client));
|
144
|
+
}
|
145
|
+
exports.GUILD_AUDIT_LOG_ENTRY_CREATE = GUILD_AUDIT_LOG_ENTRY_CREATE;
|
146
|
+
async function GUILD_BAN_ADD(data, shard) {
|
147
|
+
shard.client.emit("guildBanAdd", shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id }, shard.client.users.update(data.user));
|
148
|
+
}
|
149
|
+
exports.GUILD_BAN_ADD = GUILD_BAN_ADD;
|
150
|
+
async function GUILD_BAN_REMOVE(data, shard) {
|
151
|
+
shard.client.emit("guildBanRemove", shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id }, shard.client.users.update(data.user));
|
152
|
+
}
|
153
|
+
exports.GUILD_BAN_REMOVE = GUILD_BAN_REMOVE;
|
154
|
+
async function GUILD_CREATE(data, shard) {
|
155
|
+
if (data.unavailable) {
|
156
|
+
shard.client.guilds.delete(data.id);
|
157
|
+
shard.client.emit("unavailableGuildCreate", shard.client.unavailableGuilds.update(data));
|
158
|
+
}
|
159
|
+
else {
|
160
|
+
const guild = shard["createGuild"](data);
|
161
|
+
if (shard.ready) {
|
162
|
+
if (shard.client.unavailableGuilds.delete(guild.id)) {
|
163
|
+
shard.client.emit("guildAvailable", guild);
|
164
|
+
}
|
165
|
+
else {
|
166
|
+
shard.client.emit("guildCreate", guild);
|
167
|
+
}
|
168
|
+
}
|
169
|
+
else {
|
170
|
+
if (shard.client.unavailableGuilds.delete(guild.id)) {
|
171
|
+
void shard["restartGuildCreateTimeout"]();
|
172
|
+
}
|
173
|
+
else {
|
174
|
+
shard.client.emit("guildCreate", guild);
|
175
|
+
}
|
176
|
+
}
|
177
|
+
}
|
178
|
+
}
|
179
|
+
exports.GUILD_CREATE = GUILD_CREATE;
|
180
|
+
async function GUILD_DELETE(data, shard) {
|
181
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
182
|
+
shard.client.voiceAdapters.get(data.id)?.destroy();
|
183
|
+
delete shard.client.guildShardMap[data.id];
|
184
|
+
const guild = shard.client.guilds.get(data.id);
|
185
|
+
guild?.channels.clear();
|
186
|
+
guild?.threads.clear();
|
187
|
+
shard.client.guilds.delete(data.id);
|
188
|
+
if (data.unavailable) {
|
189
|
+
shard.client.emit("guildUnavailable", shard.client.unavailableGuilds.update(data));
|
190
|
+
}
|
191
|
+
else {
|
192
|
+
shard.client.emit("guildDelete", guild ?? { id: data.id });
|
193
|
+
}
|
194
|
+
}
|
195
|
+
exports.GUILD_DELETE = GUILD_DELETE;
|
196
|
+
async function GUILD_EMOJIS_UPDATE(data, shard) {
|
197
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
198
|
+
const oldEmojis = guild?.emojis ? guild.emojis.toArray() : null;
|
199
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
200
|
+
guild?.["update"]({ emojis: data.emojis });
|
201
|
+
shard.client.emit("guildEmojisUpdate", guild ?? { id: data.guild_id }, guild?.emojis?.toArray() ?? data.emojis.map(emoji => shard.client.util.convertGuildEmoji(emoji)), oldEmojis);
|
202
|
+
}
|
203
|
+
exports.GUILD_EMOJIS_UPDATE = GUILD_EMOJIS_UPDATE;
|
204
|
+
async function GUILD_INTEGRATIONS_UPDATE(data, shard) {
|
205
|
+
shard.client.emit("guildIntegrationsUpdate", shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id });
|
206
|
+
}
|
207
|
+
exports.GUILD_INTEGRATIONS_UPDATE = GUILD_INTEGRATIONS_UPDATE;
|
208
|
+
async function GUILD_MEMBER_ADD(data, shard) {
|
209
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
210
|
+
if (guild) {
|
211
|
+
guild.memberCount++;
|
212
|
+
}
|
213
|
+
const member = shard.client.util.updateMember(data.guild_id, data.user.id, data);
|
214
|
+
shard.client.emit("guildMemberAdd", member);
|
215
|
+
}
|
216
|
+
exports.GUILD_MEMBER_ADD = GUILD_MEMBER_ADD;
|
217
|
+
async function GUILD_MEMBERS_CHUNK(data, shard) {
|
218
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
219
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
220
|
+
guild?.["updateMemberLimit"](data.members.length);
|
221
|
+
const members = data.members.map(member => shard.client.util.updateMember(data.guild_id, member.user.id, member));
|
222
|
+
if (data.presences)
|
223
|
+
for (const presence of data.presences) {
|
224
|
+
const member = members.find(m => m.id === presence.user.id);
|
225
|
+
member.presence = {
|
226
|
+
clientStatus: presence.client_status,
|
227
|
+
guildID: presence.guild_id,
|
228
|
+
status: presence.status,
|
229
|
+
activities: presence.activities?.map(activity => ({
|
230
|
+
createdAt: activity.created_at,
|
231
|
+
name: activity.name,
|
232
|
+
type: activity.type,
|
233
|
+
applicationID: activity.application_id,
|
234
|
+
assets: activity.assets ? {
|
235
|
+
largeImage: activity.assets.large_image,
|
236
|
+
largeText: activity.assets.large_text,
|
237
|
+
smallImage: activity.assets.small_image,
|
238
|
+
smallText: activity.assets.small_text
|
239
|
+
} : undefined,
|
240
|
+
buttons: activity.buttons,
|
241
|
+
details: activity.details,
|
242
|
+
emoji: activity.emoji,
|
243
|
+
flags: activity.flags,
|
244
|
+
instance: activity.instance,
|
245
|
+
party: activity.party,
|
246
|
+
secrets: activity.secrets,
|
247
|
+
state: activity.state,
|
248
|
+
timestamps: activity.timestamps,
|
249
|
+
url: activity.url
|
250
|
+
}))
|
251
|
+
};
|
252
|
+
}
|
253
|
+
if (!data.nonce) {
|
254
|
+
shard.client.emit("warn", "Received GUILD_MEMBERS_CHUNK without a nonce.");
|
255
|
+
return;
|
256
|
+
}
|
257
|
+
if (shard["_requestMembersPromise"][data.nonce]) {
|
258
|
+
shard["_requestMembersPromise"][data.nonce].members.push(...members);
|
259
|
+
}
|
260
|
+
if (data.chunk_index >= data.chunk_count - 1) {
|
261
|
+
if (shard["_requestMembersPromise"][data.nonce]) {
|
262
|
+
clearTimeout(shard["_requestMembersPromise"][data.nonce].timeout);
|
263
|
+
shard["_requestMembersPromise"][data.nonce].resolve(shard["_requestMembersPromise"][data.nonce].members);
|
264
|
+
delete shard["_requestMembersPromise"][data.nonce];
|
265
|
+
}
|
266
|
+
if (shard["_getAllUsersCount"][data.guild_id]) {
|
267
|
+
delete shard["_getAllUsersCount"][data.guild_id];
|
268
|
+
void shard["checkReady"]();
|
269
|
+
}
|
270
|
+
}
|
271
|
+
shard.client.emit("guildMemberChunk", members);
|
272
|
+
shard.lastHeartbeatAck = true;
|
273
|
+
}
|
274
|
+
exports.GUILD_MEMBERS_CHUNK = GUILD_MEMBERS_CHUNK;
|
275
|
+
async function GUILD_MEMBER_REMOVE(data, shard) {
|
276
|
+
if (data.user.id === shard.client.user.id) {
|
277
|
+
return;
|
278
|
+
}
|
279
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
280
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
281
|
+
let user = guild?.members.get(data.user.id);
|
282
|
+
if (user instanceof Member_1.default) {
|
283
|
+
user["update"]({ user: data.user });
|
284
|
+
}
|
285
|
+
else {
|
286
|
+
user = shard.client.users.update(data.user);
|
287
|
+
}
|
288
|
+
if (guild) {
|
289
|
+
guild.memberCount--;
|
290
|
+
guild.members.delete(data.user.id);
|
291
|
+
}
|
292
|
+
shard.client.emit("guildMemberRemove", user, guild ?? { id: data.guild_id });
|
293
|
+
}
|
294
|
+
exports.GUILD_MEMBER_REMOVE = GUILD_MEMBER_REMOVE;
|
295
|
+
async function GUILD_MEMBER_UPDATE(data, shard) {
|
296
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
297
|
+
const oldMember = guild?.members.get(data.user.id)?.toJSON() ?? null;
|
298
|
+
const member = shard.client.util.updateMember(data.guild_id, data.user.id, { deaf: oldMember?.deaf ?? false, mute: oldMember?.mute ?? false, ...data });
|
299
|
+
shard.client.emit("guildMemberUpdate", member, oldMember);
|
300
|
+
}
|
301
|
+
exports.GUILD_MEMBER_UPDATE = GUILD_MEMBER_UPDATE;
|
302
|
+
async function GUILD_ROLE_CREATE(data, shard) {
|
303
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
304
|
+
const role = guild?.roles.update(data.role, data.guild_id) ?? new Role_1.default(data.role, shard.client, data.guild_id);
|
305
|
+
shard.client.emit("guildRoleCreate", role);
|
306
|
+
}
|
307
|
+
exports.GUILD_ROLE_CREATE = GUILD_ROLE_CREATE;
|
308
|
+
async function GUILD_ROLE_DELETE(data, shard) {
|
309
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
310
|
+
const role = guild?.roles.get(data.role_id);
|
311
|
+
guild?.roles.delete(data.role_id);
|
312
|
+
shard.client.emit("guildRoleDelete", role ?? { id: data.role_id }, guild ?? { id: data.guild_id });
|
313
|
+
}
|
314
|
+
exports.GUILD_ROLE_DELETE = GUILD_ROLE_DELETE;
|
315
|
+
async function GUILD_ROLE_UPDATE(data, shard) {
|
316
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
317
|
+
const oldRole = guild?.roles.get(data.role.id)?.toJSON() ?? null;
|
318
|
+
const role = guild?.roles.update(data.role, data.guild_id) ?? new Role_1.default(data.role, shard.client, data.guild_id);
|
319
|
+
shard.client.emit("guildRoleUpdate", role, oldRole);
|
320
|
+
}
|
321
|
+
exports.GUILD_ROLE_UPDATE = GUILD_ROLE_UPDATE;
|
322
|
+
async function GUILD_SCHEDULED_EVENT_CREATE(data, shard) {
|
323
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
324
|
+
const event = guild?.scheduledEvents.update(data) ?? new GuildScheduledEvent_1.default(data, shard.client);
|
325
|
+
shard.client.emit("guildScheduledEventCreate", event);
|
326
|
+
}
|
327
|
+
exports.GUILD_SCHEDULED_EVENT_CREATE = GUILD_SCHEDULED_EVENT_CREATE;
|
328
|
+
async function GUILD_SCHEDULED_EVENT_DELETE(data, shard) {
|
329
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
330
|
+
const event = guild?.scheduledEvents.update(data) ?? new GuildScheduledEvent_1.default(data, shard.client);
|
331
|
+
guild?.scheduledEvents.delete(data.id);
|
332
|
+
shard.client.emit("guildScheduledEventDelete", event);
|
333
|
+
}
|
334
|
+
exports.GUILD_SCHEDULED_EVENT_DELETE = GUILD_SCHEDULED_EVENT_DELETE;
|
335
|
+
async function GUILD_SCHEDULED_EVENT_UPDATE(data, shard) {
|
336
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
337
|
+
const oldEvent = guild?.scheduledEvents.get(data.id)?.toJSON() ?? null;
|
338
|
+
const event = guild?.scheduledEvents.update(data) ?? new GuildScheduledEvent_1.default(data, shard.client);
|
339
|
+
shard.client.emit("guildScheduledEventUpdate", event, oldEvent);
|
340
|
+
}
|
341
|
+
exports.GUILD_SCHEDULED_EVENT_UPDATE = GUILD_SCHEDULED_EVENT_UPDATE;
|
342
|
+
async function GUILD_SCHEDULED_EVENT_USER_ADD(data, shard) {
|
343
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
344
|
+
const event = guild?.scheduledEvents.get(data.guild_scheduled_event_id);
|
345
|
+
if (event?.userCount) {
|
346
|
+
event.userCount++;
|
347
|
+
}
|
348
|
+
const user = shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
349
|
+
shard.client.emit("guildScheduledEventUserAdd", event ?? { id: data.guild_scheduled_event_id }, user ?? { id: data.user_id });
|
350
|
+
}
|
351
|
+
exports.GUILD_SCHEDULED_EVENT_USER_ADD = GUILD_SCHEDULED_EVENT_USER_ADD;
|
352
|
+
async function GUILD_SCHEDULED_EVENT_USER_REMOVE(data, shard) {
|
353
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
354
|
+
const event = guild?.scheduledEvents.get(data.guild_scheduled_event_id);
|
355
|
+
if (event?.userCount) {
|
356
|
+
event.userCount--;
|
357
|
+
}
|
358
|
+
const user = shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
359
|
+
shard.client.emit("guildScheduledEventUserRemove", event ?? { id: data.guild_scheduled_event_id }, user ?? { id: data.user_id });
|
360
|
+
}
|
361
|
+
exports.GUILD_SCHEDULED_EVENT_USER_REMOVE = GUILD_SCHEDULED_EVENT_USER_REMOVE;
|
362
|
+
async function GUILD_STICKERS_UPDATE(data, shard) {
|
363
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
364
|
+
const oldStickers = guild?.stickers ? guild.stickers.toArray() : null;
|
365
|
+
// eslint-disable-next-line @typescript-eslint/dot-notation
|
366
|
+
guild?.["update"]({ stickers: data.stickers });
|
367
|
+
shard.client.emit("guildStickersUpdate", guild ?? { id: data.guild_id }, guild?.stickers?.toArray() ?? data.stickers.map(sticker => shard.client.util.convertSticker(sticker)), oldStickers);
|
368
|
+
}
|
369
|
+
exports.GUILD_STICKERS_UPDATE = GUILD_STICKERS_UPDATE;
|
370
|
+
async function GUILD_UPDATE(data, shard) {
|
371
|
+
const guild = shard.client.guilds.get(data.id);
|
372
|
+
const oldGuild = guild?.toJSON() ?? null;
|
373
|
+
shard.client.emit("guildUpdate", shard.client.guilds.update(data), oldGuild);
|
374
|
+
}
|
375
|
+
exports.GUILD_UPDATE = GUILD_UPDATE;
|
376
|
+
async function INTEGRATION_CREATE(data, shard) {
|
377
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
378
|
+
const integration = guild?.integrations.update(data, data.guild_id) ?? new Integration_1.default(data, shard.client, data.guild_id);
|
379
|
+
shard.client.emit("integrationCreate", guild ?? { id: data.guild_id }, integration);
|
380
|
+
}
|
381
|
+
exports.INTEGRATION_CREATE = INTEGRATION_CREATE;
|
382
|
+
async function INTEGRATION_DELETE(data, shard) {
|
383
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
384
|
+
const integration = guild?.integrations.get(data.id);
|
385
|
+
guild?.integrations.delete(data.id);
|
386
|
+
shard.client.emit("integrationDelete", guild ?? { id: data.guild_id }, integration ?? { applicationID: data.application_id, id: data.id });
|
387
|
+
}
|
388
|
+
exports.INTEGRATION_DELETE = INTEGRATION_DELETE;
|
389
|
+
async function INTEGRATION_UPDATE(data, shard) {
|
390
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
391
|
+
const oldIntegration = guild?.integrations.get(data.id)?.toJSON() ?? null;
|
392
|
+
const integration = guild?.integrations.update(data, data.guild_id) ?? new Integration_1.default(data, shard.client, data.guild_id);
|
393
|
+
shard.client.emit("integrationUpdate", guild ?? { id: data.guild_id }, integration, oldIntegration);
|
394
|
+
}
|
395
|
+
exports.INTEGRATION_UPDATE = INTEGRATION_UPDATE;
|
396
|
+
async function INTERACTION_CREATE(data, shard) {
|
397
|
+
shard.client.emit("interactionCreate", Interaction_1.default.from(data, shard.client));
|
398
|
+
}
|
399
|
+
exports.INTERACTION_CREATE = INTERACTION_CREATE;
|
400
|
+
async function INVITE_CREATE(data, shard) {
|
401
|
+
let invite;
|
402
|
+
if (data.guild_id) {
|
403
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
404
|
+
invite = guild?.invites.update(data);
|
405
|
+
}
|
406
|
+
shard.client.emit("inviteCreate", invite ?? new Invite_1.default(data, shard.client));
|
407
|
+
}
|
408
|
+
exports.INVITE_CREATE = INVITE_CREATE;
|
409
|
+
async function INVITE_DELETE(data, shard) {
|
410
|
+
const channel = shard.client.getChannel(data.channel_id) ?? { id: data.channel_id };
|
411
|
+
const guild = data.guild_id ? shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id } : undefined;
|
412
|
+
let invite = {
|
413
|
+
code: data.code,
|
414
|
+
channel,
|
415
|
+
guild
|
416
|
+
};
|
417
|
+
if (guild instanceof Guild_1.default && guild.invites.has(data.code)) {
|
418
|
+
invite = guild.invites.get(data.code);
|
419
|
+
guild.invites.delete(data.code);
|
420
|
+
}
|
421
|
+
shard.client.emit("inviteDelete", invite);
|
422
|
+
}
|
423
|
+
exports.INVITE_DELETE = INVITE_DELETE;
|
424
|
+
async function MESSAGE_CREATE(data, shard) {
|
425
|
+
const channel = shard.client.getChannel(data.channel_id);
|
426
|
+
const message = channel?.messages?.update(data) ?? new Message_1.default(data, shard.client);
|
427
|
+
if (channel) {
|
428
|
+
channel.lastMessage = message;
|
429
|
+
channel.lastMessageID = message.id;
|
430
|
+
}
|
431
|
+
shard.client.emit("messageCreate", message);
|
432
|
+
}
|
433
|
+
exports.MESSAGE_CREATE = MESSAGE_CREATE;
|
434
|
+
async function MESSAGE_DELETE(data, shard) {
|
435
|
+
const channel = shard.client.getChannel(data.channel_id);
|
436
|
+
const message = channel?.messages?.get(data.id);
|
437
|
+
if (channel) {
|
438
|
+
channel.messages?.delete(data.id);
|
439
|
+
if (channel.lastMessageID === data.id) {
|
440
|
+
channel.lastMessageID = null;
|
441
|
+
channel.lastMessage = null;
|
442
|
+
}
|
443
|
+
}
|
444
|
+
shard.client.emit("messageDelete", message ?? {
|
445
|
+
channel: channel ?? { id: data.channel_id },
|
446
|
+
channelID: data.channel_id,
|
447
|
+
guild: data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined,
|
448
|
+
guildID: data.guild_id, id: data.id
|
449
|
+
});
|
450
|
+
}
|
451
|
+
exports.MESSAGE_DELETE = MESSAGE_DELETE;
|
452
|
+
async function MESSAGE_DELETE_BULK(data, shard) {
|
453
|
+
const channel = shard.client.getChannel(data.channel_id);
|
454
|
+
const guild = data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined;
|
455
|
+
shard.client.emit("messageDeleteBulk", data.ids.map(id => {
|
456
|
+
const message = channel?.messages?.get(id);
|
457
|
+
channel?.messages?.delete(id);
|
458
|
+
return message ?? {
|
459
|
+
channel: channel ?? { id: data.channel_id },
|
460
|
+
channelID: data.channel_id,
|
461
|
+
guild,
|
462
|
+
guildID: data.guild_id,
|
463
|
+
id
|
464
|
+
};
|
465
|
+
}));
|
466
|
+
}
|
467
|
+
exports.MESSAGE_DELETE_BULK = MESSAGE_DELETE_BULK;
|
468
|
+
async function MESSAGE_POLL_VOTE_ADD(data, shard) {
|
469
|
+
const user = shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
470
|
+
const channel = shard.client.getChannel(data.channel_id) ?? { id: data.channel_id };
|
471
|
+
const guild = data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined;
|
472
|
+
const message = (channel instanceof Channel_1.default ? channel.messages.get(data.message_id) : undefined) ?? { channel, channelID: channel.id, guild, guildID: guild?.id, id: data.message_id };
|
473
|
+
let answer = { answerID: data.answer_id };
|
474
|
+
if (message instanceof Message_1.default && message.poll !== undefined) {
|
475
|
+
const pollAnswer = message.poll.answers.find(a => a.answerID === data.answer_id);
|
476
|
+
if (pollAnswer) {
|
477
|
+
answer = pollAnswer;
|
478
|
+
}
|
479
|
+
shard.client.util.updatePollAnswer(message.poll, data.answer_id, 1, data.user_id);
|
480
|
+
}
|
481
|
+
shard.client.emit("messagePollVoteAdd", message, user, answer);
|
482
|
+
}
|
483
|
+
exports.MESSAGE_POLL_VOTE_ADD = MESSAGE_POLL_VOTE_ADD;
|
484
|
+
async function MESSAGE_POLL_VOTE_REMOVE(data, shard) {
|
485
|
+
const user = shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
486
|
+
const channel = shard.client.getChannel(data.channel_id) ?? { id: data.channel_id };
|
487
|
+
const guild = data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined;
|
488
|
+
const message = (channel instanceof Channel_1.default ? channel.messages.get(data.message_id) : undefined) ?? { channel, channelID: channel.id, guild, guildID: guild?.id, id: data.message_id };
|
489
|
+
let answer = { answerID: data.answer_id };
|
490
|
+
if (message instanceof Message_1.default && message.poll !== undefined) {
|
491
|
+
const pollAnswer = message.poll.answers.find(a => a.answerID === data.answer_id);
|
492
|
+
if (pollAnswer) {
|
493
|
+
answer = pollAnswer;
|
494
|
+
}
|
495
|
+
shard.client.util.updatePollAnswer(message.poll, data.answer_id, -1, data.user_id);
|
496
|
+
}
|
497
|
+
shard.client.emit("messagePollVoteRemove", message, user, answer);
|
498
|
+
}
|
499
|
+
exports.MESSAGE_POLL_VOTE_REMOVE = MESSAGE_POLL_VOTE_REMOVE;
|
500
|
+
async function MESSAGE_REACTION_ADD(data, shard) {
|
501
|
+
const channel = shard.client.getChannel(data.channel_id);
|
502
|
+
const guild = data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined;
|
503
|
+
const message = channel?.messages?.get(data.message_id);
|
504
|
+
const reactor = data.member
|
505
|
+
? (data.guild_id ? shard.client.util.updateMember(data.guild_id, data.user_id, data.member) : shard.client.users.get(data.user_id) ?? { id: data.user_id })
|
506
|
+
: shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
507
|
+
if (message) {
|
508
|
+
const index = message.reactions.findIndex(r => r.emoji.id === data.emoji.id && r.emoji.name === data.emoji.name);
|
509
|
+
if (index === -1) {
|
510
|
+
message.reactions.push({
|
511
|
+
burstColors: data.burst_colors,
|
512
|
+
count: 1,
|
513
|
+
countDetails: {
|
514
|
+
burst: data.burst ? 1 : 0,
|
515
|
+
normal: data.burst ? 0 : 1
|
516
|
+
},
|
517
|
+
emoji: data.emoji,
|
518
|
+
me: data.user_id === shard.client.user.id,
|
519
|
+
meBurst: data.user_id === shard.client.user.id && data.burst
|
520
|
+
});
|
521
|
+
}
|
522
|
+
else {
|
523
|
+
if (data.burst) {
|
524
|
+
message.reactions[index].countDetails.burst++;
|
525
|
+
}
|
526
|
+
else {
|
527
|
+
message.reactions[index].countDetails.normal++;
|
528
|
+
}
|
529
|
+
message.reactions[index].count++;
|
530
|
+
if (data.user_id === shard.client.user.id) {
|
531
|
+
message.reactions[index].me = true;
|
532
|
+
}
|
533
|
+
}
|
534
|
+
}
|
535
|
+
shard.client.emit("messageReactionAdd", message ?? {
|
536
|
+
channel: channel ?? { id: data.channel_id },
|
537
|
+
channelID: data.channel_id,
|
538
|
+
guild,
|
539
|
+
guildID: data.guild_id,
|
540
|
+
id: data.message_id,
|
541
|
+
author: data.message_author_id === undefined ? undefined : shard.client.users.get(data.message_author_id) ?? { id: data.message_author_id },
|
542
|
+
member: data.message_author_id === undefined ? undefined : guild?.members.get(data.message_author_id) ?? { id: data.message_author_id }
|
543
|
+
}, reactor, {
|
544
|
+
burst: data.burst,
|
545
|
+
burstColors: data.burst_colors,
|
546
|
+
emoji: data.emoji,
|
547
|
+
type: data.type
|
548
|
+
});
|
549
|
+
}
|
550
|
+
exports.MESSAGE_REACTION_ADD = MESSAGE_REACTION_ADD;
|
551
|
+
async function MESSAGE_REACTION_REMOVE(data, shard) {
|
552
|
+
const channel = shard.client.getChannel(data.channel_id);
|
553
|
+
const message = channel?.messages?.get(data.message_id);
|
554
|
+
const reactor = shard.client.users.get(data.user_id) ?? { id: data.user_id };
|
555
|
+
if (message) {
|
556
|
+
const index = message.reactions.findIndex(r => r.emoji.id === data.emoji.id && r.emoji.name === data.emoji.name);
|
557
|
+
if (index !== -1) {
|
558
|
+
if (data.burst) {
|
559
|
+
message.reactions[index].countDetails.burst--;
|
560
|
+
}
|
561
|
+
else {
|
562
|
+
message.reactions[index].countDetails.normal--;
|
563
|
+
}
|
564
|
+
message.reactions[index].count--;
|
565
|
+
if (data.user_id === shard.client.user.id) {
|
566
|
+
if (data.burst) {
|
567
|
+
message.reactions[index].meBurst = false;
|
568
|
+
}
|
569
|
+
else {
|
570
|
+
message.reactions[index].me = false;
|
571
|
+
}
|
572
|
+
}
|
573
|
+
if (message.reactions[index].count === 0) {
|
574
|
+
message.reactions.splice(index, 1);
|
575
|
+
}
|
576
|
+
}
|
577
|
+
}
|
578
|
+
shard.client.emit("messageReactionRemove", message ?? {
|
579
|
+
channel: channel ?? { id: data.channel_id },
|
580
|
+
channelID: data.channel_id,
|
581
|
+
guild: data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined,
|
582
|
+
guildID: data.guild_id,
|
583
|
+
id: data.message_id
|
584
|
+
}, reactor, {
|
585
|
+
burst: data.burst,
|
586
|
+
burstColors: data.burst_colors,
|
587
|
+
emoji: data.emoji,
|
588
|
+
type: data.type
|
589
|
+
});
|
590
|
+
}
|
591
|
+
exports.MESSAGE_REACTION_REMOVE = MESSAGE_REACTION_REMOVE;
|
592
|
+
async function MESSAGE_REACTION_REMOVE_ALL(data, shard) {
|
593
|
+
const channel = shard.client.getChannel(data.channel_id);
|
594
|
+
const message = channel?.messages?.get(data.message_id);
|
595
|
+
if (message) {
|
596
|
+
message.reactions = [];
|
597
|
+
}
|
598
|
+
shard.client.emit("messageReactionRemoveAll", message ?? {
|
599
|
+
channel: channel ?? { id: data.channel_id },
|
600
|
+
channelID: data.channel_id,
|
601
|
+
guild: data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined,
|
602
|
+
guildID: data.guild_id,
|
603
|
+
id: data.message_id
|
604
|
+
});
|
605
|
+
}
|
606
|
+
exports.MESSAGE_REACTION_REMOVE_ALL = MESSAGE_REACTION_REMOVE_ALL;
|
607
|
+
async function MESSAGE_REACTION_REMOVE_EMOJI(data, shard) {
|
608
|
+
const channel = shard.client.getChannel(data.channel_id);
|
609
|
+
const message = channel?.messages?.get(data.message_id);
|
610
|
+
if (message) {
|
611
|
+
const index = message.reactions.findIndex(r => r.emoji.id === data.emoji.id && r.emoji.name === data.emoji.name);
|
612
|
+
if (index !== -1) {
|
613
|
+
message.reactions.splice(index, 1);
|
614
|
+
}
|
615
|
+
}
|
616
|
+
shard.client.emit("messageReactionRemoveEmoji", message ?? {
|
617
|
+
channel: channel ?? { id: data.channel_id },
|
618
|
+
channelID: data.channel_id,
|
619
|
+
guild: data.guild_id ? shard.client.guilds.get(data.guild_id) : undefined,
|
620
|
+
guildID: data.guild_id,
|
621
|
+
id: data.message_id
|
622
|
+
}, data.emoji);
|
623
|
+
}
|
624
|
+
exports.MESSAGE_REACTION_REMOVE_EMOJI = MESSAGE_REACTION_REMOVE_EMOJI;
|
625
|
+
async function MESSAGE_UPDATE(data, shard) {
|
626
|
+
const channel = shard.client.getChannel(data.channel_id);
|
627
|
+
const oldMessage = channel?.messages?.get(data.id)?.toJSON() ?? null;
|
628
|
+
if (!oldMessage && !data.author) {
|
629
|
+
shard.client.emit("debug", `Got partial MESSAGE_UPDATE for uncached message ${data.id} for channel ${data.channel_id}, discarding..`);
|
630
|
+
return;
|
631
|
+
}
|
632
|
+
const message = channel?.messages?.update(data) ?? new Message_1.default(data, shard.client);
|
633
|
+
shard.client.emit("messageUpdate", message, oldMessage);
|
634
|
+
}
|
635
|
+
exports.MESSAGE_UPDATE = MESSAGE_UPDATE;
|
636
|
+
async function PRESENCE_UPDATE(data, shard) {
|
637
|
+
const user = shard.client.users.get(data.user.id);
|
638
|
+
if (user) {
|
639
|
+
const oldUser = user.toJSON();
|
640
|
+
user["update"](data.user);
|
641
|
+
if (JSON.stringify(oldUser) !== JSON.stringify(user.toJSON())) {
|
642
|
+
shard.client.emit("userUpdate", user, oldUser);
|
643
|
+
}
|
644
|
+
}
|
645
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
646
|
+
const member = guild?.members.get(data.user.id);
|
647
|
+
const oldPresence = member?.presence ?? null;
|
648
|
+
const presence = {
|
649
|
+
clientStatus: data.client_status,
|
650
|
+
guildID: data.guild_id,
|
651
|
+
status: data.status,
|
652
|
+
activities: data.activities?.map(activity => ({
|
653
|
+
createdAt: activity.created_at,
|
654
|
+
name: activity.name,
|
655
|
+
type: activity.type,
|
656
|
+
applicationID: activity.application_id,
|
657
|
+
assets: activity.assets ? {
|
658
|
+
largeImage: activity.assets.large_image,
|
659
|
+
largeText: activity.assets.large_text,
|
660
|
+
smallImage: activity.assets.small_image,
|
661
|
+
smallText: activity.assets.small_text
|
662
|
+
} : undefined,
|
663
|
+
buttons: activity.buttons,
|
664
|
+
details: activity.details,
|
665
|
+
emoji: activity.emoji,
|
666
|
+
flags: activity.flags,
|
667
|
+
instance: activity.instance,
|
668
|
+
party: activity.party,
|
669
|
+
secrets: activity.secrets,
|
670
|
+
state: activity.state,
|
671
|
+
timestamps: activity.timestamps,
|
672
|
+
url: activity.url
|
673
|
+
}))
|
674
|
+
};
|
675
|
+
const userID = data.user.id;
|
676
|
+
delete data.user;
|
677
|
+
if (member) {
|
678
|
+
member.presence = presence;
|
679
|
+
}
|
680
|
+
shard.client.emit("presenceUpdate", guild ?? { id: data.guild_id }, member ?? { id: userID }, presence, oldPresence);
|
681
|
+
}
|
682
|
+
exports.PRESENCE_UPDATE = PRESENCE_UPDATE;
|
683
|
+
async function READY(data, shard) {
|
684
|
+
shard["_ready"](data);
|
685
|
+
}
|
686
|
+
exports.READY = READY;
|
687
|
+
async function RESUMED(data, shard) {
|
688
|
+
shard["_resume"]();
|
689
|
+
}
|
690
|
+
exports.RESUMED = RESUMED;
|
691
|
+
async function STAGE_INSTANCE_CREATE(data, shard) {
|
692
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
693
|
+
const stateInstance = guild?.stageInstances.update(data) ?? new StageInstance_1.default(data, shard.client);
|
694
|
+
shard.client.emit("stageInstanceCreate", stateInstance);
|
695
|
+
}
|
696
|
+
exports.STAGE_INSTANCE_CREATE = STAGE_INSTANCE_CREATE;
|
697
|
+
async function STAGE_INSTANCE_DELETE(data, shard) {
|
698
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
699
|
+
const stateInstance = guild?.stageInstances.update(data) ?? new StageInstance_1.default(data, shard.client);
|
700
|
+
guild?.stageInstances.delete(data.id);
|
701
|
+
shard.client.emit("stageInstanceDelete", stateInstance);
|
702
|
+
}
|
703
|
+
exports.STAGE_INSTANCE_DELETE = STAGE_INSTANCE_DELETE;
|
704
|
+
async function STAGE_INSTANCE_UPDATE(data, shard) {
|
705
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
706
|
+
const oldStageInstance = guild?.stageInstances.get(data.id)?.toJSON() ?? null;
|
707
|
+
const stateInstance = guild?.stageInstances.update(data) ?? new StageInstance_1.default(data, shard.client);
|
708
|
+
shard.client.emit("stageInstanceUpdate", stateInstance, oldStageInstance);
|
709
|
+
}
|
710
|
+
exports.STAGE_INSTANCE_UPDATE = STAGE_INSTANCE_UPDATE;
|
711
|
+
async function THREAD_CREATE(data, shard) {
|
712
|
+
const thread = shard.client.util.updateThread(data);
|
713
|
+
const channel = shard.client.getChannel(data.parent_id);
|
714
|
+
if (channel && channel.type === Constants_1.ChannelTypes.GUILD_FORUM) {
|
715
|
+
channel.lastThreadID = thread.id;
|
716
|
+
}
|
717
|
+
shard.client.emit("threadCreate", thread);
|
718
|
+
}
|
719
|
+
exports.THREAD_CREATE = THREAD_CREATE;
|
720
|
+
async function THREAD_DELETE(data, shard) {
|
721
|
+
const channel = shard.client.getChannel(data.parent_id);
|
722
|
+
const thread = shard.client.getChannel(data.id) ?? {
|
723
|
+
id: data.id,
|
724
|
+
guild: shard.client.guilds.get(data.guild_id),
|
725
|
+
guildID: data.guild_id,
|
726
|
+
parent: channel || { id: data.parent_id },
|
727
|
+
parentID: data.parent_id,
|
728
|
+
type: data.type
|
729
|
+
};
|
730
|
+
if (channel && channel.type === Constants_1.ChannelTypes.GUILD_FORUM && channel.lastThreadID === data.id) {
|
731
|
+
channel.lastThreadID = null;
|
732
|
+
}
|
733
|
+
shard.client.guilds.get(data.guild_id)?.threads.delete(data.id);
|
734
|
+
shard.client.emit("threadDelete", thread);
|
735
|
+
}
|
736
|
+
exports.THREAD_DELETE = THREAD_DELETE;
|
737
|
+
async function THREAD_LIST_SYNC(data, shard) {
|
738
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
739
|
+
if (!guild) {
|
740
|
+
shard.client.emit("debug", `Missing guild in THREAD_LIST_SYNC: ${data.guild_id}`);
|
741
|
+
return;
|
742
|
+
}
|
743
|
+
for (const threadData of data.threads) {
|
744
|
+
shard.client.util.updateThread(threadData);
|
745
|
+
}
|
746
|
+
for (const member of data.members) {
|
747
|
+
const thread = shard.client.getChannel(member.id);
|
748
|
+
if (thread) {
|
749
|
+
const threadMember = {
|
750
|
+
id: member.id,
|
751
|
+
flags: member.flags,
|
752
|
+
joinTimestamp: new Date(member.join_timestamp),
|
753
|
+
userID: member.user_id
|
754
|
+
};
|
755
|
+
const index = thread.members.findIndex(m => m.userID === member.user_id);
|
756
|
+
if (index === -1) {
|
757
|
+
thread.members.push(threadMember);
|
758
|
+
}
|
759
|
+
else {
|
760
|
+
thread.members[index] = threadMember;
|
761
|
+
}
|
762
|
+
}
|
763
|
+
}
|
764
|
+
}
|
765
|
+
exports.THREAD_LIST_SYNC = THREAD_LIST_SYNC;
|
766
|
+
async function THREAD_MEMBER_UPDATE(data, shard) {
|
767
|
+
const thread = shard.client.getChannel(data.id);
|
768
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
769
|
+
const threadMember = {
|
770
|
+
id: data.id,
|
771
|
+
flags: data.flags,
|
772
|
+
joinTimestamp: new Date(data.join_timestamp),
|
773
|
+
userID: data.user_id
|
774
|
+
};
|
775
|
+
let oldThreadMember = null;
|
776
|
+
if (thread) {
|
777
|
+
const index = thread.members.findIndex(m => m.userID === data.user_id);
|
778
|
+
if (index === -1) {
|
779
|
+
thread.members.push(threadMember);
|
780
|
+
}
|
781
|
+
else {
|
782
|
+
oldThreadMember = { ...thread.members[index] };
|
783
|
+
thread.members[index] = threadMember;
|
784
|
+
}
|
785
|
+
}
|
786
|
+
shard.client.emit("threadMemberUpdate", thread ?? {
|
787
|
+
id: data.id,
|
788
|
+
guild,
|
789
|
+
guildID: data.guild_id
|
790
|
+
}, threadMember, oldThreadMember);
|
791
|
+
}
|
792
|
+
exports.THREAD_MEMBER_UPDATE = THREAD_MEMBER_UPDATE;
|
793
|
+
async function THREAD_MEMBERS_UPDATE(data, shard) {
|
794
|
+
const thread = shard.client.getChannel(data.id);
|
795
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
796
|
+
const addedMembers = (data.added_members ?? []).map(rawMember => ({
|
797
|
+
flags: rawMember.flags,
|
798
|
+
id: rawMember.id,
|
799
|
+
joinTimestamp: new Date(rawMember.join_timestamp),
|
800
|
+
userID: rawMember.user_id
|
801
|
+
}));
|
802
|
+
const removedMembers = (data.removed_member_ids ?? []).map(id => ({ userID: id, id: data.id }));
|
803
|
+
if (thread) {
|
804
|
+
thread.memberCount = data.member_count;
|
805
|
+
for (const rawMember of addedMembers) {
|
806
|
+
const index = thread.members.findIndex(m => m.userID === rawMember.id);
|
807
|
+
if (index === -1) {
|
808
|
+
thread.members.push(rawMember);
|
809
|
+
}
|
810
|
+
else {
|
811
|
+
thread.members[index] = rawMember;
|
812
|
+
}
|
813
|
+
}
|
814
|
+
for (const [index, { userID }] of removedMembers.entries()) {
|
815
|
+
const memberIndex = thread.members.findIndex(m => m.userID === userID);
|
816
|
+
if (memberIndex >= 0) {
|
817
|
+
removedMembers[index] = thread.members[memberIndex];
|
818
|
+
thread.members.splice(memberIndex, 1);
|
819
|
+
}
|
820
|
+
}
|
821
|
+
}
|
822
|
+
shard.client.emit("threadMembersUpdate", thread ?? {
|
823
|
+
id: data.id,
|
824
|
+
guild,
|
825
|
+
guildID: data.guild_id
|
826
|
+
}, addedMembers, removedMembers);
|
827
|
+
}
|
828
|
+
exports.THREAD_MEMBERS_UPDATE = THREAD_MEMBERS_UPDATE;
|
829
|
+
async function THREAD_UPDATE(data, shard) {
|
830
|
+
const oldThread = shard.client.getChannel(data.id)?.toJSON() ?? null;
|
831
|
+
const thread = shard.client.util.updateThread(data);
|
832
|
+
shard.client.emit("threadUpdate", thread, oldThread);
|
833
|
+
}
|
834
|
+
exports.THREAD_UPDATE = THREAD_UPDATE;
|
835
|
+
async function TYPING_START(data, shard) {
|
836
|
+
const channel = shard.client.getChannel(data.channel_id) ?? { id: data.channel_id };
|
837
|
+
const startTimestamp = new Date(data.timestamp);
|
838
|
+
if (data.member) {
|
839
|
+
const member = shard.client.util.updateMember(data.guild_id, data.user_id, data.member);
|
840
|
+
shard.client.emit("typingStart", channel, member, startTimestamp);
|
841
|
+
return;
|
842
|
+
}
|
843
|
+
const user = shard.client.users.get(data.user_id);
|
844
|
+
shard.client.emit("typingStart", channel, user ?? { id: data.user_id }, startTimestamp);
|
845
|
+
}
|
846
|
+
exports.TYPING_START = TYPING_START;
|
847
|
+
async function USER_UPDATE(data, shard) {
|
848
|
+
const oldUser = shard.client.users.get(data.id)?.toJSON() ?? null;
|
849
|
+
shard.client.emit("userUpdate", shard.client.users.update(data), oldUser);
|
850
|
+
}
|
851
|
+
exports.USER_UPDATE = USER_UPDATE;
|
852
|
+
async function VOICE_CHANNEL_EFFECT_SEND(data, shard) {
|
853
|
+
const channel = shard.client.getChannel(data.channel_id);
|
854
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
855
|
+
const user = guild?.members.get(data.user_id) ?? shard.client.users.get(data.user_id);
|
856
|
+
shard.client.emit("voiceChannelEffectSend", channel ?? { id: data.channel_id, guild: guild ?? { id: data.guild_id } }, user ?? { id: data.user_id }, {
|
857
|
+
animationID: data.animation_id,
|
858
|
+
animationType: data.animation_type
|
859
|
+
});
|
860
|
+
}
|
861
|
+
exports.VOICE_CHANNEL_EFFECT_SEND = VOICE_CHANNEL_EFFECT_SEND;
|
862
|
+
async function VOICE_STATE_UPDATE(data, shard) {
|
863
|
+
if (data.guild_id && data.session_id && data.user_id === shard.client.user.id) {
|
864
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
865
|
+
shard.client.voiceAdapters.get(data.guild_id)?.onVoiceStateUpdate(data);
|
866
|
+
}
|
867
|
+
// @TODO voice states without guilds?
|
868
|
+
if (!data.guild_id || !data.member) {
|
869
|
+
return;
|
870
|
+
}
|
871
|
+
data.self_stream = !!data.self_stream;
|
872
|
+
const guild = shard.client.guilds.get(data.guild_id);
|
873
|
+
const member = shard.client.util.updateMember(data.guild_id, data.user_id, data.member);
|
874
|
+
const oldState = guild?.voiceStates.get(member.id)?.toJSON() ?? null;
|
875
|
+
const state = guild?.voiceStates.update({ ...data, id: member.id }) ?? new VoiceState_1.default(data, shard.client);
|
876
|
+
member["update"]({ deaf: state.deaf, mute: state.mute });
|
877
|
+
if (oldState?.channelID !== state.channelID) {
|
878
|
+
const oldChannel = oldState?.channelID ? shard.client.getChannel(oldState.channelID) ?? { id: oldState.channelID } : null;
|
879
|
+
const newChannel = state.channel === null ? null : state.channel ?? { id: state.channelID };
|
880
|
+
if (newChannel instanceof Channel_1.default) {
|
881
|
+
newChannel.voiceMembers.add(member);
|
882
|
+
}
|
883
|
+
if (oldChannel instanceof Channel_1.default) {
|
884
|
+
oldChannel.voiceMembers.delete(member.id);
|
885
|
+
}
|
886
|
+
if (oldChannel && newChannel) {
|
887
|
+
shard.client.emit("voiceChannelSwitch", member, newChannel, oldChannel);
|
888
|
+
}
|
889
|
+
else if (newChannel) {
|
890
|
+
shard.client.emit("voiceChannelJoin", member, newChannel);
|
891
|
+
}
|
892
|
+
else if (state.channelID === null) {
|
893
|
+
shard.client.emit("voiceChannelLeave", member, oldChannel);
|
894
|
+
}
|
895
|
+
}
|
896
|
+
if (JSON.stringify(oldState) !== JSON.stringify(state.toJSON())) {
|
897
|
+
shard.client.emit("voiceStateUpdate", member, oldState);
|
898
|
+
}
|
899
|
+
}
|
900
|
+
exports.VOICE_STATE_UPDATE = VOICE_STATE_UPDATE;
|
901
|
+
async function VOICE_CHANNEL_STATUS_UPDATE(data, shard) {
|
902
|
+
shard.client.emit("voiceChannelStatusUpdate", shard.client.getChannel(data.id) ?? { id: data.id }, data.status);
|
903
|
+
}
|
904
|
+
exports.VOICE_CHANNEL_STATUS_UPDATE = VOICE_CHANNEL_STATUS_UPDATE;
|
905
|
+
async function VOICE_SERVER_UPDATE(data, shard) {
|
906
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
907
|
+
shard.client.voiceAdapters.get(data.guild_id)?.onVoiceServerUpdate(data);
|
908
|
+
}
|
909
|
+
exports.VOICE_SERVER_UPDATE = VOICE_SERVER_UPDATE;
|
910
|
+
async function WEBHOOKS_UPDATE(data, shard) {
|
911
|
+
shard.client.emit("webhooksUpdate", shard.client.guilds.get(data.guild_id) ?? { id: data.guild_id }, shard.client.getChannel(data.channel_id) ?? { id: data.channel_id });
|
912
|
+
}
|
913
|
+
exports.WEBHOOKS_UPDATE = WEBHOOKS_UPDATE;
|
914
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2dhdGV3YXkvZXZlbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBRUEsNENBQTRDO0FBRTVDLDBFQUEwQztBQUMxQyxrR0FBa0U7QUFDbEUsNEVBQTRDO0FBZ0I1QyxzRkFBc0Q7QUFDdEQsc0ZBQXNEO0FBQ3RELG9HQUFvRTtBQUNwRSwwRUFBMEM7QUFDMUMsNEVBQTRDO0FBQzVDLHdGQUF3RDtBQUV4RCxvRkFBb0Q7QUFDcEQsd0VBQXdDO0FBQ3hDLHNFQUFzQztBQUN0QyxvRkFBb0Q7QUFDcEQsa0ZBQWtEO0FBQ2xELHdGQUF3RDtBQUdqRCxLQUFLLFVBQVUsc0NBQXNDLENBQUMsSUFBZ0UsRUFBRSxLQUFZO0lBQ3ZJLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFDQUFxQyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1FBQ3RILFdBQVcsRUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDekcsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjO1FBQ2xDLEVBQUUsRUFBYSxJQUFJLENBQUMsRUFBRTtRQUN0QixXQUFXLEVBQUksSUFBSSxDQUFDLFdBQVc7S0FDbEMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVBELHdGQU9DO0FBRU0sS0FBSyxVQUFVLGdDQUFnQyxDQUFDLElBQTBELEVBQUUsS0FBWTtJQUMzSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2IsK0JBQStCLEVBQy9CLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQzlCLElBQUksQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQ3pFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUM1RDtRQUNJLE1BQU0sRUFBRTtZQUNKLFFBQVEsRUFBRTtnQkFDTixTQUFTLEVBQVEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVTtnQkFDaEQsYUFBYSxFQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGNBQWM7Z0JBQ3BELGVBQWUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0I7YUFDekQ7WUFDRCxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO1NBQ3pCO1FBQ0Qsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtRQUNsRCxPQUFPLEVBQWUsSUFBSSxDQUFDLE9BQU87UUFDbEMsY0FBYyxFQUFRLElBQUksQ0FBQyxlQUFlO1FBQzFDLGNBQWMsRUFBUSxJQUFJLENBQUMsZUFBZTtRQUMxQyxTQUFTLEVBQWEsSUFBSSxDQUFDLFVBQVU7UUFDckMsSUFBSSxFQUFrQixLQUFLLEVBQUUsbUJBQW1CLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbEUsTUFBTSxFQUFnQixJQUFJLENBQUMsT0FBTztRQUNsQyxlQUFlLEVBQU8sSUFBSSxDQUFDLGlCQUFpQjtLQUMvQyxDQUNKLENBQUM7QUFDTixDQUFDO0FBM0JELDRFQTJCQztBQUVNLEtBQUssVUFBVSwyQkFBMkIsQ0FBQyxJQUFxRCxFQUFFLEtBQVk7SUFDakgsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksNEJBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RCxDQUFDO0FBSkQsa0VBSUM7QUFFTSxLQUFLLFVBQVUsMkJBQTJCLENBQUMsSUFBcUQsRUFBRSxLQUFZO0lBQ2pILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLDRCQUFrQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbkcsS0FBSyxFQUFFLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUxELGtFQUtDO0FBRU0sS0FBSyxVQUFVLDJCQUEyQixDQUFDLElBQXFELEVBQUUsS0FBWTtJQUNqSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQztJQUMxRSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksNEJBQWtCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDN0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFORCxrRUFNQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBd0MsRUFBRSxLQUFZO0lBQ3ZGLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBZ0MsSUFBSSxDQUFDLENBQUM7SUFDckYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFIRCx3Q0FHQztBQUVNLEtBQUssVUFBVSxjQUFjLENBQUMsSUFBd0MsRUFBRSxLQUFZO0lBQ3ZGLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyx3QkFBWSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDMUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxJQUFJO1lBQzFDLEVBQUUsRUFBYSxJQUFJLENBQUMsRUFBRTtZQUN0QixLQUFLLEVBQVUsSUFBSSxDQUFDLEtBQUs7WUFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlO1lBQ25DLElBQUksRUFBVyxJQUFJLENBQUMsSUFBSTtTQUMzQixDQUFDLENBQUM7UUFDSCxPQUFPO0lBQ1gsQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFnQyxJQUFJLENBQUMsQ0FBQztJQUNyRixJQUFJLE9BQU8sWUFBWSxzQkFBWSxJQUFJLE9BQU8sWUFBWSxzQkFBWSxFQUFFLENBQUM7UUFDckUsS0FBSyxNQUFNLENBQUMsRUFBQyxNQUFNLENBQUMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDM0MsT0FBTyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1RCxDQUFDO0lBQ0wsQ0FBQztJQUNELEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQXRCRCx3Q0FzQkM7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBNkMsRUFBRSxLQUFZO0lBQ2pHLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFxQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0UsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsa0JBQWtCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztBQUNyTSxDQUFDO0FBSEQsa0RBR0M7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUFDLElBQXdDLEVBQUUsS0FBWTtJQUN2RixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBa0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQztJQUN2RixJQUFJLE9BQXdCLENBQUM7SUFDN0IsSUFBSSxVQUFVLElBQUksVUFBVSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFFLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDN0YsQ0FBQztRQUVELE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFiRCx3Q0FhQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUE0QyxFQUFFLEtBQVk7SUFDL0YsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUhELGdEQUdDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQTRDLEVBQUUsS0FBWTtJQUMvRixNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5RCxLQUFLLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFKRCxnREFJQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUE0QyxFQUFFLEtBQVk7SUFDL0YsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDakcsTUFBTSxXQUFXLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDOUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsV0FBVyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3hFLENBQUM7QUFKRCxnREFJQztBQUVNLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxJQUFzRCxFQUFFLEtBQVk7SUFDbkgsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDaEssQ0FBQztBQUhELG9FQUdDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxJQUF1QyxFQUFFLEtBQVk7SUFDckYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1SSxDQUFDO0FBRkQsc0NBRUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBMEMsRUFBRSxLQUFZO0lBQzNGLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUMvSSxDQUFDO0FBRkQsNENBRUM7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQXNDLEVBQUUsS0FBWTtJQUVuRixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDN0YsQ0FBQztTQUFNLENBQUM7UUFDSixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZCxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUNsRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMvQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELEtBQUssS0FBSyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzVDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUFyQkQsb0NBcUJDO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FBQyxJQUFzQyxFQUFFLEtBQVk7SUFDbkYseUdBQXlHO0lBQ3pHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUM7SUFDbkQsT0FBTyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDM0MsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3hCLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDdkIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNwQyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7U0FBTSxDQUFDO1FBQ0osS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0FBQ0wsQ0FBQztBQWJELG9DQWFDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUFDLElBQTZDLEVBQUUsS0FBWTtJQUNqRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sU0FBUyxHQUFHLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNoRSwyREFBMkQ7SUFDM0QsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDM0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2IsbUJBQW1CLEVBQ25CLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQzlCLEtBQUssRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUNoRyxTQUFTLENBQ1osQ0FBQztBQUNOLENBQUM7QUFYRCxrREFXQztBQUVNLEtBQUssVUFBVSx5QkFBeUIsQ0FBQyxJQUFtRCxFQUFFLEtBQVk7SUFDN0csS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztBQUNsSCxDQUFDO0FBRkQsOERBRUM7QUFFTSxLQUFLLFVBQVUsZ0JBQWdCLENBQUMsSUFBMEMsRUFBRSxLQUFZO0lBQzNGLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUNSLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBQ0QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUssQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbEYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQVBELDRDQU9DO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUFDLElBQTZDLEVBQUUsS0FBWTtJQUNqRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELDJEQUEyRDtJQUMzRCxLQUFLLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSyxDQUFDLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ25ILElBQUksSUFBSSxDQUFDLFNBQVM7UUFBRSxLQUFLLE1BQU0sUUFBUSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4RCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBRSxDQUFDO1lBQzdELE1BQU0sQ0FBQyxRQUFRLEdBQUc7Z0JBQ2QsWUFBWSxFQUFFLFFBQVEsQ0FBQyxhQUFhO2dCQUNwQyxPQUFPLEVBQU8sUUFBUSxDQUFDLFFBQVE7Z0JBQy9CLE1BQU0sRUFBUSxRQUFRLENBQUMsTUFBTTtnQkFDN0IsVUFBVSxFQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQztvQkFDaEQsU0FBUyxFQUFNLFFBQVEsQ0FBQyxVQUFVO29CQUNsQyxJQUFJLEVBQVcsUUFBUSxDQUFDLElBQUk7b0JBQzVCLElBQUksRUFBVyxRQUFRLENBQUMsSUFBSTtvQkFDNUIsYUFBYSxFQUFFLFFBQVEsQ0FBQyxjQUFjO29CQUN0QyxNQUFNLEVBQVMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7d0JBQzdCLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVc7d0JBQ3ZDLFNBQVMsRUFBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVU7d0JBQ3RDLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVc7d0JBQ3ZDLFNBQVMsRUFBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVU7cUJBQ3pDLENBQUMsQ0FBQyxDQUFDLFNBQVM7b0JBQ2IsT0FBTyxFQUFLLFFBQVEsQ0FBQyxPQUFPO29CQUM1QixPQUFPLEVBQUssUUFBUSxDQUFDLE9BQU87b0JBQzVCLEtBQUssRUFBTyxRQUFRLENBQUMsS0FBSztvQkFDMUIsS0FBSyxFQUFPLFFBQVEsQ0FBQyxLQUFLO29CQUMxQixRQUFRLEVBQUksUUFBUSxDQUFDLFFBQVE7b0JBQzdCLEtBQUssRUFBTyxRQUFRLENBQUMsS0FBSztvQkFDMUIsT0FBTyxFQUFLLFFBQVEsQ0FBQyxPQUFPO29CQUM1QixLQUFLLEVBQU8sUUFBUSxDQUFDLEtBQUs7b0JBQzFCLFVBQVUsRUFBRSxRQUFRLENBQUMsVUFBVTtvQkFDL0IsR0FBRyxFQUFTLFFBQVEsQ0FBQyxHQUFHO2lCQUMzQixDQUFDLENBQUM7YUFDTixDQUFDO1FBQ04sQ0FBQztJQUNELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsK0NBQStDLENBQUMsQ0FBQztRQUMzRSxPQUFPO0lBQ1gsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDOUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0MsSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxZQUFZLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pHLE9BQU8sS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZELENBQUM7UUFDRCxJQUFJLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzVDLE9BQU8sS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2pELEtBQUssS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDL0IsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxLQUFLLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDO0FBQ2xDLENBQUM7QUF6REQsa0RBeURDO0FBRU0sS0FBSyxVQUFVLG1CQUFtQixDQUFDLElBQTZDLEVBQUUsS0FBWTtJQUNqRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3hDLE9BQU87SUFDWCxDQUFDO0lBQ0QsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCwyREFBMkQ7SUFDM0QsSUFBSSxJQUFJLEdBQThCLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkUsSUFBSSxJQUFJLFlBQVksZ0JBQU0sRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN4QyxDQUFDO1NBQU0sQ0FBQztRQUNKLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFDRCxJQUFJLEtBQUssRUFBRSxDQUFDO1FBQ1IsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BCLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDakYsQ0FBQztBQWpCRCxrREFpQkM7QUFFTSxLQUFLLFVBQVUsbUJBQW1CLENBQUMsSUFBNkMsRUFBRSxLQUFZO0lBQ2pHLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxTQUFTLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDckUsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsRUFBRyxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxLQUFLLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksS0FBSyxFQUFFLEdBQUcsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUN6SixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDOUQsQ0FBQztBQUxELGtEQUtDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQTJDLEVBQUUsS0FBWTtJQUM3RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0csS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUpELDhDQUlDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQTJDLEVBQUUsS0FBWTtJQUM3RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QyxLQUFLLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDdkcsQ0FBQztBQUxELDhDQUtDO0FBRU0sS0FBSyxVQUFVLGlCQUFpQixDQUFDLElBQTJDLEVBQUUsS0FBWTtJQUM3RixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sT0FBTyxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2pFLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksY0FBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0csS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3hELENBQUM7QUFMRCw4Q0FLQztBQUVNLEtBQUssVUFBVSw0QkFBNEIsQ0FBQyxJQUFzRCxFQUFFLEtBQVk7SUFDbkgsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLDZCQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUpELG9FQUlDO0FBRU0sS0FBSyxVQUFVLDRCQUE0QixDQUFDLElBQXNELEVBQUUsS0FBWTtJQUNuSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sS0FBSyxHQUFHLEtBQUssRUFBRSxlQUFlLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksNkJBQW1CLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRyxLQUFLLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUQsQ0FBQztBQUxELG9FQUtDO0FBRU0sS0FBSyxVQUFVLDRCQUE0QixDQUFDLElBQXNELEVBQUUsS0FBWTtJQUNuSCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBRSxDQUFDO0lBQ3RELE1BQU0sUUFBUSxHQUFHLEtBQUssRUFBRSxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDdkUsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSw2QkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDJCQUEyQixFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwRSxDQUFDO0FBTEQsb0VBS0M7QUFFTSxLQUFLLFVBQVUsOEJBQThCLENBQUMsSUFBd0QsRUFBRSxLQUFZO0lBQ3ZILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDeEUsSUFBSSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDbkIsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLHdCQUF3QixFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ2xJLENBQUM7QUFSRCx3RUFRQztBQUVNLEtBQUssVUFBVSxpQ0FBaUMsQ0FBQyxJQUEyRCxFQUFFLEtBQVk7SUFDN0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUN4RSxJQUFJLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQztRQUNuQixLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzFFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7QUFDckksQ0FBQztBQVJELDhFQVFDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQixDQUFDLElBQStDLEVBQUUsS0FBWTtJQUNyRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RSwyREFBMkQ7SUFDM0QsS0FBSyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDL0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsS0FBSyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDak0sQ0FBQztBQU5ELHNEQU1DO0FBRU0sS0FBSyxVQUFVLFlBQVksQ0FBQyxJQUFzQyxFQUFFLEtBQVk7SUFDbkYsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxNQUFNLFFBQVEsR0FBRyxLQUFLLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ3pDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDakYsQ0FBQztBQUpELG9DQUlDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQTRDLEVBQUUsS0FBWTtJQUMvRixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxxQkFBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxSCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3hGLENBQUM7QUFKRCxnREFJQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUE0QyxFQUFFLEtBQVk7SUFDL0YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLFdBQVcsR0FBRyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckQsS0FBSyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsV0FBVyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQy9JLENBQUM7QUFMRCxnREFLQztBQUVNLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxJQUE0QyxFQUFFLEtBQVk7SUFDL0YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxNQUFNLGNBQWMsR0FBRyxLQUFLLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQzFFLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxxQkFBVyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxSCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsQ0FBQztBQUN4RyxDQUFDO0FBTEQsZ0RBS0M7QUFFTSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsSUFBNEMsRUFBRSxLQUFZO0lBQy9GLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLHFCQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNqRixDQUFDO0FBRkQsZ0RBRUM7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQXVDLEVBQUUsS0FBWTtJQUNyRixJQUFJLE1BQTBCLENBQUM7SUFDL0IsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyRCxNQUFNLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLElBQUksSUFBSSxnQkFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUNoRixDQUFDO0FBUEQsc0NBT0M7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQXVDLEVBQUUsS0FBWTtJQUNyRixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBbUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzFHLElBQUksTUFBTSxHQUEyQjtRQUNqQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixPQUFPO1FBQ1AsS0FBSztLQUNSLENBQUM7SUFDRixJQUFJLEtBQUssWUFBWSxlQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDekQsTUFBTSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUUsQ0FBQztRQUN2QyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBYkQsc0NBYUM7QUFFTSxLQUFLLFVBQVUsY0FBYyxDQUFDLElBQXdDLEVBQUUsS0FBWTtJQUN2RixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25GLElBQUksT0FBTyxFQUFFLENBQUM7UUFDVixPQUFPLENBQUMsV0FBVyxHQUFHLE9BQWdCLENBQUM7UUFDdkMsT0FBTyxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDaEQsQ0FBQztBQVJELHdDQVFDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUF3QyxFQUFFLEtBQVk7SUFDdkYsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQXFCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RSxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNWLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNsQyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQy9CLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLE9BQU8sSUFBSTtRQUMxQyxPQUFPLEVBQUksT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1FBQzFCLEtBQUssRUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzdFLE9BQU8sRUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBUyxJQUFJLENBQUMsRUFBRTtLQUMvQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBaEJELHdDQWdCQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxJQUE2QyxFQUFFLEtBQVk7SUFDakcsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQXFCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDckQsTUFBTSxPQUFPLEdBQUcsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsT0FBTyxPQUFPLElBQUk7WUFDZCxPQUFPLEVBQUksT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzFCLEtBQUs7WUFDTCxPQUFPLEVBQUksSUFBSSxDQUFDLFFBQVE7WUFDeEIsRUFBRTtTQUNMLENBQUM7SUFDTixDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ1IsQ0FBQztBQWRELGtEQWNDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQixDQUFDLElBQStDLEVBQUUsS0FBWTtJQUNyRyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLFlBQVksaUJBQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2TCxJQUFJLE1BQU0sR0FBdUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLElBQUksT0FBTyxZQUFZLGlCQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUN4QixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEYsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDbkUsQ0FBQztBQWZELHNEQWVDO0FBRU0sS0FBSyxVQUFVLHdCQUF3QixDQUFDLElBQWtELEVBQUUsS0FBWTtJQUMzRyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUMxRSxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4RyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDakYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLFlBQVksaUJBQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN2TCxJQUFJLE1BQU0sR0FBdUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlFLElBQUksT0FBTyxZQUFZLGlCQUFPLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUMzRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxLQUFLLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2IsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUN4QixDQUFDO1FBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUN0RSxDQUFDO0FBZkQsNERBZUM7QUFFTSxLQUFLLFVBQVUsb0JBQW9CLENBQUMsSUFBOEMsRUFBRSxLQUFZO0lBQ25HLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFxQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0UsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2pGLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTTtRQUN2QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0osQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRW5FLElBQUksT0FBTyxFQUFFLENBQUM7UUFDVixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakgsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNmLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNuQixXQUFXLEVBQUcsSUFBSSxDQUFDLFlBQVk7Z0JBQy9CLEtBQUssRUFBUyxDQUFDO2dCQUNmLFlBQVksRUFBRTtvQkFDVixLQUFLLEVBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUMxQixNQUFNLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM3QjtnQkFDRCxLQUFLLEVBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQ25CLEVBQUUsRUFBTyxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsS0FBSzthQUMvRCxDQUFDLENBQUM7UUFDUCxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xELENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuRCxDQUFDO1lBQ0QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3hDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztJQUVMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxPQUFPLElBQUk7UUFDL0MsT0FBTyxFQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUMxQixLQUFLO1FBQ0wsT0FBTyxFQUFJLElBQUksQ0FBQyxRQUFRO1FBQ3hCLEVBQUUsRUFBUyxJQUFJLENBQUMsVUFBVTtRQUMxQixNQUFNLEVBQUssSUFBSSxDQUFDLGlCQUFpQixLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1FBQzlJLE1BQU0sRUFBSyxJQUFJLENBQUMsaUJBQWlCLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtLQUM3SSxFQUFFLE9BQU8sRUFBRTtRQUNSLEtBQUssRUFBUSxJQUFJLENBQUMsS0FBSztRQUN2QixXQUFXLEVBQUUsSUFBSSxDQUFDLFlBQVk7UUFDOUIsS0FBSyxFQUFRLElBQUksQ0FBQyxLQUFLO1FBQ3ZCLElBQUksRUFBUyxJQUFJLENBQUMsSUFBSTtLQUN6QixDQUFDLENBQUM7QUFDUCxDQUFDO0FBbERELG9EQWtEQztBQUVNLEtBQUssVUFBVSx1QkFBdUIsQ0FBQyxJQUFpRCxFQUFFLEtBQVk7SUFDekcsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQXFCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RSxNQUFNLE9BQU8sR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDeEQsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFFN0UsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNWLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqSCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2YsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDbEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ25ELENBQUM7WUFDRCxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksSUFBSSxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ2IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUM3QyxDQUFDO3FCQUFNLENBQUM7b0JBQ0osT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQztZQUNELElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLElBQUk7UUFDbEQsT0FBTyxFQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUMxQixLQUFLLEVBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3RSxPQUFPLEVBQUksSUFBSSxDQUFDLFFBQVE7UUFDeEIsRUFBRSxFQUFTLElBQUksQ0FBQyxVQUFVO0tBQzdCLEVBQUUsT0FBTyxFQUFFO1FBQ1IsS0FBSyxFQUFRLElBQUksQ0FBQyxLQUFLO1FBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtRQUM5QixLQUFLLEVBQVEsSUFBSSxDQUFDLEtBQUs7UUFDdkIsSUFBSSxFQUFTLElBQUksQ0FBQyxJQUFJO0tBQ3pCLENBQUMsQ0FBQztBQUNQLENBQUM7QUF2Q0QsMERBdUNDO0FBRU0sS0FBSyxVQUFVLDJCQUEyQixDQUFDLElBQXFELEVBQUUsS0FBWTtJQUNqSCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1YsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLE9BQU8sSUFBSTtRQUNyRCxPQUFPLEVBQUksT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7UUFDN0MsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVO1FBQzFCLEtBQUssRUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1FBQzdFLE9BQU8sRUFBSSxJQUFJLENBQUMsUUFBUTtRQUN4QixFQUFFLEVBQVMsSUFBSSxDQUFDLFVBQVU7S0FDN0IsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQWZELGtFQWVDO0FBRU0sS0FBSyxVQUFVLDZCQUE2QixDQUFDLElBQXVELEVBQUUsS0FBWTtJQUNySCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdFLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4RCxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ1YsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pILElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxPQUFPLElBQUk7UUFDdkQsT0FBTyxFQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFO1FBQzdDLFNBQVMsRUFBRSxJQUFJLENBQUMsVUFBVTtRQUMxQixLQUFLLEVBQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztRQUM3RSxPQUFPLEVBQUksSUFBSSxDQUFDLFFBQVE7UUFDeEIsRUFBRSxFQUFTLElBQUksQ0FBQyxVQUFVO0tBQzdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFsQkQsc0VBa0JDO0FBRU0sS0FBSyxVQUFVLGNBQWMsQ0FBQyxJQUF3QyxFQUFFLEtBQVk7SUFDdkYsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQXFCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3RSxNQUFNLFVBQVUsR0FBRyxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ3JFLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLG1EQUFtRCxJQUFJLENBQUMsRUFBRSxnQkFBZ0IsSUFBSSxDQUFDLFVBQVUsZ0JBQWdCLENBQUMsQ0FBQztRQUN0SSxPQUFPO0lBQ1gsQ0FBQztJQUNELE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksaUJBQU8sQ0FBQyxJQUFrQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFURCx3Q0FTQztBQUVNLEtBQUssVUFBVSxlQUFlLENBQUMsSUFBeUMsRUFBRSxLQUFZO0lBQ3pGLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELElBQUksSUFBSSxFQUFFLENBQUM7UUFDUCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUM7SUFFN0MsTUFBTSxRQUFRLEdBQUc7UUFDYixZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWE7UUFDaEMsT0FBTyxFQUFPLElBQUksQ0FBQyxRQUFRO1FBQzNCLE1BQU0sRUFBUSxJQUFJLENBQUMsTUFBTTtRQUN6QixVQUFVLEVBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLFNBQVMsRUFBTSxRQUFRLENBQUMsVUFBVTtZQUNsQyxJQUFJLEVBQVcsUUFBUSxDQUFDLElBQUk7WUFDNUIsSUFBSSxFQUFXLFFBQVEsQ0FBQyxJQUFJO1lBQzVCLGFBQWEsRUFBRSxRQUFRLENBQUMsY0FBYztZQUN0QyxNQUFNLEVBQVMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7Z0JBQzdCLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVc7Z0JBQ3ZDLFNBQVMsRUFBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVU7Z0JBQ3RDLFVBQVUsRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVc7Z0JBQ3ZDLFNBQVMsRUFBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFVBQVU7YUFDekMsQ0FBQyxDQUFDLENBQUMsU0FBUztZQUNiLE9BQU8sRUFBSyxRQUFRLENBQUMsT0FBTztZQUM1QixPQUFPLEVBQUssUUFBUSxDQUFDLE9BQU87WUFDNUIsS0FBSyxFQUFPLFFBQVEsQ0FBQyxLQUFLO1lBQzFCLEtBQUssRUFBTyxRQUFRLENBQUMsS0FBSztZQUMxQixRQUFRLEVBQUksUUFBUSxDQUFDLFFBQVE7WUFDN0IsS0FBSyxFQUFPLFFBQVEsQ0FBQyxLQUFLO1lBQzFCLE9BQU8sRUFBSyxRQUFRLENBQUMsT0FBTztZQUM1QixLQUFLLEVBQU8sUUFBUSxDQUFDLEtBQUs7WUFDMUIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVO1lBQy9CLEdBQUcsRUFBUyxRQUFRLENBQUMsR0FBRztTQUMzQixDQUFDLENBQUM7S0FDTixDQUFDO0lBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFFNUIsT0FBUSxJQUEyQyxDQUFDLElBQUksQ0FBQztJQUN6RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ1QsTUFBTSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDL0IsQ0FBQztJQUVELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsTUFBTSxJQUFJLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUN6SCxDQUFDO0FBakRELDBDQWlEQztBQUVNLEtBQUssVUFBVSxLQUFLLENBQUMsSUFBK0IsRUFBRSxLQUFZO0lBQ3JFLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMxQixDQUFDO0FBRkQsc0JBRUM7QUFFTSxLQUFLLFVBQVUsT0FBTyxDQUFDLElBQWlDLEVBQUUsS0FBWTtJQUN6RSxLQUFLLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztBQUN2QixDQUFDO0FBRkQsMEJBRUM7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQUMsSUFBK0MsRUFBRSxLQUFZO0lBQ3JHLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSx1QkFBYSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQUpELHNEQUlDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQixDQUFDLElBQStDLEVBQUUsS0FBWTtJQUNyRyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xHLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN0QyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxhQUFhLENBQUMsQ0FBQztBQUM1RCxDQUFDO0FBTEQsc0RBS0M7QUFFTSxLQUFLLFVBQVUscUJBQXFCLENBQUMsSUFBK0MsRUFBRSxLQUFZO0lBQ3JHLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLEVBQUUsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQzlFLE1BQU0sYUFBYSxHQUFHLEtBQUssRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksdUJBQWEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0FBQzlFLENBQUM7QUFMRCxzREFLQztBQUVNLEtBQUssVUFBVSxhQUFhLENBQUMsSUFBdUMsRUFBRSxLQUFZO0lBQ3JGLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBc0IsSUFBSSxDQUFDLFNBQVUsQ0FBQyxDQUFDO0lBQzlFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssd0JBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2RCxPQUFPLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBUEQsc0NBT0M7QUFFTSxLQUFLLFVBQVUsYUFBYSxDQUFDLElBQXVDLEVBQUUsS0FBWTtJQUNyRixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBc0IsSUFBSSxDQUFDLFNBQVUsQ0FBQyxDQUFDO0lBQzlFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFtQixJQUFJLENBQUMsRUFBRSxDQUFDLElBQUk7UUFDakUsRUFBRSxFQUFRLElBQUksQ0FBQyxFQUFFO1FBQ2pCLEtBQUssRUFBSyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUNoRCxPQUFPLEVBQUcsSUFBSSxDQUFDLFFBQVE7UUFDdkIsTUFBTSxFQUFJLE9BQU8sSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBVSxFQUFFO1FBQzVDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBVTtRQUN6QixJQUFJLEVBQU0sSUFBSSxDQUFDLElBQUk7S0FDdEIsQ0FBQztJQUNGLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEtBQUssd0JBQVksQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDM0YsT0FBTyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQztJQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFmRCxzQ0FlQztBQUVNLEtBQUssVUFBVSxnQkFBZ0IsQ0FBQyxJQUEwQyxFQUFFLEtBQVk7SUFDM0YsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsc0NBQXNDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ2xGLE9BQU87SUFDWCxDQUFDO0lBQ0QsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFDRCxLQUFLLE1BQU0sTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBbUIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BFLElBQUksTUFBTSxFQUFFLENBQUM7WUFDVCxNQUFNLFlBQVksR0FBaUI7Z0JBQy9CLEVBQUUsRUFBYSxNQUFNLENBQUMsRUFBRTtnQkFDeEIsS0FBSyxFQUFVLE1BQU0sQ0FBQyxLQUFLO2dCQUMzQixhQUFhLEVBQUUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQztnQkFDOUMsTUFBTSxFQUFTLE1BQU0sQ0FBQyxPQUFPO2FBQ2hDLENBQUM7WUFDRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3pFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdEMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1lBQ3pDLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztBQUNMLENBQUM7QUExQkQsNENBMEJDO0FBRU0sS0FBSyxVQUFVLG9CQUFvQixDQUFDLElBQThDLEVBQUUsS0FBWTtJQUNuRyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBbUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQWlCO1FBQy9CLEVBQUUsRUFBYSxJQUFJLENBQUMsRUFBRTtRQUN0QixLQUFLLEVBQVUsSUFBSSxDQUFDLEtBQUs7UUFDekIsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDNUMsTUFBTSxFQUFTLElBQUksQ0FBQyxPQUFPO0tBQzlCLENBQUM7SUFDRixJQUFJLGVBQWUsR0FBd0IsSUFBSSxDQUFDO0lBQ2hELElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN0QyxDQUFDO2FBQU0sQ0FBQztZQUNKLGVBQWUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQy9DLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsWUFBWSxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2Isb0JBQW9CLEVBQ3BCLE1BQU0sSUFBSTtRQUNOLEVBQUUsRUFBTyxJQUFJLENBQUMsRUFBRTtRQUNoQixLQUFLO1FBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO0tBQ3pCLEVBQ0QsWUFBWSxFQUNaLGVBQWUsQ0FDbEIsQ0FBQztBQUNOLENBQUM7QUE5QkQsb0RBOEJDO0FBRU0sS0FBSyxVQUFVLHFCQUFxQixDQUFDLElBQStDLEVBQUUsS0FBWTtJQUNyRyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBbUIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxZQUFZLEdBQXdCLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLEtBQUssRUFBVSxTQUFTLENBQUMsS0FBSztRQUM5QixFQUFFLEVBQWEsU0FBUyxDQUFDLEVBQUU7UUFDM0IsYUFBYSxFQUFFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUM7UUFDakQsTUFBTSxFQUFTLFNBQVMsQ0FBQyxPQUFPO0tBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0osTUFBTSxjQUFjLEdBQStDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVJLElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxNQUFNLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDdkMsS0FBSyxNQUFNLFNBQVMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2YsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDbkMsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsU0FBUyxDQUFDO1lBQ3RDLENBQUM7UUFDTCxDQUFDO1FBQ0QsS0FBSyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN6RCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLENBQUM7WUFDdkUsSUFBSSxXQUFXLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLGNBQWMsQ0FBQyxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNwRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDMUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ0QsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2IscUJBQXFCLEVBQ3JCLE1BQU0sSUFBSTtRQUNOLEVBQUUsRUFBTyxJQUFJLENBQUMsRUFBRTtRQUNoQixLQUFLO1FBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRO0tBQ3pCLEVBQ0QsWUFBWSxFQUNaLGNBQWMsQ0FDakIsQ0FBQztBQUNOLENBQUM7QUF0Q0Qsc0RBc0NDO0FBRU0sS0FBSyxVQUFVLGFBQWEsQ0FBQyxJQUF1QyxFQUFFLEtBQVk7SUFDckYsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQW1CLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUM7SUFDdkYsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxNQUFtQyxFQUFFLFNBQTBDLENBQUMsQ0FBQztBQUN2SCxDQUFDO0FBSkQsc0NBSUM7QUFFTSxLQUFLLFVBQVUsWUFBWSxDQUFDLElBQXNDLEVBQUUsS0FBWTtJQUNuRixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBcUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4RyxNQUFNLGNBQWMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEQsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFFBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN6RixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNsRSxPQUFPO0lBQ1gsQ0FBQztJQUNELE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQzVGLENBQUM7QUFWRCxvQ0FVQztBQUVNLEtBQUssVUFBVSxXQUFXLENBQUMsSUFBcUMsRUFBRSxLQUFZO0lBQ2pGLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xFLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDOUUsQ0FBQztBQUhELGtDQUdDO0FBRU0sS0FBSyxVQUFVLHlCQUF5QixDQUFDLElBQW1ELEVBQUUsS0FBWTtJQUM3RyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBa0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFFLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2pKLFdBQVcsRUFBSSxJQUFJLENBQUMsWUFBWTtRQUNoQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGNBQWM7S0FDckMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQVJELDhEQVFDO0FBRU0sS0FBSyxVQUFVLGtCQUFrQixDQUFDLElBQTRDLEVBQUUsS0FBWTtJQUMvRixJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzVFLHlHQUF5RztRQUN6RyxLQUFLLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQWEsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFDRCxxQ0FBcUM7SUFDckMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsT0FBTztJQUNYLENBQUM7SUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3RDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFeEYsTUFBTSxRQUFRLEdBQUcsS0FBSyxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLElBQUksQ0FBQztJQUNyRSxNQUFNLEtBQUssR0FBRyxLQUFLLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxJQUFJLG9CQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUMxRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekQsSUFBSSxRQUFRLEVBQUUsU0FBUyxLQUFLLEtBQUssQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMxQyxNQUFNLFVBQVUsR0FBRyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBOEIsUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3ZKLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLFNBQVUsRUFBRSxDQUFDO1FBRTdGLElBQUksVUFBVSxZQUFZLGlCQUFPLEVBQUUsQ0FBQztZQUNoQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxVQUFVLFlBQVksaUJBQU8sRUFBRSxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxVQUFVLElBQUksVUFBVSxFQUFFLENBQUM7WUFDM0IsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUM1RSxDQUFDO2FBQU0sSUFBSSxVQUFVLEVBQUUsQ0FBQztZQUNwQixLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDOUQsQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNsQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDL0QsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzlELEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUM1RCxDQUFDO0FBQ0wsQ0FBQztBQXZDRCxnREF1Q0M7QUFFTSxLQUFLLFVBQVUsMkJBQTJCLENBQUMsSUFBcUQsRUFBRSxLQUFZO0lBQ2pILEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFlLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ2xJLENBQUM7QUFGRCxrRUFFQztBQUVNLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxJQUE2QyxFQUFFLEtBQVk7SUFDakcseUdBQXlHO0lBQ3pHLEtBQUssQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0UsQ0FBQztBQUhELGtEQUdDO0FBRU0sS0FBSyxVQUFVLGVBQWUsQ0FBQyxJQUF5QyxFQUFFLEtBQVk7SUFDekYsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztBQUM3TSxDQUFDO0FBRkQsMENBRUMifQ==
|