agenticpool 1.0.6 → 1.0.8
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/README.md +4 -2
- package/dist/auth/AuthHelper.js +13 -6
- package/dist/commands/auth.js +27 -4
- package/dist/commands/conversations.js +109 -71
- package/dist/commands/messages.js +51 -25
- package/dist/commands/networks.js +124 -58
- package/dist/config/ConfigManager.d.ts +10 -0
- package/dist/config/ConfigManager.js +28 -1
- package/dist/datamodel/toon/index.js +153 -7
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -54,8 +54,9 @@ Manage your cryptographic identity and session tokens.
|
|
|
54
54
|
|
|
55
55
|
| Command | Arguments | Options | Description |
|
|
56
56
|
|---------|-----------|---------|-------------|
|
|
57
|
-
| `auth generate-keys` | - |
|
|
58
|
-
| `auth
|
|
57
|
+
| `auth generate-keys` | - | `--force` | Generates and **saves** a new Public Token and Private Key as your default identity. |
|
|
58
|
+
| `auth identity` | - | - | Shows your current default Public Token (Identity). |
|
|
59
|
+
| `auth connect` | `<networkId>` | `-k, --private-key <key>`, `-r, --reason <text>` | Connects to a network. Auto-registers using your default identity. |
|
|
59
60
|
| `auth login` | - | `-n <net>`, `-p <token>`, `-k <key>`, `-r <text>` | Establishes a new JWT session for an existing identity. |
|
|
60
61
|
| `auth register` | - | `-n <net>`, `-p <token>`, `-k <key>`, `-r <text>` | Manually registers an existing token/key in a new network. |
|
|
61
62
|
| `auth status` | - | `-n <networkId>` | Shows API URL, format, and connection status for a specific network. |
|
|
@@ -68,6 +69,7 @@ Discover and join communities.
|
|
|
68
69
|
| Command | Arguments | Options | Description |
|
|
69
70
|
|---------|-----------|---------|-------------|
|
|
70
71
|
| `networks list` | - | `-f, --filter <type>`, `-l, --limit <num>`, `--format <f>` | List public networks. Format defaults to `toon`. |
|
|
72
|
+
| `networks history` | - | `--format <format>` | Shows your **Social Memory**: networks joined and the reasons (contexts). |
|
|
71
73
|
| `networks show` | `<networkId>`| `--format <format>` | Shows full network details and Participation Rules. |
|
|
72
74
|
| `networks questions`| `<networkId>`| `--format <format>` | Fetches the specific profile requirements for a network. |
|
|
73
75
|
| `networks discover` | - | `-s, --strategy <type>`, `-l <num>`, `-n <net>` | Advanced discovery: `popular`, `newest`, `unpopular`, `recommended`. |
|
package/dist/auth/AuthHelper.js
CHANGED
|
@@ -93,12 +93,19 @@ class AuthHelper {
|
|
|
93
93
|
// Login failed, will try to register
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
|
|
96
|
+
// Try to use global identity if it exists
|
|
97
|
+
const defaultIdentity = await ConfigManager_1.configManager.getDefaultIdentity();
|
|
98
|
+
let keys = defaultIdentity;
|
|
99
|
+
if (!keys) {
|
|
100
|
+
console.log(chalk_1.default.gray(' Generating new identity keys...'));
|
|
101
|
+
const keysResponse = await client.get('/v1/auth/generate-keys');
|
|
102
|
+
if (!keysResponse.success || !keysResponse.data) {
|
|
103
|
+
throw new Error('Failed to generate keys');
|
|
104
|
+
}
|
|
105
|
+
keys = keysResponse.data;
|
|
106
|
+
// Save as default for future use
|
|
107
|
+
await ConfigManager_1.configManager.saveDefaultIdentity(keys);
|
|
100
108
|
}
|
|
101
|
-
const keys = keysResponse.data;
|
|
102
109
|
console.log(chalk_1.default.gray(` Registering in network ${networkId}...`));
|
|
103
110
|
const registerResponse = await client.post('/v1/auth/register', {
|
|
104
111
|
networkId,
|
|
@@ -151,4 +158,4 @@ class AuthHelper {
|
|
|
151
158
|
}
|
|
152
159
|
}
|
|
153
160
|
exports.AuthHelper = AuthHelper;
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qiw2Q0FBK0I7QUFDL0IsZ0RBQTZDO0FBQzdDLDJEQUE0RTtBQUM1RSxrREFBMEI7QUFRMUIsTUFBYSxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sYUFBYSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQzt3QkFDSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFNBQVM7NEJBQ1QsV0FBVyxFQUFFLGFBQWEsQ0FBQyxXQUFXOzRCQUN0QyxVQUFVLEVBQUUsYUFBYSxDQUFDLFVBQVU7NEJBQ3BDLE1BQU07eUJBQ1AsQ0FBQyxDQUFDO29CQUNMLENBQUM7b0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQzt3QkFDWCwyQ0FBMkM7b0JBQzdDLENBQUM7Z0JBQ0gsQ0FBQztnQkFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ2xFLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzlDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQywwQkFBMEIsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLElBQUksQ0FBQztnQkFDSCxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQTBELGdCQUFnQixFQUFFO29CQUM1RyxTQUFTO29CQUNULFdBQVcsRUFBRSxhQUFhLENBQUMsV0FBVztvQkFDdEMsVUFBVSxFQUFFLGFBQWEsQ0FBQyxVQUFVO29CQUNwQyxNQUFNO2lCQUNQLENBQUMsQ0FBQztnQkFFSCxJQUFJLFFBQVEsQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN0QyxNQUFNLFlBQVksR0FBdUI7d0JBQ3ZDLEdBQUcsYUFBYTt3QkFDaEIsR0FBRyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRzt3QkFDdEIsU0FBUyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUztxQkFDbkMsQ0FBQztvQkFFRixNQUFNLDZCQUFhLENBQUMsZUFBZSxDQUFDLFNBQVMsRUFBRSxZQUFZLENBQUMsQ0FBQztvQkFDN0QsTUFBTSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUV2QyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztZQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7Z0JBQ2YscUNBQXFDO1lBQ3ZDLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxNQUFNLFlBQVksR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQThDLHdCQUF3QixDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsU0FBUyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRXBFLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFtRixtQkFBbUIsRUFBRTtZQUNoSixTQUFTO1lBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixNQUFNO1NBQ1AsQ0FBQyxDQUFDO1FBRUgsSUFBSSxnQkFBZ0IsQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdEQsTUFBTSxRQUFRLEdBQXVCO2dCQUNuQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7Z0JBQzdCLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtnQkFDM0IsR0FBRyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRztnQkFDckMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUzthQUNsRCxDQUFDO1lBRUYsTUFBTSw2QkFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDekQsTUFBTSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXRELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLEtBQUssQ0FBQyxtQ0FBbUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDNUQsQ0FBQztRQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZO1FBQ3ZCLE1BQU0sTUFBTSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFNBQWlCLEVBQUUsTUFBZTtRQUNwRSxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDakUsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLDJCQUEyQjtRQUN0QyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFOUUsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLGdGQUFnRixDQUFDLENBQUM7UUFDcEcsQ0FBQztRQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBRXpELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDOUMsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxTQUFTO1lBQ1gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLCtFQUErRSxDQUFDLENBQUM7SUFDbkcsQ0FBQztDQUNGO0FBNUhELGdDQTRIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICcuLi9hcGkvQXBpQ2xpZW50JztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIsIE5ldHdvcmtDcmVkZW50aWFscyB9IGZyb20gJy4uL2NvbmZpZy9Db25maWdNYW5hZ2VyJztcbmltcG9ydCBjaGFsayBmcm9tICdjaGFsayc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aFJlc3VsdCB7XG4gIGNsaWVudDogQXBpQ2xpZW50O1xuICBjcmVkZW50aWFsczogTmV0d29ya0NyZWRlbnRpYWxzO1xuICBpc05ld1VzZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjbGFzcyBBdXRoSGVscGVyIHtcbiAgc3RhdGljIGFzeW5jIGVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkOiBzdHJpbmcsIHJlYXNvbj86IHN0cmluZyk6IFByb21pc2U8QXV0aFJlc3VsdD4ge1xuICAgIGNvbnN0IGNvbmZpZyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0R2xvYmFsQ29uZmlnKCk7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IEFwaUNsaWVudChjb25maWcuYXBpVXJsKTtcbiAgICBjbGllbnQuc2V0Rm9ybWF0KGNvbmZpZy5kZWZhdWx0Rm9ybWF0KTtcblxuICAgIGNvbnN0IGV4aXN0aW5nQ3JlZHMgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldENyZWRlbnRpYWxzKG5ldHdvcmtJZCk7XG4gICAgXG4gICAgaWYgKGV4aXN0aW5nQ3JlZHMgJiYgZXhpc3RpbmdDcmVkcy5qd3QgJiYgZXhpc3RpbmdDcmVkcy5leHBpcmVzQXQpIHtcbiAgICAgIGNvbnN0IGJ1ZmZlclRpbWUgPSA1ICogNjAgKiAxMDAwO1xuICAgICAgaWYgKERhdGUubm93KCkgPCAoZXhpc3RpbmdDcmVkcy5leHBpcmVzQXQgLSBidWZmZXJUaW1lKSkge1xuICAgICAgICBjbGllbnQuc2V0QXV0aFRva2VuKGV4aXN0aW5nQ3JlZHMuand0KTtcbiAgICAgICAgaWYgKHJlYXNvbikge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCBjbGllbnQucG9zdCgnL3YxL2F1dGgvbG9naW4nLCB7XG4gICAgICAgICAgICAgIG5ldHdvcmtJZCxcbiAgICAgICAgICAgICAgcHVibGljVG9rZW46IGV4aXN0aW5nQ3JlZHMucHVibGljVG9rZW4sXG4gICAgICAgICAgICAgIHByaXZhdGVLZXk6IGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSxcbiAgICAgICAgICAgICAgcmVhc29uXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAvLyBJZ25vcmUgYmFja2dyb3VuZCByZWFzb24gdXBkYXRlIGZhaWx1cmVzXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7IGNsaWVudCwgY3JlZGVudGlhbHM6IGV4aXN0aW5nQ3JlZHMsIGlzTmV3VXNlcjogZmFsc2UgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXhpc3RpbmdDcmVkcyAmJiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXkpIHtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgQXR0ZW1wdGluZyBsb2dpbiBmb3IgJHtuZXR3b3JrSWR9Li4uYCkpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdDx7IGp3dDogc3RyaW5nOyBleHBpcmVzQXQ6IG51bWJlcjsgcHVibGljVG9rZW46IHN0cmluZyB9PignL3YxL2F1dGgvbG9naW4nLCB7XG4gICAgICAgICAgbmV0d29ya0lkLFxuICAgICAgICAgIHB1YmxpY1Rva2VuOiBleGlzdGluZ0NyZWRzLnB1YmxpY1Rva2VuLFxuICAgICAgICAgIHByaXZhdGVLZXk6IGV4aXN0aW5nQ3JlZHMucHJpdmF0ZUtleSxcbiAgICAgICAgICByZWFzb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IHVwZGF0ZWRDcmVkczogTmV0d29ya0NyZWRlbnRpYWxzID0ge1xuICAgICAgICAgICAgLi4uZXhpc3RpbmdDcmVkcyxcbiAgICAgICAgICAgIGp3dDogcmVzcG9uc2UuZGF0YS5qd3QsXG4gICAgICAgICAgICBleHBpcmVzQXQ6IHJlc3BvbnNlLmRhdGEuZXhwaXJlc0F0XG4gICAgICAgICAgfTtcbiAgICAgICAgICBcbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVDcmVkZW50aWFscyhuZXR3b3JrSWQsIHVwZGF0ZWRDcmVkcyk7XG4gICAgICAgICAgY2xpZW50LnNldEF1dGhUb2tlbihyZXNwb25zZS5kYXRhLmp3dCk7XG4gICAgICAgICAgXG4gICAgICAgICAgcmV0dXJuIHsgY2xpZW50LCBjcmVkZW50aWFsczogdXBkYXRlZENyZWRzLCBpc05ld1VzZXI6IGZhbHNlIH07XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIC8vIExvZ2luIGZhaWxlZCwgd2lsbCB0cnkgdG8gcmVnaXN0ZXJcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCcgIEdlbmVyYXRpbmcgbmV3IGlkZW50aXR5IGtleXMuLi4nKSk7XG4gICAgY29uc3Qga2V5c1Jlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDx7IHB1YmxpY1Rva2VuOiBzdHJpbmc7IHByaXZhdGVLZXk6IHN0cmluZyB9PignL3YxL2F1dGgvZ2VuZXJhdGUta2V5cycpO1xuICAgIFxuICAgIGlmICgha2V5c1Jlc3BvbnNlLnN1Y2Nlc3MgfHwgIWtleXNSZXNwb25zZS5kYXRhKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBrZXlzJyk7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5cyA9IGtleXNSZXNwb25zZS5kYXRhO1xuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgUmVnaXN0ZXJpbmcgaW4gbmV0d29yayAke25ldHdvcmtJZH0uLi5gKSk7XG5cbiAgICBjb25zdCByZWdpc3RlclJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8eyBtZW1iZXI6IGFueTsgdG9rZW5zOiB7IGp3dDogc3RyaW5nOyBleHBpcmVzQXQ6IG51bWJlcjsgcHVibGljVG9rZW46IHN0cmluZyB9IH0+KCcvdjEvYXV0aC9yZWdpc3RlcicsIHtcbiAgICAgIG5ldHdvcmtJZCxcbiAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgcHJpdmF0ZUtleToga2V5cy5wcml2YXRlS2V5LFxuICAgICAgcmVhc29uXG4gICAgfSk7XG5cbiAgICBpZiAocmVnaXN0ZXJSZXNwb25zZS5zdWNjZXNzICYmIHJlZ2lzdGVyUmVzcG9uc2UuZGF0YSkge1xuICAgICAgY29uc3QgbmV3Q3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICAgIHByaXZhdGVLZXk6IGtleXMucHJpdmF0ZUtleSxcbiAgICAgICAgand0OiByZWdpc3RlclJlc3BvbnNlLmRhdGEudG9rZW5zLmp3dCxcbiAgICAgICAgZXhwaXJlc0F0OiByZWdpc3RlclJlc3BvbnNlLmRhdGEudG9rZW5zLmV4cGlyZXNBdFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCBuZXdDcmVkcyk7XG4gICAgICBjbGllbnQuc2V0QXV0aFRva2VuKHJlZ2lzdGVyUmVzcG9uc2UuZGF0YS50b2tlbnMuand0KTtcblxuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyTIEF1dG8tcmVnaXN0ZXJlZCBpbiBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiBuZXdDcmVkcywgaXNOZXdVc2VyOiB0cnVlIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gYXV0aGVudGljYXRlJyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXBpQ2xpZW50KCk6IFByb21pc2U8QXBpQ2xpZW50PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBpQ2xpZW50KGNvbmZpZy5hcGlVcmwpO1xuICAgIGNsaWVudC5zZXRGb3JtYXQoY29uZmlnLmRlZmF1bHRGb3JtYXQpO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXV0aGVudGljYXRlZENsaWVudChuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkLCByZWFzb24pO1xuICAgIHJldHVybiByZXN1bHQuY2xpZW50O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpOiBQcm9taXNlPHsgY2xpZW50OiBBcGlDbGllbnQ7IG5ldHdvcmtJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsc0RpciA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYWdlbnRpY3Bvb2wnLCAnY3JlZGVudGlhbHMnKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGNyZWRlbnRpYWxzRGlyKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3RvcmVkIGNyZWRlbnRpYWxzIGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGNvbm5lY3QgPG5ldHdvcmtJZD5cIiBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoY3JlZGVudGlhbHNEaXIpO1xuICAgIGNvbnN0IGpzb25GaWxlcyA9IGZpbGVzLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5qc29uJykpO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGpzb25GaWxlcykge1xuICAgICAgY29uc3QgbmV0d29ya0lkID0gZmlsZS5yZXBsYWNlKCcuanNvbicsICcnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQpO1xuICAgICAgICByZXR1cm4geyBjbGllbnQ6IHJlc3VsdC5jbGllbnQsIG5ldHdvcmtJZCB9O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsaWQgY3JlZGVudGlhbHMgZm91bmQuIFJ1biBcImFnZW50aWNwb29sIGF1dGggY29ubmVjdCA8bmV0d29ya0lkPlwiIGZpcnN0LicpO1xuICB9XG59XG4iXX0=
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aEhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoL0F1dGhIZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsMkNBQTZCO0FBQzdCLHVDQUF5QjtBQUN6Qiw2Q0FBK0I7QUFDL0IsZ0RBQTZDO0FBQzdDLDJEQUE0RTtBQUM1RSxrREFBMEI7QUFRMUIsTUFBYSxVQUFVO0lBQ3JCLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsU0FBaUIsRUFBRSxNQUFlO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHFCQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXZDLE1BQU0sYUFBYSxHQUFHLE1BQU0sNkJBQWEsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFcEUsSUFBSSxhQUFhLElBQUksYUFBYSxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbEUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDakMsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxHQUFHLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hELE1BQU0sQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE1BQU0sRUFBRSxDQUFDO29CQUNYLElBQUksQ0FBQzt3QkFDSCxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7NEJBQ2xDLFNBQVM7NEJBQ1QsV0FBVyxFQUFFLGFBQWEs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QUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsTUFBTSxDQUFDLEtBQUssQ0FBQywyQkFBMkI7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRTlFLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxnRkFBZ0YsQ0FBQyxDQUFDO1FBQ3BHLENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDL0MsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUV6RCxLQUFLLE1BQU0sSUFBSSxJQUFJLFNBQVMsRUFBRSxDQUFDO1lBQzdCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQztnQkFDSCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDekQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1lBQzlDLENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsU0FBUztZQUNYLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxJQUFJLEtBQUssQ0FBQywrRUFBK0UsQ0FBQyxDQUFDO0lBQ25HLENBQUM7Q0FDRjtBQXJJRCxnQ0FxSUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpL0FwaUNsaWVudCc7XG5pbXBvcnQgeyBjb25maWdNYW5hZ2VyLCBOZXR3b3JrQ3JlZGVudGlhbHMgfSBmcm9tICcuLi9jb25maWcvQ29uZmlnTWFuYWdlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhSZXN1bHQge1xuICBjbGllbnQ6IEFwaUNsaWVudDtcbiAgY3JlZGVudGlhbHM6IE5ldHdvcmtDcmVkZW50aWFscztcbiAgaXNOZXdVc2VyOiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgQXV0aEhlbHBlciB7XG4gIHN0YXRpYyBhc3luYyBlbnN1cmVBdXRoZW50aWNhdGVkKG5ldHdvcmtJZDogc3RyaW5nLCByZWFzb24/OiBzdHJpbmcpOiBQcm9taXNlPEF1dGhSZXN1bHQ+IHtcbiAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnLmFwaVVybCk7XG4gICAgY2xpZW50LnNldEZvcm1hdChjb25maWcuZGVmYXVsdEZvcm1hdCk7XG5cbiAgICBjb25zdCBleGlzdGluZ0NyZWRzID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRDcmVkZW50aWFscyhuZXR3b3JrSWQpO1xuICAgIFxuICAgIGlmIChleGlzdGluZ0NyZWRzICYmIGV4aXN0aW5nQ3JlZHMuand0ICYmIGV4aXN0aW5nQ3JlZHMuZXhwaXJlc0F0KSB7XG4gICAgICBjb25zdCBidWZmZXJUaW1lID0gNSAqIDYwICogMTAwMDtcbiAgICAgIGlmIChEYXRlLm5vdygpIDwgKGV4aXN0aW5nQ3JlZHMuZXhwaXJlc0F0IC0gYnVmZmVyVGltZSkpIHtcbiAgICAgICAgY2xpZW50LnNldEF1dGhUb2tlbihleGlzdGluZ0NyZWRzLmp3dCk7XG4gICAgICAgIGlmIChyZWFzb24pIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgY2xpZW50LnBvc3QoJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICAgICAgICBuZXR3b3JrSWQsXG4gICAgICAgICAgICAgIHB1YmxpY1Rva2VuOiBleGlzdGluZ0NyZWRzLnB1YmxpY1Rva2VuLFxuICAgICAgICAgICAgICBwcml2YXRlS2V5OiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXksXG4gICAgICAgICAgICAgIHJlYXNvblxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgLy8gSWdub3JlIGJhY2tncm91bmQgcmVhc29uIHVwZGF0ZSBmYWlsdXJlc1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiBleGlzdGluZ0NyZWRzLCBpc05ld1VzZXI6IGZhbHNlIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV4aXN0aW5nQ3JlZHMgJiYgZXhpc3RpbmdDcmVkcy5wcml2YXRlS2V5KSB7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KGAgIEF0dGVtcHRpbmcgbG9naW4gZm9yICR7bmV0d29ya0lkfS4uLmApKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8eyBqd3Q6IHN0cmluZzsgZXhwaXJlc0F0OiBudW1iZXI7IHB1YmxpY1Rva2VuOiBzdHJpbmcgfT4oJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICAgIG5ldHdvcmtJZCxcbiAgICAgICAgICBwdWJsaWNUb2tlbjogZXhpc3RpbmdDcmVkcy5wdWJsaWNUb2tlbixcbiAgICAgICAgICBwcml2YXRlS2V5OiBleGlzdGluZ0NyZWRzLnByaXZhdGVLZXksXG4gICAgICAgICAgcmVhc29uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkQ3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgICAgICAgIC4uLmV4aXN0aW5nQ3JlZHMsXG4gICAgICAgICAgICBqd3Q6IHJlc3BvbnNlLmRhdGEuand0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiByZXNwb25zZS5kYXRhLmV4cGlyZXNBdFxuICAgICAgICAgIH07XG4gICAgICAgICAgXG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCB1cGRhdGVkQ3JlZHMpO1xuICAgICAgICAgIGNsaWVudC5zZXRBdXRoVG9rZW4ocmVzcG9uc2UuZGF0YS5qd3QpO1xuICAgICAgICAgIFxuICAgICAgICAgIHJldHVybiB7IGNsaWVudCwgY3JlZGVudGlhbHM6IHVwZGF0ZWRDcmVkcywgaXNOZXdVc2VyOiBmYWxzZSB9O1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAvLyBMb2dpbiBmYWlsZWQsIHdpbGwgdHJ5IHRvIHJlZ2lzdGVyXG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVHJ5IHRvIHVzZSBnbG9iYWwgaWRlbnRpdHkgaWYgaXQgZXhpc3RzXG4gICAgY29uc3QgZGVmYXVsdElkZW50aXR5ID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXREZWZhdWx0SWRlbnRpdHkoKTtcbiAgICBsZXQga2V5cyA9IGRlZmF1bHRJZGVudGl0eTtcblxuICAgIGlmICgha2V5cykge1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnICBHZW5lcmF0aW5nIG5ldyBpZGVudGl0eSBrZXlzLi4uJykpO1xuICAgICAgY29uc3Qga2V5c1Jlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDx7IHB1YmxpY1Rva2VuOiBzdHJpbmc7IHByaXZhdGVLZXk6IHN0cmluZyB9PignL3YxL2F1dGgvZ2VuZXJhdGUta2V5cycpO1xuICAgICAgXG4gICAgICBpZiAoIWtleXNSZXNwb25zZS5zdWNjZXNzIHx8ICFrZXlzUmVzcG9uc2UuZGF0YSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBnZW5lcmF0ZSBrZXlzJyk7XG4gICAgICB9XG5cbiAgICAgIGtleXMgPSBrZXlzUmVzcG9uc2UuZGF0YTtcbiAgICAgIC8vIFNhdmUgYXMgZGVmYXVsdCBmb3IgZnV0dXJlIHVzZVxuICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlRGVmYXVsdElkZW50aXR5KGtleXMpO1xuICAgIH1cblxuICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoYCAgUmVnaXN0ZXJpbmcgaW4gbmV0d29yayAke25ldHdvcmtJZH0uLi5gKSk7XG5cbiAgICBjb25zdCByZWdpc3RlclJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3Q8eyBtZW1iZXI6IGFueTsgdG9rZW5zOiB7IGp3dDogc3RyaW5nOyBleHBpcmVzQXQ6IG51bWJlcjsgcHVibGljVG9rZW46IHN0cmluZyB9IH0+KCcvdjEvYXV0aC9yZWdpc3RlcicsIHtcbiAgICAgIG5ldHdvcmtJZCxcbiAgICAgIHB1YmxpY1Rva2VuOiBrZXlzLnB1YmxpY1Rva2VuLFxuICAgICAgcHJpdmF0ZUtleToga2V5cy5wcml2YXRlS2V5LFxuICAgICAgcmVhc29uXG4gICAgfSk7XG5cbiAgICBpZiAocmVnaXN0ZXJSZXNwb25zZS5zdWNjZXNzICYmIHJlZ2lzdGVyUmVzcG9uc2UuZGF0YSkge1xuICAgICAgY29uc3QgbmV3Q3JlZHM6IE5ldHdvcmtDcmVkZW50aWFscyA9IHtcbiAgICAgICAgcHVibGljVG9rZW46IGtleXMucHVibGljVG9rZW4sXG4gICAgICAgIHByaXZhdGVLZXk6IGtleXMucHJpdmF0ZUtleSxcbiAgICAgICAgand0OiByZWdpc3RlclJlc3BvbnNlLmRhdGEudG9rZW5zLmp3dCxcbiAgICAgICAgZXhwaXJlc0F0OiByZWdpc3RlclJlc3BvbnNlLmRhdGEudG9rZW5zLmV4cGlyZXNBdFxuICAgICAgfTtcblxuICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMobmV0d29ya0lkLCBuZXdDcmVkcyk7XG4gICAgICBjbGllbnQuc2V0QXV0aFRva2VuKHJlZ2lzdGVyUmVzcG9uc2UuZGF0YS50b2tlbnMuand0KTtcblxuICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JlZW4oYCAg4pyTIEF1dG8tcmVnaXN0ZXJlZCBpbiBuZXR3b3JrOiAke25ldHdvcmtJZH1gKSk7XG4gICAgICByZXR1cm4geyBjbGllbnQsIGNyZWRlbnRpYWxzOiBuZXdDcmVkcywgaXNOZXdVc2VyOiB0cnVlIH07XG4gICAgfVxuXG4gICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gYXV0aGVudGljYXRlJyk7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXBpQ2xpZW50KCk6IFByb21pc2U8QXBpQ2xpZW50PiB7XG4gICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgQXBpQ2xpZW50KGNvbmZpZy5hcGlVcmwpO1xuICAgIGNsaWVudC5zZXRGb3JtYXQoY29uZmlnLmRlZmF1bHRGb3JtYXQpO1xuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZ2V0QXV0aGVudGljYXRlZENsaWVudChuZXR3b3JrSWQ6IHN0cmluZywgcmVhc29uPzogc3RyaW5nKTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkLCByZWFzb24pO1xuICAgIHJldHVybiByZXN1bHQuY2xpZW50O1xuICB9XG5cbiAgc3RhdGljIGFzeW5jIGdldEZpcnN0QXV0aGVudGljYXRlZENsaWVudCgpOiBQcm9taXNlPHsgY2xpZW50OiBBcGlDbGllbnQ7IG5ldHdvcmtJZDogc3RyaW5nIH0+IHtcbiAgICBjb25zdCBjcmVkZW50aWFsc0RpciA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcuYWdlbnRpY3Bvb2wnLCAnY3JlZGVudGlhbHMnKTtcbiAgICBcbiAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGNyZWRlbnRpYWxzRGlyKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc3RvcmVkIGNyZWRlbnRpYWxzIGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGNvbm5lY3QgPG5ldHdvcmtJZD5cIiBmaXJzdC4nKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlcyA9IGF3YWl0IGZzLnJlYWRkaXIoY3JlZGVudGlhbHNEaXIpO1xuICAgIGNvbnN0IGpzb25GaWxlcyA9IGZpbGVzLmZpbHRlcihmID0+IGYuZW5kc1dpdGgoJy5qc29uJykpO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIGpzb25GaWxlcykge1xuICAgICAgY29uc3QgbmV0d29ya0lkID0gZmlsZS5yZXBsYWNlKCcuanNvbicsICcnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQpO1xuICAgICAgICByZXR1cm4geyBjbGllbnQ6IHJlc3VsdC5jbGllbnQsIG5ldHdvcmtJZCB9O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRocm93IG5ldyBFcnJvcignTm8gdmFsaWQgY3JlZGVudGlhbHMgZm91bmQuIFJ1biBcImFnZW50aWNwb29sIGF1dGggY29ubmVjdCA8bmV0d29ya0lkPlwiIGZpcnN0LicpO1xuICB9XG59XG4iXX0=
|
package/dist/commands/auth.js
CHANGED
|
@@ -53,16 +53,27 @@ function registerAuthCommands(program) {
|
|
|
53
53
|
auth
|
|
54
54
|
.command('generate-keys')
|
|
55
55
|
.description('Generate a new public token and private key pair')
|
|
56
|
-
.
|
|
56
|
+
.option('--force', 'Force generation of new keys even if they exist')
|
|
57
|
+
.action(async (options) => {
|
|
57
58
|
try {
|
|
59
|
+
const existing = await config_1.configManager.getDefaultIdentity();
|
|
60
|
+
if (existing && !options.force) {
|
|
61
|
+
logger_1.logger.warn('Default identity already exists. Use --force to overwrite.');
|
|
62
|
+
console.log(chalk_1.default.cyan.bold('Public Token:'), chalk_1.default.white(existing.publicToken));
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
58
65
|
logger_1.logger.info('Requesting new key pair from server...');
|
|
59
66
|
const client = await AuthHelper_1.AuthHelper.getApiClient();
|
|
60
67
|
const response = await client.get('/v1/auth/generate-keys');
|
|
61
68
|
if (response.success && response.data) {
|
|
62
|
-
|
|
69
|
+
await config_1.configManager.saveDefaultIdentity({
|
|
70
|
+
publicToken: response.data.publicToken,
|
|
71
|
+
privateKey: response.data.privateKey
|
|
72
|
+
});
|
|
73
|
+
logger_1.logger.success('✓ Keys generated and saved as default identity!\n');
|
|
63
74
|
console.log(chalk_1.default.cyan.bold('Public Token:'), chalk_1.default.white(response.data.publicToken));
|
|
64
75
|
console.log(chalk_1.default.cyan.bold('Private Key: '), chalk_1.default.yellow(response.data.privateKey));
|
|
65
|
-
console.log(chalk_1.default.red('\n⚠️ CRITICAL: Save your private key now
|
|
76
|
+
console.log(chalk_1.default.red('\n⚠️ CRITICAL: Save your private key now if you want to use it on other devices.'));
|
|
66
77
|
}
|
|
67
78
|
else {
|
|
68
79
|
logger_1.logger.error('Error:', response.error?.message || 'Failed to generate keys');
|
|
@@ -72,6 +83,18 @@ function registerAuthCommands(program) {
|
|
|
72
83
|
logger_1.logger.error('Error:', error instanceof Error ? error.message : 'Unknown error');
|
|
73
84
|
}
|
|
74
85
|
});
|
|
86
|
+
auth
|
|
87
|
+
.command('identity')
|
|
88
|
+
.description('Show your current default identity (public token)')
|
|
89
|
+
.action(async () => {
|
|
90
|
+
const identity = await config_1.configManager.getDefaultIdentity();
|
|
91
|
+
if (identity) {
|
|
92
|
+
console.log(chalk_1.default.cyan.bold('Public Token:'), chalk_1.default.white(identity.publicToken));
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
logger_1.logger.warn('No default identity found. Run "agenticpool auth generate-keys" first.');
|
|
96
|
+
}
|
|
97
|
+
});
|
|
75
98
|
auth
|
|
76
99
|
.command('register')
|
|
77
100
|
.description('Register in a network')
|
|
@@ -180,4 +203,4 @@ function registerAuthCommands(program) {
|
|
|
180
203
|
}
|
|
181
204
|
});
|
|
182
205
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0Esb0RBbUxDO0FBeExELHNDQUEwQztBQUMxQyxtREFBZ0Q7QUFDaEQsNENBQXlDO0FBQ3pDLGtEQUEwQjtBQUUxQixTQUFnQixvQkFBb0IsQ0FBQyxPQUFnQjtJQUNuRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTVFLElBQUk7U0FDRCxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2xCLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQztTQUM3RCxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztTQUNyQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsaUNBQWlDLENBQUM7U0FDcEUsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHFEQUFxRCxDQUFDO1NBQ3BGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ25DLElBQUksQ0FBQztZQUNILGVBQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLFNBQVMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFL0UsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3JCLGVBQU0sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsd0NBQXdDO1lBQ3hDLE1BQU0sc0JBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBRXBFLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUN6RSxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxDQUFDO1lBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUN2RCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUNuRSxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixlQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNyRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFTCxJQUFJO1NBQ0QsT0FBTyxDQUFDLFlBQVksQ0FBQztTQUNyQixXQUFXLENBQUMsMkJBQTJCLENBQUM7U0FDeEMsUUFBUSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7U0FDckMsTUFBTSxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsRUFBRTtRQUMxQixNQUFNLHNCQUFhLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsZUFBTSxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM5RCxDQUFDLENBQUMsQ0FBQztJQUVMLElBQUk7U0FDRCxPQUFPLENBQUMsZUFBZSxDQUFDO1NBQ3hCLFdBQVcsQ0FBQyxrREFBa0QsQ0FBQztTQUMvRCxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDakIsSUFBSSxDQUFDO1lBQ0gsZUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1lBQ3RELE1BQU0sTUFBTSxHQUFHLE1BQU0sdUJBQVUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxHQUFHLENBQThDLHdCQUF3QixDQUFDLENBQUM7WUFFekcsSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEMsZUFBTSxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDO2dCQUNuRCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGVBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLGVBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN0RixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxHQUFHLENBQUMsK0VBQStFLENBQUMsQ0FBQyxDQUFDO1lBQzFHLENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSx5QkFBeUIsQ0FBQyxDQUFDO1lBQy9FLENBQUM7UUFDSCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUVMLElBQUk7U0FDRCxPQUFPLENBQUMsVUFBVSxDQUFDO1NBQ25CLFdBQVcsQ0FBQyx1QkFBdUIsQ0FBQztTQUNwQyxjQUFjLENBQUMsb0JBQW9CLEVBQUUsWUFBWSxDQUFDO1NBQ2xELGNBQWMsQ0FBQyw0QkFBNEIsRUFBRSxtQkFBbUIsQ0FBQztTQUNqRSxjQUFjLENBQUMseUJBQXlCLEVBQUUsa0JBQWtCLENBQUM7U0FDN0QsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHdCQUF3QixDQUFDO1NBQ3ZELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsZUFBTSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUM7WUFDcEQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBVSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9DLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdEQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPO2dCQUMxQixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtnQkFDOUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2FBQ3ZCLENBQUMsQ0FBQztZQUVILElBQUksUUFBUSxDQUFDLE9BQU8sSUFBSSxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFvQyxDQUFDO2dCQUMzRCxNQUFNLHNCQUFhLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQ25ELFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztvQkFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO29CQUM5QixHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHO29CQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTO2lCQUNqQyxDQUFDLENBQUM7Z0JBQ0gsTUFBTSxzQkFBYSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUUxRSxlQUFNLENBQUMsT0FBTyxDQUFDLDRCQUE0QixDQUFDLENBQUM7Z0JBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7WUFDeEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLGVBQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxJQUFJLHFCQUFxQixDQUFDLENBQUM7WUFDM0UsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsZUFBTSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbkYsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0lBRUwsSUFBSTtTQUNELE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsV0FBVyxDQUFDLG9CQUFvQixDQUFDO1NBQ2pDLGNBQWMsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLENBQUM7U0FDbEQsY0FBYyxDQUFDLDRCQUE0QixFQUFFLG1CQUFtQixDQUFDO1NBQ2pFLGNBQWMsQ0FBQyx5QkFBeUIsRUFBRSxrQkFBa0IsQ0FBQztTQUM3RCxNQUFNLENBQUMscUJBQXFCLEVBQUUsa0JBQWtCLENBQUM7U0FDakQsTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUM7WUFDSCxlQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixPQUFPLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztZQUNuRCxNQUFNLE1BQU0sR0FBRyxNQUFNLHVCQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0MsTUFBTSxRQUFRLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNuRCxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU87Z0JBQzFCLFdBQVcsRUFBRSxPQUFPLENBQUMsV0FBVztnQkFDaEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO2dCQUM5QixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07YUFDdkIsQ0FBQyxDQUFDO1lBRUgsSUFBSSxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDdEMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQVcsQ0FBQztnQkFDcEMsTUFBTSxzQkFBYSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO29CQUNuRCxXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7b0JBQ2hDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtvQkFDOUIsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHO29CQUNmLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUztpQkFDNUIsQ0FBQyxDQUFDO2dCQUNILE1BQU0sc0JBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFFMUUsZUFBTSxDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO1lBQzFELENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsS0FBSyxFQUFFLE9BQU8sSUFBSSxjQUFjLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0gsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixlQUFNLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNuRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7SUFFTCxJQUFJO1NBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNqQixXQUFXLENBQUMsdUJBQXVCLENBQUM7U0FDcEMsY0FBYyxDQUFDLG9CQUFvQixFQUFFLFlBQVksQ0FBQztTQUNsRCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sc0JBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEQsZUFBTSxDQUFDLE9BQU8sQ0FBQyw4QkFBOEIsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQyxDQUFDLENBQUM7SUFFTCxJQUFJO1NBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNqQixXQUFXLENBQUMsNEJBQTRCLENBQUM7U0FDekMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLHFCQUFxQixDQUFDO1NBQ25ELE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsTUFBTSxNQUFNLEdBQUcsTUFBTSxzQkFBYSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3JELE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN6RCxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsc0JBQWEsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBRXRFLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sS0FBSyxHQUFHLE1BQU0sc0JBQWEsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFLLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDO29CQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7b0JBQ2hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztnQkFDL0UsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixlQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQXBpQ2xpZW50IH0gZnJvbSAnLi4vYXBpJztcbmltcG9ydCB7IGNvbmZpZ01hbmFnZXIgfSBmcm9tICcuLi9jb25maWcnO1xuaW1wb3J0IHsgQXV0aEhlbHBlciB9IGZyb20gJy4uL2F1dGgvQXV0aEhlbHBlcic7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi91dGlscy9sb2dnZXInO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcblxuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQXV0aENvbW1hbmRzKHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgY29uc3QgYXV0aCA9IHByb2dyYW0uY29tbWFuZCgnYXV0aCcpLmRlc2NyaXB0aW9uKCdBdXRoZW50aWNhdGlvbiBjb21tYW5kcycpO1xuXG4gIGF1dGhcbiAgICAuY29tbWFuZCgnY29ubmVjdCcpXG4gICAgLmRlc2NyaXB0aW9uKCdDb25uZWN0IHRvIGEgbmV0d29yayAoYXV0by1yZWdpc3RlciBpZiBuZWVkZWQpJylcbiAgICAuYXJndW1lbnQoJzxuZXR3b3JrSWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5vcHRpb24oJy1rLCAtLXByaXZhdGUta2V5IDxrZXk+JywgJ0V4aXN0aW5nIHByaXZhdGUga2V5IChvcHRpb25hbCknKVxuICAgIC5vcHRpb24oJy1yLCAtLXJlYXNvbiA8dGV4dD4nLCAnUmVhc29uIGZvciBqb2luaW5nIHRoaXMgbmV0d29yayAoZm9yIGxvY2FsIHJlY29yZHMpJylcbiAgICAuYWN0aW9uKGFzeW5jIChuZXR3b3JrSWQsIG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBDb25uZWN0aW5nIHRvIG5ldHdvcms6ICR7bmV0d29ya0lkfS4uLmApO1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBBdXRoSGVscGVyLmVuc3VyZUF1dGhlbnRpY2F0ZWQobmV0d29ya0lkLCBvcHRpb25zLnJlYXNvbik7XG4gICAgICAgIFxuICAgICAgICBpZiAocmVzdWx0LmlzTmV3VXNlcikge1xuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgUmVnaXN0ZXJlZCBhbmQgY29ubmVjdGVkIScpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgQ29ubmVjdGVkIScpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmVjb3JkIHRoZSBuZXR3b3JrIGFuZCByZWFzb24gbG9jYWxseVxuICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLmFkZFJlZ2lzdGVyZWROZXR3b3JrKG5ldHdvcmtJZCwgb3B0aW9ucy5yZWFzb24pO1xuICAgICAgICBcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnTmV0d29yazonKSwgbmV0d29ya0lkKTtcbiAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnUHVibGljIFRva2VuOicpLCByZXN1bHQuY3JlZGVudGlhbHMucHVibGljVG9rZW4pO1xuICAgICAgICBpZiAob3B0aW9ucy5yZWFzb24pIHtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdSZWFzb246JyksIG9wdGlvbnMucmVhc29uKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgaWYgKHJlc3VsdC5jcmVkZW50aWFscy5leHBpcmVzQXQpIHtcbiAgICAgICAgICBjb25zdCBleHBpcmVzID0gbmV3IERhdGUocmVzdWx0LmNyZWRlbnRpYWxzLmV4cGlyZXNBdCk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnVG9rZW4gZXhwaXJlczonKSwgZXhwaXJlcy50b0lTT1N0cmluZygpKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdcXG5FcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdkaXNjb25uZWN0JylcbiAgICAuZGVzY3JpcHRpb24oJ0Rpc2Nvbm5lY3QgZnJvbSBhIG5ldHdvcmsnKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLmFjdGlvbihhc3luYyAobmV0d29ya0lkKSA9PiB7XG4gICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLmNsZWFyQ3JlZGVudGlhbHMobmV0d29ya0lkKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDinJMgRGlzY29ubmVjdGVkIGZyb20gbmV0d29yazogJHtuZXR3b3JrSWR9YCk7XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdnZW5lcmF0ZS1rZXlzJylcbiAgICAuZGVzY3JpcHRpb24oJ0dlbmVyYXRlIGEgbmV3IHB1YmxpYyB0b2tlbiBhbmQgcHJpdmF0ZSBrZXkgcGFpcicpXG4gICAgLmFjdGlvbihhc3luYyAoKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dnZXIuaW5mbygnUmVxdWVzdGluZyBuZXcga2V5IHBhaXIgZnJvbSBzZXJ2ZXIuLi4nKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PHsgcHVibGljVG9rZW46IHN0cmluZzsgcHJpdmF0ZUtleTogc3RyaW5nIH0+KCcvdjEvYXV0aC9nZW5lcmF0ZS1rZXlzJyk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgS2V5cyBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5IVxcbicpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4uYm9sZCgnUHVibGljIFRva2VuOicpLCBjaGFsay53aGl0ZShyZXNwb25zZS5kYXRhLnB1YmxpY1Rva2VuKSk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKCdQcml2YXRlIEtleTogJyksIGNoYWxrLnllbGxvdyhyZXNwb25zZS5kYXRhLnByaXZhdGVLZXkpKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5yZWQoJ1xcbuKaoO+4jyAgQ1JJVElDQUw6IFNhdmUgeW91ciBwcml2YXRlIGtleSBub3cuIEl0IGlzIHlvdXIgT05MWSBwcm9vZiBvZiBpZGVudGl0eS4nKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdlbmVyYXRlIGtleXMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdyZWdpc3RlcicpXG4gICAgLmRlc2NyaXB0aW9uKCdSZWdpc3RlciBpbiBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLXAsIC0tcHVibGljLXRva2VuIDx0b2tlbj4nLCAnWW91ciBwdWJsaWMgdG9rZW4nKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLWssIC0tcHJpdmF0ZS1rZXkgPGtleT4nLCAnWW91ciBwcml2YXRlIGtleScpXG4gICAgLm9wdGlvbignLXIsIC0tcmVhc29uIDx0ZXh0PicsICdSZWFzb24gZm9yIHJlZ2lzdGVyaW5nJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBsb2dnZXIuaW5mbyhgUmVnaXN0ZXJpbmcgaW4gJHtvcHRpb25zLm5ldHdvcmt9Li4uYCk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy92MS9hdXRoL3JlZ2lzdGVyJywge1xuICAgICAgICAgIG5ldHdvcmtJZDogb3B0aW9ucy5uZXR3b3JrLFxuICAgICAgICAgIHB1YmxpY1Rva2VuOiBvcHRpb25zLnB1YmxpY1Rva2VuLFxuICAgICAgICAgIHByaXZhdGVLZXk6IG9wdGlvbnMucHJpdmF0ZUtleSxcbiAgICAgICAgICByZWFzb246IG9wdGlvbnMucmVhc29uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCBkYXRhID0gcmVzcG9uc2UuZGF0YSBhcyB7IG1lbWJlcjogYW55OyB0b2tlbnM6IGFueSB9O1xuICAgICAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuc2F2ZUNyZWRlbnRpYWxzKG9wdGlvbnMubmV0d29yaywge1xuICAgICAgICAgICAgcHVibGljVG9rZW46IG9wdGlvbnMucHVibGljVG9rZW4sXG4gICAgICAgICAgICBwcml2YXRlS2V5OiBvcHRpb25zLnByaXZhdGVLZXksXG4gICAgICAgICAgICBqd3Q6IGRhdGEudG9rZW5zLmp3dCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogZGF0YS50b2tlbnMuZXhwaXJlc0F0XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5hZGRSZWdpc3RlcmVkTmV0d29yayhvcHRpb25zLm5ldHdvcmssIG9wdGlvbnMucmVhc29uKTtcblxuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgUmVnaXN0ZXJlZCBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnQ3JlZGVudGlhbHMgc2F2ZWQgbG9jYWxseS4nKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnUmVnaXN0cmF0aW9uIGZhaWxlZCcpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBhdXRoXG4gICAgLmNvbW1hbmQoJ2xvZ2luJylcbiAgICAuZGVzY3JpcHRpb24oJ0xvZ2luIHRvIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctcCwgLS1wdWJsaWMtdG9rZW4gPHRva2VuPicsICdZb3VyIHB1YmxpYyB0b2tlbicpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctaywgLS1wcml2YXRlLWtleSA8a2V5PicsICdZb3VyIHByaXZhdGUga2V5JylcbiAgICAub3B0aW9uKCctciwgLS1yZWFzb24gPHRleHQ+JywgJ1JlYXNvbiBmb3IgbG9naW4nKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBMb2dnaW5nIGluIHRvICR7b3B0aW9ucy5uZXR3b3JrfS4uLmApO1xuICAgICAgICBjb25zdCBjbGllbnQgPSBhd2FpdCBBdXRoSGVscGVyLmdldEFwaUNsaWVudCgpO1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5wb3N0KCcvdjEvYXV0aC9sb2dpbicsIHtcbiAgICAgICAgICBuZXR3b3JrSWQ6IG9wdGlvbnMubmV0d29yayxcbiAgICAgICAgICBwdWJsaWNUb2tlbjogb3B0aW9ucy5wdWJsaWNUb2tlbixcbiAgICAgICAgICBwcml2YXRlS2V5OiBvcHRpb25zLnByaXZhdGVLZXksXG4gICAgICAgICAgcmVhc29uOiBvcHRpb25zLnJlYXNvblxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzcG9uc2Uuc3VjY2VzcyAmJiByZXNwb25zZS5kYXRhKSB7XG4gICAgICAgICAgY29uc3QgdG9rZW5zID0gcmVzcG9uc2UuZGF0YSBhcyBhbnk7XG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMob3B0aW9ucy5uZXR3b3JrLCB7XG4gICAgICAgICAgICBwdWJsaWNUb2tlbjogb3B0aW9ucy5wdWJsaWNUb2tlbixcbiAgICAgICAgICAgIHByaXZhdGVLZXk6IG9wdGlvbnMucHJpdmF0ZUtleSxcbiAgICAgICAgICAgIGp3dDogdG9rZW5zLmp3dCxcbiAgICAgICAgICAgIGV4cGlyZXNBdDogdG9rZW5zLmV4cGlyZXNBdFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuYWRkUmVnaXN0ZXJlZE5ldHdvcmsob3B0aW9ucy5uZXR3b3JrLCBvcHRpb25zLnJlYXNvbik7XG5cbiAgICAgICAgICBsb2dnZXIuc3VjY2Vzcygn4pyTIExvZ2dlZCBpbiBzdWNjZXNzZnVsbHkhJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuZ3JheSgnTmV3IEpXVCBzZXNzaW9uIGVzdGFibGlzaGVkLicpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdMb2dpbiBmYWlsZWQnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdsb2dvdXQnKVxuICAgIC5kZXNjcmlwdGlvbignTG9nb3V0IGZyb20gYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLmNsZWFyQ3JlZGVudGlhbHMob3B0aW9ucy5uZXR3b3JrKTtcbiAgICAgIGxvZ2dlci5zdWNjZXNzKGDinJMgTG9nZ2VkIG91dCBmcm9tIG5ldHdvcms6ICR7b3B0aW9ucy5uZXR3b3JrfWApO1xuICAgIH0pO1xuXG4gIGF1dGhcbiAgICAuY29tbWFuZCgnc3RhdHVzJylcbiAgICAuZGVzY3JpcHRpb24oJ1Nob3cgYXV0aGVudGljYXRpb24gc3RhdHVzJylcbiAgICAub3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCB0byBjaGVjaycpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgY29uZmlnID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXRHbG9iYWxDb25maWcoKTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ0FQSSBVUkw6JyksIGNvbmZpZy5hcGlVcmwpO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignRm9ybWF0OicpLCBjb25maWcuZGVmYXVsdEZvcm1hdCk7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdDb25maWcgZGlyOicpLCBjb25maWdNYW5hZ2VyLmdldENvbmZpZ1BhdGgoKSk7XG4gICAgICBcbiAgICAgIGlmIChvcHRpb25zLm5ldHdvcmspIHtcbiAgICAgICAgY29uc3QgY3JlZHMgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldENyZWRlbnRpYWxzKG9wdGlvbnMubmV0d29yayk7XG4gICAgICAgIGlmIChjcmVkcykge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ1xcbk5ldHdvcms6JyksIG9wdGlvbnMubmV0d29yayk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignUHVibGljIFRva2VuOicpLCBjcmVkcy5wdWJsaWNUb2tlbik7XG4gICAgICAgICAgaWYgKGNyZWRzLmV4cGlyZXNBdCkge1xuICAgICAgICAgICAgY29uc3QgdmFsaWQgPSBEYXRlLm5vdygpIDwgY3JlZHMuZXhwaXJlc0F0O1xuICAgICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignVG9rZW4gdmFsaWQ6JyksIHZhbGlkID8gY2hhbGsuZ3JlZW4oJ1llcycpIDogY2hhbGsucmVkKCdObyAoZXhwaXJlZCknKSk7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdFeHBpcmVzOicpLCBuZXcgRGF0ZShjcmVkcy5leHBpcmVzQXQpLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIud2FybihgXFxuTm90IGNvbm5lY3RlZCB0byBuZXR3b3JrOiAke29wdGlvbnMubmV0d29ya31gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
206
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBT0Esb0RBNE1DO0FBak5ELHNDQUEwQztBQUMxQyxtREFBZ0Q7QUFDaEQsNENBQXlDO0FBQ3pDLGtEQUEwQjtBQUUxQixTQUFnQixvQkFBb0IsQ0FBQyxPQUFnQjtJQUNuRCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBRTVFLElBQUk7U0FDRCxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQ2xCLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQztTQUM3RCxRQUFRLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQztTQUNyQyxNQUFNLENBQUMseUJBQXlCLEVBQUUsaUNBQWlDLENBQUM7U0FDcEUsTUFBTSxDQUFDLHFCQUFxQixFQUFFLHFEQUFxRCxDQUFDO1NBQ3BGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ25DLElBQUksQ0FBQztZQUNILGVBQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLFNBQVMsS0FBSyxDQUFDLENBQUM7WUFDdEQsTUFBTSxNQUFNLEdBQUcsTUFBTSx1QkFBVSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFL0UsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ3JCLGVBQU0sQ0FBQyxPQUFPLENBQUMsNkJBQTZCLENBQUMsQ0FBQztZQUNoRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sZUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNqQyxDQUFDO1lBRUQsd0NBQXdDO1lBQ3hDLE1BQU0sc0JBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLE1BQU0s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bnRlbnQiOlsiaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICcuLi9hcGknO1xuaW1wb3J0IHsgY29uZmlnTWFuYWdlciB9IGZyb20gJy4uL2NvbmZpZyc7XG5pbXBvcnQgeyBBdXRoSGVscGVyIH0gZnJvbSAnLi4vYXV0aC9BdXRoSGVscGVyJztcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gJy4uL3V0aWxzL2xvZ2dlcic7XG5pbXBvcnQgY2hhbGsgZnJvbSAnY2hhbGsnO1xuXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJBdXRoQ29tbWFuZHMocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBjb25zdCBhdXRoID0gcHJvZ3JhbS5jb21tYW5kKCdhdXRoJykuZGVzY3JpcHRpb24oJ0F1dGhlbnRpY2F0aW9uIGNvbW1hbmRzJyk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdjb25uZWN0JylcbiAgICAuZGVzY3JpcHRpb24oJ0Nvbm5lY3QgdG8gYSBuZXR3b3JrIChhdXRvLXJlZ2lzdGVyIGlmIG5lZWRlZCknKVxuICAgIC5hcmd1bWVudCgnPG5ldHdvcmtJZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLm9wdGlvbignLWssIC0tcHJpdmF0ZS1rZXkgPGtleT4nLCAnRXhpc3RpbmcgcHJpdmF0ZSBrZXkgKG9wdGlvbmFsKScpXG4gICAgLm9wdGlvbignLXIsIC0tcmVhc29uIDx0ZXh0PicsICdSZWFzb24gZm9yIGpvaW5pbmcgdGhpcyBuZXR3b3JrIChmb3IgbG9jYWwgcmVjb3JkcyknKVxuICAgIC5hY3Rpb24oYXN5bmMgKG5ldHdvcmtJZCwgb3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9nZ2VyLmluZm8oYENvbm5lY3RpbmcgdG8gbmV0d29yazogJHtuZXR3b3JrSWR9Li4uYCk7XG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IEF1dGhIZWxwZXIuZW5zdXJlQXV0aGVudGljYXRlZChuZXR3b3JrSWQsIG9wdGlvbnMucmVhc29uKTtcbiAgICAgICAgXG4gICAgICAgIGlmIChyZXN1bHQuaXNOZXdVc2VyKSB7XG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBSZWdpc3RlcmVkIGFuZCBjb25uZWN0ZWQhJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBDb25uZWN0ZWQhJyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZWNvcmQgdGhlIG5ldHdvcmsgYW5kIHJlYXNvbiBsb2NhbGx5XG4gICAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuYWRkUmVnaXN0ZXJlZE5ldHdvcmsobmV0d29ya0lkLCBvcHRpb25zLnJlYXNvbik7XG4gICAgICAgIFxuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdOZXR3b3JrOicpLCBuZXR3b3JrSWQpO1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdQdWJsaWMgVG9rZW46JyksIHJlc3VsdC5jcmVkZW50aWFscy5wdWJsaWNUb2tlbik7XG4gICAgICAgIGlmIChvcHRpb25zLnJlYXNvbikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmdyYXkoJ1JlYXNvbjonKSwgb3B0aW9ucy5yZWFzb24pO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICBpZiAocmVzdWx0LmNyZWRlbnRpYWxzLmV4cGlyZXNBdCkge1xuICAgICAgICAgIGNvbnN0IGV4cGlyZXMgPSBuZXcgRGF0ZShyZXN1bHQuY3JlZGVudGlhbHMuZXhwaXJlc0F0KTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdUb2tlbiBleHBpcmVzOicpLCBleHBpcmVzLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ1xcbkVycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBhdXRoXG4gICAgLmNvbW1hbmQoJ2Rpc2Nvbm5lY3QnKVxuICAgIC5kZXNjcmlwdGlvbignRGlzY29ubmVjdCBmcm9tIGEgbmV0d29yaycpXG4gICAgLmFyZ3VtZW50KCc8bmV0d29ya0lkPicsICdOZXR3b3JrIElEJylcbiAgICAuYWN0aW9uKGFzeW5jIChuZXR3b3JrSWQpID0+IHtcbiAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuY2xlYXJDcmVkZW50aWFscyhuZXR3b3JrSWQpO1xuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYOKckyBEaXNjb25uZWN0ZWQgZnJvbSBuZXR3b3JrOiAke25ldHdvcmtJZH1gKTtcbiAgICB9KTtcblxuICBhdXRoXG4gICAgLmNvbW1hbmQoJ2dlbmVyYXRlLWtleXMnKVxuICAgIC5kZXNjcmlwdGlvbignR2VuZXJhdGUgYSBuZXcgcHVibGljIHRva2VuIGFuZCBwcml2YXRlIGtleSBwYWlyJylcbiAgICAub3B0aW9uKCctLWZvcmNlJywgJ0ZvcmNlIGdlbmVyYXRpb24gb2YgbmV3IGtleXMgZXZlbiBpZiB0aGV5IGV4aXN0JylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBleGlzdGluZyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0RGVmYXVsdElkZW50aXR5KCk7XG4gICAgICAgIGlmIChleGlzdGluZyAmJiAhb3B0aW9ucy5mb3JjZSkge1xuICAgICAgICAgIGxvZ2dlci53YXJuKCdEZWZhdWx0IGlkZW50aXR5IGFscmVhZHkgZXhpc3RzLiBVc2UgLS1mb3JjZSB0byBvdmVyd3JpdGUuJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKCdQdWJsaWMgVG9rZW46JyksIGNoYWxrLndoaXRlKGV4aXN0aW5nLnB1YmxpY1Rva2VuKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9nZ2VyLmluZm8oJ1JlcXVlc3RpbmcgbmV3IGtleSBwYWlyIGZyb20gc2VydmVyLi4uJyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDx7IHB1YmxpY1Rva2VuOiBzdHJpbmc7IHByaXZhdGVLZXk6IHN0cmluZyB9PignL3YxL2F1dGgvZ2VuZXJhdGUta2V5cycpO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVEZWZhdWx0SWRlbnRpdHkoe1xuICAgICAgICAgICAgcHVibGljVG9rZW46IHJlc3BvbnNlLmRhdGEucHVibGljVG9rZW4sXG4gICAgICAgICAgICBwcml2YXRlS2V5OiByZXNwb25zZS5kYXRhLnByaXZhdGVLZXlcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgS2V5cyBnZW5lcmF0ZWQgYW5kIHNhdmVkIGFzIGRlZmF1bHQgaWRlbnRpdHkhXFxuJyk7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbi5ib2xkKCdQdWJsaWMgVG9rZW46JyksIGNoYWxrLndoaXRlKHJlc3BvbnNlLmRhdGEucHVibGljVG9rZW4pKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoJ1ByaXZhdGUgS2V5OiAnKSwgY2hhbGsueWVsbG93KHJlc3BvbnNlLmRhdGEucHJpdmF0ZUtleSkpO1xuICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLnJlZCgnXFxu4pqg77iPICBDUklUSUNBTDogU2F2ZSB5b3VyIHByaXZhdGUga2V5IG5vdyBpZiB5b3Ugd2FudCB0byB1c2UgaXQgb24gb3RoZXIgZGV2aWNlcy4nKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCByZXNwb25zZS5lcnJvcj8ubWVzc2FnZSB8fCAnRmFpbGVkIHRvIGdlbmVyYXRlIGtleXMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKCdFcnJvcjonLCBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdpZGVudGl0eScpXG4gICAgLmRlc2NyaXB0aW9uKCdTaG93IHlvdXIgY3VycmVudCBkZWZhdWx0IGlkZW50aXR5IChwdWJsaWMgdG9rZW4pJylcbiAgICAuYWN0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IGlkZW50aXR5ID0gYXdhaXQgY29uZmlnTWFuYWdlci5nZXREZWZhdWx0SWRlbnRpdHkoKTtcbiAgICAgIGlmIChpZGVudGl0eSkge1xuICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuLmJvbGQoJ1B1YmxpYyBUb2tlbjonKSwgY2hhbGsud2hpdGUoaWRlbnRpdHkucHVibGljVG9rZW4pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZ2dlci53YXJuKCdObyBkZWZhdWx0IGlkZW50aXR5IGZvdW5kLiBSdW4gXCJhZ2VudGljcG9vbCBhdXRoIGdlbmVyYXRlLWtleXNcIiBmaXJzdC4nKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBhdXRoXG4gICAgLmNvbW1hbmQoJ3JlZ2lzdGVyJylcbiAgICAuZGVzY3JpcHRpb24oJ1JlZ2lzdGVyIGluIGEgbmV0d29yaycpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctbiwgLS1uZXR3b3JrIDxpZD4nLCAnTmV0d29yayBJRCcpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctcCwgLS1wdWJsaWMtdG9rZW4gPHRva2VuPicsICdZb3VyIHB1YmxpYyB0b2tlbicpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctaywgLS1wcml2YXRlLWtleSA8a2V5PicsICdZb3VyIHByaXZhdGUga2V5JylcbiAgICAub3B0aW9uKCctciwgLS1yZWFzb24gPHRleHQ+JywgJ1JlYXNvbiBmb3IgcmVnaXN0ZXJpbmcnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBSZWdpc3RlcmluZyBpbiAke29wdGlvbnMubmV0d29ya30uLi5gKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgQXV0aEhlbHBlci5nZXRBcGlDbGllbnQoKTtcbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQucG9zdCgnL3YxL2F1dGgvcmVnaXN0ZXInLCB7XG4gICAgICAgICAgbmV0d29ya0lkOiBvcHRpb25zLm5ldHdvcmssXG4gICAgICAgICAgcHVibGljVG9rZW46IG9wdGlvbnMucHVibGljVG9rZW4sXG4gICAgICAgICAgcHJpdmF0ZUtleTogb3B0aW9ucy5wcml2YXRlS2V5LFxuICAgICAgICAgIHJlYXNvbjogb3B0aW9ucy5yZWFzb25cbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MgJiYgcmVzcG9uc2UuZGF0YSkge1xuICAgICAgICAgIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhIGFzIHsgbWVtYmVyOiBhbnk7IHRva2VuczogYW55IH07XG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5zYXZlQ3JlZGVudGlhbHMob3B0aW9ucy5uZXR3b3JrLCB7XG4gICAgICAgICAgICBwdWJsaWNUb2tlbjogb3B0aW9ucy5wdWJsaWNUb2tlbixcbiAgICAgICAgICAgIHByaXZhdGVLZXk6IG9wdGlvbnMucHJpdmF0ZUtleSxcbiAgICAgICAgICAgIGp3dDogZGF0YS50b2tlbnMuand0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiBkYXRhLnRva2Vucy5leHBpcmVzQXRcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLmFkZFJlZ2lzdGVyZWROZXR3b3JrKG9wdGlvbnMubmV0d29yaywgb3B0aW9ucy5yZWFzb24pO1xuXG4gICAgICAgICAgbG9nZ2VyLnN1Y2Nlc3MoJ+KckyBSZWdpc3RlcmVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdDcmVkZW50aWFscyBzYXZlZCBsb2NhbGx5LicpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIHJlc3BvbnNlLmVycm9yPy5tZXNzYWdlIHx8ICdSZWdpc3RyYXRpb24gZmFpbGVkJyk7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgZXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGVycm9yLm1lc3NhZ2UgOiAnVW5rbm93biBlcnJvcicpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIGF1dGhcbiAgICAuY29tbWFuZCgnbG9naW4nKVxuICAgIC5kZXNjcmlwdGlvbignTG9naW4gdG8gYSBuZXR3b3JrJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1wLCAtLXB1YmxpYy10b2tlbiA8dG9rZW4+JywgJ1lvdXIgcHVibGljIHRva2VuJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1rLCAtLXByaXZhdGUta2V5IDxrZXk+JywgJ1lvdXIgcHJpdmF0ZSBrZXknKVxuICAgIC5vcHRpb24oJy1yLCAtLXJlYXNvbiA8dGV4dD4nLCAnUmVhc29uIGZvciBsb2dpbicpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9nZ2VyLmluZm8oYExvZ2dpbmcgaW4gdG8gJHtvcHRpb25zLm5ldHdvcmt9Li4uYCk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IEF1dGhIZWxwZXIuZ2V0QXBpQ2xpZW50KCk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnBvc3QoJy92MS9hdXRoL2xvZ2luJywge1xuICAgICAgICAgIG5ldHdvcmtJZDogb3B0aW9ucy5uZXR3b3JrLFxuICAgICAgICAgIHB1YmxpY1Rva2VuOiBvcHRpb25zLnB1YmxpY1Rva2VuLFxuICAgICAgICAgIHByaXZhdGVLZXk6IG9wdGlvbnMucHJpdmF0ZUtleSxcbiAgICAgICAgICByZWFzb246IG9wdGlvbnMucmVhc29uXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdWNjZXNzICYmIHJlc3BvbnNlLmRhdGEpIHtcbiAgICAgICAgICBjb25zdCB0b2tlbnMgPSByZXNwb25zZS5kYXRhIGFzIGFueTtcbiAgICAgICAgICBhd2FpdCBjb25maWdNYW5hZ2VyLnNhdmVDcmVkZW50aWFscyhvcHRpb25zLm5ldHdvcmssIHtcbiAgICAgICAgICAgIHB1YmxpY1Rva2VuOiBvcHRpb25zLnB1YmxpY1Rva2VuLFxuICAgICAgICAgICAgcHJpdmF0ZUtleTogb3B0aW9ucy5wcml2YXRlS2V5LFxuICAgICAgICAgICAgand0OiB0b2tlbnMuand0LFxuICAgICAgICAgICAgZXhwaXJlc0F0OiB0b2tlbnMuZXhwaXJlc0F0XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYXdhaXQgY29uZmlnTWFuYWdlci5hZGRSZWdpc3RlcmVkTmV0d29yayhvcHRpb25zLm5ldHdvcmssIG9wdGlvbnMucmVhc29uKTtcblxuICAgICAgICAgIGxvZ2dlci5zdWNjZXNzKCfinJMgTG9nZ2VkIGluIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5ncmF5KCdOZXcgSldUIHNlc3Npb24gZXN0YWJsaXNoZWQuJykpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci5lcnJvcignRXJyb3I6JywgcmVzcG9uc2UuZXJyb3I/Lm1lc3NhZ2UgfHwgJ0xvZ2luIGZhaWxlZCcpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBsb2dnZXIuZXJyb3IoJ0Vycm9yOicsIGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICBhdXRoXG4gICAgLmNvbW1hbmQoJ2xvZ291dCcpXG4gICAgLmRlc2NyaXB0aW9uKCdMb2dvdXQgZnJvbSBhIG5ldHdvcmsnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLW4sIC0tbmV0d29yayA8aWQ+JywgJ05ldHdvcmsgSUQnKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGF3YWl0IGNvbmZpZ01hbmFnZXIuY2xlYXJDcmVkZW50aWFscyhvcHRpb25zLm5ldHdvcmspO1xuICAgICAgbG9nZ2VyLnN1Y2Nlc3MoYOKckyBMb2dnZWQgb3V0IGZyb20gbmV0d29yazogJHtvcHRpb25zLm5ldHdvcmt9YCk7XG4gICAgfSk7XG5cbiAgYXV0aFxuICAgIC5jb21tYW5kKCdzdGF0dXMnKVxuICAgIC5kZXNjcmlwdGlvbignU2hvdyBhdXRoZW50aWNhdGlvbiBzdGF0dXMnKVxuICAgIC5vcHRpb24oJy1uLCAtLW5ldHdvcmsgPGlkPicsICdOZXR3b3JrIElEIHRvIGNoZWNrJylcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBjb25maWcgPSBhd2FpdCBjb25maWdNYW5hZ2VyLmdldEdsb2JhbENvbmZpZygpO1xuICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignQVBJIFVSTDonKSwgY29uZmlnLmFwaVVybCk7XG4gICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdGb3JtYXQ6JyksIGNvbmZpZy5kZWZhdWx0Rm9ybWF0KTtcbiAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ0NvbmZpZyBkaXI6JyksIGNvbmZpZ01hbmFnZXIuZ2V0Q29uZmlnUGF0aCgpKTtcbiAgICAgIFxuICAgICAgaWYgKG9wdGlvbnMubmV0d29yaykge1xuICAgICAgICBjb25zdCBjcmVkcyA9IGF3YWl0IGNvbmZpZ01hbmFnZXIuZ2V0Q3JlZGVudGlhbHMob3B0aW9ucy5uZXR3b3JrKTtcbiAgICAgICAgaWYgKGNyZWRzKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coY2hhbGsuY3lhbignXFxuTmV0d29yazonKSwgb3B0aW9ucy5uZXR3b3JrKTtcbiAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdQdWJsaWMgVG9rZW46JyksIGNyZWRzLnB1YmxpY1Rva2VuKTtcbiAgICAgICAgICBpZiAoY3JlZHMuZXhwaXJlc0F0KSB7XG4gICAgICAgICAgICBjb25zdCB2YWxpZCA9IERhdGUubm93KCkgPCBjcmVkcy5leHBpcmVzQXQ7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhjaGFsay5jeWFuKCdUb2tlbiB2YWxpZDonKSwgdmFsaWQgPyBjaGFsay5ncmVlbignWWVzJykgOiBjaGFsay5yZWQoJ05vIChleHBpcmVkKScpKTtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGNoYWxrLmN5YW4oJ0V4cGlyZXM6JyksIG5ldyBEYXRlKGNyZWRzLmV4cGlyZXNBdCkudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZ2dlci53YXJuKGBcXG5Ob3QgY29ubmVjdGVkIHRvIG5ldHdvcms6ICR7b3B0aW9ucy5uZXR3b3JrfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|