@sendly/cli 3.12.3 → 3.13.0
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/commands/campaigns/cancel.d.ts +13 -0
- package/dist/commands/campaigns/cancel.js +34 -0
- package/dist/commands/campaigns/create.d.ts +14 -0
- package/dist/commands/campaigns/create.js +63 -0
- package/dist/commands/campaigns/delete.d.ts +14 -0
- package/dist/commands/campaigns/delete.js +63 -0
- package/dist/commands/campaigns/get.d.ts +13 -0
- package/dist/commands/campaigns/get.js +91 -0
- package/dist/commands/campaigns/list.d.ts +13 -0
- package/dist/commands/campaigns/list.js +116 -0
- package/dist/commands/campaigns/preview.d.ts +13 -0
- package/dist/commands/campaigns/preview.js +60 -0
- package/dist/commands/campaigns/schedule.d.ts +15 -0
- package/dist/commands/campaigns/schedule.js +59 -0
- package/dist/commands/campaigns/send.d.ts +14 -0
- package/dist/commands/campaigns/send.js +78 -0
- package/dist/commands/contacts/create.d.ts +13 -0
- package/dist/commands/contacts/create.js +48 -0
- package/dist/commands/contacts/delete.d.ts +14 -0
- package/dist/commands/contacts/delete.js +52 -0
- package/dist/commands/contacts/get.d.ts +13 -0
- package/dist/commands/contacts/get.js +51 -0
- package/dist/commands/contacts/list.d.ts +14 -0
- package/dist/commands/contacts/list.js +101 -0
- package/dist/commands/contacts/lists/add.d.ts +14 -0
- package/dist/commands/contacts/lists/add.js +40 -0
- package/dist/commands/contacts/lists/create.d.ts +12 -0
- package/dist/commands/contacts/lists/create.js +40 -0
- package/dist/commands/contacts/lists/delete.d.ts +14 -0
- package/dist/commands/contacts/lists/delete.js +52 -0
- package/dist/commands/contacts/lists/index.d.ts +10 -0
- package/dist/commands/contacts/lists/index.js +68 -0
- package/dist/commands/contacts/lists/remove.d.ts +14 -0
- package/dist/commands/contacts/lists/remove.js +36 -0
- package/dist/commands/keys/get.d.ts +13 -0
- package/dist/commands/keys/get.js +53 -0
- package/dist/commands/keys/rename.d.ts +14 -0
- package/dist/commands/keys/rename.js +53 -0
- package/dist/commands/keys/rotate.d.ts +15 -0
- package/dist/commands/keys/rotate.js +82 -0
- package/dist/commands/keys/usage.d.ts +13 -0
- package/dist/commands/keys/usage.js +102 -0
- package/dist/commands/templates/clone.d.ts +14 -0
- package/dist/commands/templates/clone.js +45 -0
- package/dist/commands/verify/list.d.ts +3 -0
- package/dist/commands/verify/list.js +31 -5
- package/dist/lib/api-client.d.ts +9 -2
- package/dist/lib/api-client.js +31 -7
- package/dist/lib/base-command.js +31 -4
- package/dist/lib/output.d.ts +4 -2
- package/dist/lib/output.js +19 -6
- package/package.json +1 -1
package/dist/lib/base-command.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Command, Flags } from "@oclif/core";
|
|
6
6
|
import { setOutputFormat, setQuietMode, error } from "./output.js";
|
|
7
7
|
import { isAuthenticated } from "./config.js";
|
|
8
|
-
import { ApiError, AuthenticationError, ApiKeyRequiredError, } from "./api-client.js";
|
|
8
|
+
import { ApiError, AuthenticationError, ApiKeyRequiredError, RateLimitError, InsufficientCreditsError, NotFoundError, ValidationError, } from "./api-client.js";
|
|
9
9
|
export class BaseCommand extends Command {
|
|
10
10
|
static baseFlags = {
|
|
11
11
|
json: Flags.boolean({
|
|
@@ -36,14 +36,41 @@ export class BaseCommand extends Command {
|
|
|
36
36
|
this.exit(1);
|
|
37
37
|
}
|
|
38
38
|
if (err instanceof AuthenticationError) {
|
|
39
|
-
error(
|
|
40
|
-
hint:
|
|
39
|
+
error(err.message, {
|
|
40
|
+
hint: err.hint,
|
|
41
|
+
});
|
|
42
|
+
this.exit(1);
|
|
43
|
+
}
|
|
44
|
+
if (err instanceof RateLimitError) {
|
|
45
|
+
error(err.message, {
|
|
46
|
+
"Retry after": `${err.retryAfter} seconds`,
|
|
47
|
+
hint: err.hint,
|
|
48
|
+
});
|
|
49
|
+
this.exit(1);
|
|
50
|
+
}
|
|
51
|
+
if (err instanceof InsufficientCreditsError) {
|
|
52
|
+
error(err.message, {
|
|
53
|
+
hint: err.hint,
|
|
54
|
+
});
|
|
55
|
+
this.exit(1);
|
|
56
|
+
}
|
|
57
|
+
if (err instanceof NotFoundError) {
|
|
58
|
+
error(err.message, {
|
|
59
|
+
hint: err.hint,
|
|
60
|
+
});
|
|
61
|
+
this.exit(1);
|
|
62
|
+
}
|
|
63
|
+
if (err instanceof ValidationError) {
|
|
64
|
+
error(err.message, {
|
|
65
|
+
hint: err.hint,
|
|
66
|
+
...(err.details || {}),
|
|
41
67
|
});
|
|
42
68
|
this.exit(1);
|
|
43
69
|
}
|
|
44
70
|
if (err instanceof ApiError) {
|
|
45
71
|
error(err.message, {
|
|
46
72
|
code: err.code,
|
|
73
|
+
...(err.hint && { hint: err.hint }),
|
|
47
74
|
...(err.details || {}),
|
|
48
75
|
});
|
|
49
76
|
this.exit(1);
|
|
@@ -63,4 +90,4 @@ export class AuthenticatedCommand extends BaseCommand {
|
|
|
63
90
|
this.requireAuth();
|
|
64
91
|
}
|
|
65
92
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21tYW5kLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9iYXNlLWNvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUMsT0FBTyxFQUNMLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsYUFBYSxFQUNiLGVBQWUsR0FDaEIsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixNQUFNLE9BQWdCLFdBQVksU0FBUSxPQUFPO0lBQy9DLE1BQU0sQ0FBQyxTQUFTLEdBQUc7UUFDakIsSUFBSSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDbEIsV0FBVyxFQUFFLHVCQUF1QjtZQUNwQyxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFDRixLQUFLLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUNuQixJQUFJLEVBQUUsR0FBRztZQUNULFdBQVcsRUFBRSxnQkFBZ0I7WUFDN0IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDO0tBQ0gsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2xCLE1BQU0sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25CLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQWlDLENBQUMsQ0FBQztRQUUzRSxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNmLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxLQUFLLENBQUMs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LENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCYXNlIENvbW1hbmQgY2xhc3MgZm9yIGFsbCBTZW5kbHkgQ0xJIGNvbW1hbmRzXG4gKiBQcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eSBhbmQgZmxhZ3NcbiAqL1xuXG5pbXBvcnQgeyBDb21tYW5kLCBGbGFncyB9IGZyb20gXCJAb2NsaWYvY29yZVwiO1xuaW1wb3J0IHsgc2V0T3V0cHV0Rm9ybWF0LCBzZXRRdWlldE1vZGUsIGVycm9yIH0gZnJvbSBcIi4vb3V0cHV0LmpzXCI7XG5pbXBvcnQgeyBpc0F1dGhlbnRpY2F0ZWQgfSBmcm9tIFwiLi9jb25maWcuanNcIjtcbmltcG9ydCB7XG4gIEFwaUVycm9yLFxuICBBdXRoZW50aWNhdGlvbkVycm9yLFxuICBBcGlLZXlSZXF1aXJlZEVycm9yLFxuICBSYXRlTGltaXRFcnJvcixcbiAgSW5zdWZmaWNpZW50Q3JlZGl0c0Vycm9yLFxuICBOb3RGb3VuZEVycm9yLFxuICBWYWxpZGF0aW9uRXJyb3IsXG59IGZyb20gXCIuL2FwaS1jbGllbnQuanNcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gIHN0YXRpYyBiYXNlRmxhZ3MgPSB7XG4gICAganNvbjogRmxhZ3MuYm9vbGVhbih7XG4gICAgICBkZXNjcmlwdGlvbjogXCJPdXRwdXQgaW4gSlNPTiBmb3JtYXRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICAgIHF1aWV0OiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGNoYXI6IFwicVwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiTWluaW1hbCBvdXRwdXRcIixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pLFxuICB9O1xuXG4gIHByb3RlY3RlZCBhc3luYyBpbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmluaXQoKTtcbiAgICBjb25zdCB7IGZsYWdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKHRoaXMuY29uc3RydWN0b3IgYXMgdHlwZW9mIEJhc2VDb21tYW5kKTtcblxuICAgIGlmIChmbGFncy5qc29uKSB7XG4gICAgICBzZXRPdXRwdXRGb3JtYXQoXCJqc29uXCIpO1xuICAgIH1cbiAgICBpZiAoZmxhZ3MucXVpZXQpIHtcbiAgICAgIHNldFF1aWV0TW9kZSh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgY2F0Y2goZXJyOiBFcnJvcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBcGlLZXlSZXF1aXJlZEVycm9yKSB7XG4gICAgICBlcnJvcihlcnIubWVzc2FnZSwge1xuICAgICAgICBoaW50OiBlcnIuaGludCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBdXRoZW50aWNhdGlvbkVycm9yKSB7XG4gICAgICBlcnJvcihlcnIubWVzc2FnZSwge1xuICAgICAgICBoaW50OiBlcnIuaGludCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBSYXRlTGltaXRFcnJvcikge1xuICAgICAgZXJyb3IoZXJyLm1lc3NhZ2UsIHtcbiAgICAgICAgXCJSZXRyeSBhZnRlclwiOiBgJHtlcnIucmV0cnlBZnRlcn0gc2Vjb25kc2AsXG4gICAgICAgIGhpbnQ6IGVyci5oaW50LFxuICAgICAgfSk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEluc3VmZmljaWVudENyZWRpdHNFcnJvcikge1xuICAgICAgZXJyb3IoZXJyLm1lc3NhZ2UsIHtcbiAgICAgICAgaGludDogZXJyLmhpbnQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgTm90Rm91bmRFcnJvcikge1xuICAgICAgZXJyb3IoZXJyLm1lc3NhZ2UsIHtcbiAgICAgICAgaGludDogZXJyLmhpbnQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZXhpdCgxKTtcbiAgICB9XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yKSB7XG4gICAgICBlcnJvcihlcnIubWVzc2FnZSwge1xuICAgICAgICBoaW50OiBlcnIuaGludCxcbiAgICAgICAgLi4uKGVyci5kZXRhaWxzIHx8IHt9KSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGlmIChlcnIgaW5zdGFuY2VvZiBBcGlFcnJvcikge1xuICAgICAgZXJyb3IoZXJyLm1lc3NhZ2UsIHtcbiAgICAgICAgY29kZTogZXJyLmNvZGUsXG4gICAgICAgIC4uLihlcnIuaGludCAmJiB7IGhpbnQ6IGVyci5oaW50IH0pLFxuICAgICAgICAuLi4oZXJyLmRldGFpbHMgfHwge30pLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgZXJyb3IoZXJyLm1lc3NhZ2UpO1xuICAgIHRoaXMuZXhpdCgxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZXF1aXJlQXV0aCgpOiB2b2lkIHtcbiAgICBpZiAoIWlzQXV0aGVudGljYXRlZCgpKSB7XG4gICAgICB0aHJvdyBuZXcgQXV0aGVudGljYXRpb25FcnJvcigpO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXV0aGVudGljYXRlZENvbW1hbmQgZXh0ZW5kcyBCYXNlQ29tbWFuZCB7XG4gIHByb3RlY3RlZCBhc3luYyBpbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHN1cGVyLmluaXQoKTtcbiAgICB0aGlzLnJlcXVpcmVBdXRoKCk7XG4gIH1cbn1cbiJdfQ==
|
package/dist/lib/output.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export declare const colors: {
|
|
|
18
18
|
dim: import("chalk").ChalkInstance;
|
|
19
19
|
bold: import("chalk").ChalkInstance;
|
|
20
20
|
code: import("chalk").ChalkInstance;
|
|
21
|
+
highlight: import("chalk").ChalkInstance;
|
|
21
22
|
};
|
|
22
23
|
export declare function success(message: string, data?: Record<string, unknown>): void;
|
|
23
24
|
export declare function error(message: string, details?: Record<string, unknown>): void;
|
|
@@ -28,7 +29,7 @@ export interface TableColumn {
|
|
|
28
29
|
header: string;
|
|
29
30
|
key: string;
|
|
30
31
|
width?: number;
|
|
31
|
-
formatter?: (value: unknown) => string;
|
|
32
|
+
formatter?: (value: unknown, row?: Record<string, any>) => string;
|
|
32
33
|
}
|
|
33
34
|
export declare function table(data: Array<Record<string, any>>, columns: TableColumn[]): void;
|
|
34
35
|
export declare function spinner(text: string): Ora;
|
|
@@ -39,5 +40,6 @@ export declare function formatCredits(credits: number): string;
|
|
|
39
40
|
export declare function formatPhone(phone: string): string;
|
|
40
41
|
export declare function header(title: string): void;
|
|
41
42
|
export declare function divider(): void;
|
|
42
|
-
export declare function keyValue(data: Record<string, unknown>): void;
|
|
43
|
+
export declare function keyValue(data: Record<string, unknown> | Array<[string, string | number]>): void;
|
|
44
|
+
export declare function detail(title: string, data: Record<string, unknown>): void;
|
|
43
45
|
export declare function codeBlock(code: string, language?: string): void;
|
package/dist/lib/output.js
CHANGED
|
@@ -32,6 +32,7 @@ export const colors = {
|
|
|
32
32
|
dim: chalk.dim,
|
|
33
33
|
bold: chalk.bold,
|
|
34
34
|
code: chalk.cyan,
|
|
35
|
+
highlight: chalk.bold.hex("#F59E0B"),
|
|
35
36
|
};
|
|
36
37
|
// Success output
|
|
37
38
|
export function success(message, data) {
|
|
@@ -105,7 +106,7 @@ export function table(data, columns) {
|
|
|
105
106
|
t.push(columns.map((col) => {
|
|
106
107
|
const value = row[col.key];
|
|
107
108
|
if (col.formatter) {
|
|
108
|
-
return col.formatter(value);
|
|
109
|
+
return col.formatter(value, row);
|
|
109
110
|
}
|
|
110
111
|
return String(value ?? "-");
|
|
111
112
|
}));
|
|
@@ -195,18 +196,30 @@ export function divider() {
|
|
|
195
196
|
return;
|
|
196
197
|
console.log();
|
|
197
198
|
}
|
|
198
|
-
// Key-value display
|
|
199
|
+
// Key-value display - accepts Record or array of [key, value] tuples
|
|
199
200
|
export function keyValue(data) {
|
|
201
|
+
const entries = Array.isArray(data) ? data : Object.entries(data);
|
|
200
202
|
if (isJsonMode()) {
|
|
201
|
-
|
|
203
|
+
const obj = Array.isArray(data) ? Object.fromEntries(data) : data;
|
|
204
|
+
console.log(JSON.stringify(obj, null, 2));
|
|
202
205
|
return;
|
|
203
206
|
}
|
|
204
|
-
const maxKeyLength = Math.max(...
|
|
205
|
-
|
|
207
|
+
const maxKeyLength = Math.max(...entries.map(([k]) => k.length));
|
|
208
|
+
entries.forEach(([key, value]) => {
|
|
206
209
|
const paddedKey = key.padEnd(maxKeyLength);
|
|
207
210
|
console.log(` ${colors.dim(paddedKey)} ${value}`);
|
|
208
211
|
});
|
|
209
212
|
}
|
|
213
|
+
// Detail view with title and key-value pairs
|
|
214
|
+
export function detail(title, data) {
|
|
215
|
+
if (isJsonMode()) {
|
|
216
|
+
console.log(JSON.stringify({ title, ...data }, null, 2));
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
console.log(colors.bold(title));
|
|
220
|
+
console.log();
|
|
221
|
+
keyValue(data);
|
|
222
|
+
}
|
|
210
223
|
// Code block
|
|
211
224
|
export function codeBlock(code, language) {
|
|
212
225
|
if (isJsonMode()) {
|
|
@@ -219,4 +232,4 @@ export function codeBlock(code, language) {
|
|
|
219
232
|
console.log(colors.dim("```"));
|
|
220
233
|
console.log();
|
|
221
234
|
}
|
|
222
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9vdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEdBQWlCLE1BQU0sS0FBSyxDQUFDO0FBS3BDLElBQUksYUFBYSxHQUFpQixPQUFPLENBQUM7QUFDMUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXRCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBb0I7SUFDbEQsYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLGFBQWEsS0FBSyxNQUFNLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTO0FBQ1QsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLDhCQUE4QjtJQUM3RCxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUs7SUFDcEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTTtJQUNyQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7SUFDaEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0lBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtDQUNqQixD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LEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBPdXRwdXQgRm9ybWF0dGluZyBVdGlsaXRpZXNcbiAqIEhhbmRsZXMgaHVtYW4tcmVhZGFibGUgYW5kIEpTT04gb3V0cHV0IG1vZGVzXG4gKi9cblxuaW1wb3J0IGNoYWxrIGZyb20gXCJjaGFsa1wiO1xuaW1wb3J0IFRhYmxlIGZyb20gXCJjbGktdGFibGUzXCI7XG5pbXBvcnQgb3JhLCB7IHR5cGUgT3JhIH0gZnJvbSBcIm9yYVwiO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVmFsdWUgfSBmcm9tIFwiLi9jb25maWcuanNcIjtcblxuZXhwb3J0IHR5cGUgT3V0cHV0Rm9ybWF0ID0gXCJodW1hblwiIHwgXCJqc29uXCI7XG5cbmxldCBjdXJyZW50Rm9ybWF0OiBPdXRwdXRGb3JtYXQgPSBcImh1bWFuXCI7XG5sZXQgcXVpZXRNb2RlID0gZmFsc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRPdXRwdXRGb3JtYXQoZm9ybWF0OiBPdXRwdXRGb3JtYXQpOiB2b2lkIHtcbiAgY3VycmVudEZvcm1hdCA9IGZvcm1hdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFF1aWV0TW9kZShxdWlldDogYm9vbGVhbik6IHZvaWQge1xuICBxdWlldE1vZGUgPSBxdWlldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE91dHB1dEZvcm1hdCgpOiBPdXRwdXRGb3JtYXQge1xuICByZXR1cm4gY3VycmVudEZvcm1hdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSnNvbk1vZGUoKTogYm9vbGVhbiB7XG4gIHJldHVybiBjdXJyZW50Rm9ybWF0ID09PSBcImpzb25cIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUXVpZXRNb2RlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gcXVpZXRNb2RlO1xufVxuXG4vLyBDb2xvcnNcbmV4cG9ydCBjb25zdCBjb2xvcnMgPSB7XG4gIHByaW1hcnk6IGNoYWxrLmhleChcIiNGNTlFMEJcIiksIC8vIEFtYmVyL09yYW5nZSAtIFNlbmRseSBicmFuZFxuICBzdWNjZXNzOiBjaGFsay5ncmVlbixcbiAgZXJyb3I6IGNoYWxrLnJlZCxcbiAgd2FybmluZzogY2hhbGsueWVsbG93LFxuICBpbmZvOiBjaGFsay5ibHVlLFxuICBkaW06IGNoYWxrLmRpbSxcbiAgYm9sZDogY2hhbGsuYm9sZCxcbiAgY29kZTogY2hhbGsuY3lhbixcbn07XG5cbi8vIFN1Y2Nlc3Mgb3V0cHV0XG5leHBvcnQgZnVuY3Rpb24gc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIGRhdGE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoeyBzdWNjZXNzOiB0cnVlLCBtZXNzYWdlLCAuLi5kYXRhIH0sIG51bGwsIDIpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAocXVpZXRNb2RlKSB7XG4gICAgaWYgKGRhdGE/LmlkKSBjb25zb2xlLmxvZyhkYXRhLmlkKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmxvZyhgJHtjb2xvcnMuc3VjY2VzcyhcIuKck1wiKX0gJHttZXNzYWdlfWApO1xuICBpZiAoZGF0YSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKGtleSArIFwiOlwiKX0gJHt2YWx1ZX1gKTtcbiAgICB9KTtcbiAgfVxufVxuXG4vLyBFcnJvciBvdXRwdXRcbmV4cG9ydCBmdW5jdGlvbiBlcnJvcihcbiAgbWVzc2FnZTogc3RyaW5nLFxuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4pOiB2b2lkIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBKU09OLnN0cmluZ2lmeSh7IGVycm9yOiB0cnVlLCBtZXNzYWdlLCAuLi5kZXRhaWxzIH0sIG51bGwsIDIpLFxuICAgICk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc29sZS5lcnJvcihgJHtjb2xvcnMuZXJyb3IoXCLinJdcIil9ICR7bWVzc2FnZX1gKTtcbiAgaWYgKGRldGFpbHMgJiYgIXF1aWV0TW9kZSkge1xuICAgIE9iamVjdC5lbnRyaWVzKGRldGFpbHMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgY29uc29sZS5lcnJvcihgICAke2NvbG9ycy5kaW0oa2V5ICsgXCI6XCIpfSAke3ZhbHVlfWApO1xuICAgIH0pO1xuICB9XG59XG5cbi8vIFdhcm5pbmcgb3V0cHV0XG5leHBvcnQgZnVuY3Rpb24gd2FybihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSkgcmV0dXJuO1xuICBpZiAocXVpZXRNb2RlKSByZXR1cm47XG4gIGNvbnNvbGUubG9nKGAke2NvbG9ycy53YXJuaW5nKFwi4pqgXCIpfSAke21lc3NhZ2V9YCk7XG59XG5cbi8vIEluZm8gb3V0cHV0XG5leHBvcnQgZnVuY3Rpb24gaW5mbyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSkgcmV0dXJuO1xuICBpZiAocXVpZXRNb2RlKSByZXR1cm47XG4gIGNvbnNvbGUubG9nKGAke2NvbG9ycy5pbmZvKFwi4oS5XCIpfSAke21lc3NhZ2V9YCk7XG59XG5cbi8vIFByaW50IHJhdyBKU09OXG5leHBvcnQgZnVuY3Rpb24ganNvbihkYXRhOiB1bmtub3duKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKTtcbn1cblxuLy8gUHJpbnQgYSB0YWJsZVxuZXhwb3J0IGludGVyZmFjZSBUYWJsZUNvbHVtbiB7XG4gIGhlYWRlcjogc3RyaW5nO1xuICBrZXk6IHN0cmluZztcbiAgd2lkdGg/OiBudW1iZXI7XG4gIGZvcm1hdHRlcj86ICh2YWx1ZTogdW5rbm93bikgPT4gc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdGFibGUoXG4gIGRhdGE6IEFycmF5PFJlY29yZDxzdHJpbmcsIGFueT4+LFxuICBjb2x1bW5zOiBUYWJsZUNvbHVtbltdLFxuKTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKGRhdGEubGVuZ3RoID09PSAwKSB7XG4gICAgaW5mbyhcIk5vIGRhdGEgdG8gZGlzcGxheVwiKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zdCB0ID0gbmV3IFRhYmxlKHtcbiAgICBoZWFkOiBjb2x1bW5zLm1hcCgoYykgPT4gY29sb3JzLmJvbGQoYy5oZWFkZXIpKSxcbiAgICBzdHlsZToge1xuICAgICAgaGVhZDogW10sXG4gICAgICBib3JkZXI6IFtdLFxuICAgIH0sXG4gICAgY29sV2lkdGhzOiBjb2x1bW5zLm1hcCgoYykgPT4gYy53aWR0aCA/PyBudWxsKSxcbiAgfSk7XG5cbiAgZGF0YS5mb3JFYWNoKChyb3cpID0+IHtcbiAgICB0LnB1c2goXG4gICAgICBjb2x1bW5zLm1hcCgoY29sKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gcm93W2NvbC5rZXldO1xuICAgICAgICBpZiAoY29sLmZvcm1hdHRlcikge1xuICAgICAgICAgIHJldHVybiBjb2wuZm9ybWF0dGVyKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlID8/IFwiLVwiKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH0pO1xuXG4gIGNvbnNvbGUubG9nKHQudG9TdHJpbmcoKSk7XG59XG5cbi8vIFNwaW5uZXIgZm9yIGxvbmcgb3BlcmF0aW9uc1xuZXhwb3J0IGZ1bmN0aW9uIHNwaW5uZXIodGV4dDogc3RyaW5nKTogT3JhIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSB8fCBxdWlldE1vZGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhcnQ6ICgpID0+ICh7IHN0b3A6ICgpID0+IHt9LCBzdWNjZWVkOiAoKSA9PiB7fSwgZmFpbDogKCkgPT4ge30gfSksXG4gICAgICBzdG9wOiAoKSA9PiB7fSxcbiAgICAgIHN1Y2NlZWQ6ICgpID0+IHt9LFxuICAgICAgZmFpbDogKCkgPT4ge30sXG4gICAgfSBhcyB1bmtub3duIGFzIE9yYTtcbiAgfVxuXG4gIHJldHVybiBvcmEoe1xuICAgIHRleHQsXG4gICAgY29sb3I6IFwieWVsbG93XCIsXG4gICAgc3Bpbm5lcjogXCJkb3RzXCIsXG4gIH0pO1xufVxuXG4vLyBTdGF0dXMgZm9ybWF0dGVyc1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFN0YXR1cyhzdGF0dXM6IHN0cmluZyk6IHN0cmluZyB7XG4gIHN3aXRjaCAoc3RhdHVzLnRvTG93ZXJDYXNlKCkpIHtcbiAgICBjYXNlIFwiZGVsaXZlcmVkXCI6XG4gICAgY2FzZSBcInN1Y2Nlc3NcIjpcbiAgICBjYXNlIFwiYWN0aXZlXCI6XG4gICAgY2FzZSBcInZlcmlmaWVkXCI6XG4gICAgICByZXR1cm4gY29sb3JzLnN1Y2Nlc3Moc3RhdHVzKTtcbiAgICBjYXNlIFwiZmFpbGVkXCI6XG4gICAgY2FzZSBcImVycm9yXCI6XG4gICAgY2FzZSBcInJldm9rZWRcIjpcbiAgICBjYXNlIFwicmVqZWN0ZWRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuZXJyb3Ioc3RhdHVzKTtcbiAgICBjYXNlIFwicXVldWVkXCI6XG4gICAgY2FzZSBcInBlbmRpbmdcIjpcbiAgICBjYXNlIFwicHJvY2Vzc2luZ1wiOlxuICAgICAgcmV0dXJuIGNvbG9ycy53YXJuaW5nKHN0YXR1cyk7XG4gICAgY2FzZSBcInNlbnRcIjpcbiAgICAgIHJldHVybiBjb2xvcnMuaW5mbyhzdGF0dXMpO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdHVzO1xuICB9XG59XG5cbi8vIEZvcm1hdCBkYXRlXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RGF0ZShkYXRlOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKGRhdGUpO1xuICByZXR1cm4gZC50b0xvY2FsZVN0cmluZygpO1xufVxuXG4vLyBGb3JtYXQgcmVsYXRpdmUgdGltZVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFJlbGF0aXZlVGltZShkYXRlOiBzdHJpbmcgfCBEYXRlIHwgbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3QgZCA9IG5ldyBEYXRlKGRhdGUpO1xuICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xuICBjb25zdCBkaWZmID0gbm93LmdldFRpbWUoKSAtIGQuZ2V0VGltZSgpO1xuXG4gIGNvbnN0IHNlY29uZHMgPSBNYXRoLmZsb29yKGRpZmYgLyAxMDAwKTtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgY29uc3QgaG91cnMgPSBNYXRoLmZsb29yKG1pbnV0ZXMgLyA2MCk7XG4gIGNvbnN0IGRheXMgPSBNYXRoLmZsb29yKGhvdXJzIC8gMjQpO1xuXG4gIGlmIChkYXlzID4gMCkgcmV0dXJuIGAke2RheXN9ZCBhZ29gO1xuICBpZiAoaG91cnMgPiAwKSByZXR1cm4gYCR7aG91cnN9aCBhZ29gO1xuICBpZiAobWludXRlcyA+IDApIHJldHVybiBgJHttaW51dGVzfW0gYWdvYDtcbiAgcmV0dXJuIGAke3NlY29uZHN9cyBhZ29gO1xufVxuXG4vLyBGb3JtYXQgY3JlZGl0c1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdENyZWRpdHMoY3JlZGl0czogbnVtYmVyKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke2NyZWRpdHMudG9Mb2NhbGVTdHJpbmcoKX0gY3JlZGl0c2A7XG59XG5cbi8vIEZvcm1hdCBwaG9uZSBudW1iZXJcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRQaG9uZShwaG9uZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbG9ycy5jb2RlKHBob25lKTtcbn1cblxuLy8gSGVhZGVyIGZvciBjb21tYW5kc1xuZXhwb3J0IGZ1bmN0aW9uIGhlYWRlcih0aXRsZTogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkgfHwgcXVpZXRNb2RlKSByZXR1cm47XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKGNvbG9ycy5ib2xkKGNvbG9ycy5wcmltYXJ5KHRpdGxlKSkpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwi4pSAXCIucmVwZWF0KDQwKSkpO1xufVxuXG4vLyBEaXZpZGVyXG5leHBvcnQgZnVuY3Rpb24gZGl2aWRlcigpOiB2b2lkIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSB8fCBxdWlldE1vZGUpIHJldHVybjtcbiAgY29uc29sZS5sb2coKTtcbn1cblxuLy8gS2V5LXZhbHVlIGRpc3BsYXlcbmV4cG9ydCBmdW5jdGlvbiBrZXlWYWx1ZShkYXRhOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1heEtleUxlbmd0aCA9IE1hdGgubWF4KC4uLk9iamVjdC5rZXlzKGRhdGEpLm1hcCgoaykgPT4gay5sZW5ndGgpKTtcblxuICBPYmplY3QuZW50cmllcyhkYXRhKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBwYWRkZWRLZXkgPSBrZXkucGFkRW5kKG1heEtleUxlbmd0aCk7XG4gICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKHBhZGRlZEtleSl9ICAke3ZhbHVlfWApO1xuICB9KTtcbn1cblxuLy8gQ29kZSBibG9ja1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGVCbG9jayhjb2RlOiBzdHJpbmcsIGxhbmd1YWdlPzogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IGNvZGUsIGxhbmd1YWdlIH0sIG51bGwsIDIpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiYGBgXCIgKyAobGFuZ3VhZ2UgfHwgXCJcIikpKTtcbiAgY29uc29sZS5sb2coY29sb3JzLmNvZGUoY29kZSkpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiYGBgXCIpKTtcbiAgY29uc29sZS5sb2coKTtcbn1cbiJdfQ==
|
|
235
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9vdXRwdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7OztHQUdHO0FBRUgsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUMvQixPQUFPLEdBQWlCLE1BQU0sS0FBSyxDQUFDO0FBS3BDLElBQUksYUFBYSxHQUFpQixPQUFPLENBQUM7QUFDMUMsSUFBSSxTQUFTLEdBQUcsS0FBSyxDQUFDO0FBRXRCLE1BQU0sVUFBVSxlQUFlLENBQUMsTUFBb0I7SUFDbEQsYUFBYSxHQUFHLE1BQU0sQ0FBQztBQUN6QixDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxLQUFjO0lBQ3pDLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlO0lBQzdCLE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVTtJQUN4QixPQUFPLGFBQWEsS0FBSyxNQUFNLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXO0lBQ3pCLE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRCxTQUFTO0FBQ1QsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLDhCQUE4QjtJQUM3RCxPQUFPLEVBQUUsS0FBSyxDQUFDLEtBQUs7SUFDcEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsTUFBTTtJQUNyQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7SUFDaEIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO0lBQ2QsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO0lBQ2hCLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtJQUNoQixT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QUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPO0lBQ1QsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUNqQixDQUFDO0FBRUQsYUFBYTtBQUNiLE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBWSxFQUFFLFFBQWlCO0lBQ3ZELElBQUksVUFBVSxFQUFFLEVBQUUsQ0FBQztRQUNqQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsT0FBTztJQUNULENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRCxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogT3V0cHV0IEZvcm1hdHRpbmcgVXRpbGl0aWVzXG4gKiBIYW5kbGVzIGh1bWFuLXJlYWRhYmxlIGFuZCBKU09OIG91dHB1dCBtb2Rlc1xuICovXG5cbmltcG9ydCBjaGFsayBmcm9tIFwiY2hhbGtcIjtcbmltcG9ydCBUYWJsZSBmcm9tIFwiY2xpLXRhYmxlM1wiO1xuaW1wb3J0IG9yYSwgeyB0eXBlIE9yYSB9IGZyb20gXCJvcmFcIjtcbmltcG9ydCB7IGdldENvbmZpZ1ZhbHVlIH0gZnJvbSBcIi4vY29uZmlnLmpzXCI7XG5cbmV4cG9ydCB0eXBlIE91dHB1dEZvcm1hdCA9IFwiaHVtYW5cIiB8IFwianNvblwiO1xuXG5sZXQgY3VycmVudEZvcm1hdDogT3V0cHV0Rm9ybWF0ID0gXCJodW1hblwiO1xubGV0IHF1aWV0TW9kZSA9IGZhbHNlO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0T3V0cHV0Rm9ybWF0KGZvcm1hdDogT3V0cHV0Rm9ybWF0KTogdm9pZCB7XG4gIGN1cnJlbnRGb3JtYXQgPSBmb3JtYXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRRdWlldE1vZGUocXVpZXQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgcXVpZXRNb2RlID0gcXVpZXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPdXRwdXRGb3JtYXQoKTogT3V0cHV0Rm9ybWF0IHtcbiAgcmV0dXJuIGN1cnJlbnRGb3JtYXQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0pzb25Nb2RlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gY3VycmVudEZvcm1hdCA9PT0gXCJqc29uXCI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1F1aWV0TW9kZSgpOiBib29sZWFuIHtcbiAgcmV0dXJuIHF1aWV0TW9kZTtcbn1cblxuLy8gQ29sb3JzXG5leHBvcnQgY29uc3QgY29sb3JzID0ge1xuICBwcmltYXJ5OiBjaGFsay5oZXgoXCIjRjU5RTBCXCIpLCAvLyBBbWJlci9PcmFuZ2UgLSBTZW5kbHkgYnJhbmRcbiAgc3VjY2VzczogY2hhbGsuZ3JlZW4sXG4gIGVycm9yOiBjaGFsay5yZWQsXG4gIHdhcm5pbmc6IGNoYWxrLnllbGxvdyxcbiAgaW5mbzogY2hhbGsuYmx1ZSxcbiAgZGltOiBjaGFsay5kaW0sXG4gIGJvbGQ6IGNoYWxrLmJvbGQsXG4gIGNvZGU6IGNoYWxrLmN5YW4sXG4gIGhpZ2hsaWdodDogY2hhbGsuYm9sZC5oZXgoXCIjRjU5RTBCXCIpLFxufTtcblxuLy8gU3VjY2VzcyBvdXRwdXRcbmV4cG9ydCBmdW5jdGlvbiBzdWNjZXNzKG1lc3NhZ2U6IHN0cmluZywgZGF0YT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IHN1Y2Nlc3M6IHRydWUsIG1lc3NhZ2UsIC4uLmRhdGEgfSwgbnVsbCwgMikpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmIChxdWlldE1vZGUpIHtcbiAgICBpZiAoZGF0YT8uaWQpIGNvbnNvbGUubG9nKGRhdGEuaWQpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKGAke2NvbG9ycy5zdWNjZXNzKFwi4pyTXCIpfSAke21lc3NhZ2V9YCk7XG4gIGlmIChkYXRhKSB7XG4gICAgT2JqZWN0LmVudHJpZXMoZGF0YSkuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zb2xlLmxvZyhgICAke2NvbG9ycy5kaW0oa2V5ICsgXCI6XCIpfSAke3ZhbHVlfWApO1xuICAgIH0pO1xuICB9XG59XG5cbi8vIEVycm9yIG91dHB1dFxuZXhwb3J0IGZ1bmN0aW9uIGVycm9yKFxuICBtZXNzYWdlOiBzdHJpbmcsXG4gIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbik6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpKSB7XG4gICAgY29uc29sZS5lcnJvcihcbiAgICAgIEpTT04uc3RyaW5naWZ5KHsgZXJyb3I6IHRydWUsIG1lc3NhZ2UsIC4uLmRldGFpbHMgfSwgbnVsbCwgMiksXG4gICAgKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmVycm9yKGAke2NvbG9ycy5lcnJvcihcIuKcl1wiKX0gJHttZXNzYWdlfWApO1xuICBpZiAoZGV0YWlscyAmJiAhcXVpZXRNb2RlKSB7XG4gICAgT2JqZWN0LmVudHJpZXMoZGV0YWlscykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBjb25zb2xlLmVycm9yKGAgICR7Y29sb3JzLmRpbShrZXkgKyBcIjpcIil9ICR7dmFsdWV9YCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLy8gV2FybmluZyBvdXRwdXRcbmV4cG9ydCBmdW5jdGlvbiB3YXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpKSByZXR1cm47XG4gIGlmIChxdWlldE1vZGUpIHJldHVybjtcbiAgY29uc29sZS5sb2coYCR7Y29sb3JzLndhcm5pbmcoXCLimqBcIil9ICR7bWVzc2FnZX1gKTtcbn1cblxuLy8gSW5mbyBvdXRwdXRcbmV4cG9ydCBmdW5jdGlvbiBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpKSByZXR1cm47XG4gIGlmIChxdWlldE1vZGUpIHJldHVybjtcbiAgY29uc29sZS5sb2coYCR7Y29sb3JzLmluZm8oXCLihLlcIil9ICR7bWVzc2FnZX1gKTtcbn1cblxuLy8gUHJpbnQgcmF3IEpTT05cbmV4cG9ydCBmdW5jdGlvbiBqc29uKGRhdGE6IHVua25vd24pOiB2b2lkIHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZGF0YSwgbnVsbCwgMikpO1xufVxuXG4vLyBQcmludCBhIHRhYmxlXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlQ29sdW1uIHtcbiAgaGVhZGVyOiBzdHJpbmc7XG4gIGtleTogc3RyaW5nO1xuICB3aWR0aD86IG51bWJlcjtcbiAgZm9ybWF0dGVyPzogKHZhbHVlOiB1bmtub3duLCByb3c/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZShcbiAgZGF0YTogQXJyYXk8UmVjb3JkPHN0cmluZywgYW55Pj4sXG4gIGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sXG4pOiB2b2lkIHtcbiAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHtcbiAgICBpbmZvKFwiTm8gZGF0YSB0byBkaXNwbGF5XCIpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHQgPSBuZXcgVGFibGUoe1xuICAgIGhlYWQ6IGNvbHVtbnMubWFwKChjKSA9PiBjb2xvcnMuYm9sZChjLmhlYWRlcikpLFxuICAgIHN0eWxlOiB7XG4gICAgICBoZWFkOiBbXSxcbiAgICAgIGJvcmRlcjogW10sXG4gICAgfSxcbiAgICBjb2xXaWR0aHM6IGNvbHVtbnMubWFwKChjKSA9PiBjLndpZHRoID8/IG51bGwpLFxuICB9KTtcblxuICBkYXRhLmZvckVhY2goKHJvdykgPT4ge1xuICAgIHQucHVzaChcbiAgICAgIGNvbHVtbnMubWFwKChjb2wpID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSByb3dbY29sLmtleV07XG4gICAgICAgIGlmIChjb2wuZm9ybWF0dGVyKSB7XG4gICAgICAgICAgcmV0dXJuIGNvbC5mb3JtYXR0ZXIodmFsdWUsIHJvdyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFN0cmluZyh2YWx1ZSA/PyBcIi1cIik7XG4gICAgICB9KSxcbiAgICApO1xuICB9KTtcblxuICBjb25zb2xlLmxvZyh0LnRvU3RyaW5nKCkpO1xufVxuXG4vLyBTcGlubmVyIGZvciBsb25nIG9wZXJhdGlvbnNcbmV4cG9ydCBmdW5jdGlvbiBzcGlubmVyKHRleHQ6IHN0cmluZyk6IE9yYSB7XG4gIGlmIChpc0pzb25Nb2RlKCkgfHwgcXVpZXRNb2RlKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0YXJ0OiAoKSA9PiAoeyBzdG9wOiAoKSA9PiB7fSwgc3VjY2VlZDogKCkgPT4ge30sIGZhaWw6ICgpID0+IHt9IH0pLFxuICAgICAgc3RvcDogKCkgPT4ge30sXG4gICAgICBzdWNjZWVkOiAoKSA9PiB7fSxcbiAgICAgIGZhaWw6ICgpID0+IHt9LFxuICAgIH0gYXMgdW5rbm93biBhcyBPcmE7XG4gIH1cblxuICByZXR1cm4gb3JhKHtcbiAgICB0ZXh0LFxuICAgIGNvbG9yOiBcInllbGxvd1wiLFxuICAgIHNwaW5uZXI6IFwiZG90c1wiLFxuICB9KTtcbn1cblxuLy8gU3RhdHVzIGZvcm1hdHRlcnNcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRTdGF0dXMoc3RhdHVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHN0YXR1cy50b0xvd2VyQ2FzZSgpKSB7XG4gICAgY2FzZSBcImRlbGl2ZXJlZFwiOlxuICAgIGNhc2UgXCJzdWNjZXNzXCI6XG4gICAgY2FzZSBcImFjdGl2ZVwiOlxuICAgIGNhc2UgXCJ2ZXJpZmllZFwiOlxuICAgICAgcmV0dXJuIGNvbG9ycy5zdWNjZXNzKHN0YXR1cyk7XG4gICAgY2FzZSBcImZhaWxlZFwiOlxuICAgIGNhc2UgXCJlcnJvclwiOlxuICAgIGNhc2UgXCJyZXZva2VkXCI6XG4gICAgY2FzZSBcInJlamVjdGVkXCI6XG4gICAgICByZXR1cm4gY29sb3JzLmVycm9yKHN0YXR1cyk7XG4gICAgY2FzZSBcInF1ZXVlZFwiOlxuICAgIGNhc2UgXCJwZW5kaW5nXCI6XG4gICAgY2FzZSBcInByb2Nlc3NpbmdcIjpcbiAgICAgIHJldHVybiBjb2xvcnMud2FybmluZyhzdGF0dXMpO1xuICAgIGNhc2UgXCJzZW50XCI6XG4gICAgICByZXR1cm4gY29sb3JzLmluZm8oc3RhdHVzKTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHN0YXR1cztcbiAgfVxufVxuXG4vLyBGb3JtYXQgZGF0ZVxuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgcmV0dXJuIGQudG9Mb2NhbGVTdHJpbmcoKTtcbn1cblxuLy8gRm9ybWF0IHJlbGF0aXZlIHRpbWVcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRSZWxhdGl2ZVRpbWUoZGF0ZTogc3RyaW5nIHwgRGF0ZSB8IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IGQgPSBuZXcgRGF0ZShkYXRlKTtcbiAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcbiAgY29uc3QgZGlmZiA9IG5vdy5nZXRUaW1lKCkgLSBkLmdldFRpbWUoKTtcblxuICBjb25zdCBzZWNvbmRzID0gTWF0aC5mbG9vcihkaWZmIC8gMTAwMCk7XG4gIGNvbnN0IG1pbnV0ZXMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MCk7XG4gIGNvbnN0IGhvdXJzID0gTWF0aC5mbG9vcihtaW51dGVzIC8gNjApO1xuICBjb25zdCBkYXlzID0gTWF0aC5mbG9vcihob3VycyAvIDI0KTtcblxuICBpZiAoZGF5cyA+IDApIHJldHVybiBgJHtkYXlzfWQgYWdvYDtcbiAgaWYgKGhvdXJzID4gMCkgcmV0dXJuIGAke2hvdXJzfWggYWdvYDtcbiAgaWYgKG1pbnV0ZXMgPiAwKSByZXR1cm4gYCR7bWludXRlc31tIGFnb2A7XG4gIHJldHVybiBgJHtzZWNvbmRzfXMgYWdvYDtcbn1cblxuLy8gRm9ybWF0IGNyZWRpdHNcbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDcmVkaXRzKGNyZWRpdHM6IG51bWJlcik6IHN0cmluZyB7XG4gIHJldHVybiBgJHtjcmVkaXRzLnRvTG9jYWxlU3RyaW5nKCl9IGNyZWRpdHNgO1xufVxuXG4vLyBGb3JtYXQgcGhvbmUgbnVtYmVyXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UGhvbmUocGhvbmU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjb2xvcnMuY29kZShwaG9uZSk7XG59XG5cbi8vIEhlYWRlciBmb3IgY29tbWFuZHNcbmV4cG9ydCBmdW5jdGlvbiBoZWFkZXIodGl0bGU6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoaXNKc29uTW9kZSgpIHx8IHF1aWV0TW9kZSkgcmV0dXJuO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZChjb2xvcnMucHJpbWFyeSh0aXRsZSkpKTtcbiAgY29uc29sZS5sb2coY29sb3JzLmRpbShcIuKUgFwiLnJlcGVhdCg0MCkpKTtcbn1cblxuLy8gRGl2aWRlclxuZXhwb3J0IGZ1bmN0aW9uIGRpdmlkZXIoKTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkgfHwgcXVpZXRNb2RlKSByZXR1cm47XG4gIGNvbnNvbGUubG9nKCk7XG59XG5cbi8vIEtleS12YWx1ZSBkaXNwbGF5IC0gYWNjZXB0cyBSZWNvcmQgb3IgYXJyYXkgb2YgW2tleSwgdmFsdWVdIHR1cGxlc1xuZXhwb3J0IGZ1bmN0aW9uIGtleVZhbHVlKGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgQXJyYXk8W3N0cmluZywgc3RyaW5nIHwgbnVtYmVyXT4pOiB2b2lkIHtcbiAgY29uc3QgZW50cmllcyA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBkYXRhIDogT2JqZWN0LmVudHJpZXMoZGF0YSk7XG5cbiAgaWYgKGlzSnNvbk1vZGUoKSkge1xuICAgIGNvbnN0IG9iaiA9IEFycmF5LmlzQXJyYXkoZGF0YSkgPyBPYmplY3QuZnJvbUVudHJpZXMoZGF0YSkgOiBkYXRhO1xuICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KG9iaiwgbnVsbCwgMikpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IG1heEtleUxlbmd0aCA9IE1hdGgubWF4KC4uLmVudHJpZXMubWFwKChba10pID0+IGsubGVuZ3RoKSk7XG5cbiAgZW50cmllcy5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBjb25zdCBwYWRkZWRLZXkgPSBrZXkucGFkRW5kKG1heEtleUxlbmd0aCk7XG4gICAgY29uc29sZS5sb2coYCAgJHtjb2xvcnMuZGltKHBhZGRlZEtleSl9ICAke3ZhbHVlfWApO1xuICB9KTtcbn1cblxuLy8gRGV0YWlsIHZpZXcgd2l0aCB0aXRsZSBhbmQga2V5LXZhbHVlIHBhaXJzXG5leHBvcnQgZnVuY3Rpb24gZGV0YWlsKHRpdGxlOiBzdHJpbmcsIGRhdGE6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IHRpdGxlLCAuLi5kYXRhIH0sIG51bGwsIDIpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmxvZyhjb2xvcnMuYm9sZCh0aXRsZSkpO1xuICBjb25zb2xlLmxvZygpO1xuICBrZXlWYWx1ZShkYXRhKTtcbn1cblxuLy8gQ29kZSBibG9ja1xuZXhwb3J0IGZ1bmN0aW9uIGNvZGVCbG9jayhjb2RlOiBzdHJpbmcsIGxhbmd1YWdlPzogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChpc0pzb25Nb2RlKCkpIHtcbiAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7IGNvZGUsIGxhbmd1YWdlIH0sIG51bGwsIDIpKTtcbiAgICByZXR1cm47XG4gIH1cblxuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiYGBgXCIgKyAobGFuZ3VhZ2UgfHwgXCJcIikpKTtcbiAgY29uc29sZS5sb2coY29sb3JzLmNvZGUoY29kZSkpO1xuICBjb25zb2xlLmxvZyhjb2xvcnMuZGltKFwiYGBgXCIpKTtcbiAgY29uc29sZS5sb2coKTtcbn1cbiJdfQ==
|