payload 2.2.1 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/elements/WhereBuilder/Condition/Date/index.d.ts.map +1 -1
- package/dist/admin/components/elements/WhereBuilder/Condition/Date/index.js +6 -2
- package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts +4 -0
- package/dist/admin/components/elements/WhereBuilder/Condition/Date/types.d.ts.map +1 -1
- package/dist/admin/components/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/admin/components/elements/WhereBuilder/index.js +16 -5
- package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
- package/dist/admin/components/forms/field-types/JSON/index.js +6 -5
- package/dist/fields/validations.d.ts.map +1 -1
- package/dist/fields/validations.js +6 -3
- package/dist/fields/validations.spec.js +9 -1
- package/dist/translations/index.d.ts +371 -0
- package/dist/translations/index.d.ts.map +1 -1
- package/dist/translations/index.js +3 -1
- package/dist/translations/ko.json +371 -0
- package/dist/translations/pl.json +1 -1
- package/dist/utilities/getEntityPolicies.js +4 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/elements/WhereBuilder/Condition/Date/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/elements/WhereBuilder/Condition/Date/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAMpC,QAAA,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAQ9B,CAAA;AAED,eAAe,SAAS,CAAA"}
|
|
@@ -16,13 +16,17 @@ function _interop_require_default(obj) {
|
|
|
16
16
|
};
|
|
17
17
|
}
|
|
18
18
|
const baseClass = 'condition-value-date';
|
|
19
|
-
const DateField = ({ disabled, onChange, value })
|
|
19
|
+
const DateField = ({ admin, disabled, onChange, value })=>{
|
|
20
|
+
const { date } = admin || {};
|
|
21
|
+
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
20
22
|
className: baseClass
|
|
21
23
|
}, /*#__PURE__*/ _react.default.createElement(_DatePicker.default, {
|
|
24
|
+
...date,
|
|
22
25
|
onChange: onChange,
|
|
23
26
|
readOnly: disabled,
|
|
24
27
|
value: value
|
|
25
28
|
}));
|
|
29
|
+
};
|
|
26
30
|
const _default = DateField;
|
|
27
31
|
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9Db25kaXRpb24vRGF0ZS9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IERhdGVQaWNrZXIgZnJvbSAnLi4vLi4vLi4vRGF0ZVBpY2tlcidcblxuY29uc3QgYmFzZUNsYXNzID0gJ2NvbmRpdGlvbi12YWx1ZS1kYXRlJ1xuXG5jb25zdCBEYXRlRmllbGQ6IFJlYWN0LkZDPFByb3BzPiA9ICh7IGFkbWluLCBkaXNhYmxlZCwgb25DaGFuZ2UsIHZhbHVlIH0pID0+IHtcbiAgY29uc3QgeyBkYXRlIH0gPSBhZG1pbiB8fCB7fVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICA8RGF0ZVBpY2tlciB7Li4uZGF0ZX0gb25DaGFuZ2U9e29uQ2hhbmdlfSByZWFkT25seT17ZGlzYWJsZWR9IHZhbHVlPXt2YWx1ZX0gLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBEYXRlRmllbGRcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJEYXRlRmllbGQiLCJhZG1pbiIsImRpc2FibGVkIiwib25DaGFuZ2UiLCJ2YWx1ZSIsImRhdGUiLCJkaXYiLCJjbGFzc05hbWUiLCJEYXRlUGlja2VyIiwicmVhZE9ubHkiXSwibWFwcGluZ3MiOiI7Ozs7K0JBa0JBOzs7ZUFBQTs7OzhEQWxCa0I7bUVBSUs7Ozs7OztBQUV2QixNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLFlBQTZCLENBQUMsRUFBRUMsS0FBSyxFQUFFQyxRQUFRLEVBQUVDLFFBQVEsRUFBRUMsS0FBSyxFQUFFO0lBQ3RFLE1BQU0sRUFBRUMsSUFBSSxFQUFFLEdBQUdKLFNBQVMsQ0FBQztJQUUzQixxQkFDRSw2QkFBQ0s7UUFBSUMsV0FBV1I7cUJBQ2QsNkJBQUNTLG1CQUFVO1FBQUUsR0FBR0gsSUFBSTtRQUFFRixVQUFVQTtRQUFVTSxVQUFVUDtRQUFVRSxPQUFPQTs7QUFHM0U7TUFFQSxXQUFlSiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/elements/WhereBuilder/Condition/Date/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../../src/admin/components/elements/WhereBuilder/Condition/Date/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,QAAQ,EAAE,MAAM,qDAAqD,CAAA;AAC5F,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,QAAQ,CAAA;KAChB,CAAA;IACD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAKnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASpC,OAAO,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/admin/components/elements/WhereBuilder/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAKnD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AASpC,OAAO,cAAc,CAAA;AAyCrB;;;GAGG;AACH,QAAA,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0JjC,CAAA;AAED,eAAe,YAAY,CAAA"}
|
|
@@ -70,14 +70,25 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
70
70
|
const baseClass = 'where-builder';
|
|
71
71
|
const reduceFields = (fields, i18n)=>(0, _flattenTopLevelFields.default)(fields).reduce((reduced, field)=>{
|
|
72
72
|
if (typeof _fieldtypes.default[field.type] === 'object') {
|
|
73
|
+
const operatorKeys = new Set();
|
|
74
|
+
const operators = _fieldtypes.default[field.type].operators.reduce((acc, operator)=>{
|
|
75
|
+
if (!operatorKeys.has(operator.value)) {
|
|
76
|
+
operatorKeys.add(operator.value);
|
|
77
|
+
return [
|
|
78
|
+
...acc,
|
|
79
|
+
{
|
|
80
|
+
...operator,
|
|
81
|
+
label: i18n.t(`operators:${operator.label}`)
|
|
82
|
+
}
|
|
83
|
+
];
|
|
84
|
+
}
|
|
85
|
+
return acc;
|
|
86
|
+
}, []);
|
|
73
87
|
const formattedField = {
|
|
74
88
|
label: (0, _getTranslation.getTranslation)(field.label || field.name, i18n),
|
|
75
89
|
value: field.name,
|
|
76
90
|
..._fieldtypes.default[field.type],
|
|
77
|
-
operators
|
|
78
|
-
...operator,
|
|
79
|
-
label: i18n.t(`operators:${operator.label}`)
|
|
80
|
-
})),
|
|
91
|
+
operators,
|
|
81
92
|
props: {
|
|
82
93
|
...field
|
|
83
94
|
}
|
|
@@ -216,4 +227,4 @@ const reduceFields = (fields, i18n)=>(0, _flattenTopLevelFields.default)(fields)
|
|
|
216
227
|
};
|
|
217
228
|
const _default = WhereBuilder;
|
|
218
229
|
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZHVjZXIsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcblxuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCBmbGF0dGVuVG9wTGV2ZWxGaWVsZHMgZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2ZsYXR0ZW5Ub3BMZXZlbEZpZWxkcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvU2VhcmNoUGFyYW1zJ1xuaW1wb3J0IEJ1dHRvbiBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgQ29uZGl0aW9uIGZyb20gJy4vQ29uZGl0aW9uJ1xuaW1wb3J0IGZpZWxkVHlwZXMgZnJvbSAnLi9maWVsZC10eXBlcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9yZWR1Y2VyJ1xuaW1wb3J0IHsgdHJhbnNmb3JtV2hlcmVRdWVyeSB9IGZyb20gJy4vdHJhbnNmb3JtV2hlcmVRdWVyeSdcbmltcG9ydCB2YWxpZGF0ZVdoZXJlUXVlcnkgZnJvbSAnLi92YWxpZGF0ZVdoZXJlUXVlcnknXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICd3aGVyZS1idWlsZGVyJ1xuXG5jb25zdCByZWR1Y2VGaWVsZHMgPSAoZmllbGRzLCBpMThuKSA9PlxuICBmbGF0dGVuVG9wTGV2ZWxGaWVsZHMoZmllbGRzKS5yZWR1Y2UoKHJlZHVjZWQsIGZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBmaWVsZFR5cGVzW2ZpZWxkLnR5cGVdID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3QgZm9ybWF0dGVkRmllbGQgPSB7XG4gICAgICAgIGxhYmVsOiBnZXRUcmFuc2xhdGlvbihmaWVsZC5sYWJlbCB8fCBmaWVsZC5uYW1lLCBpMThuKSxcbiAgICAgICAgdmFsdWU6IGZpZWxkLm5hbWUsXG4gICAgICAgIC4uLmZpZWxkVHlwZXNbZmllbGQudHlwZV0sXG4gICAgICAgIG9wZXJhdG9yczogZmllbGRUeXBlc1tmaWVsZC50eXBlXS5vcGVyYXRvcnMubWFwKChvcGVyYXRvcikgPT4gKHtcbiAgICAgICAgICAuLi5vcGVyYXRvcixcbiAgICAgICAgICBsYWJlbDogaTE4bi50KGBvcGVyYXRvcnM6JHtvcGVyYXRvci5sYWJlbH1gKSxcbiAgICAgICAgfSkpLFxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgIC4uLmZpZWxkLFxuICAgICAgICB9LFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLnJlZHVjZWQsIGZvcm1hdHRlZEZpZWxkXVxuICAgIH1cblxuICAgIHJldHVybiByZWR1Y2VkXG4gIH0sIFtdKVxuXG4vKipcbiAqIFRoZSBXaGVyZUJ1aWxkZXIgY29tcG9uZW50IGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBmaWx0ZXIgY29udHJvbHMgZm9yIGEgY29sbGVjdGlvbidzIGxpc3Qgdmlldy5cbiAqIEl0IGlzIHBhcnQgb2YgdGhlIHtAbGluayBMaXN0Q29udHJvbHN9IGNvbXBvbmVudCB3aGljaCBpcyB1c2VkIHRvIHJlbmRlciB0aGUgY29udHJvbHMgKHNlYXJjaCwgZmlsdGVyLCB3aGVyZSkuXG4gKi9cbmNvbnN0IFdoZXJlQnVpbGRlcjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb2xsZWN0aW9uOiB7IGxhYmVsczogeyBwbHVyYWwgfSA9IHt9IH0gPSB7fSxcbiAgICBjb2xsZWN0aW9uLFxuICAgIGhhbmRsZUNoYW5nZSxcbiAgICBtb2RpZnlTZWFyY2hRdWVyeSA9IHRydWUsXG4gIH0gPSBwcm9wc1xuXG4gIGNvbnN0IGhpc3RvcnkgPSB1c2VIaXN0b3J5KClcbiAgY29uc3QgcGFyYW1zID0gdXNlU2VhcmNoUGFyYW1zKClcbiAgY29uc3QgeyBpMThuLCB0IH0gPSB1c2VUcmFuc2xhdGlvbignZ2VuZXJhbCcpXG5cbiAgLy8gVGhpcyBoYW5kbGVzIGluaXRpYWxpemluZyB0aGUgd2hlcmUgY29uZGl0aW9ucyBmcm9tIHRoZSBzZWFyY2ggcXVlcnkgKFVSTCkuIFRoYXQgd2F5LCBpZiB5b3UgcGFzcyBpblxuICAvLyBxdWVyeSBwYXJhbXMgdG8gdGhlIFVSTCwgdGhlIHdoZXJlIGNvbmRpdGlvbnMgd2lsbCBiZSBpbml0aWFsaXplZCBmcm9tIHRob3NlIGFuZCBkaXNwbGF5ZWQgaW4gdGhlIFVJLlxuICAvLyBFeGFtcGxlOiAvYWRtaW4vY29sbGVjdGlvbnMvcG9zdHM/d2hlcmVbb3JdWzBdW2FuZF1bMF1bdGV4dF1bZXF1YWxzXT1leGFtcGxlJTIwcG9zdFxuICBjb25zdCBbY29uZGl0aW9ucywgZGlzcGF0Y2hDb25kaXRpb25zXSA9IHVzZVJlZHVjZXIocmVkdWNlciwgcGFyYW1zLndoZXJlLCAod2hlcmVGcm9tU2VhcmNoKSA9PiB7XG4gICAgaWYgKG1vZGlmeVNlYXJjaFF1ZXJ5ICYmIHdoZXJlRnJvbVNlYXJjaCkge1xuICAgICAgaWYgKHZhbGlkYXRlV2hlcmVRdWVyeSh3aGVyZUZyb21TZWFyY2gpKSB7XG4gICAgICAgIHJldHVybiB3aGVyZUZyb21TZWFyY2gub3JcbiAgICAgIH1cblxuICAgICAgLy8gVHJhbnNmb3JtIHRoZSB3aGVyZSBxdWVyeSB0byBiZSBpbiB0aGUgcmlnaHQgZm9ybWF0LiBUaGlzIHdpbGwgdHJhbnNmb3JtIHNvbWV0aGluZyBzaW1wbGUgbGlrZSBbdGV4dF1bZXF1YWxzXT1leGFtcGxlJTIwcG9zdCB0byB0aGUgcmlnaHQgZm9ybWF0XG4gICAgICBjb25zdCB0cmFuc2Zvcm1lZFdoZXJlID0gdHJhbnNmb3JtV2hlcmVRdWVyeSh3aGVyZUZyb21TZWFyY2gpXG5cbiAgICAgIGlmICh2YWxpZGF0ZVdoZXJlUXVlcnkodHJhbnNmb3JtZWRXaGVyZSkpIHtcbiAgICAgICAgcmV0dXJuIHRyYW5zZm9ybWVkV2hlcmUub3JcbiAgICAgIH1cblxuICAgICAgY29uc29sZS53YXJuKCdJbnZhbGlkIHdoZXJlIHF1ZXJ5IGluIFVSTC4gSWdub3JpbmcuJylcbiAgICB9XG4gICAgcmV0dXJuIFtdXG4gIH0pXG5cbiAgY29uc3QgW3JlZHVjZWRGaWVsZHNdID0gdXNlU3RhdGUoKCkgPT4gcmVkdWNlRmllbGRzKGNvbGxlY3Rpb24uZmllbGRzLCBpMThuKSlcblxuICAvLyBUaGlzIGhhbmRsZXMgdXBkYXRpbmcgdGhlIHNlYXJjaCBxdWVyeSAoVVJMKSB3aGVuIHRoZSB3aGVyZSBjb25kaXRpb25zIGNoYW5nZVxuICB1c2VUaHJvdHRsZWRFZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgY3VycmVudFBhcmFtcyA9IHF1ZXJ5U3RyaW5nLnBhcnNlKGhpc3RvcnkubG9jYXRpb24uc2VhcmNoLCB7XG4gICAgICAgIGRlcHRoOiAxMCxcbiAgICAgICAgaWdub3JlUXVlcnlQcmVmaXg6IHRydWUsXG4gICAgICB9KSBhcyB7IHdoZXJlOiBXaGVyZSB9XG5cbiAgICAgIGNvbnN0IHBhcmFtc1RvS2VlcCA9XG4gICAgICAgIHR5cGVvZiBjdXJyZW50UGFyYW1zPy53aGVyZSA9PT0gJ29iamVjdCcgJiYgJ29yJyBpbiBjdXJyZW50UGFyYW1zLndoZXJlXG4gICAgICAgICAgPyBjdXJyZW50UGFyYW1zLndoZXJlLm9yLnJlZHVjZSgoa2VwdFBhcmFtcywgcGFyYW0pID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgbmV3UGFyYW0gPSB7IC4uLnBhcmFtIH1cbiAgICAgICAgICAgICAgaWYgKHBhcmFtLmFuZCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBuZXdQYXJhbS5hbmRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gWy4uLmtlcHRQYXJhbXMsIG5ld1BhcmFtXVxuICAgICAgICAgICAgfSwgW10pXG4gICAgICAgICAgOiBbXVxuXG4gICAgICBjb25zdCBoYXNOZXdXaGVyZUNvbmRpdGlvbnMgPSBjb25kaXRpb25zLmxlbmd0aCA+IDBcblxuICAgICAgY29uc3QgbmV3V2hlcmVRdWVyeSA9IHtcbiAgICAgICAgLi4uKHR5cGVvZiBjdXJyZW50UGFyYW1zPy53aGVyZSA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgKHZhbGlkYXRlV2hlcmVRdWVyeShjdXJyZW50UGFyYW1zPy53aGVyZSkgfHwgIWhhc05ld1doZXJlQ29uZGl0aW9ucylcbiAgICAgICAgICA/IGN1cnJlbnRQYXJhbXMud2hlcmVcbiAgICAgICAgICA6IHt9KSxcbiAgICAgICAgb3I6IFsuLi5jb25kaXRpb25zLCAuLi5wYXJhbXNUb0tlZXBdLFxuICAgICAgfVxuXG4gICAgICBpZiAoaGFuZGxlQ2hhbmdlKSBoYW5kbGVDaGFuZ2UobmV3V2hlcmVRdWVyeSBhcyBXaGVyZSlcblxuICAgICAgY29uc3QgaGFzRXhpc3RpbmdDb25kaXRpb25zID1cbiAgICAgICAgdHlwZW9mIGN1cnJlbnRQYXJhbXM/LndoZXJlID09PSAnb2JqZWN0JyAmJiAnb3InIGluIGN1cnJlbnRQYXJhbXMud2hlcmVcblxuICAgICAgaWYgKFxuICAgICAgICBtb2RpZnlTZWFyY2hRdWVyeSAmJlxuICAgICAgICAoKGhhc0V4aXN0aW5nQ29uZGl0aW9ucyAmJiAhaGFzTmV3V2hlcmVDb25kaXRpb25zKSB8fCBoYXNOZXdXaGVyZUNvbmRpdGlvbnMpXG4gICAgICApIHtcbiAgICAgICAgaGlzdG9yeS5yZXBsYWNlKHtcbiAgICAgICAgICBzZWFyY2g6IHF1ZXJ5U3RyaW5nLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4uY3VycmVudFBhcmFtcyxcbiAgICAgICAgICAgICAgcGFnZTogMSxcbiAgICAgICAgICAgICAgd2hlcmU6IG5ld1doZXJlUXVlcnksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBhZGRRdWVyeVByZWZpeDogdHJ1ZSB9LFxuICAgICAgICAgICksXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICA1MDAsXG4gICAgW2NvbmRpdGlvbnMsIG1vZGlmeVNlYXJjaFF1ZXJ5LCBoYW5kbGVDaGFuZ2VdLFxuICApXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIHtjb25kaXRpb25zLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2xhYmVsYH0+XG4gICAgICAgICAgICB7dCgnZmlsdGVyV2hlcmUnLCB7IGxhYmVsOiBnZXRUcmFuc2xhdGlvbihwbHVyYWwsIGkxOG4pIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDx1bCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX29yLWZpbHRlcnNgfT5cbiAgICAgICAgICAgIHtjb25kaXRpb25zLm1hcCgob3IsIG9ySW5kZXgpID0+IChcbiAgICAgICAgICAgICAgPGxpIGtleT17b3JJbmRleH0+XG4gICAgICAgICAgICAgICAge29ySW5kZXggIT09IDAgJiYgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2xhYmVsYH0+e3QoJ29yJyl9PC9kaXY+fVxuICAgICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FuZC1maWx0ZXJzYH0+XG4gICAgICAgICAgICAgICAgICB7QXJyYXkuaXNBcnJheShvcj8uYW5kKSAmJlxuICAgICAgICAgICAgICAgICAgICBvci5hbmQubWFwKChfLCBhbmRJbmRleCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxsaSBrZXk9e2FuZEluZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIHthbmRJbmRleCAhPT0gMCAmJiA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGFiZWxgfT57dCgnYW5kJyl9PC9kaXY+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPENvbmRpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICBhbmRJbmRleD17YW5kSW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BhdGNoPXtkaXNwYXRjaENvbmRpdGlvbnN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcz17cmVkdWNlZEZpZWxkc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXthbmRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb3JJbmRleD17b3JJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbmRpdGlvbnNbb3JJbmRleF0uYW5kW2FuZEluZGV4XX1cbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgYnV0dG9uU3R5bGU9XCJpY29uLWxhYmVsXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWRkLW9yYH1cbiAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocmVkdWNlZEZpZWxkcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIGRpc3BhdGNoQ29uZGl0aW9ucyh7IGZpZWxkOiByZWR1Y2VkRmllbGRzWzBdLnZhbHVlLCB0eXBlOiAnYWRkJyB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnb3InKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICl9XG4gICAgICB7Y29uZGl0aW9ucy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbm8tZmlsdGVyc2B9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sYWJlbGB9Pnt0KCdub0ZpbHRlcnNTZXQnKX08L2Rpdj5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hZGQtZmlyc3QtZmlsdGVyYH1cbiAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgIGljb25Qb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgaWNvblN0eWxlPVwid2l0aC1ib3JkZXJcIlxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICBpZiAocmVkdWNlZEZpZWxkcy5sZW5ndGggPiAwKVxuICAgICAgICAgICAgICAgIGRpc3BhdGNoQ29uZGl0aW9ucyh7IGZpZWxkOiByZWR1Y2VkRmllbGRzWzBdLnZhbHVlLCB0eXBlOiAnYWRkJyB9KVxuICAgICAgICAgICAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7dCgnYWRkRmlsdGVyJyl9XG4gICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBXaGVyZUJ1aWxkZXJcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJyZWR1Y2VGaWVsZHMiLCJmaWVsZHMiLCJpMThuIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwicmVkdWNlIiwicmVkdWNlZCIsImZpZWxkIiwiZmllbGRUeXBlcyIsInR5cGUiLCJmb3JtYXR0ZWRGaWVsZCIsImxhYmVsIiwiZ2V0VHJhbnNsYXRpb24iLCJuYW1lIiwidmFsdWUiLCJvcGVyYXRvcnMiLCJtYXAiLCJvcGVyYXRvciIsInQiLCJwcm9wcyIsIldoZXJlQnVpbGRlciIsImNvbGxlY3Rpb24iLCJsYWJlbHMiLCJwbHVyYWwiLCJoYW5kbGVDaGFuZ2UiLCJtb2RpZnlTZWFyY2hRdWVyeSIsImhpc3RvcnkiLCJ1c2VIaXN0b3J5IiwicGFyYW1zIiwidXNlU2VhcmNoUGFyYW1zIiwidXNlVHJhbnNsYXRpb24iLCJjb25kaXRpb25zIiwiZGlzcGF0Y2hDb25kaXRpb25zIiwidXNlUmVkdWNlciIsInJlZHVjZXIiLCJ3aGVyZSIsIndoZXJlRnJvbVNlYXJjaCIsInZhbGlkYXRlV2hlcmVRdWVyeSIsIm9yIiwidHJhbnNmb3JtZWRXaGVyZSIsInRyYW5zZm9ybVdoZXJlUXVlcnkiLCJjb25zb2xlIiwid2FybiIsInJlZHVjZWRGaWVsZHMiLCJ1c2VTdGF0ZSIsInVzZVRocm90dGxlZEVmZmVjdCIsImN1cnJlbnRQYXJhbXMiLCJxdWVyeVN0cmluZyIsInBhcnNlIiwibG9jYXRpb24iLCJzZWFyY2giLCJkZXB0aCIsImlnbm9yZVF1ZXJ5UHJlZml4IiwicGFyYW1zVG9LZWVwIiwia2VwdFBhcmFtcyIsInBhcmFtIiwibmV3UGFyYW0iLCJhbmQiLCJoYXNOZXdXaGVyZUNvbmRpdGlvbnMiLCJsZW5ndGgiLCJuZXdXaGVyZVF1ZXJ5IiwiaGFzRXhpc3RpbmdDb25kaXRpb25zIiwicmVwbGFjZSIsInN0cmluZ2lmeSIsInBhZ2UiLCJhZGRRdWVyeVByZWZpeCIsImRpdiIsImNsYXNzTmFtZSIsIlJlYWN0IiwiRnJhZ21lbnQiLCJ1bCIsIm9ySW5kZXgiLCJsaSIsImtleSIsIkFycmF5IiwiaXNBcnJheSIsIl8iLCJhbmRJbmRleCIsIkNvbmRpdGlvbiIsImRpc3BhdGNoIiwiQnV0dG9uIiwiYnV0dG9uU3R5bGUiLCJpY29uIiwiaWNvblBvc2l0aW9uIiwiaWNvblN0eWxlIiwib25DbGljayJdLCJtYXBwaW5ncyI6Ijs7OzsrQkE0TUE7OztlQUFBOzs7MkRBNU13QjsrREFDb0I7OEJBQ2I7Z0NBQ0o7OEVBS087Z0NBQ0g7MkVBQ0E7OEJBQ0M7K0RBQ2I7a0VBQ0c7bUVBQ0M7UUFDaEI7Z0VBQ2E7cUNBQ2dCOzJFQUNMOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFL0IsTUFBTUEsWUFBWTtBQUVsQixNQUFNQyxlQUFlLENBQUNDLFFBQVFDLE9BQzVCQyxJQUFBQSw4QkFBcUIsRUFBQ0YsUUFBUUcsTUFBTSxDQUFDLENBQUNDLFNBQVNDO1FBQzdDLElBQUksT0FBT0MsbUJBQVUsQ0FBQ0QsTUFBTUUsSUFBSSxDQUFDLEtBQUssVUFBVTtZQUM5QyxNQUFNQyxpQkFBaUI7Z0JBQ3JCQyxPQUFPQyxJQUFBQSw4QkFBYyxFQUFDTCxNQUFNSSxLQUFLLElBQUlKLE1BQU1NLElBQUksRUFBRVY7Z0JBQ2pEVyxPQUFPUCxNQUFNTSxJQUFJO2dCQUNqQixHQUFHTCxtQkFBVSxDQUFDRCxNQUFNRSxJQUFJLENBQUM7Z0JBQ3pCTSxXQUFXUCxtQkFBVSxDQUFDRCxNQUFNRSxJQUFJLENBQUMsQ0FBQ00sU0FBUyxDQUFDQyxHQUFHLENBQUMsQ0FBQ0MsV0FBYyxDQUFBO3dCQUM3RCxHQUFHQSxRQUFRO3dCQUNYTixPQUFPUixLQUFLZSxDQUFDLENBQUMsQ0FBQyxVQUFVLEVBQUVELFNBQVNOLEtBQUssQ0FBQyxDQUFDO29CQUM3QyxDQUFBO2dCQUNBUSxPQUFPO29CQUNMLEdBQUdaLEtBQUs7Z0JBQ1Y7WUFDRjtZQUVBLE9BQU87bUJBQUlEO2dCQUFTSTthQUFlO1FBQ3JDO1FBRUEsT0FBT0o7SUFDVCxHQUFHLEVBQUU7QUFFUDs7O0NBR0MsR0FDRCxNQUFNYyxlQUFnQyxDQUFDRDtJQUNyQyxNQUFNLEVBQ0pFLFlBQVksRUFBRUMsUUFBUSxFQUFFQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxFQUM1Q0YsVUFBVSxFQUNWRyxZQUFZLEVBQ1pDLG9CQUFvQixJQUFJLEVBQ3pCLEdBQUdOO0lBRUosTUFBTU8sVUFBVUMsSUFBQUEsMEJBQVU7SUFDMUIsTUFBTUMsU0FBU0MsSUFBQUEsNkJBQWU7SUFDOUIsTUFBTSxFQUFFMUIsSUFBSSxFQUFFZSxDQUFDLEVBQUUsR0FBR1ksSUFBQUEsNEJBQWMsRUFBQztJQUVuQyx1R0FBdUc7SUFDdkcsd0dBQXdHO0lBQ3hHLHNGQUFzRjtJQUN0RixNQUFNLENBQUNDLFlBQVlDLG1CQUFtQixHQUFHQyxJQUFBQSxpQkFBVSxFQUFDQyxnQkFBTyxFQUFFTixPQUFPTyxLQUFLLEVBQUUsQ0FBQ0M7UUFDMUUsSUFBSVgscUJBQXFCVyxpQkFBaUI7WUFDeEMsSUFBSUMsSUFBQUEsMkJBQWtCLEVBQUNELGtCQUFrQjtnQkFDdkMsT0FBT0EsZ0JBQWdCRSxFQUFFO1lBQzNCO1lBRUEsbUpBQW1KO1lBQ25KLE1BQU1DLG1CQUFtQkMsSUFBQUEsd0NBQW1CLEVBQUNKO1lBRTdDLElBQUlDLElBQUFBLDJCQUFrQixFQUFDRSxtQkFBbUI7Z0JBQ3hDLE9BQU9BLGlCQUFpQkQsRUFBRTtZQUM1QjtZQUVBRyxRQUFRQyxJQUFJLENBQUM7UUFDZjtRQUNBLE9BQU8sRUFBRTtJQUNYO0lBRUEsTUFBTSxDQUFDQyxjQUFjLEdBQUdDLElBQUFBLGVBQVEsRUFBQyxJQUFNM0MsYUFBYW9CLFdBQVduQixNQUFNLEVBQUVDO0lBRXZFLGdGQUFnRjtJQUNoRjBDLElBQUFBLDJCQUFrQixFQUNoQjtRQUNFLE1BQU1DLGdCQUFnQkMsV0FBVyxDQUFDQyxLQUFLLENBQUN0QixRQUFRdUIsUUFBUSxDQUFDQyxNQUFNLEVBQUU7WUFDL0RDLE9BQU87WUFDUEMsbUJBQW1CO1FBQ3JCO1FBRUEsTUFBTUMsZUFDSixPQUFPUCxlQUFlWCxVQUFVLFlBQVksUUFBUVcsY0FBY1gsS0FBSyxHQUNuRVcsY0FBY1gsS0FBSyxDQUFDRyxFQUFFLENBQUNqQyxNQUFNLENBQUMsQ0FBQ2lELFlBQVlDO1lBQ3pDLE1BQU1DLFdBQVc7Z0JBQUUsR0FBR0QsS0FBSztZQUFDO1lBQzVCLElBQUlBLE1BQU1FLEdBQUcsRUFBRTtnQkFDYixPQUFPRCxTQUFTQyxHQUFHO1lBQ3JCO1lBQ0EsT0FBTzttQkFBSUg7Z0JBQVlFO2FBQVM7UUFDbEMsR0FBRyxFQUFFLElBQ0wsRUFBRTtRQUVSLE1BQU1FLHdCQUF3QjNCLFdBQVc0QixNQUFNLEdBQUc7UUFFbEQsTUFBTUMsZ0JBQWdCO1lBQ3BCLEdBQUksT0FBT2QsZUFBZVgsVUFBVSxZQUNuQ0UsQ0FBQUEsSUFBQUEsMkJBQWtCLEVBQUNTLGVBQWVYLFVBQVUsQ0FBQ3VCLHFCQUFvQixJQUM5RFosY0FBY1gsS0FBSyxHQUNuQixDQUFDLENBQUM7WUFDTkcsSUFBSTttQkFBSVA7bUJBQWVzQjthQUFhO1FBQ3RDO1FBRUEsSUFBSTdCLGNBQWNBLGFBQWFvQztRQUUvQixNQUFNQyx3QkFDSixPQUFPZixlQUFlWCxVQUFVLFlBQVksUUFBUVcsY0FBY1gsS0FBSztRQUV6RSxJQUNFVixxQkFDQyxDQUFBLEFBQUNvQyx5QkFBeUIsQ0FBQ0gseUJBQTBCQSxxQkFBb0IsR0FDMUU7WUFDQWhDLFFBQVFvQyxPQUFPLENBQUM7Z0JBQ2RaLFFBQVFILFdBQVcsQ0FBQ2dCLFNBQVMsQ0FDM0I7b0JBQ0UsR0FBR2pCLGFBQWE7b0JBQ2hCa0IsTUFBTTtvQkFDTjdCLE9BQU95QjtnQkFDVCxHQUNBO29CQUFFSyxnQkFBZ0I7Z0JBQUs7WUFFM0I7UUFDRjtJQUNGLEdBQ0EsS0FDQTtRQUFDbEM7UUFBWU47UUFBbUJEO0tBQWE7SUFHL0MscUJBQ0UsNkJBQUMwQztRQUFJQyxXQUFXbkU7T0FDYitCLFdBQVc0QixNQUFNLEdBQUcsbUJBQ25CLDZCQUFDUyxjQUFLLENBQUNDLFFBQVEsc0JBQ2IsNkJBQUNIO1FBQUlDLFdBQVcsQ0FBQyxFQUFFbkUsVUFBVSxPQUFPLENBQUM7T0FDbENrQixFQUFFLGVBQWU7UUFBRVAsT0FBT0MsSUFBQUEsOEJBQWMsRUFBQ1csUUFBUXBCO0lBQU0sbUJBRTFELDZCQUFDbUU7UUFBR0gsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLFlBQVksQ0FBQztPQUN0QytCLFdBQVdmLEdBQUcsQ0FBQyxDQUFDc0IsSUFBSWlDLHdCQUNuQiw2QkFBQ0M7WUFBR0MsS0FBS0Y7V0FDTkEsWUFBWSxtQkFBSyw2QkFBQ0w7WUFBSUMsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLE9BQU8sQ0FBQztXQUFHa0IsRUFBRSxzQkFDNUQsNkJBQUNvRDtZQUFHSCxXQUFXLENBQUMsRUFBRW5FLFVBQVUsYUFBYSxDQUFDO1dBQ3ZDMEUsTUFBTUMsT0FBTyxDQUFDckMsSUFBSW1CLFFBQ2pCbkIsR0FBR21CLEdBQUcsQ0FBQ3pDLEdBQUcsQ0FBQyxDQUFDNEQsR0FBR0MseUJBQ2IsNkJBQUNMO2dCQUFHQyxLQUFLSTtlQUNOQSxhQUFhLG1CQUFLLDZCQUFDWDtnQkFBSUMsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLE9BQU8sQ0FBQztlQUFHa0IsRUFBRSx1QkFDN0QsNkJBQUM0RCxrQkFBUztnQkFDUkQsVUFBVUE7Z0JBQ1ZFLFVBQVUvQztnQkFDVjlCLFFBQVF5QztnQkFDUjhCLEtBQUtJO2dCQUNMTixTQUFTQTtnQkFDVHpELE9BQU9pQixVQUFVLENBQUN3QyxRQUFRLENBQUNkLEdBQUcsQ0FBQ29CLFNBQVM7b0NBUXhELDZCQUFDRyxlQUFNO1FBQ0xDLGFBQVk7UUFDWmQsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLFFBQVEsQ0FBQztRQUNqQ2tGLE1BQUs7UUFDTEMsY0FBYTtRQUNiQyxXQUFVO1FBQ1ZDLFNBQVM7WUFDUCxJQUFJMUMsY0FBY2dCLE1BQU0sR0FBRyxHQUN6QjNCLG1CQUFtQjtnQkFBRXpCLE9BQU9vQyxhQUFhLENBQUMsRUFBRSxDQUFDN0IsS0FBSztnQkFBRUwsTUFBTTtZQUFNO1FBQ3BFO09BRUNTLEVBQUUsU0FJUmEsV0FBVzRCLE1BQU0sS0FBSyxtQkFDckIsNkJBQUNPO1FBQUlDLFdBQVcsQ0FBQyxFQUFFbkUsVUFBVSxZQUFZLENBQUM7cUJBQ3hDLDZCQUFDa0U7UUFBSUMsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLE9BQU8sQ0FBQztPQUFHa0IsRUFBRSxnQ0FDMUMsNkJBQUM4RCxlQUFNO1FBQ0xDLGFBQVk7UUFDWmQsV0FBVyxDQUFDLEVBQUVuRSxVQUFVLGtCQUFrQixDQUFDO1FBQzNDa0YsTUFBSztRQUNMQyxjQUFhO1FBQ2JDLFdBQVU7UUFDVkMsU0FBUztZQUNQLElBQUkxQyxjQUFjZ0IsTUFBTSxHQUFHLEdBQ3pCM0IsbUJBQW1CO2dCQUFFekIsT0FBT29DLGFBQWEsQ0FBQyxFQUFFLENBQUM3QixLQUFLO2dCQUFFTCxNQUFNO1lBQU07UUFDcEU7T0FFQ1MsRUFBRTtBQU1mO01BRUEsV0FBZUUifQ==
|
|
230
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHF1ZXJ5U3RyaW5nIGZyb20gJ3FzJ1xuaW1wb3J0IFJlYWN0LCB7IHVzZVJlZHVjZXIsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5pbXBvcnQgeyB1c2VIaXN0b3J5IH0gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSdcblxuaW1wb3J0IHR5cGUgeyBXaGVyZSB9IGZyb20gJy4uLy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBQcm9wcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCBmbGF0dGVuVG9wTGV2ZWxGaWVsZHMgZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2ZsYXR0ZW5Ub3BMZXZlbEZpZWxkcydcbmltcG9ydCB7IGdldFRyYW5zbGF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2dldFRyYW5zbGF0aW9uJ1xuaW1wb3J0IHVzZVRocm90dGxlZEVmZmVjdCBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUaHJvdHRsZWRFZmZlY3QnXG5pbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvU2VhcmNoUGFyYW1zJ1xuaW1wb3J0IEJ1dHRvbiBmcm9tICcuLi9CdXR0b24nXG5pbXBvcnQgQ29uZGl0aW9uIGZyb20gJy4vQ29uZGl0aW9uJ1xuaW1wb3J0IGZpZWxkVHlwZXMgZnJvbSAnLi9maWVsZC10eXBlcydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHJlZHVjZXIgZnJvbSAnLi9yZWR1Y2VyJ1xuaW1wb3J0IHsgdHJhbnNmb3JtV2hlcmVRdWVyeSB9IGZyb20gJy4vdHJhbnNmb3JtV2hlcmVRdWVyeSdcbmltcG9ydCB2YWxpZGF0ZVdoZXJlUXVlcnkgZnJvbSAnLi92YWxpZGF0ZVdoZXJlUXVlcnknXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICd3aGVyZS1idWlsZGVyJ1xuXG5jb25zdCByZWR1Y2VGaWVsZHMgPSAoZmllbGRzLCBpMThuKSA9PlxuICBmbGF0dGVuVG9wTGV2ZWxGaWVsZHMoZmllbGRzKS5yZWR1Y2UoKHJlZHVjZWQsIGZpZWxkKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBmaWVsZFR5cGVzW2ZpZWxkLnR5cGVdID09PSAnb2JqZWN0Jykge1xuICAgICAgY29uc3Qgb3BlcmF0b3JLZXlzID0gbmV3IFNldCgpXG4gICAgICBjb25zdCBvcGVyYXRvcnMgPSBmaWVsZFR5cGVzW2ZpZWxkLnR5cGVdLm9wZXJhdG9ycy5yZWR1Y2UoKGFjYywgb3BlcmF0b3IpID0+IHtcbiAgICAgICAgaWYgKCFvcGVyYXRvcktleXMuaGFzKG9wZXJhdG9yLnZhbHVlKSkge1xuICAgICAgICAgIG9wZXJhdG9yS2V5cy5hZGQob3BlcmF0b3IudmFsdWUpXG4gICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLi4ub3BlcmF0b3IsXG4gICAgICAgICAgICAgIGxhYmVsOiBpMThuLnQoYG9wZXJhdG9yczoke29wZXJhdG9yLmxhYmVsfWApLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgfSwgW10pXG5cbiAgICAgIGNvbnN0IGZvcm1hdHRlZEZpZWxkID0ge1xuICAgICAgICBsYWJlbDogZ2V0VHJhbnNsYXRpb24oZmllbGQubGFiZWwgfHwgZmllbGQubmFtZSwgaTE4biksXG4gICAgICAgIHZhbHVlOiBmaWVsZC5uYW1lLFxuICAgICAgICAuLi5maWVsZFR5cGVzW2ZpZWxkLnR5cGVdLFxuICAgICAgICBvcGVyYXRvcnMsXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIH0sXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4ucmVkdWNlZCwgZm9ybWF0dGVkRmllbGRdXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlZHVjZWRcbiAgfSwgW10pXG5cbi8qKlxuICogVGhlIFdoZXJlQnVpbGRlciBjb21wb25lbnQgaXMgdXNlZCB0byByZW5kZXIgdGhlIGZpbHRlciBjb250cm9scyBmb3IgYSBjb2xsZWN0aW9uJ3MgbGlzdCB2aWV3LlxuICogSXQgaXMgcGFydCBvZiB0aGUge0BsaW5rIExpc3RDb250cm9sc30gY29tcG9uZW50IHdoaWNoIGlzIHVzZWQgdG8gcmVuZGVyIHRoZSBjb250cm9scyAoc2VhcmNoLCBmaWx0ZXIsIHdoZXJlKS5cbiAqL1xuY29uc3QgV2hlcmVCdWlsZGVyOiBSZWFjdC5GQzxQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGNvbGxlY3Rpb246IHsgbGFiZWxzOiB7IHBsdXJhbCB9ID0ge30gfSA9IHt9LFxuICAgIGNvbGxlY3Rpb24sXG4gICAgaGFuZGxlQ2hhbmdlLFxuICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ID0gdHJ1ZSxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgaGlzdG9yeSA9IHVzZUhpc3RvcnkoKVxuICBjb25zdCBwYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKVxuICBjb25zdCB7IGkxOG4sIHQgfSA9IHVzZVRyYW5zbGF0aW9uKCdnZW5lcmFsJylcblxuICAvLyBUaGlzIGhhbmRsZXMgaW5pdGlhbGl6aW5nIHRoZSB3aGVyZSBjb25kaXRpb25zIGZyb20gdGhlIHNlYXJjaCBxdWVyeSAoVVJMKS4gVGhhdCB3YXksIGlmIHlvdSBwYXNzIGluXG4gIC8vIHF1ZXJ5IHBhcmFtcyB0byB0aGUgVVJMLCB0aGUgd2hlcmUgY29uZGl0aW9ucyB3aWxsIGJlIGluaXRpYWxpemVkIGZyb20gdGhvc2UgYW5kIGRpc3BsYXllZCBpbiB0aGUgVUkuXG4gIC8vIEV4YW1wbGU6IC9hZG1pbi9jb2xsZWN0aW9ucy9wb3N0cz93aGVyZVtvcl1bMF1bYW5kXVswXVt0ZXh0XVtlcXVhbHNdPWV4YW1wbGUlMjBwb3N0XG4gIGNvbnN0IFtjb25kaXRpb25zLCBkaXNwYXRjaENvbmRpdGlvbnNdID0gdXNlUmVkdWNlcihyZWR1Y2VyLCBwYXJhbXMud2hlcmUsICh3aGVyZUZyb21TZWFyY2gpID0+IHtcbiAgICBpZiAobW9kaWZ5U2VhcmNoUXVlcnkgJiYgd2hlcmVGcm9tU2VhcmNoKSB7XG4gICAgICBpZiAodmFsaWRhdGVXaGVyZVF1ZXJ5KHdoZXJlRnJvbVNlYXJjaCkpIHtcbiAgICAgICAgcmV0dXJuIHdoZXJlRnJvbVNlYXJjaC5vclxuICAgICAgfVxuXG4gICAgICAvLyBUcmFuc2Zvcm0gdGhlIHdoZXJlIHF1ZXJ5IHRvIGJlIGluIHRoZSByaWdodCBmb3JtYXQuIFRoaXMgd2lsbCB0cmFuc2Zvcm0gc29tZXRoaW5nIHNpbXBsZSBsaWtlIFt0ZXh0XVtlcXVhbHNdPWV4YW1wbGUlMjBwb3N0IHRvIHRoZSByaWdodCBmb3JtYXRcbiAgICAgIGNvbnN0IHRyYW5zZm9ybWVkV2hlcmUgPSB0cmFuc2Zvcm1XaGVyZVF1ZXJ5KHdoZXJlRnJvbVNlYXJjaClcblxuICAgICAgaWYgKHZhbGlkYXRlV2hlcmVRdWVyeSh0cmFuc2Zvcm1lZFdoZXJlKSkge1xuICAgICAgICByZXR1cm4gdHJhbnNmb3JtZWRXaGVyZS5vclxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLndhcm4oJ0ludmFsaWQgd2hlcmUgcXVlcnkgaW4gVVJMLiBJZ25vcmluZy4nKVxuICAgIH1cbiAgICByZXR1cm4gW11cbiAgfSlcblxuICBjb25zdCBbcmVkdWNlZEZpZWxkc10gPSB1c2VTdGF0ZSgoKSA9PiByZWR1Y2VGaWVsZHMoY29sbGVjdGlvbi5maWVsZHMsIGkxOG4pKVxuXG4gIC8vIFRoaXMgaGFuZGxlcyB1cGRhdGluZyB0aGUgc2VhcmNoIHF1ZXJ5IChVUkwpIHdoZW4gdGhlIHdoZXJlIGNvbmRpdGlvbnMgY2hhbmdlXG4gIHVzZVRocm90dGxlZEVmZmVjdChcbiAgICAoKSA9PiB7XG4gICAgICBjb25zdCBjdXJyZW50UGFyYW1zID0gcXVlcnlTdHJpbmcucGFyc2UoaGlzdG9yeS5sb2NhdGlvbi5zZWFyY2gsIHtcbiAgICAgICAgZGVwdGg6IDEwLFxuICAgICAgICBpZ25vcmVRdWVyeVByZWZpeDogdHJ1ZSxcbiAgICAgIH0pIGFzIHsgd2hlcmU6IFdoZXJlIH1cblxuICAgICAgY29uc3QgcGFyYW1zVG9LZWVwID1cbiAgICAgICAgdHlwZW9mIGN1cnJlbnRQYXJhbXM/LndoZXJlID09PSAnb2JqZWN0JyAmJiAnb3InIGluIGN1cnJlbnRQYXJhbXMud2hlcmVcbiAgICAgICAgICA/IGN1cnJlbnRQYXJhbXMud2hlcmUub3IucmVkdWNlKChrZXB0UGFyYW1zLCBwYXJhbSkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBuZXdQYXJhbSA9IHsgLi4ucGFyYW0gfVxuICAgICAgICAgICAgICBpZiAocGFyYW0uYW5kKSB7XG4gICAgICAgICAgICAgICAgZGVsZXRlIG5ld1BhcmFtLmFuZFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBbLi4ua2VwdFBhcmFtcywgbmV3UGFyYW1dXG4gICAgICAgICAgICB9LCBbXSlcbiAgICAgICAgICA6IFtdXG5cbiAgICAgIGNvbnN0IGhhc05ld1doZXJlQ29uZGl0aW9ucyA9IGNvbmRpdGlvbnMubGVuZ3RoID4gMFxuXG4gICAgICBjb25zdCBuZXdXaGVyZVF1ZXJ5ID0ge1xuICAgICAgICAuLi4odHlwZW9mIGN1cnJlbnRQYXJhbXM/LndoZXJlID09PSAnb2JqZWN0JyAmJlxuICAgICAgICAodmFsaWRhdGVXaGVyZVF1ZXJ5KGN1cnJlbnRQYXJhbXM/LndoZXJlKSB8fCAhaGFzTmV3V2hlcmVDb25kaXRpb25zKVxuICAgICAgICAgID8gY3VycmVudFBhcmFtcy53aGVyZVxuICAgICAgICAgIDoge30pLFxuICAgICAgICBvcjogWy4uLmNvbmRpdGlvbnMsIC4uLnBhcmFtc1RvS2VlcF0sXG4gICAgICB9XG5cbiAgICAgIGlmIChoYW5kbGVDaGFuZ2UpIGhhbmRsZUNoYW5nZShuZXdXaGVyZVF1ZXJ5IGFzIFdoZXJlKVxuXG4gICAgICBjb25zdCBoYXNFeGlzdGluZ0NvbmRpdGlvbnMgPVxuICAgICAgICB0eXBlb2YgY3VycmVudFBhcmFtcz8ud2hlcmUgPT09ICdvYmplY3QnICYmICdvcicgaW4gY3VycmVudFBhcmFtcy53aGVyZVxuXG4gICAgICBpZiAoXG4gICAgICAgIG1vZGlmeVNlYXJjaFF1ZXJ5ICYmXG4gICAgICAgICgoaGFzRXhpc3RpbmdDb25kaXRpb25zICYmICFoYXNOZXdXaGVyZUNvbmRpdGlvbnMpIHx8IGhhc05ld1doZXJlQ29uZGl0aW9ucylcbiAgICAgICkge1xuICAgICAgICBoaXN0b3J5LnJlcGxhY2Uoe1xuICAgICAgICAgIHNlYXJjaDogcXVlcnlTdHJpbmcuc3RyaW5naWZ5KFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAuLi5jdXJyZW50UGFyYW1zLFxuICAgICAgICAgICAgICBwYWdlOiAxLFxuICAgICAgICAgICAgICB3aGVyZTogbmV3V2hlcmVRdWVyeSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFkZFF1ZXJ5UHJlZml4OiB0cnVlIH0sXG4gICAgICAgICAgKSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIDUwMCxcbiAgICBbY29uZGl0aW9ucywgbW9kaWZ5U2VhcmNoUXVlcnksIGhhbmRsZUNoYW5nZV0sXG4gIClcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAge2NvbmRpdGlvbnMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGFiZWxgfT5cbiAgICAgICAgICAgIHt0KCdmaWx0ZXJXaGVyZScsIHsgbGFiZWw6IGdldFRyYW5zbGF0aW9uKHBsdXJhbCwgaTE4bikgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fb3ItZmlsdGVyc2B9PlxuICAgICAgICAgICAge2NvbmRpdGlvbnMubWFwKChvciwgb3JJbmRleCkgPT4gKFxuICAgICAgICAgICAgICA8bGkga2V5PXtvckluZGV4fT5cbiAgICAgICAgICAgICAgICB7b3JJbmRleCAhPT0gMCAmJiA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGFiZWxgfT57dCgnb3InKX08L2Rpdj59XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYW5kLWZpbHRlcnNgfT5cbiAgICAgICAgICAgICAgICAgIHtBcnJheS5pc0FycmF5KG9yPy5hbmQpICYmXG4gICAgICAgICAgICAgICAgICAgIG9yLmFuZC5tYXAoKF8sIGFuZEluZGV4KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17YW5kSW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAge2FuZEluZGV4ICE9PSAwICYmIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19sYWJlbGB9Pnt0KCdhbmQnKX08L2Rpdj59XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q29uZGl0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuZEluZGV4PXthbmRJbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGF0Y2g9e2Rpc3BhdGNoQ29uZGl0aW9uc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzPXtyZWR1Y2VkRmllbGRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2FuZEluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvckluZGV4PXtvckluZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29uZGl0aW9uc1tvckluZGV4XS5hbmRbYW5kSW5kZXhdfVxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC91bD5cbiAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICBidXR0b25TdHlsZT1cImljb24tbGFiZWxcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19hZGQtb3JgfVxuICAgICAgICAgICAgaWNvbj1cInBsdXNcIlxuICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICBpY29uU3R5bGU9XCJ3aXRoLWJvcmRlclwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZWR1Y2VkRmllbGRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hDb25kaXRpb25zKHsgZmllbGQ6IHJlZHVjZWRGaWVsZHNbMF0udmFsdWUsIHR5cGU6ICdhZGQnIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdvcicpfVxuICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICA8L1JlYWN0LkZyYWdtZW50PlxuICAgICAgKX1cbiAgICAgIHtjb25kaXRpb25zLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19uby1maWx0ZXJzYH0+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2xhYmVsYH0+e3QoJ25vRmlsdGVyc1NldCcpfTwvZGl2PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FkZC1maXJzdC1maWx0ZXJgfVxuICAgICAgICAgICAgaWNvbj1cInBsdXNcIlxuICAgICAgICAgICAgaWNvblBvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgICAgICBpY29uU3R5bGU9XCJ3aXRoLWJvcmRlclwiXG4gICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgIGlmIChyZWR1Y2VkRmllbGRzLmxlbmd0aCA+IDApXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2hDb25kaXRpb25zKHsgZmllbGQ6IHJlZHVjZWRGaWVsZHNbMF0udmFsdWUsIHR5cGU6ICdhZGQnIH0pXG4gICAgICAgICAgICB9fVxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt0KCdhZGRGaWx0ZXInKX1cbiAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IFdoZXJlQnVpbGRlclxuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsInJlZHVjZUZpZWxkcyIsImZpZWxkcyIsImkxOG4iLCJmbGF0dGVuVG9wTGV2ZWxGaWVsZHMiLCJyZWR1Y2UiLCJyZWR1Y2VkIiwiZmllbGQiLCJmaWVsZFR5cGVzIiwidHlwZSIsIm9wZXJhdG9yS2V5cyIsIlNldCIsIm9wZXJhdG9ycyIsImFjYyIsIm9wZXJhdG9yIiwiaGFzIiwidmFsdWUiLCJhZGQiLCJsYWJlbCIsInQiLCJmb3JtYXR0ZWRGaWVsZCIsImdldFRyYW5zbGF0aW9uIiwibmFtZSIsInByb3BzIiwiV2hlcmVCdWlsZGVyIiwiY29sbGVjdGlvbiIsImxhYmVscyIsInBsdXJhbCIsImhhbmRsZUNoYW5nZSIsIm1vZGlmeVNlYXJjaFF1ZXJ5IiwiaGlzdG9yeSIsInVzZUhpc3RvcnkiLCJwYXJhbXMiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VUcmFuc2xhdGlvbiIsImNvbmRpdGlvbnMiLCJkaXNwYXRjaENvbmRpdGlvbnMiLCJ1c2VSZWR1Y2VyIiwicmVkdWNlciIsIndoZXJlIiwid2hlcmVGcm9tU2VhcmNoIiwidmFsaWRhdGVXaGVyZVF1ZXJ5Iiwib3IiLCJ0cmFuc2Zvcm1lZFdoZXJlIiwidHJhbnNmb3JtV2hlcmVRdWVyeSIsImNvbnNvbGUiLCJ3YXJuIiwicmVkdWNlZEZpZWxkcyIsInVzZVN0YXRlIiwidXNlVGhyb3R0bGVkRWZmZWN0IiwiY3VycmVudFBhcmFtcyIsInF1ZXJ5U3RyaW5nIiwicGFyc2UiLCJsb2NhdGlvbiIsInNlYXJjaCIsImRlcHRoIiwiaWdub3JlUXVlcnlQcmVmaXgiLCJwYXJhbXNUb0tlZXAiLCJrZXB0UGFyYW1zIiwicGFyYW0iLCJuZXdQYXJhbSIsImFuZCIsImhhc05ld1doZXJlQ29uZGl0aW9ucyIsImxlbmd0aCIsIm5ld1doZXJlUXVlcnkiLCJoYXNFeGlzdGluZ0NvbmRpdGlvbnMiLCJyZXBsYWNlIiwic3RyaW5naWZ5IiwicGFnZSIsImFkZFF1ZXJ5UHJlZml4IiwiZGl2IiwiY2xhc3NOYW1lIiwiUmVhY3QiLCJGcmFnbWVudCIsInVsIiwibWFwIiwib3JJbmRleCIsImxpIiwia2V5IiwiQXJyYXkiLCJpc0FycmF5IiwiXyIsImFuZEluZGV4IiwiQ29uZGl0aW9uIiwiZGlzcGF0Y2giLCJCdXR0b24iLCJidXR0b25TdHlsZSIsImljb24iLCJpY29uUG9zaXRpb24iLCJpY29uU3R5bGUiLCJvbkNsaWNrIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdOQTs7O2VBQUE7OzsyREF4TndCOytEQUNvQjs4QkFDYjtnQ0FDSjs4RUFLTztnQ0FDSDsyRUFDQTs4QkFDQzsrREFDYjtrRUFDRzttRUFDQztRQUNoQjtnRUFDYTtxQ0FDZ0I7MkVBQ0w7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUUvQixNQUFNQSxZQUFZO0FBRWxCLE1BQU1DLGVBQWUsQ0FBQ0MsUUFBUUMsT0FDNUJDLElBQUFBLDhCQUFxQixFQUFDRixRQUFRRyxNQUFNLENBQUMsQ0FBQ0MsU0FBU0M7UUFDN0MsSUFBSSxPQUFPQyxtQkFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/JSON/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/admin/components/forms/field-types/JSON/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2C,MAAM,OAAO,CAAA;AAE/D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAUpC,OAAO,cAAc,CAAA;;AA4FrB,wBAAuC"}
|
|
@@ -16,8 +16,8 @@ const _FieldDescription = /*#__PURE__*/ _interop_require_default(require("../../
|
|
|
16
16
|
const _Label = /*#__PURE__*/ _interop_require_default(require("../../Label"));
|
|
17
17
|
const _useField = /*#__PURE__*/ _interop_require_default(require("../../useField"));
|
|
18
18
|
const _withCondition = /*#__PURE__*/ _interop_require_default(require("../../withCondition"));
|
|
19
|
-
require("./index.scss");
|
|
20
19
|
const _shared = require("../shared");
|
|
20
|
+
require("./index.scss");
|
|
21
21
|
function _interop_require_default(obj) {
|
|
22
22
|
return obj && obj.__esModule ? obj : {
|
|
23
23
|
default: obj
|
|
@@ -64,7 +64,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
|
|
|
64
64
|
}
|
|
65
65
|
const baseClass = 'json-field';
|
|
66
66
|
const JSONField = (props)=>{
|
|
67
|
-
const { name, admin: { className, condition, description, editorOptions, readOnly, style, width
|
|
67
|
+
const { name, admin: { className, components: { Error, Label } = {}, condition, description, editorOptions, readOnly, style, width } = {}, label, path: pathFromProps, required, validate = _validations.json } = props;
|
|
68
68
|
const ErrorComp = Error || _Error.default;
|
|
69
69
|
const LabelComp = Label || _Label.default;
|
|
70
70
|
const path = pathFromProps || name;
|
|
@@ -101,9 +101,10 @@ const JSONField = (props)=>{
|
|
|
101
101
|
setStringValue
|
|
102
102
|
]);
|
|
103
103
|
(0, _react.useEffect)(()=>{
|
|
104
|
-
setStringValue(JSON.stringify(initialValue, null, 2));
|
|
104
|
+
setStringValue(JSON.stringify(value ? value : initialValue, null, 2));
|
|
105
105
|
}, [
|
|
106
|
-
initialValue
|
|
106
|
+
initialValue,
|
|
107
|
+
value
|
|
107
108
|
]);
|
|
108
109
|
return /*#__PURE__*/ _react.default.createElement("div", {
|
|
109
110
|
className: [
|
|
@@ -137,4 +138,4 @@ const JSONField = (props)=>{
|
|
|
137
138
|
};
|
|
138
139
|
const _default = (0, _withCondition.default)(JSONField);
|
|
139
140
|
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2Zvcm1zL2ZpZWxkLXR5cGVzL0pTT04vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgdHlwZSB7IFByb3BzIH0gZnJvbSAnLi90eXBlcydcblxuaW1wb3J0IHsganNvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2ZpZWxkcy92YWxpZGF0aW9ucydcbmltcG9ydCB7IENvZGVFZGl0b3IgfSBmcm9tICcuLi8uLi8uLi9lbGVtZW50cy9Db2RlRWRpdG9yJ1xuaW1wb3J0IERlZmF1bHRFcnJvciBmcm9tICcuLi8uLi9FcnJvcidcbmltcG9ydCBGaWVsZERlc2NyaXB0aW9uIGZyb20gJy4uLy4uL0ZpZWxkRGVzY3JpcHRpb24nXG5pbXBvcnQgRGVmYXVsdExhYmVsIGZyb20gJy4uLy4uL0xhYmVsJ1xuaW1wb3J0IHVzZUZpZWxkIGZyb20gJy4uLy4uL3VzZUZpZWxkJ1xuaW1wb3J0IHdpdGhDb25kaXRpb24gZnJvbSAnLi4vLi4vd2l0aENvbmRpdGlvbidcbmltcG9ydCB7IGZpZWxkQmFzZUNsYXNzIH0gZnJvbSAnLi4vc2hhcmVkJ1xuaW1wb3J0ICcuL2luZGV4LnNjc3MnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdqc29uLWZpZWxkJ1xuXG5jb25zdCBKU09ORmllbGQ6IFJlYWN0LkZDPFByb3BzPiA9IChwcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgbmFtZSxcbiAgICBhZG1pbjoge1xuICAgICAgY2xhc3NOYW1lLFxuICAgICAgY29tcG9uZW50czogeyBFcnJvciwgTGFiZWwgfSA9IHt9LFxuICAgICAgY29uZGl0aW9uLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBlZGl0b3JPcHRpb25zLFxuICAgICAgcmVhZE9ubHksXG4gICAgICBzdHlsZSxcbiAgICAgIHdpZHRoLFxuICAgIH0gPSB7fSxcbiAgICBsYWJlbCxcbiAgICBwYXRoOiBwYXRoRnJvbVByb3BzLFxuICAgIHJlcXVpcmVkLFxuICAgIHZhbGlkYXRlID0ganNvbixcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgRXJyb3JDb21wID0gRXJyb3IgfHwgRGVmYXVsdEVycm9yXG4gIGNvbnN0IExhYmVsQ29tcCA9IExhYmVsIHx8IERlZmF1bHRMYWJlbFxuXG4gIGNvbnN0IHBhdGggPSBwYXRoRnJvbVByb3BzIHx8IG5hbWVcbiAgY29uc3QgW3N0cmluZ1ZhbHVlLCBzZXRTdHJpbmdWYWx1ZV0gPSB1c2VTdGF0ZTxzdHJpbmc+KClcbiAgY29uc3QgW2pzb25FcnJvciwgc2V0SnNvbkVycm9yXSA9IHVzZVN0YXRlPHN0cmluZz4oKVxuXG4gIGNvbnN0IG1lbW9pemVkVmFsaWRhdGUgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWUsIG9wdGlvbnMpID0+IHtcbiAgICAgIHJldHVybiB2YWxpZGF0ZSh2YWx1ZSwgeyAuLi5vcHRpb25zLCBqc29uRXJyb3IsIHJlcXVpcmVkIH0pXG4gICAgfSxcbiAgICBbdmFsaWRhdGUsIHJlcXVpcmVkLCBqc29uRXJyb3JdLFxuICApXG5cbiAgY29uc3QgeyBlcnJvck1lc3NhZ2UsIGluaXRpYWxWYWx1ZSwgc2V0VmFsdWUsIHNob3dFcnJvciwgdmFsdWUgfSA9IHVzZUZpZWxkPHN0cmluZz4oe1xuICAgIGNvbmRpdGlvbixcbiAgICBwYXRoLFxuICAgIHZhbGlkYXRlOiBtZW1vaXplZFZhbGlkYXRlLFxuICB9KVxuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWwpID0+IHtcbiAgICAgIGlmIChyZWFkT25seSkgcmV0dXJuXG4gICAgICBzZXRTdHJpbmdWYWx1ZSh2YWwpXG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHNldFZhbHVlKEpTT04ucGFyc2UodmFsLnRyaW0oKSB8fCAne30nKSlcbiAgICAgICAgc2V0SnNvbkVycm9yKHVuZGVmaW5lZClcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgc2V0SnNvbkVycm9yKGUpXG4gICAgICB9XG4gICAgfSxcbiAgICBbcmVhZE9ubHksIHNldFZhbHVlLCBzZXRTdHJpbmdWYWx1ZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHNldFN0cmluZ1ZhbHVlKEpTT04uc3RyaW5naWZ5KHZhbHVlID8gdmFsdWUgOiBpbml0aWFsVmFsdWUsIG51bGwsIDIpKVxuICB9LCBbaW5pdGlhbFZhbHVlLCB2YWx1ZV0pXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e1tcbiAgICAgICAgZmllbGRCYXNlQ2xhc3MsXG4gICAgICAgIGJhc2VDbGFzcyxcbiAgICAgICAgY2xhc3NOYW1lLFxuICAgICAgICBzaG93RXJyb3IgJiYgJ2Vycm9yJyxcbiAgICAgICAgcmVhZE9ubHkgJiYgJ3JlYWQtb25seScsXG4gICAgICBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC4uLnN0eWxlLFxuICAgICAgICB3aWR0aCxcbiAgICAgIH19XG4gICAgPlxuICAgICAgPEVycm9yQ29tcCBtZXNzYWdlPXtlcnJvck1lc3NhZ2V9IHNob3dFcnJvcj17c2hvd0Vycm9yfSAvPlxuICAgICAgPExhYmVsQ29tcCBodG1sRm9yPXtgZmllbGQtJHtwYXRofWB9IGxhYmVsPXtsYWJlbH0gcmVxdWlyZWQ9e3JlcXVpcmVkfSAvPlxuICAgICAgPENvZGVFZGl0b3JcbiAgICAgICAgZGVmYXVsdExhbmd1YWdlPVwianNvblwiXG4gICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2V9XG4gICAgICAgIG9wdGlvbnM9e2VkaXRvck9wdGlvbnN9XG4gICAgICAgIHJlYWRPbmx5PXtyZWFkT25seX1cbiAgICAgICAgdmFsdWU9e3N0cmluZ1ZhbHVlfVxuICAgICAgLz5cbiAgICAgIDxGaWVsZERlc2NyaXB0aW9uIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn0gdmFsdWU9e3ZhbHVlfSAvPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IHdpdGhDb25kaXRpb24oSlNPTkZpZWxkKVxuIl0sIm5hbWVzIjpbImJhc2VDbGFzcyIsIkpTT05GaWVsZCIsInByb3BzIiwibmFtZSIsImFkbWluIiwiY2xhc3NOYW1lIiwiY29tcG9uZW50cyIsIkVycm9yIiwiTGFiZWwiLCJjb25kaXRpb24iLCJkZXNjcmlwdGlvbiIsImVkaXRvck9wdGlvbnMiLCJyZWFkT25seSIsInN0eWxlIiwid2lkdGgiLCJsYWJlbCIsInBhdGgiLCJwYXRoRnJvbVByb3BzIiwicmVxdWlyZWQiLCJ2YWxpZGF0ZSIsImpzb24iLCJFcnJvckNvbXAiLCJEZWZhdWx0RXJyb3IiLCJMYWJlbENvbXAiLCJEZWZhdWx0TGFiZWwiLCJzdHJpbmdWYWx1ZSIsInNldFN0cmluZ1ZhbHVlIiwidXNlU3RhdGUiLCJqc29uRXJyb3IiLCJzZXRKc29uRXJyb3IiLCJtZW1vaXplZFZhbGlkYXRlIiwidXNlQ2FsbGJhY2siLCJ2YWx1ZSIsIm9wdGlvbnMiLCJlcnJvck1lc3NhZ2UiLCJpbml0aWFsVmFsdWUiLCJzZXRWYWx1ZSIsInNob3dFcnJvciIsInVzZUZpZWxkIiwiaGFuZGxlQ2hhbmdlIiwidmFsIiwiSlNPTiIsInBhcnNlIiwidHJpbSIsInVuZGVmaW5lZCIsImUiLCJ1c2VFZmZlY3QiLCJzdHJpbmdpZnkiLCJkaXYiLCJmaWVsZEJhc2VDbGFzcyIsImZpbHRlciIsIkJvb2xlYW4iLCJqb2luIiwibWVzc2FnZSIsImh0bWxGb3IiLCJDb2RlRWRpdG9yIiwiZGVmYXVsdExhbmd1YWdlIiwib25DaGFuZ2UiLCJGaWVsZERlc2NyaXB0aW9uIiwid2l0aENvbmRpdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkF3R0E7OztlQUFBOzs7K0RBeEd3RDs2QkFJbkM7NEJBQ007OERBQ0Y7eUVBQ0k7OERBQ0o7aUVBQ0o7c0VBQ0s7d0JB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"validations.d.ts","sourceRoot":"","sources":["../../src/fields/validations.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,UAAU,EACV,iBAAiB,EAEjB,aAAa,EACb,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,QAAQ,EACT,MAAM,gBAAgB,CAAA;AAQvB,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAuBtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAsB1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAMxD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAqB9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAMtD,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAa/E,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAS9D,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAetD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,CAO5E,CAAA;AAgCD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAgC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKxD,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAKzD,CAAA;AAgGD,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAkB1D,CAAA;AAED,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,iBAAiB,CA8DtE,CAAA;AAED,eAAO,MAAM,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAmC1D,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CASxD,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAqBxD,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAED,wBAkBC"}
|
|
@@ -212,8 +212,11 @@ const number = (value, { hasMany, max, maxRows, min, minRows, required, t })=>{
|
|
|
212
212
|
});
|
|
213
213
|
if (typeof lengthValidationResult === 'string') return lengthValidationResult;
|
|
214
214
|
}
|
|
215
|
-
if (!value &&
|
|
216
|
-
|
|
215
|
+
if (!value && !(0, _isNumber.isNumber)(value)) {
|
|
216
|
+
// if no value is present, validate based on required
|
|
217
|
+
if (required) return t('validation:required');
|
|
218
|
+
if (!required) return true;
|
|
219
|
+
}
|
|
217
220
|
const numbersToValidate = Array.isArray(value) ? value : [
|
|
218
221
|
value
|
|
219
222
|
];
|
|
@@ -445,4 +448,4 @@ const _default = {
|
|
|
445
448
|
upload
|
|
446
449
|
};
|
|
447
450
|
|
|
448
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcblxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGVtYWlsOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBFbWFpbEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiAhL1xcU1teXFxzQF0qQFxcUytcXC5cXFMrLy50ZXN0KHZhbHVlKSkgfHwgKCF2YWx1ZSAmJiByZXF1aXJlZCkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjplbWFpbEFkZHJlc3MnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0YXJlYUZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY29kZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ29kZUZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QganNvbjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgSlNPTkZpZWxkICYgeyBqc29uRXJyb3I/OiBzdHJpbmcgfT4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsganNvbkVycm9yLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoanNvbkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNoZWNrYm94OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDaGVja2JveEZpZWxkPiA9IChcbiAgdmFsdWU6IGJvb2xlYW4sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB8fCAocmVxdWlyZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246dHJ1ZU9yRmFsc2UnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIERhdGVGaWVsZD4gPSAodmFsdWUsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUudG9TdHJpbmcoKSkpKSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUtbGluZSAqL1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpub3RWYWxpZERhdGUnLCB7IHZhbHVlIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQ6IFZhbGlkYXRlPG9iamVjdCwgdW5rbm93biwgUmljaFRleHRGaWVsZCwgUmljaFRleHRGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gb3B0aW9ucz8uZWRpdG9yXG5cbiAgcmV0dXJuIGF3YWl0IGVkaXRvci52YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucylcbn1cblxuY29uc3QgdmFsaWRhdGVBcnJheUxlbmd0aDogYW55ID0gKFxuICB2YWx1ZSxcbiAgb3B0aW9uczoge1xuICAgIG1heFJvd3M/OiBudW1iZXJcbiAgICBtaW5Sb3dzPzogbnVtYmVyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdDogKGtleTogc3RyaW5nLCBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSkgPT4gc3RyaW5nXG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiAwXG5cbiAgaWYgKCFyZXF1aXJlZCAmJiBhcnJheUxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWVcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIWFycmF5TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgbnVtYmVyOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBOdW1iZXJGaWVsZD4gPSAoXG4gIHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSxcbiAgeyBoYXNNYW55LCBtYXgsIG1heFJvd3MsIG1pbiwgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG4gICAgaWYgKHR5cGVvZiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykgcmV0dXJuIGxlbmd0aFZhbGlkYXRpb25SZXN1bHRcbiAgfVxuXG4gIGlmICghdmFsdWUgJiYgcmVxdWlyZWQpIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgaWYgKCF2YWx1ZSAmJiAhcmVxdWlyZWQpIHJldHVybiB0cnVlXG5cbiAgY29uc3QgbnVtYmVyc1RvVmFsaWRhdGU6IG51bWJlcltdID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICBmb3IgKGNvbnN0IG51bWJlciBvZiBudW1iZXJzVG9WYWxpZGF0ZSkge1xuICAgIGlmICghaXNOdW1iZXIobnVtYmVyKSkgcmV0dXJuIHQoJ3ZhbGlkYXRpb246ZW50ZXJOdW1iZXInKVxuXG4gICAgY29uc3QgbnVtYmVyVmFsdWUgPSBwYXJzZUZsb2F0KG51bWJlciBhcyB1bmtub3duIGFzIHN0cmluZylcblxuICAgIGlmICh0eXBlb2YgbWF4ID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA+IG1heCkge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246Z3JlYXRlclRoYW5NYXgnLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtYXgsIHZhbHVlIH0pXG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiBtaW4gPT09ICdudW1iZXInICYmIG51bWJlclZhbHVlIDwgbWluKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsZXNzVGhhbk1pbicsIHsgbGFiZWw6IHQoJ3ZhbHVlJyksIG1pbiwgdmFsdWUgfSlcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgYXJyYXk6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEFycmF5RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmV4cG9ydCBjb25zdCBibG9ja3M6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIEJsb2NrRmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG59XG5cbmNvbnN0IHZhbGlkYXRlRmlsdGVyT3B0aW9uczogVmFsaWRhdGUgPSBhc3luYyAoXG4gIHZhbHVlLFxuICB7IGlkLCBkYXRhLCBmaWx0ZXJPcHRpb25zLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXEsIHNpYmxpbmdEYXRhLCB0LCB1c2VyIH0sXG4pID0+IHtcbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIGZpbHRlck9wdGlvbnMgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlKSB7XG4gICAgY29uc3Qgb3B0aW9uczoge1xuICAgICAgW2NvbGxlY3Rpb246IHN0cmluZ106IChudW1iZXIgfCBzdHJpbmcpW11cbiAgICB9ID0ge31cblxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gdHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnID8gW3JlbGF0aW9uVG9dIDogcmVsYXRpb25Ub1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgIGNvbGxlY3Rpb25zLm1hcChhc3luYyAoY29sbGVjdGlvbikgPT4ge1xuICAgICAgICBjb25zdCBvcHRpb25GaWx0ZXIgPVxuICAgICAgICAgIHR5cGVvZiBmaWx0ZXJPcHRpb25zID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IGF3YWl0IGZpbHRlck9wdGlvbnMoe1xuICAgICAgICAgICAgICAgIGlkLFxuICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgcmVsYXRpb25UbzogY29sbGVjdGlvbixcbiAgICAgICAgICAgICAgICBzaWJsaW5nRGF0YSxcbiAgICAgICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBmaWx0ZXJPcHRpb25zXG5cbiAgICAgICAgY29uc3QgdmFsdWVJRHM6IChudW1iZXIgfCBzdHJpbmcpW10gPSBbXVxuXG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy52YWx1ZSkge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwudmFsdWUpXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB2YWx1ZUlEcy5wdXNoKHZhbClcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG5cbiAgICAgICAgaWYgKHZhbHVlSURzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBjb25zdCBmaW5kV2hlcmUgPSB7XG4gICAgICAgICAgICBhbmQ6IFt7IGlkOiB7IGluOiB2YWx1ZUlEcyB9IH1dLFxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChvcHRpb25GaWx0ZXIpIGZpbmRXaGVyZS5hbmQucHVzaChvcHRpb25GaWx0ZXIpXG5cbiAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBwYXlsb2FkLmZpbmQoe1xuICAgICAgICAgICAgY29sbGVjdGlvbixcbiAgICAgICAgICAgIGRlcHRoOiAwLFxuICAgICAgICAgICAgbGltaXQ6IDAsXG4gICAgICAgICAgICBwYWdpbmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgIHdoZXJlOiBmaW5kV2hlcmUsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSByZXN1bHQuZG9jcy5tYXAoKGRvYykgPT4gZG9jLmlkKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIG9wdGlvbnNbY29sbGVjdGlvbl0gPSBbXVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb246IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEOiBudW1iZXIgfCBzdHJpbmdcblxuICAgICAgaWYgKHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJykge1xuICAgICAgICBjb2xsZWN0aW9uID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgIHJlcXVlc3RlZElEID0gdmFsXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmVsYXRpb25UbykgJiYgdHlwZW9mIHZhbCA9PT0gJ29iamVjdCcgJiYgdmFsPy5yZWxhdGlvblRvKSB7XG4gICAgICAgIGNvbGxlY3Rpb24gPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gb3B0aW9uc1tjb2xsZWN0aW9uXS5pbmRleE9mKHJlcXVlc3RlZElEKSA9PT0gLTFcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBpbnZhbGlkUmVsYXRpb25zaGlwcy5yZWR1Y2UoKGVyciwgaW52YWxpZCwgaSkgPT4ge1xuICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfSR7XG4gICAgICAgICAgaW52YWxpZFJlbGF0aW9uc2hpcHMubGVuZ3RoID09PSBpICsgMSA/ICcsJyA6ICcnXG4gICAgICAgIH0gYFxuICAgICAgfSwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9ucycpKSBhcyBzdHJpbmdcbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHVwbG9hZDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVXBsb2FkRmllbGQ+ID0gKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnMpID0+IHtcbiAgaWYgKCF2YWx1ZSAmJiBvcHRpb25zLnJlcXVpcmVkKSB7XG4gICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgaWRGaWVsZCA9IG9wdGlvbnM/LmNvbmZpZz8uY29sbGVjdGlvbnNcbiAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBvcHRpb25zLnJlbGF0aW9uVG8pXG4gICAgICA/LmZpZWxkcz8uZmluZCgoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcpXG5cbiAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIG9wdGlvbnM/LnBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgaWYgKCFpc1ZhbGlkSUQodmFsdWUsIHR5cGUpKSB7XG4gICAgICByZXR1cm4gb3B0aW9ucy50KCd2YWxpZGF0aW9uOnZhbGlkVXBsb2FkSUQnKVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCByZWxhdGlvbnNoaXA6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJlbGF0aW9uc2hpcEZpZWxkPiA9IGFzeW5jIChcbiAgdmFsdWU6IFJlbGF0aW9uc2hpcFZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IHsgY29uZmlnLCBtYXhSb3dzLCBtaW5Sb3dzLCBwYXlsb2FkLCByZWxhdGlvblRvLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGlmICgoIXZhbHVlIHx8IChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPT09IDApKSAmJiByZXF1aXJlZCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJylcbiAgfVxuXG4gIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSAmJiB2YWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgaWYgKG1pblJvd3MgJiYgdmFsdWUubGVuZ3RoIDwgbWluUm93cykge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCdyb3dzJyksIG1pbjogbWluUm93cywgdmFsdWU6IHZhbHVlLmxlbmd0aCB9KVxuICAgIH1cblxuICAgIGlmIChtYXhSb3dzICYmIHZhbHVlLmxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgncm93cycpLCBtYXg6IG1heFJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG4gIH1cblxuICBpZiAoIWNhblVzZURPTSAmJiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgdmFsdWVzID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV1cblxuICAgIGNvbnN0IGludmFsaWRSZWxhdGlvbnNoaXBzID0gdmFsdWVzLmZpbHRlcigodmFsKSA9PiB7XG4gICAgICBsZXQgY29sbGVjdGlvblNsdWc6IHN0cmluZ1xuICAgICAgbGV0IHJlcXVlc3RlZElEXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSByZWxhdGlvblRvXG5cbiAgICAgICAgLy8gY3VzdG9tIGlkXG4gICAgICAgIGlmICh2YWwpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uU2x1ZyA9IHZhbC5yZWxhdGlvblRvXG4gICAgICAgIHJlcXVlc3RlZElEID0gdmFsLnZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChyZXF1ZXN0ZWRJRCA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlXG5cbiAgICAgIGNvbnN0IGlkRmllbGQgPSBjb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICAgID8uZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBjb2xsZWN0aW9uU2x1ZylcbiAgICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgICBjb25zdCB0eXBlID0gZ2V0SURUeXBlKGlkRmllbGQsIHBheWxvYWQ/LmRiPy5kZWZhdWx0SURUeXBlKVxuXG4gICAgICByZXR1cm4gIWlzVmFsaWRJRChyZXF1ZXN0ZWRJRCwgdHlwZSlcbiAgICB9KVxuXG4gICAgaWYgKGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiBgVGhpcyByZWxhdGlvbnNoaXAgZmllbGQgaGFzIHRoZSBmb2xsb3dpbmcgaW52YWxpZCByZWxhdGlvbnNoaXBzOiAke2ludmFsaWRSZWxhdGlvbnNoaXBzXG4gICAgICAgIC5tYXAoKGVyciwgaW52YWxpZCkgPT4ge1xuICAgICAgICAgIHJldHVybiBgJHtlcnJ9ICR7SlNPTi5zdHJpbmdpZnkoaW52YWxpZCl9YFxuICAgICAgICB9KVxuICAgICAgICAuam9pbignLCAnKX1gXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHZhbGlkYXRlRmlsdGVyT3B0aW9ucyh2YWx1ZSwgb3B0aW9ucylcbn1cblxuZXhwb3J0IGNvbnN0IHNlbGVjdDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgU2VsZWN0RmllbGQ+ID0gKFxuICB2YWx1ZSxcbiAgeyBoYXNNYW55LCBvcHRpb25zLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChcbiAgICBBcnJheS5pc0FycmF5KHZhbHVlKSAmJlxuICAgIHZhbHVlLnNvbWUoXG4gICAgICAoaW5wdXQpID0+XG4gICAgICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSBpbnB1dCB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uPy52YWx1ZSA9PT0gaW5wdXQpLFxuICAgICAgICApLFxuICAgIClcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICBpZiAoXG4gICAgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICFvcHRpb25zLnNvbWUoXG4gICAgICAob3B0aW9uKSA9PiBvcHRpb24gPT09IHZhbHVlIHx8ICh0eXBlb2Ygb3B0aW9uICE9PSAnc3RyaW5nJyAmJiBvcHRpb24udmFsdWUgPT09IHZhbHVlKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHxcbiAgICAgIHZhbHVlID09PSBudWxsIHx8XG4gICAgICAoaGFzTWFueSAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSAmJiAodmFsdWUgYXMgW10pPy5sZW5ndGggPT09IDApKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmFkaW86IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFJhZGlvRmllbGQ+ID0gKHZhbHVlLCB7IG9wdGlvbnMsIHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHZhbHVlKSB7XG4gICAgY29uc3QgdmFsdWVNYXRjaGVzT3B0aW9uID0gb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICAgIHJldHVybiB2YWx1ZU1hdGNoZXNPcHRpb24gfHwgdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIHJldHVybiByZXF1aXJlZCA/IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSA6IHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBvaW50OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBQb2ludEZpZWxkPiA9IChcbiAgdmFsdWU6IFtudW1iZXIgfCBzdHJpbmcsIG51bWJlciB8IHN0cmluZ10gPSBbJycsICcnXSxcbiAgeyByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGNvbnN0IGxuZyA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzBdKSlcbiAgY29uc3QgbGF0ID0gcGFyc2VGbG9hdChTdHJpbmcodmFsdWVbMV0pKVxuICBpZiAoXG4gICAgcmVxdWlyZWQgJiZcbiAgICAoKHZhbHVlWzBdICYmIHZhbHVlWzFdICYmIHR5cGVvZiBsbmcgIT09ICdudW1iZXInICYmIHR5cGVvZiBsYXQgIT09ICdudW1iZXInKSB8fFxuICAgICAgTnVtYmVyLmlzTmFOKGxuZykgfHxcbiAgICAgIE51bWJlci5pc05hTihsYXQpIHx8XG4gICAgICAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoICE9PSAyKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNUd29OdW1iZXJzJylcbiAgfVxuXG4gIGlmICgodmFsdWVbMV0gJiYgTnVtYmVyLmlzTmFOKGxuZykpIHx8ICh2YWx1ZVswXSAmJiBOdW1iZXIuaXNOYU4obGF0KSkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGRlZmF1bHQge1xuICBhcnJheSxcbiAgYmxvY2tzLFxuICBjaGVja2JveCxcbiAgY29kZSxcbiAgZGF0ZSxcbiAgZW1haWwsXG4gIGpzb24sXG4gIG51bWJlcixcbiAgcGFzc3dvcmQsXG4gIHBvaW50LFxuICByYWRpbyxcbiAgcmVsYXRpb25zaGlwLFxuICByaWNoVGV4dCxcbiAgc2VsZWN0LFxuICB0ZXh0LFxuICB0ZXh0YXJlYSxcbiAgdXBsb2FkLFxufVxuIl0sIm5hbWVzIjpbInRleHQiLCJwYXNzd29yZCIsImVtYWlsIiwidGV4dGFyZWEiLCJjb2RlIiwianNvbiIsImNoZWNrYm94IiwiZGF0ZSIsInJpY2hUZXh0IiwibnVtYmVyIiwiYXJyYXkiLCJibG9ja3MiLCJ1cGxvYWQiLCJyZWxhdGlvbnNoaXAiLCJzZWxlY3QiLCJyYWRpbyIsInBvaW50IiwidmFsdWUiLCJjb25maWciLCJtYXhMZW5ndGgiLCJmaWVsZE1heExlbmd0aCIsIm1pbkxlbmd0aCIsInJlcXVpcmVkIiwidCIsImRlZmF1bHRNYXhUZXh0TGVuZ3RoIiwibGVuZ3RoIiwicGF5bG9hZCIsInRlc3QiLCJ1bmRlZmluZWQiLCJqc29uRXJyb3IiLCJpc05hTiIsIkRhdGUiLCJwYXJzZSIsInRvU3RyaW5nIiwib3B0aW9ucyIsImVkaXRvciIsInZhbGlkYXRlIiwidmFsaWRhdGVBcnJheUxlbmd0aCIsIm1heFJvd3MiLCJtaW5Sb3dzIiwiYXJyYXlMZW5ndGgiLCJBcnJheSIsImlzQXJyYXkiLCJjb3VudCIsImxhYmVsIiwiaGFzTWFueSIsIm1heCIsIm1pbiIsImxlbmd0aFZhbGlkYXRpb25SZXN1bHQiLCJudW1iZXJzVG9WYWxpZGF0ZSIsImlzTnVtYmVyIiwibnVtYmVyVmFsdWUiLCJwYXJzZUZsb2F0IiwidmFsaWRhdGVGaWx0ZXJPcHRpb25zIiwiaWQiLCJkYXRhIiwiZmlsdGVyT3B0aW9ucyIsInJlbGF0aW9uVG8iLCJyZXEiLCJzaWJsaW5nRGF0YSIsInVzZXIiLCJjYW5Vc2VET00iLCJjb2xsZWN0aW9ucyIsInZhbHVlcyIsIlByb21pc2UiLCJhbGwiLCJtYXAiLCJjb2xsZWN0aW9uIiwib3B0aW9uRmlsdGVyIiwidmFsdWVJRHMiLCJmb3JFYWNoIiwidmFsIiwicHVzaCIsImZpbmRXaGVyZSIsImFuZCIsImluIiwicmVzdWx0IiwiZmluZCIsImRlcHRoIiwibGltaXQiLCJwYWdpbmF0aW9uIiwid2hlcmUiLCJkb2NzIiwiZG9jIiwiaW52YWxpZFJlbGF0aW9uc2hpcHMiLCJmaWx0ZXIiLCJyZXF1ZXN0ZWRJRCIsImluZGV4T2YiLCJyZWR1Y2UiLCJlcnIiLCJpbnZhbGlkIiwiaSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpZEZpZWxkIiwic2x1ZyIsImZpZWxkcyIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJ0eXBlIiwiZ2V0SURUeXBlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiaXNWYWxpZElEIiwiY29sbGVjdGlvblNsdWciLCJqb2luIiwic29tZSIsImlucHV0Iiwi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
|
|
451
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZHMvdmFsaWRhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEFkYXB0ZXIgfSBmcm9tICcuLi9leHBvcnRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBBcnJheUZpZWxkLFxuICBCbG9ja0ZpZWxkLFxuICBDaGVja2JveEZpZWxkLFxuICBDb2RlRmllbGQsXG4gIERhdGVGaWVsZCxcbiAgRW1haWxGaWVsZCxcbiAgSlNPTkZpZWxkLFxuICBOdW1iZXJGaWVsZCxcbiAgUG9pbnRGaWVsZCxcbiAgUmFkaW9GaWVsZCxcbiAgUmVsYXRpb25zaGlwRmllbGQsXG4gIFJlbGF0aW9uc2hpcFZhbHVlLFxuICBSaWNoVGV4dEZpZWxkLFxuICBTZWxlY3RGaWVsZCxcbiAgVGV4dEZpZWxkLFxuICBUZXh0YXJlYUZpZWxkLFxuICBVcGxvYWRGaWVsZCxcbiAgVmFsaWRhdGUsXG59IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgY2FuVXNlRE9NIGZyb20gJy4uL3V0aWxpdGllcy9jYW5Vc2VET00nXG5pbXBvcnQgeyBnZXRJRFR5cGUgfSBmcm9tICcuLi91dGlsaXRpZXMvZ2V0SURUeXBlJ1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNOdW1iZXInXG5pbXBvcnQgeyBpc1ZhbGlkSUQgfSBmcm9tICcuLi91dGlsaXRpZXMvaXNWYWxpZElEJ1xuaW1wb3J0IHsgZmllbGRBZmZlY3RzRGF0YSB9IGZyb20gJy4vY29uZmlnL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgdGV4dDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgVGV4dEZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZT8ubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZT8ubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHBhc3N3b3JkOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0RmllbGQ+ID0gKFxuICB2YWx1ZTogc3RyaW5nLFxuICB7IGNvbmZpZywgbWF4TGVuZ3RoOiBmaWVsZE1heExlbmd0aCwgbWluTGVuZ3RoLCBwYXlsb2FkLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGxldCBtYXhMZW5ndGg6IG51bWJlclxuXG4gIGlmICh0eXBlb2YgY29uZmlnPy5kZWZhdWx0TWF4VGV4dExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGNvbmZpZy5kZWZhdWx0TWF4VGV4dExlbmd0aFxuICBpZiAodHlwZW9mIGZpZWxkTWF4TGVuZ3RoID09PSAnbnVtYmVyJykgbWF4TGVuZ3RoID0gZmllbGRNYXhMZW5ndGhcblxuICBpZiAodmFsdWUgJiYgbWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IG1heExlbmd0aCkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnNob3J0ZXJUaGFuTWF4JywgeyBtYXhMZW5ndGggfSlcbiAgfVxuXG4gIGlmICh2YWx1ZSAmJiBtaW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgbWluTGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bG9uZ2VyVGhhbk1pbicsIHsgbWluTGVuZ3RoIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIXZhbHVlKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGVtYWlsOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBFbWFpbEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKCh2YWx1ZSAmJiAhL1xcU1teXFxzQF0qQFxcUytcXC5cXFMrLy50ZXN0KHZhbHVlKSkgfHwgKCF2YWx1ZSAmJiByZXF1aXJlZCkpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjplbWFpbEFkZHJlc3MnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHRleHRhcmVhOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBUZXh0YXJlYUZpZWxkPiA9IChcbiAgdmFsdWU6IHN0cmluZyxcbiAgeyBjb25maWcsIG1heExlbmd0aDogZmllbGRNYXhMZW5ndGgsIG1pbkxlbmd0aCwgcGF5bG9hZCwgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBsZXQgbWF4TGVuZ3RoOiBudW1iZXJcblxuICBpZiAodHlwZW9mIGNvbmZpZz8uZGVmYXVsdE1heFRleHRMZW5ndGggPT09ICdudW1iZXInKSBtYXhMZW5ndGggPSBjb25maWcuZGVmYXVsdE1heFRleHRMZW5ndGhcbiAgaWYgKHR5cGVvZiBmaWVsZE1heExlbmd0aCA9PT0gJ251bWJlcicpIG1heExlbmd0aCA9IGZpZWxkTWF4TGVuZ3RoXG4gIGlmICh2YWx1ZSAmJiBtYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gbWF4TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246c2hvcnRlclRoYW5NYXgnLCB7IG1heExlbmd0aCB9KVxuICB9XG5cbiAgaWYgKHZhbHVlICYmIG1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCBtaW5MZW5ndGgpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpsb25nZXJUaGFuTWluJywgeyBtaW5MZW5ndGggfSlcbiAgfVxuXG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgY29kZTogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgQ29kZUZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCB7IHJlcXVpcmVkLCB0IH0pID0+IHtcbiAgaWYgKHJlcXVpcmVkICYmIHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QganNvbjogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgSlNPTkZpZWxkICYgeyBqc29uRXJyb3I/OiBzdHJpbmcgfT4gPSAoXG4gIHZhbHVlOiBzdHJpbmcsXG4gIHsganNvbkVycm9yLCByZXF1aXJlZCwgdCB9LFxuKSA9PiB7XG4gIGlmIChyZXF1aXJlZCAmJiAhdmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoanNvbkVycm9yICE9PSB1bmRlZmluZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkSW5wdXQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGNoZWNrYm94OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBDaGVja2JveEZpZWxkPiA9IChcbiAgdmFsdWU6IGJvb2xlYW4sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSAhPT0gJ2Jvb2xlYW4nKSB8fCAocmVxdWlyZWQgJiYgdHlwZW9mIHZhbHVlICE9PSAnYm9vbGVhbicpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246dHJ1ZU9yRmFsc2UnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGRhdGU6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIERhdGVGaWVsZD4gPSAodmFsdWUsIHsgcmVxdWlyZWQsIHQgfSkgPT4ge1xuICBpZiAodmFsdWUgJiYgIWlzTmFOKERhdGUucGFyc2UodmFsdWUudG9TdHJpbmcoKSkpKSB7XG4gICAgLyogZXNsaW50LWRpc2FibGUtbGluZSAqL1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICBpZiAodmFsdWUpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpub3RWYWxpZERhdGUnLCB7IHZhbHVlIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgcmljaFRleHQ6IFZhbGlkYXRlPG9iamVjdCwgdW5rbm93biwgUmljaFRleHRGaWVsZCwgUmljaFRleHRGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlLFxuICBvcHRpb25zLFxuKSA9PiB7XG4gIGNvbnN0IGVkaXRvcjogUmljaFRleHRBZGFwdGVyID0gb3B0aW9ucz8uZWRpdG9yXG5cbiAgcmV0dXJuIGF3YWl0IGVkaXRvci52YWxpZGF0ZSh2YWx1ZSwgb3B0aW9ucylcbn1cblxuY29uc3QgdmFsaWRhdGVBcnJheUxlbmd0aDogYW55ID0gKFxuICB2YWx1ZSxcbiAgb3B0aW9uczoge1xuICAgIG1heFJvd3M/OiBudW1iZXJcbiAgICBtaW5Sb3dzPzogbnVtYmVyXG4gICAgcmVxdWlyZWQ/OiBib29sZWFuXG4gICAgdDogKGtleTogc3RyaW5nLCBvcHRpb25zPzogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfCBzdHJpbmcgfSkgPT4gc3RyaW5nXG4gIH0sXG4pID0+IHtcbiAgY29uc3QgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IGFycmF5TGVuZ3RoID0gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZS5sZW5ndGggOiAwXG5cbiAgaWYgKCFyZXF1aXJlZCAmJiBhcnJheUxlbmd0aCA9PT0gMCkgcmV0dXJuIHRydWVcblxuICBpZiAobWluUm93cyAmJiBhcnJheUxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc0F0TGVhc3QnLCB7IGNvdW50OiBtaW5Sb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAobWF4Um93cyAmJiBhcnJheUxlbmd0aCA+IG1heFJvd3MpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlc05vTW9yZVRoYW4nLCB7IGNvdW50OiBtYXhSb3dzLCBsYWJlbDogdCgncm93cycpIH0pXG4gIH1cblxuICBpZiAocmVxdWlyZWQgJiYgIWFycmF5TGVuZ3RoKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZXNBdExlYXN0JywgeyBjb3VudDogMSwgbGFiZWw6IHQoJ3JvdycpIH0pXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgY29uc3QgbnVtYmVyOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBOdW1iZXJGaWVsZD4gPSAoXG4gIHZhbHVlOiBudW1iZXIgfCBudW1iZXJbXSxcbiAgeyBoYXNNYW55LCBtYXgsIG1heFJvd3MsIG1pbiwgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgIGNvbnN0IGxlbmd0aFZhbGlkYXRpb25SZXN1bHQgPSB2YWxpZGF0ZUFycmF5TGVuZ3RoKHZhbHVlLCB7IG1heFJvd3MsIG1pblJvd3MsIHJlcXVpcmVkLCB0IH0pXG4gICAgaWYgKHR5cGVvZiBsZW5ndGhWYWxpZGF0aW9uUmVzdWx0ID09PSAnc3RyaW5nJykgcmV0dXJuIGxlbmd0aFZhbGlkYXRpb25SZXN1bHRcbiAgfVxuXG4gIGlmICghdmFsdWUgJiYgIWlzTnVtYmVyKHZhbHVlKSkge1xuICAgIC8vIGlmIG5vIHZhbHVlIGlzIHByZXNlbnQsIHZhbGlkYXRlIGJhc2VkIG9uIHJlcXVpcmVkXG4gICAgaWYgKHJlcXVpcmVkKSByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gICAgaWYgKCFyZXF1aXJlZCkgcmV0dXJuIHRydWVcbiAgfVxuXG4gIGNvbnN0IG51bWJlcnNUb1ZhbGlkYXRlOiBudW1iZXJbXSA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgZm9yIChjb25zdCBudW1iZXIgb2YgbnVtYmVyc1RvVmFsaWRhdGUpIHtcbiAgICBpZiAoIWlzTnVtYmVyKG51bWJlcikpIHJldHVybiB0KCd2YWxpZGF0aW9uOmVudGVyTnVtYmVyJylcblxuICAgIGNvbnN0IG51bWJlclZhbHVlID0gcGFyc2VGbG9hdChudW1iZXIgYXMgdW5rbm93biBhcyBzdHJpbmcpXG5cbiAgICBpZiAodHlwZW9mIG1heCA9PT0gJ251bWJlcicgJiYgbnVtYmVyVmFsdWUgPiBtYXgpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmdyZWF0ZXJUaGFuTWF4JywgeyBsYWJlbDogdCgndmFsdWUnKSwgbWF4LCB2YWx1ZSB9KVxuICAgIH1cblxuICAgIGlmICh0eXBlb2YgbWluID09PSAnbnVtYmVyJyAmJiBudW1iZXJWYWx1ZSA8IG1pbikge1xuICAgICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246bGVzc1RoYW5NaW4nLCB7IGxhYmVsOiB0KCd2YWx1ZScpLCBtaW4sIHZhbHVlIH0pXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IGFycmF5OiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBBcnJheUZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5leHBvcnQgY29uc3QgYmxvY2tzOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBCbG9ja0ZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgbWF4Um93cywgbWluUm93cywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICByZXR1cm4gdmFsaWRhdGVBcnJheUxlbmd0aCh2YWx1ZSwgeyBtYXhSb3dzLCBtaW5Sb3dzLCByZXF1aXJlZCwgdCB9KVxufVxuXG5jb25zdCB2YWxpZGF0ZUZpbHRlck9wdGlvbnM6IFZhbGlkYXRlID0gYXN5bmMgKFxuICB2YWx1ZSxcbiAgeyBpZCwgZGF0YSwgZmlsdGVyT3B0aW9ucywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxLCBzaWJsaW5nRGF0YSwgdCwgdXNlciB9LFxuKSA9PiB7XG4gIGlmICghY2FuVXNlRE9NICYmIHR5cGVvZiBmaWx0ZXJPcHRpb25zICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSkge1xuICAgIGNvbnN0IG9wdGlvbnM6IHtcbiAgICAgIFtjb2xsZWN0aW9uOiBzdHJpbmddOiAobnVtYmVyIHwgc3RyaW5nKVtdXG4gICAgfSA9IHt9XG5cbiAgICBjb25zdCBjb2xsZWN0aW9ucyA9IHR5cGVvZiByZWxhdGlvblRvID09PSAnc3RyaW5nJyA/IFtyZWxhdGlvblRvXSA6IHJlbGF0aW9uVG9cbiAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXVxuXG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICBjb2xsZWN0aW9ucy5tYXAoYXN5bmMgKGNvbGxlY3Rpb24pID0+IHtcbiAgICAgICAgY29uc3Qgb3B0aW9uRmlsdGVyID1cbiAgICAgICAgICB0eXBlb2YgZmlsdGVyT3B0aW9ucyA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyBhd2FpdCBmaWx0ZXJPcHRpb25zKHtcbiAgICAgICAgICAgICAgICBpZCxcbiAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb24sXG4gICAgICAgICAgICAgICAgc2libGluZ0RhdGEsXG4gICAgICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogZmlsdGVyT3B0aW9uc1xuXG4gICAgICAgIGNvbnN0IHZhbHVlSURzOiAobnVtYmVyIHwgc3RyaW5nKVtdID0gW11cblxuICAgICAgICB2YWx1ZXMuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8udmFsdWUpIHtcbiAgICAgICAgICAgIHZhbHVlSURzLnB1c2godmFsLnZhbHVlKVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0eXBlb2YgdmFsID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdmFsID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgdmFsdWVJRHMucHVzaCh2YWwpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIGlmICh2YWx1ZUlEcy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgY29uc3QgZmluZFdoZXJlID0ge1xuICAgICAgICAgICAgYW5kOiBbeyBpZDogeyBpbjogdmFsdWVJRHMgfSB9XSxcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAob3B0aW9uRmlsdGVyKSBmaW5kV2hlcmUuYW5kLnB1c2gob3B0aW9uRmlsdGVyKVxuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcGF5bG9hZC5maW5kKHtcbiAgICAgICAgICAgIGNvbGxlY3Rpb24sXG4gICAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICAgIGxpbWl0OiAwLFxuICAgICAgICAgICAgcGFnaW5hdGlvbjogZmFsc2UsXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICB3aGVyZTogZmluZFdoZXJlLFxuICAgICAgICAgIH0pXG5cbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gcmVzdWx0LmRvY3MubWFwKChkb2MpID0+IGRvYy5pZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBvcHRpb25zW2NvbGxlY3Rpb25dID0gW11cbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY29uc3QgaW52YWxpZFJlbGF0aW9uc2hpcHMgPSB2YWx1ZXMuZmlsdGVyKCh2YWwpID0+IHtcbiAgICAgIGxldCBjb2xsZWN0aW9uOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRDogbnVtYmVyIHwgc3RyaW5nXG5cbiAgICAgIGlmICh0eXBlb2YgcmVsYXRpb25UbyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgY29sbGVjdGlvbiA9IHJlbGF0aW9uVG9cblxuICAgICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIHZhbCA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbFxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlbGF0aW9uVG8pICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnICYmIHZhbD8ucmVsYXRpb25Ubykge1xuICAgICAgICBjb2xsZWN0aW9uID0gdmFsLnJlbGF0aW9uVG9cbiAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWwudmFsdWVcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG9wdGlvbnNbY29sbGVjdGlvbl0uaW5kZXhPZihyZXF1ZXN0ZWRJRCkgPT09IC0xXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gaW52YWxpZFJlbGF0aW9uc2hpcHMucmVkdWNlKChlcnIsIGludmFsaWQsIGkpID0+IHtcbiAgICAgICAgcmV0dXJuIGAke2Vycn0gJHtKU09OLnN0cmluZ2lmeShpbnZhbGlkKX0ke1xuICAgICAgICAgIGludmFsaWRSZWxhdGlvbnNoaXBzLmxlbmd0aCA9PT0gaSArIDEgPyAnLCcgOiAnJ1xuICAgICAgICB9IGBcbiAgICAgIH0sIHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbnMnKSkgYXMgc3RyaW5nXG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCB1cGxvYWQ6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFVwbG9hZEZpZWxkPiA9ICh2YWx1ZTogc3RyaW5nLCBvcHRpb25zKSA9PiB7XG4gIGlmICghdmFsdWUgJiYgb3B0aW9ucy5yZXF1aXJlZCkge1xuICAgIHJldHVybiBvcHRpb25zLnQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IGlkRmllbGQgPSBvcHRpb25zPy5jb25maWc/LmNvbGxlY3Rpb25zXG4gICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gb3B0aW9ucy5yZWxhdGlvblRvKVxuICAgICAgPy5maWVsZHM/LmZpbmQoKGZpZWxkKSA9PiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiBmaWVsZC5uYW1lID09PSAnaWQnKVxuXG4gICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBvcHRpb25zPy5wYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgIGlmICghaXNWYWxpZElEKHZhbHVlLCB0eXBlKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbnMudCgndmFsaWRhdGlvbjp2YWxpZFVwbG9hZElEJylcbiAgICB9XG4gIH1cblxuICByZXR1cm4gdmFsaWRhdGVGaWx0ZXJPcHRpb25zKHZhbHVlLCBvcHRpb25zKVxufVxuXG5leHBvcnQgY29uc3QgcmVsYXRpb25zaGlwOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSZWxhdGlvbnNoaXBGaWVsZD4gPSBhc3luYyAoXG4gIHZhbHVlOiBSZWxhdGlvbnNoaXBWYWx1ZSxcbiAgb3B0aW9ucyxcbikgPT4ge1xuICBjb25zdCB7IGNvbmZpZywgbWF4Um93cywgbWluUm93cywgcGF5bG9hZCwgcmVsYXRpb25UbywgcmVxdWlyZWQsIHQgfSA9IG9wdGlvbnNcblxuICBpZiAoKCF2YWx1ZSB8fCAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSkgJiYgcmVxdWlyZWQpIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpXG4gIH1cblxuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCkge1xuICAgIGlmIChtaW5Sb3dzICYmIHZhbHVlLmxlbmd0aCA8IG1pblJvd3MpIHtcbiAgICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmxlc3NUaGFuTWluJywgeyBsYWJlbDogdCgncm93cycpLCBtaW46IG1pblJvd3MsIHZhbHVlOiB2YWx1ZS5sZW5ndGggfSlcbiAgICB9XG5cbiAgICBpZiAobWF4Um93cyAmJiB2YWx1ZS5sZW5ndGggPiBtYXhSb3dzKSB7XG4gICAgICByZXR1cm4gdCgndmFsaWRhdGlvbjpncmVhdGVyVGhhbk1heCcsIHsgbGFiZWw6IHQoJ3Jvd3MnKSwgbWF4OiBtYXhSb3dzLCB2YWx1ZTogdmFsdWUubGVuZ3RoIH0pXG4gICAgfVxuICB9XG5cbiAgaWYgKCFjYW5Vc2VET00gJiYgdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHZhbHVlcyA9IEFycmF5LmlzQXJyYXkodmFsdWUpID8gdmFsdWUgOiBbdmFsdWVdXG5cbiAgICBjb25zdCBpbnZhbGlkUmVsYXRpb25zaGlwcyA9IHZhbHVlcy5maWx0ZXIoKHZhbCkgPT4ge1xuICAgICAgbGV0IGNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgICAgIGxldCByZXF1ZXN0ZWRJRFxuXG4gICAgICBpZiAodHlwZW9mIHJlbGF0aW9uVG8gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGNvbGxlY3Rpb25TbHVnID0gcmVsYXRpb25Ub1xuXG4gICAgICAgIC8vIGN1c3RvbSBpZFxuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgcmVxdWVzdGVkSUQgPSB2YWxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSAmJiB0eXBlb2YgdmFsID09PSAnb2JqZWN0JyAmJiB2YWw/LnJlbGF0aW9uVG8pIHtcbiAgICAgICAgY29sbGVjdGlvblNsdWcgPSB2YWwucmVsYXRpb25Ub1xuICAgICAgICByZXF1ZXN0ZWRJRCA9IHZhbC52YWx1ZVxuICAgICAgfVxuXG4gICAgICBpZiAocmVxdWVzdGVkSUQgPT09IG51bGwpIHJldHVybiBmYWxzZVxuXG4gICAgICBjb25zdCBpZEZpZWxkID0gY29uZmlnPy5jb2xsZWN0aW9uc1xuICAgICAgICA/LmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gY29sbGVjdGlvblNsdWcpXG4gICAgICAgID8uZmllbGRzPy5maW5kKChmaWVsZCkgPT4gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGQubmFtZSA9PT0gJ2lkJylcblxuICAgICAgY29uc3QgdHlwZSA9IGdldElEVHlwZShpZEZpZWxkLCBwYXlsb2FkPy5kYj8uZGVmYXVsdElEVHlwZSlcblxuICAgICAgcmV0dXJuICFpc1ZhbGlkSUQocmVxdWVzdGVkSUQsIHR5cGUpXG4gICAgfSlcblxuICAgIGlmIChpbnZhbGlkUmVsYXRpb25zaGlwcy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gYFRoaXMgcmVsYXRpb25zaGlwIGZpZWxkIGhhcyB0aGUgZm9sbG93aW5nIGludmFsaWQgcmVsYXRpb25zaGlwczogJHtpbnZhbGlkUmVsYXRpb25zaGlwc1xuICAgICAgICAubWFwKChlcnIsIGludmFsaWQpID0+IHtcbiAgICAgICAgICByZXR1cm4gYCR7ZXJyfSAke0pTT04uc3RyaW5naWZ5KGludmFsaWQpfWBcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJywgJyl9YFxuICAgIH1cbiAgfVxuXG4gIHJldHVybiB2YWxpZGF0ZUZpbHRlck9wdGlvbnModmFsdWUsIG9wdGlvbnMpXG59XG5cbmV4cG9ydCBjb25zdCBzZWxlY3Q6IFZhbGlkYXRlPHVua25vd24sIHVua25vd24sIFNlbGVjdEZpZWxkPiA9IChcbiAgdmFsdWUsXG4gIHsgaGFzTWFueSwgb3B0aW9ucywgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBpZiAoXG4gICAgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiZcbiAgICB2YWx1ZS5zb21lKFxuICAgICAgKGlucHV0KSA9PlxuICAgICAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gaW5wdXQgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbj8udmFsdWUgPT09IGlucHV0KSxcbiAgICAgICAgKSxcbiAgICApXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOmludmFsaWRTZWxlY3Rpb24nKVxuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiZcbiAgICAhb3B0aW9ucy5zb21lKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uID09PSB2YWx1ZSB8fCAodHlwZW9mIG9wdGlvbiAhPT0gJ3N0cmluZycgJiYgb3B0aW9uLnZhbHVlID09PSB2YWx1ZSksXG4gICAgKVxuICApIHtcbiAgICByZXR1cm4gdCgndmFsaWRhdGlvbjppbnZhbGlkU2VsZWN0aW9uJylcbiAgfVxuXG4gIGlmIChcbiAgICByZXF1aXJlZCAmJlxuICAgICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnIHx8XG4gICAgICB2YWx1ZSA9PT0gbnVsbCB8fFxuICAgICAgKGhhc01hbnkgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgKHZhbHVlIGFzIFtdKT8ubGVuZ3RoID09PSAwKSlcbiAgKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGNvbnN0IHJhZGlvOiBWYWxpZGF0ZTx1bmtub3duLCB1bmtub3duLCBSYWRpb0ZpZWxkPiA9ICh2YWx1ZSwgeyBvcHRpb25zLCByZXF1aXJlZCwgdCB9KSA9PiB7XG4gIGlmICh2YWx1ZSkge1xuICAgIGNvbnN0IHZhbHVlTWF0Y2hlc09wdGlvbiA9IG9wdGlvbnMuc29tZShcbiAgICAgIChvcHRpb24pID0+IG9wdGlvbiA9PT0gdmFsdWUgfHwgKHR5cGVvZiBvcHRpb24gIT09ICdzdHJpbmcnICYmIG9wdGlvbi52YWx1ZSA9PT0gdmFsdWUpLFxuICAgIClcbiAgICByZXR1cm4gdmFsdWVNYXRjaGVzT3B0aW9uIHx8IHQoJ3ZhbGlkYXRpb246aW52YWxpZFNlbGVjdGlvbicpXG4gIH1cblxuICByZXR1cm4gcmVxdWlyZWQgPyB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJykgOiB0cnVlXG59XG5cbmV4cG9ydCBjb25zdCBwb2ludDogVmFsaWRhdGU8dW5rbm93biwgdW5rbm93biwgUG9pbnRGaWVsZD4gPSAoXG4gIHZhbHVlOiBbbnVtYmVyIHwgc3RyaW5nLCBudW1iZXIgfCBzdHJpbmddID0gWycnLCAnJ10sXG4gIHsgcmVxdWlyZWQsIHQgfSxcbikgPT4ge1xuICBjb25zdCBsbmcgPSBwYXJzZUZsb2F0KFN0cmluZyh2YWx1ZVswXSkpXG4gIGNvbnN0IGxhdCA9IHBhcnNlRmxvYXQoU3RyaW5nKHZhbHVlWzFdKSlcbiAgaWYgKFxuICAgIHJlcXVpcmVkICYmXG4gICAgKCh2YWx1ZVswXSAmJiB2YWx1ZVsxXSAmJiB0eXBlb2YgbG5nICE9PSAnbnVtYmVyJyAmJiB0eXBlb2YgbGF0ICE9PSAnbnVtYmVyJykgfHxcbiAgICAgIE51bWJlci5pc05hTihsbmcpIHx8XG4gICAgICBOdW1iZXIuaXNOYU4obGF0KSB8fFxuICAgICAgKEFycmF5LmlzQXJyYXkodmFsdWUpICYmIHZhbHVlLmxlbmd0aCAhPT0gMikpXG4gICkge1xuICAgIHJldHVybiB0KCd2YWxpZGF0aW9uOnJlcXVpcmVzVHdvTnVtYmVycycpXG4gIH1cblxuICBpZiAoKHZhbHVlWzFdICYmIE51bWJlci5pc05hTihsbmcpKSB8fCAodmFsdWVbMF0gJiYgTnVtYmVyLmlzTmFOKGxhdCkpKSB7XG4gICAgcmV0dXJuIHQoJ3ZhbGlkYXRpb246aW52YWxpZElucHV0JylcbiAgfVxuXG4gIHJldHVybiB0cnVlXG59XG5cbmV4cG9ydCBkZWZhdWx0IHtcbiAgYXJyYXksXG4gIGJsb2NrcyxcbiAgY2hlY2tib3gsXG4gIGNvZGUsXG4gIGRhdGUsXG4gIGVtYWlsLFxuICBqc29uLFxuICBudW1iZXIsXG4gIHBhc3N3b3JkLFxuICBwb2ludCxcbiAgcmFkaW8sXG4gIHJlbGF0aW9uc2hpcCxcbiAgcmljaFRleHQsXG4gIHNlbGVjdCxcbiAgdGV4dCxcbiAgdGV4dGFyZWEsXG4gIHVwbG9hZCxcbn1cbiJdLCJuYW1lcyI6WyJ0ZXh0IiwicGFzc3dvcmQiLCJlbWFpbCIsInRleHRhcmVhIiwiY29kZSIsImpzb24iLCJjaGVja2JveCIsImRhdGUiLCJyaWNoVGV4dCIsIm51bWJlciIsImFycmF5IiwiYmxvY2tzIiwidXBsb2FkIiwicmVsYXRpb25zaGlwIiwic2VsZWN0IiwicmFkaW8iLCJwb2ludCIsInZhbHVlIiwiY29uZmlnIiwibWF4TGVuZ3RoIiwiZmllbGRNYXhMZW5ndGgiLCJtaW5MZW5ndGgiLCJyZXF1aXJlZCIsInQiLCJkZWZhdWx0TWF4VGV4dExlbmd0aCIsImxlbmd0aCIsInBheWxvYWQiLCJ0ZXN0IiwidW5kZWZpbmVkIiwianNvbkVycm9yIiwiaXNOYU4iLCJEYXRlIiwicGFyc2UiLCJ0b1N0cmluZyIsIm9wdGlvbnMiLCJlZGl0b3IiLCJ2YWxpZGF0ZSIsInZhbGlkYXRlQXJyYXlMZW5ndGgiLCJtYXhSb3dzIiwibWluUm93cyIsImFycmF5TGVuZ3RoIiwiQXJyYXkiLCJpc0FycmF5IiwiY291bnQiLCJsYWJlbCIsImhhc01hbnkiLCJtYXgiLCJtaW4iLCJsZW5ndGhWYWxpZGF0aW9uUmVzdWx0IiwiaXNOdW1iZXIiLCJudW1iZXJzVG9WYWxpZGF0ZSIsIm51bWJlclZhbHVlIiwicGFyc2VGbG9hdCIsInZhbGlkYXRlRmlsdGVyT3B0aW9ucyIsImlkIiwiZGF0YSIsImZpbHRlck9wdGlvbnMiLCJyZWxhdGlvblRvIiwicmVxIiwic2libGluZ0RhdGEiLCJ1c2VyIiwiY2FuVXNlRE9NIiwiY29sbGVjdGlvbnMiLCJ2YWx1ZXMiLCJQcm9taXNlIiwiYWxsIiwibWFwIiwiY29sbGVjdGlvbiIsIm9wdGlvbkZpbHRlciIsInZhbHVlSURzIiwiZm9yRWFjaCIsInZhbCIsInB1c2giLCJmaW5kV2hlcmUiLCJhbmQiLCJpbiIsInJlc3VsdCIsImZpbmQiLCJkZXB0aCIsImxpbWl0IiwicGFnaW5hdGlvbiIsIndoZXJlIiwiZG9jcyIsImRvYyIsImludmFsaWRSZWxhdGlvbnNoaXBzIiwiZmlsdGVyIiwicmVxdWVzdGVkSUQiLCJpbmRleE9mIiwicmVkdWNlIiwiZXJyIiwiaW52YWxpZCIsImkiLCJKU09OIiwic3RyaW5naWZ5IiwiaWRGaWVsZCIsInNsdWciLCJmaWVsZHMiLCJmaWVsZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJuYW1lIiwidHlwZSIsImdldElEVHlwZSIsImRiIiwiZGVmYXVsdElEVHlwZSIsImlzVmFsaWRJRCIsImNvbGxlY3Rpb25TbHVnIiwiam9pbiIsInNvbWUiLCJpbnB1dCIsIm9wdGlvbiIsInZhbHVlTWF0Y2hlc09wdGlvbiIsImxuZyIsIlN0cmluZyIsImxhdCIsIk51bWJlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7SUE0QmFBLElBQUk7ZUFBSkE7O0lBeUJBQyxRQUFRO2VBQVJBOztJQXdCQUMsS0FBSztlQUFMQTs7SUFRQUMsUUFBUTtlQUFSQTs7SUF1QkFDLElBQUk7ZUFBSkE7O0lBUUFDLElBQUk7ZUFBSkE7O0lBZUFDLFFBQVE7ZUFBUkE7O0lBV0FDLElBQUk7ZUFBSkE7O0lBaUJBQyxRQUFRO2VBQVJBOztJQXVDQUMsTUFBTTtlQUFOQTs7SUFrQ0FDLEtBQUs7ZUFBTEE7O0lBT0FDLE1BQU07ZUFBTkE7O0lBcUdBQyxNQUFNO2VBQU5BOztJQW9CQUMsWUFBWTtlQUFaQTs7SUFnRUFDLE1BQU07ZUFBTkE7O0lBcUNBQyxLQUFLO2VBQUxBOztJQVdBQyxLQUFLO2VBQUxBOztJQXVCYixPQWtCQztlQWxCRDs7O2tFQXpkc0I7MkJBQ0k7MEJBQ0Q7MkJBQ0M7dUJBQ087Ozs7OztBQUUxQixNQUFNaEIsT0FBOEMsQ0FDekRpQixPQUNBLEVBQUVDLE1BQU0sRUFBRUMsV0FBV0MsY0FBYyxFQUFFQyxTQUFTLEVBQUVDLFFBQVEsRUFBRUMsQ0FBQyxFQUFFO0lBRTdELElBQUlKO0lBRUosSUFBSSxPQUFPRCxRQUFRTSx5QkFBeUIsVUFBVUwsWUFBWUQsT0FBT00sb0JBQW9CO0lBQzdGLElBQUksT0FBT0osbUJBQW1CLFVBQVVELFlBQVlDO0lBQ3BELElBQUlILFNBQVNFLGFBQWFGLE1BQU1RLE1BQU0sR0FBR04sV0FBVztRQUNsRCxPQUFPSSxFQUFFLDZCQUE2QjtZQUFFSjtRQUFVO0lBQ3BEO0lBRUEsSUFBSUYsU0FBU0ksYUFBYUosT0FBT1EsU0FBU0osV0FBVztRQUNuRCxPQUFPRSxFQUFFLDRCQUE0QjtZQUFFRjtR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
|