ngx-material-entity 16.0.4 → 16.0.6
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/README.md +4 -4
- package/classes/base.builder.d.ts +0 -4
- package/classes/entity.model.d.ts +7 -0
- package/components/confirm-dialog/confirm-dialog-data.d.ts +0 -3
- package/components/confirm-dialog/confirm-dialog.component.d.ts +6 -0
- package/components/create-page/create-data.route.d.ts +16 -0
- package/components/create-page/create-page.component.d.ts +147 -0
- package/components/create-page/page-create-data.builder.d.ts +18 -0
- package/components/edit-page/edit-data.route.d.ts +3 -0
- package/components/edit-page/edit-page.component.d.ts +34 -9
- package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +3 -3
- package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +0 -2
- package/components/input/array/array-table.class.d.ts +0 -1
- package/components/input/base-input.component.d.ts +5 -2
- package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +0 -1
- package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +0 -1
- package/components/input/date/date-range-input/date-range-input.component.d.ts +2 -6
- package/components/input/date/date-time-input/date-time-input.component.d.ts +0 -1
- package/components/input/file/file-input/file-input.component.d.ts +1 -0
- package/components/input/input.component.d.ts +160 -38
- package/components/input/input.module.d.ts +48 -47
- package/components/input/number/number-input/number-input.component.d.ts +1 -1
- package/components/input/relations/references-many-input/references-many-input.component.d.ts +0 -1
- package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +0 -1
- package/components/input/string/string-input/string-input.component.d.ts +1 -1
- package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +1 -1
- package/components/table/create-dialog/{create-dialog-data.builder.d.ts → create-data.builder.d.ts} +7 -7
- package/components/table/create-dialog/create-entity-dialog-data.builder.d.ts +11 -13
- package/components/table/create-dialog/create-entity-dialog-data.d.ts +7 -9
- package/components/table/create-dialog/create-entity-dialog.component.d.ts +26 -5
- package/components/table/default.actions.d.ts +0 -4
- package/components/table/display-column-value/base-display-column-value.component.d.ts +3 -0
- package/components/table/display-column-value/display-column-value.component.d.ts +9 -0
- package/components/table/edit-dialog/edit-data.builder.d.ts +3 -3
- package/components/table/edit-dialog/edit-entity-data.d.ts +2 -4
- package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +34 -4
- package/components/table/edit-dialog/edit-entity.builder.d.ts +3 -5
- package/components/table/table-data.builder.d.ts +6 -8
- package/components/table/table-data.d.ts +8 -18
- package/components/table/table.component.d.ts +35 -9
- package/components/tooltip/tooltip.component.d.ts +3 -0
- package/decorators/array/array-decorator-internal.data.d.ts +3 -2
- package/decorators/array/array-decorator.data.d.ts +6 -17
- package/decorators/array/array.decorator.d.ts +0 -1
- package/decorators/base/base-property.decorator.d.ts +0 -1
- package/decorators/base/property-decorator-internal.data.d.ts +0 -2
- package/decorators/base/property-decorator.data.d.ts +0 -10
- package/decorators/boolean/boolean-decorator.data.d.ts +0 -2
- package/decorators/boolean/boolean.decorator.d.ts +0 -1
- package/decorators/custom/custom-decorator.data.d.ts +0 -2
- package/decorators/custom/custom.decorator.d.ts +0 -1
- package/decorators/date/date-decorator.data.d.ts +0 -3
- package/decorators/date/date.decorator.d.ts +0 -1
- package/decorators/file/file-decorator.data.d.ts +0 -6
- package/decorators/file/file.decorator.d.ts +0 -1
- package/decorators/has-many/has-many-decorator-internal.data.d.ts +2 -4
- package/decorators/has-many/has-many-decorator.data.d.ts +2 -6
- package/decorators/has-many/has-many.decorator.d.ts +0 -1
- package/decorators/number/number-decorator-internal.data.d.ts +0 -1
- package/decorators/number/number.decorator.d.ts +0 -1
- package/decorators/object/object.decorator.d.ts +0 -1
- package/decorators/references-many/references-many-decorator-internal.data.d.ts +0 -1
- package/decorators/references-many/references-many-decorator.data.d.ts +0 -5
- package/decorators/references-many/references-many.decorator.d.ts +0 -1
- package/decorators/references-one/references-one.decorator.d.ts +0 -1
- package/decorators/string/string-decorator-internal.data.d.ts +1 -0
- package/decorators/string/string-decorator.data.d.ts +4 -2
- package/decorators/string/string.decorator.d.ts +0 -1
- package/default-global-configuration-values.d.ts +12 -0
- package/directives/drag-drop.directive.d.ts +0 -3
- package/directives/included-in.directive.d.ts +14 -0
- package/directives/number.directive.d.ts +0 -1
- package/encapsulation/js-2-xml.utilities.d.ts +0 -1
- package/encapsulation/jszip.utilities.d.ts +0 -1
- package/encapsulation/lodash.utilities.d.ts +2 -11
- package/encapsulation/reflect.utilities.d.ts +0 -7
- package/encapsulation/uuid.utilities.d.ts +0 -1
- package/esm2022/classes/base.builder.mjs +3 -6
- package/esm2022/classes/entity.model.mjs +1 -1
- package/esm2022/components/confirm-dialog/confirm-dialog-data.builder.mjs +1 -3
- package/esm2022/components/confirm-dialog/confirm-dialog-data.mjs +1 -1
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +9 -3
- package/esm2022/components/create-page/create-data.route.mjs +11 -0
- package/esm2022/components/create-page/create-page.component.mjs +275 -0
- package/esm2022/components/create-page/page-create-data.builder.mjs +30 -0
- package/esm2022/components/edit-page/edit-data.route.mjs +4 -1
- package/esm2022/components/edit-page/edit-page.component.mjs +43 -18
- package/esm2022/components/edit-page/page-edit-data.builder.mjs +3 -3
- package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +11 -10
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +10 -9
- package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +13 -12
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +17 -13
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +8 -9
- package/esm2022/components/input/array/array-table.class.mjs +4 -6
- package/esm2022/components/input/base-input.component.mjs +8 -4
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +8 -11
- package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +8 -7
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +6 -9
- package/esm2022/components/input/custom/custom.component.mjs +2 -1
- package/esm2022/components/input/date/date-input/date-input.component.mjs +8 -7
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +38 -43
- package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +10 -10
- package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +4 -3
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +6 -5
- package/esm2022/components/input/file/file-input/file-input.component.mjs +9 -6
- package/esm2022/components/input/input.component.mjs +225 -91
- package/esm2022/components/input/input.module.mjs +84 -81
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +8 -7
- package/esm2022/components/input/number/number-input/number-input.component.mjs +6 -5
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +6 -5
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +24 -19
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +12 -8
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +8 -7
- package/esm2022/components/input/string/string-input/string-input.component.mjs +6 -5
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +8 -7
- package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +7 -6
- package/esm2022/components/table/create-dialog/create-data.builder.mjs +44 -0
- package/esm2022/components/table/create-dialog/create-entity-dialog-data.builder.mjs +8 -9
- package/esm2022/components/table/create-dialog/create-entity-dialog-data.mjs +1 -1
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +30 -9
- package/esm2022/components/table/default.actions.mjs +1 -5
- package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +5 -1
- package/esm2022/components/table/display-column-value/display-column-value.component.mjs +10 -2
- package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +3 -3
- package/esm2022/components/table/edit-dialog/edit-entity-data.mjs +1 -1
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +37 -7
- package/esm2022/components/table/edit-dialog/edit-entity.builder.mjs +3 -3
- package/esm2022/components/table/table-data.builder.mjs +12 -12
- package/esm2022/components/table/table-data.mjs +1 -1
- package/esm2022/components/table/table.component.mjs +63 -34
- package/esm2022/components/tooltip/tooltip.component.mjs +6 -3
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +4 -2
- package/esm2022/decorators/array/array-decorator.data.mjs +1 -2
- package/esm2022/decorators/array/array.decorator.mjs +2 -3
- package/esm2022/decorators/base/base-property.decorator.mjs +1 -2
- package/esm2022/decorators/base/decorator-types.enum.mjs +1 -1
- package/esm2022/decorators/base/property-decorator-internal.data.mjs +1 -3
- package/esm2022/decorators/base/property-decorator.data.mjs +5 -11
- package/esm2022/decorators/boolean/boolean-decorator.data.mjs +1 -1
- package/esm2022/decorators/boolean/boolean.decorator.mjs +1 -2
- package/esm2022/decorators/custom/custom-decorator-internal.data.mjs +1 -2
- package/esm2022/decorators/custom/custom-decorator.data.mjs +1 -1
- package/esm2022/decorators/custom/custom.decorator.mjs +1 -2
- package/esm2022/decorators/date/date-decorator-internal.data.mjs +2 -2
- package/esm2022/decorators/date/date-decorator.data.mjs +1 -1
- package/esm2022/decorators/date/date.decorator.mjs +2 -3
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +1 -4
- package/esm2022/decorators/file/file-decorator.data.mjs +1 -6
- package/esm2022/decorators/file/file.decorator.mjs +2 -3
- package/esm2022/decorators/has-many/has-many-decorator-internal.data.mjs +1 -2
- package/esm2022/decorators/has-many/has-many-decorator.data.mjs +1 -1
- package/esm2022/decorators/has-many/has-many.decorator.mjs +1 -2
- package/esm2022/decorators/number/number-decorator-internal.data.mjs +4 -5
- package/esm2022/decorators/number/number-decorator.data.mjs +1 -1
- package/esm2022/decorators/number/number.decorator.mjs +1 -2
- package/esm2022/decorators/object/object.decorator.mjs +1 -2
- package/esm2022/decorators/references-many/references-many-decorator-internal.data.mjs +1 -2
- package/esm2022/decorators/references-many/references-many-decorator.data.mjs +1 -1
- package/esm2022/decorators/references-many/references-many.decorator.mjs +1 -2
- package/esm2022/decorators/references-one/references-one.decorator.mjs +1 -2
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +7 -4
- package/esm2022/decorators/string/string-decorator.data.mjs +1 -1
- package/esm2022/decorators/string/string.decorator.mjs +1 -2
- package/esm2022/default-global-configuration-values.mjs +16 -1
- package/esm2022/directives/drag-drop.directive.mjs +1 -4
- package/esm2022/directives/included-in.directive.mjs +33 -0
- package/esm2022/directives/number.directive.mjs +1 -2
- package/esm2022/directives/password-match.directive.mjs +2 -2
- package/esm2022/encapsulation/js-2-xml.utilities.mjs +1 -2
- package/esm2022/encapsulation/jszip.utilities.mjs +1 -2
- package/esm2022/encapsulation/lodash.utilities.mjs +12 -19
- package/esm2022/encapsulation/reflect.utilities.mjs +1 -8
- package/esm2022/encapsulation/uuid.utilities.mjs +1 -2
- package/esm2022/functions/default-false.function.mjs +1 -2
- package/esm2022/functions/default-true.function.mjs +1 -2
- package/esm2022/functions/get-config-value.function.mjs +1 -2
- package/esm2022/functions/get-validation-error-message.function.mjs +13 -7
- package/esm2022/functions/get-validation-errors-tooltip-content.function.ts.mjs +6 -4
- package/esm2022/functions/is-async-function.function.mjs +1 -2
- package/esm2022/global-configuration-values.mjs +5 -2
- package/esm2022/mocks/placeholder-data.png.mjs +3 -3
- package/esm2022/public-api.mjs +3 -1
- package/esm2022/services/entity.service.mjs +15 -21
- package/esm2022/services/unsaved-changes.guard.mjs +7 -2
- package/esm2022/utilities/date.utilities.mjs +3 -9
- package/esm2022/utilities/entity.utilities.mjs +82 -79
- package/esm2022/utilities/file.utilities.mjs +1 -10
- package/esm2022/utilities/selection.utilities.mjs +4 -7
- package/esm2022/utilities/validation.utilities.mjs +40 -35
- package/fesm2022/ngx-material-entity.mjs +1309 -752
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/functions/default-false.function.d.ts +0 -1
- package/functions/default-true.function.d.ts +0 -1
- package/functions/get-config-value.function.d.ts +0 -1
- package/functions/get-validation-error-message.function.d.ts +3 -0
- package/functions/get-validation-errors-tooltip-content.function.ts.d.ts +4 -2
- package/functions/is-async-function.function.d.ts +0 -1
- package/global-configuration-values.d.ts +9 -34
- package/mocks/placeholder-data.png.d.ts +1 -1
- package/package.json +2 -1
- package/public-api.d.ts +2 -0
- package/services/entity.service.d.ts +11 -16
- package/services/unsaved-changes.guard.d.ts +13 -1
- package/utilities/date.utilities.d.ts +0 -6
- package/utilities/entity.utilities.d.ts +10 -36
- package/utilities/file.utilities.d.ts +0 -9
- package/utilities/selection.utilities.d.ts +0 -3
- package/utilities/validation.utilities.d.ts +0 -3
- package/esm2022/components/table/create-dialog/create-dialog-data.builder.mjs +0 -44
|
@@ -7,8 +7,8 @@ import { defaultTrue } from '../../functions/default-true.function';
|
|
|
7
7
|
import { getConfigValue } from '../../functions/get-config-value.function';
|
|
8
8
|
import { isAsyncFunction } from '../../functions/is-async-function.function';
|
|
9
9
|
import { ConfirmDialogDataBuilder } from '../confirm-dialog/confirm-dialog-data.builder';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { CreateDataBuilder } from './create-dialog/create-data.builder';
|
|
11
|
+
import { EditDataBuilder } from './edit-dialog/edit-data.builder';
|
|
12
12
|
/**
|
|
13
13
|
* The internal BaseTableAction. Sets default values.
|
|
14
14
|
*/
|
|
@@ -109,13 +109,13 @@ export class TableDataInternal {
|
|
|
109
109
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
110
110
|
baseData;
|
|
111
111
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
112
|
-
|
|
112
|
+
createData;
|
|
113
113
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
114
114
|
editData;
|
|
115
|
-
constructor(baseData,
|
|
115
|
+
constructor(baseData, createData, editData) {
|
|
116
116
|
this.baseData = baseData;
|
|
117
|
-
this.
|
|
118
|
-
this.editData =
|
|
117
|
+
this.createData = createData;
|
|
118
|
+
this.editData = editData;
|
|
119
119
|
}
|
|
120
120
|
}
|
|
121
121
|
/**
|
|
@@ -148,6 +148,8 @@ export let BaseDataInternal = class BaseDataInternal {
|
|
|
148
148
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
149
149
|
defaultEdit;
|
|
150
150
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
151
|
+
defaultCreate;
|
|
152
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
151
153
|
searchString;
|
|
152
154
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
153
155
|
allowCreate;
|
|
@@ -182,6 +184,7 @@ export let BaseDataInternal = class BaseDataInternal {
|
|
|
182
184
|
this.searchLabel = getConfigValue(globalConfig.searchLabel, data.searchLabel);
|
|
183
185
|
this.createButtonLabel = getConfigValue(globalConfig.createLabel, data.createButtonLabel);
|
|
184
186
|
this.defaultEdit = getConfigValue(globalConfig.defaultEditMethod, data.defaultEdit);
|
|
187
|
+
this.defaultCreate = getConfigValue(globalConfig.defaultCreateMethod, data.defaultCreate);
|
|
185
188
|
this.searchString = data.searchString ?? defaultSearchFunction;
|
|
186
189
|
if (data.tableActions) {
|
|
187
190
|
this.tableActions = data.tableActions.map(tA => {
|
|
@@ -246,13 +249,11 @@ export class TableDataBuilder extends BaseBuilder {
|
|
|
246
249
|
}
|
|
247
250
|
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
248
251
|
generateBaseData(data) {
|
|
249
|
-
|
|
250
|
-
const
|
|
251
|
-
const editDialogData = new EditDialogDataBuilder(this.globalConfig, data.editData).getResult();
|
|
252
|
+
const createDialogData = new CreateDataBuilder(this.globalConfig, data.createData).getResult();
|
|
253
|
+
const editDialogData = new EditDataBuilder(this.globalConfig, data.editData).getResult();
|
|
252
254
|
const baseData = new BaseDataBuilder(data.baseData, this.globalConfig).getResult();
|
|
253
255
|
return new TableDataInternal(baseData, createDialogData, editDialogData);
|
|
254
256
|
}
|
|
255
|
-
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
256
257
|
validateInput(data) {
|
|
257
258
|
if (data.baseData.tableActions?.length && data.baseData.displayColumns.find(dp => dp.displayName === 'select')) {
|
|
258
259
|
throw new Error(`The name "select" for a display column is reserved for the multi-select action functionality.
|
|
@@ -278,7 +279,6 @@ export class TableDataBuilder extends BaseBuilder {
|
|
|
278
279
|
* This will be used if no custom search function is provided by the configuration.
|
|
279
280
|
*
|
|
280
281
|
* It generates a string from an entity which is then used to compare it to the search input.
|
|
281
|
-
*
|
|
282
282
|
* @param entity - An entity that is in the search.
|
|
283
283
|
* @returns The generated string of the given entity used for comparison with the search input.
|
|
284
284
|
*/
|
|
@@ -290,4 +290,4 @@ export function defaultSearchFunction(entity) {
|
|
|
290
290
|
.toLowerCase();
|
|
291
291
|
return searchString;
|
|
292
292
|
}
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUc3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQTZCLE1BQU0sK0NBQStDLENBQUM7QUFDcEgsT0FBTyxFQUFFLHVCQUF1QixFQUE0QixNQUFNLDRDQUE0QyxDQUFDO0FBQy9HLE9BQU8sRUFBb0IscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUcxRjs7R0FFRztBQUNILFdBQWEsdUJBQXVCLEdBQXBDLE1BQWEsdUJBQXVCO0lBaUJUO0lBaEJ2QiwrQ0FBK0M7SUFDL0MsSUFBSSxHQUFjLFNBQVMsQ0FBQztJQUM1QiwrQ0FBK0M7SUFDL0MsV0FBVyxDQUFTO0lBQ3BCLCtDQUErQztJQUMvQyxNQUFNLENBQXlCO0lBQy9CLCtDQUErQztJQUMvQyxPQUFPLENBQWtCO0lBQ3pCLCtDQUErQztJQUMvQyxvQkFBb0IsQ0FBa0I7SUFDdEMsK0NBQStDO0lBQy9DLGlCQUFpQixDQUE0QjtJQUU3QyxZQUNJLElBQXFCLEVBRUYsWUFBb0M7UUFB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QztTQUNMO1FBQ0QsSUFDSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztlQUN2QixDQUNDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUs7bUJBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUs7bUJBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUs7bUJBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FDekMsRUFDSDtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQ1g7eUdBQ3lGLENBQzVGLENBQUM7U0FDTDtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxNQUFNLEVBQUU7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDWDs7MERBRTBDLENBQzdDLENBQUM7U0FDTDtJQUNMLENBQUM7Q0FDSjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUFnRCxNQUFrQjtJQUNuRyxNQUFNLFlBQVksR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUMzQyxNQUFNLENBQUMsQ0FBQyxXQUFtQixFQUFFLEdBQVcsRUFBRSxFQUFFO1FBQ3pDLE9BQU8sR0FBRyxXQUFXLEdBQUksTUFBa0MsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ3hFLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDTCxXQUFXLEVBQUUsQ0FBQztJQUNuQixPQUFPLFlBQVksQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UuYnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSwgRW50aXR5Q2xhc3NOZXdhYmxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUyB9IGZyb20gJy4uLy4uL2RlZmF1bHQtZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IGRlZmF1bHRGYWxzZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9kZWZhdWx0LWZhbHNlLmZ1bmN0aW9uJztcbmltcG9ydCB7IGRlZmF1bHRUcnVlIH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2RlZmF1bHQtdHJ1ZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBnZXRDb25maWdWYWx1ZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9nZXQtY29uZmlnLXZhbHVlLmZ1bmN0aW9uJztcbmltcG9ydCB7IGlzQXN5bmNGdW5jdGlvbiB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9pcy1hc3luYy1mdW5jdGlvbi5mdW5jdGlvbic7XG5pbXBvcnQgeyBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzIH0gZnJvbSAnLi4vLi4vZ2xvYmFsLWNvbmZpZ3VyYXRpb24tdmFsdWVzJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lbnRpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIsIENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgQ3JlYXRlRGlhbG9nRGF0YUJ1aWxkZXIsIENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4vY3JlYXRlLWRpYWxvZy9jcmVhdGUtZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RGF0YUludGVybmFsLCBFZGl0RGlhbG9nRGF0YUJ1aWxkZXIgfSBmcm9tICcuL2VkaXQtZGlhbG9nL2VkaXQtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEJhc2VEYXRhLCBCYXNlVGFibGVBY3Rpb24sIERpc3BsYXlDb2x1bW4sIE11bHRpU2VsZWN0QWN0aW9uLCBUYWJsZURhdGEgfSBmcm9tICcuL3RhYmxlLWRhdGEnO1xuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBCYXNlVGFibGVBY3Rpb24uIFNldHMgZGVmYXVsdCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlVGFibGVBY3Rpb25JbnRlcm5hbCBpbXBsZW1lbnRzIEJhc2VUYWJsZUFjdGlvbiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICB0eXBlOiAnZGVmYXVsdCcgPSAnZGVmYXVsdCc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYWN0aW9uOiAoKSA9PiBQcm9taXNlPHVua25vd24+O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZW5hYmxlZDogKCgpID0+IGJvb2xlYW4pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcmVxdWlyZUNvbmZpcm1EaWFsb2c6ICgoKSA9PiBib29sZWFuKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGNvbmZpcm1EaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGRhdGE6IEJhc2VUYWJsZUFjdGlvbixcbiAgICAgICAgQEluamVjdChOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsQ29uZmlnOiBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU5hbWUgPSBkYXRhLmRpc3BsYXlOYW1lO1xuICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuZnVuY3Rpb25Ub0FzeW5jKGRhdGEuYWN0aW9uKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZGF0YS5lbmFibGVkID8/IGRlZmF1bHRUcnVlO1xuICAgICAgICB0aGlzLnJlcXVpcmVDb25maXJtRGlhbG9nID0gZGF0YS5yZXF1aXJlQ29uZmlybURpYWxvZyA/PyBkZWZhdWx0RmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlybURpYWxvZ0RhdGEgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCBkYXRhLmNvbmZpcm1EaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgZ2xvYmFsQ29uZmlnLmNvbmZpcm1CYXNlQWN0aW9uVGV4dClcbiAgICAgICAgICAgIC5nZXRSZXN1bHQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZ1bmN0aW9uVG9Bc3luYyhvcmlnaW5hbEZ1bmN0aW9uOiAoKCkgPT4gdW5rbm93bikgfCAoKCkgPT4gUHJvbWlzZTx1bmtub3duPikpOiAoKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgaWYgKGlzQXN5bmNGdW5jdGlvbihvcmlnaW5hbEZ1bmN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRnVuY3Rpb24gYXMgKCkgPT4gUHJvbWlzZTx1bmtub3duPjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHJldHVybiAoKSA9PiBuZXcgUHJvbWlzZTx1bmtub3duPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUob3JpZ2luYWxGdW5jdGlvbigpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgQmFzZVRhYmxlQWN0aW9uLiBTZXRzIGRlZmF1bHQgdmFsdWVzLlxuICovXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3RBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgdHlwZTogJ211bHRpLXNlbGVjdCcgPSAnbXVsdGktc2VsZWN0JztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhY3Rpb246IChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+IFByb21pc2U8dW5rbm93bj47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlbmFibGVkOiAoKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbik7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICByZXF1aXJlQ29uZmlybURpYWxvZzogKChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+IGJvb2xlYW4pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY29uZmlybURpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGF0YTogTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT4sXG4gICAgICAgIEBJbmplY3QoTkdYX0lOVEVSTkFMX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUylcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkge1xuICAgICAgICB0aGlzLmRpc3BsYXlOYW1lID0gZGF0YS5kaXNwbGF5TmFtZTtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSB0aGlzLmZ1bmN0aW9uVG9Bc3luYyhkYXRhLmFjdGlvbik7XG4gICAgICAgIHRoaXMuZW5hYmxlZCA9IGRhdGEuZW5hYmxlZCA/PyAoKGVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+ICEhZW50aXRpZXMubGVuZ3RoKTtcbiAgICAgICAgdGhpcy5yZXF1aXJlQ29uZmlybURpYWxvZyA9IGRhdGEucmVxdWlyZUNvbmZpcm1EaWFsb2cgPz8gZGVmYXVsdEZhbHNlO1xuICAgICAgICB0aGlzLmNvbmZpcm1EaWFsb2dEYXRhID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZywgZGF0YS5jb25maXJtRGlhbG9nRGF0YSlcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGV4dCcsIGdsb2JhbENvbmZpZy5jb25maXJtQmFzZUFjdGlvblRleHQpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBwcml2YXRlIGZ1bmN0aW9uVG9Bc3luYyhvcmlnaW5hbEZ1bmN0aW9uOiAoKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gdW5rbm93bikgfCAoKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gUHJvbWlzZTx1bmtub3duPikpOiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBQcm9taXNlPHVua25vd24+IHtcbiAgICAgICAgaWYgKGlzQXN5bmNGdW5jdGlvbihvcmlnaW5hbEZ1bmN0aW9uKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRnVuY3Rpb24gYXMgKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gUHJvbWlzZTx1bmtub3duPjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIHJldHVybiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBuZXcgUHJvbWlzZTx1bmtub3duPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIHJlc29sdmUob3JpZ2luYWxGdW5jdGlvbihzZWxlY3RlZEVudGl0aWVzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIEludGVybmFsIFRhYmxlIEFjdGlvbi4gU2V0cyBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IHR5cGUgVGFibGVBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+ID1cbiAgICBCYXNlVGFibGVBY3Rpb25JbnRlcm5hbCB8IE11bHRpU2VsZWN0QWN0aW9uSW50ZXJuYWw8RW50aXR5VHlwZT47XG5cbi8qKlxuICogVGhlIGludGVybmFsIFRhYmxlRGF0YS4gUmVxdWlyZXMgYWxsIGRlZmF1bHQgdmFsdWVzIHRoZSB1c2VyIGNhbiBsZWF2ZSBvdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgVGFibGVEYXRhPEVudGl0eVR5cGU+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGJhc2VEYXRhOiBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZWRpdERhdGE6IEVkaXREYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4sXG4gICAgICAgIGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCxcbiAgICAgICAgZWRpdERpYWxvZ0RhdGE6IEVkaXREYXRhSW50ZXJuYWw8RW50aXR5VHlwZT5cbiAgICApIHtcbiAgICAgICAgdGhpcy5iYXNlRGF0YSA9IGJhc2VEYXRhO1xuICAgICAgICB0aGlzLmNyZWF0ZURpYWxvZ0RhdGEgPSBjcmVhdGVEaWFsb2dEYXRhO1xuICAgICAgICB0aGlzLmVkaXREYXRhID0gZWRpdERpYWxvZ0RhdGE7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBCdWlsZGVyIGZvciB0aGUgdGFibGUgQmFzZURhdGEuIFNldHMgZGVmYXVsdCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlRGF0YUJ1aWxkZXI8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgQmFzZUJ1aWxkZXI8QmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiwgQmFzZURhdGE8RW50aXR5VHlwZT4+IHtcblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+LCBnbG9iYWxDb25maWc6IE5neEdsb2JhbERlZmF1bHRWYWx1ZXMpIHtcbiAgICAgICAgc3VwZXIoZ2xvYmFsQ29uZmlnLCBkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHByb3RlY3RlZCBnZW5lcmF0ZUJhc2VEYXRhKGRhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+KTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPihkYXRhLCB0aGlzLmdsb2JhbENvbmZpZyk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBUYWJsZURhdGEuIFJlcXVpcmVzIGFsbCBkZWZhdWx0IHZhbHVlcyB0aGUgdXNlciBjYW4gbGVhdmUgb3V0LlxuICovXG5leHBvcnQgY2xhc3MgQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgQmFzZURhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNlYXJjaExhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGVmYXVsdEVkaXQ6ICdkaWFsb2cnIHwgJ3BhZ2UnO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgc2VhcmNoU3RyaW5nOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd0NyZWF0ZTogKCkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93UmVhZDogKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd1VwZGF0ZTogKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd0RlbGV0ZTogKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICB0YWJsZUFjdGlvbnM6IFRhYmxlQWN0aW9uSW50ZXJuYWw8RW50aXR5VHlwZT5bXTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHRhYmxlQWN0aW9uc0xhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBkaXNwbGF5TG9hZGluZ1NwaW5uZXI6IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd0pzb25JbXBvcnQ6IGJvb2xlYW47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBpbXBvcnRBY3Rpb25EYXRhOiBPbWl0PEJhc2VUYWJsZUFjdGlvbkludGVybmFsLCAnYWN0aW9uJz47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgQEluamVjdChOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsQ29uZmlnOiBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzXG4gICAgKSB7XG4gICAgICAgIHRoaXMudGl0bGUgPSBkYXRhLnRpdGxlO1xuICAgICAgICB0aGlzLmRpc3BsYXlDb2x1bW5zID0gZGF0YS5kaXNwbGF5Q29sdW1ucztcbiAgICAgICAgdGhpcy5FbnRpdHlTZXJ2aWNlQ2xhc3MgPSBkYXRhLkVudGl0eVNlcnZpY2VDbGFzcztcbiAgICAgICAgdGhpcy5FbnRpdHlDbGFzcyA9IGRhdGEuRW50aXR5Q2xhc3M7XG4gICAgICAgIHRoaXMuc2VhcmNoTGFiZWwgPSBnZXRDb25maWdWYWx1ZShnbG9iYWxDb25maWcuc2VhcmNoTGFiZWwsIGRhdGEuc2VhcmNoTGFiZWwpO1xuICAgICAgICB0aGlzLmNyZWF0ZUJ1dHRvbkxhYmVsID0gZ2V0Q29uZmlnVmFsdWUoZ2xvYmFsQ29uZmlnLmNyZWF0ZUxhYmVsLCBkYXRhLmNyZWF0ZUJ1dHRvbkxhYmVsKTtcbiAgICAgICAgdGhpcy5kZWZhdWx0RWRpdCA9IGdldENvbmZpZ1ZhbHVlKGdsb2JhbENvbmZpZy5kZWZhdWx0RWRpdE1ldGhvZCwgZGF0YS5kZWZhdWx0RWRpdCk7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gZGF0YS5zZWFyY2hTdHJpbmcgPz8gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uO1xuICAgICAgICBpZiAoZGF0YS50YWJsZUFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVBY3Rpb25zID0gZGF0YS50YWJsZUFjdGlvbnMubWFwKHRBID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAgICAgICAgIHJldHVybiB0QS50eXBlID09PSAnZGVmYXVsdCcgPyBuZXcgQmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwodEEsIGdsb2JhbENvbmZpZykgOiBuZXcgTXVsdGlTZWxlY3RBY3Rpb25JbnRlcm5hbCh0QSwgZ2xvYmFsQ29uZmlnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWJsZUFjdGlvbnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRhYmxlQWN0aW9uc0xhYmVsID0gZ2V0Q29uZmlnVmFsdWUoZ2xvYmFsQ29uZmlnLmFjdGlvbnNMYWJlbCwgZGF0YS50YWJsZUFjdGlvbnNMYWJlbCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxvYWRpbmdTcGlubmVyID0gZGF0YS5kaXNwbGF5TG9hZGluZ1NwaW5uZXIgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd0pzb25JbXBvcnQgPSBkYXRhLmFsbG93SnNvbkltcG9ydCA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5pbXBvcnRBY3Rpb25EYXRhID0gdGhpcy5idWlsZEltcG9ydEFjdGlvbkRhdGEoZGF0YS5pbXBvcnRBY3Rpb25EYXRhKTtcbiAgICAgICAgdGhpcy5lZGl0ID0gZGF0YS5lZGl0O1xuICAgICAgICB0aGlzLmNyZWF0ZSA9IGRhdGEuY3JlYXRlO1xuICAgICAgICB0aGlzLmFsbG93Q3JlYXRlID0gdGhpcy5hbGxvd0RhdGFUb0Z1bmN0aW9uKGRhdGEuYWxsb3dDcmVhdGUpO1xuICAgICAgICB0aGlzLmFsbG93UmVhZCA9IHRoaXMuYWxsb3dEYXRhVG9GdW5jdGlvbihkYXRhLmFsbG93UmVhZCk7XG4gICAgICAgIHRoaXMuYWxsb3dVcGRhdGUgPSB0aGlzLmFsbG93RGF0YVRvRnVuY3Rpb24oZGF0YS5hbGxvd1VwZGF0ZSk7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0aGlzLmFsbG93RGF0YVRvRnVuY3Rpb24oZGF0YS5hbGxvd0RlbGV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEltcG9ydEFjdGlvbkRhdGEoXG4gICAgICAgIGltcG9ydEFjdGlvbkRhdGE/OiBPbWl0PEJhc2VUYWJsZUFjdGlvbiwgJ2FjdGlvbicgfCAncmVxdWlyZUNvbmZpcm1EaWFsb2cnIHwgJ3R5cGUnPlxuICAgICk6IE9taXQ8QmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwsICdhY3Rpb24nPiB7XG4gICAgICAgIGltcG9ydEFjdGlvbkRhdGEgPSBpbXBvcnRBY3Rpb25EYXRhID8/IHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnSW1wb3J0IChKU09OKScsXG4gICAgICAgICAgICBjb25maXJtRGlhbG9nRGF0YTogbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZylcbiAgICAgICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCB0aGlzLmdsb2JhbENvbmZpZy5jb25maXJtSW1wb3J0SnNvblRleHQpXG4gICAgICAgICAgICAgICAgLmdldFJlc3VsdCgpXG4gICAgICAgIH07XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGNvbnN0IGRhdGE6IE9taXQ8QmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwsICdhY3Rpb24nPiA9IHtcbiAgICAgICAgICAgIC4uLmltcG9ydEFjdGlvbkRhdGEsXG4gICAgICAgICAgICBlbmFibGVkOiBpbXBvcnRBY3Rpb25EYXRhLmVuYWJsZWQgPz8gZGVmYXVsdFRydWUsXG4gICAgICAgICAgICByZXF1aXJlQ29uZmlybURpYWxvZzogZGVmYXVsdEZhbHNlLFxuICAgICAgICAgICAgY29uZmlybURpYWxvZ0RhdGE6IG5ldyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5nbG9iYWxDb25maWcsIGltcG9ydEFjdGlvbkRhdGEuY29uZmlybURpYWxvZ0RhdGEpLmdldFJlc3VsdCgpLFxuICAgICAgICAgICAgdHlwZTogJ2RlZmF1bHQnXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWxsb3dEYXRhVG9GdW5jdGlvbih2YWx1ZT86IGJvb2xlYW4gfCAoKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW4pKTogKChlbnRpdHk/OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0RmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgQnVpbGRlciBmb3IgdGhlIGNvbXBsZXRlIFRhYmxlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcyBhbmQgdmFsaWRhdGVzIHVzZXIgaW5wdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFCdWlsZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIEJhc2VCdWlsZGVyPFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBUYWJsZURhdGE8RW50aXR5VHlwZT4+IHtcblxuICAgIGNvbnN0cnVjdG9yKGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlcywgZGF0YTogVGFibGVEYXRhPEVudGl0eVR5cGU+KSB7XG4gICAgICAgIHN1cGVyKGdsb2JhbENvbmZpZywgZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVCYXNlRGF0YShkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pOiBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIGNvbnN0IGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCA9IG5ldyBDcmVhdGVEaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZywgZGF0YS5jcmVhdGVEaWFsb2dEYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgZWRpdERpYWxvZ0RhdGE6IEVkaXREYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4gPSBuZXcgRWRpdERpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCBkYXRhLmVkaXREYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4gPSBuZXcgQmFzZURhdGFCdWlsZGVyKGRhdGEuYmFzZURhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgcmV0dXJuIG5ldyBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPihcbiAgICAgICAgICAgIGJhc2VEYXRhLFxuICAgICAgICAgICAgY3JlYXRlRGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGVkaXREaWFsb2dEYXRhXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGVJbnB1dChkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGRhdGEuYmFzZURhdGEudGFibGVBY3Rpb25zPy5sZW5ndGggJiYgZGF0YS5iYXNlRGF0YS5kaXNwbGF5Q29sdW1ucy5maW5kKGRwID0+IGRwLmRpc3BsYXlOYW1lID09PSAnc2VsZWN0JykpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgVGhlIG5hbWUgXCJzZWxlY3RcIiBmb3IgYSBkaXNwbGF5IGNvbHVtbiBpcyByZXNlcnZlZCBmb3IgdGhlIG11bHRpLXNlbGVjdCBhY3Rpb24gZnVuY3Rpb25hbGl0eS5cbiAgICAgICAgICAgICAgICBQbGVhc2UgY2hvb3NlIGEgZGlmZmVyZW50IG5hbWUuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICAhZGF0YS5iYXNlRGF0YS5FbnRpdHlDbGFzc1xuICAgICAgICAgICAgJiYgKFxuICAgICAgICAgICAgICAgIGRhdGEuYmFzZURhdGEuYWxsb3dDcmVhdGUgIT09IGZhbHNlXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd1JlYWQgIT09IGZhbHNlXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd1VwZGF0ZSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93RGVsZXRlICE9PSBmYWxzZVxuICAgICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBJbnB1dCBkYXRhIFwiRW50aXR5Q2xhc3NcIi5cbiAgICAgICAgICAgICAgICBZb3UgY2FuIG9ubHkgb21pdCB0aGlzIHZhbHVlIGlmIHlvdSBjYW4gbmVpdGhlciBjcmVhdGUsIHJlYWQsIHVwZGF0ZSBvciBkZWxldGUgZW50aXRpZXMuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5lZGl0RGF0YSAmJiBkYXRhLmJhc2VEYXRhLmRlZmF1bHRFZGl0ID09ICdwYWdlJykge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBUaGUgY29uZmlndXJlZCBlZGl0IGRhdGEgY2FuJ3QgYmUgdXNlZCwgYXMgdGhlIGVudGl0eSBnZXRzIGVkaXRlZCBvbiBpdHMgb3duIHBhZ2UuXG4gICAgICAgICAgICAgICAgWW91IG5lZWQgdG8gcHJvdmlkZSB2YWx1ZXMgZm9yIHRoZSBcIk5HWF9FRElUX0RBVEFcIiwgXCJOR1hfRURJVF9EQVRBX0VOVElUWVwiIGFuZCBcIk5HWF9FRElUX0RBVEFfRU5USVRZX1NFUlZJQ0VcIiBpbmplY3Rpb24ga2V5c1xuICAgICAgICAgICAgICAgIG9uIHRoZSByb3V0ZSB3aGVyZSB0aGUgZWRpdCBwYWdlIGlzIHVzZWQuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgZGVmYXVsdCBzZWFyY2ggZnVuY3Rpb24gdGFrZW4gZnJvbSBnb29nbGVzIG1hdCB0YWJsZS5cbiAqIFRoaXMgd2lsbCBiZSB1c2VkIGlmIG5vIGN1c3RvbSBzZWFyY2ggZnVuY3Rpb24gaXMgcHJvdmlkZWQgYnkgdGhlIGNvbmZpZ3VyYXRpb24uXG4gKlxuICogSXQgZ2VuZXJhdGVzIGEgc3RyaW5nIGZyb20gYW4gZW50aXR5IHdoaWNoIGlzIHRoZW4gdXNlZCB0byBjb21wYXJlIGl0IHRvIHRoZSBzZWFyY2ggaW5wdXQuXG4gKlxuICogQHBhcmFtIGVudGl0eSAtIEFuIGVudGl0eSB0aGF0IGlzIGluIHRoZSBzZWFyY2guXG4gKiBAcmV0dXJucyBUaGUgZ2VuZXJhdGVkIHN0cmluZyBvZiB0aGUgZ2l2ZW4gZW50aXR5IHVzZWQgZm9yIGNvbXBhcmlzb24gd2l0aCB0aGUgc2VhcmNoIGlucHV0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oZW50aXR5OiBFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2hTdHJpbmc6IHN0cmluZyA9IE9iamVjdC5rZXlzKGVudGl0eSlcbiAgICAgICAgLnJlZHVjZSgoY3VycmVudFRlcm06IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHtjdXJyZW50VGVybX0keyhlbnRpdHkgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV194pesYDtcbiAgICAgICAgfSwgJycpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBzZWFyY2hTdHJpbmc7XG59Il19
|
|
293
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXpELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQy9GLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQTZCLE1BQU0sK0NBQStDLENBQUM7QUFDcEgsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLHFDQUFxQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxlQUFlLEVBQW9CLE1BQU0saUNBQWlDLENBQUM7QUFHcEY7O0dBRUc7QUFDSCxXQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWlCVDtJQWhCdkIsK0NBQStDO0lBQy9DLElBQUksR0FBYyxTQUFTLENBQUM7SUFDNUIsK0NBQStDO0lBQy9DLFdBQVcsQ0FBUztJQUNwQiwrQ0FBK0M7SUFDL0MsTUFBTSxDQUF5QjtJQUMvQiwrQ0FBK0M7SUFDL0MsT0FBTyxDQUFrQjtJQUN6QiwrQ0FBK0M7SUFDL0Msb0JBQW9CLENBQWtCO0lBQ3RDLCtDQUErQztJQUMvQyxpQkFBaUIsQ0FBNEI7SUFFN0MsWUFDSSxJQUFxQixFQUVGLFlBQW9DO1FBQXBD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QUUsQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLEVBQUU7WUFDNUcsTUFBTSxJQUFJLEtBQUssQ0FDWDtnREFDZ0MsQ0FDbkMsQ0FBQztTQUNMO1FBQ0QsSUFDSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVztlQUN2QixDQUNDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUs7bUJBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUs7bUJBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUs7bUJBQ25DLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLEtBQUssQ0FDekMsRUFDSDtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQ1g7eUdBQ3lGLENBQzVGLENBQUM7U0FDTDtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxNQUFNLEVBQUU7WUFDdEQsTUFBTSxJQUFJLEtBQUssQ0FDWDs7MERBRTBDLENBQzdDLENBQUM7U0FDTDtJQUNMLENBQUM7Q0FDSjtBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQWdELE1BQWtCO0lBQ25HLE1BQU0sWUFBWSxHQUFXLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQzNDLE1BQU0sQ0FBQyxDQUFDLFdBQW1CLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDekMsT0FBTyxHQUFHLFdBQVcsR0FBSSxNQUFrQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUM7SUFDeEUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztTQUNMLFdBQVcsRUFBRSxDQUFDO0lBQ25CLE9BQU8sWUFBWSxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VCdWlsZGVyIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9iYXNlLmJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUsIEVudGl0eUNsYXNzTmV3YWJsZSwgRW50aXR5U2VydmljZUNsYXNzTmV3YWJsZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IE5HWF9JTlRFUk5BTF9HTE9CQUxfREVGQVVMVF9WQUxVRVMgfSBmcm9tICcuLi8uLi9kZWZhdWx0LWdsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBkZWZhdWx0RmFsc2UgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZGVmYXVsdC1mYWxzZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBkZWZhdWx0VHJ1ZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9kZWZhdWx0LXRydWUuZnVuY3Rpb24nO1xuaW1wb3J0IHsgZ2V0Q29uZmlnVmFsdWUgfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvZ2V0LWNvbmZpZy12YWx1ZS5mdW5jdGlvbic7XG5pbXBvcnQgeyBpc0FzeW5jRnVuY3Rpb24gfSBmcm9tICcuLi8uLi9mdW5jdGlvbnMvaXMtYXN5bmMtZnVuY3Rpb24uZnVuY3Rpb24nO1xuaW1wb3J0IHsgTmd4R2xvYmFsRGVmYXVsdFZhbHVlcyB9IGZyb20gJy4uLy4uL2dsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIsIENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgQ3JlYXRlRGF0YUJ1aWxkZXIsIENyZWF0ZURhdGFJbnRlcm5hbCB9IGZyb20gJy4vY3JlYXRlLWRpYWxvZy9jcmVhdGUtZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IEVkaXREYXRhQnVpbGRlciwgRWRpdERhdGFJbnRlcm5hbCB9IGZyb20gJy4vZWRpdC1kaWFsb2cvZWRpdC1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZURhdGEsIEJhc2VUYWJsZUFjdGlvbiwgRGlzcGxheUNvbHVtbiwgTXVsdGlTZWxlY3RBY3Rpb24sIFRhYmxlRGF0YSB9IGZyb20gJy4vdGFibGUtZGF0YSc7XG5cbi8qKlxuICogVGhlIGludGVybmFsIEJhc2VUYWJsZUFjdGlvbi4gU2V0cyBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VUYWJsZUFjdGlvbkludGVybmFsIGltcGxlbWVudHMgQmFzZVRhYmxlQWN0aW9uIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHR5cGU6ICdkZWZhdWx0JyA9ICdkZWZhdWx0JztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhY3Rpb246ICgpID0+IFByb21pc2U8dW5rbm93bj47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlbmFibGVkOiAoKCkgPT4gYm9vbGVhbik7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICByZXF1aXJlQ29uZmlybURpYWxvZzogKCgpID0+IGJvb2xlYW4pO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY29uZmlybURpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWw7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgZGF0YTogQmFzZVRhYmxlQWN0aW9uLFxuICAgICAgICBASW5qZWN0KE5HWF9JTlRFUk5BTF9HTE9CQUxfREVGQVVMVF9WQUxVRVMpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBnbG9iYWxDb25maWc6IE5neEdsb2JhbERlZmF1bHRWYWx1ZXNcbiAgICApIHtcbiAgICAgICAgdGhpcy5kaXNwbGF5TmFtZSA9IGRhdGEuZGlzcGxheU5hbWU7XG4gICAgICAgIHRoaXMuYWN0aW9uID0gdGhpcy5mdW5jdGlvblRvQXN5bmMoZGF0YS5hY3Rpb24pO1xuICAgICAgICB0aGlzLmVuYWJsZWQgPSBkYXRhLmVuYWJsZWQgPz8gZGVmYXVsdFRydWU7XG4gICAgICAgIHRoaXMucmVxdWlyZUNvbmZpcm1EaWFsb2cgPSBkYXRhLnJlcXVpcmVDb25maXJtRGlhbG9nID8/IGRlZmF1bHRGYWxzZTtcbiAgICAgICAgdGhpcy5jb25maXJtRGlhbG9nRGF0YSA9IG5ldyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5nbG9iYWxDb25maWcsIGRhdGEuY29uZmlybURpYWxvZ0RhdGEpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCBnbG9iYWxDb25maWcuY29uZmlybUJhc2VBY3Rpb25UZXh0KVxuICAgICAgICAgICAgLmdldFJlc3VsdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZnVuY3Rpb25Ub0FzeW5jKG9yaWdpbmFsRnVuY3Rpb246ICgoKSA9PiB1bmtub3duKSB8ICgoKSA9PiBQcm9taXNlPHVua25vd24+KSk6ICgpID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICBpZiAoaXNBc3luY0Z1bmN0aW9uKG9yaWdpbmFsRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGdW5jdGlvbiBhcyAoKSA9PiBQcm9taXNlPHVua25vd24+O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgcmV0dXJuICgpID0+IG5ldyBQcm9taXNlPHVua25vd24+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShvcmlnaW5hbEZ1bmN0aW9uKCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBCYXNlVGFibGVBY3Rpb24uIFNldHMgZGVmYXVsdCB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNdWx0aVNlbGVjdEFjdGlvbkludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICB0eXBlOiAnbXVsdGktc2VsZWN0JyA9ICdtdWx0aS1zZWxlY3QnO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFjdGlvbjogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gUHJvbWlzZTx1bmtub3duPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGVuYWJsZWQ6ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHJlcXVpcmVDb25maXJtRGlhbG9nOiAoKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbik7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjb25maXJtRGlhbG9nRGF0YTogQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkYXRhOiBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPixcbiAgICAgICAgQEluamVjdChOR1hfSU5URVJOQUxfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2xvYmFsQ29uZmlnOiBOZ3hHbG9iYWxEZWZhdWx0VmFsdWVzXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheU5hbWUgPSBkYXRhLmRpc3BsYXlOYW1lO1xuICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuZnVuY3Rpb25Ub0FzeW5jKGRhdGEuYWN0aW9uKTtcbiAgICAgICAgdGhpcy5lbmFibGVkID0gZGF0YS5lbmFibGVkID8/ICgoZW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gISFlbnRpdGllcy5sZW5ndGgpO1xuICAgICAgICB0aGlzLnJlcXVpcmVDb25maXJtRGlhbG9nID0gZGF0YS5yZXF1aXJlQ29uZmlybURpYWxvZyA/PyBkZWZhdWx0RmFsc2U7XG4gICAgICAgIHRoaXMuY29uZmlybURpYWxvZ0RhdGEgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCBkYXRhLmNvbmZpcm1EaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgZ2xvYmFsQ29uZmlnLmNvbmZpcm1CYXNlQWN0aW9uVGV4dClcbiAgICAgICAgICAgIC5nZXRSZXN1bHQoKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgIHByaXZhdGUgZnVuY3Rpb25Ub0FzeW5jKG9yaWdpbmFsRnVuY3Rpb246ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiB1bmtub3duKSB8ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBQcm9taXNlPHVua25vd24+KSk6IChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+IFByb21pc2U8dW5rbm93bj4ge1xuICAgICAgICBpZiAoaXNBc3luY0Z1bmN0aW9uKG9yaWdpbmFsRnVuY3Rpb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gb3JpZ2luYWxGdW5jdGlvbiBhcyAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBQcm9taXNlPHVua25vd24+O1xuICAgICAgICB9XG5cbiAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgcmV0dXJuIChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+IG5ldyBQcm9taXNlPHVua25vd24+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZShvcmlnaW5hbEZ1bmN0aW9uKHNlbGVjdGVkRW50aXRpZXMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgSW50ZXJuYWwgVGFibGUgQWN0aW9uLiBTZXRzIGRlZmF1bHQgdmFsdWVzLlxuICovXG5leHBvcnQgdHlwZSBUYWJsZUFjdGlvbkludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gPVxuICAgIEJhc2VUYWJsZUFjdGlvbkludGVybmFsIHwgTXVsdGlTZWxlY3RBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuLyoqXG4gKiBUaGUgaW50ZXJuYWwgVGFibGVEYXRhLiBSZXF1aXJlcyBhbGwgZGVmYXVsdCB2YWx1ZXMgdGhlIHVzZXIgY2FuIGxlYXZlIG91dC5cbiAqL1xuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBUYWJsZURhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVEYXRhOiBDcmVhdGVEYXRhSW50ZXJuYWw7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBlZGl0RGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPixcbiAgICAgICAgY3JlYXRlRGF0YTogQ3JlYXRlRGF0YUludGVybmFsLFxuICAgICAgICBlZGl0RGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPlxuICAgICkge1xuICAgICAgICB0aGlzLmJhc2VEYXRhID0gYmFzZURhdGE7XG4gICAgICAgIHRoaXMuY3JlYXRlRGF0YSA9IGNyZWF0ZURhdGE7XG4gICAgICAgIHRoaXMuZWRpdERhdGEgPSBlZGl0RGF0YTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIEJ1aWxkZXIgZm9yIHRoZSB0YWJsZSBCYXNlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEJhc2VEYXRhQnVpbGRlcjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBCYXNlQnVpbGRlcjxCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBCYXNlRGF0YTxFbnRpdHlUeXBlPj4ge1xuXG4gICAgY29uc3RydWN0b3IoZGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4sIGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlcykge1xuICAgICAgICBzdXBlcihnbG9iYWxDb25maWcsIGRhdGEpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlQmFzZURhdGEoZGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4pOiBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+KGRhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKTtcbiAgICB9XG59XG5cbi8qKlxuICogVGhlIGludGVybmFsIFRhYmxlRGF0YS4gUmVxdWlyZXMgYWxsIGRlZmF1bHQgdmFsdWVzIHRoZSB1c2VyIGNhbiBsZWF2ZSBvdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBCYXNlRGF0YTxFbnRpdHlUeXBlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGlzcGxheUNvbHVtbnM6IERpc3BsYXlDb2x1bW48RW50aXR5VHlwZT5bXTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIEVudGl0eVNlcnZpY2VDbGFzczogRW50aXR5U2VydmljZUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNlYXJjaExhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGVmYXVsdEVkaXQ6ICdkaWFsb2cnIHwgJ3BhZ2UnO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZGVmYXVsdENyZWF0ZTogJ2RpYWxvZycgfCAncGFnZSc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBzZWFyY2hTdHJpbmc6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93Q3JlYXRlOiAoKSA9PiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgYWxsb3dSZWFkOiAoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93VXBkYXRlOiAoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93RGVsZXRlOiAoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHRhYmxlQWN0aW9uczogVGFibGVBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgdGFibGVBY3Rpb25zTGFiZWw6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRpc3BsYXlMb2FkaW5nU3Bpbm5lcjogYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93SnNvbkltcG9ydDogYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGltcG9ydEFjdGlvbkRhdGE6IE9taXQ8QmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwsICdhY3Rpb24nPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIEVudGl0eUNsYXNzPzogRW50aXR5Q2xhc3NOZXdhYmxlPEVudGl0eVR5cGU+O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgZWRpdD86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd247XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGRhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+LFxuICAgICAgICBASW5qZWN0KE5HWF9JTlRFUk5BTF9HTE9CQUxfREVGQVVMVF9WQUxVRVMpXG4gICAgICAgIHByb3RlY3RlZCByZWFkb25seSBnbG9iYWxDb25maWc6IE5neEdsb2JhbERlZmF1bHRWYWx1ZXNcbiAgICApIHtcbiAgICAgICAgdGhpcy50aXRsZSA9IGRhdGEudGl0bGU7XG4gICAgICAgIHRoaXMuZGlzcGxheUNvbHVtbnMgPSBkYXRhLmRpc3BsYXlDb2x1bW5zO1xuICAgICAgICB0aGlzLkVudGl0eVNlcnZpY2VDbGFzcyA9IGRhdGEuRW50aXR5U2VydmljZUNsYXNzO1xuICAgICAgICB0aGlzLkVudGl0eUNsYXNzID0gZGF0YS5FbnRpdHlDbGFzcztcbiAgICAgICAgdGhpcy5zZWFyY2hMYWJlbCA9IGdldENvbmZpZ1ZhbHVlKGdsb2JhbENvbmZpZy5zZWFyY2hMYWJlbCwgZGF0YS5zZWFyY2hMYWJlbCk7XG4gICAgICAgIHRoaXMuY3JlYXRlQnV0dG9uTGFiZWwgPSBnZXRDb25maWdWYWx1ZShnbG9iYWxDb25maWcuY3JlYXRlTGFiZWwsIGRhdGEuY3JlYXRlQnV0dG9uTGFiZWwpO1xuICAgICAgICB0aGlzLmRlZmF1bHRFZGl0ID0gZ2V0Q29uZmlnVmFsdWUoZ2xvYmFsQ29uZmlnLmRlZmF1bHRFZGl0TWV0aG9kLCBkYXRhLmRlZmF1bHRFZGl0KTtcbiAgICAgICAgdGhpcy5kZWZhdWx0Q3JlYXRlID0gZ2V0Q29uZmlnVmFsdWUoZ2xvYmFsQ29uZmlnLmRlZmF1bHRDcmVhdGVNZXRob2QsIGRhdGEuZGVmYXVsdENyZWF0ZSk7XG4gICAgICAgIHRoaXMuc2VhcmNoU3RyaW5nID0gZGF0YS5zZWFyY2hTdHJpbmcgPz8gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uO1xuICAgICAgICBpZiAoZGF0YS50YWJsZUFjdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGFibGVBY3Rpb25zID0gZGF0YS50YWJsZUFjdGlvbnMubWFwKHRBID0+IHtcbiAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuICAgICAgICAgICAgICAgIHJldHVybiB0QS50eXBlID09PSAnZGVmYXVsdCcgPyBuZXcgQmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwodEEsIGdsb2JhbENvbmZpZykgOiBuZXcgTXVsdGlTZWxlY3RBY3Rpb25JbnRlcm5hbCh0QSwgZ2xvYmFsQ29uZmlnKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50YWJsZUFjdGlvbnMgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRhYmxlQWN0aW9uc0xhYmVsID0gZ2V0Q29uZmlnVmFsdWUoZ2xvYmFsQ29uZmlnLmFjdGlvbnNMYWJlbCwgZGF0YS50YWJsZUFjdGlvbnNMYWJlbCk7XG4gICAgICAgIHRoaXMuZGlzcGxheUxvYWRpbmdTcGlubmVyID0gZGF0YS5kaXNwbGF5TG9hZGluZ1NwaW5uZXIgPz8gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd0pzb25JbXBvcnQgPSBkYXRhLmFsbG93SnNvbkltcG9ydCA/PyBmYWxzZTtcbiAgICAgICAgdGhpcy5pbXBvcnRBY3Rpb25EYXRhID0gdGhpcy5idWlsZEltcG9ydEFjdGlvbkRhdGEoZGF0YS5pbXBvcnRBY3Rpb25EYXRhKTtcbiAgICAgICAgdGhpcy5lZGl0ID0gZGF0YS5lZGl0O1xuICAgICAgICB0aGlzLmNyZWF0ZSA9IGRhdGEuY3JlYXRlO1xuICAgICAgICB0aGlzLmFsbG93Q3JlYXRlID0gdGhpcy5hbGxvd0RhdGFUb0Z1bmN0aW9uKGRhdGEuYWxsb3dDcmVhdGUpO1xuICAgICAgICB0aGlzLmFsbG93UmVhZCA9IHRoaXMuYWxsb3dEYXRhVG9GdW5jdGlvbihkYXRhLmFsbG93UmVhZCk7XG4gICAgICAgIHRoaXMuYWxsb3dVcGRhdGUgPSB0aGlzLmFsbG93RGF0YVRvRnVuY3Rpb24oZGF0YS5hbGxvd1VwZGF0ZSk7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0aGlzLmFsbG93RGF0YVRvRnVuY3Rpb24oZGF0YS5hbGxvd0RlbGV0ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBidWlsZEltcG9ydEFjdGlvbkRhdGEoXG4gICAgICAgIGltcG9ydEFjdGlvbkRhdGE/OiBPbWl0PEJhc2VUYWJsZUFjdGlvbiwgJ2FjdGlvbicgfCAncmVxdWlyZUNvbmZpcm1EaWFsb2cnIHwgJ3R5cGUnPlxuICAgICk6IE9taXQ8QmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwsICdhY3Rpb24nPiB7XG4gICAgICAgIGltcG9ydEFjdGlvbkRhdGEgPSBpbXBvcnRBY3Rpb25EYXRhID8/IHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAnSW1wb3J0IChKU09OKScsXG4gICAgICAgICAgICBjb25maXJtRGlhbG9nRGF0YTogbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZylcbiAgICAgICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RleHQnLCB0aGlzLmdsb2JhbENvbmZpZy5jb25maXJtSW1wb3J0SnNvblRleHQpXG4gICAgICAgICAgICAgICAgLmdldFJlc3VsdCgpXG4gICAgICAgIH07XG4gICAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICAgIGNvbnN0IGRhdGE6IE9taXQ8QmFzZVRhYmxlQWN0aW9uSW50ZXJuYWwsICdhY3Rpb24nPiA9IHtcbiAgICAgICAgICAgIC4uLmltcG9ydEFjdGlvbkRhdGEsXG4gICAgICAgICAgICBlbmFibGVkOiBpbXBvcnRBY3Rpb25EYXRhLmVuYWJsZWQgPz8gZGVmYXVsdFRydWUsXG4gICAgICAgICAgICByZXF1aXJlQ29uZmlybURpYWxvZzogZGVmYXVsdEZhbHNlLFxuICAgICAgICAgICAgY29uZmlybURpYWxvZ0RhdGE6IG5ldyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5nbG9iYWxDb25maWcsIGltcG9ydEFjdGlvbkRhdGEuY29uZmlybURpYWxvZ0RhdGEpLmdldFJlc3VsdCgpLFxuICAgICAgICAgICAgdHlwZTogJ2RlZmF1bHQnXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWxsb3dEYXRhVG9GdW5jdGlvbih2YWx1ZT86IGJvb2xlYW4gfCAoKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW4pKTogKChlbnRpdHk/OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuKSB7XG4gICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gZGVmYXVsdFRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnYm9vbGVhbicpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBkZWZhdWx0RmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgQnVpbGRlciBmb3IgdGhlIGNvbXBsZXRlIFRhYmxlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcyBhbmQgdmFsaWRhdGVzIHVzZXIgaW5wdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFCdWlsZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIEJhc2VCdWlsZGVyPFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBUYWJsZURhdGE8RW50aXR5VHlwZT4+IHtcblxuICAgIGNvbnN0cnVjdG9yKGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlcywgZGF0YTogVGFibGVEYXRhPEVudGl0eVR5cGU+KSB7XG4gICAgICAgIHN1cGVyKGdsb2JhbENvbmZpZywgZGF0YSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVCYXNlRGF0YShkYXRhOiBUYWJsZURhdGE8RW50aXR5VHlwZT4pOiBUYWJsZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG5cbiAgICAgICAgY29uc3QgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGF0YUludGVybmFsID0gbmV3IENyZWF0ZURhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCBkYXRhLmNyZWF0ZURhdGEpLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBlZGl0RGlhbG9nRGF0YTogRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiA9IG5ldyBFZGl0RGF0YUJ1aWxkZXIodGhpcy5nbG9iYWxDb25maWcsIGRhdGEuZWRpdERhdGEpLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiA9IG5ldyBCYXNlRGF0YUJ1aWxkZXIoZGF0YS5iYXNlRGF0YSwgdGhpcy5nbG9iYWxDb25maWcpLmdldFJlc3VsdCgpO1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+KFxuICAgICAgICAgICAgYmFzZURhdGEsXG4gICAgICAgICAgICBjcmVhdGVEaWFsb2dEYXRhLFxuICAgICAgICAgICAgZWRpdERpYWxvZ0RhdGFcbiAgICAgICAgKTtcbiAgICB9XG5cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZUlucHV0KGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS50YWJsZUFjdGlvbnM/Lmxlbmd0aCAmJiBkYXRhLmJhc2VEYXRhLmRpc3BsYXlDb2x1bW5zLmZpbmQoZHAgPT4gZHAuZGlzcGxheU5hbWUgPT09ICdzZWxlY3QnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBUaGUgbmFtZSBcInNlbGVjdFwiIGZvciBhIGRpc3BsYXkgY29sdW1uIGlzIHJlc2VydmVkIGZvciB0aGUgbXVsdGktc2VsZWN0IGFjdGlvbiBmdW5jdGlvbmFsaXR5LlxuICAgICAgICAgICAgICAgIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgbmFtZS5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICFkYXRhLmJhc2VEYXRhLkVudGl0eUNsYXNzXG4gICAgICAgICAgICAmJiAoXG4gICAgICAgICAgICAgICAgZGF0YS5iYXNlRGF0YS5hbGxvd0NyZWF0ZSAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93UmVhZCAhPT0gZmFsc2VcbiAgICAgICAgICAgICAgICB8fCBkYXRhLmJhc2VEYXRhLmFsbG93VXBkYXRlICE9PSBmYWxzZVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dEZWxldGUgIT09IGZhbHNlXG4gICAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJFbnRpdHlDbGFzc1wiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgaWYgeW91IGNhbiBuZWl0aGVyIGNyZWF0ZSwgcmVhZCwgdXBkYXRlIG9yIGRlbGV0ZSBlbnRpdGllcy5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhLmVkaXREYXRhICYmIGRhdGEuYmFzZURhdGEuZGVmYXVsdEVkaXQgPT0gJ3BhZ2UnKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBjb25maWd1cmVkIGVkaXQgZGF0YSBjYW4ndCBiZSB1c2VkLCBhcyB0aGUgZW50aXR5IGdldHMgZWRpdGVkIG9uIGl0cyBvd24gcGFnZS5cbiAgICAgICAgICAgICAgICBZb3UgbmVlZCB0byBwcm92aWRlIHZhbHVlcyBmb3IgdGhlIFwiTkdYX0VESVRfREFUQVwiLCBcIk5HWF9FRElUX0RBVEFfRU5USVRZXCIgYW5kIFwiTkdYX0VESVRfREFUQV9FTlRJVFlfU0VSVklDRVwiIGluamVjdGlvbiBrZXlzXG4gICAgICAgICAgICAgICAgb24gdGhlIHJvdXRlIHdoZXJlIHRoZSBlZGl0IHBhZ2UgaXMgdXNlZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBkZWZhdWx0IHNlYXJjaCBmdW5jdGlvbiB0YWtlbiBmcm9tIGdvb2dsZXMgbWF0IHRhYmxlLlxuICogVGhpcyB3aWxsIGJlIHVzZWQgaWYgbm8gY3VzdG9tIHNlYXJjaCBmdW5jdGlvbiBpcyBwcm92aWRlZCBieSB0aGUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBJdCBnZW5lcmF0ZXMgYSBzdHJpbmcgZnJvbSBhbiBlbnRpdHkgd2hpY2ggaXMgdGhlbiB1c2VkIHRvIGNvbXBhcmUgaXQgdG8gdGhlIHNlYXJjaCBpbnB1dC5cbiAqIEBwYXJhbSBlbnRpdHkgLSBBbiBlbnRpdHkgdGhhdCBpcyBpbiB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBzdHJpbmcgb2YgdGhlIGdpdmVuIGVudGl0eSB1c2VkIGZvciBjb21wYXJpc29uIHdpdGggdGhlIHNlYXJjaCBpbnB1dC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTZWFyY2hGdW5jdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+KGVudGl0eTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nOiBzdHJpbmcgPSBPYmplY3Qua2V5cyhlbnRpdHkpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Y3VycmVudFRlcm19JHsoZW50aXR5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldfeKXrGA7XG4gICAgICAgIH0sICcnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gc2VhcmNoU3RyaW5nO1xufSJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlLCBFbnRpdHlDbGFzc05ld2FibGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0RhdGEgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy1kYXRhJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUJhc2VEaXNwbGF5Q29sdW1uVmFsdWVDb21wb25lbnQgfSBmcm9tICcuL2Rpc3BsYXktY29sdW1uLXZhbHVlL2Jhc2UtZGlzcGxheS1jb2x1bW4tdmFsdWUuY29tcG9uZW50JztcblxuLyoqXG4gKiBUaGUgRGVmaW5pdGlvbiBvZiBhIENvbHVtbiBpbnNpZGUgdGhlIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc3BsYXlDb2x1bW48RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgaW5zaWRlIHRoZSBoZWFkZXIuXG4gICAgICovXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGF0IHRvIGRpc3BsYXkgaW5zaWRlIHRoZSByb3cuXG4gICAgICovXG4gICAgdmFsdWU6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBBIGN1c3RvbSBjb21wb25lbnQgdG8gdXNlIGluc3RlYWQgb2YgdGhlIHZhbHVlLlxuICAgICAqIFlvdSBzdGlsbCBuZWVkIHRvIHByb3ZpZGUgYSB2YWx1ZSBmdW5jdGlvbiBmb3IgdGhlIHNvcnRpbmcgYnkgaGVhZGVyIHRvIHdvcmsuXG4gICAgICovXG4gICAgQ29tcG9uZW50PzogVHlwZTxOZ3hNYXRFbnRpdHlCYXNlRGlzcGxheUNvbHVtblZhbHVlQ29tcG9uZW50PEVudGl0eVR5cGU+PixcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY2xpY2sgZXZlbnQgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIFRoaXMgY2FuIGJlIHVzZWZ1bCBpZiB5b3VyIGNvbXBvbmVudCBoYXMgYSBjdXN0b20gd2F5IHRvIGhhbmRsZSBjbGlja3MuXG4gICAgICovXG4gICAgZGlzYWJsZUNsaWNrPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEEgdGFibGUgYWN0aW9uIHRoYXQgd2lsbCBydW4gcmVnYXJkbGVzcyBpZiBzb21ldGhpbmcgaGFzIGJlZW4gc2VsZWN0ZWQgaW4gdGhlIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VUYWJsZUFjdGlvbiB7XG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHRhYmxlIGFjdGlvbiB0byBkaXN0aW5jdCBiZXR3ZWVuIGJhc2UgYW5kIG11bHRpLXNlbGVjdCBhY3Rpb25zLlxuICAgICAqL1xuICAgIHR5cGU6ICdkZWZhdWx0JyxcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGFjdGlvbiBpdHNlbGYuXG4gICAgICovXG4gICAgYWN0aW9uOiAoKCkgPT4gdW5rbm93bikgfCAoKCkgPT4gUHJvbWlzZTx1bmtub3duPiksXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86ICgpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IGEgY29uZmlybSBkaWFsb2cgaXMgbmVlZGVkIHRvIHJ1biB0aGUgYWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZXF1aXJlQ29uZmlybURpYWxvZz86ICgpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSB0YWJsZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybURpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIFRoZSBEZWZpbml0aW9uIG9mIGFuIEFjdGlvbiB0aGF0IGNhbiBiZSBydW4gb24gbXVsdGlwbGUgc2VsZWN0ZWQgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHRhYmxlIGFjdGlvbiB0byBkaXN0aW5jdCBiZXR3ZWVuIGJhc2UgYW5kIG11bHRpLXNlbGVjdCBhY3Rpb25zLlxuICAgICAqL1xuICAgIHR5cGU6ICdtdWx0aS1zZWxlY3QnLFxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb24uXG4gICAgICovXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgYWN0aW9uIGl0c2VsZi5cbiAgICAgKi9cbiAgICBhY3Rpb246ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiB1bmtub3duKSB8ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBQcm9taXNlPHVua25vd24+KSxcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGFjdGlvbiBjYW4gYmUgdXNlZC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+ICEhc2VsZWN0ZWRFbnRpdGllcy5sZW5ndGhcbiAgICAgKi9cbiAgICBlbmFibGVkPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgYSBjb25maXJtIGRpYWxvZyBpcyBuZWVkZWQgdG8gcnVuIHRoZSBhY3Rpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlcXVpcmVDb25maXJtRGlhbG9nPzogKHNlbGVjdGVkRW50aXRpZXM6IEVudGl0eVR5cGVbXSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIHRhYmxlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogQW4gYWN0aW9uIGZvciB0aGUgdGFibGUuIENhbiBlaXRoZXIgYmUgaW5kZXBlbmRlbnQgb3IgcnVuIG9uIHRoZSBzZWxlY3RlZCBlbnRpdGllcyBpbiB0aGUgdGFibGUuXG4gKi9cbmV4cG9ydCB0eXBlIFRhYmxlQWN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gPSBCYXNlVGFibGVBY3Rpb24gfCBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPjtcblxuLyoqXG4gKiBUaGUgYmFzZSBkYXRhIG9mIHRoZSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIHRhYmxlLlxuICAgICAqL1xuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmluaXRpb24gb2YgdGhlIGNvbHVtbnMgdG8gZGlzcGxheS4gQ29uc2lzdHMgb2YgdGhlIGRpc3BsYXlOYW1lIHRvIHNob3cgaW4gdGhlIGhlYWRlciBvZiB0aGUgcm93XG4gICAgICogYW5kIHRoZSB2YWx1ZSwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgdmFsdWUgdG8gZGlzcGxheSBpbnNpZGUgYSBjb2x1bW4uXG4gICAgICovXG4gICAgZGlzcGxheUNvbHVtbnM6IERpc3BsYXlDb2x1bW48RW50aXR5VHlwZT5bXSxcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xhc3Mgb2YgdGhlIHNlcnZpY2UgdGhhdCBoYW5kbGVzIHRoZSBlbnRpdGllcy5cbiAgICAgKiBOZWVkcyB0byBiZSBpbmplY3RhYmxlIGFuZCBhbiBleHRlbnNpb24gb2YgdGhlIFwiRW50aXR5U2VydmljZVwiLUNsYXNzLlxuICAgICAqL1xuICAgIEVudGl0eVNlcnZpY2VDbGFzczogbmV3IChodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSA9PiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBDbGFzcyBvZiB0aGUgZW50aXRpZXMgdG8gbWFuYWdlLlxuICAgICAqL1xuICAgIEVudGl0eUNsYXNzPzogRW50aXR5Q2xhc3NOZXdhYmxlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgc2VhcmNoIGJhci4gRGVmYXVsdHMgdG8gXCJTZWFyY2hcIi5cbiAgICAgKi9cbiAgICBzZWFyY2hMYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGJ1dHRvbiBmb3IgYWRkaW5nIG5ldyBlbnRpdGllcy4gRGVmYXVsdHMgdG8gXCJDcmVhdGVcIi5cbiAgICAgKi9cbiAgICBjcmVhdGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGVkaXRpbmcgaGFwcGVucyBpbiBhIGRpYWxvZyBvciBhIHNlcGFyYXRlIHBhZ2UuXG4gICAgICovXG4gICAgZGVmYXVsdEVkaXQ/OiAnZGlhbG9nJyB8ICdwYWdlJyxcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIGN1c3RvbSBlZGl0IG1ldGhvZCB3aGljaCBydW5zIHdoZW4geW91IGNsaWNrIG9uIGEgZW50aXR5LlxuICAgICAqIElmIHlvdSBkb24ndCBuZWVkIGFueSBzcGVjaWFsIGVkaXRpbmcgb2YgZW50cmllcyB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgZWRpdCBkaWFsb2cgaXMgZ2VuZXJhdGVkLlxuICAgICAqL1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIFRha2VzIGEgbWV0aG9kIHRvIHJ1biB3aGVuIHlvdSBjbGljayBvbiB0aGUgbmV3IGJ1dHRvbi5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnl0aGluZyBzcGVjaWFsIHlvdSBjYW4gYWxzbyBvbWl0IHRoaXMuXG4gICAgICogSW4gdGhhdCBjYXNlIGEgZGVmYXVsdCBjcmVhdGUgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBjcmVhdGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaG93IHRoZSBzZWFyY2ggc3RyaW5nIG9mIGVudGl0aWVzIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBzZWFyY2hTdHJpbmc/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gYWRkIG5ldyBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0NyZWF0ZT86IGJvb2xlYW4gfCAoKCkgPT4gYm9vbGVhbiksXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gdmlldyB0aGUgc3BlY2lmaWMgZW50aXR5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgKCkgPT4gdHJ1ZVxuICAgICAqL1xuICAgIGFsbG93UmVhZD86IGJvb2xlYW4gfCAoKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW4pLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIGVkaXQgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1VwZGF0ZT86IGJvb2xlYW4gfCAoKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW4pLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGNhbiBkZWxldGUgdGhpcyBzcGVjaWZpYyBlbnRpdHkuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgYWxsb3dEZWxldGU/OiBib29sZWFuIHwgKChlbnRpdHk/OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuKSxcbiAgICAvKipcbiAgICAgKiBBbGwgQWN0aW9ucyB0aGF0IHlvdSB3YW50IHRvIHJ1biBvbiB0aGUgdGFibGUgY2FuIGJlIGRlZmluZWQgaGVyZS5cbiAgICAgKiAoZS5nLiBEb3dubG9hZCBhcyB6aXAtZmlsZSwgaW1wb3J0IG9yIG1hc3MgZGVsZXRlKS5cbiAgICAgKi9cbiAgICB0YWJsZUFjdGlvbnM/OiBUYWJsZUFjdGlvbjxFbnRpdHlUeXBlPltdLFxuICAgIC8qKlxuICAgICAqIFRoZSBMYWJlbCBmb3IgdGhlIGJ1dHRvbiB0aGF0IG9wZW5zIGFsbCB0YWJsZS1hY3Rpb25zLlxuICAgICAqL1xuICAgIHRhYmxlQWN0aW9uc0xhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgYSBsb2FkaW5nIHNwaW5uZXIgd2hpbGUgdGhlIGVudGl0aWVzIG9mIHRoZSB0YWJsZSBhcmUgbG9hZGVkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGRpc3BsYXlMb2FkaW5nU3Bpbm5lcj86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgSlNPTiBpbXBvcnRzIGFyZSBhbGxvd2VkLlxuICAgICAqIFRoaXMgYWRkcyBhbiB0YWJsZSBzZWxlY3QgYWN0aW9uLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBhbGxvd0pzb25JbXBvcnQ/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERhdGEgdG8gY3VzdG9taXplIHRoZSBqc29uIGltcG9ydCBhY3Rpb24uXG4gICAgICovXG4gICAgaW1wb3J0QWN0aW9uRGF0YT86IE9taXQ8QmFzZVRhYmxlQWN0aW9uLCAnYWN0aW9uJyB8ICdyZXF1aXJlQ29uZmlybURpYWxvZycgfCAndHlwZSc+XG59XG5cbi8qKlxuICogVGhlIGRhdGEgb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEaWFsb2dEYXRhIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy5cbiAgICAgKi9cbiAgICB0aXRsZT86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNyZWF0ZS1idXR0b24gb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJDcmVhdGVcIi5cbiAgICAgKi9cbiAgICBjcmVhdGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNhbmNlbC1idXR0b24gZm9yIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuIERlZmF1bHRzIHRvIFwiQ2FuY2VsXCIuXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGNyZWF0aW9uIG9mIGFuIGVudHJ5IHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICovXG4gICAgY3JlYXRlUmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGNyZWF0ZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybUNyZWF0ZURpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIEFuIGFjdGlvbiB0aGF0IGNhbiBiZSBydW4gZnJvbSBpbnNpZGUgdGhlIGVkaXQgZGlhbG9nIG9yIHBhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEFjdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGFjdGlvbiBpdHNlbGYuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBhY3Rpb246ICgoZW50aXR5OiBFbnRpdHlUeXBlLCBlbnRpdHlQcmlvckNoYW5nZXM6IEVudGl0eVR5cGUpID0+IHVua25vd24pIHwgKChlbnRpdHk6IEVudGl0eVR5cGUsIGVudGl0eVByaW9yQ2hhbmdlczogRW50aXR5VHlwZSkgPT4gUHJvbWlzZTx1bmtub3duPiksXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgZW5hYmxlZD86IChlOiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCBhIGNvbmZpcm0gZGlhbG9nIGlzIG5lZWRlZCB0byBydW4gdGhlIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVxdWlyZUNvbmZpcm1EaWFsb2c/OiAoZTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogVGhlIGRhdGEgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cgb3IgcGFnZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0RGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuXG4gICAgICovXG4gICAgdGl0bGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjb25maXJtLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIlNhdmVcIi5cbiAgICAgKi9cbiAgICBjb25maXJtQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBkZWxldGUtYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nIG9yIHBhZ2UuIERlZmF1bHRzIHRvIFwiRGVsZXRlXCIuXG4gICAgICovXG4gICAgZGVsZXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjYW5jZWwtYnV0dG9uIGZvciB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLiBEZWZhdWx0cyB0byBcIkNhbmNlbFwiLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkZWxldGlvbiBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGRlbGV0ZVJlcXVpcmVzQ29uZmlybURpYWxvZz86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVkaXRpbmcgb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBlZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGRlbGV0ZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybURlbGV0ZURpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YSxcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGVkaXQgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1FZGl0RGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvZiB0aGUgYWN0aW9ucyBidXR0b24uXG4gICAgICovXG4gICAgYWN0aW9uc0xhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEFsbCBhY3Rpb25zIG9mIHRoZSBlZGl0IHBhZ2UvZGlhbG9nLlxuICAgICAqL1xuICAgIGFjdGlvbnM/OiBFZGl0QWN0aW9uPEVudGl0eVR5cGU+W11cbn1cblxuLyoqXG4gKiBBbGwgdGhlIGNvbmZpZ3VyYXRpb24gZGF0YSByZXF1aXJlZCB0byBkaXNwbGF5IGEgbmd4LW1hdC1lbnRpdHktdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFibGVEYXRhPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGRhdGEgZm9yIHRoZSB0YWJsZS1jb21wb25lbnQuXG4gICAgICogSW5jbHVkZXMgc3R1ZmYgbGlrZSB0aGUgdGl0bGUgZm9yIHRoZSB0YWJsZSwgd2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgcm93cyBldGMuXG4gICAgICovXG4gICAgYmFzZURhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICAgICAqIENhbiBiZSBvbWl0dGVkIHdoZW4gc3BlY2lmeWluZyBhIGN1c3RvbSBcImNyZWF0ZVwiIG1ldGhvZCBpbnNpZGUgdGhlIGJhc2VEYXRhLlxuICAgICAqL1xuICAgIGNyZWF0ZURpYWxvZ0RhdGE/OiBDcmVhdGVEaWFsb2dEYXRhLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy5cbiAgICAgKiBDYW4gYmUgb21pdHRlZCB3aGVuIHNwZWNpZnlpbmcgYSBjdXN0b20gXCJlZGl0XCIgbWV0aG9kIGluc2lkZSB0aGUgYmFzZURhdGEuXG4gICAgICovXG4gICAgZWRpdERhdGE/OiBFZGl0RGF0YTxFbnRpdHlUeXBlPlxufSJdfQ==
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUsIEVudGl0eUNsYXNzTmV3YWJsZSwgRW50aXR5U2VydmljZUNsYXNzTmV3YWJsZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dEYXRhIH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2ctZGF0YSc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlRGlzcGxheUNvbHVtblZhbHVlQ29tcG9uZW50IH0gZnJvbSAnLi9kaXNwbGF5LWNvbHVtbi12YWx1ZS9iYXNlLWRpc3BsYXktY29sdW1uLXZhbHVlLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhlIERlZmluaXRpb24gb2YgYSBDb2x1bW4gaW5zaWRlIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIGluc2lkZSB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgcm93LlxuICAgICAqL1xuICAgIHZhbHVlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogQSBjdXN0b20gY29tcG9uZW50IHRvIHVzZSBpbnN0ZWFkIG9mIHRoZSB2YWx1ZS5cbiAgICAgKiBZb3Ugc3RpbGwgbmVlZCB0byBwcm92aWRlIGEgdmFsdWUgZnVuY3Rpb24gZm9yIHRoZSBzb3J0aW5nIGJ5IGhlYWRlciB0byB3b3JrLlxuICAgICAqL1xuICAgIENvbXBvbmVudD86IFR5cGU8Tmd4TWF0RW50aXR5QmFzZURpc3BsYXlDb2x1bW5WYWx1ZUNvbXBvbmVudDxFbnRpdHlUeXBlPj4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGNsaWNrIGV2ZW50IHNob3VsZCBiZSBkaXNhYmxlZC5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VmdWwgaWYgeW91ciBjb21wb25lbnQgaGFzIGEgY3VzdG9tIHdheSB0byBoYW5kbGUgY2xpY2tzLlxuICAgICAqL1xuICAgIGRpc2FibGVDbGljaz86IGJvb2xlYW5cbn1cblxuLyoqXG4gKiBBIHRhYmxlIGFjdGlvbiB0aGF0IHdpbGwgcnVuIHJlZ2FyZGxlc3MgaWYgc29tZXRoaW5nIGhhcyBiZWVuIHNlbGVjdGVkIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlVGFibGVBY3Rpb24ge1xuICAgIC8qKlxuICAgICAqIFRoZSB0eXBlIG9mIHRoZSB0YWJsZSBhY3Rpb24gdG8gZGlzdGluY3QgYmV0d2VlbiBiYXNlIGFuZCBtdWx0aS1zZWxlY3QgYWN0aW9ucy5cbiAgICAgKi9cbiAgICB0eXBlOiAnZGVmYXVsdCcsXG4gICAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBhY3Rpb24gaXRzZWxmLlxuICAgICAqL1xuICAgIGFjdGlvbjogKCgpID0+IHVua25vd24pIHwgKCgpID0+IFByb21pc2U8dW5rbm93bj4pLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGNhbiBiZSB1c2VkLlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBlbmFibGVkPzogKCkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgYSBjb25maXJtIGRpYWxvZyBpcyBuZWVkZWQgdG8gcnVuIHRoZSBhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZXF1aXJlQ29uZmlybURpYWxvZz86ICgpID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSB0YWJsZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybURpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIFRoZSBEZWZpbml0aW9uIG9mIGFuIEFjdGlvbiB0aGF0IGNhbiBiZSBydW4gb24gbXVsdGlwbGUgc2VsZWN0ZWQgZW50aXRpZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIHR5cGUgb2YgdGhlIHRhYmxlIGFjdGlvbiB0byBkaXN0aW5jdCBiZXR3ZWVuIGJhc2UgYW5kIG11bHRpLXNlbGVjdCBhY3Rpb25zLlxuICAgICAqL1xuICAgIHR5cGU6ICdtdWx0aS1zZWxlY3QnLFxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBhY3Rpb24uXG4gICAgICovXG4gICAgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgYWN0aW9uIGl0c2VsZi5cbiAgICAgKi9cbiAgICBhY3Rpb246ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiB1bmtub3duKSB8ICgoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBQcm9taXNlPHVua25vd24+KSxcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgdGhlIGFjdGlvbiBjYW4gYmUgdXNlZC5cbiAgICAgKiBAZGVmYXVsdCAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiAhIXNlbGVjdGVkRW50aXRpZXMubGVuZ3RoXG4gICAgICovXG4gICAgZW5hYmxlZD86IChzZWxlY3RlZEVudGl0aWVzOiBFbnRpdHlUeXBlW10pID0+IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IGEgY29uZmlybSBkaWFsb2cgaXMgbmVlZGVkIHRvIHJ1biB0aGUgYWN0aW9uLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVxdWlyZUNvbmZpcm1EaWFsb2c/OiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgdGFibGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1EaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuLyoqXG4gKiBBbiBhY3Rpb24gZm9yIHRoZSB0YWJsZS4gQ2FuIGVpdGhlciBiZSBpbmRlcGVuZGVudCBvciBydW4gb24gdGhlIHNlbGVjdGVkIGVudGl0aWVzIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgVGFibGVBY3Rpb248RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiA9IEJhc2VUYWJsZUFjdGlvbiB8IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+O1xuXG4vKipcbiAqIFRoZSBiYXNlIGRhdGEgb2YgdGhlIG5neC1tYXQtZW50aXR5LXRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEYXRhPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgdGFibGUuXG4gICAgICovXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgZGVmaW5pdGlvbiBvZiB0aGUgY29sdW1ucyB0byBkaXNwbGF5LiBDb25zaXN0cyBvZiB0aGUgZGlzcGxheU5hbWUgdG8gc2hvdyBpbiB0aGUgaGVhZGVyIG9mIHRoZSByb3dcbiAgICAgKiBhbmQgdGhlIHZhbHVlLCB3aGljaCBpcyBhIGZ1bmN0aW9uIHRoYXQgZ2VuZXJhdGVzIHRoZSB2YWx1ZSB0byBkaXNwbGF5IGluc2lkZSBhIGNvbHVtbi5cbiAgICAgKi9cbiAgICBkaXNwbGF5Q29sdW1uczogRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlPltdLFxuICAgIC8qKlxuICAgICAqIFRoZSBDbGFzcyBvZiB0aGUgc2VydmljZSB0aGF0IGhhbmRsZXMgdGhlIGVudGl0aWVzLlxuICAgICAqIE5lZWRzIHRvIGJlIGluamVjdGFibGUgYW5kIGFuIGV4dGVuc2lvbiBvZiB0aGUgXCJFbnRpdHlTZXJ2aWNlXCItQ2xhc3MuXG4gICAgICovXG4gICAgRW50aXR5U2VydmljZUNsYXNzOiBFbnRpdHlTZXJ2aWNlQ2xhc3NOZXdhYmxlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBDbGFzcyBvZiB0aGUgZW50aXRpZXMgdG8gbWFuYWdlLlxuICAgICAqL1xuICAgIEVudGl0eUNsYXNzPzogRW50aXR5Q2xhc3NOZXdhYmxlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgc2VhcmNoIGJhci4gRGVmYXVsdHMgdG8gXCJTZWFyY2hcIi5cbiAgICAgKi9cbiAgICBzZWFyY2hMYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGJ1dHRvbiBmb3IgYWRkaW5nIG5ldyBlbnRpdGllcy4gRGVmYXVsdHMgdG8gXCJDcmVhdGVcIi5cbiAgICAgKi9cbiAgICBjcmVhdGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGVkaXRpbmcgaGFwcGVucyBpbiBhIGRpYWxvZyBvciBhIHNlcGFyYXRlIHBhZ2UuXG4gICAgICovXG4gICAgZGVmYXVsdEVkaXQ/OiAnZGlhbG9nJyB8ICdwYWdlJyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGNyZWF0aW5nIGhhcHBlbnMgaW4gYSBkaWFsb2cgb3IgYSBzZXBhcmF0ZSBwYWdlLlxuICAgICAqL1xuICAgIGRlZmF1bHRDcmVhdGU/OiAnZGlhbG9nJyB8ICdwYWdlJyxcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIGN1c3RvbSBlZGl0IG1ldGhvZCB3aGljaCBydW5zIHdoZW4geW91IGNsaWNrIG9uIGEgZW50aXR5LlxuICAgICAqIElmIHlvdSBkb24ndCBuZWVkIGFueSBzcGVjaWFsIGVkaXRpbmcgb2YgZW50cmllcyB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgZWRpdCBkaWFsb2cgaXMgZ2VuZXJhdGVkLlxuICAgICAqL1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIFRha2VzIGEgbWV0aG9kIHRvIHJ1biB3aGVuIHlvdSBjbGljayBvbiB0aGUgbmV3IGJ1dHRvbi5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnl0aGluZyBzcGVjaWFsIHlvdSBjYW4gYWxzbyBvbWl0IHRoaXMuXG4gICAgICogSW4gdGhhdCBjYXNlIGEgZGVmYXVsdCBjcmVhdGUgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBjcmVhdGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaG93IHRoZSBzZWFyY2ggc3RyaW5nIG9mIGVudGl0aWVzIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBzZWFyY2hTdHJpbmc/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gYWRkIG5ldyBlbnRpdGllcy5cbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgYWxsb3dDcmVhdGU/OiBib29sZWFuIHwgKCgpID0+IGJvb2xlYW4pLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgd2hldGhlciBvciBub3QgdGhlIHVzZXIgY2FuIHZpZXcgdGhlIHNwZWNpZmljIGVudGl0eS5cbiAgICAgKiBAZGVmYXVsdCAoKSA9PiB0cnVlXG4gICAgICovXG4gICAgYWxsb3dSZWFkPzogYm9vbGVhbiB8ICgoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gYm9vbGVhbiksXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gZWRpdCB0aGUgc3BlY2lmaWMgZW50aXR5LlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd1VwZGF0ZT86IGJvb2xlYW4gfCAoKGVudGl0eT86IEVudGl0eVR5cGUpID0+IGJvb2xlYW4pLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGNhbiBkZWxldGUgdGhpcyBzcGVjaWZpYyBlbnRpdHkuXG4gICAgICogQGRlZmF1bHQgKCkgPT4gdHJ1ZVxuICAgICAqL1xuICAgIGFsbG93RGVsZXRlPzogYm9vbGVhbiB8ICgoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gYm9vbGVhbiksXG4gICAgLyoqXG4gICAgICogQWxsIEFjdGlvbnMgdGhhdCB5b3Ugd2FudCB0byBydW4gb24gdGhlIHRhYmxlIGNhbiBiZSBkZWZpbmVkIGhlcmUuXG4gICAgICogKGUuZy4gRG93bmxvYWQgYXMgemlwLWZpbGUsIGltcG9ydCBvciBtYXNzIGRlbGV0ZSkuXG4gICAgICovXG4gICAgdGFibGVBY3Rpb25zPzogVGFibGVBY3Rpb248RW50aXR5VHlwZT5bXSxcbiAgICAvKipcbiAgICAgKiBUaGUgTGFiZWwgZm9yIHRoZSBidXR0b24gdGhhdCBvcGVucyBhbGwgdGFibGUtYWN0aW9ucy5cbiAgICAgKi9cbiAgICB0YWJsZUFjdGlvbnNMYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IGEgbG9hZGluZyBzcGlubmVyIHdoaWxlIHRoZSBlbnRpdGllcyBvZiB0aGUgdGFibGUgYXJlIGxvYWRlZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZGlzcGxheUxvYWRpbmdTcGlubmVyPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCBKU09OIGltcG9ydHMgYXJlIGFsbG93ZWQuXG4gICAgICogVGhpcyBhZGRzIGFuIHRhYmxlIHNlbGVjdCBhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBhbGxvd0pzb25JbXBvcnQ/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIERhdGEgdG8gY3VzdG9taXplIHRoZSBqc29uIGltcG9ydCBhY3Rpb24uXG4gICAgICovXG4gICAgaW1wb3J0QWN0aW9uRGF0YT86IE9taXQ8QmFzZVRhYmxlQWN0aW9uLCAnYWN0aW9uJyB8ICdyZXF1aXJlQ29uZmlybURpYWxvZycgfCAndHlwZSc+XG59XG5cbi8qKlxuICogVGhlIGRhdGEgb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVEYXRhIHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy5cbiAgICAgKi9cbiAgICB0aXRsZT86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNyZWF0ZS1idXR0b24gb2YgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJDcmVhdGVcIi5cbiAgICAgKi9cbiAgICBjcmVhdGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNhbmNlbC1idXR0b24gZm9yIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuIERlZmF1bHRzIHRvIFwiQ2FuY2VsXCIuXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGNyZWF0aW9uIG9mIGFuIGVudHJ5IHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICovXG4gICAgY3JlYXRlUmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGNyZWF0ZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybUNyZWF0ZURpYWxvZ0RhdGE/OiBDb25maXJtRGlhbG9nRGF0YVxufVxuXG4vKipcbiAqIEFuIGFjdGlvbiB0aGF0IGNhbiBiZSBydW4gZnJvbSBpbnNpZGUgdGhlIGVkaXQgZGlhbG9nIG9yIHBhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdEFjdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGFjdGlvbiBpdHNlbGYuXG4gICAgICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbiAgICBhY3Rpb246ICgoZW50aXR5OiBFbnRpdHlUeXBlLCBlbnRpdHlQcmlvckNoYW5nZXM6IEVudGl0eVR5cGUpID0+IHVua25vd24pIHwgKChlbnRpdHk6IEVudGl0eVR5cGUsIGVudGl0eVByaW9yQ2hhbmdlczogRW50aXR5VHlwZSkgPT4gUHJvbWlzZTx1bmtub3duPiksXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdGhhdCBkZWZpbmVzIHdoZXRoZXIgb3Igbm90IHRoZSBhY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICogQGRlZmF1bHQgKCkgPT4gdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiAoZTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBBIG1ldGhvZCB0aGF0IGRlZmluZXMgd2hldGhlciBvciBub3QgYSBjb25maXJtIGRpYWxvZyBpcyBuZWVkZWQgdG8gcnVuIHRoZSBhY3Rpb24uXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZXF1aXJlQ29uZmlybURpYWxvZz86IChlOiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1EaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuLyoqXG4gKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZyBvciBwYWdlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVkaXREYXRhPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4ge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy5cbiAgICAgKi9cbiAgICB0aXRsZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNvbmZpcm0tYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nIG9yIHBhZ2UuIERlZmF1bHRzIHRvIFwiU2F2ZVwiLlxuICAgICAqL1xuICAgIGNvbmZpcm1CdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGRlbGV0ZS1idXR0b24gb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cgb3IgcGFnZS4gRGVmYXVsdHMgdG8gXCJEZWxldGVcIi5cbiAgICAgKi9cbiAgICBkZWxldGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNhbmNlbC1idXR0b24gZm9yIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nIG9yIHBhZ2UuIERlZmF1bHRzIHRvIFwiQ2FuY2VsXCIuXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGRlbGV0aW9uIG9mIGFuIGVudHJ5IHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICovXG4gICAgZGVsZXRlUmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZWRpdGluZyBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGVkaXRSZXF1aXJlc0NvbmZpcm1EaWFsb2c/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGVsZXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgZWRpdCBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybUVkaXREaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGEsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9mIHRoZSBhY3Rpb25zIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBhY3Rpb25zTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogQWxsIGFjdGlvbnMgb2YgdGhlIGVkaXQgcGFnZS9kaWFsb2cuXG4gICAgICovXG4gICAgYWN0aW9ucz86IEVkaXRBY3Rpb248RW50aXR5VHlwZT5bXVxufVxuXG4vKipcbiAqIEFsbCB0aGUgY29uZmlndXJhdGlvbiBkYXRhIHJlcXVpcmVkIHRvIGRpc3BsYXkgYSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiB7XG4gICAgLyoqXG4gICAgICogVGhlIGJhc2UgZGF0YSBmb3IgdGhlIHRhYmxlLWNvbXBvbmVudC5cbiAgICAgKiBJbmNsdWRlcyBzdHVmZiBsaWtlIHRoZSB0aXRsZSBmb3IgdGhlIHRhYmxlLCB3aGF0IHRvIGRpc3BsYXkgaW5zaWRlIHRoZSByb3dzIGV0Yy5cbiAgICAgKi9cbiAgICBiYXNlRGF0YTogQmFzZURhdGE8RW50aXR5VHlwZT4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuXG4gICAgICogQ2FuIGJlIG9taXR0ZWQgd2hlbiBzcGVjaWZ5aW5nIGEgY3VzdG9tIFwiY3JlYXRlXCIgbWV0aG9kIGluc2lkZSB0aGUgYmFzZURhdGEuXG4gICAgICovXG4gICAgY3JlYXRlRGF0YT86IENyZWF0ZURhdGEsXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgZm9yIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLlxuICAgICAqIENhbiBiZSBvbWl0dGVkIHdoZW4gc3BlY2lmeWluZyBhIGN1c3RvbSBcImVkaXRcIiBtZXRob2QgaW5zaWRlIHRoZSBiYXNlRGF0YS5cbiAgICAgKi9cbiAgICBlZGl0RGF0YT86IEVkaXREYXRhPEVudGl0eVR5cGU+XG59Il19
|