stacktape 3.2.5 → 3.2.7
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/cloudformation.d.ts +0 -1432
- package/index.d.ts +2 -3
- package/index.js +33 -5
- package/package.json +1 -1
- package/plain.d.ts +0 -64557
- package/types.d.ts +330 -308
package/index.js
CHANGED
|
@@ -2721,6 +2721,12 @@ class BaseResource {
|
|
|
2721
2721
|
}
|
|
2722
2722
|
this._properties = finalProperties;
|
|
2723
2723
|
}
|
|
2724
|
+
if (this._overrides && typeof this._overrides === "object") {
|
|
2725
|
+
this._overrides = transformOverridesToLogicalNames(this._resourceName, this._type, this._overrides);
|
|
2726
|
+
}
|
|
2727
|
+
if (this._transforms && typeof this._transforms === "object") {
|
|
2728
|
+
this._transforms = transformTransformsToLogicalNames(this._resourceName, this._type, this._transforms);
|
|
2729
|
+
}
|
|
2724
2730
|
}
|
|
2725
2731
|
get resourceName() {
|
|
2726
2732
|
if (this._resourceName === undefined) {
|
|
@@ -2753,6 +2759,19 @@ class BaseResource {
|
|
|
2753
2759
|
return this._transforms;
|
|
2754
2760
|
}
|
|
2755
2761
|
}
|
|
2762
|
+
function flattenToDotNotation(obj, prefix = "") {
|
|
2763
|
+
const result = {};
|
|
2764
|
+
for (const key in obj) {
|
|
2765
|
+
const value = obj[key];
|
|
2766
|
+
const newKey = prefix ? `${prefix}.${key}` : key;
|
|
2767
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value) && value.constructor === Object) {
|
|
2768
|
+
Object.assign(result, flattenToDotNotation(value, newKey));
|
|
2769
|
+
} else {
|
|
2770
|
+
result[newKey] = value;
|
|
2771
|
+
}
|
|
2772
|
+
}
|
|
2773
|
+
return result;
|
|
2774
|
+
}
|
|
2756
2775
|
function transformOverridesToLogicalNames(resourceName, resourceType, overrides) {
|
|
2757
2776
|
const childResources = CHILD_RESOURCES[resourceType] || [];
|
|
2758
2777
|
const propertyNameMap = new Map;
|
|
@@ -2785,7 +2804,11 @@ Remove the override, run 'stacktape compile:template' command, and find the logi
|
|
|
2785
2804
|
if (logicalName.includes("undefined")) {
|
|
2786
2805
|
throw new Error(errorMessage.replace("{propertyName}", propertyName));
|
|
2787
2806
|
}
|
|
2788
|
-
|
|
2807
|
+
const overrideValue = overrides[propertyName];
|
|
2808
|
+
if (!transformedOverrides[logicalName]) {
|
|
2809
|
+
transformedOverrides[logicalName] = {};
|
|
2810
|
+
}
|
|
2811
|
+
Object.assign(transformedOverrides[logicalName], flattenToDotNotation(overrideValue));
|
|
2789
2812
|
} else {
|
|
2790
2813
|
transformedOverrides[propertyName] = overrides[propertyName];
|
|
2791
2814
|
}
|
|
@@ -3094,7 +3117,9 @@ var RESOURCES_CONVERTIBLE_TO_CLASSES = [
|
|
|
3094
3117
|
"SnsTopic",
|
|
3095
3118
|
"OpenSearchDomain",
|
|
3096
3119
|
"EfsFilesystem",
|
|
3097
|
-
"LambdaFunction"
|
|
3120
|
+
"LambdaFunction",
|
|
3121
|
+
"BatchJob",
|
|
3122
|
+
"UserAuthPool"
|
|
3098
3123
|
]
|
|
3099
3124
|
},
|
|
3100
3125
|
{
|
|
@@ -3118,7 +3143,10 @@ var RESOURCES_CONVERTIBLE_TO_CLASSES = [
|
|
|
3118
3143
|
"OpenSearchDomain",
|
|
3119
3144
|
"EfsFilesystem",
|
|
3120
3145
|
"PrivateService",
|
|
3121
|
-
"WebService"
|
|
3146
|
+
"WebService",
|
|
3147
|
+
"LambdaFunction",
|
|
3148
|
+
"BatchJob",
|
|
3149
|
+
"UserAuthPool"
|
|
3122
3150
|
]
|
|
3123
3151
|
},
|
|
3124
3152
|
{
|
|
@@ -4177,5 +4205,5 @@ var {
|
|
|
4177
4205
|
EdgeLambdaFunction
|
|
4178
4206
|
} = TYPE_PROPERTIES_CLASSES;
|
|
4179
4207
|
|
|
4180
|
-
//# debugId=
|
|
4181
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL2Rpc3QvaW5kZXguanMiLCAiLi4vc2hhcmVkL25hbWluZy9sb2dpY2FsLW5hbWVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NoaWxkLXJlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9jb25maWcudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvZGlyZWN0aXZlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9nbG9iYWwtYXdzLXNlcnZpY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NsYXNzLWNvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZS1tZXRhZGF0YS50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvdHlwZS1wcm9wZXJ0aWVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuLy8gVXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGluaXRpYWwgc3BsaXQgcmVzdWx0IGFuZCBzZXBhcmF0ZSBudW1iZXJzLlxuY29uc3QgU1BMSVRfU0VQQVJBVEVfTlVNQkVSX1JFID0gLyhcXGQpXFxwe0xsfXwoXFxwe0x9KVxcZC91O1xuLy8gUmVnZXhwIGludm9sdmVkIHdpdGggc3RyaXBwaW5nIG5vbi13b3JkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0LlxuY29uc3QgREVGQVVMVF9TVFJJUF9SRUdFWFAgPSAvW15cXHB7TH1cXGRdKy9naXU7XG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcbi8vIFRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgdG8ga2VlcCBhZnRlciB0cmFuc2Zvcm1pbmcgY2FzZS5cbmNvbnN0IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTID0gXCJcIjtcbi8qKlxuICogU3BsaXQgYW55IGNhc2VkIGlucHV0IHN0cmluZ3MgaW50byBhbiBhcnJheSBvZiB3b3Jkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0KHZhbHVlKSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlLnRyaW0oKTtcbiAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgICAgIC5yZXBsYWNlKFNQTElUX1VQUEVSX1VQUEVSX1JFLCBTUExJVF9SRVBMQUNFX1ZBTFVFKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShERUZBVUxUX1NUUklQX1JFR0VYUCwgXCJcXDBcIik7XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoc3RhcnQpID09PSBcIlxcMFwiKVxuICAgICAgICBzdGFydCsrO1xuICAgIGlmIChzdGFydCA9PT0gZW5kKVxuICAgICAgICByZXR1cm4gW107XG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpXG4gICAgICAgIGVuZC0tO1xuICAgIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cbi8qKlxuICogU3BsaXQgdGhlIGlucHV0IHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIHdvcmRzLCBzZXBhcmF0aW5nIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFNlcGFyYXRlTnVtYmVycyh2YWx1ZSkge1xuICAgIGNvbnN0IHdvcmRzID0gc3BsaXQodmFsdWUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHdvcmRzW2ldO1xuICAgICAgICBjb25zdCBtYXRjaCA9IFNQTElUX1NFUEFSQVRFX05VTUJFUl9SRS5leGVjKHdvcmQpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3Jkcztcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHMubWFwKGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBvcHRpb25zPy5tZXJnZUFtYmlndW91c0NoYXJhY3RlcnNcbiAgICAgICAgPyBjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKVxuICAgICAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkc1xuICAgICAgICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHdvcmQsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGFzY2FsIGNhc2UgKGBGb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgICBjb25zdCBsb3dlciA9IGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gb3B0aW9ucz8ubWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzXG4gICAgICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICAgICAgOiBwYXNjYWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgc25ha2UgY2FzZSAoYEZvb19CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFNuYWtlQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhcGl0YWwgY2FzZSAoYEZvbyBCYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikpXG4gICAgICAgICAgICAuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICAgICAgc3VmZml4KTtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBjb25zdGFudCBjYXNlIChgRk9PX0JBUmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RhbnRDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkcy5tYXAodXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSkpLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiX1wiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gZG90IGNhc2UgKGBmb28uYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3RDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5vQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLlwiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGtlYmFiIGNhc2UgKGBmb28tYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZWJhYkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCItXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgZm9vL2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIvXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgRm9vIGJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoKHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh3b3JkKTtcbiAgICAgICAgICAgIHJldHVybiBsb3dlcih3b3JkKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHNuYWtlIGNhc2UgKGBmb29fYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCJfXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gaGVhZGVyIGNhc2UgKGBGb28tQmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFpbkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gY2FwaXRhbENhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cbmZ1bmN0aW9uIGxvd2VyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9Mb3dlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIHVwcGVyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVVcHBlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpIHtcbiAgICByZXR1cm4gKHdvcmQpID0+IGAke3VwcGVyKHdvcmRbMF0pfSR7bG93ZXIod29yZC5zbGljZSgxKSl9YDtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikge1xuICAgIHJldHVybiAod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhcjAgPSB3b3JkWzBdO1xuICAgICAgICBjb25zdCBpbml0aWFsID0gaW5kZXggPiAwICYmIGNoYXIwID49IFwiMFwiICYmIGNoYXIwIDw9IFwiOVwiID8gXCJfXCIgKyBjaGFyMCA6IHVwcGVyKGNoYXIwKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWwgKyBsb3dlcih3b3JkLnNsaWNlKDEpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHNwbGl0Rm4gPSBvcHRpb25zLnNwbGl0ID8/IChvcHRpb25zLnNlcGFyYXRlTnVtYmVycyA/IHNwbGl0U2VwYXJhdGVOdW1iZXJzIDogc3BsaXQpO1xuICAgIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPSBvcHRpb25zLnByZWZpeENoYXJhY3RlcnMgPz8gREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlM7XG4gICAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9IG9wdGlvbnMuc3VmZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICAgIGxldCBzdWZmaXhJbmRleCA9IGlucHV0Lmxlbmd0aDtcbiAgICB3aGlsZSAocHJlZml4SW5kZXggPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgICAgIGlmICghcHJlZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBwcmVmaXhJbmRleCsrO1xuICAgIH1cbiAgICB3aGlsZSAoc3VmZml4SW5kZXggPiBwcmVmaXhJbmRleCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChpbmRleCk7XG4gICAgICAgIGlmICghc3VmZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBzdWZmaXhJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBpbnB1dC5zbGljZSgwLCBwcmVmaXhJbmRleCksXG4gICAgICAgIHNwbGl0Rm4oaW5wdXQuc2xpY2UocHJlZml4SW5kZXgsIHN1ZmZpeEluZGV4KSksXG4gICAgICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgICBdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwKICAgICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBc3NldFJlcGxhY2VyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHREeW5hbW9JbnNlcnRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEeW5hbW9JbnNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBkbnNSZWNvcmQoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGR5bmFtb0dsb2JhbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9SZWdpb25hbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBidWNrZXRQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudE9uRGVsaXZlcnlGYWlsdXJlU3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFN1YnNjcmlwdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlN1YnNjcmlwdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjclJlcG8oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvbnRhaW5lcidcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUjo6UmVwb3NpdG9yeScgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0UG9saWN5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFJbnZva2VDb25maWcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFWZXJzaW9uUHVibGlzaGVyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVmVyc2lvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQ29kZURlcGxveSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTdGF0ZU1hY2hpbmUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTcG90RmxlZXRSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNwb3RGbGVldCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFNlcnZpY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNlcnZpY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JFeGVjdXRpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaENvbXB1dGVFbnZpcm9ubWVudChzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpDb21wdXRlRW52aXJvbm1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JRdWV1ZShzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScgfVxuICAgIH0pO1xuICB9LFxuICBzdWJuZXQocHVibGljU3VibmV0OiBib29sZWFuLCBzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogcHVibGljU3VibmV0ID8gJ1B1YmxpYycgOiAnUHJpdmF0ZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0JywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlZQQycgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5RW5kcG9pbnQodHlwZTogJ3MzJyB8ICdkeW5hbW8tZGInKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7dHlwZX0tR2F0ZXdheWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENFbmRwb2ludCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlN1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXJMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ2x1c3RlcicsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dHcm91cFR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYk9wdGlvbkdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6T3B0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2Eoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2FMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpbnN0YW5jZU51bTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGluZGV4OiBpbnN0YW5jZU51bSB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU3RwQ3VzdG9tVGFnZ2luZ1NjaGVkdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZVBlcm1pc3Npb24oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZFdhdGNoTG9nRXZlbnRTdWJzY3JpcHRpb25GaWx0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6U3Vic2NyaXB0aW9uRmlsdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50U291cmNlTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkV2ZW50U291cmNlTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBpb3RFdmVudFRvcGljUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJb1Q6OlRvcGljUnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBraW5lc2lzRXZlbnRDb25zdW1lcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW1Db25zdW1lcicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGlzU3RwU2VydmljZUZ1bmN0aW9uPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiBpc1N0cFNlcnZpY2VGdW5jdGlvbiA/IHsgdHlwZTogJ0N1c3RvbVJlc291cmNlJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVN0cEFsaWFzKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ1N0cCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVXJsKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBzY3JpcHRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY3JpcHQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdKb2JFeGVjdXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEpvYkRlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYkRlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBnbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnR2xvYmFsU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkludGVybmV0R2F0ZXdheScgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5QXR0YWNobWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENHYXRld2F5QXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGVUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBpbnRlcm5ldEdhdGV3YXlSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0ludGVybmV0R2F0ZXdheScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29WcGNSb3V0ZShwdWJsaWNTdWJuZXRUYWJsZTogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBBdGxhc01vbmdvJHtwdWJsaWNTdWJuZXRUYWJsZSA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHJvdXRlVGFibGVUb1N1Ym5ldEFzc29jaWF0aW9uKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0Um91dGVUYWJsZUFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEdhdGV3YXkoYXpJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TmF0R2F0ZXdheScsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0RWxhc3RpY0lwKGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6RUlQJywgaW5kZXg6IGF6SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBuYXRSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05hdFByaXZhdGVTdWJuZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1cyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzQXJjaGl2ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza0RlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NTZXJ2aWNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBibHVlR3JlZW46IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogYmx1ZUdyZWVuID8geyB0eXBlOiAnQmx1ZUdyZWVuJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdGb3JjZURlbGV0ZUFzZycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzYWJsZU1hbmFnZWRUZXJtaW5hdGlvblByb3RlY3Rpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NEZXJlZ2lzdGVyVGFyZ2V0c0N1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlcmVnaXN0ZXJUYXJnZXRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcblxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0Vjc0luc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza1JvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0F1dG9TY2FsaW5nUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzQXV0b1NjYWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gZWNzU2NoZWR1bGVkTWFpbnRlbmFuY2VFdmVudEJ1c1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHN0cFJlc291cmNlTmFtZSxcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkTWFpbnRlbmFuY2UnIH0sXG4gIC8vICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAvLyAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIC8vIH0sXG4gIGVjc1NjaGVkdWxlZE1haW50ZW5hbmNlTGFtYmRhUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRNYWludGVuYW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgYmFzdGlvbkVjMkxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkN3QWdlbnRTc21Bc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdDd0FnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Tc21BZ2VudFNzbUFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NzbUFnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ1R5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHBhc2NhbENhc2UobG9nVHlwZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkNsb3Vkd2F0Y2hTc21Eb2N1bWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQmFzdGlvbkNsb3Vkd2F0Y2hBZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpEb2N1bWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5RWNzU2VydmljZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgc2VydmljZVRhcmdldENvbnRhaW5lclBvcnQ6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtzZXJ2aWNlVGFyZ2V0Q29udGFpbmVyUG9ydH1EaXNjb3ZlcnlgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNlcnZpY2VEaXNjb3Zlcnk6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd29ya2xvYWRTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xiJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgdGFyZ2V0R3JvdXAoe1xuICAgIGxvYWRCYWxhbmNlck5hbWUsXG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHRhcmdldENvbnRhaW5lclBvcnQsXG4gICAgYmx1ZUdyZWVuXG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICBsb2FkQmFsYW5jZXJOYW1lOiBzdHJpbmc7XG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydD86IG51bWJlcjtcbiAgICBibHVlR3JlZW4/OiBib29sZWFuO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX0ke3RhcmdldENvbnRhaW5lclBvcnQgPyBgVG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgOiAnJ30ke2JsdWVHcmVlbiA/ICdCRycgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpUYXJnZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBkZWZhdWx0TGFtYmRhRnVuY3Rpb25Sb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYW1iZGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnQnLCB0eXBlSW5kZXg6IGV2ZW50SW5kZXggfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUHVibGljVXJsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhSW90RXZlbnRQZXJtaXNzaW9uKHdvcmtsb2FkTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShgJHt3b3JrbG9hZE5hbWV9LUV2ZW50JHtldmVudEluZGV4fS1sYW1iZGEtaW90RXZlbnRQZXJtaXNzaW9uYCk7XG4gIH0sXG4gIGxhbWJkYVRhcmdldEdyb3VwUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX1UYXJnZXRHcm91cGAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGkoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMYW1iZGFJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZVxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBzdHBIdHRwQXBpR2F0ZXdheU5hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQ29udGFpbmVyV29ya2xvYWRJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZSxcbiAgICB0YXJnZXRDb250YWluZXJQb3J0XG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICB0YXJnZXRDb250YWluZXJQb3J0OiBudW1iZXI7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtzdHBIdHRwQXBpR2F0ZXdheU5hbWV9VG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQXV0aG9yaXplcih7IG1ldGhvZCwgcGF0aCwgc3RwUmVzb3VyY2VOYW1lIH06IHsgbWV0aG9kOiBIdHRwTWV0aG9kOyBwYXRoOiBzdHJpbmc7IHN0cFJlc291cmNlTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7c3RwUmVzb3VyY2VOYW1lfS0ke21ldGhvZCA9PT0gJyonID8gJ0FueScgOiBtZXRob2R9LSR7cGF0aCA9PT0gJyonID8gJ0RlZmF1bHQnIDogcGF0aH1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkF1dGhvcml6ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVJvdXRlKHsgbWV0aG9kLCBwYXRoLCBzdHBSZXNvdXJjZU5hbWUgfTogeyBtZXRob2Q6IEh0dHBNZXRob2Q7IHBhdGg6IHN0cmluZzsgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtzdHBSZXNvdXJjZU5hbWV9LSR7bWV0aG9kID09PSAnKicgPyAnQW55JyA6IG1ldGhvZH0tJHtwYXRoID09PSAnKicgPyAnRGVmYXVsdCcgOiBwYXRofWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6Um91dGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVZwY0xpbmsoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdWcGNMaW5rJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxhbWJkYVBlcm1pc3Npb24oe1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgIHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhOiBzdHJpbmc7XG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZIdHRwQXBpR2F0ZXdheTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlTdGFnZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlN0YWdlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEb21haW4oZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEZWZhdWx0RG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRG9tYWluTWFwcGluZyhmdWxseVF1YWxpZmllZERvbWFpbk5hbWU6IHN0cmluZykge1xuICAgIC8vIHdlIGRvIG5vdCBidWlsZCBidWlsZCB0aGUgcmVzb3VyY2UgbmFtZSBjb252ZW50aW9uYWxseSB0aHJvdWdoIHN0cFJlc291cmNlTmFtZVxuICAgIC8vIHRoaXMgaXMgZHVlIHRvIHVwZGF0ZSBiZWhhdmlvcnMgb2YgQ2xvdWRmb3JtYXRpb25cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogZ2V0U3BlY2lmaWVyRm9yRG9tYWluUmVzb3VyY2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBsaXN0ZW5lcihleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJSdWxlKGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgcnVsZVByaW9yaXR5OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fVByaW9yaXR5JHtydWxlUHJpb3JpdHl9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lclJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJDZXJ0aWZpY2F0ZUxpc3QoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9hZEJhbGFuY2VyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY29udGFpbmVyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogY29udGFpbmVyTmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9BdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbWV0cmljOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBtZXRyaWMgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXV0b1NjYWxpbmdQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIG1ldHJpYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogbWV0cmljIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VTM0V2ZW50cygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gQGRlcHJlY2F0ZWRcbiAgLy8gc3RhY2t0YXBlU2VydmljZUN1c3RvbVJlc291cmNlRWRnZUZ1bmN0aW9ucygpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUZ1bmN0aW9ucycgfSxcbiAgLy8gICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gIC8vICAgfSk7XG4gIC8vIH0sXG4gIGN1c3RvbVJlc291cmNlU2Vuc2l0aXZlRGF0YSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2Vuc2l0aXZlRGF0YScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlQWNjZXB0VnBjUGVlcmluZ3MoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0FjY2VwdFZwY1BlZXJpbmdzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluQ2VydCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVmYXVsdERvbWFpbkNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGFCdWNrZXQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VMYW1iZGFCdWNrZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUxhbWJkYScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY2RuPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke2NkbiA/ICdDZG4nIDogJyd9RGVmYXVsdERvbWFpbmAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGF0YWJhc2VEZWxldGlvblByb3RlY3Rpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVsZXRpb25Qcm90ZWN0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xDbGllbnQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xEb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xEb21haW4nIH1cbiAgICB9KTtcbiAgfSxcbiAgaWRlbnRpdHlQcm92aWRlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgdHlwZTogU3RwVXNlckF1dGhQb29sWydpZGVudGl0eVByb3ZpZGVycyddW251bWJlcl1bJ3R5cGUnXSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xJZGVudGl0eVByb3ZpZGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZ25pdG9MYW1iZGFIb29rUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgaG9va05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGhvb2tOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVXNlclBvb2xEZXRhaWxzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xVaUN1c3RvbWl6YXRpb25BdHRhY2htZW50KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sVUlDdXN0b21pemF0aW9uQXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZU5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzY292ZXJ5JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTZXJ2aWNlRGlzY292ZXJ5OjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYUNvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xhbWJkYUNvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNoYXJlZENodW5rTGF5ZXIobGF5ZXJOdW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBTaGFyZWRDaHVua0xheWVyJHtsYXllck51bWJlcn1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6TGF5ZXJWZXJzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0NvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VDU0NvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YWNrQnVkZ2V0KHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogcGFzY2FsQ2FzZShzdGFja05hbWUpLnJlcGxhY2VBbGwoJ18nLCAnJykgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QnVkZ2V0czo6QnVkZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIHVwc3Rhc2hSZWRpc0RhdGFiYXNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpEYXRhYmFzZXNWMTo6RGF0YWJhc2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1Vwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRXYXRjaDo6QWxhcm0nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm1FdmVudEJ1c05vdGlmaWNhdGlvblJ1bGUoc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybUV2ZW50QnVzTm90aWZpY2F0aW9uUnVsZUxhbWJkYVBlcm1pc3Npb24oc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIHNxc1F1ZXVlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWUnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBzcXNRdWV1ZVBvbGljeShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1RvcGljKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICB3ZWJBcHBGaXJld2FsbEN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1dlYkFwcEZpcmV3YWxsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpPcGVuU2VhcmNoU2VydmljZTo6RG9tYWluJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuU2VhcmNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaFNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGaXJlaG9zZVRvUzNSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xvZ0ZvcndhcmRpbmdTMycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdDd1RvRmlyZWhvc2VSb2xlKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0N3VG9GaXJlaG9zZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGYWlsZWRFdmVudHNCdWNrZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTG9nRm9yd2FyZGluZ0ZhaWxlZFJlY29yZHMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0ZpcmVob3NlRGVsaXZlcnlTdHJlYW0oeyBsb2dHcm91cENmTG9naWNhbE5hbWUgfTogeyBsb2dHcm91cENmTG9naWNhbE5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6S2luZXNpc0ZpcmVob3NlOjpEZWxpdmVyeVN0cmVhbScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nU3Vic2NyaXB0aW9uRmlsdGVyKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcicgfVxuICAgIH0pO1xuICB9XG59O1xuXG5jb25zdCBidWlsZENmTG9naWNhbE5hbWUgPSAoe1xuICBzdHBSZXNvdXJjZU5hbWUsXG4gIHNwZWNpZmllcixcbiAgc3VmZml4XG59OiB7XG4gIHN0cFJlc291cmNlTmFtZT86IHN0cmluZztcbiAgc3BlY2lmaWVyPzogeyB0eXBlOiBzdHJpbmc7IHR5cGVJbmRleD86IG51bWJlcjsgc3VidHlwZT86IHN0cmluZyB9O1xuICBzdWZmaXg6IHtcbiAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogQ2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGUgfCBTdXBwb3J0ZWRQcml2YXRlQ2ZSZXNvdXJjZVR5cGU7XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH07XG59KSA9PiB7XG4gIGNvbnN0IHNwbGl0dGVkVHlwZSA9IHN1ZmZpeC5jbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZS5zcGxpdCgnOicpO1xuICBjb25zdCByZXNvbHZlZFBhcmVudE5hbWUgPSBzdHBSZXNvdXJjZU5hbWUgfHwgJ1N0cCc7XG4gIGNvbnN0IHJlc29sdmVkU3BlY2lmaWVyID0gc3BlY2lmaWVyXG4gICAgPyBgJHtzcGVjaWZpZXIudHlwZX0ke3NwZWNpZmllci50eXBlSW5kZXggIT09IHVuZGVmaW5lZCA/IHNwZWNpZmllci50eXBlSW5kZXggOiAnJ30ke1xuICAgICAgICBzcGVjaWZpZXIuc3VidHlwZSAhPT0gdW5kZWZpbmVkID8gYC0ke3NwZWNpZmllci5zdWJ0eXBlfWAgOiAnJ1xuICAgICAgfWBcbiAgICA6ICcnO1xuICBjb25zdCByZXNvbHZlZFN1ZmZpeCA9IGAke3NwbGl0dGVkVHlwZVtzcGxpdHRlZFR5cGUubGVuZ3RoIC0gMV19JHtzdWZmaXguaW5kZXggIT09IHVuZGVmaW5lZCA/IHN1ZmZpeC5pbmRleCA6ICcnfWA7XG4gIHJldHVybiBwYXNjYWxDYXNlKGAke3Jlc29sdmVkUGFyZW50TmFtZX0tJHtyZXNvbHZlZFNwZWNpZmllcn0tJHtyZXNvbHZlZFN1ZmZpeH1gKTtcbn07XG5cbmNvbnN0IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlID0gKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgPT4ge1xuICBpZiAocGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJykubGVuZ3RoIDwgODUpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJyk7XG4gIH1cbiAgY29uc3Qgc3BsaXR0ZWREb21haW4gPSBmdWxseVF1YWxpZmllZERvbWFpbk5hbWVcbiAgICAuc3BsaXQoJy4nKVxuICAgIC5tYXAoKHN1YmRvbWFpbikgPT4gc3ViZG9tYWluLnNwbGl0KCctJykpXG4gICAgLmZsYXQoKTtcbiAgY29uc3QgbWF4Q2hhcmFjdGVyc1BlcldvcmQgPSBNYXRoLmZsb29yKDg1IC8gc3BsaXR0ZWREb21haW4ubGVuZ3RoKTtcbiAgcmV0dXJuIHNwbGl0dGVkRG9tYWluLm1hcCgod29yZCkgPT4gcGFzY2FsQ2FzZSh3b3JkLnNsaWNlKDAsIG1heENoYXJhY3RlcnNQZXJXb3JkKSkucmVwbGFjZSgnXycsICcnKSkuam9pbignJyk7XG59O1xuIiwKICAgICJpbXBvcnQgeyBjZkxvZ2ljYWxOYW1lcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9uYW1pbmcvbG9naWNhbC1uYW1lcyc7XG5cbmV4cG9ydCBjb25zdCBDSElMRF9SRVNPVVJDRVM6IFJlY29yZDxcbiAgU3RwUmVzb3VyY2VUeXBlLFxuICBBcnJheTx7IGxvZ2ljYWxOYW1lOiAoLi4uYXJnczogYW55W10pID0+IHN0cmluZzsgcmVzb3VyY2VUeXBlOiBzdHJpbmc7IGNvbmRpdGlvbmFsPzogdHJ1ZTsgdW5yZXNvbHZhYmxlPzogdHJ1ZSB9PlxuPiA9IHtcbiAgLy8gPT09PT0gQlVDS0VUID09PT09XG4gIGJ1Y2tldDogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IEZVTkNUSU9OID09PT09XG4gIGZ1bmN0aW9uOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUHVibGljVXJsUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUludm9rZUNvbmZpZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUNvZGVEZXBsb3lBcHAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVmVyc2lvblB1Ymxpc2hlckN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVN0cEFsaWFzLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFQZXJtaXNzaW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUkVMQVRJT05BTCBEQVRBQkFTRSA9PT09PVxuICAncmVsYXRpb25hbC1kYXRhYmFzZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlN1Ym5ldEdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURhdGFiYXNlRGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCQ2x1c3RlcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlclBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJDbHVzdGVyTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJJbnN0YW5jZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2UsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJJbnN0YW5jZUxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJPcHRpb25Hcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6Ok9wdGlvbkdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlJlcGxpY2EsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiUmVwbGljYUxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBEWU5BTU8gREIgVEFCTEUgPT09PT1cbiAgJ2R5bmFtby1kYi10YWJsZSc6IFt7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5keW5hbW9HbG9iYWxUYWJsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1dLFxuXG4gIC8vID09PT09IEhUVFAgQVBJIEdBVEVXQVkgPT09PT1cbiAgJ2h0dHAtYXBpLWdhdGV3YXknOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpU3RhZ2UsIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpTdGFnZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGlua1NlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmssIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gQkFUQ0ggSk9CID09PT09XG4gICdiYXRjaC1qb2InOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hTZXJ2aWNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3BvdEZsZWV0Um9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoQ29tcHV0ZUVudmlyb25tZW50LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Q29tcHV0ZUVudmlyb25tZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYlF1ZXVlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JEZWZpbml0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3RhdGVNYWNoaW5lLCByZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYkxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYkV4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFVkVOVCBCVVMgPT09PT1cbiAgJ2V2ZW50LWJ1cyc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1cywgcmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzQXJjaGl2ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU1RBVEUgTUFDSElORSA9PT09PVxuICAnc3RhdGUtbWFjaGluZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5nbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnN0YXRlTWFjaGluZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgXSxcblxuICAvLyA9PT09PSBSRURJUyBDTFVTVEVSID09PT09XG4gICdyZWRpcy1jbHVzdGVyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzUGFyYW1ldGVyR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlBhcmFtZXRlckdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzU3VibmV0R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlN1Ym5ldEdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNSZXBsaWNhdGlvbkdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpSZXBsaWNhdGlvbkdyb3VwJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTU9OR08gREIgQVRMQVMgQ0xVU1RFUiA9PT09PVxuICAnbW9uZ28tZGItYXRsYXMtY2x1c3Rlcic6IFtcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3QsIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3QnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RWcGNOZXR3b3JrUGVlcmluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6Ok5ldHdvcmtQZWVyaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVnBjUm91dGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkNsdXN0ZXInIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DbHVzdGVyTWFzdGVyVXNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBVU0VSIEFVVEggUE9PTCA9PT09PVxuICAndXNlci1hdXRoLXBvb2wnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2wsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc25zUm9sZVNlbmRTbXNGcm9tQ29nbml0bywgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xDbGllbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xEb21haW4nIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZ25pdG9Vc2VyUG9vbERldGFpbHNDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJ1xuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmlkZW50aXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sSWRlbnRpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZ25pdG9MYW1iZGFIb29rUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xVaUN1c3RvbWl6YXRpb25BdHRhY2htZW50LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVJQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gVVBTVEFTSCBSRURJUyA9PT09PVxuICAndXBzdGFzaC1yZWRpcyc6IFtcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXBzdGFzaFJlZGlzRGF0YWJhc2UsIHJlc291cmNlVHlwZTogJ1Vwc3Rhc2g6OlJlZGlzOjpEYXRhYmFzZScgfVxuICBdLFxuXG4gIC8vID09PT09IEFQUExJQ0FUSU9OIExPQUQgQkFMQU5DRVIgPT09PT1cbiAgJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBORVRXT1JLIExPQUQgQkFMQU5DRVIgPT09PT1cbiAgJ25ldHdvcmstbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gSE9TVElORyBCVUNLRVQgPT09PT1cbiAgLy8gSG9zdGluZyBidWNrZXQgZGVsZWdhdGVzIHRvIGEgYnVja2V0IHJlc291cmNlLCBzbyBpdCBpbmNsdWRlcyBhbGwgYnVja2V0IGNoaWxkIHJlc291cmNlc1xuICAnaG9zdGluZy1idWNrZXQnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gV0VCIEFQUCBGSVJFV0FMTCA9PT09PVxuICAnd2ViLWFwcC1maXJld2FsbCc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEN1c3RvbVJlc291cmNlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IE9QRU4gU0VBUkNIIERPTUFJTiA9PT09PVxuICAnb3Blbi1zZWFyY2gtZG9tYWluJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6T3BlblNlYXJjaFNlcnZpY2U6OkRvbWFpbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoRG9tYWluTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRUZTIEZJTEVTWVNURU0gPT09PT1cbiAgJ2Vmcy1maWxlc3lzdGVtJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0ZpbGVzeXN0ZW0sIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc1NlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNNb3VudFRhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpNb3VudFRhcmdldCcsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTkVYVEpTIFdFQiA9PT09PVxuICAvLyBOZXh0SlMgd2ViIGRlbGVnYXRlcyB0bzogYnVja2V0LCBpbWFnZUZ1bmN0aW9uLCByZXZhbGlkYXRpb25GdW5jdGlvbiwgcmV2YWxpZGF0aW9uUXVldWUsXG4gIC8vIHJldmFsaWRhdGlvblRhYmxlLCByZXZhbGlkYXRpb25JbnNlcnRGdW5jdGlvbiwgYW5kIG9wdGlvbmFsbHkgc2VydmVyRWRnZUZ1bmN0aW9uIG9yIHNlcnZlckZ1bmN0aW9uXG4gICduZXh0anMtd2ViJzogW1xuICAgIC8vIE5leHRKUy1zcGVjaWZpYyByZXNvdXJjZXNcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHRIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbidcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJ1xuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0RHluYW1vSW5zZXJ0Q3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIC8vIEZyb20gYnVja2V0XG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gZnVuY3Rpb25zIChpbWFnZUZ1bmN0aW9uLCByZXZhbGlkYXRpb25GdW5jdGlvbiwgc2VydmVyRnVuY3Rpb24sIHdhcm1lckZ1bmN0aW9uLCByZXZhbGlkYXRpb25JbnNlcnRGdW5jdGlvbilcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGVkZ2UgZnVuY3Rpb24gKHNlcnZlckVkZ2VGdW5jdGlvbilcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIEZyb20gcmV2YWxpZGF0aW9uUXVldWVcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlUG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gcmV2YWxpZGF0aW9uVGFibGVcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5keW5hbW9HbG9iYWxUYWJsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1cbiAgXSxcblxuICAvLyA9PT09PSBNVUxUSS1DT05UQUlORVIgV09SS0xPQUQgPT09PT1cbiAgJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZCc6IFtcbiAgICAvLyBTaGFyZWQgZ2xvYmFsIHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBjcmVhdGVkIG9ubHkgb25jZSBpZiBub3QgZXhpc3RzKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBTY2FsaW5nIHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIHNjYWxpbmcgaXMgY29uZmlndXJlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIC8vIEVDMi1iYXNlZCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBpbnN0YW5jZVR5cGVzIGFyZSBjb25maWd1cmVkKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gRGVwbG95bWVudCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBkZXBsb3ltZW50IGlzIGNvbmZpZ3VyZWQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIENvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBTUVMgUVVFVUUgPT09PT1cbiAgJ3Nxcy1xdWV1ZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlUG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU05TIFRPUElDID09PT09XG4gICdzbnMtdG9waWMnOiBbeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc25zVG9waWMsIHJlc291cmNlVHlwZTogJ0FXUzo6U05TOjpUb3BpYycgfV0sXG5cbiAgLy8gPT09PT0gQkFTVElPTiA9PT09PVxuICBiYXN0aW9uOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJBdXRvc2NhbGluZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25TZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMyTGF1bmNoVGVtcGxhdGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uQ3dBZ2VudFNzbUFzc29jaWF0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblNzbUFnZW50U3NtQXNzb2NpYXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFREdFIExBTUJEQSBGVU5DVElPTiA9PT09PVxuICAnZWRnZS1sYW1iZGEtZnVuY3Rpb24nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBTRVJWSUNFID09PT09XG4gIC8vIFdlYiBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgKyBvcHRpb25hbGx5IChodHRwQXBpR2F0ZXdheSBPUiBsb2FkQmFsYW5jZXIgT1IgbmV0d29ya0xvYWRCYWxhbmNlcilcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGFwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXIgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBBTEIgaXMgdXNlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIGh0dHAtYXBpLWdhdGV3YXkgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBIVFRQIEFQSSBHYXRld2F5IGlzIHVzZWQsIGFsdGVybmF0aXZlIHRvIEFMQi9OTEIpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGluaywgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29tbW9uIHJlc291cmNlcyAoZG9tYWlucywgQ0ROIC0gYWxsIGNvbmRpdGlvbmFsKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUFJJVkFURSBTRVJWSUNFID09PT09XG4gIC8vIFByaXZhdGUgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkICsgb3B0aW9uYWxseSBsb2FkQmFsYW5jZXJcbiAgJ3ByaXZhdGUtc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyIChjb25kaXRpb25hbCAtIG9ubHkgaWYgQUxCIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdPUktFUiBTRVJWSUNFID09PT09XG4gIC8vIFdvcmtlciBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgb25seVxuICAnd29ya2VyLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBPVEhFUiBSRVNPVVJDRVMgPT09PT1cbiAgJ2N1c3RvbS1yZXNvdXJjZS1pbnN0YW5jZSc6IFtdLFxuICAnY3VzdG9tLXJlc291cmNlLWRlZmluaXRpb24nOiBbXSxcbiAgJ2RlcGxveW1lbnQtc2NyaXB0JzogW10sXG4gICdhd3MtY2RrLWNvbnN0cnVjdCc6IFtdXG59O1xuIiwKICAgICJpbXBvcnQgeyBDSElMRF9SRVNPVVJDRVMgfSBmcm9tICcuL2NoaWxkLXJlc291cmNlcyc7XG5cbi8vIFByaXZhdGUgc3ltYm9scyBmb3IgaW50ZXJuYWwgbWV0aG9kcyAtIG5vdCBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZVxuLy8gVXNlIFN5bWJvbC5mb3IoKSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgYWNyb3NzIG1vZHVsZXMgKGNydWNpYWwgZm9yIG5wbSBwYWNrYWdlIGludGVyb3ApXG5jb25zdCBnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQYXJhbVJlZmVyZW5jZScpO1xuY29uc3QgZ2V0VHlwZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRUeXBlJyk7XG5jb25zdCBnZXRQcm9wZXJ0aWVzU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFByb3BlcnRpZXMnKTtcbmNvbnN0IGdldE92ZXJyaWRlc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRPdmVycmlkZXMnKTtcbmNvbnN0IGdldFRyYW5zZm9ybXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHJhbnNmb3JtcycpO1xuY29uc3Qgc2V0UmVzb3VyY2VOYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOnNldFJlc291cmNlTmFtZScpO1xuY29uc3QgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc1Jlc291cmNlUGFyYW1SZWYnKTtcbmNvbnN0IGJhc2VUeXBlUHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc0Jhc2VUeXBlUHJvcGVydGllcycpO1xuY29uc3QgYWxhcm1TeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNBbGFybScpO1xuXG4vLyBEdWNrLXR5cGUgY2hlY2tlcnMgLSB1c2Ugc3ltYm9scyBpbnN0ZWFkIG9mIGluc3RhbmNlb2YgZm9yIGNyb3NzLW1vZHVsZSBjb21wYXRpYmlsaXR5XG5jb25zdCBpc0Jhc2VSZXNvdXJjZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEJhc2VSZXNvdXJjZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHNldFJlc291cmNlTmFtZVN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgaXNCYXNlVHlwZVByb3BlcnRpZXMgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlVHlwZVByb3BlcnRpZXMgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzQWxhcm0gPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBBbGFybSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGFsYXJtU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgZGVmZXJyZWROYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmlzRGVmZXJyZWRSZXNvdXJjZU5hbWUnKTtcblxuY29uc3QgaXNEZWZlcnJlZFJlc291cmNlTmFtZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERlZmVycmVkUmVzb3VyY2VOYW1lID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgZGVmZXJyZWROYW1lU3ltYm9sIGluIHZhbHVlO1xuXG4vKipcbiAqIEEgZGVmZXJyZWQgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UncyBuYW1lLlxuICogVXNlZCB3aGVuIGFjY2Vzc2luZyByZXNvdXJjZU5hbWUgYmVmb3JlIHRoZSBuYW1lIGlzIHNldC5cbiAqIFJlc29sdmVzIGxhemlseSBkdXJpbmcgdHJhbnNmb3JtYXRpb24uXG4gKi9cbmNsYXNzIERlZmVycmVkUmVzb3VyY2VOYW1lIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHJlYWRvbmx5IFtkZWZlcnJlZE5hbWVTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZTogQmFzZVJlc291cmNlKSB7XG4gICAgdGhpcy5fX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gIH1cblxuICByZXNvbHZlKCk6IHN0cmluZyB7XG4gICAgLy8gQXQgcmVzb2x1dGlvbiB0aW1lLCB0aGUgbmFtZSBzaG91bGQgYmUgc2V0XG4gICAgY29uc3QgbmFtZSA9ICh0aGlzLl9fcmVzb3VyY2UgYXMgYW55KS5fcmVzb3VyY2VOYW1lO1xuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1Jlc291cmNlIG5hbWUgbm90IHNldC4gTWFrZSBzdXJlIHRvIGFkZCB0aGUgcmVzb3VyY2UgdG8gdGhlIHJlc291cmNlcyBvYmplY3QgaW4geW91ciBjb25maWcuICcgK1xuICAgICAgICAgICdUaGUgcmVzb3VyY2UgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgb2JqZWN0IGtleS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBhdCBydW50aW1lLlxuICogU3RvcmVzIGEgcmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBmb3IgbGF6eSBuYW1lIHJlc29sdXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHByaXZhdGUgX19wYXJhbTogc3RyaW5nO1xuICByZWFkb25seSBbcmVzb3VyY2VQYXJhbVJlZlN5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlOiBCYXNlUmVzb3VyY2UsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgICB0aGlzLl9fcGFyYW0gPSBwYXJhbTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAkUmVzb3VyY2VQYXJhbSgnJHt0aGlzLl9fcmVzb3VyY2UucmVzb3VyY2VOYW1lfScsICcke3RoaXMuX19wYXJhbX0nKWA7XG4gIH1cblxuICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG5cbiAgLy8gQWxsb3cgdGhlIHJlZmVyZW5jZSB0byBiZSB1c2VkIGRpcmVjdGx5IGluIHRlbXBsYXRlIHN0cmluZ3NcbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0eXBlL3Byb3BlcnRpZXMgc3RydWN0dXJlcyAoZW5naW5lcywgcGFja2FnaW5nLCBldmVudHMsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogYW55O1xuICByZWFkb25seSBbYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0eXBlLW9ubHkgc3RydWN0dXJlcyAobm8gcHJvcGVydGllcyBmaWVsZCwganVzdCB0eXBlIGRpc2NyaW1pbmF0b3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVHlwZU9ubHkge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBbYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGFsYXJtIHRoYXQgbW9uaXRvcnMgYSBtZXRyaWMgYW5kIHRyaWdnZXJzIG5vdGlmaWNhdGlvbnMgd2hlbiB0aHJlc2hvbGRzIGFyZSBicmVhY2hlZC5cbiAqXG4gKiBBbGFybXMgY2FuIGJlIGF0dGFjaGVkIHRvIHJlc291cmNlcyBsaWtlIExhbWJkYSBmdW5jdGlvbnMsIGRhdGFiYXNlcywgbG9hZCBiYWxhbmNlcnMsIFNRUyBxdWV1ZXMsIGFuZCBIVFRQIEFQSSBHYXRld2F5cy5cbiAqIFdoZW4gdGhlIGFsYXJtIGNvbmRpdGlvbiBpcyBtZXQgKGUuZy4sIGVycm9yIHJhdGUgZXhjZWVkcyA1JSksIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8gY29uZmlndXJlZCB0YXJnZXRzIChTbGFjaywgZW1haWwsIE1TIFRlYW1zKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIG5ldyBBbGFybSh7XG4gKiAgIHRyaWdnZXI6IG5ldyBMYW1iZGFFcnJvclJhdGVUcmlnZ2VyKHsgdGhyZXNob2xkUGVyY2VudDogNSB9KSxcbiAqICAgZXZhbHVhdGlvbjogeyBwZXJpb2Q6IDYwLCBldmFsdWF0aW9uUGVyaW9kczogMywgYnJlYWNoZWRQZXJpb2RzOiAyIH0sXG4gKiAgIG5vdGlmaWNhdGlvblRhcmdldHM6IFt7IHNsYWNrOiB7IHVybDogJFNlY3JldCgnc2xhY2std2ViaG9vay11cmwnKSB9IH1dLFxuICogICBkZXNjcmlwdGlvbjogJ0xhbWJkYSBlcnJvciByYXRlIGV4Y2VlZGVkIDUlJ1xuICogfSlcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQWxhcm0ge1xuICByZWFkb25seSBbYWxhcm1TeW1ib2xdID0gdHJ1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHRyaWdnZXI6IGFueTtcbiAgcHVibGljIHJlYWRvbmx5IGV2YWx1YXRpb24/OiBhbnk7XG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXRzPzogYW55W107XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogeyB0cmlnZ2VyOiBhbnk7IGV2YWx1YXRpb24/OiBhbnk7IG5vdGlmaWNhdGlvblRhcmdldHM/OiBhbnlbXTsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfSkge1xuICAgIHRoaXMudHJpZ2dlciA9IHByb3BzLnRyaWdnZXI7XG4gICAgdGhpcy5ldmFsdWF0aW9uID0gcHJvcHMuZXZhbHVhdGlvbjtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblRhcmdldHMgPSBwcm9wcy5ub3RpZmljYXRpb25UYXJnZXRzO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgcmVzb3VyY2UgY2xhc3MgdGhhdCBwcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVJlc291cmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogc3RyaW5nO1xuICBwcml2YXRlIF9wcm9wZXJ0aWVzOiBhbnk7XG4gIHByaXZhdGUgX292ZXJyaWRlcz86IGFueTtcbiAgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IGFueTtcbiAgcHJpdmF0ZSBfcmVzb3VyY2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2V4cGxpY2l0TmFtZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIHR5cGU6IHN0cmluZywgcHJvcGVydGllczogYW55LCBvdmVycmlkZXM/OiBhbnkpIHtcbiAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2V4cGxpY2l0TmFtZSA9IG5hbWUgIT09IHVuZGVmaW5lZDtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcblxuICAgIC8vIFN0b3JlIHByb3BlcnRpZXMgYW5kIG92ZXJyaWRlcyBpbml0aWFsbHkgLSB0aGV5J2xsIGJlIHByb2Nlc3NlZCB3aGVuIG5hbWUgaXMgc2V0XG4gICAgdGhpcy5fcHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5fb3ZlcnJpZGVzID0gb3ZlcnJpZGVzO1xuXG4gICAgLy8gSWYgbmFtZSBpcyBhbHJlYWR5IHNldCwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgbm93XG4gICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcHJvY2Vzc092ZXJyaWRlc0FuZFRyYW5zZm9ybXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgZXh0cmFjdGlvbiBmcm9tIHByb3BlcnRpZXMuXG4gICAqIENhbGxlZCB3aGVuIHRoZSByZXNvdXJjZSBuYW1lIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzO1xuICAgIGlmIChwcm9wZXJ0aWVzICYmIHR5cGVvZiBwcm9wZXJ0aWVzID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gQ2xvbmUgcHJvcGVydGllcyB3aXRob3V0IG92ZXJyaWRlcyBhbmQgdHJhbnNmb3Jtc1xuICAgICAgY29uc3QgZmluYWxQcm9wZXJ0aWVzID0geyAuLi5wcm9wZXJ0aWVzIH07XG5cbiAgICAgIC8vIEhhbmRsZSBvdmVycmlkZXNcbiAgICAgIGlmICgnb3ZlcnJpZGVzJyBpbiBmaW5hbFByb3BlcnRpZXMpIHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllc092ZXJyaWRlcyA9IGZpbmFsUHJvcGVydGllcy5vdmVycmlkZXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMub3ZlcnJpZGVzO1xuXG4gICAgICAgIC8vIFRyYW5zZm9ybSBvdmVycmlkZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAgICAgICAgaWYgKHByb3BlcnRpZXNPdmVycmlkZXMgJiYgdHlwZW9mIHByb3BlcnRpZXNPdmVycmlkZXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcnJpZGVzID0gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgcHJvcGVydGllc092ZXJyaWRlcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gSGFuZGxlIHRyYW5zZm9ybXNcbiAgICAgIGlmICgndHJhbnNmb3JtcycgaW4gZmluYWxQcm9wZXJ0aWVzKSB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXNUcmFuc2Zvcm1zID0gZmluYWxQcm9wZXJ0aWVzLnRyYW5zZm9ybXM7XG4gICAgICAgIGRlbGV0ZSBmaW5hbFByb3BlcnRpZXMudHJhbnNmb3JtcztcblxuICAgICAgICAvLyBUcmFuc2Zvcm0gdHJhbnNmb3JtcyB1c2luZyBjZkxvZ2ljYWxOYW1lcyAoc2FtZSBtYXBwaW5nIGFzIG92ZXJyaWRlcylcbiAgICAgICAgaWYgKHByb3BlcnRpZXNUcmFuc2Zvcm1zICYmIHR5cGVvZiBwcm9wZXJ0aWVzVHJhbnNmb3JtcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0aGlzLl90cmFuc2Zvcm1zID0gdHJhbnNmb3JtVHJhbnNmb3Jtc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHByb3BlcnRpZXNUcmFuc2Zvcm1zKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0aGlzLl9wcm9wZXJ0aWVzID0gZmluYWxQcm9wZXJ0aWVzO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBnZXR0ZXIgZm9yIHJlc291cmNlIG5hbWUgKHVzZWQgZm9yIHJlZmVyZW5jaW5nIHJlc291cmNlcylcbiAgLy8gUmV0dXJucyBhIGRlZmVycmVkIHJlZmVyZW5jZSB3aGVuIG5hbWUgaXNuJ3Qgc2V0IHlldCwgd2hpY2ggcmVzb2x2ZXMgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gIGdldCByZXNvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFJldHVybiBhIGRlZmVycmVkIHJlZmVyZW5jZSB0aGF0IHdpbGwgcmVzb2x2ZSBkdXJpbmcgdHJhbnNmb3JtYXRpb25cbiAgICAgIC8vIFR5cGVTY3JpcHQgc2VlcyB0aGlzIGFzIHN0cmluZyBkdWUgdG8gdG9TdHJpbmcvdmFsdWVPZiwgcnVudGltZSByZXNvbHZlcyBsYXppbHlcbiAgICAgIHJldHVybiBuZXcgRGVmZXJyZWRSZXNvdXJjZU5hbWUodGhpcykgYXMgdW5rbm93biBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHNldCB0aGUgcmVzb3VyY2UgbmFtZSBmcm9tIHRoZSBvYmplY3Qga2V5LlxuICAgKiBDYWxsZWQgYnkgdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcy5cbiAgICovXG4gIFtzZXRSZXNvdXJjZU5hbWVTeW1ib2xdKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9leHBsaWNpdE5hbWUgJiYgdGhpcy5fcmVzb3VyY2VOYW1lICE9PSBuYW1lKSB7XG4gICAgICAvLyBJZiBhbiBleHBsaWNpdCBuYW1lIHdhcyBwcm92aWRlZCBhbmQgaXQgZGlmZmVycyBmcm9tIHRoZSBrZXksIHVzZSB0aGUgZXhwbGljaXQgbmFtZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Jlc291cmNlTmFtZSA9IG5hbWU7XG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgbmFtZSwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpdmF0ZSBtZXRob2RzIHVzaW5nIHN5bWJvbHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUgb3IgaW4gYXV0b2NvbXBsZXRlXG4gIFtnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbF0ocGFyYW1OYW1lOiBzdHJpbmcpOiBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gbmV3IFJlc291cmNlUGFyYW1SZWZlcmVuY2UodGhpcywgcGFyYW1OYW1lKTtcbiAgfVxuXG4gIFtnZXRUeXBlU3ltYm9sXSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgW2dldFByb3BlcnRpZXNTeW1ib2xdKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7XG4gIH1cblxuICBbZ2V0T3ZlcnJpZGVzU3ltYm9sXSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vdmVycmlkZXM7XG4gIH1cblxuICBbZ2V0VHJhbnNmb3Jtc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtcztcbiAgfVxufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IG92ZXJyaWRlcyAod2l0aCBwcm9wZXJ0eSBuYW1lcyBsaWtlICdidWNrZXQnLCAnbGFtYmRhTG9nR3JvdXAnKVxuICogdG8gQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1PdmVycmlkZXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIG92ZXJyaWRlczogYW55KTogYW55IHtcbiAgLy8gR2V0IGNoaWxkIHJlc291cmNlcyBmb3IgdGhpcyByZXNvdXJjZSB0eXBlXG4gIGNvbnN0IGNoaWxkUmVzb3VyY2VzID0gQ0hJTERfUkVTT1VSQ0VTW3Jlc291cmNlVHlwZV0gfHwgW107XG5cbiAgLy8gQnVpbGQgYSBtYXAgb2YgcHJvcGVydHkgbmFtZXMgdG8gY2hpbGQgcmVzb3VyY2VzXG4gIGNvbnN0IHByb3BlcnR5TmFtZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgZm9yIChjb25zdCBjaGlsZFJlc291cmNlIG9mIGNoaWxkUmVzb3VyY2VzKSB7XG4gICAgLy8gVGhlIGxvZ2ljYWxOYW1lIGZ1bmN0aW9uIGhhcyBhIG5hbWUgcHJvcGVydHkgdGhhdCBtYXRjaGVzIHRoZSBwcm9wZXJ0eSBuYW1lXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUgJiYgY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lKSB7XG4gICAgICBwcm9wZXJ0eU5hbWVNYXAuc2V0KGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSwgY2hpbGRSZXNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIG92ZXJyaWRlcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRPdmVycmlkZXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgT3ZlcnJpZGUgb2YgcHJvcGVydHkge3Byb3BlcnR5TmFtZX0gb2YgcmVzb3VyY2UgJHtyZXNvdXJjZU5hbWV9IGlzIG5vdCBzdXBwb3J0ZWQuXFxuXG5SZW1vdmUgdGhlIG92ZXJyaWRlLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byBvdmVycmlkZSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIG92ZXJyaWRlcyBvYmplY3QuYDtcblxuICBmb3IgKGNvbnN0IHByb3BlcnR5TmFtZSBpbiBvdmVycmlkZXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICB0cmFuc2Zvcm1lZE92ZXJyaWRlc1tsb2dpY2FsTmFtZV0gPSBvdmVycmlkZXNbcHJvcGVydHlOYW1lXTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gSWYgbm90IGZvdW5kIGluIG1hcCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXMgKHNob3VsZG4ndCBoYXBwZW4gd2l0aCBwcm9wZXIgdHlwZXMpXG4gICAgICB0cmFuc2Zvcm1lZE92ZXJyaWRlc1twcm9wZXJ0eU5hbWVdID0gb3ZlcnJpZGVzW3Byb3BlcnR5TmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkT3ZlcnJpZGVzO1xufVxuXG4vKipcbiAqIFRyYW5zZm9ybSB1c2VyLWZyaWVuZGx5IHRyYW5zZm9ybXMgKHdpdGggcHJvcGVydHkgbmFtZXMgbGlrZSAnbGFtYmRhJywgJ2xhbWJkYUxvZ0dyb3VwJylcbiAqIHRvIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXNcbiAqIFNpbWlsYXIgdG8gb3ZlcnJpZGVzIGJ1dCB0aGUgdmFsdWVzIGFyZSBmdW5jdGlvbnMgaW5zdGVhZCBvZiBvYmplY3RzXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyhyZXNvdXJjZU5hbWU6IHN0cmluZywgcmVzb3VyY2VUeXBlOiBzdHJpbmcsIHRyYW5zZm9ybXM6IGFueSk6IGFueSB7XG4gIC8vIEdldCBjaGlsZCByZXNvdXJjZXMgZm9yIHRoaXMgcmVzb3VyY2UgdHlwZVxuICBjb25zdCBjaGlsZFJlc291cmNlcyA9IENISUxEX1JFU09VUkNFU1tyZXNvdXJjZVR5cGVdIHx8IFtdO1xuXG4gIC8vIEJ1aWxkIGEgbWFwIG9mIHByb3BlcnR5IG5hbWVzIHRvIGNoaWxkIHJlc291cmNlc1xuICBjb25zdCBwcm9wZXJ0eU5hbWVNYXAgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gIGZvciAoY29uc3QgY2hpbGRSZXNvdXJjZSBvZiBjaGlsZFJlc291cmNlcykge1xuICAgIC8vIFRoZSBsb2dpY2FsTmFtZSBmdW5jdGlvbiBoYXMgYSBuYW1lIHByb3BlcnR5IHRoYXQgbWF0Y2hlcyB0aGUgcHJvcGVydHkgbmFtZVxuICAgIGlmIChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lICYmIGNoaWxkUmVzb3VyY2UubG9naWNhbE5hbWUubmFtZSkge1xuICAgICAgcHJvcGVydHlOYW1lTWFwLnNldChjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUsIGNoaWxkUmVzb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSB0cmFuc2Zvcm1zIG9iamVjdFxuICBjb25zdCB0cmFuc2Zvcm1lZFRyYW5zZm9ybXM6IGFueSA9IHt9O1xuICBjb25zdCBlcnJvck1lc3NhZ2UgPSBgVHJhbnNmb3JtIG9mIHByb3BlcnR5IHtwcm9wZXJ0eU5hbWV9IG9mIHJlc291cmNlICR7cmVzb3VyY2VOYW1lfSBpcyBub3Qgc3VwcG9ydGVkLlxcblxuUmVtb3ZlIHRoZSB0cmFuc2Zvcm0sIHJ1biAnc3RhY2t0YXBlIGNvbXBpbGU6dGVtcGxhdGUnIGNvbW1hbmQsIGFuZCBmaW5kIHRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIHJlc291cmNlIHlvdSB3YW50IHRvIHRyYW5zZm9ybSBtYW51YWxseS4gVGhlbiBhZGQgaXQgdG8gdGhlIHRyYW5zZm9ybXMgb2JqZWN0LmA7XG5cbiAgZm9yIChjb25zdCBwcm9wZXJ0eU5hbWUgaW4gdHJhbnNmb3Jtcykge1xuICAgIGNvbnN0IGNoaWxkUmVzb3VyY2UgPSBwcm9wZXJ0eU5hbWVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7XG5cbiAgICAvLyBTa2lwIHVucmVzb2x2YWJsZSByZXNvdXJjZXNcbiAgICBpZiAoY2hpbGRSZXNvdXJjZT8udW5yZXNvbHZhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UpIHtcbiAgICAgIGNvbnN0IGxvZ2ljYWxOYW1lRm4gPSBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lO1xuICAgICAgLy8gQ2FsbCB0aGUgY2ZMb2dpY2FsTmFtZXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lXG4gICAgICAvLyBUcnkgd2l0aCByZXNvdXJjZU5hbWUgZmlyc3QgKG1vc3QgY29tbW9uKSwgdGhlbiB0cnkgd2l0aG91dCBhcmd1bWVudHNcbiAgICAgIGxldCBsb2dpY2FsTmFtZTogc3RyaW5nO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKHJlc291cmNlTmFtZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4oKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWYgYm90aCBmYWlsLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pc1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gcHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobG9naWNhbE5hbWUuaW5jbHVkZXMoJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICAgIH1cbiAgICAgIHRyYW5zZm9ybWVkVHJhbnNmb3Jtc1tsb2dpY2FsTmFtZV0gPSB0cmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIElmIG5vdCBmb3VuZCBpbiBtYXAsIHVzZSBwcm9wZXJ0eSBuYW1lIGFzLWlzIChzaG91bGRuJ3QgaGFwcGVuIHdpdGggcHJvcGVyIHR5cGVzKVxuICAgICAgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV0gPSB0cmFuc2Zvcm1zW3Byb3BlcnR5TmFtZV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRyYW5zZm9ybWVkVHJhbnNmb3Jtcztcbn1cblxuZXhwb3J0IHR5cGUgR2V0Q29uZmlnUGFyYW1zID0ge1xuICAvKipcbiAgICogUHJvamVjdCBuYW1lIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICBwcm9qZWN0TmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogU3RhZ2UgKFwiZW52aXJvbm1lbnRcIikgdXNlZCBmb3IgdGhpcyBvcGVyYXRpb25cbiAgICovXG4gIHN0YWdlOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBV1MgcmVnaW9uIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqIFRoZSBsaXN0IG9mIGF2YWlsYWJsZSByZWdpb25zIGlzIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5hd3Mtc2VydmljZXMuaW5mby9yZWdpb25zLmh0bWxcbiAgICovXG4gIHJlZ2lvbjogc3RyaW5nO1xuICAvKipcbiAgICogTGlzdCBvZiBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvcGVyYXRpb25cbiAgICovXG4gIGNsaUFyZ3M6IFN0YWNrdGFwZUFyZ3M7XG4gIC8qKlxuICAgKiBTdGFja3RhcGUgY29tbWFuZCB1c2VkIHRvIHBlcmZvcm0gdGhpcyBvcGVyYXRpb24gKGNhbiBiZSBlaXRoZXIgZGVwbG95LCBjb2RlYnVpbGQ6ZGVwbG95LCBkZWxldGUsIGV0Yy4pXG4gICAqL1xuICBjb21tYW5kOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMb2NhbGx5LWNvbmZpZ3VyZWQgQVdTIHByb2ZpbGUgdXNlZCB0byBleGVjdXRlIHRoZSBvcGVyYXRpb24uXG4gICAqIERvZXNuJ3QgYXBwbHkgaWYgeW91IGhhdmUgeW91ciBBV1MgYWNjb3VudCBjb25uZWN0ZWQgaW4gXCJhdXRvbWF0aWNcIiBtb2RlLlxuICAgKi9cbiAgYXdzUHJvZmlsZTogc3RyaW5nO1xuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIHVzZXIgcGVyZm9ybWluZyB0aGUgc3RhY2sgb3BlcmF0aW9uXG4gICAqL1xuICB1c2VyOiB7XG4gICAgaWQ6IHN0cmluZztcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgZW1haWw6IHN0cmluZztcbiAgfTtcbn07XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGRlZmluZSBhIGNvbmZpZyB3aXRoIGF1dG9tYXRpYyB0cmFuc2Zvcm1hdGlvblxuICogVXNlIHRoaXMgd2hlbiBleHBvcnRpbmcgeW91ciBjb25maWcgZm9yIHRoZSBTdGFja3RhcGUgQ0xJXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZpbmVDb25maWcgPSAoY29uZmlnRm46IChwYXJhbXM6IEdldENvbmZpZ1BhcmFtcykgPT4gU3RhY2t0YXBlQ29uZmlnKSA9PiB7XG4gIHJldHVybiAocGFyYW1zOiBHZXRDb25maWdQYXJhbXMpID0+IHtcbiAgICBjb25zdCBjb25maWcgPSBjb25maWdGbihwYXJhbXMpO1xuICAgIHJldHVybiB0cmFuc2Zvcm1Db25maWdXaXRoUmVzb3VyY2VzKGNvbmZpZyk7XG4gIH07XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSBjb25maWcgd2l0aCByZXNvdXJjZSBpbnN0YW5jZXMgaW50byBhIHBsYWluIGNvbmZpZyBvYmplY3RcbiAqL1xuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybUNvbmZpZ1dpdGhSZXNvdXJjZXMgPSAoY29uZmlnOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIWNvbmZpZyB8fCB0eXBlb2YgY29uZmlnICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvLyBGaXJzdCBwYXNzOiBzZXQgYWxsIHJlc291cmNlIG5hbWVzIGZyb20gb2JqZWN0IGtleXNcbiAgLy8gVGhpcyBtdXN0IGhhcHBlbiBiZWZvcmUgYW55IHRyYW5zZm9ybWF0aW9uIHNvIHRoYXQgUmVzb3VyY2VQYXJhbVJlZmVyZW5jZXMgY2FuIHJlc29sdmUgbmFtZXNcbiAgaWYgKGNvbmZpZy5yZXNvdXJjZXMgJiYgdHlwZW9mIGNvbmZpZy5yZXNvdXJjZXMgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gY29uZmlnLnJlc291cmNlcykge1xuICAgICAgY29uc3QgcmVzb3VyY2UgPSBjb25maWcucmVzb3VyY2VzW2tleV07XG4gICAgICBpZiAoaXNCYXNlUmVzb3VyY2UocmVzb3VyY2UpKSB7XG4gICAgICAgIChyZXNvdXJjZSBhcyBhbnkpW3NldFJlc291cmNlTmFtZVN5bWJvbF0oa2V5KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTZWNvbmQgcGFzczogdHJhbnNmb3JtIHRoZSBjb25maWdcbiAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgZm9yIChjb25zdCBrZXkgaW4gY29uZmlnKSB7XG4gICAgaWYgKGtleSA9PT0gJ3Jlc291cmNlcycpIHtcbiAgICAgIC8vIFJlc291cmNlcyBhcmUgdHJhbnNmb3JtZWQgYXMgZGVmaW5pdGlvbnNcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtUmVzb3VyY2VEZWZpbml0aW9ucyhjb25maWdba2V5XSk7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdzY3JpcHRzJykge1xuICAgICAgLy8gU2NyaXB0cyBhcmUgYWxzbyB0cmFuc2Zvcm1lZCBhcyBkZWZpbml0aW9uc1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1TY3JpcHREZWZpbml0aW9ucyhjb25maWdba2V5XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtVmFsdWUoY29uZmlnW2tleV0pO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGVudmlyb25tZW50IG9iamVjdCB0byBhcnJheSBmb3JtYXRcbiAqL1xuY29uc3QgdHJhbnNmb3JtRW52aXJvbm1lbnQgPSAoZW52OiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIWVudiB8fCB0eXBlb2YgZW52ICE9PSAnb2JqZWN0JyB8fCBBcnJheS5pc0FycmF5KGVudikpIHtcbiAgICByZXR1cm4gZW52O1xuICB9XG5cbiAgLy8gQ29udmVydCB7IEtFWTogdmFsdWUgfSB0byBbeyBuYW1lOiAnS0VZJywgdmFsdWUgfV1cbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKGVudikubWFwKChbbmFtZSwgdmFsdWVdKSA9PiAoe1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IHRyYW5zZm9ybVZhbHVlKHZhbHVlKVxuICB9KSk7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgcmVzb3VyY2UgZGVmaW5pdGlvbnMgKHZhbHVlcyBpbiB0aGUgcmVzb3VyY2VzIG9iamVjdClcbiAqL1xuY29uc3QgdHJhbnNmb3JtUmVzb3VyY2VEZWZpbml0aW9ucyA9IChyZXNvdXJjZXM6IGFueSk6IGFueSA9PiB7XG4gIGlmICghcmVzb3VyY2VzIHx8IHR5cGVvZiByZXNvdXJjZXMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHJlc291cmNlcztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHJlc291cmNlcykge1xuICAgIGNvbnN0IHJlc291cmNlID0gcmVzb3VyY2VzW2tleV07XG4gICAgaWYgKGlzQmFzZVJlc291cmNlKHJlc291cmNlKSkge1xuICAgICAgY29uc3QgdHlwZSA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFR5cGVTeW1ib2xdKCk7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gKHJlc291cmNlIGFzIGFueSlbZ2V0UHJvcGVydGllc1N5bWJvbF0oKTtcbiAgICAgIGNvbnN0IG92ZXJyaWRlcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldE92ZXJyaWRlc1N5bWJvbF0oKTtcbiAgICAgIGNvbnN0IHRyYW5zZm9ybXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRUcmFuc2Zvcm1zU3ltYm9sXSgpO1xuICAgICAgcmVzdWx0W2tleV0gPSB7XG4gICAgICAgIHR5cGUsXG4gICAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHByb3BlcnRpZXMpLFxuICAgICAgICAuLi4ob3ZlcnJpZGVzICE9PSB1bmRlZmluZWQgJiYgeyBvdmVycmlkZXM6IHRyYW5zZm9ybVZhbHVlKG92ZXJyaWRlcykgfSksXG4gICAgICAgIC4uLih0cmFuc2Zvcm1zICE9PSB1bmRlZmluZWQgJiYgeyB0cmFuc2Zvcm1zIH0pXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHJlc291cmNlKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBzY3JpcHQgZGVmaW5pdGlvbnMgKHZhbHVlcyBpbiB0aGUgc2NyaXB0cyBvYmplY3QpXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVNjcmlwdERlZmluaXRpb25zID0gKHNjcmlwdHM6IGFueSk6IGFueSA9PiB7XG4gIGlmICghc2NyaXB0cyB8fCB0eXBlb2Ygc2NyaXB0cyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gc2NyaXB0cztcbiAgfVxuXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIHNjcmlwdHMpIHtcbiAgICBjb25zdCBzY3JpcHQgPSBzY3JpcHRzW2tleV07XG4gICAgaWYgKGlzQmFzZVR5cGVQcm9wZXJ0aWVzKHNjcmlwdCkpIHtcbiAgICAgIHJlc3VsdFtrZXldID0ge1xuICAgICAgICB0eXBlOiBzY3JpcHQudHlwZSxcbiAgICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUoc2NyaXB0LnByb3BlcnRpZXMpXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHNjcmlwdCk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG5leHBvcnQgY29uc3QgdHJhbnNmb3JtVmFsdWUgPSAodmFsdWU6IGFueSk6IGFueSA9PiB7XG4gIGlmICh2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIERlZmVycmVkUmVzb3VyY2VOYW1lIC0gcmVzb2x2ZSB0byBhY3R1YWwgbmFtZVxuICBpZiAoaXNEZWZlcnJlZFJlc291cmNlTmFtZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUucmVzb2x2ZSgpO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIFJlc291cmNlUGFyYW1SZWZlcmVuY2VcbiAgaWYgKGlzUmVzb3VyY2VQYXJhbVJlZmVyZW5jZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBCYXNlUmVzb3VyY2UgcmVmZXJlbmNlcyAobm90IGRlZmluaXRpb25zKSB0byByZXNvdXJjZU5hbWVcbiAgLy8gVGhpcyBoYW5kbGVzIGNhc2VzIGxpa2UgY29ubmVjdFRvOiBbZGF0YWJhc2VdXG4gIGlmIChpc0Jhc2VSZXNvdXJjZSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUucmVzb3VyY2VOYW1lO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIEJhc2VUeXBlUHJvcGVydGllcyAoZW5naW5lcywgcGFja2FnaW5nLCBldmVudHMpIHRvIHBsYWluIG9iamVjdFxuICBpZiAoaXNCYXNlVHlwZVByb3BlcnRpZXModmFsdWUpKSB7XG4gICAgLy8gSGFuZGxlIHR5cGUtb25seSBjbGFzc2VzIChubyBwcm9wZXJ0aWVzKVxuICAgIGlmICghKCdwcm9wZXJ0aWVzJyBpbiB2YWx1ZSkgfHwgdmFsdWUucHJvcGVydGllcyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4geyB0eXBlOiB2YWx1ZS50eXBlIH07XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICB0eXBlOiB2YWx1ZS50eXBlLFxuICAgICAgcHJvcGVydGllczogdHJhbnNmb3JtVmFsdWUodmFsdWUucHJvcGVydGllcylcbiAgICB9O1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIEFsYXJtIGNsYXNzIHRvIHBsYWluIG9iamVjdFxuICBpZiAoaXNBbGFybSh2YWx1ZSkpIHtcbiAgICBjb25zdCByZXN1bHQ6IGFueSA9IHtcbiAgICAgIHRyaWdnZXI6IHRyYW5zZm9ybVZhbHVlKHZhbHVlLnRyaWdnZXIpXG4gICAgfTtcbiAgICBpZiAodmFsdWUuZXZhbHVhdGlvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQuZXZhbHVhdGlvbiA9IHRyYW5zZm9ybVZhbHVlKHZhbHVlLmV2YWx1YXRpb24pO1xuICAgIH1cbiAgICBpZiAodmFsdWUubm90aWZpY2F0aW9uVGFyZ2V0cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXN1bHQubm90aWZpY2F0aW9uVGFyZ2V0cyA9IHRyYW5zZm9ybVZhbHVlKHZhbHVlLm5vdGlmaWNhdGlvblRhcmdldHMpO1xuICAgIH1cbiAgICBpZiAodmFsdWUuZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmRlc2NyaXB0aW9uID0gdmFsdWUuZGVzY3JpcHRpb247XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gYXJyYXlzXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXAoKGl0ZW0pID0+IHtcbiAgICAgIC8vIElmIGl0J3MgYSByZXNvdXJjZSBpbnN0YW5jZSBpbiBhbiBhcnJheSAoZS5nLiwgY29ubmVjdFRvKSwgdHJhbnNmb3JtIHRvIHJlc291cmNlTmFtZVxuICAgICAgaWYgKGlzQmFzZVJlc291cmNlKGl0ZW0pKSB7XG4gICAgICAgIHJldHVybiBpdGVtLnJlc291cmNlTmFtZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cmFuc2Zvcm1WYWx1ZShpdGVtKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBvYmplY3RzXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiB2YWx1ZSkge1xuICAgICAgLy8gU3BlY2lhbCBoYW5kbGluZyBmb3IgZW52aXJvbm1lbnQgYW5kIGluamVjdEVudmlyb25tZW50IHByb3BlcnRpZXNcbiAgICAgIGlmIChrZXkgPT09ICdlbnZpcm9ubWVudCcgfHwga2V5ID09PSAnaW5qZWN0RW52aXJvbm1lbnQnKSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtRW52aXJvbm1lbnQodmFsdWVba2V5XSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKHZhbHVlW2tleV0pO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcmV0dXJuIHZhbHVlO1xufTtcbiIsCiAgICAiLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgcGFyYW1ldGVyLlxuICogQHBhcmFtIHJlc291cmNlTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSBhcyBzcGVjaWZpZWQgaW4gdGhlIFN0YWNrdGFwZSBjb25maWcuXG4gKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcHJvcGVydHkgb2YgdGhlIHJlc291cmNlLiBUaGUgbGlzdCBvZiBwcm9wZXJ0aWVzIGlzIGF2YWlsYWJsZSBpbiB0aGUgU3RhY2t0YXBlIGRvY3MgZm9yIGV2ZXJ5IGdpdmVuIHJlc291cmNlIHR5cGUuXG4gKi9cbmV4cG9ydCBjb25zdCAkUmVzb3VyY2VQYXJhbSA9IChyZXNvdXJjZU5hbWU6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRSZXNvdXJjZVBhcmFtKCcke3Jlc291cmNlTmFtZX0nLCcke3Byb3BlcnR5fScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSBjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkIC0gVGhlIGxvZ2ljYWwgbmFtZSBvZiB0aGUgQ2xvdWRmb3JtYXRpb24gcmVzb3VyY2UuXG4gKiBJZiB5b3UgYXJlIHJlZmVyZW5jaW5nIGEgcmVzb3VyY2UgZGVmaW5lZCBpbiB0aGUgY2xvdWRmb3JtYXRpb25SZXNvdXJjZXMgc2VjdGlvbiwgdXNlIGl0cyBuYW1lLlxuICogVG8gcmVmZXJlbmNlIGEgY2hpbGQgcmVzb3VyY2Ugb2YgYSBTdGFja3RhcGUgcmVzb3VyY2UsIHlvdSBjYW4gZ2V0IGEgbGlzdCBvZiBjaGlsZCByZXNvdXJjZXMgd2l0aCB0aGUgYHN0YWNrdGFwZSBzdGFjay1pbmZvYCBjb21tYW5kXG4gKiBAcGFyYW0gcHJvcGVydHkgLSBUaGUgcGFyYW1ldGVyIG9mIHRoZSBDbG91ZGZvcm1hdGlvbiByZXNvdXJjZSB0byByZWZlcmVuY2UuXG4gKiBGb3IgYSBsaXN0IG9mIGFsbCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlcnMsIHJlZmVyIHRvIHRoZSBbUmVmZXJlbmNpbmcgcGFyYW1ldGVyc10oaHR0cHM6Ly9kb2NzLnN0YWNrdGFwZS5jb20vY29uZmlndXJhdGlvbi9yZWZlcmVuY2luZy1wYXJhbWV0ZXJzI3BhcmFtZXRlcnMtb2YtY2xvdWRmb3JtYXRpb24tcmVzb3VyY2VzKSBzZWN0aW9uIGluIHRoZSBTdGFja3RhcGUgZG9jcy5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZlJlc291cmNlUGFyYW0gPSAoY2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZDogc3RyaW5nLCBwcm9wZXJ0eTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJENmUmVzb3VyY2VQYXJhbSgnJHtjbG91ZGZvcm1hdGlvblJlc291cmNlTG9naWNhbElkfScsJyR7cHJvcGVydHl9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGEgcmVmZXJlbmNlIHRvIGEgc2VjcmV0LlxuICogQHBhcmFtIHNlY3JldE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgc2VjcmV0LiBNdXN0IGJlIGEgdmFsaWQgc2VjcmV0IG5hbWUgaW4gdGhlIEFXUyBTZWNyZXRzIE1hbmFnZXIgaW4gdGhlIHJlZ2lvbiB5b3UncmUgZGVwbG95aW5nIHRvLlxuICogSWYgdGhlIHNlY3JldCBpcyBpbiBKU09OIGZvcm1hdCwgeW91IGNhbiBleHRyYWN0IG5lc3RlZCBwcm9wZXJ0aWVzIHVzaW5nIGRvdCBub3RhdGlvbi5cbiAqIEV4YW1wbGU6IGAkU2VjcmV0KCdteS1zZWNyZXQuYXBpLWtleScpYCB3aWxsIHJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGBhcGkta2V5YCBwcm9wZXJ0eSBpbiB0aGUgYG15LXNlY3JldGAgc2VjcmV0LlxuICovXG5leHBvcnQgY29uc3QgJFNlY3JldCA9IChzZWNyZXROYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkU2VjcmV0KCcke3NlY3JldE5hbWV9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIGludGVycG9sYXRlZCBzdHJpbmcuIFVubGlrZSB0aGUgJEZvcm1hdCgpIGRpcmVjdGl2ZSwgdGhlICRDZkZvcm1hdCgpIGRpcmVjdGl2ZSBjYW4gY29udGFpbiBydW50aW1lLXJlc29sdmVkIGRpcmVjdGl2ZXMgYXMgYXJndW1lbnRzLlxuICogQHBhcmFtIGludGVycG9sYXRlZFN0cmluZyAtIE9jY3VycmVuY2VzIG9mIHt9IGFyZSByZXBsYWNlZCBieSB0aGUgc3Vic2VxdWVudCBhcmd1bWVudHMuXG4gKiBAcGFyYW0gdmFsdWVzIC0gVGhlIG51bWJlciBvZiB2YWx1ZXMgbXVzdCBiZSBlcXVhbCB0byB0aGUgbnVtYmVyIG9mIHt9IHBsYWNlaG9sZGVycyBpbiB0aGUgZmlyc3QgYXJndW1lbnQuXG4gKiBFeGFtcGxlOlxuICogYCRDZkZvcm1hdCgne30te30nLCAnZm9vJywgJ2JhcicpYCByZXN1bHRzIGluIGBmb28tYmFyYC5cbiAqICRDZkZvcm1hdCgne30tbXlkb21haW4uY29tJywgJ2ZvbycpIHJlc3VsdHMgaW4gZm9vLW15ZG9tYWluLmNvbS5cbiAqIGAkQ2ZGb3JtYXQoJ3t9Lm15ZG9tYWluLmNvbScsICRTdGFnZSgpKWAgcmVzdWx0cyBpbiBgc3RhZ2luZy5teWRvbWFpbi5jb21gIGlmIHRoZSBzdGFnZSBpcyBzdGFnaW5nLlxuICovXG5leHBvcnQgY29uc3QgJENmRm9ybWF0ID0gKGludGVycG9sYXRlZFN0cmluZzogc3RyaW5nLCAuLi52YWx1ZXM6IGFueVtdKSA9PiB7XG4gIHJldHVybiBgJENmRm9ybWF0KCcke2ludGVycG9sYXRlZFN0cmluZ30nLCAnJHt2YWx1ZXMuam9pbignLCcpfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgb3V0cHV0IG9mIGFub3RoZXIgc3RhY2ssIGFsbG93aW5nIHlvdSB0byByZWZlcmVuY2UgcmVzb3VyY2VzIGRlcGxveWVkIGluIGFub3RoZXIgc3RhY2suIFRoZSByZWZlcmVuY2VkIHN0YWNrIG11c3QgYWxyZWFkeSBiZSBkZXBsb3llZC4gSWYgeW91IHRyeSB0byBkZWxldGUgYSBzdGFjayB0aGF0IGlzIHJlZmVyZW5jZWQgYnkgYW5vdGhlciBzdGFjaywgeW91IHdpbGwgZ2V0IGFuIGVycm9yLlxuICogVG8gZ2V0IHRoZSBvdXRwdXQgbG9jYWxseSAoaS5lLiwgZG93bmxvYWQgdGhlIHZhbHVlIGFuZCBwYXNzIGl0IHRvIHRoZSBjb25maWd1cmF0aW9uKSwgdXNlIHRoZSAkU3RhY2tPdXRwdXQoKSBkaXJlY3RpdmUuXG4gKiBAcGFyYW0gc3RhY2tOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHN0YWNrLlxuICogQHBhcmFtIG91dHB1dE5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgb3V0cHV0LlxuICovXG5leHBvcnQgY29uc3QgJENmU3RhY2tPdXRwdXQgPSAoc3RhY2tOYW1lOiBzdHJpbmcsIG91dHB1dE5hbWU6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRDZlN0YWNrT3V0cHV0KCcke3N0YWNrTmFtZX0nLCcke291dHB1dE5hbWV9JylgO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjdXJyZW50IEdpdCByZXBvc2l0b3J5LlxuICpcbiAqICRHaXRJbmZvKCkuc2hhMSAtIFNIQS0xIG9mIHRoZSBsYXRlc3QgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS5jb21taXQgLSBUaGUgbGF0ZXN0IGNvbW1pdCBJRFxuICpcbiAqICRHaXRJbmZvKCkuYnJhbmNoIC0gVGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgYnJhbmNoXG4gKlxuICogJEdpdEluZm8oKS5tZXNzYWdlIC0gVGhlIG1lc3NhZ2Ugb2YgdGhlIGxhc3QgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS51c2VyIC0gR2l0IHVzZXIncyBuYW1lXG4gKlxuICogJEdpdEluZm8oKS5lbWFpbCAtIEdpdCB1c2VyJ3MgZW1haWxcbiAqXG4gKiAkR2l0SW5mbygpLnJlcG9zaXRvcnkgLSBUaGUgbmFtZSBvZiB0aGUgZ2l0IHJlcG9zaXRvcnlcbiAqXG4gKiAkR2l0SW5mbygpLnRhZ3MgLSBUaGUgdGFncyBwb2ludGluZyB0byB0aGUgY3VycmVudCBjb21taXRcbiAqXG4gKiAkR2l0SW5mbygpLmRlc2NyaWJlIC0gVGhlIG1vc3QgcmVjZW50IHRhZyB0aGF0IGlzIHJlYWNoYWJsZSBmcm9tIGEgY29tbWl0XG4gKi9cbmV4cG9ydCBjb25zdCAkR2l0SW5mbyA9ICgpID0+IHtcbiAgcmV0dXJuICckR2l0SW5mbygpJztcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBBV1MgcmVnaW9uIHdoZXJlIHRoZSBzdGFjayBpcyBiZWluZyBkZXBsb3llZC5cbiAqIEV4YW1wbGU6IGB1cy1lYXN0LTFgXG4gKi9cbmV4cG9ydCBjb25zdCAkUmVnaW9uID0gKCkgPT4ge1xuICByZXR1cm4gJyRSZWdpb24oKSc7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgc3RhZ2UgbmFtZS5cbiAqIEV4YW1wbGU6IGBwcm9kdWN0aW9uYCwgYHN0YWdpbmdgLCBgZGV2YFxuICovXG5leHBvcnQgY29uc3QgJFN0YWdlID0gKCkgPT4ge1xuICByZXR1cm4gJyRTdGFnZSgpJztcbn07XG4iLAogICAgIi8qKlxuICogQVdTIFNFUyAoU2ltcGxlIEVtYWlsIFNlcnZpY2UpIHJlZmVyZW5jZSBmb3IgY29ubmVjdFRvXG4gKiBHcmFudHMgZnVsbCBwZXJtaXNzaW9ucyBmb3IgQVdTIFNFUyAoc2VzOiopXG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU0VTID0gJ2F3czpzZXMnIGFzIGNvbnN0O1xuXG4vKipcbiAqIFR5cGUgdGhhdCByZXByZXNlbnRzIGFueSBBV1Mgc2VydmljZSBjb25zdGFudFxuICovXG5leHBvcnQgdHlwZSBHbG9iYWxBd3NTZXJ2aWNlQ29uc3RhbnQgPSB0eXBlb2YgQVdTX1NFUztcbiIsCiAgICAiLyoqXG4gKiBUaGlzIGZpbGUgZGVmaW5lcyB0eXBlLXByb3BlcnRpZXMgc2hhcGVkIGRlZmluaXRpb25zIChlLmcuIFN0YWNrdGFwZSByZXNvdXJjZXMsIHBhY2thZ2luZyB0eXBlcyBldGMuKVxuICogdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgVHlwZXNjcmlwdCBjbGFzcy4gVGhlc2UgY2xhc3NlcyBhcmUgdGhlbiBleHBvcnRlZCBmcm9tIHN0YWNrdGFwZS9jbGFzc2VzXG4gKlxuICogQGV4YW1wbGUgaW1wb3J0IHsgU3RhY2t0YXBlTGFtYmRhQnVpbGRwYWNrUGFja2FnaW5nIH0gZnJvbSAnc3RhY2t0YXBlL2NsYXNzZXMnO1xuICovXG5cbmV4cG9ydCB0eXBlIFJlc291cmNlQ2xhc3NOYW1lID0gT21pdDxLZWJhYlRvUGFzY2FsQ2FzZTxTdHBSZXNvdXJjZVR5cGU+LCAnRnVuY3Rpb24nPiB8ICdMYW1iZGFGdW5jdGlvbic7XG5cbmV4cG9ydCB0eXBlIFJlc291cmNlRGVmaW5pdGlvbiA9IHtcbiAgLyoqIENsYXNzIG5hbWUgZm9yIHRoZSByZXNvdXJjZSAoZS5nLiwgJ0xhbWJkYUZ1bmN0aW9uJykgKi9cbiAgY2xhc3NOYW1lOiBSZXNvdXJjZUNsYXNzTmFtZTtcbiAgLyoqIFJlc291cmNlIHR5cGUgaWRlbnRpZmllciB1c2VkIGluIGNvbmZpZyAoZS5nLiwgJ2Z1bmN0aW9uJykgKi9cbiAgcmVzb3VyY2VUeXBlOiBzdHJpbmc7XG4gIC8qKiBQcm9wcyB0eXBlIG5hbWUgKGUuZy4sICdMYW1iZGFGdW5jdGlvblByb3BzJykgKi9cbiAgcHJvcHNUeXBlOiBzdHJpbmc7XG4gIC8qKiBJbnRlcmZhY2UgbmFtZSBpbiB0aGUgc291cmNlIC5kLnRzIGZpbGUgKGUuZy4sICdMYW1iZGFGdW5jdGlvbicpICovXG4gIGludGVyZmFjZU5hbWU6IHN0cmluZztcbiAgLyoqIFNvdXJjZSAuZC50cyBmaWxlIG5hbWUgKGUuZy4sICdmdW5jdGlvbnMuZC50cycpICovXG4gIHNvdXJjZUZpbGU6IHN0cmluZztcbiAgLyoqIFJlc291cmNlcyBhbmQgQVdTIHNlcnZpY2VzIHRoaXMgcmVzb3VyY2UgY2FuIGNvbm5lY3QgdG8uIEdsb2JhbEF3c1NlcnZpY2VDb25zdGFudCBpcyBmb3IgZ2xvYmFsIHNlcnZpY2VzLCBlLmcuIGF3czpzZXMgICovXG4gIGNhbkNvbm5lY3RUbz86IHN0cmluZ1tdO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIHN1cHBvcnRzIG92ZXJyaWRlcyAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgc3VwcG9ydHNPdmVycmlkZXM/OiBib29sZWFuO1xuICAvKiogV2hldGhlciB0aGlzIHJlc291cmNlIGhhcyBhdWdtZW50ZWQgY29ubmVjdFRvL2Vudmlyb25tZW50IHByb3BzIChkZWZhdWx0OiBmYWxzZSkgKi9cbiAgaGFzQXVnbWVudGVkUHJvcHM/OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBDb21wbGV0ZSBsaXN0IG9mIGFsbCBTdGFja3RhcGUgcmVzb3VyY2VzLlxuICogVGhpcyBpcyB0aGUgc2luZ2xlIHNvdXJjZSBvZiB0cnV0aCAtIGFsbCBjb2RlIGdlbmVyYXRpb24gZGVyaXZlcyBmcm9tIHRoaXMuXG4gKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUzogUmVzb3VyY2VEZWZpbml0aW9uW10gPSBbXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2UnLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV2ViU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnd2ViLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1dlYlNlcnZpY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dlYlNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdQcml2YXRlU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAncHJpdmF0ZS1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdQcml2YXRlU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICdwcml2YXRlLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbSdcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXb3JrZXJTZXJ2aWNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3b3JrZXItc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnV29ya2VyU2VydmljZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV29ya2VyU2VydmljZScsXG4gICAgc291cmNlRmlsZTogJ3dvcmtlci1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2FkJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZCcsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdMYW1iZGFGdW5jdGlvbidcbiAgICBdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFGdW5jdGlvbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnZnVuY3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUZ1bmN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFGdW5jdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2Z1bmN0aW9ucy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgICAgJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICAgICdXZWJTZXJ2aWNlJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0JhdGNoSm9iJyxcbiAgICByZXNvdXJjZVR5cGU6ICdiYXRjaC1qb2InLFxuICAgIHByb3BzVHlwZTogJ0JhdGNoSm9iUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXRjaEpvYicsXG4gICAgc291cmNlRmlsZTogJ2JhdGNoLWpvYnMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0J1Y2tldCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnYnVja2V0JyxcbiAgICBwcm9wc1R5cGU6ICdCdWNrZXRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0J1Y2tldCcsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSG9zdGluZ0J1Y2tldCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnaG9zdGluZy1idWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0hvc3RpbmdCdWNrZXRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0hvc3RpbmdCdWNrZXQnLFxuICAgIHNvdXJjZUZpbGU6ICdob3N0aW5nLWJ1Y2tldHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRHluYW1vRGJUYWJsZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnZHluYW1vLWRiLXRhYmxlJyxcbiAgICBwcm9wc1R5cGU6ICdEeW5hbW9EYlRhYmxlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEeW5hbW9EYlRhYmxlJyxcbiAgICBzb3VyY2VGaWxlOiAnZHluYW1vLWRiLXRhYmxlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFdmVudEJ1cycsXG4gICAgcmVzb3VyY2VUeXBlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdFdmVudEJ1c1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXZlbnRCdXMnLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudC1idXNlcy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpR2F0ZXdheScsXG4gICAgcmVzb3VyY2VUeXBlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUdhdGV3YXlQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlHYXRld2F5JyxcbiAgICBzb3VyY2VGaWxlOiAnaHR0cC1hcGktZ2F0ZXdheXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXInLFxuICAgIHJlc291cmNlVHlwZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcicsXG4gICAgc291cmNlRmlsZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXJzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05ldHdvcmtMb2FkQmFsYW5jZXInLFxuICAgIHJlc291cmNlVHlwZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnTmV0d29ya0xvYWRCYWxhbmNlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTmV0d29ya0xvYWRCYWxhbmNlcicsXG4gICAgc291cmNlRmlsZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlci5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWRpc0NsdXN0ZXInLFxuICAgIHJlc291cmNlVHlwZTogJ3JlZGlzLWNsdXN0ZXInLFxuICAgIHByb3BzVHlwZTogJ1JlZGlzQ2x1c3RlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVkaXNDbHVzdGVyJyxcbiAgICBzb3VyY2VGaWxlOiAncmVkaXMtY2x1c3Rlci5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICByZXNvdXJjZVR5cGU6ICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJyxcbiAgICBwcm9wc1R5cGU6ICdNb25nb0RiQXRsYXNDbHVzdGVyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICBzb3VyY2VGaWxlOiAnbW9uZ28tZGItYXRsYXMtY2x1c3RlcnMuZC50cycsXG4gICAgc3VwcG9ydHNPdmVycmlkZXM6IGZhbHNlLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YXRlTWFjaGluZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnc3RhdGUtbWFjaGluZScsXG4gICAgcHJvcHNUeXBlOiAnU3RhdGVNYWNoaW5lUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdGF0ZU1hY2hpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdzdGF0ZS1tYWNoaW5lcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFsnRnVuY3Rpb24nLCAnQmF0Y2hKb2InXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnVXNlckF1dGhQb29sJyxcbiAgICByZXNvdXJjZVR5cGU6ICd1c2VyLWF1dGgtcG9vbCcsXG4gICAgcHJvcHNUeXBlOiAnVXNlckF1dGhQb29sUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdVc2VyQXV0aFBvb2wnLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Vwc3Rhc2hSZWRpcycsXG4gICAgcmVzb3VyY2VUeXBlOiAndXBzdGFzaC1yZWRpcycsXG4gICAgcHJvcHNUeXBlOiAnVXBzdGFzaFJlZGlzUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdVcHN0YXNoUmVkaXMnLFxuICAgIHNvdXJjZUZpbGU6ICd1cHN0YXNoLXJlZGlzLmQudHMnLFxuICAgIHN1cHBvcnRzT3ZlcnJpZGVzOiBmYWxzZSxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnc3FzLXF1ZXVlJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWUnLFxuICAgIHNvdXJjZUZpbGU6ICdzcXMtcXVldWVzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nuc1RvcGljJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzbnMtdG9waWMnLFxuICAgIHByb3BzVHlwZTogJ1Nuc1RvcGljUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTbnNUb3BpYycsXG4gICAgc291cmNlRmlsZTogJ3Nucy10b3BpYy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdXZWJBcHBGaXJld2FsbCcsXG4gICAgcmVzb3VyY2VUeXBlOiAnd2ViLWFwcC1maXJld2FsbCcsXG4gICAgcHJvcHNUeXBlOiAnV2ViQXBwRmlyZXdhbGxQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dlYkFwcEZpcmV3YWxsJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICByZXNvdXJjZVR5cGU6ICdvcGVuLXNlYXJjaC1kb21haW4nLFxuICAgIHByb3BzVHlwZTogJ09wZW5TZWFyY2hEb21haW5Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ09wZW5TZWFyY2hEb21haW4nLFxuICAgIHNvdXJjZUZpbGU6ICdvcGVuLXNlYXJjaC5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFZnNGaWxlc3lzdGVtJyxcbiAgICByZXNvdXJjZVR5cGU6ICdlZnMtZmlsZXN5c3RlbScsXG4gICAgcHJvcHNUeXBlOiAnRWZzRmlsZXN5c3RlbVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRWZzRmlsZXN5c3RlbScsXG4gICAgc291cmNlRmlsZTogJ2Vmcy1maWxlc3lzdGVtLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05leHRqc1dlYicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbmV4dGpzLXdlYicsXG4gICAgcHJvcHNUeXBlOiAnTmV4dGpzV2ViUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOZXh0anNXZWInLFxuICAgIHNvdXJjZUZpbGU6ICduZXh0anMtd2ViLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgICAgJ1dlYlNlcnZpY2UnLFxuICAgICAgJ0xhbWJkYUZ1bmN0aW9uJyxcbiAgICAgICdCYXRjaEpvYicsXG4gICAgICAnVXNlckF1dGhQb29sJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Jhc3Rpb24nLFxuICAgIHJlc291cmNlVHlwZTogJ2Jhc3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0Jhc3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Jhc3Rpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdiYXN0aW9uLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfVxuXTtcblxuLyoqXG4gKiBEZWZpbmVzIGFsbCB0eXBlICsgcHJvcGVydGllcyBzaGFwZWQgZGVmaW5pdGlvbnMgdGhhdCBjYW4gYmUgY29udmVydGVkIHRvIGEgVHlwZXNjcmlwdCBjbGFzc1xuICovXG5leHBvcnQgdHlwZSBUeXBlUHJvcGVydGllc0RlZmluaXRpb24gPSB7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICB0eXBlVmFsdWU6IHN0cmluZztcbiAgcHJvcHNUeXBlOiBzdHJpbmc7XG4gIGludGVyZmFjZU5hbWU6IHN0cmluZztcbiAgc291cmNlRmlsZTogc3RyaW5nO1xuICAvKiogSWYgdHJ1ZSwgdGhpcyB0eXBlIGhhcyBubyBwcm9wZXJ0aWVzIGZpZWxkIC0ganVzdCBhIHR5cGUgZGlzY3JpbWluYXRvciAqL1xuICB0eXBlT25seT86IGJvb2xlYW47XG4gIC8qKiBDdXN0b20gSlNEb2MgZGVzY3JpcHRpb24gZm9yIHRoZSBjbGFzcyBjb25zdHJ1Y3RvciAqL1xuICBqc2RvYz86IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVM6IFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbltdID0gW1xuICAvLyBEYXRhYmFzZSBFbmdpbmVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVQb3N0Z3JlcycsXG4gICAgdHlwZVZhbHVlOiAncG9zdGdyZXMnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lTWFyaWFkYicsXG4gICAgdHlwZVZhbHVlOiAnbWFyaWFkYicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnbXlzcWwnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lT3JhY2xlRUUnLFxuICAgIHR5cGVWYWx1ZTogJ29yYWNsZS1lZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVPcmFjbGVTRTInLFxuICAgIHR5cGVWYWx1ZTogJ29yYWNsZS1zZTInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyRUUnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1lZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJFWCcsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLWV4JyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlclNFJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItc2UnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyV2ViJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYUVuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYUVuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYUVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVBvc3RncmVzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1wb3N0Z3Jlc3FsLXNlcnZlcmxlc3MnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbC1zZXJ2ZXJsZXNzJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwtc2VydmVybGVzcy12MicsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsLXNlcnZlcmxlc3MtdjInLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICAvLyBMYW1iZGEgUGFja2FnaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3N0YWNrdGFwZS1sYW1iZGEtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdTdHBCdWlsZHBhY2tMYW1iZGFQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0cEJ1aWxkcGFja0xhbWJkYVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLWFydGlmYWN0JyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICAvLyBDb250YWluZXIgUGFja2FnaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdQcmVidWlsdEltYWdlUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdwcmVidWlsdC1pbWFnZScsXG4gICAgcHJvcHNUeXBlOiAnUHJlYnVpbHRJbWFnZUN3UGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdQcmVidWlsdEN3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tRG9ja2VyZmlsZVBhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLWRvY2tlcmZpbGUnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbURvY2tlcmZpbGVDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21Eb2NrZXJmaWxlQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFeHRlcm5hbEJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnZXh0ZXJuYWwtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdFeHRlcm5hbEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V4dGVybmFsQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdOaXhwYWNrc1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnbml4cGFja3MnLFxuICAgIHByb3BzVHlwZTogJ05peHBhY2tzQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTml4cGFja3NDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YWNrdGFwZUltYWdlQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdzdGFja3RhcGUtaW1hZ2UtYnVpbGRwYWNrJyxcbiAgICBwcm9wc1R5cGU6ICdTdHBCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTdHBCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAgLy8gTGFtYmRhIEZ1bmN0aW9uIEV2ZW50cy9JbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1MzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3MzJyxcbiAgICBwcm9wc1R5cGU6ICdTM0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTM0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTY2hlZHVsZUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzY2hlZHVsZScsXG4gICAgcHJvcHNUeXBlOiAnU2NoZWR1bGVJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU2NoZWR1bGVJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU25zSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NucycsXG4gICAgcHJvcHNUeXBlOiAnU25zSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nuc0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc3FzJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0tpbmVzaXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAna2luZXNpcycsXG4gICAgcHJvcHNUeXBlOiAnS2luZXNpc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdLaW5lc2lzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0R5bmFtb0RiSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2R5bmFtb2RiJyxcbiAgICBwcm9wc1R5cGU6ICdEeW5hbW9EYkludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEeW5hbW9EYkludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2Nsb3Vkd2F0Y2gtbG9ncycsXG4gICAgcHJvcHNUeXBlOiAnQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnRXZlbnRCdXNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdrYWZrYS10b3BpYycsXG4gICAgcHJvcHNUeXBlOiAnS2Fma2FUb3BpY0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FsYXJtSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2FsYXJtJyxcbiAgICBwcm9wc1R5cGU6ICdBbGFybUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBbGFybUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdJb3RJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaW90JyxcbiAgICBwcm9wc1R5cGU6ICdJb3RJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSW90SW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAgLy8gQ0ROIFJvdXRlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuTG9hZEJhbGFuY2VyUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInLFxuICAgIHByb3BzVHlwZTogJ0NkbkxvYWRCYWxhbmNlck9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkxvYWRCYWxhbmNlck9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuSHR0cEFwaUdhdGV3YXlSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnQ2RuSHR0cEFwaUdhdGV3YXlPcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5IdHRwQXBpR2F0ZXdheU9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuTGFtYmRhRnVuY3Rpb25Sb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnZnVuY3Rpb24nLFxuICAgIHByb3BzVHlwZTogJ0NkbkxhbWJkYUZ1bmN0aW9uT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuTGFtYmRhRnVuY3Rpb25PcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkN1c3RvbURvbWFpblJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tb3JpZ2luJyxcbiAgICBwcm9wc1R5cGU6ICdDZG5DdXN0b21PcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5DdXN0b21PcmlnaW4nLFxuICAgIHNvdXJjZUZpbGU6ICdjZG4uZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NkbkJ1Y2tldFJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdidWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0NkbkJ1Y2tldE9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkJ1Y2tldE9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICAvLyBXZWIgQXBwIEZpcmV3YWxsIFJ1bGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNYW5hZ2VkUnVsZUdyb3VwJyxcbiAgICB0eXBlVmFsdWU6ICdtYW5hZ2VkLXJ1bGUtZ3JvdXAnLFxuICAgIHByb3BzVHlwZTogJ01hbmFnZWRSdWxlR3JvdXBQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ01hbmFnZWRSdWxlR3JvdXAnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21SdWxlR3JvdXAnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1ydWxlLWdyb3VwJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SdWxlR3JvdXBQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbVJ1bGVHcm91cCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JhdGVCYXNlZFJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ3JhdGUtYmFzZWQtcnVsZScsXG4gICAgcHJvcHNUeXBlOiAnUmF0ZUJhc2VkU3RhdGVtZW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSYXRlQmFzZWRSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICAvLyBTUVMgUXVldWUgSW50ZWdyYXRpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2V2ZW50LWJ1cycsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVFdmVudEJ1c0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdzcXMtcXVldWVzLmQudHMnXG4gIH0sXG4gIC8vIE11bHRpIENvbnRhaW5lciBXb3JrbG9hZCBJbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXknLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ25ldHdvcmstbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3dvcmtsb2FkLWludGVybmFsJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZEludGVybmFsSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzZXJ2aWNlLWNvbm5lY3QnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICAvLyBTY3JpcHRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMb2NhbFNjcmlwdCcsXG4gICAgdHlwZVZhbHVlOiAnbG9jYWwtc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdMb2NhbFNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTG9jYWxTY3JpcHQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Jhc3Rpb25TY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2Jhc3Rpb24tc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdCYXN0aW9uU2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdCYXN0aW9uU2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdsb2NhbC1zY3JpcHQtd2l0aC1iYXN0aW9uLXR1bm5lbGluZycsXG4gICAgcHJvcHNUeXBlOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICAvLyBMb2cgRm9yd2FyZGluZ1xuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1lbmRwb2ludCcsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZycsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSGlnaGxpZ2h0TG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnaGlnaGxpZ2h0JyxcbiAgICBwcm9wc1R5cGU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZycsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWRvZycsXG4gICAgcHJvcHNUeXBlOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIC8vIEJ1Y2tldCBMaWZlY3ljbGUgUnVsZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICB0eXBlVmFsdWU6ICdleHBpcmF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdFeHBpcmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgc291cmNlRmlsZTogJ2J1Y2tldHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ25vbi1jdXJyZW50LXZlcnNpb24tZXhwaXJhdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJ1xuICB9LFxuICAvLyBFRlMgTW91bnRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDb250YWluZXJFZnNNb3VudCcsXG4gICAgdHlwZVZhbHVlOiAnZWZzJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJFZnNNb3VudFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyRWZzTW91bnQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUVmc01vdW50JyxcbiAgICB0eXBlVmFsdWU6ICdlZnMnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUVmc01vdW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFFZnNNb3VudCcsXG4gICAgc291cmNlRmlsZTogJ2Z1bmN0aW9ucy5kLnRzJ1xuICB9LFxuICAvLyBBdXRob3JpemVyc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnQ29nbml0b0F1dGhvcml6ZXInLFxuICAgIHR5cGVWYWx1ZTogJ2NvZ25pdG8nLFxuICAgIHByb3BzVHlwZTogJ0NvZ25pdG9BdXRob3JpemVyUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvZ25pdG9BdXRob3JpemVyJyxcbiAgICBzb3VyY2VGaWxlOiAndXNlci1wb29scy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhQXV0aG9yaXplcicsXG4gICAgdHlwZVZhbHVlOiAnbGFtYmRhJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFBdXRob3JpemVyUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUF1dGhvcml6ZXInLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnXG4gIH0sXG4gIC8vIEFsYXJtIFRyaWdnZXJzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckN1c3RvbVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXItY3VzdG9tJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckN1c3RvbVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtLW1ldHJpY3MuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gYmFzZWQgb24gYW55IEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIgQ2xvdWRXYXRjaCBtZXRyaWMgKGUuZy4sIGNvbm5lY3Rpb24gY291bnRzLCByZXF1ZXN0IGNvdW50cywgdGFyZ2V0IHJlc3BvbnNlIHRpbWVzKS4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXItZXJyb3ItcmF0ZScsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJFcnJvclJhdGVUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBlcnJvciByYXRlIChwZXJjZW50YWdlIG9mIDR4eC81eHggcmVzcG9uc2VzKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJVbmhlYWx0aHlUYXJnZXRzVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlci11bmhlYWx0aHktdGFyZ2V0cycsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJVbmhlYWx0aHlUYXJnZXRzVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJVbmhlYWx0aHlUYXJnZXRzVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBwZXJjZW50YWdlIG9mIHVuaGVhbHRoeSB0YXJnZXRzIGJlaGluZCB0aGUgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUdhdGV3YXlFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5LWVycm9yLXJhdGUnLFxuICAgIHByb3BzVHlwZTogJ0h0dHBBcGlHYXRld2F5RXJyb3JSYXRlVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUdhdGV3YXlFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIEhUVFAgQVBJIEdhdGV3YXkgZXJyb3IgcmF0ZSAocGVyY2VudGFnZSBvZiA0eHgvNXh4IHJlc3BvbnNlcykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlHYXRld2F5TGF0ZW5jeVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXktbGF0ZW5jeScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUdhdGV3YXlMYXRlbmN5VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUdhdGV3YXlMYXRlbmN5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIEhUVFAgQVBJIEdhdGV3YXkgbGF0ZW5jeSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuIExhdGVuY3kgaXMgbWVhc3VyZWQgZnJvbSByZXF1ZXN0IHJlY2VpcHQgdG8gcmVzcG9uc2Ugc2VudC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VSZWFkTGF0ZW5jeVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLXJlYWQtbGF0ZW5jeScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlUmVhZExhdGVuY3lUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VSZWFkTGF0ZW5jeVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIGRhdGFiYXNlIHJlYWQgbGF0ZW5jeSAoYXZlcmFnZSB0aW1lIGZvciByZWFkIEkvTyBvcGVyYXRpb25zKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlV3JpdGVMYXRlbmN5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2Utd3JpdGUtbGF0ZW5jeScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlV3JpdGVMYXRlbmN5VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlV3JpdGVMYXRlbmN5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIGRhdGFiYXNlIHdyaXRlIGxhdGVuY3kgKGF2ZXJhZ2UgdGltZSBmb3Igd3JpdGUgSS9PIG9wZXJhdGlvbnMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDUFVVdGlsaXphdGlvblRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLWNwdS11dGlsaXphdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlQ1BVVXRpbGl6YXRpb25UcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDUFVVdGlsaXphdGlvblRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIGRhdGFiYXNlIENQVSB1dGlsaXphdGlvbiBleGNlZWRzIHRoZSB0aHJlc2hvbGQgcGVyY2VudGFnZS4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2RhdGFiYXNlLWZyZWUtc3RvcmFnZScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZVN0b3JhZ2VUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIGF2YWlsYWJsZSBkYXRhYmFzZSBzdG9yYWdlIGZhbGxzIGJlbG93IHRoZSB0aHJlc2hvbGQgKGluIE1CKS4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlTWVtb3J5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtZnJlZS1tZW1vcnknLFxuICAgIHByb3BzVHlwZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlTWVtb3J5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gYXZhaWxhYmxlIGRhdGFiYXNlIG1lbW9yeSBmYWxscyBiZWxvdyB0aGUgdGhyZXNob2xkIChpbiBNQikuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlQ29ubmVjdGlvbkNvdW50VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtY29ubmVjdGlvbi1jb3VudCcsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlQ29ubmVjdGlvbkNvdW50VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlQ29ubmVjdGlvbkNvdW50VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIG51bWJlciBvZiBkYXRhYmFzZSBjb25uZWN0aW9ucyBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3FzUXVldWVSZWNlaXZlZE1lc3NhZ2VzQ291bnRUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdzcXMtcXVldWUtcmVjZWl2ZWQtbWVzc2FnZXMtY291bnQnLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlUmVjZWl2ZWRNZXNzYWdlc0NvdW50VHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3FzUXVldWVSZWNlaXZlZE1lc3NhZ2VzQ291bnRUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgbnVtYmVyIG9mIG1lc3NhZ2VzIHJlY2VpdmVkIGZyb20gYW4gU1FTIHF1ZXVlIGNyb3NzZXMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZU5vdEVtcHR5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnc3FzLXF1ZXVlLW5vdC1lbXB0eScsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVOb3RFbXB0eVRyaWdnZXInLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZU5vdEVtcHR5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICB0eXBlT25seTogdHJ1ZSxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIGlmIHRoZSBTUVMgcXVldWUgaXMgbm90IGVtcHR5LiBVc2VmdWwgZm9yIG1vbml0b3JpbmcgZGVhZC1sZXR0ZXIgcXVldWVzLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2xhbWJkYS1lcnJvci1yYXRlJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFFcnJvclJhdGVUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMYW1iZGFFcnJvclJhdGVUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIExhbWJkYSBmdW5jdGlvbiBlcnJvciByYXRlIChwZXJjZW50YWdlIG9mIGZhaWxlZCBpbnZvY2F0aW9ucykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xhbWJkYUR1cmF0aW9uVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnbGFtYmRhLWR1cmF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFEdXJhdGlvblRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUR1cmF0aW9uVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gTGFtYmRhIGZ1bmN0aW9uIGV4ZWN1dGlvbiBkdXJhdGlvbiBleGNlZWRzIHRoZSB0aHJlc2hvbGQgKGluIG1pbGxpc2Vjb25kcykuJ1xuICB9LFxuICAvLyBDdXN0b20gUmVzb3VyY2VzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1yZXNvdXJjZS1kZWZpbml0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SZXNvdXJjZURlZmluaXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2N1c3RvbS1yZXNvdXJjZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJlc291cmNlSW5zdGFuY2UnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1yZXNvdXJjZS1pbnN0YW5jZScsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZScsXG4gICAgc291cmNlRmlsZTogJ2N1c3RvbS1yZXNvdXJjZXMuZC50cydcbiAgfSxcbiAgLy8gRGVwbG95bWVudCBTY3JpcHRzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEZXBsb3ltZW50U2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdkZXBsb3ltZW50LXNjcmlwdCcsXG4gICAgcHJvcHNUeXBlOiAnRGVwbG95bWVudFNjcmlwdFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRGVwbG95bWVudFNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtc2NyaXB0LmQudHMnXG4gIH0sXG4gIC8vIEVkZ2UgTGFtYmRhIEZ1bmN0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnRWRnZUxhbWJkYUZ1bmN0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdlZGdlLWxhbWJkYS1mdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnRWRnZUxhbWJkYUZ1bmN0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFZGdlTGFtYmRhRnVuY3Rpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdlZGdlLWxhbWJkYS1mdW5jdGlvbnMuZC50cydcbiAgfVxuXTtcblxuLy8gPT09PT09PT09PT09PT09PT09PT0gSEVMUEVSIEZVTkNUSU9OUyA9PT09PT09PT09PT09PT09PT09PVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IFJlc291cmNlRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKChyKSA9PiByLmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlQnlUeXBlKHJlc291cmNlVHlwZTogc3RyaW5nKTogUmVzb3VyY2VEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHIpID0+IHIucmVzb3VyY2VUeXBlID09PSByZXNvdXJjZVR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VzV2l0aEF1Z21lbnRlZFByb3BzKCk6IFJlc291cmNlRGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigocikgPT4gci5oYXNBdWdtZW50ZWRQcm9wcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZXNXaXRoT3ZlcnJpZGVzKCk6IFJlc291cmNlRGVmaW5pdGlvbltdIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigocikgPT4gci5zdXBwb3J0c092ZXJyaWRlcyAhPT0gZmFsc2UpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHlwZVByb3BlcnRpZXNCeUNsYXNzTmFtZShjbGFzc05hbWU6IHN0cmluZyk6IFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgodCkgPT4gdC5jbGFzc05hbWUgPT09IGNsYXNzTmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlUHJvcGVydGllc0J5VHlwZVZhbHVlKHR5cGVWYWx1ZTogc3RyaW5nKTogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKCh0KSA9PiB0LnR5cGVWYWx1ZSA9PT0gdHlwZVZhbHVlKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT0gREVSSVZFRCBNQVBQSU5HUyA9PT09PT09PT09PT09PT09PT09PVxuXG4vKiogUmVzb3VyY2UgdHlwZSDihpIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgUmVzb3VyY2VDbGFzc05hbWU+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5tYXAoKHIpID0+IFtyLnJlc291cmNlVHlwZSwgci5jbGFzc05hbWVdKVxuKTtcblxuLyoqIFNjcmlwdCB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBTQ1JJUFRfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcihcbiAgICAodCkgPT4gdC5zb3VyY2VGaWxlID09PSAnX19oZWxwZXJzLmQudHMnICYmIHQucHJvcHNUeXBlLmluY2x1ZGVzKCdTY3JpcHQnKVxuICApLm1hcCgodCkgPT4gW3QudHlwZVZhbHVlLCB0LmNsYXNzTmFtZV0pXG4pO1xuXG4vKiogUGFja2FnaW5nIHR5cGUg4oaSIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFBBQ0tBR0lOR19UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKCh0KSA9PiB0LnNvdXJjZUZpbGUgPT09ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJykubWFwKCh0KSA9PiBbXG4gICAgdC50eXBlVmFsdWUsXG4gICAgdC5jbGFzc05hbWVcbiAgXSlcbik7XG5cbi8qKiBFbmdpbmUgdHlwZSDihpIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgRU5HSU5FX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHQpID0+IHQucHJvcHNUeXBlLmluY2x1ZGVzKCdFbmdpbmUnKSkubWFwKCh0KSA9PiBbdC50eXBlVmFsdWUsIHQuY2xhc3NOYW1lXSlcbik7XG4iLAogICAgIi8vIFJlLWV4cG9ydCBmcm9tIGNsYXNzLWNvbmZpZyAoc2luZ2xlIHNvdXJjZSBvZiB0cnV0aClcbmV4cG9ydCB7XG4gIGdldFJlc291cmNlQnlDbGFzc05hbWUsXG4gIGdldFJlc291cmNlQnlUeXBlLFxuICBnZXRSZXNvdXJjZXNXaXRoQXVnbWVudGVkUHJvcHMsXG4gIGdldFJlc291cmNlc1dpdGhPdmVycmlkZXMsXG4gIGdldFR5cGVQcm9wZXJ0aWVzQnlDbGFzc05hbWUsXG4gIGdldFR5cGVQcm9wZXJ0aWVzQnlUeXBlVmFsdWUsXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyxcbiAgdHlwZSBSZXNvdXJjZURlZmluaXRpb24sXG4gIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLFxuICB0eXBlIFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvblxufSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5cbi8vIFRoZXNlIGNhbiBiZSByZWZlcmVuY2VkIHVzaW5nICRSZXNvdXJjZVBhcmFtIGRpcmVjdGl2ZVxuZXhwb3J0IGNvbnN0IFJFRkVSRU5DRUFCTEVfUEFSQU1TOiBSZWNvcmQ8c3RyaW5nLCBBcnJheTx7IG5hbWU6IHN0cmluZzsgZGVzY3JpcHRpb246IHN0cmluZyB9Pj4gPSB7XG4gICdyZWxhdGlvbmFsLWRhdGFiYXNlJzogW1xuICAgIHsgbmFtZTogJ2Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0Nvbm5lY3Rpb24gc3RyaW5nIGZvciB0aGUgZGF0YWJhc2UnIH0sXG4gICAgeyBuYW1lOiAnamRiY0Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ0pEQkMgY29ubmVjdGlvbiBzdHJpbmcnIH0sXG4gICAgeyBuYW1lOiAnaG9zdCcsIGRlc2NyaXB0aW9uOiAnRGF0YWJhc2UgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdwb3J0JywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBwb3J0JyB9LFxuICAgIHsgbmFtZTogJ2RiTmFtZScsIGRlc2NyaXB0aW9uOiAnRGF0YWJhc2UgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJIb3N0JywgZGVzY3JpcHRpb246ICdSZWFkZXIgZW5kcG9pbnQgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJDb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdSZWFkZXIgY29ubmVjdGlvbiBzdHJpbmcnIH0sXG4gICAgeyBuYW1lOiAncmVhZGVySmRiY0Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBKREJDIGNvbm5lY3Rpb24gc3RyaW5nJyB9XG4gIF0sXG4gICd3ZWItc2VydmljZSc6IFtcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ1dlYiBzZXJ2aWNlIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYiBzZXJ2aWNlIFVSTCcgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5VcmxzJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWluIFVSTHMnIH1cbiAgXSxcbiAgJ3ByaXZhdGUtc2VydmljZSc6IFt7IG5hbWU6ICdhZGRyZXNzJywgZGVzY3JpcHRpb246ICdQcml2YXRlIHNlcnZpY2UgYWRkcmVzcycgfV0sXG4gIGJ1Y2tldDogW1xuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnQnVja2V0IEFSTicgfVxuICBdLFxuICAnZHluYW1vLWRiLXRhYmxlJzogW1xuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1RhYmxlIG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdUYWJsZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAnc3RyZWFtQXJuJywgZGVzY3JpcHRpb246ICdTdHJlYW0gQVJOJyB9XG4gIF0sXG4gIGZ1bmN0aW9uOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdGdW5jdGlvbiBBUk4nIH0sXG4gICAgeyBuYW1lOiAnbG9nR3JvdXBBcm4nLCBkZXNjcmlwdGlvbjogJ0xvZyBncm91cCBBUk4nIH1cbiAgXSxcbiAgJ2JhdGNoLWpvYic6IFtcbiAgICB7IG5hbWU6ICdqb2JEZWZpbml0aW9uQXJuJywgZGVzY3JpcHRpb246ICdKb2IgZGVmaW5pdGlvbiBBUk4nIH0sXG4gICAgeyBuYW1lOiAnc3RhdGVNYWNoaW5lQXJuJywgZGVzY3JpcHRpb246ICdTdGF0ZSBtYWNoaW5lIEFSTicgfSxcbiAgICB7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfVxuICBdLFxuICAnZXZlbnQtYnVzJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRXZlbnQgYnVzIEFSTicgfSxcbiAgICB7IG5hbWU6ICdhcmNoaXZlQXJuJywgZGVzY3JpcHRpb246ICdBcmNoaXZlIEFSTicgfVxuICBdLFxuICAnaHR0cC1hcGktZ2F0ZXdheSc6IFtcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ0FQSSBHYXRld2F5IGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ0FQSSBHYXRld2F5IFVSTCcgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5VcmxzJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWluIFVSTHMnIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWluVXJsJywgZGVzY3JpcHRpb246ICdGaXJzdCBjdXN0b20gZG9tYWluIFVSTCcgfVxuICBdLFxuICAnbW9uZ28tZGItYXRsYXMtY2x1c3Rlcic6IFt7IG5hbWU6ICdjb25uZWN0aW9uU3RyaW5nJywgZGVzY3JpcHRpb246ICdNb25nb0RCIGNvbm5lY3Rpb24gc3RyaW5nJyB9XSxcbiAgJ3JlZGlzLWNsdXN0ZXInOiBbXG4gICAgeyBuYW1lOiAnaG9zdCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJIb3N0JywgZGVzY3JpcHRpb246ICdSZWRpcyByZWFkZXIgaG9zdCcgfSxcbiAgICB7IG5hbWU6ICdwb3J0JywgZGVzY3JpcHRpb246ICdSZWRpcyBwb3J0JyB9LFxuICAgIHsgbmFtZTogJ3NoYXJkaW5nJywgZGVzY3JpcHRpb246ICdTaGFyZGluZyBzdGF0dXMnIH1cbiAgXSxcbiAgJ3N0YXRlLW1hY2hpbmUnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdTdGF0ZSBtYWNoaW5lIEFSTicgfSxcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdTdGF0ZSBtYWNoaW5lIG5hbWUnIH1cbiAgXSxcbiAgJ3VzZXItYXV0aC1wb29sJzogW1xuICAgIHsgbmFtZTogJ2lkJywgZGVzY3JpcHRpb246ICdVc2VyIHBvb2wgSUQnIH0sXG4gICAgeyBuYW1lOiAnY2xpZW50SWQnLCBkZXNjcmlwdGlvbjogJ0NsaWVudCBJRCcgfSxcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ1VzZXIgcG9vbCBkb21haW4nIH1cbiAgXSxcbiAgJ3Vwc3Rhc2gtcmVkaXMnOiBbXG4gICAgeyBuYW1lOiAnaG9zdCcsIGRlc2NyaXB0aW9uOiAnVXBzdGFzaCBSZWRpcyBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ1Vwc3Rhc2ggUmVkaXMgcG9ydCcgfSxcbiAgICB7IG5hbWU6ICdwYXNzd29yZCcsIGRlc2NyaXB0aW9uOiAnUGFzc3dvcmQnIH0sXG4gICAgeyBuYW1lOiAncmVzdFRva2VuJywgZGVzY3JpcHRpb246ICdSRVNUIHRva2VuJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRPbmx5UmVzdFRva2VuJywgZGVzY3JpcHRpb246ICdSZWFkLW9ubHkgUkVTVCB0b2tlbicgfSxcbiAgICB7IG5hbWU6ICdyZXN0VXJsJywgZGVzY3JpcHRpb246ICdSRVNUIFVSTCcgfSxcbiAgICB7IG5hbWU6ICdyZWRpc1VybCcsIGRlc2NyaXB0aW9uOiAnUmVkaXMgVVJMJyB9XG4gIF0sXG4gICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnTG9hZCBiYWxhbmNlciBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH1cbiAgXSxcbiAgJ25ldHdvcmstbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IG5hbWU6ICdkb21haW4nLCBkZXNjcmlwdGlvbjogJ0xvYWQgYmFsYW5jZXIgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9XG4gIF0sXG4gICdob3N0aW5nLWJ1Y2tldCc6IFtcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdCdWNrZXQgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBBUk4nIH1cbiAgXSxcbiAgJ3dlYi1hcHAtZmlyZXdhbGwnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdGaXJld2FsbCBBUk4nIH0sXG4gICAgeyBuYW1lOiAnc2NvcGUnLCBkZXNjcmlwdGlvbjogJ0ZpcmV3YWxsIHNjb3BlJyB9XG4gIF0sXG4gICdvcGVuLXNlYXJjaC1kb21haW4nOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluRW5kcG9pbnQnLCBkZXNjcmlwdGlvbjogJ09wZW5TZWFyY2ggZG9tYWluIGVuZHBvaW50JyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnRG9tYWluIEFSTicgfVxuICBdLFxuICAnZWZzLWZpbGVzeXN0ZW0nOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdFRlMgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2lkJywgZGVzY3JpcHRpb246ICdFRlMgSUQnIH1cbiAgXSxcbiAgJ25leHRqcy13ZWInOiBbeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdXZWJzaXRlIFVSTCcgfV0sXG4gICdtdWx0aS1jb250YWluZXItd29ya2xvYWQnOiBbeyBuYW1lOiAnbG9nR3JvdXBBcm4nLCBkZXNjcmlwdGlvbjogJ0xvZyBncm91cCBBUk4nIH1dLFxuICAnc3FzLXF1ZXVlJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnUXVldWUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnUXVldWUgVVJMJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1F1ZXVlIG5hbWUnIH1cbiAgXSxcbiAgJ3Nucy10b3BpYyc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1RvcGljIEFSTicgfSxcbiAgICB7IG5hbWU6ICduYW1lJywgZGVzY3JpcHRpb246ICdUb3BpYyBuYW1lJyB9XG4gIF1cbn07XG4iLAogICAgImltcG9ydCB0eXBlIHsgUmVzb3VyY2VDbGFzc05hbWUgfSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5pbXBvcnQgeyBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUyB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IEJhc2VSZXNvdXJjZSB9IGZyb20gJy4vY29uZmlnJztcbmltcG9ydCB7IFJFRkVSRU5DRUFCTEVfUEFSQU1TIH0gZnJvbSAnLi9yZXNvdXJjZS1tZXRhZGF0YSc7XG5cbi8vIFByaXZhdGUgc3ltYm9sIGZvciBhY2Nlc3NpbmcgdGhlIGludGVybmFsIHBhcmFtIHJlZmVyZW5jZSBtZXRob2RcbmNvbnN0IGdldFBhcmFtUmVmZXJlbmNlU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFBhcmFtUmVmZXJlbmNlJyk7XG5cbi8qKlxuICogRmFjdG9yeSBmdW5jdGlvbiB0byBjcmVhdGUgYSByZXNvdXJjZSBjbGFzcyB3aXRoIHJlZmVyZW5jZWFibGUgcGFyYW1ldGVycy5cbiAqIFN1cHBvcnRzIHR3byBjYWxsaW5nIGNvbnZlbnRpb25zOlxuICogLSBuZXcgUmVzb3VyY2UocHJvcGVydGllcykgLSBuYW1lIGRlcml2ZWQgZnJvbSBvYmplY3Qga2V5IGluIHJlc291cmNlc1xuICogLSBuZXcgUmVzb3VyY2UobmFtZSwgcHJvcGVydGllcykgLSBleHBsaWNpdCBuYW1lIChiYWNrd2FyZHMgY29tcGF0aWJsZSlcbiAqL1xuZnVuY3Rpb24gY3JlYXRlUmVzb3VyY2VDbGFzcyhjbGFzc05hbWU6IFJlc291cmNlQ2xhc3NOYW1lLCByZXNvdXJjZVR5cGU6IHN0cmluZyk6IGFueSB7XG4gIC8vIENyZWF0ZSB0aGUgY2xhc3MgZHluYW1pY2FsbHlcbiAgY29uc3QgUmVzb3VyY2VDbGFzcyA9IGNsYXNzIGV4dGVuZHMgQmFzZVJlc291cmNlIHtcbiAgICBjb25zdHJ1Y3RvcihuYW1lT3JQcm9wZXJ0aWVzOiBzdHJpbmcgfCBhbnksIHByb3BlcnRpZXM/OiBhbnkpIHtcbiAgICAgIGlmICh0eXBlb2YgbmFtZU9yUHJvcGVydGllcyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgLy8gT2xkIHN0eWxlOiAobmFtZSwgcHJvcGVydGllcykgLSBleHBsaWNpdCBuYW1lXG4gICAgICAgIHN1cGVyKG5hbWVPclByb3BlcnRpZXMsIHJlc291cmNlVHlwZSwgcHJvcGVydGllcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBOZXcgc3R5bGU6IChwcm9wZXJ0aWVzKSAtIG5hbWUgd2lsbCBiZSBzZXQgZnJvbSBvYmplY3Qga2V5XG4gICAgICAgIHN1cGVyKHVuZGVmaW5lZCwgcmVzb3VyY2VUeXBlLCBuYW1lT3JQcm9wZXJ0aWVzKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgLy8gU2V0IHRoZSBjbGFzcyBuYW1lIGZvciBiZXR0ZXIgZGVidWdnaW5nXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShSZXNvdXJjZUNsYXNzLCAnbmFtZScsIHsgdmFsdWU6IGNsYXNzTmFtZSB9KTtcblxuICAvLyBBZGQgcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXIgZ2V0dGVyc1xuICBjb25zdCByZWZlcmVuY2VhYmxlUGFyYW1zID0gUkVGRVJFTkNFQUJMRV9QQVJBTVNbcmVzb3VyY2VUeXBlXSB8fCBbXTtcbiAgZm9yIChjb25zdCBwYXJhbSBvZiByZWZlcmVuY2VhYmxlUGFyYW1zKSB7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlc291cmNlQ2xhc3MucHJvdG90eXBlLCBwYXJhbS5uYW1lLCB7XG4gICAgICBnZXQodGhpczogQmFzZVJlc291cmNlKSB7XG4gICAgICAgIHJldHVybiAodGhpcyBhcyBhbnkpW2dldFBhcmFtUmVmZXJlbmNlU3ltYm9sXShwYXJhbS5uYW1lKTtcbiAgICAgIH0sXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIFJlc291cmNlQ2xhc3M7XG59XG5cbi8vIENyZWF0ZSBhbGwgcmVzb3VyY2UgY2xhc3NlcyBmcm9tIGNvbmZpZ1xuY29uc3QgUkVTT1VSQ0VfQ0xBU1NFUzogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlUmVzb3VyY2VDbGFzcz4+ID0ge307XG5mb3IgKGNvbnN0IGRlZiBvZiBSRVNPVVJDRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUykge1xuICAvLyBVc2UgJ0xhbWJkYUZ1bmN0aW9uJyBhcyB0aGUgZXhwb3J0ZWQgbmFtZSBmb3IgJ0Z1bmN0aW9uJyB0byBhdm9pZCBKUyByZXNlcnZlZCB3b3JkIGlzc3Vlc1xuICBSRVNPVVJDRV9DTEFTU0VTW2RlZi5jbGFzc05hbWUgYXMgYW55XSA9IGNyZWF0ZVJlc291cmNlQ2xhc3MoZGVmLmNsYXNzTmFtZSwgZGVmLnJlc291cmNlVHlwZSk7XG59XG5cbi8vIEV4cG9ydCBhbGwgcmVzb3VyY2UgY2xhc3NlcyBmb3IgbmFtZWQgaW1wb3J0c1xuZXhwb3J0IGNvbnN0IHtcbiAgUmVsYXRpb25hbERhdGFiYXNlLFxuICBXZWJTZXJ2aWNlLFxuICBQcml2YXRlU2VydmljZSxcbiAgV29ya2VyU2VydmljZSxcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZCxcbiAgTGFtYmRhRnVuY3Rpb24sXG4gIEJhdGNoSm9iLFxuICBCdWNrZXQsXG4gIEhvc3RpbmdCdWNrZXQsXG4gIER5bmFtb0RiVGFibGUsXG4gIEV2ZW50QnVzLFxuICBIdHRwQXBpR2F0ZXdheSxcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXIsXG4gIE5ldHdvcmtMb2FkQmFsYW5jZXIsXG4gIFJlZGlzQ2x1c3RlcixcbiAgTW9uZ29EYkF0bGFzQ2x1c3RlcixcbiAgU3RhdGVNYWNoaW5lLFxuICBVc2VyQXV0aFBvb2wsXG4gIFVwc3Rhc2hSZWRpcyxcbiAgU3FzUXVldWUsXG4gIFNuc1RvcGljLFxuICBXZWJBcHBGaXJld2FsbCxcbiAgT3BlblNlYXJjaERvbWFpbixcbiAgRWZzRmlsZXN5c3RlbSxcbiAgTmV4dGpzV2ViLFxuICBCYXN0aW9uXG59ID0gUkVTT1VSQ0VfQ0xBU1NFUztcbiIsCiAgICAiaW1wb3J0IHsgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVR5cGVQcm9wZXJ0aWVzLCBCYXNlVHlwZU9ubHkgfSBmcm9tICcuL2NvbmZpZyc7XG5cbmZ1bmN0aW9uIGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcsIHR5cGVWYWx1ZTogc3RyaW5nLCB0eXBlT25seT86IGJvb2xlYW4pOiBhbnkge1xuICBpZiAodHlwZU9ubHkpIHtcbiAgICBjb25zdCBUeXBlT25seUNsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlVHlwZU9ubHkge1xuICAgICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKHR5cGVWYWx1ZSk7XG4gICAgICB9XG4gICAgfTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZU9ubHlDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG4gICAgcmV0dXJuIFR5cGVPbmx5Q2xhc3M7XG4gIH1cblxuICBjb25zdCBUeXBlUHJvcGVydGllc0NsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICAgIGNvbnN0cnVjdG9yKHByb3BlcnRpZXM6IGFueSkge1xuICAgICAgc3VwZXIodHlwZVZhbHVlLCBwcm9wZXJ0aWVzKTtcbiAgICB9XG4gIH07XG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFR5cGVQcm9wZXJ0aWVzQ2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuICByZXR1cm4gVHlwZVByb3BlcnRpZXNDbGFzcztcbn1cblxuLy8gQ3JlYXRlIGFsbCB0eXBlLXByb3BlcnRpZXMgY2xhc3NlcyBmcm9tIGNvbmZpZ1xuY29uc3QgVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVM6IFJlY29yZDxzdHJpbmcsIFJldHVyblR5cGU8dHlwZW9mIGNyZWF0ZVR5cGVQcm9wZXJ0aWVzQ2xhc3M+PiA9IHt9O1xuZm9yIChjb25zdCBkZWYgb2YgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTKSB7XG4gIFRZUEVfUFJPUEVSVElFU19DTEFTU0VTW2RlZi5jbGFzc05hbWVdID0gY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcyhkZWYuY2xhc3NOYW1lLCBkZWYudHlwZVZhbHVlLCBkZWYudHlwZU9ubHkpO1xufVxuXG4vLyBFeHBvcnQgYWxsIGNsYXNzZXMgZm9yIG5hbWVkIGltcG9ydHMgKFR5cGVTY3JpcHQgbmVlZHMgdGhlc2UgZXhwbGljaXQgZXhwb3J0cylcbmV4cG9ydCBjb25zdCB7XG4gIC8vIERhdGFiYXNlIEVuZ2luZXNcbiAgUmRzRW5naW5lUG9zdGdyZXMsXG4gIFJkc0VuZ2luZU1hcmlhZGIsXG4gIFJkc0VuZ2luZU15c3FsLFxuICBSZHNFbmdpbmVPcmFjbGVFRSxcbiAgUmRzRW5naW5lT3JhY2xlU0UyLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJFRSxcbiAgUmRzRW5naW5lU3FsU2VydmVyRVgsXG4gIFJkc0VuZ2luZVNxbFNlcnZlclNFLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJXZWIsXG4gIEF1cm9yYUVuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYUVuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhU2VydmVybGVzc0VuZ2luZU15c3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVNeXNxbCxcbiAgLy8gTGFtYmRhIFBhY2thZ2luZ1xuICBTdGFja3RhcGVMYW1iZGFCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIEN1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nLFxuICAvLyBDb250YWluZXIgUGFja2FnaW5nXG4gIFByZWJ1aWx0SW1hZ2VQYWNrYWdpbmcsXG4gIEN1c3RvbURvY2tlcmZpbGVQYWNrYWdpbmcsXG4gIEV4dGVybmFsQnVpbGRwYWNrUGFja2FnaW5nLFxuICBOaXhwYWNrc1BhY2thZ2luZyxcbiAgU3RhY2t0YXBlSW1hZ2VCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIC8vIExhbWJkYSBGdW5jdGlvbiBFdmVudHMvSW50ZWdyYXRpb25zXG4gIEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgUzNJbnRlZ3JhdGlvbixcbiAgU2NoZWR1bGVJbnRlZ3JhdGlvbixcbiAgU25zSW50ZWdyYXRpb24sXG4gIFNxc0ludGVncmF0aW9uLFxuICBLaW5lc2lzSW50ZWdyYXRpb24sXG4gIER5bmFtb0RiSW50ZWdyYXRpb24sXG4gIENsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbixcbiAgRXZlbnRCdXNJbnRlZ3JhdGlvbixcbiAgS2Fma2FUb3BpY0ludGVncmF0aW9uLFxuICBBbGFybUludGVncmF0aW9uLFxuICBJb3RJbnRlZ3JhdGlvbixcbiAgLy8gQ0ROIFJvdXRlc1xuICBDZG5Mb2FkQmFsYW5jZXJSb3V0ZSxcbiAgQ2RuSHR0cEFwaUdhdGV3YXlSb3V0ZSxcbiAgQ2RuTGFtYmRhRnVuY3Rpb25Sb3V0ZSxcbiAgQ2RuQ3VzdG9tRG9tYWluUm91dGUsXG4gIENkbkJ1Y2tldFJvdXRlLFxuICAvLyBXZWIgQXBwIEZpcmV3YWxsIFJ1bGVzXG4gIE1hbmFnZWRSdWxlR3JvdXAsXG4gIEN1c3RvbVJ1bGVHcm91cCxcbiAgUmF0ZUJhc2VkUnVsZSxcbiAgLy8gU1FTIFF1ZXVlIEludGVncmF0aW9uc1xuICBTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb24sXG4gIC8vIE11bHRpIENvbnRhaW5lciBXb3JrbG9hZCBJbnRlZ3JhdGlvbnNcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkTmV0d29ya0xvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbixcbiAgTXVsdGlDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24sXG4gIC8vIFNjcmlwdHNcbiAgTG9jYWxTY3JpcHQsXG4gIEJhc3Rpb25TY3JpcHQsXG4gIExvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcsXG4gIC8vIExvZyBGb3J3YXJkaW5nXG4gIEh0dHBFbmRwb2ludExvZ0ZvcndhcmRpbmcsXG4gIEhpZ2hsaWdodExvZ0ZvcndhcmRpbmcsXG4gIERhdGFkb2dMb2dGb3J3YXJkaW5nLFxuICAvLyBCdWNrZXQgTGlmZWN5Y2xlIFJ1bGVzXG4gIEV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICBOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25MaWZlY3ljbGVSdWxlLFxuICAvLyBFRlMgTW91bnRzXG4gIENvbnRhaW5lckVmc01vdW50LFxuICBMYW1iZGFFZnNNb3VudCxcbiAgLy8gQXV0aG9yaXplcnNcbiAgQ29nbml0b0F1dGhvcml6ZXIsXG4gIExhbWJkYUF1dGhvcml6ZXIsXG4gIC8vIEFsYXJtIFRyaWdnZXJzXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlcixcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJFcnJvclJhdGVUcmlnZ2VyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyLFxuICBIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXIsXG4gIEh0dHBBcGlHYXRld2F5TGF0ZW5jeVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlV3JpdGVMYXRlbmN5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlQ1BVVXRpbGl6YXRpb25UcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyLFxuICBTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXIsXG4gIFNxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyLFxuICBMYW1iZGFFcnJvclJhdGVUcmlnZ2VyLFxuICBMYW1iZGFEdXJhdGlvblRyaWdnZXIsXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uLFxuICBDdXN0b21SZXNvdXJjZUluc3RhbmNlLFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAgRGVwbG95bWVudFNjcmlwdCxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIEVkZ2VMYW1iZGFGdW5jdGlvblxufSA9IFRZUEVfUFJPUEVSVElFU19DTEFTU0VTO1xuIgogIF0sCiAgIm1hcHBpbmdzIjogIjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsSUFBTSx1QkFBdUI7QUFDN0IsSUFBTSx1QkFBdUI7QUFFN0IsSUFBTSwyQkFBMkI7QUFFakMsSUFBTSx1QkFBdUI7QUFFN0IsSUFBTSxzQkFBc0I7QUFFNUIsSUFBTSxtQ0FBbUM7QUFJbEMsU0FBUyxLQUFLLENBQUMsT0FBTztBQUFBLEVBQ3pCLElBQUksU0FBUyxNQUFNLEtBQUs7QUFBQSxFQUN4QixTQUFTLE9BQ0osUUFBUSxzQkFBc0IsbUJBQW1CLEVBQ2pELFFBQVEsc0JBQXNCLG1CQUFtQjtBQUFBLEVBQ3RELFNBQVMsT0FBTyxRQUFRLHNCQUFzQixNQUFJO0FBQUEsRUFDbEQsSUFBSSxRQUFRO0FBQUEsRUFDWixJQUFJLE1BQU0sT0FBTztBQUFBLEVBRWpCLE9BQU8sT0FBTyxPQUFPLEtBQUssTUFBTTtBQUFBLElBQzVCO0FBQUEsRUFDSixJQUFJLFVBQVU7QUFBQSxJQUNWLE9BQU8sQ0FBQztBQUFBLEVBQ1osT0FBTyxPQUFPLE9BQU8sTUFBTSxDQUFDLE1BQU07QUFBQSxJQUM5QjtBQUFBLEVBQ0osT0FBTyxPQUFPLE1BQU0sT0FBTyxHQUFHLEVBQUUsTUFBTSxLQUFLO0FBQUE7QUFLeEMsU0FBUyxvQkFBb0IsQ0FBQyxPQUFPO0FBQUEsRUFDeEMsTUFBTSxRQUFRLE1BQU0sS0FBSztBQUFBLEVBQ3pCLFNBQVMsSUFBSSxFQUFHLElB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QSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLElBQ0Y7QUFBQSxFQUNGO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsY0FBYztBQUFBLElBQ2QsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osbUJBQW1CO0FBQUEsSUFDbkIsY0FBYztBQUFBLE1BQ1o7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxJQUNGO0FBQUEsRUFDRjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLGNBQWM7QUFBQSxJQUNkLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNm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LEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFB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LEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBRUE7QUFBQSxJQUNFOyIsCiAgImRlYnVnSWQiOiAiQzE3NjFGNjZGODUyMDQ0NTY0NzU2RTIxNjQ3NTZFMjEiLAogICJuYW1lcyI6IFtdCn0=
|
|
4208
|
+
//# debugId=57C388682E53952A64756E2164756E21
|
|
4209
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vbm9kZV9tb2R1bGVzL2NoYW5nZS1jYXNlL2Rpc3QvaW5kZXguanMiLCAiLi4vc2hhcmVkL25hbWluZy9sb2dpY2FsLW5hbWVzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NoaWxkLXJlc291cmNlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9jb25maWcudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvZGlyZWN0aXZlcy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9nbG9iYWwtYXdzLXNlcnZpY2VzLnRzIiwgIi4uL3NyYy9hcGkvbnBtL3RzL2NsYXNzLWNvbmZpZy50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZS1tZXRhZGF0YS50cyIsICIuLi9zcmMvYXBpL25wbS90cy9yZXNvdXJjZXMudHMiLCAiLi4vc3JjL2FwaS9ucG0vdHMvdHlwZS1wcm9wZXJ0aWVzLnRzIl0sCiAgInNvdXJjZXNDb250ZW50IjogWwogICAgIi8vIFJlZ2V4cHMgaW52b2x2ZWQgd2l0aCBzcGxpdHRpbmcgd29yZHMgaW4gdmFyaW91cyBjYXNlIGZvcm1hdHMuXG5jb25zdCBTUExJVF9MT1dFUl9VUFBFUl9SRSA9IC8oW1xccHtMbH1cXGRdKShcXHB7THV9KS9ndTtcbmNvbnN0IFNQTElUX1VQUEVSX1VQUEVSX1JFID0gLyhcXHB7THV9KShbXFxwe0x1fV1bXFxwe0xsfV0pL2d1O1xuLy8gVXNlZCB0byBpdGVyYXRlIG92ZXIgdGhlIGluaXRpYWwgc3BsaXQgcmVzdWx0IGFuZCBzZXBhcmF0ZSBudW1iZXJzLlxuY29uc3QgU1BMSVRfU0VQQVJBVEVfTlVNQkVSX1JFID0gLyhcXGQpXFxwe0xsfXwoXFxwe0x9KVxcZC91O1xuLy8gUmVnZXhwIGludm9sdmVkIHdpdGggc3RyaXBwaW5nIG5vbi13b3JkIGNoYXJhY3RlcnMgZnJvbSB0aGUgcmVzdWx0LlxuY29uc3QgREVGQVVMVF9TVFJJUF9SRUdFWFAgPSAvW15cXHB7TH1cXGRdKy9naXU7XG4vLyBUaGUgcmVwbGFjZW1lbnQgdmFsdWUgZm9yIHNwbGl0cy5cbmNvbnN0IFNQTElUX1JFUExBQ0VfVkFMVUUgPSBcIiQxXFwwJDJcIjtcbi8vIFRoZSBkZWZhdWx0IGNoYXJhY3RlcnMgdG8ga2VlcCBhZnRlciB0cmFuc2Zvcm1pbmcgY2FzZS5cbmNvbnN0IERFRkFVTFRfUFJFRklYX1NVRkZJWF9DSEFSQUNURVJTID0gXCJcIjtcbi8qKlxuICogU3BsaXQgYW55IGNhc2VkIGlucHV0IHN0cmluZ3MgaW50byBhbiBhcnJheSBvZiB3b3Jkcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNwbGl0KHZhbHVlKSB7XG4gICAgbGV0IHJlc3VsdCA9IHZhbHVlLnRyaW0oKTtcbiAgICByZXN1bHQgPSByZXN1bHRcbiAgICAgICAgLnJlcGxhY2UoU1BMSVRfTE9XRVJfVVBQRVJfUkUsIFNQTElUX1JFUExBQ0VfVkFMVUUpXG4gICAgICAgIC5yZXBsYWNlKFNQTElUX1VQUEVSX1VQUEVSX1JFLCBTUExJVF9SRVBMQUNFX1ZBTFVFKTtcbiAgICByZXN1bHQgPSByZXN1bHQucmVwbGFjZShERUZBVUxUX1NUUklQX1JFR0VYUCwgXCJcXDBcIik7XG4gICAgbGV0IHN0YXJ0ID0gMDtcbiAgICBsZXQgZW5kID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAvLyBUcmltIHRoZSBkZWxpbWl0ZXIgZnJvbSBhcm91bmQgdGhlIG91dHB1dCBzdHJpbmcuXG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoc3RhcnQpID09PSBcIlxcMFwiKVxuICAgICAgICBzdGFydCsrO1xuICAgIGlmIChzdGFydCA9PT0gZW5kKVxuICAgICAgICByZXR1cm4gW107XG4gICAgd2hpbGUgKHJlc3VsdC5jaGFyQXQoZW5kIC0gMSkgPT09IFwiXFwwXCIpXG4gICAgICAgIGVuZC0tO1xuICAgIHJldHVybiByZXN1bHQuc2xpY2Uoc3RhcnQsIGVuZCkuc3BsaXQoL1xcMC9nKTtcbn1cbi8qKlxuICogU3BsaXQgdGhlIGlucHV0IHN0cmluZyBpbnRvIGFuIGFycmF5IG9mIHdvcmRzLCBzZXBhcmF0aW5nIG51bWJlcnMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFNlcGFyYXRlTnVtYmVycyh2YWx1ZSkge1xuICAgIGNvbnN0IHdvcmRzID0gc3BsaXQodmFsdWUpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgd29yZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3Qgd29yZCA9IHdvcmRzW2ldO1xuICAgICAgICBjb25zdCBtYXRjaCA9IFNQTElUX1NFUEFSQVRFX05VTUJFUl9SRS5leGVjKHdvcmQpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG9mZnNldCA9IG1hdGNoLmluZGV4ICsgKG1hdGNoWzFdID8/IG1hdGNoWzJdKS5sZW5ndGg7XG4gICAgICAgICAgICB3b3Jkcy5zcGxpY2UoaSwgMSwgd29yZC5zbGljZSgwLCBvZmZzZXQpLCB3b3JkLnNsaWNlKG9mZnNldCkpO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB3b3Jkcztcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBzcGFjZSBzZXBhcmF0ZWQgbG93ZXIgY2FzZSAoYGZvbyBiYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5vQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHMubWFwKGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhbWVsIGNhc2UgKGBmb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIGNvbnN0IFtwcmVmaXgsIHdvcmRzLCBzdWZmaXhdID0gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMpO1xuICAgIGNvbnN0IGxvd2VyID0gbG93ZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdXBwZXIgPSB1cHBlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB0cmFuc2Zvcm0gPSBvcHRpb25zPy5tZXJnZUFtYmlndW91c0NoYXJhY3RlcnNcbiAgICAgICAgPyBjYXBpdGFsQ2FzZVRyYW5zZm9ybUZhY3RvcnkobG93ZXIsIHVwcGVyKVxuICAgICAgICA6IHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcik7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkc1xuICAgICAgICAgICAgLm1hcCgod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChpbmRleCA9PT0gMClcbiAgICAgICAgICAgICAgICByZXR1cm4gbG93ZXIod29yZCk7XG4gICAgICAgICAgICByZXR1cm4gdHJhbnNmb3JtKHdvcmQsIGluZGV4KTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGFzY2FsIGNhc2UgKGBGb29CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBbcHJlZml4LCB3b3Jkcywgc3VmZml4XSA9IHNwbGl0UHJlZml4U3VmZml4KGlucHV0LCBvcHRpb25zKTtcbiAgICBjb25zdCBsb3dlciA9IGxvd2VyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHVwcGVyID0gdXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSk7XG4gICAgY29uc3QgdHJhbnNmb3JtID0gb3B0aW9ucz8ubWVyZ2VBbWJpZ3VvdXNDaGFyYWN0ZXJzXG4gICAgICAgID8gY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcilcbiAgICAgICAgOiBwYXNjYWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiBwcmVmaXggKyB3b3Jkcy5tYXAodHJhbnNmb3JtKS5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIlwiKSArIHN1ZmZpeDtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBwYXNjYWwgc25ha2UgY2FzZSAoYEZvb19CYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhc2NhbFNuYWtlQ2FzZShpbnB1dCwgb3B0aW9ucykge1xuICAgIHJldHVybiBjYXBpdGFsQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiX1wiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGNhcGl0YWwgY2FzZSAoYEZvbyBCYXJgKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNhcGl0YWxDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoY2FwaXRhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikpXG4gICAgICAgICAgICAuam9pbihvcHRpb25zPy5kZWxpbWl0ZXIgPz8gXCIgXCIpICtcbiAgICAgICAgc3VmZml4KTtcbn1cbi8qKlxuICogQ29udmVydCBhIHN0cmluZyB0byBjb25zdGFudCBjYXNlIChgRk9PX0JBUmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uc3RhbnRDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgcmV0dXJuIChwcmVmaXggK1xuICAgICAgICB3b3Jkcy5tYXAodXBwZXJGYWN0b3J5KG9wdGlvbnM/LmxvY2FsZSkpLmpvaW4ob3B0aW9ucz8uZGVsaW1pdGVyID8/IFwiX1wiKSArXG4gICAgICAgIHN1ZmZpeCk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gZG90IGNhc2UgKGBmb28uYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkb3RDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgcmV0dXJuIG5vQ2FzZShpbnB1dCwgeyBkZWxpbWl0ZXI6IFwiLlwiLCAuLi5vcHRpb25zIH0pO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIGtlYmFiIGNhc2UgKGBmb28tYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBrZWJhYkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCItXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgZm9vL2JhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGF0aENhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCIvXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gcGF0aCBjYXNlIChgRm9vIGJhcmApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VudGVuY2VDYXNlKGlucHV0LCBvcHRpb25zKSB7XG4gICAgY29uc3QgW3ByZWZpeCwgd29yZHMsIHN1ZmZpeF0gPSBzcGxpdFByZWZpeFN1ZmZpeChpbnB1dCwgb3B0aW9ucyk7XG4gICAgY29uc3QgbG93ZXIgPSBsb3dlckZhY3Rvcnkob3B0aW9ucz8ubG9jYWxlKTtcbiAgICBjb25zdCB1cHBlciA9IHVwcGVyRmFjdG9yeShvcHRpb25zPy5sb2NhbGUpO1xuICAgIGNvbnN0IHRyYW5zZm9ybSA9IGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpO1xuICAgIHJldHVybiAocHJlZml4ICtcbiAgICAgICAgd29yZHNcbiAgICAgICAgICAgIC5tYXAoKHdvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IDApXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zZm9ybSh3b3JkKTtcbiAgICAgICAgICAgIHJldHVybiBsb3dlcih3b3JkKTtcbiAgICAgICAgfSlcbiAgICAgICAgICAgIC5qb2luKG9wdGlvbnM/LmRlbGltaXRlciA/PyBcIiBcIikgK1xuICAgICAgICBzdWZmaXgpO1xufVxuLyoqXG4gKiBDb252ZXJ0IGEgc3RyaW5nIHRvIHNuYWtlIGNhc2UgKGBmb29fYmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzbmFrZUNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gbm9DYXNlKGlucHV0LCB7IGRlbGltaXRlcjogXCJfXCIsIC4uLm9wdGlvbnMgfSk7XG59XG4vKipcbiAqIENvbnZlcnQgYSBzdHJpbmcgdG8gaGVhZGVyIGNhc2UgKGBGb28tQmFyYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0cmFpbkNhc2UoaW5wdXQsIG9wdGlvbnMpIHtcbiAgICByZXR1cm4gY2FwaXRhbENhc2UoaW5wdXQsIHsgZGVsaW1pdGVyOiBcIi1cIiwgLi4ub3B0aW9ucyB9KTtcbn1cbmZ1bmN0aW9uIGxvd2VyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9Mb3dlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVMb3dlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIHVwcGVyRmFjdG9yeShsb2NhbGUpIHtcbiAgICByZXR1cm4gbG9jYWxlID09PSBmYWxzZVxuICAgICAgICA/IChpbnB1dCkgPT4gaW5wdXQudG9VcHBlckNhc2UoKVxuICAgICAgICA6IChpbnB1dCkgPT4gaW5wdXQudG9Mb2NhbGVVcHBlckNhc2UobG9jYWxlKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxDYXNlVHJhbnNmb3JtRmFjdG9yeShsb3dlciwgdXBwZXIpIHtcbiAgICByZXR1cm4gKHdvcmQpID0+IGAke3VwcGVyKHdvcmRbMF0pfSR7bG93ZXIod29yZC5zbGljZSgxKSl9YDtcbn1cbmZ1bmN0aW9uIHBhc2NhbENhc2VUcmFuc2Zvcm1GYWN0b3J5KGxvd2VyLCB1cHBlcikge1xuICAgIHJldHVybiAod29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgY2hhcjAgPSB3b3JkWzBdO1xuICAgICAgICBjb25zdCBpbml0aWFsID0gaW5kZXggPiAwICYmIGNoYXIwID49IFwiMFwiICYmIGNoYXIwIDw9IFwiOVwiID8gXCJfXCIgKyBjaGFyMCA6IHVwcGVyKGNoYXIwKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWwgKyBsb3dlcih3b3JkLnNsaWNlKDEpKTtcbiAgICB9O1xufVxuZnVuY3Rpb24gc3BsaXRQcmVmaXhTdWZmaXgoaW5wdXQsIG9wdGlvbnMgPSB7fSkge1xuICAgIGNvbnN0IHNwbGl0Rm4gPSBvcHRpb25zLnNwbGl0ID8/IChvcHRpb25zLnNlcGFyYXRlTnVtYmVycyA/IHNwbGl0U2VwYXJhdGVOdW1iZXJzIDogc3BsaXQpO1xuICAgIGNvbnN0IHByZWZpeENoYXJhY3RlcnMgPSBvcHRpb25zLnByZWZpeENoYXJhY3RlcnMgPz8gREVGQVVMVF9QUkVGSVhfU1VGRklYX0NIQVJBQ1RFUlM7XG4gICAgY29uc3Qgc3VmZml4Q2hhcmFjdGVycyA9IG9wdGlvbnMuc3VmZml4Q2hhcmFjdGVycyA/PyBERUZBVUxUX1BSRUZJWF9TVUZGSVhfQ0hBUkFDVEVSUztcbiAgICBsZXQgcHJlZml4SW5kZXggPSAwO1xuICAgIGxldCBzdWZmaXhJbmRleCA9IGlucHV0Lmxlbmd0aDtcbiAgICB3aGlsZSAocHJlZml4SW5kZXggPCBpbnB1dC5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChwcmVmaXhJbmRleCk7XG4gICAgICAgIGlmICghcHJlZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBwcmVmaXhJbmRleCsrO1xuICAgIH1cbiAgICB3aGlsZSAoc3VmZml4SW5kZXggPiBwcmVmaXhJbmRleCkge1xuICAgICAgICBjb25zdCBpbmRleCA9IHN1ZmZpeEluZGV4IC0gMTtcbiAgICAgICAgY29uc3QgY2hhciA9IGlucHV0LmNoYXJBdChpbmRleCk7XG4gICAgICAgIGlmICghc3VmZml4Q2hhcmFjdGVycy5pbmNsdWRlcyhjaGFyKSlcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBzdWZmaXhJbmRleCA9IGluZGV4O1xuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgICBpbnB1dC5zbGljZSgwLCBwcmVmaXhJbmRleCksXG4gICAgICAgIHNwbGl0Rm4oaW5wdXQuc2xpY2UocHJlZml4SW5kZXgsIHN1ZmZpeEluZGV4KSksXG4gICAgICAgIGlucHV0LnNsaWNlKHN1ZmZpeEluZGV4KSxcbiAgICBdO1xufVxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW5kZXguanMubWFwIiwKICAgICJpbXBvcnQgdHlwZSB7IENsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlIH0gZnJvbSAnQGNsb3VkZm9ybS9yZXNvdXJjZS10eXBlcyc7XG5pbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSAnY2hhbmdlLWNhc2UnO1xuXG5leHBvcnQgY29uc3QgY2ZMb2dpY2FsTmFtZXMgPSB7XG4gIGJ1Y2tldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBwYXNjYWxDYXNlKGAke3N0cFJlc291cmNlTmFtZX0tYnVja2V0YCk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBdGxhc01vbmdvJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6UHJvamVjdCcgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ3JlZGVudGlhbHNQcm92aWRlcigpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXInIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29Qcm9qZWN0VnBjTmV0d29ya1BlZXJpbmcoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0F0bGFzTW9uZ28nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrUGVlcmluZycgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXRsYXNNb25nb1VzZXJBc3NvY2lhdGVkV2l0aFJvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQXRsYXNNb25nbycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3Rlck1hc3RlclVzZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicgfVxuICAgIH0pO1xuICB9LFxuICBhdGxhc01vbmdvQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnTW9uZ29EQjo6U3RwQXRsYXNWMTo6Q2x1c3RlcicgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1JlcGxpY2F0aW9uR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlJlcGxpY2F0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgcmVkaXNMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1BhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1N1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICByZWRpc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc0ZpbGVzeXN0ZW0oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDoge1xuICAgICAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJ1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNBY2Nlc3NQb2ludCh7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lLFxuICAgIHJvb3REaXJlY3RvcnlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZTogc3RyaW5nO1xuICAgIGVmc0ZpbGVzeXN0ZW1OYW1lOiBzdHJpbmc7XG4gICAgcm9vdERpcmVjdG9yeT86IHN0cmluZztcbiAgfSkge1xuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBpZGVudGlmaWVyIGJhc2VkIG9uIHRoZSByb290IGRpcmVjdG9yeVxuICAgIGNvbnN0IHJvb3REaXJJZGVudGlmaWVyID0gcm9vdERpcmVjdG9yeSA/IGAke3Jvb3REaXJlY3RvcnkucmVwbGFjZSgvXFwvL2csICctJykucmVwbGFjZSgvXi18LSQvZywgJycpfWAgOiAnUm9vdCc7XG5cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtlZnNGaWxlc3lzdGVtTmFtZX0tJHtyb290RGlySWRlbnRpZmllcn1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7XG4gICAgICAgIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50J1xuICAgICAgfVxuICAgIH0pO1xuICB9LFxuICBlZnNNb3VudFRhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbW91bnRUYXJnZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N1Ym5ldCcsIHR5cGVJbmRleDogbW91bnRUYXJnZXRJbmRleCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6Ok1vdW50VGFyZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGVmc1NlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1JvbGVTZW5kU21zRnJvbUNvZ25pdG8oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2VuZFNtcycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREaXN0cmlidXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGRpc3RyaWJ1dGlvbkluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ0ROJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLCBpbmRleDogZGlzdHJpYnV0aW9uSW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGNhY2hpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2NhY2hpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIGNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3kodHlwZTogJ0RlZkR5bmFtaWMnIHwgJ0RlZlN0YXRpYycpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgQ0ROJHt0eXBlfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGZvcndhcmRpbmdPcHRpb25zSGFzaDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETkNhY2hlQmVoYXZpb3Ike2ZvcndhcmRpbmdPcHRpb25zSGFzaH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5KHR5cGU6ICdEZWZEeW5hbWljJyB8ICdEZWZTdGF0aWMnKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYENETiR7dHlwZX1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0NETicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5OZXh0SG9zdEhlYWRlclJld3JpdGVGdW5jdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuTmV4dEhvc3RIZWFkZXJSZXdyaXRlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBvcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdBc3NldFJlcGxhY2VyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3Blbk5leHREeW5hbW9JbnNlcnRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdEeW5hbW9JbnNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBkbnNSZWNvcmQoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIGR5bmFtb0dsb2JhbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpHbG9iYWxUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9SZWdpb25hbFRhYmxlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkR5bmFtb0RCOjpUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBidWNrZXRQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBldmVudE9uRGVsaXZlcnlGYWlsdXJlU3FzUXVldWVQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1FTOjpRdWV1ZVBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFN1YnNjcmlwdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTTlM6OlN1YnNjcmlwdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBzbnNFdmVudFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjclJlcG8oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0NvbnRhaW5lcidcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUjo6UmVwb3NpdG9yeScgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldCcgfVxuICAgIH0pO1xuICB9LFxuICBkZXBsb3ltZW50QnVja2V0UG9saWN5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdEZXBsb3ltZW50J1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UzM6OkJ1Y2tldFBvbGljeScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFJbnZva2VDb25maWcoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFWZXJzaW9uUHVibGlzaGVyQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVmVyc2lvbicgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lTZXJ2aWNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQ29kZURlcGxveSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0JhdGNoSW5zdGFuY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnQmF0Y2hTdGF0ZU1hY2hpbmUnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hTcG90RmxlZXRSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNwb3RGbGVldCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFNlcnZpY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdCYXRjaFNlcnZpY2UnXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JFeGVjdXRpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaENvbXB1dGVFbnZpcm9ubWVudChzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpDb21wdXRlRW52aXJvbm1lbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JRdWV1ZShzcG90OiBib29sZWFuLCBncHU6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgQmF0Y2gtJHtzcG90ID8gJ3Nwb3QnIDogJ29uRGVtYW5kJ30tJHtncHUgPyAnZ3B1JyA6ICcnfWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScgfVxuICAgIH0pO1xuICB9LFxuICBzdWJuZXQocHVibGljU3VibmV0OiBib29sZWFuLCBzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogcHVibGljU3VibmV0ID8gJ1B1YmxpYycgOiAnUHJpdmF0ZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0JywgaW5kZXg6IHN1Ym5ldEluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgdnBjKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlZQQycgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5RW5kcG9pbnQodHlwZTogJ3MzJyB8ICdkeW5hbW8tZGInKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7dHlwZX0tR2F0ZXdheWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENFbmRwb2ludCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlN1Ym5ldEdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgYXVyb3JhRGJDbHVzdGVyUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkNsdXN0ZXJMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQ2x1c3RlcicsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGRiSW5zdGFuY2VMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnSW5zdGFuY2UnLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbkxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBsb2dHcm91cFR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScsIHN1YnR5cGU6IGxvZ0dyb3VwVHlwZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYk9wdGlvbkdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6T3B0aW9uR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2Eoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScgfVxuICAgIH0pO1xuICB9LFxuICBkYlJlcGxpY2FMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9nR3JvdXBUeXBlOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtLCBzdWJ0eXBlOiBsb2dHcm91cFR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgZGJSZXBsaWNhUGFyYW1ldGVyR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlcGxpY2FOdW06IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdSZXBsaWNhJywgdHlwZUluZGV4OiByZXBsaWNhTnVtIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJQYXJhbWV0ZXJHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXJvcmFEYkluc3RhbmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBpbnN0YW5jZU51bTogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsIGluZGV4OiBpbnN0YW5jZU51bSB9XG4gICAgfSk7XG4gIH0sXG4gIGF1cm9yYURiSW5zdGFuY2VQYXJhbWV0ZXJHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdJbnN0YW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQlBhcmFtZXRlckdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU3RwQ3VzdG9tVGFnZ2luZ1NjaGVkdWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OlJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tVGFnZ2luZ1NjaGVkdWxlUnVsZVBlcm1pc3Npb24oKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1N0cEN1c3RvbVRhZ2dpbmdTY2hlZHVsZVJ1bGUnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjbG91ZFdhdGNoTG9nRXZlbnRTdWJzY3JpcHRpb25GaWx0ZXIoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGV2ZW50SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFdmVudCcsXG4gICAgICAgIHR5cGVJbmRleDogZXZlbnRJbmRleFxuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6U3Vic2NyaXB0aW9uRmlsdGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50U291cmNlTWFwcGluZyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkV2ZW50U291cmNlTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBpb3RFdmVudFRvcGljUnVsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJb1Q6OlRvcGljUnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBraW5lc2lzRXZlbnRDb25zdW1lcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgZXZlbnRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0V2ZW50JyxcbiAgICAgICAgdHlwZUluZGV4OiBldmVudEluZGV4XG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpLaW5lc2lzOjpTdHJlYW1Db25zdW1lcicgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGlzU3RwU2VydmljZUZ1bmN0aW9uPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiBpc1N0cFNlcnZpY2VGdW5jdGlvbiA/IHsgdHlwZTogJ0N1c3RvbVJlc291cmNlJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OkZ1bmN0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVN0cEFsaWFzKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ1N0cCdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhVXJsKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBzY3JpcHRDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY3JpcHQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaFN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdKb2JFeGVjdXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXRjaEpvYkRlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QmF0Y2g6OkpvYkRlZmluaXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgYmF0Y2hKb2JMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBnbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiAnR2xvYmFsU3RhdGVNYWNoaW5lJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YXRlTWFjaGluZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaW50ZXJuZXRHYXRld2F5KCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkludGVybmV0R2F0ZXdheScgfVxuICAgIH0pO1xuICB9LFxuICB2cGNHYXRld2F5QXR0YWNobWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpWUENHYXRld2F5QXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICByb3V0ZVRhYmxlKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGVUYWJsZScgfVxuICAgIH0pO1xuICB9LFxuICBpbnRlcm5ldEdhdGV3YXlSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0ludGVybmV0R2F0ZXdheScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIGF0bGFzTW9uZ29WcGNSb3V0ZShwdWJsaWNTdWJuZXRUYWJsZTogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBBdGxhc01vbmdvJHtwdWJsaWNTdWJuZXRUYWJsZSA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnfWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGluZGV4OiBzdWJuZXRJbmRleCB9XG4gICAgfSk7XG4gIH0sXG4gIHJvdXRlVGFibGVUb1N1Ym5ldEFzc29jaWF0aW9uKHB1YmxpY1N1Ym5ldDogYm9vbGVhbiwgc3VibmV0SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHB1YmxpY1N1Ym5ldCA/ICdQdWJsaWNTdWJuZXQnIDogJ1ByaXZhdGVTdWJuZXQnLCB0eXBlSW5kZXg6IHN1Ym5ldEluZGV4IH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U3VibmV0Um91dGVUYWJsZUFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIG5hdEdhdGV3YXkoYXpJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TmF0R2F0ZXdheScsIGluZGV4OiBhekluZGV4IH1cbiAgICB9KTtcbiAgfSxcbiAgbmF0RWxhc3RpY0lwKGF6SW5kZXg6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOYXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6RUlQJywgaW5kZXg6IGF6SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBuYXRSb3V0ZShzdWJuZXRJbmRleDogbnVtYmVyKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ05hdFByaXZhdGVTdWJuZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6Um91dGUnLCBpbmRleDogc3VibmV0SW5kZXggfVxuICAgIH0pO1xuICB9LFxuICBldmVudEJ1cyhzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzQXJjaGl2ZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzQ2x1c3RlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza0RlZmluaXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NTZXJ2aWNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBibHVlR3JlZW46IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogYmx1ZUdyZWVuID8geyB0eXBlOiAnQmx1ZUdyZWVuJyB9IDogdW5kZWZpbmVkLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRXhlY3V0aW9uUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzRXhlY3V0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMySW5zdGFuY2VSb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7XG4gICAgICAgIHR5cGU6ICdFY3NJbnN0YW5jZSdcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyB9XG4gICAgfSk7XG4gIH0sXG4gIGV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdGb3JjZURlbGV0ZUFzZycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0Rpc2FibGVNYW5hZ2VkVGVybWluYXRpb25Qcm90ZWN0aW9uQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzYWJsZU1hbmFnZWRUZXJtaW5hdGlvblByb3RlY3Rpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBlY3NEZXJlZ2lzdGVyVGFyZ2V0c0N1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0RlcmVnaXN0ZXJUYXJnZXRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcblxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycgfVxuICAgIH0pO1xuICB9LFxuICBlY3NFYzJJbnN0YW5jZVByb2ZpbGUoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogJ0Vjc0luc3RhbmNlJ1xuICAgICAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgZWNzVGFza1JvbGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0F1dG9TY2FsaW5nUm9sZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWNzQXV0b1NjYWxlJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gZWNzU2NoZWR1bGVkTWFpbnRlbmFuY2VFdmVudEJ1c1J1bGUoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHN0cFJlc291cmNlTmFtZSxcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2NoZWR1bGVkTWFpbnRlbmFuY2UnIH0sXG4gIC8vICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAvLyAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIC8vIH0sXG4gIGVjc1NjaGVkdWxlZE1haW50ZW5hbmNlTGFtYmRhUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdTY2hlZHVsZWRNYWludGVuYW5jZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSkucmVwbGFjZUFsbCgnXycsICcnKTtcbiAgfSxcbiAgYmFzdGlvbkVjMkxhdW5jaFRlbXBsYXRlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uRWMyQXV0b3NjYWxpbmdHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkN3QWdlbnRTc21Bc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdDd0FnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Tc21BZ2VudFNzbUFzc29jaWF0aW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1NzbUFnZW50JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTU006OkFzc29jaWF0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGJhc3Rpb25Sb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBiYXN0aW9uTG9nR3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIGxvZ1R5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHBhc2NhbENhc2UobG9nVHlwZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgYmFzdGlvbkNsb3Vkd2F0Y2hTc21Eb2N1bWVudCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnQmFzdGlvbkNsb3Vkd2F0Y2hBZ2VudCcgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpEb2N1bWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5RWNzU2VydmljZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgc2VydmljZVRhcmdldENvbnRhaW5lclBvcnQ6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBQb3J0JHtzZXJ2aWNlVGFyZ2V0Q29udGFpbmVyUG9ydH1EaXNjb3ZlcnlgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNlcnZpY2VEaXNjb3Zlcnk6OlNlcnZpY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd29ya2xvYWRTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xiJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgdGFyZ2V0R3JvdXAoe1xuICAgIGxvYWRCYWxhbmNlck5hbWUsXG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHRhcmdldENvbnRhaW5lclBvcnQsXG4gICAgYmx1ZUdyZWVuXG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICBsb2FkQmFsYW5jZXJOYW1lOiBzdHJpbmc7XG4gICAgdGFyZ2V0Q29udGFpbmVyUG9ydD86IG51bWJlcjtcbiAgICBibHVlR3JlZW4/OiBib29sZWFuO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX0ke3RhcmdldENvbnRhaW5lclBvcnQgPyBgVG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgOiAnJ30ke2JsdWVHcmVlbiA/ICdCRycgOiAnJ31gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpUYXJnZXRHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBkZWZhdWx0TGFtYmRhRnVuY3Rpb25Sb2xlKCkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdMYW1iZGEnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfVxuICAgIH0pO1xuICB9LFxuICBsYW1iZGFQZXJtaXNzaW9uKHN0cFJlc291cmNlTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnQnLCB0eXBlSW5kZXg6IGV2ZW50SW5kZXggfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYVB1YmxpY1VybFBlcm1pc3Npb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnUHVibGljVXJsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgbGFtYmRhSW90RXZlbnRQZXJtaXNzaW9uKHdvcmtsb2FkTmFtZTogc3RyaW5nLCBldmVudEluZGV4OiBudW1iZXIpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShgJHt3b3JrbG9hZE5hbWV9LUV2ZW50JHtldmVudEluZGV4fS1sYW1iZGEtaW90RXZlbnRQZXJtaXNzaW9uYCk7XG4gIH0sXG4gIGxhbWJkYVRhcmdldEdyb3VwUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbG9hZEJhbGFuY2VyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYCR7bG9hZEJhbGFuY2VyTmFtZX1UYXJnZXRHcm91cGAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGkoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpBcGknIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxvZ0dyb3VwKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlMYW1iZGFJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZVxuICB9OiB7XG4gICAgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmc7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBzdHBIdHRwQXBpR2F0ZXdheU5hbWUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQ29udGFpbmVyV29ya2xvYWRJbnRlZ3JhdGlvbih7XG4gICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgIHN0cEh0dHBBcGlHYXRld2F5TmFtZSxcbiAgICB0YXJnZXRDb250YWluZXJQb3J0XG4gIH06IHtcbiAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZztcbiAgICB0YXJnZXRDb250YWluZXJQb3J0OiBudW1iZXI7XG4gICAgc3RwSHR0cEFwaUdhdGV3YXlOYW1lOiBzdHJpbmc7XG4gIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgJHtzdHBIdHRwQXBpR2F0ZXdheU5hbWV9VG9Qb3J0JHt0YXJnZXRDb250YWluZXJQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpJbnRlZ3JhdGlvbicgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpQXV0aG9yaXplcih7IG1ldGhvZCwgcGF0aCwgc3RwUmVzb3VyY2VOYW1lIH06IHsgbWV0aG9kOiBIdHRwTWV0aG9kOyBwYXRoOiBzdHJpbmc7IHN0cFJlc291cmNlTmFtZTogc3RyaW5nIH0pIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHtcbiAgICAgICAgdHlwZTogYCR7c3RwUmVzb3VyY2VOYW1lfS0ke21ldGhvZCA9PT0gJyonID8gJ0FueScgOiBtZXRob2R9LSR7cGF0aCA9PT0gJyonID8gJ0RlZmF1bHQnIDogcGF0aH1gXG4gICAgICB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkF1dGhvcml6ZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVJvdXRlKHsgbWV0aG9kLCBwYXRoLCBzdHBSZXNvdXJjZU5hbWUgfTogeyBtZXRob2Q6IEh0dHBNZXRob2Q7IHBhdGg6IHN0cmluZzsgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiAnJyxcbiAgICAgIHNwZWNpZmllcjoge1xuICAgICAgICB0eXBlOiBgJHtzdHBSZXNvdXJjZU5hbWV9LSR7bWV0aG9kID09PSAnKicgPyAnQW55JyA6IG1ldGhvZH0tJHtwYXRoID09PSAnKicgPyAnRGVmYXVsdCcgOiBwYXRofWBcbiAgICAgIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6Um91dGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaVZwY0xpbmsoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdWcGNMaW5rJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaUxhbWJkYVBlcm1pc3Npb24oe1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgIHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXlcbiAgfToge1xuICAgIHN0cFJlc291cmNlTmFtZU9mTGFtYmRhOiBzdHJpbmc7XG4gICAgc3RwUmVzb3VyY2VOYW1lT2ZIdHRwQXBpR2F0ZXdheTogc3RyaW5nO1xuICB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0cFJlc291cmNlTmFtZU9mTGFtYmRhLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IHN0cFJlc291cmNlTmFtZU9mSHR0cEFwaUdhdGV3YXkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlTdGFnZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlN0YWdlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEb21haW4oZnVsbHlRdWFsaWZpZWREb21haW5OYW1lOiBzdHJpbmcpIHtcbiAgICAvLyB3ZSBkbyBub3QgYnVpbGQgYnVpbGQgdGhlIHJlc291cmNlIG5hbWUgY29udmVudGlvbmFsbHkgdGhyb3VnaCBzdHBSZXNvdXJjZU5hbWVcbiAgICAvLyB0aGlzIGlzIGR1ZSB0byB1cGRhdGUgYmVoYXZpb3JzIG9mIENsb3VkZm9ybWF0aW9uXG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6ICcnLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyB9XG4gICAgfSk7XG4gIH0sXG4gIGh0dHBBcGlEZWZhdWx0RG9tYWluKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScgfVxuICAgIH0pO1xuICB9LFxuICBodHRwQXBpRG9tYWluTWFwcGluZyhmdWxseVF1YWxpZmllZERvbWFpbk5hbWU6IHN0cmluZykge1xuICAgIC8vIHdlIGRvIG5vdCBidWlsZCBidWlsZCB0aGUgcmVzb3VyY2UgbmFtZSBjb252ZW50aW9uYWxseSB0aHJvdWdoIHN0cFJlc291cmNlTmFtZVxuICAgIC8vIHRoaXMgaXMgZHVlIHRvIHVwZGF0ZSBiZWhhdmlvcnMgb2YgQ2xvdWRmb3JtYXRpb25cbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogJycsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogZ2V0U3BlY2lmaWVyRm9yRG9tYWluUmVzb3VyY2UoZnVsbHlRdWFsaWZpZWREb21haW5OYW1lKSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnIH1cbiAgICB9KTtcbiAgfSxcbiAgaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycgfVxuICAgIH0pO1xuICB9LFxuICBsaXN0ZW5lcihleHBvc3VyZVBvcnQ6IG51bWJlciwgc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fWAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TGlzdGVuZXInIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJSdWxlKGV4cG9zdXJlUG9ydDogbnVtYmVyLCBzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgcnVsZVByaW9yaXR5OiBudW1iZXIpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBgUG9ydCR7ZXhwb3N1cmVQb3J0fVByaW9yaXR5JHtydWxlUHJpb3JpdHl9YCB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lclJ1bGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbGlzdGVuZXJDZXJ0aWZpY2F0ZUxpc3QoZXhwb3N1cmVQb3J0OiBudW1iZXIsIHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogYFBvcnQke2V4cG9zdXJlUG9ydH1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyQ2VydGlmaWNhdGUnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9hZEJhbGFuY2VyKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfVxuICAgIH0pO1xuICB9LFxuICBlY3NMb2dHcm91cChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY29udGFpbmVyTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogY29udGFpbmVyTmFtZSB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcgfVxuICAgIH0pO1xuICB9LFxuICBhdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcgfVxuICAgIH0pO1xuICB9LFxuICBkeW5hbW9BdXRvU2NhbGluZ1RhcmdldChzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgbWV0cmljOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiBtZXRyaWMgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgYXV0b1NjYWxpbmdQb2xpY3koc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcsIG1ldHJpYzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogbWV0cmljIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VTM0V2ZW50cygpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRXZlbnRzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgLy8gQGRlcHJlY2F0ZWRcbiAgLy8gc3RhY2t0YXBlU2VydmljZUN1c3RvbVJlc291cmNlRWRnZUZ1bmN0aW9ucygpIHtcbiAgLy8gICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgLy8gICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUZ1bmN0aW9ucycgfSxcbiAgLy8gICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gIC8vICAgfSk7XG4gIC8vIH0sXG4gIGN1c3RvbVJlc291cmNlU2Vuc2l0aXZlRGF0YSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnU2Vuc2l0aXZlRGF0YScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlQWNjZXB0VnBjUGVlcmluZ3MoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0FjY2VwdFZwY1BlZXJpbmdzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluQ2VydCgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVmYXVsdERvbWFpbkNlcnQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGFCdWNrZXQoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VkZ2VMYW1iZGFCdWNrZXQnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICAgIH0pO1xuICB9LFxuICBjdXN0b21SZXNvdXJjZUVkZ2VMYW1iZGEoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRWRnZUxhbWJkYScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgY2RuPzogYm9vbGVhbikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGAke2NkbiA/ICdDZG4nIDogJyd9RGVmYXVsdERvbWFpbmAgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGN1c3RvbVJlc291cmNlRGF0YWJhc2VEZWxldGlvblByb3RlY3Rpb24oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGVsZXRpb25Qcm90ZWN0aW9uJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2woc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xDbGllbnQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xEb21haW4oc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xEb21haW4nIH1cbiAgICB9KTtcbiAgfSxcbiAgaWRlbnRpdHlQcm92aWRlcihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgdHlwZTogU3RwVXNlckF1dGhQb29sWydpZGVudGl0eVByb3ZpZGVycyddW251bWJlcl1bJ3R5cGUnXSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGUgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xJZGVudGl0eVByb3ZpZGVyJyB9XG4gICAgfSk7XG4gIH0sXG4gIGNvZ25pdG9MYW1iZGFIb29rUGVybWlzc2lvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZywgaG9va05hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGhvb2tOYW1lIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pO1xuICB9LFxuICBjb2duaXRvVXNlclBvb2xEZXRhaWxzQ3VzdG9tUmVzb3VyY2Uoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnVXNlclBvb2xEZXRhaWxzJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXNlclBvb2xVaUN1c3RvbWl6YXRpb25BdHRhY2htZW50KHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sVUlDdXN0b21pemF0aW9uQXR0YWNobWVudCcgfVxuICAgIH0pO1xuICB9LFxuICBzZXJ2aWNlRGlzY292ZXJ5UHJpdmF0ZU5hbWVzcGFjZSgpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnRGlzY292ZXJ5JyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTZXJ2aWNlRGlzY292ZXJ5OjpTZXJ2aWNlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxhbWJkYUNvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xhbWJkYUNvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIHNoYXJlZENodW5rTGF5ZXIobGF5ZXJOdW1iZXI6IG51bWJlcikge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6IGBTaGFyZWRDaHVua0xheWVyJHtsYXllck51bWJlcn1gIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6TGF5ZXJWZXJzaW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIGVjc0NvZGVEZXBsb3lBcHAoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0VDU0NvZGVEZXBsb3knIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyB9XG4gICAgfSk7XG4gIH0sXG4gIHN0YWNrQnVkZ2V0KHN0YWNrTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogcGFzY2FsQ2FzZShzdGFja05hbWUpLnJlcGxhY2VBbGwoJ18nLCAnJykgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6QnVkZ2V0czo6QnVkZ2V0JyB9XG4gICAgfSk7XG4gIH0sXG4gIHVwc3Rhc2hSZWRpc0RhdGFiYXNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdVcHN0YXNoOjpEYXRhYmFzZXNWMTo6RGF0YWJhc2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgdXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXIoKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1Vwc3Rhc2hDcmVkZW50aWFsc1Byb3ZpZGVyJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgY2xvdWR3YXRjaEFsYXJtKHN0YWNrdGFwZUFsYXJtTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IHN0YWNrdGFwZUFsYXJtTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRXYXRjaDo6QWxhcm0nIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBjbG91ZHdhdGNoQWxhcm1FdmVudEJ1c05vdGlmaWNhdGlvblJ1bGUoc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkV2ZW50czo6UnVsZScgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIGNsb3Vkd2F0Y2hBbGFybUV2ZW50QnVzTm90aWZpY2F0aW9uUnVsZUxhbWJkYVBlcm1pc3Npb24oc3RhY2t0YXBlQWxhcm1OYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZTogc3RhY2t0YXBlQWxhcm1OYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdOb3RpZmljYXRpb24nIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6UGVybWlzc2lvbicgfVxuICAgIH0pLnJlcGxhY2VBbGwoJ18nLCAnJyk7XG4gIH0sXG4gIHNxc1F1ZXVlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWUnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICBzcXNRdWV1ZVBvbGljeShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlUG9saWN5JyB9XG4gICAgfSk7XG4gIH0sXG4gIHNuc1RvcGljKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlNOUzo6VG9waWMnIH1cbiAgICB9KS5yZXBsYWNlQWxsKCdfJywgJycpO1xuICB9LFxuICB3ZWJBcHBGaXJld2FsbEN1c3RvbVJlc291cmNlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ1dlYkFwcEZpcmV3YWxsJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgd2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaERvbWFpbihzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpPcGVuU2VhcmNoU2VydmljZTo6RG9tYWluJyB9XG4gICAgfSk7XG4gIH0sXG4gIG9wZW5TZWFyY2hDdXN0b21SZXNvdXJjZShzdHBSZXNvdXJjZU5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lLFxuICAgICAgc3BlY2lmaWVyOiB7IHR5cGU6ICdPcGVuU2VhcmNoJyB9LFxuICAgICAgc3VmZml4OiB7IGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnIH1cbiAgICB9KTtcbiAgfSxcbiAgb3BlblNlYXJjaFNlY3VyaXR5R3JvdXAoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGaXJlaG9zZVRvUzNSb2xlKHN0cFJlc291cmNlTmFtZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0xvZ0ZvcndhcmRpbmdTMycgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdDd1RvRmlyZWhvc2VSb2xlKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzcGVjaWZpZXI6IHsgdHlwZTogJ0N3VG9GaXJlaG9zZScgfSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9XG4gICAgfSk7XG4gIH0sXG4gIGxvZ0ZvcndhcmRpbmdGYWlsZWRFdmVudHNCdWNrZXQoc3RwUmVzb3VyY2VOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYnVpbGRDZkxvZ2ljYWxOYW1lKHtcbiAgICAgIHN0cFJlc291cmNlTmFtZSxcbiAgICAgIHNwZWNpZmllcjogeyB0eXBlOiAnTG9nRm9yd2FyZGluZ0ZhaWxlZFJlY29yZHMnIH0sXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH1cbiAgICB9KTtcbiAgfSxcbiAgbG9nRm9yd2FyZGluZ0ZpcmVob3NlRGVsaXZlcnlTdHJlYW0oeyBsb2dHcm91cENmTG9naWNhbE5hbWUgfTogeyBsb2dHcm91cENmTG9naWNhbE5hbWU6IHN0cmluZyB9KSB7XG4gICAgcmV0dXJuIGJ1aWxkQ2ZMb2dpY2FsTmFtZSh7XG4gICAgICBzdHBSZXNvdXJjZU5hbWU6IGxvZ0dyb3VwQ2ZMb2dpY2FsTmFtZSxcbiAgICAgIHN1ZmZpeDogeyBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogJ0FXUzo6S2luZXNpc0ZpcmVob3NlOjpEZWxpdmVyeVN0cmVhbScgfVxuICAgIH0pO1xuICB9LFxuICBsb2dGb3J3YXJkaW5nU3Vic2NyaXB0aW9uRmlsdGVyKHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lIH06IHsgbG9nR3JvdXBDZkxvZ2ljYWxOYW1lOiBzdHJpbmcgfSkge1xuICAgIHJldHVybiBidWlsZENmTG9naWNhbE5hbWUoe1xuICAgICAgc3RwUmVzb3VyY2VOYW1lOiBsb2dHcm91cENmTG9naWNhbE5hbWUsXG4gICAgICBzdWZmaXg6IHsgY2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OlN1YnNjcmlwdGlvbkZpbHRlcicgfVxuICAgIH0pO1xuICB9XG59O1xuXG5jb25zdCBidWlsZENmTG9naWNhbE5hbWUgPSAoe1xuICBzdHBSZXNvdXJjZU5hbWUsXG4gIHNwZWNpZmllcixcbiAgc3VmZml4XG59OiB7XG4gIHN0cFJlc291cmNlTmFtZT86IHN0cmluZztcbiAgc3BlY2lmaWVyPzogeyB0eXBlOiBzdHJpbmc7IHR5cGVJbmRleD86IG51bWJlcjsgc3VidHlwZT86IHN0cmluZyB9O1xuICBzdWZmaXg6IHtcbiAgICBjbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZTogQ2xvdWRmb3JtYXRpb25SZXNvdXJjZVR5cGUgfCBTdXBwb3J0ZWRQcml2YXRlQ2ZSZXNvdXJjZVR5cGU7XG4gICAgaW5kZXg/OiBudW1iZXI7XG4gIH07XG59KSA9PiB7XG4gIGNvbnN0IHNwbGl0dGVkVHlwZSA9IHN1ZmZpeC5jbG91ZGZvcm1hdGlvblJlc291cmNlVHlwZS5zcGxpdCgnOicpO1xuICBjb25zdCByZXNvbHZlZFBhcmVudE5hbWUgPSBzdHBSZXNvdXJjZU5hbWUgfHwgJ1N0cCc7XG4gIGNvbnN0IHJlc29sdmVkU3BlY2lmaWVyID0gc3BlY2lmaWVyXG4gICAgPyBgJHtzcGVjaWZpZXIudHlwZX0ke3NwZWNpZmllci50eXBlSW5kZXggIT09IHVuZGVmaW5lZCA/IHNwZWNpZmllci50eXBlSW5kZXggOiAnJ30ke1xuICAgICAgICBzcGVjaWZpZXIuc3VidHlwZSAhPT0gdW5kZWZpbmVkID8gYC0ke3NwZWNpZmllci5zdWJ0eXBlfWAgOiAnJ1xuICAgICAgfWBcbiAgICA6ICcnO1xuICBjb25zdCByZXNvbHZlZFN1ZmZpeCA9IGAke3NwbGl0dGVkVHlwZVtzcGxpdHRlZFR5cGUubGVuZ3RoIC0gMV19JHtzdWZmaXguaW5kZXggIT09IHVuZGVmaW5lZCA/IHN1ZmZpeC5pbmRleCA6ICcnfWA7XG4gIHJldHVybiBwYXNjYWxDYXNlKGAke3Jlc29sdmVkUGFyZW50TmFtZX0tJHtyZXNvbHZlZFNwZWNpZmllcn0tJHtyZXNvbHZlZFN1ZmZpeH1gKTtcbn07XG5cbmNvbnN0IGdldFNwZWNpZmllckZvckRvbWFpblJlc291cmNlID0gKGZ1bGx5UXVhbGlmaWVkRG9tYWluTmFtZSkgPT4ge1xuICBpZiAocGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJykubGVuZ3RoIDwgODUpIHtcbiAgICByZXR1cm4gcGFzY2FsQ2FzZShmdWxseVF1YWxpZmllZERvbWFpbk5hbWUpLnJlcGxhY2UoJ18nLCAnJyk7XG4gIH1cbiAgY29uc3Qgc3BsaXR0ZWREb21haW4gPSBmdWxseVF1YWxpZmllZERvbWFpbk5hbWVcbiAgICAuc3BsaXQoJy4nKVxuICAgIC5tYXAoKHN1YmRvbWFpbikgPT4gc3ViZG9tYWluLnNwbGl0KCctJykpXG4gICAgLmZsYXQoKTtcbiAgY29uc3QgbWF4Q2hhcmFjdGVyc1BlcldvcmQgPSBNYXRoLmZsb29yKDg1IC8gc3BsaXR0ZWREb21haW4ubGVuZ3RoKTtcbiAgcmV0dXJuIHNwbGl0dGVkRG9tYWluLm1hcCgod29yZCkgPT4gcGFzY2FsQ2FzZSh3b3JkLnNsaWNlKDAsIG1heENoYXJhY3RlcnNQZXJXb3JkKSkucmVwbGFjZSgnXycsICcnKSkuam9pbignJyk7XG59O1xuIiwKICAgICJpbXBvcnQgeyBjZkxvZ2ljYWxOYW1lcyB9IGZyb20gJy4uLy4uLy4uLy4uL3NoYXJlZC9uYW1pbmcvbG9naWNhbC1uYW1lcyc7XG5cbmV4cG9ydCBjb25zdCBDSElMRF9SRVNPVVJDRVM6IFJlY29yZDxcbiAgU3RwUmVzb3VyY2VUeXBlLFxuICBBcnJheTx7IGxvZ2ljYWxOYW1lOiAoLi4uYXJnczogYW55W10pID0+IHN0cmluZzsgcmVzb3VyY2VUeXBlOiBzdHJpbmc7IGNvbmRpdGlvbmFsPzogdHJ1ZTsgdW5yZXNvbHZhYmxlPzogdHJ1ZSB9PlxuPiA9IHtcbiAgLy8gPT09PT0gQlVDS0VUID09PT09XG4gIGJ1Y2tldDogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0JyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJ1Y2tldFBvbGljeSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTMzo6QnVja2V0UG9saWN5JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IEZVTkNUSU9OID09PT09XG4gIGZ1bmN0aW9uOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6RnVuY3Rpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhUHVibGljVXJsUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUludm9rZUNvbmZpZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpFdmVudEludm9rZUNvbmZpZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYUNvZGVEZXBsb3lBcHAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVmVyc2lvblB1Ymxpc2hlckN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxhbWJkYVN0cEFsaWFzLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6QWxpYXMnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFQZXJtaXNzaW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMYW1iZGE6OlBlcm1pc3Npb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUkVMQVRJT05BTCBEQVRBQkFTRSA9PT09PVxuICAncmVsYXRpb25hbC1kYXRhYmFzZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlN1Ym5ldEdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJTdWJuZXRHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURhdGFiYXNlRGVsZXRpb25Qcm90ZWN0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCQ2x1c3RlcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1cm9yYURiQ2x1c3RlclBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJDbHVzdGVyTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJJbnN0YW5jZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXVyb3JhRGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiSW5zdGFuY2UsIHJlc291cmNlVHlwZTogJ0FXUzo6UkRTOjpEQkluc3RhbmNlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJJbnN0YW5jZUxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJPcHRpb25Hcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6Ok9wdGlvbkdyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZGJJbnN0YW5jZVBhcmFtZXRlckdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpSRFM6OkRCUGFyYW1ldGVyR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kYlJlcGxpY2EsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlJEUzo6REJJbnN0YW5jZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRiUmVwbGljYUxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBEWU5BTU8gREIgVEFCTEUgPT09PT1cbiAgJ2R5bmFtby1kYi10YWJsZSc6IFt7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5keW5hbW9HbG9iYWxUYWJsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1dLFxuXG4gIC8vID09PT09IEhUVFAgQVBJIEdBVEVXQVkgPT09PT1cbiAgJ2h0dHAtYXBpLWdhdGV3YXknOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpU3RhZ2UsIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpTdGFnZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpTG9nR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGlua1NlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVZwY0xpbmssIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpWcGNMaW5rJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRG9tYWluLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6RG9tYWluTmFtZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURlZmF1bHREb21haW5NYXBwaW5nLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaU1hcHBpbmcnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gQkFUQ0ggSk9CID09PT09XG4gICdiYXRjaC1qb2InOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hTZXJ2aWNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3BvdEZsZWV0Um9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoSW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3RhdGVNYWNoaW5lRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEluc3RhbmNlRGVmYXVsdFNlY3VyaXR5R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoQ29tcHV0ZUVudmlyb25tZW50LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpCYXRjaDo6Q29tcHV0ZUVudmlyb25tZW50JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYlF1ZXVlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JRdWV1ZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmF0Y2hKb2JEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkJhdGNoOjpKb2JEZWZpbml0aW9uJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhdGNoU3RhdGVNYWNoaW5lLCByZXNvdXJjZVR5cGU6ICdBV1M6OlN0ZXBGdW5jdGlvbnM6OlN0YXRlTWFjaGluZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYkxvZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXRjaEpvYkV4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFVkVOVCBCVVMgPT09PT1cbiAgJ2V2ZW50LWJ1cyc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1cywgcmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkV2ZW50QnVzJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzQXJjaGl2ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFdmVudHM6OkFyY2hpdmUnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU1RBVEUgTUFDSElORSA9PT09PVxuICAnc3RhdGUtbWFjaGluZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5nbG9iYWxTdGF0ZU1hY2hpbmVzUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnN0YXRlTWFjaGluZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTdGVwRnVuY3Rpb25zOjpTdGF0ZU1hY2hpbmUnIH1cbiAgXSxcblxuICAvLyA9PT09PSBSRURJUyBDTFVTVEVSID09PT09XG4gICdyZWRpcy1jbHVzdGVyJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzUGFyYW1ldGVyR3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlBhcmFtZXRlckdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzU3VibmV0R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpQ2FjaGU6OlN1Ym5ldEdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnJlZGlzU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMucmVkaXNSZXBsaWNhdGlvbkdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aUNhY2hlOjpSZXBsaWNhdGlvbkdyb3VwJyB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTU9OR08gREIgQVRMQVMgQ0xVU1RFUiA9PT09PVxuICAnbW9uZ28tZGItYXRsYXMtY2x1c3Rlcic6IFtcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb0NyZWRlbnRpYWxzUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3QsIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3QnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdElwQWNjZXNzTGlzdCxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OlByb2plY3RJcEFjY2Vzc0xpc3QnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvUHJvamVjdFZwY05ldHdvcmtDb250YWluZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdNb25nb0RCOjpTdHBBdGxhc1YxOjpOZXR3b3JrQ29udGFpbmVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb1Byb2plY3RWcGNOZXR3b3JrUGVlcmluZyxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6Ok5ldHdvcmtQZWVyaW5nJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVnBjUm91dGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpSb3V0ZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXRsYXNNb25nb0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkNsdXN0ZXInIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF0bGFzTW9uZ29DbHVzdGVyTWFzdGVyVXNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBVU0VSIEFVVEggUE9PTCA9PT09PVxuICAndXNlci1hdXRoLXBvb2wnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2wsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2wnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc25zUm9sZVNlbmRTbXNGcm9tQ29nbml0bywgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xDbGllbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xDbGllbnQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6Q29nbml0bzo6VXNlclBvb2xEb21haW4nIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZ25pdG9Vc2VyUG9vbERldGFpbHNDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJ1xuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmlkZW50aXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZ25pdG86OlVzZXJQb29sSWRlbnRpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZ25pdG9MYW1iZGFIb29rUGVybWlzc2lvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpQZXJtaXNzaW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXNlclBvb2xVaUN1c3RvbWl6YXRpb25BdHRhY2htZW50LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2duaXRvOjpVc2VyUG9vbFVJQ3VzdG9taXphdGlvbkF0dGFjaG1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpXQUZ2Mjo6V2ViQUNMQXNzb2NpYXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gVVBTVEFTSCBSRURJUyA9PT09PVxuICAndXBzdGFzaC1yZWRpcyc6IFtcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXBzdGFzaENyZWRlbnRpYWxzUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMudXBzdGFzaFJlZGlzRGF0YWJhc2UsIHJlc291cmNlVHlwZTogJ1Vwc3Rhc2g6OlJlZGlzOjpEYXRhYmFzZScgfVxuICBdLFxuXG4gIC8vID09PT09IEFQUExJQ0FUSU9OIExPQUQgQkFMQU5DRVIgPT09PT1cbiAgJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6OkxvYWRCYWxhbmNlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDbG91ZEZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHknLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tQ2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRDYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250Q3VzdG9tT3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0T3JpZ2luUmVxdWVzdFBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6T3JpZ2luUmVxdWVzdFBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREaXN0cmlidXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkRpc3RyaWJ1dGlvbicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBORVRXT1JLIExPQUQgQkFMQU5DRVIgPT09PT1cbiAgJ25ldHdvcmstbG9hZC1iYWxhbmNlcic6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlclNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gSE9TVElORyBCVUNLRVQgPT09PT1cbiAgLy8gSG9zdGluZyBidWNrZXQgZGVsZWdhdGVzIHRvIGEgYnVja2V0IHJlc291cmNlLCBzbyBpdCBpbmNsdWRlcyBhbGwgYnVja2V0IGNoaWxkIHJlc291cmNlc1xuICAnaG9zdGluZy1idWNrZXQnOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gV0VCIEFQUCBGSVJFV0FMTCA9PT09PVxuICAnd2ViLWFwcC1maXJld2FsbCc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53ZWJBcHBGaXJld2FsbEN1c3RvbVJlc291cmNlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IE9QRU4gU0VBUkNIIERPTUFJTiA9PT09PVxuICAnb3Blbi1zZWFyY2gtZG9tYWluJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5TZWFyY2hEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6T3BlblNlYXJjaFNlcnZpY2U6OkRvbWFpbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuU2VhcmNoRG9tYWluTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3BlblNlYXJjaEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gRUZTIEZJTEVTWVNURU0gPT09PT1cbiAgJ2Vmcy1maWxlc3lzdGVtJzogW1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0ZpbGVzeXN0ZW0sIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpGaWxlU3lzdGVtJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc1NlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNNb3VudFRhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpNb3VudFRhcmdldCcsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gTkVYVEpTIFdFQiA9PT09PVxuICAvLyBOZXh0SlMgd2ViIGRlbGVnYXRlcyB0bzogYnVja2V0LCBpbWFnZUZ1bmN0aW9uLCByZXZhbGlkYXRpb25GdW5jdGlvbiwgcmV2YWxpZGF0aW9uUXVldWUsXG4gIC8vIHJldmFsaWRhdGlvblRhYmxlLCByZXZhbGlkYXRpb25JbnNlcnRGdW5jdGlvbiwgYW5kIG9wdGlvbmFsbHkgc2VydmVyRWRnZUZ1bmN0aW9uIG9yIHNlcnZlckZ1bmN0aW9uXG4gICduZXh0anMtd2ViJzogW1xuICAgIC8vIE5leHRKUy1zcGVjaWZpYyByZXNvdXJjZXNcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMub3Blbk5leHRIb3N0SGVhZGVyUmV3cml0ZUZ1bmN0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpGdW5jdGlvbidcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5vcGVuTmV4dEFzc2V0UmVwbGFjZXJDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJ1xuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLm9wZW5OZXh0RHluYW1vSW5zZXJ0Q3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZSdcbiAgICB9LFxuICAgIC8vIEZyb20gYnVja2V0XG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXQnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYnVja2V0UG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlMzOjpCdWNrZXRQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250T3JpZ2luQWNjZXNzSWRlbnRpdHksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNsb3VkRnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21DYWNoZVBvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2FjaGVQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdENhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRDdXN0b21PcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERlZmF1bHRPcmlnaW5SZXF1ZXN0UG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpPcmlnaW5SZXF1ZXN0UG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udERpc3RyaWJ1dGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6RGlzdHJpYnV0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmRuc1JlY29yZCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpSb3V0ZTUzOjpSZWNvcmRTZXQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gZnVuY3Rpb25zIChpbWFnZUZ1bmN0aW9uLCByZXZhbGlkYXRpb25GdW5jdGlvbiwgc2VydmVyRnVuY3Rpb24sIHdhcm1lckZ1bmN0aW9uLCByZXZhbGlkYXRpb25JbnNlcnRGdW5jdGlvbilcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGEsIHJlc291cmNlVHlwZTogJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sYW1iZGFMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubGFtYmRhVXJsLCByZXNvdXJjZVR5cGU6ICdBV1M6OkxhbWJkYTo6VXJsJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGVkZ2UgZnVuY3Rpb24gKHNlcnZlckVkZ2VGdW5jdGlvbilcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIC8vIEZyb20gcmV2YWxpZGF0aW9uUXVldWVcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlUG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIC8vIEZyb20gcmV2YWxpZGF0aW9uVGFibGVcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5keW5hbW9HbG9iYWxUYWJsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpEeW5hbW9EQjo6R2xvYmFsVGFibGUnIH1cbiAgXSxcblxuICAvLyA9PT09PSBNVUxUSS1DT05UQUlORVIgV09SS0xPQUQgPT09PT1cbiAgJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZCc6IFtcbiAgICAvLyBTaGFyZWQgZ2xvYmFsIHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBjcmVhdGVkIG9ubHkgb25jZSBpZiBub3QgZXhpc3RzKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBTY2FsaW5nIHJlc291cmNlcyAoY29uZGl0aW9uYWwgLSBvbmx5IGlmIHNjYWxpbmcgaXMgY29uZmlndXJlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIC8vIEVDMi1iYXNlZCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBpbnN0YW5jZVR5cGVzIGFyZSBjb25maWd1cmVkKVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gRGVwbG95bWVudCByZXNvdXJjZXMgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBkZXBsb3ltZW50IGlzIGNvbmZpZ3VyZWQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIENvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBTUVMgUVVFVUUgPT09PT1cbiAgJ3Nxcy1xdWV1ZSc6IFtcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zcXNRdWV1ZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpTUVM6OlF1ZXVlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNxc1F1ZXVlUG9saWN5LCByZXNvdXJjZVR5cGU6ICdBV1M6OlNRUzo6UXVldWVQb2xpY3knLCBjb25kaXRpb25hbDogdHJ1ZSB9XG4gIF0sXG5cbiAgLy8gPT09PT0gU05TIFRPUElDID09PT09XG4gICdzbnMtdG9waWMnOiBbeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc25zVG9waWMsIHJlc291cmNlVHlwZTogJ0FXUzo6U05TOjpUb3BpYycgfV0sXG5cbiAgLy8gPT09PT0gQkFTVElPTiA9PT09PVxuICBiYXN0aW9uOiBbXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25DbG91ZHdhdGNoU3NtRG9jdW1lbnQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6RG9jdW1lbnQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25FYzJBdXRvc2NhbGluZ0dyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmJhc3Rpb25TZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uRWMyTGF1bmNoVGVtcGxhdGUsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkVjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5iYXN0aW9uQ3dBZ2VudFNzbUFzc29jaWF0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OlNTTTo6QXNzb2NpYXRpb24nIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvblNzbUFnZW50U3NtQXNzb2NpYXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6U1NNOjpBc3NvY2lhdGlvbicgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYmFzdGlvbkxvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBFREdFIExBTUJEQSBGVU5DVElPTiA9PT09PVxuICAnZWRnZS1sYW1iZGEtZnVuY3Rpb24nOiBbXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY3VzdG9tUmVzb3VyY2VFZGdlTGFtYmRhLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScgfVxuICBdLFxuXG4gIC8vID09PT09IFdFQiBTRVJWSUNFID09PT09XG4gIC8vIFdlYiBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgKyBvcHRpb25hbGx5IChodHRwQXBpR2F0ZXdheSBPUiBsb2FkQmFsYW5jZXIgT1IgbmV0d29ya0xvYWRCYWxhbmNlcilcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29yZSByZXNvdXJjZXMgKGFsd2F5cyBwcmVzZW50KVxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NsdXN0ZXIsIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLndvcmtsb2FkU2VjdXJpdHlHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1NlcnZpY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6U2VydmljZScsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrRGVmaW5pdGlvbiwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlRhc2tEZWZpbml0aW9uJyB9LFxuICAgIC8vIEZyb20gbXVsdGktY29udGFpbmVyLXdvcmtsb2FkIC0gY29uZGl0aW9uYWwgcmVzb3VyY2VzXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRXhlY3V0aW9uUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0F1dG9TY2FsaW5nUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1RhcmdldCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGFibGVUYXJnZXQnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdXRvU2NhbGluZ1BvbGljeSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmV2ZW50QnVzUm9sZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVByb2ZpbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpJbnN0YW5jZVByb2ZpbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZUxhdW5jaFRlbXBsYXRlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6OkF1dG9TY2FsaW5nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJGb3JjZURlbGV0ZUF1dG9zY2FsaW5nR3JvdXBDdXN0b21SZXNvdXJjZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDYXBhY2l0eVByb3ZpZGVyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb25zJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuc2NoZWR1bGVyUnVsZUZvclNjaGVkdWxlZEluc3RhbmNlUmVmcmVzaCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6U2NoZWR1bGVyOjpTY2hlZHVsZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXBXYXJtUG9vbCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6QXV0b1NjYWxpbmc6Oldhcm1Qb29sJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDb2RlRGVwbG95QXBwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkFwcGxpY2F0aW9uJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY29kZURlcGxveURlcGxveW1lbnRHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6RGVwbG95bWVudEdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzTG9nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkxvZ3M6OkxvZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lZnNBY2Nlc3NQb2ludCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFRlM6OkFjY2Vzc1BvaW50JywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICAvLyBGcm9tIGFwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXIgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBBTEIgaXMgdXNlZClcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMb2FkQmFsYW5jZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5sb2FkQmFsYW5jZXJTZWN1cml0eUdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQzI6OlNlY3VyaXR5R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxpc3RlbmVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVsYXN0aWNMb2FkQmFsYW5jaW5nVjI6Okxpc3RlbmVyJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud2ViQXBwRmlyZXdhbGxBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6V0FGdjI6OldlYkFDTEFzc29jaWF0aW9uJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICAvLyBGcm9tIGh0dHAtYXBpLWdhdGV3YXkgKGNvbmRpdGlvbmFsIC0gb25seSBpZiBIVFRQIEFQSSBHYXRld2F5IGlzIHVzZWQsIGFsdGVybmF0aXZlIHRvIEFMQi9OTEIpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkFwaScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaVN0YWdlLCByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6U3RhZ2UnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlMb2dHcm91cCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlWcGNMaW5rU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpVnBjTGluaywgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OlZwY0xpbmsnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEb21haW4sIHJlc291cmNlVHlwZTogJ0FXUzo6QXBpR2F0ZXdheVYyOjpEb21haW5OYW1lJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuaHR0cEFwaURvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmh0dHBBcGlEZWZhdWx0RG9tYWluLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcGlHYXRld2F5VjI6OkRvbWFpbk5hbWUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5odHRwQXBpRGVmYXVsdERvbWFpbk1hcHBpbmcsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwaUdhdGV3YXlWMjo6QXBpTWFwcGluZycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgLy8gQ29tbW9uIHJlc291cmNlcyAoZG9tYWlucywgQ0ROIC0gYWxsIGNvbmRpdGlvbmFsKVxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jdXN0b21SZXNvdXJjZURlZmF1bHREb21haW4sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZG5zUmVjb3JkLCByZXNvdXJjZVR5cGU6ICdBV1M6OlJvdXRlNTM6OlJlY29yZFNldCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnRPcmlnaW5BY2Nlc3NJZGVudGl0eSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGcm9udDo6Q2xvdWRGcm9udE9yaWdpbkFjY2Vzc0lkZW50aXR5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbUNhY2hlUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpDYWNoZVBvbGljeScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNsb3VkZnJvbnREZWZhdWx0Q2FjaGVQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6OkNhY2hlUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuY2xvdWRmcm9udEN1c3RvbU9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGVmYXVsdE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRnJvbnQ6Ok9yaWdpblJlcXVlc3RQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jbG91ZGZyb250RGlzdHJpYnV0aW9uLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZyb250OjpEaXN0cmlidXRpb24nLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9XG4gIF0sXG5cbiAgLy8gPT09PT0gUFJJVkFURSBTRVJWSUNFID09PT09XG4gIC8vIFByaXZhdGUgc2VydmljZSBkZWxlZ2F0ZXMgdG86IGNvbnRhaW5lcldvcmtsb2FkICsgb3B0aW9uYWxseSBsb2FkQmFsYW5jZXJcbiAgJ3ByaXZhdGUtc2VydmljZSc6IFtcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvcmUgcmVzb3VyY2VzIChhbHdheXMgcHJlc2VudClcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NDbHVzdGVyLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlcicgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy53b3JrbG9hZFNlY3VyaXR5R3JvdXAsIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NTZXJ2aWNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OlNlcnZpY2UnLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NUYXNrUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza0RlZmluaXRpb24sIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpUYXNrRGVmaW5pdGlvbicgfSxcbiAgICAvLyBGcm9tIG11bHRpLWNvbnRhaW5lci13b3JrbG9hZCAtIGNvbmRpdGlvbmFsIHJlc291cmNlc1xuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0V4ZWN1dGlvblJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NBdXRvU2NhbGluZ1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdUYXJnZXQsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxhYmxlVGFyZ2V0JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuYXV0b1NjYWxpbmdQb2xpY3ksXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3knLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUm9sZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5ldmVudEJ1c1JvbGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VQcm9maWxlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6SW5zdGFuY2VQcm9maWxlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMySW5zdGFuY2VMYXVuY2hUZW1wbGF0ZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkF1dG9zY2FsaW5nR3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpBdXRvU2NhbGluZ0dyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyRm9yY2VEZWxldGVBdXRvc2NhbGluZ0dyb3VwQ3VzdG9tUmVzb3VyY2UsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNsb3VkRm9ybWF0aW9uOjpDdXN0b21SZXNvdXJjZScsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXIsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2FwYWNpdHlQcm92aWRlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpDbHVzdGVyQ2FwYWNpdHlQcm92aWRlckFzc29jaWF0aW9ucycsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLnNjaGVkdWxlclJ1bGVGb3JTY2hlZHVsZWRJbnN0YW5jZVJlZnJlc2gsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OlNjaGVkdWxlcjo6U2NoZWR1bGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwV2FybVBvb2wsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkF1dG9TY2FsaW5nOjpXYXJtUG9vbCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ29kZURlcGxveUFwcCwgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpBcHBsaWNhdGlvbicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmNvZGVEZXBsb3lEZXBsb3ltZW50R3JvdXAsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkNvZGVEZXBsb3k6OkRlcGxveW1lbnRHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0xvZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpMb2dzOjpMb2dHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZSxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWZzQWNjZXNzUG9pbnQsIHJlc291cmNlVHlwZTogJ0FXUzo6RUZTOjpBY2Nlc3NQb2ludCcsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgLy8gRnJvbSBhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyIChjb25kaXRpb25hbCAtIG9ubHkgaWYgQUxCIGlzIGNvbmZpZ3VyZWQpXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmxvYWRCYWxhbmNlcixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RWxhc3RpY0xvYWRCYWxhbmNpbmdWMjo6TG9hZEJhbGFuY2VyJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMubG9hZEJhbGFuY2VyU2VjdXJpdHlHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUMyOjpTZWN1cml0eUdyb3VwJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5saXN0ZW5lciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFbGFzdGljTG9hZEJhbGFuY2luZ1YyOjpMaXN0ZW5lcicsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmN1c3RvbVJlc291cmNlRGVmYXVsdERvbWFpbixcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6Q2xvdWRGb3JtYXRpb246OkN1c3RvbVJlc291cmNlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5kbnNSZWNvcmQsIHJlc291cmNlVHlwZTogJ0FXUzo6Um91dGU1Mzo6UmVjb3JkU2V0JywgY29uZGl0aW9uYWw6IHRydWUgfVxuICBdLFxuXG4gIC8vID09PT09IFdPUktFUiBTRVJWSUNFID09PT09XG4gIC8vIFdvcmtlciBzZXJ2aWNlIGRlbGVnYXRlcyB0bzogY29udGFpbmVyV29ya2xvYWQgb25seVxuICAnd29ya2VyLXNlcnZpY2UnOiBbXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb3JlIHJlc291cmNlcyAoYWx3YXlzIHByZXNlbnQpXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQ2x1c3RlciwgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNsdXN0ZXInIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMud29ya2xvYWRTZWN1cml0eUdyb3VwLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6U2VjdXJpdHlHcm91cCcgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzU2VydmljZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6RUNTOjpTZXJ2aWNlJyxcbiAgICAgIHVucmVzb2x2YWJsZTogdHJ1ZVxuICAgIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzVGFza1JvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJyB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc1Rhc2tEZWZpbml0aW9uLCByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6VGFza0RlZmluaXRpb24nIH0sXG4gICAgLy8gRnJvbSBtdWx0aS1jb250YWluZXItd29ya2xvYWQgLSBjb25kaXRpb25hbCByZXNvdXJjZXNcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFeGVjdXRpb25Sb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAgeyBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzQXV0b1NjYWxpbmdSb2xlLCByZXNvdXJjZVR5cGU6ICdBV1M6OklBTTo6Um9sZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nVGFyZ2V0LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmF1dG9TY2FsaW5nUG9saWN5LFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5JyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlLFxuICAgICAgdW5yZXNvbHZhYmxlOiB0cnVlXG4gICAgfSxcbiAgICB7IGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJJbnN0YW5jZVJvbGUsIHJlc291cmNlVHlwZTogJ0FXUzo6SUFNOjpSb2xlJywgY29uZGl0aW9uYWw6IHRydWUgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZXZlbnRCdXNSb2xlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06OlJvbGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlUHJvZmlsZSwgcmVzb3VyY2VUeXBlOiAnQVdTOjpJQU06Okluc3RhbmNlUHJvZmlsZScsIGNvbmRpdGlvbmFsOiB0cnVlIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkluc3RhbmNlTGF1bmNoVGVtcGxhdGUsXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJBdXRvc2NhbGluZ0dyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6QXV0b1NjYWxpbmdHcm91cCcsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH0sXG4gICAge1xuICAgICAgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0VjMkZvcmNlRGVsZXRlQXV0b3NjYWxpbmdHcm91cEN1c3RvbVJlc291cmNlLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDbG91ZEZvcm1hdGlvbjo6Q3VzdG9tUmVzb3VyY2UnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpFQ1M6OkNhcGFjaXR5UHJvdmlkZXInLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NFYzJDYXBhY2l0eVByb3ZpZGVyQXNzb2NpYXRpb24sXG4gICAgICByZXNvdXJjZVR5cGU6ICdBV1M6OkVDUzo6Q2x1c3RlckNhcGFjaXR5UHJvdmlkZXJBc3NvY2lhdGlvbnMnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5zY2hlZHVsZXJSdWxlRm9yU2NoZWR1bGVkSW5zdGFuY2VSZWZyZXNoLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpTY2hlZHVsZXI6OlNjaGVkdWxlJyxcbiAgICAgIGNvbmRpdGlvbmFsOiB0cnVlXG4gICAgfSxcbiAgICB7XG4gICAgICBsb2dpY2FsTmFtZTogY2ZMb2dpY2FsTmFtZXMuZWNzRWMyQXV0b3NjYWxpbmdHcm91cFdhcm1Qb29sLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpBdXRvU2NhbGluZzo6V2FybVBvb2wnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVjc0NvZGVEZXBsb3lBcHAsIHJlc291cmNlVHlwZTogJ0FXUzo6Q29kZURlcGxveTo6QXBwbGljYXRpb24nLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5jb2RlRGVwbG95RGVwbG95bWVudEdyb3VwLFxuICAgICAgcmVzb3VyY2VUeXBlOiAnQVdTOjpDb2RlRGVwbG95OjpEZXBsb3ltZW50R3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWVcbiAgICB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5lY3NMb2dHcm91cCxcbiAgICAgIHJlc291cmNlVHlwZTogJ0FXUzo6TG9nczo6TG9nR3JvdXAnLFxuICAgICAgY29uZGl0aW9uYWw6IHRydWUsXG4gICAgICB1bnJlc29sdmFibGU6IHRydWVcbiAgICB9LFxuICAgIHsgbG9naWNhbE5hbWU6IGNmTG9naWNhbE5hbWVzLmVmc0FjY2Vzc1BvaW50LCByZXNvdXJjZVR5cGU6ICdBV1M6OkVGUzo6QWNjZXNzUG9pbnQnLCBjb25kaXRpb25hbDogdHJ1ZSB9LFxuICAgIHtcbiAgICAgIGxvZ2ljYWxOYW1lOiBjZkxvZ2ljYWxOYW1lcy5hdGxhc01vbmdvVXNlckFzc29jaWF0ZWRXaXRoUm9sZSxcbiAgICAgIHJlc291cmNlVHlwZTogJ01vbmdvREI6OlN0cEF0bGFzVjE6OkRhdGFiYXNlVXNlcicsXG4gICAgICBjb25kaXRpb25hbDogdHJ1ZVxuICAgIH1cbiAgXSxcblxuICAvLyA9PT09PSBPVEhFUiBSRVNPVVJDRVMgPT09PT1cbiAgJ2N1c3RvbS1yZXNvdXJjZS1pbnN0YW5jZSc6IFtdLFxuICAnY3VzdG9tLXJlc291cmNlLWRlZmluaXRpb24nOiBbXSxcbiAgJ2RlcGxveW1lbnQtc2NyaXB0JzogW10sXG4gICdhd3MtY2RrLWNvbnN0cnVjdCc6IFtdXG59O1xuIiwKICAgICJpbXBvcnQgeyBDSElMRF9SRVNPVVJDRVMgfSBmcm9tICcuL2NoaWxkLXJlc291cmNlcyc7XG5cbi8vIFByaXZhdGUgc3ltYm9scyBmb3IgaW50ZXJuYWwgbWV0aG9kcyAtIG5vdCBhY2Nlc3NpYmxlIGZyb20gb3V0c2lkZVxuLy8gVXNlIFN5bWJvbC5mb3IoKSBzbyBpdCBjYW4gYmUgYWNjZXNzZWQgYWNyb3NzIG1vZHVsZXMgKGNydWNpYWwgZm9yIG5wbSBwYWNrYWdlIGludGVyb3ApXG5jb25zdCBnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRQYXJhbVJlZmVyZW5jZScpO1xuY29uc3QgZ2V0VHlwZVN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRUeXBlJyk7XG5jb25zdCBnZXRQcm9wZXJ0aWVzU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmdldFByb3BlcnRpZXMnKTtcbmNvbnN0IGdldE92ZXJyaWRlc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTpnZXRPdmVycmlkZXMnKTtcbmNvbnN0IGdldFRyYW5zZm9ybXNTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0VHJhbnNmb3JtcycpO1xuY29uc3Qgc2V0UmVzb3VyY2VOYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOnNldFJlc291cmNlTmFtZScpO1xuY29uc3QgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc1Jlc291cmNlUGFyYW1SZWYnKTtcbmNvbnN0IGJhc2VUeXBlUHJvcGVydGllc1N5bWJvbCA9IFN5bWJvbC5mb3IoJ3N0YWNrdGFwZTppc0Jhc2VUeXBlUHJvcGVydGllcycpO1xuY29uc3QgYWxhcm1TeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6aXNBbGFybScpO1xuXG4vLyBEdWNrLXR5cGUgY2hlY2tlcnMgLSB1c2Ugc3ltYm9scyBpbnN0ZWFkIG9mIGluc3RhbmNlb2YgZm9yIGNyb3NzLW1vZHVsZSBjb21wYXRpYmlsaXR5XG5jb25zdCBpc0Jhc2VSZXNvdXJjZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIEJhc2VSZXNvdXJjZSA9PlxuICB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHNldFJlc291cmNlTmFtZVN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgaXNCYXNlVHlwZVByb3BlcnRpZXMgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBCYXNlVHlwZVByb3BlcnRpZXMgPT5cbiAgdmFsdWUgIT09IG51bGwgJiYgdHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiBiYXNlVHlwZVByb3BlcnRpZXNTeW1ib2wgaW4gdmFsdWU7XG5cbmNvbnN0IGlzQWxhcm0gPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBBbGFybSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIGFsYXJtU3ltYm9sIGluIHZhbHVlO1xuXG5jb25zdCBpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UgPSAodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgcmVzb3VyY2VQYXJhbVJlZlN5bWJvbCBpbiB2YWx1ZTtcblxuY29uc3QgZGVmZXJyZWROYW1lU3ltYm9sID0gU3ltYm9sLmZvcignc3RhY2t0YXBlOmlzRGVmZXJyZWRSZXNvdXJjZU5hbWUnKTtcblxuY29uc3QgaXNEZWZlcnJlZFJlc291cmNlTmFtZSA9ICh2YWx1ZTogdW5rbm93bik6IHZhbHVlIGlzIERlZmVycmVkUmVzb3VyY2VOYW1lID0+XG4gIHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgZGVmZXJyZWROYW1lU3ltYm9sIGluIHZhbHVlO1xuXG4vKipcbiAqIEEgZGVmZXJyZWQgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UncyBuYW1lLlxuICogVXNlZCB3aGVuIGFjY2Vzc2luZyByZXNvdXJjZU5hbWUgYmVmb3JlIHRoZSBuYW1lIGlzIHNldC5cbiAqIFJlc29sdmVzIGxhemlseSBkdXJpbmcgdHJhbnNmb3JtYXRpb24uXG4gKi9cbmNsYXNzIERlZmVycmVkUmVzb3VyY2VOYW1lIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHJlYWRvbmx5IFtkZWZlcnJlZE5hbWVTeW1ib2xdID0gdHJ1ZTtcblxuICBjb25zdHJ1Y3RvcihyZXNvdXJjZTogQmFzZVJlc291cmNlKSB7XG4gICAgdGhpcy5fX3Jlc291cmNlID0gcmVzb3VyY2U7XG4gIH1cblxuICByZXNvbHZlKCk6IHN0cmluZyB7XG4gICAgLy8gQXQgcmVzb2x1dGlvbiB0aW1lLCB0aGUgbmFtZSBzaG91bGQgYmUgc2V0XG4gICAgY29uc3QgbmFtZSA9ICh0aGlzLl9fcmVzb3VyY2UgYXMgYW55KS5fcmVzb3VyY2VOYW1lO1xuICAgIGlmIChuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ1Jlc291cmNlIG5hbWUgbm90IHNldC4gTWFrZSBzdXJlIHRvIGFkZCB0aGUgcmVzb3VyY2UgdG8gdGhlIHJlc291cmNlcyBvYmplY3QgaW4geW91ciBjb25maWcuICcgK1xuICAgICAgICAgICdUaGUgcmVzb3VyY2UgbmFtZSBpcyBhdXRvbWF0aWNhbGx5IGRlcml2ZWQgZnJvbSB0aGUgb2JqZWN0IGtleS4nXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gbmFtZTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdG9KU09OKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZSgpO1xuICB9XG5cbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmUoKTtcbiAgfVxufVxuXG4vKipcbiAqIEEgcmVmZXJlbmNlIHRvIGEgcmVzb3VyY2UgcGFyYW1ldGVyIHRoYXQgd2lsbCBiZSByZXNvbHZlZCBhdCBydW50aW1lLlxuICogU3RvcmVzIGEgcmVmZXJlbmNlIHRvIHRoZSByZXNvdXJjZSBmb3IgbGF6eSBuYW1lIHJlc29sdXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgcHJpdmF0ZSBfX3Jlc291cmNlOiBCYXNlUmVzb3VyY2U7XG4gIHByaXZhdGUgX19wYXJhbTogc3RyaW5nO1xuICByZWFkb25seSBbcmVzb3VyY2VQYXJhbVJlZlN5bWJvbF0gPSB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlOiBCYXNlUmVzb3VyY2UsIHBhcmFtOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9fcmVzb3VyY2UgPSByZXNvdXJjZTtcbiAgICB0aGlzLl9fcGFyYW0gPSBwYXJhbTtcbiAgfVxuXG4gIHRvU3RyaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAkUmVzb3VyY2VQYXJhbSgnJHt0aGlzLl9fcmVzb3VyY2UucmVzb3VyY2VOYW1lfScsICcke3RoaXMuX19wYXJhbX0nKWA7XG4gIH1cblxuICB0b0pTT04oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50b1N0cmluZygpO1xuICB9XG5cbiAgLy8gQWxsb3cgdGhlIHJlZmVyZW5jZSB0byBiZSB1c2VkIGRpcmVjdGx5IGluIHRlbXBsYXRlIHN0cmluZ3NcbiAgdmFsdWVPZigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnRvU3RyaW5nKCk7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0eXBlL3Byb3BlcnRpZXMgc3RydWN0dXJlcyAoZW5naW5lcywgcGFja2FnaW5nLCBldmVudHMsIGV0Yy4pXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVHlwZVByb3BlcnRpZXMge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvcGVydGllczogYW55O1xuICByZWFkb25seSBbYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnkpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNlIGNsYXNzIGZvciB0eXBlLW9ubHkgc3RydWN0dXJlcyAobm8gcHJvcGVydGllcyBmaWVsZCwganVzdCB0eXBlIGRpc2NyaW1pbmF0b3IpXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVHlwZU9ubHkge1xuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICByZWFkb25seSBbYmFzZVR5cGVQcm9wZXJ0aWVzU3ltYm9sXSA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IodHlwZTogc3RyaW5nKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgfVxufVxuXG4vKipcbiAqIERlZmluZXMgYSBDbG91ZFdhdGNoIGFsYXJtIHRoYXQgbW9uaXRvcnMgYSBtZXRyaWMgYW5kIHRyaWdnZXJzIG5vdGlmaWNhdGlvbnMgd2hlbiB0aHJlc2hvbGRzIGFyZSBicmVhY2hlZC5cbiAqXG4gKiBBbGFybXMgY2FuIGJlIGF0dGFjaGVkIHRvIHJlc291cmNlcyBsaWtlIExhbWJkYSBmdW5jdGlvbnMsIGRhdGFiYXNlcywgbG9hZCBiYWxhbmNlcnMsIFNRUyBxdWV1ZXMsIGFuZCBIVFRQIEFQSSBHYXRld2F5cy5cbiAqIFdoZW4gdGhlIGFsYXJtIGNvbmRpdGlvbiBpcyBtZXQgKGUuZy4sIGVycm9yIHJhdGUgZXhjZWVkcyA1JSksIG5vdGlmaWNhdGlvbnMgYXJlIHNlbnQgdG8gY29uZmlndXJlZCB0YXJnZXRzIChTbGFjaywgZW1haWwsIE1TIFRlYW1zKS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIG5ldyBBbGFybSh7XG4gKiAgIHRyaWdnZXI6IG5ldyBMYW1iZGFFcnJvclJhdGVUcmlnZ2VyKHsgdGhyZXNob2xkUGVyY2VudDogNSB9KSxcbiAqICAgZXZhbHVhdGlvbjogeyBwZXJpb2Q6IDYwLCBldmFsdWF0aW9uUGVyaW9kczogMywgYnJlYWNoZWRQZXJpb2RzOiAyIH0sXG4gKiAgIG5vdGlmaWNhdGlvblRhcmdldHM6IFt7IHNsYWNrOiB7IHVybDogJFNlY3JldCgnc2xhY2std2ViaG9vay11cmwnKSB9IH1dLFxuICogICBkZXNjcmlwdGlvbjogJ0xhbWJkYSBlcnJvciByYXRlIGV4Y2VlZGVkIDUlJ1xuICogfSlcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQWxhcm0ge1xuICByZWFkb25seSBbYWxhcm1TeW1ib2xdID0gdHJ1ZTtcbiAgcHVibGljIHJlYWRvbmx5IHRyaWdnZXI6IGFueTtcbiAgcHVibGljIHJlYWRvbmx5IGV2YWx1YXRpb24/OiBhbnk7XG4gIHB1YmxpYyByZWFkb25seSBub3RpZmljYXRpb25UYXJnZXRzPzogYW55W107XG4gIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogeyB0cmlnZ2VyOiBhbnk7IGV2YWx1YXRpb24/OiBhbnk7IG5vdGlmaWNhdGlvblRhcmdldHM/OiBhbnlbXTsgZGVzY3JpcHRpb24/OiBzdHJpbmcgfSkge1xuICAgIHRoaXMudHJpZ2dlciA9IHByb3BzLnRyaWdnZXI7XG4gICAgdGhpcy5ldmFsdWF0aW9uID0gcHJvcHMuZXZhbHVhdGlvbjtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblRhcmdldHMgPSBwcm9wcy5ub3RpZmljYXRpb25UYXJnZXRzO1xuICAgIHRoaXMuZGVzY3JpcHRpb24gPSBwcm9wcy5kZXNjcmlwdGlvbjtcbiAgfVxufVxuXG4vKipcbiAqIEJhc2UgcmVzb3VyY2UgY2xhc3MgdGhhdCBwcm92aWRlcyBjb21tb24gZnVuY3Rpb25hbGl0eVxuICovXG5leHBvcnQgY2xhc3MgQmFzZVJlc291cmNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHlwZTogc3RyaW5nO1xuICBwcml2YXRlIF9wcm9wZXJ0aWVzOiBhbnk7XG4gIHByaXZhdGUgX292ZXJyaWRlcz86IGFueTtcbiAgcHJpdmF0ZSBfdHJhbnNmb3Jtcz86IGFueTtcbiAgcHJpdmF0ZSBfcmVzb3VyY2VOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2V4cGxpY2l0TmFtZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsIHR5cGU6IHN0cmluZywgcHJvcGVydGllczogYW55LCBvdmVycmlkZXM/OiBhbnkpIHtcbiAgICB0aGlzLl9yZXNvdXJjZU5hbWUgPSBuYW1lO1xuICAgIHRoaXMuX2V4cGxpY2l0TmFtZSA9IG5hbWUgIT09IHVuZGVmaW5lZDtcbiAgICB0aGlzLl90eXBlID0gdHlwZTtcblxuICAgIC8vIFN0b3JlIHByb3BlcnRpZXMgYW5kIG92ZXJyaWRlcyBpbml0aWFsbHkgLSB0aGV5J2xsIGJlIHByb2Nlc3NlZCB3aGVuIG5hbWUgaXMgc2V0XG4gICAgdGhpcy5fcHJvcGVydGllcyA9IHByb3BlcnRpZXM7XG4gICAgdGhpcy5fb3ZlcnJpZGVzID0gb3ZlcnJpZGVzO1xuXG4gICAgLy8gSWYgbmFtZSBpcyBhbHJlYWR5IHNldCwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgbm93XG4gICAgaWYgKG5hbWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5fcHJvY2Vzc092ZXJyaWRlc0FuZFRyYW5zZm9ybXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXMgZXh0cmFjdGlvbiBmcm9tIHByb3BlcnRpZXMuXG4gICAqIENhbGxlZCB3aGVuIHRoZSByZXNvdXJjZSBuYW1lIGlzIGF2YWlsYWJsZS5cbiAgICovXG4gIHByaXZhdGUgX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk6IHZvaWQge1xuICAgIGNvbnN0IHByb3BlcnRpZXMgPSB0aGlzLl9wcm9wZXJ0aWVzO1xuICAgIGlmIChwcm9wZXJ0aWVzICYmIHR5cGVvZiBwcm9wZXJ0aWVzID09PSAnb2JqZWN0Jykge1xuICAgICAgLy8gQ2xvbmUgcHJvcGVydGllcyB3aXRob3V0IG92ZXJyaWRlcyBhbmQgdHJhbnNmb3Jtc1xuICAgICAgY29uc3QgZmluYWxQcm9wZXJ0aWVzID0geyAuLi5wcm9wZXJ0aWVzIH07XG5cbiAgICAgIC8vIEhhbmRsZSBvdmVycmlkZXMgZnJvbSBwcm9wZXJ0aWVzIChpZiB0aGV5IHdlcmVuJ3QgZXh0cmFjdGVkIGJ5IGNoaWxkIGNsYXNzKVxuICAgICAgaWYgKCdvdmVycmlkZXMnIGluIGZpbmFsUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzT3ZlcnJpZGVzID0gZmluYWxQcm9wZXJ0aWVzLm92ZXJyaWRlcztcbiAgICAgICAgZGVsZXRlIGZpbmFsUHJvcGVydGllcy5vdmVycmlkZXM7XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIG92ZXJyaWRlcyB1c2luZyBjZkxvZ2ljYWxOYW1lc1xuICAgICAgICBpZiAocHJvcGVydGllc092ZXJyaWRlcyAmJiB0eXBlb2YgcHJvcGVydGllc092ZXJyaWRlcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICB0aGlzLl9vdmVycmlkZXMgPSB0cmFuc2Zvcm1PdmVycmlkZXNUb0xvZ2ljYWxOYW1lcyh0aGlzLl9yZXNvdXJjZU5hbWUhLCB0aGlzLl90eXBlLCBwcm9wZXJ0aWVzT3ZlcnJpZGVzKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBIYW5kbGUgdHJhbnNmb3JtcyBmcm9tIHByb3BlcnRpZXMgKGlmIHRoZXkgd2VyZW4ndCBleHRyYWN0ZWQgYnkgY2hpbGQgY2xhc3MpXG4gICAgICBpZiAoJ3RyYW5zZm9ybXMnIGluIGZpbmFsUHJvcGVydGllcykge1xuICAgICAgICBjb25zdCBwcm9wZXJ0aWVzVHJhbnNmb3JtcyA9IGZpbmFsUHJvcGVydGllcy50cmFuc2Zvcm1zO1xuICAgICAgICBkZWxldGUgZmluYWxQcm9wZXJ0aWVzLnRyYW5zZm9ybXM7XG5cbiAgICAgICAgLy8gVHJhbnNmb3JtIHRyYW5zZm9ybXMgdXNpbmcgY2ZMb2dpY2FsTmFtZXMgKHNhbWUgbWFwcGluZyBhcyBvdmVycmlkZXMpXG4gICAgICAgIGlmIChwcm9wZXJ0aWVzVHJhbnNmb3JtcyAmJiB0eXBlb2YgcHJvcGVydGllc1RyYW5zZm9ybXMgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgdGhpcy5fdHJhbnNmb3JtcyA9IHRyYW5zZm9ybVRyYW5zZm9ybXNUb0xvZ2ljYWxOYW1lcyh0aGlzLl9yZXNvdXJjZU5hbWUhLCB0aGlzLl90eXBlLCBwcm9wZXJ0aWVzVHJhbnNmb3Jtcyk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5fcHJvcGVydGllcyA9IGZpbmFsUHJvcGVydGllcztcbiAgICB9XG5cbiAgICAvLyBBbHNvIHRyYW5zZm9ybSBvdmVycmlkZXMvdHJhbnNmb3JtcyB0aGF0IHdlcmUgcGFzc2VkIGRpcmVjdGx5IHZpYSBjb25zdHJ1Y3RvclxuICAgIC8vICh3aGVuIGNoaWxkIGNsYXNzIGV4dHJhY3RzIHRoZW0gYmVmb3JlIGNhbGxpbmcgc3VwZXIpXG4gICAgaWYgKHRoaXMuX292ZXJyaWRlcyAmJiB0eXBlb2YgdGhpcy5fb3ZlcnJpZGVzID09PSAnb2JqZWN0Jykge1xuICAgICAgdGhpcy5fb3ZlcnJpZGVzID0gdHJhbnNmb3JtT3ZlcnJpZGVzVG9Mb2dpY2FsTmFtZXModGhpcy5fcmVzb3VyY2VOYW1lISwgdGhpcy5fdHlwZSwgdGhpcy5fb3ZlcnJpZGVzKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX3RyYW5zZm9ybXMgJiYgdHlwZW9mIHRoaXMuX3RyYW5zZm9ybXMgPT09ICdvYmplY3QnKSB7XG4gICAgICB0aGlzLl90cmFuc2Zvcm1zID0gdHJhbnNmb3JtVHJhbnNmb3Jtc1RvTG9naWNhbE5hbWVzKHRoaXMuX3Jlc291cmNlTmFtZSEsIHRoaXMuX3R5cGUsIHRoaXMuX3RyYW5zZm9ybXMpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFB1YmxpYyBnZXR0ZXIgZm9yIHJlc291cmNlIG5hbWUgKHVzZWQgZm9yIHJlZmVyZW5jaW5nIHJlc291cmNlcylcbiAgLy8gUmV0dXJucyBhIGRlZmVycmVkIHJlZmVyZW5jZSB3aGVuIG5hbWUgaXNuJ3Qgc2V0IHlldCwgd2hpY2ggcmVzb2x2ZXMgZHVyaW5nIHRyYW5zZm9ybWF0aW9uXG4gIGdldCByZXNvdXJjZU5hbWUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIC8vIFJldHVybiBhIGRlZmVycmVkIHJlZmVyZW5jZSB0aGF0IHdpbGwgcmVzb2x2ZSBkdXJpbmcgdHJhbnNmb3JtYXRpb25cbiAgICAgIC8vIFR5cGVTY3JpcHQgc2VlcyB0aGlzIGFzIHN0cmluZyBkdWUgdG8gdG9TdHJpbmcvdmFsdWVPZiwgcnVudGltZSByZXNvbHZlcyBsYXppbHlcbiAgICAgIHJldHVybiBuZXcgRGVmZXJyZWRSZXNvdXJjZU5hbWUodGhpcykgYXMgdW5rbm93biBhcyBzdHJpbmc7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZU5hbWU7XG4gIH1cblxuICAvKipcbiAgICogSW50ZXJuYWwgbWV0aG9kIHRvIHNldCB0aGUgcmVzb3VyY2UgbmFtZSBmcm9tIHRoZSBvYmplY3Qga2V5LlxuICAgKiBDYWxsZWQgYnkgdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcy5cbiAgICovXG4gIFtzZXRSZXNvdXJjZU5hbWVTeW1ib2xdKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9leHBsaWNpdE5hbWUgJiYgdGhpcy5fcmVzb3VyY2VOYW1lICE9PSBuYW1lKSB7XG4gICAgICAvLyBJZiBhbiBleHBsaWNpdCBuYW1lIHdhcyBwcm92aWRlZCBhbmQgaXQgZGlmZmVycyBmcm9tIHRoZSBrZXksIHVzZSB0aGUgZXhwbGljaXQgbmFtZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fcmVzb3VyY2VOYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX3Jlc291cmNlTmFtZSA9IG5hbWU7XG4gICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGEgbmFtZSwgcHJvY2VzcyBvdmVycmlkZXMgYW5kIHRyYW5zZm9ybXNcbiAgICAgIHRoaXMuX3Byb2Nlc3NPdmVycmlkZXNBbmRUcmFuc2Zvcm1zKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gUHJpdmF0ZSBtZXRob2RzIHVzaW5nIHN5bWJvbHMgLSBub3QgYWNjZXNzaWJsZSBmcm9tIG91dHNpZGUgb3IgaW4gYXV0b2NvbXBsZXRlXG4gIFtnZXRQYXJhbVJlZmVyZW5jZVN5bWJvbF0ocGFyYW1OYW1lOiBzdHJpbmcpOiBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlIHtcbiAgICByZXR1cm4gbmV3IFJlc291cmNlUGFyYW1SZWZlcmVuY2UodGhpcywgcGFyYW1OYW1lKTtcbiAgfVxuXG4gIFtnZXRUeXBlU3ltYm9sXSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90eXBlO1xuICB9XG5cbiAgW2dldFByb3BlcnRpZXNTeW1ib2xdKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuX3Byb3BlcnRpZXM7XG4gIH1cblxuICBbZ2V0T3ZlcnJpZGVzU3ltYm9sXSgpOiBhbnkgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLl9vdmVycmlkZXM7XG4gIH1cblxuICBbZ2V0VHJhbnNmb3Jtc1N5bWJvbF0oKTogYW55IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmb3JtcztcbiAgfVxufVxuXG4vKipcbiAqIEZsYXR0ZW4gbmVzdGVkIG9iamVjdHMgaW50byBkb3Qtbm90YXRpb24gcGF0aHMuXG4gKiBFLmcuLCB7IFNtc0NvbmZpZ3VyYXRpb246IHsgRXh0ZXJuYWxJZDogJ3ZhbHVlJyB9IH0gYmVjb21lcyB7ICdTbXNDb25maWd1cmF0aW9uLkV4dGVybmFsSWQnOiAndmFsdWUnIH1cbiAqIFByZXNlcnZlcyBhcnJheXMgYW5kIG5vbi1wbGFpbiBvYmplY3RzIGFzIGxlYWYgdmFsdWVzLlxuICovXG5mdW5jdGlvbiBmbGF0dGVuVG9Eb3ROb3RhdGlvbihvYmo6IGFueSwgcHJlZml4ID0gJycpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHtcbiAgY29uc3QgcmVzdWx0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG5cbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqKSB7XG4gICAgY29uc3QgdmFsdWUgPSBvYmpba2V5XTtcbiAgICBjb25zdCBuZXdLZXkgPSBwcmVmaXggPyBgJHtwcmVmaXh9LiR7a2V5fWAgOiBrZXk7XG5cbiAgICAvLyBDaGVjayBpZiB2YWx1ZSBpcyBhIHBsYWluIG9iamVjdCAobm90IGFycmF5LCBub3QgbnVsbCwgbm90IHNwZWNpYWwgdHlwZXMpXG4gICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgIUFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmNvbnN0cnVjdG9yID09PSBPYmplY3QpIHtcbiAgICAgIC8vIFJlY3Vyc2l2ZWx5IGZsYXR0ZW4gbmVzdGVkIG9iamVjdHNcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVzdWx0LCBmbGF0dGVuVG9Eb3ROb3RhdGlvbih2YWx1ZSwgbmV3S2V5KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIExlYWYgdmFsdWUgLSBrZWVwIGFzIGlzXG4gICAgICByZXN1bHRbbmV3S2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogVHJhbnNmb3JtIHVzZXItZnJpZW5kbHkgb3ZlcnJpZGVzICh3aXRoIHByb3BlcnR5IG5hbWVzIGxpa2UgJ2J1Y2tldCcsICdsYW1iZGFMb2dHcm91cCcpXG4gKiB0byBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVzIHVzaW5nIGNmTG9naWNhbE5hbWVzXG4gKi9cbmZ1bmN0aW9uIHRyYW5zZm9ybU92ZXJyaWRlc1RvTG9naWNhbE5hbWVzKHJlc291cmNlTmFtZTogc3RyaW5nLCByZXNvdXJjZVR5cGU6IHN0cmluZywgb3ZlcnJpZGVzOiBhbnkpOiBhbnkge1xuICAvLyBHZXQgY2hpbGQgcmVzb3VyY2VzIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgY29uc3QgY2hpbGRSZXNvdXJjZXMgPSBDSElMRF9SRVNPVVJDRVNbcmVzb3VyY2VUeXBlXSB8fCBbXTtcblxuICAvLyBCdWlsZCBhIG1hcCBvZiBwcm9wZXJ0eSBuYW1lcyB0byBjaGlsZCByZXNvdXJjZXNcbiAgY29uc3QgcHJvcGVydHlOYW1lTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICBmb3IgKGNvbnN0IGNoaWxkUmVzb3VyY2Ugb2YgY2hpbGRSZXNvdXJjZXMpIHtcbiAgICAvLyBUaGUgbG9naWNhbE5hbWUgZnVuY3Rpb24gaGFzIGEgbmFtZSBwcm9wZXJ0eSB0aGF0IG1hdGNoZXMgdGhlIHByb3BlcnR5IG5hbWVcbiAgICBpZiAoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZSAmJiBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUpIHtcbiAgICAgIHByb3BlcnR5TmFtZU1hcC5zZXQoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lLCBjaGlsZFJlc291cmNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gb3ZlcnJpZGVzIG9iamVjdFxuICBjb25zdCB0cmFuc2Zvcm1lZE92ZXJyaWRlczogYW55ID0ge307XG4gIGNvbnN0IGVycm9yTWVzc2FnZSA9IGBPdmVycmlkZSBvZiBwcm9wZXJ0eSB7cHJvcGVydHlOYW1lfSBvZiByZXNvdXJjZSAke3Jlc291cmNlTmFtZX0gaXMgbm90IHN1cHBvcnRlZC5cXG5cblJlbW92ZSB0aGUgb3ZlcnJpZGUsIHJ1biAnc3RhY2t0YXBlIGNvbXBpbGU6dGVtcGxhdGUnIGNvbW1hbmQsIGFuZCBmaW5kIHRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIHJlc291cmNlIHlvdSB3YW50IHRvIG92ZXJyaWRlIG1hbnVhbGx5LiBUaGVuIGFkZCBpdCB0byB0aGUgb3ZlcnJpZGVzIG9iamVjdC5gO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIG92ZXJyaWRlcykge1xuICAgIGNvbnN0IGNoaWxkUmVzb3VyY2UgPSBwcm9wZXJ0eU5hbWVNYXAuZ2V0KHByb3BlcnR5TmFtZSk7XG5cbiAgICAvLyBTa2lwIHVucmVzb2x2YWJsZSByZXNvdXJjZXNcbiAgICBpZiAoY2hpbGRSZXNvdXJjZT8udW5yZXNvbHZhYmxlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgfVxuXG4gICAgaWYgKGNoaWxkUmVzb3VyY2UpIHtcbiAgICAgIGNvbnN0IGxvZ2ljYWxOYW1lRm4gPSBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lO1xuICAgICAgLy8gQ2FsbCB0aGUgY2ZMb2dpY2FsTmFtZXMgZnVuY3Rpb24gdG8gZ2V0IHRoZSBhY3R1YWwgQ2xvdWRGb3JtYXRpb24gbG9naWNhbCBuYW1lXG4gICAgICAvLyBUcnkgd2l0aCByZXNvdXJjZU5hbWUgZmlyc3QgKG1vc3QgY29tbW9uKSwgdGhlbiB0cnkgd2l0aG91dCBhcmd1bWVudHNcbiAgICAgIGxldCBsb2dpY2FsTmFtZTogc3RyaW5nO1xuICAgICAgdHJ5IHtcbiAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKHJlc291cmNlTmFtZSk7XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IGxvZ2ljYWxOYW1lRm4oKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gSWYgYm90aCBmYWlsLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pc1xuICAgICAgICAgIGxvZ2ljYWxOYW1lID0gcHJvcGVydHlOYW1lO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAobG9naWNhbE5hbWUuaW5jbHVkZXMoJ3VuZGVmaW5lZCcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UucmVwbGFjZSgne3Byb3BlcnR5TmFtZX0nLCBwcm9wZXJ0eU5hbWUpKTtcbiAgICAgIH1cbiAgICAgIC8vIFdoZW4gdXNpbmcgU0RLIHByb3BlcnR5IG5hbWVzLCBmbGF0dGVuIG5lc3RlZCBvYmplY3RzIHRvIGRvdC1ub3RhdGlvblxuICAgICAgLy8gc28geyBTbXNDb25maWd1cmF0aW9uOiB7IEV4dGVybmFsSWQ6ICd4JyB9IH0gYmVjb21lcyB7ICdTbXNDb25maWd1cmF0aW9uLkV4dGVybmFsSWQnOiAneCcgfVxuICAgICAgY29uc3Qgb3ZlcnJpZGVWYWx1ZSA9IG92ZXJyaWRlc1twcm9wZXJ0eU5hbWVdO1xuICAgICAgaWYgKCF0cmFuc2Zvcm1lZE92ZXJyaWRlc1tsb2dpY2FsTmFtZV0pIHtcbiAgICAgICAgdHJhbnNmb3JtZWRPdmVycmlkZXNbbG9naWNhbE5hbWVdID0ge307XG4gICAgICB9XG4gICAgICBPYmplY3QuYXNzaWduKHRyYW5zZm9ybWVkT3ZlcnJpZGVzW2xvZ2ljYWxOYW1lXSwgZmxhdHRlblRvRG90Tm90YXRpb24ob3ZlcnJpZGVWYWx1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBub3QgZm91bmQgaW4gbWFwLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pcyAoQ0YgbG9naWNhbCBuYW1lIHVzZWQgZGlyZWN0bHkpXG4gICAgICAvLyBEb24ndCBmbGF0dGVuIC0gdXNlciBpcyB1c2luZyBDRiBsb2dpY2FsIG5hbWVzIGFuZCBtYXkgd2FudCBmdWxsIG9iamVjdCByZXBsYWNlbWVudFxuICAgICAgdHJhbnNmb3JtZWRPdmVycmlkZXNbcHJvcGVydHlOYW1lXSA9IG92ZXJyaWRlc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZE92ZXJyaWRlcztcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gdXNlci1mcmllbmRseSB0cmFuc2Zvcm1zICh3aXRoIHByb3BlcnR5IG5hbWVzIGxpa2UgJ2xhbWJkYScsICdsYW1iZGFMb2dHcm91cCcpXG4gKiB0byBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIG5hbWVzIHVzaW5nIGNmTG9naWNhbE5hbWVzXG4gKiBTaW1pbGFyIHRvIG92ZXJyaWRlcyBidXQgdGhlIHZhbHVlcyBhcmUgZnVuY3Rpb25zIGluc3RlYWQgb2Ygb2JqZWN0c1xuICovXG5mdW5jdGlvbiB0cmFuc2Zvcm1UcmFuc2Zvcm1zVG9Mb2dpY2FsTmFtZXMocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlc291cmNlVHlwZTogc3RyaW5nLCB0cmFuc2Zvcm1zOiBhbnkpOiBhbnkge1xuICAvLyBHZXQgY2hpbGQgcmVzb3VyY2VzIGZvciB0aGlzIHJlc291cmNlIHR5cGVcbiAgY29uc3QgY2hpbGRSZXNvdXJjZXMgPSBDSElMRF9SRVNPVVJDRVNbcmVzb3VyY2VUeXBlXSB8fCBbXTtcblxuICAvLyBCdWlsZCBhIG1hcCBvZiBwcm9wZXJ0eSBuYW1lcyB0byBjaGlsZCByZXNvdXJjZXNcbiAgY29uc3QgcHJvcGVydHlOYW1lTWFwID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICBmb3IgKGNvbnN0IGNoaWxkUmVzb3VyY2Ugb2YgY2hpbGRSZXNvdXJjZXMpIHtcbiAgICAvLyBUaGUgbG9naWNhbE5hbWUgZnVuY3Rpb24gaGFzIGEgbmFtZSBwcm9wZXJ0eSB0aGF0IG1hdGNoZXMgdGhlIHByb3BlcnR5IG5hbWVcbiAgICBpZiAoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZSAmJiBjaGlsZFJlc291cmNlLmxvZ2ljYWxOYW1lLm5hbWUpIHtcbiAgICAgIHByb3BlcnR5TmFtZU1hcC5zZXQoY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZS5uYW1lLCBjaGlsZFJlc291cmNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gdHJhbnNmb3JtcyBvYmplY3RcbiAgY29uc3QgdHJhbnNmb3JtZWRUcmFuc2Zvcm1zOiBhbnkgPSB7fTtcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gYFRyYW5zZm9ybSBvZiBwcm9wZXJ0eSB7cHJvcGVydHlOYW1lfSBvZiByZXNvdXJjZSAke3Jlc291cmNlTmFtZX0gaXMgbm90IHN1cHBvcnRlZC5cXG5cblJlbW92ZSB0aGUgdHJhbnNmb3JtLCBydW4gJ3N0YWNrdGFwZSBjb21waWxlOnRlbXBsYXRlJyBjb21tYW5kLCBhbmQgZmluZCB0aGUgbG9naWNhbCBuYW1lIG9mIHRoZSByZXNvdXJjZSB5b3Ugd2FudCB0byB0cmFuc2Zvcm0gbWFudWFsbHkuIFRoZW4gYWRkIGl0IHRvIHRoZSB0cmFuc2Zvcm1zIG9iamVjdC5gO1xuXG4gIGZvciAoY29uc3QgcHJvcGVydHlOYW1lIGluIHRyYW5zZm9ybXMpIHtcbiAgICBjb25zdCBjaGlsZFJlc291cmNlID0gcHJvcGVydHlOYW1lTWFwLmdldChwcm9wZXJ0eU5hbWUpO1xuXG4gICAgLy8gU2tpcCB1bnJlc29sdmFibGUgcmVzb3VyY2VzXG4gICAgaWYgKGNoaWxkUmVzb3VyY2U/LnVucmVzb2x2YWJsZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZS5yZXBsYWNlKCd7cHJvcGVydHlOYW1lfScsIHByb3BlcnR5TmFtZSkpO1xuICAgIH1cblxuICAgIGlmIChjaGlsZFJlc291cmNlKSB7XG4gICAgICBjb25zdCBsb2dpY2FsTmFtZUZuID0gY2hpbGRSZXNvdXJjZS5sb2dpY2FsTmFtZTtcbiAgICAgIC8vIENhbGwgdGhlIGNmTG9naWNhbE5hbWVzIGZ1bmN0aW9uIHRvIGdldCB0aGUgYWN0dWFsIENsb3VkRm9ybWF0aW9uIGxvZ2ljYWwgbmFtZVxuICAgICAgLy8gVHJ5IHdpdGggcmVzb3VyY2VOYW1lIGZpcnN0IChtb3N0IGNvbW1vbiksIHRoZW4gdHJ5IHdpdGhvdXQgYXJndW1lbnRzXG4gICAgICBsZXQgbG9naWNhbE5hbWU6IHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvZ2ljYWxOYW1lID0gbG9naWNhbE5hbWVGbihyZXNvdXJjZU5hbWUpO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9naWNhbE5hbWUgPSBsb2dpY2FsTmFtZUZuKCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIElmIGJvdGggZmFpbCwgdXNlIHByb3BlcnR5IG5hbWUgYXMtaXNcbiAgICAgICAgICBsb2dpY2FsTmFtZSA9IHByb3BlcnR5TmFtZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGxvZ2ljYWxOYW1lLmluY2x1ZGVzKCd1bmRlZmluZWQnKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlLnJlcGxhY2UoJ3twcm9wZXJ0eU5hbWV9JywgcHJvcGVydHlOYW1lKSk7XG4gICAgICB9XG4gICAgICB0cmFuc2Zvcm1lZFRyYW5zZm9ybXNbbG9naWNhbE5hbWVdID0gdHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBJZiBub3QgZm91bmQgaW4gbWFwLCB1c2UgcHJvcGVydHkgbmFtZSBhcy1pcyAoc2hvdWxkbid0IGhhcHBlbiB3aXRoIHByb3BlciB0eXBlcylcbiAgICAgIHRyYW5zZm9ybWVkVHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdID0gdHJhbnNmb3Jtc1twcm9wZXJ0eU5hbWVdO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB0cmFuc2Zvcm1lZFRyYW5zZm9ybXM7XG59XG5cbmV4cG9ydCB0eXBlIEdldENvbmZpZ1BhcmFtcyA9IHtcbiAgLyoqXG4gICAqIFByb2plY3QgbmFtZSB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKi9cbiAgcHJvamVjdE5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFN0YWdlIChcImVudmlyb25tZW50XCIpIHVzZWQgZm9yIHRoaXMgb3BlcmF0aW9uXG4gICAqL1xuICBzdGFnZTogc3RyaW5nO1xuICAvKipcbiAgICogQVdTIHJlZ2lvbiB1c2VkIGZvciB0aGlzIG9wZXJhdGlvblxuICAgKiBUaGUgbGlzdCBvZiBhdmFpbGFibGUgcmVnaW9ucyBpcyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cuYXdzLXNlcnZpY2VzLmluZm8vcmVnaW9ucy5odG1sXG4gICAqL1xuICByZWdpb246IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb3BlcmF0aW9uXG4gICAqL1xuICBjbGlBcmdzOiBTdGFja3RhcGVBcmdzO1xuICAvKipcbiAgICogU3RhY2t0YXBlIGNvbW1hbmQgdXNlZCB0byBwZXJmb3JtIHRoaXMgb3BlcmF0aW9uIChjYW4gYmUgZWl0aGVyIGRlcGxveSwgY29kZWJ1aWxkOmRlcGxveSwgZGVsZXRlLCBldGMuKVxuICAgKi9cbiAgY29tbWFuZDogc3RyaW5nO1xuICAvKipcbiAgICogTG9jYWxseS1jb25maWd1cmVkIEFXUyBwcm9maWxlIHVzZWQgdG8gZXhlY3V0ZSB0aGUgb3BlcmF0aW9uLlxuICAgKiBEb2Vzbid0IGFwcGx5IGlmIHlvdSBoYXZlIHlvdXIgQVdTIGFjY291bnQgY29ubmVjdGVkIGluIFwiYXV0b21hdGljXCIgbW9kZS5cbiAgICovXG4gIGF3c1Byb2ZpbGU6IHN0cmluZztcbiAgLyoqXG4gICAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSB1c2VyIHBlcmZvcm1pbmcgdGhlIHN0YWNrIG9wZXJhdGlvblxuICAgKi9cbiAgdXNlcjoge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIGVtYWlsOiBzdHJpbmc7XG4gIH07XG59O1xuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byBkZWZpbmUgYSBjb25maWcgd2l0aCBhdXRvbWF0aWMgdHJhbnNmb3JtYXRpb25cbiAqIFVzZSB0aGlzIHdoZW4gZXhwb3J0aW5nIHlvdXIgY29uZmlnIGZvciB0aGUgU3RhY2t0YXBlIENMSVxuICovXG5leHBvcnQgY29uc3QgZGVmaW5lQ29uZmlnID0gKGNvbmZpZ0ZuOiAocGFyYW1zOiBHZXRDb25maWdQYXJhbXMpID0+IFN0YWNrdGFwZUNvbmZpZykgPT4ge1xuICByZXR1cm4gKHBhcmFtczogR2V0Q29uZmlnUGFyYW1zKSA9PiB7XG4gICAgY29uc3QgY29uZmlnID0gY29uZmlnRm4ocGFyYW1zKTtcbiAgICByZXR1cm4gdHJhbnNmb3JtQ29uZmlnV2l0aFJlc291cmNlcyhjb25maWcpO1xuICB9O1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgY29uZmlnIHdpdGggcmVzb3VyY2UgaW5zdGFuY2VzIGludG8gYSBwbGFpbiBjb25maWcgb2JqZWN0XG4gKi9cbmV4cG9ydCBjb25zdCB0cmFuc2Zvcm1Db25maWdXaXRoUmVzb3VyY2VzID0gKGNvbmZpZzogYW55KTogYW55ID0+IHtcbiAgaWYgKCFjb25maWcgfHwgdHlwZW9mIGNvbmZpZyAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG5cbiAgLy8gRmlyc3QgcGFzczogc2V0IGFsbCByZXNvdXJjZSBuYW1lcyBmcm9tIG9iamVjdCBrZXlzXG4gIC8vIFRoaXMgbXVzdCBoYXBwZW4gYmVmb3JlIGFueSB0cmFuc2Zvcm1hdGlvbiBzbyB0aGF0IFJlc291cmNlUGFyYW1SZWZlcmVuY2VzIGNhbiByZXNvbHZlIG5hbWVzXG4gIGlmIChjb25maWcucmVzb3VyY2VzICYmIHR5cGVvZiBjb25maWcucmVzb3VyY2VzID09PSAnb2JqZWN0Jykge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGNvbmZpZy5yZXNvdXJjZXMpIHtcbiAgICAgIGNvbnN0IHJlc291cmNlID0gY29uZmlnLnJlc291cmNlc1trZXldO1xuICAgICAgaWYgKGlzQmFzZVJlc291cmNlKHJlc291cmNlKSkge1xuICAgICAgICAocmVzb3VyY2UgYXMgYW55KVtzZXRSZXNvdXJjZU5hbWVTeW1ib2xdKGtleSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gU2Vjb25kIHBhc3M6IHRyYW5zZm9ybSB0aGUgY29uZmlnXG4gIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gIGZvciAoY29uc3Qga2V5IGluIGNvbmZpZykge1xuICAgIGlmIChrZXkgPT09ICdyZXNvdXJjZXMnKSB7XG4gICAgICAvLyBSZXNvdXJjZXMgYXJlIHRyYW5zZm9ybWVkIGFzIGRlZmluaXRpb25zXG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVJlc291cmNlRGVmaW5pdGlvbnMoY29uZmlnW2tleV0pO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnc2NyaXB0cycpIHtcbiAgICAgIC8vIFNjcmlwdHMgYXJlIGFsc28gdHJhbnNmb3JtZWQgYXMgZGVmaW5pdGlvbnNcbiAgICAgIHJlc3VsdFtrZXldID0gdHJhbnNmb3JtU2NyaXB0RGVmaW5pdGlvbnMoY29uZmlnW2tleV0pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybVZhbHVlKGNvbmZpZ1trZXldKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn07XG5cbi8qKlxuICogVHJhbnNmb3JtcyBlbnZpcm9ubWVudCBvYmplY3QgdG8gYXJyYXkgZm9ybWF0XG4gKi9cbmNvbnN0IHRyYW5zZm9ybUVudmlyb25tZW50ID0gKGVudjogYW55KTogYW55ID0+IHtcbiAgaWYgKCFlbnYgfHwgdHlwZW9mIGVudiAhPT0gJ29iamVjdCcgfHwgQXJyYXkuaXNBcnJheShlbnYpKSB7XG4gICAgcmV0dXJuIGVudjtcbiAgfVxuXG4gIC8vIENvbnZlcnQgeyBLRVk6IHZhbHVlIH0gdG8gW3sgbmFtZTogJ0tFWScsIHZhbHVlIH1dXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhlbnYpLm1hcCgoW25hbWUsIHZhbHVlXSkgPT4gKHtcbiAgICBuYW1lLFxuICAgIHZhbHVlOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZSlcbiAgfSkpO1xufTtcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIHJlc291cmNlIGRlZmluaXRpb25zICh2YWx1ZXMgaW4gdGhlIHJlc291cmNlcyBvYmplY3QpXG4gKi9cbmNvbnN0IHRyYW5zZm9ybVJlc291cmNlRGVmaW5pdGlvbnMgPSAocmVzb3VyY2VzOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIXJlc291cmNlcyB8fCB0eXBlb2YgcmVzb3VyY2VzICE9PSAnb2JqZWN0Jykge1xuICAgIHJldHVybiByZXNvdXJjZXM7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiByZXNvdXJjZXMpIHtcbiAgICBjb25zdCByZXNvdXJjZSA9IHJlc291cmNlc1trZXldO1xuICAgIGlmIChpc0Jhc2VSZXNvdXJjZShyZXNvdXJjZSkpIHtcbiAgICAgIGNvbnN0IHR5cGUgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRUeXBlU3ltYm9sXSgpO1xuICAgICAgY29uc3QgcHJvcGVydGllcyA9IChyZXNvdXJjZSBhcyBhbnkpW2dldFByb3BlcnRpZXNTeW1ib2xdKCk7XG4gICAgICBjb25zdCBvdmVycmlkZXMgPSAocmVzb3VyY2UgYXMgYW55KVtnZXRPdmVycmlkZXNTeW1ib2xdKCk7XG4gICAgICBjb25zdCB0cmFuc2Zvcm1zID0gKHJlc291cmNlIGFzIGFueSlbZ2V0VHJhbnNmb3Jtc1N5bWJvbF0oKTtcbiAgICAgIHJlc3VsdFtrZXldID0ge1xuICAgICAgICB0eXBlLFxuICAgICAgICBwcm9wZXJ0aWVzOiB0cmFuc2Zvcm1WYWx1ZShwcm9wZXJ0aWVzKSxcbiAgICAgICAgLi4uKG92ZXJyaWRlcyAhPT0gdW5kZWZpbmVkICYmIHsgb3ZlcnJpZGVzOiB0cmFuc2Zvcm1WYWx1ZShvdmVycmlkZXMpIH0pLFxuICAgICAgICAuLi4odHJhbnNmb3JtcyAhPT0gdW5kZWZpbmVkICYmIHsgdHJhbnNmb3JtcyB9KVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShyZXNvdXJjZSk7XG4gICAgfVxuICB9XG4gIHJldHVybiByZXN1bHQ7XG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgc2NyaXB0IGRlZmluaXRpb25zICh2YWx1ZXMgaW4gdGhlIHNjcmlwdHMgb2JqZWN0KVxuICovXG5jb25zdCB0cmFuc2Zvcm1TY3JpcHREZWZpbml0aW9ucyA9IChzY3JpcHRzOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAoIXNjcmlwdHMgfHwgdHlwZW9mIHNjcmlwdHMgIT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIHNjcmlwdHM7XG4gIH1cblxuICBjb25zdCByZXN1bHQ6IGFueSA9IHt9O1xuICBmb3IgKGNvbnN0IGtleSBpbiBzY3JpcHRzKSB7XG4gICAgY29uc3Qgc2NyaXB0ID0gc2NyaXB0c1trZXldO1xuICAgIGlmIChpc0Jhc2VUeXBlUHJvcGVydGllcyhzY3JpcHQpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IHtcbiAgICAgICAgdHlwZTogc2NyaXB0LnR5cGUsXG4gICAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHNjcmlwdC5wcm9wZXJ0aWVzKVxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZShzY3JpcHQpO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcblxuZXhwb3J0IGNvbnN0IHRyYW5zZm9ybVZhbHVlID0gKHZhbHVlOiBhbnkpOiBhbnkgPT4ge1xuICBpZiAodmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBEZWZlcnJlZFJlc291cmNlTmFtZSAtIHJlc29sdmUgdG8gYWN0dWFsIG5hbWVcbiAgaWYgKGlzRGVmZXJyZWRSZXNvdXJjZU5hbWUodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBSZXNvdXJjZVBhcmFtUmVmZXJlbmNlXG4gIGlmIChpc1Jlc291cmNlUGFyYW1SZWZlcmVuY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKCk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gQmFzZVJlc291cmNlIHJlZmVyZW5jZXMgKG5vdCBkZWZpbml0aW9ucykgdG8gcmVzb3VyY2VOYW1lXG4gIC8vIFRoaXMgaGFuZGxlcyBjYXNlcyBsaWtlIGNvbm5lY3RUbzogW2RhdGFiYXNlXVxuICBpZiAoaXNCYXNlUmVzb3VyY2UodmFsdWUpKSB7XG4gICAgcmV0dXJuIHZhbHVlLnJlc291cmNlTmFtZTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBCYXNlVHlwZVByb3BlcnRpZXMgKGVuZ2luZXMsIHBhY2thZ2luZywgZXZlbnRzKSB0byBwbGFpbiBvYmplY3RcbiAgaWYgKGlzQmFzZVR5cGVQcm9wZXJ0aWVzKHZhbHVlKSkge1xuICAgIC8vIEhhbmRsZSB0eXBlLW9ubHkgY2xhc3NlcyAobm8gcHJvcGVydGllcylcbiAgICBpZiAoISgncHJvcGVydGllcycgaW4gdmFsdWUpIHx8IHZhbHVlLnByb3BlcnRpZXMgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHsgdHlwZTogdmFsdWUudHlwZSB9O1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgdHlwZTogdmFsdWUudHlwZSxcbiAgICAgIHByb3BlcnRpZXM6IHRyYW5zZm9ybVZhbHVlKHZhbHVlLnByb3BlcnRpZXMpXG4gICAgfTtcbiAgfVxuXG4gIC8vIFRyYW5zZm9ybSBBbGFybSBjbGFzcyB0byBwbGFpbiBvYmplY3RcbiAgaWYgKGlzQWxhcm0odmFsdWUpKSB7XG4gICAgY29uc3QgcmVzdWx0OiBhbnkgPSB7XG4gICAgICB0cmlnZ2VyOiB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS50cmlnZ2VyKVxuICAgIH07XG4gICAgaWYgKHZhbHVlLmV2YWx1YXRpb24gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0LmV2YWx1YXRpb24gPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5ldmFsdWF0aW9uKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLm5vdGlmaWNhdGlvblRhcmdldHMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVzdWx0Lm5vdGlmaWNhdGlvblRhcmdldHMgPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZS5ub3RpZmljYXRpb25UYXJnZXRzKTtcbiAgICB9XG4gICAgaWYgKHZhbHVlLmRlc2NyaXB0aW9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJlc3VsdC5kZXNjcmlwdGlvbiA9IHZhbHVlLmRlc2NyaXB0aW9uO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGFycmF5c1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gdmFsdWUubWFwKChpdGVtKSA9PiB7XG4gICAgICAvLyBJZiBpdCdzIGEgcmVzb3VyY2UgaW5zdGFuY2UgaW4gYW4gYXJyYXkgKGUuZy4sIGNvbm5lY3RUbyksIHRyYW5zZm9ybSB0byByZXNvdXJjZU5hbWVcbiAgICAgIGlmIChpc0Jhc2VSZXNvdXJjZShpdGVtKSkge1xuICAgICAgICByZXR1cm4gaXRlbS5yZXNvdXJjZU5hbWU7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJhbnNmb3JtVmFsdWUoaXRlbSk7XG4gICAgfSk7XG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gb2JqZWN0c1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG4gICAgZm9yIChjb25zdCBrZXkgaW4gdmFsdWUpIHtcbiAgICAgIC8vIFNwZWNpYWwgaGFuZGxpbmcgZm9yIGVudmlyb25tZW50IGFuZCBpbmplY3RFbnZpcm9ubWVudCBwcm9wZXJ0aWVzXG4gICAgICBpZiAoa2V5ID09PSAnZW52aXJvbm1lbnQnIHx8IGtleSA9PT0gJ2luamVjdEVudmlyb25tZW50Jykge1xuICAgICAgICByZXN1bHRba2V5XSA9IHRyYW5zZm9ybUVudmlyb25tZW50KHZhbHVlW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSB0cmFuc2Zvcm1WYWx1ZSh2YWx1ZVtrZXldKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHJldHVybiB2YWx1ZTtcbn07XG4iLAogICAgIi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHJlc291cmNlIHBhcmFtZXRlci5cbiAqIEBwYXJhbSByZXNvdXJjZU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgYXMgc3BlY2lmaWVkIGluIHRoZSBTdGFja3RhcGUgY29uZmlnLlxuICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHByb3BlcnR5IG9mIHRoZSByZXNvdXJjZS4gVGhlIGxpc3Qgb2YgcHJvcGVydGllcyBpcyBhdmFpbGFibGUgaW4gdGhlIFN0YWNrdGFwZSBkb2NzIGZvciBldmVyeSBnaXZlbiByZXNvdXJjZSB0eXBlLlxuICovXG5leHBvcnQgY29uc3QgJFJlc291cmNlUGFyYW0gPSAocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHByb3BlcnR5OiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkUmVzb3VyY2VQYXJhbSgnJHtyZXNvdXJjZU5hbWV9JywnJHtwcm9wZXJ0eX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gYSBDbG91ZEZvcm1hdGlvbiByZXNvdXJjZSBwYXJhbWV0ZXIuXG4gKiBAcGFyYW0gY2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZCAtIFRoZSBsb2dpY2FsIG5hbWUgb2YgdGhlIENsb3VkZm9ybWF0aW9uIHJlc291cmNlLlxuICogSWYgeW91IGFyZSByZWZlcmVuY2luZyBhIHJlc291cmNlIGRlZmluZWQgaW4gdGhlIGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VzIHNlY3Rpb24sIHVzZSBpdHMgbmFtZS5cbiAqIFRvIHJlZmVyZW5jZSBhIGNoaWxkIHJlc291cmNlIG9mIGEgU3RhY2t0YXBlIHJlc291cmNlLCB5b3UgY2FuIGdldCBhIGxpc3Qgb2YgY2hpbGQgcmVzb3VyY2VzIHdpdGggdGhlIGBzdGFja3RhcGUgc3RhY2staW5mb2AgY29tbWFuZFxuICogQHBhcmFtIHByb3BlcnR5IC0gVGhlIHBhcmFtZXRlciBvZiB0aGUgQ2xvdWRmb3JtYXRpb24gcmVzb3VyY2UgdG8gcmVmZXJlbmNlLlxuICogRm9yIGEgbGlzdCBvZiBhbGwgcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXJzLCByZWZlciB0byB0aGUgW1JlZmVyZW5jaW5nIHBhcmFtZXRlcnNdKGh0dHBzOi8vZG9jcy5zdGFja3RhcGUuY29tL2NvbmZpZ3VyYXRpb24vcmVmZXJlbmNpbmctcGFyYW1ldGVycyNwYXJhbWV0ZXJzLW9mLWNsb3VkZm9ybWF0aW9uLXJlc291cmNlcykgc2VjdGlvbiBpbiB0aGUgU3RhY2t0YXBlIGRvY3MuXG4gKi9cbmV4cG9ydCBjb25zdCAkQ2ZSZXNvdXJjZVBhcmFtID0gKGNsb3VkZm9ybWF0aW9uUmVzb3VyY2VMb2dpY2FsSWQ6IHN0cmluZywgcHJvcGVydHk6IHN0cmluZykgPT4ge1xuICByZXR1cm4gYCRDZlJlc291cmNlUGFyYW0oJyR7Y2xvdWRmb3JtYXRpb25SZXNvdXJjZUxvZ2ljYWxJZH0nLCcke3Byb3BlcnR5fScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhIHJlZmVyZW5jZSB0byBhIHNlY3JldC5cbiAqIEBwYXJhbSBzZWNyZXROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIHNlY3JldC4gTXVzdCBiZSBhIHZhbGlkIHNlY3JldCBuYW1lIGluIHRoZSBBV1MgU2VjcmV0cyBNYW5hZ2VyIGluIHRoZSByZWdpb24geW91J3JlIGRlcGxveWluZyB0by5cbiAqIElmIHRoZSBzZWNyZXQgaXMgaW4gSlNPTiBmb3JtYXQsIHlvdSBjYW4gZXh0cmFjdCBuZXN0ZWQgcHJvcGVydGllcyB1c2luZyBkb3Qgbm90YXRpb24uXG4gKiBFeGFtcGxlOiBgJFNlY3JldCgnbXktc2VjcmV0LmFwaS1rZXknKWAgd2lsbCByZXR1cm4gdGhlIHZhbHVlIG9mIHRoZSBgYXBpLWtleWAgcHJvcGVydHkgaW4gdGhlIGBteS1zZWNyZXRgIHNlY3JldC5cbiAqL1xuZXhwb3J0IGNvbnN0ICRTZWNyZXQgPSAoc2VjcmV0TmFtZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiBgJFNlY3JldCgnJHtzZWNyZXROYW1lfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBhbiBpbnRlcnBvbGF0ZWQgc3RyaW5nLiBVbmxpa2UgdGhlICRGb3JtYXQoKSBkaXJlY3RpdmUsIHRoZSAkQ2ZGb3JtYXQoKSBkaXJlY3RpdmUgY2FuIGNvbnRhaW4gcnVudGltZS1yZXNvbHZlZCBkaXJlY3RpdmVzIGFzIGFyZ3VtZW50cy5cbiAqIEBwYXJhbSBpbnRlcnBvbGF0ZWRTdHJpbmcgLSBPY2N1cnJlbmNlcyBvZiB7fSBhcmUgcmVwbGFjZWQgYnkgdGhlIHN1YnNlcXVlbnQgYXJndW1lbnRzLlxuICogQHBhcmFtIHZhbHVlcyAtIFRoZSBudW1iZXIgb2YgdmFsdWVzIG11c3QgYmUgZXF1YWwgdG8gdGhlIG51bWJlciBvZiB7fSBwbGFjZWhvbGRlcnMgaW4gdGhlIGZpcnN0IGFyZ3VtZW50LlxuICogRXhhbXBsZTpcbiAqIGAkQ2ZGb3JtYXQoJ3t9LXt9JywgJ2ZvbycsICdiYXInKWAgcmVzdWx0cyBpbiBgZm9vLWJhcmAuXG4gKiAkQ2ZGb3JtYXQoJ3t9LW15ZG9tYWluLmNvbScsICdmb28nKSByZXN1bHRzIGluIGZvby1teWRvbWFpbi5jb20uXG4gKiBgJENmRm9ybWF0KCd7fS5teWRvbWFpbi5jb20nLCAkU3RhZ2UoKSlgIHJlc3VsdHMgaW4gYHN0YWdpbmcubXlkb21haW4uY29tYCBpZiB0aGUgc3RhZ2UgaXMgc3RhZ2luZy5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZkZvcm1hdCA9IChpbnRlcnBvbGF0ZWRTdHJpbmc6IHN0cmluZywgLi4udmFsdWVzOiBhbnlbXSkgPT4ge1xuICByZXR1cm4gYCRDZkZvcm1hdCgnJHtpbnRlcnBvbGF0ZWRTdHJpbmd9JywgJyR7dmFsdWVzLmpvaW4oJywnKX0nKWA7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIG91dHB1dCBvZiBhbm90aGVyIHN0YWNrLCBhbGxvd2luZyB5b3UgdG8gcmVmZXJlbmNlIHJlc291cmNlcyBkZXBsb3llZCBpbiBhbm90aGVyIHN0YWNrLiBUaGUgcmVmZXJlbmNlZCBzdGFjayBtdXN0IGFscmVhZHkgYmUgZGVwbG95ZWQuIElmIHlvdSB0cnkgdG8gZGVsZXRlIGEgc3RhY2sgdGhhdCBpcyByZWZlcmVuY2VkIGJ5IGFub3RoZXIgc3RhY2ssIHlvdSB3aWxsIGdldCBhbiBlcnJvci5cbiAqIFRvIGdldCB0aGUgb3V0cHV0IGxvY2FsbHkgKGkuZS4sIGRvd25sb2FkIHRoZSB2YWx1ZSBhbmQgcGFzcyBpdCB0byB0aGUgY29uZmlndXJhdGlvbiksIHVzZSB0aGUgJFN0YWNrT3V0cHV0KCkgZGlyZWN0aXZlLlxuICogQHBhcmFtIHN0YWNrTmFtZSAtIFRoZSBuYW1lIG9mIHRoZSBzdGFjay5cbiAqIEBwYXJhbSBvdXRwdXROYW1lIC0gVGhlIG5hbWUgb2YgdGhlIG91dHB1dC5cbiAqL1xuZXhwb3J0IGNvbnN0ICRDZlN0YWNrT3V0cHV0ID0gKHN0YWNrTmFtZTogc3RyaW5nLCBvdXRwdXROYW1lOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIGAkQ2ZTdGFja091dHB1dCgnJHtzdGFja05hbWV9JywnJHtvdXRwdXROYW1lfScpYDtcbn07XG5cbi8qKlxuICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY3VycmVudCBHaXQgcmVwb3NpdG9yeS5cbiAqXG4gKiAkR2l0SW5mbygpLnNoYTEgLSBTSEEtMSBvZiB0aGUgbGF0ZXN0IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkuY29tbWl0IC0gVGhlIGxhdGVzdCBjb21taXQgSURcbiAqXG4gKiAkR2l0SW5mbygpLmJyYW5jaCAtIFRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IGJyYW5jaFxuICpcbiAqICRHaXRJbmZvKCkubWVzc2FnZSAtIFRoZSBtZXNzYWdlIG9mIHRoZSBsYXN0IGNvbW1pdFxuICpcbiAqICRHaXRJbmZvKCkudXNlciAtIEdpdCB1c2VyJ3MgbmFtZVxuICpcbiAqICRHaXRJbmZvKCkuZW1haWwgLSBHaXQgdXNlcidzIGVtYWlsXG4gKlxuICogJEdpdEluZm8oKS5yZXBvc2l0b3J5IC0gVGhlIG5hbWUgb2YgdGhlIGdpdCByZXBvc2l0b3J5XG4gKlxuICogJEdpdEluZm8oKS50YWdzIC0gVGhlIHRhZ3MgcG9pbnRpbmcgdG8gdGhlIGN1cnJlbnQgY29tbWl0XG4gKlxuICogJEdpdEluZm8oKS5kZXNjcmliZSAtIFRoZSBtb3N0IHJlY2VudCB0YWcgdGhhdCBpcyByZWFjaGFibGUgZnJvbSBhIGNvbW1pdFxuICovXG5leHBvcnQgY29uc3QgJEdpdEluZm8gPSAoKSA9PiB7XG4gIHJldHVybiAnJEdpdEluZm8oKSc7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgQVdTIHJlZ2lvbiB3aGVyZSB0aGUgc3RhY2sgaXMgYmVpbmcgZGVwbG95ZWQuXG4gKiBFeGFtcGxlOiBgdXMtZWFzdC0xYFxuICovXG5leHBvcnQgY29uc3QgJFJlZ2lvbiA9ICgpID0+IHtcbiAgcmV0dXJuICckUmVnaW9uKCknO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBjdXJyZW50IHN0YWdlIG5hbWUuXG4gKiBFeGFtcGxlOiBgcHJvZHVjdGlvbmAsIGBzdGFnaW5nYCwgYGRldmBcbiAqL1xuZXhwb3J0IGNvbnN0ICRTdGFnZSA9ICgpID0+IHtcbiAgcmV0dXJuICckU3RhZ2UoKSc7XG59O1xuIiwKICAgICIvKipcbiAqIEFXUyBTRVMgKFNpbXBsZSBFbWFpbCBTZXJ2aWNlKSByZWZlcmVuY2UgZm9yIGNvbm5lY3RUb1xuICogR3JhbnRzIGZ1bGwgcGVybWlzc2lvbnMgZm9yIEFXUyBTRVMgKHNlczoqKVxuICovXG5leHBvcnQgY29uc3QgQVdTX1NFUyA9ICdhd3M6c2VzJyBhcyBjb25zdDtcblxuLyoqXG4gKiBUeXBlIHRoYXQgcmVwcmVzZW50cyBhbnkgQVdTIHNlcnZpY2UgY29uc3RhbnRcbiAqL1xuZXhwb3J0IHR5cGUgR2xvYmFsQXdzU2VydmljZUNvbnN0YW50ID0gdHlwZW9mIEFXU19TRVM7XG4iLAogICAgIi8qKlxuICogVGhpcyBmaWxlIGRlZmluZXMgdHlwZS1wcm9wZXJ0aWVzIHNoYXBlZCBkZWZpbml0aW9ucyAoZS5nLiBTdGFja3RhcGUgcmVzb3VyY2VzLCBwYWNrYWdpbmcgdHlwZXMgZXRjLilcbiAqIHRoYXQgY2FuIGJlIGNvbnZlcnRlZCB0byBhIFR5cGVzY3JpcHQgY2xhc3MuIFRoZXNlIGNsYXNzZXMgYXJlIHRoZW4gZXhwb3J0ZWQgZnJvbSBzdGFja3RhcGUvY2xhc3Nlc1xuICpcbiAqIEBleGFtcGxlIGltcG9ydCB7IFN0YWNrdGFwZUxhbWJkYUJ1aWxkcGFja1BhY2thZ2luZyB9IGZyb20gJ3N0YWNrdGFwZS9jbGFzc2VzJztcbiAqL1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZUNsYXNzTmFtZSA9IE9taXQ8S2ViYWJUb1Bhc2NhbENhc2U8U3RwUmVzb3VyY2VUeXBlPiwgJ0Z1bmN0aW9uJz4gfCAnTGFtYmRhRnVuY3Rpb24nO1xuXG5leHBvcnQgdHlwZSBSZXNvdXJjZURlZmluaXRpb24gPSB7XG4gIC8qKiBDbGFzcyBuYW1lIGZvciB0aGUgcmVzb3VyY2UgKGUuZy4sICdMYW1iZGFGdW5jdGlvbicpICovXG4gIGNsYXNzTmFtZTogUmVzb3VyY2VDbGFzc05hbWU7XG4gIC8qKiBSZXNvdXJjZSB0eXBlIGlkZW50aWZpZXIgdXNlZCBpbiBjb25maWcgKGUuZy4sICdmdW5jdGlvbicpICovXG4gIHJlc291cmNlVHlwZTogc3RyaW5nO1xuICAvKiogUHJvcHMgdHlwZSBuYW1lIChlLmcuLCAnTGFtYmRhRnVuY3Rpb25Qcm9wcycpICovXG4gIHByb3BzVHlwZTogc3RyaW5nO1xuICAvKiogSW50ZXJmYWNlIG5hbWUgaW4gdGhlIHNvdXJjZSAuZC50cyBmaWxlIChlLmcuLCAnTGFtYmRhRnVuY3Rpb24nKSAqL1xuICBpbnRlcmZhY2VOYW1lOiBzdHJpbmc7XG4gIC8qKiBTb3VyY2UgLmQudHMgZmlsZSBuYW1lIChlLmcuLCAnZnVuY3Rpb25zLmQudHMnKSAqL1xuICBzb3VyY2VGaWxlOiBzdHJpbmc7XG4gIC8qKiBSZXNvdXJjZXMgYW5kIEFXUyBzZXJ2aWNlcyB0aGlzIHJlc291cmNlIGNhbiBjb25uZWN0IHRvLiBHbG9iYWxBd3NTZXJ2aWNlQ29uc3RhbnQgaXMgZm9yIGdsb2JhbCBzZXJ2aWNlcywgZS5nLiBhd3M6c2VzICAqL1xuICBjYW5Db25uZWN0VG8/OiBzdHJpbmdbXTtcbiAgLyoqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSBzdXBwb3J0cyBvdmVycmlkZXMgKGRlZmF1bHQ6IHRydWUpICovXG4gIHN1cHBvcnRzT3ZlcnJpZGVzPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdGhpcyByZXNvdXJjZSBoYXMgYXVnbWVudGVkIGNvbm5lY3RUby9lbnZpcm9ubWVudCBwcm9wcyAoZGVmYXVsdDogZmFsc2UpICovXG4gIGhhc0F1Z21lbnRlZFByb3BzPzogYm9vbGVhbjtcbn07XG5cbi8qKlxuICogQ29tcGxldGUgbGlzdCBvZiBhbGwgU3RhY2t0YXBlIHJlc291cmNlcy5cbiAqIFRoaXMgaXMgdGhlIHNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggLSBhbGwgY29kZSBnZW5lcmF0aW9uIGRlcml2ZXMgZnJvbSB0aGlzLlxuICovXG5leHBvcnQgY29uc3QgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVM6IFJlc291cmNlRGVmaW5pdGlvbltdID0gW1xuICB7XG4gICAgY2xhc3NOYW1lOiAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlJyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1dlYlNlcnZpY2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3dlYi1zZXJ2aWNlJyxcbiAgICBwcm9wc1R5cGU6ICdXZWJTZXJ2aWNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdXZWJTZXJ2aWNlJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLXNlcnZpY2VzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnUHJpdmF0ZVNlcnZpY2UnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUHJpdmF0ZVNlcnZpY2UnLFxuICAgIHJlc291cmNlVHlwZTogJ3ByaXZhdGUtc2VydmljZScsXG4gICAgcHJvcHNUeXBlOiAnUHJpdmF0ZVNlcnZpY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1ByaXZhdGVTZXJ2aWNlJyxcbiAgICBzb3VyY2VGaWxlOiAncHJpdmF0ZS1zZXJ2aWNlcy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnV29ya2VyU2VydmljZScsXG4gICAgcmVzb3VyY2VUeXBlOiAnd29ya2VyLXNlcnZpY2UnLFxuICAgIHByb3BzVHlwZTogJ1dvcmtlclNlcnZpY2VQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1dvcmtlclNlcnZpY2UnLFxuICAgIHNvdXJjZUZpbGU6ICd3b3JrZXItc2VydmljZXMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJ1xuICAgIF1cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWQnLFxuICAgIHJlc291cmNlVHlwZTogJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZCcsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ011bHRpQ29udGFpbmVyV29ya2xvYWQnLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogW1xuICAgICAgJ1JlbGF0aW9uYWxEYXRhYmFzZScsXG4gICAgICAnQnVja2V0JyxcbiAgICAgICdIb3N0aW5nQnVja2V0JyxcbiAgICAgICdEeW5hbW9EYlRhYmxlJyxcbiAgICAgICdFdmVudEJ1cycsXG4gICAgICAnUmVkaXNDbHVzdGVyJyxcbiAgICAgICdNb25nb0RiQXRsYXNDbHVzdGVyJyxcbiAgICAgICdVcHN0YXNoUmVkaXMnLFxuICAgICAgJ1Nxc1F1ZXVlJyxcbiAgICAgICdTbnNUb3BpYycsXG4gICAgICAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgICAnRWZzRmlsZXN5c3RlbScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRnVuY3Rpb24nLFxuICAgIHJlc291cmNlVHlwZTogJ2Z1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdMYW1iZGFGdW5jdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRnVuY3Rpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdmdW5jdGlvbnMuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmF0Y2hKb2InLFxuICAgIHJlc291cmNlVHlwZTogJ2JhdGNoLWpvYicsXG4gICAgcHJvcHNUeXBlOiAnQmF0Y2hKb2JQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0JhdGNoSm9iJyxcbiAgICBzb3VyY2VGaWxlOiAnYmF0Y2gtam9icy5kLnRzJyxcbiAgICBoYXNBdWdtZW50ZWRQcm9wczogdHJ1ZSxcbiAgICBjYW5Db25uZWN0VG86IFtcbiAgICAgICdSZWxhdGlvbmFsRGF0YWJhc2UnLFxuICAgICAgJ0J1Y2tldCcsXG4gICAgICAnSG9zdGluZ0J1Y2tldCcsXG4gICAgICAnRHluYW1vRGJUYWJsZScsXG4gICAgICAnRXZlbnRCdXMnLFxuICAgICAgJ1JlZGlzQ2x1c3RlcicsXG4gICAgICAnTW9uZ29EYkF0bGFzQ2x1c3RlcicsXG4gICAgICAnVXBzdGFzaFJlZGlzJyxcbiAgICAgICdTcXNRdWV1ZScsXG4gICAgICAnU25zVG9waWMnLFxuICAgICAgJ09wZW5TZWFyY2hEb21haW4nLFxuICAgICAgJ0Vmc0ZpbGVzeXN0ZW0nXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQnVja2V0JyxcbiAgICByZXNvdXJjZVR5cGU6ICdidWNrZXQnLFxuICAgIHByb3BzVHlwZTogJ0J1Y2tldFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQnVja2V0JyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIb3N0aW5nQnVja2V0JyxcbiAgICByZXNvdXJjZVR5cGU6ICdob3N0aW5nLWJ1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnSG9zdGluZ0J1Y2tldFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSG9zdGluZ0J1Y2tldCcsXG4gICAgc291cmNlRmlsZTogJ2hvc3RpbmctYnVja2V0cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdEeW5hbW9EYlRhYmxlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdkeW5hbW8tZGItdGFibGUnLFxuICAgIHByb3BzVHlwZTogJ0R5bmFtb0RiVGFibGVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0R5bmFtb0RiVGFibGUnLFxuICAgIHNvdXJjZUZpbGU6ICdkeW5hbW8tZGItdGFibGVzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V2ZW50QnVzJyxcbiAgICByZXNvdXJjZVR5cGU6ICdldmVudC1idXMnLFxuICAgIHByb3BzVHlwZTogJ0V2ZW50QnVzUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFdmVudEJ1cycsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50LWJ1c2VzLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0h0dHBBcGlHYXRld2F5JyxcbiAgICByZXNvdXJjZVR5cGU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpR2F0ZXdheVByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnSHR0cEFwaUdhdGV3YXknLFxuICAgIHNvdXJjZUZpbGU6ICdodHRwLWFwaS1nYXRld2F5cy5kLnRzJyxcbiAgICBjYW5Db25uZWN0VG86IFtdXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcnMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTmV0d29ya0xvYWRCYWxhbmNlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOZXR3b3JrTG9hZEJhbGFuY2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlZGlzQ2x1c3RlcicsXG4gICAgcmVzb3VyY2VUeXBlOiAncmVkaXMtY2x1c3RlcicsXG4gICAgcHJvcHNUeXBlOiAnUmVkaXNDbHVzdGVyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWRpc0NsdXN0ZXInLFxuICAgIHNvdXJjZUZpbGU6ICdyZWRpcy1jbHVzdGVyLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgIHJlc291cmNlVHlwZTogJ21vbmdvLWRiLWF0bGFzLWNsdXN0ZXInLFxuICAgIHByb3BzVHlwZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgIHNvdXJjZUZpbGU6ICdtb25nby1kYi1hdGxhcy1jbHVzdGVycy5kLnRzJyxcbiAgICBzdXBwb3J0c092ZXJyaWRlczogZmFsc2UsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhdGVNYWNoaW5lJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzdGF0ZS1tYWNoaW5lJyxcbiAgICBwcm9wc1R5cGU6ICdTdGF0ZU1hY2hpbmVQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0YXRlTWFjaGluZScsXG4gICAgc291cmNlRmlsZTogJ3N0YXRlLW1hY2hpbmVzLmQudHMnLFxuICAgIGhhc0F1Z21lbnRlZFByb3BzOiB0cnVlLFxuICAgIGNhbkNvbm5lY3RUbzogWydGdW5jdGlvbicsICdCYXRjaEpvYiddXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdVc2VyQXV0aFBvb2wnLFxuICAgIHJlc291cmNlVHlwZTogJ3VzZXItYXV0aC1wb29sJyxcbiAgICBwcm9wc1R5cGU6ICdVc2VyQXV0aFBvb2xQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1VzZXJBdXRoUG9vbCcsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnVXBzdGFzaFJlZGlzJyxcbiAgICByZXNvdXJjZVR5cGU6ICd1cHN0YXNoLXJlZGlzJyxcbiAgICBwcm9wc1R5cGU6ICdVcHN0YXNoUmVkaXNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Vwc3Rhc2hSZWRpcycsXG4gICAgc291cmNlRmlsZTogJ3Vwc3Rhc2gtcmVkaXMuZC50cycsXG4gICAgc3VwcG9ydHNPdmVycmlkZXM6IGZhbHNlLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlJyxcbiAgICByZXNvdXJjZVR5cGU6ICdzcXMtcXVldWUnLFxuICAgIHByb3BzVHlwZTogJ1Nxc1F1ZXVlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZScsXG4gICAgc291cmNlRmlsZTogJ3Nxcy1xdWV1ZXMuZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU25zVG9waWMnLFxuICAgIHJlc291cmNlVHlwZTogJ3Nucy10b3BpYycsXG4gICAgcHJvcHNUeXBlOiAnU25zVG9waWNQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nuc1RvcGljJyxcbiAgICBzb3VyY2VGaWxlOiAnc25zLXRvcGljLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1dlYkFwcEZpcmV3YWxsJyxcbiAgICByZXNvdXJjZVR5cGU6ICd3ZWItYXBwLWZpcmV3YWxsJyxcbiAgICBwcm9wc1R5cGU6ICdXZWJBcHBGaXJld2FsbFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnV2ViQXBwRmlyZXdhbGwnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ09wZW5TZWFyY2hEb21haW4nLFxuICAgIHJlc291cmNlVHlwZTogJ29wZW4tc2VhcmNoLWRvbWFpbicsXG4gICAgcHJvcHNUeXBlOiAnT3BlblNlYXJjaERvbWFpblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnT3BlblNlYXJjaERvbWFpbicsXG4gICAgc291cmNlRmlsZTogJ29wZW4tc2VhcmNoLmQudHMnLFxuICAgIGNhbkNvbm5lY3RUbzogW11cbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Vmc0ZpbGVzeXN0ZW0nLFxuICAgIHJlc291cmNlVHlwZTogJ2Vmcy1maWxlc3lzdGVtJyxcbiAgICBwcm9wc1R5cGU6ICdFZnNGaWxlc3lzdGVtUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFZnNGaWxlc3lzdGVtJyxcbiAgICBzb3VyY2VGaWxlOiAnZWZzLWZpbGVzeXN0ZW0uZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTmV4dGpzV2ViJyxcbiAgICByZXNvdXJjZVR5cGU6ICduZXh0anMtd2ViJyxcbiAgICBwcm9wc1R5cGU6ICdOZXh0anNXZWJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05leHRqc1dlYicsXG4gICAgc291cmNlRmlsZTogJ25leHRqcy13ZWIuZC50cycsXG4gICAgaGFzQXVnbWVudGVkUHJvcHM6IHRydWUsXG4gICAgY2FuQ29ubmVjdFRvOiBbXG4gICAgICAnUmVsYXRpb25hbERhdGFiYXNlJyxcbiAgICAgICdCdWNrZXQnLFxuICAgICAgJ0hvc3RpbmdCdWNrZXQnLFxuICAgICAgJ0R5bmFtb0RiVGFibGUnLFxuICAgICAgJ0V2ZW50QnVzJyxcbiAgICAgICdSZWRpc0NsdXN0ZXInLFxuICAgICAgJ01vbmdvRGJBdGxhc0NsdXN0ZXInLFxuICAgICAgJ1Vwc3Rhc2hSZWRpcycsXG4gICAgICAnU3FzUXVldWUnLFxuICAgICAgJ1Nuc1RvcGljJyxcbiAgICAgICdPcGVuU2VhcmNoRG9tYWluJyxcbiAgICAgICdFZnNGaWxlc3lzdGVtJyxcbiAgICAgICdQcml2YXRlU2VydmljZScsXG4gICAgICAnV2ViU2VydmljZScsXG4gICAgICAnTGFtYmRhRnVuY3Rpb24nLFxuICAgICAgJ0JhdGNoSm9iJyxcbiAgICAgICdVc2VyQXV0aFBvb2wnXG4gICAgXVxuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmFzdGlvbicsXG4gICAgcmVzb3VyY2VUeXBlOiAnYmFzdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQmFzdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQmFzdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2Jhc3Rpb24uZC50cycsXG4gICAgY2FuQ29ubmVjdFRvOiBbXVxuICB9XG5dO1xuXG4vKipcbiAqIERlZmluZXMgYWxsIHR5cGUgKyBwcm9wZXJ0aWVzIHNoYXBlZCBkZWZpbml0aW9ucyB0aGF0IGNhbiBiZSBjb252ZXJ0ZWQgdG8gYSBUeXBlc2NyaXB0IGNsYXNzXG4gKi9cbmV4cG9ydCB0eXBlIFR5cGVQcm9wZXJ0aWVzRGVmaW5pdGlvbiA9IHtcbiAgY2xhc3NOYW1lOiBzdHJpbmc7XG4gIHR5cGVWYWx1ZTogc3RyaW5nO1xuICBwcm9wc1R5cGU6IHN0cmluZztcbiAgaW50ZXJmYWNlTmFtZTogc3RyaW5nO1xuICBzb3VyY2VGaWxlOiBzdHJpbmc7XG4gIC8qKiBJZiB0cnVlLCB0aGlzIHR5cGUgaGFzIG5vIHByb3BlcnRpZXMgZmllbGQgLSBqdXN0IGEgdHlwZSBkaXNjcmltaW5hdG9yICovXG4gIHR5cGVPbmx5PzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBKU0RvYyBkZXNjcmlwdGlvbiBmb3IgdGhlIGNsYXNzIGNvbnN0cnVjdG9yICovXG4gIGpzZG9jPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGNvbnN0IE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUzogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uW10gPSBbXG4gIC8vIERhdGFiYXNlIEVuZ2luZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVBvc3RncmVzJyxcbiAgICB0eXBlVmFsdWU6ICdwb3N0Z3JlcycsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVNYXJpYWRiJyxcbiAgICB0eXBlVmFsdWU6ICdtYXJpYWRiJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdteXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVPcmFjbGVFRScsXG4gICAgdHlwZVZhbHVlOiAnb3JhY2xlLWVlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZU9yYWNsZVNFMicsXG4gICAgdHlwZVZhbHVlOiAnb3JhY2xlLXNlMicsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJFRScsXG4gICAgdHlwZVZhbHVlOiAnc3Fsc2VydmVyLWVlJyxcbiAgICBwcm9wc1R5cGU6ICdSZHNFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnUmRzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Jkc0VuZ2luZVNxbFNlcnZlckVYJyxcbiAgICB0eXBlVmFsdWU6ICdzcWxzZXJ2ZXItZXgnLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmRzRW5naW5lU3FsU2VydmVyU0UnLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci1zZScsXG4gICAgcHJvcHNUeXBlOiAnUmRzRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Jkc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZHNFbmdpbmVTcWxTZXJ2ZXJXZWInLFxuICAgIHR5cGVWYWx1ZTogJ3NxbHNlcnZlci13ZWInLFxuICAgIHByb3BzVHlwZTogJ1Jkc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZHNFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYUVuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFFbmdpbmUnLFxuICAgIHNvdXJjZUZpbGU6ICdyZWxhdGlvbmFsLWRhdGFiYXNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXVyb3JhRW5naW5lTXlzcWwnLFxuICAgIHR5cGVWYWx1ZTogJ2F1cm9yYS1teXNxbCcsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYUVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lUG9zdGdyZXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLXBvc3RncmVzcWwtc2VydmVybGVzcycsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZVByb3BlcnRpZXMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVNeXNxbCcsXG4gICAgdHlwZVZhbHVlOiAnYXVyb3JhLW15c3FsLXNlcnZlcmxlc3MnLFxuICAgIHByb3BzVHlwZTogJ0F1cm9yYVNlcnZlcmxlc3NFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc0VuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQb3N0Z3Jlc3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtcG9zdGdyZXNxbC1zZXJ2ZXJsZXNzLXYyJyxcbiAgICBwcm9wc1R5cGU6ICdBdXJvcmFTZXJ2ZXJsZXNzVjJFbmdpbmVQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lJyxcbiAgICBzb3VyY2VGaWxlOiAncmVsYXRpb25hbC1kYXRhYmFzZXMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZU15c3FsJyxcbiAgICB0eXBlVmFsdWU6ICdhdXJvcmEtbXlzcWwtc2VydmVybGVzcy12MicsXG4gICAgcHJvcHNUeXBlOiAnQXVyb3JhU2VydmVybGVzc1YyRW5naW5lUHJvcGVydGllcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0F1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZScsXG4gICAgc291cmNlRmlsZTogJ3JlbGF0aW9uYWwtZGF0YWJhc2VzLmQudHMnXG4gIH0sXG4gIC8vIExhbWJkYSBQYWNrYWdpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ1N0YWNrdGFwZUxhbWJkYUJ1aWxkcGFja1BhY2thZ2luZycsXG4gICAgdHlwZVZhbHVlOiAnc3RhY2t0YXBlLWxhbWJkYS1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ1N0cEJ1aWxkcGFja0xhbWJkYVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU3RwQnVpbGRwYWNrTGFtYmRhUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tYXJ0aWZhY3QnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbUFydGlmYWN0TGFtYmRhUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21BcnRpZmFjdExhbWJkYVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIC8vIENvbnRhaW5lciBQYWNrYWdpbmdcbiAge1xuICAgIGNsYXNzTmFtZTogJ1ByZWJ1aWx0SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3ByZWJ1aWx0LWltYWdlJyxcbiAgICBwcm9wc1R5cGU6ICdQcmVidWlsdEltYWdlQ3dQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1ByZWJ1aWx0Q3dJbWFnZVBhY2thZ2luZycsXG4gICAgc291cmNlRmlsZTogJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDdXN0b21Eb2NrZXJmaWxlUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdjdXN0b20tZG9ja2VyZmlsZScsXG4gICAgcHJvcHNUeXBlOiAnQ3VzdG9tRG9ja2VyZmlsZUN3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0N1c3RvbURvY2tlcmZpbGVDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0V4dGVybmFsQnVpbGRwYWNrUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdleHRlcm5hbC1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ0V4dGVybmFsQnVpbGRwYWNrQ3dJbWFnZVBhY2thZ2luZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRXh0ZXJuYWxCdWlsZHBhY2tDd0ltYWdlUGFja2FnaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1hcnRpZmFjdHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ05peHBhY2tzUGFja2FnaW5nJyxcbiAgICB0eXBlVmFsdWU6ICduaXhwYWNrcycsXG4gICAgcHJvcHNUeXBlOiAnTml4cGFja3NDd0ltYWdlUGFja2FnaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdOaXhwYWNrc0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnU3RhY2t0YXBlSW1hZ2VCdWlsZHBhY2tQYWNrYWdpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ3N0YWNrdGFwZS1pbWFnZS1idWlsZHBhY2snLFxuICAgIHByb3BzVHlwZTogJ1N0cEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1N0cEJ1aWxkcGFja0N3SW1hZ2VQYWNrYWdpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdkZXBsb3ltZW50LWFydGlmYWN0cy5kLnRzJ1xuICB9LFxuICAvLyBMYW1iZGEgRnVuY3Rpb24gRXZlbnRzL0ludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0h0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUzNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnczMnLFxuICAgIHByb3BzVHlwZTogJ1MzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1MzSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1NjaGVkdWxlSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NjaGVkdWxlJyxcbiAgICBwcm9wc1R5cGU6ICdTY2hlZHVsZUludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTY2hlZHVsZUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTbnNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnc25zJyxcbiAgICBwcm9wc1R5cGU6ICdTbnNJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnU25zSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdzcXMnLFxuICAgIHByb3BzVHlwZTogJ1Nxc0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnS2luZXNpc0ludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdraW5lc2lzJyxcbiAgICBwcm9wc1R5cGU6ICdLaW5lc2lzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0tpbmVzaXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRHluYW1vRGJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZHluYW1vZGInLFxuICAgIHByb3BzVHlwZTogJ0R5bmFtb0RiSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0R5bmFtb0RiSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnY2xvdWR3YXRjaC1sb2dzJyxcbiAgICBwcm9wc1R5cGU6ICdDbG91ZHdhdGNoTG9nSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Nsb3Vkd2F0Y2hMb2dJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdFdmVudEJ1c0ludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdFdmVudEJ1c0ludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnZXZlbnRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2thZmthLXRvcGljJyxcbiAgICBwcm9wc1R5cGU6ICdLYWZrYVRvcGljSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0thZmthVG9waWNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQWxhcm1JbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnYWxhcm0nLFxuICAgIHByb3BzVHlwZTogJ0FsYXJtSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FsYXJtSW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdldmVudHMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0lvdEludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdpb3QnLFxuICAgIHByb3BzVHlwZTogJ0lvdEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdJb3RJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2V2ZW50cy5kLnRzJ1xuICB9LFxuICAvLyBDRE4gUm91dGVzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5Mb2FkQmFsYW5jZXJSb3V0ZScsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlcicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuTG9hZEJhbGFuY2VyT3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuTG9hZEJhbGFuY2VyT3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5IdHRwQXBpR2F0ZXdheVJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWFwaS1nYXRld2F5JyxcbiAgICBwcm9wc1R5cGU6ICdDZG5IdHRwQXBpR2F0ZXdheU9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Nkbkh0dHBBcGlHYXRld2F5T3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDZG5MYW1iZGFGdW5jdGlvblJvdXRlJyxcbiAgICB0eXBlVmFsdWU6ICdmdW5jdGlvbicsXG4gICAgcHJvcHNUeXBlOiAnQ2RuTGFtYmRhRnVuY3Rpb25PcmlnaW4nLFxuICAgIGludGVyZmFjZU5hbWU6ICdDZG5MYW1iZGFGdW5jdGlvbk9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuQ3VzdG9tRG9tYWluUm91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2N1c3RvbS1vcmlnaW4nLFxuICAgIHByb3BzVHlwZTogJ0NkbkN1c3RvbU9yaWdpbicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NkbkN1c3RvbU9yaWdpbicsXG4gICAgc291cmNlRmlsZTogJ2Nkbi5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ2RuQnVja2V0Um91dGUnLFxuICAgIHR5cGVWYWx1ZTogJ2J1Y2tldCcsXG4gICAgcHJvcHNUeXBlOiAnQ2RuQnVja2V0T3JpZ2luJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ2RuQnVja2V0T3JpZ2luJyxcbiAgICBzb3VyY2VGaWxlOiAnY2RuLmQudHMnXG4gIH0sXG4gIC8vIFdlYiBBcHAgRmlyZXdhbGwgUnVsZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ01hbmFnZWRSdWxlR3JvdXAnLFxuICAgIHR5cGVWYWx1ZTogJ21hbmFnZWQtcnVsZS1ncm91cCcsXG4gICAgcHJvcHNUeXBlOiAnTWFuYWdlZFJ1bGVHcm91cFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTWFuYWdlZFJ1bGVHcm91cCcsXG4gICAgc291cmNlRmlsZTogJ3dlYi1hcHAtZmlyZXdhbGwuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJ1bGVHcm91cCcsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJ1bGUtZ3JvdXAnLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJ1bGVHcm91cFByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUnVsZUdyb3VwJyxcbiAgICBzb3VyY2VGaWxlOiAnd2ViLWFwcC1maXJld2FsbC5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnUmF0ZUJhc2VkUnVsZScsXG4gICAgdHlwZVZhbHVlOiAncmF0ZS1iYXNlZC1ydWxlJyxcbiAgICBwcm9wc1R5cGU6ICdSYXRlQmFzZWRTdGF0ZW1lbnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JhdGVCYXNlZFJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICd3ZWItYXBwLWZpcmV3YWxsLmQudHMnXG4gIH0sXG4gIC8vIFNRUyBRdWV1ZSBJbnRlZ3JhdGlvbnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnZXZlbnQtYnVzJyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZUV2ZW50QnVzSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvbicsXG4gICAgc291cmNlRmlsZTogJ3Nxcy1xdWV1ZXMuZC50cydcbiAgfSxcbiAgLy8gTXVsdGkgQ29udGFpbmVyIFdvcmtsb2FkIEludGVncmF0aW9uc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZEh0dHBBcGlJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheScsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRIdHRwQXBpSW50ZWdyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0NvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZExvYWRCYWxhbmNlckludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnbmV0d29yay1sb2FkLWJhbGFuY2VyJyxcbiAgICBwcm9wc1R5cGU6ICdDb250YWluZXJXb3JrbG9hZE5ldHdvcmtMb2FkQmFsYW5jZXJJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdNdWx0aUNvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnd29ya2xvYWQtaW50ZXJuYWwnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lcldvcmtsb2FkSW50ZXJuYWxJbnRlZ3JhdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnbXVsdGktY29udGFpbmVyLXdvcmtsb2Fkcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTXVsdGlDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24nLFxuICAgIHR5cGVWYWx1ZTogJ3NlcnZpY2UtY29ubmVjdCcsXG4gICAgcHJvcHNUeXBlOiAnQ29udGFpbmVyV29ya2xvYWRTZXJ2aWNlQ29ubmVjdEludGVncmF0aW9uUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJXb3JrbG9hZFNlcnZpY2VDb25uZWN0SW50ZWdyYXRpb24nLFxuICAgIHNvdXJjZUZpbGU6ICdtdWx0aS1jb250YWluZXItd29ya2xvYWRzLmQudHMnXG4gIH0sXG4gIC8vIFNjcmlwdHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xvY2FsU2NyaXB0JyxcbiAgICB0eXBlVmFsdWU6ICdsb2NhbC1zY3JpcHQnLFxuICAgIHByb3BzVHlwZTogJ0xvY2FsU2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMb2NhbFNjcmlwdCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQmFzdGlvblNjcmlwdCcsXG4gICAgdHlwZVZhbHVlOiAnYmFzdGlvbi1zY3JpcHQnLFxuICAgIHByb3BzVHlwZTogJ0Jhc3Rpb25TY3JpcHRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0Jhc3Rpb25TY3JpcHQnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0xvY2FsU2NyaXB0V2l0aEJhc3Rpb25UdW5uZWxpbmcnLFxuICAgIHR5cGVWYWx1ZTogJ2xvY2FsLXNjcmlwdC13aXRoLWJhc3Rpb24tdHVubmVsaW5nJyxcbiAgICBwcm9wc1R5cGU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdMb2NhbFNjcmlwdFdpdGhCYXN0aW9uVHVubmVsaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIC8vIExvZyBGb3J3YXJkaW5nXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdodHRwLWVuZHBvaW50JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwRW5kcG9pbnRMb2dGb3J3YXJkaW5nJyxcbiAgICBzb3VyY2VGaWxlOiAnX19oZWxwZXJzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIaWdobGlnaHRMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdoaWdobGlnaHQnLFxuICAgIHByb3BzVHlwZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmdQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0hpZ2hsaWdodExvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0RhdGFkb2dMb2dGb3J3YXJkaW5nJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhZG9nJyxcbiAgICBwcm9wc1R5cGU6ICdEYXRhZG9nTG9nRm9yd2FyZGluZ1Byb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnRGF0YWRvZ0xvZ0ZvcndhcmRpbmcnLFxuICAgIHNvdXJjZUZpbGU6ICdfX2hlbHBlcnMuZC50cydcbiAgfSxcbiAgLy8gQnVja2V0IExpZmVjeWNsZSBSdWxlc1xuICB7XG4gICAgY2xhc3NOYW1lOiAnRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHR5cGVWYWx1ZTogJ2V4cGlyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0V4cGlyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0V4cGlyYXRpb25MaWZlY3ljbGVSdWxlJyxcbiAgICBzb3VyY2VGaWxlOiAnYnVja2V0cy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTm9uQ3VycmVudFZlcnNpb25FeHBpcmF0aW9uTGlmZWN5Y2xlUnVsZScsXG4gICAgdHlwZVZhbHVlOiAnbm9uLWN1cnJlbnQtdmVyc2lvbi1leHBpcmF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdOb25DdXJyZW50VmVyc2lvbkV4cGlyYXRpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ05vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUnLFxuICAgIHNvdXJjZUZpbGU6ICdidWNrZXRzLmQudHMnXG4gIH0sXG4gIC8vIEVGUyBNb3VudHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0NvbnRhaW5lckVmc01vdW50JyxcbiAgICB0eXBlVmFsdWU6ICdlZnMnLFxuICAgIHByb3BzVHlwZTogJ0NvbnRhaW5lckVmc01vdW50UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDb250YWluZXJFZnNNb3VudCcsXG4gICAgc291cmNlRmlsZTogJ19faGVscGVycy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRWZzTW91bnQnLFxuICAgIHR5cGVWYWx1ZTogJ2VmcycsXG4gICAgcHJvcHNUeXBlOiAnTGFtYmRhRWZzTW91bnRQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUVmc01vdW50JyxcbiAgICBzb3VyY2VGaWxlOiAnZnVuY3Rpb25zLmQudHMnXG4gIH0sXG4gIC8vIEF1dGhvcml6ZXJzXG4gIHtcbiAgICBjbGFzc05hbWU6ICdDb2duaXRvQXV0aG9yaXplcicsXG4gICAgdHlwZVZhbHVlOiAnY29nbml0bycsXG4gICAgcHJvcHNUeXBlOiAnQ29nbml0b0F1dGhvcml6ZXJQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ29nbml0b0F1dGhvcml6ZXInLFxuICAgIHNvdXJjZUZpbGU6ICd1c2VyLXBvb2xzLmQudHMnXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdMYW1iZGFBdXRob3JpemVyJyxcbiAgICB0eXBlVmFsdWU6ICdsYW1iZGEnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUF1dGhvcml6ZXJQcm9wZXJ0aWVzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhQXV0aG9yaXplcicsXG4gICAgc291cmNlRmlsZTogJ3VzZXItcG9vbHMuZC50cydcbiAgfSxcbiAgLy8gQWxhcm0gVHJpZ2dlcnNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlci1jdXN0b20nLFxuICAgIHByb3BzVHlwZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyQ3VzdG9tVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJDdXN0b21UcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm0tbWV0cmljcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSBiYXNlZCBvbiBhbnkgQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciBDbG91ZFdhdGNoIG1ldHJpYyAoZS5nLiwgY29ubmVjdGlvbiBjb3VudHMsIHJlcXVlc3QgY291bnRzLCB0YXJnZXQgcmVzcG9uc2UgdGltZXMpLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnYXBwbGljYXRpb24tbG9hZC1iYWxhbmNlci1lcnJvci1yYXRlJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckVycm9yUmF0ZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0FwcGxpY2F0aW9uTG9hZEJhbGFuY2VyRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzpcbiAgICAgICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGVycm9yIHJhdGUgKHBlcmNlbnRhZ2Ugb2YgNHh4LzV4eCByZXNwb25zZXMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdhcHBsaWNhdGlvbi1sb2FkLWJhbGFuY2VyLXVuaGVhbHRoeS10YXJnZXRzJyxcbiAgICBwcm9wc1R5cGU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdBcHBsaWNhdGlvbkxvYWRCYWxhbmNlclVuaGVhbHRoeVRhcmdldHNUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gdGhlIHBlcmNlbnRhZ2Ugb2YgdW5oZWFsdGh5IHRhcmdldHMgYmVoaW5kIHRoZSBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ2h0dHAtYXBpLWdhdGV3YXktZXJyb3ItcmF0ZScsXG4gICAgcHJvcHNUeXBlOiAnSHR0cEFwaUdhdGV3YXlFcnJvclJhdGVUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgSFRUUCBBUEkgR2F0ZXdheSBlcnJvciByYXRlIChwZXJjZW50YWdlIG9mIDR4eC81eHggcmVzcG9uc2VzKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnSHR0cEFwaUdhdGV3YXlMYXRlbmN5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnaHR0cC1hcGktZ2F0ZXdheS1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdIdHRwQXBpR2F0ZXdheUxhdGVuY3lUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gSFRUUCBBUEkgR2F0ZXdheSBsYXRlbmN5IGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4gTGF0ZW5jeSBpcyBtZWFzdXJlZCBmcm9tIHJlcXVlc3QgcmVjZWlwdCB0byByZXNwb25zZSBzZW50LidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtcmVhZC1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VSZWFkTGF0ZW5jeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZVJlYWRMYXRlbmN5VHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2UgcmVhZCBsYXRlbmN5IChhdmVyYWdlIHRpbWUgZm9yIHJlYWQgSS9PIG9wZXJhdGlvbnMpIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS13cml0ZS1sYXRlbmN5JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOlxuICAgICAgJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2Ugd3JpdGUgbGF0ZW5jeSAoYXZlcmFnZSB0aW1lIGZvciB3cml0ZSBJL08gb3BlcmF0aW9ucykgZXhjZWVkcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtY3B1LXV0aWxpemF0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDUFVVdGlsaXphdGlvblRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUNQVVV0aWxpemF0aW9uVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gZGF0YWJhc2UgQ1BVIHV0aWxpemF0aW9uIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCBwZXJjZW50YWdlLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnZGF0YWJhc2UtZnJlZS1zdG9yYWdlJyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VGcmVlU3RvcmFnZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlcicsXG4gICAgc291cmNlRmlsZTogJ2FsYXJtcy5kLnRzJyxcbiAgICBqc2RvYzogJ1RyaWdnZXJzIGFuIGFsYXJtIHdoZW4gYXZhaWxhYmxlIGRhdGFiYXNlIHN0b3JhZ2UgZmFsbHMgYmVsb3cgdGhlIHRocmVzaG9sZCAoaW4gTUIpLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1mcmVlLW1lbW9yeScsXG4gICAgcHJvcHNUeXBlOiAnUmVsYXRpb25hbERhdGFiYXNlRnJlZU1lbW9yeVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1JlbGF0aW9uYWxEYXRhYmFzZUZyZWVNZW1vcnlUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBhdmFpbGFibGUgZGF0YWJhc2UgbWVtb3J5IGZhbGxzIGJlbG93IHRoZSB0aHJlc2hvbGQgKGluIE1CKS4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdkYXRhYmFzZS1jb25uZWN0aW9uLWNvdW50JyxcbiAgICBwcm9wc1R5cGU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uQ291bnRUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgbnVtYmVyIG9mIGRhdGFiYXNlIGNvbm5lY3Rpb25zIGV4Y2VlZHMgdGhlIHRocmVzaG9sZC4nXG4gIH0sXG4gIHtcbiAgICBjbGFzc05hbWU6ICdTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXInLFxuICAgIHR5cGVWYWx1ZTogJ3Nxcy1xdWV1ZS1yZWNlaXZlZC1tZXNzYWdlcy1jb3VudCcsXG4gICAgcHJvcHNUeXBlOiAnU3FzUXVldWVSZWNlaXZlZE1lc3NhZ2VzQ291bnRUcmlnZ2VyUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdTcXNRdWV1ZVJlY2VpdmVkTWVzc2FnZXNDb3VudFRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6ICdUcmlnZ2VycyBhbiBhbGFybSB3aGVuIHRoZSBudW1iZXIgb2YgbWVzc2FnZXMgcmVjZWl2ZWQgZnJvbSBhbiBTUVMgcXVldWUgY3Jvc3NlcyB0aGUgdGhyZXNob2xkLidcbiAgfSxcbiAge1xuICAgIGNsYXNzTmFtZTogJ1Nxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdzcXMtcXVldWUtbm90LWVtcHR5JyxcbiAgICBwcm9wc1R5cGU6ICdTcXNRdWV1ZU5vdEVtcHR5VHJpZ2dlcicsXG4gICAgaW50ZXJmYWNlTmFtZTogJ1Nxc1F1ZXVlTm90RW1wdHlUcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIHR5cGVPbmx5OiB0cnVlLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gaWYgdGhlIFNRUyBxdWV1ZSBpcyBub3QgZW1wdHkuIFVzZWZ1bCBmb3IgbW9uaXRvcmluZyBkZWFkLWxldHRlciBxdWV1ZXMuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRXJyb3JSYXRlVHJpZ2dlcicsXG4gICAgdHlwZVZhbHVlOiAnbGFtYmRhLWVycm9yLXJhdGUnLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUVycm9yUmF0ZVRyaWdnZXJQcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0xhbWJkYUVycm9yUmF0ZVRyaWdnZXInLFxuICAgIHNvdXJjZUZpbGU6ICdhbGFybXMuZC50cycsXG4gICAganNkb2M6XG4gICAgICAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGVycm9yIHJhdGUgKHBlcmNlbnRhZ2Ugb2YgZmFpbGVkIGludm9jYXRpb25zKSBleGNlZWRzIHRoZSB0aHJlc2hvbGQuJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnTGFtYmRhRHVyYXRpb25UcmlnZ2VyJyxcbiAgICB0eXBlVmFsdWU6ICdsYW1iZGEtZHVyYXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0xhbWJkYUR1cmF0aW9uVHJpZ2dlclByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnTGFtYmRhRHVyYXRpb25UcmlnZ2VyJyxcbiAgICBzb3VyY2VGaWxlOiAnYWxhcm1zLmQudHMnLFxuICAgIGpzZG9jOiAnVHJpZ2dlcnMgYW4gYWxhcm0gd2hlbiBMYW1iZGEgZnVuY3Rpb24gZXhlY3V0aW9uIGR1cmF0aW9uIGV4Y2VlZHMgdGhlIHRocmVzaG9sZCAoaW4gbWlsbGlzZWNvbmRzKS4nXG4gIH0sXG4gIC8vIEN1c3RvbSBSZXNvdXJjZXNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvbicsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWRlZmluaXRpb24nLFxuICAgIHByb3BzVHlwZTogJ0N1c3RvbVJlc291cmNlRGVmaW5pdGlvblByb3BzJyxcbiAgICBpbnRlcmZhY2VOYW1lOiAnQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICB7XG4gICAgY2xhc3NOYW1lOiAnQ3VzdG9tUmVzb3VyY2VJbnN0YW5jZScsXG4gICAgdHlwZVZhbHVlOiAnY3VzdG9tLXJlc291cmNlLWluc3RhbmNlJyxcbiAgICBwcm9wc1R5cGU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlUHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdDdXN0b21SZXNvdXJjZUluc3RhbmNlJyxcbiAgICBzb3VyY2VGaWxlOiAnY3VzdG9tLXJlc291cmNlcy5kLnRzJ1xuICB9LFxuICAvLyBEZXBsb3ltZW50IFNjcmlwdHNcbiAge1xuICAgIGNsYXNzTmFtZTogJ0RlcGxveW1lbnRTY3JpcHQnLFxuICAgIHR5cGVWYWx1ZTogJ2RlcGxveW1lbnQtc2NyaXB0JyxcbiAgICBwcm9wc1R5cGU6ICdEZXBsb3ltZW50U2NyaXB0UHJvcHMnLFxuICAgIGludGVyZmFjZU5hbWU6ICdEZXBsb3ltZW50U2NyaXB0JyxcbiAgICBzb3VyY2VGaWxlOiAnZGVwbG95bWVudC1zY3JpcHQuZC50cydcbiAgfSxcbiAgLy8gRWRnZSBMYW1iZGEgRnVuY3Rpb25zXG4gIHtcbiAgICBjbGFzc05hbWU6ICdFZGdlTGFtYmRhRnVuY3Rpb24nLFxuICAgIHR5cGVWYWx1ZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9uJyxcbiAgICBwcm9wc1R5cGU6ICdFZGdlTGFtYmRhRnVuY3Rpb25Qcm9wcycsXG4gICAgaW50ZXJmYWNlTmFtZTogJ0VkZ2VMYW1iZGFGdW5jdGlvbicsXG4gICAgc291cmNlRmlsZTogJ2VkZ2UtbGFtYmRhLWZ1bmN0aW9ucy5kLnRzJ1xuICB9XG5dO1xuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBIRUxQRVIgRlVOQ1RJT05TID09PT09PT09PT09PT09PT09PT09XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUJ5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogUmVzb3VyY2VEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHIpID0+IHIuY2xhc3NOYW1lID09PSBjbGFzc05hbWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVzb3VyY2VCeVR5cGUocmVzb3VyY2VUeXBlOiBzdHJpbmcpOiBSZXNvdXJjZURlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmluZCgocikgPT4gci5yZXNvdXJjZVR5cGUgPT09IHJlc291cmNlVHlwZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZXNXaXRoQXVnbWVudGVkUHJvcHMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLmhhc0F1Z21lbnRlZFByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlc291cmNlc1dpdGhPdmVycmlkZXMoKTogUmVzb3VyY2VEZWZpbml0aW9uW10ge1xuICByZXR1cm4gUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKChyKSA9PiByLnN1cHBvcnRzT3ZlcnJpZGVzICE9PSBmYWxzZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUeXBlUHJvcGVydGllc0J5Q2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maW5kKCh0KSA9PiB0LmNsYXNzTmFtZSA9PT0gY2xhc3NOYW1lKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFR5cGVQcm9wZXJ0aWVzQnlUeXBlVmFsdWUodHlwZVZhbHVlOiBzdHJpbmcpOiBUeXBlUHJvcGVydGllc0RlZmluaXRpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbmQoKHQpID0+IHQudHlwZVZhbHVlID09PSB0eXBlVmFsdWUpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PSBERVJJVkVEIE1BUFBJTkdTID09PT09PT09PT09PT09PT09PT09XG5cbi8qKiBSZXNvdXJjZSB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBSRVNPVVJDRV9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBSZXNvdXJjZUNsYXNzTmFtZT4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLm1hcCgocikgPT4gW3IucmVzb3VyY2VUeXBlLCByLmNsYXNzTmFtZV0pXG4pO1xuXG4vKiogU2NyaXB0IHR5cGUg4oaSIGNsYXNzIG5hbWUgbWFwcGluZyAqL1xuZXhwb3J0IGNvbnN0IFNDUklQVF9UWVBFX1RPX0NMQVNTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMuZmlsdGVyKFxuICAgICh0KSA9PiB0LnNvdXJjZUZpbGUgPT09ICdfX2hlbHBlcnMuZC50cycgJiYgdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ1NjcmlwdCcpXG4gICkubWFwKCh0KSA9PiBbdC50eXBlVmFsdWUsIHQuY2xhc3NOYW1lXSlcbik7XG5cbi8qKiBQYWNrYWdpbmcgdHlwZSDihpIgY2xhc3MgbmFtZSBtYXBwaW5nICovXG5leHBvcnQgY29uc3QgUEFDS0FHSU5HX1RZUEVfVE9fQ0xBU1M6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gIE1JU0NfVFlQRVNfQ09OVkVSVElCTEVfVE9fQ0xBU1NFUy5maWx0ZXIoKHQpID0+IHQuc291cmNlRmlsZSA9PT0gJ2RlcGxveW1lbnQtYXJ0aWZhY3RzLmQudHMnKS5tYXAoKHQpID0+IFtcbiAgICB0LnR5cGVWYWx1ZSxcbiAgICB0LmNsYXNzTmFtZVxuICBdKVxuKTtcblxuLyoqIEVuZ2luZSB0eXBlIOKGkiBjbGFzcyBuYW1lIG1hcHBpbmcgKi9cbmV4cG9ydCBjb25zdCBFTkdJTkVfVFlQRV9UT19DTEFTUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLmZpbHRlcigodCkgPT4gdC5wcm9wc1R5cGUuaW5jbHVkZXMoJ0VuZ2luZScpKS5tYXAoKHQpID0+IFt0LnR5cGVWYWx1ZSwgdC5jbGFzc05hbWVdKVxuKTtcbiIsCiAgICAiLy8gUmUtZXhwb3J0IGZyb20gY2xhc3MtY29uZmlnIChzaW5nbGUgc291cmNlIG9mIHRydXRoKVxuZXhwb3J0IHtcbiAgZ2V0UmVzb3VyY2VCeUNsYXNzTmFtZSxcbiAgZ2V0UmVzb3VyY2VCeVR5cGUsXG4gIGdldFJlc291cmNlc1dpdGhBdWdtZW50ZWRQcm9wcyxcbiAgZ2V0UmVzb3VyY2VzV2l0aE92ZXJyaWRlcyxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeUNsYXNzTmFtZSxcbiAgZ2V0VHlwZVByb3BlcnRpZXNCeVR5cGVWYWx1ZSxcbiAgTUlTQ19UWVBFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTLFxuICB0eXBlIFJlc291cmNlRGVmaW5pdGlvbixcbiAgUkVTT1VSQ0VTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMsXG4gIHR5cGUgVHlwZVByb3BlcnRpZXNEZWZpbml0aW9uXG59IGZyb20gJy4vY2xhc3MtY29uZmlnJztcblxuLy8gVGhlc2UgY2FuIGJlIHJlZmVyZW5jZWQgdXNpbmcgJFJlc291cmNlUGFyYW0gZGlyZWN0aXZlXG5leHBvcnQgY29uc3QgUkVGRVJFTkNFQUJMRV9QQVJBTVM6IFJlY29yZDxzdHJpbmcsIEFycmF5PHsgbmFtZTogc3RyaW5nOyBkZXNjcmlwdGlvbjogc3RyaW5nIH0+PiA9IHtcbiAgJ3JlbGF0aW9uYWwtZGF0YWJhc2UnOiBbXG4gICAgeyBuYW1lOiAnY29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnQ29ubmVjdGlvbiBzdHJpbmcgZm9yIHRoZSBkYXRhYmFzZScgfSxcbiAgICB7IG5hbWU6ICdqZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnSkRCQyBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ0RhdGFiYXNlIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnZGJOYW1lJywgZGVzY3JpcHRpb246ICdEYXRhYmFzZSBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBlbmRwb2ludCBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckNvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ1JlYWRlciBjb25uZWN0aW9uIHN0cmluZycgfSxcbiAgICB7IG5hbWU6ICdyZWFkZXJKZGJjQ29ubmVjdGlvblN0cmluZycsIGRlc2NyaXB0aW9uOiAnUmVhZGVyIEpEQkMgY29ubmVjdGlvbiBzdHJpbmcnIH1cbiAgXSxcbiAgJ3dlYi1zZXJ2aWNlJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnV2ViIHNlcnZpY2UgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfVxuICBdLFxuICAncHJpdmF0ZS1zZXJ2aWNlJzogW3sgbmFtZTogJ2FkZHJlc3MnLCBkZXNjcmlwdGlvbjogJ1ByaXZhdGUgc2VydmljZSBhZGRyZXNzJyB9XSxcbiAgYnVja2V0OiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnQnVja2V0IG5hbWUnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdCdWNrZXQgQVJOJyB9XG4gIF0sXG4gICdkeW5hbW8tZGItdGFibGUnOiBbXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnVGFibGUgbmFtZScgfSxcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1RhYmxlIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdHJlYW1Bcm4nLCBkZXNjcmlwdGlvbjogJ1N0cmVhbSBBUk4nIH1cbiAgXSxcbiAgZnVuY3Rpb246IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0Z1bmN0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfVxuICBdLFxuICAnYmF0Y2gtam9iJzogW1xuICAgIHsgbmFtZTogJ2pvYkRlZmluaXRpb25Bcm4nLCBkZXNjcmlwdGlvbjogJ0pvYiBkZWZpbml0aW9uIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzdGF0ZU1hY2hpbmVBcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2xvZ0dyb3VwQXJuJywgZGVzY3JpcHRpb246ICdMb2cgZ3JvdXAgQVJOJyB9XG4gIF0sXG4gICdldmVudC1idXMnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdFdmVudCBidXMgQVJOJyB9LFxuICAgIHsgbmFtZTogJ2FyY2hpdmVBcm4nLCBkZXNjcmlwdGlvbjogJ0FyY2hpdmUgQVJOJyB9XG4gIF0sXG4gICdodHRwLWFwaS1nYXRld2F5JzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgZG9tYWluJyB9LFxuICAgIHsgbmFtZTogJ3VybCcsIGRlc2NyaXB0aW9uOiAnQVBJIEdhdGV3YXkgVVJMJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpbnMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW5zJyB9LFxuICAgIHsgbmFtZTogJ2N1c3RvbURvbWFpblVybHMnLCBkZXNjcmlwdGlvbjogJ0N1c3RvbSBkb21haW4gVVJMcycgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5VcmwnLCBkZXNjcmlwdGlvbjogJ0ZpcnN0IGN1c3RvbSBkb21haW4gVVJMJyB9XG4gIF0sXG4gICdtb25nby1kYi1hdGxhcy1jbHVzdGVyJzogW3sgbmFtZTogJ2Nvbm5lY3Rpb25TdHJpbmcnLCBkZXNjcmlwdGlvbjogJ01vbmdvREIgY29ubmVjdGlvbiBzdHJpbmcnIH1dLFxuICAncmVkaXMtY2x1c3Rlcic6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdSZWRpcyBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3JlYWRlckhvc3QnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHJlYWRlciBob3N0JyB9LFxuICAgIHsgbmFtZTogJ3BvcnQnLCBkZXNjcmlwdGlvbjogJ1JlZGlzIHBvcnQnIH0sXG4gICAgeyBuYW1lOiAnc2hhcmRpbmcnLCBkZXNjcmlwdGlvbjogJ1NoYXJkaW5nIHN0YXR1cycgfVxuICBdLFxuICAnc3RhdGUtbWFjaGluZSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgQVJOJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1N0YXRlIG1hY2hpbmUgbmFtZScgfVxuICBdLFxuICAndXNlci1hdXRoLXBvb2wnOiBbXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ1VzZXIgcG9vbCBJRCcgfSxcbiAgICB7IG5hbWU6ICdjbGllbnRJZCcsIGRlc2NyaXB0aW9uOiAnQ2xpZW50IElEJyB9LFxuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnVXNlciBwb29sIGRvbWFpbicgfVxuICBdLFxuICAndXBzdGFzaC1yZWRpcyc6IFtcbiAgICB7IG5hbWU6ICdob3N0JywgZGVzY3JpcHRpb246ICdVcHN0YXNoIFJlZGlzIGhvc3QnIH0sXG4gICAgeyBuYW1lOiAncG9ydCcsIGRlc2NyaXB0aW9uOiAnVXBzdGFzaCBSZWRpcyBwb3J0JyB9LFxuICAgIHsgbmFtZTogJ3Bhc3N3b3JkJywgZGVzY3JpcHRpb246ICdQYXNzd29yZCcgfSxcbiAgICB7IG5hbWU6ICdyZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JFU1QgdG9rZW4nIH0sXG4gICAgeyBuYW1lOiAncmVhZE9ubHlSZXN0VG9rZW4nLCBkZXNjcmlwdGlvbjogJ1JlYWQtb25seSBSRVNUIHRva2VuJyB9LFxuICAgIHsgbmFtZTogJ3Jlc3RVcmwnLCBkZXNjcmlwdGlvbjogJ1JFU1QgVVJMJyB9LFxuICAgIHsgbmFtZTogJ3JlZGlzVXJsJywgZGVzY3JpcHRpb246ICdSZWRpcyBVUkwnIH1cbiAgXSxcbiAgJ2FwcGxpY2F0aW9uLWxvYWQtYmFsYW5jZXInOiBbXG4gICAgeyBuYW1lOiAnZG9tYWluJywgZGVzY3JpcHRpb246ICdMb2FkIGJhbGFuY2VyIGRvbWFpbicgfSxcbiAgICB7IG5hbWU6ICdjdXN0b21Eb21haW5zJywgZGVzY3JpcHRpb246ICdDdXN0b20gZG9tYWlucycgfVxuICBdLFxuICAnbmV0d29yay1sb2FkLWJhbGFuY2VyJzogW1xuICAgIHsgbmFtZTogJ2RvbWFpbicsIGRlc2NyaXB0aW9uOiAnTG9hZCBiYWxhbmNlciBkb21haW4nIH0sXG4gICAgeyBuYW1lOiAnY3VzdG9tRG9tYWlucycsIGRlc2NyaXB0aW9uOiAnQ3VzdG9tIGRvbWFpbnMnIH1cbiAgXSxcbiAgJ2hvc3RpbmctYnVja2V0JzogW1xuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ0J1Y2tldCBuYW1lJyB9LFxuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnQnVja2V0IEFSTicgfVxuICBdLFxuICAnd2ViLWFwcC1maXJld2FsbCc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0ZpcmV3YWxsIEFSTicgfSxcbiAgICB7IG5hbWU6ICdzY29wZScsIGRlc2NyaXB0aW9uOiAnRmlyZXdhbGwgc2NvcGUnIH1cbiAgXSxcbiAgJ29wZW4tc2VhcmNoLWRvbWFpbic6IFtcbiAgICB7IG5hbWU6ICdkb21haW5FbmRwb2ludCcsIGRlc2NyaXB0aW9uOiAnT3BlblNlYXJjaCBkb21haW4gZW5kcG9pbnQnIH0sXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdEb21haW4gQVJOJyB9XG4gIF0sXG4gICdlZnMtZmlsZXN5c3RlbSc6IFtcbiAgICB7IG5hbWU6ICdhcm4nLCBkZXNjcmlwdGlvbjogJ0VGUyBBUk4nIH0sXG4gICAgeyBuYW1lOiAnaWQnLCBkZXNjcmlwdGlvbjogJ0VGUyBJRCcgfVxuICBdLFxuICAnbmV4dGpzLXdlYic6IFt7IG5hbWU6ICd1cmwnLCBkZXNjcmlwdGlvbjogJ1dlYnNpdGUgVVJMJyB9XSxcbiAgJ211bHRpLWNvbnRhaW5lci13b3JrbG9hZCc6IFt7IG5hbWU6ICdsb2dHcm91cEFybicsIGRlc2NyaXB0aW9uOiAnTG9nIGdyb3VwIEFSTicgfV0sXG4gICdzcXMtcXVldWUnOiBbXG4gICAgeyBuYW1lOiAnYXJuJywgZGVzY3JpcHRpb246ICdRdWV1ZSBBUk4nIH0sXG4gICAgeyBuYW1lOiAndXJsJywgZGVzY3JpcHRpb246ICdRdWV1ZSBVUkwnIH0sXG4gICAgeyBuYW1lOiAnbmFtZScsIGRlc2NyaXB0aW9uOiAnUXVldWUgbmFtZScgfVxuICBdLFxuICAnc25zLXRvcGljJzogW1xuICAgIHsgbmFtZTogJ2FybicsIGRlc2NyaXB0aW9uOiAnVG9waWMgQVJOJyB9LFxuICAgIHsgbmFtZTogJ25hbWUnLCBkZXNjcmlwdGlvbjogJ1RvcGljIG5hbWUnIH1cbiAgXVxufTtcbiIsCiAgICAiaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUNsYXNzTmFtZSB9IGZyb20gJy4vY2xhc3MtY29uZmlnJztcbmltcG9ydCB7IFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTIH0gZnJvbSAnLi9jbGFzcy1jb25maWcnO1xuaW1wb3J0IHsgQmFzZVJlc291cmNlIH0gZnJvbSAnLi9jb25maWcnO1xuaW1wb3J0IHsgUkVGRVJFTkNFQUJMRV9QQVJBTVMgfSBmcm9tICcuL3Jlc291cmNlLW1ldGFkYXRhJztcblxuLy8gUHJpdmF0ZSBzeW1ib2wgZm9yIGFjY2Vzc2luZyB0aGUgaW50ZXJuYWwgcGFyYW0gcmVmZXJlbmNlIG1ldGhvZFxuY29uc3QgZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2wgPSBTeW1ib2wuZm9yKCdzdGFja3RhcGU6Z2V0UGFyYW1SZWZlcmVuY2UnKTtcblxuLyoqXG4gKiBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIHJlc291cmNlIGNsYXNzIHdpdGggcmVmZXJlbmNlYWJsZSBwYXJhbWV0ZXJzLlxuICogU3VwcG9ydHMgdHdvIGNhbGxpbmcgY29udmVudGlvbnM6XG4gKiAtIG5ldyBSZXNvdXJjZShwcm9wZXJ0aWVzKSAtIG5hbWUgZGVyaXZlZCBmcm9tIG9iamVjdCBrZXkgaW4gcmVzb3VyY2VzXG4gKiAtIG5ldyBSZXNvdXJjZShuYW1lLCBwcm9wZXJ0aWVzKSAtIGV4cGxpY2l0IG5hbWUgKGJhY2t3YXJkcyBjb21wYXRpYmxlKVxuICovXG5mdW5jdGlvbiBjcmVhdGVSZXNvdXJjZUNsYXNzKGNsYXNzTmFtZTogUmVzb3VyY2VDbGFzc05hbWUsIHJlc291cmNlVHlwZTogc3RyaW5nKTogYW55IHtcbiAgLy8gQ3JlYXRlIHRoZSBjbGFzcyBkeW5hbWljYWxseVxuICBjb25zdCBSZXNvdXJjZUNsYXNzID0gY2xhc3MgZXh0ZW5kcyBCYXNlUmVzb3VyY2Uge1xuICAgIGNvbnN0cnVjdG9yKG5hbWVPclByb3BlcnRpZXM6IHN0cmluZyB8IGFueSwgcHJvcGVydGllcz86IGFueSkge1xuICAgICAgaWYgKHR5cGVvZiBuYW1lT3JQcm9wZXJ0aWVzID09PSAnc3RyaW5nJykge1xuICAgICAgICAvLyBPbGQgc3R5bGU6IChuYW1lLCBwcm9wZXJ0aWVzKSAtIGV4cGxpY2l0IG5hbWVcbiAgICAgICAgc3VwZXIobmFtZU9yUHJvcGVydGllcywgcmVzb3VyY2VUeXBlLCBwcm9wZXJ0aWVzKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIE5ldyBzdHlsZTogKHByb3BlcnRpZXMpIC0gbmFtZSB3aWxsIGJlIHNldCBmcm9tIG9iamVjdCBrZXlcbiAgICAgICAgc3VwZXIodW5kZWZpbmVkLCByZXNvdXJjZVR5cGUsIG5hbWVPclByb3BlcnRpZXMpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICAvLyBTZXQgdGhlIGNsYXNzIG5hbWUgZm9yIGJldHRlciBkZWJ1Z2dpbmdcbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJlc291cmNlQ2xhc3MsICduYW1lJywgeyB2YWx1ZTogY2xhc3NOYW1lIH0pO1xuXG4gIC8vIEFkZCByZWZlcmVuY2VhYmxlIHBhcmFtZXRlciBnZXR0ZXJzXG4gIGNvbnN0IHJlZmVyZW5jZWFibGVQYXJhbXMgPSBSRUZFUkVOQ0VBQkxFX1BBUkFNU1tyZXNvdXJjZVR5cGVdIHx8IFtdO1xuICBmb3IgKGNvbnN0IHBhcmFtIG9mIHJlZmVyZW5jZWFibGVQYXJhbXMpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoUmVzb3VyY2VDbGFzcy5wcm90b3R5cGUsIHBhcmFtLm5hbWUsIHtcbiAgICAgIGdldCh0aGlzOiBCYXNlUmVzb3VyY2UpIHtcbiAgICAgICAgcmV0dXJuICh0aGlzIGFzIGFueSlbZ2V0UGFyYW1SZWZlcmVuY2VTeW1ib2xdKHBhcmFtLm5hbWUpO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gUmVzb3VyY2VDbGFzcztcbn1cblxuLy8gQ3JlYXRlIGFsbCByZXNvdXJjZSBjbGFzc2VzIGZyb20gY29uZmlnXG5jb25zdCBSRVNPVVJDRV9DTEFTU0VTOiBSZWNvcmQ8c3RyaW5nLCBSZXR1cm5UeXBlPHR5cGVvZiBjcmVhdGVSZXNvdXJjZUNsYXNzPj4gPSB7fTtcbmZvciAoY29uc3QgZGVmIG9mIFJFU09VUkNFU19DT05WRVJUSUJMRV9UT19DTEFTU0VTKSB7XG4gIC8vIFVzZSAnTGFtYmRhRnVuY3Rpb24nIGFzIHRoZSBleHBvcnRlZCBuYW1lIGZvciAnRnVuY3Rpb24nIHRvIGF2b2lkIEpTIHJlc2VydmVkIHdvcmQgaXNzdWVzXG4gIFJFU09VUkNFX0NMQVNTRVNbZGVmLmNsYXNzTmFtZSBhcyBhbnldID0gY3JlYXRlUmVzb3VyY2VDbGFzcyhkZWYuY2xhc3NOYW1lLCBkZWYucmVzb3VyY2VUeXBlKTtcbn1cblxuLy8gRXhwb3J0IGFsbCByZXNvdXJjZSBjbGFzc2VzIGZvciBuYW1lZCBpbXBvcnRzXG5leHBvcnQgY29uc3Qge1xuICBSZWxhdGlvbmFsRGF0YWJhc2UsXG4gIFdlYlNlcnZpY2UsXG4gIFByaXZhdGVTZXJ2aWNlLFxuICBXb3JrZXJTZXJ2aWNlLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkLFxuICBMYW1iZGFGdW5jdGlvbixcbiAgQmF0Y2hKb2IsXG4gIEJ1Y2tldCxcbiAgSG9zdGluZ0J1Y2tldCxcbiAgRHluYW1vRGJUYWJsZSxcbiAgRXZlbnRCdXMsXG4gIEh0dHBBcGlHYXRld2F5LFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlcixcbiAgTmV0d29ya0xvYWRCYWxhbmNlcixcbiAgUmVkaXNDbHVzdGVyLFxuICBNb25nb0RiQXRsYXNDbHVzdGVyLFxuICBTdGF0ZU1hY2hpbmUsXG4gIFVzZXJBdXRoUG9vbCxcbiAgVXBzdGFzaFJlZGlzLFxuICBTcXNRdWV1ZSxcbiAgU25zVG9waWMsXG4gIFdlYkFwcEZpcmV3YWxsLFxuICBPcGVuU2VhcmNoRG9tYWluLFxuICBFZnNGaWxlc3lzdGVtLFxuICBOZXh0anNXZWIsXG4gIEJhc3Rpb25cbn0gPSBSRVNPVVJDRV9DTEFTU0VTO1xuIiwKICAgICJpbXBvcnQgeyBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMgfSBmcm9tICcuL2NsYXNzLWNvbmZpZyc7XG5pbXBvcnQgeyBCYXNlVHlwZVByb3BlcnRpZXMsIEJhc2VUeXBlT25seSB9IGZyb20gJy4vY29uZmlnJztcblxuZnVuY3Rpb24gY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcyhjbGFzc05hbWU6IHN0cmluZywgdHlwZVZhbHVlOiBzdHJpbmcsIHR5cGVPbmx5PzogYm9vbGVhbik6IGFueSB7XG4gIGlmICh0eXBlT25seSkge1xuICAgIGNvbnN0IFR5cGVPbmx5Q2xhc3MgPSBjbGFzcyBleHRlbmRzIEJhc2VUeXBlT25seSB7XG4gICAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIodHlwZVZhbHVlKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShUeXBlT25seUNsYXNzLCAnbmFtZScsIHsgdmFsdWU6IGNsYXNzTmFtZSB9KTtcbiAgICByZXR1cm4gVHlwZU9ubHlDbGFzcztcbiAgfVxuXG4gIGNvbnN0IFR5cGVQcm9wZXJ0aWVzQ2xhc3MgPSBjbGFzcyBleHRlbmRzIEJhc2VUeXBlUHJvcGVydGllcyB7XG4gICAgY29uc3RydWN0b3IocHJvcGVydGllczogYW55KSB7XG4gICAgICBzdXBlcih0eXBlVmFsdWUsIHByb3BlcnRpZXMpO1xuICAgIH1cbiAgfTtcblxuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZVByb3BlcnRpZXNDbGFzcywgJ25hbWUnLCB7IHZhbHVlOiBjbGFzc05hbWUgfSk7XG4gIHJldHVybiBUeXBlUHJvcGVydGllc0NsYXNzO1xufVxuXG4vLyBDcmVhdGUgYWxsIHR5cGUtcHJvcGVydGllcyBjbGFzc2VzIGZyb20gY29uZmlnXG5jb25zdCBUWVBFX1BST1BFUlRJRVNfQ0xBU1NFUzogUmVjb3JkPHN0cmluZywgUmV0dXJuVHlwZTx0eXBlb2YgY3JlYXRlVHlwZVByb3BlcnRpZXNDbGFzcz4+ID0ge307XG5mb3IgKGNvbnN0IGRlZiBvZiBNSVNDX1RZUEVTX0NPTlZFUlRJQkxFX1RPX0NMQVNTRVMpIHtcbiAgVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVNbZGVmLmNsYXNzTmFtZV0gPSBjcmVhdGVUeXBlUHJvcGVydGllc0NsYXNzKGRlZi5jbGFzc05hbWUsIGRlZi50eXBlVmFsdWUsIGRlZi50eXBlT25seSk7XG59XG5cbi8vIEV4cG9ydCBhbGwgY2xhc3NlcyBmb3IgbmFtZWQgaW1wb3J0cyAoVHlwZVNjcmlwdCBuZWVkcyB0aGVzZSBleHBsaWNpdCBleHBvcnRzKVxuZXhwb3J0IGNvbnN0IHtcbiAgLy8gRGF0YWJhc2UgRW5naW5lc1xuICBSZHNFbmdpbmVQb3N0Z3JlcyxcbiAgUmRzRW5naW5lTWFyaWFkYixcbiAgUmRzRW5naW5lTXlzcWwsXG4gIFJkc0VuZ2luZU9yYWNsZUVFLFxuICBSZHNFbmdpbmVPcmFjbGVTRTIsXG4gIFJkc0VuZ2luZVNxbFNlcnZlckVFLFxuICBSZHNFbmdpbmVTcWxTZXJ2ZXJFWCxcbiAgUmRzRW5naW5lU3FsU2VydmVyU0UsXG4gIFJkc0VuZ2luZVNxbFNlcnZlcldlYixcbiAgQXVyb3JhRW5naW5lUG9zdGdyZXNxbCxcbiAgQXVyb3JhRW5naW5lTXlzcWwsXG4gIEF1cm9yYVNlcnZlcmxlc3NFbmdpbmVQb3N0Z3Jlc3FsLFxuICBBdXJvcmFTZXJ2ZXJsZXNzRW5naW5lTXlzcWwsXG4gIEF1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZVBvc3RncmVzcWwsXG4gIEF1cm9yYVNlcnZlcmxlc3NWMkVuZ2luZU15c3FsLFxuICAvLyBMYW1iZGEgUGFja2FnaW5nXG4gIFN0YWNrdGFwZUxhbWJkYUJ1aWxkcGFja1BhY2thZ2luZyxcbiAgQ3VzdG9tQXJ0aWZhY3RMYW1iZGFQYWNrYWdpbmcsXG4gIC8vIENvbnRhaW5lciBQYWNrYWdpbmdcbiAgUHJlYnVpbHRJbWFnZVBhY2thZ2luZyxcbiAgQ3VzdG9tRG9ja2VyZmlsZVBhY2thZ2luZyxcbiAgRXh0ZXJuYWxCdWlsZHBhY2tQYWNrYWdpbmcsXG4gIE5peHBhY2tzUGFja2FnaW5nLFxuICBTdGFja3RhcGVJbWFnZUJ1aWxkcGFja1BhY2thZ2luZyxcbiAgLy8gTGFtYmRhIEZ1bmN0aW9uIEV2ZW50cy9JbnRlZ3JhdGlvbnNcbiAgSHR0cEFwaUludGVncmF0aW9uLFxuICBTM0ludGVncmF0aW9uLFxuICBTY2hlZHVsZUludGVncmF0aW9uLFxuICBTbnNJbnRlZ3JhdGlvbixcbiAgU3FzSW50ZWdyYXRpb24sXG4gIEtpbmVzaXNJbnRlZ3JhdGlvbixcbiAgRHluYW1vRGJJbnRlZ3JhdGlvbixcbiAgQ2xvdWR3YXRjaExvZ0ludGVncmF0aW9uLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckludGVncmF0aW9uLFxuICBFdmVudEJ1c0ludGVncmF0aW9uLFxuICBLYWZrYVRvcGljSW50ZWdyYXRpb24sXG4gIEFsYXJtSW50ZWdyYXRpb24sXG4gIElvdEludGVncmF0aW9uLFxuICAvLyBDRE4gUm91dGVzXG4gIENkbkxvYWRCYWxhbmNlclJvdXRlLFxuICBDZG5IdHRwQXBpR2F0ZXdheVJvdXRlLFxuICBDZG5MYW1iZGFGdW5jdGlvblJvdXRlLFxuICBDZG5DdXN0b21Eb21haW5Sb3V0ZSxcbiAgQ2RuQnVja2V0Um91dGUsXG4gIC8vIFdlYiBBcHAgRmlyZXdhbGwgUnVsZXNcbiAgTWFuYWdlZFJ1bGVHcm91cCxcbiAgQ3VzdG9tUnVsZUdyb3VwLFxuICBSYXRlQmFzZWRSdWxlLFxuICAvLyBTUVMgUXVldWUgSW50ZWdyYXRpb25zXG4gIFNxc1F1ZXVlRXZlbnRCdXNJbnRlZ3JhdGlvbixcbiAgLy8gTXVsdGkgQ29udGFpbmVyIFdvcmtsb2FkIEludGVncmF0aW9uc1xuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkSHR0cEFwaUludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkTG9hZEJhbGFuY2VySW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWROZXR3b3JrTG9hZEJhbGFuY2VySW50ZWdyYXRpb24sXG4gIE11bHRpQ29udGFpbmVyV29ya2xvYWRJbnRlcm5hbEludGVncmF0aW9uLFxuICBNdWx0aUNvbnRhaW5lcldvcmtsb2FkU2VydmljZUNvbm5lY3RJbnRlZ3JhdGlvbixcbiAgLy8gU2NyaXB0c1xuICBMb2NhbFNjcmlwdCxcbiAgQmFzdGlvblNjcmlwdCxcbiAgTG9jYWxTY3JpcHRXaXRoQmFzdGlvblR1bm5lbGluZyxcbiAgLy8gTG9nIEZvcndhcmRpbmdcbiAgSHR0cEVuZHBvaW50TG9nRm9yd2FyZGluZyxcbiAgSGlnaGxpZ2h0TG9nRm9yd2FyZGluZyxcbiAgRGF0YWRvZ0xvZ0ZvcndhcmRpbmcsXG4gIC8vIEJ1Y2tldCBMaWZlY3ljbGUgUnVsZXNcbiAgRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUsXG4gIE5vbkN1cnJlbnRWZXJzaW9uRXhwaXJhdGlvbkxpZmVjeWNsZVJ1bGUsXG4gIC8vIEVGUyBNb3VudHNcbiAgQ29udGFpbmVyRWZzTW91bnQsXG4gIExhbWJkYUVmc01vdW50LFxuICAvLyBBdXRob3JpemVyc1xuICBDb2duaXRvQXV0aG9yaXplcixcbiAgTGFtYmRhQXV0aG9yaXplcixcbiAgLy8gQWxhcm0gVHJpZ2dlcnNcbiAgQXBwbGljYXRpb25Mb2FkQmFsYW5jZXJDdXN0b21UcmlnZ2VyLFxuICBBcHBsaWNhdGlvbkxvYWRCYWxhbmNlckVycm9yUmF0ZVRyaWdnZXIsXG4gIEFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyVW5oZWFsdGh5VGFyZ2V0c1RyaWdnZXIsXG4gIEh0dHBBcGlHYXRld2F5RXJyb3JSYXRlVHJpZ2dlcixcbiAgSHR0cEFwaUdhdGV3YXlMYXRlbmN5VHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlUmVhZExhdGVuY3lUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VXcml0ZUxhdGVuY3lUcmlnZ2VyLFxuICBSZWxhdGlvbmFsRGF0YWJhc2VDUFVVdGlsaXphdGlvblRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZUZyZWVTdG9yYWdlVHJpZ2dlcixcbiAgUmVsYXRpb25hbERhdGFiYXNlRnJlZU1lbW9yeVRyaWdnZXIsXG4gIFJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb25Db3VudFRyaWdnZXIsXG4gIFNxc1F1ZXVlUmVjZWl2ZWRNZXNzYWdlc0NvdW50VHJpZ2dlcixcbiAgU3FzUXVldWVOb3RFbXB0eVRyaWdnZXIsXG4gIExhbWJkYUVycm9yUmF0ZVRyaWdnZXIsXG4gIExhbWJkYUR1cmF0aW9uVHJpZ2dlcixcbiAgLy8gQ3VzdG9tIFJlc291cmNlc1xuICBDdXN0b21SZXNvdXJjZURlZmluaXRpb24sXG4gIEN1c3RvbVJlc291cmNlSW5zdGFuY2UsXG4gIC8vIERlcGxveW1lbnQgU2NyaXB0c1xuICBEZXBsb3ltZW50U2NyaXB0LFxuICAvLyBFZGdlIExhbWJkYSBGdW5jdGlvbnNcbiAgRWRnZUxhbWJkYUZ1bmN0aW9uXG59ID0gVFlQRV9QUk9QRVJUSUVTX0NMQVNTRVM7XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxJQUFNLHVCQUF1QjtBQUM3QixJQUFNLHVCQUF1QjtBQUU3QixJQUFNLDJCQUEyQjtBQUVqQyxJQUFNLHVCQUF1QjtBQUU3QixJQUFNLHNCQUFzQjtBQUU1QixJQUFNLG1DQUFtQztBQUlsQyxTQUFTLEtBQUssQ0FBQyxPQUFPO0FBQUEsRUFDekIsSUFBSSxTQUFTLE1BQU0sS0FBSztBQUFBLEVBQ3hCLFNBQVMsT0FDSixRQUFRLHNCQUFzQixtQkFBbUIsRUFDakQsUUFBUSxzQkFBc0IsbUJBQW1CO0FBQUEsRUFDdEQsU0FBUyxPQUFPLFFBQVEsc0JBQXNCLE1BQUk7QUFBQSxFQUNsRCxJQUFJLFFBQVE7QUFBQSxFQUNaLElB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QUNaO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsSUFDRjtBQUFBLEVBQ0Y7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxjQUFjO0FBQUEsSUFDZCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixtQkFBbUI7QUFBQSxJQUNuQixjQUFjO0FBQUEsTUFDWjtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FBQUEsTUFDQTtBQUFBLE1BQ0E7QUFBQSxNQUNBO0FB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QUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUVBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osT0FDRTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixPQUNFO0FBQUEsRUFDSjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLE9BQ0U7QUFBQSxFQUNKO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osT0FDRTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixPQUNFO0FBQUEsRUFDSjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osT0FDRTtBQUFBLEVBQ0o7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixPQUFPO0FBQUEsRUFDVDtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFDQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLElBQ1osVUFBVTtBQUFBLElBQ1YsT0FBTztBQUFBLEVBQ1Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsSUFDWixPQUNFO0FBQUEsRUFDSjtBQUFBLEVBQ0E7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxJQUNaLE9BQU87QUFBQSxFQUNUO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFBQSxFQUNBO0FBQUEsSUFDRSxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxXQUFXO0FBQUEsSUFDWCxlQUFlO0FBQUEsSUFDZixZQUFZO0FBQUEsRUFDZDtBQUFBLEVBRUE7QUFBQSxJQUNFLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLFdBQVc7QUFBQSxJQUNYLGVBQWU7QUFBQSxJQUNmLFlBQVk7QUFBQSxFQUNkO0FBQUEsRUFFQTtBQUFBLElBQ0UsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsV0FBVztBQUFBLElBQ1gsZUFBZTtBQUFBLElBQ2YsWUFBWTtBQUFBLEVBQ2Q7QUFDRjtBQStCTyxJQUFNLHlCQUE0RCxPQUFPLFlBQzlFLGlDQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsY0FBYyxFQUFFLFNBQVMsQ0FBQyxDQUMzRTtBQUdPLElBQU0sdUJBQStDLE9BQU8sWUFDakUsa0NBQWtDLE9BQ2hDLENBQUMsTUFBTSxFQUFFLGVBQWUsb0JBQW9CLEVBQUUsVUFBVSxTQUFTLFFBQVEsQ0FDM0UsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN6QztBQUdPLElBQU0sMEJBQWtELE9BQU8sWUFDcEUsa0NBQWtDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSwyQkFBMkIsRUFBRSxJQUFJLENBQUMsTUFBTTtBQUFBLEVBQ3ZHLEVBQUU7QUFBQSxFQUNGLEVBQUU7QUFDSixDQUFDLENBQ0g7QUFHTyxJQUFNLHVCQUErQyxPQUFPLFlBQ2pFLGtDQUFrQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsU0FBUyxRQUFRLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUN2SDs7O0FDcC9CTyxJQUFNLHVCQUFxRjtBQUFBLEVBQ2hHLHVCQUF1QjtBQUFBLElBQ3JCLEVBQUUsTUFBTSxvQkFBb0IsYUFBYSxxQ0FBcUM7QUFBQSxJQUM5RSxFQUFFLE1BQU0sd0JBQXdCLGFBQWEseUJBQXlCO0FBQUEsSUFDdEUsRUFBRSxNQUFNLFFBQVEsYUFBYSxnQkFBZ0I7QUFBQSxJQUM3QyxFQUFFLE1BQU0sUUFBUSxhQUFhLGdCQUFnQjtBQUFBLElBQzdDLEVBQUUsTUFBTSxVQUFVLGFBQWEsZ0JBQWdCO0FBQUEsSUFDL0MsRUFBRSxNQUFNLGNBQWMsYUFBYSx1QkFBdUI7QUFBQSxJQUMxRCxFQUFFLE1BQU0sMEJBQTBCLGFBQWEsMkJBQTJCO0FBQUEsSUFDMUUsRUFBRSxNQUFNLDhCQUE4QixhQUFhLGdDQUFnQztBQUFBLEVBQ3JGO0FBQUEsRUFDQSxlQUFlO0FBQUEsSUFDYixFQUFFLE1BQU0sVUFBVSxhQUFhLHFCQUFxQjtBQUFBLElBQ3BELEVBQUUsTUFBTSxPQUFPLGFBQWEsa0JBQWtCO0FBQUEsSUFDOUMsRUFBRSxNQUFNLGlCQUFpQixhQUFhLGlCQUFpQjtBQUFBLElBQ3ZELEVBQUUsTUFBTSxvQkFBb0IsYUFBYSxxQkFBcUI7QUFBQSxFQUNoRTtBQUFBLEVBQ0EsbUJBQW1CLENBQUMsRUFBRSxNQUFNLFdBQVcsYUFBYSwwQkFBMEIsQ0FBQztBQUFBLEVBQy9FLFFBQVE7QUFBQSxJQUNOLEVBQUUsTUFBTSxRQUFRLGFBQWEsY0FBYztBQUFBLElBQzNDLEVBQUUsTUFBTSxPQUFPLGFBQWEsYUFBYTtBQUFBLEVBQzNDO0FBQUEsRUFDQSxtQkFBbUI7QUFBQSxJQUNqQixFQUFFLE1BQU0sUUFBUSxhQUFhLGFBQWE7QUFBQSxJQUMxQyxFQUFFLE1BQU0sT0FBTyxhQUFhLFlBQVk7QUFBQSxJQUN4QyxFQUFFLE1BQU0sYUFBYSxhQUFhLGFBQWE7QUFBQSxFQUNqRDtBQUFBLEVBQ0EsVUFBVTtBQUFBLElBQ1IsRUFBRSxNQUFNLE9BQU8sYUFBYSxlQUFlO0FBQUEsSUFDM0MsRUFBRSxNQUFNLGVBQWUsYUFBYSxnQkFBZ0I7QUFBQSxFQUN0RDtBQUFBLEVBQ0EsYUFBYTtBQUFBLElBQ1gsRUFBRSxNQUFNLG9CQUFvQixhQUFhLHFCQUFxQjtBQUFBLElBQzlELEVBQUUsTUFBTSxtQkFBbUIsYUFBYSxvQkFBb0I7QUFBQSxJQUM1RCxFQUFFLE1BQU0sZUFBZSxhQUFhLGdCQUFnQjtBQUFBLEVBQ3REO0FBQUEsRUFDQSxhQUFhO0FBQUEsSUFDWCxFQUFFLE1BQU0sT0FBTyxhQUFhLGdCQUFnQjtBQUFBLElBQzVDLEVBQUUsTUFBTSxjQUFjLGFBQWEsY0FBYztBQUFBLEVBQ25EO0FBQUEsRUFDQSxvQkFBb0I7QUFBQSxJQUNsQixFQUFFLE1BQU0sVUFBVSxhQUFhLHFCQUFxQjtBQUFBLElBQ3BELEVBQUUsTUFBTSxPQUFPLGFBQWEsa0JBQWtCO0FBQUEsSUFDOUMsRUFBRSxNQUFNLGlCQUFpQixhQUFhLGlCQUFpQjtBQUFBLElBQ3ZELEVBQUUsTUFBTSxvQkFBb0IsYUFBYSxxQkFBcUI7QUFBQSxJQUM5RCxFQUFFLE1BQU0sbUJBQW1CLGFBQWEsMEJBQTBCO0FBQUEsRUFDcEU7QUFBQSxFQUNBLDBCQUEwQixDQUFDLEVBQUUsTUFBTSxvQkFBb0IsYUFBYSw0QkFBNEIsQ0FBQztBQUFBLEVBQ2pHLGlCQUFpQjtBQUFBLElBQ2YsRUFBRSxNQUFNLFFBQVEsYUFBYSxhQUFhO0FBQUEsSUFDMUMsRUFBRSxNQUFNLGNBQWMsYUFBYSxvQkFBb0I7QUFBQSxJQUN2RCxFQUFFLE1BQU0sUUFBUSxhQUFhLGFBQWE7QUFBQSxJQUMxQyxFQUFFLE1BQU0sWUFBWSxhQUFhLGtCQUFrQjtBQUFBLEVBQ3JEO0FBQUEsRUFDQSxpQkFBaUI7QUFBQSxJQUNmLEVBQUUsTUFBTSxPQUFPLGFBQWEsb0JBQW9CO0FBQUEsSUFDaEQsRUFBRSxNQUFNLFFBQVEsYUFBYSxxQkFBcUI7QUFBQSxFQUNwRDtBQUFBLEVBQ0Esa0JBQWtCO0FBQUEsSUFDaEIsRUFBRSxNQUFNLE1BQU0sYUFBYSxlQUFlO0FBQUEsSUFDMUMsRUFBRSxNQUFNLFlBQVksYUFBYSxZQUFZO0FBQUEsSUFDN0MsRUFBRSxNQUFNLFVBQVUsYUFBYSxtQkFBbUI7QUFBQSxFQUNwRDtBQUFBLEVBQ0EsaUJBQWlCO0FBQUEsSUFDZixFQUFFLE1BQU0sUUFBUSxhQUFhLHFCQUFxQjtBQUFBLElBQ2xELEVBQUUsTUFBTSxRQUFRLGFBQWEscUJBQXFCO0FBQUEsSUFDbEQsRUFBRSxNQUFNLFlBQVksYUFBYSxXQUFXO0FBQUEsSUFDNUMsRUFBRSxNQUFNLGFBQWEsYUFBYSxhQUFhO0FBQUEsSUFDL0MsRUFBRSxNQUFNLHFCQUFxQixhQUFhLHVCQUF1QjtBQUFBLElBQ2pFLEVBQUUsTUFBTSxXQUFXLGFBQWEsV0FBVztBQUFBLElBQzNDLEVBQUUsTUFBTSxZQUFZLGFBQWEsWUFBWTtBQUFBLEVBQy9DO0FBQUEsRUFDQSw2QkFBNkI7QUFBQSxJQUMzQixFQUFFLE1BQU0sVUFBVSxhQUFhLHVCQUF1QjtBQUFBLElBQ3RELEVBQUUsTUFBTSxpQkFBaUIsYUFBYSxpQkFBaUI7QUFBQSxFQUN6RDtBQUFBLEVBQ0EseUJBQXlCO0FBQUEsSUFDdkIsRUFBRSxNQUFNLFVBQVUsYUFBYSx1QkFBdUI7QUFBQSxJQUN0RCxFQUFFLE1BQU0saUJBQWlCLGFBQWEsaUJBQWlCO0FBQUEsRUFDekQ7QUFBQSxFQUNBLGtCQUFrQjtBQUFBLElBQ2hCLEVBQUUsTUFBTSxRQUFRLGFBQWEsY0FBYztBQUFBLElBQzNDLEVBQUUsTUFBTSxPQUFPLGFBQWEsYUFBYTtBQUFBLEVBQzNDO0FBQUEsRUFDQSxvQkFBb0I7QUFBQSxJQUNsQixFQUFFLE1BQU0sT0FBTyxhQUFhLGVBQWU7QUFBQSxJQUMzQyxFQUFFLE1BQU0sU0FBUyxhQUFhLGlCQUFpQjtBQUFBLEVBQ2pEO0FBQUEsRUFDQSxzQkFBc0I7QUFBQSxJQUNwQixFQUFFLE1BQU0sa0JBQWtCLGFBQWEsNkJBQTZCO0FBQUEsSUFDcEUsRUFBRSxNQUFNLE9BQU8sYUFBYSxhQUFhO0FBQUEsRUFDM0M7QUFBQSxFQUNBLGtCQUFrQjtBQUFBLElBQ2hCLEVBQUUsTUFBTSxPQUFPLGFBQWEsVUFBVTtBQUFBLElBQ3RDLEVBQUUsTUFBTSxNQUFNLGFBQWEsU0FBUztBQUFBLEVBQ3RDO0FBQUEsRUFDQSxjQUFjLENBQUMsRUFBRSxNQUFNLE9BQU8sYUFBYSxjQUFjLENBQUM7QUFBQSxFQUMxRCw0QkFBNEIsQ0FBQyxFQUFFLE1BQU0sZUFBZSxhQUFhLGdCQUFnQixDQUFDO0FBQUEsRUFDbEYsYUFBYTtBQUFBLElBQ1gsRUFBRSxNQUFNLE9BQU8sYUFBYSxZQUFZO0FBQUEsSUFDeEMsRUFBRSxNQUFNLE9BQU8sYUFBYSxZQUFZO0FBQUEsSUFDeEMsRUFBRSxNQUFNLFFBQVEsYUFBYSxhQUFhO0FBQUEsRUFDNUM7QUFBQSxFQUNBLGFBQWE7QUFBQSxJQUNYLEVBQUUsTUFBTSxPQUFPLGFBQWEsWUFBWTtBQUFBLElBQ3hDLEVBQUUsTUFBTSxRQUFRLGFBQWEsYUFBYTtBQUFBLEVBQzVDO0FBQ0Y7OztBQ3BIQSxJQUFNLDJCQUEwQixPQUFPLElBQUksNkJBQTZCO0FBUXhFLFNBQVMsbUJBQW1CLENBQUMsV0FBOEIsY0FBMkI7QUFBQSxFQUVwRixNQUFNLGdCQUFnQixjQUFjLGFBQWE7QUFBQSxJQUMvQyxXQUFXLENBQUMsa0JBQWdDLFlBQWtCO0FBQUEsTUFDNUQsSUFBSSxPQUFPLHFCQUFxQixVQUFVO0FBQUEsUUFFeEMsTUFBTSxrQkFBa0IsY0FBYyxVQUFVO0FBQUEsTUFDbEQsRUFBTztBQUFBLFFBRUwsTUFBTSxXQUFXLGNBQWMsZ0JBQWdCO0FBQUE7QUFBQTtBQUFBLEVBR3JEO0FBQUEsRUFHQSxPQUFPLGVBQWUsZUFBZSxRQUFRLEVBQUUsT0FBTyxVQUFVLENBQUM7QUFBQSxFQUdqRSxNQUFNLHNCQUFzQixxQkFBcUIsaUJBQWlCLENBQUM7QUFBQSxFQUNuRSxXQUFXLFNBQVMscUJBQXFCO0FBQUEsSUFDdkMsT0FBTyxlQUFlLGNBQWMsV0FBVyxNQUFNLE1BQU07QUFBQSxNQUN6RCxHQUFHLEdBQXFCO0FBQUEsUUFDdEIsT0FBUSxLQUFhLDBCQUF5QixNQUFNLElBQUk7QUFBQTtBQUFBLE1BRTFELFlBQVk7QUFBQSxNQUNaLGNBQWM7QUFBQSxJQUNoQixDQUFDO0FBQUEsRUFDSDtBQUFBLEVBRUEsT0FBTztBQUFBO0FBSVQsSUFBTSxtQkFBMkUsQ0FBQztBQUNsRixXQUFXLE9BQU8sa0NBQWtDO0FBQUEsRUFFbEQsaUJBQWlCLElBQUksYUFBb0Isb0JBQW9CLElBQUksV0FBVyxJQUFJLFlBQVk7QUFDOUY7QUFHTztBQUFBLEVBQ0w7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsSUFDRTs7QUM5RUosU0FBUyx5QkFBeUIsQ0FBQyxXQUFtQixXQUFtQixVQUF5QjtBQUFBLEVBQ2hHLElBQUksVUFBVTtBQUFBLElBQ1osTUFBTSxnQkFBZ0IsY0FBYyxhQUFhO0FBQUEsTUFDL0MsV0FBVyxHQUFHO0FBQUEsUUFDWixNQUFNLFNBQVM7QUFBQTtBQUFBLElBRW5CO0FBQUEsSUFDQSxPQUFPLGVBQWUsZUFBZSxRQUFRLEVBQUUsT0FBTyxVQUFVLENBQUM7QUFBQSxJQUNqRSxPQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsTUFBTSxzQkFBc0IsY0FBYyxtQkFBbUI7QUFBQSxJQUMzRCxXQUFXLENBQUMsWUFBaUI7QUFBQSxNQUMzQixNQUFNLFdBQVcsVUFBVTtBQUFBO0FBQUEsRUFFL0I7QUFBQSxFQUVBLE9BQU8sZUFBZSxxQkFBcUIsUUFBUSxFQUFFLE9BQU8sVUFBVSxDQUFDO0FBQUEsRUFDdkUsT0FBTztBQUFBO0FBSVQsSUFBTSwwQkFBd0YsQ0FBQztBQUMvRixXQUFXLE9BQU8sbUNBQW1DO0FBQUEsRUFDbkQsd0JBQXdCLElBQUksYUFBYSwwQkFBMEIsSUFBSSxXQUFXLElBQUksV0FBVyxJQUFJLFFBQVE7QUFDL0c7QUFHTztBQUFBLEVBRUw7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUNBO0FBQUEsRUFFQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUNBO0FBQUEsRUFDQTtBQUFBLEVBQ0E7QUFBQSxFQUVBO0FBQUEsRUFDQTtBQUFBLEVBRUE7QUFBQSxFQUVBO0FBQUEsSUFDRTsiLAogICJkZWJ1Z0lkIjogIjU3QzM4ODY4MkU1Mzk1MkE2NDc1NkUyMTY0NzU2RTIxIiwKICAibmFtZXMiOiBbXQp9
|