@discordeno/rest 21.0.1-next.f6ea699 → 22.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/index.d.ts.map +1 -0
  2. package/dist/index.js +8 -0
  3. package/dist/invalidBucket.d.ts.map +1 -0
  4. package/dist/invalidBucket.js +82 -0
  5. package/dist/manager.d.ts.map +1 -0
  6. package/dist/manager.js +1623 -0
  7. package/dist/queue.d.ts.map +1 -0
  8. package/dist/queue.js +154 -0
  9. package/dist/routes.d.ts.map +1 -0
  10. package/dist/routes.js +621 -0
  11. package/dist/{types/types.d.ts → types.d.ts} +9 -7
  12. package/dist/types.d.ts.map +1 -0
  13. package/dist/types.js +3 -0
  14. package/dist/{types/typings → typings}/routes.d.ts +3 -3
  15. package/dist/typings/routes.d.ts.map +1 -0
  16. package/dist/typings/routes.js +3 -0
  17. package/package.json +15 -22
  18. package/dist/cjs/index.cjs +0 -25
  19. package/dist/cjs/invalidBucket.cjs +0 -86
  20. package/dist/cjs/manager.cjs +0 -1643
  21. package/dist/cjs/queue.cjs +0 -164
  22. package/dist/cjs/routes.cjs +0 -630
  23. package/dist/cjs/types.cjs +0 -6
  24. package/dist/cjs/typings/routes.cjs +0 -6
  25. package/dist/esm/index.js +0 -8
  26. package/dist/esm/invalidBucket.js +0 -82
  27. package/dist/esm/manager.js +0 -1601
  28. package/dist/esm/queue.js +0 -154
  29. package/dist/esm/routes.js +0 -620
  30. package/dist/esm/types.js +0 -3
  31. package/dist/esm/typings/routes.js +0 -3
  32. package/dist/types/index.d.ts.map +0 -1
  33. package/dist/types/invalidBucket.d.ts.map +0 -1
  34. package/dist/types/manager.d.ts.map +0 -1
  35. package/dist/types/queue.d.ts.map +0 -1
  36. package/dist/types/routes.d.ts.map +0 -1
  37. package/dist/types/types.d.ts.map +0 -1
  38. package/dist/types/typings/routes.d.ts.map +0 -1
  39. /package/dist/{types/index.d.ts → index.d.ts} +0 -0
  40. /package/dist/{types/invalidBucket.d.ts → invalidBucket.d.ts} +0 -0
  41. /package/dist/{types/manager.d.ts → manager.d.ts} +0 -0
  42. /package/dist/{types/queue.d.ts → queue.d.ts} +0 -0
  43. /package/dist/{types/routes.d.ts → routes.d.ts} +0 -0
@@ -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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