@1money/component-ui 0.1.5-alpha.0 → 0.1.5-alpha.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/es/components/Table/core/useTableColumns.js +10 -2
- package/es/components/Table/core/useTableSetup.js +5 -2
- package/es/components/Table/interface.d.ts +12 -8
- package/es/components/Table/renderers/BodyCell.d.ts +1 -1
- package/es/components/Table/renderers/BodyCell.js +15 -6
- package/es/components/Table/renderers/CellContent.d.ts +6 -3
- package/es/components/Table/renderers/CellContent.js +12 -8
- package/es/components/Table/renderers/CellText.d.ts +11 -0
- package/es/components/Table/renderers/CellText.js +57 -0
- package/es/components/Table/renderers/HeaderCell.d.ts +3 -2
- package/es/components/Table/renderers/HeaderCell.js +11 -4
- package/es/components/Table/size.d.ts +3 -3
- package/es/components/Table/size.js +10 -10
- package/es/components/Table/style/Table.css +51 -6
- package/es/index.css +1 -1
- package/es/index.d.ts +1 -1
- package/es/index.js +1 -1
- package/lib/components/Table/core/useTableColumns.js +10 -2
- package/lib/components/Table/core/useTableSetup.js +5 -2
- package/lib/components/Table/interface.d.ts +12 -8
- package/lib/components/Table/renderers/BodyCell.d.ts +1 -1
- package/lib/components/Table/renderers/BodyCell.js +14 -5
- package/lib/components/Table/renderers/CellContent.d.ts +6 -3
- package/lib/components/Table/renderers/CellContent.js +12 -8
- package/lib/components/Table/renderers/CellText.d.ts +11 -0
- package/lib/components/Table/renderers/CellText.js +64 -0
- package/lib/components/Table/renderers/HeaderCell.d.ts +3 -2
- package/lib/components/Table/renderers/HeaderCell.js +11 -4
- package/lib/components/Table/size.d.ts +3 -3
- package/lib/components/Table/size.js +10 -10
- package/lib/components/Table/style/Table.css +51 -6
- package/lib/index.css +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.js +1 -1
- package/package.json +1 -1
- package/scripts/mcp-server/examples.generated.json +24 -12
- package/scripts/mcp-server/index.generated.json +58 -2
|
@@ -5,6 +5,7 @@ import { useMemo } from 'react';
|
|
|
5
5
|
import { SelectionControl, SelectionHeaderControl } from '../features/SelectionColumn';
|
|
6
6
|
import { ExpandTrigger } from '../features/ExpandTrigger';
|
|
7
7
|
import { HeaderCell } from '../renderers/HeaderCell';
|
|
8
|
+
import { TypographyTitle } from '../../Typography';
|
|
8
9
|
import { BodyCell } from '../renderers/BodyCell';
|
|
9
10
|
import { TABLE_DEFAULT_PREFIX } from '../constants';
|
|
10
11
|
import { TABLE_SIZE_CONFIG } from '../size';
|
|
@@ -122,6 +123,11 @@ function makeHeaderTransform(config) {
|
|
|
122
123
|
var _a, _b;
|
|
123
124
|
if (isColumnGroup(column)) {
|
|
124
125
|
return Object.assign(Object.assign({}, column), {
|
|
126
|
+
title: typeof column.title === 'string' || typeof column.title === 'number' ? _jsx(TypographyTitle, {
|
|
127
|
+
size: TABLE_SIZE_CONFIG[size].headerFontSize,
|
|
128
|
+
strong: true,
|
|
129
|
+
children: column.title
|
|
130
|
+
}) : column.title,
|
|
125
131
|
children: makeHeaderTransform(config)(column.children)
|
|
126
132
|
});
|
|
127
133
|
}
|
|
@@ -151,6 +157,7 @@ function makeHeaderTransform(config) {
|
|
|
151
157
|
size: size,
|
|
152
158
|
fontSize: TABLE_SIZE_CONFIG[size].headerFontSize
|
|
153
159
|
}) : _jsx(HeaderCell, {
|
|
160
|
+
size: size,
|
|
154
161
|
column: column,
|
|
155
162
|
sortOrder: activeOrder,
|
|
156
163
|
onSortClick: function onSortClick() {
|
|
@@ -175,7 +182,7 @@ function makeSpacerTransform() {
|
|
|
175
182
|
return function (columns) {
|
|
176
183
|
return [{
|
|
177
184
|
key: '__spacer_start__',
|
|
178
|
-
width:
|
|
185
|
+
width: 24,
|
|
179
186
|
title: '',
|
|
180
187
|
className: SPACER_COLUMN_CLS,
|
|
181
188
|
render: function render() {
|
|
@@ -201,6 +208,7 @@ function makeRenderTransform(size) {
|
|
|
201
208
|
});
|
|
202
209
|
}
|
|
203
210
|
return Object.assign(Object.assign({}, column), {
|
|
211
|
+
ellipsis: false,
|
|
204
212
|
// BodyCell is intentionally CALLED as a function, not rendered as
|
|
205
213
|
// `<BodyCell />`. The kernel's `render` contract allows returning either
|
|
206
214
|
// a ReactNode or a `{ children, props }` cell-spanning descriptor, and
|
|
@@ -296,4 +304,4 @@ export function useTableColumns(config) {
|
|
|
296
304
|
return cols;
|
|
297
305
|
}, [prefixColumns, baseUserColumns, variant]);
|
|
298
306
|
}
|
|
299
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwidXNlTWVtbyIsIlNlbGVjdGlvbkNvbnRyb2wiLCJTZWxlY3Rpb25IZWFkZXJDb250cm9sIiwiRXhwYW5kVHJpZ2dlciIsIkhlYWRlckNlbGwiLCJCb2R5Q2VsbCIsIlRBQkxFX0RFRkFVTFRfUFJFRklYIiwiVEFCTEVfU0laRV9DT05GSUciLCJpc0NvbHVtbkdyb3VwIiwibWFrZUV4cGFuZFRyYW5zZm9ybSIsImNvbmZpZyIsImV4cGFuZGFibGUiLCJtZXJnZWRFeHBhbmRlZFJvd0tleXMiLCJ0cmlnZ2VyRXhwYW5kIiwiZ2V0Um93S2V5IiwiY3VzdG9tRXhwYW5kSWNvbiIsImV4cGFuZEljb24iLCJyb3dFeHBhbmRhYmxlIiwiZXhwYW5kZWRLZXlTZXQiLCJTZXQiLCJjb2x1bW5zIiwiX2EiLCJrZXkiLCJjbGFzc05hbWUiLCJFWFBBTkRfQ09MVU1OX0NMUyIsIndpZHRoIiwiY29sdW1uV2lkdGgiLCJ0aXRsZSIsImNvbHVtblRpdGxlIiwiZml4ZWQiLCJ1bmRlZmluZWQiLCJyZW5kZXIiLCJfIiwicmVjb3JkIiwiaW5kZXgiLCJjYW5FeHBhbmQiLCJyZWNvcmRLZXkiLCJleHBhbmRlZCIsImhhcyIsInByZWZpeENscyIsIm9uRXhwYW5kIiwicmVjIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIm9uVG9nZ2xlIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFrZVNlbGVjdGlvblRyYW5zZm9ybSIsInJvd1NlbGVjdGlvbiIsIm1lcmdlZFNlbGVjdGVkUm93S2V5cyIsImNoZWNrYm94UHJvcHNNYXAiLCJpc0FsbFNlbGVjdGVkIiwiaXNJbmRldGVybWluYXRlIiwidHJpZ2dlclNlbGVjdGlvbiIsInRyaWdnZXJTZWxlY3RBbGwiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsInNlbGVjdGVkS2V5U2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiU0VMRUNUSU9OX0NPTFVNTl9DTFMiLCJyZW5kZXJIZWFkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hhbmdlIiwicm93UHJvcHMiLCJnZXQiLCJhcmlhU29ydEZvciIsIm9yZGVyIiwiRU1QVFlfRklMVEVSX1ZBTFVFIiwibWFrZUhlYWRlclRyYW5zZm9ybSIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwic2l6ZSIsIm1hcCIsImNvbHVtbiIsIl9iIiwiY2hpbGRyZW4iLCJpc1NvcnRhYmxlIiwiQm9vbGVhbiIsImFjdGl2ZU9yZGVyIiwiY29sdW1uS2V5IiwiU3RyaW5nIiwiZmlsdGVyU2VsZWN0ZWQiLCJ1c2VyT25IZWFkZXJDZWxsIiwib25IZWFkZXJDZWxsIiwiY29sIiwidXNlckF0dHJzIiwib25GaWx0ZXJDaGFuZ2UiLCJuZXh0IiwiY3VycmVudCIsIl9kZWZpbmVQcm9wZXJ0eSIsImxlbmd0aCIsImZvbnRTaXplIiwiaGVhZGVyRm9udFNpemUiLCJzb3J0T3JkZXIiLCJvblNvcnRDbGljayIsImN1cnJlbnRTb3J0ZXIiLCJTUEFDRVJfQ09MVU1OX0NMUyIsIm1ha2VTcGFjZXJUcmFuc2Zvcm0iLCJtYWtlUmVuZGVyVHJhbnNmb3JtIiwidmFsdWUiLCJ1c2VUYWJsZUNvbHVtbnMiLCJ2YXJpYW50IiwiYmFzZVVzZXJDb2x1bW5zIiwiY29scyIsInByZWZpeENvbHVtbnMiLCJzaG93RXhwYW5kQ29sdW1uIiwic2VsZWN0aW9uVHJhbnNmb3JtIl0sIm1hcHBpbmdzIjoiOztBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxRQUFRLG1CQUFtQjtBQ0EvQyxTQUFTQyxPQUFPLFFBQWtCLE9BQU87QUFDekMsU0FBU0MsZ0JBQWdCLEVBQUVDLHNCQUFzQixRQUFRLDZCQUE2QjtBQUN0RixTQUFTQyxhQUFhLFFBQVEsMkJBQTJC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QztJQUMxQztJQUNBLElBQU1HLGtCQUFrQixHQUFHOUQsWUFBWSxHQUFHRCxzQkFBc0IsQ0FBQ3JDLE1BQU0sQ0FBQyxHQUFHLElBQUk7SUFDL0UsSUFBSW9HLGtCQUFrQixFQUFFO01BQ3RCSCxJQUFJLEdBQUdHLGtCQUFrQixDQUFDSCxJQUFJLENBQUM7SUFDakM7SUFDQTtJQUNBO0lBQ0FBLElBQUksR0FBR3JDLG1CQUFtQixDQUFDNUQsTUFBTSxDQUFDLENBQUNpRyxJQUFJLENBQUM7SUFDeENBLElBQUksR0FBR0wsbUJBQW1CLENBQUkzQixJQUFJLENBQUMsQ0FBQ2dDLElBQUksQ0FBQztJQUN6QyxPQUFPQSxJQUFJO0VBQ2IsQ0FBQyxFQUFFLENBQ0RoQyxJQUFJLEVBQ0poRSxVQUFVLEVBQ1ZxQyxZQUFZLEVBQ1pwQyxxQkFBcUIsRUFDckJxQyxxQkFBcUIsRUFDckJDLGdCQUFnQixFQUNoQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ2Z2QyxhQUFhLEVBQ2J3QyxnQkFBZ0IsRUFDaEJDLGdCQUFnQixFQUNoQmlCLE1BQU0sRUFDTkMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLFVBQVUsRUFDVjVELFNBQVMsQ0FDVixDQUFDO0VBRUYsT0FBT2QsT0FBTyxDQUFDLFlBQUs7SUFDbEIsSUFBSTJHLElBQUksTUFBQTlELE1BQUEsQ0FBQUMsa0JBQUEsQ0FBTzhELGFBQWEsR0FBQTlELGtCQUFBLENBQUs0RCxlQUFlLEVBQUM7SUFDakQsSUFBSUQsT0FBTyxLQUFLLFFBQVEsRUFBRTtNQUN4QkUsSUFBSSxHQUFHTixtQkFBbUIsQ0FBQSxDQUFLLENBQUNNLElBQUksQ0FBQztJQUN2QztJQUNBLE9BQU9BLElBQXlDO0VBQ2xELENBQUMsRUFBRSxDQUFDQyxhQUFhLEVBQUVGLGVBQWUsRUFBRUQsT0FBTyxDQUFDLENBQUM7QUFDL0MiLCJmaWxlIjoiY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlQ29sdW1ucy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQ29udHJvbCwgU2VsZWN0aW9uSGVhZGVyQ29udHJvbCB9IGZyb20gJy4uL2ZlYXR1cmVzL1NlbGVjdGlvbkNvbHVtbic7XG5pbXBvcnQgeyBFeHBhbmRUcmlnZ2VyIH0gZnJvbSAnLi4vZmVhdHVyZXMvRXhwYW5kVHJpZ2dlcic7XG5pbXBvcnQgeyBIZWFkZXJDZWxsIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0hlYWRlckNlbGwnO1xuaW1wb3J0IHsgQm9keUNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvQm9keUNlbGwnO1xuaW1wb3J0IHsgVEFCTEVfREVGQVVMVF9QUkVGSVggfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgVEFCTEVfU0laRV9DT05GSUcgfSBmcm9tICcuLi9zaXplJztcbmltcG9ydCB7IGlzQ29sdW1uR3JvdXAgfSBmcm9tICcuL2NvbHVtblV0aWwnO1xuZnVuY3Rpb24gbWFrZUV4cGFuZFRyYW5zZm9ybShjb25maWcpIHtcbiAgICBjb25zdCB7IGV4cGFuZGFibGUsIG1lcmdlZEV4cGFuZGVkUm93S2V5cywgdHJpZ2dlckV4cGFuZCwgZ2V0Um93S2V5IH0gPSBjb25maWc7XG4gICAgY29uc3QgY3VzdG9tRXhwYW5kSWNvbiA9IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5leHBhbmRJY29uO1xuICAgIGNvbnN0IHJvd0V4cGFuZGFibGUgPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUucm93RXhwYW5kYWJsZTtcbiAgICAvLyBPKDEpIHBlci1yb3cgZXhwYW5zaW9uIGxvb2t1cCDigJQgYC5pbmNsdWRlc2AgaGVyZSByYW4gb25jZSBwZXIgcmVuZGVyZWQgcm93LlxuICAgIGNvbnN0IGV4cGFuZGVkS2V5U2V0ID0gbmV3IFNldChtZXJnZWRFeHBhbmRlZFJvd0tleXMpO1xuICAgIHJldHVybiAoY29sdW1ucykgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAga2V5OiAnX19leHBhbmRfXycsXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lOiBFWFBBTkRfQ09MVU1OX0NMUyxcbiAgICAgICAgICAgICAgICAvLyBIb25vciBgZXhwYW5kYWJsZS5jb2x1bW5XaWR0aGAgLyBgY29sdW1uVGl0bGVgIC8gYGZpeGVkYDtcbiAgICAgICAgICAgICAgICAvLyBkZWZhdWx0IHRvIGEgZml4ZWQgMTZweCBjb2x1bW4gKGNoZXZyb24tb25seSwgcGFkZGluZzogMCkuXG4gICAgICAgICAgICAgICAgd2lkdGg6IChfYSA9IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5jb2x1bW5XaWR0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMTYsXG4gICAgICAgICAgICAgICAgdGl0bGU6IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5jb2x1bW5UaXRsZSxcbiAgICAgICAgICAgICAgICBmaXhlZDogKGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5maXhlZCkgPT09IHRydWVcbiAgICAgICAgICAgICAgICAgICAgPyAnbGVmdCdcbiAgICAgICAgICAgICAgICAgICAgOiAoZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmZpeGVkKSA9PT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgID8gdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5maXhlZCxcbiAgICAgICAgICAgICAgICByZW5kZXI6IChfLCByZWNvcmQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEhvbm9yIGByb3dFeHBhbmRhYmxlYDogd2hlbiB0aGUgcHJlZGljYXRlIGRlbmllcyBhIHJlY29yZCwgcmVuZGVyIG5vXG4gICAgICAgICAgICAgICAgICAgIC8vIGNoZXZyb24gYXQgYWxsICh0aGUgcm93IGlzIG5vbi1leHBhbmRhYmxlKS5cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2FuRXhwYW5kID0gcm93RXhwYW5kYWJsZSA/IHJvd0V4cGFuZGFibGUocmVjb3JkKSA6IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGlmICghY2FuRXhwYW5kKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIGluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXhwYW5kZWQgPSBleHBhbmRlZEtleVNldC5oYXMocmVjb3JkS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1c3RvbUV4cGFuZEljb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXN0b21FeHBhbmRJY29uKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhDbHM6IFRBQkxFX0RFRkFVTFRfUFJFRklYLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGFuZGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRXhwYW5kOiAocmVjLCBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXJFeHBhbmQoZ2V0Um93S2V5KHJlYywgaW5kZXgpLCByZWMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3goRXhwYW5kVHJpZ2dlciwgeyBleHBhbmRlZDogZXhwYW5kZWQsIHJlY29yZEtleTogcmVjb3JkS2V5LCByZWNvcmQ6IHJlY29yZCwgb25Ub2dnbGU6IHRyaWdnZXJFeHBhbmQgfSkpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgLi4uY29sdW1ucyxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuZnVuY3Rpb24gbWFrZVNlbGVjdGlvblRyYW5zZm9ybShjb25maWcpIHtcbiAgICB2YXIgX2E7XG4gICAgY29uc3QgeyByb3dTZWxlY3Rpb24sIG1lcmdlZFNlbGVjdGVkUm93S2V5cywgY2hlY2tib3hQcm9wc01hcCwgaXNBbGxTZWxlY3RlZCwgaXNJbmRldGVybWluYXRlLCB0cmlnZ2VyU2VsZWN0aW9uLCB0cmlnZ2VyU2VsZWN0QWxsLCBnZXRSb3dLZXksIH0gPSBjb25maWc7XG4gICAgaWYgKCFyb3dTZWxlY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGNvbnN0IHNlbGVjdGlvblR5cGUgPSAoX2EgPSByb3dTZWxlY3Rpb24udHlwZSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogJ2NoZWNrYm94JztcbiAgICAvLyBPKDEpIHBlci1yb3cgc2VsZWN0aW9uIGxvb2t1cCDigJQgYC5pbmNsdWRlc2AgaGVyZSByYW4gb25jZSBwZXIgcmVuZGVyZWQgcm93LlxuICAgIGNvbnN0IHNlbGVjdGVkS2V5U2V0ID0gbmV3IFNldChtZXJnZWRTZWxlY3RlZFJvd0tleXMpO1xuICAgIHJldHVybiAoY29sdW1ucykgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oeyBrZXk6ICdfX3NlbGVjdGlvbl9fJywgY2xhc3NOYW1lOiBTRUxFQ1RJT05fQ09MVU1OX0NMUywgd2lkdGg6IChfYSA9IHJvd1NlbGVjdGlvbi5jb2x1bW5XaWR0aCkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogMTYsIGZpeGVkOiByb3dTZWxlY3Rpb24uZml4ZWQgPyAnbGVmdCcgOiB1bmRlZmluZWQgfSwgKHNlbGVjdGlvblR5cGUgPT09ICdjaGVja2JveCdcbiAgICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgICAgcmVuZGVySGVhZGVyOiAoKSA9PiAoX2pzeChTZWxlY3Rpb25IZWFkZXJDb250cm9sLCB7IGNoZWNrZWQ6IGlzQWxsU2VsZWN0ZWQsIGluZGV0ZXJtaW5hdGU6IGlzSW5kZXRlcm1pbmF0ZSwgb25DaGFuZ2U6IHRyaWdnZXJTZWxlY3RBbGwgfSkpLFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA6IHt9KSksIHsgcmVuZGVyOiAoXywgcmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvd1Byb3BzID0gY2hlY2tib3hQcm9wc01hcC5nZXQocmVjb3JkS2V5KTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KFNlbGVjdGlvbkNvbnRyb2wsIHsgdHlwZTogc2VsZWN0aW9uVHlwZSwgY2hlY2tlZDogc2VsZWN0ZWRLZXlTZXQuaGFzKHJlY29yZEtleSksIHJvd1Byb3BzOiByb3dQcm9wcywgcmVjb3JkS2V5OiByZWNvcmRLZXksIG9uQ2hhbmdlOiB0cmlnZ2VyU2VsZWN0aW9uIH0pKTtcbiAgICAgICAgICAgICAgICB9IH0pLFxuICAgICAgICAgICAgLi4uY29sdW1ucyxcbiAgICAgICAgXTtcbiAgICB9O1xufVxuZnVuY3Rpb24gYXJpYVNvcnRGb3Iob3JkZXIpIHtcbiAgICBpZiAob3JkZXIgPT09ICdhc2NlbmQnKVxuICAgICAgICByZXR1cm4gJ2FzY2VuZGluZyc7XG4gICAgaWYgKG9yZGVyID09PSAnZGVzY2VuZCcpXG4gICAgICAgIHJldHVybiAnZGVzY2VuZGluZyc7XG4gICAgcmV0dXJuICdub25lJztcbn1cbi8vIFN0YWJsZSBlbXB0eS1maWx0ZXIgcmVmZXJlbmNlLiBXaXRob3V0IHRoaXMsIGBmaWx0ZXJzW2tleV0gPz8gW11gIGNyZWF0ZXMgYVxuLy8gZnJlc2ggYFtdYCBvbiBldmVyeSByZW5kZXIsIHdoaWNoIHRocmFzaGVzIGBGaWx0ZXJUcmlnZ2VyYCdzXG4vLyBgdXNlRWZmZWN0KFtzZWxlY3RlZEtleXNdKWAgYW5kIGNhdXNlcyBhbiBpbmZpbml0ZSBzZXRTdGF0ZSBsb29wIGFmdGVyXG4vLyBjb25maXJtIC8gcmVzZXQuXG5jb25zdCBFTVBUWV9GSUxURVJfVkFMVUUgPSBbXTtcbmZ1bmN0aW9uIG1ha2VIZWFkZXJUcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgY29uc3QgeyBzb3J0ZXIsIHNldFNvcnRlciwgZmlsdGVycywgc2V0RmlsdGVycywgc2l6ZSB9ID0gY29uZmlnO1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoaXNDb2x1bW5Hcm91cChjb2x1bW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IGNoaWxkcmVuOiBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykoY29sdW1uLmNoaWxkcmVuKSB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1NvcnRhYmxlID0gQm9vbGVhbihjb2x1bW4uc29ydGVyKTtcbiAgICAgICAgY29uc3QgYWN0aXZlT3JkZXIgPSBzb3J0ZXIuY29sdW1uS2V5ID09PSBjb2x1bW4ua2V5ID8gKF9hID0gc29ydGVyLm9yZGVyKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBudWxsIDogbnVsbDtcbiAgICAgICAgY29uc3QgY29sdW1uS2V5ID0gY29sdW1uLmtleSAhPSBudWxsID8gU3RyaW5nKGNvbHVtbi5rZXkpIDogdW5kZWZpbmVkO1xuICAgICAgICBjb25zdCBmaWx0ZXJTZWxlY3RlZCA9IGNvbHVtbktleSAhPSBudWxsID8gKChfYiA9IGZpbHRlcnNbY29sdW1uS2V5XSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogRU1QVFlfRklMVEVSX1ZBTFVFKSA6IEVNUFRZX0ZJTFRFUl9WQUxVRTtcbiAgICAgICAgLy8gQ29tcG9zZSBvbkhlYWRlckNlbGwgc28gd2UgZG9uJ3QgY2xvYmJlciB1c2VyLXByb3ZpZGVkIGF0dHJpYnV0ZXMuXG4gICAgICAgIGNvbnN0IHVzZXJPbkhlYWRlckNlbGwgPSBjb2x1bW4ub25IZWFkZXJDZWxsO1xuICAgICAgICBjb25zdCBvbkhlYWRlckNlbGwgPSAoY29sLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgY29uc3QgdXNlckF0dHJzID0gKF9hID0gdXNlck9uSGVhZGVyQ2VsbCA9PT0gbnVsbCB8fCB1c2VyT25IZWFkZXJDZWxsID09PSB2b2lkIDAgPyB2b2lkIDAgOiB1c2VyT25IZWFkZXJDZWxsKGNvbCwgaW5kZXgpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB7fTtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHVzZXJBdHRycyksIChpc1NvcnRhYmxlID8geyAnYXJpYS1zb3J0JzogYXJpYVNvcnRGb3IoYWN0aXZlT3JkZXIpIH0gOiBudWxsKSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IG9uRmlsdGVyQ2hhbmdlID0gKG5leHQpID0+IHtcbiAgICAgICAgICAgIGlmIChjb2x1bW5LZXkgPT0gbnVsbClcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBzZXRGaWx0ZXJzKChjdXJyZW50KSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjdXJyZW50KSwgeyBbY29sdW1uS2V5XTogbmV4dC5sZW5ndGggPyBuZXh0IDogbnVsbCB9KSkpO1xuICAgICAgICB9O1xuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IG9uSGVhZGVyQ2VsbCwgdGl0bGU6IGNvbHVtbi5yZW5kZXJIZWFkZXJcbiAgICAgICAgICAgICAgICA/IGNvbHVtbi5yZW5kZXJIZWFkZXIoeyBjb2x1bW4sIHNpemUsIGZvbnRTaXplOiBUQUJMRV9TSVpFX0NPTkZJR1tzaXplXS5oZWFkZXJGb250U2l6ZSB9KVxuICAgICAgICAgICAgICAgIDogKF9qc3goSGVhZGVyQ2VsbCwgeyBjb2x1bW46IGNvbHVtbiwgc29ydE9yZGVyOiBhY3RpdmVPcmRlciwgb25Tb3J0Q2xpY2s6ICgpID0+IHNldFNvcnRlcigoY3VycmVudFNvcnRlcikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbktleTogY29sdW1uLmtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9yZGVyOiBjdXJyZW50U29ydGVyLmNvbHVtbktleSAhPT0gY29sdW1uLmtleSB8fCBjdXJyZW50U29ydGVyLm9yZGVyID09PSBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnYXNjZW5kJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogY3VycmVudFNvcnRlci5vcmRlciA9PT0gJ2FzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZGVzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICB9KSksIGZpbHRlclNlbGVjdGVkOiBmaWx0ZXJTZWxlY3RlZCwgb25GaWx0ZXJDaGFuZ2U6IG9uRmlsdGVyQ2hhbmdlIH0pKSB9KTtcbiAgICB9KTtcbn1cbmNvbnN0IFNQQUNFUl9DT0xVTU5fQ0xTID0gJ29tLWNvbXBvbmVudC11aS10YWJsZS1jZWxsLS1zcGFjZXInO1xuY29uc3QgRVhQQU5EX0NPTFVNTl9DTFMgPSAnb20tY29tcG9uZW50LXVpLXRhYmxlLWNlbGwtLWV4cGFuZCc7XG5jb25zdCBTRUxFQ1RJT05fQ09MVU1OX0NMUyA9ICdvbS1jb21wb25lbnQtdWktdGFibGUtY2VsbC0tc2VsZWN0aW9uJztcbmZ1bmN0aW9uIG1ha2VTcGFjZXJUcmFuc2Zvcm0oKSB7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBbXG4gICAgICAgIHsga2V5OiAnX19zcGFjZXJfc3RhcnRfXycsIHdpZHRoOiAxNiwgdGl0bGU6ICcnLCBjbGFzc05hbWU6IFNQQUNFUl9DT0xVTU5fQ0xTLCByZW5kZXI6ICgpID0+IG51bGwgfSxcbiAgICAgICAgLi4uY29sdW1ucyxcbiAgICAgICAgeyBrZXk6ICdfX3NwYWNlcl9lbmRfXycsIHdpZHRoOiAxNiwgdGl0bGU6ICcnLCBjbGFzc05hbWU6IFNQQUNFUl9DT0xVTU5fQ0xTLCByZW5kZXI6ICgpID0+IG51bGwgfSxcbiAgICBdO1xufVxuZnVuY3Rpb24gbWFrZVJlbmRlclRyYW5zZm9ybShzaXplKSB7XG4gICAgcmV0dXJuIChjb2x1bW5zKSA9PiBjb2x1bW5zLm1hcCgoY29sdW1uKSA9PiB7XG4gICAgICAgIGlmIChpc0NvbHVtbkdyb3VwKGNvbHVtbikpIHtcbiAgICAgICAgICAgIHJldHVybiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGNvbHVtbiksIHsgY2hpbGRyZW46IG1ha2VSZW5kZXJUcmFuc2Zvcm0oc2l6ZSkoY29sdW1uLmNoaWxkcmVuKSB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgaXMgaW50ZW50aW9uYWxseSBDQUxMRUQgYXMgYSBmdW5jdGlvbiwgbm90IHJlbmRlcmVkIGFzXG4gICAgICAgICAgICAvLyBgPEJvZHlDZWxsIC8+YC4gVGhlIGtlcm5lbCdzIGByZW5kZXJgIGNvbnRyYWN0IGFsbG93cyByZXR1cm5pbmcgZWl0aGVyXG4gICAgICAgICAgICAvLyBhIFJlYWN0Tm9kZSBvciBhIGB7IGNoaWxkcmVuLCBwcm9wcyB9YCBjZWxsLXNwYW5uaW5nIGRlc2NyaXB0b3IsIGFuZFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgZm9yd2FyZHMgdGhhdCBkZXNjcmlwdG9yIHRocm91Z2ggZm9yIGNvbFNwYW4gLyByb3dTcGFuIHN1cHBvcnQuXG4gICAgICAgICAgICAvLyBXcmFwcGluZyBpdCBpbiBKU1ggd291bGQgY29sbGFwc2UgdGhlIGRlc2NyaXB0b3IgaW50byBhbiBlbGVtZW50IGFuZFxuICAgICAgICAgICAgLy8gYnJlYWsgY2VsbCBtZXJnaW5nIOKAlCBkbyBub3QgXCJmaXhcIiB0aGlzIGludG8gYW4gZWxlbWVudC5cbiAgICAgICAgICAgIHJlbmRlcjogKHZhbHVlLCByZWNvcmQsIGluZGV4KSA9PiBCb2R5Q2VsbCh7XG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgfSkgfSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFJldHVybnMgY29sdW1ucyByZWFkeSB0byBiZSBwYXNzZWQgdG8gdGhlIHRhYmxlIGtlcm5lbC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc2hhcGUgSVMgc3RydWN0dXJhbGx5IHRoZSBrZXJuZWwncyBgQ29sdW1uc1R5cGU8VD5gOlxuICogICAtIEV2ZXJ5IGxlYWYgY29sdW1uJ3MgYHJlbmRlcmAgaXMgcmVwbGFjZWQgYnkgYG1ha2VSZW5kZXJUcmFuc2Zvcm1gLCB3aGljaFxuICogICAgIGFsd2F5cyByZXR1cm5zIGEgYFJlYWN0Tm9kZWAgKEJvZHlDZWxsIGhhbmRsZXMgYFRhYmxlQ2VsbENvbnRlbnRWYWx1ZWAgL1xuICogICAgIGBUYWJsZVJlbmRlcmVkQ2VsbGAgZXh0cmFzIGFuZCBlbWl0cyBSZWFjdE5vZGUvUmVuZGVyZWRDZWxsKS5cbiAqICAgLSBFdmVyeSBsZWFmIGNvbHVtbidzIGB0aXRsZWAgaXMgZWl0aGVyIGEgUmVhY3ROb2RlIG9yIHJlcGxhY2VkIGJ5XG4gKiAgICAgYDxIZWFkZXJDZWxsIC8+YC5cbiAqIEJlY2F1c2UgVFMgY2FuJ3QgdHJhY2sgdGhhdCB0aG9zZSByZXBsYWNlbWVudHMgaGF2ZSBoYXBwZW5lZCBhY3Jvc3MgdGhlXG4gKiBgdHJhbnNmb3Jtcy5yZWR1Y2VgIGNoYWluLCBhIHNpbmdsZSBpbnRlcm5hbCBjYXN0IGlzIHJlcXVpcmVkIOKAlCBjYWxsIHNpdGVzIG5vXG4gKiBsb25nZXIgbmVlZCB0aGVpciBvd24gYGFzIHVua25vd24gYXMgSW50ZXJuYWxDb2x1bW5zVHlwZTxUPmAgY2FzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlQ29sdW1ucyhjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbHVtbnMsIHZhcmlhbnQsIHNpemUsIGV4cGFuZGFibGUsIHJvd1NlbGVjdGlvbiwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlckV4cGFuZCwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgc29ydGVyLCBzZXRTb3J0ZXIsIGZpbHRlcnMsIHNldEZpbHRlcnMsIGdldFJvd0tleSwgfSA9IGNvbmZpZztcbiAgICAvLyBUaGUgdXNlcidzIGRhdGEgY29sdW1ucyBvbmx5IGRlcGVuZCBvbiB0aGUgaGVhZGVyIC8gcmVuZGVyIGlucHV0c1xuICAgIC8vIChzb3J0LCBmaWx0ZXIpIOKAlCBOT1Qgb24gc2VsZWN0aW9uIG9yIGV4cGFuc2lvbiBzdGF0ZS4gTWVtb2lzaW5nIHRoZW1cbiAgICAvLyBvbiB0aGVpciBvd24gbWVhbnMgdG9nZ2xpbmcgYSBjaGVja2JveCBvciBjaGV2cm9uIG5vIGxvbmdlciByZWJ1aWxkcyBhbmRcbiAgICAvLyByZS13cmFwcyB0aGUgcmVuZGVyIGNsb3N1cmUgb2YgKmV2ZXJ5KiBkYXRhIGNvbHVtbjsgb25seSB0aGUgc21hbGxcbiAgICAvLyBzZWxlY3Rpb24vZXhwYW5kIHByZWZpeCBiZWxvdyBpcyByZWJ1aWx0LiBgbWFrZUhlYWRlclRyYW5zZm9ybWAgYW5kXG4gICAgLy8gYG1ha2VSZW5kZXJUcmFuc2Zvcm1gIGFyZSBwZXItY29sdW1uIGluZGVwZW5kZW50IG1hcHMsIHNvIGFwcGx5aW5nIHRoZW0gdG9cbiAgICAvLyB0aGUgdXNlciBjb2x1bW5zIGFuZCB0aGUgcHJlZml4IHNlcGFyYXRlbHkgYW5kIGNvbmNhdGVuYXRpbmcgaXMgZXF1aXZhbGVudFxuICAgIC8vIHRvIHRoZSBvcmlnaW5hbCBzaW5nbGUgcmVkdWNlLWNoYWluLlxuICAgIC8vXG4gICAgLy8gRGVwLWxpc3Qgbm90ZTogdGhlIHRyYW5zZm9ybSBmYWN0b3JpZXMgY2FwdHVyZSB0aGUgd2hvbGUgYGNvbmZpZ2AsIGJ1dFxuICAgIC8vIGV2ZXJ5IGNhbGxiYWNrIGluIGl0IChgc2V0U29ydGVyYCwgYHRyaWdnZXJFeHBhbmRgLCBgZ2V0Um93S2V5YCwg4oCmKSBpcyBhXG4gICAgLy8gc3RhYmxlIGB1c2VNZW1vaXplZEZuYCwgc28gbGlzdGluZyB0aGUgZ2VudWluZSB2YWx1ZSBpbnB1dHMgaXMgc3VmZmljaWVudFxuICAgIC8vIGFuZCBpbnRlbnRpb25hbC4gS2VlcCB0aGUgbGlzdHMgaW4gc3luYyB3aGVuIGFkZGluZyBpbnB1dHMuXG4gICAgY29uc3QgYmFzZVVzZXJDb2x1bW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gbWFrZUhlYWRlclRyYW5zZm9ybShjb25maWcpKGNvbHVtbnMpO1xuICAgICAgICBjb2xzID0gbWFrZVJlbmRlclRyYW5zZm9ybShzaXplKShjb2xzKTtcbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfSwgW2NvbHVtbnMsIHNpemUsIHNvcnRlciwgZmlsdGVycywgc2V0U29ydGVyLCBzZXRGaWx0ZXJzXSk7XG4gICAgLy8gVGhlIHNlbGVjdGlvbiAvIGV4cGFuZCBwcmVmaXggY2FycmllcyBsaXZlIHNlbGVjdGVkL2V4cGFuZGVkIHN0YXRlIGluIGl0c1xuICAgIC8vIHJlbmRlciBvdXRwdXQsIHdoaWNoIGlzIHRoZSBzaWduYWwgdGhhdCByZS1yZW5kZXJzIHRoZSBhZmZlY3RlZCByb3dzIOKAlCBzbyBpdFxuICAgIC8vIG11c3QgcmVidWlsZCBvbiBldmVyeSB0b2dnbGUuIEl0IGlzIGF0IG1vc3QgdHdvIGNvbHVtbnMsIHNvIHRoaXMgaXMgY2hlYXAuXG4gICAgY29uc3QgcHJlZml4Q29sdW1ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgY29scyA9IFtdO1xuICAgICAgICBpZiAoZXhwYW5kYWJsZSAmJiBleHBhbmRhYmxlLnNob3dFeHBhbmRDb2x1bW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb2xzID0gbWFrZUV4cGFuZFRyYW5zZm9ybShjb25maWcpKGNvbHMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblRyYW5zZm9ybSA9IHJvd1NlbGVjdGlvbiA/IG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSA6IG51bGw7XG4gICAgICAgIGlmIChzZWxlY3Rpb25UcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIGNvbHMgPSBzZWxlY3Rpb25UcmFuc2Zvcm0oY29scyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUnVuIHRoZSBwcmVmaXggdGhyb3VnaCB0aGUgc2FtZSBoZWFkZXIvcmVuZGVyIG1hcHMgdGhlIHVzZXIgY29sdW1ucyBnZXQgc29cbiAgICAgICAgLy8gdGhlIGZpbmFsIGFycmF5IGlzIGJ5dGUtZm9yLWJ5dGUgdGhlIG9yaWdpbmFsIHNpbmdsZS1waXBlbGluZSBvdXRwdXQuXG4gICAgICAgIGNvbHMgPSBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykoY29scyk7XG4gICAgICAgIGNvbHMgPSBtYWtlUmVuZGVyVHJhbnNmb3JtKHNpemUpKGNvbHMpO1xuICAgICAgICByZXR1cm4gY29scztcbiAgICB9LCBbXG4gICAgICAgIHNpemUsXG4gICAgICAgIGV4cGFuZGFibGUsXG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXAsXG4gICAgICAgIGlzQWxsU2VsZWN0ZWQsXG4gICAgICAgIGlzSW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgdHJpZ2dlckV4cGFuZCxcbiAgICAgICAgdHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbCxcbiAgICAgICAgc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXIsXG4gICAgICAgIGZpbHRlcnMsXG4gICAgICAgIHNldEZpbHRlcnMsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICBdKTtcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gWy4uLnByZWZpeENvbHVtbnMsIC4uLmJhc2VVc2VyQ29sdW1uc107XG4gICAgICAgIGlmICh2YXJpYW50ID09PSAnc3Ryb2tlJykge1xuICAgICAgICAgICAgY29scyA9IG1ha2VTcGFjZXJUcmFuc2Zvcm0oKShjb2xzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29scztcbiAgICB9LCBbcHJlZml4Q29sdW1ucywgYmFzZVVzZXJDb2x1bW5zLCB2YXJpYW50XSk7XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
307
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZUNvbHVtbnMuanMiLCJjb21wb25lbnRzL1RhYmxlL3NyYy9jb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLnRzeCJdLCJuYW1lcyI6WyJqc3giLCJfanN4IiwidXNlTWVtbyIsIlNlbGVjdGlvbkNvbnRyb2wiLCJTZWxlY3Rpb25IZWFkZXJDb250cm9sIiwiRXhwYW5kVHJpZ2dlciIsIkhlYWRlckNlbGwiLCJUeXBvZ3JhcGh5VGl0bGUiLCJCb2R5Q2VsbCIsIlRBQkxFX0RFRkFVTFRfUFJFRklYIiwiVEFCTEVfU0laRV9DT05GSUciLCJpc0NvbHVtbkdyb3VwIiwibWFrZUV4cGFuZFRyYW5zZm9ybSIsImNvbmZpZyIsImV4cGFuZGFibGUiLCJtZXJnZWRFeHBhbmRlZFJvd0tleXMiLCJ0cmlnZ2VyRXhwYW5kIiwiZ2V0Um93S2V5IiwiY3VzdG9tRXhwYW5kSWNvbiIsImV4cGFuZEljb24iLCJyb3dFeHBhbmRhYmxlIiwiZXhwYW5kZWRLZXlTZXQiLCJTZXQiLCJjb2x1bW5zIiwiX2EiLCJrZXkiLCJjbGFzc05hbWUiLCJFWFBBTkRfQ09MVU1OX0NMUyIsIndpZHRoIiwiY29sdW1uV2lkdGgiLCJ0aXRsZSIsImNvbHVtblRpdGxlIiwiZml4ZWQiLCJ1bmRlZmluZWQiLCJyZW5kZXIiLCJfIiwicmVjb3JkIiwiaW5kZXgiLCJjYW5FeHBhbmQiLCJyZWNvcmRLZXkiLCJleHBhbmRlZCIsImhhcyIsInByZWZpeENscyIsIm9uRXhwYW5kIiwicmVjIiwiZSIsInN0b3BQcm9wYWdhdGlvbiIsIm9uVG9nZ2xlIiwiY29uY2F0IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwibWFrZVNlbGVjdGlvblRyYW5zZm9ybSIsInJvd1NlbGVjdGlvbiIsIm1lcmdlZFNlbGVjdGVkUm93S2V5cyIsImNoZWNrYm94UHJvcHNNYXAiLCJpc0FsbFNlbGVjdGVkIiwiaXNJbmRldGVybWluYXRlIiwidHJpZ2dlclNlbGVjdGlvbiIsInRyaWdnZXJTZWxlY3RBbGwiLCJzZWxlY3Rpb25UeXBlIiwidHlwZSIsInNlbGVjdGVkS2V5U2V0IiwiT2JqZWN0IiwiYXNzaWduIiwiU0VMRUNUSU9OX0NPTFVNTl9DTFMiLCJyZW5kZXJIZWFkZXIiLCJjaGVja2VkIiwiaW5kZXRlcm1pbmF0ZSIsIm9uQ2hhbmdlIiwicm93UHJvcHMiLCJnZXQiLCJhcmlhU29ydEZvciIsIm9yZGVyIiwiRU1QVFlfRklMVEVSX1ZBTFVFIiwibWFrZUhlYWRlclRyYW5zZm9ybSIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwic2l6ZSIsIm1hcCIsImNvbHVtbiIsIl9iIiwiaGVhZGVyRm9udFNpemUiLCJzdHJvbmciLCJjaGlsZHJlbiIsImlzU29ydGFibGUiLCJCb29sZWFuIiwiYWN0aXZlT3JkZXIiLCJjb2x1bW5LZXkiLCJTdHJpbmciLCJmaWx0ZXJTZWxlY3RlZCIsInVzZXJPbkhlYWRlckNlbGwiLCJvbkhlYWRlckNlbGwiLCJjb2wiLCJ1c2VyQXR0cnMiLCJvbkZpbHRlckNoYW5nZSIsIm5leHQiLCJjdXJyZW50IiwiX2RlZmluZVByb3BlcnR5IiwibGVuZ3RoIiwiZm9udFNpemUiLCJzb3J0T3JkZXIiLCJvblNvcnRDbGljayIsImN1cnJlbnRTb3J0ZXIiLCJTUEFDRVJfQ09MVU1OX0NMUyIsIm1ha2VTcGFjZXJUcmFuc2Zvcm0iLCJtYWtlUmVuZGVyVHJhbnNmb3JtIiwiZWxsaXBzaXMiLCJ2YWx1ZSIsInVzZVRhYmxlQ29sdW1ucyIsInZhcmlhbnQiLCJiYXNlVXNlckNvbHVtbnMiLCJjb2xzIiwicHJlZml4Q29sdW1ucyIsInNob3dFeHBhbmRDb2x1bW4iLCJzZWxlY3Rpb25UcmFuc2Zvcm0iXSwibWFwcGluZ3MiOiI7O0FBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FDQS9DLFNBQVNDLE9BQU8sUUFBa0IsT0FBTztBQUN6QyxTQUFTQyxnQkFBZ0IsRUFBRUMsc0JBQXNCLFFBQVEsNkJBQTZCO0FBQ3RGLFNBQVNDLGFBQWEsUUFBUSwyQkFBMkI7QUFDekQsU0FBU0MsVUFBVSxRQUFRLHlCQUF5QjtBQUNwRCxTQUFTQyxlQUFlLFFBQVEsa0JBQWtCO0FBQ2xELFNBQVNDLFFBQVEsUUFBUSx1QkFBdUI7QUFDaEQsU0FBU0Msb0JBQW9CLFFBQVEsY0FBYztBQUNuRCxTQUFTQyxpQkFBaUIsUUFBUSxTQUFTO0FBQzNDLFNBQVNDLGFBQWEsUUFBUSxjQUFjO0FBeUM1QyxTQUFTQyxtQkFBbUJBLENBQzFCQyxNQUFnQyxFQUFBO0VBRWhDLElBQVFDLFVBQVUsR0FBc0RELE1BQU0sQ0FBdEVDLFVBQVU7SUFBRUMscUJBQXFCLEdBQStCRixNQUFNLENBQTFERSxxQkFBcUI7SUFBRUMsYUFBYSxHQUFnQkgsTUFBTSxDQUFuQ0csYUFBYTtJQUFFQyxTQUFTLEdBQUtKLE1BQU0sQ0FBcEJJLFNBQVM7RUFDbkUsSUFBTUMsZ0JBQWdCLEdBQUdKLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFSyxVQUFVO0VBQy9DLElBQU1DLGFBQWEsR0FBR04sVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVNLGFBQWE7RUFDL0M7RUFDQSxJQUFNQyxjQUFjLEdBQUcsSUFBSUMsR0FBRyxDQUFDUCxxQkFBcUIsQ0FBQztFQUVyRCxPQUFPLFVBQUNRLE9BQU8sRUFBSTtJRHpDYixJQUFJQyxFQUFFO0lDeUNRLFFBQ2xCO01BQ0VDLEdBQUcsRUFBRSxZQUFZO01BQ2pCQyxTQUFTLEVBQUVDLGlCQUFpQjtNQUM1QjtNQUNBO01BQ0FDLEtBQUssRUFBRSxDQUFBSixFQUFBLEdBQUFWLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFZSxXQUFXLE1BQUEsSUFBQSxJQUFBTCxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSSxFQUFFO01BQ3BDTSxLQUFLLEVBQUVoQixVQUFVLEtBQUEsSUFBQSxJQUFWQSxVQUFVLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQVZBLFVBQVUsQ0FBRWlCLFdBQVc7TUFDOUJDLEtBQUssRUFDSCxDQUFBbEIsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUVrQixLQUFLLE1BQUssSUFBSSxHQUN0QixNQUFNLEdBQ04sQ0FBQWxCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFa0IsS0FBSyxNQUFLLEtBQUssR0FDekJDLFNBQVMsR0FDVG5CLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFa0IsS0FBSztNQUN6QkUsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUdDLENBQVUsRUFBRUMsTUFBUyxFQUFFQyxLQUFhLEVBQUk7UUFDL0M7UUFDQTtRQUNBLElBQU1DLFNBQVMsR0FBR2xCLGFBQWEsR0FBR0EsYUFBYSxDQUFDZ0IsTUFBTSxDQUFDLEdBQUcsSUFBSTtRQUM5RCxJQUFJLENBQUNFLFNBQVMsRUFBRSxPQUFPLElBQUk7UUFFM0IsSUFBTUMsU0FBUyxHQUFHdEIsU0FBUyxDQUFDbUIsTUFBTSxFQUFFQyxLQUFLLENBQUM7UUFDMUMsSUFBTUcsUUFBUSxHQUFHbkIsY0FBYyxDQUFDb0IsR0FBRyxDQUFDRixTQUFTLENBQUM7UUFFOUMsSUFBSXJCLGdCQUFnQixFQUFFO1VBQ3BCLE9BQU9BLGdCQUFnQixDQUFDO1lBQ3RCd0IsU0FBUyxFQUFFakMsb0JBQW9CO1lBQy9CK0IsUUFBUSxFQUFSQSxRQUFRO1lBQ1JKLE1BQU0sRUFBTkEsTUFBTTtZQUNOdEIsVUFBVSxFQUFFLElBQUk7WUFDaEI2QixRQUFRLEVBQUUsU0FBVkEsUUFBUUEsQ0FBR0MsR0FBRyxFQUFFQyxDQUFDLEVBQUk7Y0FDbkJBLENBQUMsQ0FBQ0MsZUFBZSxDQUFBLENBQUU7Y0FDbkI5QixhQUFhLENBQUNDLFNBQVMsQ0FBQzJCLEdBQUcsRUFBRVAsS0FBSyxDQUFDLEVBQUVPLEdBQUcsQ0FBQztZQUMzQztVRHpDWSxDQzBDYixDQUFDO1FBQ0o7UUFFQSxPQUNFM0MsSUFBQSxDQUFDSSxhQUFhLEVBQUE7VUFDWm1DLFFBQVEsRUFBRUEsUUFBUTtVQUNsQkQsU0FBUyxFQUFFQSxTQUFTO1VBQ3BCSCxNQUFNLEVBQUVBLE1BQU07VUFDZFcsUUFBUSxFQUFFL0I7UUFBYSxDQUFBLENBQ3ZCO01BRU47SURqRE0sQ0NrRFAsRUFBQWdDLE1BQUEsQ0FBQUMsa0JBQUEsQ0FDRTFCLE9BQU87RURoRFYsQ0NpREQ7QUFDSDtBQUVBLFNBQVMyQixzQkFBc0JBLENBQzdCckMsTUFBZ0MsRUFBQTtFRGxEOUIsSUFBSVcsRUFBRTtFQ29EUixJQUNFMkIsWUFBWSxHQVFWdEMsTUFBTSxDQVJSc0MsWUFBWTtJQUNaQyxxQkFBcUIsR0FPbkJ2QyxNQUFNLENBUFJ1QyxxQkFBcUI7SUFDckJDLGdCQUFnQixHQU1keEMsTUFBTSxDQU5Sd0MsZ0JBQWdCO0lBQ2hCQyxhQUFhLEdBS1h6QyxNQUFNLENBTFJ5QyxhQUFhO0lBQ2JDLGVBQWUsR0FJYjFDLE1BQU0sQ0FKUjBDLGVBQWU7SUFDZkMsZ0JBQWdCLEdBR2QzQyxNQUFNLENBSFIyQyxnQkFBZ0I7SUFDaEJDLGdCQUFnQixHQUVkNUMsTUFBTSxDQUZSNEMsZ0JBQWdCO0lBQ2hCeEMsU0FBUyxHQUNQSixNQUFNLENBRFJJLFNBQVM7RUFHWCxJQUFJLENBQUNrQyxZQUFZLEVBQUUsT0FBTyxJQUFJO0VBRTlCLElBQU1PLGFBQWEsR0FBRyxDQUFBbEMsRUFBQSxHQUFBMkIsWUFBWSxDQUFDUSxJQUFJLE1BQUEsSUFBQSxJQUFBbkMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksVUFBVTtFQUNyRDtFQUNBLElBQU1vQyxjQUFjLEdBQUcsSUFBSXRDLEdBQUcsQ0FBQzhCLHFCQUFxQixDQUFDO0VBRXJELE9BQU8sVUFBQzdCLE9BQU8sRUFBSTtJRDdEYixJQUFJQyxFQUFFO0lDNkRRLFFEM0RWcUMsTUFBTSxDQUFDQyxNQUFNLENBQUNELE1BQU0sQ0FBQ0MsTUFBTSxDQUFDO01DNkRsQ3JDLEdBQUcsRUFBRSxlQUFlO01BQ3BCQyxTQUFTLEVBQUVxQyxvQkFBb0I7TUFDL0JuQyxLQUFLLEVBQUUsQ0FBQUosRUFBQSxHQUFBMkIsWUFBWSxDQUFDdEIsV0FBVyxNQUFBLElBQUEsSUFBQUwsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksRUFBRTtNQUNyQ1EsS0FBSyxFQUFFbUIsWUFBWSxDQUFDbkIsS0FBSyxHQUFHLE1BQU0sR0FBR0M7SUFBUyxDQUFBLEVBQzFDeUIsYUFBYSxLQUFLLFVBQVUsR0FDNUI7TUFDRU0sWUFBWSxFQUFFLFNBQWRBLFlBQVlBLENBQUE7UUFBQSxPQUNWL0QsSUFBQSxDQUFDRyxzQkFBc0IsRUFBQTtVQUNyQjZELE9BQU8sRUFBRVgsYUFBYTtVQUN0QlksYUFBYSxFQUFFWCxlQUFlO1VBQzlCWSxRQUFRLEVBQUVWO1FBQWdCLENBQUEsQ0FDMUI7TUFBQTtJRHJFQSxDQ3VFTCxHQUNELENBQUEsQ0FBRyxDQUFBLEVBQUE7TUFDUHZCLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFHQyxDQUFVLEVBQUVDLE1BQVMsRUFBRUMsS0FBYSxFQUFJO1FBQy9DLElBQU1FLFNBQVMsR0FBR3RCLFNBQVMsQ0FBQ21CLE1BQU0sRUFBRUMsS0FBSyxDQUFDO1FBQzFDLElBQU0rQixRQUFRLEdBQUdmLGdCQUFnQixDQUFDZ0IsR0FBRyxDQUFDOUIsU0FBUyxDQUFDO1FBQ2hELE9BQ0V0QyxJQUFBLENBQUNFLGdCQUFnQixFQUFBO1VBQ2Z3RCxJQUFJLEVBQUVELGFBQWE7VUFDbkJPLE9BQU8sRUFBRUwsY0FBYyxDQUFDbkIsR0FBRyxDQUFDRixTQUFTLENBQUM7VUFDdEM2QixRQUFRLEVBQUVBLFFBQVE7VUFDbEI3QixTQUFTLEVBQUVBLFNBQVM7VUFDcEI0QixRQUFRLEVBQUVYO1FBQWdCLENBQUEsQ0FDMUI7TUFFTjtJQUFDLENBQUEsQ0FBQSxFQUFBUixNQUFBLENBQUFDLGtCQUFBLENBRUExQixPQUFPO0VEL0VWLENDZ0ZEO0FBQ0g7QUFFQSxTQUFTK0MsV0FBV0EsQ0FBQ0MsS0FBcUIsRUFBQTtFQUN4QyxJQUFJQSxLQUFLLEtBQUssUUFBUSxFQUFFLE9BQU8sV0FBVztFQUMxQyxJQUFJQSxLQUFLLEtBQUssU0FBUyxFQUFFLE9BQU8sWUFBWTtFQUM1QyxPQUFPLE1BQU07QUFDZjtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBTUMsa0JBQWtCLEdBQXFCLEVBQUU7QUFFL0MsU0FBU0MsbUJBQW1CQSxDQUMxQjVELE1BQWdDLEVBQUE7RUFFaEMsSUFBUTZELE1BQU0sR0FBMkM3RCxNQUFNLENBQXZENkQsTUFBTTtJQUFFQyxTQUFTLEdBQWdDOUQsTUFBTSxDQUEvQzhELFNBQVM7SUFBRUMsT0FBTyxHQUF1Qi9ELE1BQU0sQ0FBcEMrRCxPQUFPO0lBQUVDLFVBQVUsR0FBV2hFLE1BQU0sQ0FBM0JnRSxVQUFVO0lBQUVDLElBQUksR0FBS2pFLE1BQU0sQ0FBZmlFLElBQUk7RUFFcEQsT0FBTyxVQUFDdkQsT0FBTztJQUFBLE9BQ2JBLE9BQU8sQ0FBQ3dELEdBQUcsQ0FBQyxVQUFDQyxNQUFNLEVBQUk7TURwRm5CLElBQUl4RCxFQUFFLEVBQUV5RCxFQUFFO01DcUZaLElBQUl0RSxhQUFhLENBQUNxRSxNQUFNLENBQUMsRUFBRTtRQUN6QixPQUFBbkIsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNLa0IsTUFBTSxDQUFBLEVBQUE7VUFDVGxELEtBQUssRUFBRSxPQUFPa0QsTUFBTSxDQUFDbEQsS0FBSyxLQUFLLFFBQVEsSUFBSSxPQUFPa0QsTUFBTSxDQUFDbEQsS0FBSyxLQUFLLFFBQVEsR0FDdkU3QixJQUFBLENBQUNNLGVBQWUsRUFBQTtZQUFDdUUsSUFBSSxFQUFFcEUsaUJBQWlCLENBQUNvRSxJQUFJLENBQUMsQ0FBQ0ksY0FBYztZQUFFQyxNQUFNLEVBQUEsSUFBQTtZQUFBQyxRQUFBLEVBQUVKLE1BQU0sQ0FBQ2xEO1VBQUssQ0FBQSxDQUFtQixHQUN0R2tELE1BQU0sQ0FBQ2xELEtBQUs7VUFDaEJzRCxRQUFRLEVBQUVYLG1CQUFtQixDQUFDNUQsTUFBTSxDQUFDLENBQUNtRSxNQUFNLENBQUNJLFFBQVE7UUFBQyxDQUFBLENBQUE7TUFFMUQ7TUFDQSxJQUFNQyxVQUFVLEdBQUdDLE9BQU8sQ0FBQ04sTUFBTSxDQUFDTixNQUFNLENBQUM7TUFDekMsSUFBTWEsV0FBVyxHQUFHYixNQUFNLENBQUNjLFNBQVMsS0FBS1IsTUFBTSxDQUFDdkQsR0FBRyxHQUFHLENBQUFELEVBQUEsR0FBQWtELE1BQU0sQ0FBQ0gsS0FBSyxNQUFBLElBQUEsSUFBQS9DLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLElBQUksR0FBRyxJQUFJO01BQ2pGLElBQU1nRSxTQUFTLEdBQUdSLE1BQU0sQ0FBQ3ZELEdBQUcsSUFBSSxJQUFJLEdBQUdnRSxNQUFNLENBQUNULE1BQU0sQ0FBQ3ZELEdBQUcsQ0FBQyxHQUFHUSxTQUFTO01BQ3JFLElBQU15RCxjQUFjLEdBQ2xCRixTQUFTLElBQUksSUFBSSxHQUFJLENBQUFQLEVBQUEsR0FBQUwsT0FBTyxDQUFDWSxTQUFTLENBQUMsTUFBQSxJQUFBLElBQUFQLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJVCxrQkFBa0IsR0FBSUEsa0JBQWtCO01BRXJGO01BQ0EsSUFBTW1CLGdCQUFnQixHQUFHWCxNQUFNLENBQUNZLFlBQVk7TUFDNUMsSUFBTUEsWUFBWSxHQUFtQyxTQUEvQ0EsWUFBWUEsQ0FBb0NDLEdBQUcsRUFBRXhELEtBQUssRUFBSTtRRHpGOUQsSUFBSWIsRUFBRTtRQzBGVixJQUFNc0UsU0FBUyxHQUFHLENBQUF0RSxFQUFBLEdBQUFtRSxnQkFBZ0IsS0FBQSxJQUFBLElBQWhCQSxnQkFBZ0IsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBaEJBLGdCQUFnQixDQUFHRSxHQUFHLEVBQUV4RCxLQUFLLENBQUMsTUFBQSxJQUFBLElBQUFiLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJLENBQUEsQ0FBRTtRQUN0RCxPQUFPcUMsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNGZ0MsU0FBUyxDQUFBLEVBQ1JULFVBQVUsR0FBRztVQUFFLFdBQVcsRUFBRWYsV0FBVyxDQUFDaUIsV0FBVztRQUFDLENBQUUsR0FBRyxJQUFLLENBQ1I7TUFDOUQsQ0FBQztNQUVELElBQU1RLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBSUMsSUFBc0IsRUFBSTtRQUNoRCxJQUFJUixTQUFTLElBQUksSUFBSSxFQUFFO1FBQ3ZCWCxVQUFVLENBQUMsVUFBQ29CLE9BQU87VUFBQSxPQUFLcEMsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFNbUMsT0FBTyxDQUFBLEVBQUFDLGVBQUEsS0FBR1YsU0FBUyxFQUFHUSxJQUFJLENBQUNHLE1BQU0sR0FBR0gsSUFBSSxHQUFHLElBQUksQ0FBQSxDQUFBO1FBQUEsQ0FBRyxDQUFDO01BQ25GLENBQUM7TUFFRCxPQUFBbkMsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNLa0IsTUFBTSxDQUFBLEVBQUE7UUFDVFksWUFBWSxFQUFaQSxZQUFZO1FBQ1o5RCxLQUFLLEVBQUVrRCxNQUFNLENBQUNoQixZQUFZLEdBQ3RCZ0IsTUFBTSxDQUFDaEIsWUFBWSxDQUFDO1VBQUVnQixNQUFNLEVBQU5BLE1BQU07VUFBRUYsSUFBSSxFQUFKQSxJQUFJO1VBQUVzQixRQUFRLEVBQUUxRixpQkFBaUIsQ0FBQ29FLElBQUksQ0FBQyxDQUFDSTtRQUFjLENBQUUsQ0FBQyxHQUV2RmpGLElBQUEsQ0FBQ0ssVUFBVSxFQUFBO1VBQ1R3RSxJQUFJLEVBQUVBLElBQUk7VUFDVkUsTUFBTSxFQUFFQSxNQUFNO1VBQ2RxQixTQUFTLEVBQUVkLFdBQVc7VUFDdEJlLFdBQVcsRUFBRSxTQUFiQSxXQUFXQSxDQUFBO1lBQUEsT0FDVDNCLFNBQVMsQ0FBQyxVQUFDNEIsYUFBYTtjQUFBLE9BQU07Z0JBQzVCZixTQUFTLEVBQUVSLE1BQU0sQ0FBQ3ZELEdBQUc7Z0JBQ3JCOEMsS0FBSyxFQUNIZ0MsYUFBYSxDQUFDZixTQUFTLEtBQUtSLE1BQU0sQ0FBQ3ZELEdBQUcsSUFBSThFLGFBQWEsQ0FBQ2hDLEtBQUssS0FBSyxJQUFJLEdBQ2xFLFFBQVEsR0FDUmdDLGFBQWEsQ0FBQ2hDLEtBQUssS0FBSyxRQUFRLEdBQzlCLFNBQVMsR0FDVDtjRHRHTixDQ3VHSDtZQUFBLENBQUMsQ0FBQztVQUFBO1VBRUxtQixjQUFjLEVBQUVBLGNBQWM7VUFDOUJLLGNBQWMsRUFBRUE7UUFBYyxDQUFBO01BRWpDLENBQUEsQ0FBQTtJQUVQLENBQUMsQ0FBQztFQUFBO0FBQ047QUFFQSxJQUFNUyxpQkFBaUIsR0FBRyxvQ0FBb0M7QUFDOUQsSUFBTTdFLGlCQUFpQixHQUFHLG9DQUFvQztBQUM5RCxJQUFNb0Msb0JBQW9CLEdBQUcsdUNBQXVDO0FBRXBFLFNBQVMwQyxtQkFBbUJBLENBQUEsRUFBQTtFQUMxQixPQUFPLFVBQUNsRixPQUFPO0lBQUEsUUFDYjtNQUFFRSxHQUFHLEVBQUUsa0JBQWtCO01BQUVHLEtBQUssRUFBRSxFQUFFO01BQUVFLEtBQUssRUFBRSxFQUFFO01BQUVKLFNBQVMsRUFBRThFLGlCQUFpQjtNQUFFdEUsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUE7UUFBQSxPQUFRLElBQUk7TUFBQTtJQUFBLENBQUUsRUFBQWMsTUFBQSxDQUFBQyxrQkFBQSxDQUNoRzFCLE9BQU8sSUFDVjtNQUFFRSxHQUFHLEVBQUUsZ0JBQWdCO01BQUVHLEtBQUssRUFBRSxFQUFFO01BQUVFLEtBQUssRUFBRSxFQUFFO01BQUVKLFNBQVMsRUFBRThFLGlCQUFpQjtNQUFFdEUsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUE7UUFBQSxPQUFRLElBQUk7TUFBQTtJQUFBLENBQUU7RUFBQSxDQUNsRztBQUNIO0FBRUEsU0FBU3dFLG1CQUFtQkEsQ0FBd0I1QixJQUFlLEVBQUE7RUFDakUsT0FBTyxVQUFDdkQsT0FBTztJQUFBLE9BQ2JBLE9BQU8sQ0FBQ3dELEdBQUcsQ0FBQyxVQUFDQyxNQUFNLEVBQUk7TUFDckIsSUFBSXJFLGFBQWEsQ0FBQ3FFLE1BQU0sQ0FBQyxFQUFFO1FBQ3pCLE9BQUFuQixNQUFBLENBQUFDLE1BQUEsQ0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQVlrQixNQUFNLENBQUEsRUFBQTtVQUFFSSxRQUFRLEVBQUVzQixtQkFBbUIsQ0FBSTVCLElBQUksQ0FBQyxDQUFDRSxNQUFNLENBQUNJLFFBQVE7UUFBQyxDQUFBLENBQUE7TUFDN0U7TUFDQSxPQUFBdkIsTUFBQSxDQUFBQyxNQUFBLENBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUNLa0IsTUFBTSxDQUFBLEVBQUE7UUFDVDJCLFFBQVEsRUFBRSxLQUFLO1FBQ2Y7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0F6RSxNQUFNLEVBQUUsU0FBUkEsTUFBTUEsQ0FBRzBFLEtBQWMsRUFBRXhFLE1BQVMsRUFBRUMsS0FBYTtVQUFBLE9BQy9DN0IsUUFBUSxDQUFDO1lBQ1BzRSxJQUFJLEVBQUpBLElBQUk7WUFDSkUsTUFBTSxFQUFOQSxNQUFNO1lBQ040QixLQUFLLEVBQUxBLEtBQUs7WUFDTHhFLE1BQU0sRUFBTkEsTUFBTTtZQUNOQyxLQUFLLEVBQUxBO1VEbkhBLENDb0hELENBQUM7UUFBQTtNQUFBLENBQUEsQ0FBQTtJQUVSLENBQUMsQ0FBQztFQUFBO0FBQ047QUFFQTtBRHJIQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUN1SEEsT0FBTSxTQUFVd0UsZUFBZUEsQ0FDN0JoRyxNQUFnQyxFQUFBO0VBRWhDLElBQ0VVLE9BQU8sR0FrQkxWLE1BQU0sQ0FsQlJVLE9BQU87SUFDUHVGLE9BQU8sR0FpQkxqRyxNQUFNLENBakJSaUcsT0FBTztJQUNQaEMsSUFBSSxHQWdCRmpFLE1BQU0sQ0FoQlJpRSxJQUFJO0lBQ0poRSxVQUFVLEdBZVJELE1BQU0sQ0FmUkMsVUFBVTtJQUNWcUMsWUFBWSxHQWNWdEMsTUFBTSxDQWRSc0MsWUFBWTtJQUNacEMscUJBQXFCLEdBYW5CRixNQUFNLENBYlJFLHFCQUFxQjtJQUNyQnFDLHFCQUFxQixHQVluQnZDLE1BQU0sQ0FaUnVDLHFCQUFxQjtJQUNyQkMsZ0JBQWdCLEdBV2R4QyxNQUFNLENBWFJ3QyxnQkFBZ0I7SUFDaEJDLGFBQWEsR0FVWHpDLE1BQU0sQ0FWUnlDLGFBQWE7SUFDYkMsZUFBZSxHQVNiMUMsTUFBTSxDQVRSMEMsZUFBZTtJQUNmdkMsYUFBYSxHQVFYSCxNQUFNLENBUlJHLGFBQWE7SUFDYndDLGdCQUFnQixHQU9kM0MsTUFBTSxDQVBSMkMsZ0JBQWdCO0lBQ2hCQyxnQkFBZ0IsR0FNZDVDLE1BQU0sQ0FOUjRDLGdCQUFnQjtJQUNoQmlCLE1BQU0sR0FLSjdELE1BQU0sQ0FMUjZELE1BQU07SUFDTkMsU0FBUyxHQUlQOUQsTUFBTSxDQUpSOEQsU0FBUztJQUNUQyxPQUFPLEdBR0wvRCxNQUFNLENBSFIrRCxPQUFPO0lBQ1BDLFVBQVUsR0FFUmhFLE1BQU0sQ0FGUmdFLFVBQVU7SUFDVjVELFNBQVMsR0FDUEosTUFBTSxDQURSSSxTQUFTO0VBR1g7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQSxJQUFNOEYsZUFBZSxHQUFHN0csT0FBTyxDQUFDLFlBQUs7SUFDbkMsSUFBSThHLElBQUksR0FBR3ZDLG1CQUFtQixDQUFDNUQsTUFBTSxDQUFDLENBQUNVLE9BQU8sQ0FBQztJQUMvQ3lGLElBQUksR0FBR04sbUJBQW1CLENBQUk1QixJQUFJLENBQUMsQ0FBQ2tDLElBQUksQ0FBQztJQUN6QyxPQUFPQSxJQUFJO0VBQ2IsQ0FBQyxFQUFFLENBQUN6RixPQUFPLEVBQUV1RCxJQUFJLEVBQUVKLE1BQU0sRUFBRUUsT0FBTyxFQUFFRCxTQUFTLEVBQUVFLFVBQVUsQ0FBQyxDQUFDO0VBRTNEO0VBQ0E7RUFDQTtFQUNBLElBQU1vQyxhQUFhLEdBQUcvRyxPQUFPLENBQUMsWUFBSztJQUNqQyxJQUFJOEcsSUFBSSxHQUF5QixFQUFFO0lBQ25DLElBQUlsRyxVQUFVLElBQUlBLFVBQVUsQ0FBQ29HLGdCQUFnQixLQUFLLEtBQUssRUFBRTtNQUN2REYsSUFBSSxHQUFHcEcsbUJBQW1CLENBQUNDLE1BQU0sQ0FBQyxDQUFDbUcsSUFBSSxDQUFDO0lBQzFDO0lBQ0EsSUFBTUcsa0JBQWtCLEdBQUdoRSxZQUFZLEdBQUdELHNCQUFzQixDQUFDckMsTUFBTSxDQUFDLEdBQUcsSUFBSTtJQUMvRSxJQUFJc0csa0JBQWtCLEVBQUU7TUFDdEJILElBQUksR0FBR0csa0JBQWtCLENBQUNILElBQUksQ0FBQztJQUNqQztJQUNBO0lBQ0E7SUFDQUEsSUFBSSxHQUFHdkMsbUJBQW1CLENBQUM1RCxNQUFNLENBQUMsQ0FBQ21HLElBQUksQ0FBQztJQUN4Q0EsSUFBSSxHQUFHTixtQkFBbUIsQ0FBSTVCLElBQUksQ0FBQyxDQUFDa0MsSUFBSSxDQUFDO0lBQ3pDLE9BQU9BLElBQUk7RUFDYixDQUFDLEVBQUUsQ0FDRGxDLElBQUksRUFDSmhFLFVBQVUsRUFDVnFDLFlBQVksRUFDWnBDLHFCQUFxQixFQUNyQnFDLHFCQUFxQixFQUNyQkMsZ0JBQWdCLEVBQ2hCQyxhQUFhLEVBQ2JDLGVBQWUsRUFDZnZDLGFBQWEsRUFDYndDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCaUIsTUFBTSxFQUNOQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUEMsVUFBVSxFQUNWNUQsU0FBUyxDQUNWLENBQUM7RUFFRixPQUFPZixPQUFPLENBQUMsWUFBSztJQUNsQixJQUFJOEcsSUFBSSxNQUFBaEUsTUFBQSxDQUFBQyxrQkFBQSxDQUFPZ0UsYUFBYSxHQUFBaEUsa0JBQUEsQ0FBSzhELGVBQWUsRUFBQztJQUNqRCxJQUFJRCxPQUFPLEtBQUssUUFBUSxFQUFFO01BQ3hCRSxJQUFJLEdBQUdQLG1CQUFtQixDQUFBLENBQUssQ0FBQ08sSUFBSSxDQUFDO0lBQ3ZDO0lBQ0EsT0FBT0EsSUFBeUM7RUFDbEQsQ0FBQyxFQUFFLENBQUNDLGFBQWEsRUFBRUYsZUFBZSxFQUFFRCxPQUFPLENBQUMsQ0FBQztBQUMvQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVDb2x1bW5zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25Db250cm9sLCBTZWxlY3Rpb25IZWFkZXJDb250cm9sIH0gZnJvbSAnLi4vZmVhdHVyZXMvU2VsZWN0aW9uQ29sdW1uJztcbmltcG9ydCB7IEV4cGFuZFRyaWdnZXIgfSBmcm9tICcuLi9mZWF0dXJlcy9FeHBhbmRUcmlnZ2VyJztcbmltcG9ydCB7IEhlYWRlckNlbGwgfSBmcm9tICcuLi9yZW5kZXJlcnMvSGVhZGVyQ2VsbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5VGl0bGUgfSBmcm9tICcuLi8uLi9UeXBvZ3JhcGh5JztcbmltcG9ydCB7IEJvZHlDZWxsIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0JvZHlDZWxsJztcbmltcG9ydCB7IFRBQkxFX0RFRkFVTFRfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRBQkxFX1NJWkVfQ09ORklHIH0gZnJvbSAnLi4vc2l6ZSc7XG5pbXBvcnQgeyBpc0NvbHVtbkdyb3VwIH0gZnJvbSAnLi9jb2x1bW5VdGlsJztcbmZ1bmN0aW9uIG1ha2VFeHBhbmRUcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgY29uc3QgeyBleHBhbmRhYmxlLCBtZXJnZWRFeHBhbmRlZFJvd0tleXMsIHRyaWdnZXJFeHBhbmQsIGdldFJvd0tleSB9ID0gY29uZmlnO1xuICAgIGNvbnN0IGN1c3RvbUV4cGFuZEljb24gPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZXhwYW5kSWNvbjtcbiAgICBjb25zdCByb3dFeHBhbmRhYmxlID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLnJvd0V4cGFuZGFibGU7XG4gICAgLy8gTygxKSBwZXItcm93IGV4cGFuc2lvbiBsb29rdXAg4oCUIGAuaW5jbHVkZXNgIGhlcmUgcmFuIG9uY2UgcGVyIHJlbmRlcmVkIHJvdy5cbiAgICBjb25zdCBleHBhbmRlZEtleVNldCA9IG5ldyBTZXQobWVyZ2VkRXhwYW5kZWRSb3dLZXlzKTtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGtleTogJ19fZXhwYW5kX18nLFxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZTogRVhQQU5EX0NPTFVNTl9DTFMsXG4gICAgICAgICAgICAgICAgLy8gSG9ub3IgYGV4cGFuZGFibGUuY29sdW1uV2lkdGhgIC8gYGNvbHVtblRpdGxlYCAvIGBmaXhlZGA7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBhIGZpeGVkIDE2cHggY29sdW1uIChjaGV2cm9uLW9ubHksIHBhZGRpbmc6IDApLlxuICAgICAgICAgICAgICAgIHdpZHRoOiAoX2EgPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuY29sdW1uV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDE2LFxuICAgICAgICAgICAgICAgIHRpdGxlOiBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuY29sdW1uVGl0bGUsXG4gICAgICAgICAgICAgICAgZml4ZWQ6IChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQpID09PSB0cnVlXG4gICAgICAgICAgICAgICAgICAgID8gJ2xlZnQnXG4gICAgICAgICAgICAgICAgICAgIDogKGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5maXhlZCkgPT09IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZml4ZWQsXG4gICAgICAgICAgICAgICAgcmVuZGVyOiAoXywgcmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBIb25vciBgcm93RXhwYW5kYWJsZWA6IHdoZW4gdGhlIHByZWRpY2F0ZSBkZW5pZXMgYSByZWNvcmQsIHJlbmRlciBub1xuICAgICAgICAgICAgICAgICAgICAvLyBjaGV2cm9uIGF0IGFsbCAodGhlIHJvdyBpcyBub24tZXhwYW5kYWJsZSkuXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNhbkV4cGFuZCA9IHJvd0V4cGFuZGFibGUgPyByb3dFeHBhbmRhYmxlKHJlY29yZCkgOiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbkV4cGFuZClcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRLZXkgPSBnZXRSb3dLZXkocmVjb3JkLCBpbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGV4cGFuZGVkID0gZXhwYW5kZWRLZXlTZXQuaGFzKHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXN0b21FeHBhbmRJY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VzdG9tRXhwYW5kSWNvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJlZml4Q2xzOiBUQUJMRV9ERUZBVUxUX1BSRUZJWCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBhbmRlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWNvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kYWJsZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkV4cGFuZDogKHJlYywgZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyRXhwYW5kKGdldFJvd0tleShyZWMsIGluZGV4KSwgcmVjKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4KEV4cGFuZFRyaWdnZXIsIHsgZXhwYW5kZWQ6IGV4cGFuZGVkLCByZWNvcmRLZXk6IHJlY29yZEtleSwgcmVjb3JkOiByZWNvcmQsIG9uVG9nZ2xlOiB0cmlnZ2VyRXhwYW5kIH0pKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIF07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSB7XG4gICAgdmFyIF9hO1xuICAgIGNvbnN0IHsgcm93U2VsZWN0aW9uLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgZ2V0Um93S2V5LCB9ID0gY29uZmlnO1xuICAgIGlmICghcm93U2VsZWN0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBjb25zdCBzZWxlY3Rpb25UeXBlID0gKF9hID0gcm93U2VsZWN0aW9uLnR5cGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6ICdjaGVja2JveCc7XG4gICAgLy8gTygxKSBwZXItcm93IHNlbGVjdGlvbiBsb29rdXAg4oCUIGAuaW5jbHVkZXNgIGhlcmUgcmFuIG9uY2UgcGVyIHJlbmRlcmVkIHJvdy5cbiAgICBjb25zdCBzZWxlY3RlZEtleVNldCA9IG5ldyBTZXQobWVyZ2VkU2VsZWN0ZWRSb3dLZXlzKTtcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHsga2V5OiAnX19zZWxlY3Rpb25fXycsIGNsYXNzTmFtZTogU0VMRUNUSU9OX0NPTFVNTl9DTFMsIHdpZHRoOiAoX2EgPSByb3dTZWxlY3Rpb24uY29sdW1uV2lkdGgpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IDE2LCBmaXhlZDogcm93U2VsZWN0aW9uLmZpeGVkID8gJ2xlZnQnIDogdW5kZWZpbmVkIH0sIChzZWxlY3Rpb25UeXBlID09PSAnY2hlY2tib3gnXG4gICAgICAgICAgICAgICAgPyB7XG4gICAgICAgICAgICAgICAgICAgIHJlbmRlckhlYWRlcjogKCkgPT4gKF9qc3goU2VsZWN0aW9uSGVhZGVyQ29udHJvbCwgeyBjaGVja2VkOiBpc0FsbFNlbGVjdGVkLCBpbmRldGVybWluYXRlOiBpc0luZGV0ZXJtaW5hdGUsIG9uQ2hhbmdlOiB0cmlnZ2VyU2VsZWN0QWxsIH0pKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgOiB7fSkpLCB7IHJlbmRlcjogKF8sIHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgaW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByb3dQcm9wcyA9IGNoZWNrYm94UHJvcHNNYXAuZ2V0KHJlY29yZEtleSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChTZWxlY3Rpb25Db250cm9sLCB7IHR5cGU6IHNlbGVjdGlvblR5cGUsIGNoZWNrZWQ6IHNlbGVjdGVkS2V5U2V0LmhhcyhyZWNvcmRLZXkpLCByb3dQcm9wczogcm93UHJvcHMsIHJlY29yZEtleTogcmVjb3JkS2V5LCBvbkNoYW5nZTogdHJpZ2dlclNlbGVjdGlvbiB9KSk7XG4gICAgICAgICAgICAgICAgfSB9KSxcbiAgICAgICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIF07XG4gICAgfTtcbn1cbmZ1bmN0aW9uIGFyaWFTb3J0Rm9yKG9yZGVyKSB7XG4gICAgaWYgKG9yZGVyID09PSAnYXNjZW5kJylcbiAgICAgICAgcmV0dXJuICdhc2NlbmRpbmcnO1xuICAgIGlmIChvcmRlciA9PT0gJ2Rlc2NlbmQnKVxuICAgICAgICByZXR1cm4gJ2Rlc2NlbmRpbmcnO1xuICAgIHJldHVybiAnbm9uZSc7XG59XG4vLyBTdGFibGUgZW1wdHktZmlsdGVyIHJlZmVyZW5jZS4gV2l0aG91dCB0aGlzLCBgZmlsdGVyc1trZXldID8/IFtdYCBjcmVhdGVzIGFcbi8vIGZyZXNoIGBbXWAgb24gZXZlcnkgcmVuZGVyLCB3aGljaCB0aHJhc2hlcyBgRmlsdGVyVHJpZ2dlcmAnc1xuLy8gYHVzZUVmZmVjdChbc2VsZWN0ZWRLZXlzXSlgIGFuZCBjYXVzZXMgYW4gaW5maW5pdGUgc2V0U3RhdGUgbG9vcCBhZnRlclxuLy8gY29uZmlybSAvIHJlc2V0LlxuY29uc3QgRU1QVFlfRklMVEVSX1ZBTFVFID0gW107XG5mdW5jdGlvbiBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykge1xuICAgIGNvbnN0IHsgc29ydGVyLCBzZXRTb3J0ZXIsIGZpbHRlcnMsIHNldEZpbHRlcnMsIHNpemUgfSA9IGNvbmZpZztcbiAgICByZXR1cm4gKGNvbHVtbnMpID0+IGNvbHVtbnMubWFwKChjb2x1bW4pID0+IHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgaWYgKGlzQ29sdW1uR3JvdXAoY29sdW1uKSkge1xuICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29sdW1uKSwgeyB0aXRsZTogdHlwZW9mIGNvbHVtbi50aXRsZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIGNvbHVtbi50aXRsZSA9PT0gJ251bWJlcidcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KFR5cG9ncmFwaHlUaXRsZSwgeyBzaXplOiBUQUJMRV9TSVpFX0NPTkZJR1tzaXplXS5oZWFkZXJGb250U2l6ZSwgc3Ryb25nOiB0cnVlLCBjaGlsZHJlbjogY29sdW1uLnRpdGxlIH0pXG4gICAgICAgICAgICAgICAgICAgIDogY29sdW1uLnRpdGxlLCBjaGlsZHJlbjogbWFrZUhlYWRlclRyYW5zZm9ybShjb25maWcpKGNvbHVtbi5jaGlsZHJlbikgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNTb3J0YWJsZSA9IEJvb2xlYW4oY29sdW1uLnNvcnRlcik7XG4gICAgICAgIGNvbnN0IGFjdGl2ZU9yZGVyID0gc29ydGVyLmNvbHVtbktleSA9PT0gY29sdW1uLmtleSA/IChfYSA9IHNvcnRlci5vcmRlcikgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDogbnVsbCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGNvbHVtbktleSA9IGNvbHVtbi5rZXkgIT0gbnVsbCA/IFN0cmluZyhjb2x1bW4ua2V5KSA6IHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgZmlsdGVyU2VsZWN0ZWQgPSBjb2x1bW5LZXkgIT0gbnVsbCA/ICgoX2IgPSBmaWx0ZXJzW2NvbHVtbktleV0pICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IEVNUFRZX0ZJTFRFUl9WQUxVRSkgOiBFTVBUWV9GSUxURVJfVkFMVUU7XG4gICAgICAgIC8vIENvbXBvc2Ugb25IZWFkZXJDZWxsIHNvIHdlIGRvbid0IGNsb2JiZXIgdXNlci1wcm92aWRlZCBhdHRyaWJ1dGVzLlxuICAgICAgICBjb25zdCB1c2VyT25IZWFkZXJDZWxsID0gY29sdW1uLm9uSGVhZGVyQ2VsbDtcbiAgICAgICAgY29uc3Qgb25IZWFkZXJDZWxsID0gKGNvbCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgIGNvbnN0IHVzZXJBdHRycyA9IChfYSA9IHVzZXJPbkhlYWRlckNlbGwgPT09IG51bGwgfHwgdXNlck9uSGVhZGVyQ2VsbCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXNlck9uSGVhZGVyQ2VsbChjb2wsIGluZGV4KSkgIT09IG51bGwgJiYgX2EgIT09IHZvaWQgMCA/IF9hIDoge307XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB1c2VyQXR0cnMpLCAoaXNTb3J0YWJsZSA/IHsgJ2FyaWEtc29ydCc6IGFyaWFTb3J0Rm9yKGFjdGl2ZU9yZGVyKSB9IDogbnVsbCkpO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBvbkZpbHRlckNoYW5nZSA9IChuZXh0KSA9PiB7XG4gICAgICAgICAgICBpZiAoY29sdW1uS2V5ID09IG51bGwpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgc2V0RmlsdGVycygoY3VycmVudCkgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudCksIHsgW2NvbHVtbktleV06IG5leHQubGVuZ3RoID8gbmV4dCA6IG51bGwgfSkpKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29sdW1uKSwgeyBvbkhlYWRlckNlbGwsIHRpdGxlOiBjb2x1bW4ucmVuZGVySGVhZGVyXG4gICAgICAgICAgICAgICAgPyBjb2x1bW4ucmVuZGVySGVhZGVyKHsgY29sdW1uLCBzaXplLCBmb250U2l6ZTogVEFCTEVfU0laRV9DT05GSUdbc2l6ZV0uaGVhZGVyRm9udFNpemUgfSlcbiAgICAgICAgICAgICAgICA6IChfanN4KEhlYWRlckNlbGwsIHsgc2l6ZTogc2l6ZSwgY29sdW1uOiBjb2x1bW4sIHNvcnRPcmRlcjogYWN0aXZlT3JkZXIsIG9uU29ydENsaWNrOiAoKSA9PiBzZXRTb3J0ZXIoKGN1cnJlbnRTb3J0ZXIpID0+ICh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2x1bW5LZXk6IGNvbHVtbi5rZXksXG4gICAgICAgICAgICAgICAgICAgICAgICBvcmRlcjogY3VycmVudFNvcnRlci5jb2x1bW5LZXkgIT09IGNvbHVtbi5rZXkgfHwgY3VycmVudFNvcnRlci5vcmRlciA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2FzY2VuZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGN1cnJlbnRTb3J0ZXIub3JkZXIgPT09ICdhc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2Rlc2NlbmQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgfSkpLCBmaWx0ZXJTZWxlY3RlZDogZmlsdGVyU2VsZWN0ZWQsIG9uRmlsdGVyQ2hhbmdlOiBvbkZpbHRlckNoYW5nZSB9KSkgfSk7XG4gICAgfSk7XG59XG5jb25zdCBTUEFDRVJfQ09MVU1OX0NMUyA9ICdvbS1jb21wb25lbnQtdWktdGFibGUtY2VsbC0tc3BhY2VyJztcbmNvbnN0IEVYUEFORF9DT0xVTU5fQ0xTID0gJ29tLWNvbXBvbmVudC11aS10YWJsZS1jZWxsLS1leHBhbmQnO1xuY29uc3QgU0VMRUNUSU9OX0NPTFVNTl9DTFMgPSAnb20tY29tcG9uZW50LXVpLXRhYmxlLWNlbGwtLXNlbGVjdGlvbic7XG5mdW5jdGlvbiBtYWtlU3BhY2VyVHJhbnNmb3JtKCkge1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gW1xuICAgICAgICB7IGtleTogJ19fc3BhY2VyX3N0YXJ0X18nLCB3aWR0aDogMjQsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgICAgIC4uLmNvbHVtbnMsXG4gICAgICAgIHsga2V5OiAnX19zcGFjZXJfZW5kX18nLCB3aWR0aDogMTYsIHRpdGxlOiAnJywgY2xhc3NOYW1lOiBTUEFDRVJfQ09MVU1OX0NMUywgcmVuZGVyOiAoKSA9PiBudWxsIH0sXG4gICAgXTtcbn1cbmZ1bmN0aW9uIG1ha2VSZW5kZXJUcmFuc2Zvcm0oc2l6ZSkge1xuICAgIHJldHVybiAoY29sdW1ucykgPT4gY29sdW1ucy5tYXAoKGNvbHVtbikgPT4ge1xuICAgICAgICBpZiAoaXNDb2x1bW5Hcm91cChjb2x1bW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBjb2x1bW4pLCB7IGNoaWxkcmVuOiBtYWtlUmVuZGVyVHJhbnNmb3JtKHNpemUpKGNvbHVtbi5jaGlsZHJlbikgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY29sdW1uKSwgeyBlbGxpcHNpczogZmFsc2UsIFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgaXMgaW50ZW50aW9uYWxseSBDQUxMRUQgYXMgYSBmdW5jdGlvbiwgbm90IHJlbmRlcmVkIGFzXG4gICAgICAgICAgICAvLyBgPEJvZHlDZWxsIC8+YC4gVGhlIGtlcm5lbCdzIGByZW5kZXJgIGNvbnRyYWN0IGFsbG93cyByZXR1cm5pbmcgZWl0aGVyXG4gICAgICAgICAgICAvLyBhIFJlYWN0Tm9kZSBvciBhIGB7IGNoaWxkcmVuLCBwcm9wcyB9YCBjZWxsLXNwYW5uaW5nIGRlc2NyaXB0b3IsIGFuZFxuICAgICAgICAgICAgLy8gQm9keUNlbGwgZm9yd2FyZHMgdGhhdCBkZXNjcmlwdG9yIHRocm91Z2ggZm9yIGNvbFNwYW4gLyByb3dTcGFuIHN1cHBvcnQuXG4gICAgICAgICAgICAvLyBXcmFwcGluZyBpdCBpbiBKU1ggd291bGQgY29sbGFwc2UgdGhlIGRlc2NyaXB0b3IgaW50byBhbiBlbGVtZW50IGFuZFxuICAgICAgICAgICAgLy8gYnJlYWsgY2VsbCBtZXJnaW5nIOKAlCBkbyBub3QgXCJmaXhcIiB0aGlzIGludG8gYW4gZWxlbWVudC5cbiAgICAgICAgICAgIHJlbmRlcjogKHZhbHVlLCByZWNvcmQsIGluZGV4KSA9PiBCb2R5Q2VsbCh7XG4gICAgICAgICAgICAgICAgc2l6ZSxcbiAgICAgICAgICAgICAgICBjb2x1bW4sXG4gICAgICAgICAgICAgICAgdmFsdWUsXG4gICAgICAgICAgICAgICAgcmVjb3JkLFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgfSkgfSk7XG4gICAgfSk7XG59XG4vKipcbiAqIFJldHVybnMgY29sdW1ucyByZWFkeSB0byBiZSBwYXNzZWQgdG8gdGhlIHRhYmxlIGtlcm5lbC5cbiAqXG4gKiBUaGUgcmV0dXJuZWQgc2hhcGUgSVMgc3RydWN0dXJhbGx5IHRoZSBrZXJuZWwncyBgQ29sdW1uc1R5cGU8VD5gOlxuICogICAtIEV2ZXJ5IGxlYWYgY29sdW1uJ3MgYHJlbmRlcmAgaXMgcmVwbGFjZWQgYnkgYG1ha2VSZW5kZXJUcmFuc2Zvcm1gLCB3aGljaFxuICogICAgIGFsd2F5cyByZXR1cm5zIGEgYFJlYWN0Tm9kZWAgKEJvZHlDZWxsIGhhbmRsZXMgYFRhYmxlQ2VsbENvbnRlbnRWYWx1ZWAgL1xuICogICAgIGBUYWJsZVJlbmRlcmVkQ2VsbGAgZXh0cmFzIGFuZCBlbWl0cyBSZWFjdE5vZGUvUmVuZGVyZWRDZWxsKS5cbiAqICAgLSBFdmVyeSBsZWFmIGNvbHVtbidzIGB0aXRsZWAgaXMgZWl0aGVyIGEgUmVhY3ROb2RlIG9yIHJlcGxhY2VkIGJ5XG4gKiAgICAgYDxIZWFkZXJDZWxsIC8+YC5cbiAqIEJlY2F1c2UgVFMgY2FuJ3QgdHJhY2sgdGhhdCB0aG9zZSByZXBsYWNlbWVudHMgaGF2ZSBoYXBwZW5lZCBhY3Jvc3MgdGhlXG4gKiBgdHJhbnNmb3Jtcy5yZWR1Y2VgIGNoYWluLCBhIHNpbmdsZSBpbnRlcm5hbCBjYXN0IGlzIHJlcXVpcmVkIOKAlCBjYWxsIHNpdGVzIG5vXG4gKiBsb25nZXIgbmVlZCB0aGVpciBvd24gYGFzIHVua25vd24gYXMgSW50ZXJuYWxDb2x1bW5zVHlwZTxUPmAgY2FzdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHVzZVRhYmxlQ29sdW1ucyhjb25maWcpIHtcbiAgICBjb25zdCB7IGNvbHVtbnMsIHZhcmlhbnQsIHNpemUsIGV4cGFuZGFibGUsIHJvd1NlbGVjdGlvbiwgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBtZXJnZWRTZWxlY3RlZFJvd0tleXMsIGNoZWNrYm94UHJvcHNNYXAsIGlzQWxsU2VsZWN0ZWQsIGlzSW5kZXRlcm1pbmF0ZSwgdHJpZ2dlckV4cGFuZCwgdHJpZ2dlclNlbGVjdGlvbiwgdHJpZ2dlclNlbGVjdEFsbCwgc29ydGVyLCBzZXRTb3J0ZXIsIGZpbHRlcnMsIHNldEZpbHRlcnMsIGdldFJvd0tleSwgfSA9IGNvbmZpZztcbiAgICAvLyBUaGUgdXNlcidzIGRhdGEgY29sdW1ucyBvbmx5IGRlcGVuZCBvbiB0aGUgaGVhZGVyIC8gcmVuZGVyIGlucHV0c1xuICAgIC8vIChzb3J0LCBmaWx0ZXIpIOKAlCBOT1Qgb24gc2VsZWN0aW9uIG9yIGV4cGFuc2lvbiBzdGF0ZS4gTWVtb2lzaW5nIHRoZW1cbiAgICAvLyBvbiB0aGVpciBvd24gbWVhbnMgdG9nZ2xpbmcgYSBjaGVja2JveCBvciBjaGV2cm9uIG5vIGxvbmdlciByZWJ1aWxkcyBhbmRcbiAgICAvLyByZS13cmFwcyB0aGUgcmVuZGVyIGNsb3N1cmUgb2YgKmV2ZXJ5KiBkYXRhIGNvbHVtbjsgb25seSB0aGUgc21hbGxcbiAgICAvLyBzZWxlY3Rpb24vZXhwYW5kIHByZWZpeCBiZWxvdyBpcyByZWJ1aWx0LiBgbWFrZUhlYWRlclRyYW5zZm9ybWAgYW5kXG4gICAgLy8gYG1ha2VSZW5kZXJUcmFuc2Zvcm1gIGFyZSBwZXItY29sdW1uIGluZGVwZW5kZW50IG1hcHMsIHNvIGFwcGx5aW5nIHRoZW0gdG9cbiAgICAvLyB0aGUgdXNlciBjb2x1bW5zIGFuZCB0aGUgcHJlZml4IHNlcGFyYXRlbHkgYW5kIGNvbmNhdGVuYXRpbmcgaXMgZXF1aXZhbGVudFxuICAgIC8vIHRvIHRoZSBvcmlnaW5hbCBzaW5nbGUgcmVkdWNlLWNoYWluLlxuICAgIC8vXG4gICAgLy8gRGVwLWxpc3Qgbm90ZTogdGhlIHRyYW5zZm9ybSBmYWN0b3JpZXMgY2FwdHVyZSB0aGUgd2hvbGUgYGNvbmZpZ2AsIGJ1dFxuICAgIC8vIGV2ZXJ5IGNhbGxiYWNrIGluIGl0IChgc2V0U29ydGVyYCwgYHRyaWdnZXJFeHBhbmRgLCBgZ2V0Um93S2V5YCwg4oCmKSBpcyBhXG4gICAgLy8gc3RhYmxlIGB1c2VNZW1vaXplZEZuYCwgc28gbGlzdGluZyB0aGUgZ2VudWluZSB2YWx1ZSBpbnB1dHMgaXMgc3VmZmljaWVudFxuICAgIC8vIGFuZCBpbnRlbnRpb25hbC4gS2VlcCB0aGUgbGlzdHMgaW4gc3luYyB3aGVuIGFkZGluZyBpbnB1dHMuXG4gICAgY29uc3QgYmFzZVVzZXJDb2x1bW5zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gbWFrZUhlYWRlclRyYW5zZm9ybShjb25maWcpKGNvbHVtbnMpO1xuICAgICAgICBjb2xzID0gbWFrZVJlbmRlclRyYW5zZm9ybShzaXplKShjb2xzKTtcbiAgICAgICAgcmV0dXJuIGNvbHM7XG4gICAgfSwgW2NvbHVtbnMsIHNpemUsIHNvcnRlciwgZmlsdGVycywgc2V0U29ydGVyLCBzZXRGaWx0ZXJzXSk7XG4gICAgLy8gVGhlIHNlbGVjdGlvbiAvIGV4cGFuZCBwcmVmaXggY2FycmllcyBsaXZlIHNlbGVjdGVkL2V4cGFuZGVkIHN0YXRlIGluIGl0c1xuICAgIC8vIHJlbmRlciBvdXRwdXQsIHdoaWNoIGlzIHRoZSBzaWduYWwgdGhhdCByZS1yZW5kZXJzIHRoZSBhZmZlY3RlZCByb3dzIOKAlCBzbyBpdFxuICAgIC8vIG11c3QgcmVidWlsZCBvbiBldmVyeSB0b2dnbGUuIEl0IGlzIGF0IG1vc3QgdHdvIGNvbHVtbnMsIHNvIHRoaXMgaXMgY2hlYXAuXG4gICAgY29uc3QgcHJlZml4Q29sdW1ucyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICBsZXQgY29scyA9IFtdO1xuICAgICAgICBpZiAoZXhwYW5kYWJsZSAmJiBleHBhbmRhYmxlLnNob3dFeHBhbmRDb2x1bW4gIT09IGZhbHNlKSB7XG4gICAgICAgICAgICBjb2xzID0gbWFrZUV4cGFuZFRyYW5zZm9ybShjb25maWcpKGNvbHMpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvblRyYW5zZm9ybSA9IHJvd1NlbGVjdGlvbiA/IG1ha2VTZWxlY3Rpb25UcmFuc2Zvcm0oY29uZmlnKSA6IG51bGw7XG4gICAgICAgIGlmIChzZWxlY3Rpb25UcmFuc2Zvcm0pIHtcbiAgICAgICAgICAgIGNvbHMgPSBzZWxlY3Rpb25UcmFuc2Zvcm0oY29scyk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUnVuIHRoZSBwcmVmaXggdGhyb3VnaCB0aGUgc2FtZSBoZWFkZXIvcmVuZGVyIG1hcHMgdGhlIHVzZXIgY29sdW1ucyBnZXQgc29cbiAgICAgICAgLy8gdGhlIGZpbmFsIGFycmF5IGlzIGJ5dGUtZm9yLWJ5dGUgdGhlIG9yaWdpbmFsIHNpbmdsZS1waXBlbGluZSBvdXRwdXQuXG4gICAgICAgIGNvbHMgPSBtYWtlSGVhZGVyVHJhbnNmb3JtKGNvbmZpZykoY29scyk7XG4gICAgICAgIGNvbHMgPSBtYWtlUmVuZGVyVHJhbnNmb3JtKHNpemUpKGNvbHMpO1xuICAgICAgICByZXR1cm4gY29scztcbiAgICB9LCBbXG4gICAgICAgIHNpemUsXG4gICAgICAgIGV4cGFuZGFibGUsXG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXAsXG4gICAgICAgIGlzQWxsU2VsZWN0ZWQsXG4gICAgICAgIGlzSW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgdHJpZ2dlckV4cGFuZCxcbiAgICAgICAgdHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbCxcbiAgICAgICAgc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXIsXG4gICAgICAgIGZpbHRlcnMsXG4gICAgICAgIHNldEZpbHRlcnMsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICBdKTtcbiAgICByZXR1cm4gdXNlTWVtbygoKSA9PiB7XG4gICAgICAgIGxldCBjb2xzID0gWy4uLnByZWZpeENvbHVtbnMsIC4uLmJhc2VVc2VyQ29sdW1uc107XG4gICAgICAgIGlmICh2YXJpYW50ID09PSAnc3Ryb2tlJykge1xuICAgICAgICAgICAgY29scyA9IG1ha2VTcGFjZXJUcmFuc2Zvcm0oKShjb2xzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29scztcbiAgICB9LCBbcHJlZml4Q29sdW1ucywgYmFzZVVzZXJDb2x1bW5zLCB2YXJpYW50XSk7XG59IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
|
|
@@ -21,6 +21,7 @@ import { useTableDataPipeline } from './useTableDataPipeline';
|
|
|
21
21
|
import { useTableSelection } from './useTableSelection';
|
|
22
22
|
import { useTableExpand } from './useTableExpand';
|
|
23
23
|
import { useTableColumns } from './useTableColumns';
|
|
24
|
+
import { flattenColumns } from './columnUtil';
|
|
24
25
|
/**
|
|
25
26
|
* Centralises the wiring shared by `Table` and `VirtualTable`:
|
|
26
27
|
* - destructure props
|
|
@@ -207,7 +208,9 @@ export var useTableSetup = function useTableSetup(props) {
|
|
|
207
208
|
summary: summary,
|
|
208
209
|
footer: footer,
|
|
209
210
|
showHeader: showHeader,
|
|
210
|
-
tableLayout: tableLayout
|
|
211
|
+
tableLayout: tableLayout !== null && tableLayout !== void 0 ? tableLayout : flattenColumns(columns).some(function (column) {
|
|
212
|
+
return column.ellipsis;
|
|
213
|
+
}) ? 'fixed' : undefined,
|
|
211
214
|
components: components,
|
|
212
215
|
direction: direction,
|
|
213
216
|
rowHoverable: rowHoverable,
|
|
@@ -217,4 +220,4 @@ export var useTableSetup = function useTableSetup(props) {
|
|
|
217
220
|
paginationNode: paginationNode
|
|
218
221
|
};
|
|
219
222
|
};
|
|
220
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2V0dXAudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJ1c2VMb2NhbGUiLCJQYWdpbmF0aW9uIiwiU3Bpbm5lciIsIkV4cGFuZGVkUm93Q29udGFpbmVyIiwiVGFibGVFbXB0eVN0YXRlIiwiVEFCTEVfQkxPQ0siLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIlRBQkxFX0RFRkFVTFRfVkFSSUFOVCIsIlRBQkxFX0RFRkFVTFRfU0laRSIsInRhYmxlU2l6ZUNzc1ZhcnMiLCJ1c2VUYWJsZURhdGFQaXBlbGluZSIsInVzZVRhYmxlU2VsZWN0aW9uIiwidXNlVGFibGVFeHBhbmQiLCJ1c2VUYWJsZUNvbHVtbnMiLCJ1c2VUYWJsZVNldHVwIiwicHJvcHMiLCJfYSIsIl9iIiwiX2MiLCJsb2NhbGUiLCJfcHJvcHMkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsIl9wcm9wcyR2YXJpYW50IiwidmFyaWFudCIsIl9wcm9wcyRzaXplIiwic2l6ZSIsInN0eWxlIiwiY29sdW1ucyIsImRhdGFTb3VyY2UiLCJyb3dLZXkiLCJlbXB0eSIsImJvcmRlcmVkIiwiX3Njcm9sbCIsInNjcm9sbCIsInN0aWNreSIsInBhZ2luYXRpb24iLCJyb3dTZWxlY3Rpb24iLCJfcHJvcHMkbG9hZGluZyIsImxvYWRpbmciLCJvbkNoYW5nZSIsImNoaWxkcmVuQ29sdW1uTmFtZSIsImluZGVudFNpemUiLCJleHBhbmRhYmxlIiwib25Sb3ciLCJyb3dDbGFzc05hbWUiLCJzdW1tYXJ5IiwiZm9vdGVyIiwic2hvd0hlYWRlciIsInRhYmxlTGF5b3V0IiwiY29tcG9uZW50cyIsImRpcmVjdGlvbiIsInJvd0hvdmVyYWJsZSIsIm9uU2Nyb2xsIiwicmVzdCIsImNscyIsImxvYWRpbmdDb25maWciLCJzcGlubmluZyIsImlzTG9hZGluZyIsImxvYWRpbmdJbmRpY2F0b3IiLCJpbmRpY2F0b3IiLCJ0eXBlIiwidGl0bGUiLCJnZXRSb3dLZXkiLCJyZWNvcmQiLCJpbmRleCIsInBpcGVsaW5lIiwic2VsZWN0aW9uIiwiY3VycmVudERhdGFTb3VyY2UiLCJleHBhbmQiLCJyZW5kZXJlZENvbHVtbnMiLCJtZXJnZWRFeHBhbmRlZFJvd0tleXMiLCJ0cmlnZ2VyRXhwYW5kIiwibWVyZ2VkU2VsZWN0ZWRSb3dLZXlzIiwiY2hlY2tib3hQcm9wc01hcCIsImlzQWxsU2VsZWN0ZWQiLCJpc0luZGV0ZXJtaW5hdGUiLCJ0cmlnZ2VyU2VsZWN0aW9uIiwidHJpZ2dlclNlbGVjdEFsbCIsInNvcnRlciIsInNldFNvcnRlciIsImZpbHRlcnMiLCJzZXRGaWx0ZXJzIiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwiZXhwYW5kZWRSb3dSZW5kZXIiLCJ1bmRlZmluZWQiLCJjb25zb2xlIiwid2FybiIsIndyYXBwZWRFeHBhbmRlZFJvd1JlbmRlciIsImluZGVudCIsImV4cGFuZGVkIiwicm93RXhwYW5kYWJsZSIsImNoaWxkcmVuIiwia2VybmVsT25FeHBhbmQiLCJyZWNvcmRLZXkiLCJvbktlcm5lbEV4cGFuZCIsIm1lcmdlZEV4cGFuZGFibGUiLCJhc3NpZ24iLCJleHBhbmRlZFJvd0tleXMiLCJzaG93RXhwYW5kQ29sdW1uIiwib25FeHBhbmQiLCJyZXNvbHZlZFBhZ2luYXRpb24iLCJjdXJyZW50IiwicGFnZVNpemUiLCJwYWdpbmF0aW9uTm9kZSIsImNvbmNhdCIsInRvdGFsIiwibmV4dFBhZ2UiLCJuZXh0UGFnZVNpemUiLCJzZXRQYWdpbmF0aW9uIiwiY3VycmVudFBhZ2luYXRpb24iLCJ3cmFwcGVyQ2xhc3NOYW1lIiwidGFibGVDbGFzc05hbWUiLCJlbXB0eVRleHQiLCJ3cmFwcGVySHRtbFByb3BzIiwiZm9yd2FyZGVkS2VybmVsUHJvcHMiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQyxJQUFJRixDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUMvRUQsQ0FBQyxDQUFDQyxDQUFDLENBQUMsR0FBR0gsQ0FBQyxDQUFDRyxDQUFDLENBQUM7RUFDZixJQUFJSCxDQUFDLElBQUksSUFBSSxJQUFJLE9BQU9JLE1BQU0sQ0FBQ0sscUJBQXFCLEtBQUssVUFBVSxFQUMvRCxLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVQLENBQUMsR0FBR0MsTUFBTSxDQUFDSyxxQkFBcUIsQ0FBQ1QsQ0FBQyxDQUFDLEVBQUVVLENBQUMsR0FBR1AsQ0FBQyxDQUFDUSxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO0lBQ3BFLElBQUlULENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJTixNQUFNLENBQUNDLFNBQVMsQ0FBQ08sb0JBQW9CLENBQUNMLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEVBQzFFUixDQUFDLENBQUNDLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBR1YsQ0FBQyxDQUFDRyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDO0VBQ3pCO0VBQ0osT0FBT1IsQ0FBQztBQUNaLENBQUM7QUFDRCxTQUFTVyxHQUFHLElBQUlDLElBQUksUUFBUSxtQkFBbUI7QUNYL0MsU0FBU0MsT0FBTyxRQUE0RSxPQUFPO0FBQ25HLE9BQU9DLGFBQWEsTUFBTSw2QkFBNkI7QUFDdkQsT0FBT0MsVUFBVSxJQUFJQyxPQUFPLFFBQVEsMkJBQTJCO0FBQy9ELFNBQVNDLFNBQVMsUUFBUSxzQkFBc0I7QUFDaEQsU0FBU0MsVUFBVSxRQUFRLGtCQUFrQjtBQUM3QyxTQUFTQyxPQUFPLFFBQVEsZUFBZTtBQUN2QyxTQUFTQyxvQkFBb0IsUUFBUSxtQ0FBbUM7QUFDeEUsU0FBU0MsZUFBZSxRQUFRLHlCQUF5QjtBQUN6RCxTQUNFQyxXQUFXLEVBQ1hDLG9CQUFvQixFQUNwQkMscUJBQXFCLFFBQ2hCLGNBQWM7QUFDckIsU0FBU0Msa0JBQWtCLEVBQUVDLGdCQUFnQixRQUFRLFNBQVM7QUFDOUQsU0FBU0Msb0JBQW9CLFFBQVEsd0JBQXdCO0FBQzdELFNBQVNDLGlCQUFpQixRQUFRLHFCQUFxQjtBQUN2RCxTQUFTQyxjQUFjLFFBQVEsa0JBQWtCO0FBQ2pELFNBQVNDLGVBQWUsUUFBUSxtQkFBbUI7QUE4RG5EO0FEcERBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUNzREEsT0FBTyxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWFBLENBQ3hCQyxLQUFvQixFQUNHO0VEdERyQixJQUFJQyxFQUFFLEVBQUVDLEVBQUUsRUFBRUMsRUFBRTtFQ3VEaEIsSUFBTUMsTUFBTSxHQUFHbkIsU0FBUyxDQUFDLE9BQU8sQ0FBQztFQUNqQyxJQUFBb0IsZ0JBQUEsR0ErQklMLEtBQUssQ0E5QlBNLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHLEVBQUUsR0FBQUEsZ0JBQUE7SUFBQUUsZ0JBQUEsR0E4QlpQLEtBQUssQ0E3QlBRLFNBQVM7SUFBVEEsU0FBUyxHQUFBRCxnQkFBQSxjQUFHaEIsb0JBQW9CLEdBQUFnQixnQkFBQTtJQUFBRSxjQUFBLEdBNkI5QlQsS0FBSyxDQTVCUFUsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBR2pCLHFCQUFxQixHQUFBaUIsY0FBQTtJQUFBRSxXQUFBLEdBNEI3QlgsS0FBSyxDQTNCUFksSUFBSTtJQUFKQSxJQUFJLEdBQUFELFdBQUEsY0FBR2xCLGtCQUFrQixHQUFBa0IsV0FBQTtJQUN6QkUsS0FBSyxHQTBCSGIsS0FBSyxDQTFCUGEsS0FBSztJQUNMQyxPQUFPLEdBeUJMZCxLQUFLLENBekJQYyxPQUFPO0lBQ1BDLFVBQVUsR0F3QlJmLEtBQUssQ0F4QlBlLFVBQVU7SUFDVkMsTUFBTSxHQXVCSmhCLEtBQUssQ0F2QlBnQixNQUFNO0lBQ05DLEtBQUssR0FzQkhqQixLQUFLLENBdEJQaUIsS0FBSztJQUNMQyxRQUFRLEdBcUJObEIsS0FBSyxDQXJCUGtCLFFBQVE7SUFDQUMsT0FBTyxHQW9CYm5CLEtBQUssQ0FwQlBvQixNQUFNO0lBQ05DLE1BQU0sR0FtQkpyQixLQUFLLENBbkJQcUIsTUFBTTtJQUNOQyxVQUFVLEdBa0JSdEIsS0FBSyxDQWxCUHNCLFVBQVU7SUFDVkMsWUFBWSxHQWlCVnZCLEtBQUssQ0FqQlB1QixZQUFZO0lBQUFDLGNBQUEsR0FpQlZ4QixLQUFLLENBaEJQeUIsT0FBTztJQUFQQSxPQUFPLEdBQUFELGNBQUEsY0FBRyxLQUFLLEdBQUFBLGNBQUE7SUFDZkUsUUFBUSxHQWVOMUIsS0FBSyxDQWZQMEIsUUFBUTtJQUNSQyxrQkFBa0IsR0FjaEIzQixLQUFLLENBZFAyQixrQkFBa0I7SUFDbEJDLFVBQVUsR0FhUjVCLEtBQUssQ0FiUDRCLFVBQVU7SUFDVkMsVUFBVSxHQVlSN0IsS0FBSyxDQVpQNkIsVUFBVTtJQUNWQyxLQUFLLEdBV0g5QixLQUFLLENBWFA4QixLQUFLO0lBQ0xDLFlBQVksR0FVVi9CLEtBQUssQ0FWUCtCLFlBQVk7SUFDWkMsT0FBTyxHQVNMaEMsS0FBSyxDQVRQZ0MsT0FBTztJQUNQQyxNQUFNLEdBUUpqQyxLQUFLLENBUlBpQyxNQUFNO0lBQ05DLFVBQVUsR0FPUmxDLEtBQUssQ0FQUGtDLFVBQVU7SUFDVkMsV0FBVyxHQU1UbkMsS0FBSyxDQU5QbUMsV0FBVztJQUNYQyxVQUFVLEdBS1JwQyxLQUFLLENBTFBvQyxVQUFVO0lBQ1ZDLFNBQVMsR0FJUHJDLEtBQUssQ0FKUHFDLFNBQVM7SUFDVEMsWUFBWSxHQUdWdEMsS0FBSyxDQUhQc0MsWUFBWTtJQUNaQyxRQUFRLEdBRU52QyxLQUFLLENBRlB1QyxRQUFRO0lBQ0xDLElBQUksR0FBQTNFLE1BQUEsQ0FDTG1DLEtBQUssRUEvQkgsQ0FBQSxXQUFBLEVBQUEsV0FBQSxFQUFBLFNBQUEsRUFBQSxNQUFBLEVBQUEsT0FBQSxFQUFBLFNBQUEsRUFBQSxZQUFBLEVBQUEsUUFBQSxFQUFBLE9BQUEsRUFBQSxVQUFBLEVBQUEsUUFBQSxFQUFBLFFBQUEsRUFBQSxZQUFBLEVBQUEsY0FBQSxFQUFBLFNBQUEsRUFBQSxVQUFBLEVBQUEsb0JBQUEsRUFBQSxZQUFBLEVBQUEsWUFBQSxFQUFBLE9BQUEsRUFBQSxjQUFBLEVBQUEsU0FBQSxFQUFBLFFBQUEsRUFBQSxZQUFBLEVBQUEsYUFBQSxFQUFBLFlBQUEsRUFBQSxXQUFBLEVBQUEsY0FBQSxFQUFBLFVBQUEsQ0ErQkwsQ0FBUTtFQUNUO0VBQ0E7RUFDQSxLQUFLbUIsT0FBTztFQUVaLElBQU1zQixHQUFHLEdBQUcxRCxVQUFVLENBQUNPLFdBQVcsQ0FBQztFQUVuQztFQUNBO0VBQ0E7RUFDQSxJQUFNb0QsYUFBYSxHQUNqQixPQUFPakIsT0FBTyxLQUFLLFNBQVMsR0FBRztJQUFFa0IsUUFBUSxFQUFFbEI7RUFBTyxDQUFFLEdBQUdBLE9BQU87RUFDaEUsSUFBTW1CLFNBQVMsR0FBRyxDQUFBM0MsRUFBQSxHQUFBeUMsYUFBYSxDQUFDQyxRQUFRLE1BQUEsSUFBQSxJQUFBMUMsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUksSUFBSTtFQUNoRCxJQUFNNEMsZ0JBQWdCLEdBQ3BCLENBQUEzQyxFQUFBLEdBQUF3QyxhQUFhLENBQUNJLFNBQVMsTUFBQSxJQUFBLElBQUE1QyxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsR0FBSXRCLElBQUEsQ0FBQ08sT0FBTyxFQUFBO0lBQUM0RCxJQUFJLEVBQUMsT0FBTztJQUFDQyxLQUFLLEVBQUU1QyxNQUFNLENBQUNxQjtFQUFPLENBQUEsQ0FBSTtFQUU1RSxJQUFNd0IsU0FBUyxHQUFHbkUsYUFBYSxDQUM3QixVQUFDb0UsTUFBUyxFQUFFQyxLQUFhLEVBQVM7SUQxRjlCLElBQUlsRCxFQUFFO0lDMkZSLE9BQUEsT0FBT2UsTUFBTSxLQUFLLFVBQVUsR0FDeEJBLE1BQU0sQ0FBQ2tDLE1BQU0sQ0FBQyxHQUNkLENBQUFqRCxFQUFBLEdBQUNpRCxNQUFNLENBQUNsQyxNQUFNLEtBQUEsSUFBQSxJQUFOQSxNQUFNLEtBQUEsS0FBQSxDQUFBLEdBQU5BLE1BQU0sR0FBSSxLQUFLLENBQVMsTUFBQSxJQUFBLElBQUFmLEVBQUEsS0FBQSxLQUFBLENBQUEsR0FBQUEsRUFBQSxHQUFJa0QsS0FBSztFRHpGL0MsQ0N5RitDLENBQ2hEO0VBRUQsSUFBTUMsUUFBUSxHQUFHekQsb0JBQW9CLENBQUM7SUFBRW1CLE9BQU8sRUFBUEEsT0FBTztJQUFFQyxVQUFVLEVBQVZBLFVBQVU7SUFBRU8sVUFBVSxFQUFWQSxVQUFVO0lBQUVJLFFBQVEsRUFBUkE7RUFBUSxDQUFFLENBQUM7RUFDcEYsSUFBTTJCLFNBQVMsR0FBR3pELGlCQUFpQixDQUFDO0lBQ2xDMkIsWUFBWSxFQUFaQSxZQUFZO0lBQ1pSLFVBQVUsRUFBVkEsVUFBVTtJQUNWdUMsaUJBQWlCLEVBQUVGLFFBQVEsQ0FBQ0UsaUJBQWlCO0lBQzdDTCxTQUFTLEVBQVRBO0VEMUZBLENDMkZELENBQUM7RUFDRixJQUFNTSxNQUFNLEdBQUcxRCxjQUFjLENBQUM7SUFBRWdDLFVBQVUsRUFBVkEsVUFBVTtJQUFFZCxVQUFVLEVBQVZBLFVBQVU7SUFBRWtDLFNBQVMsRUFBVEE7RUFBUyxDQUFFLENBQUM7RUFFcEUsSUFBTU8sZUFBZSxHQUFHMUQsZUFBZSxDQUFJO0lBQ3pDZ0IsT0FBTyxFQUFQQSxPQUFPO0lBQ1BKLE9BQU8sRUFBUEEsT0FBTztJQUNQRSxJQUFJLEVBQUpBLElBQUk7SUFDSmlCLFVBQVUsRUFBVkEsVUFBVTtJQUNWNEIscUJBQXFCLEVBQUVGLE1BQU0sQ0FBQ0UscUJBQXFCO0lBQ25EQyxhQUFhLEVBQUVILE1BQU0sQ0FBQ0csYUFBYTtJQUNuQ25DLFlBQVksRUFBWkEsWUFBWTtJQUNab0MscUJBQXFCLEVBQUVOLFNBQVMsQ0FBQ00scUJBQXFCO0lBQ3REQyxnQkFBZ0IsRUFBRVAsU0FBUyxDQUFDTyxnQkFBZ0I7SUFDNUNDLGFBQWEsRUFBRVIsU0FBUyxDQUFDUSxhQUFhO0lBQ3RDQyxlQUFlLEVBQUVULFNBQVMsQ0FBQ1MsZUFBZTtJQUMxQ0MsZ0JBQWdCLEVBQUVWLFNBQVMsQ0FBQ1UsZ0JBQWdCO0lBQzVDQyxnQkFBZ0IsRUFBRVgsU0FBUyxDQUFDVyxnQkFBZ0I7SUFDNUNDLE1BQU0sRUFBRWIsUUFBUSxDQUFDYSxNQUFNO0lBQ3ZCQyxTQUFTLEVBQUVkLFFBQVEsQ0FBQ2MsU0FBUztJQUM3QkMsT0FBTyxFQUFFZixRQUFRLENBQUNlLE9BQU87SUFDekJDLFVBQVUsRUFBRWhCLFFBQVEsQ0FBQ2dCLFVBQVU7SUFDL0JuQixTQUFTLEVBQVRBO0VEM0ZBLENDNEZELENBQUM7RUFFRjtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0EsSUFBSSxPQUFPb0IsT0FBTyxLQUFLLFdBQVcsSUFBSSxDQUFBLENBQUFsRSxFQUFBLEdBQUFrRSxPQUFPLENBQUNDLEdBQUcsTUFBQSxJQUFBLElBQUFuRSxFQUFBLEtBQUEsS0FBQSxDQUFBLEdBQUEsS0FBQSxDQUFBLEdBQUFBLEVBQUEsQ0FBRW9FLFFBQVEsTUFBSyxZQUFZLEVBQUU7SUFDNUUsSUFBSSxDQUFBMUMsVUFBVSxLQUFBLElBQUEsSUFBVkEsVUFBVSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFWQSxVQUFVLENBQUUyQyxpQkFBaUIsS0FBSTdDLGtCQUFrQixLQUFLOEMsU0FBUyxFQUFFO01BQ3JFQyxPQUFPLENBQUNDLElBQUksQ0FDVixnTkFBZ04sQ0FDak47SUFDSDtFQUNGO0VBRUEsSUFBTUMsd0JBQXdCLEdBQUc5RixhQUFhLENBQzVDLFVBQUNvRSxNQUFTLEVBQUVDLEtBQWEsRUFBRTBCLE1BQWMsRUFBRUMsUUFBaUIsRUFBSTtJRGhHNUQsSUFBSTdFLEVBQUU7SUNpR1I7SUFDQTtJQUNBLElBQUksQ0FBQTRCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFa0QsYUFBYSxLQUFJLENBQUNsRCxVQUFVLENBQUNrRCxhQUFhLENBQUM3QixNQUFNLENBQUMsRUFBRSxPQUFPLElBQUk7SUFDL0UsT0FDRXRFLElBQUEsQ0FBQ1Esb0JBQW9CLEVBQUE7TUFBQTRGLFFBQUEsRUFDbEIsQ0FBQS9FLEVBQUEsR0FBQTRCLFVBQVUsS0FBQSxJQUFBLElBQVZBLFVBQVUsS0FBQSxLQUFBLENBQUEsR0FBQSxLQUFBLENBQUEsR0FBVkEsVUFBVSxDQUFFMkMsaUJBQWlCLE1BQUEsSUFBQSxJQUFBdkUsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLENBQUE1QixJQUFBLENBQUF3RCxVQUFBLEVBQUdxQixNQUFNLEVBQUVDLEtBQUssRUFBRTBCLE1BQU0sRUFBRUMsUUFBUTtJQUFDLENBQUEsQ0FDNUM7RUFFM0IsQ0FBQyxDQUNGO0VBRUQ7RUFDQSxJQUFNRyxjQUFjLEdBQUduRyxhQUFhLENBQUMsVUFBQ2dHLFFBQWlCLEVBQUU1QixNQUFTLEVBQUk7SUFDcEU7SUFDQTtJQUNBO0lBQ0E7SUFDQSxJQUFNZ0MsU0FBUyxHQUFHakMsU0FBUyxDQUFDQyxNQUFNLEVBQUVFLFFBQVEsQ0FBQ0UsaUJBQWlCLENBQUNoRixPQUFPLENBQUM0RSxNQUFNLENBQUMsQ0FBQztJQUMvRUssTUFBTSxDQUFDNEIsY0FBYyxDQUFDTCxRQUFRLEVBQUU1QixNQUFNLEVBQUVnQyxTQUFTLENBQUM7RUFDcEQsQ0FBQyxDQUFDO0VBRUYsSUFBTUUsZ0JBQWdCLEdBQW9DdkcsT0FBTyxDQUMvRDtJQUFBLE9BQ0VnRCxVQUFVLEdBQ0wzRCxNQUFBLENBQUFtSCxNQUFBLENBQUFuSCxNQUFBLENBQUFtSCxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ0l4RCxVQUFVLENBQUEsRUFBQTtNQUNieUQsZUFBZSxFQUFFL0IsTUFBTSxDQUFDRSxxQkFBcUI7TUFDN0NlLGlCQUFpQixFQUFFM0MsVUFBVSxDQUFDMkMsaUJBQWlCLEdBQzNDSSx3QkFBd0IsR0FDeEJILFNBQVM7TUFDYmMsZ0JBQWdCLEVBQUUsS0FBSztNQUN2QkMsUUFBUSxFQUFFUDtJQUFjLENBQUEsQ0FDRCxHQUN6QlIsU0FBUztFQUFBLEdBQ2YsQ0FBQzVDLFVBQVUsRUFBRTBCLE1BQU0sQ0FBQ0UscUJBQXFCLEVBQUVtQix3QkFBd0IsRUFBRUssY0FBYyxDQUFDLENBQ3JGO0VBRUQsSUFBTVEsa0JBQWtCLEdBQUdyQyxRQUFRLENBQUM5QixVQUFVLEtBQUssS0FBSyxHQUNwRDtJQUFFb0UsT0FBTyxFQUFFLENBQUM7SUFBRUMsUUFBUSxFQUFFO0VBQUUsQ0FBRSxHQUM1QnZDLFFBQVEsQ0FBQzlCLFVBQVU7RUFFdkIsSUFBTXNFLGNBQWMsR0FBY3RFLFVBQVUsS0FBSyxLQUFLLEdBQ3BEMUMsSUFBQSxDQUFBLEtBQUEsRUFBQTtJQUFLMEIsU0FBUyxLQUFBdUYsTUFBQSxDQUFLckYsU0FBUyxnQkFBYTtJQUFBd0UsUUFBQSxFQUN2Q3BHLElBQUEsQ0FBQ00sVUFBVSxFQUFBO01BQ1Q0RyxLQUFLLEVBQUUxQyxRQUFRLENBQUMwQyxLQUFLO01BQ3JCSCxRQUFRLEVBQUVGLGtCQUFrQixDQUFDRSxRQUFRO01BQ3JDRCxPQUFPLEVBQUVELGtCQUFrQixDQUFDQyxPQUFPO01BQ25DaEUsUUFBUSxFQUFFLFNBQVZBLFFBQVFBLENBQUdxRSxRQUFRLEVBQUVDLFlBQVk7UUFBQSxPQUMvQjVDLFFBQVEsQ0FBQzZDLGFBQWEsQ0FBQyxVQUFDQyxpQkFBaUI7VUFBQSxPQUFLaEksTUFBQSxDQUFBbUgsTUFBQSxDQUFBbkgsTUFBQSxDQUFBbUgsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUN6Q2EsaUJBQWlCLENBQUEsRUFBQTtZQUNwQlIsT0FBTyxFQUFFSyxRQUFRO1lBQ2pCSixRQUFRLEVBQUVLO1VBQVksQ0FBQSxDQUFBO1FBQUEsQ0FDdEIsQ0FBQztNQUFBO0lBQUEsQ0FBQTtFQUVMLENBQUEsQ0FDRSxHQUNKLElBQUk7RUFFUixJQUFNRyxnQkFBZ0IsR0FBR25ILE9BQU8sSUFBQTZHLE1BQUEsQ0FDM0JyRixTQUFTLGVBQ1pvQyxTQUFTLE9BQUFpRCxNQUFBLENBQU9yRixTQUFTLHNCQUFtQixFQUM1Q1UsUUFBUSxPQUFBMkUsTUFBQSxDQUFPckYsU0FBUyx1QkFBb0IsQ0FDN0M7RUFFRCxJQUFNNEYsY0FBYyxHQUFHcEgsT0FBTyxDQUM1QnlELEdBQUcsQ0FBQSxDQUFFLEVBQ0xBLEdBQUcsQ0FBQy9CLE9BQU8sQ0FBQyxFQUNaK0IsR0FBRyxDQUFDN0IsSUFBSSxDQUFDLEVBQ1QwQixZQUFZLEtBQUssS0FBSyxJQUFJRyxHQUFHLENBQUMsVUFBVSxDQUFDLEVBQ3pDbkMsU0FBUyxDQUNWO0VBRUQsSUFBTStGLFNBQVMsR0FDYnpELFNBQVMsSUFBSSxDQUFDN0IsVUFBVSxDQUFDdEMsTUFBTSxHQUFHRyxJQUFBLENBQUEsTUFBQSxFQUFBLENBQUEsQ0FBQSxDQUFRLEdBQUdBLElBQUEsQ0FBQ1MsZUFBZSxFQUFBO0lBQUM0QixLQUFLLEVBQUVBO0VBQUssQ0FBQSxDQUFJO0VBRWhGLE9BQU87SUFDTFQsU0FBUyxFQUFUQSxTQUFTO0lBQ1QyRixnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQkMsY0FBYyxFQUFkQSxjQUFjO0lBQ2QzRSxPQUFPLEVBQUVtQixTQUFTO0lBQ2xCQyxnQkFBZ0IsRUFBaEJBLGdCQUFnQjtJQUNoQlcsZUFBZSxFQUFmQSxlQUFlO0lBQ2ZGLGlCQUFpQixFQUFFRixRQUFRLENBQUNFLGlCQUFpQjtJQUM3QzhCLGdCQUFnQixFQUFoQkEsZ0JBQWdCO0lBQ2hCaUIsU0FBUyxFQUFUQSxTQUFTO0lBQ1RDLGdCQUFnQixFQUFBcEksTUFBQSxDQUFBbUgsTUFBQSxDQUFBbkgsTUFBQSxDQUFBbUgsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFPN0MsSUFBSSxDQUFBLEVBQUE7TUFBRTNCLEtBQUssRUFBQTNDLE1BQUEsQ0FBQW1ILE1BQUEsQ0FBQW5ILE1BQUEsQ0FBQW1ILE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFBTzNGLGdCQUFnQixDQUFDa0IsSUFBSSxDQUFDLENBQUEsRUFBS0MsS0FBSztJQUFBLENBQUEsQ0FBSTtJQUM3RTBGLG9CQUFvQixFQUFFO01BQ3BCdkYsTUFBTSxFQUFFQSxNQUF1QztNQUMvQ1csa0JBQWtCLEVBQWxCQSxrQkFBa0I7TUFDbEJDLFVBQVUsRUFBVkEsVUFBVTtNQUNWRSxLQUFLLEVBQUxBLEtBQUs7TUFDTEMsWUFBWSxFQUFaQSxZQUFZO01BQ1pDLE9BQU8sRUFBUEEsT0FBTztNQUNQQyxNQUFNLEVBQU5BLE1BQU07TUFDTkMsVUFBVSxFQUFWQSxVQUFVO01BQ1ZDLFdBQVcsRUFBWEEsV0FBVztNQUNYQyxVQUFVLEVBQVZBLFVBQVU7TUFDVkMsU0FBUyxFQUFUQSxTQUFTO01BQ1RDLFlBQVksRUFBWkEsWUFBWTtNQUNaakIsTUFBTSxFQUFOQSxNQUFNO01BQ05rQixRQUFRLEVBQVJBO0lEL0lFLENDZ0pIO0lBQ0RxRCxjQUFjLEVBQWRBO0VEL0lBLENDZ0pEO0FBQ0gsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL2NvcmUvdXNlVGFibGVTZXR1cC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCBjbGFzc25hbWVzLCB7IGpvaW5DbHMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jbGFzc25hbWVzJztcbmltcG9ydCB7IHVzZUxvY2FsZSB9IGZyb20gJy4uLy4uL0NvbmZpZ1Byb3ZpZGVyJztcbmltcG9ydCB7IFBhZ2luYXRpb24gfSBmcm9tICcuLi8uLi9QYWdpbmF0aW9uJztcbmltcG9ydCB7IFNwaW5uZXIgfSBmcm9tICcuLi8uLi9TcGlubmVyJztcbmltcG9ydCB7IEV4cGFuZGVkUm93Q29udGFpbmVyIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0V4cGFuZGVkUm93Q29udGFpbmVyJztcbmltcG9ydCB7IFRhYmxlRW1wdHlTdGF0ZSB9IGZyb20gJy4uL3JlbmRlcmVycy9FbXB0eVN0YXRlJztcbmltcG9ydCB7IFRBQkxFX0JMT0NLLCBUQUJMRV9ERUZBVUxUX1BSRUZJWCwgVEFCTEVfREVGQVVMVF9WQVJJQU5ULCB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBUQUJMRV9ERUZBVUxUX1NJWkUsIHRhYmxlU2l6ZUNzc1ZhcnMgfSBmcm9tICcuLi9zaXplJztcbmltcG9ydCB7IHVzZVRhYmxlRGF0YVBpcGVsaW5lIH0gZnJvbSAnLi91c2VUYWJsZURhdGFQaXBlbGluZSc7XG5pbXBvcnQgeyB1c2VUYWJsZVNlbGVjdGlvbiB9IGZyb20gJy4vdXNlVGFibGVTZWxlY3Rpb24nO1xuaW1wb3J0IHsgdXNlVGFibGVFeHBhbmQgfSBmcm9tICcuL3VzZVRhYmxlRXhwYW5kJztcbmltcG9ydCB7IHVzZVRhYmxlQ29sdW1ucyB9IGZyb20gJy4vdXNlVGFibGVDb2x1bW5zJztcbi8qKlxuICogQ2VudHJhbGlzZXMgdGhlIHdpcmluZyBzaGFyZWQgYnkgYFRhYmxlYCBhbmQgYFZpcnR1YWxUYWJsZWA6XG4gKiAgLSBkZXN0cnVjdHVyZSBwcm9wc1xuICogIC0gcmVzb2x2ZSByb3cga2V5XG4gKiAgLSBydW4gcGlwZWxpbmUgLyBzZWxlY3Rpb24gLyBleHBhbmQgLyBjb2x1bW4gdHJhbnNmb3Jtc1xuICogIC0gYnVpbGQga2VybmVsLXJlYWR5IHByb3BzXG4gKiAgLSBzcGxpdCBvZmYgcGFzcy10aHJvdWdoIEhUTUwgYXR0cmlidXRlcyBzbyB0aGV5IGNhbiBsYW5kIG9uIHRoZSBvdXRlciB3cmFwcGVyXG4gKiAgICBkaXYgKGluc3RlYWQgb2YgYmVpbmcgc3ByZWFkIHVudHlwZWQgaW50byB0aGUga2VybmVsIHZpYSBgcmVzdCBhcyBvYmplY3RgKS5cbiAqL1xuZXhwb3J0IGNvbnN0IHVzZVRhYmxlU2V0dXAgPSAocHJvcHMpID0+IHtcbiAgICB2YXIgX2EsIF9iLCBfYztcbiAgICBjb25zdCBsb2NhbGUgPSB1c2VMb2NhbGUoJ1RhYmxlJyk7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gVEFCTEVfREVGQVVMVF9QUkVGSVgsIHZhcmlhbnQgPSBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIHNpemUgPSBUQUJMRV9ERUZBVUxUX1NJWkUsIHN0eWxlLCBjb2x1bW5zLCBkYXRhU291cmNlLCByb3dLZXksIGVtcHR5LCBib3JkZXJlZCwgc2Nyb2xsOiBfc2Nyb2xsLCBzdGlja3ksIHBhZ2luYXRpb24sIHJvd1NlbGVjdGlvbiwgbG9hZGluZyA9IGZhbHNlLCBvbkNoYW5nZSwgY2hpbGRyZW5Db2x1bW5OYW1lLCBpbmRlbnRTaXplLCBleHBhbmRhYmxlLCBvblJvdywgcm93Q2xhc3NOYW1lLCBzdW1tYXJ5LCBmb290ZXIsIHNob3dIZWFkZXIsIHRhYmxlTGF5b3V0LCBjb21wb25lbnRzLCBkaXJlY3Rpb24sIHJvd0hvdmVyYWJsZSwgb25TY3JvbGwgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJwcmVmaXhDbHNcIiwgXCJ2YXJpYW50XCIsIFwic2l6ZVwiLCBcInN0eWxlXCIsIFwiY29sdW1uc1wiLCBcImRhdGFTb3VyY2VcIiwgXCJyb3dLZXlcIiwgXCJlbXB0eVwiLCBcImJvcmRlcmVkXCIsIFwic2Nyb2xsXCIsIFwic3RpY2t5XCIsIFwicGFnaW5hdGlvblwiLCBcInJvd1NlbGVjdGlvblwiLCBcImxvYWRpbmdcIiwgXCJvbkNoYW5nZVwiLCBcImNoaWxkcmVuQ29sdW1uTmFtZVwiLCBcImluZGVudFNpemVcIiwgXCJleHBhbmRhYmxlXCIsIFwib25Sb3dcIiwgXCJyb3dDbGFzc05hbWVcIiwgXCJzdW1tYXJ5XCIsIFwiZm9vdGVyXCIsIFwic2hvd0hlYWRlclwiLCBcInRhYmxlTGF5b3V0XCIsIFwiY29tcG9uZW50c1wiLCBcImRpcmVjdGlvblwiLCBcInJvd0hvdmVyYWJsZVwiLCBcIm9uU2Nyb2xsXCJdKTtcbiAgICAvLyBQdWxsZWQgb3V0IG9mIGByZXN0YCBzbyBpdCBkb2Vzbid0IGxhbmQgb24gdGhlIHdyYXBwZXIgZGl2OyBlYWNoIGVudHJ5IHBvaW50XG4gICAgLy8gZm9yd2FyZHMgaXRzIG93biBgc2Nyb2xsYCB0byB0aGUga2VybmVsIChzZWUgRm9yd2FyZGVkS2VybmVsUHJvcHMgbm90ZSkuXG4gICAgdm9pZCBfc2Nyb2xsO1xuICAgIGNvbnN0IGNscyA9IGNsYXNzbmFtZXMoVEFCTEVfQkxPQ0spO1xuICAgIC8vIGBsb2FkaW5nYCBhY2NlcHRzIGEgYm9vbGVhbiBvciBhbiBvYmplY3Qgb3ZlcnJpZGUuIFRoZSBvYmplY3QgZm9ybSBkZWZhdWx0c1xuICAgIC8vIGBzcGlubmluZ2AgdG8gdHJ1ZSAocGFzc2luZyBhIGNvbmZpZyBpbXBsaWVzIGludGVudCB0byBzaG93IHRoZSBvdmVybGF5KSBhbmRcbiAgICAvLyBmYWxscyBiYWNrIHRvIHRoZSBicmFuZCBTcGlubmVyIHdoZW4gbm8gY3VzdG9tIGBpbmRpY2F0b3JgIGlzIHN1cHBsaWVkLlxuICAgIGNvbnN0IGxvYWRpbmdDb25maWcgPSB0eXBlb2YgbG9hZGluZyA9PT0gJ2Jvb2xlYW4nID8geyBzcGlubmluZzogbG9hZGluZyB9IDogbG9hZGluZztcbiAgICBjb25zdCBpc0xvYWRpbmcgPSAoX2EgPSBsb2FkaW5nQ29uZmlnLnNwaW5uaW5nKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiB0cnVlO1xuICAgIGNvbnN0IGxvYWRpbmdJbmRpY2F0b3IgPSAoX2IgPSBsb2FkaW5nQ29uZmlnLmluZGljYXRvcikgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogX2pzeChTcGlubmVyLCB7IHR5cGU6IFwiYnJhbmRcIiwgdGl0bGU6IGxvY2FsZS5sb2FkaW5nIH0pO1xuICAgIGNvbnN0IGdldFJvd0tleSA9IHVzZU1lbW9pemVkRm4oKHJlY29yZCwgaW5kZXgpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gdHlwZW9mIHJvd0tleSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyByb3dLZXkocmVjb3JkKVxuICAgICAgICAgICAgOiAoX2EgPSByZWNvcmRbcm93S2V5ICE9PSBudWxsICYmIHJvd0tleSAhPT0gdm9pZCAwID8gcm93S2V5IDogJ2tleSddKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleDtcbiAgICB9KTtcbiAgICBjb25zdCBwaXBlbGluZSA9IHVzZVRhYmxlRGF0YVBpcGVsaW5lKHsgY29sdW1ucywgZGF0YVNvdXJjZSwgcGFnaW5hdGlvbiwgb25DaGFuZ2UgfSk7XG4gICAgY29uc3Qgc2VsZWN0aW9uID0gdXNlVGFibGVTZWxlY3Rpb24oe1xuICAgICAgICByb3dTZWxlY3Rpb24sXG4gICAgICAgIGRhdGFTb3VyY2UsXG4gICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBwaXBlbGluZS5jdXJyZW50RGF0YVNvdXJjZSxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIH0pO1xuICAgIGNvbnN0IGV4cGFuZCA9IHVzZVRhYmxlRXhwYW5kKHsgZXhwYW5kYWJsZSwgZGF0YVNvdXJjZSwgZ2V0Um93S2V5IH0pO1xuICAgIGNvbnN0IHJlbmRlcmVkQ29sdW1ucyA9IHVzZVRhYmxlQ29sdW1ucyh7XG4gICAgICAgIGNvbHVtbnMsXG4gICAgICAgIHZhcmlhbnQsXG4gICAgICAgIHNpemUsXG4gICAgICAgIGV4cGFuZGFibGUsXG4gICAgICAgIG1lcmdlZEV4cGFuZGVkUm93S2V5czogZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cyxcbiAgICAgICAgdHJpZ2dlckV4cGFuZDogZXhwYW5kLnRyaWdnZXJFeHBhbmQsXG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgbWVyZ2VkU2VsZWN0ZWRSb3dLZXlzOiBzZWxlY3Rpb24ubWVyZ2VkU2VsZWN0ZWRSb3dLZXlzLFxuICAgICAgICBjaGVja2JveFByb3BzTWFwOiBzZWxlY3Rpb24uY2hlY2tib3hQcm9wc01hcCxcbiAgICAgICAgaXNBbGxTZWxlY3RlZDogc2VsZWN0aW9uLmlzQWxsU2VsZWN0ZWQsXG4gICAgICAgIGlzSW5kZXRlcm1pbmF0ZTogc2VsZWN0aW9uLmlzSW5kZXRlcm1pbmF0ZSxcbiAgICAgICAgdHJpZ2dlclNlbGVjdGlvbjogc2VsZWN0aW9uLnRyaWdnZXJTZWxlY3Rpb24sXG4gICAgICAgIHRyaWdnZXJTZWxlY3RBbGw6IHNlbGVjdGlvbi50cmlnZ2VyU2VsZWN0QWxsLFxuICAgICAgICBzb3J0ZXI6IHBpcGVsaW5lLnNvcnRlcixcbiAgICAgICAgc2V0U29ydGVyOiBwaXBlbGluZS5zZXRTb3J0ZXIsXG4gICAgICAgIGZpbHRlcnM6IHBpcGVsaW5lLmZpbHRlcnMsXG4gICAgICAgIHNldEZpbHRlcnM6IHBpcGVsaW5lLnNldEZpbHRlcnMsXG4gICAgICAgIGdldFJvd0tleSxcbiAgICB9KTtcbiAgICAvLyBEZXYtb25seSB3YXJuaW5nOiBtaXhpbmcgcm93LWV4cGFuc2lvbiB3aXRoIHRyZWUtZGF0YSAoY2hpbGRyZW5Db2x1bW5OYW1lKVxuICAgIC8vIHByb2R1Y2VzIHR3byBjaGV2cm9ucyBwZXIgcm93ICh0aGUgbGVmdG1vc3QgX19leHBhbmRfXyBjb2x1bW4gZnJvbSB0aGUgd3JhcHBlclxuICAgIC8vIHBsdXMgdGhlIGtlcm5lbCdzIHBlci1pbmRlbnQgbmVzdCBleHBhbmQpLiByYy10YWJsZSBoYXMgdGhlIHNhbWUgZ2FwO1xuICAgIC8vIHBpY2sgb25lIG1vZGUgYXQgYSB0aW1lLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bmRlZlxuICAgIGlmICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgJiYgKChfYyA9IHByb2Nlc3MuZW52KSA9PT0gbnVsbCB8fCBfYyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2MuTk9ERV9FTlYpICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgICAgaWYgKChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXIpICYmIGNoaWxkcmVuQ29sdW1uTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBjb25zb2xlLndhcm4oJ1tjb21wb25lbnRzLXVpIFRhYmxlXSBDb21iaW5pbmcgYGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXJgIHdpdGggYGNoaWxkcmVuQ29sdW1uTmFtZWAgaXMgbm90IHN1cHBvcnRlZCDigJQgdGhlIGxlZnRtb3N0IGV4cGFuZCBjb2x1bW4gd2lsbCByZW5kZXIgYWxvbmdzaWRlIHRoZSBuZXN0ZWQgdHJlZSBleHBhbmRlci4gVXNlIG9uZSBtb2RlIGF0IGEgdGltZS4nKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBjb25zdCB3cmFwcGVkRXhwYW5kZWRSb3dSZW5kZXIgPSB1c2VNZW1vaXplZEZuKChyZWNvcmQsIGluZGV4LCBpbmRlbnQsIGV4cGFuZGVkKSA9PiB7XG4gICAgICAgIHZhciBfYTtcbiAgICAgICAgLy8gSG9ub3IgYHJvd0V4cGFuZGFibGVgOiBldmVuIGlmIGEgbm9uLWV4cGFuZGFibGUgcm93J3Mga2V5IHNuZWFrcyBpbnRvXG4gICAgICAgIC8vIGBleHBhbmRlZFJvd0tleXNgLCByZWZ1c2UgdG8gcmVuZGVyIGl0cyBleHBhbnNpb24gY29udGVudC5cbiAgICAgICAgaWYgKChleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUucm93RXhwYW5kYWJsZSkgJiYgIWV4cGFuZGFibGUucm93RXhwYW5kYWJsZShyZWNvcmQpKVxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIHJldHVybiAoX2pzeChFeHBhbmRlZFJvd0NvbnRhaW5lciwgeyBjaGlsZHJlbjogKF9hID0gZXhwYW5kYWJsZSA9PT0gbnVsbCB8fCBleHBhbmRhYmxlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBleHBhbmRhYmxlLmV4cGFuZGVkUm93UmVuZGVyKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChleHBhbmRhYmxlLCByZWNvcmQsIGluZGV4LCBpbmRlbnQsIGV4cGFuZGVkKSB9KSk7XG4gICAgfSk7XG4gICAgLy8gV2lyZSBrZXJuZWwncyBvbkV4cGFuZCAodHJpZ2dlcmVkIGJ5IGV4cGFuZFJvd0J5Q2xpY2spIHRvIG91ciBzdGF0ZS5cbiAgICBjb25zdCBrZXJuZWxPbkV4cGFuZCA9IHVzZU1lbW9pemVkRm4oKGV4cGFuZGVkLCByZWNvcmQpID0+IHtcbiAgICAgICAgLy8gVGhlIGtlcm5lbCBwYXNzZXMgYSByZWNvcmQgZnJvbSBgY3VycmVudERhdGFTb3VyY2VgIChwb3N0IHNvcnQvZmlsdGVyL3BhZ2luYXRlKS5cbiAgICAgICAgLy8gTG9va2luZyBpdCB1cCBhZ2FpbnN0IHRoZSByYXcgYGRhdGFTb3VyY2VgIHJldHVybnMgLTEgd2hlbiB0aGUgY29uc3VtZXJcbiAgICAgICAgLy8gcmVjcmVhdGVzIHRoZSBhcnJheSBlYWNoIHJlbmRlciwgb3IgYSBwb3NpdGlvbmFsbHkgd3JvbmcgaW5kZXggYWZ0ZXIgc29ydC5cbiAgICAgICAgLy8gVXNlIGBjdXJyZW50RGF0YVNvdXJjZWAgc28gdGhlIGluZGV4IG1hdGNoZXMgd2hhdCB0aGUga2VybmVsIGFjdHVhbGx5IHNlZXMuXG4gICAgICAgIGNvbnN0IHJlY29yZEtleSA9IGdldFJvd0tleShyZWNvcmQsIHBpcGVsaW5lLmN1cnJlbnREYXRhU291cmNlLmluZGV4T2YocmVjb3JkKSk7XG4gICAgICAgIGV4cGFuZC5vbktlcm5lbEV4cGFuZChleHBhbmRlZCwgcmVjb3JkLCByZWNvcmRLZXkpO1xuICAgIH0pO1xuICAgIGNvbnN0IG1lcmdlZEV4cGFuZGFibGUgPSB1c2VNZW1vKCgpID0+IGV4cGFuZGFibGVcbiAgICAgICAgPyBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGV4cGFuZGFibGUpLCB7IGV4cGFuZGVkUm93S2V5czogZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgZXhwYW5kZWRSb3dSZW5kZXI6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXJcbiAgICAgICAgICAgICAgICA/IHdyYXBwZWRFeHBhbmRlZFJvd1JlbmRlclxuICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLCBzaG93RXhwYW5kQ29sdW1uOiBmYWxzZSwgb25FeHBhbmQ6IGtlcm5lbE9uRXhwYW5kIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLCBbZXhwYW5kYWJsZSwgZXhwYW5kLm1lcmdlZEV4cGFuZGVkUm93S2V5cywgd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyLCBrZXJuZWxPbkV4cGFuZF0pO1xuICAgIGNvbnN0IHJlc29sdmVkUGFnaW5hdGlvbiA9IHBpcGVsaW5lLnBhZ2luYXRpb24gPT09IGZhbHNlXG4gICAgICAgID8geyBjdXJyZW50OiAxLCBwYWdlU2l6ZTogMTAgfVxuICAgICAgICA6IHBpcGVsaW5lLnBhZ2luYXRpb247XG4gICAgY29uc3QgcGFnaW5hdGlvbk5vZGUgPSBwYWdpbmF0aW9uICE9PSBmYWxzZSA/IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtwcmVmaXhDbHN9LXBhZ2luYXRpb25gLCBjaGlsZHJlbjogX2pzeChQYWdpbmF0aW9uLCB7IHRvdGFsOiBwaXBlbGluZS50b3RhbCwgcGFnZVNpemU6IHJlc29sdmVkUGFnaW5hdGlvbi5wYWdlU2l6ZSwgY3VycmVudDogcmVzb2x2ZWRQYWdpbmF0aW9uLmN1cnJlbnQsIG9uQ2hhbmdlOiAobmV4dFBhZ2UsIG5leHRQYWdlU2l6ZSkgPT4gcGlwZWxpbmUuc2V0UGFnaW5hdGlvbigoY3VycmVudFBhZ2luYXRpb24pID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIGN1cnJlbnRQYWdpbmF0aW9uKSwgeyBjdXJyZW50OiBuZXh0UGFnZSwgcGFnZVNpemU6IG5leHRQYWdlU2l6ZSB9KSkpIH0pIH0pKSA6IG51bGw7XG4gICAgY29uc3Qgd3JhcHBlckNsYXNzTmFtZSA9IGpvaW5DbHMoYCR7cHJlZml4Q2xzfS13cmFwcGVyYCwgaXNMb2FkaW5nICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tbG9hZGluZ2AsIGJvcmRlcmVkICYmIGAke3ByZWZpeENsc30td3JhcHBlci0tYm9yZGVyZWRgKTtcbiAgICBjb25zdCB0YWJsZUNsYXNzTmFtZSA9IGpvaW5DbHMoY2xzKCksIGNscyh2YXJpYW50KSwgY2xzKHNpemUpLCByb3dIb3ZlcmFibGUgPT09IGZhbHNlICYmIGNscygnbm8taG92ZXInKSwgY2xhc3NOYW1lKTtcbiAgICBjb25zdCBlbXB0eVRleHQgPSBpc0xvYWRpbmcgJiYgIWRhdGFTb3VyY2UubGVuZ3RoID8gX2pzeChcInNwYW5cIiwge30pIDogX2pzeChUYWJsZUVtcHR5U3RhdGUsIHsgZW1wdHk6IGVtcHR5IH0pO1xuICAgIHJldHVybiB7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAgd3JhcHBlckNsYXNzTmFtZSxcbiAgICAgICAgdGFibGVDbGFzc05hbWUsXG4gICAgICAgIGxvYWRpbmc6IGlzTG9hZGluZyxcbiAgICAgICAgbG9hZGluZ0luZGljYXRvcixcbiAgICAgICAgcmVuZGVyZWRDb2x1bW5zLFxuICAgICAgICBjdXJyZW50RGF0YVNvdXJjZTogcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UsXG4gICAgICAgIG1lcmdlZEV4cGFuZGFibGUsXG4gICAgICAgIGVtcHR5VGV4dCxcbiAgICAgICAgd3JhcHBlckh0bWxQcm9wczogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCByZXN0KSwgeyBzdHlsZTogT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCB0YWJsZVNpemVDc3NWYXJzKHNpemUpKSwgc3R5bGUpIH0pLFxuICAgICAgICBmb3J3YXJkZWRLZXJuZWxQcm9wczoge1xuICAgICAgICAgICAgcm93S2V5OiByb3dLZXksXG4gICAgICAgICAgICBjaGlsZHJlbkNvbHVtbk5hbWUsXG4gICAgICAgICAgICBpbmRlbnRTaXplLFxuICAgICAgICAgICAgb25Sb3csXG4gICAgICAgICAgICByb3dDbGFzc05hbWUsXG4gICAgICAgICAgICBzdW1tYXJ5LFxuICAgICAgICAgICAgZm9vdGVyLFxuICAgICAgICAgICAgc2hvd0hlYWRlcixcbiAgICAgICAgICAgIHRhYmxlTGF5b3V0LFxuICAgICAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgICAgIGRpcmVjdGlvbixcbiAgICAgICAgICAgIHJvd0hvdmVyYWJsZSxcbiAgICAgICAgICAgIHN0aWNreSxcbiAgICAgICAgICAgIG9uU2Nyb2xsLFxuICAgICAgICB9LFxuICAgICAgICBwYWdpbmF0aW9uTm9kZSxcbiAgICB9O1xufTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
223
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9jb3JlL3VzZVRhYmxlU2V0dXAudHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsInVzZU1lbW8iLCJ1c2VNZW1vaXplZEZuIiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJ1c2VMb2NhbGUiLCJQYWdpbmF0aW9uIiwiU3Bpbm5lciIsIkV4cGFuZGVkUm93Q29udGFpbmVyIiwiVGFibGVFbXB0eVN0YXRlIiwiVEFCTEVfQkxPQ0siLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIlRBQkxFX0RFRkFVTFRfVkFSSUFOVCIsIlRBQkxFX0RFRkFVTFRfU0laRSIsInRhYmxlU2l6ZUNzc1ZhcnMiLCJ1c2VUYWJsZURhdGFQaXBlbGluZSIsInVzZVRhYmxlU2VsZWN0aW9uIiwidXNlVGFibGVFeHBhbmQiLCJ1c2VUYWJsZUNvbHVtbnMiLCJmbGF0dGVuQ29sdW1ucyIsInVzZVRhYmxlU2V0dXAiLCJwcm9wcyIsIl9hIiwiX2IiLCJfYyIsImxvY2FsZSIsIl9wcm9wcyRjbGFzc05hbWUiLCJjbGFzc05hbWUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwiX3Byb3BzJHZhcmlhbnQiLCJ2YXJpYW50IiwiX3Byb3BzJHNpemUiLCJzaXplIiwic3R5bGUiLCJjb2x1bW5zIiwiZGF0YVNvdXJjZSIsInJvd0tleSIsImVtcHR5IiwiYm9yZGVyZWQiLCJfc2Nyb2xsIiwic2Nyb2xsIiwic3RpY2t5IiwicGFnaW5hdGlvbiIsInJvd1NlbGVjdGlvbiIsIl9wcm9wcyRsb2FkaW5nIiwibG9hZGluZyIsIm9uQ2hhbmdlIiwiY2hpbGRyZW5Db2x1bW5OYW1lIiwiaW5kZW50U2l6ZSIsImV4cGFuZGFibGUiLCJvblJvdyIsInJvd0NsYXNzTmFtZSIsInN1bW1hcnkiLCJmb290ZXIiLCJzaG93SGVhZGVyIiwidGFibGVMYXlvdXQiLCJjb21wb25lbnRzIiwiZGlyZWN0aW9uIiwicm93SG92ZXJhYmxlIiwib25TY3JvbGwiLCJyZXN0IiwiY2xzIiwibG9hZGluZ0NvbmZpZyIsInNwaW5uaW5nIiwiaXNMb2FkaW5nIiwibG9hZGluZ0luZGljYXRvciIsImluZGljYXRvciIsInR5cGUiLCJ0aXRsZSIsImdldFJvd0tleSIsInJlY29yZCIsImluZGV4IiwicGlwZWxpbmUiLCJzZWxlY3Rpb24iLCJjdXJyZW50RGF0YVNvdXJjZSIsImV4cGFuZCIsInJlbmRlcmVkQ29sdW1ucyIsIm1lcmdlZEV4cGFuZGVkUm93S2V5cyIsInRyaWdnZXJFeHBhbmQiLCJtZXJnZWRTZWxlY3RlZFJvd0tleXMiLCJjaGVja2JveFByb3BzTWFwIiwiaXNBbGxTZWxlY3RlZCIsImlzSW5kZXRlcm1pbmF0ZSIsInRyaWdnZXJTZWxlY3Rpb24iLCJ0cmlnZ2VyU2VsZWN0QWxsIiwic29ydGVyIiwic2V0U29ydGVyIiwiZmlsdGVycyIsInNldEZpbHRlcnMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJleHBhbmRlZFJvd1JlbmRlciIsInVuZGVmaW5lZCIsImNvbnNvbGUiLCJ3YXJuIiwid3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyIiwiaW5kZW50IiwiZXhwYW5kZWQiLCJyb3dFeHBhbmRhYmxlIiwiY2hpbGRyZW4iLCJrZXJuZWxPbkV4cGFuZCIsInJlY29yZEtleSIsIm9uS2VybmVsRXhwYW5kIiwibWVyZ2VkRXhwYW5kYWJsZSIsImFzc2lnbiIsImV4cGFuZGVkUm93S2V5cyIsInNob3dFeHBhbmRDb2x1bW4iLCJvbkV4cGFuZCIsInJlc29sdmVkUGFnaW5hdGlvbiIsImN1cnJlbnQiLCJwYWdlU2l6ZSIsInBhZ2luYXRpb25Ob2RlIiwiY29uY2F0IiwidG90YWwiLCJuZXh0UGFnZSIsIm5leHRQYWdlU2l6ZSIsInNldFBhZ2luYXRpb24iLCJjdXJyZW50UGFnaW5hdGlvbiIsIndyYXBwZXJDbGFzc05hbWUiLCJ0YWJsZUNsYXNzTmFtZSIsImVtcHR5VGV4dCIsIndyYXBwZXJIdG1sUHJvcHMiLCJmb3J3YXJkZWRLZXJuZWxQcm9wcyIsInNvbWUiLCJjb2x1bW4iLCJlbGxpcHNpcyJdLCJtYXBwaW5ncyI6IkFBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDLElBQUlGLENBQUMsQ0FBQ08sT0FBTyxDQUFDTCxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQy9FRCxDQUFDLENBQUNDLENBQUMsQ0FBQyxHQUFHSCxDQUFDLENBQUNHLENBQUMsQ0FBQztFQUNmLElBQUlILENBQUMsSUFBSSxJQUFJLElBQUksT0FBT0ksTUFBTSxDQUFDSyxxQkFBcUIsS0FBSyxVQUFVLEVBQy9ELEtBQUssSUFBSUMsQ0FBQyxHQUFHLENBQUMsRUFBRVAsQ0FBQyxHQUFHQyxNQUFNLENBQUNLLHFCQUFxQixDQUFDVCxDQUFDLENBQUMsRUFBRVUsQ0FBQyxHQUFHUCxDQUFDLENBQUNRLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7SUFDcEUsSUFBSVQsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQ08sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUlOLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDTyxvQkFBb0IsQ0FBQ0wsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FBQ08sQ0FBQyxD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SUUsQ0NnSkg7SUFDRHFELGNBQWMsRUFBZEE7RUQvSUEsQ0NnSkQ7QUFDSCxDQUFDIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvY29yZS91c2VUYWJsZVNldHVwLmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdXNlTWVtb2l6ZWRGbiBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZU1lbW9pemVkRm4nO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vLi4vQ29uZmlnUHJvdmlkZXInO1xuaW1wb3J0IHsgUGFnaW5hdGlvbiB9IGZyb20gJy4uLy4uL1BhZ2luYXRpb24nO1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uLy4uL1NwaW5uZXInO1xuaW1wb3J0IHsgRXhwYW5kZWRSb3dDb250YWluZXIgfSBmcm9tICcuLi9yZW5kZXJlcnMvRXhwYW5kZWRSb3dDb250YWluZXInO1xuaW1wb3J0IHsgVGFibGVFbXB0eVN0YXRlIH0gZnJvbSAnLi4vcmVuZGVyZXJzL0VtcHR5U3RhdGUnO1xuaW1wb3J0IHsgVEFCTEVfQkxPQ0ssIFRBQkxFX0RFRkFVTFRfUFJFRklYLCBUQUJMRV9ERUZBVUxUX1ZBUklBTlQsIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IFRBQkxFX0RFRkFVTFRfU0laRSwgdGFibGVTaXplQ3NzVmFycyB9IGZyb20gJy4uL3NpemUnO1xuaW1wb3J0IHsgdXNlVGFibGVEYXRhUGlwZWxpbmUgfSBmcm9tICcuL3VzZVRhYmxlRGF0YVBpcGVsaW5lJztcbmltcG9ydCB7IHVzZVRhYmxlU2VsZWN0aW9uIH0gZnJvbSAnLi91c2VUYWJsZVNlbGVjdGlvbic7XG5pbXBvcnQgeyB1c2VUYWJsZUV4cGFuZCB9IGZyb20gJy4vdXNlVGFibGVFeHBhbmQnO1xuaW1wb3J0IHsgdXNlVGFibGVDb2x1bW5zIH0gZnJvbSAnLi91c2VUYWJsZUNvbHVtbnMnO1xuaW1wb3J0IHsgZmxhdHRlbkNvbHVtbnMgfSBmcm9tICcuL2NvbHVtblV0aWwnO1xuLyoqXG4gKiBDZW50cmFsaXNlcyB0aGUgd2lyaW5nIHNoYXJlZCBieSBgVGFibGVgIGFuZCBgVmlydHVhbFRhYmxlYDpcbiAqICAtIGRlc3RydWN0dXJlIHByb3BzXG4gKiAgLSByZXNvbHZlIHJvdyBrZXlcbiAqICAtIHJ1biBwaXBlbGluZSAvIHNlbGVjdGlvbiAvIGV4cGFuZCAvIGNvbHVtbiB0cmFuc2Zvcm1zXG4gKiAgLSBidWlsZCBrZXJuZWwtcmVhZHkgcHJvcHNcbiAqICAtIHNwbGl0IG9mZiBwYXNzLXRocm91Z2ggSFRNTCBhdHRyaWJ1dGVzIHNvIHRoZXkgY2FuIGxhbmQgb24gdGhlIG91dGVyIHdyYXBwZXJcbiAqICAgIGRpdiAoaW5zdGVhZCBvZiBiZWluZyBzcHJlYWQgdW50eXBlZCBpbnRvIHRoZSBrZXJuZWwgdmlhIGByZXN0IGFzIG9iamVjdGApLlxuICovXG5leHBvcnQgY29uc3QgdXNlVGFibGVTZXR1cCA9IChwcm9wcykgPT4ge1xuICAgIHZhciBfYSwgX2IsIF9jO1xuICAgIGNvbnN0IGxvY2FsZSA9IHVzZUxvY2FsZSgnVGFibGUnKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSBUQUJMRV9ERUZBVUxUX1BSRUZJWCwgdmFyaWFudCA9IFRBQkxFX0RFRkFVTFRfVkFSSUFOVCwgc2l6ZSA9IFRBQkxFX0RFRkFVTFRfU0laRSwgc3R5bGUsIGNvbHVtbnMsIGRhdGFTb3VyY2UsIHJvd0tleSwgZW1wdHksIGJvcmRlcmVkLCBzY3JvbGw6IF9zY3JvbGwsIHN0aWNreSwgcGFnaW5hdGlvbiwgcm93U2VsZWN0aW9uLCBsb2FkaW5nID0gZmFsc2UsIG9uQ2hhbmdlLCBjaGlsZHJlbkNvbHVtbk5hbWUsIGluZGVudFNpemUsIGV4cGFuZGFibGUsIG9uUm93LCByb3dDbGFzc05hbWUsIHN1bW1hcnksIGZvb3Rlciwgc2hvd0hlYWRlciwgdGFibGVMYXlvdXQsIGNvbXBvbmVudHMsIGRpcmVjdGlvbiwgcm93SG92ZXJhYmxlLCBvblNjcm9sbCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcInZhcmlhbnRcIiwgXCJzaXplXCIsIFwic3R5bGVcIiwgXCJjb2x1bW5zXCIsIFwiZGF0YVNvdXJjZVwiLCBcInJvd0tleVwiLCBcImVtcHR5XCIsIFwiYm9yZGVyZWRcIiwgXCJzY3JvbGxcIiwgXCJzdGlja3lcIiwgXCJwYWdpbmF0aW9uXCIsIFwicm93U2VsZWN0aW9uXCIsIFwibG9hZGluZ1wiLCBcIm9uQ2hhbmdlXCIsIFwiY2hpbGRyZW5Db2x1bW5OYW1lXCIsIFwiaW5kZW50U2l6ZVwiLCBcImV4cGFuZGFibGVcIiwgXCJvblJvd1wiLCBcInJvd0NsYXNzTmFtZVwiLCBcInN1bW1hcnlcIiwgXCJmb290ZXJcIiwgXCJzaG93SGVhZGVyXCIsIFwidGFibGVMYXlvdXRcIiwgXCJjb21wb25lbnRzXCIsIFwiZGlyZWN0aW9uXCIsIFwicm93SG92ZXJhYmxlXCIsIFwib25TY3JvbGxcIl0pO1xuICAgIC8vIFB1bGxlZCBvdXQgb2YgYHJlc3RgIHNvIGl0IGRvZXNuJ3QgbGFuZCBvbiB0aGUgd3JhcHBlciBkaXY7IGVhY2ggZW50cnkgcG9pbnRcbiAgICAvLyBmb3J3YXJkcyBpdHMgb3duIGBzY3JvbGxgIHRvIHRoZSBrZXJuZWwgKHNlZSBGb3J3YXJkZWRLZXJuZWxQcm9wcyBub3RlKS5cbiAgICB2b2lkIF9zY3JvbGw7XG4gICAgY29uc3QgY2xzID0gY2xhc3NuYW1lcyhUQUJMRV9CTE9DSyk7XG4gICAgLy8gYGxvYWRpbmdgIGFjY2VwdHMgYSBib29sZWFuIG9yIGFuIG9iamVjdCBvdmVycmlkZS4gVGhlIG9iamVjdCBmb3JtIGRlZmF1bHRzXG4gICAgLy8gYHNwaW5uaW5nYCB0byB0cnVlIChwYXNzaW5nIGEgY29uZmlnIGltcGxpZXMgaW50ZW50IHRvIHNob3cgdGhlIG92ZXJsYXkpIGFuZFxuICAgIC8vIGZhbGxzIGJhY2sgdG8gdGhlIGJyYW5kIFNwaW5uZXIgd2hlbiBubyBjdXN0b20gYGluZGljYXRvcmAgaXMgc3VwcGxpZWQuXG4gICAgY29uc3QgbG9hZGluZ0NvbmZpZyA9IHR5cGVvZiBsb2FkaW5nID09PSAnYm9vbGVhbicgPyB7IHNwaW5uaW5nOiBsb2FkaW5nIH0gOiBsb2FkaW5nO1xuICAgIGNvbnN0IGlzTG9hZGluZyA9IChfYSA9IGxvYWRpbmdDb25maWcuc3Bpbm5pbmcpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IHRydWU7XG4gICAgY29uc3QgbG9hZGluZ0luZGljYXRvciA9IChfYiA9IGxvYWRpbmdDb25maWcuaW5kaWNhdG9yKSAhPT0gbnVsbCAmJiBfYiAhPT0gdm9pZCAwID8gX2IgOiBfanN4KFNwaW5uZXIsIHsgdHlwZTogXCJicmFuZFwiLCB0aXRsZTogbG9jYWxlLmxvYWRpbmcgfSk7XG4gICAgY29uc3QgZ2V0Um93S2V5ID0gdXNlTWVtb2l6ZWRGbigocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygcm93S2V5ID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICA/IHJvd0tleShyZWNvcmQpXG4gICAgICAgICAgICA6IChfYSA9IHJlY29yZFtyb3dLZXkgIT09IG51bGwgJiYgcm93S2V5ICE9PSB2b2lkIDAgPyByb3dLZXkgOiAna2V5J10pICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4O1xuICAgIH0pO1xuICAgIGNvbnN0IHBpcGVsaW5lID0gdXNlVGFibGVEYXRhUGlwZWxpbmUoeyBjb2x1bW5zLCBkYXRhU291cmNlLCBwYWdpbmF0aW9uLCBvbkNoYW5nZSB9KTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB1c2VUYWJsZVNlbGVjdGlvbih7XG4gICAgICAgIHJvd1NlbGVjdGlvbixcbiAgICAgICAgZGF0YVNvdXJjZSxcbiAgICAgICAgY3VycmVudERhdGFTb3VyY2U6IHBpcGVsaW5lLmN1cnJlbnREYXRhU291cmNlLFxuICAgICAgICBnZXRSb3dLZXksXG4gICAgfSk7XG4gICAgY29uc3QgZXhwYW5kID0gdXNlVGFibGVFeHBhbmQoeyBleHBhbmRhYmxlLCBkYXRhU291cmNlLCBnZXRSb3dLZXkgfSk7XG4gICAgY29uc3QgcmVuZGVyZWRDb2x1bW5zID0gdXNlVGFibGVDb2x1bW5zKHtcbiAgICAgICAgY29sdW1ucyxcbiAgICAgICAgdmFyaWFudCxcbiAgICAgICAgc2l6ZSxcbiAgICAgICAgZXhwYW5kYWJsZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kZWRSb3dLZXlzOiBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLFxuICAgICAgICB0cmlnZ2VyRXhwYW5kOiBleHBhbmQudHJpZ2dlckV4cGFuZCxcbiAgICAgICAgcm93U2VsZWN0aW9uLFxuICAgICAgICBtZXJnZWRTZWxlY3RlZFJvd0tleXM6IHNlbGVjdGlvbi5tZXJnZWRTZWxlY3RlZFJvd0tleXMsXG4gICAgICAgIGNoZWNrYm94UHJvcHNNYXA6IHNlbGVjdGlvbi5jaGVja2JveFByb3BzTWFwLFxuICAgICAgICBpc0FsbFNlbGVjdGVkOiBzZWxlY3Rpb24uaXNBbGxTZWxlY3RlZCxcbiAgICAgICAgaXNJbmRldGVybWluYXRlOiBzZWxlY3Rpb24uaXNJbmRldGVybWluYXRlLFxuICAgICAgICB0cmlnZ2VyU2VsZWN0aW9uOiBzZWxlY3Rpb24udHJpZ2dlclNlbGVjdGlvbixcbiAgICAgICAgdHJpZ2dlclNlbGVjdEFsbDogc2VsZWN0aW9uLnRyaWdnZXJTZWxlY3RBbGwsXG4gICAgICAgIHNvcnRlcjogcGlwZWxpbmUuc29ydGVyLFxuICAgICAgICBzZXRTb3J0ZXI6IHBpcGVsaW5lLnNldFNvcnRlcixcbiAgICAgICAgZmlsdGVyczogcGlwZWxpbmUuZmlsdGVycyxcbiAgICAgICAgc2V0RmlsdGVyczogcGlwZWxpbmUuc2V0RmlsdGVycyxcbiAgICAgICAgZ2V0Um93S2V5LFxuICAgIH0pO1xuICAgIC8vIERldi1vbmx5IHdhcm5pbmc6IG1peGluZyByb3ctZXhwYW5zaW9uIHdpdGggdHJlZS1kYXRhIChjaGlsZHJlbkNvbHVtbk5hbWUpXG4gICAgLy8gcHJvZHVjZXMgdHdvIGNoZXZyb25zIHBlciByb3cgKHRoZSBsZWZ0bW9zdCBfX2V4cGFuZF9fIGNvbHVtbiBmcm9tIHRoZSB3cmFwcGVyXG4gICAgLy8gcGx1cyB0aGUga2VybmVsJ3MgcGVyLWluZGVudCBuZXN0IGV4cGFuZCkuIHJjLXRhYmxlIGhhcyB0aGUgc2FtZSBnYXA7XG4gICAgLy8gcGljayBvbmUgbW9kZSBhdCBhIHRpbWUuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXVuZGVmXG4gICAgaWYgKHR5cGVvZiBwcm9jZXNzICE9PSAndW5kZWZpbmVkJyAmJiAoKF9jID0gcHJvY2Vzcy5lbnYpID09PSBudWxsIHx8IF9jID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYy5OT0RFX0VOVikgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoKGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlcikgJiYgY2hpbGRyZW5Db2x1bW5OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignW2NvbXBvbmVudHMtdWkgVGFibGVdIENvbWJpbmluZyBgZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlcmAgd2l0aCBgY2hpbGRyZW5Db2x1bW5OYW1lYCBpcyBub3Qgc3VwcG9ydGVkIOKAlCB0aGUgbGVmdG1vc3QgZXhwYW5kIGNvbHVtbiB3aWxsIHJlbmRlciBhbG9uZ3NpZGUgdGhlIG5lc3RlZCB0cmVlIGV4cGFuZGVyLiBVc2Ugb25lIG1vZGUgYXQgYSB0aW1lLicpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGNvbnN0IHdyYXBwZWRFeHBhbmRlZFJvd1JlbmRlciA9IHVzZU1lbW9pemVkRm4oKHJlY29yZCwgaW5kZXgsIGluZGVudCwgZXhwYW5kZWQpID0+IHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICAvLyBIb25vciBgcm93RXhwYW5kYWJsZWA6IGV2ZW4gaWYgYSBub24tZXhwYW5kYWJsZSByb3cncyBrZXkgc25lYWtzIGludG9cbiAgICAgICAgLy8gYGV4cGFuZGVkUm93S2V5c2AsIHJlZnVzZSB0byByZW5kZXIgaXRzIGV4cGFuc2lvbiBjb250ZW50LlxuICAgICAgICBpZiAoKGV4cGFuZGFibGUgPT09IG51bGwgfHwgZXhwYW5kYWJsZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXhwYW5kYWJsZS5yb3dFeHBhbmRhYmxlKSAmJiAhZXhwYW5kYWJsZS5yb3dFeHBhbmRhYmxlKHJlY29yZCkpXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgcmV0dXJuIChfanN4KEV4cGFuZGVkUm93Q29udGFpbmVyLCB7IGNoaWxkcmVuOiAoX2EgPSBleHBhbmRhYmxlID09PSBudWxsIHx8IGV4cGFuZGFibGUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGV4cGFuZGFibGUuZXhwYW5kZWRSb3dSZW5kZXIpID09PSBudWxsIHx8IF9hID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfYS5jYWxsKGV4cGFuZGFibGUsIHJlY29yZCwgaW5kZXgsIGluZGVudCwgZXhwYW5kZWQpIH0pKTtcbiAgICB9KTtcbiAgICAvLyBXaXJlIGtlcm5lbCdzIG9uRXhwYW5kICh0cmlnZ2VyZWQgYnkgZXhwYW5kUm93QnlDbGljaykgdG8gb3VyIHN0YXRlLlxuICAgIGNvbnN0IGtlcm5lbE9uRXhwYW5kID0gdXNlTWVtb2l6ZWRGbigoZXhwYW5kZWQsIHJlY29yZCkgPT4ge1xuICAgICAgICAvLyBUaGUga2VybmVsIHBhc3NlcyBhIHJlY29yZCBmcm9tIGBjdXJyZW50RGF0YVNvdXJjZWAgKHBvc3Qgc29ydC9maWx0ZXIvcGFnaW5hdGUpLlxuICAgICAgICAvLyBMb29raW5nIGl0IHVwIGFnYWluc3QgdGhlIHJhdyBgZGF0YVNvdXJjZWAgcmV0dXJucyAtMSB3aGVuIHRoZSBjb25zdW1lclxuICAgICAgICAvLyByZWNyZWF0ZXMgdGhlIGFycmF5IGVhY2ggcmVuZGVyLCBvciBhIHBvc2l0aW9uYWxseSB3cm9uZyBpbmRleCBhZnRlciBzb3J0LlxuICAgICAgICAvLyBVc2UgYGN1cnJlbnREYXRhU291cmNlYCBzbyB0aGUgaW5kZXggbWF0Y2hlcyB3aGF0IHRoZSBrZXJuZWwgYWN0dWFsbHkgc2Vlcy5cbiAgICAgICAgY29uc3QgcmVjb3JkS2V5ID0gZ2V0Um93S2V5KHJlY29yZCwgcGlwZWxpbmUuY3VycmVudERhdGFTb3VyY2UuaW5kZXhPZihyZWNvcmQpKTtcbiAgICAgICAgZXhwYW5kLm9uS2VybmVsRXhwYW5kKGV4cGFuZGVkLCByZWNvcmQsIHJlY29yZEtleSk7XG4gICAgfSk7XG4gICAgY29uc3QgbWVyZ2VkRXhwYW5kYWJsZSA9IHVzZU1lbW8oKCkgPT4gZXhwYW5kYWJsZVxuICAgICAgICA/IE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgZXhwYW5kYWJsZSksIHsgZXhwYW5kZWRSb3dLZXlzOiBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCBleHBhbmRlZFJvd1JlbmRlcjogZXhwYW5kYWJsZS5leHBhbmRlZFJvd1JlbmRlclxuICAgICAgICAgICAgICAgID8gd3JhcHBlZEV4cGFuZGVkUm93UmVuZGVyXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQsIHNob3dFeHBhbmRDb2x1bW46IGZhbHNlLCBvbkV4cGFuZDoga2VybmVsT25FeHBhbmQgfSlcbiAgICAgICAgOiB1bmRlZmluZWQsIFtleHBhbmRhYmxlLCBleHBhbmQubWVyZ2VkRXhwYW5kZWRSb3dLZXlzLCB3cmFwcGVkRXhwYW5kZWRSb3dSZW5kZXIsIGtlcm5lbE9uRXhwYW5kXSk7XG4gICAgY29uc3QgcmVzb2x2ZWRQYWdpbmF0aW9uID0gcGlwZWxpbmUucGFnaW5hdGlvbiA9PT0gZmFsc2VcbiAgICAgICAgPyB7IGN1cnJlbnQ6IDEsIHBhZ2VTaXplOiAxMCB9XG4gICAgICAgIDogcGlwZWxpbmUucGFnaW5hdGlvbjtcbiAgICBjb25zdCBwYWdpbmF0aW9uTm9kZSA9IHBhZ2luYXRpb24gIT09IGZhbHNlID8gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGAke3ByZWZpeENsc30tcGFnaW5hdGlvbmAsIGNoaWxkcmVuOiBfanN4KFBhZ2luYXRpb24sIHsgdG90YWw6IHBpcGVsaW5lLnRvdGFsLCBwYWdlU2l6ZTogcmVzb2x2ZWRQYWdpbmF0aW9uLnBhZ2VTaXplLCBjdXJyZW50OiByZXNvbHZlZFBhZ2luYXRpb24uY3VycmVudCwgb25DaGFuZ2U6IChuZXh0UGFnZSwgbmV4dFBhZ2VTaXplKSA9PiBwaXBlbGluZS5zZXRQYWdpbmF0aW9uKChjdXJyZW50UGFnaW5hdGlvbikgPT4gKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgY3VycmVudFBhZ2luYXRpb24pLCB7IGN1cnJlbnQ6IG5leHRQYWdlLCBwYWdlU2l6ZTogbmV4dFBhZ2VTaXplIH0pKSkgfSkgfSkpIDogbnVsbDtcbiAgICBjb25zdCB3cmFwcGVyQ2xhc3NOYW1lID0gam9pbkNscyhgJHtwcmVmaXhDbHN9LXdyYXBwZXJgLCBpc0xvYWRpbmcgJiYgYCR7cHJlZml4Q2xzfS13cmFwcGVyLS1sb2FkaW5nYCwgYm9yZGVyZWQgJiYgYCR7cHJlZml4Q2xzfS13cmFwcGVyLS1ib3JkZXJlZGApO1xuICAgIGNvbnN0IHRhYmxlQ2xhc3NOYW1lID0gam9pbkNscyhjbHMoKSwgY2xzKHZhcmlhbnQpLCBjbHMoc2l6ZSksIHJvd0hvdmVyYWJsZSA9PT0gZmFsc2UgJiYgY2xzKCduby1ob3ZlcicpLCBjbGFzc05hbWUpO1xuICAgIGNvbnN0IGVtcHR5VGV4dCA9IGlzTG9hZGluZyAmJiAhZGF0YVNvdXJjZS5sZW5ndGggPyBfanN4KFwic3BhblwiLCB7fSkgOiBfanN4KFRhYmxlRW1wdHlTdGF0ZSwgeyBlbXB0eTogZW1wdHkgfSk7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJlZml4Q2xzLFxuICAgICAgICB3cmFwcGVyQ2xhc3NOYW1lLFxuICAgICAgICB0YWJsZUNsYXNzTmFtZSxcbiAgICAgICAgbG9hZGluZzogaXNMb2FkaW5nLFxuICAgICAgICBsb2FkaW5nSW5kaWNhdG9yLFxuICAgICAgICByZW5kZXJlZENvbHVtbnMsXG4gICAgICAgIGN1cnJlbnREYXRhU291cmNlOiBwaXBlbGluZS5jdXJyZW50RGF0YVNvdXJjZSxcbiAgICAgICAgbWVyZ2VkRXhwYW5kYWJsZSxcbiAgICAgICAgZW1wdHlUZXh0LFxuICAgICAgICB3cmFwcGVySHRtbFByb3BzOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHJlc3QpLCB7IHN0eWxlOiBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHRhYmxlU2l6ZUNzc1ZhcnMoc2l6ZSkpLCBzdHlsZSkgfSksXG4gICAgICAgIGZvcndhcmRlZEtlcm5lbFByb3BzOiB7XG4gICAgICAgICAgICByb3dLZXk6IHJvd0tleSxcbiAgICAgICAgICAgIGNoaWxkcmVuQ29sdW1uTmFtZSxcbiAgICAgICAgICAgIGluZGVudFNpemUsXG4gICAgICAgICAgICBvblJvdyxcbiAgICAgICAgICAgIHJvd0NsYXNzTmFtZSxcbiAgICAgICAgICAgIHN1bW1hcnksXG4gICAgICAgICAgICBmb290ZXIsXG4gICAgICAgICAgICBzaG93SGVhZGVyLFxuICAgICAgICAgICAgdGFibGVMYXlvdXQ6IHRhYmxlTGF5b3V0ICE9PSBudWxsICYmIHRhYmxlTGF5b3V0ICE9PSB2b2lkIDAgPyB0YWJsZUxheW91dCA6IChmbGF0dGVuQ29sdW1ucyhjb2x1bW5zKS5zb21lKGNvbHVtbiA9PiBjb2x1bW4uZWxsaXBzaXMpID8gJ2ZpeGVkJyA6IHVuZGVmaW5lZCksXG4gICAgICAgICAgICBjb21wb25lbnRzLFxuICAgICAgICAgICAgZGlyZWN0aW9uLFxuICAgICAgICAgICAgcm93SG92ZXJhYmxlLFxuICAgICAgICAgICAgc3RpY2t5LFxuICAgICAgICAgICAgb25TY3JvbGwsXG4gICAgICAgIH0sXG4gICAgICAgIHBhZ2luYXRpb25Ob2RlLFxuICAgIH07XG59OyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
|
|
@@ -2,7 +2,7 @@ import type React from 'react';
|
|
|
2
2
|
import type { CSSProperties, HTMLAttributes, Key, ReactNode } from 'react';
|
|
3
3
|
import type { CheckboxProps } from "../Checkbox";
|
|
4
4
|
import type { EmptyProps } from "../Empty";
|
|
5
|
-
import type {
|
|
5
|
+
import type { TypographyTitleSize } from "../Typography";
|
|
6
6
|
import type { DataIndex as InternalDataIndex } from './internal/kernel/interface';
|
|
7
7
|
export type TableSize = 'large' | 'small' | 'extra-small';
|
|
8
8
|
export type TableVariant = 'fill' | 'stroke';
|
|
@@ -27,14 +27,14 @@ export interface TablePaginationConfig {
|
|
|
27
27
|
export interface TableCellRenderMeta<T extends TableRecord = TableRecord> {
|
|
28
28
|
column: TableColumn<T>;
|
|
29
29
|
size: TableSize;
|
|
30
|
-
/** Pass to Typography.
|
|
31
|
-
fontSize:
|
|
30
|
+
/** Pass to Typography.Title for custom content that follows the table size. */
|
|
31
|
+
fontSize: TypographyTitleSize;
|
|
32
32
|
}
|
|
33
33
|
export interface TableHeaderRenderMeta<T extends TableRecord = TableRecord> {
|
|
34
34
|
column: TableColumn<T>;
|
|
35
35
|
size: TableSize;
|
|
36
|
-
/** Pass to Typography.
|
|
37
|
-
fontSize:
|
|
36
|
+
/** Pass to Typography.Title (strong) for custom header content. */
|
|
37
|
+
fontSize: TypographyTitleSize;
|
|
38
38
|
}
|
|
39
39
|
export interface TableCellContentValue {
|
|
40
40
|
primary: ReactNode;
|
|
@@ -96,6 +96,12 @@ export interface TableFilterDropdownProps<T extends TableRecord = TableRecord> {
|
|
|
96
96
|
close: () => void;
|
|
97
97
|
column: TableColumn<T>;
|
|
98
98
|
}
|
|
99
|
+
export interface TableEllipsisConfig {
|
|
100
|
+
/** Maximum visible lines; positive integers only. Defaults to 1. */
|
|
101
|
+
lines?: number;
|
|
102
|
+
/** Native hover tooltip containing the full text. Defaults to false. */
|
|
103
|
+
tooltip?: boolean;
|
|
104
|
+
}
|
|
99
105
|
export interface TableColumn<T extends TableRecord = TableRecord> {
|
|
100
106
|
key?: Key;
|
|
101
107
|
dataIndex?: TableDataIndex<T>;
|
|
@@ -104,9 +110,7 @@ export interface TableColumn<T extends TableRecord = TableRecord> {
|
|
|
104
110
|
minWidth?: number;
|
|
105
111
|
fixed?: 'left' | 'right';
|
|
106
112
|
align?: TableAlign;
|
|
107
|
-
ellipsis?: boolean |
|
|
108
|
-
tooltip?: boolean;
|
|
109
|
-
};
|
|
113
|
+
ellipsis?: boolean | TableEllipsisConfig;
|
|
110
114
|
hidden?: boolean;
|
|
111
115
|
colSpan?: number;
|
|
112
116
|
rowSpan?: number;
|
|
@@ -6,7 +6,7 @@ export declare const BodyCell: <T extends TableRecord = TableRecord>({ size, col
|
|
|
6
6
|
record: T;
|
|
7
7
|
index: number;
|
|
8
8
|
}) => import("react/jsx-runtime").JSX.Element | {
|
|
9
|
-
children:
|
|
9
|
+
children: import("react/jsx-runtime").JSX.Element;
|
|
10
10
|
props: {
|
|
11
11
|
colSpan?: number;
|
|
12
12
|
rowSpan?: number;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
-
import { jsx as _jsx
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { TABLE_SIZE_CONFIG } from '../size';
|
|
4
4
|
import { CellContent } from './CellContent';
|
|
5
|
+
import { CellText } from './CellText';
|
|
5
6
|
var isCellContentValue = function isCellContentValue(value) {
|
|
6
7
|
return !!value && _typeof(value) === 'object' && 'primary' in value;
|
|
7
8
|
};
|
|
@@ -26,8 +27,13 @@ export var BodyCell = function BodyCell(_ref) {
|
|
|
26
27
|
if (isRenderedCell(rendered)) {
|
|
27
28
|
var inner = isCellContentValue(rendered.children) ? _jsx(CellContent, {
|
|
28
29
|
value: rendered.children,
|
|
29
|
-
size: size
|
|
30
|
-
|
|
30
|
+
size: size,
|
|
31
|
+
ellipsis: column.ellipsis
|
|
32
|
+
}) : _jsx(CellText, {
|
|
33
|
+
size: size,
|
|
34
|
+
ellipsis: column.ellipsis,
|
|
35
|
+
children: rendered.children
|
|
36
|
+
});
|
|
31
37
|
return {
|
|
32
38
|
children: inner,
|
|
33
39
|
props: rendered.props
|
|
@@ -36,11 +42,14 @@ export var BodyCell = function BodyCell(_ref) {
|
|
|
36
42
|
if (isCellContentValue(rendered)) {
|
|
37
43
|
return _jsx(CellContent, {
|
|
38
44
|
value: rendered,
|
|
39
|
-
size: size
|
|
45
|
+
size: size,
|
|
46
|
+
ellipsis: column.ellipsis
|
|
40
47
|
});
|
|
41
48
|
}
|
|
42
|
-
return _jsx(
|
|
49
|
+
return _jsx(CellText, {
|
|
50
|
+
size: size,
|
|
51
|
+
ellipsis: column.ellipsis,
|
|
43
52
|
children: rendered
|
|
44
53
|
});
|
|
45
54
|
};
|
|
46
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvcmVuZGVyZXJzL0JvZHlDZWxsLmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9yZW5kZXJlcnMvQm9keUNlbGwudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJUQUJMRV9TSVpFX0NPTkZJRyIsIkNlbGxDb250ZW50IiwiQ2VsbFRleHQiLCJpc0NlbGxDb250ZW50VmFsdWUiLCJ2YWx1ZSIsIl90eXBlb2YiLCJpc1JlbmRlcmVkQ2VsbCIsIm9iaiIsInByb3BzIiwiQm9keUNlbGwiLCJfcmVmIiwic2l6ZSIsImNvbHVtbiIsInJlY29yZCIsImluZGV4IiwicmVuZGVyZWQiLCJyZW5kZXIiLCJmb250U2l6ZSIsImlubmVyIiwiY2hpbGRyZW4iLCJlbGxpcHNpcyJdLCJtYXBwaW5ncyI6IjtBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxRQUFRLG1CQUFtQjtBQ0UvQyxTQUFTQyxpQkFBaUIsUUFBUSxTQUFTO0FBQzNDLFNBQVNDLFdBQVcsUUFBUSxlQUFlO0FBQzNDLFNBQVNDLFFBQVEsUUFBUSxZQUFZO0FBRXJDLElBQU1DLGtCQUFrQixHQUFHLFNBQXJCQSxrQkFBa0JBLENBQUlDLEtBQWMsRUFBb0M7RUFDNUUsT0FBTyxDQUFDLENBQUNBLEtBQUssSUFBSUMsT0FBQSxDQUFPRCxLQUFLLE1BQUssUUFBUSxJQUFJLFNBQVMsSUFBS0EsS0FBaUM7QUFDaEcsQ0FBQztBQUVELElBQU1FLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBMkJGLEtBQWMsRUFBbUM7RUFDOUYsSUFBSSxDQUFDQSxLQUFLLElBQUlDLE9BQUEsQ0FBT0QsS0FBSyxNQUFLLFFBQVEsRUFBRSxPQUFPLEtBQUs7RUFDckQsSUFBTUcsR0FBRyxHQUFHSCxLQUFnQztFQUM1QztFQUNBLElBQUksVUFBVSxJQUFJRyxHQUFHLEVBQUUsT0FBTyxLQUFLO0VBQ25DLE9BQU8sT0FBTyxJQUFJQSxHQUFHLElBQUlGLE9BQUEsQ0FBT0UsR0FBRyxDQUFDQyxLQUFLLE1BQUssUUFBUTtBQUN4RCxDQUFDO0FBRUQsT0FBTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQSxFQVloQjtFQUFBLElBWEhDLElBQUksR0FBQUQsSUFBQSxDQUFKQyxJQUFJO0lBQ0pDLE1BQU0sR0FBQUYsSUFBQSxDQUFORSxNQUFNO0lBQ05SLEtBQUssR0FBQU0sSUFBQSxDQUFMTixLQUFLO0lBQ0xTLE1BQU0sR0FBQUgsSUFBQSxDQUFORyxNQUFNO0lBQ05DLEtBQUssR0FBQUosSUFBQSxDQUFMSSxLQUFLO0VBUUwsSUFBTUMsUUFBUSxHQUFHSCxNQUFNLENBQUNJLE1BQU0sR0FDMUJKLE1BQU0sQ0FBQ0ksTUFBTSxDQUFDWixLQUFLLEVBQUVTLE1BQU0sRUFBRUMsS0FBSyxFQUFFO0lBQUVGLE1BQU0sRUFBTkEsTUFBTTtJQUFFRCxJQUFJLEVBQUpBLElBQUk7SUFBRU0sUUFBUSxFQUFFakIsaUJBQWlCLENBQUNXLElBQUksQ0FBQyxDQUFDTTtFQUFRLENBQUUsQ0FBQyxHQUNqR2IsS0FBSztFQUVULElBQUlFLGNBQWMsQ0FBSVMsUUFBUSxDQUFDLEVBQUU7SUFDL0IsSUFBTUcsS0FBSyxHQUFHZixrQkFBa0IsQ0FBQ1ksUUFBUSxDQUFDSSxRQUFRLENBQUMsR0FDL0NwQixJQUFBLENBQUNFLFdBQVcsRUFBQTtNQUFDRyxLQUFLLEVBQUVXLFFBQVEsQ0FBQ0ksUUFBUTtNQUFFUixJQUFJLEVBQUVBLElBQUk7TUFBRVMsUUFBUSxFQUFFUixNQUFNLENBQUNRO0lBQVEsQ0FBQSxDQUFJLEdBQ2hGckIsSUFBQSxDQUFDRyxRQUFRLEVBQUE7TUFBQ1MsSUFBSSxFQUFFQSxJQUFJO01BQUVTLFFBQVEsRUFBRVIsTUFBTSxDQUFDUSxRQUFRO01BQUFELFFBQUEsRUFBR0osUUFBUSxDQUFDSTtJQUFRLENBQUEsQ0FBWTtJQUNuRixPQUFPO01BQUVBLFFBQVEsRUFBRUQsS0FBSztNQUFFVixLQUFLLEVBQUVPLFFBQVEsQ0FBQ1A7SUFBSyxDQUFFO0VBQ25EO0VBRUEsSUFBSUwsa0JBQWtCLENBQUNZLFFBQVEsQ0FBQyxFQUFFO0lBQ2hDLE9BQU9oQixJQUFBLENBQUNFLFdBQVcsRUFBQTtNQUFDRyxLQUFLLEVBQUVXLFFBQVE7TUFBRUosSUFBSSxFQUFFQSxJQUFJO01BQUVTLFFBQVEsRUFBRVIsTUFBTSxDQUFDUTtJQUFRLENBQUEsQ0FBSTtFQUNoRjtFQUVBLE9BQU9yQixJQUFBLENBQUNHLFFBQVEsRUFBQTtJQUFDUyxJQUFJLEVBQUVBLElBQUk7SUFBRVMsUUFBUSxFQUFFUixNQUFNLENBQUNRLFFBQVE7SUFBQUQsUUFBQSxFQUFHSjtFQUFxQixDQUFBLENBQVk7QUFDNUYsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL1RhYmxlL3JlbmRlcmVycy9Cb2R5Q2VsbC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBUQUJMRV9TSVpFX0NPTkZJRyB9IGZyb20gJy4uL3NpemUnO1xuaW1wb3J0IHsgQ2VsbENvbnRlbnQgfSBmcm9tICcuL0NlbGxDb250ZW50JztcbmltcG9ydCB7IENlbGxUZXh0IH0gZnJvbSAnLi9DZWxsVGV4dCc7XG5jb25zdCBpc0NlbGxDb250ZW50VmFsdWUgPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmICdwcmltYXJ5JyBpbiB2YWx1ZTtcbn07XG5jb25zdCBpc1JlbmRlcmVkQ2VsbCA9ICh2YWx1ZSkgPT4ge1xuICAgIGlmICghdmFsdWUgfHwgdHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JylcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IG9iaiA9IHZhbHVlO1xuICAgIC8vIFJlYWN0IGVsZW1lbnRzIGFsc28gaGF2ZSAncHJvcHMnLCBzbyBleGNsdWRlIHRoZW0gYnkgY2hlY2tpbmcgZm9yICQkdHlwZW9mXG4gICAgaWYgKCckJHR5cGVvZicgaW4gb2JqKVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgcmV0dXJuICdwcm9wcycgaW4gb2JqICYmIHR5cGVvZiBvYmoucHJvcHMgPT09ICdvYmplY3QnO1xufTtcbmV4cG9ydCBjb25zdCBCb2R5Q2VsbCA9ICh7IHNpemUsIGNvbHVtbiwgdmFsdWUsIHJlY29yZCwgaW5kZXgsIH0pID0+IHtcbiAgICBjb25zdCByZW5kZXJlZCA9IGNvbHVtbi5yZW5kZXJcbiAgICAgICAgPyBjb2x1bW4ucmVuZGVyKHZhbHVlLCByZWNvcmQsIGluZGV4LCB7IGNvbHVtbiwgc2l6ZSwgZm9udFNpemU6IFRBQkxFX1NJWkVfQ09ORklHW3NpemVdLmZvbnRTaXplIH0pXG4gICAgICAgIDogdmFsdWU7XG4gICAgaWYgKGlzUmVuZGVyZWRDZWxsKHJlbmRlcmVkKSkge1xuICAgICAgICBjb25zdCBpbm5lciA9IGlzQ2VsbENvbnRlbnRWYWx1ZShyZW5kZXJlZC5jaGlsZHJlbilcbiAgICAgICAgICAgID8gX2pzeChDZWxsQ29udGVudCwgeyB2YWx1ZTogcmVuZGVyZWQuY2hpbGRyZW4sIHNpemU6IHNpemUsIGVsbGlwc2lzOiBjb2x1bW4uZWxsaXBzaXMgfSlcbiAgICAgICAgICAgIDogX2pzeChDZWxsVGV4dCwgeyBzaXplOiBzaXplLCBlbGxpcHNpczogY29sdW1uLmVsbGlwc2lzLCBjaGlsZHJlbjogcmVuZGVyZWQuY2hpbGRyZW4gfSk7XG4gICAgICAgIHJldHVybiB7IGNoaWxkcmVuOiBpbm5lciwgcHJvcHM6IHJlbmRlcmVkLnByb3BzIH07XG4gICAgfVxuICAgIGlmIChpc0NlbGxDb250ZW50VmFsdWUocmVuZGVyZWQpKSB7XG4gICAgICAgIHJldHVybiBfanN4KENlbGxDb250ZW50LCB7IHZhbHVlOiByZW5kZXJlZCwgc2l6ZTogc2l6ZSwgZWxsaXBzaXM6IGNvbHVtbi5lbGxpcHNpcyB9KTtcbiAgICB9XG4gICAgcmV0dXJuIF9qc3goQ2VsbFRleHQsIHsgc2l6ZTogc2l6ZSwgZWxsaXBzaXM6IGNvbHVtbi5lbGxpcHNpcywgY2hpbGRyZW46IHJlbmRlcmVkIH0pO1xufTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import type { TableCellContentValue, TableSize } from '../interface';
|
|
2
|
-
|
|
1
|
+
import type { TableCellContentValue, TableEllipsisConfig, TableSize } from '../interface';
|
|
2
|
+
interface CellContentProps {
|
|
3
3
|
value: TableCellContentValue;
|
|
4
4
|
size: TableSize;
|
|
5
|
-
|
|
5
|
+
ellipsis?: boolean | TableEllipsisConfig;
|
|
6
|
+
}
|
|
7
|
+
export declare const CellContent: ({ value, size, ellipsis }: CellContentProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { TypographyBody, TypographyTitle } from '../../Typography';
|
|
3
2
|
import { TABLE_DEFAULT_PREFIX } from '../constants';
|
|
4
|
-
import {
|
|
3
|
+
import { CellText } from './CellText';
|
|
5
4
|
export var CellContent = function CellContent(_ref) {
|
|
6
5
|
var value = _ref.value,
|
|
7
|
-
size = _ref.size
|
|
6
|
+
size = _ref.size,
|
|
7
|
+
ellipsis = _ref.ellipsis;
|
|
8
8
|
return _jsxs("div", {
|
|
9
9
|
className: "".concat(TABLE_DEFAULT_PREFIX, "-cell-content"),
|
|
10
10
|
children: [value.leading ? _jsx("span", {
|
|
@@ -12,11 +12,15 @@ export var CellContent = function CellContent(_ref) {
|
|
|
12
12
|
children: value.leading
|
|
13
13
|
}) : null, _jsxs("span", {
|
|
14
14
|
className: "".concat(TABLE_DEFAULT_PREFIX, "-cell-content__text"),
|
|
15
|
-
children: [_jsx(
|
|
16
|
-
size:
|
|
15
|
+
children: [_jsx(CellText, {
|
|
16
|
+
size: size,
|
|
17
|
+
kind: "primary",
|
|
18
|
+
ellipsis: ellipsis,
|
|
17
19
|
children: value.primary
|
|
18
|
-
}), value.secondary ? _jsx(
|
|
19
|
-
size:
|
|
20
|
+
}), value.secondary !== null && value.secondary !== undefined && value.secondary !== false ? _jsx(CellText, {
|
|
21
|
+
size: size,
|
|
22
|
+
kind: "secondary",
|
|
23
|
+
ellipsis: ellipsis,
|
|
20
24
|
children: value.secondary
|
|
21
25
|
}) : null]
|
|
22
26
|
}), value.trailing ? _jsx("span", {
|
|
@@ -25,4 +29,4 @@ export var CellContent = function CellContent(_ref) {
|
|
|
25
29
|
}) : null]
|
|
26
30
|
});
|
|
27
31
|
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
32
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvVGFibGUvcmVuZGVyZXJzL0NlbGxDb250ZW50LmpzIiwiY29tcG9uZW50cy9UYWJsZS9zcmMvY29tcG9uZW50cy9UYWJsZS9yZW5kZXJlcnMvQ2VsbENvbnRlbnQudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJqc3hzIiwiX2pzeHMiLCJUQUJMRV9ERUZBVUxUX1BSRUZJWCIsIkNlbGxUZXh0IiwiQ2VsbENvbnRlbnQiLCJfcmVmIiwidmFsdWUiLCJzaXplIiwiZWxsaXBzaXMiLCJjbGFzc05hbWUiLCJjb25jYXQiLCJjaGlsZHJlbiIsImxlYWRpbmciLCJraW5kIiwicHJpbWFyeSIsInNlY29uZGFyeSIsInVuZGVmaW5lZCIsInRyYWlsaW5nIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxHQUFHLElBQUlDLElBQUksRUFBRUMsSUFBSSxJQUFJQyxLQUFLLFFBQVEsbUJBQW1CO0FDQTlELFNBQVNDLG9CQUFvQixRQUFRLGNBQWM7QUFDbkQsU0FBU0MsUUFBUSxRQUFRLFlBQVk7QUFTckMsT0FBTyxJQUFNQyxXQUFXLEdBQUcsU0FBZEEsV0FBV0EsQ0FBQUMsSUFBQTtFQUFBLElBQU1DLEtBQUssR0FBQUQsSUFBQSxDQUFMQyxLQUFLO0lBQUVDLElBQUksR0FBQUYsSUFBQSxDQUFKRSxJQUFJO0lBQUVDLFFBQVEsR0FBQUgsSUFBQSxDQUFSRyxRQUFRO0VBQUEsT0FDakRQLEtBQUEsQ0FBQSxLQUFBLEVBQUE7SUFBS1EsU0FBUyxLQUFBQyxNQUFBLENBQUtSLG9CQUFvQixrQkFBZTtJQUFBUyxRQUFBLEVBQUEsQ0FDbkRMLEtBQUssQ0FBQ00sT0FBTyxHQUFHYixJQUFBLENBQUEsTUFBQSxFQUFBO01BQU1VLFNBQVMsS0FBQUMsTUFBQSxDQUFLUixvQkFBb0IsMkJBQXdCO01BQUFTLFFBQUEsRUFBR0wsS0FBSyxDQUFDTTtJQUFPLENBQUEsQ0FBUSxHQUFHLElBQUksRUFDaEhYLEtBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBTVEsU0FBUyxLQUFBQyxNQUFBLENBQUtSLG9CQUFvQix3QkFBcUI7TUFBQVMsUUFBQSxFQUFBLENBQzNEWixJQUFBLENBQUNJLFFBQVEsRUFBQTtRQUFDSSxJQUFJLEVBQUVBLElBQUk7UUFBRU0sSUFBSSxFQUFDLFNBQVM7UUFBQ0wsUUFBUSxFQUFFQSxRQUFRO1FBQUFHLFFBQUEsRUFBR0wsS0FBSyxDQUFDUTtNQUFPLENBQUEsQ0FBWSxFQUNsRlIsS0FBSyxDQUFDUyxTQUFTLEtBQUssSUFBSSxJQUFJVCxLQUFLLENBQUNTLFNBQVMsS0FBS0MsU0FBUyxJQUFJVixLQUFLLENBQUNTLFNBQVMsS0FBSyxLQUFLLEdBQ25GaEIsSUFBQSxDQUFDSSxRQUFRLEVBQUE7UUFBQ0ksSUFBSSxFQUFFQSxJQUFJO1FBQUVNLElBQUksRUFBQyxXQUFXO1FBQUNMLFFBQVEsRUFBRUEsUUFBUTtRQUFBRyxRQUFBLEVBQUdMLEtBQUssQ0FBQ1M7TUFBUyxDQUFBLENBQVksR0FDdkYsSUFBSTtJQUFBLENBQUEsQ0FDSCxFQUNOVCxLQUFLLENBQUNXLFFBQVEsR0FBR2xCLElBQUEsQ0FBQSxNQUFBLEVBQUE7TUFBTVUsU0FBUyxLQUFBQyxNQUFBLENBQUtSLG9CQUFvQiw0QkFBeUI7TUFBQVMsUUFBQSxFQUFHTCxLQUFLLENBQUNXO0lBQVEsQ0FBQSxDQUFRLEdBQUcsSUFBSTtFQUFBLENBQUEsQ0FDL0c7QUFBQSxDQUNQIiwiZmlsZSI6ImNvbXBvbmVudHMvVGFibGUvcmVuZGVyZXJzL0NlbGxDb250ZW50LmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsganN4IGFzIF9qc3gsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IFRBQkxFX0RFRkFVTFRfUFJFRklYIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcbmltcG9ydCB7IENlbGxUZXh0IH0gZnJvbSAnLi9DZWxsVGV4dCc7XG5leHBvcnQgY29uc3QgQ2VsbENvbnRlbnQgPSAoeyB2YWx1ZSwgc2l6ZSwgZWxsaXBzaXMgfSkgPT4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBgJHtUQUJMRV9ERUZBVUxUX1BSRUZJWH0tY2VsbC1jb250ZW50YCwgY2hpbGRyZW46IFt2YWx1ZS5sZWFkaW5nID8gX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGAke1RBQkxFX0RFRkFVTFRfUFJFRklYfS1jZWxsLWNvbnRlbnRfX2xlYWRpbmdgLCBjaGlsZHJlbjogdmFsdWUubGVhZGluZyB9KSA6IG51bGwsIF9qc3hzKFwic3BhblwiLCB7IGNsYXNzTmFtZTogYCR7VEFCTEVfREVGQVVMVF9QUkVGSVh9LWNlbGwtY29udGVudF9fdGV4dGAsIGNoaWxkcmVuOiBbX2pzeChDZWxsVGV4dCwgeyBzaXplOiBzaXplLCBraW5kOiBcInByaW1hcnlcIiwgZWxsaXBzaXM6IGVsbGlwc2lzLCBjaGlsZHJlbjogdmFsdWUucHJpbWFyeSB9KSwgdmFsdWUuc2Vjb25kYXJ5ICE9PSBudWxsICYmIHZhbHVlLnNlY29uZGFyeSAhPT0gdW5kZWZpbmVkICYmIHZhbHVlLnNlY29uZGFyeSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgPyBfanN4KENlbGxUZXh0LCB7IHNpemU6IHNpemUsIGtpbmQ6IFwic2Vjb25kYXJ5XCIsIGVsbGlwc2lzOiBlbGxpcHNpcywgY2hpbGRyZW46IHZhbHVlLnNlY29uZGFyeSB9KVxuICAgICAgICAgICAgICAgICAgICA6IG51bGxdIH0pLCB2YWx1ZS50cmFpbGluZyA/IF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBgJHtUQUJMRV9ERUZBVUxUX1BSRUZJWH0tY2VsbC1jb250ZW50X190cmFpbGluZ2AsIGNoaWxkcmVuOiB2YWx1ZS50cmFpbGluZyB9KSA6IG51bGxdIH0pKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { TableEllipsisConfig, TableSize } from '../interface';
|
|
3
|
+
interface CellTextProps {
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
size: TableSize;
|
|
6
|
+
kind?: 'body' | 'primary' | 'secondary';
|
|
7
|
+
ellipsis?: boolean | TableEllipsisConfig;
|
|
8
|
+
}
|
|
9
|
+
/** Typography and overflow are owned by the table, independently of row actions. */
|
|
10
|
+
export declare const CellText: ({ children, size, kind, ellipsis }: CellTextProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export {};
|