ctt-babylon 0.12.22 → 0.12.23
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/esm2022/lib/components/core/babylon-ba-sli-img-txt/babylon-ba-sli-img-txt.component.mjs +89 -3
- package/esm2022/lib/components/core/babylon-breadcrumb-v2/babylon-breadcrumb-v2.component.mjs +5 -3
- package/esm2022/lib/components/core/babylon-fo-addr-cont-img/babylon-fo-addr-cont-img.component.mjs +27 -3
- package/esm2022/lib/components/core/babylon-fo-c3-img-txt/babylon-fo-c3-img-txt.component.mjs +11 -3
- package/esm2022/lib/components/core/babylon-fo-lis-c4-txt/babylon-fo-lis-c4-txt.component.mjs +3 -3
- package/esm2022/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.mjs +1 -8
- package/esm2022/lib/components/core/babylon-language-modal-v3/babylon-language-modal-v3.component.mjs +4 -3
- package/esm2022/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.mjs +11 -3
- package/esm2022/lib/components/external/core/c2-txt-cta-des/c2-txt-cta-des.component.mjs +3 -3
- package/esm2022/lib/components/external/core/c2-txt-rrss/c2-txt-rrss.component.mjs +11 -3
- package/esm2022/lib/components/external/core/c4-txt-svg/c4-txt-svg.component.mjs +3 -3
- package/esm2022/lib/components/external/core/car-c2-txt-cta/car-c2-txt-cta.component.mjs +3 -3
- package/esm2022/lib/components/external/core/lis-c2-img-txt-cv4/lis-c2-img-txt-cv4.component.mjs +3 -3
- package/esm2022/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.mjs +79 -14
- package/esm2022/lib/components/external/core/sli-c1-img-svg/sli-c1-img-svg.component.mjs +3 -3
- package/esm2022/lib/components/external/core/sli-c2-img-txt-cv5/sli-c2-img-txt-cv5.component.mjs +3 -3
- package/esm2022/lib/components/external/core/sli-c2-txt-car-img-c/sli-c2-txt-car-img-c.component.mjs +3 -3
- package/esm2022/lib/interfaces/babylon-button.interface.mjs +1 -1
- package/esm2022/lib/interfaces/babylon-hotel.interface.mjs +1 -1
- package/esm2022/lib/interfaces/babylon-text-info.interface.mjs +1 -1
- package/esm2022/lib/services/mapper/mapper.service.mjs +3 -1
- package/esm2022/lib/utils/utils.mjs +15 -3
- package/fesm2022/ctt-babylon.mjs +255 -50
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-ba-sli-img-txt/babylon-ba-sli-img-txt.component.d.ts +19 -0
- package/lib/components/core/babylon-fo-addr-cont-img/babylon-fo-addr-cont-img.component.d.ts +3 -0
- package/lib/components/core/babylon-fo-c3-img-txt/babylon-fo-c3-img-txt.component.d.ts +2 -1
- package/lib/components/core/babylon-he-svg-list/babylon-he-svg-list.component.d.ts +0 -3
- package/lib/components/core/babylon-list-c3-img-txt/babylon-list-c3-img-txt.component.d.ts +2 -1
- package/lib/components/external/core/c2-txt-rrss/c2-txt-rrss.component.d.ts +1 -0
- package/lib/components/external/core/lis-c4-txt-des-cta/lis-c4-txt-des-cta.component.d.ts +12 -2
- package/lib/interfaces/babylon-button.interface.d.ts +1 -0
- package/lib/interfaces/babylon-hotel.interface.d.ts +1 -0
- package/lib/interfaces/babylon-text-info.interface.d.ts +1 -0
- package/lib/utils/utils.d.ts +5 -0
- package/package.json +1 -1
|
@@ -47,7 +47,7 @@ export class Utils {
|
|
|
47
47
|
}
|
|
48
48
|
static mapButtons(button, buttonType) {
|
|
49
49
|
if (Array.isArray(button)) {
|
|
50
|
-
return button?.map((btn) => btn.label?.length ||
|
|
50
|
+
return Utils.sortButtonsByOrder(button?.map((btn) => btn.label?.length ||
|
|
51
51
|
btn.linkValue?.length ||
|
|
52
52
|
btn.link_value?.length
|
|
53
53
|
? {
|
|
@@ -78,8 +78,9 @@ export class Utils {
|
|
|
78
78
|
})(),
|
|
79
79
|
icon: btn.icon ? `icon-` + btn?.icon : undefined,
|
|
80
80
|
order: btn.order?.toString(),
|
|
81
|
+
vars: btn.linkVars?.toString(),
|
|
81
82
|
}
|
|
82
|
-
: undefined);
|
|
83
|
+
: undefined), { keepOriginal: true });
|
|
83
84
|
}
|
|
84
85
|
else {
|
|
85
86
|
return undefined;
|
|
@@ -163,5 +164,16 @@ export class Utils {
|
|
|
163
164
|
return fallback;
|
|
164
165
|
return Array.from({ length: n }, (_, i) => i + 1);
|
|
165
166
|
}
|
|
167
|
+
static sortButtonsByOrder(buttons, opts) {
|
|
168
|
+
const arr = (buttons ?? []).filter((b) => !!b);
|
|
169
|
+
if (!arr.length)
|
|
170
|
+
return [];
|
|
171
|
+
const list = opts?.keepOriginal ? [...arr] : arr;
|
|
172
|
+
const toNum = (v) => {
|
|
173
|
+
const n = Number(v);
|
|
174
|
+
return Number.isFinite(n) ? n : Number.POSITIVE_INFINITY;
|
|
175
|
+
};
|
|
176
|
+
return list.sort((a, b) => toNum(a.order) - toNum(b.order));
|
|
177
|
+
}
|
|
166
178
|
}
|
|
167
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFF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QUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ1YsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2YsQ0FBQztJQUVELE1BQU0sQ0FBQyxrQkFBa0IsQ0FDckIsS0FBcUIsRUFDckIsV0FBcUIsRUFBRTtRQUV2QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sUUFBUSxDQUFDO1FBRTVCLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLFFBQVEsQ0FBQztRQUU1QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxRQUFRLENBQUM7UUFFL0MsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JLCBCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyB7XG4gICAgLy8gRnVuY2nDs24gcGFyYSBjb252ZXJ0aXIgdW5hIGNhZGVuYSBkZSBzbmFrZV9jYXNlIGEgY2FtZWxDYXNlXG4gICAgc3RhdGljIHNuYWtlVG9DYW1lbChzbmFrZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNuYWtlLnJlcGxhY2UoLyhfXFx3KS9nLCAobWF0Y2hlcykgPT4gbWF0Y2hlc1sxXS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICAvLyBGdW5jacOzbiBwYXJhIGNvbnZlcnRpciBsYXMgcHJvcGllZGFkZXMgZGUgdW4gb2JqZXRvIGRlIHNuYWtlX2Nhc2UgYSBjYW1lbENhc2VcbiAgICBzdGF0aWMgY29udmVydE9iamVjdEtleXNUb0NhbWVsQ2FzZShvYmo6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmoubWFwKChpdGVtKSA9PiB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2UoaXRlbSkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgb2JqICYmXG4gICAgICAgICAgICB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FtZWxLZXkgPSB0aGlzLnNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtjYW1lbEtleV0gPSB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2Uob2JqW2tleV0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcm1hdExpbmtUeXBlKGxpbmtUeXBlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbGlua1R5cGUgPT09ICdleHRlcm5hbF9saW5rJyB8fCBsaW5rVHlwZSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgPyAnZXh0ZXJuYWwnXG4gICAgICAgICAgICA6IGxpbmtUeXBlID09PSAnaW50ZXJuYWxfbGluaycgfHwgbGlua1R5cGUgPT09ICdpbnRlcm5hbCdcbiAgICAgICAgICAgICAgPyAnaW50ZXJuYWwnXG4gICAgICAgICAgICAgIDogbGlua1R5cGU7XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbmRDb21wb25lbnQ8VD4oXG4gICAgICAgIGJvZHk6IEJvZHlDb21wb25lbnQ8VD5bXSxcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBib2R5LmZpbmQoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Py5uYW1lPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lKVxuICAgICAgICAgICAgPy5wcm9wcztcbiAgICB9XG5cbiAgICBzdGF0aWMgY29udmVydFRvQmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5vcm1hbGl6ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHRcbiAgICAgICAgICAgID8ubm9ybWFsaXplKCdORkQnKSAvLyBEZXNjb21wb25lIGxvcyBjYXJhY3RlcmVzIGNvbiBhY2VudG9zXG4gICAgICAgICAgICA/LnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyBFbGltaW5hIGxvcyBhY2VudG9zXG4gICAgICAgICAgICA/LnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG1hcEJ1dHRvbnMoXG4gICAgICAgIGJ1dHRvbjogYW55IHwgYW55W10gfCB1bmRlZmluZWQgfCBudWxsLFxuICAgICAgICBidXR0b25UeXBlPzogc3RyaW5nXG4gICAgKTogKEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkKVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIGJ1dHRvbj8ubWFwKChidG4pID0+XG4gICAgICAgICAgICAgICAgYnRuLmxhYmVsPy5sZW5ndGggfHxcbiAgICAgICAgICAgICAgICBidG4ubGlua1ZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgICAgICAgICBidG4ubGlua192YWx1ZT8ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICAgID8gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYnV0dG9uVHlwZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsOiBidG4/LmxhYmVsID8/IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua1R5cGU6IFV0aWxzLmZvcm1hdExpbmtUeXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdMaW5rID0gYnRuLmxpbmtWYWx1ZSA/PyBidG4ubGlua192YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyYXdMaW5rICYmIHR5cGVvZiByYXdMaW5rID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHRyaW1tZWRWYWx1ZSA9IHJhd0xpbms/LmVuZHNXaXRoKCcvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHJhd0xpbms7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL15cXCs/WzAtOV0rJC8udGVzdCh0cmltbWVkVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVzIHVuIHRlbMOpZm9ub1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJpbW1lZFZhbHVlLnN0YXJ0c1dpdGgoJ3RlbDonKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYHRlbDoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFcyB1biBjb3JyZW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCdtYWlsdG86JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gdHJpbW1lZFZhbHVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGBtYWlsdG86JHt0cmltbWVkVmFsdWV9YDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJpbW1lZFZhbHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSkoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWNvbjogYnRuLmljb24gPyBgaWNvbi1gICsgYnRuPy5pY29uIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogYnRuLm9yZGVyPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgIH0gYXMgQmFieWxvbkJ1dHRvbkkpXG4gICAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHN0YXRpYyBsb2FkU2NyaXB0JChzcmM6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8dm9pZD4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYHNjcmlwdFtzcmM9XCIke3NyY31cIl1gKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gc3JjO1xuICAgICAgICAgICAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICAgICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuXG4gICAgICAgICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQoKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgc2NyaXB0Lm9uZXJyb3IgPSAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IobmV3IEVycm9yKGBFcnJvciBsb2FkaW5nIHNjcmlwdDogJHtzcmN9YCkpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGF0aWMgbG9hZFN0eWxlJChocmVmOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlPGJvb2xlYW4+KChvYnNlcnZlcikgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXhpc3RpbmcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGBsaW5rW2hyZWY9XCIke2hyZWZ9XCJdYCk7XG4gICAgICAgICAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpO1xuICAgICAgICAgICAgbGluay5yZWwgPSAncHJlbG9hZCc7XG4gICAgICAgICAgICBsaW5rLmhyZWYgPSBocmVmO1xuICAgICAgICAgICAgbGluay5hcyA9ICdzdHlsZSc7XG4gICAgICAgICAgICBsaW5rLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsaW5rLm9ubG9hZCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICBsaW5rLnJlbCA9ICdzdHlsZXNoZWV0JztcblxuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBsaW5rLm9uZXJyb3IgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoXG4gICAgICAgICAgICAgICAgICAgIG5ldyBFcnJvcihgTm8gc2UgcHVkbyBwcmVjYXJnYXIgZWwgZXN0aWxvOiAke2hyZWZ9YClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rKTtcblxuICAgICAgICAgICAgLy8gb3BjaW9uYWw6IGZhbGxiYWNrIDxub3NjcmlwdD4gKG5vIGxvIG5lY2VzaXRhIEFuZ3VsYXIgcGVybyBsbyBwdWVkZXMgYWdyZWdhcilcbiAgICAgICAgICAgIGNvbnN0IG5vc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbm9zY3JpcHQnKTtcbiAgICAgICAgICAgIG5vc2NyaXB0LmlubmVySFRNTCA9IGA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgaHJlZj1cIiR7aHJlZn1cIj5gO1xuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChub3NjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBzYWZlT3BlbkV4dGVybmFsKHVybDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyB8fCAhdXJsKSByZXR1cm47XG5cbiAgICAgICAgY29uc3Qgd2luID0gd2luZG93Lm9wZW4odXJsLCAnX2JsYW5rJywgJ25vb3BlbmVyLG5vcmVmZXJyZXInKTtcbiAgICAgICAgaWYgKHdpbikgcmV0dXJuO1xuXG4gICAgICAgIC8vIEZhbGxiYWNrIHNpIGJsb3F1ZWFuIHBvcHVwc1xuICAgICAgICBjb25zdCBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICBhLmhyZWYgPSB1cmw7XG4gICAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7XG4gICAgICAgIGEucmVsID0gJ25vb3BlbmVyIG5vcmVmZXJyZXInO1xuICAgICAgICBhLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSk7XG4gICAgICAgIGEuY2xpY2soKTtcbiAgICAgICAgYS5yZW1vdmUoKTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZXh0cmFjdE51bWJlclJhbmdlKFxuICAgICAgICB2YWx1ZT86IHN0cmluZyB8IG51bGwsXG4gICAgICAgIGZhbGxiYWNrOiBudW1iZXJbXSA9IFtdXG4gICAgKTogbnVtYmVyW10ge1xuICAgICAgICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgY29uc3QgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXFxkKy8pO1xuICAgICAgICBpZiAoIW1hdGNoKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgY29uc3QgbiA9IE51bWJlcihtYXRjaFswXSk7XG4gICAgICAgIGlmIChOdW1iZXIuaXNOYU4obikgfHwgbiA8PSAwKSByZXR1cm4gZmFsbGJhY2s7XG5cbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IG4gfSwgKF8sIGkpID0+IGkgKyAxKTtcbiAgICB9XG59XG4iXX0=
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsQyxNQUFNLE9BQU8sS0FBSztJQUNkLDhEQUE4RDtJQUM5RCxNQUFNLENBQUMsWUFBWSxDQUFDLEtBQWE7UUFDN0IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdGQUFnRjtJQUNoRixNQUFNLENBQUMsNEJBQTRCLENBQUMsR0FBUTtRQUN4QyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEIsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNyRTthQUFNLElBQ0gsR0FBRztZQUNILE9BQU8sR0FBRyxLQUFLLFFBQVE7WUFDdkIsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLEVBQzVCO1lBQ0UsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtnQkFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDL0QsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUFF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QUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVqRCxNQUFNLEtBQUssR0FBRyxDQUFDLENBQU0sRUFBVSxFQUFFO1lBQzdCLE1BQU0sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNwQixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDO1FBQzdELENBQUMsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEJhYnlsb25CdXR0b25JLCBCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5cbmV4cG9ydCBjbGFzcyBVdGlscyB7XG4gICAgLy8gRnVuY2nDs24gcGFyYSBjb252ZXJ0aXIgdW5hIGNhZGVuYSBkZSBzbmFrZV9jYXNlIGEgY2FtZWxDYXNlXG4gICAgc3RhdGljIHNuYWtlVG9DYW1lbChzbmFrZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHNuYWtlLnJlcGxhY2UoLyhfXFx3KS9nLCAobWF0Y2hlcykgPT4gbWF0Y2hlc1sxXS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9XG5cbiAgICAvLyBGdW5jacOzbiBwYXJhIGNvbnZlcnRpciBsYXMgcHJvcGllZGFkZXMgZGUgdW4gb2JqZXRvIGRlIHNuYWtlX2Nhc2UgYSBjYW1lbENhc2VcbiAgICBzdGF0aWMgY29udmVydE9iamVjdEtleXNUb0NhbWVsQ2FzZShvYmo6IGFueSk6IGFueSB7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9iaikpIHtcbiAgICAgICAgICAgIHJldHVybiBvYmoubWFwKChpdGVtKSA9PiB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2UoaXRlbSkpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgb2JqICYmXG4gICAgICAgICAgICB0eXBlb2Ygb2JqID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAgICAgb2JqLmNvbnN0cnVjdG9yID09PSBPYmplY3RcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMob2JqKS5yZWR1Y2UoKHJlc3VsdCwga2V5KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2FtZWxLZXkgPSB0aGlzLnNuYWtlVG9DYW1lbChrZXkpO1xuICAgICAgICAgICAgICAgIHJlc3VsdFtjYW1lbEtleV0gPSB0aGlzLmNvbnZlcnRPYmplY3RLZXlzVG9DYW1lbENhc2Uob2JqW2tleV0pO1xuICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICB9LCB7fSBhcyBhbnkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvYmo7XG4gICAgfVxuXG4gICAgc3RhdGljIGZvcm1hdExpbmtUeXBlKGxpbmtUeXBlOiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gbGlua1R5cGUgPT09ICdleHRlcm5hbF9saW5rJyB8fCBsaW5rVHlwZSA9PT0gJ2V4dGVybmFsJ1xuICAgICAgICAgICAgPyAnZXh0ZXJuYWwnXG4gICAgICAgICAgICA6IGxpbmtUeXBlID09PSAnaW50ZXJuYWxfbGluaycgfHwgbGlua1R5cGUgPT09ICdpbnRlcm5hbCdcbiAgICAgICAgICAgICAgPyAnaW50ZXJuYWwnXG4gICAgICAgICAgICAgIDogbGlua1R5cGU7XG4gICAgfVxuXG4gICAgc3RhdGljIGZpbmRDb21wb25lbnQ8VD4oXG4gICAgICAgIGJvZHk6IEJvZHlDb21wb25lbnQ8VD5bXSxcbiAgICAgICAgbmFtZTogc3RyaW5nXG4gICAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBib2R5LmZpbmQoKGNvbXBvbmVudCkgPT4gY29tcG9uZW50Py5uYW1lPy50b0xvd2VyQ2FzZSgpID09PSBuYW1lKVxuICAgICAgICAgICAgPy5wcm9wcztcbiAgICB9XG5cbiAgICBzdGF0aWMgY29udmVydFRvQmFzZTY0KGZpbGU6IEZpbGUpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoZmlsZSk7XG4gICAgICAgICAgICByZWFkZXIub25sb2FkID0gKCkgPT4gcmVzb2x2ZShyZWFkZXIucmVzdWx0IGFzIHN0cmluZyk7XG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcikgPT4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIG5vcm1hbGl6ZVRleHQodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRleHRcbiAgICAgICAgICAgID8ubm9ybWFsaXplKCdORkQnKSAvLyBEZXNjb21wb25lIGxvcyBjYXJhY3RlcmVzIGNvbiBhY2VudG9zXG4gICAgICAgICAgICA/LnJlcGxhY2UoL1tcXHUwMzAwLVxcdTAzNmZdL2csICcnKSAvLyBFbGltaW5hIGxvcyBhY2VudG9zXG4gICAgICAgICAgICA/LnRvTG93ZXJDYXNlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIG1hcEJ1dHRvbnMoXG4gICAgICAgIGJ1dHRvbjogYW55IHwgYW55W10gfCB1bmRlZmluZWQgfCBudWxsLFxuICAgICAgICBidXR0b25UeXBlPzogc3RyaW5nXG4gICAgKTogKEJhYnlsb25CdXR0b25JIHwgdW5kZWZpbmVkKVtdIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYnV0dG9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIFV0aWxzLnNvcnRCdXR0b25zQnlPcmRlcihcbiAgICAgICAgICAgICAgICBidXR0b24/Lm1hcCgoYnRuKSA9PlxuICAgICAgICAgICAgICAgICAgICBidG4ubGFiZWw/Lmxlbmd0aCB8fFxuICAgICAgICAgICAgICAgICAgICBidG4ubGlua1ZhbHVlPy5sZW5ndGggfHxcbiAgICAgICAgICAgICAgICAgICAgYnRuLmxpbmtfdmFsdWU/Lmxlbmd0aFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogYnV0dG9uVHlwZSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogYnRuPy5sYWJlbCA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rVHlwZTogVXRpbHMuZm9ybWF0TGlua1R5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuPy5saW5rVHlwZSA/PyBidG4/LmxpbmtfdHlwZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYXdMaW5rID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnRuLmxpbmtWYWx1ZSA/PyBidG4ubGlua192YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmF3TGluayAmJiB0eXBlb2YgcmF3TGluayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdHJpbW1lZFZhbHVlID0gcmF3TGluaz8uZW5kc1dpdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyByYXdMaW5rLnNsaWNlKDAsIC0xKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiByYXdMaW5rO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXlxcKz9bMC05XSskLy50ZXN0KHRyaW1tZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEVzIHVuIHRlbMOpZm9ub1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWRWYWx1ZS5zdGFydHNXaXRoKCd0ZWw6JylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYHRlbDoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgL15bXlxcc0BdK0BbXlxcc0BdK1xcLlteXFxzQF0rJC8udGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmltbWVkVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBFcyB1biBjb3JyZW9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cmltbWVkVmFsdWUuc3RhcnRzV2l0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFpbHRvOidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRyaW1tZWRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogYG1haWx0bzoke3RyaW1tZWRWYWx1ZX1gO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRyaW1tZWRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpY29uOiBidG4uaWNvbiA/IGBpY29uLWAgKyBidG4/Lmljb24gOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogYnRuLm9yZGVyPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyczogYnRuLmxpbmtWYXJzPy50b1N0cmluZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9IGFzIEJhYnlsb25CdXR0b25JKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHsga2VlcE9yaWdpbmFsOiB0cnVlIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3RhdGljIGxvYWRTY3JpcHQkKHNyYzogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZTx2b2lkPigob2JzZXJ2ZXIpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGV4aXN0aW5nID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcihgc2NyaXB0W3NyYz1cIiR7c3JjfVwiXWApO1xuICAgICAgICAgICAgaWYgKGV4aXN0aW5nKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICAgIHNjcmlwdC5zcmMgPSBzcmM7XG4gICAgICAgICAgICBzY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHNjcmlwdC5hc3luYyA9IHRydWU7XG5cbiAgICAgICAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9IChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihuZXcgRXJyb3IoYEVycm9yIGxvYWRpbmcgc2NyaXB0OiAke3NyY31gKSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0YXRpYyBsb2FkU3R5bGUkKGhyZWY6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKG9ic2VydmVyKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBleGlzdGluZyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYGxpbmtbaHJlZj1cIiR7aHJlZn1cIl1gKTtcbiAgICAgICAgICAgIGlmIChleGlzdGluZykge1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7XG4gICAgICAgICAgICBsaW5rLnJlbCA9ICdwcmVsb2FkJztcbiAgICAgICAgICAgIGxpbmsuaHJlZiA9IGhyZWY7XG4gICAgICAgICAgICBsaW5rLmFzID0gJ3N0eWxlJztcbiAgICAgICAgICAgIGxpbmsub25sb2FkID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGxpbmsub25sb2FkID0gbnVsbDtcblxuICAgICAgICAgICAgICAgIGxpbmsucmVsID0gJ3N0eWxlc2hlZXQnO1xuXG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGxpbmsub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihcbiAgICAgICAgICAgICAgICAgICAgbmV3IEVycm9yKGBObyBzZSBwdWRvIHByZWNhcmdhciBlbCBlc3RpbG86ICR7aHJlZn1gKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGxpbmspO1xuXG4gICAgICAgICAgICAvLyBvcGNpb25hbDogZmFsbGJhY2sgPG5vc2NyaXB0PiAobm8gbG8gbmVjZXNpdGEgQW5ndWxhciBwZXJvIGxvIHB1ZWRlcyBhZ3JlZ2FyKVxuICAgICAgICAgICAgY29uc3Qgbm9zY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdub3NjcmlwdCcpO1xuICAgICAgICAgICAgbm9zY3JpcHQuaW5uZXJIVE1MID0gYDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiBocmVmPVwiJHtocmVmfVwiPmA7XG4gICAgICAgICAgICBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKG5vc2NyaXB0KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3RhdGljIHNhZmVPcGVuRXh0ZXJuYWwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8ICF1cmwpIHJldHVybjtcblxuICAgICAgICBjb25zdCB3aW4gPSB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnLCAnbm9vcGVuZXIsbm9yZWZlcnJlcicpO1xuICAgICAgICBpZiAod2luKSByZXR1cm47XG5cbiAgICAgICAgLy8gRmFsbGJhY2sgc2kgYmxvcXVlYW4gcG9wdXBzXG4gICAgICAgIGNvbnN0IGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XG4gICAgICAgIGEuaHJlZiA9IHVybDtcbiAgICAgICAgYS50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgICAgYS5yZWwgPSAnbm9vcGVuZXIgbm9yZWZlcnJlcic7XG4gICAgICAgIGEuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtcbiAgICAgICAgYS5jbGljaygpO1xuICAgICAgICBhLnJlbW92ZSgpO1xuICAgIH1cblxuICAgIHN0YXRpYyBleHRyYWN0TnVtYmVyUmFuZ2UoXG4gICAgICAgIHZhbHVlPzogc3RyaW5nIHwgbnVsbCxcbiAgICAgICAgZmFsbGJhY2s6IG51bWJlcltdID0gW11cbiAgICApOiBudW1iZXJbXSB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9cXGQrLyk7XG4gICAgICAgIGlmICghbWF0Y2gpIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICBjb25zdCBuID0gTnVtYmVyKG1hdGNoWzBdKTtcbiAgICAgICAgaWYgKE51bWJlci5pc05hTihuKSB8fCBuIDw9IDApIHJldHVybiBmYWxsYmFjaztcblxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh7IGxlbmd0aDogbiB9LCAoXywgaSkgPT4gaSArIDEpO1xuICAgIH1cblxuICAgIHN0YXRpYyBzb3J0QnV0dG9uc0J5T3JkZXI8VCBleHRlbmRzIHsgb3JkZXI/OiBhbnkgfT4oXG4gICAgICAgIGJ1dHRvbnM/OiBBcnJheTxUIHwgdW5kZWZpbmVkIHwgbnVsbD4gfCBudWxsLFxuICAgICAgICBvcHRzPzogeyBrZWVwT3JpZ2luYWw/OiBib29sZWFuIH1cbiAgICApOiBUW10ge1xuICAgICAgICBjb25zdCBhcnIgPSAoYnV0dG9ucyA/PyBbXSkuZmlsdGVyKChiKTogYiBpcyBUID0+ICEhYik7XG4gICAgICAgIGlmICghYXJyLmxlbmd0aCkgcmV0dXJuIFtdO1xuXG4gICAgICAgIGNvbnN0IGxpc3QgPSBvcHRzPy5rZWVwT3JpZ2luYWwgPyBbLi4uYXJyXSA6IGFycjtcblxuICAgICAgICBjb25zdCB0b051bSA9ICh2OiBhbnkpOiBudW1iZXIgPT4ge1xuICAgICAgICAgICAgY29uc3QgbiA9IE51bWJlcih2KTtcbiAgICAgICAgICAgIHJldHVybiBOdW1iZXIuaXNGaW5pdGUobikgPyBuIDogTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO1xuICAgICAgICB9O1xuXG4gICAgICAgIHJldHVybiBsaXN0LnNvcnQoKGEsIGIpID0+IHRvTnVtKGEub3JkZXIpIC0gdG9OdW0oYi5vcmRlcikpO1xuICAgIH1cbn1cbiJdfQ==
|