@discordeno/rest 21.0.1-next.f6ea699 → 22.0.1-next.269a5bf
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/invalidBucket.d.ts.map +1 -0
- package/dist/invalidBucket.js +82 -0
- package/dist/manager.d.ts.map +1 -0
- package/dist/manager.js +1623 -0
- package/dist/queue.d.ts.map +1 -0
- package/dist/queue.js +154 -0
- package/dist/routes.d.ts.map +1 -0
- package/dist/routes.js +621 -0
- package/dist/{types/types.d.ts → types.d.ts} +9 -7
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/{types/typings → typings}/routes.d.ts +3 -3
- package/dist/typings/routes.d.ts.map +1 -0
- package/dist/typings/routes.js +3 -0
- package/package.json +14 -21
- package/dist/cjs/index.cjs +0 -25
- package/dist/cjs/invalidBucket.cjs +0 -86
- package/dist/cjs/manager.cjs +0 -1643
- package/dist/cjs/queue.cjs +0 -164
- package/dist/cjs/routes.cjs +0 -630
- package/dist/cjs/types.cjs +0 -6
- package/dist/cjs/typings/routes.cjs +0 -6
- package/dist/esm/index.js +0 -8
- package/dist/esm/invalidBucket.js +0 -82
- package/dist/esm/manager.js +0 -1601
- package/dist/esm/queue.js +0 -154
- package/dist/esm/routes.js +0 -620
- package/dist/esm/types.js +0 -3
- package/dist/esm/typings/routes.js +0 -3
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/invalidBucket.d.ts.map +0 -1
- package/dist/types/manager.d.ts.map +0 -1
- package/dist/types/queue.d.ts.map +0 -1
- package/dist/types/routes.d.ts.map +0 -1
- package/dist/types/types.d.ts.map +0 -1
- package/dist/types/typings/routes.d.ts.map +0 -1
- /package/dist/{types/index.d.ts → index.d.ts} +0 -0
- /package/dist/{types/invalidBucket.d.ts → invalidBucket.d.ts} +0 -0
- /package/dist/{types/manager.d.ts → manager.d.ts} +0 -0
- /package/dist/{types/queue.d.ts → queue.d.ts} +0 -0
- /package/dist/{types/routes.d.ts → routes.d.ts} +0 -0
package/dist/esm/routes.js
DELETED
|
@@ -1,620 +0,0 @@
|
|
|
1
|
-
import { isGetMessagesAfter, isGetMessagesAround, isGetMessagesBefore, isGetMessagesLimit } from '@discordeno/utils';
|
|
2
|
-
export function createRoutes() {
|
|
3
|
-
return {
|
|
4
|
-
webhooks: {
|
|
5
|
-
id: (webhookId)=>{
|
|
6
|
-
return `/webhooks/${webhookId}`;
|
|
7
|
-
},
|
|
8
|
-
message: (webhookId, token, messageId, options)=>{
|
|
9
|
-
let url = `/webhooks/${webhookId}/${token}/messages/${messageId}?`;
|
|
10
|
-
if (options) {
|
|
11
|
-
if (options.threadId) url += `thread_id=${options.threadId}`;
|
|
12
|
-
if (options.withComponents) url += `&with_components=${options.withComponents}`;
|
|
13
|
-
}
|
|
14
|
-
return url;
|
|
15
|
-
},
|
|
16
|
-
webhook: (webhookId, token, options)=>{
|
|
17
|
-
let url = `/webhooks/${webhookId}/${token}?`;
|
|
18
|
-
if (options) {
|
|
19
|
-
if (options?.wait !== undefined) url += `wait=${options.wait.toString()}`;
|
|
20
|
-
if (options.threadId) url += `&thread_id=${options.threadId}`;
|
|
21
|
-
if (options.withComponents) url += `&with_components=${options.withComponents}`;
|
|
22
|
-
}
|
|
23
|
-
return url;
|
|
24
|
-
}
|
|
25
|
-
},
|
|
26
|
-
// Channel Endpoints
|
|
27
|
-
channels: {
|
|
28
|
-
bulk: (channelId)=>{
|
|
29
|
-
return `/channels/${channelId}/messages/bulk-delete`;
|
|
30
|
-
},
|
|
31
|
-
dm: ()=>{
|
|
32
|
-
return '/users/@me/channels';
|
|
33
|
-
},
|
|
34
|
-
dmRecipient: (channelId, userId)=>{
|
|
35
|
-
return `/channels/${channelId}/recipients/${userId}`;
|
|
36
|
-
},
|
|
37
|
-
pin: (channelId, messageId)=>{
|
|
38
|
-
return `/channels/${channelId}/pins/${messageId}`;
|
|
39
|
-
},
|
|
40
|
-
pins: (channelId)=>{
|
|
41
|
-
return `/channels/${channelId}/pins`;
|
|
42
|
-
},
|
|
43
|
-
messagePins: (channelId, options)=>{
|
|
44
|
-
let url = `/channels/${channelId}/messages/pins?`;
|
|
45
|
-
if (options) {
|
|
46
|
-
if (options.before) url += `before=${options.before}`;
|
|
47
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
48
|
-
}
|
|
49
|
-
return url;
|
|
50
|
-
},
|
|
51
|
-
messagePin: (channelId, messageId)=>{
|
|
52
|
-
return `/channels/${channelId}/messages/pins/${messageId}`;
|
|
53
|
-
},
|
|
54
|
-
reactions: {
|
|
55
|
-
bot: (channelId, messageId, emoji)=>{
|
|
56
|
-
return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/@me`;
|
|
57
|
-
},
|
|
58
|
-
user: (channelId, messageId, emoji, userId)=>{
|
|
59
|
-
return `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}/${userId}`;
|
|
60
|
-
},
|
|
61
|
-
all: (channelId, messageId)=>{
|
|
62
|
-
return `/channels/${channelId}/messages/${messageId}/reactions`;
|
|
63
|
-
},
|
|
64
|
-
emoji: (channelId, messageId, emoji, options)=>{
|
|
65
|
-
let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
|
|
66
|
-
if (options) {
|
|
67
|
-
if (options.type) url += `type=${options.type}`;
|
|
68
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
69
|
-
if (options.after) url += `&after=${options.after}`;
|
|
70
|
-
// eslint-disable-next-line @typescript-eslint/restrict-template-expressions
|
|
71
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
72
|
-
}
|
|
73
|
-
return url;
|
|
74
|
-
},
|
|
75
|
-
message: (channelId, messageId, emoji, options)=>{
|
|
76
|
-
let url = `/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}?`;
|
|
77
|
-
if (options) {
|
|
78
|
-
if (options.after) url += `after=${options.after}`;
|
|
79
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
80
|
-
}
|
|
81
|
-
return url;
|
|
82
|
-
}
|
|
83
|
-
},
|
|
84
|
-
webhooks: (channelId)=>{
|
|
85
|
-
return `/channels/${channelId}/webhooks`;
|
|
86
|
-
},
|
|
87
|
-
channel: (channelId)=>{
|
|
88
|
-
return `/channels/${channelId}`;
|
|
89
|
-
},
|
|
90
|
-
follow: (channelId)=>{
|
|
91
|
-
return `/channels/${channelId}/followers`;
|
|
92
|
-
},
|
|
93
|
-
forum: (channelId)=>{
|
|
94
|
-
return `/channels/${channelId}/threads`;
|
|
95
|
-
},
|
|
96
|
-
invites: (channelId)=>{
|
|
97
|
-
return `/channels/${channelId}/invites`;
|
|
98
|
-
},
|
|
99
|
-
message: (channelId, messageId)=>{
|
|
100
|
-
return `/channels/${channelId}/messages/${messageId}`;
|
|
101
|
-
},
|
|
102
|
-
messages: (channelId, options)=>{
|
|
103
|
-
let url = `/channels/${channelId}/messages?`;
|
|
104
|
-
if (options) {
|
|
105
|
-
if (isGetMessagesAfter(options) && options.after) {
|
|
106
|
-
url += `after=${options.after}`;
|
|
107
|
-
}
|
|
108
|
-
if (isGetMessagesBefore(options) && options.before) {
|
|
109
|
-
url += `&before=${options.before}`;
|
|
110
|
-
}
|
|
111
|
-
if (isGetMessagesAround(options) && options.around) {
|
|
112
|
-
url += `&around=${options.around}`;
|
|
113
|
-
}
|
|
114
|
-
if (isGetMessagesLimit(options) && options.limit) {
|
|
115
|
-
url += `&limit=${options.limit}`;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return url;
|
|
119
|
-
},
|
|
120
|
-
overwrite: (channelId, overwriteId)=>{
|
|
121
|
-
return `/channels/${channelId}/permissions/${overwriteId}`;
|
|
122
|
-
},
|
|
123
|
-
crosspost: (channelId, messageId)=>{
|
|
124
|
-
return `/channels/${channelId}/messages/${messageId}/crosspost`;
|
|
125
|
-
},
|
|
126
|
-
stages: ()=>{
|
|
127
|
-
return '/stage-instances';
|
|
128
|
-
},
|
|
129
|
-
stage: (channelId)=>{
|
|
130
|
-
return `/stage-instances/${channelId}`;
|
|
131
|
-
},
|
|
132
|
-
// Thread Endpoints
|
|
133
|
-
threads: {
|
|
134
|
-
message: (channelId, messageId)=>{
|
|
135
|
-
return `/channels/${channelId}/messages/${messageId}/threads`;
|
|
136
|
-
},
|
|
137
|
-
all: (channelId)=>{
|
|
138
|
-
return `/channels/${channelId}/threads`;
|
|
139
|
-
},
|
|
140
|
-
active: (guildId)=>{
|
|
141
|
-
return `/guilds/${guildId}/threads/active`;
|
|
142
|
-
},
|
|
143
|
-
members: (channelId, options)=>{
|
|
144
|
-
let url = `/channels/${channelId}/thread-members?`;
|
|
145
|
-
if (options) {
|
|
146
|
-
if (options.withMember) url += `with_member=${options.withMember}`;
|
|
147
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
148
|
-
if (options.after) url += `&after=${options.after}`;
|
|
149
|
-
}
|
|
150
|
-
return url;
|
|
151
|
-
},
|
|
152
|
-
me: (channelId)=>{
|
|
153
|
-
return `/channels/${channelId}/thread-members/@me`;
|
|
154
|
-
},
|
|
155
|
-
getUser (channelId, userId, options) {
|
|
156
|
-
let url = `/channels/${channelId}/thread-members/${userId}?`;
|
|
157
|
-
if (options) {
|
|
158
|
-
if (options.withMember) url += `with_member=${options.withMember}`;
|
|
159
|
-
}
|
|
160
|
-
return url;
|
|
161
|
-
},
|
|
162
|
-
user: (channelId, userId)=>{
|
|
163
|
-
return `/channels/${channelId}/thread-members/${userId}`;
|
|
164
|
-
},
|
|
165
|
-
archived: (channelId)=>{
|
|
166
|
-
return `/channels/${channelId}/threads/archived`;
|
|
167
|
-
},
|
|
168
|
-
public: (channelId, options)=>{
|
|
169
|
-
let url = `/channels/${channelId}/threads/archived/public?`;
|
|
170
|
-
if (options) {
|
|
171
|
-
if (options.before) {
|
|
172
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
173
|
-
}
|
|
174
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
175
|
-
}
|
|
176
|
-
return url;
|
|
177
|
-
},
|
|
178
|
-
private: (channelId, options)=>{
|
|
179
|
-
let url = `/channels/${channelId}/threads/archived/private?`;
|
|
180
|
-
if (options) {
|
|
181
|
-
if (options.before) {
|
|
182
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
183
|
-
}
|
|
184
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
185
|
-
}
|
|
186
|
-
return url;
|
|
187
|
-
},
|
|
188
|
-
joined: (channelId, options)=>{
|
|
189
|
-
let url = `/channels/${channelId}/users/@me/threads/archived/private?`;
|
|
190
|
-
if (options) {
|
|
191
|
-
if (options.before) {
|
|
192
|
-
url += `before=${new Date(options.before).toISOString()}`;
|
|
193
|
-
}
|
|
194
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
195
|
-
}
|
|
196
|
-
return url;
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
typing: (channelId)=>{
|
|
200
|
-
return `/channels/${channelId}/typing`;
|
|
201
|
-
},
|
|
202
|
-
polls: {
|
|
203
|
-
votes: (channelId, messageId, answerId, options)=>{
|
|
204
|
-
let url = `/channels/${channelId}/polls/${messageId}/answers/${answerId}?`;
|
|
205
|
-
if (options) {
|
|
206
|
-
if (options.after) url += `after=${options.after}`;
|
|
207
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
208
|
-
}
|
|
209
|
-
return url;
|
|
210
|
-
},
|
|
211
|
-
expire: (channelId, messageId)=>{
|
|
212
|
-
return `/channels/${channelId}/polls/${messageId}/expire`;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
// Guild Endpoints
|
|
217
|
-
guilds: {
|
|
218
|
-
all: ()=>{
|
|
219
|
-
return '/guilds';
|
|
220
|
-
},
|
|
221
|
-
userGuilds: (options)=>{
|
|
222
|
-
let url = '/users/@me/guilds?';
|
|
223
|
-
if (options) {
|
|
224
|
-
if (options.after) url += `after=${options.after}`;
|
|
225
|
-
if (options.before) url += `&before=${options.before}`;
|
|
226
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
227
|
-
if (options.withCounts) url += `&with_counts=${options.withCounts}`;
|
|
228
|
-
}
|
|
229
|
-
return url;
|
|
230
|
-
},
|
|
231
|
-
auditlogs: (guildId, options)=>{
|
|
232
|
-
let url = `/guilds/${guildId}/audit-logs?`;
|
|
233
|
-
if (options) {
|
|
234
|
-
if (options.actionType) url += `action_type=${options.actionType}`;
|
|
235
|
-
if (options.before) url += `&before=${options.before}`;
|
|
236
|
-
if (options.after) url += `&after=${options.after}`;
|
|
237
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
238
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
239
|
-
}
|
|
240
|
-
return url;
|
|
241
|
-
},
|
|
242
|
-
automod: {
|
|
243
|
-
rule: (guildId, ruleId)=>{
|
|
244
|
-
return `/guilds/${guildId}/auto-moderation/rules/${ruleId}`;
|
|
245
|
-
},
|
|
246
|
-
rules: (guildId)=>{
|
|
247
|
-
return `/guilds/${guildId}/auto-moderation/rules`;
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
channels: (guildId)=>{
|
|
251
|
-
return `/guilds/${guildId}/channels`;
|
|
252
|
-
},
|
|
253
|
-
emoji: (guildId, emojiId)=>{
|
|
254
|
-
return `/guilds/${guildId}/emojis/${emojiId}`;
|
|
255
|
-
},
|
|
256
|
-
emojis: (guildId)=>{
|
|
257
|
-
return `/guilds/${guildId}/emojis`;
|
|
258
|
-
},
|
|
259
|
-
events: {
|
|
260
|
-
events: (guildId, withUserCount)=>{
|
|
261
|
-
let url = `/guilds/${guildId}/scheduled-events?`;
|
|
262
|
-
if (withUserCount !== undefined) {
|
|
263
|
-
url += `with_user_count=${withUserCount.toString()}`;
|
|
264
|
-
}
|
|
265
|
-
return url;
|
|
266
|
-
},
|
|
267
|
-
event: (guildId, eventId, withUserCount)=>{
|
|
268
|
-
let url = `/guilds/${guildId}/scheduled-events/${eventId}`;
|
|
269
|
-
if (withUserCount !== undefined) {
|
|
270
|
-
url += `with_user_count=${withUserCount.toString()}`;
|
|
271
|
-
}
|
|
272
|
-
return url;
|
|
273
|
-
},
|
|
274
|
-
users: (guildId, eventId, options)=>{
|
|
275
|
-
let url = `/guilds/${guildId}/scheduled-events/${eventId}/users?`;
|
|
276
|
-
if (options) {
|
|
277
|
-
if (options.limit !== undefined) url += `limit=${options.limit}`;
|
|
278
|
-
if (options.withMember !== undefined) {
|
|
279
|
-
url += `&with_member=${options.withMember.toString()}`;
|
|
280
|
-
}
|
|
281
|
-
if (options.after !== undefined) url += `&after=${options.after}`;
|
|
282
|
-
if (options.before !== undefined) url += `&before=${options.before}`;
|
|
283
|
-
}
|
|
284
|
-
return url;
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
guild (guildId, withCounts) {
|
|
288
|
-
let url = `/guilds/${guildId}?`;
|
|
289
|
-
if (withCounts !== undefined) {
|
|
290
|
-
url += `with_counts=${withCounts.toString()}`;
|
|
291
|
-
}
|
|
292
|
-
return url;
|
|
293
|
-
},
|
|
294
|
-
integration (guildId, integrationId) {
|
|
295
|
-
return `/guilds/${guildId}/integrations/${integrationId}`;
|
|
296
|
-
},
|
|
297
|
-
integrations: (guildId)=>{
|
|
298
|
-
return `/guilds/${guildId}/integrations?include_applications=true`;
|
|
299
|
-
},
|
|
300
|
-
invite (inviteCode, options) {
|
|
301
|
-
let url = `/invites/${inviteCode}?`;
|
|
302
|
-
if (options) {
|
|
303
|
-
if (options.withCounts !== undefined) {
|
|
304
|
-
url += `with_counts=${options.withCounts.toString()}`;
|
|
305
|
-
}
|
|
306
|
-
if (options.withExpiration !== undefined) {
|
|
307
|
-
url += `&with_expiration=${options.withExpiration.toString()}`;
|
|
308
|
-
}
|
|
309
|
-
if (options.scheduledEventId) {
|
|
310
|
-
url += `&guild_scheduled_event_id=${options.scheduledEventId}`;
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
return url;
|
|
314
|
-
},
|
|
315
|
-
invites: (guildId)=>{
|
|
316
|
-
return `/guilds/${guildId}/invites`;
|
|
317
|
-
},
|
|
318
|
-
leave: (guildId)=>{
|
|
319
|
-
return `/users/@me/guilds/${guildId}`;
|
|
320
|
-
},
|
|
321
|
-
members: {
|
|
322
|
-
ban: (guildId, userId)=>{
|
|
323
|
-
return `/guilds/${guildId}/bans/${userId}`;
|
|
324
|
-
},
|
|
325
|
-
bans: (guildId, options)=>{
|
|
326
|
-
let url = `/guilds/${guildId}/bans?`;
|
|
327
|
-
if (options) {
|
|
328
|
-
if (options.limit) url += `limit=${options.limit}`;
|
|
329
|
-
if (options.after) url += `&after=${options.after}`;
|
|
330
|
-
if (options.before) url += `&before=${options.before}`;
|
|
331
|
-
}
|
|
332
|
-
return url;
|
|
333
|
-
},
|
|
334
|
-
bulkBan: (guildId)=>{
|
|
335
|
-
return `/guilds/${guildId}/bulk-ban`;
|
|
336
|
-
},
|
|
337
|
-
bot: (guildId)=>{
|
|
338
|
-
return `/guilds/${guildId}/members/@me`;
|
|
339
|
-
},
|
|
340
|
-
member: (guildId, userId)=>{
|
|
341
|
-
return `/guilds/${guildId}/members/${userId}`;
|
|
342
|
-
},
|
|
343
|
-
currentMember: (guildId)=>{
|
|
344
|
-
return `/users/@me/guilds/${guildId}/member`;
|
|
345
|
-
},
|
|
346
|
-
members: (guildId, options)=>{
|
|
347
|
-
let url = `/guilds/${guildId}/members?`;
|
|
348
|
-
if (options !== undefined) {
|
|
349
|
-
if (options.limit) url += `limit=${options.limit}`;
|
|
350
|
-
if (options.after) url += `&after=${options.after}`;
|
|
351
|
-
}
|
|
352
|
-
return url;
|
|
353
|
-
},
|
|
354
|
-
search: (guildId, query, options)=>{
|
|
355
|
-
let url = `/guilds/${guildId}/members/search?query=${encodeURIComponent(query)}`;
|
|
356
|
-
if (options) {
|
|
357
|
-
if (options.limit !== undefined) url += `&limit=${options.limit}`;
|
|
358
|
-
}
|
|
359
|
-
return url;
|
|
360
|
-
},
|
|
361
|
-
prune: (guildId, options)=>{
|
|
362
|
-
let url = `/guilds/${guildId}/prune?`;
|
|
363
|
-
if (options) {
|
|
364
|
-
if (options.days) url += `days=${options.days}`;
|
|
365
|
-
if (Array.isArray(options.includeRoles)) {
|
|
366
|
-
url += `&include_roles=${options.includeRoles.join(',')}`;
|
|
367
|
-
} else if (options.includeRoles) {
|
|
368
|
-
url += `&include_roles=${options.includeRoles}`;
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
return url;
|
|
372
|
-
}
|
|
373
|
-
},
|
|
374
|
-
preview: (guildId)=>{
|
|
375
|
-
return `/guilds/${guildId}/preview`;
|
|
376
|
-
},
|
|
377
|
-
prune: (guildId, options)=>{
|
|
378
|
-
let url = `/guilds/${guildId}/prune?`;
|
|
379
|
-
if (options) {
|
|
380
|
-
if (options.days) url += `days=${options.days}`;
|
|
381
|
-
if (Array.isArray(options.includeRoles)) {
|
|
382
|
-
url += `&include_roles=${options.includeRoles.join(',')}`;
|
|
383
|
-
} else if (options.includeRoles) {
|
|
384
|
-
url += `&include_roles=${options.includeRoles}`;
|
|
385
|
-
}
|
|
386
|
-
}
|
|
387
|
-
return url;
|
|
388
|
-
},
|
|
389
|
-
roles: {
|
|
390
|
-
one: (guildId, roleId)=>{
|
|
391
|
-
return `/guilds/${guildId}/roles/${roleId}`;
|
|
392
|
-
},
|
|
393
|
-
all: (guildId)=>{
|
|
394
|
-
return `/guilds/${guildId}/roles`;
|
|
395
|
-
},
|
|
396
|
-
member: (guildId, memberId, roleId)=>{
|
|
397
|
-
return `/guilds/${guildId}/members/${memberId}/roles/${roleId}`;
|
|
398
|
-
}
|
|
399
|
-
},
|
|
400
|
-
stickers: (guildId)=>{
|
|
401
|
-
return `/guilds/${guildId}/stickers`;
|
|
402
|
-
},
|
|
403
|
-
sticker: (guildId, stickerId)=>{
|
|
404
|
-
return `/guilds/${guildId}/stickers/${stickerId}`;
|
|
405
|
-
},
|
|
406
|
-
voice: (guildId, userId)=>{
|
|
407
|
-
return `/guilds/${guildId}/voice-states/${userId ?? '@me'}`;
|
|
408
|
-
},
|
|
409
|
-
templates: {
|
|
410
|
-
code: (code)=>{
|
|
411
|
-
return `/guilds/templates/${code}`;
|
|
412
|
-
},
|
|
413
|
-
guild: (guildId, code)=>{
|
|
414
|
-
return `/guilds/${guildId}/templates/${code}`;
|
|
415
|
-
},
|
|
416
|
-
all: (guildId)=>{
|
|
417
|
-
return `/guilds/${guildId}/templates`;
|
|
418
|
-
}
|
|
419
|
-
},
|
|
420
|
-
vanity: (guildId)=>{
|
|
421
|
-
return `/guilds/${guildId}/vanity-url`;
|
|
422
|
-
},
|
|
423
|
-
regions: (guildId)=>{
|
|
424
|
-
return `/guilds/${guildId}/regions`;
|
|
425
|
-
},
|
|
426
|
-
webhooks: (guildId)=>{
|
|
427
|
-
return `/guilds/${guildId}/webhooks`;
|
|
428
|
-
},
|
|
429
|
-
welcome: (guildId)=>{
|
|
430
|
-
return `/guilds/${guildId}/welcome-screen`;
|
|
431
|
-
},
|
|
432
|
-
widget: (guildId)=>{
|
|
433
|
-
return `/guilds/${guildId}/widget`;
|
|
434
|
-
},
|
|
435
|
-
widgetJson: (guildId)=>{
|
|
436
|
-
return `/guilds/${guildId}/widget.json`;
|
|
437
|
-
},
|
|
438
|
-
onboarding: (guildId)=>{
|
|
439
|
-
return `/guilds/${guildId}/onboarding`;
|
|
440
|
-
},
|
|
441
|
-
incidentActions: (guildId)=>{
|
|
442
|
-
return `/guilds/${guildId}/incident-actions`;
|
|
443
|
-
}
|
|
444
|
-
},
|
|
445
|
-
sticker: (stickerId)=>{
|
|
446
|
-
return `/stickers/${stickerId}`;
|
|
447
|
-
},
|
|
448
|
-
regions: ()=>{
|
|
449
|
-
return '/voice/regions';
|
|
450
|
-
},
|
|
451
|
-
// Interaction Endpoints
|
|
452
|
-
interactions: {
|
|
453
|
-
commands: {
|
|
454
|
-
// Application Endpoints
|
|
455
|
-
commands: (applicationId)=>{
|
|
456
|
-
return `/applications/${applicationId}/commands`;
|
|
457
|
-
},
|
|
458
|
-
guilds: {
|
|
459
|
-
all (applicationId, guildId) {
|
|
460
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands`;
|
|
461
|
-
},
|
|
462
|
-
one (applicationId, guildId, commandId, withLocalizations) {
|
|
463
|
-
let url = `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}?`;
|
|
464
|
-
if (withLocalizations !== undefined) {
|
|
465
|
-
url += `with_localizations=${withLocalizations.toString()}`;
|
|
466
|
-
}
|
|
467
|
-
return url;
|
|
468
|
-
}
|
|
469
|
-
},
|
|
470
|
-
permissions: (applicationId, guildId)=>{
|
|
471
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands/permissions`;
|
|
472
|
-
},
|
|
473
|
-
permission: (applicationId, guildId, commandId)=>{
|
|
474
|
-
return `/applications/${applicationId}/guilds/${guildId}/commands/${commandId}/permissions`;
|
|
475
|
-
},
|
|
476
|
-
command: (applicationId, commandId, withLocalizations)=>{
|
|
477
|
-
let url = `/applications/${applicationId}/commands/${commandId}?`;
|
|
478
|
-
if (withLocalizations !== undefined) {
|
|
479
|
-
url += `withLocalizations=${withLocalizations.toString()}`;
|
|
480
|
-
}
|
|
481
|
-
return url;
|
|
482
|
-
}
|
|
483
|
-
},
|
|
484
|
-
responses: {
|
|
485
|
-
// Interaction Endpoints
|
|
486
|
-
callback: (interactionId, token, options)=>{
|
|
487
|
-
return `/interactions/${interactionId}/${token}/callback?with_response=${!!options?.withResponse}`;
|
|
488
|
-
},
|
|
489
|
-
original: (interactionId, token)=>{
|
|
490
|
-
return `/webhooks/${interactionId}/${token}/messages/@original`;
|
|
491
|
-
},
|
|
492
|
-
message: (applicationId, token, messageId)=>{
|
|
493
|
-
return `/webhooks/${applicationId}/${token}/messages/${messageId}`;
|
|
494
|
-
}
|
|
495
|
-
}
|
|
496
|
-
},
|
|
497
|
-
// OAuth2 endpoints
|
|
498
|
-
oauth2: {
|
|
499
|
-
tokenExchange: ()=>{
|
|
500
|
-
return '/oauth2/token';
|
|
501
|
-
},
|
|
502
|
-
tokenRevoke: ()=>{
|
|
503
|
-
return '/oauth2/token/revoke';
|
|
504
|
-
},
|
|
505
|
-
currentAuthorization: ()=>{
|
|
506
|
-
return '/oauth2/@me';
|
|
507
|
-
},
|
|
508
|
-
application: ()=>{
|
|
509
|
-
return '/oauth2/applications/@me';
|
|
510
|
-
},
|
|
511
|
-
connections: ()=>{
|
|
512
|
-
return '/users/@me/connections';
|
|
513
|
-
},
|
|
514
|
-
roleConnections: (applicationId)=>{
|
|
515
|
-
return `/users/@me/applications/${applicationId}/role-connection`;
|
|
516
|
-
}
|
|
517
|
-
},
|
|
518
|
-
monetization: {
|
|
519
|
-
entitlements: (applicationId, options)=>{
|
|
520
|
-
let url = `/applications/${applicationId}/entitlements?`;
|
|
521
|
-
if (options) {
|
|
522
|
-
if (options.after) url += `after=${options.after}`;
|
|
523
|
-
if (options.before) url += `&before=${options.before}`;
|
|
524
|
-
if (options.excludeEnded) url += `&exclude_ended=${options.excludeEnded}`;
|
|
525
|
-
if (options.guildId) url += `&guild_id=${options.guildId}`;
|
|
526
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
527
|
-
if (options.skuIds) url += `&sku_ids=${options.skuIds.join(',')}`;
|
|
528
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
529
|
-
}
|
|
530
|
-
return url;
|
|
531
|
-
},
|
|
532
|
-
entitlement: (applicationId, entitlementId)=>{
|
|
533
|
-
return `/applications/${applicationId}/entitlements/${entitlementId}`;
|
|
534
|
-
},
|
|
535
|
-
consumeEntitlement: (applicationId, entitlementId)=>{
|
|
536
|
-
return `/applications/${applicationId}/entitlements/${entitlementId}/consume`;
|
|
537
|
-
},
|
|
538
|
-
skus: (applicationId)=>{
|
|
539
|
-
return `/applications/${applicationId}/skus`;
|
|
540
|
-
},
|
|
541
|
-
subscription: (skuId, subscriptionId)=>{
|
|
542
|
-
return `/skus/${skuId}/subscriptions/${subscriptionId}`;
|
|
543
|
-
},
|
|
544
|
-
subscriptions: (skuId, options)=>{
|
|
545
|
-
let url = `/skus/${skuId}/subscriptions?`;
|
|
546
|
-
if (options) {
|
|
547
|
-
if (options.after) url += `after=${options.after}`;
|
|
548
|
-
if (options.before) url += `&before=${options.before}`;
|
|
549
|
-
if (options.userId) url += `&user_id=${options.userId}`;
|
|
550
|
-
if (options.limit) url += `&limit=${options.limit}`;
|
|
551
|
-
}
|
|
552
|
-
return url;
|
|
553
|
-
}
|
|
554
|
-
},
|
|
555
|
-
soundboard: {
|
|
556
|
-
sendSound: (channelId)=>{
|
|
557
|
-
return `/channels/${channelId}`;
|
|
558
|
-
},
|
|
559
|
-
listDefault: ()=>{
|
|
560
|
-
return `/soundboard-default-sounds`;
|
|
561
|
-
},
|
|
562
|
-
guildSounds: (guildId)=>{
|
|
563
|
-
return `/guilds/${guildId}/soundboard-sounds`;
|
|
564
|
-
},
|
|
565
|
-
guildSound: (guildId, soundId)=>{
|
|
566
|
-
return `/guilds/${guildId}/soundboard-sounds/${soundId}`;
|
|
567
|
-
}
|
|
568
|
-
},
|
|
569
|
-
lobby: {
|
|
570
|
-
create: ()=>{
|
|
571
|
-
return '/lobbies';
|
|
572
|
-
},
|
|
573
|
-
lobby: (lobbyId)=>{
|
|
574
|
-
return `/lobbies/${lobbyId}`;
|
|
575
|
-
},
|
|
576
|
-
member: (lobbyId, userId)=>{
|
|
577
|
-
return `/lobbies/${lobbyId}/members/${userId}`;
|
|
578
|
-
},
|
|
579
|
-
leave: (lobbyId)=>{
|
|
580
|
-
return `/lobbies/${lobbyId}/members/@me`;
|
|
581
|
-
},
|
|
582
|
-
link: (lobbyId)=>{
|
|
583
|
-
return `/lobbies/${lobbyId}/channel-linking`;
|
|
584
|
-
}
|
|
585
|
-
},
|
|
586
|
-
applicationEmoji (applicationId, emojiId) {
|
|
587
|
-
return `/applications/${applicationId}/emojis/${emojiId}`;
|
|
588
|
-
},
|
|
589
|
-
applicationEmojis (applicationId) {
|
|
590
|
-
return `/applications/${applicationId}/emojis`;
|
|
591
|
-
},
|
|
592
|
-
applicationRoleConnectionMetadata (applicationId) {
|
|
593
|
-
return `/applications/${applicationId}/role-connections/metadata`;
|
|
594
|
-
},
|
|
595
|
-
// User endpoints
|
|
596
|
-
user (userId) {
|
|
597
|
-
return `/users/${userId}`;
|
|
598
|
-
},
|
|
599
|
-
application () {
|
|
600
|
-
return '/applications/@me';
|
|
601
|
-
},
|
|
602
|
-
applicationActivityInstance (applicationId, instanceId) {
|
|
603
|
-
return `/applications/${applicationId}/activity-instances/${instanceId}`;
|
|
604
|
-
},
|
|
605
|
-
currentUser () {
|
|
606
|
-
return '/users/@me';
|
|
607
|
-
},
|
|
608
|
-
gatewayBot () {
|
|
609
|
-
return '/gateway/bot';
|
|
610
|
-
},
|
|
611
|
-
stickerPack (stickerPackId) {
|
|
612
|
-
return `/sticker-packs/${stickerPackId}`;
|
|
613
|
-
},
|
|
614
|
-
stickerPacks () {
|
|
615
|
-
return '/sticker-packs';
|
|
616
|
-
}
|
|
617
|
-
};
|
|
618
|
-
}
|
|
619
|
-
|
|
620
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb3V0ZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHZXRNZXNzYWdlc09wdGlvbnMsIEdldFNjaGVkdWxlZEV2ZW50VXNlcnMgfSBmcm9tICdAZGlzY29yZGVuby90eXBlcydcbmltcG9ydCB7IGlzR2V0TWVzc2FnZXNBZnRlciwgaXNHZXRNZXNzYWdlc0Fyb3VuZCwgaXNHZXRNZXNzYWdlc0JlZm9yZSwgaXNHZXRNZXNzYWdlc0xpbWl0IH0gZnJvbSAnQGRpc2NvcmRlbm8vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IFJlc3RSb3V0ZXMgfSBmcm9tICcuL3R5cGluZ3Mvcm91dGVzLmpzJ1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUm91dGVzKCk6IFJlc3RSb3V0ZXMge1xuICByZXR1cm4ge1xuICAgIHdlYmhvb2tzOiB7XG4gICAgICBpZDogKHdlYmhvb2tJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC93ZWJob29rcy8ke3dlYmhvb2tJZH1gXG4gICAgICB9LFxuICAgICAgbWVzc2FnZTogKHdlYmhvb2tJZCwgdG9rZW4sIG1lc3NhZ2VJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC93ZWJob29rcy8ke3dlYmhvb2tJZH0vJHt0b2tlbn0vbWVzc2FnZXMvJHttZXNzYWdlSWR9P2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLnRocmVhZElkKSB1cmwgKz0gYHRocmVhZF9pZD0ke29wdGlvbnMudGhyZWFkSWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLndpdGhDb21wb25lbnRzKSB1cmwgKz0gYCZ3aXRoX2NvbXBvbmVudHM9JHtvcHRpb25zLndpdGhDb21wb25lbnRzfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICB3ZWJob29rOiAod2ViaG9va0lkLCB0b2tlbiwgb3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC93ZWJob29rcy8ke3dlYmhvb2tJZH0vJHt0b2tlbn0/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnM/LndhaXQgIT09IHVuZGVmaW5lZCkgdXJsICs9IGB3YWl0PSR7b3B0aW9ucy53YWl0LnRvU3RyaW5nKCl9YFxuICAgICAgICAgIGlmIChvcHRpb25zLnRocmVhZElkKSB1cmwgKz0gYCZ0aHJlYWRfaWQ9JHtvcHRpb25zLnRocmVhZElkfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy53aXRoQ29tcG9uZW50cykgdXJsICs9IGAmd2l0aF9jb21wb25lbnRzPSR7b3B0aW9ucy53aXRoQ29tcG9uZW50c31gXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAvLyBDaGFubmVsIEVuZHBvaW50c1xuICAgIGNoYW5uZWxzOiB7XG4gICAgICBidWxrOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy9idWxrLWRlbGV0ZWBcbiAgICAgIH0sXG4gICAgICBkbTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy91c2Vycy9AbWUvY2hhbm5lbHMnXG4gICAgICB9LFxuICAgICAgZG1SZWNpcGllbnQ6IChjaGFubmVsSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vcmVjaXBpZW50cy8ke3VzZXJJZH1gXG4gICAgICB9LFxuICAgICAgcGluOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BpbnMvJHttZXNzYWdlSWR9YFxuICAgICAgfSxcbiAgICAgIHBpbnM6IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BpbnNgXG4gICAgICB9LFxuICAgICAgbWVzc2FnZVBpbnM6IChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzL3BpbnM/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYGJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBtZXNzYWdlUGluOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzL3BpbnMvJHttZXNzYWdlSWR9YFxuICAgICAgfSxcbiAgICAgIHJlYWN0aW9uczoge1xuICAgICAgICBib3Q6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgZW1vamkpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vbWVzc2FnZXMvJHttZXNzYWdlSWR9L3JlYWN0aW9ucy8ke2VuY29kZVVSSUNvbXBvbmVudChlbW9qaSl9L0BtZWBcbiAgICAgICAgfSxcbiAgICAgICAgdXNlcjogKGNoYW5uZWxJZCwgbWVzc2FnZUlkLCBlbW9qaSwgdXNlcklkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfS8ke3VzZXJJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIGVtb2ppOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIGVtb2ppLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudHlwZSkgdXJsICs9IGB0eXBlPSR7b3B0aW9ucy50eXBlfWBcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvcmVzdHJpY3QtdGVtcGxhdGUtZXhwcmVzc2lvbnNcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9yZXN0cmljdC10ZW1wbGF0ZS1leHByZXNzaW9uc1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMubGltaXQpIHVybCArPSBgJmxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlOiAoY2hhbm5lbElkLCBtZXNzYWdlSWQsIGVtb2ppLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L21lc3NhZ2VzLyR7bWVzc2FnZUlkfS9yZWFjdGlvbnMvJHtlbmNvZGVVUklDb21wb25lbnQoZW1vamkpfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgYWZ0ZXI9JHtvcHRpb25zLmFmdGVyfWBcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB3ZWJob29rczogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vd2ViaG9va3NgXG4gICAgICB9LFxuXG4gICAgICBjaGFubmVsOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfWBcbiAgICAgIH0sXG5cbiAgICAgIGZvbGxvdzogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vZm9sbG93ZXJzYFxuICAgICAgfSxcblxuICAgICAgZm9ydW06IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZHNgXG4gICAgICB9LFxuXG4gICAgICBpbnZpdGVzOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9pbnZpdGVzYFxuICAgICAgfSxcblxuICAgICAgbWVzc2FnZTogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH1gXG4gICAgICB9LFxuXG4gICAgICBtZXNzYWdlczogKGNoYW5uZWxJZCwgb3B0aW9ucz86IEdldE1lc3NhZ2VzT3B0aW9ucykgPT4ge1xuICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vbWVzc2FnZXM/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKGlzR2V0TWVzc2FnZXNBZnRlcihvcHRpb25zKSAmJiBvcHRpb25zLmFmdGVyKSB7XG4gICAgICAgICAgICB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzQmVmb3JlKG9wdGlvbnMpICYmIG9wdGlvbnMuYmVmb3JlKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzQXJvdW5kKG9wdGlvbnMpICYmIG9wdGlvbnMuYXJvdW5kKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZhcm91bmQ9JHtvcHRpb25zLmFyb3VuZH1gXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpc0dldE1lc3NhZ2VzTGltaXQob3B0aW9ucykgJiYgb3B0aW9ucy5saW1pdCkge1xuICAgICAgICAgICAgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdXJsXG4gICAgICB9LFxuXG4gICAgICBvdmVyd3JpdGU6IChjaGFubmVsSWQsIG92ZXJ3cml0ZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9wZXJtaXNzaW9ucy8ke292ZXJ3cml0ZUlkfWBcbiAgICAgIH0sXG5cbiAgICAgIGNyb3NzcG9zdDogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH0vY3Jvc3Nwb3N0YFxuICAgICAgfSxcblxuICAgICAgc3RhZ2VzOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL3N0YWdlLWluc3RhbmNlcydcbiAgICAgIH0sXG5cbiAgICAgIHN0YWdlOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL3N0YWdlLWluc3RhbmNlcy8ke2NoYW5uZWxJZH1gXG4gICAgICB9LFxuXG4gICAgICAvLyBUaHJlYWQgRW5kcG9pbnRzXG4gICAgICB0aHJlYWRzOiB7XG4gICAgICAgIG1lc3NhZ2U6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS9tZXNzYWdlcy8ke21lc3NhZ2VJZH0vdGhyZWFkc2BcbiAgICAgICAgfSxcbiAgICAgICAgYWxsOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZHNgXG4gICAgICAgIH0sXG4gICAgICAgIGFjdGl2ZTogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS90aHJlYWRzL2FjdGl2ZWBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyczogKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWQtbWVtYmVycz9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMud2l0aE1lbWJlcikgdXJsICs9IGB3aXRoX21lbWJlcj0ke29wdGlvbnMud2l0aE1lbWJlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgbWU6IChjaGFubmVsSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkLW1lbWJlcnMvQG1lYFxuICAgICAgICB9LFxuICAgICAgICBnZXRVc2VyKGNoYW5uZWxJZCwgdXNlcklkLCBvcHRpb25zKSB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3RocmVhZC1tZW1iZXJzLyR7dXNlcklkfT9gXG5cbiAgICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMud2l0aE1lbWJlcikgdXJsICs9IGB3aXRoX21lbWJlcj0ke29wdGlvbnMud2l0aE1lbWJlcn1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICB1c2VyOiAoY2hhbm5lbElkLCB1c2VySWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkLW1lbWJlcnMvJHt1c2VySWR9YFxuICAgICAgICB9LFxuICAgICAgICBhcmNoaXZlZDogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWRzL2FyY2hpdmVkYFxuICAgICAgICB9LFxuICAgICAgICBwdWJsaWM6IChjaGFubmVsSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdGhyZWFkcy9hcmNoaXZlZC9wdWJsaWM/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgcHJpdmF0ZTogKGNoYW5uZWxJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfS90aHJlYWRzL2FyY2hpdmVkL3ByaXZhdGU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgam9pbmVkOiAoY2hhbm5lbElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3VzZXJzL0BtZS90aHJlYWRzL2FyY2hpdmVkL3ByaXZhdGU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkge1xuICAgICAgICAgICAgICB1cmwgKz0gYGJlZm9yZT0ke25ldyBEYXRlKG9wdGlvbnMuYmVmb3JlKS50b0lTT1N0cmluZygpfWBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIHR5cGluZzogKGNoYW5uZWxJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vdHlwaW5nYFxuICAgICAgfSxcblxuICAgICAgcG9sbHM6IHtcbiAgICAgICAgdm90ZXM6IChjaGFubmVsSWQsIG1lc3NhZ2VJZCwgYW5zd2VySWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9jaGFubmVscy8ke2NoYW5uZWxJZH0vcG9sbHMvJHttZXNzYWdlSWR9L2Fuc3dlcnMvJHthbnN3ZXJJZH0/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGV4cGlyZTogKGNoYW5uZWxJZCwgbWVzc2FnZUlkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvY2hhbm5lbHMvJHtjaGFubmVsSWR9L3BvbGxzLyR7bWVzc2FnZUlkfS9leHBpcmVgXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICAvLyBHdWlsZCBFbmRwb2ludHNcbiAgICBndWlsZHM6IHtcbiAgICAgIGFsbDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9ndWlsZHMnXG4gICAgICB9LFxuICAgICAgdXNlckd1aWxkczogKG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9ICcvdXNlcnMvQG1lL2d1aWxkcz8nXG5cbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlcikgdXJsICs9IGBhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmJlZm9yZSkgdXJsICs9IGAmYmVmb3JlPSR7b3B0aW9ucy5iZWZvcmV9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLndpdGhDb3VudHMpIHVybCArPSBgJndpdGhfY291bnRzPSR7b3B0aW9ucy53aXRoQ291bnRzfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBhdWRpdGxvZ3M6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1ZGl0LWxvZ3M/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMuYWN0aW9uVHlwZSkgdXJsICs9IGBhY3Rpb25fdHlwZT0ke29wdGlvbnMuYWN0aW9uVHlwZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgJmFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMubGltaXQpIHVybCArPSBgJmxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMudXNlcklkKSB1cmwgKz0gYCZ1c2VyX2lkPSR7b3B0aW9ucy51c2VySWR9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICAgIGF1dG9tb2Q6IHtcbiAgICAgICAgcnVsZTogKGd1aWxkSWQsIHJ1bGVJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1dG8tbW9kZXJhdGlvbi9ydWxlcy8ke3J1bGVJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIHJ1bGVzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2F1dG8tbW9kZXJhdGlvbi9ydWxlc2BcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjaGFubmVsczogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vY2hhbm5lbHNgXG4gICAgICB9LFxuICAgICAgZW1vamk6IChndWlsZElkLCBlbW9qaUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L2Vtb2ppcy8ke2Vtb2ppSWR9YFxuICAgICAgfSxcbiAgICAgIGVtb2ppczogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vZW1vamlzYFxuICAgICAgfSxcbiAgICAgIGV2ZW50czoge1xuICAgICAgICBldmVudHM6IChndWlsZElkLCB3aXRoVXNlckNvdW50PzogYm9vbGVhbikgPT4ge1xuICAgICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L3NjaGVkdWxlZC1ldmVudHM/YFxuXG4gICAgICAgICAgaWYgKHdpdGhVc2VyQ291bnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdXJsICs9IGB3aXRoX3VzZXJfY291bnQ9JHt3aXRoVXNlckNvdW50LnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGV2ZW50OiAoZ3VpbGRJZCwgZXZlbnRJZCwgd2l0aFVzZXJDb3VudD86IGJvb2xlYW4pID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9zY2hlZHVsZWQtZXZlbnRzLyR7ZXZlbnRJZH1gXG5cbiAgICAgICAgICBpZiAod2l0aFVzZXJDb3VudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhfdXNlcl9jb3VudD0ke3dpdGhVc2VyQ291bnQudG9TdHJpbmcoKX1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgICB1c2VyczogKGd1aWxkSWQsIGV2ZW50SWQsIG9wdGlvbnM/OiBHZXRTY2hlZHVsZWRFdmVudFVzZXJzKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vc2NoZWR1bGVkLWV2ZW50cy8ke2V2ZW50SWR9L3VzZXJzP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYGxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy53aXRoTWVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgdXJsICs9IGAmd2l0aF9tZW1iZXI9JHtvcHRpb25zLndpdGhNZW1iZXIudG9TdHJpbmcoKX1gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlciAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZhZnRlcj0ke29wdGlvbnMuYWZ0ZXJ9YFxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlICE9PSB1bmRlZmluZWQpIHVybCArPSBgJmJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZ3VpbGQoZ3VpbGRJZCwgd2l0aENvdW50cykge1xuICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfT9gXG5cbiAgICAgICAgaWYgKHdpdGhDb3VudHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHVybCArPSBgd2l0aF9jb3VudHM9JHt3aXRoQ291bnRzLnRvU3RyaW5nKCl9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICAgIGludGVncmF0aW9uKGd1aWxkSWQsIGludGVncmF0aW9uSWQpIHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vaW50ZWdyYXRpb25zLyR7aW50ZWdyYXRpb25JZH1gXG4gICAgICB9LFxuICAgICAgaW50ZWdyYXRpb25zOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbnRlZ3JhdGlvbnM/aW5jbHVkZV9hcHBsaWNhdGlvbnM9dHJ1ZWBcbiAgICAgIH0sXG4gICAgICBpbnZpdGUoaW52aXRlQ29kZSwgb3B0aW9ucykge1xuICAgICAgICBsZXQgdXJsID0gYC9pbnZpdGVzLyR7aW52aXRlQ29kZX0/YFxuXG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgaWYgKG9wdGlvbnMud2l0aENvdW50cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhfY291bnRzPSR7b3B0aW9ucy53aXRoQ291bnRzLnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy53aXRoRXhwaXJhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZ3aXRoX2V4cGlyYXRpb249JHtvcHRpb25zLndpdGhFeHBpcmF0aW9uLnRvU3RyaW5nKCl9YFxuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAob3B0aW9ucy5zY2hlZHVsZWRFdmVudElkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZndWlsZF9zY2hlZHVsZWRfZXZlbnRfaWQ9JHtvcHRpb25zLnNjaGVkdWxlZEV2ZW50SWR9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBpbnZpdGVzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbnZpdGVzYFxuICAgICAgfSxcbiAgICAgIGxlYXZlOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC91c2Vycy9AbWUvZ3VpbGRzLyR7Z3VpbGRJZH1gXG4gICAgICB9LFxuICAgICAgbWVtYmVyczoge1xuICAgICAgICBiYW46IChndWlsZElkLCB1c2VySWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9iYW5zLyR7dXNlcklkfWBcbiAgICAgICAgfSxcbiAgICAgICAgYmFuczogKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9iYW5zP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGBsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgICAgaWYgKG9wdGlvbnMuYWZ0ZXIpIHVybCArPSBgJmFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5iZWZvcmUpIHVybCArPSBgJmJlZm9yZT0ke29wdGlvbnMuYmVmb3JlfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIGJ1bGtCYW46IChndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vYnVsay1iYW5gXG4gICAgICAgIH0sXG4gICAgICAgIGJvdDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9tZW1iZXJzL0BtZWBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyOiAoZ3VpbGRJZCwgdXNlcklkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vbWVtYmVycy8ke3VzZXJJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGN1cnJlbnRNZW1iZXI6IChndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvdXNlcnMvQG1lL2d1aWxkcy8ke2d1aWxkSWR9L21lbWJlcmBcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyczogKGd1aWxkSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgICBsZXQgdXJsID0gYC9ndWlsZHMvJHtndWlsZElkfS9tZW1iZXJzP2BcblxuICAgICAgICAgIGlmIChvcHRpb25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYGxpbWl0PSR7b3B0aW9ucy5saW1pdH1gXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5hZnRlcikgdXJsICs9IGAmYWZ0ZXI9JHtvcHRpb25zLmFmdGVyfWBcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaDogKGd1aWxkSWQsIHF1ZXJ5LCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vbWVtYmVycy9zZWFyY2g/cXVlcnk9JHtlbmNvZGVVUklDb21wb25lbnQocXVlcnkpfWBcblxuICAgICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCAhPT0gdW5kZWZpbmVkKSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB1cmxcbiAgICAgICAgfSxcbiAgICAgICAgcHJ1bmU6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvZ3VpbGRzLyR7Z3VpbGRJZH0vcHJ1bmU/YFxuXG4gICAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmIChvcHRpb25zLmRheXMpIHVybCArPSBgZGF5cz0ke29wdGlvbnMuZGF5c31gXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvcHRpb25zLmluY2x1ZGVSb2xlcykpIHtcbiAgICAgICAgICAgICAgdXJsICs9IGAmaW5jbHVkZV9yb2xlcz0ke29wdGlvbnMuaW5jbHVkZVJvbGVzLmpvaW4oJywnKX1gXG4gICAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5jbHVkZVJvbGVzKSB7XG4gICAgICAgICAgICAgIHVybCArPSBgJmluY2x1ZGVfcm9sZXM9JHtvcHRpb25zLmluY2x1ZGVSb2xlc31gXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByZXZpZXc6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3ByZXZpZXdgXG4gICAgICB9LFxuICAgICAgcHJ1bmU6IChndWlsZElkLCBvcHRpb25zKSA9PiB7XG4gICAgICAgIGxldCB1cmwgPSBgL2d1aWxkcy8ke2d1aWxkSWR9L3BydW5lP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmRheXMpIHVybCArPSBgZGF5cz0ke29wdGlvbnMuZGF5c31gXG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3B0aW9ucy5pbmNsdWRlUm9sZXMpKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZpbmNsdWRlX3JvbGVzPSR7b3B0aW9ucy5pbmNsdWRlUm9sZXMuam9pbignLCcpfWBcbiAgICAgICAgICB9IGVsc2UgaWYgKG9wdGlvbnMuaW5jbHVkZVJvbGVzKSB7XG4gICAgICAgICAgICB1cmwgKz0gYCZpbmNsdWRlX3JvbGVzPSR7b3B0aW9ucy5pbmNsdWRlUm9sZXN9YFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICByb2xlczoge1xuICAgICAgICBvbmU6IChndWlsZElkLCByb2xlSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9yb2xlcy8ke3JvbGVJZH1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9yb2xlc2BcbiAgICAgICAgfSxcbiAgICAgICAgbWVtYmVyOiAoZ3VpbGRJZCwgbWVtYmVySWQsIHJvbGVJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L21lbWJlcnMvJHttZW1iZXJJZH0vcm9sZXMvJHtyb2xlSWR9YFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHN0aWNrZXJzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zdGlja2Vyc2BcbiAgICAgIH0sXG4gICAgICBzdGlja2VyOiAoZ3VpbGRJZCwgc3RpY2tlcklkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3N0aWNrZXJzLyR7c3RpY2tlcklkfWBcbiAgICAgIH0sXG4gICAgICB2b2ljZTogKGd1aWxkSWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS92b2ljZS1zdGF0ZXMvJHt1c2VySWQgPz8gJ0BtZSd9YFxuICAgICAgfSxcbiAgICAgIHRlbXBsYXRlczoge1xuICAgICAgICBjb2RlOiAoY29kZSkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL2d1aWxkcy90ZW1wbGF0ZXMvJHtjb2RlfWBcbiAgICAgICAgfSxcbiAgICAgICAgZ3VpbGQ6IChndWlsZElkLCBjb2RlKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vdGVtcGxhdGVzLyR7Y29kZX1gXG4gICAgICAgIH0sXG4gICAgICAgIGFsbDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS90ZW1wbGF0ZXNgXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdmFuaXR5OiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS92YW5pdHktdXJsYFxuICAgICAgfSxcbiAgICAgIHJlZ2lvbnM6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3JlZ2lvbnNgXG4gICAgICB9LFxuICAgICAgd2ViaG9va3M6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dlYmhvb2tzYFxuICAgICAgfSxcbiAgICAgIHdlbGNvbWU6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dlbGNvbWUtc2NyZWVuYFxuICAgICAgfSxcbiAgICAgIHdpZGdldDogKGd1aWxkSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvZ3VpbGRzLyR7Z3VpbGRJZH0vd2lkZ2V0YFxuICAgICAgfSxcbiAgICAgIHdpZGdldEpzb246IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L3dpZGdldC5qc29uYFxuICAgICAgfSxcbiAgICAgIG9uYm9hcmRpbmc6IChndWlsZElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2d1aWxkcy8ke2d1aWxkSWR9L29uYm9hcmRpbmdgXG4gICAgICB9LFxuICAgICAgaW5jaWRlbnRBY3Rpb25zOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9pbmNpZGVudC1hY3Rpb25zYFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgc3RpY2tlcjogKHN0aWNrZXJJZCkgPT4ge1xuICAgICAgcmV0dXJuIGAvc3RpY2tlcnMvJHtzdGlja2VySWR9YFxuICAgIH0sXG5cbiAgICByZWdpb25zOiAoKSA9PiB7XG4gICAgICByZXR1cm4gJy92b2ljZS9yZWdpb25zJ1xuICAgIH0sXG5cbiAgICAvLyBJbnRlcmFjdGlvbiBFbmRwb2ludHNcbiAgICBpbnRlcmFjdGlvbnM6IHtcbiAgICAgIGNvbW1hbmRzOiB7XG4gICAgICAgIC8vIEFwcGxpY2F0aW9uIEVuZHBvaW50c1xuICAgICAgICBjb21tYW5kczogKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9jb21tYW5kc2BcbiAgICAgICAgfSxcblxuICAgICAgICBndWlsZHM6IHtcbiAgICAgICAgICBhbGwoYXBwbGljYXRpb25JZCwgZ3VpbGRJZCkge1xuICAgICAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZ3VpbGRzLyR7Z3VpbGRJZH0vY29tbWFuZHNgXG4gICAgICAgICAgfSxcblxuICAgICAgICAgIG9uZShhcHBsaWNhdGlvbklkLCBndWlsZElkLCBjb21tYW5kSWQsIHdpdGhMb2NhbGl6YXRpb25zKSB7XG4gICAgICAgICAgICBsZXQgdXJsID0gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9ndWlsZHMvJHtndWlsZElkfS9jb21tYW5kcy8ke2NvbW1hbmRJZH0/YFxuXG4gICAgICAgICAgICBpZiAod2l0aExvY2FsaXphdGlvbnMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICB1cmwgKz0gYHdpdGhfbG9jYWxpemF0aW9ucz0ke3dpdGhMb2NhbGl6YXRpb25zLnRvU3RyaW5nKCl9YFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdXJsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IChhcHBsaWNhdGlvbklkLCBndWlsZElkKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZ3VpbGRzLyR7Z3VpbGRJZH0vY29tbWFuZHMvcGVybWlzc2lvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb246IChhcHBsaWNhdGlvbklkLCBndWlsZElkLCBjb21tYW5kSWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9ndWlsZHMvJHtndWlsZElkfS9jb21tYW5kcy8ke2NvbW1hbmRJZH0vcGVybWlzc2lvbnNgXG4gICAgICAgIH0sXG4gICAgICAgIGNvbW1hbmQ6IChhcHBsaWNhdGlvbklkLCBjb21tYW5kSWQsIHdpdGhMb2NhbGl6YXRpb25zKSA9PiB7XG4gICAgICAgICAgbGV0IHVybCA9IGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vY29tbWFuZHMvJHtjb21tYW5kSWR9P2BcblxuICAgICAgICAgIGlmICh3aXRoTG9jYWxpemF0aW9ucyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB1cmwgKz0gYHdpdGhMb2NhbGl6YXRpb25zPSR7d2l0aExvY2FsaXphdGlvbnMudG9TdHJpbmcoKX1gXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHVybFxuICAgICAgICB9LFxuICAgICAgfSxcblxuICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgIC8vIEludGVyYWN0aW9uIEVuZHBvaW50c1xuICAgICAgICBjYWxsYmFjazogKGludGVyYWN0aW9uSWQsIHRva2VuLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGAvaW50ZXJhY3Rpb25zLyR7aW50ZXJhY3Rpb25JZH0vJHt0b2tlbn0vY2FsbGJhY2s/d2l0aF9yZXNwb25zZT0keyEhb3B0aW9ucz8ud2l0aFJlc3BvbnNlfWBcbiAgICAgICAgfSxcbiAgICAgICAgb3JpZ2luYWw6IChpbnRlcmFjdGlvbklkLCB0b2tlbikgPT4ge1xuICAgICAgICAgIHJldHVybiBgL3dlYmhvb2tzLyR7aW50ZXJhY3Rpb25JZH0vJHt0b2tlbn0vbWVzc2FnZXMvQG9yaWdpbmFsYFxuICAgICAgICB9LFxuICAgICAgICBtZXNzYWdlOiAoYXBwbGljYXRpb25JZCwgdG9rZW4sIG1lc3NhZ2VJZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgL3dlYmhvb2tzLyR7YXBwbGljYXRpb25JZH0vJHt0b2tlbn0vbWVzc2FnZXMvJHttZXNzYWdlSWR9YFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgLy8gT0F1dGgyIGVuZHBvaW50c1xuICAgIG9hdXRoMjoge1xuICAgICAgdG9rZW5FeGNoYW5nZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9vYXV0aDIvdG9rZW4nXG4gICAgICB9LFxuICAgICAgdG9rZW5SZXZva2U6ICgpID0+IHtcbiAgICAgICAgcmV0dXJuICcvb2F1dGgyL3Rva2VuL3Jldm9rZSdcbiAgICAgIH0sXG4gICAgICBjdXJyZW50QXV0aG9yaXphdGlvbjogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9vYXV0aDIvQG1lJ1xuICAgICAgfSxcbiAgICAgIGFwcGxpY2F0aW9uOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL29hdXRoMi9hcHBsaWNhdGlvbnMvQG1lJ1xuICAgICAgfSxcbiAgICAgIGNvbm5lY3Rpb25zOiAoKSA9PiB7XG4gICAgICAgIHJldHVybiAnL3VzZXJzL0BtZS9jb25uZWN0aW9ucydcbiAgICAgIH0sXG4gICAgICByb2xlQ29ubmVjdGlvbnM6IChhcHBsaWNhdGlvbklkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL3VzZXJzL0BtZS9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9yb2xlLWNvbm5lY3Rpb25gXG4gICAgICB9LFxuICAgIH0sXG5cbiAgICBtb25ldGl6YXRpb246IHtcbiAgICAgIGVudGl0bGVtZW50czogKGFwcGxpY2F0aW9uSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW50aXRsZW1lbnRzP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuZXhjbHVkZUVuZGVkKSB1cmwgKz0gYCZleGNsdWRlX2VuZGVkPSR7b3B0aW9ucy5leGNsdWRlRW5kZWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmd1aWxkSWQpIHVybCArPSBgJmd1aWxkX2lkPSR7b3B0aW9ucy5ndWlsZElkfWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5saW1pdCkgdXJsICs9IGAmbGltaXQ9JHtvcHRpb25zLmxpbWl0fWBcbiAgICAgICAgICBpZiAob3B0aW9ucy5za3VJZHMpIHVybCArPSBgJnNrdV9pZHM9JHtvcHRpb25zLnNrdUlkcy5qb2luKCcsJyl9YFxuICAgICAgICAgIGlmIChvcHRpb25zLnVzZXJJZCkgdXJsICs9IGAmdXNlcl9pZD0ke29wdGlvbnMudXNlcklkfWBcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1cmxcbiAgICAgIH0sXG4gICAgICBlbnRpdGxlbWVudDogKGFwcGxpY2F0aW9uSWQsIGVudGl0bGVtZW50SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW50aXRsZW1lbnRzLyR7ZW50aXRsZW1lbnRJZH1gXG4gICAgICB9LFxuICAgICAgY29uc3VtZUVudGl0bGVtZW50OiAoYXBwbGljYXRpb25JZCwgZW50aXRsZW1lbnRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9hcHBsaWNhdGlvbnMvJHthcHBsaWNhdGlvbklkfS9lbnRpdGxlbWVudHMvJHtlbnRpdGxlbWVudElkfS9jb25zdW1lYFxuICAgICAgfSxcblxuICAgICAgc2t1czogKGFwcGxpY2F0aW9uSWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vc2t1c2BcbiAgICAgIH0sXG5cbiAgICAgIHN1YnNjcmlwdGlvbjogKHNrdUlkLCBzdWJzY3JpcHRpb25JZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9za3VzLyR7c2t1SWR9L3N1YnNjcmlwdGlvbnMvJHtzdWJzY3JpcHRpb25JZH1gXG4gICAgICB9LFxuXG4gICAgICBzdWJzY3JpcHRpb25zOiAoc2t1SWQsIG9wdGlvbnMpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IGAvc2t1cy8ke3NrdUlkfS9zdWJzY3JpcHRpb25zP2BcblxuICAgICAgICBpZiAob3B0aW9ucykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmFmdGVyKSB1cmwgKz0gYGFmdGVyPSR7b3B0aW9ucy5hZnRlcn1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMuYmVmb3JlKSB1cmwgKz0gYCZiZWZvcmU9JHtvcHRpb25zLmJlZm9yZX1gXG4gICAgICAgICAgaWYgKG9wdGlvbnMudXNlcklkKSB1cmwgKz0gYCZ1c2VyX2lkPSR7b3B0aW9ucy51c2VySWR9YFxuICAgICAgICAgIGlmIChvcHRpb25zLmxpbWl0KSB1cmwgKz0gYCZsaW1pdD0ke29wdGlvbnMubGltaXR9YFxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVybFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgc291bmRib2FyZDoge1xuICAgICAgc2VuZFNvdW5kOiAoY2hhbm5lbElkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2NoYW5uZWxzLyR7Y2hhbm5lbElkfWBcbiAgICAgIH0sXG4gICAgICBsaXN0RGVmYXVsdDogKCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9zb3VuZGJvYXJkLWRlZmF1bHQtc291bmRzYFxuICAgICAgfSxcbiAgICAgIGd1aWxkU291bmRzOiAoZ3VpbGRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zb3VuZGJvYXJkLXNvdW5kc2BcbiAgICAgIH0sXG4gICAgICBndWlsZFNvdW5kOiAoZ3VpbGRJZCwgc291bmRJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9ndWlsZHMvJHtndWlsZElkfS9zb3VuZGJvYXJkLXNvdW5kcy8ke3NvdW5kSWR9YFxuICAgICAgfSxcbiAgICB9LFxuXG4gICAgbG9iYnk6IHtcbiAgICAgIGNyZWF0ZTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gJy9sb2JiaWVzJ1xuICAgICAgfSxcblxuICAgICAgbG9iYnk6IChsb2JieUlkKSA9PiB7XG4gICAgICAgIHJldHVybiBgL2xvYmJpZXMvJHtsb2JieUlkfWBcbiAgICAgIH0sXG5cbiAgICAgIG1lbWJlcjogKGxvYmJ5SWQsIHVzZXJJZCkgPT4ge1xuICAgICAgICByZXR1cm4gYC9sb2JiaWVzLyR7bG9iYnlJZH0vbWVtYmVycy8ke3VzZXJJZH1gXG4gICAgICB9LFxuXG4gICAgICBsZWF2ZTogKGxvYmJ5SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvbG9iYmllcy8ke2xvYmJ5SWR9L21lbWJlcnMvQG1lYFxuICAgICAgfSxcblxuICAgICAgbGluazogKGxvYmJ5SWQpID0+IHtcbiAgICAgICAgcmV0dXJuIGAvbG9iYmllcy8ke2xvYmJ5SWR9L2NoYW5uZWwtbGlua2luZ2BcbiAgICAgIH0sXG4gICAgfSxcblxuICAgIGFwcGxpY2F0aW9uRW1vamkoYXBwbGljYXRpb25JZCwgZW1vamlJZCkge1xuICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vZW1vamlzLyR7ZW1vamlJZH1gXG4gICAgfSxcblxuICAgIGFwcGxpY2F0aW9uRW1vamlzKGFwcGxpY2F0aW9uSWQpIHtcbiAgICAgIHJldHVybiBgL2FwcGxpY2F0aW9ucy8ke2FwcGxpY2F0aW9uSWR9L2Vtb2ppc2BcbiAgICB9LFxuXG4gICAgYXBwbGljYXRpb25Sb2xlQ29ubmVjdGlvbk1ldGFkYXRhKGFwcGxpY2F0aW9uSWQpIHtcbiAgICAgIHJldHVybiBgL2FwcGxpY2F0aW9ucy8ke2FwcGxpY2F0aW9uSWR9L3JvbGUtY29ubmVjdGlvbnMvbWV0YWRhdGFgXG4gICAgfSxcblxuICAgIC8vIFVzZXIgZW5kcG9pbnRzXG4gICAgdXNlcih1c2VySWQpIHtcbiAgICAgIHJldHVybiBgL3VzZXJzLyR7dXNlcklkfWBcbiAgICB9LFxuXG4gICAgYXBwbGljYXRpb24oKSB7XG4gICAgICByZXR1cm4gJy9hcHBsaWNhdGlvbnMvQG1lJ1xuICAgIH0sXG5cbiAgICBhcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UoYXBwbGljYXRpb25JZCwgaW5zdGFuY2VJZCkge1xuICAgICAgcmV0dXJuIGAvYXBwbGljYXRpb25zLyR7YXBwbGljYXRpb25JZH0vYWN0aXZpdHktaW5zdGFuY2VzLyR7aW5zdGFuY2VJZH1gXG4gICAgfSxcblxuICAgIGN1cnJlbnRVc2VyKCkge1xuICAgICAgcmV0dXJuICcvdXNlcnMvQG1lJ1xuICAgIH0sXG5cbiAgICBnYXRld2F5Qm90KCkge1xuICAgICAgcmV0dXJuICcvZ2F0ZXdheS9ib3QnXG4gICAgfSxcblxuICAgIHN0aWNrZXJQYWNrKHN0aWNrZXJQYWNrSWQpIHtcbiAgICAgIHJldHVybiBgL3N0aWNrZXItcGFja3MvJHtzdGlja2VyUGFja0lkfWBcbiAgICB9LFxuXG4gICAgc3RpY2tlclBhY2tzKCkge1xuICAgICAgcmV0dXJuICcvc3RpY2tlci1wYWNrcydcbiAgICB9LFxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNHZXRNZXNzYWdlc0FmdGVyIiwiaXNHZXRNZXNzYWdlc0Fyb3VuZCIsImlzR2V0TWVzc2FnZXNCZWZvcmUiLCJpc0dldE1lc3NhZ2VzTGltaXQiLCJjcmVhdGVSb3V0ZXMiLCJ3ZWJob29rcyIsImlkIiwid2ViaG9va0lkIiwibWVzc2FnZSIsInRva2VuIiwibWVzc2FnZUlkIiwib3B0aW9ucyIsInVybCIsInRocmVhZElkIiwid2l0aENvbXBvbmVudHMiLCJ3ZWJob29rIiwid2FpdCIsInVuZGVmaW5lZCIsInRvU3RyaW5nIiwiY2hhbm5lbHMiLCJidWxrIiwiY2hhbm5lbElkIiwiZG0iLCJkbVJlY2lwaWVudCIsInVzZXJJZCIsInBpbiIsInBpbnMiLCJtZXNzYWdlUGlucyIsImJlZm9yZSIsImxpbWl0IiwibWVzc2FnZVBpbiIsInJlYWN0aW9ucyIsImJvdCIsImVtb2ppIiwiZW5jb2RlVVJJQ29tcG9uZW50IiwidXNlciIsImFsbCIsInR5cGUiLCJhZnRlciIsImNoYW5uZWwiLCJmb2xsb3ciLCJmb3J1bSIsImludml0ZXMiLCJtZXNzYWdlcyIsImFyb3VuZCIsIm92ZXJ3cml0ZSIsIm92ZXJ3cml0ZUlkIiwiY3Jvc3Nwb3N0Iiwic3RhZ2VzIiwic3RhZ2UiLCJ0aHJlYWRzIiwiYWN0aXZlIiwiZ3VpbGRJZCIsIm1lbWJlcnMiLCJ3aXRoTWVtYmVyIiwibWUiLCJnZXRVc2VyIiwiYXJjaGl2ZWQiLCJwdWJsaWMiLCJEYXRlIiwidG9JU09TdHJpbmciLCJwcml2YXRlIiwiam9pbmVkIiwidHlwaW5nIiwicG9sbHMiLCJ2b3RlcyIsImFuc3dlcklkIiwiZXhwaXJlIiwiZ3VpbGRzIiwidXNlckd1aWxkcyIsIndpdGhDb3VudHMiLCJhdWRpdGxvZ3MiLCJhY3Rpb25UeXBlIiwiYXV0b21vZCIsInJ1bGUiLCJydWxlSWQiLCJydWxlcyIsImVtb2ppSWQiLCJlbW9qaXMiLCJldmVudHMiLCJ3aXRoVXNlckNvdW50IiwiZXZlbnQiLCJldmVudElkIiwidXNlcnMiLCJndWlsZCIsImludGVncmF0aW9uIiwiaW50ZWdyYXRpb25JZCIsImludGVncmF0aW9ucyIsImludml0ZSIsImludml0ZUNvZGUiLCJ3aXRoRXhwaXJhdGlvbiIsInNjaGVkdWxlZEV2ZW50SWQiLCJsZWF2ZSIsImJhbiIsImJhbnMiLCJidWxrQmFuIiwibWVtYmVyIiwiY3VycmVudE1lbWJlciIsInNlYXJjaCIsInF1ZXJ5IiwicHJ1bmUiLCJkYXlzIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5jbHVkZVJvbGVzIiwiam9pbiIsInByZXZpZXciLCJyb2xlcyIsIm9uZSIsInJvbGVJZCIsIm1lbWJlcklkIiwic3RpY2tlcnMiLCJzdGlja2VyIiwic3RpY2tlcklkIiwidm9pY2UiLCJ0ZW1wbGF0ZXMiLCJjb2RlIiwidmFuaXR5IiwicmVnaW9ucyIsIndlbGNvbWUiLCJ3aWRnZXQiLCJ3aWRnZXRKc29uIiwib25ib2FyZGluZyIsImluY2lkZW50QWN0aW9ucyIsImludGVyYWN0aW9ucyIsImNvbW1hbmRzIiwiYXBwbGljYXRpb25JZCIsImNvbW1hbmRJZCIsIndpdGhMb2NhbGl6YXRpb25zIiwicGVybWlzc2lvbnMiLCJwZXJtaXNzaW9uIiwiY29tbWFuZCIsInJlc3BvbnNlcyIsImNhbGxiYWNrIiwiaW50ZXJhY3Rpb25JZCIsIndpdGhSZXNwb25zZSIsIm9yaWdpbmFsIiwib2F1dGgyIiwidG9rZW5FeGNoYW5nZSIsInRva2VuUmV2b2tlIiwiY3VycmVudEF1dGhvcml6YXRpb24iLCJhcHBsaWNhdGlvbiIsImNvbm5lY3Rpb25zIiwicm9sZUNvbm5lY3Rpb25zIiwibW9uZXRpemF0aW9uIiwiZW50aXRsZW1lbnRzIiwiZXhjbHVkZUVuZGVkIiwic2t1SWRzIiwiZW50aXRsZW1lbnQiLCJlbnRpdGxlbWVudElkIiwiY29uc3VtZUVudGl0bGVtZW50Iiwic2t1cyIsInN1YnNjcmlwdGlvbiIsInNrdUlkIiwic3Vic2NyaXB0aW9uSWQiLCJzdWJzY3JpcHRpb25zIiwic291bmRib2FyZCIsInNlbmRTb3VuZCIsImxpc3REZWZhdWx0IiwiZ3VpbGRTb3VuZHMiLCJndWlsZFNvdW5kIiwic291bmRJZCIsImxvYmJ5IiwiY3JlYXRlIiwibG9iYnlJZCIsImxpbmsiLCJhcHBsaWNhdGlvbkVtb2ppIiwiYXBwbGljYXRpb25FbW9qaXMiLCJhcHBsaWNhdGlvblJvbGVDb25uZWN0aW9uTWV0YWRhdGEiLCJhcHBsaWNhdGlvbkFjdGl2aXR5SW5zdGFuY2UiLCJpbnN0YW5jZUlkIiwiY3VycmVudFVzZXIiLCJnYXRld2F5Qm90Iiwic3RpY2tlclBhY2siLCJzdGlja2VyUGFja0lkIiwic3RpY2tlclBhY2tzIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxrQkFBa0IsRUFBRUMsbUJBQW1CLEVBQUVDLG1CQUFtQixFQUFFQyxrQkFBa0IsUUFBUSxvQkFBbUI7QUFHcEgsT0FBTyxTQUFTQztJQUNkLE9BQU87UUFDTEMsVUFBVTtZQUNSQyxJQUFJLENBQUNDO2dCQUNILE9BQU8sQ0FBQyxVQUFVLEVBQUVBLFdBQVc7WUFDakM7WUFDQUMsU0FBUyxDQUFDRCxXQUFXRSxPQUFPQyxXQUFXQztnQkFDckMsSUFBSUMsTUFBTSxDQUFDLFVBQVUsRUFBRUwsVUFBVSxDQUFDLEVBQUVFLE1BQU0s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
|