@liflig/cdk 3.24.0 → 3.24.2
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/assets/slack-error-log-handler-lambda/__pycache__/index.cpython-314.pyc +0 -0
- package/assets/slack-error-log-handler-lambda/__pycache__/{test_handler.cpython-314-pytest-9.0.2.pyc → test_handler.cpython-314-pytest-9.0.3.pyc} +0 -0
- package/assets/slack-error-log-handler-lambda/uv.lock +9 -9
- package/lib/alarms/service-alarms.d.ts +3 -2
- package/lib/alarms/service-alarms.js +3 -2
- package/lib/rds/database.d.ts +0 -19
- package/lib/rds/database.js +1 -7
- package/package.json +1 -1
|
Binary file
|
|
Binary file
|
|
@@ -4,30 +4,30 @@ requires-python = ">=3.14"
|
|
|
4
4
|
|
|
5
5
|
[[package]]
|
|
6
6
|
name = "boto3"
|
|
7
|
-
version = "1.42.
|
|
7
|
+
version = "1.42.89"
|
|
8
8
|
source = { registry = "https://pypi.org/simple" }
|
|
9
9
|
dependencies = [
|
|
10
10
|
{ name = "botocore" },
|
|
11
11
|
{ name = "jmespath" },
|
|
12
12
|
{ name = "s3transfer" },
|
|
13
13
|
]
|
|
14
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
14
|
+
sdist = { url = "https://files.pythonhosted.org/packages/bb/0c/f7bccb22b245cabf392816baba20f9e95f78ace7dbc580fd40136e80e732/boto3-1.42.89.tar.gz", hash = "sha256:3e43aacc0801bba9bcd23a8c271c089af297a69565f783fcdd357ae0e330bf1e", size = 113165, upload-time = "2026-04-13T19:36:17.516Z" }
|
|
15
15
|
wheels = [
|
|
16
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
16
|
+
{ url = "https://files.pythonhosted.org/packages/b9/33/55103ba5ef9975ea54b8d39e69b76eb6e9fded3beae5f01065e26951a3a1/boto3-1.42.89-py3-none-any.whl", hash = "sha256:6204b189f4d0c655535f43d7eaa57ff4e8d965b8463c97e45952291211162932", size = 140556, upload-time = "2026-04-13T19:36:13.894Z" },
|
|
17
17
|
]
|
|
18
18
|
|
|
19
19
|
[[package]]
|
|
20
20
|
name = "botocore"
|
|
21
|
-
version = "1.42.
|
|
21
|
+
version = "1.42.89"
|
|
22
22
|
source = { registry = "https://pypi.org/simple" }
|
|
23
23
|
dependencies = [
|
|
24
24
|
{ name = "jmespath" },
|
|
25
25
|
{ name = "python-dateutil" },
|
|
26
26
|
{ name = "urllib3" },
|
|
27
27
|
]
|
|
28
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
28
|
+
sdist = { url = "https://files.pythonhosted.org/packages/0f/cc/e6be943efa9051bd15c2ee14077c2b10d6e27c9e9385fc43a03a5c4ed8b5/botocore-1.42.89.tar.gz", hash = "sha256:95ac52f472dad29942f3088b278ab493044516c16dbf9133c975af16527baa99", size = 15206290, upload-time = "2026-04-13T19:36:02.321Z" }
|
|
29
29
|
wheels = [
|
|
30
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
30
|
+
{ url = "https://files.pythonhosted.org/packages/91/f1/90a7b8eda38b7c3a65ca7ee0075bdf310b6b471cb1b95fab6e8994323a50/botocore-1.42.89-py3-none-any.whl", hash = "sha256:d9b786c8d9db6473063b4cc5be0ba7e6a381082307bd6afb69d4216f9fa95f35", size = 14887287, upload-time = "2026-04-13T19:35:56.677Z" },
|
|
31
31
|
]
|
|
32
32
|
|
|
33
33
|
[[package]]
|
|
@@ -86,7 +86,7 @@ wheels = [
|
|
|
86
86
|
|
|
87
87
|
[[package]]
|
|
88
88
|
name = "pytest"
|
|
89
|
-
version = "9.0.
|
|
89
|
+
version = "9.0.3"
|
|
90
90
|
source = { registry = "https://pypi.org/simple" }
|
|
91
91
|
dependencies = [
|
|
92
92
|
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
@@ -95,9 +95,9 @@ dependencies = [
|
|
|
95
95
|
{ name = "pluggy" },
|
|
96
96
|
{ name = "pygments" },
|
|
97
97
|
]
|
|
98
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
98
|
+
sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" }
|
|
99
99
|
wheels = [
|
|
100
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
100
|
+
{ url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" },
|
|
101
101
|
]
|
|
102
102
|
|
|
103
103
|
[[package]]
|
|
@@ -45,8 +45,9 @@ export declare class ServiceAlarms extends constructs.Construct {
|
|
|
45
45
|
logGroup: logs.ILogGroup;
|
|
46
46
|
alarmDescription?: string;
|
|
47
47
|
/**
|
|
48
|
-
* Set to `
|
|
49
|
-
*
|
|
48
|
+
* Set to `true` to attach OK actions when the alarm returns to OK.
|
|
49
|
+
* By default OK actions are NOT attached.
|
|
50
|
+
* @default false
|
|
50
51
|
*/
|
|
51
52
|
enableOkAlarm?: boolean;
|
|
52
53
|
/**
|
|
@@ -54,7 +54,8 @@ export class ServiceAlarms extends constructs.Construct {
|
|
|
54
54
|
// Default to the warning action
|
|
55
55
|
const actionToUse = props.action ?? this.warningAction;
|
|
56
56
|
errorAlarm.addAlarmAction(actionToUse);
|
|
57
|
-
|
|
57
|
+
// By default do NOT attach OK actions for this alarm.
|
|
58
|
+
if (props.enableOkAlarm ?? false) {
|
|
58
59
|
errorAlarm.addOkAction(actionToUse);
|
|
59
60
|
}
|
|
60
61
|
}
|
|
@@ -236,4 +237,4 @@ export class ServiceAlarms extends constructs.Construct {
|
|
|
236
237
|
}
|
|
237
238
|
}
|
|
238
239
|
}
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hbGFybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NlcnZpY2UtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUE7QUFFeEQsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQTtBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sbUNBQW1DLENBQUE7QUFDckUsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFzQjlEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3BDLFdBQVcsQ0FBeUI7SUFDcEMsYUFBYSxDQUF5QjtJQUN0QyxXQUFXLENBQVE7SUFDbkIsVUFBVSxDQUFtQjtJQUU5QyxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUF5QjtRQUV6QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQTtRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLEtBWWpCO1FBQ0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQTtRQUVqQyw2Q0FBNkM7UUFDN0MsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENB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dCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIlxuaW1wb3J0ICogYXMgbG9nc0Rlc3RpbmF0aW9ucyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3MtZGVzdGluYXRpb25zXCJcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsganNvbkVycm9yRmlsdGVyUGF0dGVybiB9IGZyb20gXCIuL2xvZy1maWx0ZXItcGF0dGVybnNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VBbGFybXNQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBDbG91ZFdhdGNoIEFsYXJtIGFjdGlvbiB0byB1c2UgZm9yIGhpZ2gtc2V2ZXJpdHkgYWxhcm1zLlxuICAgKi9cbiAgYWxhcm1BY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBBbGFybSBhY3Rpb24gdG8gdXNlIGZvciB3YXJuaW5ncy5cbiAgICovXG4gIHdhcm5pbmdBY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgRUNTIHNlcnZpY2UuXG4gICAqL1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBPcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gdGhhdCB3aWxsIHJlY2VpdmUgZm9yd2FyZGVkIGxvZyBldmVudHMuXG4gICAqIElmIHByb3ZpZGVkLCBzdWJzY3JpcHRpb24gZmlsdGVycyB3aWxsIGJlIGNyZWF0ZWQgdG8gZm9yd2FyZCBtYXRjaGluZyBsb2dzLlxuICAgKi9cbiAgbG9nSGFuZGxlcj86IGxhbWJkYS5JRnVuY3Rpb25cbn1cblxuLyoqXG4gKiBWYXJpb3VzIGFsYXJtcyBhbmQgbW9uaXRvcmluZy5cbiAqXG4gKiBCeSBpdHNlbGYgbm8gYWxhcm1zIGlzIGNyZWF0ZWQuIFVzZSB0aGUgbWV0aG9kcyBhdmFpbGFibGVcbiAqIHRvIGFkZCBhbGFybXMuXG4gKlxuICogU2VlIFNsYWNrQWxhcm0gY29uc3RydWN0IGZvciBTTlMgQWN0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUFsYXJtcyBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBhbGFybUFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSB3YXJuaW5nQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VOYW1lOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dIYW5kbGVyPzogbGFtYmRhLklGdW5jdGlvblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTZXJ2aWNlQWxhcm1zUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuYWxhcm1BY3Rpb24gPSBwcm9wcy5hbGFybUFjdGlvblxuICAgIHRoaXMud2FybmluZ0FjdGlvbiA9IHByb3BzLndhcm5pbmdBY3Rpb25cbiAgICB0aGlzLnNlcnZpY2VOYW1lID0gcHJvcHMuc2VydmljZU5hbWVcbiAgICB0aGlzLmxvZ0hhbmRsZXIgPSBwcm9wcy5sb2dIYW5kbGVyXG4gIH1cblxuICAvKipcbiAgICogRm9yIGxvZ3Mgc3RvcmVkIGFzIEpTT04sIG1vbml0b3IgbG9nIGVudHJpZXMgbG9nZ2VkXG4gICAqIHdpdGggbGV2ZWwgRVJST1Igb3IgaGlnaGVyLCBhcyB3ZWxsIGFzIGFueSByZXF1ZXN0c1xuICAgKiB0aGF0IGNhdXNlcyA1MDAgZm9yIGxvZ2dpbmcgd2l0aCBsaWZsaWctbG9nZ2luZy5cbiAgICovXG4gIGFkZEpzb25FcnJvckFsYXJtKHByb3BzOiB7XG4gICAgbG9nR3JvdXA6IGxvZ3MuSUxvZ0dyb3VwXG4gICAgYWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFNldCB0byBgZmFsc2VgIHRvIHN0b3AgdGhlIGFsYXJtIGZyb20gc2VuZGluZyBPSyBldmVudHMuXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgLyoqXG4gICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICovXG4gICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgfSk6IHZvaWQge1xuICAgIGNvbnN0IGdyb3VwVG9Vc2UgPSBwcm9wcy5sb2dHcm91cFxuXG4gICAgLy8gSWYgbm8gbG9nIGhhbmRsZXIgaXMgY29uZmlndXJlZCwgd2UgY3JlYXRlXG4gICAgLy8gdGhlIHNpbXBsZSBcIkVSUk9SXCIgbWV0cmljIGFsYXJtLlxuICAgIGlmICghdGhpcy5sb2dIYW5kbGVyKSB7XG4gICAgICBjb25zdCBlcnJvck1ldHJpY0ZpbHRlciA9IGdyb3VwVG9Vc2UuYWRkTWV0cmljRmlsdGVyKFxuICAgICAgICBcIkVycm9yTWV0cmljRmlsdGVyXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBmaWx0ZXJQYXR0ZXJuOiBqc29uRXJyb3JGaWx0ZXJQYXR0ZXJuKCksXG4gICAgICAgICAgbWV0cmljTmFtZTogXCJFcnJvcnNcIixcbiAgICAgICAgICBtZXRyaWNOYW1lc3BhY2U6IGBzdGFjay8ke2Nkay5TdGFjay5vZih0aGlzKS5zdGFja05hbWV9LyR7dGhpcy5zZXJ2aWNlTmFtZX0vRXJyb3JzYCxcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgY29uc3QgZXJyb3JBbGFybSA9IGVycm9yTWV0cmljRmlsdGVyXG4gICAgICAgIC5tZXRyaWMoKVxuICAgICAgICAud2l0aCh7XG4gICAgICAgICAgc3RhdGlzdGljOiBcIlN1bVwiLFxuICAgICAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgICB9KVxuICAgICAgICAuY3JlYXRlQWxhcm0odGhpcywgXCJFcnJvckxvZ0FsYXJtXCIsIHtcbiAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgcHJvcHMuYWxhcm1EZXNjcmlwdGlvbiA/PyBgJHt0aGlzLnNlcnZpY2VOYW1lfSBsb2dnZWQgYW4gZXJyb3JgLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgICAgfSlcblxuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgd2FybmluZyBhY3Rpb25cbiAgICAgIGNvbnN0IGFjdGlvblRvVXNlID0gcHJvcHMuYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgICAgZXJyb3JBbGFybS5hZGRBbGFybUFjdGlvbihhY3Rpb25Ub1VzZSlcbiAgICAgIGlmIChwcm9wcy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgZXJyb3JBbGFybS5hZGRPa0FjdGlvbihhY3Rpb25Ub1VzZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5sb2dIYW5kbGVyKSB7XG4gICAgICBwcm9wcy5sb2dHcm91cC5hZGRTdWJzY3JpcHRpb25GaWx0ZXIoXG4gICAgICAgIFwibGlmbGlnLWNkay1sb2ctY29udGVudC10by1zbGFjay1lcnJvci1zdWJzY3JpcHRpb25cIixcbiAgICAgICAge1xuICAgICAgICAgIGRlc3RpbmF0aW9uOiBuZXcgbG9nc0Rlc3RpbmF0aW9ucy5MYW1iZGFEZXN0aW5hdGlvbih0aGlzLmxvZ0hhbmRsZXIpLFxuICAgICAgICAgIGZpbHRlclBhdHRlcm46IGpzb25FcnJvckZpbHRlclBhdHRlcm4oKSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBhZGRVbmNhdWdodEphdmFFeGNlcHRpb25BbGFybShwcm9wczoge1xuICAgIGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cFxuICAgIGFsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICB9KTogdm9pZCB7XG4gICAgaWYgKHByb3BzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGZpbHRlclBhdHRlcm4gPSBsb2dzLkZpbHRlclBhdHRlcm4uYWxsVGVybXMoXCJFeGNlcHRpb24gaW4gdGhyZWFkXCIpXG5cbiAgICAgIC8vIElmIG5vIGxvZyBoYW5kbGVyIGlzIGNvbmZpZ3VyZWQsIGNyZWF0ZSBhIHNpbXBsZSBtZXRyaWMgYWxhcm0uXG4gICAgICBpZiAoIXRoaXMubG9nSGFuZGxlcikge1xuICAgICAgICBjb25zdCBlcnJvck1ldHJpY0ZpbHRlciA9IHByb3BzLmxvZ0dyb3VwLmFkZE1ldHJpY0ZpbHRlcihcbiAgICAgICAgICBcIlVuY2F1Z2h0SmF2YUV4Y2VwdGlvbkZpbHRlclwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGZpbHRlclBhdHRlcm46IGZpbHRlclBhdHRlcm4sXG4gICAgICAgICAgICBtZXRyaWNOYW1lOiBcIlVuY2F1Z2h0SmF2YUV4Y2VwdGlvblwiLFxuICAgICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBgc3RhY2svJHtjZGsuU3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS8ke3RoaXMuc2VydmljZU5hbWV9L1VuY2F1Z2h0SmF2YUV4Y2VwdGlvbmAsXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuXG4gICAgICAgIGNvbnN0IGVycm9yQWxhcm0gPSBlcnJvck1ldHJpY0ZpbHRlclxuICAgICAgICAgIC5tZXRyaWMoKVxuICAgICAgICAgIC53aXRoKHtcbiAgICAgICAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgICAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmNyZWF0ZUFsYXJtKHRoaXMsIFwiVW5jYXVnaHRKYXZhRXhjZXB0aW9uTG9nQWxhcm1cIiwge1xuICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgcHJvcHMuYWxhcm1EZXNjcmlwdGlvbiA/P1xuICAgICAgICAgICAgICBgJHt0aGlzLnNlcnZpY2VOYW1lfSBsb2dnZWQgYW4gdW5jYXVnaHQgSmF2YSBleGNlcHRpb25gLFxuICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgICAgICB9KVxuXG4gICAgICAgIC8vIERlZmF1bHQgdG8gdGhlIHdhcm5pbmcgYWN0aW9uXG4gICAgICAgIGNvbnN0IGFjdGlvblRvVXNlID0gcHJvcHMuYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgICAgICBlcnJvckFsYXJtLmFkZEFsYXJtQWN0aW9uKGFjdGlvblRvVXNlKVxuICAgICAgICBpZiAocHJvcHMuZW5hYmxlT2tBbGFybSA/PyB0cnVlKSB7XG4gICAgICAgICAgZXJyb3JBbGFybS5hZGRPa0FjdGlvbihhY3Rpb25Ub1VzZSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBJZiBhIGxvZyBoYW5kbGVyIGlzIGNvbmZpZ3VyZWQsIGZvcndhcmQgbWF0Y2hpbmcgbG9ncyB0byBpdC5cbiAgICAgIGlmICh0aGlzLmxvZ0hhbmRsZXIpIHtcbiAgICAgICAgcHJvcHMubG9nR3JvdXAuYWRkU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgICAgICAgIFwibGlmbGlnLWNkay1sb2ctY29udGVudC10by1zbGFjay11bmNhdWdodC1leGNlcHRpb24tc3Vic2NyaXB0aW9uXCIsXG4gICAgICAgICAge1xuICAgICAgICAgICAgZGVzdGluYXRpb246IG5ldyBsb2dzRGVzdGluYXRpb25zLkxhbWJkYURlc3RpbmF0aW9uKFxuICAgICAgICAgICAgICB0aGlzLmxvZ0hhbmRsZXIsXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgZmlsdGVyUGF0dGVybjogZmlsdGVyUGF0dGVybixcbiAgICAgICAgICB9LFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgQ2xvdWRXYXRjaCBhbGFybXMgZm9yIG1vbml0b3JpbmcgYW4gRUNTIHNlcnZpY2UgYmVoaW5kIGEgdGFyZ2V0IGdyb3VwOlxuICAgKiAxKSBvbmUgdGhhdCB0cmlnZ2VycyBpZiB0aGUgdGFyZ2V0IGlzIHJlc3BvbmRpbmcgd2l0aCB0b28gbWFueSA1eHggZXJyb3JzIChhZ2dyZWdhdGUgNXh4IGNvdW50KS5cbiAgICogMikgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIDk1JSBwZXJjZW50aWxlIG9mIHJlc3BvbnNlIHRpbWVzIGZyb20gdGhlIHRhcmdldCBpcyB0b28gaGlnaC5cbiAgICogMykgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlcmUgYXJlIG5vIGhlYWx0aHkgdGFyZ2V0cyBvciBpZiB0aGUgbG9hZCBiYWxhbmNlciBmYWlscyB0byBjb25uZWN0IHRvIHRhcmdldHMuXG4gICAqIDQpIGEgc2luZ2xlNXh4UmVzcG9uc2VBbGFybSB3aGljaCB0cmlnZ2VycyBvbiBhIHNpbmdsZSA1eHggcmVzcG9uc2UgZnJvbSBhIHRhcmdldC5cbiAgICovXG4gIGFkZFRhcmdldEdyb3VwQWxhcm1zKHByb3BzOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGZ1bGwgbmFtZSBvZiB0aGUgdGFyZ2V0IGdyb3VwLlxuICAgICAqL1xuICAgIHRhcmdldEdyb3VwRnVsbE5hbWU6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIGxvYWQgYmFsYW5jZXIuXG4gICAgICovXG4gICAgbG9hZEJhbGFuY2VyRnVsbE5hbWU6IHN0cmluZ1xuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGEgY29tcG9zaXRlIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgdGFyZ2V0SGVhbHRoQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNjAgc2Vjb25kc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICovXG4gICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBXaGV0aGVyIHRvIGF0dGFjaCBPSyBhY3Rpb25zIGZvciB0aGlzIGFsYXJtLiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA2MCBzZWNvbmRzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAzXG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDEwXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICB0YXJnZXRSZXNwb25zZVRpbWVBbGFybT86IHtcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVkPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBXaGV0aGVyIHRvIGF0dGFjaCBPSyBhY3Rpb25zIGZvciB0aGlzIGFsYXJtLiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAgICovXG4gICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCA1IG1pbnV0ZXNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMXNcbiAgICAgICAqL1xuICAgICAgdGhyZXNob2xkPzogY2RrLkR1cmF0aW9uXG4gICAgICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhbiBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNjAgc2Vjb25kc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICovXG4gICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9XG4gIH0pOiB2b2lkIHtcbiAgICBpZiAocHJvcHMuc2luZ2xlNXh4UmVzcG9uc2VBbGFybT8uZW5hYmxlZCAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHNpbmdsZTV4eE1ldHJpYyA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICAgIG1ldHJpY05hbWU6IFwiSFRUUENvZGVfVGFyZ2V0XzVYWF9Db3VudFwiLFxuICAgICAgICBuYW1lc3BhY2U6IFwiQVdTL0FwcGxpY2F0aW9uRUxCXCIsXG4gICAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgICAgcGVyaW9kOlxuICAgICAgICAgIHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgY29uc3Qgc2luZ2xlNXh4QWxhcm0gPSBzaW5nbGU1eHhNZXRyaWMuY3JlYXRlQWxhcm0oXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiQWxiVGFyZ2V0c1NpbmdsZTV4eEFsYXJtXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBhY3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgcHJvcHMuc2luZ2xlNXh4UmVzcG9uc2VBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICAgIGBMb2FkIGJhbGFuY2VyIHJlY2VpdmVkIGEgNVhYIHJlc3BvbnNlIGZyb20gdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9Jy5gLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICAgICAgcHJvcHMuc2luZ2xlNXh4UmVzcG9uc2VBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgICAgICB0aHJlc2hvbGQ6IHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LnRocmVzaG9sZCA/PyAxLFxuICAgICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgICAgICB9LFxuICAgICAgKVxuXG4gICAgICAvLyBTZW50IHRvIHdhcm5pbmdzIGNoYW5uZWwgYnkgZGVmYXVsdFxuICAgICAgY29uc3Qgc2luZ2xlNXh4QWN0aW9uID1cbiAgICAgICAgcHJvcHMuc2luZ2xlNXh4UmVzcG9uc2VBbGFybT8uYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgICAgc2luZ2xlNXh4QWxhcm0uYWRkQWxhcm1BY3Rpb24oc2luZ2xlNXh4QWN0aW9uKVxuICAgICAgaWYgKHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICBzaW5nbGU1eHhBbGFybS5hZGRPa0FjdGlvbihzaW5nbGU1eHhBY3Rpb24pXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0Q29ubmVjdGlvbkVycm9yQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJUYXJnZXRDb25uZWN0aW9uRXJyb3JDb3VudFwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgc3RhdGlzdGljOiBcIlN1bVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiQ29ubmVjdGlvbkFsYXJtXCIsIHtcbiAgICAgIGFjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYExvYWQgYmFsYW5jZXIgaXMgZmFpbGluZyB0byBjb25uZWN0IHRvIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgIH0pXG5cbiAgICBjb25zdCBoZWFsdGhBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkhlYWx0aHlIb3N0Q291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJNaW5pbXVtXCIsXG4gICAgICBwZXJpb2Q6IHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgICAgTG9hZEJhbGFuY2VyOiBwcm9wcy5sb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJIZWFsdGhBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgVGhlcmUgYXJlIG5vIGhlYWx0aHkgdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9Jy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5MRVNTX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLkJSRUFDSElORyxcbiAgICB9KVxuXG4gICAgY29uc3QgdGFyZ2V0SGVhbHRoQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5Db21wb3NpdGVBbGFybShcbiAgICAgIHRoaXMsXG4gICAgICBcIlRhcmdldEhlYWx0aEFsYXJtXCIsXG4gICAgICB7XG4gICAgICAgIGFsYXJtUnVsZTogY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5hbnlPZihcbiAgICAgICAgICBjZGsuYXdzX2Nsb3Vkd2F0Y2guQWxhcm1SdWxlLmZyb21BbGFybShcbiAgICAgICAgICAgIHRhcmdldENvbm5lY3Rpb25FcnJvckFsYXJtLFxuICAgICAgICAgICAgY2xvdWR3YXRjaC5BbGFybVN0YXRlLkFMQVJNLFxuICAgICAgICAgICksXG4gICAgICAgICAgY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5mcm9tQWxhcm0oXG4gICAgICAgICAgICBoZWFsdGhBbGFybSxcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2guQWxhcm1TdGF0ZS5BTEFSTSxcbiAgICAgICAgICApLFxuICAgICAgICApLFxuICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgIHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICAgIGBUaGUgbG9hZCBiYWxhbmNlciBpcyBlaXRoZXIgcmVjZWl2aW5nIGJhZCBoZWFsdGggY2hlY2tzIGZyb20gb3IgaXMgdW5hYmxlIHRvIGNvbm5lY3QgdG8gdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9J2AsXG4gICAgICB9LFxuICAgIClcbiAgICBpZiAocHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgYWxhcm0gYWN0aW9uXG4gICAgICBjb25zdCB0aEFjdGlvbiA9IHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5hY3Rpb24gPz8gdGhpcy5hbGFybUFjdGlvblxuICAgICAgdGFyZ2V0SGVhbHRoQWxhcm0uYWRkQWxhcm1BY3Rpb24odGhBY3Rpb24pXG4gICAgICBpZiAocHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICB0YXJnZXRIZWFsdGhBbGFybS5hZGRPa0FjdGlvbih0aEFjdGlvbilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIkhUVFBDb2RlX1RhcmdldF81WFhfQ291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgIHBlcmlvZDpcbiAgICAgICAgcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LnBlcmlvZCA/P1xuICAgICAgICBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhcmdldEdyb3VwOiBwcm9wcy50YXJnZXRHcm91cEZ1bGxOYW1lLFxuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkFsYlRhcmdldHM1eHhBbGFybVwiLCB7XG4gICAgICBhY3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5kZXNjcmlwdGlvbiA/P1xuICAgICAgICBgTG9hZCBiYWxhbmNlciByZWNlaXZlZCB0b28gbWFueSA1WFggcmVzcG9uc2VzIGZyb20gdGFyZ2V0KHMpIGluIEVDUyBzZXJ2aWNlICcke3RoaXMuc2VydmljZU5hbWV9Jy5gLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAzLFxuICAgICAgdGhyZXNob2xkOiBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8udGhyZXNob2xkID8/IDEwLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgfSlcbiAgICBpZiAocHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgYWxhcm0gYWN0aW9uXG4gICAgICBjb25zdCBmaXZlWEFjdGlvbiA9XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5hY3Rpb24gPz8gdGhpcy5hbGFybUFjdGlvblxuICAgICAgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0uYWRkQWxhcm1BY3Rpb24oZml2ZVhBY3Rpb24pXG4gICAgICBpZiAocHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICB0b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybS5hZGRPa0FjdGlvbihmaXZlWEFjdGlvbilcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB0YXJnZXRSZXNwb25zZVRpbWVBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlRhcmdldFJlc3BvbnNlVGltZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgc3RhdGlzdGljOiBcInA5NVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJUYXJnZXRSZXNwb25zZVRpbWVBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgYDUlIG9mIHJlc3BvbnNlcyBmcm9tIEVDUyBzZXJ2aWNlICcke1xuICAgICAgICAgIHRoaXMuc2VydmljZU5hbWVcbiAgICAgICAgfScgYXJlIHRha2luZyBsb25nZXIgdGhhbiB0aGUgZXhwZWN0ZWQgZHVyYXRpb24gb2YgJHsoXG4gICAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LnRocmVzaG9sZCA/PyBjZGsuRHVyYXRpb24uc2Vjb25kcygxKVxuICAgICAgICApLnRvU2Vjb25kcyh7IGludGVncmFsOiBmYWxzZSB9KX0gcy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgdGhyZXNob2xkOiAoXG4gICAgICAgIHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy50aHJlc2hvbGQgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoMSlcbiAgICAgICkudG9TZWNvbmRzKHsgaW50ZWdyYWw6IGZhbHNlIH0pLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICB9KVxuICAgIGlmIChwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uZW5hYmxlZCA/PyB0cnVlKSB7XG4gICAgICAvLyBEZWZhdWx0IHRvIHRoZSB3YXJuaW5nIGFjdGlvblxuICAgICAgY29uc3QgcnRBY3Rpb24gPVxuICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uYWN0aW9uID8/IHRoaXMud2FybmluZ0FjdGlvblxuICAgICAgdGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0uYWRkQWxhcm1BY3Rpb24ocnRBY3Rpb24pXG4gICAgICBpZiAocHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICB0YXJnZXRSZXNwb25zZVRpbWVBbGFybS5hZGRPa0FjdGlvbihydEFjdGlvbilcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
240
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hbGFybXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYWxhcm1zL3NlcnZpY2UtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNEJBQTRCLENBQUE7QUFFeEQsT0FBTyxLQUFLLElBQUksTUFBTSxzQkFBc0IsQ0FBQTtBQUM1QyxPQUFPLEtBQUssZ0JBQWdCLE1BQU0sbUNBQW1DLENBQUE7QUFDckUsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFzQjlEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3BDLFdBQVcsQ0FBeUI7SUFDcEMsYUFBYSxDQUF5QjtJQUN0QyxXQUFXLENBQVE7SUFDbkIsVUFBVSxDQUFtQjtJQUU5QyxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUF5QjtRQUV6QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDLFdBQVcsQ0FBQTtRQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUE7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFBO1FBQ3BDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQTtJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlCQUFpQixDQUFDLEtBYWpCO1FBQ0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQTtRQUVqQyw2Q0FBNkM7UUFDN0MsbUNBQW1DO1FBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENB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dGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCB0eXBlICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCJcbmltcG9ydCAqIGFzIGxvZ3NEZXN0aW5hdGlvbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzLWRlc3RpbmF0aW9uc1wiXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB7IGpzb25FcnJvckZpbHRlclBhdHRlcm4gfSBmcm9tIFwiLi9sb2ctZmlsdGVyLXBhdHRlcm5zXCJcblxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlQWxhcm1zUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBBbGFybSBhY3Rpb24gdG8gdXNlIGZvciBoaWdoLXNldmVyaXR5IGFsYXJtcy5cbiAgICovXG4gIGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggQWxhcm0gYWN0aW9uIHRvIHVzZSBmb3Igd2FybmluZ3MuXG4gICAqL1xuICB3YXJuaW5nQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEVDUyBzZXJ2aWNlLlxuICAgKi9cbiAgc2VydmljZU5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogT3B0aW9uYWwgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgd2lsbCByZWNlaXZlIGZvcndhcmRlZCBsb2cgZXZlbnRzLlxuICAgKiBJZiBwcm92aWRlZCwgc3Vic2NyaXB0aW9uIGZpbHRlcnMgd2lsbCBiZSBjcmVhdGVkIHRvIGZvcndhcmQgbWF0Y2hpbmcgbG9ncy5cbiAgICovXG4gIGxvZ0hhbmRsZXI/OiBsYW1iZGEuSUZ1bmN0aW9uXG59XG5cbi8qKlxuICogVmFyaW91cyBhbGFybXMgYW5kIG1vbml0b3JpbmcuXG4gKlxuICogQnkgaXRzZWxmIG5vIGFsYXJtcyBpcyBjcmVhdGVkLiBVc2UgdGhlIG1ldGhvZHMgYXZhaWxhYmxlXG4gKiB0byBhZGQgYWxhcm1zLlxuICpcbiAqIFNlZSBTbGFja0FsYXJtIGNvbnN0cnVjdCBmb3IgU05TIEFjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNlcnZpY2VBbGFybXMgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYWxhcm1BY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgd2FybmluZ0FjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgcHJpdmF0ZSByZWFkb25seSBzZXJ2aWNlTmFtZTogc3RyaW5nXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nSGFuZGxlcj86IGxhbWJkYS5JRnVuY3Rpb25cblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogU2VydmljZUFsYXJtc1Byb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmFsYXJtQWN0aW9uID0gcHJvcHMuYWxhcm1BY3Rpb25cbiAgICB0aGlzLndhcm5pbmdBY3Rpb24gPSBwcm9wcy53YXJuaW5nQWN0aW9uXG4gICAgdGhpcy5zZXJ2aWNlTmFtZSA9IHByb3BzLnNlcnZpY2VOYW1lXG4gICAgdGhpcy5sb2dIYW5kbGVyID0gcHJvcHMubG9nSGFuZGxlclxuICB9XG5cbiAgLyoqXG4gICAqIEZvciBsb2dzIHN0b3JlZCBhcyBKU09OLCBtb25pdG9yIGxvZyBlbnRyaWVzIGxvZ2dlZFxuICAgKiB3aXRoIGxldmVsIEVSUk9SIG9yIGhpZ2hlciwgYXMgd2VsbCBhcyBhbnkgcmVxdWVzdHNcbiAgICogdGhhdCBjYXVzZXMgNTAwIGZvciBsb2dnaW5nIHdpdGggbGlmbGlnLWxvZ2dpbmcuXG4gICAqL1xuICBhZGRKc29uRXJyb3JBbGFybShwcm9wczoge1xuICAgIGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cFxuICAgIGFsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBTZXQgdG8gYHRydWVgIHRvIGF0dGFjaCBPSyBhY3Rpb25zIHdoZW4gdGhlIGFsYXJtIHJldHVybnMgdG8gT0suXG4gICAgICogQnkgZGVmYXVsdCBPSyBhY3Rpb25zIGFyZSBOT1QgYXR0YWNoZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgIC8qKlxuICAgICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgICAqL1xuICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIH0pOiB2b2lkIHtcbiAgICBjb25zdCBncm91cFRvVXNlID0gcHJvcHMubG9nR3JvdXBcblxuICAgIC8vIElmIG5vIGxvZyBoYW5kbGVyIGlzIGNvbmZpZ3VyZWQsIHdlIGNyZWF0ZVxuICAgIC8vIHRoZSBzaW1wbGUgXCJFUlJPUlwiIG1ldHJpYyBhbGFybS5cbiAgICBpZiAoIXRoaXMubG9nSGFuZGxlcikge1xuICAgICAgY29uc3QgZXJyb3JNZXRyaWNGaWx0ZXIgPSBncm91cFRvVXNlLmFkZE1ldHJpY0ZpbHRlcihcbiAgICAgICAgXCJFcnJvck1ldHJpY0ZpbHRlclwiLFxuICAgICAgICB7XG4gICAgICAgICAgZmlsdGVyUGF0dGVybjoganNvbkVycm9yRmlsdGVyUGF0dGVybigpLFxuICAgICAgICAgIG1ldHJpY05hbWU6IFwiRXJyb3JzXCIsXG4gICAgICAgICAgbWV0cmljTmFtZXNwYWNlOiBgc3RhY2svJHtjZGsuU3RhY2sub2YodGhpcykuc3RhY2tOYW1lfS8ke3RoaXMuc2VydmljZU5hbWV9L0Vycm9yc2AsXG4gICAgICAgIH0sXG4gICAgICApXG5cbiAgICAgIGNvbnN0IGVycm9yQWxhcm0gPSBlcnJvck1ldHJpY0ZpbHRlclxuICAgICAgICAubWV0cmljKClcbiAgICAgICAgLndpdGgoe1xuICAgICAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgICAgfSlcbiAgICAgICAgLmNyZWF0ZUFsYXJtKHRoaXMsIFwiRXJyb3JMb2dBbGFybVwiLCB7XG4gICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIHByb3BzLmFsYXJtRGVzY3JpcHRpb24gPz8gYCR7dGhpcy5zZXJ2aWNlTmFtZX0gbG9nZ2VkIGFuIGVycm9yYCxcbiAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICAgIH0pXG5cbiAgICAgIC8vIERlZmF1bHQgdG8gdGhlIHdhcm5pbmcgYWN0aW9uXG4gICAgICBjb25zdCBhY3Rpb25Ub1VzZSA9IHByb3BzLmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICAgIGVycm9yQWxhcm0uYWRkQWxhcm1BY3Rpb24oYWN0aW9uVG9Vc2UpXG4gICAgICAvLyBCeSBkZWZhdWx0IGRvIE5PVCBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS5cbiAgICAgIGlmIChwcm9wcy5lbmFibGVPa0FsYXJtID8/IGZhbHNlKSB7XG4gICAgICAgIGVycm9yQWxhcm0uYWRkT2tBY3Rpb24oYWN0aW9uVG9Vc2UpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubG9nSGFuZGxlcikge1xuICAgICAgcHJvcHMubG9nR3JvdXAuYWRkU3Vic2NyaXB0aW9uRmlsdGVyKFxuICAgICAgICBcImxpZmxpZy1jZGstbG9nLWNvbnRlbnQtdG8tc2xhY2stZXJyb3Itc3Vic2NyaXB0aW9uXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBkZXN0aW5hdGlvbjogbmV3IGxvZ3NEZXN0aW5hdGlvbnMuTGFtYmRhRGVzdGluYXRpb24odGhpcy5sb2dIYW5kbGVyKSxcbiAgICAgICAgICBmaWx0ZXJQYXR0ZXJuOiBqc29uRXJyb3JGaWx0ZXJQYXR0ZXJuKCksXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgfVxuICB9XG5cbiAgYWRkVW5jYXVnaHRKYXZhRXhjZXB0aW9uQWxhcm0ocHJvcHM6IHtcbiAgICBsb2dHcm91cDogbG9ncy5JTG9nR3JvdXBcbiAgICBhbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgLyoqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBlbmFibGVkPzogYm9vbGVhblxuICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgfSk6IHZvaWQge1xuICAgIGlmIChwcm9wcy5lbmFibGVkKSB7XG4gICAgICBjb25zdCBmaWx0ZXJQYXR0ZXJuID0gbG9ncy5GaWx0ZXJQYXR0ZXJuLmFsbFRlcm1zKFwiRXhjZXB0aW9uIGluIHRocmVhZFwiKVxuXG4gICAgICAvLyBJZiBubyBsb2cgaGFuZGxlciBpcyBjb25maWd1cmVkLCBjcmVhdGUgYSBzaW1wbGUgbWV0cmljIGFsYXJtLlxuICAgICAgaWYgKCF0aGlzLmxvZ0hhbmRsZXIpIHtcbiAgICAgICAgY29uc3QgZXJyb3JNZXRyaWNGaWx0ZXIgPSBwcm9wcy5sb2dHcm91cC5hZGRNZXRyaWNGaWx0ZXIoXG4gICAgICAgICAgXCJVbmNhdWdodEphdmFFeGNlcHRpb25GaWx0ZXJcIixcbiAgICAgICAgICB7XG4gICAgICAgICAgICBmaWx0ZXJQYXR0ZXJuOiBmaWx0ZXJQYXR0ZXJuLFxuICAgICAgICAgICAgbWV0cmljTmFtZTogXCJVbmNhdWdodEphdmFFeGNlcHRpb25cIixcbiAgICAgICAgICAgIG1ldHJpY05hbWVzcGFjZTogYHN0YWNrLyR7Y2RrLlN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZX0vJHt0aGlzLnNlcnZpY2VOYW1lfS9VbmNhdWdodEphdmFFeGNlcHRpb25gLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBlcnJvckFsYXJtID0gZXJyb3JNZXRyaWNGaWx0ZXJcbiAgICAgICAgICAubWV0cmljKClcbiAgICAgICAgICAud2l0aCh7XG4gICAgICAgICAgICBzdGF0aXN0aWM6IFwiU3VtXCIsXG4gICAgICAgICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jcmVhdGVBbGFybSh0aGlzLCBcIlVuY2F1Z2h0SmF2YUV4Y2VwdGlvbkxvZ0FsYXJtXCIsIHtcbiAgICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHByb3BzLmFsYXJtRGVzY3JpcHRpb24gPz9cbiAgICAgICAgICAgICAgYCR7dGhpcy5zZXJ2aWNlTmFtZX0gbG9nZ2VkIGFuIHVuY2F1Z2h0IEphdmEgZXhjZXB0aW9uYCxcbiAgICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgICAgICAgfSlcblxuICAgICAgICAvLyBEZWZhdWx0IHRvIHRoZSB3YXJuaW5nIGFjdGlvblxuICAgICAgICBjb25zdCBhY3Rpb25Ub1VzZSA9IHByb3BzLmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICAgICAgZXJyb3JBbGFybS5hZGRBbGFybUFjdGlvbihhY3Rpb25Ub1VzZSlcbiAgICAgICAgaWYgKHByb3BzLmVuYWJsZU9rQWxhcm0gPz8gdHJ1ZSkge1xuICAgICAgICAgIGVycm9yQWxhcm0uYWRkT2tBY3Rpb24oYWN0aW9uVG9Vc2UpXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSWYgYSBsb2cgaGFuZGxlciBpcyBjb25maWd1cmVkLCBmb3J3YXJkIG1hdGNoaW5nIGxvZ3MgdG8gaXQuXG4gICAgICBpZiAodGhpcy5sb2dIYW5kbGVyKSB7XG4gICAgICAgIHByb3BzLmxvZ0dyb3VwLmFkZFN1YnNjcmlwdGlvbkZpbHRlcihcbiAgICAgICAgICBcImxpZmxpZy1jZGstbG9nLWNvbnRlbnQtdG8tc2xhY2stdW5jYXVnaHQtZXhjZXB0aW9uLXN1YnNjcmlwdGlvblwiLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGRlc3RpbmF0aW9uOiBuZXcgbG9nc0Rlc3RpbmF0aW9ucy5MYW1iZGFEZXN0aW5hdGlvbihcbiAgICAgICAgICAgICAgdGhpcy5sb2dIYW5kbGVyLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIGZpbHRlclBhdHRlcm46IGZpbHRlclBhdHRlcm4sXG4gICAgICAgICAgfSxcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHVwIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBtb25pdG9yaW5nIGFuIEVDUyBzZXJ2aWNlIGJlaGluZCBhIHRhcmdldCBncm91cDpcbiAgICogMSkgb25lIHRoYXQgdHJpZ2dlcnMgaWYgdGhlIHRhcmdldCBpcyByZXNwb25kaW5nIHdpdGggdG9vIG1hbnkgNXh4IGVycm9ycyAoYWdncmVnYXRlIDV4eCBjb3VudCkuXG4gICAqIDIpIG9uZSB0aGF0IHRyaWdnZXJzIGlmIHRoZSA5NSUgcGVyY2VudGlsZSBvZiByZXNwb25zZSB0aW1lcyBmcm9tIHRoZSB0YXJnZXQgaXMgdG9vIGhpZ2guXG4gICAqIDMpIG9uZSB0aGF0IHRyaWdnZXJzIGlmIHRoZXJlIGFyZSBubyBoZWFsdGh5IHRhcmdldHMgb3IgaWYgdGhlIGxvYWQgYmFsYW5jZXIgZmFpbHMgdG8gY29ubmVjdCB0byB0YXJnZXRzLlxuICAgKiA0KSBhIHNpbmdsZTV4eFJlc3BvbnNlQWxhcm0gd2hpY2ggdHJpZ2dlcnMgb24gYSBzaW5nbGUgNXh4IHJlc3BvbnNlIGZyb20gYSB0YXJnZXQuXG4gICAqL1xuICBhZGRUYXJnZXRHcm91cEFsYXJtcyhwcm9wczoge1xuICAgIC8qKlxuICAgICAqIFRoZSBmdWxsIG5hbWUgb2YgdGhlIHRhcmdldCBncm91cC5cbiAgICAgKi9cbiAgICB0YXJnZXRHcm91cEZ1bGxOYW1lOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBUaGUgZnVsbCBuYW1lIG9mIHRoZSBhcHBsaWNhdGlvbiBsb2FkIGJhbGFuY2VyLlxuICAgICAqL1xuICAgIGxvYWRCYWxhbmNlckZ1bGxOYW1lOiBzdHJpbmdcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIGZvciBhIGNvbXBvc2l0ZSBhbGFybS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IENvbmZpZ3VyZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgICAqL1xuICAgIHRhcmdldEhlYWx0aEFsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDYwIHNlY29uZHNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNjAgc2Vjb25kc1xuICAgICAgICovXG4gICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgM1xuICAgICAgICovXG4gICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxMFxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfVxuICAgIC8qKlxuICAgICAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIGFsYXJtLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgQ29uZmlndXJlZCB3aXRoIHNhbmUgZGVmYXVsdHMuXG4gICAgICovXG4gICAgdGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/OiB7XG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZVxuICAgICAgICovXG4gICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgLyoqXG4gICAgICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICAgICAqL1xuICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgNSBtaW51dGVzXG4gICAgICAgKi9cbiAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCAxXG4gICAgICAgKi9cbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFzXG4gICAgICAgKi9cbiAgICAgIHRocmVzaG9sZD86IGNkay5EdXJhdGlvblxuICAgICAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICB9XG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBmb3IgYW4gYWxhcm0uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBDb25maWd1cmVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICAgKi9cbiAgICBzaW5nbGU1eHhSZXNwb25zZUFsYXJtPzoge1xuICAgICAgLyoqXG4gICAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICAgKi9cbiAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAvKipcbiAgICAgICAqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWVcbiAgICAgICAqL1xuICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgIC8qKlxuICAgICAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAgICAgKi9cbiAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDYwIHNlY29uZHNcbiAgICAgICAqL1xuICAgICAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gICAgICAvKipcbiAgICAgICAqIEBkZWZhdWx0IDFcbiAgICAgICAqL1xuICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgIC8qKlxuICAgICAgICogQGRlZmF1bHQgMVxuICAgICAgICovXG4gICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgfVxuICB9KTogdm9pZCB7XG4gICAgaWYgKHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LmVuYWJsZWQgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBzaW5nbGU1eHhNZXRyaWMgPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgICBtZXRyaWNOYW1lOiBcIkhUVFBDb2RlX1RhcmdldF81WFhfQ291bnRcIixcbiAgICAgICAgbmFtZXNwYWNlOiBcIkFXUy9BcHBsaWNhdGlvbkVMQlwiLFxuICAgICAgICBzdGF0aXN0aWM6IFwiU3VtXCIsXG4gICAgICAgIHBlcmlvZDpcbiAgICAgICAgICBwcm9wcy5zaW5nbGU1eHhSZXNwb25zZUFsYXJtPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgICAgTG9hZEJhbGFuY2VyOiBwcm9wcy5sb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHNpbmdsZTV4eEFsYXJtID0gc2luZ2xlNXh4TWV0cmljLmNyZWF0ZUFsYXJtKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkFsYlRhcmdldHNTaW5nbGU1eHhBbGFybVwiLFxuICAgICAgICB7XG4gICAgICAgICAgYWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgICAgICBgTG9hZCBiYWxhbmNlciByZWNlaXZlZCBhIDVYWCByZXNwb25zZSBmcm9tIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczpcbiAgICAgICAgICAgIHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICAgICAgdGhyZXNob2xkOiBwcm9wcy5zaW5nbGU1eHhSZXNwb25zZUFsYXJtPy50aHJlc2hvbGQgPz8gMSxcbiAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgLy8gU2VudCB0byB3YXJuaW5ncyBjaGFubmVsIGJ5IGRlZmF1bHRcbiAgICAgIGNvbnN0IHNpbmdsZTV4eEFjdGlvbiA9XG4gICAgICAgIHByb3BzLnNpbmdsZTV4eFJlc3BvbnNlQWxhcm0/LmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICAgIHNpbmdsZTV4eEFsYXJtLmFkZEFsYXJtQWN0aW9uKHNpbmdsZTV4eEFjdGlvbilcbiAgICAgIGlmIChwcm9wcy5zaW5nbGU1eHhSZXNwb25zZUFsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgc2luZ2xlNXh4QWxhcm0uYWRkT2tBY3Rpb24oc2luZ2xlNXh4QWN0aW9uKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldENvbm5lY3Rpb25FcnJvckFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiVGFyZ2V0Q29ubmVjdGlvbkVycm9yQ291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJTdW1cIixcbiAgICAgIHBlcmlvZDogcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIFRhcmdldEdyb3VwOiBwcm9wcy50YXJnZXRHcm91cEZ1bGxOYW1lLFxuICAgICAgICBMb2FkQmFsYW5jZXI6IHByb3BzLmxvYWRCYWxhbmNlckZ1bGxOYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIkNvbm5lY3Rpb25BbGFybVwiLCB7XG4gICAgICBhY3Rpb25zRW5hYmxlZDogdHJ1ZSxcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBMb2FkIGJhbGFuY2VyIGlzIGZhaWxpbmcgdG8gY29ubmVjdCB0byB0YXJnZXQocykgaW4gRUNTIHNlcnZpY2UgJyR7dGhpcy5zZXJ2aWNlTmFtZX0nLmAsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHMudGFyZ2V0SGVhbHRoQWxhcm0/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KVxuXG4gICAgY29uc3QgaGVhbHRoQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJIZWFsdGh5SG9zdENvdW50XCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL0FwcGxpY2F0aW9uRUxCXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiTWluaW11bVwiLFxuICAgICAgcGVyaW9kOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICAgIExvYWRCYWxhbmNlcjogcHJvcHMubG9hZEJhbGFuY2VyRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiSGVhbHRoQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYFRoZXJlIGFyZSBubyBoZWFsdGh5IHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuTEVTU19USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5CUkVBQ0hJTkcsXG4gICAgfSlcblxuICAgIGNvbnN0IHRhcmdldEhlYWx0aEFsYXJtID0gbmV3IGNsb3Vkd2F0Y2guQ29tcG9zaXRlQWxhcm0oXG4gICAgICB0aGlzLFxuICAgICAgXCJUYXJnZXRIZWFsdGhBbGFybVwiLFxuICAgICAge1xuICAgICAgICBhbGFybVJ1bGU6IGNkay5hd3NfY2xvdWR3YXRjaC5BbGFybVJ1bGUuYW55T2YoXG4gICAgICAgICAgY2RrLmF3c19jbG91ZHdhdGNoLkFsYXJtUnVsZS5mcm9tQWxhcm0oXG4gICAgICAgICAgICB0YXJnZXRDb25uZWN0aW9uRXJyb3JBbGFybSxcbiAgICAgICAgICAgIGNsb3Vkd2F0Y2guQWxhcm1TdGF0ZS5BTEFSTSxcbiAgICAgICAgICApLFxuICAgICAgICAgIGNkay5hd3NfY2xvdWR3YXRjaC5BbGFybVJ1bGUuZnJvbUFsYXJtKFxuICAgICAgICAgICAgaGVhbHRoQWxhcm0sXG4gICAgICAgICAgICBjbG91ZHdhdGNoLkFsYXJtU3RhdGUuQUxBUk0sXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgICBgVGhlIGxvYWQgYmFsYW5jZXIgaXMgZWl0aGVyIHJlY2VpdmluZyBiYWQgaGVhbHRoIGNoZWNrcyBmcm9tIG9yIGlzIHVuYWJsZSB0byBjb25uZWN0IHRvIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfSdgLFxuICAgICAgfSxcbiAgICApXG4gICAgaWYgKHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIC8vIERlZmF1bHQgdG8gdGhlIGFsYXJtIGFjdGlvblxuICAgICAgY29uc3QgdGhBY3Rpb24gPSBwcm9wcy50YXJnZXRIZWFsdGhBbGFybT8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb25cbiAgICAgIHRhcmdldEhlYWx0aEFsYXJtLmFkZEFsYXJtQWN0aW9uKHRoQWN0aW9uKVxuICAgICAgaWYgKHByb3BzLnRhcmdldEhlYWx0aEFsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgdGFyZ2V0SGVhbHRoQWxhcm0uYWRkT2tBY3Rpb24odGhBY3Rpb24pXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJIVFRQQ29kZV9UYXJnZXRfNVhYX0NvdW50XCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL0FwcGxpY2F0aW9uRUxCXCIsXG4gICAgICBzdGF0aXN0aWM6IFwiU3VtXCIsXG4gICAgICBwZXJpb2Q6XG4gICAgICAgIHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5wZXJpb2QgPz9cbiAgICAgICAgY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBUYXJnZXRHcm91cDogcHJvcHMudGFyZ2V0R3JvdXBGdWxsTmFtZSxcbiAgICAgICAgTG9hZEJhbGFuY2VyOiBwcm9wcy5sb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgXCJBbGJUYXJnZXRzNXh4QWxhcm1cIiwge1xuICAgICAgYWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8uZGVzY3JpcHRpb24gPz9cbiAgICAgICAgYExvYWQgYmFsYW5jZXIgcmVjZWl2ZWQgdG9vIG1hbnkgNVhYIHJlc3BvbnNlcyBmcm9tIHRhcmdldChzKSBpbiBFQ1Mgc2VydmljZSAnJHt0aGlzLnNlcnZpY2VOYW1lfScuYCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOlxuICAgICAgICBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMyxcbiAgICAgIHRocmVzaG9sZDogcHJvcHMudG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0/LnRocmVzaG9sZCA/PyAxMCxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgIH0pXG4gICAgaWYgKHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5lbmFibGVkID8/IHRydWUpIHtcbiAgICAgIC8vIERlZmF1bHQgdG8gdGhlIGFsYXJtIGFjdGlvblxuICAgICAgY29uc3QgZml2ZVhBY3Rpb24gPVxuICAgICAgICBwcm9wcy50b29NYW55NXh4UmVzcG9uc2VzRnJvbVRhcmdldHNBbGFybT8uYWN0aW9uID8/IHRoaXMuYWxhcm1BY3Rpb25cbiAgICAgIHRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtLmFkZEFsYXJtQWN0aW9uKGZpdmVYQWN0aW9uKVxuICAgICAgaWYgKHByb3BzLnRvb01hbnk1eHhSZXNwb25zZXNGcm9tVGFyZ2V0c0FsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgdG9vTWFueTV4eFJlc3BvbnNlc0Zyb21UYXJnZXRzQWxhcm0uYWRkT2tBY3Rpb24oZml2ZVhBY3Rpb24pXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJUYXJnZXRSZXNwb25zZVRpbWVcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvQXBwbGljYXRpb25FTEJcIixcbiAgICAgIHN0YXRpc3RpYzogXCJwOTVcIixcbiAgICAgIHBlcmlvZDogcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgTG9hZEJhbGFuY2VyOiBwcm9wcy5sb2FkQmFsYW5jZXJGdWxsTmFtZSxcbiAgICAgICAgVGFyZ2V0R3JvdXA6IHByb3BzLnRhcmdldEdyb3VwRnVsbE5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiVGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmRlc2NyaXB0aW9uID8/XG4gICAgICAgIGA1JSBvZiByZXNwb25zZXMgZnJvbSBFQ1Mgc2VydmljZSAnJHtcbiAgICAgICAgICB0aGlzLnNlcnZpY2VOYW1lXG4gICAgICAgIH0nIGFyZSB0YWtpbmcgbG9uZ2VyIHRoYW4gdGhlIGV4cGVjdGVkIGR1cmF0aW9uIG9mICR7KFxuICAgICAgICAgIHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy50aHJlc2hvbGQgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoMSlcbiAgICAgICAgKS50b1NlY29uZHMoeyBpbnRlZ3JhbDogZmFsc2UgfSl9IHMuYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRocmVzaG9sZDogKFxuICAgICAgICBwcm9wcy50YXJnZXRSZXNwb25zZVRpbWVBbGFybT8udGhyZXNob2xkID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDEpXG4gICAgICApLnRvU2Vjb25kcyh7IGludGVncmFsOiBmYWxzZSB9KSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgfSlcbiAgICBpZiAocHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmVuYWJsZWQgPz8gdHJ1ZSkge1xuICAgICAgLy8gRGVmYXVsdCB0byB0aGUgd2FybmluZyBhY3Rpb25cbiAgICAgIGNvbnN0IHJ0QWN0aW9uID1cbiAgICAgICAgcHJvcHMudGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0/LmFjdGlvbiA/PyB0aGlzLndhcm5pbmdBY3Rpb25cbiAgICAgIHRhcmdldFJlc3BvbnNlVGltZUFsYXJtLmFkZEFsYXJtQWN0aW9uKHJ0QWN0aW9uKVxuICAgICAgaWYgKHByb3BzLnRhcmdldFJlc3BvbnNlVGltZUFsYXJtPy5lbmFibGVPa0FsYXJtID8/IHRydWUpIHtcbiAgICAgICAgdGFyZ2V0UmVzcG9uc2VUaW1lQWxhcm0uYWRkT2tBY3Rpb24ocnRBY3Rpb24pXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/lib/rds/database.d.ts
CHANGED
|
@@ -109,25 +109,6 @@ export interface DatabaseProps extends cdk.StackProps {
|
|
|
109
109
|
* @default false
|
|
110
110
|
*/
|
|
111
111
|
usePublicSubnets?: boolean;
|
|
112
|
-
/**
|
|
113
|
-
* Whether to enable automatic minor version upgrades for the database engine.
|
|
114
|
-
*
|
|
115
|
-
* Note: enabling this means the actual database version may drift from
|
|
116
|
-
* what is specified in the IaC, as AWS applies upgrades outside of deployments.
|
|
117
|
-
*
|
|
118
|
-
* When enabled, consider also setting `preferredMaintenanceWindow`
|
|
119
|
-
* to control when upgrades are applied.
|
|
120
|
-
*
|
|
121
|
-
* @default false
|
|
122
|
-
*/
|
|
123
|
-
autoMinorVersionUpgrade?: boolean;
|
|
124
|
-
/**
|
|
125
|
-
* Weekly time range during which system maintenance can occur,
|
|
126
|
-
* in UTC (e.g. "sun:03:00-sun:04:00").
|
|
127
|
-
*
|
|
128
|
-
* If not specified, AWS will choose a default window.
|
|
129
|
-
*/
|
|
130
|
-
preferredMaintenanceWindow?: string;
|
|
131
112
|
overrideDbOptions?: Partial<rds.DatabaseInstanceSourceProps>;
|
|
132
113
|
/**
|
|
133
114
|
* Configure database alarms.
|
package/lib/rds/database.js
CHANGED
|
@@ -27,8 +27,6 @@ export class Database extends constructs.Construct {
|
|
|
27
27
|
subnetType: ec2.SubnetType.PUBLIC,
|
|
28
28
|
}
|
|
29
29
|
: undefined,
|
|
30
|
-
autoMinorVersionUpgrade: props.autoMinorVersionUpgrade ?? false,
|
|
31
|
-
preferredMaintenanceWindow: props.preferredMaintenanceWindow,
|
|
32
30
|
multiAz: props.isMultiAz ?? true,
|
|
33
31
|
// We default to 25 GiB storage instead of 100 GiB
|
|
34
32
|
// if we do not specify.
|
|
@@ -39,10 +37,6 @@ export class Database extends constructs.Construct {
|
|
|
39
37
|
};
|
|
40
38
|
this.allocatedStorage = cdk.Size.gibibytes(options.allocatedStorage);
|
|
41
39
|
this.instanceType = options.instanceType;
|
|
42
|
-
if (options.autoMinorVersionUpgrade &&
|
|
43
|
-
!options.preferredMaintenanceWindow) {
|
|
44
|
-
cdk.Annotations.of(this).addWarningV2("@liflig/cdk:autoMinorVersionUpgradeWithoutMaintenanceWindow", "Auto minor version upgrade is enabled but no maintenance window is specified. AWS will choose a default maintenance window which may not suit your availability requirements.");
|
|
45
|
-
}
|
|
46
40
|
const db = props.snapshotIdentifier
|
|
47
41
|
? new rds.DatabaseInstanceFromSnapshot(this, "Resource", {
|
|
48
42
|
...options,
|
|
@@ -103,4 +97,4 @@ export class Database extends constructs.Construct {
|
|
|
103
97
|
this.connections.allowDefaultPortFrom(source);
|
|
104
98
|
}
|
|
105
99
|
}
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmRzL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBRWxDLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUUxQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBK0kxQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2hDLE1BQU0sQ0FBWTtJQUNsQixXQUFXLENBQWlCO0lBQzVCLGdCQUFnQixDQUF1QjtJQUN2QyxZQUFZLENBQWtCO0lBQzlCLGdCQUFnQixDQUFVO0lBRTFDLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQTtRQUN2RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQTtRQUVoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNwRCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBb0M7WUFDL0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFF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bXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB0eXBlICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIHJkcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJkc1wiXG5pbXBvcnQgdHlwZSAqIGFzIHNtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBEYXRhYmFzZUFsYXJtcyB9IGZyb20gXCIuLi9hbGFybXNcIlxuXG4vKipcbiAqIENvbmZpZ3VyZSBkYXRhYmFzZSBhbGFybXMuXG4gKlxuICogQWxhcm1zIGFyZSBlbmFibGVkIGJ5IGRlZmF1bHQgKHdoZW4geW91IHN1cHBseSBhbiBgYWxhcm1BY3Rpb25gIGFuZFxuICogYHdhcm5pbmdBY3Rpb25gKS4gVG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXMgdXNlXG4gKiBgeyBlbmFibGVkOiBmYWxzZSB9YC5cbiAqL1xuZXhwb3J0IHR5cGUgRGF0YWJhc2VBbGFybXNDb25maWcgPVxuICB8IHsgZW5hYmxlZDogZmFsc2UgfVxuICB8IHtcbiAgICAgIC8qKlxuICAgICAgICogV2hlbiBhbGFybXMgYXJlIGVuYWJsZWQsIGJvdGggYWN0aW9ucyBhcmUgcmVxdWlyZWQuXG4gICAgICAgKi9cbiAgICAgIGFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgd2FybmluZ0FjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICAgICAgLyoqXG4gICAgICAgKiBDUFUgY3JlZGl0cyBhbGFybSBjb25maWdcbiAgICAgICAqL1xuICAgICAgY3B1Q3JlZGl0c0FsYXJtPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZSBpZiBpbnN0YW5jZSB0eXBlIGlzIGJ1cnN0YWJsZVxuICAgICAgICAgKi9cbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDEwJSBvZiBtYXhpbXVtIGVhcm5lZCBjcmVkaXRzIGZvciBpbnN0YW5jZSB0eXBlICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cblxuICAgICAgLyoqXG4gICAgICAgKiBTdG9yYWdlIHNwYWNlIGFsYXJtIG92ZXJyaWRlc1xuICAgICAgICovXG4gICAgICBzdG9yYWdlU3BhY2VBbGFybXM/OiB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTZXQgdG8gYGZhbHNlYCB0byBkaXNhYmxlIGFsbCBzdG9yYWdlIHNwYWNlIGFsYXJtcyAoYm90aCBsb3cgYW5kIGNyaXRpY2FsbHkgbG93KS5cbiAgICAgICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAgICAgKi9cbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgbG93U3RvcmFnZVNwYWNlQWxhcm0/OiB7XG4gICAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgICAvKiogV2hldGhlciB0byBhdHRhY2ggT0sgYWN0aW9ucyBmb3IgdGhpcyBhbGFybS4gQGRlZmF1bHQgdHJ1ZSAqL1xuICAgICAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAgICAgLyoqIEBkZWZhdWx0IDI1JSBvZiBhbGxvY2F0ZWQgc3RvcmFnZSAqL1xuICAgICAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAgIH1cbiAgICAgICAgY3JpdGljYWxseUxvd1N0b3JhZ2VTcGFjZUFsYXJtPzoge1xuICAgICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgICAgIC8qKiBAZGVmYXVsdCA1JSBvZiBhbGxvY2F0ZWQgc3RvcmFnZSAqL1xuICAgICAgICAgIHRocmVzaG9sZD86IGNkay5TaXplXG4gICAgICAgIH1cbiAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogQ1BVIHV0aWxpemF0aW9uIGFsYXJtIG92ZXJyaWRlcy5cbiAgICAgICAqL1xuICAgICAgY3B1VXRpbGl6YXRpb25BbGFybT86IHtcbiAgICAgICAgZW5hYmxlZD86IGJvb2xlYW5cbiAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgICAgLyoqIEBkZWZhdWx0IDgwICovXG4gICAgICAgIHRocmVzaG9sZD86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgNSAqL1xuICAgICAgICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAgICAgICAvKiogQGRlZmF1bHQgMiBtaW51dGVzICovXG4gICAgICAgIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAgICAgICBhcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgICAgIH1cbiAgICB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgdnBjOiBlYzIuSVZwY1xuICBlbmdpbmU6IHJkcy5JSW5zdGFuY2VFbmdpbmVcbiAgLyoqXG4gICAqIEBkZWZhdWx0IG1hc3RlclxuICAgKi9cbiAgbWFzdGVyVXNlcm5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IGFwcFxuICAgKi9cbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAyNVxuICAgKi9cbiAgYWxsb2NhdGVkU3RvcmFnZUdiPzogbnVtYmVyXG4gIGluc3RhbmNlVHlwZTogZWMyLkluc3RhbmNlVHlwZVxuICBpbnN0YW5jZUlkZW50aWZpZXI6IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgaXNNdWx0aUF6PzogYm9vbGVhblxuICAvKipcbiAgICogTXVzdCBub3QgYmUgcmVtb3ZlZCBvbmNlIGl0IGhhcyBiZWVuIHNldCwgYXMgY2hhbmdpbmcgdGhpc1xuICAgKiByZXN1bHRzIGluIGEgbmV3IERCIGluc3RhbmNlIGJlaW5nIGNyZWF0ZWQuXG4gICAqXG4gICAqIEFsc28sIHJlbWVtYmVyIHRvIGdpdmUgZGF0YWJhc2UgYSBuZXcgbmFtZSB3aGVuIGNoYW5naW5nIHRoaXMgcHJvcCwgb3IgZWxzZVxuICAgKiB0aGUgbmV3IGluc3RhbmNlIG5hbWUgd2lsbCBjcmFzaCB3aXRoIHRoZSBleGlzdGluZyBpbnN0YW5jZS5cbiAgICovXG4gIHNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHVzZVB1YmxpY1N1Ym5ldHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBhdXRvbWF0aWMgbWlub3IgdmVyc2lvbiB1cGdyYWRlcyBmb3IgdGhlIGRhdGFiYXNlIGVuZ2luZS5cbiAgICpcbiAgICogTm90ZTogZW5hYmxpbmcgdGhpcyBtZWFucyB0aGUgYWN0dWFsIGRhdGFiYXNlIHZlcnNpb24gbWF5IGRyaWZ0IGZyb21cbiAgICogd2hhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIElhQywgYXMgQVdTIGFwcGxpZXMgdXBncmFkZXMgb3V0c2lkZSBvZiBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogV2hlbiBlbmFibGVkLCBjb25zaWRlciBhbHNvIHNldHRpbmcgYHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93YFxuICAgKiB0byBjb250cm9sIHdoZW4gdXBncmFkZXMgYXJlIGFwcGxpZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBhdXRvTWlub3JWZXJzaW9uVXBncmFkZT86IGJvb2xlYW5cbiAgLyoqXG4gICAqIFdlZWtseSB0aW1lIHJhbmdlIGR1cmluZyB3aGljaCBzeXN0ZW0gbWFpbnRlbmFuY2UgY2FuIG9jY3VyLFxuICAgKiBpbiBVVEMgKGUuZy4gXCJzdW46MDM6MDAtc3VuOjA0OjAwXCIpLlxuICAgKlxuICAgKiBJZiBub3Qgc3BlY2lmaWVkLCBBV1Mgd2lsbCBjaG9vc2UgYSBkZWZhdWx0IHdpbmRvdy5cbiAgICovXG4gIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nXG4gIG92ZXJyaWRlRGJPcHRpb25zPzogUGFydGlhbDxyZHMuRGF0YWJhc2VJbnN0YW5jZVNvdXJjZVByb3BzPlxuICAvKipcbiAgICogQ29uZmlndXJlIGRhdGFiYXNlIGFsYXJtcy5cbiAgICpcbiAgICogVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCBhbmQgbXVzdCBiZSBvbmUgb2YgdHdvIHNoYXBlczpcbiAgICogIC0gYHsgZW5hYmxlZDogZmFsc2UgfWAgdG8gZXhwbGljaXRseSBkaXNhYmxlIGF1dG9tYXRpYyBhbGFybXNcbiAgICogIC0gYHsgYWxhcm1BY3Rpb24sIHdhcm5pbmdBY3Rpb24gfWAgdG8gZW5hYmxlIGFsYXJtcyBhbmQgcHJvdmlkZSBib3RoIGNoYW5uZWxzXG4gICAqXG4gICAqIERlZmF1bHQ6IGVuYWJsZWQuXG4gICAqL1xuICBhbGFybXM6IERhdGFiYXNlQWxhcm1zQ29uZmlnXG59XG5cbmV4cG9ydCBjbGFzcyBEYXRhYmFzZSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHNlY3JldDogc20uSVNlY3JldFxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnM6IGVjMi5Db25uZWN0aW9uc1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0YWJhc2VJbnN0YW5jZTogcmRzLklEYXRhYmFzZUluc3RhbmNlXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgcHVibGljIHJlYWRvbmx5IGFsbG9jYXRlZFN0b3JhZ2U6IGNkay5TaXplXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGF0YWJhc2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IG1hc3RlclVzZXJuYW1lID0gcHJvcHMubWFzdGVyVXNlcm5hbWUgPz8gXCJtYXN0ZXJcIlxuICAgIGNvbnN0IGRhdGFiYXNlTmFtZSA9IHByb3BzLmRhdGFiYXNlTmFtZSA/PyBcImFwcFwiXG5cbiAgICBjb25zdCBzZWNyZXQgPSBuZXcgcmRzLkRhdGFiYXNlU2VjcmV0KHRoaXMsIFwiU2VjcmV0XCIsIHtcbiAgICAgIHVzZXJuYW1lOiBtYXN0ZXJVc2VybmFtZSxcbiAgICB9KVxuXG4gICAgY29uc3Qgb3B0aW9uczogcmRzLkRhdGFiYXNlSW5zdGFuY2VTb3VyY2VQcm9wcyA9IHtcbiAgICAgIGVuZ2luZTogcHJvcHMuZW5naW5lLFxuICAgICAgYWxsb3dNYWpvclZlcnNpb25VcGdyYWRlOiB0cnVlLFxuICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICBpbnN0YW5jZVR5cGU6IHByb3BzLmluc3RhbmNlVHlwZSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgdnBjU3VibmV0czogcHJvcHMudXNlUHVibGljU3VibmV0c1xuICAgICAgICA/IHtcbiAgICAgICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgYXV0b01pbm9yVmVyc2lvblVwZ3JhZGU6IHByb3BzLmF1dG9NaW5vclZlcnNpb25VcGdyYWRlID8/IGZhbHNlLFxuICAgICAgcHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c6IHByb3BzLnByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93LFxuICAgICAgbXVsdGlBejogcHJvcHMuaXNNdWx0aUF6ID8/IHRydWUsXG4gICAgICAvLyBXZSBkZWZhdWx0IHRvIDI1IEdpQiBzdG9yYWdlIGluc3RlYWQgb2YgMTAwIEdpQlxuICAgICAgLy8gaWYgd2UgZG8gbm90IHNwZWNpZnkuXG4gICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBwcm9wcy5hbGxvY2F0ZWRTdG9yYWdlR2IgPz8gMjUsXG4gICAgICAvLyBXZSBzcGVjaWZ5IG1heGltdW0gYmFja3VwIHJldGVudGlvbi5cbiAgICAgIGJhY2t1cFJldGVudGlvbjogY2RrLkR1cmF0aW9uLmRheXMoMzUpLFxuICAgICAgLi4ucHJvcHMub3ZlcnJpZGVEYk9wdGlvbnMsXG4gICAgfVxuICAgIHRoaXMuYWxsb2NhdGVkU3RvcmFnZSA9IGNkay5TaXplLmdpYmlieXRlcyhvcHRpb25zLmFsbG9jYXRlZFN0b3JhZ2UhKVxuICAgIHRoaXMuaW5zdGFuY2VUeXBlID0gb3B0aW9ucy5pbnN0YW5jZVR5cGUhXG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmF1dG9NaW5vclZlcnNpb25VcGdyYWRlICYmXG4gICAgICAhb3B0aW9ucy5wcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvd1xuICAgICkge1xuICAgICAgY2RrLkFubm90YXRpb25zLm9mKHRoaXMpLmFkZFdhcm5pbmdWMihcbiAgICAgICAgXCJAbGlmbGlnL2NkazphdXRvTWlub3JWZXJzaW9uVXBncmFkZVdpdGhvdXRNYWludGVuYW5jZVdpbmRvd1wiLFxuICAgICAgICBcIkF1dG8gbWlub3IgdmVyc2lvbiB1cGdyYWRlIGlzIGVuYWJsZWQgYnV0IG5vIG1haW50ZW5hbmNlIHdpbmRvdyBpcyBzcGVjaWZpZWQuIEFXUyB3aWxsIGNob29zZSBhIGRlZmF1bHQgbWFpbnRlbmFuY2Ugd2luZG93IHdoaWNoIG1heSBub3Qgc3VpdCB5b3VyIGF2YWlsYWJpbGl0eSByZXF1aXJlbWVudHMuXCIsXG4gICAgICApXG4gICAgfVxuXG4gICAgY29uc3QgZGIgPSBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXJcbiAgICAgID8gbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlRnJvbVNuYXBzaG90KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc25hcHNob3RJZGVudGlmaWVyOiBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXIsXG4gICAgICAgICAgY3JlZGVudGlhbHM6IHJkcy5TbmFwc2hvdENyZWRlbnRpYWxzLmZyb21TZWNyZXQoc2VjcmV0KSxcbiAgICAgICAgfSlcbiAgICAgIDogbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgZGF0YWJhc2VOYW1lLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiByZHMuQ3JlZGVudGlhbHMuZnJvbVNlY3JldChzZWNyZXQpLFxuICAgICAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2UgPSBkYlxuXG4gICAgdGhpcy5zZWNyZXQgPSBkYi5zZWNyZXQhXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IGRiLmNvbm5lY3Rpb25zXG5cbiAgICAvLyBPdmVycmlkZSBpbiBjYXNlIHdlIGhhdmUgcGxhY2VkIGl0IGluIGEgcHVibGljIHN1Ym5ldC5cbiAgICAvLyBJdCB3b3VsZCBkZWZhdWx0IHRvIGJlaW5nIHB1YmxpYyBhY2Nlc3NpYmxlIHdoaWNoIHdlIGRvIG5vdCB3YW50LlxuICAgIDsoZGIubm9kZS5kZWZhdWx0Q2hpbGQgYXMgcmRzLkNmbkRCSW5zdGFuY2UpLnB1YmxpY2x5QWNjZXNzaWJsZSA9IGZhbHNlXG5cbiAgICBpZiAoXCJhbGFybUFjdGlvblwiIGluIHByb3BzLmFsYXJtcykge1xuICAgICAgY29uc3QgYWxhcm1zID0gcHJvcHMuYWxhcm1zXG5cbiAgICAgIGNvbnN0IGRiQWxhcm1zID0gbmV3IERhdGFiYXNlQWxhcm1zKHRoaXMsIFwiQWxhcm1zXCIsIHtcbiAgICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZS5naWJpYnl0ZXMob3B0aW9ucy5hbGxvY2F0ZWRTdG9yYWdlISksXG4gICAgICAgIGFsYXJtQWN0aW9uOiBhbGFybXMuYWxhcm1BY3Rpb24sXG4gICAgICAgIHdhcm5pbmdBY3Rpb246IGFsYXJtcy53YXJuaW5nQWN0aW9uLFxuICAgICAgfSlcblxuICAgICAgLy8gRGVmYXVsdCBtYXBwaW5nOlxuICAgICAgLy8gLSBsb3cgQ1BVIGNyZWRpdHMgLT4gYWxhcm1cbiAgICAgIC8vIC0gY3JpdGljYWxseSBsb3cgc3RvcmFnZSAtPiBhbGFybVxuICAgICAgLy8gLSBsb3cgc3RvcmFnZSAtPiB3YXJuaW5nXG4gICAgICAvLyAtIGhpZ2ggQ1BVIHV0aWxpemF0aW9uIC0+IHdhcm5pbmdcbiAgICAgIC8vIE9ubHkgY3JlYXRlIHRoZSBDUFUgY3JlZGl0cyBhbGFybSBpZiB0aGUgaW5zdGFuY2UgdHlwZSBpcyBidXJzdGFibGUuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLmlzQnVyc3RhYmxlKCkgJiZcbiAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uZW5hYmxlZCAhPT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVDcmVkaXRzQWxhcm0oe1xuICAgICAgICAgIGFjdGlvbjogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYWN0aW9uLFxuICAgICAgICAgIHRocmVzaG9sZDogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVDcmVkaXRzQWxhcm0/LmVuYWJsZU9rQWxhcm0sXG4gICAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcz8uZW5hYmxlZCAhPT0gZmFsc2UpXG4gICAgICAgIGRiQWxhcm1zLmFkZFN0b3JhZ2VTcGFjZUFsYXJtcyh7XG4gICAgICAgICAgLi4uYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcyxcbiAgICAgICAgfSlcblxuICAgICAgaWYgKGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVkICE9PSBmYWxzZSkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVVdGlsaXphdGlvbkFsYXJtKHtcbiAgICAgICAgICBhY3Rpb246IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hY3Rpb24sXG4gICAgICAgICAgdGhyZXNob2xkOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgcGVyaW9kOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8ucGVyaW9kLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVPa0FsYXJtLFxuICAgICAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFsbG93Q29ubmVjdGlvbkZyb20oc291cmNlOiBlYzIuSVNlY3VyaXR5R3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3Rpb25zLmFsbG93RGVmYXVsdFBvcnRGcm9tKHNvdXJjZSlcbiAgfVxufVxuIl19
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcmRzL2RhdGFiYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBRWxDLE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUUxQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQTtBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sV0FBVyxDQUFBO0FBNEgxQyxNQUFNLE9BQU8sUUFBUyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ2hDLE1BQU0sQ0FBWTtJQUNsQixXQUFXLENBQWlCO0lBQzVCLGdCQUFnQixDQUF1QjtJQUN2QyxZQUFZLENBQWtCO0lBQzlCLGdCQUFnQixDQUFVO0lBRTFDLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBb0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxJQUFJLFFBQVEsQ0FBQTtRQUN2RCxNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQTtRQUVoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUNwRCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUE7UUFFRixNQUFNLE9BQU8sR0FBb0M7WUFDL0MsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO1lBQ3BCLHdCQUF3QixFQUFFLElBQUk7WUFDOUIsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUM1QyxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsVUFBVSxFQUFF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O1lBQ0osQ0FBQztZQUVELElBQUksTUFBTSxDQUFDLGtCQUFrQixFQUFFLE9BQU8sS0FBSyxLQUFLO2dCQUM5QyxRQUFRLENBQUMscUJBQXFCLENBQUM7b0JBQzdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQjtpQkFDN0IsQ0FBQyxDQUFBO1lBRUosSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUNsRCxRQUFRLENBQUMsc0JBQXNCLENBQUM7b0JBQzlCLE1BQU0sRUFBRSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsTUFBTTtvQkFDMUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxTQUFTO29CQUNoRCxpQkFBaUIsRUFBRSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsaUJBQWlCO29CQUNoRSxNQUFNLEVBQUUsTUFBTSxDQUFDLG1CQUFtQixFQUFFLE1BQU07b0JBQzFDLGFBQWEsRUFBRSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsYUFBYTtvQkFDeEQsd0JBQXdCLEVBQ3RCLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSx3QkFBd0I7aUJBQ3ZELENBQUMsQ0FBQTtZQUNKLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLE1BQTBCO1FBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDL0MsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgdHlwZSAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCAqIGFzIGVjMiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiXG5pbXBvcnQgKiBhcyByZHMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yZHNcIlxuaW1wb3J0IHR5cGUgKiBhcyBzbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCJcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0IHsgRGF0YWJhc2VBbGFybXMgfSBmcm9tIFwiLi4vYWxhcm1zXCJcblxuLyoqXG4gKiBDb25maWd1cmUgZGF0YWJhc2UgYWxhcm1zLlxuICpcbiAqIEFsYXJtcyBhcmUgZW5hYmxlZCBieSBkZWZhdWx0ICh3aGVuIHlvdSBzdXBwbHkgYW4gYGFsYXJtQWN0aW9uYCBhbmRcbiAqIGB3YXJuaW5nQWN0aW9uYCkuIFRvIGV4cGxpY2l0bHkgZGlzYWJsZSBhdXRvbWF0aWMgYWxhcm1zIHVzZVxuICogYHsgZW5hYmxlZDogZmFsc2UgfWAuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGFiYXNlQWxhcm1zQ29uZmlnID1cbiAgfCB7IGVuYWJsZWQ6IGZhbHNlIH1cbiAgfCB7XG4gICAgICAvKipcbiAgICAgICAqIFdoZW4gYWxhcm1zIGFyZSBlbmFibGVkLCBib3RoIGFjdGlvbnMgYXJlIHJlcXVpcmVkLlxuICAgICAgICovXG4gICAgICBhbGFybUFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgICAgIHdhcm5pbmdBY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG5cbiAgICAgIC8qKlxuICAgICAgICogQ1BVIGNyZWRpdHMgYWxhcm0gY29uZmlnXG4gICAgICAgKi9cbiAgICAgIGNwdUNyZWRpdHNBbGFybT86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWUgaWYgaW5zdGFuY2UgdHlwZSBpcyBidXJzdGFibGVcbiAgICAgICAgICovXG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIC8qKiBXaGV0aGVyIHRvIGF0dGFjaCBPSyBhY3Rpb25zIGZvciB0aGlzIGFsYXJtLiBAZGVmYXVsdCB0cnVlICovXG4gICAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgIC8qKiBAZGVmYXVsdCAxMCUgb2YgbWF4aW11bSBlYXJuZWQgY3JlZGl0cyBmb3IgaW5zdGFuY2UgdHlwZSAqL1xuICAgICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgICB9XG5cbiAgICAgIC8qKlxuICAgICAgICogU3RvcmFnZSBzcGFjZSBhbGFybSBvdmVycmlkZXNcbiAgICAgICAqL1xuICAgICAgc3RvcmFnZVNwYWNlQWxhcm1zPzoge1xuICAgICAgICAvKipcbiAgICAgICAgICogU2V0IHRvIGBmYWxzZWAgdG8gZGlzYWJsZSBhbGwgc3RvcmFnZSBzcGFjZSBhbGFybXMgKGJvdGggbG93IGFuZCBjcml0aWNhbGx5IGxvdykuXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIGxvd1N0b3JhZ2VTcGFjZUFsYXJtPzoge1xuICAgICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgICAgLyoqIFdoZXRoZXIgdG8gYXR0YWNoIE9LIGFjdGlvbnMgZm9yIHRoaXMgYWxhcm0uIEBkZWZhdWx0IHRydWUgKi9cbiAgICAgICAgICBlbmFibGVPa0FsYXJtPzogYm9vbGVhblxuICAgICAgICAgIC8qKiBAZGVmYXVsdCAyNSUgb2YgYWxsb2NhdGVkIHN0b3JhZ2UgKi9cbiAgICAgICAgICB0aHJlc2hvbGQ/OiBjZGsuU2l6ZVxuICAgICAgICB9XG4gICAgICAgIGNyaXRpY2FsbHlMb3dTdG9yYWdlU3BhY2VBbGFybT86IHtcbiAgICAgICAgICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAgICAgICAgIC8qKiBXaGV0aGVyIHRvIGF0dGFjaCBPSyBhY3Rpb25zIGZvciB0aGlzIGFsYXJtLiBAZGVmYXVsdCB0cnVlICovXG4gICAgICAgICAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbiAgICAgICAgICAvKiogQGRlZmF1bHQgNSUgb2YgYWxsb2NhdGVkIHN0b3JhZ2UgKi9cbiAgICAgICAgICB0aHJlc2hvbGQ/OiBjZGsuU2l6ZVxuICAgICAgICB9XG4gICAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbj86IHN0cmluZ1xuICAgICAgfVxuXG4gICAgICAvKipcbiAgICAgICAqIENQVSB1dGlsaXphdGlvbiBhbGFybSBvdmVycmlkZXMuXG4gICAgICAgKi9cbiAgICAgIGNwdVV0aWxpemF0aW9uQWxhcm0/OiB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuXG4gICAgICAgIC8qKiBXaGV0aGVyIHRvIGF0dGFjaCBPSyBhY3Rpb25zIGZvciB0aGlzIGFsYXJtLiBAZGVmYXVsdCB0cnVlICovXG4gICAgICAgIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG4gICAgICAgIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gICAgICAgIC8qKiBAZGVmYXVsdCA4MCAqL1xuICAgICAgICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgICAgICAgLyoqIEBkZWZhdWx0IDUgKi9cbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcbiAgICAgICAgLyoqIEBkZWZhdWx0IDIgbWludXRlcyAqL1xuICAgICAgICBwZXJpb2Q/OiBjZGsuRHVyYXRpb25cbiAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uPzogc3RyaW5nXG4gICAgICB9XG4gICAgfVxuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIHZwYzogZWMyLklWcGNcbiAgZW5naW5lOiByZHMuSUluc3RhbmNlRW5naW5lXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBtYXN0ZXJcbiAgICovXG4gIG1hc3RlclVzZXJuYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBhcHBcbiAgICovXG4gIGRhdGFiYXNlTmFtZT86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgMjVcbiAgICovXG4gIGFsbG9jYXRlZFN0b3JhZ2VHYj86IG51bWJlclxuICBpbnN0YW5jZVR5cGU6IGVjMi5JbnN0YW5jZVR5cGVcbiAgaW5zdGFuY2VJZGVudGlmaWVyOiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGlzTXVsdGlBej86IGJvb2xlYW5cbiAgLyoqXG4gICAqIE11c3Qgbm90IGJlIHJlbW92ZWQgb25jZSBpdCBoYXMgYmVlbiBzZXQsIGFzIGNoYW5naW5nIHRoaXNcbiAgICogcmVzdWx0cyBpbiBhIG5ldyBEQiBpbnN0YW5jZSBiZWluZyBjcmVhdGVkLlxuICAgKlxuICAgKiBBbHNvLCByZW1lbWJlciB0byBnaXZlIGRhdGFiYXNlIGEgbmV3IG5hbWUgd2hlbiBjaGFuZ2luZyB0aGlzIHByb3AsIG9yIGVsc2VcbiAgICogdGhlIG5ldyBpbnN0YW5jZSBuYW1lIHdpbGwgY3Jhc2ggd2l0aCB0aGUgZXhpc3RpbmcgaW5zdGFuY2UuXG4gICAqL1xuICBzbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICB1c2VQdWJsaWNTdWJuZXRzPzogYm9vbGVhblxuICBvdmVycmlkZURiT3B0aW9ucz86IFBhcnRpYWw8cmRzLkRhdGFiYXNlSW5zdGFuY2VTb3VyY2VQcm9wcz5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSBkYXRhYmFzZSBhbGFybXMuXG4gICAqXG4gICAqIFRoaXMgcHJvcGVydHkgaXMgcmVxdWlyZWQgYW5kIG11c3QgYmUgb25lIG9mIHR3byBzaGFwZXM6XG4gICAqICAtIGB7IGVuYWJsZWQ6IGZhbHNlIH1gIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSBhdXRvbWF0aWMgYWxhcm1zXG4gICAqICAtIGB7IGFsYXJtQWN0aW9uLCB3YXJuaW5nQWN0aW9uIH1gIHRvIGVuYWJsZSBhbGFybXMgYW5kIHByb3ZpZGUgYm90aCBjaGFubmVsc1xuICAgKlxuICAgKiBEZWZhdWx0OiBlbmFibGVkLlxuICAgKi9cbiAgYWxhcm1zOiBEYXRhYmFzZUFsYXJtc0NvbmZpZ1xufVxuXG5leHBvcnQgY2xhc3MgRGF0YWJhc2UgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBzZWNyZXQ6IHNtLklTZWNyZXRcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnNcbiAgcHVibGljIHJlYWRvbmx5IGRhdGFiYXNlSW5zdGFuY2U6IHJkcy5JRGF0YWJhc2VJbnN0YW5jZVxuICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlXG4gIHB1YmxpYyByZWFkb25seSBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IERhdGFiYXNlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBtYXN0ZXJVc2VybmFtZSA9IHByb3BzLm1hc3RlclVzZXJuYW1lID8/IFwibWFzdGVyXCJcbiAgICBjb25zdCBkYXRhYmFzZU5hbWUgPSBwcm9wcy5kYXRhYmFzZU5hbWUgPz8gXCJhcHBcIlxuXG4gICAgY29uc3Qgc2VjcmV0ID0gbmV3IHJkcy5EYXRhYmFzZVNlY3JldCh0aGlzLCBcIlNlY3JldFwiLCB7XG4gICAgICB1c2VybmFtZTogbWFzdGVyVXNlcm5hbWUsXG4gICAgfSlcblxuICAgIGNvbnN0IG9wdGlvbnM6IHJkcy5EYXRhYmFzZUluc3RhbmNlU291cmNlUHJvcHMgPSB7XG4gICAgICBlbmdpbmU6IHByb3BzLmVuZ2luZSxcbiAgICAgIGFsbG93TWFqb3JWZXJzaW9uVXBncmFkZTogdHJ1ZSxcbiAgICAgIGluc3RhbmNlSWRlbnRpZmllcjogcHJvcHMuaW5zdGFuY2VJZGVudGlmaWVyLFxuICAgICAgaW5zdGFuY2VUeXBlOiBwcm9wcy5pbnN0YW5jZVR5cGUsXG4gICAgICB2cGM6IHByb3BzLnZwYyxcbiAgICAgIHZwY1N1Ym5ldHM6IHByb3BzLnVzZVB1YmxpY1N1Ym5ldHNcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBzdWJuZXRUeXBlOiBlYzIuU3VibmV0VHlwZS5QVUJMSUMsXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIG11bHRpQXo6IHByb3BzLmlzTXVsdGlBeiA/PyB0cnVlLFxuICAgICAgLy8gV2UgZGVmYXVsdCB0byAyNSBHaUIgc3RvcmFnZSBpbnN0ZWFkIG9mIDEwMCBHaUJcbiAgICAgIC8vIGlmIHdlIGRvIG5vdCBzcGVjaWZ5LlxuICAgICAgYWxsb2NhdGVkU3RvcmFnZTogcHJvcHMuYWxsb2NhdGVkU3RvcmFnZUdiID8/IDI1LFxuICAgICAgLy8gV2Ugc3BlY2lmeSBtYXhpbXVtIGJhY2t1cCByZXRlbnRpb24uXG4gICAgICBiYWNrdXBSZXRlbnRpb246IGNkay5EdXJhdGlvbi5kYXlzKDM1KSxcbiAgICAgIC4uLnByb3BzLm92ZXJyaWRlRGJPcHRpb25zLFxuICAgIH1cbiAgICB0aGlzLmFsbG9jYXRlZFN0b3JhZ2UgPSBjZGsuU2l6ZS5naWJpYnl0ZXMob3B0aW9ucy5hbGxvY2F0ZWRTdG9yYWdlISlcbiAgICB0aGlzLmluc3RhbmNlVHlwZSA9IG9wdGlvbnMuaW5zdGFuY2VUeXBlIVxuXG4gICAgY29uc3QgZGIgPSBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXJcbiAgICAgID8gbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlRnJvbVNuYXBzaG90KHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgc25hcHNob3RJZGVudGlmaWVyOiBwcm9wcy5zbmFwc2hvdElkZW50aWZpZXIsXG4gICAgICAgICAgY3JlZGVudGlhbHM6IHJkcy5TbmFwc2hvdENyZWRlbnRpYWxzLmZyb21TZWNyZXQoc2VjcmV0KSxcbiAgICAgICAgfSlcbiAgICAgIDogbmV3IHJkcy5EYXRhYmFzZUluc3RhbmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgZGF0YWJhc2VOYW1lLFxuICAgICAgICAgIGNyZWRlbnRpYWxzOiByZHMuQ3JlZGVudGlhbHMuZnJvbVNlY3JldChzZWNyZXQpLFxuICAgICAgICAgIHN0b3JhZ2VFbmNyeXB0ZWQ6IHRydWUsXG4gICAgICAgIH0pXG5cbiAgICB0aGlzLmRhdGFiYXNlSW5zdGFuY2UgPSBkYlxuXG4gICAgdGhpcy5zZWNyZXQgPSBkYi5zZWNyZXQhXG4gICAgdGhpcy5jb25uZWN0aW9ucyA9IGRiLmNvbm5lY3Rpb25zXG5cbiAgICAvLyBPdmVycmlkZSBpbiBjYXNlIHdlIGhhdmUgcGxhY2VkIGl0IGluIGEgcHVibGljIHN1Ym5ldC5cbiAgICAvLyBJdCB3b3VsZCBkZWZhdWx0IHRvIGJlaW5nIHB1YmxpYyBhY2Nlc3NpYmxlIHdoaWNoIHdlIGRvIG5vdCB3YW50LlxuICAgIDsoZGIubm9kZS5kZWZhdWx0Q2hpbGQgYXMgcmRzLkNmbkRCSW5zdGFuY2UpLnB1YmxpY2x5QWNjZXNzaWJsZSA9IGZhbHNlXG5cbiAgICBpZiAoXCJhbGFybUFjdGlvblwiIGluIHByb3BzLmFsYXJtcykge1xuICAgICAgY29uc3QgYWxhcm1zID0gcHJvcHMuYWxhcm1zXG5cbiAgICAgIGNvbnN0IGRiQWxhcm1zID0gbmV3IERhdGFiYXNlQWxhcm1zKHRoaXMsIFwiQWxhcm1zXCIsIHtcbiAgICAgICAgaW5zdGFuY2VJZGVudGlmaWVyOiBwcm9wcy5pbnN0YW5jZUlkZW50aWZpZXIsXG4gICAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlLFxuICAgICAgICBhbGxvY2F0ZWRTdG9yYWdlOiBjZGsuU2l6ZS5naWJpYnl0ZXMob3B0aW9ucy5hbGxvY2F0ZWRTdG9yYWdlISksXG4gICAgICAgIGFsYXJtQWN0aW9uOiBhbGFybXMuYWxhcm1BY3Rpb24sXG4gICAgICAgIHdhcm5pbmdBY3Rpb246IGFsYXJtcy53YXJuaW5nQWN0aW9uLFxuICAgICAgfSlcblxuICAgICAgLy8gRGVmYXVsdCBtYXBwaW5nOlxuICAgICAgLy8gLSBsb3cgQ1BVIGNyZWRpdHMgLT4gYWxhcm1cbiAgICAgIC8vIC0gY3JpdGljYWxseSBsb3cgc3RvcmFnZSAtPiBhbGFybVxuICAgICAgLy8gLSBsb3cgc3RvcmFnZSAtPiB3YXJuaW5nXG4gICAgICAvLyAtIGhpZ2ggQ1BVIHV0aWxpemF0aW9uIC0+IHdhcm5pbmdcbiAgICAgIC8vIE9ubHkgY3JlYXRlIHRoZSBDUFUgY3JlZGl0cyBhbGFybSBpZiB0aGUgaW5zdGFuY2UgdHlwZSBpcyBidXJzdGFibGUuXG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuaW5zdGFuY2VUeXBlLmlzQnVyc3RhYmxlKCkgJiZcbiAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uZW5hYmxlZCAhPT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVDcmVkaXRzQWxhcm0oe1xuICAgICAgICAgIGFjdGlvbjogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYWN0aW9uLFxuICAgICAgICAgIHRocmVzaG9sZDogYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVDcmVkaXRzQWxhcm0/LmVuYWJsZU9rQWxhcm0sXG4gICAgICAgICAgYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgYWxhcm1zLmNwdUNyZWRpdHNBbGFybT8uYXBwZW5kVG9BbGFybURlc2NyaXB0aW9uLFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICBpZiAoYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcz8uZW5hYmxlZCAhPT0gZmFsc2UpXG4gICAgICAgIGRiQWxhcm1zLmFkZFN0b3JhZ2VTcGFjZUFsYXJtcyh7XG4gICAgICAgICAgLi4uYWxhcm1zLnN0b3JhZ2VTcGFjZUFsYXJtcyxcbiAgICAgICAgfSlcblxuICAgICAgaWYgKGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVkICE9PSBmYWxzZSkge1xuICAgICAgICBkYkFsYXJtcy5hZGRDcHVVdGlsaXphdGlvbkFsYXJtKHtcbiAgICAgICAgICBhY3Rpb246IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hY3Rpb24sXG4gICAgICAgICAgdGhyZXNob2xkOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8udGhyZXNob2xkLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8uZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgICAgcGVyaW9kOiBhbGFybXMuY3B1VXRpbGl6YXRpb25BbGFybT8ucGVyaW9kLFxuICAgICAgICAgIGVuYWJsZU9rQWxhcm06IGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5lbmFibGVPa0FsYXJtLFxuICAgICAgICAgIGFwcGVuZFRvQWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgIGFsYXJtcy5jcHVVdGlsaXphdGlvbkFsYXJtPy5hcHBlbmRUb0FsYXJtRGVzY3JpcHRpb24sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFsbG93Q29ubmVjdGlvbkZyb20oc291cmNlOiBlYzIuSVNlY3VyaXR5R3JvdXApOiB2b2lkIHtcbiAgICB0aGlzLmNvbm5lY3Rpb25zLmFsbG93RGVmYXVsdFBvcnRGcm9tKHNvdXJjZSlcbiAgfVxufVxuIl19
|