@discordeno/bot 22.0.1-next.11decde → 22.0.1-next.121fead
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/helpers.js +4 -4
- package/dist/transformers/application.d.ts.map +1 -1
- package/dist/transformers/application.js +49 -46
- package/dist/transformers/component.js +4 -6
- package/dist/transformers/guild.d.ts.map +1 -1
- package/dist/transformers/guild.js +2 -10
- package/dist/transformers/toggles/guild.d.ts +16 -13
- package/dist/transformers/toggles/guild.d.ts.map +1 -1
- package/dist/transformers/toggles/guild.js +27 -21
- package/dist/transformers/widget.d.ts +3 -1
- package/dist/transformers/widget.d.ts.map +1 -1
- package/dist/transformers/widget.js +17 -15
- package/dist/transformers/widgetSettings.d.ts +3 -1
- package/dist/transformers/widgetSettings.d.ts.map +1 -1
- package/dist/transformers/widgetSettings.js +9 -7
- package/dist/transformers.d.ts +96 -104
- package/dist/transformers.d.ts.map +1 -1
- package/dist/transformers.js +7 -7
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/transformers/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAqC,MAAM,mBAAmB,CAAC;AAE/F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/transformers/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,kBAAkB,EAAqC,MAAM,mBAAmB,CAAC;AAE/F,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAMrC,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAmEnI"}
|
|
@@ -3,48 +3,51 @@ import { iconHashToBigInt } from '@discordeno/utils';
|
|
|
3
3
|
import { callCustomizer } from '../transformers.js';
|
|
4
4
|
import { ToggleBitfield } from './toggles/ToggleBitfield.js';
|
|
5
5
|
export function transformApplication(bot, payload, extra) {
|
|
6
|
-
const application = {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
6
|
+
const application = {};
|
|
7
|
+
if (payload.name) application.name = payload.name;
|
|
8
|
+
if (payload.description) application.description = payload.description;
|
|
9
|
+
if (payload.rpc_origins) application.rpcOrigins = payload.rpc_origins;
|
|
10
|
+
if (payload.bot_public !== undefined) application.botPublic = payload.bot_public;
|
|
11
|
+
if (payload.bot_require_code_grant !== undefined) application.botRequireCodeGrant = payload.bot_require_code_grant;
|
|
12
|
+
if (payload.terms_of_service_url) application.termsOfServiceUrl = payload.terms_of_service_url;
|
|
13
|
+
if (payload.privacy_policy_url) application.privacyPolicyUrl = payload.privacy_policy_url;
|
|
14
|
+
if (payload.verify_key) application.verifyKey = payload.verify_key;
|
|
15
|
+
if (payload.primary_sku_id) application.primarySkuId = payload.primary_sku_id;
|
|
16
|
+
if (payload.slug) application.slug = payload.slug;
|
|
17
|
+
if (payload.cover_image) application.coverImage = iconHashToBigInt(payload.cover_image);
|
|
18
|
+
if (payload.flags !== undefined) application.flags = payload.flags;
|
|
19
|
+
// flags_new is a string with the bitfield inside
|
|
20
|
+
if (payload.flags_new) application.flagsNew = new ToggleBitfield(Number(payload.flags_new));
|
|
21
|
+
if (payload.id) application.id = bot.transformers.snowflake(payload.id);
|
|
22
|
+
if (payload.icon) application.icon = iconHashToBigInt(payload.icon);
|
|
23
|
+
if (payload.owner) application.owner = bot.transformers.user(bot, payload.owner, {
|
|
24
|
+
partial: true
|
|
25
|
+
});
|
|
26
|
+
if (payload.team) application.team = bot.transformers.team(bot, payload.team);
|
|
27
|
+
if (payload.guild_id) application.guildId = bot.transformers.snowflake(payload.guild_id);
|
|
28
|
+
if (payload.custom_install_url) application.customInstallUrl = payload.custom_install_url;
|
|
29
|
+
if (payload.guild) application.guild = bot.transformers.guild(bot, payload.guild, {
|
|
30
|
+
shardId: extra?.shardId,
|
|
31
|
+
partial: true
|
|
32
|
+
});
|
|
33
|
+
if (payload.approximate_guild_count !== undefined) application.approximateGuildCount = payload.approximate_guild_count;
|
|
34
|
+
if (payload.approximate_user_install_count !== undefined) application.approximateUserInstallCount = payload.approximate_user_install_count;
|
|
35
|
+
if (payload.approximate_user_authorization_count !== undefined) application.approximateUserAuthorizationCount = payload.approximate_user_authorization_count;
|
|
36
|
+
if (payload.bot) application.bot = bot.transformers.user(bot, payload.bot, {
|
|
37
|
+
partial: true
|
|
38
|
+
});
|
|
39
|
+
if (payload.interactions_endpoint_url) application.interactionsEndpointUrl = payload.interactions_endpoint_url;
|
|
40
|
+
if (payload.redirect_uris) application.redirectUris = payload.redirect_uris;
|
|
41
|
+
if (payload.role_connections_verification_url) application.roleConnectionsVerificationUrl = payload.role_connections_verification_url;
|
|
42
|
+
if (payload.tags) application.tags = payload.tags;
|
|
43
|
+
if (payload.install_params) {
|
|
44
|
+
application.installParams = {
|
|
44
45
|
scopes: payload.install_params.scopes,
|
|
45
46
|
permissions: bot.transformers.snowflake(payload.install_params.permissions)
|
|
46
|
-
}
|
|
47
|
-
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
if (payload.integration_types_config) {
|
|
50
|
+
application.integrationTypesConfig = {
|
|
48
51
|
[DiscordApplicationIntegrationType.GuildInstall]: payload.integration_types_config['0']?.oauth2_install_params ? {
|
|
49
52
|
oauth2InstallParams: {
|
|
50
53
|
scopes: payload.integration_types_config['0'].oauth2_install_params.scopes,
|
|
@@ -57,15 +60,15 @@ export function transformApplication(bot, payload, extra) {
|
|
|
57
60
|
permissions: bot.transformers.snowflake(payload.integration_types_config['1'].oauth2_install_params.permissions)
|
|
58
61
|
}
|
|
59
62
|
} : undefined
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
if (payload.event_webhooks_url) application.eventWebhooksUrl = payload.event_webhooks_url;
|
|
66
|
+
if (payload.event_webhooks_status) application.eventWebhooksStatus = payload.event_webhooks_status;
|
|
67
|
+
if (payload.event_webhooks_types) application.eventWebhooksTypes = payload.event_webhooks_types;
|
|
65
68
|
return callCustomizer('application', bot, payload, application, {
|
|
66
69
|
shardId: extra?.shardId,
|
|
67
70
|
partial: extra?.partial ?? false
|
|
68
71
|
});
|
|
69
72
|
}
|
|
70
73
|
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvYXBwbGljYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkQXBwbGljYXRpb24sIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IEFwcGxpY2F0aW9uIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2Zvcm1BcHBsaWNhdGlvbihib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkQXBwbGljYXRpb24+LCBleHRyYT86IHsgc2hhcmRJZD86IG51bWJlcjsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBhcHBsaWNhdGlvbiA9IHtcbiAgICBuYW1lOiBwYXlsb2FkLm5hbWUsXG4gICAgZGVzY3JpcHRpb246IHBheWxvYWQuZGVzY3JpcHRpb24sXG4gICAgcnBjT3JpZ2luczogcGF5bG9hZC5ycGNfb3JpZ2lucyxcbiAgICBib3RQdWJsaWM6IHBheWxvYWQuYm90X3B1YmxpYyxcbiAgICBib3RSZXF1aXJlQ29kZUdyYW50OiBwYXlsb2FkLmJvdF9yZXF1aXJlX2NvZGVfZ3JhbnQsXG4gICAgdGVybXNPZlNlcnZpY2VVcmw6IHBheWxvYWQudGVybXNfb2Zfc2VydmljZV91cmwsXG4gICAgcHJpdmFjeVBvbGljeVVybDogcGF5bG9hZC5wcml2YWN5X3BvbGljeV91cmwsXG4gICAgdmVyaWZ5S2V5OiBwYXlsb2FkLnZlcmlmeV9rZXksXG4gICAgcHJpbWFyeVNrdUlkOiBwYXlsb2FkLnByaW1hcnlfc2t1X2lkLFxuICAgIHNsdWc6IHBheWxvYWQuc2x1ZyxcbiAgICBjb3ZlckltYWdlOiBwYXlsb2FkLmNvdmVyX2ltYWdlID8gaWNvbkhhc2hUb0JpZ0ludChwYXlsb2FkLmNvdmVyX2ltYWdlKSA6IHVuZGVmaW5lZCxcbiAgICBmbGFnczogcGF5bG9hZC5mbGFncyxcbiAgICAvLyBmbGFnc19uZXcgaXMgYSBzdHJpbmcgd2l0aCB0aGUgYml0ZmllbGQgaW5zaWRlXG4gICAgZmxhZ3NOZXc6IHBheWxvYWQuZmxhZ3NfbmV3ID8gbmV3IFRvZ2dsZUJpdGZpZWxkKE51bWJlcihwYXlsb2FkLmZsYWdzX25ldykpIDogdW5kZWZpbmVkLFxuXG4gICAgaWQ6IHBheWxvYWQuaWQgPyBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKSA6IHVuZGVmaW5lZCxcbiAgICBpY29uOiBwYXlsb2FkLmljb24gPyBpY29uSGFzaFRvQmlnSW50KHBheWxvYWQuaWNvbikgOiB1bmRlZmluZWQsXG4gICAgb3duZXI6IHBheWxvYWQub3duZXIgPyBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLm93bmVyLCB7IHBhcnRpYWw6IHRydWUgfSkgOiB1bmRlZmluZWQsXG4gICAgdGVhbTogcGF5bG9hZC50ZWFtID8gYm90LnRyYW5zZm9ybWVycy50ZWFtKGJvdCwgcGF5bG9hZC50ZWFtKSA6IHVuZGVmaW5lZCxcbiAgICBndWlsZElkOiBwYXlsb2FkLmd1aWxkX2lkID8gYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5ndWlsZF9pZCkgOiB1bmRlZmluZWQsXG4gICAgY3VzdG9tSW5zdGFsbFVybDogcGF5bG9hZC5jdXN0b21faW5zdGFsbF91cmwsXG4gICAgZ3VpbGQ6IHBheWxvYWQuZ3VpbGQgPyBib3QudHJhbnNmb3JtZXJzLmd1aWxkKGJvdCwgcGF5bG9hZC5ndWlsZCwgeyBzaGFyZElkOiBleHRyYT8uc2hhcmRJZCwgcGFydGlhbDogdHJ1ZSB9KSA6IHVuZGVmaW5lZCxcbiAgICBhcHByb3hpbWF0ZUd1aWxkQ291bnQ6IHBheWxvYWQuYXBwcm94aW1hdGVfZ3VpbGRfY291bnQsXG4gICAgYXBwcm94aW1hdGVVc2VySW5zdGFsbENvdW50OiBwYXlsb2FkLmFwcHJveGltYXRlX3VzZXJfaW5zdGFsbF9jb3VudCxcbiAgICBhcHByb3hpbWF0ZVVzZXJBdXRob3JpemF0aW9uQ291bnQ6IHBheWxvYWQuYXBwcm94aW1hdGVfdXNlcl9hdXRob3JpemF0aW9uX2NvdW50LFxuICAgIGJvdDogcGF5bG9hZC5ib3QgPyBib3QudHJhbnNmb3JtZXJzLnVzZXIoYm90LCBwYXlsb2FkLmJvdCwgeyBwYXJ0aWFsOiB0cnVlIH0pIDogdW5kZWZpbmVkLFxuICAgIGludGVyYWN0aW9uc0VuZHBvaW50VXJsOiBwYXlsb2FkLmludGVyYWN0aW9uc19lbmRwb2ludF91cmwgPyBwYXlsb2FkLmludGVyYWN0aW9uc19lbmRwb2ludF91cmwgOiB1bmRlZmluZWQsXG4gICAgcmVkaXJlY3RVcmlzOiBwYXlsb2FkLnJlZGlyZWN0X3VyaXMsXG4gICAgcm9sZUNvbm5lY3Rpb25zVmVyaWZpY2F0aW9uVXJsOiBwYXlsb2FkLnJvbGVfY29ubmVjdGlvbnNfdmVyaWZpY2F0aW9uX3VybCxcbiAgICB0YWdzOiBwYXlsb2FkLnRhZ3MsXG4gICAgaW5zdGFsbFBhcmFtczogcGF5bG9hZC5pbnN0YWxsX3BhcmFtc1xuICAgICAgPyB7XG4gICAgICAgICAgc2NvcGVzOiBwYXlsb2FkLmluc3RhbGxfcGFyYW1zLnNjb3BlcyxcbiAgICAgICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnN0YWxsX3BhcmFtcy5wZXJtaXNzaW9ucyksXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkLFxuICAgIGludGVncmF0aW9uVHlwZXNDb25maWc6IHBheWxvYWQuaW50ZWdyYXRpb25fdHlwZXNfY29uZmlnXG4gICAgICA/IHtcbiAgICAgICAgICBbRGlzY29yZEFwcGxpY2F0aW9uSW50ZWdyYXRpb25UeXBlLkd1aWxkSW5zdGFsbF06IHBheWxvYWQuaW50ZWdyYXRpb25fdHlwZXNfY29uZmlnWycwJ10/Lm9hdXRoMl9pbnN0YWxsX3BhcmFtc1xuICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgb2F1dGgySW5zdGFsbFBhcmFtczoge1xuICAgICAgICAgICAgICAgICAgc2NvcGVzOiBwYXlsb2FkLmludGVncmF0aW9uX3R5cGVzX2NvbmZpZ1snMCddLm9hdXRoMl9pbnN0YWxsX3BhcmFtcy5zY29wZXMsXG4gICAgICAgICAgICAgICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlZ3JhdGlvbl90eXBlc19jb25maWdbJzAnXS5vYXV0aDJfaW5zdGFsbF9wYXJhbXMucGVybWlzc2lvbnMpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIFtEaXNjb3JkQXBwbGljYXRpb25JbnRlZ3JhdGlvblR5cGUuVXNlckluc3RhbGxdOiBwYXlsb2FkLmludGVncmF0aW9uX3R5cGVzX2NvbmZpZ1snMSddPy5vYXV0aDJfaW5zdGFsbF9wYXJhbXNcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIG9hdXRoMkluc3RhbGxQYXJhbXM6IHtcbiAgICAgICAgICAgICAgICAgIHNjb3BlczogcGF5bG9hZC5pbnRlZ3JhdGlvbl90eXBlc19jb25maWdbJzEnXS5vYXV0aDJfaW5zdGFsbF9wYXJhbXMuc2NvcGVzLFxuICAgICAgICAgICAgICAgICAgcGVybWlzc2lvbnM6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuaW50ZWdyYXRpb25fdHlwZXNfY29uZmlnWycxJ10ub2F1dGgyX2luc3RhbGxfcGFyYW1zLnBlcm1pc3Npb25zKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQsXG4gICAgZXZlbnRXZWJob29rc1VybDogcGF5bG9hZC5ldmVudF93ZWJob29rc191cmwsXG4gICAgZXZlbnRXZWJob29rc1N0YXR1czogcGF5bG9hZC5ldmVudF93ZWJob29rc19zdGF0dXMsXG4gICAgZXZlbnRXZWJob29rc1R5cGVzOiBwYXlsb2FkLmV2ZW50X3dlYmhvb2tzX3R5cGVzLFxuICB9IGFzIEFwcGxpY2F0aW9uO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignYXBwbGljYXRpb24nLCBib3QsIHBheWxvYWQsIGFwcGxpY2F0aW9uLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsImljb25IYXNoVG9CaWdJbnQiLCJjYWxsQ3VzdG9taXplciIsIlRvZ2dsZUJpdGZpZWxkIiwidHJhbnNmb3JtQXBwbGljYXRpb24iLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJhcHBsaWNhdGlvbiIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInJwY09yaWdpbnMiLCJycGNfb3JpZ2lucyIsImJvdFB1YmxpYyIsImJvdF9wdWJsaWMiLCJib3RSZXF1aXJlQ29kZUdyYW50IiwiYm90X3JlcXVpcmVfY29kZV9ncmFudCIsInRlcm1zT2ZTZXJ2aWNlVXJsIiwidGVybXNfb2Zfc2VydmljZV91cmwiLCJwcml2YWN5UG9saWN5VXJsIiwicHJpdmFjeV9wb2xpY3lfdXJsIiwidmVyaWZ5S2V5IiwidmVyaWZ5X2tleSIsInByaW1hcnlTa3VJZCIsInByaW1hcnlfc2t1X2lkIiwic2x1ZyIsImNvdmVySW1hZ2UiLCJjb3Zlcl9pbWFnZSIsInVuZGVmaW5lZCIsImZsYWdzIiwiZmxhZ3NOZXciLCJmbGFnc19uZXciLCJOdW1iZXIiLCJpZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsImljb24iLCJvd25lciIsInVzZXIiLCJwYXJ0aWFsIiwidGVhbSIsImd1aWxkSWQiLCJndWlsZF9pZCIsImN1c3RvbUluc3RhbGxVcmwiLCJjdXN0b21faW5zdGFsbF91cmwiLCJndWlsZCIsInNoYXJkSWQiLCJhcHByb3hpbWF0ZUd1aWxkQ291bnQiLCJhcHByb3hpbWF0ZV9ndWlsZF9jb3VudCIsImFwcHJveGltYXRlVXNlckluc3RhbGxDb3VudCIsImFwcHJveGltYXRlX3VzZXJfaW5zdGFsbF9jb3VudCIsImFwcHJveGltYXRlVXNlckF1dGhvcml6YXRpb25Db3VudCIsImFwcHJveGltYXRlX3VzZXJfYXV0aG9yaXphdGlvbl9jb3VudCIsImludGVyYWN0aW9uc0VuZHBvaW50VXJsIiwiaW50ZXJhY3Rpb25zX2VuZHBvaW50X3VybCIsInJlZGlyZWN0VXJpcyIsInJlZGlyZWN0X3VyaXMiLCJyb2xlQ29ubmVjdGlvbnNWZXJpZmljYXRpb25VcmwiLCJyb2xlX2Nvbm5lY3Rpb25zX3ZlcmlmaWNhdGlvbl91cmwiLCJ0YWdzIiwiaW5zdGFsbFBhcmFtcyIsImluc3RhbGxfcGFyYW1zIiwic2NvcGVzIiwicGVybWlzc2lvbnMiLCJpbnRlZ3JhdGlvblR5cGVzQ29uZmlnIiwiaW50ZWdyYXRpb25fdHlwZXNfY29uZmlnIiwiR3VpbGRJbnN0YWxsIiwib2F1dGgyX2luc3RhbGxfcGFyYW1zIiwib2F1dGgySW5zdGFsbFBhcmFtcyIsIlVzZXJJbnN0YWxsIiwiZXZlbnRXZWJob29rc1VybCIsImV2ZW50X3dlYmhvb2tzX3VybCIsImV2ZW50V2ViaG9va3NTdGF0dXMiLCJldmVudF93ZWJob29rc19zdGF0dXMiLCJldmVudFdlYmhvb2tzVHlwZXMiLCJldmVudF93ZWJob29rc190eXBlcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBa0NBLGlDQUFpQyxRQUFRLG9CQUFvQjtBQUMvRixTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFFckQsU0FBU0MsY0FBYyxRQUFRLHFCQUFxQjtBQUNwRCxTQUFTQyxjQUFjLFFBQVEsOEJBQThCO0FBRzdELE9BQU8sU0FBU0MscUJBQXFCQyxHQUFRLEVBQUVDLE9BQW9DLEVBQUVDLEtBQStDO0lBQ2xJLE1BQU1DLGNBQWM7UUFDbEJDLE1BQU1ILFFBQVFHLElBQUk7UUFDbEJDLGFBQWFKLFFBQVFJLFdBQVc7UUFDaENDLFlBQVlMLFFBQVFNLFdBQVc7UUFDL0JDLFdBQVdQLFFBQVFRLFVBQVU7UUFDN0JDLHFCQUFxQlQsUUFBUVUsc0JBQXNCO1FBQ25EQyxtQkFBbUJYLFFBQVFZLG9CQUFvQjtRQUMvQ0Msa0JBQWtCYixRQUFRYyxrQkFBa0I7UUFDNUNDLFdBQVdmLFFBQVFnQixVQUFVO1FBQzdCQyxjQUFjakIsUUFBUWtCLGNBQWM7UUFDcENDLE1BQU1uQixRQUFRbUIsSUFBSTtRQUNsQkMsWUFBWXBCLFFBQVFxQixXQUFXLEdBQUcxQixpQkFBaUJLLFFBQVFxQixXQUFXLElBQUlDO1FBQzFFQyxPQUFPdkIsUUFBUXVCLEtBQUs7UUFDcEIsaURBQWlEO1FBQ2pEQyxVQUFVeEIsUUFBUXlCLFNBQVMsR0FBRyxJQUFJNUIsZUFBZTZCLE9BQU8xQixRQUFReUIsU0FBUyxLQUFLSDtRQUU5RUssSUFBSTNCLFFBQVEyQixFQUFFLEdBQUc1QixJQUFJNkIsWUFBWSxDQUFDQyxTQUFTLENBQUM3QixRQUFRMkIsRUFBRSxJQUFJTDtRQUMxRFEsTUFBTTlCLFFBQVE4QixJQUFJLEdBQUduQyxpQkFBaUJLLFFBQVE4QixJQUFJLElBQUlSO1FBQ3REUyxPQUFPL0IsUUFBUStCLEtBQUssR0FBR2hDLElBQUk2QixZQUFZLENBQUNJLElBQUksQ0FBQ2pDLEtBQUtDLFFBQVErQixLQUFLLEVBQUU7WUFBRUUsU0FBUztRQUFLLEtBQUtYO1FBQ3RGWSxNQUFNbEMsUUFBUWtDLElBQUksR0FBR25DLElBQUk2QixZQUFZLENBQUNNLElBQUksQ0FBQ25DLEtBQUtDLFFBQVFrQyxJQUFJLElBQUlaO1FBQ2hFYSxTQUFTbkMsUUFBUW9DLFFBQVEsR0FBR3JDLElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQzdCLFFBQVFvQyxRQUFRLElBQUlkO1FBQzNFZSxrQkFBa0JyQyxRQUFRc0Msa0JBQWtCO1FBQzVDQyxPQUFPdkMsUUFBUXVDLEtBQUssR0FBR3hDLElBQUk2QixZQUFZLENBQUNXLEtBQUssQ0FBQ3hDLEtBQUtDLFFBQVF1QyxLQUFLLEVBQUU7WUFBRUMsU0FBU3ZDLE9BQU91QztZQUFTUCxTQUFTO1FBQUssS0FBS1g7UUFDaEhtQix1QkFBdUJ6QyxRQUFRMEMsdUJBQXVCO1FBQ3REQyw2QkFBNkIzQyxRQUFRNEMsOEJBQThCO1FBQ25FQyxtQ0FBbUM3QyxRQUFROEMsb0NBQW9DO1FBQy9FL0MsS0FBS0MsUUFBUUQsR0FBRyxHQUFHQSxJQUFJNkIsWUFBWSxDQUFDSSxJQUFJLENBQUNqQyxLQUFLQyxRQUFRRCxHQUFHLEVBQUU7WUFBRWtDLFNBQVM7UUFBSyxLQUFLWDtRQUNoRnlCLHlCQUF5Qi9DLFFBQVFnRCx5QkFBeUIsR0FBR2hELFFBQVFnRCx5QkFBeUIsR0FBRzFCO1FBQ2pHMkIsY0FBY2pELFFBQVFrRCxhQUFhO1FBQ25DQyxnQ0FBZ0NuRCxRQUFRb0QsaUNBQWlDO1FBQ3pFQyxNQUFNckQsUUFBUXFELElBQUk7UUFDbEJDLGVBQWV0RCxRQUFRdUQsY0FBYyxHQUNqQztZQUNFQyxRQUFReEQsUUFBUXVELGNBQWMsQ0FBQ0MsTUFBTTtZQUNyQ0MsYUFBYTFELElBQUk2QixZQUFZLENBQUNDLFNBQVMsQ0FBQzdCLFFBQVF1RCxjQUFjLENBQUNFLFdBQVc7UUFDNUUsSUFDQW5DO1FBQ0pvQyx3QkFBd0IxRCxRQUFRMkQsd0JBQXdCLEdBQ3BEO1lBQ0UsQ0FBQ2pFLGtDQUFrQ2tFLFlBQVksQ0FBQyxFQUFFNUQsUUFBUTJELHdCQUF3QixDQUFDLElBQUksRUFBRUUsd0JBQ3JGO2dCQUNFQyxxQkFBcUI7b0JBQ25CTixRQUFReEQsUUFBUTJELHdCQUF3QixDQUFDLElBQUksQ0FBQ0UscUJBQXFCLENBQUNMLE1BQU07b0JBQzFFQyxhQUFhMUQsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDN0IsUUFBUTJELHdCQUF3QixDQUFDLElBQUksQ0FBQ0UscUJBQXFCLENBQUNKLFdBQVc7Z0JBQ2pIO1lBQ0YsSUFDQW5DO1lBQ0osQ0FBQzVCLGtDQUFrQ3FFLFdBQVcsQ0FBQyxFQUFFL0QsUUFBUTJELHdCQUF3QixDQUFDLElBQUksRUFBRUUsd0JBQ3BGO2dCQUNFQyxxQkFBcUI7b0JBQ25CTixRQUFReEQsUUFBUTJELHdCQUF3QixDQUFDLElBQUksQ0FBQ0UscUJBQXFCLENBQUNMLE1BQU07b0JBQzFFQyxhQUFhMUQsSUFBSTZCLFlBQVksQ0FBQ0MsU0FBUyxDQUFDN0IsUUFBUTJELHdCQUF3QixDQUFDLElBQUksQ0FBQ0UscUJBQXFCLENBQUNKLFdBQVc7Z0JBQ2pIO1lBQ0YsSUFDQW5DO1FBQ04sSUFDQUE7UUFDSjBDLGtCQUFrQmhFLFFBQVFpRSxrQkFBa0I7UUFDNUNDLHFCQUFxQmxFLFFBQVFtRSxxQkFBcUI7UUFDbERDLG9CQUFvQnBFLFFBQVFxRSxvQkFBb0I7SUFDbEQ7SUFFQSxPQUFPekUsZUFBZSxlQUFlRyxLQUFLQyxTQUFTRSxhQUFhO1FBQzlEc0MsU0FBU3ZDLE9BQU91QztRQUNoQlAsU0FBU2hDLE9BQU9nQyxXQUFXO0lBQzdCO0FBQ0YifQ==
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvYXBwbGljYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEaXNjb3JkQXBwbGljYXRpb24sIERpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSB9IGZyb20gJ0BkaXNjb3JkZW5vL3R5cGVzJztcbmltcG9ydCB7IGljb25IYXNoVG9CaWdJbnQgfSBmcm9tICdAZGlzY29yZGVuby91dGlscyc7XG5pbXBvcnQgdHlwZSB7IEJvdCB9IGZyb20gJy4uL2JvdC5qcyc7XG5pbXBvcnQgdHlwZSB7IERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3IsIFNldHVwRGVzaXJlZFByb3BzLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcyB9IGZyb20gJy4uL2Rlc2lyZWRQcm9wZXJ0aWVzLmpzJztcbmltcG9ydCB7IGNhbGxDdXN0b21pemVyIH0gZnJvbSAnLi4vdHJhbnNmb3JtZXJzLmpzJztcbmltcG9ydCB7IFRvZ2dsZUJpdGZpZWxkIH0gZnJvbSAnLi90b2dnbGVzL1RvZ2dsZUJpdGZpZWxkLmpzJztcbmltcG9ydCB0eXBlIHsgQXBwbGljYXRpb24gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUFwcGxpY2F0aW9uKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRBcHBsaWNhdGlvbj4sIGV4dHJhPzogeyBzaGFyZElkPzogbnVtYmVyOyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IGFwcGxpY2F0aW9uID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8QXBwbGljYXRpb24sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocGF5bG9hZC5uYW1lKSBhcHBsaWNhdGlvbi5uYW1lID0gcGF5bG9hZC5uYW1lO1xuICBpZiAocGF5bG9hZC5kZXNjcmlwdGlvbikgYXBwbGljYXRpb24uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocGF5bG9hZC5ycGNfb3JpZ2lucykgYXBwbGljYXRpb24ucnBjT3JpZ2lucyA9IHBheWxvYWQucnBjX29yaWdpbnM7XG4gIGlmIChwYXlsb2FkLmJvdF9wdWJsaWMgIT09IHVuZGVmaW5lZCkgYXBwbGljYXRpb24uYm90UHVibGljID0gcGF5bG9hZC5ib3RfcHVibGljO1xuICBpZiAocGF5bG9hZC5ib3RfcmVxdWlyZV9jb2RlX2dyYW50ICE9PSB1bmRlZmluZWQpIGFwcGxpY2F0aW9uLmJvdFJlcXVpcmVDb2RlR3JhbnQgPSBwYXlsb2FkLmJvdF9yZXF1aXJlX2NvZGVfZ3JhbnQ7XG4gIGlmIChwYXlsb2FkLnRlcm1zX29mX3NlcnZpY2VfdXJsKSBhcHBsaWNhdGlvbi50ZXJtc09mU2VydmljZVVybCA9IHBheWxvYWQudGVybXNfb2Zfc2VydmljZV91cmw7XG4gIGlmIChwYXlsb2FkLnByaXZhY3lfcG9saWN5X3VybCkgYXBwbGljYXRpb24ucHJpdmFjeVBvbGljeVVybCA9IHBheWxvYWQucHJpdmFjeV9wb2xpY3lfdXJsO1xuICBpZiAocGF5bG9hZC52ZXJpZnlfa2V5KSBhcHBsaWNhdGlvbi52ZXJpZnlLZXkgPSBwYXlsb2FkLnZlcmlmeV9rZXk7XG4gIGlmIChwYXlsb2FkLnByaW1hcnlfc2t1X2lkKSBhcHBsaWNhdGlvbi5wcmltYXJ5U2t1SWQgPSBwYXlsb2FkLnByaW1hcnlfc2t1X2lkO1xuICBpZiAocGF5bG9hZC5zbHVnKSBhcHBsaWNhdGlvbi5zbHVnID0gcGF5bG9hZC5zbHVnO1xuICBpZiAocGF5bG9hZC5jb3Zlcl9pbWFnZSkgYXBwbGljYXRpb24uY292ZXJJbWFnZSA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5jb3Zlcl9pbWFnZSk7XG4gIGlmIChwYXlsb2FkLmZsYWdzICE9PSB1bmRlZmluZWQpIGFwcGxpY2F0aW9uLmZsYWdzID0gcGF5bG9hZC5mbGFncztcbiAgLy8gZmxhZ3NfbmV3IGlzIGEgc3RyaW5nIHdpdGggdGhlIGJpdGZpZWxkIGluc2lkZVxuICBpZiAocGF5bG9hZC5mbGFnc19uZXcpIGFwcGxpY2F0aW9uLmZsYWdzTmV3ID0gbmV3IFRvZ2dsZUJpdGZpZWxkKE51bWJlcihwYXlsb2FkLmZsYWdzX25ldykpO1xuICBpZiAocGF5bG9hZC5pZCkgYXBwbGljYXRpb24uaWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmlkKTtcbiAgaWYgKHBheWxvYWQuaWNvbikgYXBwbGljYXRpb24uaWNvbiA9IGljb25IYXNoVG9CaWdJbnQocGF5bG9hZC5pY29uKTtcbiAgaWYgKHBheWxvYWQub3duZXIpIGFwcGxpY2F0aW9uLm93bmVyID0gYm90LnRyYW5zZm9ybWVycy51c2VyKGJvdCwgcGF5bG9hZC5vd25lciwgeyBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocGF5bG9hZC50ZWFtKSBhcHBsaWNhdGlvbi50ZWFtID0gYm90LnRyYW5zZm9ybWVycy50ZWFtKGJvdCwgcGF5bG9hZC50ZWFtKTtcbiAgaWYgKHBheWxvYWQuZ3VpbGRfaWQpIGFwcGxpY2F0aW9uLmd1aWxkSWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmd1aWxkX2lkKTtcbiAgaWYgKHBheWxvYWQuY3VzdG9tX2luc3RhbGxfdXJsKSBhcHBsaWNhdGlvbi5jdXN0b21JbnN0YWxsVXJsID0gcGF5bG9hZC5jdXN0b21faW5zdGFsbF91cmw7XG4gIGlmIChwYXlsb2FkLmd1aWxkKSBhcHBsaWNhdGlvbi5ndWlsZCA9IGJvdC50cmFuc2Zvcm1lcnMuZ3VpbGQoYm90LCBwYXlsb2FkLmd1aWxkLCB7IHNoYXJkSWQ6IGV4dHJhPy5zaGFyZElkLCBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocGF5bG9hZC5hcHByb3hpbWF0ZV9ndWlsZF9jb3VudCAhPT0gdW5kZWZpbmVkKSBhcHBsaWNhdGlvbi5hcHByb3hpbWF0ZUd1aWxkQ291bnQgPSBwYXlsb2FkLmFwcHJveGltYXRlX2d1aWxkX2NvdW50O1xuICBpZiAocGF5bG9hZC5hcHByb3hpbWF0ZV91c2VyX2luc3RhbGxfY291bnQgIT09IHVuZGVmaW5lZCkgYXBwbGljYXRpb24uYXBwcm94aW1hdGVVc2VySW5zdGFsbENvdW50ID0gcGF5bG9hZC5hcHByb3hpbWF0ZV91c2VyX2luc3RhbGxfY291bnQ7XG4gIGlmIChwYXlsb2FkLmFwcHJveGltYXRlX3VzZXJfYXV0aG9yaXphdGlvbl9jb3VudCAhPT0gdW5kZWZpbmVkKVxuICAgIGFwcGxpY2F0aW9uLmFwcHJveGltYXRlVXNlckF1dGhvcml6YXRpb25Db3VudCA9IHBheWxvYWQuYXBwcm94aW1hdGVfdXNlcl9hdXRob3JpemF0aW9uX2NvdW50O1xuICBpZiAocGF5bG9hZC5ib3QpIGFwcGxpY2F0aW9uLmJvdCA9IGJvdC50cmFuc2Zvcm1lcnMudXNlcihib3QsIHBheWxvYWQuYm90LCB7IHBhcnRpYWw6IHRydWUgfSk7XG4gIGlmIChwYXlsb2FkLmludGVyYWN0aW9uc19lbmRwb2ludF91cmwpIGFwcGxpY2F0aW9uLmludGVyYWN0aW9uc0VuZHBvaW50VXJsID0gcGF5bG9hZC5pbnRlcmFjdGlvbnNfZW5kcG9pbnRfdXJsO1xuICBpZiAocGF5bG9hZC5yZWRpcmVjdF91cmlzKSBhcHBsaWNhdGlvbi5yZWRpcmVjdFVyaXMgPSBwYXlsb2FkLnJlZGlyZWN0X3VyaXM7XG4gIGlmIChwYXlsb2FkLnJvbGVfY29ubmVjdGlvbnNfdmVyaWZpY2F0aW9uX3VybCkgYXBwbGljYXRpb24ucm9sZUNvbm5lY3Rpb25zVmVyaWZpY2F0aW9uVXJsID0gcGF5bG9hZC5yb2xlX2Nvbm5lY3Rpb25zX3ZlcmlmaWNhdGlvbl91cmw7XG4gIGlmIChwYXlsb2FkLnRhZ3MpIGFwcGxpY2F0aW9uLnRhZ3MgPSBwYXlsb2FkLnRhZ3M7XG4gIGlmIChwYXlsb2FkLmluc3RhbGxfcGFyYW1zKSB7XG4gICAgYXBwbGljYXRpb24uaW5zdGFsbFBhcmFtcyA9IHtcbiAgICAgIHNjb3BlczogcGF5bG9hZC5pbnN0YWxsX3BhcmFtcy5zY29wZXMsXG4gICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnN0YWxsX3BhcmFtcy5wZXJtaXNzaW9ucyksXG4gICAgfTtcbiAgfVxuICBpZiAocGF5bG9hZC5pbnRlZ3JhdGlvbl90eXBlc19jb25maWcpIHtcbiAgICBhcHBsaWNhdGlvbi5pbnRlZ3JhdGlvblR5cGVzQ29uZmlnID0ge1xuICAgICAgW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5HdWlsZEluc3RhbGxdOiBwYXlsb2FkLmludGVncmF0aW9uX3R5cGVzX2NvbmZpZ1snMCddPy5vYXV0aDJfaW5zdGFsbF9wYXJhbXNcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBvYXV0aDJJbnN0YWxsUGFyYW1zOiB7XG4gICAgICAgICAgICAgIHNjb3BlczogcGF5bG9hZC5pbnRlZ3JhdGlvbl90eXBlc19jb25maWdbJzAnXS5vYXV0aDJfaW5zdGFsbF9wYXJhbXMuc2NvcGVzLFxuICAgICAgICAgICAgICBwZXJtaXNzaW9uczogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UocGF5bG9hZC5pbnRlZ3JhdGlvbl90eXBlc19jb25maWdbJzAnXS5vYXV0aDJfaW5zdGFsbF9wYXJhbXMucGVybWlzc2lvbnMpLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgW0Rpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZS5Vc2VySW5zdGFsbF06IHBheWxvYWQuaW50ZWdyYXRpb25fdHlwZXNfY29uZmlnWycxJ10/Lm9hdXRoMl9pbnN0YWxsX3BhcmFtc1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIG9hdXRoMkluc3RhbGxQYXJhbXM6IHtcbiAgICAgICAgICAgICAgc2NvcGVzOiBwYXlsb2FkLmludGVncmF0aW9uX3R5cGVzX2NvbmZpZ1snMSddLm9hdXRoMl9pbnN0YWxsX3BhcmFtcy5zY29wZXMsXG4gICAgICAgICAgICAgIHBlcm1pc3Npb25zOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmludGVncmF0aW9uX3R5cGVzX2NvbmZpZ1snMSddLm9hdXRoMl9pbnN0YWxsX3BhcmFtcy5wZXJtaXNzaW9ucyksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfVxuICBpZiAocGF5bG9hZC5ldmVudF93ZWJob29rc191cmwpIGFwcGxpY2F0aW9uLmV2ZW50V2ViaG9va3NVcmwgPSBwYXlsb2FkLmV2ZW50X3dlYmhvb2tzX3VybDtcbiAgaWYgKHBheWxvYWQuZXZlbnRfd2ViaG9va3Nfc3RhdHVzKSBhcHBsaWNhdGlvbi5ldmVudFdlYmhvb2tzU3RhdHVzID0gcGF5bG9hZC5ldmVudF93ZWJob29rc19zdGF0dXM7XG4gIGlmIChwYXlsb2FkLmV2ZW50X3dlYmhvb2tzX3R5cGVzKSBhcHBsaWNhdGlvbi5ldmVudFdlYmhvb2tzVHlwZXMgPSBwYXlsb2FkLmV2ZW50X3dlYmhvb2tzX3R5cGVzO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcignYXBwbGljYXRpb24nLCBib3QsIHBheWxvYWQsIGFwcGxpY2F0aW9uLCB7XG4gICAgc2hhcmRJZDogZXh0cmE/LnNoYXJkSWQsXG4gICAgcGFydGlhbDogZXh0cmE/LnBhcnRpYWwgPz8gZmFsc2UsXG4gIH0pO1xufVxuIl0sIm5hbWVzIjpbIkRpc2NvcmRBcHBsaWNhdGlvbkludGVncmF0aW9uVHlwZSIsImljb25IYXNoVG9CaWdJbnQiLCJjYWxsQ3VzdG9taXplciIsIlRvZ2dsZUJpdGZpZWxkIiwidHJhbnNmb3JtQXBwbGljYXRpb24iLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJhcHBsaWNhdGlvbiIsIm5hbWUiLCJkZXNjcmlwdGlvbiIsInJwY19vcmlnaW5zIiwicnBjT3JpZ2lucyIsImJvdF9wdWJsaWMiLCJ1bmRlZmluZWQiLCJib3RQdWJsaWMiLCJib3RfcmVxdWlyZV9jb2RlX2dyYW50IiwiYm90UmVxdWlyZUNvZGVHcmFudCIsInRlcm1zX29mX3NlcnZpY2VfdXJsIiwidGVybXNPZlNlcnZpY2VVcmwiLCJwcml2YWN5X3BvbGljeV91cmwiLCJwcml2YWN5UG9saWN5VXJsIiwidmVyaWZ5X2tleSIsInZlcmlmeUtleSIsInByaW1hcnlfc2t1X2lkIiwicHJpbWFyeVNrdUlkIiwic2x1ZyIsImNvdmVyX2ltYWdlIiwiY292ZXJJbWFnZSIsImZsYWdzIiwiZmxhZ3NfbmV3IiwiZmxhZ3NOZXciLCJOdW1iZXIiLCJpZCIsInRyYW5zZm9ybWVycyIsInNub3dmbGFrZSIsImljb24iLCJvd25lciIsInVzZXIiLCJwYXJ0aWFsIiwidGVhbSIsImd1aWxkX2lkIiwiZ3VpbGRJZCIsImN1c3RvbV9pbnN0YWxsX3VybCIsImN1c3RvbUluc3RhbGxVcmwiLCJndWlsZCIsInNoYXJkSWQiLCJhcHByb3hpbWF0ZV9ndWlsZF9jb3VudCIsImFwcHJveGltYXRlR3VpbGRDb3VudCIsImFwcHJveGltYXRlX3VzZXJfaW5zdGFsbF9jb3VudCIsImFwcHJveGltYXRlVXNlckluc3RhbGxDb3VudCIsImFwcHJveGltYXRlX3VzZXJfYXV0aG9yaXphdGlvbl9jb3VudCIsImFwcHJveGltYXRlVXNlckF1dGhvcml6YXRpb25Db3VudCIsImludGVyYWN0aW9uc19lbmRwb2ludF91cmwiLCJpbnRlcmFjdGlvbnNFbmRwb2ludFVybCIsInJlZGlyZWN0X3VyaXMiLCJyZWRpcmVjdFVyaXMiLCJyb2xlX2Nvbm5lY3Rpb25zX3ZlcmlmaWNhdGlvbl91cmwiLCJyb2xlQ29ubmVjdGlvbnNWZXJpZmljYXRpb25VcmwiLCJ0YWdzIiwiaW5zdGFsbF9wYXJhbXMiLCJpbnN0YWxsUGFyYW1zIiwic2NvcGVzIiwicGVybWlzc2lvbnMiLCJpbnRlZ3JhdGlvbl90eXBlc19jb25maWciLCJpbnRlZ3JhdGlvblR5cGVzQ29uZmlnIiwiR3VpbGRJbnN0YWxsIiwib2F1dGgyX2luc3RhbGxfcGFyYW1zIiwib2F1dGgySW5zdGFsbFBhcmFtcyIsIlVzZXJJbnN0YWxsIiwiZXZlbnRfd2ViaG9va3NfdXJsIiwiZXZlbnRXZWJob29rc1VybCIsImV2ZW50X3dlYmhvb2tzX3N0YXR1cyIsImV2ZW50V2ViaG9va3NTdGF0dXMiLCJldmVudF93ZWJob29rc190eXBlcyIsImV2ZW50V2ViaG9va3NUeXBlcyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBa0NBLGlDQUFpQyxRQUFRLG9CQUFvQjtBQUMvRixTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFHckQsU0FBU0MsY0FBYyxRQUFRLHFCQUFxQjtBQUNwRCxTQUFTQyxjQUFjLFFBQVEsOEJBQThCO0FBRzdELE9BQU8sU0FBU0MscUJBQXFCQyxHQUFRLEVBQUVDLE9BQW9DLEVBQUVDLEtBQStDO0lBQ2xJLE1BQU1DLGNBQWMsQ0FBQztJQUVyQixJQUFJRixRQUFRRyxJQUFJLEVBQUVELFlBQVlDLElBQUksR0FBR0gsUUFBUUcsSUFBSTtJQUNqRCxJQUFJSCxRQUFRSSxXQUFXLEVBQUVGLFlBQVlFLFdBQVcsR0FBR0osUUFBUUksV0FBVztJQUN0RSxJQUFJSixRQUFRSyxXQUFXLEVBQUVILFlBQVlJLFVBQVUsR0FBR04sUUFBUUssV0FBVztJQUNyRSxJQUFJTCxRQUFRTyxVQUFVLEtBQUtDLFdBQVdOLFlBQVlPLFNBQVMsR0FBR1QsUUFBUU8sVUFBVTtJQUNoRixJQUFJUCxRQUFRVSxzQkFBc0IsS0FBS0YsV0FBV04sWUFBWVMsbUJBQW1CLEdBQUdYLFFBQVFVLHNCQUFzQjtJQUNsSCxJQUFJVixRQUFRWSxvQkFBb0IsRUFBRVYsWUFBWVcsaUJBQWlCLEdBQUdiLFFBQVFZLG9CQUFvQjtJQUM5RixJQUFJWixRQUFRYyxrQkFBa0IsRUFBRVosWUFBWWEsZ0JBQWdCLEdBQUdmLFFBQVFjLGtCQUFrQjtJQUN6RixJQUFJZCxRQUFRZ0IsVUFBVSxFQUFFZCxZQUFZZSxTQUFTLEdBQUdqQixRQUFRZ0IsVUFBVTtJQUNsRSxJQUFJaEIsUUFBUWtCLGNBQWMsRUFBRWhCLFlBQVlp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
|
|
@@ -170,11 +170,9 @@ function transformStringSelectMenuComponent(bot, payload) {
|
|
|
170
170
|
label: option.label,
|
|
171
171
|
value: option.value,
|
|
172
172
|
description: option.description,
|
|
173
|
-
emoji: option.emoji ? {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
animated: option.emoji.animated
|
|
177
|
-
} : undefined,
|
|
173
|
+
emoji: option.emoji ? bot.transformers.emoji(bot, option.emoji, {
|
|
174
|
+
partial: true
|
|
175
|
+
}) : undefined,
|
|
178
176
|
default: option.default
|
|
179
177
|
}));
|
|
180
178
|
if (props.disabled && _payload.disabled) select.disabled = _payload.disabled;
|
|
@@ -408,4 +406,4 @@ function transformCheckboxComponent(bot, payload) {
|
|
|
408
406
|
return checkbox;
|
|
409
407
|
}
|
|
410
408
|
|
|
411
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRDaGFubmVsU2VsZWN0Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRDaGFubmVsU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkQ2hlY2tib3hDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZENoZWNrYm94R3JvdXBDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZENoZWNrYm94R3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRDaGVja2JveEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZVVwbG9hZEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZExhYmVsQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRMYWJlbEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkTWVkaWFHYWxsZXJ5SXRlbSxcbiAgdHlwZSBEaXNjb3JkTWVudGlvbmFibGVTZWxlY3RDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lbnRpb25hYmxlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudEZyb21Nb2RhbEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZFJhZGlvR3JvdXBDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFJhZGlvR3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRSb2xlU2VsZWN0Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRSb2xlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkU2VjdGlvbkNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkU2VwYXJhdG9yQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRTdHJpbmdTZWxlY3RDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFN0cmluZ1NlbGVjdEludGVyYWN0aW9uUmVzcG9uc2VGcm9tTW9kYWwsXG4gIHR5cGUgRGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRUZXh0RGlzcGxheUludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dElucHV0SW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgdHlwZSBEaXNjb3JkVXNlclNlbGVjdENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVXNlclNlbGVjdEludGVyYWN0aW9uUmVzcG9uc2VGcm9tTW9kYWwsXG4gIE1lc3NhZ2VDb21wb25lbnRUeXBlcyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudCwgTWVkaWFHYWxsZXJ5SXRlbSwgVW5mdXJsZWRNZWRpYUl0ZW0gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNvbXBvbmVudChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lc3NhZ2VDb21wb25lbnQgfCBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudEZyb21Nb2RhbEludGVyYWN0aW9uUmVzcG9uc2U+LFxuICBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSxcbikge1xuICBsZXQgY29tcG9uZW50OiBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICAvLyBUaGVyZSdzIG5vdGhpbmcgdG8gZG8gd2l0aCBhIGNvbXBvbmVudCB3aXRob3V0IGEgdHlwZSwgYXMgaXQgbWVhbnMgYW4gaXNzdWUgb24gRGlzY29yZCwgc28gd2UganVzdCB0aHJvdyBhbiBlcnJvclxuICBpZiAoIXBheWxvYWQudHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgW0Rpc2NvcmRlbm9dIFJlY2VpdmVkIGEgY29tcG9uZW50IHBheWxvYWQgd2l0aG91dCBhIHR5cGUgaW4gdGhlIGNvbXBvbmVudCB0cmFuc2Zvcm1lci5gKTtcbiAgfVxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ29udGFpbmVyOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlN0cmluZ1NlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVN0cmluZ1NlbGVjdE1lbnVDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlVzZXJTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Vc2VyU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuUm9sZVNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVJvbGVTZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZW50aW9uYWJsZVNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybU1lbnRpb25hYmxlU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ2hhbm5lbFNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUNoYW5uZWxTZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWN0aW9uOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVGh1bWJuYWlsOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGh1bWJuYWlsQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkZpbGU6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1GaWxlQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZXBhcmF0b3I6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkxhYmVsOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtTGFiZWxDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkZpbGVVcGxvYWQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1GaWxlVXBsb2FkQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5SYWRpb0dyb3VwOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtUmFkaW9Hcm91cENvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ2hlY2tib3hHcm91cDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUNoZWNrYm94R3JvdXBDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoZWNrYm94OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtQ2hlY2tib3hDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdjb21wb25lbnQnLCBib3QsIHBheWxvYWQsIGNvbXBvbmVudCwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbT4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbTtcbiAgY29uc3QgbWVkaWFJdGVtID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8VW5mdXJsZWRNZWRpYUl0ZW0sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudXJsICYmIHBheWxvYWQudXJsKSBtZWRpYUl0ZW0udXJsID0gcGF5bG9hZC51cmw7XG4gIGlmIChwcm9wcy5wcm94eVVybCAmJiBwYXlsb2FkLnByb3h5X3VybCkgbWVkaWFJdGVtLnByb3h5VXJsID0gcGF5bG9hZC5wcm94eV91cmw7XG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodDtcbiAgaWYgKHByb3BzLndpZHRoICYmIHBheWxvYWQud2lkdGgpIG1lZGlhSXRlbS53aWR0aCA9IHBheWxvYWQud2lkdGg7XG4gIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBwYXlsb2FkLnBsYWNlaG9sZGVyKSBtZWRpYUl0ZW0ucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyO1xuICBpZiAocHJvcHMucGxhY2Vob2xkZXJWZXJzaW9uICYmIHBheWxvYWQucGxhY2Vob2xkZXJfdmVyc2lvbikgbWVkaWFJdGVtLnBsYWNlaG9sZGVyVmVyc2lvbiA9IHBheWxvYWQucGxhY2Vob2xkZXJfdmVyc2lvbjtcbiAgaWYgKHByb3BzLmNvbnRlbnRUeXBlICYmIHBheWxvYWQuY29udGVudF90eXBlKSBtZWRpYUl0ZW0uY29udGVudFR5cGUgPSBwYXlsb2FkLmNvbnRlbnRfdHlwZTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIG1lZGlhSXRlbS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLmF0dGFjaG1lbnRJZCAmJiBwYXlsb2FkLmF0dGFjaG1lbnRfaWQpIG1lZGlhSXRlbS5hdHRhY2htZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF0dGFjaG1lbnRfaWQpO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcigndW5mdXJsZWRNZWRpYUl0ZW0nLCBib3QsIHBheWxvYWQsIG1lZGlhSXRlbSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUl0ZW0oYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVkaWFHYWxsZXJ5SXRlbTtcbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZWRpYUdhbGxlcnlJdGVtLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpO1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5kZXNjcmlwdGlvbikgZ2FsbGVyeUl0ZW0uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGdhbGxlcnlJdGVtLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXI7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdtZWRpYUdhbGxlcnlJdGVtJywgYm90LCBwYXlsb2FkLCBnYWxsZXJ5SXRlbSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQWN0aW9uUm93KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRBY3Rpb25Sb3c+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBhY3Rpb25Sb3cuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpXG4gICAgYWN0aW9uUm93LmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSk7XG5cbiAgcmV0dXJuIGFjdGlvblJvdztcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDb250YWluZXJDb21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGNvbnRhaW5lciA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgY29udGFpbmVyLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuYWNjZW50Q29sb3IgJiYgcGF5bG9hZC5hY2NlbnRfY29sb3IpIGNvbnRhaW5lci5hY2NlbnRDb2xvciA9IHBheWxvYWQuYWNjZW50X2NvbG9yO1xuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGNvbnRhaW5lci5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpXG4gICAgY29udGFpbmVyLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRCdXR0b25Db21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBidXR0b24uaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMubGFiZWwgJiYgcGF5bG9hZC5sYWJlbCkgYnV0dG9uLmxhYmVsID0gcGF5bG9hZC5sYWJlbDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcbiAgaWYgKHByb3BzLnN0eWxlICYmIHBheWxvYWQuc3R5bGUpIGJ1dHRvbi5zdHlsZSA9IHBheWxvYWQuc3R5bGU7XG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBidXR0b24uZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSwgeyBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocHJvcHMudXJsICYmIHBheWxvYWQudXJsKSBidXR0b24udXJsID0gcGF5bG9hZC51cmw7XG4gIGlmIChwcm9wcy5kaXNhYmxlZCAmJiBwYXlsb2FkLmRpc2FibGVkKSBidXR0b24uZGlzYWJsZWQgPSBwYXlsb2FkLmRpc2FibGVkO1xuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKTtcblxuICByZXR1cm4gYnV0dG9uO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFRleHRJbnB1dENvbXBvbmVudCB8IERpc2NvcmRUZXh0SW5wdXRJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBpbnB1dCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGlucHV0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLnZhbHVlICYmIHBheWxvYWQudmFsdWUpIGlucHV0LnZhbHVlID0gcGF5bG9hZC52YWx1ZTtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBpbnB1dC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ3ZhbHVlcycgaXQgaXMgdGhlIGludGVyYWN0aW9uIHJlc3BvbnNlXG4gIGlmICgnc3R5bGUnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgaW5wdXQuc3R5bGUgPSBwYXlsb2FkLnN0eWxlO1xuICAgIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkKSBpbnB1dC5yZXF1aXJlZCA9IHBheWxvYWQucmVxdWlyZWQ7XG4gICAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbDtcbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGg7XG4gICAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aDtcbiAgfVxuXG4gIHJldHVybiBpbnB1dDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU3RyaW5nU2VsZWN0TWVudUNvbXBvbmVudChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFN0cmluZ1NlbGVjdENvbXBvbmVudCB8IERpc2NvcmRTdHJpbmdTZWxlY3RJbnRlcmFjdGlvblJlc3BvbnNlRnJvbU1vZGFsPixcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VsZWN0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBzZWxlY3QuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIHNlbGVjdC52YWx1ZXMgPSBwYXlsb2FkLnZhbHVlcztcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkU3RyaW5nU2VsZWN0Q29tcG9uZW50PjtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBfcGF5bG9hZC5wbGFjZWhvbGRlcikgc2VsZWN0LnBsYWNlaG9sZGVyID0gX3BheWxvYWQucGxhY2Vob2xkZXI7XG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBfcGF5bG9hZC5taW5fdmFsdWVzKSBzZWxlY3QubWluVmFsdWVzID0gX3BheWxvYWQubWluX3ZhbHVlcztcbiAgICBpZiAocHJvcHMubWF4VmFsdWVzICYmIF9wYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBfcGF5bG9hZC5tYXhfdmFsdWVzO1xuICAgIGlmIChwcm9wcy5vcHRpb25zICYmIF9wYXlsb2FkLm9wdGlvbnMpXG4gICAgICBzZWxlY3Qub3B0aW9ucyA9IF9wYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgIGxhYmVsOiBvcHRpb24ubGFiZWwsXG4gICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgIGVtb2ppOiBvcHRpb24uZW1vamlcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgaWQ6IG9wdGlvbi5lbW9qaS5pZCA/IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKG9wdGlvbi5lbW9qaS5pZCkgOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgIG5hbWU6IG9wdGlvbi5lbW9qaS5uYW1lID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgYW5pbWF0ZWQ6IG9wdGlvbi5lbW9qaS5hbmltYXRlZCxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgZGVmYXVsdDogb3B0aW9uLmRlZmF1bHQsXG4gICAgICB9KSk7XG4gICAgaWYgKHByb3BzLmRpc2FibGVkICYmIF9wYXlsb2FkLmRpc2FibGVkKSBzZWxlY3QuZGlzYWJsZWQgPSBfcGF5bG9hZC5kaXNhYmxlZDtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Q7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVVzZXJTZWxlY3RNZW51Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRVc2VyU2VsZWN0Q29tcG9uZW50IHwgRGlzY29yZFVzZXJTZWxlY3RJbnRlcmFjdGlvblJlc3BvbnNlRnJvbU1vZGFsPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VsZWN0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBzZWxlY3QuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIHNlbGVjdC52YWx1ZXMgPSBwYXlsb2FkLnZhbHVlcztcbiAgICBpZiAocHJvcHMucmVzb2x2ZWQgJiYgcGF5bG9hZC5yZXNvbHZlZCkgc2VsZWN0LnJlc29sdmVkID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQucmVzb2x2ZWQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IF9wYXlsb2FkID0gcGF5bG9hZCBhcyBQYXJ0aWFsPERpc2NvcmRVc2VyU2VsZWN0Q29tcG9uZW50PjtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBfcGF5bG9hZC5wbGFjZWhvbGRlcikgc2VsZWN0LnBsYWNlaG9sZGVyID0gX3BheWxvYWQucGxhY2Vob2xkZXI7XG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBfcGF5bG9hZC5taW5fdmFsdWVzKSBzZWxlY3QubWluVmFsdWVzID0gX3BheWxvYWQubWluX3ZhbHVlcztcbiAgICBpZiAocHJvcHMubWF4VmFsdWVzICYmIF9wYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBfcGF5bG9hZC5tYXhfdmFsdWVzO1xuICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWVzICYmIF9wYXlsb2FkLmRlZmF1bHRfdmFsdWVzKVxuICAgICAgc2VsZWN0LmRlZmF1bHRWYWx1ZXMgPSBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcy5tYXAoKGRlZmF1bHRWYWx1ZSkgPT4gKHtcbiAgICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGRlZmF1bHRWYWx1ZS5pZCksXG4gICAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgICAgfSkpO1xuICAgIGlmIChwcm9wcy5kaXNhYmxlZCAmJiBfcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gX3BheWxvYWQuZGlzYWJsZWQ7XG4gIH1cblxuICByZXR1cm4gc2VsZWN0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Sb2xlU2VsZWN0TWVudUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkUm9sZVNlbGVjdENvbXBvbmVudCB8IERpc2NvcmRSb2xlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbD4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3Qgc2VsZWN0ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWxlY3QudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlbGVjdC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAndmFsdWVzJyBpdCBpcyB0aGUgaW50ZXJhY3Rpb24gcmVzcG9uc2VcbiAgaWYgKCd2YWx1ZXMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzICYmIHBheWxvYWQudmFsdWVzKSBzZWxlY3QudmFsdWVzID0gcGF5bG9hZC52YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlc29sdmVkICYmIHBheWxvYWQucmVzb2x2ZWQpIHNlbGVjdC5yZXNvbHZlZCA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLnJlc29sdmVkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkUm9sZVNlbGVjdENvbXBvbmVudD47XG5cbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgX3BheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IF9wYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5WYWx1ZXMgJiYgX3BheWxvYWQubWluX3ZhbHVlcykgc2VsZWN0Lm1pblZhbHVlcyA9IF9wYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBfcGF5bG9hZC5tYXhfdmFsdWVzKSBzZWxlY3QubWF4VmFsdWVzID0gX3BheWxvYWQubWF4X3ZhbHVlcztcbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlcyAmJiBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICAgIHNlbGVjdC5kZWZhdWx0VmFsdWVzID0gX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgICB0eXBlOiBkZWZhdWx0VmFsdWUudHlwZSxcbiAgICAgIH0pKTtcbiAgICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgX3BheWxvYWQuZGlzYWJsZWQpIHNlbGVjdC5kaXNhYmxlZCA9IF9wYXlsb2FkLmRpc2FibGVkO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtTWVudGlvbmFibGVTZWxlY3RNZW51Q29tcG9uZW50KFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkTWVudGlvbmFibGVTZWxlY3RDb21wb25lbnQgfCBEaXNjb3JkTWVudGlvbmFibGVTZWxlY3RJbnRlcmFjdGlvblJlc3BvbnNlRnJvbU1vZGFsPixcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VsZWN0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBzZWxlY3QuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIHNlbGVjdC52YWx1ZXMgPSBwYXlsb2FkLnZhbHVlcztcbiAgICBpZiAocHJvcHMucmVzb2x2ZWQgJiYgcGF5bG9hZC5yZXNvbHZlZCkgc2VsZWN0LnJlc29sdmVkID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQucmVzb2x2ZWQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IF9wYXlsb2FkID0gcGF5bG9hZCBhcyBQYXJ0aWFsPERpc2NvcmRNZW50aW9uYWJsZVNlbGVjdENvbXBvbmVudD47XG5cbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgX3BheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IF9wYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5WYWx1ZXMgJiYgX3BheWxvYWQubWluX3ZhbHVlcykgc2VsZWN0Lm1pblZhbHVlcyA9IF9wYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBfcGF5bG9hZC5tYXhfdmFsdWVzKSBzZWxlY3QubWF4VmFsdWVzID0gX3BheWxvYWQubWF4X3ZhbHVlcztcbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlcyAmJiBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICAgIHNlbGVjdC5kZWZhdWx0VmFsdWVzID0gX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgICB0eXBlOiBkZWZhdWx0VmFsdWUudHlwZSxcbiAgICAgIH0pKTtcbiAgICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgX3BheWxvYWQuZGlzYWJsZWQpIHNlbGVjdC5kaXNhYmxlZCA9IF9wYXlsb2FkLmRpc2FibGVkO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ2hhbm5lbFNlbGVjdE1lbnVDb21wb25lbnQoXG4gIGJvdDogQm90LFxuICBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDaGFubmVsU2VsZWN0Q29tcG9uZW50IHwgRGlzY29yZENoYW5uZWxTZWxlY3RJbnRlcmFjdGlvblJlc3BvbnNlRnJvbU1vZGFsPixcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VsZWN0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBzZWxlY3QuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIHNlbGVjdC52YWx1ZXMgPSBwYXlsb2FkLnZhbHVlcztcbiAgICBpZiAocHJvcHMucmVzb2x2ZWQgJiYgcGF5bG9hZC5yZXNvbHZlZCkgc2VsZWN0LnJlc29sdmVkID0gYm90LnRyYW5zZm9ybWVycy5pbnRlcmFjdGlvbkRhdGFSZXNvbHZlZChib3QsIHBheWxvYWQucmVzb2x2ZWQpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IF9wYXlsb2FkID0gcGF5bG9hZCBhcyBQYXJ0aWFsPERpc2NvcmRDaGFubmVsU2VsZWN0Q29tcG9uZW50PjtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBfcGF5bG9hZC5wbGFjZWhvbGRlcikgc2VsZWN0LnBsYWNlaG9sZGVyID0gX3BheWxvYWQucGxhY2Vob2xkZXI7XG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBfcGF5bG9hZC5taW5fdmFsdWVzKSBzZWxlY3QubWluVmFsdWVzID0gX3BheWxvYWQubWluX3ZhbHVlcztcbiAgICBpZiAocHJvcHMubWF4VmFsdWVzICYmIF9wYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBfcGF5bG9hZC5tYXhfdmFsdWVzO1xuICAgIGlmIChwcm9wcy5kZWZhdWx0VmFsdWVzICYmIF9wYXlsb2FkLmRlZmF1bHRfdmFsdWVzKVxuICAgICAgc2VsZWN0LmRlZmF1bHRWYWx1ZXMgPSBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcy5tYXAoKGRlZmF1bHRWYWx1ZSkgPT4gKHtcbiAgICAgICAgaWQ6IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKGRlZmF1bHRWYWx1ZS5pZCksXG4gICAgICAgIHR5cGU6IGRlZmF1bHRWYWx1ZS50eXBlLFxuICAgICAgfSkpO1xuICAgIGlmIChwcm9wcy5jaGFubmVsVHlwZXMgJiYgX3BheWxvYWQuY2hhbm5lbF90eXBlcykgc2VsZWN0LmNoYW5uZWxUeXBlcyA9IF9wYXlsb2FkLmNoYW5uZWxfdHlwZXM7XG4gICAgaWYgKHByb3BzLmRpc2FibGVkICYmIF9wYXlsb2FkLmRpc2FibGVkKSBzZWxlY3QuZGlzYWJsZWQgPSBfcGF5bG9hZC5kaXNhYmxlZDtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Q7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlY3Rpb25Db21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFNlY3Rpb25Db21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IHNlY3Rpb24gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlY3Rpb24udHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlY3Rpb24uaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpIHNlY3Rpb24uY29tcG9uZW50cyA9IHBheWxvYWQuY29tcG9uZW50cy5tYXAoKGNvbXBvbmVudCkgPT4gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBjb21wb25lbnQpKTtcbiAgaWYgKHByb3BzLmFjY2Vzc29yeSAmJiBwYXlsb2FkLmFjY2Vzc29yeSkgc2VjdGlvbi5hY2Nlc3NvcnkgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuYWNjZXNzb3J5KTtcblxuICByZXR1cm4gc2VjdGlvbjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtVGh1bWJuYWlsQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRUaHVtYm5haWxDb21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IHRodW1ibmFpbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGh1bWJuYWlsLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0aHVtYm5haWwuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMubWVkaWEgJiYgcGF5bG9hZC5tZWRpYSkgdGh1bWJuYWlsLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpO1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5kZXNjcmlwdGlvbikgdGh1bWJuYWlsLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5kZXNjcmlwdGlvbjtcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSB0aHVtYm5haWwuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlcjtcblxuICByZXR1cm4gdGh1bWJuYWlsO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudD4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3QgbWVkaWFHYWxsZXJ5ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBtZWRpYUdhbGxlcnkudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIG1lZGlhR2FsbGVyeS5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5pdGVtcyAmJiBwYXlsb2FkLml0ZW1zKSBtZWRpYUdhbGxlcnkuaXRlbXMgPSBwYXlsb2FkLml0ZW1zLm1hcCgoaXRlbSkgPT4gYm90LnRyYW5zZm9ybWVycy5tZWRpYUdhbGxlcnlJdGVtKGJvdCwgaXRlbSkpO1xuXG4gIHJldHVybiBtZWRpYUdhbGxlcnk7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUZpbGVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEZpbGVDb21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGZpbGUgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGUudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGZpbGUuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuZmlsZSAmJiBwYXlsb2FkLmZpbGUpIGZpbGUuZmlsZSA9IGJvdC50cmFuc2Zvcm1lcnMudW5mdXJsZWRNZWRpYUl0ZW0oYm90LCBwYXlsb2FkLmZpbGUpO1xuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGZpbGUuc3BvaWxlciA9IHBheWxvYWQuc3BvaWxlcjtcbiAgaWYgKHByb3BzLm5hbWUgJiYgcGF5bG9hZC5uYW1lKSBmaWxlLm5hbWUgPSBwYXlsb2FkLm5hbWU7XG4gIGlmIChwcm9wcy5zaXplICYmIHBheWxvYWQuc2l6ZSkgZmlsZS5zaXplID0gcGF5bG9hZC5zaXplO1xuXG4gIHJldHVybiBmaWxlO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkVGV4dERpc3BsYXlDb21wb25lbnQgfCBEaXNjb3JkVGV4dERpc3BsYXlJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCB0ZXh0RGlzcGxheSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgdGV4dERpc3BsYXkudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHRleHREaXNwbGF5LmlkID0gcGF5bG9hZC5pZDtcbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAnY29udGVudCcgaXQgaXMgdGhlIGNvbXBvbmVudFxuICBpZiAoJ2NvbnRlbnQnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuY29udGVudCAmJiBwYXlsb2FkLmNvbnRlbnQpIHRleHREaXNwbGF5LmNvbnRlbnQgPSBwYXlsb2FkLmNvbnRlbnQ7XG4gIH1cblxuICByZXR1cm4gdGV4dERpc3BsYXk7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVNlcGFyYXRvckNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkU2VwYXJhdG9yQ29tcG9uZW50Pikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZXBhcmF0b3IgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlcGFyYXRvci50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VwYXJhdG9yLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmRpdmlkZXIgJiYgcGF5bG9hZC5kaXZpZGVyKSBzZXBhcmF0b3IuZGl2aWRlciA9IHBheWxvYWQuZGl2aWRlcjtcbiAgaWYgKHByb3BzLnNwYWNpbmcgJiYgcGF5bG9hZC5zcGFjaW5nKSBzZXBhcmF0b3Iuc3BhY2luZyA9IHBheWxvYWQuc3BhY2luZztcblxuICByZXR1cm4gc2VwYXJhdG9yO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1MYWJlbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkTGFiZWxDb21wb25lbnQgfCBEaXNjb3JkTGFiZWxJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBsYWJlbCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgbGFiZWwudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGxhYmVsLmlkID0gcGF5bG9hZC5pZDtcbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAnbGFiZWwnIGl0IGlzIHRoZSBjb21wb25lbnRcbiAgaWYgKCdsYWJlbCcgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy5sYWJlbCAmJiBwYXlsb2FkLmxhYmVsKSBsYWJlbC5sYWJlbCA9IHBheWxvYWQubGFiZWw7XG4gICAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIGxhYmVsLmRlc2NyaXB0aW9uID0gcGF5bG9hZC5kZXNjcmlwdGlvbjtcbiAgfVxuICBpZiAocHJvcHMuY29tcG9uZW50ICYmIHBheWxvYWQuY29tcG9uZW50KSBsYWJlbC5jb21wb25lbnQgPSBib3QudHJhbnNmb3JtZXJzLmNvbXBvbmVudChib3QsIHBheWxvYWQuY29tcG9uZW50KTtcblxuICByZXR1cm4gbGFiZWw7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUZpbGVVcGxvYWRDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZEZpbGVVcGxvYWRDb21wb25lbnQgfCBEaXNjb3JkRmlsZVVwbG9hZEludGVyYWN0aW9uUmVzcG9uc2U+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGZpbGVVcGxvYWQgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGZpbGVVcGxvYWQudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGZpbGVVcGxvYWQuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGZpbGVVcGxvYWQuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIGZpbGVVcGxvYWQudmFsdWVzID0gcGF5bG9hZC52YWx1ZXM7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgX3BheWxvYWQgPSBwYXlsb2FkIGFzIFBhcnRpYWw8RGlzY29yZEZpbGVVcGxvYWRDb21wb25lbnQ+O1xuXG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBfcGF5bG9hZC5taW5fdmFsdWVzKSBmaWxlVXBsb2FkLm1pblZhbHVlcyA9IF9wYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBfcGF5bG9hZC5tYXhfdmFsdWVzKSBmaWxlVXBsb2FkLm1heFZhbHVlcyA9IF9wYXlsb2FkLm1heF92YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlcXVpcmVkICYmIF9wYXlsb2FkLnJlcXVpcmVkKSBmaWxlVXBsb2FkLnJlcXVpcmVkID0gX3BheWxvYWQucmVxdWlyZWQ7XG4gICAgaWYgKHByb3BzLmZpbGVUeXBlcyAmJiBfcGF5bG9hZC5maWxlX3R5cGVzKSBmaWxlVXBsb2FkLmZpbGVUeXBlcyA9IF9wYXlsb2FkLmZpbGVfdHlwZXM7XG4gIH1cblxuICByZXR1cm4gZmlsZVVwbG9hZDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtUmFkaW9Hcm91cENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkUmFkaW9Hcm91cENvbXBvbmVudCB8IERpc2NvcmRSYWRpb0dyb3VwSW50ZXJhY3Rpb25SZXNwb25zZT4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3QgcmFkaW9Hcm91cCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgcmFkaW9Hcm91cC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgcmFkaW9Hcm91cC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgcmFkaW9Hcm91cC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ29wdGlvbnMnIGl0IGlzIHRoZSBjb21wb25lbnRcbiAgaWYgKCdvcHRpb25zJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLm9wdGlvbnMgJiYgcGF5bG9hZC5vcHRpb25zKSByYWRpb0dyb3VwLm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnM7XG4gICAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQgIT09IHVuZGVmaW5lZCkgcmFkaW9Hcm91cC5yZXF1aXJlZCA9IHBheWxvYWQucmVxdWlyZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgX3BheWxvYWQgPSBwYXlsb2FkIGFzIFBhcnRpYWw8RGlzY29yZFJhZGlvR3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlPjtcblxuICAgIGlmIChwcm9wcy52YWx1ZSkgcmFkaW9Hcm91cC52YWx1ZSA9IF9wYXlsb2FkLnZhbHVlID8/IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHJldHVybiByYWRpb0dyb3VwO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1DaGVja2JveEdyb3VwQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDaGVja2JveEdyb3VwQ29tcG9uZW50IHwgRGlzY29yZENoZWNrYm94R3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBjaGVja2JveEdyb3VwID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjaGVja2JveEdyb3VwLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjaGVja2JveEdyb3VwLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBjaGVja2JveEdyb3VwLmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAnb3B0aW9ucycgaXQgaXMgdGhlIGNvbXBvbmVudFxuICBpZiAoJ29wdGlvbnMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMub3B0aW9ucyAmJiBwYXlsb2FkLm9wdGlvbnMpIGNoZWNrYm94R3JvdXAub3B0aW9ucyA9IHBheWxvYWQub3B0aW9ucztcbiAgICBpZiAocHJvcHMubWluVmFsdWVzICYmIHBheWxvYWQubWluX3ZhbHVlcyAhPT0gdW5kZWZpbmVkKSBjaGVja2JveEdyb3VwLm1pblZhbHVlcyA9IHBheWxvYWQubWluX3ZhbHVlcztcbiAgICBpZiAocHJvcHMubWF4VmFsdWVzICYmIHBheWxvYWQubWF4X3ZhbHVlcyAhPT0gdW5kZWZpbmVkKSBjaGVja2JveEdyb3VwLm1heFZhbHVlcyA9IHBheWxvYWQubWF4X3ZhbHVlcztcbiAgICBpZiAocHJvcHMucmVxdWlyZWQgJiYgcGF5bG9hZC5yZXF1aXJlZCAhPT0gdW5kZWZpbmVkKSBjaGVja2JveEdyb3VwLnJlcXVpcmVkID0gcGF5bG9hZC5yZXF1aXJlZDtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkQ2hlY2tib3hHcm91cEludGVyYWN0aW9uUmVzcG9uc2U+O1xuXG4gICAgaWYgKHByb3BzLnZhbHVlcyAmJiBfcGF5bG9hZC52YWx1ZXMpIGNoZWNrYm94R3JvdXAudmFsdWVzID0gX3BheWxvYWQudmFsdWVzO1xuICB9XG5cbiAgcmV0dXJuIGNoZWNrYm94R3JvdXA7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUNoZWNrYm94Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDaGVja2JveENvbXBvbmVudCB8IERpc2NvcmRDaGVja2JveEludGVyYWN0aW9uUmVzcG9uc2U+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGNoZWNrYm94ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBjaGVja2JveC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2hlY2tib3guaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIGNoZWNrYm94LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgaWYgKHByb3BzLnZhbHVlICYmICd2YWx1ZScgaW4gcGF5bG9hZCkgY2hlY2tib3gudmFsdWUgPSBwYXlsb2FkLnZhbHVlO1xuICBpZiAocHJvcHMuZGVmYXVsdCAmJiAnZGVmYXVsdCcgaW4gcGF5bG9hZCkgY2hlY2tib3guZGVmYXVsdCA9IHBheWxvYWQuZGVmYXVsdDtcblxuICByZXR1cm4gY2hlY2tib3g7XG59XG4iXSwibmFtZXMiOlsiTWVzc2FnZUNvbXBvbmVudFR5cGVzIiwiY2FsbEN1c3RvbWl6ZXIiLCJUb2dnbGVCaXRmaWVsZCIsInRyYW5zZm9ybUNvbXBvbmVudCIsImJvdCIsInBheWxvYWQiLCJleHRyYSIsImNvbXBvbmVudCIsInR5cGUiLCJFcnJvciIsIkFjdGlvblJvdyIsInRyYW5zZm9ybUFjdGlvblJvdyIsIkJ1dHRvbiIsInRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudCIsIkNvbnRhaW5lciIsInRyYW5zZm9ybUNvbnRhaW5lckNvbXBvbmVudCIsIlRleHRJbnB1dCIsInRyYW5zZm9ybUlucHV0VGV4dENvbXBvbmVudCIsIlN0cmluZ1NlbGVjdCIsInRyYW5zZm9ybVN0cmluZ1NlbGVjdE1lbnVDb21wb25lbnQiLCJVc2VyU2VsZWN0IiwidHJhbnNmb3JtVXNlclNlbGVjdE1lbnVDb21wb25lbnQiLCJSb2xlU2VsZWN0IiwidHJhbnNmb3JtUm9sZVNlbGVjdE1lbnVDb21wb25lbnQiLCJNZW50aW9uYWJsZVNlbGVjdCIsInRyYW5zZm9ybU1lbnRpb25hYmxlU2VsZWN0TWVudUNvbXBvbmVudCIsIkNoYW5uZWxTZWxlY3QiLCJ0cmFuc2Zvcm1DaGFubmVsU2VsZWN0TWVudUNvbXBvbmVudCIsIlNlY3Rpb24iLCJ0cmFuc2Zvcm1TZWN0aW9uQ29tcG9uZW50IiwiVGh1bWJuYWlsIiwidHJhbnNmb3JtVGh1bWJuYWlsQ29tcG9uZW50IiwiTWVkaWFHYWxsZXJ5IiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5Q29tcG9uZW50IiwiRmlsZSIsInRyYW5zZm9ybUZpbGVDb21wb25lbnQiLCJTZXBhcmF0b3IiLCJ0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQiLCJUZXh0RGlzcGxheSIsInRyYW5zZm9ybVRleHREaXNwbGF5Q29tcG9uZW50IiwiTGFiZWwiLCJ0cmFuc2Zvcm1MYWJlbENvbXBvbmVudCIsIkZpbGVVcGxvYWQiLCJ0cmFuc2Zvcm1GaWxlVXBsb2FkQ29tcG9uZW50IiwiUmFkaW9Hcm91cCIsInRyYW5zZm9ybVJhZGlvR3JvdXBDb21wb25lbnQiLCJDaGVja2JveEdyb3VwIiwidHJhbnNmb3JtQ2hlY2tib3hHcm91cENvbXBvbmVudCIsIkNoZWNrYm94IiwidHJhbnNmb3JtQ2hlY2tib3hDb21wb25lbnQiLCJwYXJ0aWFsIiwidHJhbnNmb3JtVW5mdXJsZWRNZWRpYUl0ZW0iLCJwcm9wcyIsInRyYW5zZm9ybWVycyIsImRlc2lyZWRQcm9wZXJ0aWVzIiwidW5mdXJsZWRNZWRpYUl0ZW0iLCJtZWRpYUl0ZW0iLCJ1cmwiLCJwcm94eVVybCIsInByb3h5X3VybCIsImhlaWdodCIsIndpZHRoIiwicGxhY2Vob2xkZXIiLCJwbGFjZWhvbGRlclZlcnNpb24iLCJwbGFjZWhvbGRlcl92ZXJzaW9uIiwiY29udGVudFR5cGUiLCJjb250ZW50X3R5cGUiLCJmbGFncyIsImF0dGFjaG1lbnRJZCIsImF0dGFjaG1lbnRfaWQiLCJzbm93Zmxha2UiLCJ0cmFuc2Zvcm1NZWRpYUdhbGxlcnlJdGVtIiwibWVkaWFHYWxsZXJ5SXRlbSIsImdhbGxlcnlJdGVtIiwibWVkaWEiLCJkZXNjcmlwdGlvbiIsInNwb2lsZXIiLCJhY3Rpb25Sb3ciLCJpZCIsImNvbXBvbmVudHMiLCJtYXAiLCJjb250YWluZXIiLCJhY2NlbnRDb2xvciIsImFjY2VudF9jb2xvciIsImJ1dHRvbiIsImxhYmVsIiwiY3VzdG9tSWQiLCJjdXN0b21faWQiLCJzdHlsZSIsImVtb2ppIiwiZGlzYWJsZWQiLCJza3VJZCIsInNrdV9pZCIsImlucHV0IiwidmFsdWUiLCJyZXF1aXJlZCIsIm1pbkxlbmd0aCIsIm1pbl9sZW5ndGgiLCJtYXhMZW5ndGgiLCJtYXhfbGVuZ3RoIiwic2VsZWN0IiwidmFsdWVzIiwiX3BheWxvYWQiLCJtaW5WYWx1ZXMiLCJtaW5fdmFsdWVzIiwibWF4VmFsdWVzIiwibWF4X3ZhbHVlcyIsIm9wdGlvbnMiLCJvcHRpb24iLCJ1bmRlZmluZWQiLCJuYW1lIiwiYW5pbWF0ZWQiLCJkZWZhdWx0IiwicmVzb2x2ZWQiLCJpbnRlcmFjdGlvbkRhdGFSZXNvbHZlZCIsImRlZmF1bHRWYWx1ZXMiLCJkZWZhdWx0X3ZhbHVlcyIsImRlZmF1bHRWYWx1ZSIsImNoYW5uZWxUeXBlcyIsImNoYW5uZWxfdHlwZXMiLCJzZWN0aW9uIiwiYWNjZXNzb3J5IiwidGh1bWJuYWlsIiwibWVkaWFHYWxsZXJ5IiwiaXRlbXMiLCJpdGVtIiwiZmlsZSIsInNpemUiLCJ0ZXh0RGlzcGxheSIsImNvbnRlbnQiLCJzZXBhcmF0b3IiLCJkaXZpZGVyIiwic3BhY2luZyIsImZpbGVVcGxvYWQiLCJm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
|
|
409
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy90cmFuc2Zvcm1lcnMvY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgRGlzY29yZEFjdGlvblJvdyxcbiAgdHlwZSBEaXNjb3JkQnV0dG9uQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRDaGFubmVsU2VsZWN0Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRDaGFubmVsU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkQ2hlY2tib3hDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZENoZWNrYm94R3JvdXBDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZENoZWNrYm94R3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRDaGVja2JveEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZENvbnRhaW5lckNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkRmlsZVVwbG9hZEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZExhYmVsQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRMYWJlbEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZE1lZGlhR2FsbGVyeUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkTWVkaWFHYWxsZXJ5SXRlbSxcbiAgdHlwZSBEaXNjb3JkTWVudGlvbmFibGVTZWxlY3RDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZE1lbnRpb25hYmxlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudEZyb21Nb2RhbEludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZFJhZGlvR3JvdXBDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFJhZGlvR3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlLFxuICB0eXBlIERpc2NvcmRSb2xlU2VsZWN0Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRSb2xlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbCxcbiAgdHlwZSBEaXNjb3JkU2VjdGlvbkNvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkU2VwYXJhdG9yQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRTdHJpbmdTZWxlY3RDb21wb25lbnQsXG4gIHR5cGUgRGlzY29yZFN0cmluZ1NlbGVjdEludGVyYWN0aW9uUmVzcG9uc2VGcm9tTW9kYWwsXG4gIHR5cGUgRGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRUZXh0RGlzcGxheUludGVyYWN0aW9uUmVzcG9uc2UsXG4gIHR5cGUgRGlzY29yZFRleHRJbnB1dENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVGV4dElucHV0SW50ZXJhY3Rpb25SZXNwb25zZSxcbiAgdHlwZSBEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50LFxuICB0eXBlIERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbSxcbiAgdHlwZSBEaXNjb3JkVXNlclNlbGVjdENvbXBvbmVudCxcbiAgdHlwZSBEaXNjb3JkVXNlclNlbGVjdEludGVyYWN0aW9uUmVzcG9uc2VGcm9tTW9kYWwsXG4gIE1lc3NhZ2VDb21wb25lbnRUeXBlcyxcbn0gZnJvbSAnQGRpc2NvcmRlbm8vdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3QgfSBmcm9tICcuLi9ib3QuanMnO1xuaW1wb3J0IHR5cGUgeyBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yLCBTZXR1cERlc2lyZWRQcm9wcywgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMgfSBmcm9tICcuLi9kZXNpcmVkUHJvcGVydGllcy5qcyc7XG5pbXBvcnQgeyBjYWxsQ3VzdG9taXplciB9IGZyb20gJy4uL3RyYW5zZm9ybWVycy5qcyc7XG5pbXBvcnQgeyBUb2dnbGVCaXRmaWVsZCB9IGZyb20gJy4vdG9nZ2xlcy9Ub2dnbGVCaXRmaWVsZC5qcyc7XG5pbXBvcnQgdHlwZSB7IENvbXBvbmVudCwgTWVkaWFHYWxsZXJ5SXRlbSwgVW5mdXJsZWRNZWRpYUl0ZW0gfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNvbXBvbmVudChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lc3NhZ2VDb21wb25lbnQgfCBEaXNjb3JkTWVzc2FnZUNvbXBvbmVudEZyb21Nb2RhbEludGVyYWN0aW9uUmVzcG9uc2U+LFxuICBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSxcbikge1xuICBsZXQgY29tcG9uZW50OiBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICAvLyBUaGVyZSdzIG5vdGhpbmcgdG8gZG8gd2l0aCBhIGNvbXBvbmVudCB3aXRob3V0IGEgdHlwZSwgYXMgaXQgbWVhbnMgYW4gaXNzdWUgb24gRGlzY29yZCwgc28gd2UganVzdCB0aHJvdyBhbiBlcnJvclxuICBpZiAoIXBheWxvYWQudHlwZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgW0Rpc2NvcmRlbm9dIFJlY2VpdmVkIGEgY29tcG9uZW50IHBheWxvYWQgd2l0aG91dCBhIHR5cGUgaW4gdGhlIGNvbXBvbmVudCB0cmFuc2Zvcm1lci5gKTtcbiAgfVxuXG4gIC8vIFRoaXMgc3dpdGNoIGlzIGV4aGF1c3RpdmUsIHNvIHdlIGRvbnQgbmVlZCB0aGUgZGVmYXVsdCBjYXNlIGFuZCBUUyBkb2VzIG5vdCBlcnJvciBvdXQgZm9yIHRoZSB1bi1pbml0aWFsaXplZCBjb21wb25lbnQgdmFyaWFibGVcbiAgc3dpdGNoIChwYXlsb2FkLnR5cGUpIHtcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5BY3Rpb25Sb3c6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1BY3Rpb25Sb3coYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkJ1dHRvbjpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUJ1dHRvbkNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ29udGFpbmVyOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5UZXh0SW5wdXQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlN0cmluZ1NlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVN0cmluZ1NlbGVjdE1lbnVDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlVzZXJTZWxlY3Q6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1Vc2VyU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuUm9sZVNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybVJvbGVTZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZW50aW9uYWJsZVNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybU1lbnRpb25hYmxlU2VsZWN0TWVudUNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ2hhbm5lbFNlbGVjdDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUNoYW5uZWxTZWxlY3RNZW51Q29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZWN0aW9uOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuVGh1bWJuYWlsOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGh1bWJuYWlsQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5NZWRpYUdhbGxlcnk6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1NZWRpYUdhbGxlcnlDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkZpbGU6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1GaWxlQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5TZXBhcmF0b3I6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLlRleHREaXNwbGF5OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkxhYmVsOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtTGFiZWxDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkZpbGVVcGxvYWQ6XG4gICAgICBjb21wb25lbnQgPSB0cmFuc2Zvcm1GaWxlVXBsb2FkQ29tcG9uZW50KGJvdCwgcGF5bG9hZCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIE1lc3NhZ2VDb21wb25lbnRUeXBlcy5SYWRpb0dyb3VwOlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtUmFkaW9Hcm91cENvbXBvbmVudChib3QsIHBheWxvYWQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBNZXNzYWdlQ29tcG9uZW50VHlwZXMuQ2hlY2tib3hHcm91cDpcbiAgICAgIGNvbXBvbmVudCA9IHRyYW5zZm9ybUNoZWNrYm94R3JvdXBDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgTWVzc2FnZUNvbXBvbmVudFR5cGVzLkNoZWNrYm94OlxuICAgICAgY29tcG9uZW50ID0gdHJhbnNmb3JtQ2hlY2tib3hDb21wb25lbnQoYm90LCBwYXlsb2FkKTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdjb21wb25lbnQnLCBib3QsIHBheWxvYWQsIGNvbXBvbmVudCwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtKGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRVbmZ1cmxlZE1lZGlhSXRlbT4sIGV4dHJhPzogeyBwYXJ0aWFsPzogYm9vbGVhbiB9KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy51bmZ1cmxlZE1lZGlhSXRlbTtcbiAgY29uc3QgbWVkaWFJdGVtID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8VW5mdXJsZWRNZWRpYUl0ZW0sIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudXJsICYmIHBheWxvYWQudXJsKSBtZWRpYUl0ZW0udXJsID0gcGF5bG9hZC51cmw7XG4gIGlmIChwcm9wcy5wcm94eVVybCAmJiBwYXlsb2FkLnByb3h5X3VybCkgbWVkaWFJdGVtLnByb3h5VXJsID0gcGF5bG9hZC5wcm94eV91cmw7XG4gIGlmIChwcm9wcy5oZWlnaHQgJiYgcGF5bG9hZC5oZWlnaHQpIG1lZGlhSXRlbS5oZWlnaHQgPSBwYXlsb2FkLmhlaWdodDtcbiAgaWYgKHByb3BzLndpZHRoICYmIHBheWxvYWQud2lkdGgpIG1lZGlhSXRlbS53aWR0aCA9IHBheWxvYWQud2lkdGg7XG4gIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBwYXlsb2FkLnBsYWNlaG9sZGVyKSBtZWRpYUl0ZW0ucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyO1xuICBpZiAocHJvcHMucGxhY2Vob2xkZXJWZXJzaW9uICYmIHBheWxvYWQucGxhY2Vob2xkZXJfdmVyc2lvbikgbWVkaWFJdGVtLnBsYWNlaG9sZGVyVmVyc2lvbiA9IHBheWxvYWQucGxhY2Vob2xkZXJfdmVyc2lvbjtcbiAgaWYgKHByb3BzLmNvbnRlbnRUeXBlICYmIHBheWxvYWQuY29udGVudF90eXBlKSBtZWRpYUl0ZW0uY29udGVudFR5cGUgPSBwYXlsb2FkLmNvbnRlbnRfdHlwZTtcbiAgaWYgKHByb3BzLmZsYWdzICYmIHBheWxvYWQuZmxhZ3MpIG1lZGlhSXRlbS5mbGFncyA9IG5ldyBUb2dnbGVCaXRmaWVsZChwYXlsb2FkLmZsYWdzKTtcbiAgaWYgKHByb3BzLmF0dGFjaG1lbnRJZCAmJiBwYXlsb2FkLmF0dGFjaG1lbnRfaWQpIG1lZGlhSXRlbS5hdHRhY2htZW50SWQgPSBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShwYXlsb2FkLmF0dGFjaG1lbnRfaWQpO1xuXG4gIHJldHVybiBjYWxsQ3VzdG9taXplcigndW5mdXJsZWRNZWRpYUl0ZW0nLCBib3QsIHBheWxvYWQsIG1lZGlhSXRlbSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybU1lZGlhR2FsbGVyeUl0ZW0oYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lZGlhR2FsbGVyeUl0ZW0+LCBleHRyYT86IHsgcGFydGlhbD86IGJvb2xlYW4gfSkge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMubWVkaWFHYWxsZXJ5SXRlbTtcbiAgY29uc3QgZ2FsbGVyeUl0ZW0gPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxNZWRpYUdhbGxlcnlJdGVtLCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIGdhbGxlcnlJdGVtLm1lZGlhID0gYm90LnRyYW5zZm9ybWVycy51bmZ1cmxlZE1lZGlhSXRlbShib3QsIHBheWxvYWQubWVkaWEpO1xuICBpZiAocHJvcHMuZGVzY3JpcHRpb24gJiYgcGF5bG9hZC5kZXNjcmlwdGlvbikgZ2FsbGVyeUl0ZW0uZGVzY3JpcHRpb24gPSBwYXlsb2FkLmRlc2NyaXB0aW9uO1xuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGdhbGxlcnlJdGVtLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXI7XG5cbiAgcmV0dXJuIGNhbGxDdXN0b21pemVyKCdtZWRpYUdhbGxlcnlJdGVtJywgYm90LCBwYXlsb2FkLCBnYWxsZXJ5SXRlbSwge1xuICAgIHBhcnRpYWw6IGV4dHJhPy5wYXJ0aWFsID8/IGZhbHNlLFxuICB9KTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQWN0aW9uUm93KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRBY3Rpb25Sb3c+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGFjdGlvblJvdyA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYWN0aW9uUm93LnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBhY3Rpb25Sb3cuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpXG4gICAgYWN0aW9uUm93LmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSk7XG5cbiAgcmV0dXJuIGFjdGlvblJvdztcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ29udGFpbmVyQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRDb250YWluZXJDb21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGNvbnRhaW5lciA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgY29udGFpbmVyLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBjb250YWluZXIuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuYWNjZW50Q29sb3IgJiYgcGF5bG9hZC5hY2NlbnRfY29sb3IpIGNvbnRhaW5lci5hY2NlbnRDb2xvciA9IHBheWxvYWQuYWNjZW50X2NvbG9yO1xuICBpZiAocHJvcHMuc3BvaWxlciAmJiBwYXlsb2FkLnNwb2lsZXIpIGNvbnRhaW5lci5zcG9pbGVyID0gcGF5bG9hZC5zcG9pbGVyO1xuICBpZiAocHJvcHMuY29tcG9uZW50cyAmJiBwYXlsb2FkLmNvbXBvbmVudHMpXG4gICAgY29udGFpbmVyLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSk7XG5cbiAgcmV0dXJuIGNvbnRhaW5lcjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQnV0dG9uQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRCdXR0b25Db21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IGJ1dHRvbiA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgYnV0dG9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBidXR0b24uaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMubGFiZWwgJiYgcGF5bG9hZC5sYWJlbCkgYnV0dG9uLmxhYmVsID0gcGF5bG9hZC5sYWJlbDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBidXR0b24uY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcbiAgaWYgKHByb3BzLnN0eWxlICYmIHBheWxvYWQuc3R5bGUpIGJ1dHRvbi5zdHlsZSA9IHBheWxvYWQuc3R5bGU7XG4gIGlmIChwcm9wcy5lbW9qaSAmJiBwYXlsb2FkLmVtb2ppKSBidXR0b24uZW1vamkgPSBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgcGF5bG9hZC5lbW9qaSwgeyBwYXJ0aWFsOiB0cnVlIH0pO1xuICBpZiAocHJvcHMudXJsICYmIHBheWxvYWQudXJsKSBidXR0b24udXJsID0gcGF5bG9hZC51cmw7XG4gIGlmIChwcm9wcy5kaXNhYmxlZCAmJiBwYXlsb2FkLmRpc2FibGVkKSBidXR0b24uZGlzYWJsZWQgPSBwYXlsb2FkLmRpc2FibGVkO1xuICBpZiAocHJvcHMuc2t1SWQgJiYgcGF5bG9hZC5za3VfaWQpIGJ1dHRvbi5za3VJZCA9IGJvdC50cmFuc2Zvcm1lcnMuc25vd2ZsYWtlKHBheWxvYWQuc2t1X2lkKTtcblxuICByZXR1cm4gYnV0dG9uO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFRleHRJbnB1dENvbXBvbmVudCB8IERpc2NvcmRUZXh0SW5wdXRJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBpbnB1dCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgaW5wdXQudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGlucHV0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLnZhbHVlICYmIHBheWxvYWQudmFsdWUpIGlucHV0LnZhbHVlID0gcGF5bG9hZC52YWx1ZTtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBpbnB1dC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ3ZhbHVlcycgaXQgaXMgdGhlIGludGVyYWN0aW9uIHJlc3BvbnNlXG4gIGlmICgnc3R5bGUnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMuc3R5bGUgJiYgcGF5bG9hZC5zdHlsZSkgaW5wdXQuc3R5bGUgPSBwYXlsb2FkLnN0eWxlO1xuICAgIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkKSBpbnB1dC5yZXF1aXJlZCA9IHBheWxvYWQucmVxdWlyZWQ7XG4gICAgaWYgKHByb3BzLmxhYmVsICYmIHBheWxvYWQubGFiZWwpIGlucHV0LmxhYmVsID0gcGF5bG9hZC5sYWJlbDtcbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgcGF5bG9hZC5wbGFjZWhvbGRlcikgaW5wdXQucGxhY2Vob2xkZXIgPSBwYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5MZW5ndGggJiYgcGF5bG9hZC5taW5fbGVuZ3RoKSBpbnB1dC5taW5MZW5ndGggPSBwYXlsb2FkLm1pbl9sZW5ndGg7XG4gICAgaWYgKHByb3BzLm1heExlbmd0aCAmJiBwYXlsb2FkLm1heF9sZW5ndGgpIGlucHV0Lm1heExlbmd0aCA9IHBheWxvYWQubWF4X2xlbmd0aDtcbiAgfVxuXG4gIHJldHVybiBpbnB1dDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtU3RyaW5nU2VsZWN0TWVudUNvbXBvbmVudChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFN0cmluZ1NlbGVjdENvbXBvbmVudCB8IERpc2NvcmRTdHJpbmdTZWxlY3RJbnRlcmFjdGlvblJlc3BvbnNlRnJvbU1vZGFsPixcbikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWxlY3QgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHNlbGVjdC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgc2VsZWN0LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBzZWxlY3QuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICd2YWx1ZXMnIGl0IGlzIHRoZSBpbnRlcmFjdGlvbiByZXNwb25zZVxuICBpZiAoJ3ZhbHVlcycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgcGF5bG9hZC52YWx1ZXMpIHNlbGVjdC52YWx1ZXMgPSBwYXlsb2FkLnZhbHVlcztcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkU3RyaW5nU2VsZWN0Q29tcG9uZW50PjtcblxuICAgIGlmIChwcm9wcy5wbGFjZWhvbGRlciAmJiBfcGF5bG9hZC5wbGFjZWhvbGRlcikgc2VsZWN0LnBsYWNlaG9sZGVyID0gX3BheWxvYWQucGxhY2Vob2xkZXI7XG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBfcGF5bG9hZC5taW5fdmFsdWVzKSBzZWxlY3QubWluVmFsdWVzID0gX3BheWxvYWQubWluX3ZhbHVlcztcbiAgICBpZiAocHJvcHMubWF4VmFsdWVzICYmIF9wYXlsb2FkLm1heF92YWx1ZXMpIHNlbGVjdC5tYXhWYWx1ZXMgPSBfcGF5bG9hZC5tYXhfdmFsdWVzO1xuICAgIGlmIChwcm9wcy5vcHRpb25zICYmIF9wYXlsb2FkLm9wdGlvbnMpXG4gICAgICBzZWxlY3Qub3B0aW9ucyA9IF9wYXlsb2FkLm9wdGlvbnMubWFwKChvcHRpb24pID0+ICh7XG4gICAgICAgIGxhYmVsOiBvcHRpb24ubGFiZWwsXG4gICAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb24uZGVzY3JpcHRpb24sXG4gICAgICAgIGVtb2ppOiBvcHRpb24uZW1vamkgPyBib3QudHJhbnNmb3JtZXJzLmVtb2ppKGJvdCwgb3B0aW9uLmVtb2ppLCB7IHBhcnRpYWw6IHRydWUgfSkgOiB1bmRlZmluZWQsXG4gICAgICAgIGRlZmF1bHQ6IG9wdGlvbi5kZWZhdWx0LFxuICAgICAgfSkpO1xuICAgIGlmIChwcm9wcy5kaXNhYmxlZCAmJiBfcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gX3BheWxvYWQuZGlzYWJsZWQ7XG4gIH1cblxuICByZXR1cm4gc2VsZWN0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1Vc2VyU2VsZWN0TWVudUNvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkVXNlclNlbGVjdENvbXBvbmVudCB8IERpc2NvcmRVc2VyU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbD4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3Qgc2VsZWN0ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWxlY3QudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlbGVjdC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAndmFsdWVzJyBpdCBpcyB0aGUgaW50ZXJhY3Rpb24gcmVzcG9uc2VcbiAgaWYgKCd2YWx1ZXMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzICYmIHBheWxvYWQudmFsdWVzKSBzZWxlY3QudmFsdWVzID0gcGF5bG9hZC52YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlc29sdmVkICYmIHBheWxvYWQucmVzb2x2ZWQpIHNlbGVjdC5yZXNvbHZlZCA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLnJlc29sdmVkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkVXNlclNlbGVjdENvbXBvbmVudD47XG5cbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgX3BheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IF9wYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5WYWx1ZXMgJiYgX3BheWxvYWQubWluX3ZhbHVlcykgc2VsZWN0Lm1pblZhbHVlcyA9IF9wYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBfcGF5bG9hZC5tYXhfdmFsdWVzKSBzZWxlY3QubWF4VmFsdWVzID0gX3BheWxvYWQubWF4X3ZhbHVlcztcbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlcyAmJiBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICAgIHNlbGVjdC5kZWZhdWx0VmFsdWVzID0gX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgICB0eXBlOiBkZWZhdWx0VmFsdWUudHlwZSxcbiAgICAgIH0pKTtcbiAgICBpZiAocHJvcHMuZGlzYWJsZWQgJiYgX3BheWxvYWQuZGlzYWJsZWQpIHNlbGVjdC5kaXNhYmxlZCA9IF9wYXlsb2FkLmRpc2FibGVkO1xuICB9XG5cbiAgcmV0dXJuIHNlbGVjdDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtUm9sZVNlbGVjdE1lbnVDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFJvbGVTZWxlY3RDb21wb25lbnQgfCBEaXNjb3JkUm9sZVNlbGVjdEludGVyYWN0aW9uUmVzcG9uc2VGcm9tTW9kYWw+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IHNlbGVjdCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgc2VsZWN0LnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWxlY3QuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIHNlbGVjdC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ3ZhbHVlcycgaXQgaXMgdGhlIGludGVyYWN0aW9uIHJlc3BvbnNlXG4gIGlmICgndmFsdWVzJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLnZhbHVlcyAmJiBwYXlsb2FkLnZhbHVlcykgc2VsZWN0LnZhbHVlcyA9IHBheWxvYWQudmFsdWVzO1xuICAgIGlmIChwcm9wcy5yZXNvbHZlZCAmJiBwYXlsb2FkLnJlc29sdmVkKSBzZWxlY3QucmVzb2x2ZWQgPSBib3QudHJhbnNmb3JtZXJzLmludGVyYWN0aW9uRGF0YVJlc29sdmVkKGJvdCwgcGF5bG9hZC5yZXNvbHZlZCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgX3BheWxvYWQgPSBwYXlsb2FkIGFzIFBhcnRpYWw8RGlzY29yZFJvbGVTZWxlY3RDb21wb25lbnQ+O1xuXG4gICAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIF9wYXlsb2FkLnBsYWNlaG9sZGVyKSBzZWxlY3QucGxhY2Vob2xkZXIgPSBfcGF5bG9hZC5wbGFjZWhvbGRlcjtcbiAgICBpZiAocHJvcHMubWluVmFsdWVzICYmIF9wYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBfcGF5bG9hZC5taW5fdmFsdWVzO1xuICAgIGlmIChwcm9wcy5tYXhWYWx1ZXMgJiYgX3BheWxvYWQubWF4X3ZhbHVlcykgc2VsZWN0Lm1heFZhbHVlcyA9IF9wYXlsb2FkLm1heF92YWx1ZXM7XG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMpXG4gICAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IF9wYXlsb2FkLmRlZmF1bHRfdmFsdWVzLm1hcCgoZGVmYXVsdFZhbHVlKSA9PiAoe1xuICAgICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgICAgdHlwZTogZGVmYXVsdFZhbHVlLnR5cGUsXG4gICAgICB9KSk7XG4gICAgaWYgKHByb3BzLmRpc2FibGVkICYmIF9wYXlsb2FkLmRpc2FibGVkKSBzZWxlY3QuZGlzYWJsZWQgPSBfcGF5bG9hZC5kaXNhYmxlZDtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Q7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybU1lbnRpb25hYmxlU2VsZWN0TWVudUNvbXBvbmVudChcbiAgYm90OiBCb3QsXG4gIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZE1lbnRpb25hYmxlU2VsZWN0Q29tcG9uZW50IHwgRGlzY29yZE1lbnRpb25hYmxlU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbD4sXG4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3Qgc2VsZWN0ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWxlY3QudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlbGVjdC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAndmFsdWVzJyBpdCBpcyB0aGUgaW50ZXJhY3Rpb24gcmVzcG9uc2VcbiAgaWYgKCd2YWx1ZXMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzICYmIHBheWxvYWQudmFsdWVzKSBzZWxlY3QudmFsdWVzID0gcGF5bG9hZC52YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlc29sdmVkICYmIHBheWxvYWQucmVzb2x2ZWQpIHNlbGVjdC5yZXNvbHZlZCA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLnJlc29sdmVkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkTWVudGlvbmFibGVTZWxlY3RDb21wb25lbnQ+O1xuXG4gICAgaWYgKHByb3BzLnBsYWNlaG9sZGVyICYmIF9wYXlsb2FkLnBsYWNlaG9sZGVyKSBzZWxlY3QucGxhY2Vob2xkZXIgPSBfcGF5bG9hZC5wbGFjZWhvbGRlcjtcbiAgICBpZiAocHJvcHMubWluVmFsdWVzICYmIF9wYXlsb2FkLm1pbl92YWx1ZXMpIHNlbGVjdC5taW5WYWx1ZXMgPSBfcGF5bG9hZC5taW5fdmFsdWVzO1xuICAgIGlmIChwcm9wcy5tYXhWYWx1ZXMgJiYgX3BheWxvYWQubWF4X3ZhbHVlcykgc2VsZWN0Lm1heFZhbHVlcyA9IF9wYXlsb2FkLm1heF92YWx1ZXM7XG4gICAgaWYgKHByb3BzLmRlZmF1bHRWYWx1ZXMgJiYgX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMpXG4gICAgICBzZWxlY3QuZGVmYXVsdFZhbHVlcyA9IF9wYXlsb2FkLmRlZmF1bHRfdmFsdWVzLm1hcCgoZGVmYXVsdFZhbHVlKSA9PiAoe1xuICAgICAgICBpZDogYm90LnRyYW5zZm9ybWVycy5zbm93Zmxha2UoZGVmYXVsdFZhbHVlLmlkKSxcbiAgICAgICAgdHlwZTogZGVmYXVsdFZhbHVlLnR5cGUsXG4gICAgICB9KSk7XG4gICAgaWYgKHByb3BzLmRpc2FibGVkICYmIF9wYXlsb2FkLmRpc2FibGVkKSBzZWxlY3QuZGlzYWJsZWQgPSBfcGF5bG9hZC5kaXNhYmxlZDtcbiAgfVxuXG4gIHJldHVybiBzZWxlY3Q7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybUNoYW5uZWxTZWxlY3RNZW51Q29tcG9uZW50KFxuICBib3Q6IEJvdCxcbiAgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkQ2hhbm5lbFNlbGVjdENvbXBvbmVudCB8IERpc2NvcmRDaGFubmVsU2VsZWN0SW50ZXJhY3Rpb25SZXNwb25zZUZyb21Nb2RhbD4sXG4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3Qgc2VsZWN0ID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWxlY3QudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlbGVjdC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgc2VsZWN0LmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAndmFsdWVzJyBpdCBpcyB0aGUgaW50ZXJhY3Rpb24gcmVzcG9uc2VcbiAgaWYgKCd2YWx1ZXMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzICYmIHBheWxvYWQudmFsdWVzKSBzZWxlY3QudmFsdWVzID0gcGF5bG9hZC52YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlc29sdmVkICYmIHBheWxvYWQucmVzb2x2ZWQpIHNlbGVjdC5yZXNvbHZlZCA9IGJvdC50cmFuc2Zvcm1lcnMuaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQoYm90LCBwYXlsb2FkLnJlc29sdmVkKTtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBfcGF5bG9hZCA9IHBheWxvYWQgYXMgUGFydGlhbDxEaXNjb3JkQ2hhbm5lbFNlbGVjdENvbXBvbmVudD47XG5cbiAgICBpZiAocHJvcHMucGxhY2Vob2xkZXIgJiYgX3BheWxvYWQucGxhY2Vob2xkZXIpIHNlbGVjdC5wbGFjZWhvbGRlciA9IF9wYXlsb2FkLnBsYWNlaG9sZGVyO1xuICAgIGlmIChwcm9wcy5taW5WYWx1ZXMgJiYgX3BheWxvYWQubWluX3ZhbHVlcykgc2VsZWN0Lm1pblZhbHVlcyA9IF9wYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBfcGF5bG9hZC5tYXhfdmFsdWVzKSBzZWxlY3QubWF4VmFsdWVzID0gX3BheWxvYWQubWF4X3ZhbHVlcztcbiAgICBpZiAocHJvcHMuZGVmYXVsdFZhbHVlcyAmJiBfcGF5bG9hZC5kZWZhdWx0X3ZhbHVlcylcbiAgICAgIHNlbGVjdC5kZWZhdWx0VmFsdWVzID0gX3BheWxvYWQuZGVmYXVsdF92YWx1ZXMubWFwKChkZWZhdWx0VmFsdWUpID0+ICh7XG4gICAgICAgIGlkOiBib3QudHJhbnNmb3JtZXJzLnNub3dmbGFrZShkZWZhdWx0VmFsdWUuaWQpLFxuICAgICAgICB0eXBlOiBkZWZhdWx0VmFsdWUudHlwZSxcbiAgICAgIH0pKTtcbiAgICBpZiAocHJvcHMuY2hhbm5lbFR5cGVzICYmIF9wYXlsb2FkLmNoYW5uZWxfdHlwZXMpIHNlbGVjdC5jaGFubmVsVHlwZXMgPSBfcGF5bG9hZC5jaGFubmVsX3R5cGVzO1xuICAgIGlmIChwcm9wcy5kaXNhYmxlZCAmJiBfcGF5bG9hZC5kaXNhYmxlZCkgc2VsZWN0LmRpc2FibGVkID0gX3BheWxvYWQuZGlzYWJsZWQ7XG4gIH1cblxuICByZXR1cm4gc2VsZWN0O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZWN0aW9uQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRTZWN0aW9uQ29tcG9uZW50Pikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBzZWN0aW9uID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZWN0aW9uLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBzZWN0aW9uLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmNvbXBvbmVudHMgJiYgcGF5bG9hZC5jb21wb25lbnRzKSBzZWN0aW9uLmNvbXBvbmVudHMgPSBwYXlsb2FkLmNvbXBvbmVudHMubWFwKChjb21wb25lbnQpID0+IGJvdC50cmFuc2Zvcm1lcnMuY29tcG9uZW50KGJvdCwgY29tcG9uZW50KSk7XG4gIGlmIChwcm9wcy5hY2Nlc3NvcnkgJiYgcGF5bG9hZC5hY2Nlc3NvcnkpIHNlY3Rpb24uYWNjZXNzb3J5ID0gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBwYXlsb2FkLmFjY2Vzc29yeSk7XG5cbiAgcmV0dXJuIHNlY3Rpb247XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkVGh1bWJuYWlsQ29tcG9uZW50Pikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCB0aHVtYm5haWwgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHRodW1ibmFpbC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgdGh1bWJuYWlsLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLm1lZGlhICYmIHBheWxvYWQubWVkaWEpIHRodW1ibmFpbC5tZWRpYSA9IGJvdC50cmFuc2Zvcm1lcnMudW5mdXJsZWRNZWRpYUl0ZW0oYm90LCBwYXlsb2FkLm1lZGlhKTtcbiAgaWYgKHByb3BzLmRlc2NyaXB0aW9uICYmIHBheWxvYWQuZGVzY3JpcHRpb24pIHRodW1ibmFpbC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb247XG4gIGlmIChwcm9wcy5zcG9pbGVyICYmIHBheWxvYWQuc3BvaWxlcikgdGh1bWJuYWlsLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXI7XG5cbiAgcmV0dXJuIHRodW1ibmFpbDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtTWVkaWFHYWxsZXJ5Q29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRNZWRpYUdhbGxlcnlDb21wb25lbnQ+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IG1lZGlhR2FsbGVyeSA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgbWVkaWFHYWxsZXJ5LnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBtZWRpYUdhbGxlcnkuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuaXRlbXMgJiYgcGF5bG9hZC5pdGVtcykgbWVkaWFHYWxsZXJ5Lml0ZW1zID0gcGF5bG9hZC5pdGVtcy5tYXAoKGl0ZW0pID0+IGJvdC50cmFuc2Zvcm1lcnMubWVkaWFHYWxsZXJ5SXRlbShib3QsIGl0ZW0pKTtcblxuICByZXR1cm4gbWVkaWFHYWxsZXJ5O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1GaWxlQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRGaWxlQ29tcG9uZW50Pikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBmaWxlID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBmaWxlLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBmaWxlLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmZpbGUgJiYgcGF5bG9hZC5maWxlKSBmaWxlLmZpbGUgPSBib3QudHJhbnNmb3JtZXJzLnVuZnVybGVkTWVkaWFJdGVtKGJvdCwgcGF5bG9hZC5maWxlKTtcbiAgaWYgKHByb3BzLnNwb2lsZXIgJiYgcGF5bG9hZC5zcG9pbGVyKSBmaWxlLnNwb2lsZXIgPSBwYXlsb2FkLnNwb2lsZXI7XG4gIGlmIChwcm9wcy5uYW1lICYmIHBheWxvYWQubmFtZSkgZmlsZS5uYW1lID0gcGF5bG9hZC5uYW1lO1xuICBpZiAocHJvcHMuc2l6ZSAmJiBwYXlsb2FkLnNpemUpIGZpbGUuc2l6ZSA9IHBheWxvYWQuc2l6ZTtcblxuICByZXR1cm4gZmlsZTtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtVGV4dERpc3BsYXlDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFRleHREaXNwbGF5Q29tcG9uZW50IHwgRGlzY29yZFRleHREaXNwbGF5SW50ZXJhY3Rpb25SZXNwb25zZT4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3QgdGV4dERpc3BsYXkgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHRleHREaXNwbGF5LnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSB0ZXh0RGlzcGxheS5pZCA9IHBheWxvYWQuaWQ7XG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ2NvbnRlbnQnIGl0IGlzIHRoZSBjb21wb25lbnRcbiAgaWYgKCdjb250ZW50JyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLmNvbnRlbnQgJiYgcGF5bG9hZC5jb250ZW50KSB0ZXh0RGlzcGxheS5jb250ZW50ID0gcGF5bG9hZC5jb250ZW50O1xuICB9XG5cbiAgcmV0dXJuIHRleHREaXNwbGF5O1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1TZXBhcmF0b3JDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFNlcGFyYXRvckNvbXBvbmVudD4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3Qgc2VwYXJhdG9yID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBzZXBhcmF0b3IudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHNlcGFyYXRvci5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5kaXZpZGVyICYmIHBheWxvYWQuZGl2aWRlcikgc2VwYXJhdG9yLmRpdmlkZXIgPSBwYXlsb2FkLmRpdmlkZXI7XG4gIGlmIChwcm9wcy5zcGFjaW5nICYmIHBheWxvYWQuc3BhY2luZykgc2VwYXJhdG9yLnNwYWNpbmcgPSBwYXlsb2FkLnNwYWNpbmc7XG5cbiAgcmV0dXJuIHNlcGFyYXRvcjtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtTGFiZWxDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZExhYmVsQ29tcG9uZW50IHwgRGlzY29yZExhYmVsSW50ZXJhY3Rpb25SZXNwb25zZT4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3QgbGFiZWwgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIGxhYmVsLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBsYWJlbC5pZCA9IHBheWxvYWQuaWQ7XG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ2xhYmVsJyBpdCBpcyB0aGUgY29tcG9uZW50XG4gIGlmICgnbGFiZWwnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMubGFiZWwgJiYgcGF5bG9hZC5sYWJlbCkgbGFiZWwubGFiZWwgPSBwYXlsb2FkLmxhYmVsO1xuICAgIGlmIChwcm9wcy5kZXNjcmlwdGlvbiAmJiBwYXlsb2FkLmRlc2NyaXB0aW9uKSBsYWJlbC5kZXNjcmlwdGlvbiA9IHBheWxvYWQuZGVzY3JpcHRpb247XG4gIH1cbiAgaWYgKHByb3BzLmNvbXBvbmVudCAmJiBwYXlsb2FkLmNvbXBvbmVudCkgbGFiZWwuY29tcG9uZW50ID0gYm90LnRyYW5zZm9ybWVycy5jb21wb25lbnQoYm90LCBwYXlsb2FkLmNvbXBvbmVudCk7XG5cbiAgcmV0dXJuIGxhYmVsO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1GaWxlVXBsb2FkQ29tcG9uZW50KGJvdDogQm90LCBwYXlsb2FkOiBQYXJ0aWFsPERpc2NvcmRGaWxlVXBsb2FkQ29tcG9uZW50IHwgRGlzY29yZEZpbGVVcGxvYWRJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBmaWxlVXBsb2FkID0ge30gYXMgU2V0dXBEZXNpcmVkUHJvcHM8Q29tcG9uZW50LCBUcmFuc2Zvcm1lcnNEZXNpcmVkUHJvcGVydGllcywgRGVzaXJlZFByb3BlcnRpZXNCZWhhdmlvcj47XG5cbiAgaWYgKHByb3BzLnR5cGUgJiYgcGF5bG9hZC50eXBlKSBmaWxlVXBsb2FkLnR5cGUgPSBwYXlsb2FkLnR5cGU7XG4gIGlmIChwcm9wcy5pZCAmJiBwYXlsb2FkLmlkKSBmaWxlVXBsb2FkLmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBmaWxlVXBsb2FkLmN1c3RvbUlkID0gcGF5bG9hZC5jdXN0b21faWQ7XG5cbiAgLy8gV2UgYXNzdW1lIHRoYXQgaWYgd2UgZmluZCAndmFsdWVzJyBpdCBpcyB0aGUgaW50ZXJhY3Rpb24gcmVzcG9uc2VcbiAgaWYgKCd2YWx1ZXMnIGluIHBheWxvYWQpIHtcbiAgICBpZiAocHJvcHMudmFsdWVzICYmIHBheWxvYWQudmFsdWVzKSBmaWxlVXBsb2FkLnZhbHVlcyA9IHBheWxvYWQudmFsdWVzO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IF9wYXlsb2FkID0gcGF5bG9hZCBhcyBQYXJ0aWFsPERpc2NvcmRGaWxlVXBsb2FkQ29tcG9uZW50PjtcblxuICAgIGlmIChwcm9wcy5taW5WYWx1ZXMgJiYgX3BheWxvYWQubWluX3ZhbHVlcykgZmlsZVVwbG9hZC5taW5WYWx1ZXMgPSBfcGF5bG9hZC5taW5fdmFsdWVzO1xuICAgIGlmIChwcm9wcy5tYXhWYWx1ZXMgJiYgX3BheWxvYWQubWF4X3ZhbHVlcykgZmlsZVVwbG9hZC5tYXhWYWx1ZXMgPSBfcGF5bG9hZC5tYXhfdmFsdWVzO1xuICAgIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBfcGF5bG9hZC5yZXF1aXJlZCkgZmlsZVVwbG9hZC5yZXF1aXJlZCA9IF9wYXlsb2FkLnJlcXVpcmVkO1xuICAgIGlmIChwcm9wcy5maWxlVHlwZXMgJiYgX3BheWxvYWQuZmlsZV90eXBlcykgZmlsZVVwbG9hZC5maWxlVHlwZXMgPSBfcGF5bG9hZC5maWxlX3R5cGVzO1xuICB9XG5cbiAgcmV0dXJuIGZpbGVVcGxvYWQ7XG59XG5cbmZ1bmN0aW9uIHRyYW5zZm9ybVJhZGlvR3JvdXBDb21wb25lbnQoYm90OiBCb3QsIHBheWxvYWQ6IFBhcnRpYWw8RGlzY29yZFJhZGlvR3JvdXBDb21wb25lbnQgfCBEaXNjb3JkUmFkaW9Hcm91cEludGVyYWN0aW9uUmVzcG9uc2U+KSB7XG4gIGNvbnN0IHByb3BzID0gYm90LnRyYW5zZm9ybWVycy5kZXNpcmVkUHJvcGVydGllcy5jb21wb25lbnQ7XG4gIGNvbnN0IHJhZGlvR3JvdXAgPSB7fSBhcyBTZXR1cERlc2lyZWRQcm9wczxDb21wb25lbnQsIFRyYW5zZm9ybWVyc0Rlc2lyZWRQcm9wZXJ0aWVzLCBEZXNpcmVkUHJvcGVydGllc0JlaGF2aW9yPjtcblxuICBpZiAocHJvcHMudHlwZSAmJiBwYXlsb2FkLnR5cGUpIHJhZGlvR3JvdXAudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIHJhZGlvR3JvdXAuaWQgPSBwYXlsb2FkLmlkO1xuICBpZiAocHJvcHMuY3VzdG9tSWQgJiYgcGF5bG9hZC5jdXN0b21faWQpIHJhZGlvR3JvdXAuY3VzdG9tSWQgPSBwYXlsb2FkLmN1c3RvbV9pZDtcblxuICAvLyBXZSBhc3N1bWUgdGhhdCBpZiB3ZSBmaW5kICdvcHRpb25zJyBpdCBpcyB0aGUgY29tcG9uZW50XG4gIGlmICgnb3B0aW9ucycgaW4gcGF5bG9hZCkge1xuICAgIGlmIChwcm9wcy5vcHRpb25zICYmIHBheWxvYWQub3B0aW9ucykgcmFkaW9Hcm91cC5vcHRpb25zID0gcGF5bG9hZC5vcHRpb25zO1xuICAgIGlmIChwcm9wcy5yZXF1aXJlZCAmJiBwYXlsb2FkLnJlcXVpcmVkICE9PSB1bmRlZmluZWQpIHJhZGlvR3JvdXAucmVxdWlyZWQgPSBwYXlsb2FkLnJlcXVpcmVkO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IF9wYXlsb2FkID0gcGF5bG9hZCBhcyBQYXJ0aWFsPERpc2NvcmRSYWRpb0dyb3VwSW50ZXJhY3Rpb25SZXNwb25zZT47XG5cbiAgICBpZiAocHJvcHMudmFsdWUpIHJhZGlvR3JvdXAudmFsdWUgPSBfcGF5bG9hZC52YWx1ZSA/PyB1bmRlZmluZWQ7XG4gIH1cblxuICByZXR1cm4gcmFkaW9Hcm91cDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtQ2hlY2tib3hHcm91cENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkQ2hlY2tib3hHcm91cENvbXBvbmVudCB8IERpc2NvcmRDaGVja2JveEdyb3VwSW50ZXJhY3Rpb25SZXNwb25zZT4pIHtcbiAgY29uc3QgcHJvcHMgPSBib3QudHJhbnNmb3JtZXJzLmRlc2lyZWRQcm9wZXJ0aWVzLmNvbXBvbmVudDtcbiAgY29uc3QgY2hlY2tib3hHcm91cCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgY2hlY2tib3hHcm91cC50eXBlID0gcGF5bG9hZC50eXBlO1xuICBpZiAocHJvcHMuaWQgJiYgcGF5bG9hZC5pZCkgY2hlY2tib3hHcm91cC5pZCA9IHBheWxvYWQuaWQ7XG4gIGlmIChwcm9wcy5jdXN0b21JZCAmJiBwYXlsb2FkLmN1c3RvbV9pZCkgY2hlY2tib3hHcm91cC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIC8vIFdlIGFzc3VtZSB0aGF0IGlmIHdlIGZpbmQgJ29wdGlvbnMnIGl0IGlzIHRoZSBjb21wb25lbnRcbiAgaWYgKCdvcHRpb25zJyBpbiBwYXlsb2FkKSB7XG4gICAgaWYgKHByb3BzLm9wdGlvbnMgJiYgcGF5bG9hZC5vcHRpb25zKSBjaGVja2JveEdyb3VwLm9wdGlvbnMgPSBwYXlsb2FkLm9wdGlvbnM7XG4gICAgaWYgKHByb3BzLm1pblZhbHVlcyAmJiBwYXlsb2FkLm1pbl92YWx1ZXMgIT09IHVuZGVmaW5lZCkgY2hlY2tib3hHcm91cC5taW5WYWx1ZXMgPSBwYXlsb2FkLm1pbl92YWx1ZXM7XG4gICAgaWYgKHByb3BzLm1heFZhbHVlcyAmJiBwYXlsb2FkLm1heF92YWx1ZXMgIT09IHVuZGVmaW5lZCkgY2hlY2tib3hHcm91cC5tYXhWYWx1ZXMgPSBwYXlsb2FkLm1heF92YWx1ZXM7XG4gICAgaWYgKHByb3BzLnJlcXVpcmVkICYmIHBheWxvYWQucmVxdWlyZWQgIT09IHVuZGVmaW5lZCkgY2hlY2tib3hHcm91cC5yZXF1aXJlZCA9IHBheWxvYWQucmVxdWlyZWQ7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgX3BheWxvYWQgPSBwYXlsb2FkIGFzIFBhcnRpYWw8RGlzY29yZENoZWNrYm94R3JvdXBJbnRlcmFjdGlvblJlc3BvbnNlPjtcblxuICAgIGlmIChwcm9wcy52YWx1ZXMgJiYgX3BheWxvYWQudmFsdWVzKSBjaGVja2JveEdyb3VwLnZhbHVlcyA9IF9wYXlsb2FkLnZhbHVlcztcbiAgfVxuXG4gIHJldHVybiBjaGVja2JveEdyb3VwO1xufVxuXG5mdW5jdGlvbiB0cmFuc2Zvcm1DaGVja2JveENvbXBvbmVudChib3Q6IEJvdCwgcGF5bG9hZDogUGFydGlhbDxEaXNjb3JkQ2hlY2tib3hDb21wb25lbnQgfCBEaXNjb3JkQ2hlY2tib3hJbnRlcmFjdGlvblJlc3BvbnNlPikge1xuICBjb25zdCBwcm9wcyA9IGJvdC50cmFuc2Zvcm1lcnMuZGVzaXJlZFByb3BlcnRpZXMuY29tcG9uZW50O1xuICBjb25zdCBjaGVja2JveCA9IHt9IGFzIFNldHVwRGVzaXJlZFByb3BzPENvbXBvbmVudCwgVHJhbnNmb3JtZXJzRGVzaXJlZFByb3BlcnRpZXMsIERlc2lyZWRQcm9wZXJ0aWVzQmVoYXZpb3I+O1xuXG4gIGlmIChwcm9wcy50eXBlICYmIHBheWxvYWQudHlwZSkgY2hlY2tib3gudHlwZSA9IHBheWxvYWQudHlwZTtcbiAgaWYgKHByb3BzLmlkICYmIHBheWxvYWQuaWQpIGNoZWNrYm94LmlkID0gcGF5bG9hZC5pZDtcbiAgaWYgKHByb3BzLmN1c3RvbUlkICYmIHBheWxvYWQuY3VzdG9tX2lkKSBjaGVja2JveC5jdXN0b21JZCA9IHBheWxvYWQuY3VzdG9tX2lkO1xuXG4gIGlmIChwcm9wcy52YWx1ZSAmJiAndmFsdWUnIGluIHBheWxvYWQpIGNoZWNrYm94LnZhbHVlID0gcGF5bG9hZC52YWx1ZTtcbiAgaWYgKHByb3BzLmRlZmF1bHQgJiYgJ2RlZmF1bHQnIGluIHBheWxvYWQpIGNoZWNrYm94LmRlZmF1bHQgPSBwYXlsb2FkLmRlZmF1bHQ7XG5cbiAgcmV0dXJuIGNoZWNrYm94O1xufVxuIl0sIm5hbWVzIjpbIk1lc3NhZ2VDb21wb25lbnRUeXBlcyIsImNhbGxDdXN0b21pemVyIiwiVG9nZ2xlQml0ZmllbGQiLCJ0cmFuc2Zvcm1Db21wb25lbnQiLCJib3QiLCJwYXlsb2FkIiwiZXh0cmEiLCJjb21wb25lbnQiLCJ0eXBlIiwiRXJyb3IiLCJBY3Rpb25Sb3ciLCJ0cmFuc2Zvcm1BY3Rpb25Sb3ciLCJCdXR0b24iLCJ0cmFuc2Zvcm1CdXR0b25Db21wb25lbnQiLCJDb250YWluZXIiLCJ0cmFuc2Zvcm1Db250YWluZXJDb21wb25lbnQiLCJUZXh0SW5wdXQiLCJ0cmFuc2Zvcm1JbnB1dFRleHRDb21wb25lbnQiLCJTdHJpbmdTZWxlY3QiLCJ0cmFuc2Zvcm1TdHJpbmdTZWxlY3RNZW51Q29tcG9uZW50IiwiVXNlclNlbGVjdCIsInRyYW5zZm9ybVVzZXJTZWxlY3RNZW51Q29tcG9uZW50IiwiUm9sZVNlbGVjdCIsInRyYW5zZm9ybVJvbGVTZWxlY3RNZW51Q29tcG9uZW50IiwiTWVudGlvbmFibGVTZWxlY3QiLCJ0cmFuc2Zvcm1NZW50aW9uYWJsZVNlbGVjdE1lbnVDb21wb25lbnQiLCJDaGFubmVsU2VsZWN0IiwidHJhbnNmb3JtQ2hhbm5lbFNlbGVjdE1lbnVDb21wb25lbnQiLCJTZWN0aW9uIiwidHJhbnNmb3JtU2VjdGlvbkNvbXBvbmVudCIsIlRodW1ibmFpbCIsInRyYW5zZm9ybVRodW1ibmFpbENvbXBvbmVudCIsIk1lZGlhR2FsbGVyeSIsInRyYW5zZm9ybU1lZGlhR2FsbGVyeUNvbXBvbmVudCIsIkZpbGUiLCJ0cmFuc2Zvcm1GaWxlQ29tcG9uZW50IiwiU2VwYXJhdG9yIiwidHJhbnNmb3JtU2VwYXJhdG9yQ29tcG9uZW50IiwiVGV4dERpc3BsYXkiLCJ0cmFuc2Zvcm1UZXh0RGlzcGxheUNvbXBvbmVudCIsIkxhYmVsIiwidHJhbnNmb3JtTGFiZWxDb21wb25lbnQiLCJGaWxlVXBsb2FkIiwidHJhbnNmb3JtRmlsZVVwbG9hZENvbXBvbmVudCIsIlJhZGlvR3JvdXAiLCJ0cmFuc2Zvcm1SYWRpb0dyb3VwQ29tcG9uZW50IiwiQ2hlY2tib3hHcm91cCIsInRyYW5zZm9ybUNoZWNrYm94R3JvdXBDb21wb25lbnQiLCJDaGVja2JveCIsInRyYW5zZm9ybUNoZWNrYm94Q29tcG9uZW50IiwicGFydGlhbCIsInRyYW5zZm9ybVVuZnVybGVkTWVkaWFJdGVtIiwicHJvcHMiLCJ0cmFuc2Zvcm1lcnMiLCJkZXNpcmVkUHJvcGVydGllcyIsInVuZnVybGVkTWVkaWFJdGVtIiwibWVkaWFJdGVtIiwidXJsIiwicHJveHlVcmwiLCJwcm94eV91cmwiLCJoZWlnaHQiLCJ3aWR0aCIsInBsYWNlaG9sZGVyIiwicGxhY2Vob2xkZXJWZXJzaW9uIiwicGxhY2Vob2xkZXJfdmVyc2lvbiIsImNvbnRlbnRUeXBlIiwiY29udGVudF90eXBlIiwiZmxhZ3MiLCJhdHRhY2htZW50SWQiLCJhdHRhY2htZW50X2lkIiwic25vd2ZsYWtlIiwidHJhbnNmb3JtTWVkaWFHYWxsZXJ5SXRlbSIsIm1lZGlhR2FsbGVyeUl0ZW0iLCJnYWxsZXJ5SXRlbSIsIm1lZGlhIiwiZGVzY3JpcHRpb24iLCJzcG9pbGVyIiwiYWN0aW9uUm93IiwiaWQiLCJjb21wb25lbnRzIiwibWFwIiwiY29udGFpbmVyIiwiYWNjZW50Q29sb3IiLCJhY2NlbnRfY29sb3IiLCJidXR0b24iLCJsYWJlbCIsImN1c3RvbUlkIiwiY3VzdG9tX2lkIiwic3R5bGUiLCJlbW9qaSIsImRpc2FibGVkIiwic2t1SWQiLCJza3VfaWQiLCJpbnB1dCIsInZhbHVlIiwicmVxdWlyZWQiLCJtaW5MZW5ndGgiLCJtaW5fbGVuZ3RoIiwibWF4TGVuZ3RoIiwibWF4X2xlbmd0aCIsInNlbGVjdCIsInZhbHVlcyIsIl9wYXlsb2FkIiwibWluVmFsdWVzIiwibWluX3ZhbHVlcyIsIm1heFZhbHVlcyIsIm1heF92YWx1ZXMiLCJvcHRpb25zIiwib3B0aW9uIiwidW5kZWZpbmVkIiwiZGVmYXVsdCIsInJlc29sdmVkIiwiaW50ZXJhY3Rpb25EYXRhUmVzb2x2ZWQiLCJkZWZhdWx0VmFsdWVzIiwiZGVmYXVsdF92YWx1ZXMiLCJkZWZhdWx0VmFsdWUiLCJjaGFubmVsVHlwZXMiLCJjaGFubmVsX3R5cGVzIiwic2VjdGlvbiIsImFjY2Vzc29yeSIsInRodW1ibmFpbCIsIm1lZGlhR2FsbGVyeSIsIml0ZW1zIiwiaXRlbSIsImZpbGUiLCJuYW1lIiwic2l6ZSIsInRleHREaXNwbGF5IiwiY29udGVudCIsInNlcGFyYXRvciIsImRpdmlkZXIiLCJzcGFjaW5nIiwiZmlsZVVwbG9hZCIsImZpbGVUeXBlcyIsImZpbGVfdHlwZXMiLCJyYWRpb0dyb3VwIiwiY2hlY2tib3hHcm91cCIsImNoZWNrYm94Il0sIm1hcHBpbmdzIjoiQUFBQSxTQXFDRUEscUJBQXFCLFFBQ2hCLG9CQUFvQjtBQUczQixTQUFTQyxjQUFjLFFBQVEscUJBQXFCO0FBQ3BELFNBQVNDLGNBQWMsUUFBUSw4QkFBOEI7QUFHN0QsT0FBTyxTQUFTQyxt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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guild.d.ts","sourceRoot":"","sources":["../../src/transformers/guild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"guild.d.ts","sourceRoot":"","sources":["../../src/transformers/guild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAIrC,OAAO,KAAK,EAAW,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjD,eAAO,MAAM,SAAS,EAAE,KAgBvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,OAqHvH"}
|