@mediusinc/mng-commons 5.0.0-rc.0 → 5.0.0-rc.1
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/core/data-list/data-list-params-helpers.d.ts +82 -0
- package/core/descriptors/action.descriptor.d.ts +3 -3
- package/core/descriptors/column.descriptor.d.ts +1 -1
- package/core/descriptors/editor.descriptor.d.ts +6 -6
- package/core/descriptors/enum.descriptor.d.ts +6 -0
- package/core/descriptors/filter.descriptor.d.ts +1 -1
- package/core/descriptors/model.descriptor.d.ts +1 -1
- package/core/descriptors/table.descriptor.d.ts +6 -6
- package/core/descriptors/tableview.descriptor.d.ts +10 -10
- package/core/enum/enum-helpers.d.ts +49 -0
- package/core/error/error-helpers.d.ts +114 -0
- package/core/helpers/date.d.ts +14 -0
- package/core/helpers/object.d.ts +27 -0
- package/core/helpers/route.d.ts +35 -0
- package/core/helpers/string.d.ts +7 -0
- package/core/helpers/templates.d.ts +3 -0
- package/core/i18n/i18n-common.d.ts +6 -0
- package/core/i18n/i18n-error.d.ts +4 -0
- package/core/i18n/i18n-type.d.ts +20 -0
- package/core/index.d.ts +15 -9
- package/{model → core}/pipes/enum.pipe.d.ts +2 -2
- package/core/pipes/enumerate.pipe.d.ts +3 -3
- package/{model → core}/pipes/i18n-property.pipe.d.ts +2 -2
- package/core/pipes/template.pipe.d.ts +0 -2
- package/core/router/route-builder.d.ts +2 -4
- package/core/router/routes-builder.d.ts +5 -6
- package/core/security/permission-helpers.d.ts +3 -0
- package/core/security/permissions.model.d.ts +2 -2
- package/esm2022/core/components/notification/notification-wrapper.component.mjs +4 -4
- package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
- package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
- package/esm2022/core/data-list/data-list-params-helpers.mjs +415 -0
- package/esm2022/core/data-list/filter-match.model.mjs +1 -1
- package/esm2022/core/data-providers/base.data-provider.mjs +1 -1
- package/esm2022/core/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/enum.descriptor.mjs +2 -0
- package/esm2022/core/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/table.descriptor.mjs +1 -1
- package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
- package/esm2022/core/directives/component.directive.mjs +4 -4
- package/esm2022/core/directives/dialog-keydown-handler.directive.mjs +4 -4
- package/esm2022/core/directives/template.directive.mjs +3 -3
- package/esm2022/core/enum/enum-helpers.mjs +81 -0
- package/esm2022/core/error/error-handler.mjs +3 -3
- package/esm2022/core/error/error-helpers.mjs +247 -0
- package/esm2022/core/helpers/coercion.mjs +1 -1
- package/esm2022/core/helpers/date.mjs +119 -0
- package/esm2022/core/helpers/object.mjs +145 -0
- package/esm2022/core/helpers/route.mjs +58 -0
- package/esm2022/core/helpers/string.mjs +57 -0
- package/esm2022/core/helpers/templates.mjs +4 -0
- package/esm2022/core/i18n/i18n-common.mjs +24 -0
- package/esm2022/core/i18n/i18n-error.mjs +27 -0
- package/esm2022/core/i18n/i18n-type.mjs +79 -0
- package/esm2022/core/index.mjs +17 -11
- package/esm2022/core/log/log-publisher-console.service.mjs +3 -3
- package/esm2022/core/log/logger.service.mjs +3 -3
- package/esm2022/core/pipes/boolean.pipe.mjs +4 -4
- package/esm2022/core/pipes/class-map.pipe.mjs +4 -4
- package/esm2022/core/pipes/enum.pipe.mjs +27 -0
- package/esm2022/core/pipes/enumerate-async.pipe.mjs +8 -8
- package/esm2022/core/pipes/enumerate.pipe.mjs +10 -10
- package/esm2022/core/pipes/getter.pipe.mjs +4 -4
- package/esm2022/core/pipes/i18n-property.pipe.mjs +19 -0
- package/esm2022/core/pipes/json-path.pipe.mjs +6 -6
- package/esm2022/core/pipes/parametrize.pipe.mjs +6 -6
- package/esm2022/core/pipes/template.pipe.mjs +7 -8
- package/esm2022/core/provide.mjs +1 -21
- package/esm2022/core/reflect/type-enum-metadata.mjs +1 -1
- package/esm2022/core/registry/type-registry.mjs +1 -1
- package/esm2022/core/router/route-builder.mjs +8 -24
- package/esm2022/core/router/routes-builder.mjs +17 -16
- package/esm2022/core/security/permission-helpers.mjs +14 -0
- package/esm2022/core/security/permission.guard.mjs +1 -1
- package/esm2022/core/security/permission.service.mjs +6 -6
- package/esm2022/core/security/permissions.model.mjs +1 -1
- package/esm2022/core/services/commons-configuration.service.mjs +6 -6
- package/esm2022/core/services/commons-init.service.mjs +4 -4
- package/esm2022/core/services/commons-router.service.mjs +4 -4
- package/esm2022/core/services/commons.service.mjs +4 -4
- package/esm2022/core/services/local-storage-config.service.mjs +4 -4
- package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +9 -10
- package/esm2022/filter/descriptors/filter.descriptor.mjs +1 -1
- package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -1
- package/esm2022/form/api/descriptors/button-style.builder.mjs +1 -1
- package/esm2022/form/components/autocomplete/autocomplete.component.mjs +7 -7
- package/esm2022/form/components/date-range/date-range.component.mjs +4 -4
- package/esm2022/form/components/dropdown/dropdown.component.mjs +7 -7
- package/esm2022/form/directives/input-trim.directive.mjs +4 -4
- package/esm2022/model/descriptors/enum.descriptor.mjs +1 -1
- package/esm2022/model/descriptors/model.descriptor.mjs +4 -4
- package/esm2022/model/helpers/i18n.mjs +45 -0
- package/esm2022/model/helpers/model.mjs +71 -0
- package/esm2022/model/index.mjs +4 -7
- package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -1
- package/esm2022/table/api/descriptors/column.descriptor.mjs +1 -1
- package/esm2022/table/api/descriptors/table.descriptor.mjs +36 -8
- package/esm2022/table/api/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +9 -9
- package/esm2022/table/components/column-value/column-value.component.mjs +12 -14
- package/esm2022/table/components/table/table.component.mjs +20 -37
- package/esm2022/table/helpers/notification.mjs +4 -4
- package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +4 -4
- package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +4 -4
- package/esm2022/table/services/data-list.service.mjs +3 -3
- package/esm2022/tableview/action/components/action/action.component.mjs +9 -9
- package/esm2022/tableview/action/components/editor/action-editor.component.mjs +4 -4
- package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +6 -6
- package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +3 -3
- package/esm2022/tableview/action/components/route/action-route.component.mjs +4 -4
- package/esm2022/tableview/action/components/table/action-table.component.mjs +12 -24
- package/esm2022/tableview/action/helpers/i18n.mjs +82 -0
- package/esm2022/tableview/action/helpers/notification.mjs +8 -8
- package/esm2022/tableview/action/helpers/styles.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
- package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
- package/esm2022/tableview/action/services/action-error-mapper.service.mjs +1 -1
- package/esm2022/tableview/action/services/action-executor.service.mjs +9 -8
- package/esm2022/tableview/action/services/component-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/data-provider-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/navigation.service.mjs +4 -4
- package/esm2022/tableview/action/services/providers/provide-view-container.mjs +1 -1
- package/esm2022/tableview/action/services/root-action-executor.service.mjs +3 -3
- package/esm2022/tableview/action/services/view-container.service.mjs +3 -3
- package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +1 -1
- package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +3 -3
- package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +8 -8
- package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +1 -1
- package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +4 -4
- package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/editor/helpers/field-validators.mjs +1 -1
- package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
- package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +3 -3
- package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +1 -1
- package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/files-export.mjs +1 -1
- package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +4 -4
- package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +1 -1
- package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +9 -9
- package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +3 -3
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
- package/esm2022/tableview/editor/helpers/editor-formly.mjs +335 -0
- package/esm2022/tableview/editor/helpers/formly-config.mjs +1 -1
- package/esm2022/tableview/editor/services/formly-config.provider.mjs +1 -1
- package/esm2022/tableview/index.mjs +3 -5
- package/esm2022/tableview/provide.mjs +2 -1
- package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +3 -3
- package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +10 -19
- package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-core.mjs +1367 -1389
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +8 -9
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +17 -17
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs +99 -148
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs +35 -7
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table.mjs +48 -65
- package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +19 -19
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +507 -572
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/filter/descriptors/filter.descriptor.d.ts +2 -2
- package/model/descriptors/model.descriptor.d.ts +2 -2
- package/model/helpers/i18n.d.ts +10 -0
- package/model/helpers/model.d.ts +5 -0
- package/model/index.d.ts +2 -4
- package/package.json +7 -7
- package/table/api/descriptors/table.descriptor.d.ts +10 -0
- package/table/components/column-value/column-value.component.d.ts +3 -4
- package/table/components/table/table.component.d.ts +13 -13
- package/tableview/action/components/table/action-table.component.d.ts +6 -6
- package/tableview/action/helpers/i18n.d.ts +22 -0
- package/tableview/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/action/services/action-executor.service.d.ts +1 -1
- package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +1 -1
- package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
- package/tableview/api/action/models/action.type.d.ts +2 -2
- package/tableview/api/action/models/execution/action-instance-state.model.d.ts +21 -21
- package/tableview/api/editor/descriptors/editor.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +2 -2
- package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +5 -5
- package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +4 -4
- package/tableview/api/editor/descriptors/field.descriptor.d.ts +2 -2
- package/tableview/api/editor/models/editor-fields.model.d.ts +3 -3
- package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +2 -2
- package/tableview/editor/helpers/editor-formly.d.ts +10 -0
- package/tableview/index.d.ts +2 -2
- package/tableview/tableview/components/tableview/tableview.component.d.ts +5 -5
- package/core/data-list/data-list-params.util.d.ts +0 -84
- package/core/enum/enum.util.d.ts +0 -51
- package/core/error/error.util.d.ts +0 -116
- package/core/security/permission.util.d.ts +0 -5
- package/core/utils/date.util.d.ts +0 -20
- package/core/utils/i18n.util.d.ts +0 -36
- package/core/utils/object.util.d.ts +0 -31
- package/core/utils/route.util.d.ts +0 -37
- package/core/utils/string.util.d.ts +0 -9
- package/esm2022/core/data-list/data-list-params.util.mjs +0 -417
- package/esm2022/core/enum/enum.util.mjs +0 -83
- package/esm2022/core/error/error.util.mjs +0 -249
- package/esm2022/core/security/permission.util.mjs +0 -16
- package/esm2022/core/utils/date.util.mjs +0 -136
- package/esm2022/core/utils/i18n.util.mjs +0 -137
- package/esm2022/core/utils/object.util.mjs +0 -147
- package/esm2022/core/utils/route.util.mjs +0 -60
- package/esm2022/core/utils/string.util.mjs +0 -59
- package/esm2022/model/pipes/enum.pipe.mjs +0 -26
- package/esm2022/model/pipes/i18n-property.pipe.mjs +0 -19
- package/esm2022/model/utils/i18n.util.mjs +0 -51
- package/esm2022/model/utils/model.util.mjs +0 -73
- package/esm2022/tableview/action/utils/i18n.util.mjs +0 -126
- package/esm2022/tableview/editor/utils/editor-formly.util.mjs +0 -337
- package/model/utils/i18n.util.d.ts +0 -15
- package/model/utils/model.util.d.ts +0 -8
- package/tableview/action/utils/i18n.util.d.ts +0 -48
- package/tableview/editor/utils/editor-formly.util.d.ts +0 -12
|
@@ -14,4 +14,4 @@ export function provideViewContainer(provideParentIfPresent = true) {
|
|
|
14
14
|
deps: [Injector]
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZS12aWV3LWNvbnRhaW5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL3NlcnZpY2VzL3Byb3ZpZGVycy9wcm92aWRlLXZpZXctY29udGFpbmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQVcsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRXhELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxzQkFBc0IsR0FBRyxJQUFJO0lBQzlELE9BQU87UUFDSCxPQUFPLEVBQUUsYUFBYTtRQUN0QixVQUFVLEVBQUUsQ0FBQyxRQUFrQixFQUFFLEVBQUU7WUFDL0IsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO2dCQUN6QixPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUN0RyxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osT0FBTyxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQy9CLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RvciwgUHJvdmlkZXJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1ZpZXdDb250YWluZXJ9IGZyb20gJy4uL3ZpZXctY29udGFpbmVyLnNlcnZpY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVZpZXdDb250YWluZXIocHJvdmlkZVBhcmVudElmUHJlc2VudCA9IHRydWUpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZTogVmlld0NvbnRhaW5lcixcbiAgICAgICAgdXNlRmFjdG9yeTogKGluamVjdG9yOiBJbmplY3RvcikgPT4ge1xuICAgICAgICAgICAgaWYgKHByb3ZpZGVQYXJlbnRJZlByZXNlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaW5qZWN0b3IuZ2V0KFZpZXdDb250YWluZXIsIG51bGwsIHtvcHRpb25hbDogdHJ1ZSwgc2tpcFNlbGY6IHRydWV9KSA/PyBuZXcgVmlld0NvbnRhaW5lcigpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFZpZXdDb250YWluZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgZGVwczogW0luamVjdG9yXVxuICAgIH07XG59XG4iXX0=
|
|
@@ -9,10 +9,10 @@ export class RootActionExecutorService extends ActionExecutorService {
|
|
|
9
9
|
get instances() {
|
|
10
10
|
return this._instances;
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
13
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: RootActionExecutorService, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: RootActionExecutorService }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: RootActionExecutorService, decorators: [{
|
|
16
16
|
type: Injectable
|
|
17
17
|
}] });
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1hY3Rpb24tZXhlY3V0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL3NlcnZpY2VzL3Jvb3QtYWN0aW9uLWV4ZWN1dG9yLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFHaEUsTUFBTSxPQUFPLHlCQUEwQixTQUFRLHFCQUFxQjtJQURwRTs7UUFFcUIsZUFBVSxHQUErQixFQUFFLENBQUM7S0FLaEU7SUFIRyxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7OEdBTFEseUJBQXlCO2tIQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FjdGlvbkluc3RhbmNlfSBmcm9tICcuLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1pbnN0YW5jZS5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkV4ZWN1dG9yU2VydmljZX0gZnJvbSAnLi9hY3Rpb24tZXhlY3V0b3Iuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSb290QWN0aW9uRXhlY3V0b3JTZXJ2aWNlIGV4dGVuZHMgQWN0aW9uRXhlY3V0b3JTZXJ2aWNlIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9pbnN0YW5jZXM6IEFjdGlvbkluc3RhbmNlPGFueSwgYW55PltdID0gW107XG5cbiAgICBwdWJsaWMgZ2V0IGluc3RhbmNlcygpOiBBY3Rpb25JbnN0YW5jZTxhbnksIGFueT5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZXM7XG4gICAgfVxufVxuIl19
|
|
@@ -47,10 +47,10 @@ export class ViewContainer {
|
|
|
47
47
|
set routeTriggeredActionInstance(instance) {
|
|
48
48
|
this._routeTriggeredActionInstance = instance;
|
|
49
49
|
}
|
|
50
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2
|
|
51
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ViewContainer, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ViewContainer }); }
|
|
52
52
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: ViewContainer, decorators: [{
|
|
54
54
|
type: Injectable
|
|
55
55
|
}] });
|
|
56
56
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1jb250YWluZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvYWN0aW9uL3NlcnZpY2VzL3ZpZXctY29udGFpbmVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDOztBQWF6Qzs7R0FFRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBSVksYUFBUSxHQUFzQyxFQUFFLENBQUM7UUFFakQsd0JBQW1CLEdBQTJDLElBQUksT0FBTyxFQUFFLENBQUM7UUFDNUUsd0JBQW1CLEdBQWlELElBQUksT0FBTyxFQUFFLENBQUM7UUFDbEYsd0JBQW1CLEdBQWlELElBQUksT0FBTyxFQUFFLENBQUM7S0FpRDdGO0lBL0NHLElBQVcsWUFBWSxDQUFDLFlBQTBDO1FBQzlELElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsT0FBTyxDQUFDLE9BQTBDO1FBQ3pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxLQUFxQztRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTSxXQUFXLENBQUMsS0FBdUQ7UUFDdEUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRU0sV0FBVyxDQUFDLEtBQTJDO1FBQzFELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxJQUFXLDRCQUE0QjtRQUNuQyxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyw0QkFBNEIsQ0FBQyxRQUFtRDtRQUN2RixJQUFJLENBQUMsNkJBQTZCLEdBQUcsUUFBUSxDQUFDO0lBQ2xELENBQUM7OEdBdkRRLGFBQWE7a0hBQWIsYUFBYTs7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7SURhdGFQcm92aWRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7XG4gICAgQWN0aW9uRGVzY3JpcHRvckluc3QsXG4gICAgSVZpZXdDb250YWluZXIsXG4gICAgVmlld0NvbnRhaW5lckVkaXRvckNsb3NlRXZlbnQsXG4gICAgVmlld0NvbnRhaW5lckVkaXRvclJlc2V0RXZlbnQsXG4gICAgVmlld0NvbnRhaW5lclRhYmxlUmVsb2FkRXZlbnRcbn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtBY3Rpb25JbnN0YW5jZX0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24taW5zdGFuY2UubW9kZWwnO1xuXG4vKipcbiAqIFNob3VsZCBiZSB1c2VkIHdpdGggcHJvdmlkZXJzIGRlZmluZWQgd2l0aGluIGNvbXBvbmVudC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFZpZXdDb250YWluZXI8SXRlbSwgU2VydmljZSA9IHVuZGVmaW5lZD4gaW1wbGVtZW50cyBJVmlld0NvbnRhaW5lcjxJdGVtLCBTZXJ2aWNlLCBBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPj4ge1xuICAgIHByaXZhdGUgX2RhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT47XG4gICAgcHJpdmF0ZSBfcm91dGVUcmlnZ2VyZWRBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPEl0ZW0sIFNlcnZpY2U+O1xuICAgIHByaXZhdGUgX2FjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+PiA9IFtdO1xuXG4gICAgcHJpdmF0ZSBfdGFibGVSZWxvYWRTdWJqZWN0OiBTdWJqZWN0PFZpZXdDb250YWluZXJUYWJsZVJlbG9hZEV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBfZWRpdG9yUmVzZXRTdWJqZWN0OiBTdWJqZWN0PFZpZXdDb250YWluZXJFZGl0b3JSZXNldEV2ZW50PEl0ZW0+PiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBfZWRpdG9yQ2xvc2VTdWJqZWN0OiBTdWJqZWN0PFZpZXdDb250YWluZXJFZGl0b3JDbG9zZUV2ZW50PEl0ZW0+PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwdWJsaWMgc2V0IGRhdGFQcm92aWRlcihkYXRhUHJvdmlkZXI6IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVByb3ZpZGVyKCk6IElEYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT4gfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9ucygpOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGFjdGlvbnMoYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT4+KSB7XG4gICAgICAgIHRoaXMuX2FjdGlvbnMgPSBhY3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFibGVSZWxvYWQkKCk6IE9ic2VydmFibGU8Vmlld0NvbnRhaW5lclRhYmxlUmVsb2FkRXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYmxlUmVsb2FkU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVsb2FkVGFibGUoZXZlbnQ/OiBWaWV3Q29udGFpbmVyVGFibGVSZWxvYWRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90YWJsZVJlbG9hZFN1YmplY3QubmV4dChldmVudCA/PyB7fSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JSZXNldCQoKTogT2JzZXJ2YWJsZTxWaWV3Q29udGFpbmVyRWRpdG9yUmVzZXRFdmVudDxJdGVtPj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yUmVzZXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEVkaXRvcihldmVudD86IFZpZXdDb250YWluZXJFZGl0b3JSZXNldEV2ZW50PEl0ZW0+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkaXRvclJlc2V0U3ViamVjdC5uZXh0KGV2ZW50ID8/IHt9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckNsb3NlJCgpOiBPYnNlcnZhYmxlPFZpZXdDb250YWluZXJFZGl0b3JDbG9zZUV2ZW50PEl0ZW0+PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JDbG9zZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNsb3NlRWRpdG9yKGV2ZW50PzogVmlld0NvbnRhaW5lckVkaXRvckNsb3NlRXZlbnQ8SXRlbT4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQ2xvc2VTdWJqZWN0Lm5leHQoZXZlbnQgPz8ge30pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcm91dGVUcmlnZ2VyZWRBY3Rpb25JbnN0YW5jZSgpOiBBY3Rpb25JbnN0YW5jZTxJdGVtLCBTZXJ2aWNlPiB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZVRyaWdnZXJlZEFjdGlvbkluc3RhbmNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcm91dGVUcmlnZ2VyZWRBY3Rpb25JbnN0YW5jZShpbnN0YW5jZTogQWN0aW9uSW5zdGFuY2U8SXRlbSwgU2VydmljZT4gfCB1bmRlZmluZWQpIHtcbiAgICAgICAgdGhpcy5fcm91dGVUcmlnZ2VyZWRBY3Rpb25JbnN0YW5jZSA9IGluc3RhbmNlO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -73,4 +73,4 @@ export class ActionConfirmationDescriptor {
|
|
|
73
73
|
return this._rejectButton;
|
|
74
74
|
}
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWNvbmZpcm1hdGlvbi5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1jb25maXJtYXRpb24uZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHNCQUFzQixFQUFFLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFJM0YsTUFBTSxPQUFPLDRCQUE0QjtJQVlyQztRQUpRLG1CQUFjLEdBQUcsSUFBSSxDQUFDLENBQUMsb0RBQW9EO1FBQzNFLGNBQVMsR0FBRyxJQUFJLENBQUMsQ0FBQyxpQ0FBaUM7UUFJdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3pJLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMxSixJQUFJLENBQUMsS0FBSyxHQUFHLDRCQUE0QixDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsSUFBYTtRQUN6QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQXFCO1FBQ2xDLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBdUI7UUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7UUFDeEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdCQUFnQixDQUFDLHNCQUE4QztRQUNsRSxJQUFJLENBQUMsYUFBYSxHQUFHLHNCQUFzQixDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQkFBZ0IsQ0FBQyxzQkFBK0M7UUFDbkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxzQkFBc0IsQ0FBQztRQUM1QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLGlCQUFpQixDQUFDLGFBQXNCO1FBQzNDLElBQUksYUFBYSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDMUIsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLEdBQUcsYUFBYSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBaUI7UUFDakMsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLDhCQUE4QixDQUFDLDBCQUE0RDtRQUM5RixJQUFJLENBQUMsMkJBQTJCLEdBQUcsMEJBQTBCLENBQUM7UUFDOUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLE9BQU87UUFDZCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQVcsYUFBYTtRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDL0IsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsMkJBQTJCLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maXJtYXRpb259IGZyb20gJ3ByaW1lbmcvYXBpJztcblxuaW1wb3J0IHtTdHlsZUxldmVsRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcblxuaW1wb3J0IHtJQWN0aW9uQ29udGV4dH0gZnJvbSAnLi4vbW9kZWxzL2V4ZWN1dGlvbi9hY3Rpb24tY29udGV4dC5tb2RlbCc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPiB7XG4gICAgcHJpdmF0ZSBfaWNvbj86IHN0cmluZzsgLy8gSWNvbiB0byBkaXNwbGF5IG5leHQgdG8gbWVzc2FnZS5cbiAgICBwcml2YXRlIF90aXRsZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciB0aXRsZSB0ZXh0IG9mIHRoZSBkaWFsb2cuXG4gICAgcHJpdmF0ZSBfbWVzc2FnZT86IHN0cmluZyB8IG51bGw7IC8vIFRyYW5zbGF0aW9uIGZvciBib2R5IHRleHQgb2YgdGhlIGRpYWxvZy5cblxuICAgIHByaXZhdGUgX2FjY2VwdEJ1dHRvbjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcjtcbiAgICBwcml2YXRlIF9yZWplY3RCdXR0b24/OiBBY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuXG4gICAgcHJpdmF0ZSBfY2xvc2VPbkVzY2FwZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGNsb3NlcyB3aGVuIGVzYyBrZXkgaXMgcHJlc3NlZC5cbiAgICBwcml2YXRlIF9jbG9zYWJsZSA9IHRydWU7IC8vIERlZmluZXMgaWYgZGlhbG9nIGlzIGNsb3NhYmxlLlxuICAgIHByaXZhdGUgX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuPzogQ29uZmlndXJhdGlvbkNvbmZpZ01hcEZuPE1vZGVsPjsgLy9mdW5jdGlvbiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBjb25maXJtYXRpb24gZGlhbG9ndWUuICoqV0FSTklORyoqIGNoYW5naW5nIHRoZSAqYWNjZXB0KiBhbmQgKnJlamVjdCogbWV0aG9kcyBvZiB0aGUgKmNvbmZpcm1Db25maWcqIHBhcmFtZXRlciBtYXkgbGVhZCB0byB1bmV4cGVjdGVkIGJlaGF2aW91clxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuX2FjY2VwdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLWNoZWNrJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KSk7XG4gICAgICAgIHRoaXMuX3JlamVjdEJ1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aEljb24oJ3BpIHBpLXRpbWVzJykud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihTdHlsZUxldmVsRW51bS5EZWZhdWx0KS53aXRoVGV4dEJ1dHRvbigpKTtcbiAgICAgICAgdGhpcy5faWNvbiA9ICdwaSBwaS1leGNsYW1hdGlvbi10cmlhbmdsZSc7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJY29uKGljb24/OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faWNvbiA9IGljb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVGl0bGUodGl0bGU/OiBzdHJpbmcgfCBudWxsKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RpdGxlID0gdGl0bGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTWVzc2FnZShtZXNzYWdlPzogc3RyaW5nIHwgbnVsbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9tZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhBY2NlcHRCdXR0b24oYWN0aW9uQnV0dG9uRGVzY3JpcHRvcjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY2NlcHRCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJlamVjdEJ1dHRvbihhY3Rpb25CdXR0b25EZXNjcmlwdG9yPzogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9yZWplY3RCdXR0b24gPSBhY3Rpb25CdXR0b25EZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgaWYgZGlhbG9nIGNhbiBiZSBjbG9zZWQgb24gZXNjYXBlZCBwcmVzc2VkXG4gICAgICogaWYgdHJ1ZSwgdGhlbiBjbG9zYWJsZSBpcyBhbHNvIHNldCB0byB0cnVlXG4gICAgICogQHBhcmFtIGNsb3NlT25Fc2NhcGVcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aENsb3NlT25Fc2NhcGUoY2xvc2VPbkVzY2FwZTogYm9vbGVhbik6IHRoaXMge1xuICAgICAgICBpZiAoY2xvc2VPbkVzY2FwZSkge1xuICAgICAgICAgICAgdGhpcy5fY2xvc2FibGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Nsb3NlT25Fc2NhcGUgPSBjbG9zZU9uRXNjYXBlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENsb3NhYmxlKGNsb3NhYmxlOiBib29sZWFuKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Nsb3NhYmxlID0gY2xvc2FibGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4ocnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm4/OiBDb25maWd1cmF0aW9uQ29uZmlnTWFwRm48TW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuID0gcnVuQ29uZmlybWF0aW9uQ29uZmlnTWFwRm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaWNvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ljb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbG9zZU9uRXNjYXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPbkVzY2FwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsb3NhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2FibGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25Db25maWdNYXBGbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkNvbmZpZ01hcEZuO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWNjZXB0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWNjZXB0QnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVqZWN0QnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVqZWN0QnV0dG9uO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgQ29uZmlndXJhdGlvbkNvbmZpZ01hcEZuPEl0ZW0+ID0gKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgYW55PiwgY29uZmlybUNvbmZpZzogQ29uZmlybWF0aW9uKSA9PiBDb25maXJtYXRpb247XG4iXX0=
|
|
@@ -261,4 +261,4 @@ export class ActionEditorEditDescriptor {
|
|
|
261
261
|
});
|
|
262
262
|
}
|
|
263
263
|
}
|
|
264
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxrQkFBa0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUV6RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBYy9GLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQWlCLHFCQUFnRSxFQUFFLEVBQUU7SUFDOUgsTUFBTSxHQUFHLEdBQWlFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLHFCQUFxQixFQUFFO1FBQ3ZCLElBQUsscUJBQTZDLENBQUMsY0FBYyxFQUFFO1lBQy9ELHFGQUFxRjtZQUNyRixHQUFHLENBQUMsWUFBWSxHQUFHLHFCQUE0RCxDQUFDO1NBQ25GO2FBQU07WUFDSCxHQUFHLENBQUMsV0FBVyxHQUFHLHFCQUFrRCxDQUFDO1NBQ3hFO0tBQ0o7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTywwQkFBZ0QsU0FBUSxvQkFBbUM7SUF3QnBHLFlBQW1CLGdCQUE0QyxFQUFFLFVBQWtCLEVBQUUsR0FBOEQ7UUFDL0ksS0FBSyxDQUFDLFVBQVUsRUFBRTtZQUNkLEtB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QUFHLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7SUFDMUMsQ0FBQzs7QUFHTCxNQUFNLE9BQU8sMEJBQTBCO0lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQVEsTUFBbUM7UUFDM0QsT0FBTyxJQUFJLDhCQUE4QixDQUFtQixNQUFNLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFpQixNQUFtQyxFQUFFLGVBQXlEO1FBQzNJLE9BQU8sSUFBSSw4QkFBOEIsQ0FBaUIsTUFBTSxFQUFFO1lBQzlELEdBQUcsNkJBQTZCLENBQUMsZUFBZSxDQUFDO1NBQ3BELENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Q29tbW9uc0ludGVybmFsRXJyb3IsIFNlcnZpY2VDbGFzc1R5cGUsIFN0eWxlU2l6ZUVudW19IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0FjdGlvbkJ1dHRvbkRlc2NyaXB0b3IsIEJ1dHRvblN0eWxlQnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7RWRpdG9yRGF0YVByb3ZpZGVyLCBJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXInO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi4vLi4vZWRpdG9yL2Rlc2NyaXB0b3JzL2VkaXRvci5kZXNjcmlwdG9yJztcbmltcG9ydCB7QWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0sIEFjdGlvblBvc2l0aW9uRW51bSwgQWN0aW9uVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9hY3Rpb24udHlwZSc7XG5pbXBvcnQge0lBY3Rpb25Db250ZXh0fSBmcm9tICcuLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcbmltcG9ydCB7VGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uL21vZGVscy90YWJsZXZpZXctYWN0aW9uLWRlZmF1bHQtY2F0ZWdvcmllcy5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSwgQWN0aW9uRGVzY3JpcHRvckluc3R9IGZyb20gJy4vYWN0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZT4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgJlxuICAgIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiAmIHtcbiAgICAgICAgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHtcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgZGF0YVByb3ZpZGVyPzogSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiB8IElFZGl0b3JEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG5leHBvcnQgY29uc3QgYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmogPSA8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VPckRhdGFQcm92aWRlcj86IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pID0+IHtcbiAgICBjb25zdCBjZmc6IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHt9O1xuICAgIGlmIChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSUVkaXRvckRhdGFQcm92aWRlcikuaXNEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIHR5cGUgY2FzdGluZyBuZWVkZWQsIGNhdXNlIHRoZXJlIHdhcyBubyBvdGhlciB3YXkgZm91bmQgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXNcbiAgICAgICAgICAgIGNmZy5kYXRhUHJvdmlkZXIgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZmcuc2VydmljZVR5cGUgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2ZnO1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0sIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZT4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBfZGF0YVByb3ZpZGVyPzogSUVkaXRvckRhdGFQcm92aWRlcjxJdGVtLCBhbnk+ID0gdW5kZWZpbmVkO1xuXG4gICAgcHJvdGVjdGVkIF9lZGl0b3JBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdID0gW107XG4gICAgcHJvdGVjdGVkIF9lZGl0b3JUaXRsZT86IHN0cmluZyB8IG51bGwgPSB1bmRlZmluZWQ7XG4gICAgcHJvdGVjdGVkIF9lZGl0b3JUaXRsZVBhcmFtcz86IGFueSA9IHVuZGVmaW5lZDtcblxuICAgIHByb3RlY3RlZCBfaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2RpYWxvZ1NpemUgPSBTdHlsZVNpemVFbnVtLk5vcm1hbDtcbiAgICBwcm90ZWN0ZWQgX2RpYWxvZ0NsYXNzTmFtZT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfZmV0Y2hGdW5jdGlvbj86IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+O1xuICAgIHByb3RlY3RlZCBfc3VibWl0RnVuY3Rpb24/OiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPjtcblxuICAgIHByb3RlY3RlZCBfZWRpdG9yQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuXG4gICAgcHJvdGVjdGVkIF9yZXN1Ym1pdEVuYWJsZWQ/OiBib29sZWFuO1xuICAgIHByb3RlY3RlZCBfcmVzdWJtaXRSZWZldGNoID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbT4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8SXRlbSwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWw6IGVkaXRvckRlc2NyaXB0b3IubW9kZWwsXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGNmZz8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IEVkaXRvckRhdGFQcm92aWRlci5mcm9tQW55UGFyYW08SXRlbSwgU2VydmljZT4odGhpcy5fbW9kZWw/LnR5cGUsIGNmZy5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2ZnPy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGNmZy5kYXRhUHJvdmlkZXI7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl90eXBlID0gQWN0aW9uVHlwZUVudW0uRWRpdG9yO1xuICAgICAgICB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yID0gZWRpdG9yRGVzY3JpcHRvcjtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucy5wdXNoKEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IuZm9yUHJpbWFyeSh0aGlzKSwgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvci5mb3JTZWNvbmRhcnkodGhpcykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvclRpdGxlUGFyYW1zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yVGl0bGVQYXJhbXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRpYWxvZ1NpemUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dTaXplO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlhbG9nQ2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlhbG9nQ2xhc3NOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgaGFzUnVuRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUnVuIGZ1bmN0aW9uIGNhbm5vdCBiZSB1c2VkIGluIGVkaXRvciBhY3Rpb24gZm9yICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9LiBVc2Ugc3VibWl0IGZ1bmN0aW9uIGluc3RlYWRgKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IHJ1bkZ1bmN0aW9uKCk6IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIHVua25vd24+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+IHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzRmV0Y2hGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNTdWJtaXRGdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9mZXRjaEZ1bmN0aW9uID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3VibWl0RnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JBY3Rpb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yQ29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRFbmFibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRFbmFibGVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcmVzdWJtaXRSZWZldGNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcmVzdWJtaXRSZWZldGNoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvclRpdGxlKHRpdGxlOiBzdHJpbmcgfCBudWxsLCBwYXJhbXM/OiBhbnkpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fZWRpdG9yVGl0bGVQYXJhbXMgPSBwYXJhbXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nU2l6ZShzaXplID0gU3R5bGVTaXplRW51bS5Ob3JtYWwpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nU2l6ZSA9IHNpemU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRGlhbG9nQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RpYWxvZ0NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIHdpdGhSdW5GdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2l0aFN1Ym1pdEZ1bmN0aW9uKGZuIGFzIChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZldGNoRnVuY3Rpb24oZm46IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ZldGNoRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJtaXRGdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc3VibWl0RnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhGZXRjaE5vdGlmaWNhdGlvbkVycm9yKHRpdGxlPzogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBoYXNOb3RpZmljYXRpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc0ZldGNoTm90aWZpY2F0aW9uU3VjY2VzcyA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQWN0aW9uKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvckluc3Q8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQWN0aW9ucyhhY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPltdKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckFjdGlvbnMgPSBhY3Rpb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEVkaXRvckNvbXBvbmVudChlZGl0b3JDb21wb25lbnQ6IFR5cGU8YW55Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JDb21wb25lbnQgPSBlZGl0b3JDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUmVzdWJtaXQoZW5hYmxlZD86IGJvb2xlYW4sIHJlZmV0Y2ggPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Jlc3VibWl0RW5hYmxlZCA9IGVuYWJsZWQ7XG4gICAgICAgIHRoaXMuX3Jlc3VibWl0UmVmZXRjaCA9IHJlZmV0Y2g7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoVW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24odW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uID0gdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihlZGl0b3IsIGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIHBhcmVudFR5cGU6IGNmZz8ucGFyZW50VHlwZSxcbiAgICAgICAgICAgIHBhcmVudFByb3BlcnR5OiBjZmc/LnBhcmVudFByb3BlcnR5XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgZWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICAgICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdChlZGl0b3IsIGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkVkaXRvckdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICBwYXJlbnRUeXBlOiBjZmc/LnBhcmVudFR5cGUsXG4gICAgICAgICAgICBwYXJlbnRQcm9wZXJ0eTogY2ZnPy5wYXJlbnRQcm9wZXJ0eVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdDxNb2RlbD4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX3N1Ym1pdFR5cGU6IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQpIHtcbiAgICAgICAgc3VwZXIoc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gYCR7ZWRpdG9yQWN0aW9uLmFjdGlvbk5hbWV9LnN1Ym1pdGAgOiBgJHtlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZX0uY2FuY2VsYCwge21vZGVsOiBlZGl0b3JBY3Rpb24ubW9kZWx9KTtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9uID0gZWRpdG9yQWN0aW9uO1xuICAgICAgICB0aGlzLl9zdWJtaXRUeXBlID0gc3VibWl0VHlwZTtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBBY3Rpb25Qb3NpdGlvbkVudW0uRm9vdGVyUmlnaHQ7XG5cbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoQWN0aW9uTGV2ZWwoZWRpdG9yQWN0aW9uLmxldmVsKS53aXRoVGV4dEJ1dHRvbigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3VibWl0VHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Ym1pdFR5cGU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvciB7XG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBwcmltYXJ5IGFjdGlvbiB3aXRoIHByaW1hcnkgYnV0dG9uIHN0eWxlXG4gICAgICogQHBhcmFtIGVkaXRvckFjdGlvblxuICAgICAqIEBwYXJhbSBzdWJtaXRUeXBlXG4gICAgICovXG4gICAgc3RhdGljIGZvclByaW1hcnk8TW9kZWw+KGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzdWJtaXRUeXBlID0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0KTogQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdChlZGl0b3JBY3Rpb24sIHN1Ym1pdFR5cGUpLndpdGhCdXR0b25EZXNjcmlwdG9yKG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBzZWNvbmRhcnkgYnV0dG9uIHdpdGggdGV4dCBidXR0b24gc3R5bGVcbiAgICAgKiBAcGFyYW0gZWRpdG9yQWN0aW9uXG4gICAgICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9yU2Vjb25kYXJ5PE1vZGVsPihlZGl0b3JBY3Rpb246IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbCk6IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3QoZWRpdG9yQWN0aW9uLCBzdWJtaXRUeXBlKS53aXRoQnV0dG9uRGVzY3JpcHRvcihcbiAgICAgICAgICAgIG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCkud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcigpLndpdGhUZXh0QnV0dG9uKCkpXG4gICAgICAgICk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBleHRlbmRzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ1RJT05fTkFNRSA9ICdkZXRhaWxzJztcblxuICAgIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgY2ZnKTtcbiAgICAgICAgdGhpcy53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0NsaWNrKTtcbiAgICAgICAgdGhpcy53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkJyk7XG4gICAgICAgIHRoaXMud2l0aEVkaXRvckFjdGlvbnMoW0FjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IuZm9yU2Vjb25kYXJ5KHRoaXMsIEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLkNhbmNlbCldKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVUQUlMUyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckRldGFpbHNEZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihlZGl0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihlZGl0b3IsIHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkVkaXRvckdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlcilcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2FkZCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihlZGl0b3JEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwgY2ZnKTtcbiAgICAgICAgdGhpcy53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJMZWZ0KTtcbiAgICAgICAgdGhpcy53aXRoUm91dGVUcmlnZ2VyKCdhZGQnKTtcbiAgICAgICAgdGhpcy5idXR0b24ud2l0aEljb24oJ3BpIHBpLXBsdXMnKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuQUREKTtcbiAgICAgICAgdGhpcy53aXRoVW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9yIHtcbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxNb2RlbD4oZWRpdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihlZGl0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yQWRkRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGVkaXRvciwge1xuICAgICAgICAgICAgLi4uYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2VkaXQnO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCBjZmcpO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93SW5saW5lKTtcbiAgICAgICAgdGhpcy5idXR0b24uc3R5bGVDbGFzcy53aXRoU2l6ZShTdHlsZVNpemVFbnVtLlNtYWxsKTtcbiAgICAgICAgdGhpcy53aXRoUm91dGVUcmlnZ2VyKCc6aXRlbUlkL2VkaXQnKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuRURJVCk7XG4gICAgICAgIHRoaXMuYnV0dG9uLndpdGhMYWJlbChudWxsKS53aXRoSWNvbigncGkgcGktcGVuY2lsJyk7XG4gICAgICAgIHRoaXMud2l0aFVuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uKCk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihlZGl0b3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihlZGl0b3IsIHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkVkaXRvckdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlcilcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5kZXNjcmlwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L2FwaS9zcmMvYWN0aW9uL2Rlc2NyaXB0b3JzL2FjdGlvbi1lZGl0b3IuZGVzY3JpcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUMsb0JBQW9CLEVBQW9CLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xHLE9BQU8sRUFBQyxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLGlDQUFpQyxDQUFDO0FBRzNGLE9BQU8sRUFBQyxrQkFBa0IsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUV6RyxPQUFPLEVBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFFckcsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0scURBQXFELENBQUM7QUFDckcsT0FBTyxFQUF1QyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBYy9GLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHLENBQWlCLHFCQUFnRSxFQUFFLEVBQUU7SUFDOUgsTUFBTSxHQUFHLEdBQWlFLEVBQUUsQ0FBQztJQUM3RSxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFDeEIsSUFBSyxxQkFBNkMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNoRSxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBNEQsQ0FBQztRQUNwRixDQUFDO2FBQU0sQ0FBQztZQUNKLEdBQUcsQ0FBQyxXQUFXLEdBQUcscUJBQWtELENBQUM7UUFDekUsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMsQ0FBQztBQUVGLE1BQU0sT0FBTywwQkFBZ0QsU0FBUSxvQkFBbUM7SUF3QnBHLFlBQW1CLGdCQUE0QyxFQUFFLFVBQWtCLEVBQUUsR0FBOEQ7UUFD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QUN6SCxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsOEJBQThCLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztJQUMxQyxDQUFDOztBQUdMLE1BQU0sT0FBTywwQkFBMEI7SUFDNUIsTUFBTSxDQUFDLE1BQU0sQ0FBUSxNQUFtQztRQUMzRCxPQUFPLElBQUksOEJBQThCLENBQW1CLE1BQU0sQ0FBQyxDQUFDO0lBQ3hFLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQWlCLE1BQW1DLEVBQUUsZUFBeUQ7UUFDM0ksT0FBTyxJQUFJLDhCQUE4QixDQUFpQixNQUFNLEVBQUU7WUFDOUQsR0FBRyw2QkFBNkIsQ0FBQyxlQUFlLENBQUM7U0FDcEQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgU2VydmljZUNsYXNzVHlwZSwgU3R5bGVTaXplRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7QWN0aW9uQnV0dG9uRGVzY3JpcHRvciwgQnV0dG9uU3R5bGVCdWlsZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0vYXBpJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtFZGl0b3JEYXRhUHJvdmlkZXIsIElFZGl0b3JEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uL2VkaXRvci9kYXRhLXByb3ZpZGVycy9lZGl0b3IuZGF0YS1wcm92aWRlcic7XG5pbXBvcnQge0VkaXRvckRlc2NyaXB0b3JJbnN0fSBmcm9tICcuLi8uLi9lZGl0b3IvZGVzY3JpcHRvcnMvZWRpdG9yLmRlc2NyaXB0b3InO1xuaW1wb3J0IHtBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtLCBBY3Rpb25UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi50eXBlJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vbW9kZWxzL3RhYmxldmlldy1hY3Rpb24tZGVmYXVsdC1jYXRlZ29yaWVzLm1vZGVsJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlLCBBY3Rpb25EZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi9hY3Rpb24uZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSAmXG4gICAgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ICYge1xuICAgICAgICBtb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgfTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge1xuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICBkYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+IHwgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25FZGl0b3JHZXRQcm92aWRlckNmZ09iaiA9IDxNb2RlbCwgU2VydmljZT4oc2VydmljZU9yRGF0YVByb3ZpZGVyPzogQWN0aW9uRWRpdG9yUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikgPT4ge1xuICAgIGNvbnN0IGNmZzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge307XG4gICAgaWYgKHNlcnZpY2VPckRhdGFQcm92aWRlcikge1xuICAgICAgICBpZiAoKHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyKS5pc0RhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgLy8gdHlwZSBjYXN0aW5nIG5lZWRlZCwgY2F1c2UgdGhlcmUgd2FzIG5vIG90aGVyIHdheSBmb3VuZCB0byBkaWZmZXJlbnRpYXRlIHRoZSB0eXBlc1xuICAgICAgICAgICAgY2ZnLmRhdGFQcm92aWRlciA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNmZy5zZXJ2aWNlVHlwZSA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjZmc7XG59O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbSwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtLCBTZXJ2aWNlPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8SXRlbT47XG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlYWRvbmx5IF9kYXRhUHJvdmlkZXI/OiBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT4gPSB1bmRlZmluZWQ7XG5cbiAgICBwcm90ZWN0ZWQgX2VkaXRvckFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10gPSBbXTtcbiAgICBwcm90ZWN0ZWQgX2VkaXRvclRpdGxlPzogc3RyaW5nIHwgbnVsbCA9IHVuZGVmaW5lZDtcbiAgICBwcm90ZWN0ZWQgX2VkaXRvclRpdGxlUGFyYW1zPzogYW55ID0gdW5kZWZpbmVkO1xuXG4gICAgcHJvdGVjdGVkIF9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfZGlhbG9nU2l6ZSA9IFN0eWxlU2l6ZUVudW0uTm9ybWFsO1xuICAgIHByb3RlY3RlZCBfZGlhbG9nQ2xhc3NOYW1lPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9mZXRjaEZ1bmN0aW9uPzogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT47XG4gICAgcHJvdGVjdGVkIF9zdWJtaXRGdW5jdGlvbj86IChjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KSA9PiBPYnNlcnZhYmxlPEl0ZW0+O1xuXG4gICAgcHJvdGVjdGVkIF9lZGl0b3JDb21wb25lbnQ/OiBUeXBlPGFueT47XG5cbiAgICBwcm90ZWN0ZWQgX3Jlc3VibWl0RW5hYmxlZD86IGJvb2xlYW47XG4gICAgcHJvdGVjdGVkIF9yZXN1Ym1pdFJlZmV0Y2ggPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxJdGVtPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxJdGVtLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihhY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBtb2RlbDogZWRpdG9yRGVzY3JpcHRvci5tb2RlbCxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcblxuICAgICAgICBpZiAoY2ZnPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gRWRpdG9yRGF0YVByb3ZpZGVyLmZyb21BbnlQYXJhbTxJdGVtLCBTZXJ2aWNlPih0aGlzLl9tb2RlbD8udHlwZSwgY2ZnLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgfSBlbHNlIGlmIChjZmc/LmRhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gY2ZnLmRhdGFQcm92aWRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3R5cGUgPSBBY3Rpb25UeXBlRW51bS5FZGl0b3I7XG4gICAgICAgIHRoaXMuX2VkaXRvckRlc2NyaXB0b3IgPSBlZGl0b3JEZXNjcmlwdG9yO1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zLnB1c2goQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvci5mb3JQcmltYXJ5KHRoaXMpLCBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yLmZvclNlY29uZGFyeSh0aGlzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yVGl0bGVQYXJhbXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVkaXRvckRlc2NyaXB0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGlhbG9nU2l6ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpYWxvZ1NpemU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkaWFsb2dDbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaWFsb2dDbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNGZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBkYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldCBoYXNSdW5GdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gY2Fubm90IGJlIHVzZWQgaW4gZWRpdG9yIGFjdGlvbiBmb3IgJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30uIFVzZSBzdWJtaXQgZnVuY3Rpb24gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXQgcnVuRnVuY3Rpb24oKTogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgdW5rbm93bj4pID0+IE9ic2VydmFibGU8SXRlbT4ge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFJ1biBmdW5jdGlvbiBjYW5ub3QgYmUgdXNlZCBpbiBlZGl0b3IgYWN0aW9uIGZvciAke3RoaXMuX2FjdGlvbk5hbWVMb25nfS4gVXNlIHN1Ym1pdCBmdW5jdGlvbiBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNGZXRjaEZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX2ZldGNoRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmZXRjaEZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmV0Y2hGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1N1Ym1pdEZ1bmN0aW9uKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHRoaXMuX2ZldGNoRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtaXRGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1Ym1pdEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZWRpdG9yQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VkaXRvckFjdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlZGl0b3JDb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lZGl0b3JDb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1Ym1pdEVuYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1Ym1pdEVuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1Ym1pdFJlZmV0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1Ym1pdFJlZmV0Y2g7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Vuc2F2ZWRDaGFuZ2VzQ29uZmlybWF0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yVGl0bGUodGl0bGU6IHN0cmluZyB8IG51bGwsIHBhcmFtcz86IGFueSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9lZGl0b3JUaXRsZVBhcmFtcyA9IHBhcmFtcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEaWFsb2dTaXplKHNpemUgPSBTdHlsZVNpemVFbnVtLk5vcm1hbCk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kaWFsb2dTaXplID0gc2l6ZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEaWFsb2dDbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGlhbG9nQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgd2l0aFJ1bkZ1bmN0aW9uKGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik6IHRoaXMge1xuICAgICAgICByZXR1cm4gdGhpcy53aXRoU3VibWl0RnVuY3Rpb24oZm4gYXMgKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRmV0Y2hGdW5jdGlvbihmbjogKGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pID0+IE9ic2VydmFibGU8SXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZmV0Y2hGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1Ym1pdEZ1bmN0aW9uKGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxJdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJtaXRGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEZldGNoTm90aWZpY2F0aW9uRXJyb3IodGl0bGU/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGhhc05vdGlmaWNhdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzRmV0Y2hOb3RpZmljYXRpb25TdWNjZXNzID0gaGFzTm90aWZpY2F0aW9uO1xuICAgICAgICB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9mZXRjaE5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JBY3Rpb24oYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxJdGVtPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhFZGl0b3JBY3Rpb25zKGFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3JJbnN0PEl0ZW0+W10pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yQWN0aW9ucyA9IGFjdGlvbnM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoRWRpdG9yQ29tcG9uZW50KGVkaXRvckNvbXBvbmVudDogVHlwZTxhbnk+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2VkaXRvckNvbXBvbmVudCA9IGVkaXRvckNvbXBvbmVudDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSZXN1Ym1pdChlbmFibGVkPzogYm9vbGVhbiwgcmVmZXRjaCA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcmVzdWJtaXRFbmFibGVkID0gZW5hYmxlZDtcbiAgICAgICAgdGhpcy5fcmVzdWJtaXRSZWZldGNoID0gcmVmZXRjaDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhVbnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbih1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24gPSB1bnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRWRpdG9yRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSkge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGVkaXRvciwgYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgcGFyZW50VHlwZTogY2ZnPy5wYXJlbnRUeXBlLFxuICAgICAgICAgICAgcGFyZW50UHJvcGVydHk6IGNmZz8ucGFyZW50UHJvcGVydHlcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICBlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25FZGl0b3JQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0KGVkaXRvciwgYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIHBhcmVudFR5cGU6IGNmZz8ucGFyZW50VHlwZSxcbiAgICAgICAgICAgIHBhcmVudFByb3BlcnR5OiBjZmc/LnBhcmVudFByb3BlcnR5XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0PE1vZGVsPiBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPiB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD47XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3VibWl0VHlwZTogQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW07XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JBY3Rpb246IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgc3VibWl0VHlwZSA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCkge1xuICAgICAgICBzdXBlcihzdWJtaXRUeXBlID09PSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQgPyBgJHtlZGl0b3JBY3Rpb24uYWN0aW9uTmFtZX0uc3VibWl0YCA6IGAke2VkaXRvckFjdGlvbi5hY3Rpb25OYW1lfS5jYW5jZWxgLCB7bW9kZWw6IGVkaXRvckFjdGlvbi5tb2RlbH0pO1xuICAgICAgICB0aGlzLl9lZGl0b3JBY3Rpb24gPSBlZGl0b3JBY3Rpb247XG4gICAgICAgIHRoaXMuX3N1Ym1pdFR5cGUgPSBzdWJtaXRUeXBlO1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJSaWdodDtcblxuICAgICAgICB0aGlzLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbChlZGl0b3JBY3Rpb24ubGV2ZWwpLndpdGhUZXh0QnV0dG9uKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJtaXRUeXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3VibWl0VHlwZTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9yIHtcbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIHByaW1hcnkgYWN0aW9uIHdpdGggcHJpbWFyeSBidXR0b24gc3R5bGVcbiAgICAgKiBAcGFyYW0gZWRpdG9yQWN0aW9uXG4gICAgICogQHBhcmFtIHN1Ym1pdFR5cGVcbiAgICAgKi9cbiAgICBzdGF0aWMgZm9yUHJpbWFyeTxNb2RlbD4oZWRpdG9yQWN0aW9uOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sIHN1Ym1pdFR5cGUgPSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQpOiBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdDxNb2RlbD4ge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3JJbnN0KGVkaXRvckFjdGlvbiwgc3VibWl0VHlwZSkud2l0aEJ1dHRvbkRlc2NyaXB0b3IobmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIHNlY29uZGFyeSBidXR0b24gd2l0aCB0ZXh0IGJ1dHRvbiBzdHlsZVxuICAgICAqIEBwYXJhbSBlZGl0b3JBY3Rpb25cbiAgICAgKiBAcGFyYW0gc3VibWl0VHlwZVxuICAgICAqL1xuICAgIHN0YXRpYyBmb3JTZWNvbmRhcnk8TW9kZWw+KGVkaXRvckFjdGlvbjogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzdWJtaXRUeXBlID0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uQ2FuY2VsKTogQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvckluc3Q8TW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JTdWJtaXREZXNjcmlwdG9ySW5zdChlZGl0b3JBY3Rpb24sIHN1Ym1pdFR5cGUpLndpdGhCdXR0b25EZXNjcmlwdG9yKFxuICAgICAgICAgICAgbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoU3R5bGVDbGFzcyhuZXcgQnV0dG9uU3R5bGVCdWlsZGVyKCkud2l0aFRleHRCdXR0b24oKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGV4dGVuZHMgQWN0aW9uRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEFDVElPTl9OQU1FID0gJ2RldGFpbHMnO1xuXG4gICAgY29uc3RydWN0b3IoZWRpdG9yRGVzY3JpcHRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBjZmc/OiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoZWRpdG9yRGVzY3JpcHRvciwgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCBjZmcpO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uUm93Q2xpY2spO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQnKTtcbiAgICAgICAgdGhpcy53aXRoRWRpdG9yQWN0aW9ucyhbQWN0aW9uRWRpdG9yU3VibWl0RGVzY3JpcHRvci5mb3JTZWNvbmRhcnkodGhpcywgQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uQ2FuY2VsKV0pO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERVRBSUxTKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yRGV0YWlsc0Rlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGVkaXRvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JEZXRhaWxzRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGVkaXRvciwge1xuICAgICAgICAgICAgLi4uYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnYWRkJztcblxuICAgIGNvbnN0cnVjdG9yKGVkaXRvckRlc2NyaXB0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPiwgY2ZnPzogQWN0aW9uRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHN1cGVyKGVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0LkFDVElPTl9OQU1FLCBjZmcpO1xuICAgICAgICB0aGlzLndpdGhQb3NpdGlvbihBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhckxlZnQpO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJ2FkZCcpO1xuICAgICAgICB0aGlzLmJ1dHRvbi53aXRoSWNvbigncGkgcGktcGx1cycpO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5BREQpO1xuICAgICAgICB0aGlzLndpdGhVbnNhdmVkQ2hhbmdlc0NvbmZpcm1hdGlvbigpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihlZGl0b3I6IEVkaXRvckRlc2NyaXB0b3JJbnN0PE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkVkaXRvckFkZERlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGVkaXRvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JBZGREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oZWRpdG9yLCB7XG4gICAgICAgICAgICAuLi5hY3Rpb25FZGl0b3JHZXRQcm92aWRlckNmZ09iaihzZXJ2aWNlUHJvdmlkZXIpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVkaXRvckVkaXREZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25FZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZWRpdCc7XG5cbiAgICBjb25zdHJ1Y3RvcihlZGl0b3JEZXNjcmlwdG9yOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxNb2RlbD4sIGNmZz86IEFjdGlvbkVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihlZGl0b3JEZXNjcmlwdG9yLCBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3QuQUNUSU9OX05BTUUsIGNmZyk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmUpO1xuICAgICAgICB0aGlzLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uU21hbGwpO1xuICAgICAgICB0aGlzLndpdGhSb3V0ZVRyaWdnZXIoJzppdGVtSWQvZWRpdCcpO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5FRElUKTtcbiAgICAgICAgdGhpcy5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS1wZW5jaWwnKTtcbiAgICAgICAgdGhpcy53aXRoVW5zYXZlZENoYW5nZXNDb25maXJtYXRpb24oKTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRWRpdG9yRWRpdERlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGVkaXRvcik7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KGVkaXRvcjogRWRpdG9yRGVzY3JpcHRvckluc3Q8TW9kZWw+LCBzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvbkVkaXRvclByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25FZGl0b3JFZGl0RGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGVkaXRvciwge1xuICAgICAgICAgICAgLi4uYWN0aW9uRWRpdG9yR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -382,4 +382,4 @@ export class ActionDeleteDescriptor {
|
|
|
382
382
|
});
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLFlBQVksRUFHWixhQUFhLEVBRWIsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJN0QsT0FBTyxFQUFDLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBOEI5RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFpQixxQkFBMEQsRUFBRSxFQUFFO0lBQ2xILE1BQU0sR0FBRyxHQUEyRCxFQUFFLENBQUM7SUFDdkUsSUFBSSxxQkFBcUIsRUFBRTtRQUN2QixJQUFLLHFCQUF1QyxDQUFDLGNBQWMsRUFBRTtZQUN6RCxxRkFBcUY7WUFDckYsR0FBRyxDQUFDLFlBQVksR0FBRyxxQkFBc0QsQ0FBQztTQUM3RTthQUFNO1lBQ0gsR0FBRyxDQUFDLFdBQVcsR0FBRyxxQkFBa0QsQ0FBQztTQUN4RTtLQUNKO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sb0JBQW9CO0lBdUQ3QixZQUFzQixVQUFrQixFQUFFLEdBQXlEO1FBM0N6RixVQUFLLEdBQW1CLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDOUMsdUJBQWtCLEdBQWdDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztRQUN0RixjQUFTLEdBQXVCLGtCQUFrQixDQUFDLFlBQVksQ0FBQztRQUNoRSxXQUFNLEdBQW1CLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFJaEQsY0FBUyxHQUFrQixJQUFJLENBQUM7UUFRaEMsK0JBQTBCLEdBQUcsSUFBSSxDQUFDO1FBSWxDLDZCQUF3QixHQUFHLElBQUksQ0FBQztRQVUxQyxRQUFRO1FBQ0UsWUFBTyxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQztRQUVqRCx5QkFBeUI7UUFDZix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFNckMsYUFBYTtRQUNILHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixnQkFBVyxHQUF1QyxFQUFFLENBQUM7UUFHM0QsSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsS0FBSyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBRTlCLElBQUksQ0FBQyxHQUFHLEVBQUUsVUFBVSxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsY0FBYyxJQUFJLEdBQUcsRUFBRSxjQUFjLENBQUMsRUFBRTtZQUM1RixNQUFNLElBQUksb0JBQW9CLENBQUMsNkRBQTZELElBQUksQ0FBQyxXQUFXLEtBQUssR0FBRyxFQUFFLFVBQVUsS0FBSyxHQUFHLEVBQUUsY0FBYyxHQUFHLENBQUMsQ0FBQztTQUNoSztRQUNELElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLFVBQVUsQ0FBQztRQUNuQyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxVQUFVLENBQUMsSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN2RyxJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRSxjQUFjLENBQUM7UUFFM0MsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFakMsSUFBSSxHQUFHLEVBQUUsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDLFlBQVksQ0FBaUIsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3RHO2FBQU0sSUFBSSxHQUFHLEVBQUUsWUFBWSxFQUFFO1lBQzFCLElBQUksQ0FBQyxhQUFhLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQztTQUN6QztRQUVELElBQUksV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxNQUFNO1lBQUUsV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksYUFBYSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ3BILElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN0QixXQUFXLEdBQUcsR0FBRyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7U0FDbEY7UUFDRCxJQUFJLENBQUMsZUFBZSxHQUFHLFdBQVcsQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBVyxLQUFLO1FBQ1osT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLHNCQUFzQjtRQUM3QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFBVyxJQUFJO1FBQ1gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFRCxJQUFXLEtBQUs7UUFDWixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLFVBQVUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3BCLE1BQU0sSUFBSSxvQkFBb0IsQ0FBQywwQ0FBMEMsSUFBSSxDQUFDLGVBQWUsd0JBQXdCLENBQUMsQ0FBQztTQUMxSDtRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxpQkFBaUI7UUFDeEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsK0JBQStCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGdDQUFnQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUN6QixPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGdDQUFnQyxLQUFLLFNBQVMsQ0FBQztJQUNqSCxDQUFDO0lBRUQsSUFBVyx5QkFBeUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsMkJBQTJCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLDZCQUE2QjtRQUNwQyxPQUFPLElBQUksQ0FBQyw4QkFBOEIsQ0FBQztJQUMvQyxDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcseUJBQXlCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLDBCQUEwQixDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUFXLDJCQUEyQjtRQUNsQyxPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsaUJBQWlCO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxNQUFNO1FBQ2IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsMkJBQTJCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLDRCQUE0QixDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFXLGdCQUFnQjtRQUN2QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRVMseUJBQXlCLENBQUMsSUFBYTtRQUM3QyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNyQyxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLGVBQWU7Z0JBQy9DLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLFlBQVksSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUMvRSxDQUFDLENBQUMsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU8sQ0FBQyxXQUFXLFlBQVksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzNFO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxFQUFtQztRQUN0RCxJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0scUJBQXFCLENBQUMsRUFBMkM7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0scUJBQXFCLENBQUMsRUFBMkM7UUFDcEUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sZ0JBQWdCLENBQUMsUUFBZ0I7UUFDcEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLDJCQUEyQixDQUFDLE9BQU8sQ0FBQztRQUM5RCxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLFFBQTRCO1FBQzVDLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7T0FFRztJQUNJLG1CQUFtQjtRQUN0QixJQUFJLENBQUMsZ0NBQWdDLEdBQUcsSUFBSSw0QkFBNEIsRUFBUyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLGdDQUFnQyxDQUFDLFlBQVksRUFBRSxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RixPQUFPLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztJQUNqRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksNkJBQTZCLENBQUMsK0JBQXFFO1FBQ3RHLElBQUksQ0FBQyxnQ0FBZ0MsR0FBRywrQkFBK0IsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sMEJBQTBCLENBQUMsS0FBYyxFQUFFLE9BQWdCLEVBQUUsZUFBZSxHQUFHLElBQUk7UUFDdEYsSUFBSSxDQUFDLDBCQUEwQixHQUFHLGVBQWUsQ0FBQztRQUNsRCxJQUFJLENBQUMsNEJBQTRCLEdBQUcsS0FBSyxDQUFDO1FBQzFDLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxPQUFPLENBQUM7UUFDOUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLHdCQUF3QixDQUFDLEtBQWMsRUFBRSxPQUFnQixFQUFFLGVBQWUsR0FBRyxJQUFJO1FBQ3BGLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxlQUFlLENBQUM7UUFDaEQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsNEJBQTRCLEdBQUcsT0FBTyxDQUFDO1FBQzVDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxrQkFBa0IsQ0FBd0IsTUFBK0c7UUFDNUosSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLENBQUM7UUFDOUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG9CQUFvQixDQUFVLE1BQXVHO1FBQ3hJLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxXQUF5QjtRQUM1QyxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN6QixhQUFhLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUNyQixzQ0FBc0MsSUFBSSxDQUFDLGVBQWUscUJBQXFCLElBQUksQ0FBQyxrQkFBa0IsOENBQThDLENBQ3ZKLENBQUM7U0FDTDtRQUNELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxvQkFBNEI7UUFDckQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLG9CQUFvQixDQUFDO1FBQy9DLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxNQUE4QjtRQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sVUFBVSxDQUFDLEtBQXFCLEVBQUUsT0FBc0IsSUFBSSxFQUFFLFVBQVUsR0FBRyxjQUFjLENBQUMsT0FBTyxFQUFFLFNBQVMsR0FBRyxLQUFLO1FBQ3ZILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsY0FBYyxDQUFDLElBQUksa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDekosT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGtCQUFrQixDQUFDLFlBQVksR0FBRyxJQUFJO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEgsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGFBQWEsQ0FBQyxTQUF3QztRQUN6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsY0FBeUM7UUFDaEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGNBQWMsQ0FBQztRQUN2QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sK0JBQStCLENBQUMsMkJBQXFDO1FBQ3hFLElBQUksQ0FBQyw0QkFBNEIsR0FBRywyQkFBMkIsQ0FBQztRQUNoRSxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sWUFBWSxDQUFDLElBQWlDO1FBQ2pELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ1gsTUFBTSxJQUFJLG9CQUFvQixDQUFDLHlDQUF5QyxJQUFJLGNBQWMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7YUFDcEg7WUFDRCxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQ25CO1FBQ0QsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxvQkFBb0IsQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJO1FBQy9DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYyxDQUFDLEdBQUcsVUFBOEM7UUFDbkUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsQ0FBQztRQUNyQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQWdEO1FBQzFELFVBQVUsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUM7UUFDbEUsVUFBVSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlCLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUNoQyxVQUFVLENBQUMsNEJBQTRCLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDO1FBRTVFLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXRDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM1QyxVQUFVLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDO1FBQ3hELFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFFeEQsVUFBVSxDQUFDLGdDQUFnQyxHQUFHLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQztRQUVwRixVQUFVLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDO1FBQ3hFLFVBQVUsQ0FBQyw0QkFBNEIsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUM7UUFDNUUsVUFBVSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQztRQUVoRixVQUFVLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3BFLFVBQVUsQ0FBQywwQkFBMEIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUM7UUFDeEUsVUFBVSxDQUFDLDRCQUE0QixHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQztRQUU1RSxVQUFVLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbEQsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUV0RCxVQUFVLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7UUFFNUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1FBRXpDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsVUFBVSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDdEQsVUFBVSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTFDLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxvQkFBeUI7SUFDM0Q7UUFDSSxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLE1BQU0sQ0FBQyxNQUFNLENBQVEsVUFBa0IsRUFBRSxHQUEwQztRQUN0RixPQUFPLElBQUksb0JBQW9CLENBQW1CLFVBQVUsRUFBRTtZQUMxRCxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sTUFBTSxDQUFDLGtCQUFrQixDQUFpQixlQUFtRCxFQUFFLFVBQWtCLEVBQUUsR0FBMEM7UUFDaEssT0FBTyxJQUFJLG9CQUFvQixDQUFpQixVQUFVLEVBQUU7WUFDeEQsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7WUFDM0MsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsS0FBNkIsRUFBRSxVQUFrQixFQUFFLEdBQTBDO1FBQ3hILE9BQU8sSUFBSSxvQkFBb0IsQ0FBbUIsVUFBVSxFQUFFO1lBQzFELEtBQUs7WUFDTCxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUMvQixLQUE2QixFQUM3QixlQUFtRCxFQUNuRCxVQUFrQixFQUNsQixHQUEwQztRQUUxQyxPQUFPLElBQUksb0JBQW9CLENBQWlCLFVBQVUsRUFBRTtZQUN4RCxLQUFLO1lBQ0wsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7WUFDM0MsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsSUFBc0IsRUFBRSxVQUFrQixFQUFFLEdBQWdEO1FBQ3ZILE9BQU8sSUFBSSxvQkFBb0IsQ0FBbUIsVUFBVSxFQUFFO1lBQzFELEtBQUssRUFBRSxlQUFlLENBQUMsU0FBUyxDQUFRLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFFLFdBQVcsQ0FBQztZQUNwRyxHQUFHLEdBQUc7U0FDVCxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sTUFBTSxDQUFDLHFCQUFxQixDQUMvQixTQUEyQixFQUMzQixlQUFtRCxFQUNuRCxVQUFrQixFQUNsQixHQUFnRDtRQUVoRCxPQUFPLElBQUksb0JBQW9CLENBQWlCLFVBQVUsRUFBRTtZQUN4RCxLQUFLLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBUSxTQUFTLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsYUFBYSxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUM7WUFDekcsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7WUFDM0MsR0FBRyxHQUFHO1NBQ1QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLDBCQUFpRCxTQUFRLG9CQUFvQzthQUMvRSxnQkFBVyxHQUFHLFFBQVEsQ0FBQztJQUU5QyxZQUFZLEtBQTZCLEVBQUUsR0FBNEQ7UUFDbkcsS0FBSyxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxFQUFDLEtBQUssRUFBRSxHQUFHLEdBQUcsRUFBQyxDQUFDLENBQUM7UUFDL0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGdDQUFnQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN4RCxDQUFDOztBQUdMLE1BQU0sT0FBTyxzQkFBc0I7SUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBUSxLQUE2QjtRQUNyRCxPQUFPLElBQUksMEJBQTBCLENBQW1CLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxNQUFNLENBQUMsa0JBQWtCLENBQWlCLEtBQTZCLEVBQUUsZUFBbUQ7UUFDL0gsT0FBTyxJQUFJLDBCQUEwQixDQUFpQixLQUFLLEVBQUU7WUFDekQsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFQZXJtaXNzaW9ucyxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVyLFxuICAgIElBY3Rpb25EZXNjcmlwdG9ySW50ZXJuYWwsXG4gICAgSURhdGFQcm92aWRlcixcbiAgICBMb2dnZXJTZXJ2aWNlLFxuICAgIFNlcnZpY2VDbGFzc1R5cGUsXG4gICAgU3R5bGVMZXZlbEVudW0sXG4gICAgU3R5bGVTaXplRW51bSxcbiAgICBmaW5kUmVmbGVjdFR5cGVOYW1lXG59IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0FjdGlvbkJ1dHRvbkRlc2NyaXB0b3IsIEJ1dHRvblN0eWxlQnVpbGRlcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9mb3JtL2FwaSc7XG5pbXBvcnQge01vZGVsRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7SUFjdGlvbkNvbXBvbmVudH0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi1jb21wb25lbnQubW9kZWwnO1xuaW1wb3J0IHtBY3Rpb25SdW5GblR5cGUsIEFjdGlvblZhbGlkYXRpb25GblR5cGV9IGZyb20gJy4uL21vZGVscy9hY3Rpb24tZGVzY3JpcHRvci50eXBlcyc7XG5pbXBvcnQge0FjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSwgQWN0aW9uUG9zaXRpb25FbnVtLCBBY3Rpb25UeXBlRW51bX0gZnJvbSAnLi4vbW9kZWxzL2FjdGlvbi50eXBlJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuaW1wb3J0IHtUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllc30gZnJvbSAnLi4vbW9kZWxzL3RhYmxldmlldy1hY3Rpb24tZGVmYXVsdC1jYXRlZ29yaWVzLm1vZGVsJztcbmltcG9ydCB7QWN0aW9uQ29uZmlybWF0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi9hY3Rpb24tY29uZmlybWF0aW9uLmRlc2NyaXB0b3InO1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZT4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgJlxuICAgIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiAmIHtcbiAgICAgICAgbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuICAgIH07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPiA9IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzTW9kZWw8TW9kZWw+ICYgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNJMThuVHlwZSAmIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge1xuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgPSB7XG4gICAgaTE4bkJhc2VLZXk/OiBzdHJpbmcgfCBDbGFzc1R5cGU8YW55Pjtcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzTW9kZWw8TW9kZWw+ID0ge1xuICAgIGlkUHJvcGVydHk/OiBrZXlvZiBNb2RlbDtcbiAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUgPSB7XG4gICAgcGFyZW50VHlwZT86IENsYXNzVHlwZTx1bmtub3duPjtcbiAgICBwYXJlbnRQcm9wZXJ0eT86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+IHwgSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25HZXRQcm92aWRlckNmZ09iaiA9IDxNb2RlbCwgU2VydmljZT4oc2VydmljZU9yRGF0YVByb3ZpZGVyPzogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikgPT4ge1xuICAgIGNvbnN0IGNmZzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0ge307XG4gICAgaWYgKHNlcnZpY2VPckRhdGFQcm92aWRlcikge1xuICAgICAgICBpZiAoKHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRGF0YVByb3ZpZGVyKS5pc0RhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgLy8gdHlwZSBjYXN0aW5nIG5lZWRlZCwgY2F1c2UgdGhlcmUgd2FzIG5vIG90aGVyIHdheSBmb3VuZCB0byBkaWZmZXJlbnRpYXRlIHRoZSB0eXBlc1xuICAgICAgICAgICAgY2ZnLmRhdGFQcm92aWRlciA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBJRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNmZy5zZXJ2aWNlVHlwZSA9IHNlcnZpY2VPckRhdGFQcm92aWRlciBhcyBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+O1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjZmc7XG59O1xuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnk+IGltcGxlbWVudHMgSUFjdGlvbkRlc2NyaXB0b3JJbnRlcm5hbDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfbW9kZWw/OiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+O1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfYWN0aW9uTmFtZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfYWN0aW9uTmFtZUxvbmc6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhcmVudFR5cGU/OiBDbGFzc1R5cGU8dW5rbm93bj47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9wYXJlbnRUeXBlTmFtZT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhcmVudFByb3BlcnR5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9kYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHByb3RlY3RlZCBfaTE4bk1vZGVsQWN0aW9uQmFzZUtleT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfdHlwZTogQWN0aW9uVHlwZUVudW0gPSBBY3Rpb25UeXBlRW51bS5EaXJlY3Q7XG4gICAgcHJvdGVjdGVkIF9hY3RpdmF0aW9uVHJpZ2dlcjogQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtID0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uQ2xpY2s7XG4gICAgcHJvdGVjdGVkIF9wb3NpdGlvbjogQWN0aW9uUG9zaXRpb25FbnVtID0gQWN0aW9uUG9zaXRpb25FbnVtLlRvb2xiYXJSaWdodDtcbiAgICBwcm90ZWN0ZWQgX2xldmVsOiBTdHlsZUxldmVsRW51bSA9IFN0eWxlTGV2ZWxFbnVtLkRlZmF1bHQ7XG4gICAgcHJpdmF0ZSBfcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzPzogc3RyaW5nW107XG4gICAgcHJvdGVjdGVkIF90YWJsZXZpZXdDYXRlZ29yeT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfcm91dGVVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIF9ydW5GdW5jdGlvbj86IEFjdGlvblJ1bkZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9pc1Zpc2libGVGdW5jdGlvbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuICAgIHByb3RlY3RlZCBfaXNFbmFibGVkRnVuY3Rpb24/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHByb3RlY3RlZCBfcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcj86IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+O1xuXG4gICAgcHJvdGVjdGVkIF9oYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9oYXNSdW5Ob3RpZmljYXRpb25FcnJvciA9IHRydWU7XG4gICAgcHJvdGVjdGVkIF9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlPzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9hZnRlclJ1bkFjdGlvbj86IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4gfCAoKGN0eDogSUFjdGlvbkNvbnRleHQ8TW9kZWwsIGFueT4pID0+IEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4pO1xuICAgIHByb3RlY3RlZCBfb25SdW5FcnJvckFjdGlvbj86IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxNb2RlbCwgYW55PikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+KTtcblxuICAgIC8vIHNlY3VyaXR5XG4gICAgcHJvdGVjdGVkIF9wZXJtaXNzaW9ucz86IEFQZXJtaXNzaW9ucztcblxuICAgIC8vYnV0dG9uXG4gICAgcHJvdGVjdGVkIF9idXR0b24gPSBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpO1xuXG4gICAgLy8gbXVsdGlwbGUgcm93IHNlbGVjdGlvblxuICAgIHByb3RlY3RlZCBfaGFzSXRlbXNTZWxlY3Rpb24gPSBmYWxzZTtcblxuICAgIC8vIGN1c3RvbSBhY3Rpb24gY29tcG9uZW50XG4gICAgcHJvdGVjdGVkIF9jb21wb25lbnQ/OiBUeXBlPElBY3Rpb25Db21wb25lbnQ8TW9kZWw+PjtcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudEZyb21EaT86IEluamVjdGlvblRva2VuPFR5cGU8YW55Pj47XG5cbiAgICAvLyBzdWJhY3Rpb25zXG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zQXNNZW51ID0gZmFsc2U7XG4gICAgcHJvdGVjdGVkIF9zdWJhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4+ID0gW107XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ29uc3RydWN0b3JPcHRzVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgdGhpcy5fbW9kZWwgPSBjZmc/Lm1vZGVsO1xuICAgICAgICB0aGlzLl9hY3Rpb25OYW1lID0gYWN0aW9uTmFtZTtcblxuICAgICAgICBpZiAoKGNmZz8ucGFyZW50VHlwZSAmJiAhY2ZnPy5wYXJlbnRQcm9wZXJ0eSkgfHwgKCFjZmc/LnBhcmVudFByb3BlcnR5ICYmIGNmZz8ucGFyZW50UHJvcGVydHkpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFByb3ZpZGUgYm90aCB0aGUgcGFyZW50IHR5cGUgYW5kIHBhcmVudCBwcm9wZXJ0eSBvciBub25lOiAke3RoaXMuX2FjdGlvbk5hbWV9LCAke2NmZz8ucGFyZW50VHlwZX0sICR7Y2ZnPy5wYXJlbnRQcm9wZXJ0eX0uYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGFyZW50VHlwZSA9IGNmZz8ucGFyZW50VHlwZTtcbiAgICAgICAgdGhpcy5fcGFyZW50VHlwZU5hbWUgPSBjZmc/LnBhcmVudFR5cGUgPyBmaW5kUmVmbGVjdFR5cGVOYW1lKGNmZz8ucGFyZW50VHlwZSkgPz8gdW5kZWZpbmVkIDogdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLl9wYXJlbnRQcm9wZXJ0eSA9IGNmZz8ucGFyZW50UHJvcGVydHk7XG5cbiAgICAgICAgdGhpcy5zZXRJMThuTW9kZWxBY3Rpb25CYXNlS2V5KCk7XG5cbiAgICAgICAgaWYgKGNmZz8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IERhdGFQcm92aWRlci5mcm9tQW55UGFyYW08TW9kZWwsIFNlcnZpY2U+KHRoaXMuX21vZGVsPy50eXBlLCBjZmcuc2VydmljZVR5cGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGNmZz8uZGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBjZmcuZGF0YVByb3ZpZGVyO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpc3BsYXlOYW1lID0gYWN0aW9uTmFtZTtcbiAgICAgICAgaWYgKHRoaXMuX21vZGVsKSBkaXNwbGF5TmFtZSA9IGAke3RoaXMuX21vZGVsLnR5cGVOYW1lID8/IHRoaXMuX21vZGVsLmkxOG5CYXNlS2V5ID8/ICdOb01vZGVsTmFtZSd9LiR7ZGlzcGxheU5hbWV9YDtcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudFR5cGVOYW1lKSB7XG4gICAgICAgICAgICBkaXNwbGF5TmFtZSA9IGAke3RoaXMuX3BhcmVudFR5cGVOYW1lfS4ke3RoaXMuX3BhcmVudFByb3BlcnR5fV8ke2Rpc3BsYXlOYW1lfWA7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fYWN0aW9uTmFtZUxvbmcgPSBkaXNwbGF5TmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJlbnRUeXBlTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFR5cGVOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGFyZW50UHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wYXJlbnRQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3RpdmF0aW9uVHJpZ2dlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2YXRpb25UcmlnZ2VyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxldmVsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbGV2ZWw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3V0ZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlVXJsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZGF0YVByb3ZpZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0YVByb3ZpZGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuRnVuY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdGhpcy5fcnVuRnVuY3Rpb24gPT09ICdmdW5jdGlvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5GdW5jdGlvbigpOiBBY3Rpb25SdW5GblR5cGU8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9ydW5GdW5jdGlvbikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBSdW4gZnVuY3Rpb24gaXMgbm90IGRlZmluZWQgZm9yIGFjdGlvbiAke3RoaXMuX2FjdGlvbk5hbWVMb25nfSBhbmQgY2Fubm90IGJlIGludm9rZWRgKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fcnVuRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc1Zpc2libGVGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNFbmFibGVkRnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGlvbk5hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uTmFtZUxvbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hY3Rpb25OYW1lTG9uZztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3MuY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc1J1bkNvbmZpcm1hdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgIT09IG51bGwgJiYgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciAhPT0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuTm90aWZpY2F0aW9uRXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWZ0ZXJSdW5BY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hZnRlclJ1bkFjdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG9uUnVuRXJyb3JBY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vblJ1bkVycm9yQWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGVybWlzc2lvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wZXJtaXNzaW9ucztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRhYmxldmlld0NhdGVnb3J5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNJdGVtc1NlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYnV0dG9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYnV0dG9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29tcG9uZW50RnJvbURpKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29tcG9uZW50RnJvbURpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3ViYWN0aW9uc0FzTWVudSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N1YmFjdGlvbnNBc01lbnU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJhY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViYWN0aW9ucztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlPzogc3RyaW5nKSB7XG4gICAgICAgIGlmICh0aGlzLl9wYXJlbnRUeXBlTmFtZSB8fCB0aGlzLl9tb2RlbCkge1xuICAgICAgICAgICAgdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleSA9IHRoaXMuX3BhcmVudFR5cGVOYW1lXG4gICAgICAgICAgICAgICAgPyBgJHt0aGlzLl9wYXJlbnRUeXBlTmFtZX0uYWN0aW9ucy4ke3RoaXMuX3BhcmVudFByb3BlcnR5fV8ke3RoaXMuX2FjdGlvbk5hbWV9YFxuICAgICAgICAgICAgICAgIDogYCR7YmFzZSA/PyB0aGlzLl9tb2RlbCEuaTE4bkJhc2VLZXl9LmFjdGlvbnMuJHt0aGlzLl9hY3Rpb25OYW1lfWA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bkZ1bmN0aW9uKGZuOiBBY3Rpb25SdW5GblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXNWaXNpYmxlRnVuY3Rpb24oZm4/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc1Zpc2libGVGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aElzRW5hYmxlZEZ1bmN0aW9uKGZuPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSb3V0ZVRyaWdnZXIocm91dGVVcmw6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9hY3RpdmF0aW9uVHJpZ2dlciA9IEFjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bS5PblJvdXRlO1xuICAgICAgICB0aGlzLl9yb3V0ZVVybCA9IHJvdXRlVXJsO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBvc2l0aW9uKHBvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogY3JlYXRlcyBjb25maXJtYXRpb24gYWN0aW9uIHdpdGggZGVmYXVsdCBzdHlsZSBiYXNlZCBvbiBhY3Rpb24gZGVzY3JpcHRvclxuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uKCk6IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+IHtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciA9IG5ldyBBY3Rpb25Db25maXJtYXRpb25EZXNjcmlwdG9yPE1vZGVsPigpO1xuICAgICAgICB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yLmFjY2VwdEJ1dHRvbi5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbCh0aGlzLl9sZXZlbCk7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IucmVqZWN0QnV0dG9uPy5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbCh0aGlzLl9sZXZlbCk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3I7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWRkIGEgY29uZmlndXJhdGlvbiBkaWFsb2d1ZSB0byBhY3Rpb24gdXNpbmcgQWN0aW9uQ29uZmlndXJhdGlvbkRlc2NyaXB0b3JcbiAgICAgKiBAcGFyYW0gcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciBkZXNjcmlwdG9yIHdpdGggY3VzdG9taXphYmxlIGluZm9ybWF0aW9uIGZvciBkaWFsb2dcbiAgICAgKi9cbiAgICBwdWJsaWMgd2l0aFJ1bkNvbmZpcm1hdGlvbkRlc2NyaXB0b3IocnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcj86IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModGl0bGU/OiBzdHJpbmcsIG1lc3NhZ2U/OiBzdHJpbmcsIGhhc05vdGlmaWNhdGlvbiA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcyA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gbWVzc2FnZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhSdW5Ob3RpZmljYXRpb25FcnJvcih0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvciA9IGhhc05vdGlmaWNhdGlvbjtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSA9IHRpdGxlO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEFmdGVyUnVuQWN0aW9uPFJldHVybiwgU2VydmljZSA9IGFueT4oYWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8UmV0dXJuPiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxNb2RlbCwgU2VydmljZT4pID0+IEFjdGlvbkRlc2NyaXB0b3JJbnN0PFJldHVybj4pKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2FmdGVyUnVuQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aE9uUnVuRXJyb3JBY3Rpb248UyA9IGFueT4oYWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PE1vZGVsLCBTPikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+KSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9vblJ1bkVycm9yQWN0aW9uID0gYWN0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBlcm1pc3Npb25zKHBlcm1pc3Npb25zOiBBUGVybWlzc2lvbnMpOiB0aGlzIHtcbiAgICAgICAgaWYgKHRoaXMuX3RhYmxldmlld0NhdGVnb3J5KSB7XG4gICAgICAgICAgICBMb2dnZXJTZXJ2aWNlLmdldCgpLmRlYnVnKFxuICAgICAgICAgICAgICAgIGBXQVJOSU5HOiBQZXJtaXNzaW9ucyBzZXQgb24gYWN0aW9uICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9IHdpdGggcm91dGUgdHlwZSAnJHt0aGlzLl90YWJsZXZpZXdDYXRlZ29yeX0nIHdpbGwgYmUgb21pdHRlZCBpbiByb3V0ZSBndWFyZCB2YWxpZGF0aW9uLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcGVybWlzc2lvbnMgPSBwZXJtaXNzaW9ucztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhUYWJsZXZpZXdDYXRlZ29yeShwZXJtaXNzaW9uc1JvdXRlVHlwZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3RhYmxldmlld0NhdGVnb3J5ID0gcGVybWlzc2lvbnNSb3V0ZVR5cGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uRGVzY3JpcHRvcihidXR0b246IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0gYnV0dG9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEJ1dHRvbihsYWJlbD86IHN0cmluZyB8IG51bGwsIGljb246IHN0cmluZyB8IG51bGwgPSBudWxsLCBzdHlsZUxldmVsID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdCwgc3R5bGVUZXh0ID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYnV0dG9uID0gbmV3IEFjdGlvbkJ1dHRvbkRlc2NyaXB0b3IoKS53aXRoTGFiZWwobGFiZWwpLndpdGhJY29uKGljb24pLndpdGhTdHlsZUNsYXNzKG5ldyBCdXR0b25TdHlsZUJ1aWxkZXIoc3R5bGVMZXZlbCkud2l0aFRleHRCdXR0b24oc3R5bGVUZXh0KSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXRlbXNTZWxlY3Rpb24oaGFzU2VsZWN0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNJdGVtc1NlbGVjdGlvbiA9IGhhc1NlbGVjdGlvbjtcbiAgICAgICAgdGhpcy5faXNFbmFibGVkRnVuY3Rpb24gPSB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbiA/PyAoY3R4ID0+IG9mKChjdHgucGFyYW1ldGVycy5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggPz8gMCkgPiAwKSk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ29tcG9uZW50KGNvbXBvbmVudDogVHlwZTxJQWN0aW9uQ29tcG9uZW50PE1vZGVsPj4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29tcG9uZW50ID0gY29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbXBvbmVudEZyb21EaShpbmplY3Rpb25Ub2tlbjogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb21wb25lbnRGcm9tRGkgPSBpbmplY3Rpb25Ub2tlbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMocG9zaXRpb25UYWJsZXZpZXdDYXRlZ29yaWVzOiBzdHJpbmdbXSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSTE4bkJhc2UoYmFzZTogQ2xhc3NUeXBlPHVua25vd24+IHwgc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIGlmICh0eXBlb2YgYmFzZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbnN0IHR5cGVOYW1lID0gZmluZFJlZmxlY3RUeXBlTmFtZShiYXNlKTtcbiAgICAgICAgICAgIGlmICghdHlwZU5hbWUpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYENvdWxkIG5vdCBmaW5kIGRlZmluZSBpMThuQmFzZUtleSBmb3IgJHtiYXNlfSBvbiBhY3Rpb24gJHt0aGlzLmFjdGlvbk5hbWVMb25nfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYmFzZSA9IHR5cGVOYW1lO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0STE4bk1vZGVsQWN0aW9uQmFzZUtleShiYXNlKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhTdWJhY3Rpb25zQXNNZW51KHN1YmFjdGlvbnNBc01lbnUgPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnNBc01lbnUgPSBzdWJhY3Rpb25zQXNNZW51O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1YmFjdGlvbnMoLi4uc3ViYWN0aW9uczogQXJyYXk8QWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9zdWJhY3Rpb25zLnB1c2goLi4uc3ViYWN0aW9ucyk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb3B5VG8oZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KTogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+IHtcbiAgICAgICAgZGVzY3JpcHRvci5faTE4bk1vZGVsQWN0aW9uQmFzZUtleSA9IHRoaXMuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXk7XG4gICAgICAgIGRlc2NyaXB0b3IuX3R5cGUgPSB0aGlzLl90eXBlO1xuICAgICAgICBkZXNjcmlwdG9yLl9hY3RpdmF0aW9uVHJpZ2dlciA9IHRoaXMuX2FjdGl2YXRpb25UcmlnZ2VyO1xuICAgICAgICBkZXNjcmlwdG9yLl9wb3NpdGlvbiA9IHRoaXMuX3Bvc2l0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9sZXZlbCA9IHRoaXMuX2xldmVsO1xuICAgICAgICBkZXNjcmlwdG9yLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMgPSB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fdGFibGV2aWV3Q2F0ZWdvcnkgPSB0aGlzLl90YWJsZXZpZXdDYXRlZ29yeTtcbiAgICAgICAgZGVzY3JpcHRvci5fcm91dGVVcmwgPSB0aGlzLl9yb3V0ZVVybDtcblxuICAgICAgICBkZXNjcmlwdG9yLl9ydW5GdW5jdGlvbiA9IHRoaXMuX3J1bkZ1bmN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc1Zpc2libGVGdW5jdGlvbiA9IHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9pc0VuYWJsZWRGdW5jdGlvbiA9IHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IgPSB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzO1xuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUgPSB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlID0gdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG5cbiAgICAgICAgZGVzY3JpcHRvci5faGFzUnVuTm90aWZpY2F0aW9uRXJyb3IgPSB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvcjtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZTtcblxuICAgICAgICBkZXNjcmlwdG9yLl9hZnRlclJ1bkFjdGlvbiA9IHRoaXMuX2FmdGVyUnVuQWN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9vblJ1bkVycm9yQWN0aW9uID0gdGhpcy5fb25SdW5FcnJvckFjdGlvbjtcblxuICAgICAgICBkZXNjcmlwdG9yLl9wZXJtaXNzaW9ucyA9IHRoaXMuX3Blcm1pc3Npb25zO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2J1dHRvbiA9IHRoaXMuX2J1dHRvbi5jb3B5KCk7XG5cbiAgICAgICAgZGVzY3JpcHRvci5faGFzSXRlbXNTZWxlY3Rpb24gPSB0aGlzLl9oYXNJdGVtc1NlbGVjdGlvbjtcbiAgICAgICAgZGVzY3JpcHRvci5fY29tcG9uZW50ID0gdGhpcy5fY29tcG9uZW50O1xuICAgICAgICBkZXNjcmlwdG9yLl9zdWJhY3Rpb25zQXNNZW51ID0gdGhpcy5fc3ViYWN0aW9uc0FzTWVudTtcbiAgICAgICAgZGVzY3JpcHRvci5fc3ViYWN0aW9ucyA9IHRoaXMuX3N1YmFjdGlvbnM7XG5cbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3I7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVzY3JpcHRvciBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PGFueT4ge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoJ2ludGVybmFsJyk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPFNlcnZpY2UsIE1vZGVsPihzZXJ2aWNlUHJvdmlkZXI6IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWw8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZSkge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIG1vZGVsLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbU1vZGVsV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihcbiAgICAgICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICAgICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGVcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAuLi5hY3Rpb25HZXRQcm92aWRlckNmZ09iaihzZXJ2aWNlUHJvdmlkZXIpLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KGFjdGlvbk5hbWUsIHtcbiAgICAgICAgICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3IuZnJvbUNsYXNzPE1vZGVsPih0eXBlLCBjZmc/LmlkUHJvcGVydHksIGNmZz8udGl0bGVQcm9wZXJ0eSwgY2ZnPy5pMThuQmFzZUtleSksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICBjbGFzc1R5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPixcbiAgICAgICAgYWN0aW9uTmFtZTogc3RyaW5nLFxuICAgICAgICBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD5cbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvci5mcm9tQ2xhc3M8TW9kZWw+KGNsYXNzVHlwZSwgY2ZnPy5pZFByb3BlcnR5LCBjZmc/LnRpdGxlUHJvcGVydHksIGNmZz8uaTE4bkJhc2VLZXkpLFxuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZSA9IGFueT4gZXh0ZW5kcyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUNUSU9OX05BTUUgPSAnZGVsZXRlJztcblxuICAgIGNvbnN0cnVjdG9yKG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+LCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pIHtcbiAgICAgICAgc3VwZXIoQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3QuQUNUSU9OX05BTUUsIHttb2RlbCwgLi4uY2ZnfSk7XG4gICAgICAgIHRoaXMud2l0aFBvc2l0aW9uKEFjdGlvblBvc2l0aW9uRW51bS5Sb3dJbmxpbmUpO1xuICAgICAgICB0aGlzLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhTaXplKFN0eWxlU2l6ZUVudW0uU21hbGwpO1xuICAgICAgICB0aGlzLmJ1dHRvbi5zdHlsZUNsYXNzLndpdGhBY3Rpb25MZXZlbChTdHlsZUxldmVsRW51bS5EYW5nZXIpO1xuICAgICAgICB0aGlzLndpdGhSdW5Db25maXJtYXRpb24oKTtcbiAgICAgICAgdGhpcy53aXRoVGFibGV2aWV3Q2F0ZWdvcnkoVGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXMuREVMRVRFKTtcbiAgICAgICAgdGhpcy5idXR0b24ud2l0aExhYmVsKG51bGwpLndpdGhJY29uKCdwaSBwaS10cmFzaCcpO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3Ige1xuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCB1bmRlZmluZWQ+KG1vZGVsKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZVdpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sIHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihtb2RlbCwge1xuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKVxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|
|
385
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vZGVzY3JpcHRvcnMvYWN0aW9uLmRlc2NyaXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLFlBQVksRUFHWixhQUFhLEVBRWIsY0FBYyxFQUNkLGFBQWEsRUFDYixtQkFBbUIsRUFDdEIsTUFBTSw2QkFBNkIsQ0FBQztBQUNyQyxPQUFPLEVBQUMsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUMzRixPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFJN0QsT0FBTyxFQUFDLDJCQUEyQixFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBRXRHLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLHFEQUFxRCxDQUFDO0FBQ3JHLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBOEI5RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFpQixxQkFBMEQsRUFBRSxFQUFFO0lBQ2xILE1BQU0sR0FBRyxHQUEyRCxFQUFFLENBQUM7SUFDdkUsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ3hCLElBQUsscUJBQXVDLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUQscUZBQXFGO1lBQ3JGLEdBQUcsQ0FBQyxZQUFZLEdBQUcscUJBQXNELENBQUM7UUFDOUUsQ0FBQzthQUFNLENBQUM7WUFDSixHQUFHLENBQUMsV0FBVyxHQUFHLHFCQUFrRCxDQUFDO1FBQ3pFLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRixNQUFNLE9B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WUFDekQsR0FBRyx1QkFBdUIsQ0FBQyxlQUFlLENBQUM7U0FDOUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rpb25Ub2tlbiwgVHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7b2Z9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIEFQZXJtaXNzaW9ucyxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVyLFxuICAgIElBY3Rpb25EZXNjcmlwdG9yLFxuICAgIElEYXRhUHJvdmlkZXIsXG4gICAgTG9nZ2VyU2VydmljZSxcbiAgICBTZXJ2aWNlQ2xhc3NUeXBlLFxuICAgIFN0eWxlTGV2ZWxFbnVtLFxuICAgIFN0eWxlU2l6ZUVudW0sXG4gICAgZmluZFJlZmxlY3RUeXBlTmFtZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtBY3Rpb25CdXR0b25EZXNjcmlwdG9yLCBCdXR0b25TdHlsZUJ1aWxkZXJ9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvZm9ybS9hcGknO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3J9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge0lBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL21vZGVscy9hY3Rpb24tY29tcG9uZW50Lm1vZGVsJztcbmltcG9ydCB7QWN0aW9uUnVuRm5UeXBlLCBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWRlc2NyaXB0b3IudHlwZXMnO1xuaW1wb3J0IHtBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0sIEFjdGlvblBvc2l0aW9uRW51bSwgQWN0aW9uVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9hY3Rpb24udHlwZSc7XG5pbXBvcnQge0lBY3Rpb25Db250ZXh0fSBmcm9tICcuLi9tb2RlbHMvZXhlY3V0aW9uL2FjdGlvbi1jb250ZXh0Lm1vZGVsJztcbmltcG9ydCB7VGFibGV2aWV3QWN0aW9uRGVmYXVsdENhdGVnb3JpZXN9IGZyb20gJy4uL21vZGVscy90YWJsZXZpZXctYWN0aW9uLWRlZmF1bHQtY2F0ZWdvcmllcy5tb2RlbCc7XG5pbXBvcnQge0FjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4vYWN0aW9uLWNvbmZpcm1hdGlvbi5kZXNjcmlwdG9yJztcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNvbnN0cnVjdG9yT3B0c1R5cGU8TW9kZWwsIFNlcnZpY2U+ID0gQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlICZcbiAgICBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1Byb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4gJiB7XG4gICAgICAgIG1vZGVsPzogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPjtcbiAgICB9O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlRnJvbUNsYXNzT3B0czxNb2RlbD4gPSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c01vZGVsPE1vZGVsPiAmIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzSTE4blR5cGUgJiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGU7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHtcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c0kxOG5UeXBlID0ge1xuICAgIGkxOG5CYXNlS2V5Pzogc3RyaW5nIHwgQ2xhc3NUeXBlPGFueT47XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c01vZGVsPE1vZGVsPiA9IHtcbiAgICBpZFByb3BlcnR5Pzoga2V5b2YgTW9kZWw7XG4gICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIE1vZGVsO1xufTtcblxuZXhwb3J0IHR5cGUgQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlID0ge1xuICAgIHBhcmVudFR5cGU/OiBDbGFzc1R5cGU8dW5rbm93bj47XG4gICAgcGFyZW50UHJvcGVydHk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+ID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPiB8IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG5leHBvcnQgY29uc3QgYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmogPSA8TW9kZWwsIFNlcnZpY2U+KHNlcnZpY2VPckRhdGFQcm92aWRlcj86IEFjdGlvblByb3ZpZGVyVHlwZTxNb2RlbCwgU2VydmljZT4pID0+IHtcbiAgICBjb25zdCBjZmc6IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IHt9O1xuICAgIGlmIChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKChzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcikuaXNEYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIC8vIHR5cGUgY2FzdGluZyBuZWVkZWQsIGNhdXNlIHRoZXJlIHdhcyBubyBvdGhlciB3YXkgZm91bmQgdG8gZGlmZmVyZW50aWF0ZSB0aGUgdHlwZXNcbiAgICAgICAgICAgIGNmZy5kYXRhUHJvdmlkZXIgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgSURhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZT47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjZmcuc2VydmljZVR5cGUgPSBzZXJ2aWNlT3JEYXRhUHJvdmlkZXIgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPjtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gY2ZnO1xufTtcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBpbXBsZW1lbnRzIElBY3Rpb25EZXNjcmlwdG9yPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tb2RlbD86IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9hY3Rpb25OYW1lTG9uZzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50VHlwZT86IENsYXNzVHlwZTx1bmtub3duPjtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX3BhcmVudFR5cGVOYW1lPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcGFyZW50UHJvcGVydHk/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2RhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIF9pMThuTW9kZWxBY3Rpb25CYXNlS2V5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF90eXBlOiBBY3Rpb25UeXBlRW51bSA9IEFjdGlvblR5cGVFbnVtLkRpcmVjdDtcbiAgICBwcm90ZWN0ZWQgX2FjdGl2YXRpb25UcmlnZ2VyOiBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0gPSBBY3Rpb25BY3RpdmF0aW9uVHJpZ2dlckVudW0uT25DbGljaztcbiAgICBwcm90ZWN0ZWQgX3Bvc2l0aW9uOiBBY3Rpb25Qb3NpdGlvbkVudW0gPSBBY3Rpb25Qb3NpdGlvbkVudW0uVG9vbGJhclJpZ2h0O1xuICAgIHByb3RlY3RlZCBfbGV2ZWw6IFN0eWxlTGV2ZWxFbnVtID0gU3R5bGVMZXZlbEVudW0uRGVmYXVsdDtcbiAgICBwcml2YXRlIF9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM/OiBzdHJpbmdbXTtcbiAgICBwcm90ZWN0ZWQgX3RhYmxldmlld0NhdGVnb3J5Pzogc3RyaW5nO1xuXG4gICAgcHJvdGVjdGVkIF9yb3V0ZVVybDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcm90ZWN0ZWQgX3J1bkZ1bmN0aW9uPzogQWN0aW9uUnVuRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX2lzVmlzaWJsZUZ1bmN0aW9uPzogQWN0aW9uVmFsaWRhdGlvbkZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9pc0VuYWJsZWRGdW5jdGlvbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIF9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yPzogQWN0aW9uQ29uZmlybWF0aW9uRGVzY3JpcHRvcjxNb2RlbD47XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3MgPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc1RpdGxlPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2U/OiBzdHJpbmc7XG5cbiAgICBwcm90ZWN0ZWQgX2FmdGVyUnVuQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PiB8ICgoY3R4OiBJQWN0aW9uQ29udGV4dDxNb2RlbCwgYW55PikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55Pik7XG4gICAgcHJvdGVjdGVkIF9vblJ1bkVycm9yQWN0aW9uPzogQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWw+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PE1vZGVsLCBhbnk+KSA9PiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4pO1xuXG4gICAgLy8gc2VjdXJpdHlcbiAgICBwcm90ZWN0ZWQgX3Blcm1pc3Npb25zPzogQVBlcm1pc3Npb25zO1xuXG4gICAgLy9idXR0b25cbiAgICBwcm90ZWN0ZWQgX2J1dHRvbiA9IG5ldyBBY3Rpb25CdXR0b25EZXNjcmlwdG9yKCk7XG5cbiAgICAvLyBtdWx0aXBsZSByb3cgc2VsZWN0aW9uXG4gICAgcHJvdGVjdGVkIF9oYXNJdGVtc1NlbGVjdGlvbiA9IGZhbHNlO1xuXG4gICAgLy8gY3VzdG9tIGFjdGlvbiBjb21wb25lbnRcbiAgICBwcm90ZWN0ZWQgX2NvbXBvbmVudD86IFR5cGU8SUFjdGlvbkNvbXBvbmVudDxNb2RlbD4+O1xuICAgIHByb3RlY3RlZCBfY29tcG9uZW50RnJvbURpPzogSW5qZWN0aW9uVG9rZW48VHlwZTxhbnk+PjtcblxuICAgIC8vIHN1YmFjdGlvbnNcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnNBc01lbnUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX3N1YmFjdGlvbnM6IEFycmF5PEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsPj4gPSBbXTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihhY3Rpb25OYW1lOiBzdHJpbmcsIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDb25zdHJ1Y3Rvck9wdHNUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICB0aGlzLl9tb2RlbCA9IGNmZz8ubW9kZWw7XG4gICAgICAgIHRoaXMuX2FjdGlvbk5hbWUgPSBhY3Rpb25OYW1lO1xuXG4gICAgICAgIGlmICgoY2ZnPy5wYXJlbnRUeXBlICYmICFjZmc/LnBhcmVudFByb3BlcnR5KSB8fCAoIWNmZz8ucGFyZW50UHJvcGVydHkgJiYgY2ZnPy5wYXJlbnRQcm9wZXJ0eSkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgUHJvdmlkZSBib3RoIHRoZSBwYXJlbnQgdHlwZSBhbmQgcGFyZW50IHByb3BlcnR5IG9yIG5vbmU6ICR7dGhpcy5fYWN0aW9uTmFtZX0sICR7Y2ZnPy5wYXJlbnRUeXBlfSwgJHtjZmc/LnBhcmVudFByb3BlcnR5fS5gKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wYXJlbnRUeXBlID0gY2ZnPy5wYXJlbnRUeXBlO1xuICAgICAgICB0aGlzLl9wYXJlbnRUeXBlTmFtZSA9IGNmZz8ucGFyZW50VHlwZSA/IGZpbmRSZWZsZWN0VHlwZU5hbWUoY2ZnPy5wYXJlbnRUeXBlKSA/PyB1bmRlZmluZWQgOiB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3BhcmVudFByb3BlcnR5ID0gY2ZnPy5wYXJlbnRQcm9wZXJ0eTtcblxuICAgICAgICB0aGlzLnNldEkxOG5Nb2RlbEFjdGlvbkJhc2VLZXkoKTtcblxuICAgICAgICBpZiAoY2ZnPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICAgICAgdGhpcy5fZGF0YVByb3ZpZGVyID0gRGF0YVByb3ZpZGVyLmZyb21BbnlQYXJhbTxNb2RlbCwgU2VydmljZT4odGhpcy5fbW9kZWw/LnR5cGUsIGNmZy5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2ZnPy5kYXRhUHJvdmlkZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGNmZy5kYXRhUHJvdmlkZXI7XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgZGlzcGxheU5hbWUgPSBhY3Rpb25OYW1lO1xuICAgICAgICBpZiAodGhpcy5fbW9kZWwpIGRpc3BsYXlOYW1lID0gYCR7dGhpcy5fbW9kZWwudHlwZU5hbWUgPz8gdGhpcy5fbW9kZWwuaTE4bkJhc2VLZXkgPz8gJ05vTW9kZWxOYW1lJ30uJHtkaXNwbGF5TmFtZX1gO1xuICAgICAgICBpZiAodGhpcy5fcGFyZW50VHlwZU5hbWUpIHtcbiAgICAgICAgICAgIGRpc3BsYXlOYW1lID0gYCR7dGhpcy5fcGFyZW50VHlwZU5hbWV9LiR7dGhpcy5fcGFyZW50UHJvcGVydHl9XyR7ZGlzcGxheU5hbWV9YDtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9hY3Rpb25OYW1lTG9uZyA9IGRpc3BsYXlOYW1lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbW9kZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tb2RlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhcmVudFR5cGVOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGFyZW50VHlwZU5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwYXJlbnRQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BhcmVudFByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaTE4bk1vZGVsQWN0aW9uQmFzZUtleSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2kxOG5Nb2RlbEFjdGlvbkJhc2VLZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0eXBlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFjdGl2YXRpb25UcmlnZ2VyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZhdGlvblRyaWdnZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwb3NpdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbGV2ZWwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sZXZlbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvdXRlVXJsKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcm91dGVVcmw7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNSdW5GdW5jdGlvbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB0aGlzLl9ydW5GdW5jdGlvbiA9PT0gJ2Z1bmN0aW9uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bkZ1bmN0aW9uKCk6IEFjdGlvblJ1bkZuVHlwZTxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICBpZiAoIXRoaXMuX3J1bkZ1bmN0aW9uKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYFJ1biBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZCBmb3IgYWN0aW9uICR7dGhpcy5fYWN0aW9uTmFtZUxvbmd9IGFuZCBjYW5ub3QgYmUgaW52b2tlZGApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5GdW5jdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzVmlzaWJsZUZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWaXNpYmxlRnVuY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpc0VuYWJsZWRGdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aW9uTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbk5hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhY3Rpb25OYW1lTG9uZygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGlvbk5hbWVMb25nO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5idXR0b24uc3R5bGVDbGFzcy5jdXN0b21DbGFzcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaGFzUnVuQ29uZmlybWF0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciAhPT0gbnVsbCAmJiB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yICE9PSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3NNZXNzYWdlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoYXNSdW5Ob3RpZmljYXRpb25FcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yVGl0bGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvck1lc3NhZ2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhZnRlclJ1bkFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FmdGVyUnVuQWN0aW9uO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgb25SdW5FcnJvckFjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX29uUnVuRXJyb3JBY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwZXJtaXNzaW9ucygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgdGFibGV2aWV3Q2F0ZWdvcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90YWJsZXZpZXdDYXRlZ29yeTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGhhc0l0ZW1zU2VsZWN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzSXRlbXNTZWxlY3Rpb247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBidXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9idXR0b247XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wb25lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb21wb25lbnRGcm9tRGkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb21wb25lbnRGcm9tRGk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWJhY3Rpb25zQXNNZW51KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3ViYWN0aW9uc0FzTWVudTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN1YmFjdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJhY3Rpb25zO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRJMThuTW9kZWxBY3Rpb25CYXNlS2V5KGJhc2U/OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuX3BhcmVudFR5cGVOYW1lIHx8IHRoaXMuX21vZGVsKSB7XG4gICAgICAgICAgICB0aGlzLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5ID0gdGhpcy5fcGFyZW50VHlwZU5hbWVcbiAgICAgICAgICAgICAgICA/IGAke3RoaXMuX3BhcmVudFR5cGVOYW1lfS5hY3Rpb25zLiR7dGhpcy5fcGFyZW50UHJvcGVydHl9XyR7dGhpcy5fYWN0aW9uTmFtZX1gXG4gICAgICAgICAgICAgICAgOiBgJHtiYXNlID8/IHRoaXMuX21vZGVsIS5pMThuQmFzZUtleX0uYWN0aW9ucy4ke3RoaXMuX2FjdGlvbk5hbWV9YDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuRnVuY3Rpb24oZm46IEFjdGlvblJ1bkZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuRnVuY3Rpb24gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJc1Zpc2libGVGdW5jdGlvbihmbj86IEFjdGlvblZhbGlkYXRpb25GblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2lzVmlzaWJsZUZ1bmN0aW9uID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSXNFbmFibGVkRnVuY3Rpb24oZm4/OiBBY3Rpb25WYWxpZGF0aW9uRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbiA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJvdXRlVHJpZ2dlcihyb3V0ZVVybDogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2FjdGl2YXRpb25UcmlnZ2VyID0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uUm91dGU7XG4gICAgICAgIHRoaXMuX3JvdXRlVXJsID0gcm91dGVVcmw7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUG9zaXRpb24ocG9zaXRpb246IEFjdGlvblBvc2l0aW9uRW51bSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9wb3NpdGlvbiA9IHBvc2l0aW9uO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjcmVhdGVzIGNvbmZpcm1hdGlvbiBhY3Rpb24gd2l0aCBkZWZhdWx0IHN0eWxlIGJhc2VkIG9uIGFjdGlvbiBkZXNjcmlwdG9yXG4gICAgICovXG4gICAgcHVibGljIHdpdGhSdW5Db25maXJtYXRpb24oKTogQWN0aW9uQ29uZmlybWF0aW9uRGVzY3JpcHRvcjxNb2RlbD4ge1xuICAgICAgICB0aGlzLl9ydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yID0gbmV3IEFjdGlvbkNvbmZpcm1hdGlvbkRlc2NyaXB0b3I8TW9kZWw+KCk7XG4gICAgICAgIHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3IuYWNjZXB0QnV0dG9uLnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKHRoaXMuX2xldmVsKTtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvci5yZWplY3RCdXR0b24/LnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKHRoaXMuX2xldmVsKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGQgYSBjb25maWd1cmF0aW9uIGRpYWxvZ3VlIHRvIGFjdGlvbiB1c2luZyBBY3Rpb25Db25maWd1cmF0aW9uRGVzY3JpcHRvclxuICAgICAqIEBwYXJhbSBydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yIGRlc2NyaXB0b3Igd2l0aCBjdXN0b21pemFibGUgaW5mb3JtYXRpb24gZm9yIGRpYWxvZ1xuICAgICAqL1xuICAgIHB1YmxpYyB3aXRoUnVuQ29uZmlybWF0aW9uRGVzY3JpcHRvcihydW5Db25maXJtYXRpb25EaWFsb2dEZXNjcmlwdG9yPzogQWN0aW9uQ29uZmlybWF0aW9uRGVzY3JpcHRvcjxNb2RlbD4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciA9IHJ1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3I7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUnVuTm90aWZpY2F0aW9uU3VjY2Vzcyh0aXRsZT86IHN0cmluZywgbWVzc2FnZT86IHN0cmluZywgaGFzTm90aWZpY2F0aW9uID0gdHJ1ZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9oYXNSdW5Ob3RpZmljYXRpb25TdWNjZXNzID0gaGFzTm90aWZpY2F0aW9uO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzVGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UgPSBtZXNzYWdlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJ1bk5vdGlmaWNhdGlvbkVycm9yKHRpdGxlPzogc3RyaW5nLCBtZXNzYWdlPzogc3RyaW5nLCBoYXNOb3RpZmljYXRpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yID0gaGFzTm90aWZpY2F0aW9uO1xuICAgICAgICB0aGlzLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlID0gdGl0bGU7XG4gICAgICAgIHRoaXMuX3J1bk5vdGlmaWNhdGlvbkVycm9yTWVzc2FnZSA9IG1lc3NhZ2U7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQWZ0ZXJSdW5BY3Rpb248UmV0dXJuLCBTZXJ2aWNlID0gYW55PihhY3Rpb24/OiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxSZXR1cm4+IHwgKChjdHg6IElBY3Rpb25Db250ZXh0PE1vZGVsLCBTZXJ2aWNlPikgPT4gQWN0aW9uRGVzY3JpcHRvckluc3Q8UmV0dXJuPikpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fYWZ0ZXJSdW5BY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoT25SdW5FcnJvckFjdGlvbjxTID0gYW55PihhY3Rpb24/OiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4gfCAoKGN0eDogSUFjdGlvbkNvbnRleHQ8TW9kZWwsIFM+KSA9PiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4pKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX29uUnVuRXJyb3JBY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUGVybWlzc2lvbnMocGVybWlzc2lvbnM6IEFQZXJtaXNzaW9ucyk6IHRoaXMge1xuICAgICAgICBpZiAodGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnkpIHtcbiAgICAgICAgICAgIExvZ2dlclNlcnZpY2UuZ2V0KCkuZGVidWcoXG4gICAgICAgICAgICAgICAgYFdBUk5JTkc6IFBlcm1pc3Npb25zIHNldCBvbiBhY3Rpb24gJHt0aGlzLl9hY3Rpb25OYW1lTG9uZ30gd2l0aCByb3V0ZSB0eXBlICcke3RoaXMuX3RhYmxldmlld0NhdGVnb3J5fScgd2lsbCBiZSBvbWl0dGVkIGluIHJvdXRlIGd1YXJkIHZhbGlkYXRpb24uYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9wZXJtaXNzaW9ucyA9IHBlcm1pc3Npb25zO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFRhYmxldmlld0NhdGVnb3J5KHBlcm1pc3Npb25zUm91dGVUeXBlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fdGFibGV2aWV3Q2F0ZWdvcnkgPSBwZXJtaXNzaW9uc1JvdXRlVHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhCdXR0b25EZXNjcmlwdG9yKGJ1dHRvbjogQWN0aW9uQnV0dG9uRGVzY3JpcHRvcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9idXR0b24gPSBidXR0b247XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQnV0dG9uKGxhYmVsPzogc3RyaW5nIHwgbnVsbCwgaWNvbjogc3RyaW5nIHwgbnVsbCA9IG51bGwsIHN0eWxlTGV2ZWwgPSBTdHlsZUxldmVsRW51bS5EZWZhdWx0LCBzdHlsZVRleHQgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9idXR0b24gPSBuZXcgQWN0aW9uQnV0dG9uRGVzY3JpcHRvcigpLndpdGhMYWJlbChsYWJlbCkud2l0aEljb24oaWNvbikud2l0aFN0eWxlQ2xhc3MobmV3IEJ1dHRvblN0eWxlQnVpbGRlcihzdHlsZUxldmVsKS53aXRoVGV4dEJ1dHRvbihzdHlsZVRleHQpKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJdGVtc1NlbGVjdGlvbihoYXNTZWxlY3Rpb24gPSB0cnVlKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uID0gaGFzU2VsZWN0aW9uO1xuICAgICAgICB0aGlzLl9pc0VuYWJsZWRGdW5jdGlvbiA9IHRoaXMuX2lzRW5hYmxlZEZ1bmN0aW9uID8/IChjdHggPT4gb2YoKGN0eC5wYXJhbWV0ZXJzLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA/PyAwKSA+IDApKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb21wb25lbnQoY29tcG9uZW50OiBUeXBlPElBY3Rpb25Db21wb25lbnQ8TW9kZWw+Pik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb21wb25lbnQgPSBjb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ29tcG9uZW50RnJvbURpKGluamVjdGlvblRva2VuOiBJbmplY3Rpb25Ub2tlbjxUeXBlPGFueT4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NvbXBvbmVudEZyb21EaSA9IGluamVjdGlvblRva2VuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyhwb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM6IHN0cmluZ1tdKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA9IHBvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhJMThuQmFzZShiYXNlOiBDbGFzc1R5cGU8dW5rbm93bj4gfCBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgaWYgKHR5cGVvZiBiYXNlICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgY29uc3QgdHlwZU5hbWUgPSBmaW5kUmVmbGVjdFR5cGVOYW1lKGJhc2UpO1xuICAgICAgICAgICAgaWYgKCF0eXBlTmFtZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgQ291bGQgbm90IGZpbmQgZGVmaW5lIGkxOG5CYXNlS2V5IGZvciAke2Jhc2V9IG9uIGFjdGlvbiAke3RoaXMuYWN0aW9uTmFtZUxvbmd9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBiYXNlID0gdHlwZU5hbWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zZXRJMThuTW9kZWxBY3Rpb25CYXNlS2V5KGJhc2UpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFN1YmFjdGlvbnNBc01lbnUoc3ViYWN0aW9uc0FzTWVudSA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fc3ViYWN0aW9uc0FzTWVudSA9IHN1YmFjdGlvbnNBc01lbnU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU3ViYWN0aW9ucyguLi5zdWJhY3Rpb25zOiBBcnJheTxBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbD4+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3N1YmFjdGlvbnMucHVzaCguLi5zdWJhY3Rpb25zKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHlUbyhkZXNjcmlwdG9yOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4pOiBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4ge1xuICAgICAgICBkZXNjcmlwdG9yLl9pMThuTW9kZWxBY3Rpb25CYXNlS2V5ID0gdGhpcy5faTE4bk1vZGVsQWN0aW9uQmFzZUtleTtcbiAgICAgICAgZGVzY3JpcHRvci5fdHlwZSA9IHRoaXMuX3R5cGU7XG4gICAgICAgIGRlc2NyaXB0b3IuX2FjdGl2YXRpb25UcmlnZ2VyID0gdGhpcy5fYWN0aXZhdGlvblRyaWdnZXI7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uID0gdGhpcy5fcG9zaXRpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2xldmVsID0gdGhpcy5fbGV2ZWw7XG4gICAgICAgIGRlc2NyaXB0b3IuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcyA9IHRoaXMuX3Bvc2l0aW9uVGFibGV2aWV3Q2F0ZWdvcmllcztcblxuICAgICAgICBkZXNjcmlwdG9yLl90YWJsZXZpZXdDYXRlZ29yeSA9IHRoaXMuX3RhYmxldmlld0NhdGVnb3J5O1xuICAgICAgICBkZXNjcmlwdG9yLl9yb3V0ZVVybCA9IHRoaXMuX3JvdXRlVXJsO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bkZ1bmN0aW9uID0gdGhpcy5fcnVuRnVuY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2lzVmlzaWJsZUZ1bmN0aW9uID0gdGhpcy5faXNWaXNpYmxlRnVuY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX2lzRW5hYmxlZEZ1bmN0aW9uID0gdGhpcy5faXNFbmFibGVkRnVuY3Rpb247XG5cbiAgICAgICAgZGVzY3JpcHRvci5fcnVuQ29uZmlybWF0aW9uRGlhbG9nRGVzY3JpcHRvciA9IHRoaXMuX3J1bkNvbmZpcm1hdGlvbkRpYWxvZ0Rlc2NyaXB0b3I7XG5cbiAgICAgICAgZGVzY3JpcHRvci5faGFzUnVuTm90aWZpY2F0aW9uU3VjY2VzcyA9IHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvblN1Y2Nlc3M7XG4gICAgICAgIGRlc2NyaXB0b3IuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZSA9IHRoaXMuX3J1bk5vdGlmaWNhdGlvblN1Y2Nlc3NUaXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuTm90aWZpY2F0aW9uU3VjY2Vzc01lc3NhZ2UgPSB0aGlzLl9ydW5Ob3RpZmljYXRpb25TdWNjZXNzTWVzc2FnZTtcblxuICAgICAgICBkZXNjcmlwdG9yLl9oYXNSdW5Ob3RpZmljYXRpb25FcnJvciA9IHRoaXMuX2hhc1J1bk5vdGlmaWNhdGlvbkVycm9yO1xuICAgICAgICBkZXNjcmlwdG9yLl9ydW5Ob3RpZmljYXRpb25FcnJvclRpdGxlID0gdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JUaXRsZTtcbiAgICAgICAgZGVzY3JpcHRvci5fcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlID0gdGhpcy5fcnVuTm90aWZpY2F0aW9uRXJyb3JNZXNzYWdlO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX2FmdGVyUnVuQWN0aW9uID0gdGhpcy5fYWZ0ZXJSdW5BY3Rpb247XG4gICAgICAgIGRlc2NyaXB0b3IuX29uUnVuRXJyb3JBY3Rpb24gPSB0aGlzLl9vblJ1bkVycm9yQWN0aW9uO1xuXG4gICAgICAgIGRlc2NyaXB0b3IuX3Blcm1pc3Npb25zID0gdGhpcy5fcGVybWlzc2lvbnM7XG5cbiAgICAgICAgZGVzY3JpcHRvci5fYnV0dG9uID0gdGhpcy5fYnV0dG9uLmNvcHkoKTtcblxuICAgICAgICBkZXNjcmlwdG9yLl9oYXNJdGVtc1NlbGVjdGlvbiA9IHRoaXMuX2hhc0l0ZW1zU2VsZWN0aW9uO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb21wb25lbnQgPSB0aGlzLl9jb21wb25lbnQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX3N1YmFjdGlvbnNBc01lbnUgPSB0aGlzLl9zdWJhY3Rpb25zQXNNZW51O1xuICAgICAgICBkZXNjcmlwdG9yLl9zdWJhY3Rpb25zID0gdGhpcy5fc3ViYWN0aW9ucztcblxuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25EZXNjcmlwdG9yIGV4dGVuZHMgQWN0aW9uRGVzY3JpcHRvckluc3Q8YW55PiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcignaW50ZXJuYWwnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGNyZWF0ZTxNb2RlbD4oYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgdW5kZWZpbmVkPihhY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGVXaXRoUHJvdmlkZXI8U2VydmljZSwgTW9kZWw+KHNlcnZpY2VQcm92aWRlcjogQWN0aW9uUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPiwgYWN0aW9uTmFtZTogc3RyaW5nLCBjZmc/OiBBY3Rpb25EZXNjcmlwdG9yQ3JlYXRlT3B0c1BhcmVudFR5cGUpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBBY3Rpb25EZXNjcmlwdG9ySW5zdDxNb2RlbCwgU2VydmljZT4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgLi4uYWN0aW9uR2V0UHJvdmlkZXJDZmdPYmooc2VydmljZVByb3ZpZGVyKSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21Nb2RlbDxNb2RlbD4obW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZU9wdHNQYXJlbnRUeXBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWwsXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWxXaXRoUHJvdmlkZXI8TW9kZWwsIFNlcnZpY2U+KFxuICAgICAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUGFyZW50VHlwZVxuICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihhY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBtb2RlbCxcbiAgICAgICAgICAgIC4uLmFjdGlvbkdldFByb3ZpZGVyQ2ZnT2JqKHNlcnZpY2VQcm92aWRlciksXG4gICAgICAgICAgICAuLi5jZmdcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3M8TW9kZWw+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIGFjdGlvbk5hbWU6IHN0cmluZywgY2ZnPzogQWN0aW9uRGVzY3JpcHRvckNyZWF0ZUZyb21DbGFzc09wdHM8TW9kZWw+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4oYWN0aW9uTmFtZSwge1xuICAgICAgICAgICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvci5mcm9tQ2xhc3M8TW9kZWw+KHR5cGUsIGNmZz8uaWRQcm9wZXJ0eSwgY2ZnPy50aXRsZVByb3BlcnR5LCBjZmc/LmkxOG5CYXNlS2V5KSxcbiAgICAgICAgICAgIC4uLmNmZ1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzc1dpdGhQcm92aWRlcjxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIGNsYXNzVHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICAgICAgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+LFxuICAgICAgICBhY3Rpb25OYW1lOiBzdHJpbmcsXG4gICAgICAgIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVGcm9tQ2xhc3NPcHRzPE1vZGVsPlxuICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPihhY3Rpb25OYW1lLCB7XG4gICAgICAgICAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yLmZyb21DbGFzczxNb2RlbD4oY2xhc3NUeXBlLCBjZmc/LmlkUHJvcGVydHksIGNmZz8udGl0bGVQcm9wZXJ0eSwgY2ZnPy5pMThuQmFzZUtleSksXG4gICAgICAgICAgICAuLi5hY3Rpb25HZXRQcm92aWRlckNmZ09iaihzZXJ2aWNlUHJvdmlkZXIpLFxuICAgICAgICAgICAgLi4uY2ZnXG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvbkRlbGV0ZURlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55PiBleHRlbmRzIEFjdGlvbkRlc2NyaXB0b3JJbnN0PE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBBQ1RJT05fTkFNRSA9ICdkZWxldGUnO1xuXG4gICAgY29uc3RydWN0b3IobW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD4sIGNmZz86IEFjdGlvbkRlc2NyaXB0b3JDcmVhdGVPcHRzUHJvdmlkZXJUeXBlPE1vZGVsLCBTZXJ2aWNlPikge1xuICAgICAgICBzdXBlcihBY3Rpb25EZWxldGVEZXNjcmlwdG9ySW5zdC5BQ1RJT05fTkFNRSwge21vZGVsLCAuLi5jZmd9KTtcbiAgICAgICAgdGhpcy53aXRoUG9zaXRpb24oQWN0aW9uUG9zaXRpb25FbnVtLlJvd0lubGluZSk7XG4gICAgICAgIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3Mud2l0aFNpemUoU3R5bGVTaXplRW51bS5TbWFsbCk7XG4gICAgICAgIHRoaXMuYnV0dG9uLnN0eWxlQ2xhc3Mud2l0aEFjdGlvbkxldmVsKFN0eWxlTGV2ZWxFbnVtLkRhbmdlcik7XG4gICAgICAgIHRoaXMud2l0aFJ1bkNvbmZpcm1hdGlvbigpO1xuICAgICAgICB0aGlzLndpdGhUYWJsZXZpZXdDYXRlZ29yeShUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcy5ERUxFVEUpO1xuICAgICAgICB0aGlzLmJ1dHRvbi53aXRoTGFiZWwobnVsbCkud2l0aEljb24oJ3BpIHBpLXRyYXNoJyk7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uRGVsZXRlRGVzY3JpcHRvciB7XG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWw+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIHVuZGVmaW5lZD4obW9kZWwpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlV2l0aFByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlPihtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsPiwgc2VydmljZVByb3ZpZGVyOiBBY3Rpb25Qcm92aWRlclR5cGU8TW9kZWwsIFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgQWN0aW9uRGVsZXRlRGVzY3JpcHRvckluc3Q8TW9kZWwsIFNlcnZpY2U+KG1vZGVsLCB7XG4gICAgICAgICAgICAuLi5hY3Rpb25HZXRQcm92aWRlckNmZ09iaihzZXJ2aWNlUHJvdmlkZXIpXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -77,4 +77,4 @@ export function getDataProviderService(injector, dataProvider) {
|
|
|
77
77
|
return null;
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci1leGVjdXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vaGVscGVycy9kYXRhLXByb3ZpZGVyLWV4ZWN1dG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQWlDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBSTlHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2hFLE1BQU0sVUFBVSwrQkFBK0IsQ0FDM0MsR0FBa0MsRUFDbEMsRUFBcUUsRUFDckUsUUFBb0M7SUFFcEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUNoQyxPQUFPLGdCQUFnQixDQUFDO0tBQzNCO0lBQ0QsT0FBTyxRQUFRLENBQUM7QUFDcEIsQ0FBQztBQUVELE1BQU0sVUFBVSwyQkFBMkIsQ0FDdkMsR0FBa0MsRUFDbEMsRUFBcUU7SUFFckUsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRTtRQUNoQyxPQUFPLGdCQUFnQixDQUFDO0tBQzNCO0lBQ0QsT0FBTyxVQUFVLENBQ2IsR0FBRyxFQUFFLENBQ0QsSUFBSSxrQkFBa0IsQ0FDbEIsaUVBQWlFLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGNBQWMsS0FBSyxHQUFHLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxpQkFBaUIsR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEdBQUcsRUFDckwsR0FBRyxDQUFDLGVBQWUs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VSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1NBQ25KO0tBQ0o7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQWdCLFFBQWtCLEVBQUUsWUFBMkM7SUFDakgsSUFBSSxZQUFZLEVBQUUsV0FBVyxFQUFFO1FBQzNCLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQVUsWUFBWSxDQUFDLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUM3RixJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDhCQUE4QixZQUFZLENBQUMsV0FBVyx5QkFBeUIsQ0FBQyxDQUFDO1NBQ25IO1FBQ0QsT0FBTyxPQUFPLENBQUM7S0FDbEI7U0FBTTtRQUNILE9BQU8sSUFBSSxDQUFDO0tBQ2Y7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgRGF0YUxpc3RSZXN1bHQsIElEYXRhUHJvdmlkZXIsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7SVRhYmxlRGF0YVByb3ZpZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5cbmltcG9ydCB7SUVkaXRvckRhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZWRpdG9yL2RhdGEtcHJvdmlkZXJzL2VkaXRvci5kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7Q29tbW9uc0FjdGlvbkVycm9yfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWVycm9yLm1vZGVsJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVuRm5Gcm9tRGF0YVByb3ZpZGVyT3JGYWxsYmFjazxJdGVtLCBTZXJ2aWNlLCBSZXR1cm4sIEZhbGxiYWNrUmV0dXJuID0gUmV0dXJuPihcbiAgICBjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+LFxuICAgIGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxSZXR1cm4+IHwgbnVsbCxcbiAgICBmYWxsYmFjazogT2JzZXJ2YWJsZTxGYWxsYmFja1JldHVybj5cbik6IE9ic2VydmFibGU8UmV0dXJuIHwgRmFsbGJhY2tSZXR1cm4+IHtcbiAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gZm4oY3R4KTtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5GbkZyb21EYXRhUHJvdmlkZXJPckZhaWw8SXRlbSwgU2VydmljZSwgUmV0dXJuPihcbiAgICBjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+LFxuICAgIGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxSZXR1cm4+IHwgbnVsbFxuKTogT2JzZXJ2YWJsZTxSZXR1cm4+IHtcbiAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gZm4oY3R4KTtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIG5ldyBDb21tb25zQWN0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgYERhdGEgcHJvdmlkZXIgY291bGQgbm90IGV4dHJhY3QgZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtIGlkICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW1JZH0uYCxcbiAgICAgICAgICAgICAgICBjdHguY29udGV4dExvbmdOYW1lLFxuICAgICAgICAgICAgICAgIHthY3Rpb25Db250ZXh0OiBjdHh9XG4gICAgICAgICAgICApXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkdldEFsbEZyb21EYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT4oY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPik6IE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY3R4LmRhdGFQcm92aWRlclsnZ2V0QWxsJyBhcyBrZXlvZiBvYmplY3RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJVGFibGVEYXRhUHJvdmlkZXI8SXRlbSwgYW55PjtcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbSA9IGN0eC5wYXJhbWV0ZXJzPy5kYXRhTGlzdFBhcmFtcyA/PyB7fTtcbiAgICAgICAgcmV0dXJuIHRvT2JzZXJ2YWJsZSh0YWJsZURhdGFQcm92aWRlci5nZXRBbGwocXVlcnlQYXJhbSwgY3R4LnNlcnZpY2VJbnN0YW5jZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkZldGNoRnJvbURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPihjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxJdGVtPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmZldGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCA/IHRvT2JzZXJ2YWJsZShlZGl0b3JEYXRhUHJvdmlkZXIuZmV0Y2goY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHguc2VydmljZUluc3RhbmNlLCBjdHgucGFyYW1ldGVycy5sb2NhbGUpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5DcmVhdGVGcm9tRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+KGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pOiBPYnNlcnZhYmxlPEl0ZW0+IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8SXRlbSwgYW55PjtcbiAgICAgICAgaWYgKHR5cGVvZiBlZGl0b3JEYXRhUHJvdmlkZXIuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW0gPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLmNyZWF0ZShjdHgucGFyYW1ldGVycy5pdGVtLCBjdHguc2VydmljZUluc3RhbmNlKSkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuVXBkYXRlRnJvbURhdGFQcm92aWRlcjxJdGVtLCBzZXJ2aWNlPihjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIHNlcnZpY2U+KTogT2JzZXJ2YWJsZTxJdGVtPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5EZWxldGVGcm9tRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+KGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pOiBPYnNlcnZhYmxlPEl0ZW0gfCBudWxsPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogR2V0cyBzZXJ2aWNlIGluc3RhbmNlIG9mIGRhdGEgcHJvdmlkZXIuXG4gKlxuICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGluc3RhbmNlXG4gKiBAcGFyYW0gZGF0YVByb3ZpZGVyIERhdGEgcHJvdmlkZXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhUHJvdmlkZXJTZXJ2aWNlPEl0ZW0sIFNlcnZpY2U+KGluamVjdG9yOiBJbmplY3RvciwgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPik6IFNlcnZpY2UgfCBudWxsIHtcbiAgICBpZiAoZGF0YVByb3ZpZGVyPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0b3IuZ2V0PFNlcnZpY2U+KGRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSwgdW5kZWZpbmVkLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYERhdGEgcHJvdmlkZXIgc2VydmljZSB0eXBlICR7ZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlfSBjb3VsZCBub3QgYmUgaW5qZWN0ZWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcnZpY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1wcm92aWRlci1leGVjdXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9hY3Rpb24vaGVscGVycy9kYXRhLXByb3ZpZGVyLWV4ZWN1dG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQWEsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUxRCxPQUFPLEVBQUMsb0JBQW9CLEVBQWlDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBSTlHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBR2hFLE1BQU0sVUFBVSwrQkFBK0IsQ0FDM0MsR0FBa0MsRUFDbEMsRUFBcUUsRUFDckUsUUFBb0M7SUFFcEMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sZ0JBQWdCLENBQUM7SUFDNUIsQ0FBQztJQUNELE9BQU8sUUFBUSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsMkJBQTJCLENBQ3ZDLEdBQWtDLEVBQ2xDLEVBQXFFO0lBRXJFLE1BQU0sZ0JBQWdCLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2pDLElBQUksWUFBWSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLGdCQUFnQixDQUFDO0lBQzVCLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FDYixHQUFHLEVBQUUsQ0FDRCxJQUFJLGtCQUFrQixDQUNsQixpRUFBaUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsY0FBYyxLQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLGlCQUFpQixHQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sR0FBRyxF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RyxHQUFHLENBQUMsWUFBOEMsQ0FBQztRQUM5RSxJQUFJLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ2xELE9BQU8sR0FBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwSixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBZ0IsUUFBa0IsRUFBRSxZQUEyQztJQUNqSCxJQUFJLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFVLFlBQVksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDN0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLG9CQUFvQixDQUFDLDhCQUE4QixZQUFZLENBQUMsV0FBVyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BILENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNuQixDQUFDO1NBQU0sQ0FBQztRQUNKLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3Rvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7T2JzZXJ2YWJsZSwgaXNPYnNlcnZhYmxlLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgRGF0YUxpc3RSZXN1bHQsIElEYXRhUHJvdmlkZXIsIHRvT2JzZXJ2YWJsZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7SVRhYmxlRGF0YVByb3ZpZGVyfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxlL2FwaSc7XG5cbmltcG9ydCB7SUVkaXRvckRhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZWRpdG9yL2RhdGEtcHJvdmlkZXJzL2VkaXRvci5kYXRhLXByb3ZpZGVyJztcbmltcG9ydCB7Q29tbW9uc0FjdGlvbkVycm9yfSBmcm9tICcuLi9tb2RlbHMvYWN0aW9uLWVycm9yLm1vZGVsJztcbmltcG9ydCB7SUFjdGlvbkNvbnRleHR9IGZyb20gJy4uL21vZGVscy9leGVjdXRpb24vYWN0aW9uLWNvbnRleHQubW9kZWwnO1xuXG5leHBvcnQgZnVuY3Rpb24gcnVuRm5Gcm9tRGF0YVByb3ZpZGVyT3JGYWxsYmFjazxJdGVtLCBTZXJ2aWNlLCBSZXR1cm4sIEZhbGxiYWNrUmV0dXJuID0gUmV0dXJuPihcbiAgICBjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+LFxuICAgIGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxSZXR1cm4+IHwgbnVsbCxcbiAgICBmYWxsYmFjazogT2JzZXJ2YWJsZTxGYWxsYmFja1JldHVybj5cbik6IE9ic2VydmFibGU8UmV0dXJuIHwgRmFsbGJhY2tSZXR1cm4+IHtcbiAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gZm4oY3R4KTtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgIH1cbiAgICByZXR1cm4gZmFsbGJhY2s7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5GbkZyb21EYXRhUHJvdmlkZXJPckZhaWw8SXRlbSwgU2VydmljZSwgUmV0dXJuPihcbiAgICBjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+LFxuICAgIGZuOiAoY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPikgPT4gT2JzZXJ2YWJsZTxSZXR1cm4+IHwgbnVsbFxuKTogT2JzZXJ2YWJsZTxSZXR1cm4+IHtcbiAgICBjb25zdCBkYXRhUHJvdmlkZXJFeGVjID0gZm4oY3R4KTtcbiAgICBpZiAoaXNPYnNlcnZhYmxlKGRhdGFQcm92aWRlckV4ZWMpKSB7XG4gICAgICAgIHJldHVybiBkYXRhUHJvdmlkZXJFeGVjO1xuICAgIH1cbiAgICByZXR1cm4gdGhyb3dFcnJvcihcbiAgICAgICAgKCkgPT5cbiAgICAgICAgICAgIG5ldyBDb21tb25zQWN0aW9uRXJyb3IoXG4gICAgICAgICAgICAgICAgYERhdGEgcHJvdmlkZXIgY291bGQgbm90IGV4dHJhY3QgZnVuY3Rpb24gdG8gZXhlY3V0ZSBpbiBhY3Rpb24gJHtjdHguaW5zdGFuY2UuYWN0aW9uLmFjdGlvbk5hbWVMb25nfSAoJHtjdHguaW5zdGFuY2UuYWN0aW9uLm1vZGVsPy50eXBlTmFtZX0pIGZvciBpdGVtIGlkICR7Y3R4LnBhcmFtZXRlcnM/Lml0ZW1JZH0uYCxcbiAgICAgICAgICAgICAgICBjdHguY29udGV4dExvbmdOYW1lLFxuICAgICAgICAgICAgICAgIHthY3Rpb25Db250ZXh0OiBjdHh9XG4gICAgICAgICAgICApXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkdldEFsbEZyb21EYXRhUHJvdmlkZXI8SXRlbSwgU2VydmljZT4oY3R4OiBJQWN0aW9uQ29udGV4dDxJdGVtLCBTZXJ2aWNlPik6IE9ic2VydmFibGU8RGF0YUxpc3RSZXN1bHQ8SXRlbT4+IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJyAmJiB0eXBlb2YgY3R4LmRhdGFQcm92aWRlclsnZ2V0QWxsJyBhcyBrZXlvZiBvYmplY3RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIGNvbnN0IHRhYmxlRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJVGFibGVEYXRhUHJvdmlkZXI8SXRlbSwgYW55PjtcbiAgICAgICAgY29uc3QgcXVlcnlQYXJhbSA9IGN0eC5wYXJhbWV0ZXJzPy5kYXRhTGlzdFBhcmFtcyA/PyB7fTtcbiAgICAgICAgcmV0dXJuIHRvT2JzZXJ2YWJsZSh0YWJsZURhdGFQcm92aWRlci5nZXRBbGwocXVlcnlQYXJhbSwgY3R4LnNlcnZpY2VJbnN0YW5jZSkpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJ1bkZldGNoRnJvbURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPihjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIFNlcnZpY2U+KTogT2JzZXJ2YWJsZTxJdGVtPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmZldGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW1JZCA/IHRvT2JzZXJ2YWJsZShlZGl0b3JEYXRhUHJvdmlkZXIuZmV0Y2goY3R4LnBhcmFtZXRlcnMuaXRlbUlkLCBjdHguc2VydmljZUluc3RhbmNlLCBjdHgucGFyYW1ldGVycy5sb2NhbGUpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5DcmVhdGVGcm9tRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+KGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pOiBPYnNlcnZhYmxlPEl0ZW0+IHwgbnVsbCB7XG4gICAgaWYgKHR5cGVvZiBjdHguZGF0YVByb3ZpZGVyICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICBjb25zdCBlZGl0b3JEYXRhUHJvdmlkZXIgPSBjdHguZGF0YVByb3ZpZGVyIGFzIElFZGl0b3JEYXRhUHJvdmlkZXI8SXRlbSwgYW55PjtcbiAgICAgICAgaWYgKHR5cGVvZiBlZGl0b3JEYXRhUHJvdmlkZXIuY3JlYXRlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICByZXR1cm4gY3R4LnBhcmFtZXRlcnM/Lml0ZW0gPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLmNyZWF0ZShjdHgucGFyYW1ldGVycy5pdGVtLCBjdHguc2VydmljZUluc3RhbmNlKSkgOiBudWxsO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcnVuVXBkYXRlRnJvbURhdGFQcm92aWRlcjxJdGVtLCBzZXJ2aWNlPihjdHg6IElBY3Rpb25Db250ZXh0PEl0ZW0sIHNlcnZpY2U+KTogT2JzZXJ2YWJsZTxJdGVtPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLnVwZGF0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBydW5EZWxldGVGcm9tRGF0YVByb3ZpZGVyPEl0ZW0sIFNlcnZpY2U+KGN0eDogSUFjdGlvbkNvbnRleHQ8SXRlbSwgU2VydmljZT4pOiBPYnNlcnZhYmxlPEl0ZW0gfCBudWxsPiB8IG51bGwge1xuICAgIGlmICh0eXBlb2YgY3R4LmRhdGFQcm92aWRlciAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgY29uc3QgZWRpdG9yRGF0YVByb3ZpZGVyID0gY3R4LmRhdGFQcm92aWRlciBhcyBJRWRpdG9yRGF0YVByb3ZpZGVyPEl0ZW0sIGFueT47XG4gICAgICAgIGlmICh0eXBlb2YgZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgcmV0dXJuIGN0eC5wYXJhbWV0ZXJzPy5pdGVtSWQgPyB0b09ic2VydmFibGUoZWRpdG9yRGF0YVByb3ZpZGVyLmRlbGV0ZShjdHgucGFyYW1ldGVycy5pdGVtSWQsIGN0eC5wYXJhbWV0ZXJzLml0ZW0sIGN0eC5zZXJ2aWNlSW5zdGFuY2UpKSA6IG51bGw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogR2V0cyBzZXJ2aWNlIGluc3RhbmNlIG9mIGRhdGEgcHJvdmlkZXIuXG4gKlxuICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGluc3RhbmNlXG4gKiBAcGFyYW0gZGF0YVByb3ZpZGVyIERhdGEgcHJvdmlkZXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREYXRhUHJvdmlkZXJTZXJ2aWNlPEl0ZW0sIFNlcnZpY2U+KGluamVjdG9yOiBJbmplY3RvciwgZGF0YVByb3ZpZGVyPzogSURhdGFQcm92aWRlcjxJdGVtLCBTZXJ2aWNlPik6IFNlcnZpY2UgfCBudWxsIHtcbiAgICBpZiAoZGF0YVByb3ZpZGVyPy5zZXJ2aWNlVHlwZSkge1xuICAgICAgICBjb25zdCBzZXJ2aWNlID0gaW5qZWN0b3IuZ2V0PFNlcnZpY2U+KGRhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSwgdW5kZWZpbmVkLCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICAgICAgaWYgKCFzZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYERhdGEgcHJvdmlkZXIgc2VydmljZSB0eXBlICR7ZGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlfSBjb3VsZCBub3QgYmUgaW5qZWN0ZWQuYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHNlcnZpY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxufVxuIl19
|
|
@@ -101,4 +101,4 @@ export class EditorDataProvider extends EditorDataProviderInst {
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQU1uQixNQUFNLDZCQUE2QixDQUFDO0FBdURyQyxNQUFNLE9BQU8sc0JBQ1QsU0FBUSxnQkFBMEQ7SUFRbEUsWUFBc0IsSUFBZ0IsRUFBRSxXQUF5QjtRQUM3RCxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTm5CLFdBQU0sR0FBa0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBTy9KLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxDQUFDLEVBQWlEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxVQUFVLENBQUMsRUFBbUQ7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQTJCO0lBQy9EO1FBQ0ksS0FBSyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDaEIsT0FBTyxJQUFJLHNCQUFzQixDQUF5QyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsSUFBc0I7UUFDakQsT0FBTyxJQUFJLHNCQUFzQixDQUFnRCxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBaUIsSUFBc0IsRUFBRSxXQUFzQztRQUM3RyxPQUFPLElBQUksc0JBQXNCLENBQThELElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBaUIsV0FBc0M7UUFDNUUsT0FBTyxJQUFJLHNCQUFzQixDQUF1RCxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQWdCTSxNQUFNLENBQUMsWUFBWSxDQUFnRyxJQUFpQixFQUFFLFdBQTBCO1FBQ25LLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFO1lBQzdCLE9BQU8sT0FBTyxXQUFXLEtBQUssV0FBVztnQkFDckMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDLElBQXdCLEVBQUUsV0FBd0MsQ0FBQztnQkFDN0csQ0FBQyxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxJQUF3QixDQUFDLENBQUM7U0FDaEU7YUFBTSxJQUFJLE9BQU8sV0FBVyxLQUFLLFdBQVcsRUFBRTtZQUMzQyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxXQUF3QyxDQUFDLENBQUM7U0FDbkY7YUFBTTtZQUNILE9BQU8sa0JBQWtCLENBQUMsTUFBTSxFQUFTLENBQUM7U0FDN0M7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIENsYXNzT3B0VHlwZSxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVySW5zdCxcbiAgICBJRGF0YVByb3ZpZGVyLFxuICAgIElkVHlwZSxcbiAgICBJdGVtT3JPYnNlcnZhYmxlLFxuICAgIFNlcnZpY2VDbGFzc09wdFR5cGUsXG4gICAgU2VydmljZUNsYXNzVHlwZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSWQgPSBJZFR5cGUsIFJldHVybiA9IEl0ZW1Pck9ic2VydmFibGU8TW9kZWw+PiA9IChcbiAgICBpZDogSWQsXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuKSA9PiBSZXR1cm47XG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8TW9kZWwgPSBhbnksIFNlcnZpY2UgPSB1bmRlZmluZWQsIEl0ZW0gPSBNb2RlbCB8IHVuZGVmaW5lZCwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbD4+ID0gKGl0ZW06IEl0ZW0sIHNlcnZpY2U6IFNlcnZpY2UpID0+IFJldHVybjtcbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSWQgPSBJZFR5cGUsIEl0ZW0gPSBNb2RlbCB8IHVuZGVmaW5lZCwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbD4+ID0gKFxuICAgIGlkOiBJZCxcbiAgICBpdGVtOiBJdGVtLFxuICAgIHNlcnZpY2U6IFNlcnZpY2VcbikgPT4gUmV0dXJuO1xuZXhwb3J0IHR5cGUgRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBJZCA9IElkVHlwZSwgSXRlbSA9IE1vZGVsIHwgdW5kZWZpbmVkLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPE1vZGVsIHwgbnVsbD4+ID0gKFxuICAgIGlkOiBJZCxcbiAgICBpdGVtOiBJdGVtLFxuICAgIHNlcnZpY2U6IFNlcnZpY2VcbikgPT4gUmV0dXJuO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaDxNb2RlbCwgU2VydmljZT4ge1xuICAgIGZldGNoOiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckNyZWF0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIGNyZWF0ZT86IEVkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoQ3JlYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlclVwZGF0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIHVwZGF0ZT86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoVXBkYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckRlbGV0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIGRlbGV0ZT86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoRGVsZXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCB0eXBlIElFZGl0b3JEYXRhUHJvdmlkZXJGbnNUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IElFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaDxNb2RlbCwgU2VydmljZT4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGU8TW9kZWwsIFNlcnZpY2U+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlPE1vZGVsLCBTZXJ2aWNlPiAmXG4gICAgSUVkaXRvckRhdGFQcm92aWRlckRlbGV0ZTxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgdHlwZSBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gYW55LCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzID0gU2VydmljZUNsYXNzT3B0VHlwZTxTZXJ2aWNlPj4gPSBJRGF0YVByb3ZpZGVyPFxuICAgIE1vZGVsLFxuICAgIFNlcnZpY2UsXG4gICAgTW9kZWxDbGFzcyxcbiAgICBTZXJ2aWNlQ2xhc3Ncbj4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJGbnNUeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnksIE1vZGVsQ2xhc3MgPSBDbGFzc09wdFR5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+PlxuICAgIGV4dGVuZHMgRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxuICAgIGltcGxlbWVudHMgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxue1xuICAgIHByb3RlY3RlZCBfZmV0Y2g6IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IGlkID0+IHRocm93RXJyb3IoKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBObyBmZXRjaCBmdW5jdGlvbiBwcm92aWRlZCBmb3IgaWQgJHtpZH0uYCkpO1xuICAgIHByb3RlY3RlZCBfY3JlYXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZT86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9kZWxldGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHR5cGU6IE1vZGVsQ2xhc3MsIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgICAgc3VwZXIodHlwZSwgc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIGdldCBmZXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoO1xuICAgIH1cblxuICAgIGdldCBjcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHVwZGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgZGVsZXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVsZXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZldGNoIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIEVkaXRvckRhdGFQcm92aWRlciB3aXRoIHRoZSBmZXRjaCBmdW5jdGlvbiBzZXQuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9mZXRjaCA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjcmVhdGUgZnVuY3Rpb24gZm9yIHRoZSBFZGl0b3JEYXRhUHJvdmlkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZ1bmN0aW9uIHVzZWQgZm9yIGNyZWF0aW5nIG5ldyBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoQ3JlYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jcmVhdGUgPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdXBkYXRlIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+fSBmbiAtIFRoZSB1cGRhdGUgZnVuY3Rpb24gdG8gYmUgc2V0LlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBvYmplY3QgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEB0eXBlcGFyYW0gTW9kZWwgVGhlIHR5cGUgb2YgZGF0YSB0aGlzIERhdGFQcm92aWRlciB3aWxsIGhhbmRsZS5cbiAgICAgKiBAdHlwZXBhcmFtIFNlcnZpY2UgVGhlIHR5cGUgb2Ygc2VydmljZSB1c2VkIGJ5IHRoaXMgRGF0YVByb3ZpZGVyLlxuICAgICAqL1xuICAgIHdpdGhVcGRhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkZWxldGUgZnVuY3Rpb24gZm9yIHRoZSBlZGl0b3IgZGF0YSBwcm92aWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPn0gZm4gLSBUaGUgZGVsZXRlIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBjdXJyZW50IGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aERlbGV0ZShmbj86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGVsZXRlID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckRhdGFQcm92aWRlciBleHRlbmRzIEVkaXRvckRhdGFQcm92aWRlckluc3Q8YW55PiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KCkge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgQ2xhc3NUeXBlPE1vZGVsPiwgdW5kZWZpbmVkPih0eXBlLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzV2l0aFNlcnZpY2U8TW9kZWwsIFNlcnZpY2U+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4odHlwZSwgc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZpY2U8U2VydmljZSwgTW9kZWw+KHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+KTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PiB7XG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+Pih1bmRlZmluZWQsIHNlcnZpY2VUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbD4oKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWw+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4pOiBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCB1bmRlZmluZWQsIENsYXNzVHlwZTxNb2RlbD4sIHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWwsIFNlcnZpY2UgPSBhbnk+KFxuICAgICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PjtcbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbCwgU2VydmljZSA9IGFueT4oXG4gICAgICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWwsIFNlcnZpY2UsIE1vZGVsQ2xhc3MgPSBDbGFzc1R5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PihcbiAgICAgICAgdHlwZT86IE1vZGVsQ2xhc3MsXG4gICAgICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzXG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPjtcbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbCwgU2VydmljZSA9IGFueSwgTW9kZWxDbGFzcyA9IENsYXNzVHlwZTxNb2RlbD4sIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+KHR5cGU/OiBNb2RlbENsYXNzLCBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzcykge1xuICAgICAgICBpZiAodHlwZW9mIHR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHNlcnZpY2VUeXBlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgID8gRWRpdG9yRGF0YVByb3ZpZGVyLmZyb21DbGFzc1dpdGhTZXJ2aWNlKHR5cGUgYXMgQ2xhc3NUeXBlPE1vZGVsPiwgc2VydmljZVR5cGUgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPilcbiAgICAgICAgICAgICAgICA6IEVkaXRvckRhdGFQcm92aWRlci5mcm9tQ2xhc3ModHlwZSBhcyBDbGFzc1R5cGU8TW9kZWw+KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2VydmljZVR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gRWRpdG9yRGF0YVByb3ZpZGVyLmZyb21TZXJ2aWNlKHNlcnZpY2VUeXBlIGFzIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEVkaXRvckRhdGFQcm92aWRlci5jcmVhdGU8TW9kZWw+KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBR0gsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQU1uQixNQUFNLDZCQUE2QixDQUFDO0FBdURyQyxNQUFNLE9BQU8sc0JBQ1QsU0FBUSxnQkFBMEQ7SUFRbEUsWUFBc0IsSUFBZ0IsRUFBRSxXQUF5QjtRQUM3RCxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBTm5CLFdBQU0sR0FBa0QsRUFBRSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxxQ0FBcUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBTy9KLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxDQUFDLEVBQWlEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxVQUFVLENBQUMsRUFBbUQ7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsc0JBQTJCO0lBQy9EO1FBQ0ksS0FBSyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQU07UUFDaEIsT0FBTyxJQUFJLHNCQUFzQixDQUF5QyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsSUFBc0I7UUFDakQsT0FBTyxJQUFJLHNCQUFzQixDQUFnRCxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBaUIsSUFBc0IsRUFBRSxXQUFzQztRQUM3RyxPQUFPLElBQUksc0JBQXNCLENBQThELElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN0SCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBaUIsV0FBc0M7UUFDNUUsT0FBTyxJQUFJLHNCQUFzQixDQUF1RCxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQWdCTSxNQUFNLENBQUMsWUFBWSxDQUFnRyxJQUFpQixFQUFFLFdBQTBCO1FBQ25LLElBQUksT0FBTyxJQUFJLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDOUIsT0FBTyxPQUFPLFdBQVcsS0FBSyxXQUFXO2dCQUNyQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBd0IsRUFBRSxXQUF3QyxDQUFDO2dCQUM3RyxDQUFDLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLElBQXdCLENBQUMsQ0FBQztRQUNqRSxDQUFDO2FBQU0sSUFBSSxPQUFPLFdBQVcsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUM1QyxPQUFPLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxXQUF3QyxDQUFDLENBQUM7UUFDcEYsQ0FBQzthQUFNLENBQUM7WUFDSixPQUFPLGtCQUFrQixDQUFDLE1BQU0sRUFBUyxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3Rocm93RXJyb3J9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICAgIENsYXNzT3B0VHlwZSxcbiAgICBDbGFzc1R5cGUsXG4gICAgQ29tbW9uc0ludGVybmFsRXJyb3IsXG4gICAgRGF0YVByb3ZpZGVySW5zdCxcbiAgICBJRGF0YVByb3ZpZGVyLFxuICAgIElkVHlwZSxcbiAgICBJdGVtT3JPYnNlcnZhYmxlLFxuICAgIFNlcnZpY2VDbGFzc09wdFR5cGUsXG4gICAgU2VydmljZUNsYXNzVHlwZVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSWQgPSBJZFR5cGUsIFJldHVybiA9IEl0ZW1Pck9ic2VydmFibGU8TW9kZWw+PiA9IChcbiAgICBpZDogSWQsXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuKSA9PiBSZXR1cm47XG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8TW9kZWwgPSBhbnksIFNlcnZpY2UgPSB1bmRlZmluZWQsIEl0ZW0gPSBNb2RlbCB8IHVuZGVmaW5lZCwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbD4+ID0gKGl0ZW06IEl0ZW0sIHNlcnZpY2U6IFNlcnZpY2UpID0+IFJldHVybjtcbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSWQgPSBJZFR5cGUsIEl0ZW0gPSBNb2RlbCB8IHVuZGVmaW5lZCwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbD4+ID0gKFxuICAgIGlkOiBJZCxcbiAgICBpdGVtOiBJdGVtLFxuICAgIHNlcnZpY2U6IFNlcnZpY2VcbikgPT4gUmV0dXJuO1xuZXhwb3J0IHR5cGUgRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBJZCA9IElkVHlwZSwgSXRlbSA9IE1vZGVsIHwgdW5kZWZpbmVkLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPE1vZGVsIHwgbnVsbD4+ID0gKFxuICAgIGlkOiBJZCxcbiAgICBpdGVtOiBJdGVtLFxuICAgIHNlcnZpY2U6IFNlcnZpY2VcbikgPT4gUmV0dXJuO1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaDxNb2RlbCwgU2VydmljZT4ge1xuICAgIGZldGNoOiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckNyZWF0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIGNyZWF0ZT86IEVkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoQ3JlYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlclVwZGF0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIHVwZGF0ZT86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoVXBkYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckRlbGV0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIGRlbGV0ZT86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoRGVsZXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCB0eXBlIElFZGl0b3JEYXRhUHJvdmlkZXJGbnNUeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IElFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaDxNb2RlbCwgU2VydmljZT4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGU8TW9kZWwsIFNlcnZpY2U+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlPE1vZGVsLCBTZXJ2aWNlPiAmXG4gICAgSUVkaXRvckRhdGFQcm92aWRlckRlbGV0ZTxNb2RlbCwgU2VydmljZT47XG5leHBvcnQgdHlwZSBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gYW55LCBNb2RlbENsYXNzID0gQ2xhc3NPcHRUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzID0gU2VydmljZUNsYXNzT3B0VHlwZTxTZXJ2aWNlPj4gPSBJRGF0YVByb3ZpZGVyPFxuICAgIE1vZGVsLFxuICAgIFNlcnZpY2UsXG4gICAgTW9kZWxDbGFzcyxcbiAgICBTZXJ2aWNlQ2xhc3Ncbj4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJGbnNUeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnksIE1vZGVsQ2xhc3MgPSBDbGFzc09wdFR5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+PlxuICAgIGV4dGVuZHMgRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxuICAgIGltcGxlbWVudHMgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxue1xuICAgIHByb3RlY3RlZCBfZmV0Y2g6IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPiA9IGlkID0+IHRocm93RXJyb3IoKCkgPT4gbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGBObyBmZXRjaCBmdW5jdGlvbiBwcm92aWRlZCBmb3IgaWQgJHtpZH0uYCkpO1xuICAgIHByb3RlY3RlZCBfY3JlYXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZT86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9kZWxldGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHR5cGU6IE1vZGVsQ2xhc3MsIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgICAgc3VwZXIodHlwZSwgc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIGdldCBmZXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoO1xuICAgIH1cblxuICAgIGdldCBjcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHVwZGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgZGVsZXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVsZXRlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZldGNoIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIEVkaXRvckRhdGFQcm92aWRlciB3aXRoIHRoZSBmZXRjaCBmdW5jdGlvbiBzZXQuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9mZXRjaCA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjcmVhdGUgZnVuY3Rpb24gZm9yIHRoZSBFZGl0b3JEYXRhUHJvdmlkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZ1bmN0aW9uIHVzZWQgZm9yIGNyZWF0aW5nIG5ldyBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoQ3JlYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jcmVhdGUgPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdXBkYXRlIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+fSBmbiAtIFRoZSB1cGRhdGUgZnVuY3Rpb24gdG8gYmUgc2V0LlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBvYmplY3QgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEB0eXBlcGFyYW0gTW9kZWwgVGhlIHR5cGUgb2YgZGF0YSB0aGlzIERhdGFQcm92aWRlciB3aWxsIGhhbmRsZS5cbiAgICAgKiBAdHlwZXBhcmFtIFNlcnZpY2UgVGhlIHR5cGUgb2Ygc2VydmljZSB1c2VkIGJ5IHRoaXMgRGF0YVByb3ZpZGVyLlxuICAgICAqL1xuICAgIHdpdGhVcGRhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkZWxldGUgZnVuY3Rpb24gZm9yIHRoZSBlZGl0b3IgZGF0YSBwcm92aWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPn0gZm4gLSBUaGUgZGVsZXRlIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBjdXJyZW50IGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aERlbGV0ZShmbj86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGVsZXRlID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEVkaXRvckRhdGFQcm92aWRlciBleHRlbmRzIEVkaXRvckRhdGFQcm92aWRlckluc3Q8YW55PiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcih1bmRlZmluZWQsIHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBjcmVhdGU8TW9kZWw+KCkge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+KHVuZGVmaW5lZCwgdW5kZWZpbmVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPikge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgQ2xhc3NUeXBlPE1vZGVsPiwgdW5kZWZpbmVkPih0eXBlLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbUNsYXNzV2l0aFNlcnZpY2U8TW9kZWwsIFNlcnZpY2U+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+KSB7XG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4odHlwZSwgc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZnJvbVNlcnZpY2U8U2VydmljZSwgTW9kZWw+KHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+KTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PiB7XG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+Pih1bmRlZmluZWQsIHNlcnZpY2VUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbD4oKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWw+KHR5cGU6IENsYXNzVHlwZTxNb2RlbD4pOiBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCB1bmRlZmluZWQsIENsYXNzVHlwZTxNb2RlbD4sIHVuZGVmaW5lZD47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWwsIFNlcnZpY2UgPSBhbnk+KFxuICAgICAgICB0eXBlOiB1bmRlZmluZWQsXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PjtcbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbCwgU2VydmljZSA9IGFueT4oXG4gICAgICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj47XG4gICAgcHVibGljIHN0YXRpYyBmcm9tQW55UGFyYW08TW9kZWwsIFNlcnZpY2UsIE1vZGVsQ2xhc3MgPSBDbGFzc1R5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PihcbiAgICAgICAgdHlwZT86IE1vZGVsQ2xhc3MsXG4gICAgICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzXG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPjtcbiAgICBwdWJsaWMgc3RhdGljIGZyb21BbnlQYXJhbTxNb2RlbCwgU2VydmljZSA9IGFueSwgTW9kZWxDbGFzcyA9IENsYXNzVHlwZTxNb2RlbD4sIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+KHR5cGU/OiBNb2RlbENsYXNzLCBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzcykge1xuICAgICAgICBpZiAodHlwZW9mIHR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdHlwZW9mIHNlcnZpY2VUeXBlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgID8gRWRpdG9yRGF0YVByb3ZpZGVyLmZyb21DbGFzc1dpdGhTZXJ2aWNlKHR5cGUgYXMgQ2xhc3NUeXBlPE1vZGVsPiwgc2VydmljZVR5cGUgYXMgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPilcbiAgICAgICAgICAgICAgICA6IEVkaXRvckRhdGFQcm92aWRlci5mcm9tQ2xhc3ModHlwZSBhcyBDbGFzc1R5cGU8TW9kZWw+KTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2Ygc2VydmljZVR5cGUgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm4gRWRpdG9yRGF0YVByb3ZpZGVyLmZyb21TZXJ2aWNlKHNlcnZpY2VUeXBlIGFzIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIEVkaXRvckRhdGFQcm92aWRlci5jcmVhdGU8TW9kZWw+KCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|