@onecx/angular-accelerator 5.23.5 → 5.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/data-list-grid/data-list-grid.component.mjs +3 -3
- package/esm2022/lib/components/data-sort-base/data-sort-base.mjs +18 -8
- package/esm2022/lib/components/data-table/data-table.component.mjs +3 -3
- package/esm2022/lib/components/data-view/data-view.component.mjs +1 -1
- package/esm2022/lib/components/filter-view/filter-view.component.mjs +4 -1
- package/esm2022/lib/components/interactive-data-view/interactive-data-view.component.mjs +8 -2
- package/esm2022/lib/components/search-header/search-header.component.mjs +19 -14
- package/esm2022/lib/directives/if-permission.directive.mjs +15 -15
- package/esm2022/lib/model/data-action.mjs +1 -1
- package/fesm2022/onecx-angular-accelerator.mjs +54 -32
- package/fesm2022/onecx-angular-accelerator.mjs.map +1 -1
- package/lib/components/data-list-grid/data-list-grid.component.d.ts +3 -3
- package/lib/components/data-table/data-table.component.d.ts +3 -3
- package/lib/components/data-view/data-view.component.d.ts +3 -3
- package/lib/components/interactive-data-view/interactive-data-view.component.d.ts +4 -4
- package/lib/components/search-header/search-header.component.d.ts +4 -2
- package/lib/model/data-action.d.ts +1 -1
- package/package.json +1 -1
|
@@ -65,15 +65,25 @@ export class DataSortBase {
|
|
|
65
65
|
if (!clientSideSorting || sortColumn === '') {
|
|
66
66
|
return [items, filters, sortColumn, sortDirection, translations];
|
|
67
67
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
const column = columns.find((h) => h.id === sortColumn);
|
|
69
|
+
let colValues;
|
|
70
|
+
if (column?.columnType === ColumnType.DATE || column?.columnType === ColumnType.RELATIVE_DATE) {
|
|
71
|
+
colValues = Object.fromEntries(items.map((i) => [
|
|
72
|
+
ObjectUtils.resolveFieldData(i, sortColumn),
|
|
73
|
+
ObjectUtils.resolveFieldData(i, sortColumn),
|
|
74
|
+
]));
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
colValues = Object.fromEntries(items.map((i) => [
|
|
78
|
+
ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
|
|
79
|
+
ObjectUtils.resolveFieldData(i, sortColumn)?.toString(),
|
|
80
|
+
]));
|
|
81
|
+
}
|
|
82
|
+
if (column?.columnType === ColumnType.TRANSLATION_KEY) {
|
|
83
|
+
colValues = translations[sortColumn];
|
|
74
84
|
}
|
|
75
85
|
return [
|
|
76
|
-
[...items].sort(this.createCompareFunction(
|
|
86
|
+
[...items].sort(this.createCompareFunction(colValues, sortColumn, sortDirection)),
|
|
77
87
|
filters,
|
|
78
88
|
sortColumn,
|
|
79
89
|
sortDirection,
|
|
@@ -121,4 +131,4 @@ export class DataSortBase {
|
|
|
121
131
|
};
|
|
122
132
|
}
|
|
123
133
|
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtc29ydC1iYXNlL2RhdGEtc29ydC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFLMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUk3RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNZLE1BQWMsRUFDZCxnQkFBa0M7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDM0MsQ0FBQztJQUVKLGNBQWMsQ0FDWixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBMkQsRUFDckcsT0FBMEIsRUFDMUIsbUJBQTRCLEVBQzVCLGlCQUEwQjtRQUUxQixJQUFJLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDN0MsSUFBSSxlQUFlLEdBQWEsRUFBRSxDQUFBO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsR0FBRztvQkFDaEIsR0FBRyxlQUFlO29CQUNs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Q0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTtZQUVuRixJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFBO2lCQUM1QyxJQUFJLE1BQU0sSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLElBQUk7Z0JBQUUsTUFBTSxHQUFHLENBQUMsQ0FBQTtpQkFDaEQsSUFBSSxNQUFNLElBQUksSUFBSSxJQUFJLE1BQU0sSUFBSSxJQUFJO2dCQUFFLE1BQU0sR0FBRyxDQUFDLENBQUE7aUJBQ2hELElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVE7Z0JBQy9ELE1BQU0sR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7aUJBQ2hGLENBQUM7Z0JBQ0osSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7b0JBQ3BCLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQTtnQkFDYixDQUFDO3FCQUFNLElBQUksTUFBTSxHQUFHLE1BQU0sRUFBRSxDQUFDO29CQUMzQixNQUFNLEdBQUcsQ0FBQyxDQUFBO2dCQUNaLENBQUM7cUJBQU0sQ0FBQztvQkFDTixNQUFNLEdBQUcsQ0FBQyxDQUFBO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBQ0QsT0FBTyxTQUFTLEdBQUcsTUFBTSxDQUFBO1FBQzNCLENBQUMsQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgbWFwLCBvZiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmbGF0dGVuT2JqZWN0IH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2ZsYXR0ZW4tb2JqZWN0J1xuaW1wb3J0IHsgQ29sdW1uVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2NvbHVtbi10eXBlLm1vZGVsJ1xuaW1wb3J0IHsgRGF0YVNvcnREaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXNvcnQtZGlyZWN0aW9uJ1xuaW1wb3J0IHsgRGF0YVRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vLi4vbW9kZWwvZGF0YS10YWJsZS1jb2x1bW4ubW9kZWwnXG5pbXBvcnQgeyBMaXN0R3JpZERhdGEgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2RhdGEtbGlzdC1ncmlkL2RhdGEtbGlzdC1ncmlkLmNvbXBvbmVudCdcbmltcG9ydCB7IFJvdyB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudCdcbmltcG9ydCB7IE9iamVjdFV0aWxzIH0gZnJvbSAnLi4vLi4vdXRpbHMvb2JqZWN0dXRpbHMnXG5pbXBvcnQgeyBGaWx0ZXIsIEZpbHRlclR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbC9maWx0ZXIubW9kZWwnXG5cbnR5cGUgUm93TGlzdEdyaWREYXRhID0gTGlzdEdyaWREYXRhIHwgUm93XG5cbmV4cG9ydCBjbGFzcyBEYXRhU29ydEJhc2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbG9jYWxlOiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHRyYW5zbGF0ZUl0ZW1zKFxuICAgIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbl06IFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb25dLFxuICAgIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdLFxuICAgIGNsaWVudFNpZGVGaWx0ZXJpbmc6IGJvb2xlYW4sXG4gICAgY2xpZW50U2lkZVNvcnRpbmc6IGJvb2xlYW5cbiAgKTogT2JzZXJ2YWJsZTxbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0+IHtcbiAgICBpZiAoY2xpZW50U2lkZUZpbHRlcmluZyB8fCBjbGllbnRTaWRlU29ydGluZykge1xuICAgICAgbGV0IHRyYW5zbGF0aW9uS2V5czogc3RyaW5nW10gPSBbXVxuICAgICAgY29uc3QgdHJhbnNsYXRlZENvbHVtbnMgPSBjb2x1bW5zLmZpbHRlcigoYykgPT4gYy5jb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSlcbiAgICAgIHRyYW5zbGF0ZWRDb2x1bW5zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgdHJhbnNsYXRpb25LZXlzID0gW1xuICAgICAgICAgIC4uLnRyYW5zbGF0aW9uS2V5cyxcbiAgICAgICAgICAuLi5pdGVtcy5tYXAoKGkpID0+IE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCkpLmZpbHRlcigodikgPT4gISF2KSxcbiAgICAgICAgXVxuICAgICAgfSlcbiAgICAgIGlmICh0cmFuc2xhdGlvbktleXMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuZ2V0KHRyYW5zbGF0aW9uS2V5cykucGlwZShcbiAgICAgICAgICBtYXAoKHRyYW5zbGF0ZWRWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0aW9uczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4gPSB7fVxuICAgICAgICAgICAgdHJhbnNsYXRlZENvbHVtbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNbYy5pZF0gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgICAgICAgICAgaXRlbXMubWFwKChpKSA9PiBbXG4gICAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIGMuaWQpPy50b1N0cmluZygpIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZFZhbHVlc1tPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIGMuaWQpPy50b1N0cmluZygpXSxcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9mKFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwge31dKVxuICB9XG5cbiAgZmlsdGVySXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdOiBbXG4gICAgICBSb3dMaXN0R3JpZERhdGFbXSxcbiAgICAgIEZpbHRlcltdLFxuICAgICAgc3RyaW5nLFxuICAgICAgRGF0YVNvcnREaXJlY3Rpb24sXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PixcbiAgICBdLFxuICAgIGNsaWVudFNpZGVGaWx0ZXJpbmc6IGJvb2xlYW5cbiAgKTogW1Jvd0xpc3RHcmlkRGF0YVtdLCBGaWx0ZXJbXSwgc3RyaW5nLCBEYXRhU29ydERpcmVjdGlvbiwgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj5dIHtcbiAgICBpZiAoIWNsaWVudFNpZGVGaWx0ZXJpbmcpIHtcbiAgICAgIHJldHVybiBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc11cbiAgICB9XG4gICAgcmV0dXJuIFtcbiAgICAgIGl0ZW1zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgZmlsdGVyc1xuICAgICAgICAgIC5tYXAoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbklkKVxuICAgICAgICAgIC5maWx0ZXIoKHZhbHVlLCBpbmRleCwgc2VsZikgPT4gc2VsZi5pbmRleE9mKHZhbHVlKSA9PT0gaW5kZXggJiYgdmFsdWUgIT0gbnVsbClcbiAgICAgICAgICAuZXZlcnkoKGZpbHRlckNvbHVtbklkKSA9PlxuICAgICAgICAgICAgZmlsdGVyc1xuICAgICAgICAgICAgICAuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jb2x1bW5JZCA9PT0gZmlsdGVyQ29sdW1uSWQpXG4gICAgICAgICAgICAgIC5zb21lKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IChcbiAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1tmaWx0ZXIuY29sdW1uSWRdPy5bT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpdGVtLCBmaWx0ZXIuY29sdW1uSWQpPy50b1N0cmluZygpXSB8fFxuICAgICAgICAgICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpdGVtLCBmaWx0ZXIuY29sdW1uSWQpXG4gICAgICAgICAgICAgICAgKT8udG9TdHJpbmcoKVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZmlsdGVyLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgICAgICAgIGNhc2UgdW5kZWZpbmVkOlxuICAgICAgICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlLkVRVUFMOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgPT09IFN0cmluZyhmaWx0ZXIudmFsdWUpXG4gICAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuVFJVVEhZOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXIudmFsdWUgPyAhIXZhbHVlIDogIXZhbHVlXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICksXG4gICAgICBmaWx0ZXJzLFxuICAgICAgc29ydENvbHVtbixcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB0cmFuc2xhdGlvbnMsXG4gICAgXVxuICB9XG5cbiAgc29ydEl0ZW1zKFxuICAgIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXTogW1xuICAgICAgUm93TGlzdEdyaWREYXRhW10sXG4gICAgICBGaWx0ZXJbXSxcbiAgICAgIHN0cmluZyxcbiAgICAgIERhdGFTb3J0RGlyZWN0aW9uLFxuICAgICAgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgc3RyaW5nPj4sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBEYXRhVGFibGVDb2x1bW5bXSxcbiAgICBjbGllbnRTaWRlU29ydGluZzogYm9vbGVhblxuICApOiBbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0ge1xuICAgIGlmICghY2xpZW50U2lkZVNvcnRpbmcgfHwgc29ydENvbHVtbiA9PT0gJycpIHtcbiAgICAgIHJldHVybiBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc11cbiAgICB9XG4gICAgbGV0IHRyYW5zbGF0ZWRDb2xWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgIF0pXG4gICAgKVxuICAgIGlmIChjb2x1bW5zLmZpbmQoKGgpID0+IGguaWQgPT09IHNvcnRDb2x1bW4pPy5jb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlLlRSQU5TTEFUSU9OX0tFWSkge1xuICAgICAgdHJhbnNsYXRlZENvbFZhbHVlcyA9IHRyYW5zbGF0aW9uc1tzb3J0Q29sdW1uXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgWy4uLml0ZW1zXS5zb3J0KHRoaXMuY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKHRyYW5zbGF0ZWRDb2xWYWx1ZXMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24pKSxcbiAgICAgIGZpbHRlcnMsXG4gICAgICBzb3J0Q29sdW1uLFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICBdXG4gIH1cblxuICBmbGF0dGVuSXRlbXMoaXRlbXM6IFJvd0xpc3RHcmlkRGF0YVtdKSB7XG4gICAgcmV0dXJuIGl0ZW1zLm1hcCgoaSkgPT4gZmxhdHRlbk9iamVjdChpKSlcbiAgfVxuXG4gIGNyZWF0ZUNvbXBhcmVGdW5jdGlvbihcbiAgICB0cmFuc2xhdGVkQ29sVmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuICAgIHNvcnRDb2x1bW46IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uOiBEYXRhU29ydERpcmVjdGlvblxuICApOiAoYTogUmVjb3JkPHN0cmluZywgYW55PiwgYjogUmVjb3JkPHN0cmluZywgYW55PikgPT4gbnVtYmVyIHtcbiAgICBsZXQgZGlyZWN0aW9uID0gMFxuICAgIGlmIChzb3J0RGlyZWN0aW9uID09PSBEYXRhU29ydERpcmVjdGlvbi5BU0NFTkRJTkcpIHtcbiAgICAgIGRpcmVjdGlvbiA9IDFcbiAgICB9IGVsc2UgaWYgKHNvcnREaXJlY3Rpb24gPT09IERhdGFTb3J0RGlyZWN0aW9uLkRFU0NFTkRJTkcpIHtcbiAgICAgIGRpcmVjdGlvbiA9IC0xXG4gICAgfVxuICAgIHJldHVybiAoZGF0YTEsIGRhdGEyKSA9PiB7XG4gICAgICBpZiAoZGlyZWN0aW9uID09PSAwKSB7XG4gICAgICAgIHJldHVybiAwXG4gICAgICB9XG4gICAgICBsZXQgcmVzdWx0XG4gICAgICBjb25zdCB2YWx1ZTEgPSB0cmFuc2xhdGVkQ29sVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZGF0YTEsIHNvcnRDb2x1bW4pXVxuICAgICAgY29uc3QgdmFsdWUyID0gdHJhbnNsYXRlZENvbFZhbHVlc1tPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGRhdGEyLCBzb3J0Q29sdW1uKV1cblxuICAgICAgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiAhPSBudWxsKSByZXN1bHQgPSAtMVxuICAgICAgZWxzZSBpZiAodmFsdWUxICE9IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDFcbiAgICAgIGVsc2UgaWYgKHZhbHVlMSA9PSBudWxsICYmIHZhbHVlMiA9PSBudWxsKSByZXN1bHQgPSAwXG4gICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUxID09PSAnc3RyaW5nJyAmJiB0eXBlb2YgdmFsdWUyID09PSAnc3RyaW5nJylcbiAgICAgICAgcmVzdWx0ID0gdmFsdWUxLmxvY2FsZUNvbXBhcmUodmFsdWUyLCBbdGhpcy5sb2NhbGUsICdlbicsICdkZSddLCB7IG51bWVyaWM6IHRydWUgfSlcbiAgICAgIGVsc2Uge1xuICAgICAgICBpZiAodmFsdWUxIDwgdmFsdWUyKSB7XG4gICAgICAgICAgcmVzdWx0ID0gLTFcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZTEgPiB2YWx1ZTIpIHtcbiAgICAgICAgICByZXN1bHQgPSAxXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gMFxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZGlyZWN0aW9uICogcmVzdWx0XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
134
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zb3J0LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItYWNjZWxlcmF0b3Ivc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtc29ydC1iYXNlL2RhdGEtc29ydC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxHQUFHLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFLMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3JELE9BQU8sRUFBVSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUk3RCxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNZLE1BQWMsRUFDZCxnQkFBa0M7UUFEbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDM0MsQ0FBQztJQUVKLGNBQWMsQ0FDWixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBMkQsRUFDckcsT0FBMEIsRUFDMUIsbUJBQTRCLEVBQzVCLGlCQUEwQjtRQUUxQixJQUFJLG1CQUFtQixJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDN0MsSUFBSSxlQUFlLEdBQWEsRUFBRSxDQUFBO1lBQ2xDLE1BQU0saUJBQWlCLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsS0FBSyxVQUFVLENBQUMsZUFBZSxDQUFDLENBQUE7WUFDNUYsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzlCLGVBQWUsR0FBRztvQkFDaEIsR0FBRyxlQUFlO29CQUNs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LENBQUM7cUJBQU0sSUFBSSxNQUFNLEdBQUcsTUFBTSxFQUFFLENBQUM7b0JBQzNCLE1BQU0sR0FBRyxDQUFDLENBQUE7Z0JBQ1osQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sR0FBRyxDQUFDLENBQUE7Z0JBQ1osQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLFNBQVMsR0FBRyxNQUFNLENBQUE7UUFDM0IsQ0FBQyxDQUFBO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtYXAsIG9mIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZsYXR0ZW5PYmplY3QgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZmxhdHRlbi1vYmplY3QnXG5pbXBvcnQgeyBDb2x1bW5UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWwvY29sdW1uLXR5cGUubW9kZWwnXG5pbXBvcnQgeyBEYXRhU29ydERpcmVjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL2RhdGEtc29ydC1kaXJlY3Rpb24nXG5pbXBvcnQgeyBEYXRhVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbC9kYXRhLXRhYmxlLWNvbHVtbi5tb2RlbCdcbmltcG9ydCB7IExpc3RHcmlkRGF0YSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvZGF0YS1saXN0LWdyaWQvZGF0YS1saXN0LWdyaWQuY29tcG9uZW50J1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cy9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50J1xuaW1wb3J0IHsgT2JqZWN0VXRpbHMgfSBmcm9tICcuLi8uLi91dGlscy9vYmplY3R1dGlscydcbmltcG9ydCB7IEZpbHRlciwgRmlsdGVyVHlwZSB9IGZyb20gJy4uLy4uL21vZGVsL2ZpbHRlci5tb2RlbCdcblxudHlwZSBSb3dMaXN0R3JpZERhdGEgPSBMaXN0R3JpZERhdGEgfCBSb3dcblxuZXhwb3J0IGNsYXNzIERhdGFTb3J0QmFzZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBsb2NhbGU6IHN0cmluZyxcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgdHJhbnNsYXRlSXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uXTogW1Jvd0xpc3RHcmlkRGF0YVtdLCBGaWx0ZXJbXSwgc3RyaW5nLCBEYXRhU29ydERpcmVjdGlvbl0sXG4gICAgY29sdW1uczogRGF0YVRhYmxlQ29sdW1uW10sXG4gICAgY2xpZW50U2lkZUZpbHRlcmluZzogYm9vbGVhbixcbiAgICBjbGllbnRTaWRlU29ydGluZzogYm9vbGVhblxuICApOiBPYnNlcnZhYmxlPFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb24sIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+XT4ge1xuICAgIGlmIChjbGllbnRTaWRlRmlsdGVyaW5nIHx8IGNsaWVudFNpZGVTb3J0aW5nKSB7XG4gICAgICBsZXQgdHJhbnNsYXRpb25LZXlzOiBzdHJpbmdbXSA9IFtdXG4gICAgICBjb25zdCB0cmFuc2xhdGVkQ29sdW1ucyA9IGNvbHVtbnMuZmlsdGVyKChjKSA9PiBjLmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuVFJBTlNMQVRJT05fS0VZKVxuICAgICAgdHJhbnNsYXRlZENvbHVtbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICB0cmFuc2xhdGlvbktleXMgPSBbXG4gICAgICAgICAgLi4udHJhbnNsYXRpb25LZXlzLFxuICAgICAgICAgIC4uLml0ZW1zLm1hcCgoaSkgPT4gT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBjLmlkKT8udG9TdHJpbmcoKSkuZmlsdGVyKCh2KSA9PiAhIXYpLFxuICAgICAgICBdXG4gICAgICB9KVxuICAgICAgaWYgKHRyYW5zbGF0aW9uS2V5cy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodHJhbnNsYXRpb25LZXlzKS5waXBlKFxuICAgICAgICAgIG1hcCgodHJhbnNsYXRlZFZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdHJhbnNsYXRpb25zOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiA9IHt9XG4gICAgICAgICAgICB0cmFuc2xhdGVkQ29sdW1ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1tjLmlkXSA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICAgICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgICAgICAgICAgIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCkgfHwgJycsXG4gICAgICAgICAgICAgICAgICB0cmFuc2xhdGVkVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgYy5pZCk/LnRvU3RyaW5nKCldLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICByZXR1cm4gW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2YoW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB7fV0pXG4gIH1cblxuICBmaWx0ZXJJdGVtcyhcbiAgICBbaXRlbXMsIGZpbHRlcnMsIHNvcnRDb2x1bW4sIHNvcnREaXJlY3Rpb24sIHRyYW5zbGF0aW9uc106IFtcbiAgICAgIFJvd0xpc3RHcmlkRGF0YVtdLFxuICAgICAgRmlsdGVyW10sXG4gICAgICBzdHJpbmcsXG4gICAgICBEYXRhU29ydERpcmVjdGlvbixcbiAgICAgIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+LFxuICAgIF0sXG4gICAgY2xpZW50U2lkZUZpbHRlcmluZzogYm9vbGVhblxuICApOiBbUm93TGlzdEdyaWREYXRhW10sIEZpbHRlcltdLCBzdHJpbmcsIERhdGFTb3J0RGlyZWN0aW9uLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+Pl0ge1xuICAgIGlmICghY2xpZW50U2lkZUZpbHRlcmluZykge1xuICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgaXRlbXMuZmlsdGVyKChpdGVtKSA9PlxuICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgLm1hcCgoZmlsdGVyKSA9PiBmaWx0ZXIuY29sdW1uSWQpXG4gICAgICAgICAgLmZpbHRlcigodmFsdWUsIGluZGV4LCBzZWxmKSA9PiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleCAmJiB2YWx1ZSAhPSBudWxsKVxuICAgICAgICAgIC5ldmVyeSgoZmlsdGVyQ29sdW1uSWQpID0+XG4gICAgICAgICAgICBmaWx0ZXJzXG4gICAgICAgICAgICAgIC5maWx0ZXIoKGZpbHRlcikgPT4gZmlsdGVyLmNvbHVtbklkID09PSBmaWx0ZXJDb2x1bW5JZClcbiAgICAgICAgICAgICAgLnNvbWUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gKFxuICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2ZpbHRlci5jb2x1bW5JZF0/LltPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGl0ZW0sIGZpbHRlci5jb2x1bW5JZCk/LnRvU3RyaW5nKCldIHx8XG4gICAgICAgICAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGl0ZW0sIGZpbHRlci5jb2x1bW5JZClcbiAgICAgICAgICAgICAgICApPy50b1N0cmluZygpXG4gICAgICAgICAgICAgICAgc3dpdGNoIChmaWx0ZXIuZmlsdGVyVHlwZSkge1xuICAgICAgICAgICAgICAgICAgY2FzZSB1bmRlZmluZWQ6XG4gICAgICAgICAgICAgICAgICBjYXNlIEZpbHRlclR5cGUuRVFVQUw6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSA9PT0gU3RyaW5nKGZpbHRlci52YWx1ZSlcbiAgICAgICAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZS5UUlVUSFk6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlci52YWx1ZSA/ICEhdmFsdWUgOiAhdmFsdWVcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgKSxcbiAgICAgIGZpbHRlcnMsXG4gICAgICBzb3J0Q29sdW1uLFxuICAgICAgc29ydERpcmVjdGlvbixcbiAgICAgIHRyYW5zbGF0aW9ucyxcbiAgICBdXG4gIH1cblxuICBzb3J0SXRlbXMoXG4gICAgW2l0ZW1zLCBmaWx0ZXJzLCBzb3J0Q29sdW1uLCBzb3J0RGlyZWN0aW9uLCB0cmFuc2xhdGlvbnNdOiBbXG4gICAgICBSb3dMaXN0R3JpZERhdGFbXSxcbiAgICAgIEZpbHRlcltdLFxuICAgICAgc3RyaW5nLFxuICAgICAgRGF0YVNvcnREaXJlY3Rpb24sXG4gICAgICBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PixcbiAgICBdLFxuICAgIGNvbHVtbnM6IERhdGFUYWJsZUNvbHVtbltdLFxuICAgIGNsaWVudFNpZGVTb3J0aW5nOiBib29sZWFuXG4gICk6IFtSb3dMaXN0R3JpZERhdGFbXSwgRmlsdGVyW10sIHN0cmluZywgRGF0YVNvcnREaXJlY3Rpb24sIFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZz4+XSB7XG4gICAgaWYgKCFjbGllbnRTaWRlU29ydGluZyB8fCBzb3J0Q29sdW1uID09PSAnJykge1xuICAgICAgcmV0dXJuIFtpdGVtcywgZmlsdGVycywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbiwgdHJhbnNsYXRpb25zXVxuICAgIH1cbiAgICBjb25zdCBjb2x1bW4gPSBjb2x1bW5zLmZpbmQoKGgpID0+IGguaWQgPT09IHNvcnRDb2x1bW4pXG4gICAgbGV0IGNvbFZhbHVlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPlxuICAgIGlmIChjb2x1bW4/LmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuREFURSB8fCBjb2x1bW4/LmNvbHVtblR5cGUgPT09IENvbHVtblR5cGUuUkVMQVRJVkVfREFURSkge1xuICAgICAgY29sVmFsdWVzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBpdGVtcy5tYXAoKGkpID0+IFtcbiAgICAgICAgICBPYmplY3RVdGlscy5yZXNvbHZlRmllbGREYXRhKGksIHNvcnRDb2x1bW4pIGFzIERhdGUsXG4gICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKSBhcyBEYXRlLFxuICAgICAgICBdKVxuICAgICAgKVxuICAgIH0gZWxzZSB7XG4gICAgICBjb2xWYWx1ZXMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIGl0ZW1zLm1hcCgoaSkgPT4gW1xuICAgICAgICAgIE9iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoaSwgc29ydENvbHVtbik/LnRvU3RyaW5nKCksXG4gICAgICAgICAgT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShpLCBzb3J0Q29sdW1uKT8udG9TdHJpbmcoKSxcbiAgICAgICAgXSlcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKGNvbHVtbj8uY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZS5UUkFOU0xBVElPTl9LRVkpIHtcbiAgICAgIGNvbFZhbHVlcyA9IHRyYW5zbGF0aW9uc1tzb3J0Q29sdW1uXVxuICAgIH1cbiAgICByZXR1cm4gW1xuICAgICAgWy4uLml0ZW1zXS5zb3J0KHRoaXMuY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKGNvbFZhbHVlcywgc29ydENvbHVtbiwgc29ydERpcmVjdGlvbikpLFxuICAgICAgZmlsdGVycyxcbiAgICAgIHNvcnRDb2x1bW4sXG4gICAgICBzb3J0RGlyZWN0aW9uLFxuICAgICAgdHJhbnNsYXRpb25zLFxuICAgIF1cbiAgfVxuXG4gIGZsYXR0ZW5JdGVtcyhpdGVtczogUm93TGlzdEdyaWREYXRhW10pIHtcbiAgICByZXR1cm4gaXRlbXMubWFwKChpKSA9PiBmbGF0dGVuT2JqZWN0KGkpKVxuICB9XG5cbiAgY3JlYXRlQ29tcGFyZUZ1bmN0aW9uKFxuICAgIHRyYW5zbGF0ZWRDb2xWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sXG4gICAgc29ydENvbHVtbjogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb246IERhdGFTb3J0RGlyZWN0aW9uXG4gICk6IChhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+LCBiOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSA9PiBudW1iZXIge1xuICAgIGxldCBkaXJlY3Rpb24gPSAwXG4gICAgaWYgKHNvcnREaXJlY3Rpb24gPT09IERhdGFTb3J0RGlyZWN0aW9uLkFTQ0VORElORykge1xuICAgICAgZGlyZWN0aW9uID0gMVxuICAgIH0gZWxzZSBpZiAoc29ydERpcmVjdGlvbiA9PT0gRGF0YVNvcnREaXJlY3Rpb24uREVTQ0VORElORykge1xuICAgICAgZGlyZWN0aW9uID0gLTFcbiAgICB9XG4gICAgcmV0dXJuIChkYXRhMSwgZGF0YTIpID0+IHtcbiAgICAgIGlmIChkaXJlY3Rpb24gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIDBcbiAgICAgIH1cbiAgICAgIGxldCByZXN1bHRcbiAgICAgIGNvbnN0IHZhbHVlMSA9IHRyYW5zbGF0ZWRDb2xWYWx1ZXNbT2JqZWN0VXRpbHMucmVzb2x2ZUZpZWxkRGF0YShkYXRhMSwgc29ydENvbHVtbildXG4gICAgICBjb25zdCB2YWx1ZTIgPSB0cmFuc2xhdGVkQ29sVmFsdWVzW09iamVjdFV0aWxzLnJlc29sdmVGaWVsZERhdGEoZGF0YTIsIHNvcnRDb2x1bW4pXVxuXG4gICAgICBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyICE9IG51bGwpIHJlc3VsdCA9IC0xXG4gICAgICBlbHNlIGlmICh2YWx1ZTEgIT0gbnVsbCAmJiB2YWx1ZTIgPT0gbnVsbCkgcmVzdWx0ID0gMVxuICAgICAgZWxzZSBpZiAodmFsdWUxID09IG51bGwgJiYgdmFsdWUyID09IG51bGwpIHJlc3VsdCA9IDBcbiAgICAgIGVsc2UgaWYgKHR5cGVvZiB2YWx1ZTEgPT09ICdzdHJpbmcnICYmIHR5cGVvZiB2YWx1ZTIgPT09ICdzdHJpbmcnKVxuICAgICAgICByZXN1bHQgPSB2YWx1ZTEubG9jYWxlQ29tcGFyZSh2YWx1ZTIsIFt0aGlzLmxvY2FsZSwgJ2VuJywgJ2RlJ10sIHsgbnVtZXJpYzogdHJ1ZSB9KVxuICAgICAgZWxzZSB7XG4gICAgICAgIGlmICh2YWx1ZTEgPCB2YWx1ZTIpIHtcbiAgICAgICAgICByZXN1bHQgPSAtMVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlMSA+IHZhbHVlMikge1xuICAgICAgICAgIHJlc3VsdCA9IDFcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSAwXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBkaXJlY3Rpb24gKiByZXN1bHRcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|