@pepperi-addons/ngx-lib 0.2.59-query-builder.7 → 0.2.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +39 -39
- package/address/address.component.theme.scss +8 -8
- package/address/pepperi-addons-ngx-lib-address.metadata.json +1 -1
- package/attachment/attachment.component.d.ts +0 -1
- package/attachment/attachment.component.theme.scss +3 -3
- package/attachment/pepperi-addons-ngx-lib-attachment.metadata.json +1 -1
- package/bread-crumbs/bread-crumbs.component.theme.scss +8 -8
- package/bread-crumbs/pepperi-addons-ngx-lib-bread-crumbs.metadata.json +1 -1
- package/bundles/pepperi-addons-ngx-lib-address.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-address.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-attachment.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-bread-crumbs.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-button.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-button.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-carousel.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js +1 -4
- package/bundles/pepperi-addons-ngx-lib-checkbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-color.umd.js +2 -7
- package/bundles/pepperi-addons-ngx-lib-color.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-date.umd.js +3 -5
- package/bundles/pepperi-addons-ngx-lib-date.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js +2 -2
- package/bundles/pepperi-addons-ngx-lib-dialog.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-field-title.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-field-title.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-files-uploader.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-form.umd.js +23 -26
- package/bundles/pepperi-addons-ngx-lib-form.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-group-buttons.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-icon.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-image.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-image.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-images-filmstrip.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-list.umd.js +8 -8
- package/bundles/pepperi-addons-ngx-lib-list.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-menu.umd.js +2 -2
- package/bundles/pepperi-addons-ngx-lib-menu.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-page-layout.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-quantity-selector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-rich-html-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-search.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-search.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-select.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-select.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js +1 -9
- package/bundles/pepperi-addons-ngx-lib-separator.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-side-bar.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-signature.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-size-detector.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-slider.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-slider.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js +40 -307
- package/bundles/pepperi-addons-ngx-lib-smart-filters.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js +1 -6
- package/bundles/pepperi-addons-ngx-lib-textarea.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox-icon.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js +3 -5
- package/bundles/pepperi-addons-ngx-lib-textbox.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js +1 -1
- package/bundles/pepperi-addons-ngx-lib-top-bar.umd.js.map +1 -1
- package/bundles/pepperi-addons-ngx-lib.umd.js +36 -38
- package/bundles/pepperi-addons-ngx-lib.umd.js.map +1 -1
- package/button/button.component.theme.scss +2 -2
- package/button/pepperi-addons-ngx-lib-button.metadata.json +1 -1
- package/checkbox/checkbox.component.theme.scss +2 -2
- package/checkbox/pepperi-addons-ngx-lib-checkbox.metadata.json +1 -1
- package/color/color-picker.component.theme.scss +175 -175
- package/color/color.component.d.ts +0 -1
- package/color/color.component.theme.scss +7 -7
- package/color/pepperi-addons-ngx-lib-color.metadata.json +1 -1
- package/core/common/services/addon.service.d.ts +2 -1
- package/core/common/services/file.service.d.ts +4 -4
- package/core/customization/customization.service.d.ts +0 -1
- package/date/date.component.theme.scss +169 -169
- package/date/pepperi-addons-ngx-lib-date.metadata.json +1 -1
- package/dialog/dialog.component.theme.scss +5 -5
- package/dialog/pepperi-addons-ngx-lib-dialog.metadata.json +1 -1
- package/esm2015/address/address.component.js +2 -2
- package/esm2015/address/address.module.js +1 -1
- package/esm2015/address/public-api.js +1 -1
- package/esm2015/attachment/attachment.component.js +2 -7
- package/esm2015/attachment/attachment.module.js +1 -1
- package/esm2015/attachment/public-api.js +1 -1
- package/esm2015/bread-crumbs/bread-crumbs.component.js +2 -2
- package/esm2015/bread-crumbs/bread-crumbs.model.js +1 -1
- package/esm2015/bread-crumbs/bread-crumbs.module.js +1 -1
- package/esm2015/bread-crumbs/public-api.js +1 -1
- package/esm2015/button/button.component.js +2 -2
- package/esm2015/button/button.model.js +1 -1
- package/esm2015/button/button.module.js +1 -1
- package/esm2015/button/public-api.js +1 -1
- package/esm2015/carousel/carousel-item.directive.js +1 -1
- package/esm2015/carousel/carousel.component.js +15 -15
- package/esm2015/carousel/carousel.module.js +1 -1
- package/esm2015/carousel/public-api.js +1 -1
- package/esm2015/checkbox/checkbox.component.js +2 -5
- package/esm2015/checkbox/checkbox.module.js +1 -1
- package/esm2015/checkbox/public-api.js +1 -1
- package/esm2015/color/color-picker.component.js +28 -28
- package/esm2015/color/color.component.js +2 -7
- package/esm2015/color/color.model.js +1 -1
- package/esm2015/color/color.module.js +1 -1
- package/esm2015/color/public-api.js +1 -1
- package/esm2015/core/clipboard/clipboard.directive.js +1 -1
- package/esm2015/core/clipboard/clipboard.service.js +1 -1
- package/esm2015/core/clipboard/index.js +1 -1
- package/esm2015/core/clipboard/public-api.js +1 -1
- package/esm2015/core/common/directives/auto-width.directive.js +1 -1
- package/esm2015/core/common/directives/button-blur.directive.js +1 -1
- package/esm2015/core/common/directives/button-loader.directive.js +1 -1
- package/esm2015/core/common/directives/data-qa.directive.js +1 -1
- package/esm2015/core/common/directives/index.js +1 -1
- package/esm2015/core/common/directives/menu-blur.directive.js +1 -1
- package/esm2015/core/common/directives/prevent-multi-click.directive.js +1 -1
- package/esm2015/core/common/directives/public-api.js +1 -1
- package/esm2015/core/common/index.js +1 -1
- package/esm2015/core/common/model/index.js +1 -1
- package/esm2015/core/common/model/papi.model.js +1 -1
- package/esm2015/core/common/model/public-api.js +1 -1
- package/esm2015/core/common/model/utilities.model.js +1 -1
- package/esm2015/core/common/model/wapi.model.js +1 -1
- package/esm2015/core/common/pipes/common-pipes.js +1 -1
- package/esm2015/core/common/pipes/index.js +1 -1
- package/esm2015/core/common/pipes/public-api.js +1 -1
- package/esm2015/core/common/public-api.js +1 -1
- package/esm2015/core/common/services/addon.service.js +19 -4
- package/esm2015/core/common/services/color.service.js +1 -1
- package/esm2015/core/common/services/cookie.service.js +1 -1
- package/esm2015/core/common/services/data-convertor.service.js +1 -1
- package/esm2015/core/common/services/file.service.js +9 -9
- package/esm2015/core/common/services/index.js +1 -1
- package/esm2015/core/common/services/jwt-helper.service.js +1 -1
- package/esm2015/core/common/services/public-api.js +1 -1
- package/esm2015/core/common/services/session.service.js +1 -1
- package/esm2015/core/common/services/utilities.service.js +4 -25
- package/esm2015/core/common/services/validator.service.js +1 -1
- package/esm2015/core/common/services/window-scrolling.service.js +5 -5
- package/esm2015/core/customization/customization.model.js +1 -1
- package/esm2015/core/customization/customization.service.js +2 -4
- package/esm2015/core/customization/index.js +1 -1
- package/esm2015/core/customization/public-api.js +1 -1
- package/esm2015/core/http/index.js +1 -1
- package/esm2015/core/http/interceptors/error.interceptor.js +1 -1
- package/esm2015/core/http/interceptors/index.js +1 -1
- package/esm2015/core/http/interceptors/loader.interceptor.js +1 -1
- package/esm2015/core/http/interceptors/profiler.interceptor.js +1 -1
- package/esm2015/core/http/public-api.js +1 -1
- package/esm2015/core/http/services/http.service.js +1 -1
- package/esm2015/core/http/services/loader.service.js +1 -1
- package/esm2015/core/index.js +1 -1
- package/esm2015/core/layout/index.js +1 -1
- package/esm2015/core/layout/layout.service.js +1 -1
- package/esm2015/core/layout/public-api.js +1 -1
- package/esm2015/core/layout/rtl.directive.js +1 -1
- package/esm2015/core/portal/attach.directive.js +1 -1
- package/esm2015/core/portal/index.js +1 -1
- package/esm2015/core/portal/portal.service.js +1 -1
- package/esm2015/core/portal/public-api.js +1 -1
- package/esm2015/core/portal/target.directive.js +1 -1
- package/esm2015/core/public-api.js +1 -1
- package/esm2015/core/scroll-to/index.js +1 -1
- package/esm2015/core/scroll-to/public-api.js +1 -1
- package/esm2015/core/scroll-to/scroll-to.service.js +1 -1
- package/esm2015/date/date.component.js +4 -6
- package/esm2015/date/date.module.js +1 -1
- package/esm2015/date/public-api.js +1 -1
- package/esm2015/dialog/default-dialog.component.js +2 -2
- package/esm2015/dialog/dialog.component.js +2 -2
- package/esm2015/dialog/dialog.model.js +1 -1
- package/esm2015/dialog/dialog.module.js +1 -1
- package/esm2015/dialog/dialog.service.js +1 -1
- package/esm2015/dialog/public-api.js +1 -1
- package/esm2015/field-title/field-title.component.js +2 -2
- package/esm2015/field-title/field-title.module.js +1 -1
- package/esm2015/field-title/public-api.js +1 -1
- package/esm2015/files-uploader/files-uploader.component.js +2 -2
- package/esm2015/files-uploader/files-uploader.module.js +1 -1
- package/esm2015/files-uploader/public-api.js +1 -1
- package/esm2015/form/field-generator.component.js +2 -2
- package/esm2015/form/form.component.js +2 -2
- package/esm2015/form/form.module.js +1 -1
- package/esm2015/form/indicators.component.js +2 -2
- package/esm2015/form/internal-button.component.js +18 -21
- package/esm2015/form/internal-carusel.component.js +2 -2
- package/esm2015/form/internal-carusel.service.js +1 -1
- package/esm2015/form/internal-list.component.js +2 -2
- package/esm2015/form/internal-menu.component.js +2 -2
- package/esm2015/form/internal-page.component.js +2 -2
- package/esm2015/form/internal-page.service.js +1 -1
- package/esm2015/form/public-api.js +1 -1
- package/esm2015/group-buttons/group-buttons.component.js +2 -2
- package/esm2015/group-buttons/group-buttons.module.js +1 -1
- package/esm2015/group-buttons/public-api.js +1 -1
- package/esm2015/icon/icon-generated-all.model.js +1 -1
- package/esm2015/icon/icon-generated.model.js +1 -1
- package/esm2015/icon/icon-registry.service.js +2 -2
- package/esm2015/icon/icon.component.js +1 -1
- package/esm2015/icon/icon.module.js +1 -1
- package/esm2015/icon/public-api.js +1 -1
- package/esm2015/image/image.component.js +2 -7
- package/esm2015/image/image.module.js +1 -1
- package/esm2015/image/public-api.js +1 -1
- package/esm2015/images-filmstrip/images-filmstrip.component.js +2 -7
- package/esm2015/images-filmstrip/images-filmstrip.module.js +1 -1
- package/esm2015/images-filmstrip/public-api.js +1 -1
- package/esm2015/list/list-actions.component.js +2 -2
- package/esm2015/list/list-carousel.component.js +2 -2
- package/esm2015/list/list-chooser.component.js +2 -2
- package/esm2015/list/list-pager.component.js +2 -2
- package/esm2015/list/list-sorting.component.js +2 -2
- package/esm2015/list/list-total.component.js +2 -2
- package/esm2015/list/list-views.component.js +2 -2
- package/esm2015/list/list.component.js +2 -2
- package/esm2015/list/list.model.js +1 -1
- package/esm2015/list/list.module.js +1 -1
- package/esm2015/list/public-api.js +1 -1
- package/esm2015/menu/menu-item.component.js +2 -2
- package/esm2015/menu/menu.component.js +2 -2
- package/esm2015/menu/menu.model.js +1 -1
- package/esm2015/menu/menu.module.js +1 -1
- package/esm2015/menu/public-api.js +1 -1
- package/esm2015/ngx-lib.module.js +1 -1
- package/esm2015/page-layout/page-layout.component.js +2 -2
- package/esm2015/page-layout/page-layout.module.js +1 -1
- package/esm2015/page-layout/public-api.js +1 -1
- package/esm2015/public-api.js +1 -1
- package/esm2015/quantity-selector/public-api.js +1 -1
- package/esm2015/quantity-selector/quantity-selector-validation.directive.js +1 -1
- package/esm2015/quantity-selector/quantity-selector.component.js +2 -7
- package/esm2015/quantity-selector/quantity-selector.module.js +1 -1
- package/esm2015/quantity-selector/quantity-selector.pipes.js +1 -1
- package/esm2015/rich-html-textarea/public-api.js +1 -1
- package/esm2015/rich-html-textarea/rich-html-textarea.component.js +2 -7
- package/esm2015/rich-html-textarea/rich-html-textarea.module.js +1 -1
- package/esm2015/search/public-api.js +1 -1
- package/esm2015/search/search.component.js +2 -2
- package/esm2015/search/search.model.js +1 -1
- package/esm2015/search/search.module.js +1 -1
- package/esm2015/select/public-api.js +1 -1
- package/esm2015/select/select.component.js +2 -7
- package/esm2015/select/select.module.js +1 -1
- package/esm2015/separator/public-api.js +1 -1
- package/esm2015/separator/separator.component.js +2 -10
- package/esm2015/separator/separator.module.js +1 -1
- package/esm2015/side-bar/public-api.js +1 -1
- package/esm2015/side-bar/side-bar.component.js +2 -2
- package/esm2015/side-bar/side-bar.model.js +1 -1
- package/esm2015/side-bar/side-bar.module.js +1 -1
- package/esm2015/signature/public-api.js +1 -1
- package/esm2015/signature/signature.component.js +2 -7
- package/esm2015/signature/signature.module.js +1 -1
- package/esm2015/size-detector/public-api.js +1 -1
- package/esm2015/size-detector/size-detector.component.js +2 -2
- package/esm2015/size-detector/size-detector.module.js +1 -1
- package/esm2015/slider/public-api.js +1 -1
- package/esm2015/slider/slider.component.js +2 -2
- package/esm2015/slider/slider.module.js +1 -1
- package/esm2015/smart-filters/boolean-filter/boolean-filter.component.js +3 -23
- package/esm2015/smart-filters/common/filter-actions.component.js +2 -2
- package/esm2015/smart-filters/common/model/base-filter-component.js +8 -35
- package/esm2015/smart-filters/common/model/creator.js +2 -8
- package/esm2015/smart-filters/common/model/field.js +1 -12
- package/esm2015/smart-filters/common/model/filter.js +1 -1
- package/esm2015/smart-filters/common/model/operator.js +8 -8
- package/esm2015/smart-filters/common/model/type.js +1 -1
- package/esm2015/smart-filters/date-filter/date-filter.component.js +2 -45
- package/esm2015/smart-filters/multi-select-filter/multi-select-filter.component.js +14 -53
- package/esm2015/smart-filters/number-filter/number-filter.component.js +2 -27
- package/esm2015/smart-filters/public-api.js +1 -2
- package/esm2015/smart-filters/smart-filters.component.js +2 -2
- package/esm2015/smart-filters/smart-filters.module.js +3 -16
- package/esm2015/textarea/public-api.js +1 -1
- package/esm2015/textarea/textarea.component.js +2 -7
- package/esm2015/textarea/textarea.module.js +1 -1
- package/esm2015/textbox/public-api.js +1 -1
- package/esm2015/textbox/textbox-validation.directive.js +1 -1
- package/esm2015/textbox/textbox.component.js +4 -6
- package/esm2015/textbox/textbox.module.js +1 -1
- package/esm2015/textbox-icon/public-api.js +1 -1
- package/esm2015/textbox-icon/textbox-icon.component.js +2 -2
- package/esm2015/textbox-icon/textbox-icon.module.js +1 -1
- package/esm2015/top-bar/public-api.js +1 -1
- package/esm2015/top-bar/top-bar.component.js +2 -2
- package/esm2015/top-bar/top-bar.model.js +1 -1
- package/esm2015/top-bar/top-bar.module.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-attachment.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-bread-crumbs.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-carousel.js +14 -14
- package/fesm2015/pepperi-addons-ngx-lib-carousel.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js +1 -4
- package/fesm2015/pepperi-addons-ngx-lib-checkbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.js +28 -33
- package/fesm2015/pepperi-addons-ngx-lib-color.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-date.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-date.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-field-title.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.js +23 -26
- package/fesm2015/pepperi-addons-ngx-lib-form.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-group-buttons.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-icon.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-image.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.js +8 -8
- package/fesm2015/pepperi-addons-ngx-lib-list.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.js +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-page-layout.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-rich-html-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-search.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-select.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-separator.js +1 -9
- package/fesm2015/pepperi-addons-ngx-lib-separator.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-side-bar.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-signature.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-size-detector.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-slider.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js +37 -294
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js +1 -6
- package/fesm2015/pepperi-addons-ngx-lib-textarea.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox-icon.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js +3 -5
- package/fesm2015/pepperi-addons-ngx-lib-textbox.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.js +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.js.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.js +34 -42
- package/fesm2015/pepperi-addons-ngx-lib.js.map +1 -1
- package/field-title/field-title.component.theme.scss +2 -2
- package/field-title/pepperi-addons-ngx-lib-field-title.metadata.json +1 -1
- package/files-uploader/files-uploader.component.theme.scss +2 -2
- package/files-uploader/pepperi-addons-ngx-lib-files-uploader.metadata.json +1 -1
- package/form/form.component.theme.scss +2 -2
- package/form/indicators.component.theme.scss +7 -7
- package/form/internal-button.component.d.ts +1 -0
- package/form/internal-button.component.theme.scss +2 -2
- package/form/internal-menu.component.theme.scss +3 -3
- package/form/pepperi-addons-ngx-lib-form.metadata.json +1 -1
- package/group-buttons/group-buttons.component.theme.scss +15 -15
- package/group-buttons/pepperi-addons-ngx-lib-group-buttons.metadata.json +1 -1
- package/image/image.component.d.ts +0 -1
- package/image/image.component.theme.scss +35 -35
- package/image/pepperi-addons-ngx-lib-image.metadata.json +1 -1
- package/images-filmstrip/images-filmstrip.component.d.ts +0 -1
- package/images-filmstrip/images-filmstrip.component.theme.scss +32 -32
- package/images-filmstrip/pepperi-addons-ngx-lib-images-filmstrip.metadata.json +1 -1
- package/list/list-actions.component.theme.scss +3 -3
- package/list/list-carousel.component.theme.scss +9 -9
- package/list/list-chooser.component.theme.scss +3 -3
- package/list/list-pager.component.theme.scss +3 -3
- package/list/list-sorting.component.theme.scss +3 -3
- package/list/list-total.component.theme.scss +10 -10
- package/list/list-views.component.theme.scss +3 -3
- package/list/list.component.theme.scss +5 -5
- package/list/list_old.component.theme.scss +5 -5
- package/list/pepperi-addons-ngx-lib-list.metadata.json +1 -1
- package/menu/menu.component.theme.scss +2 -2
- package/menu/pepperi-addons-ngx-lib-menu.metadata.json +1 -1
- package/package.json +1 -1
- package/page-layout/page-layout.component.theme.scss +7 -7
- package/page-layout/pepperi-addons-ngx-lib-page-layout.metadata.json +1 -1
- package/pepperi-addons-ngx-lib.metadata.json +1 -1
- package/quantity-selector/pepperi-addons-ngx-lib-quantity-selector.metadata.json +1 -1
- package/quantity-selector/quantity-selector.component.d.ts +0 -1
- package/quantity-selector/quantity-selector.component.theme.scss +77 -77
- package/rich-html-textarea/pepperi-addons-ngx-lib-rich-html-textarea.metadata.json +1 -1
- package/rich-html-textarea/rich-html-textarea.component.d.ts +0 -1
- package/rich-html-textarea/rich-html-textarea.component.theme.scss +236 -236
- package/search/pepperi-addons-ngx-lib-search.metadata.json +1 -1
- package/search/search.component.theme.scss +3 -3
- package/select/pepperi-addons-ngx-lib-select.metadata.json +1 -1
- package/select/select.component.d.ts +0 -1
- package/select/select.component.theme.scss +2 -2
- package/separator/pepperi-addons-ngx-lib-separator.metadata.json +1 -1
- package/separator/separator.component.theme.scss +2 -2
- package/side-bar/pepperi-addons-ngx-lib-side-bar.metadata.json +1 -1
- package/side-bar/side-bar.component.theme.scss +25 -25
- package/signature/pepperi-addons-ngx-lib-signature.metadata.json +1 -1
- package/signature/signature.component.d.ts +0 -1
- package/signature/signature.component.theme.scss +28 -28
- package/size-detector/pepperi-addons-ngx-lib-size-detector.metadata.json +1 -1
- package/slider/pepperi-addons-ngx-lib-slider.metadata.json +1 -1
- package/slider/slider.component.theme.scss +65 -65
- package/smart-filters/boolean-filter/boolean-filter.component.d.ts +1 -6
- package/smart-filters/common/model/base-filter-component.d.ts +0 -7
- package/smart-filters/common/model/field.d.ts +0 -4
- package/smart-filters/common/model/operator.d.ts +0 -1
- package/smart-filters/common/model/type.d.ts +2 -2
- package/smart-filters/date-filter/date-filter.component.d.ts +1 -8
- package/smart-filters/multi-select-filter/multi-select-filter.component.d.ts +0 -6
- package/smart-filters/number-filter/number-filter.component.d.ts +0 -5
- package/smart-filters/pepperi-addons-ngx-lib-smart-filters.metadata.json +1 -1
- package/smart-filters/public-api.d.ts +0 -1
- package/smart-filters/smart-filters.component.theme.scss +10 -10
- package/src/assets/i18n/de.ngx-lib.json +77 -77
- package/src/assets/i18n/en.ngx-lib.json +138 -139
- package/src/assets/i18n/es.ngx-lib.json +77 -77
- package/src/assets/i18n/fr.ngx-lib.json +78 -78
- package/src/assets/i18n/he.ngx-lib.json +78 -78
- package/src/assets/i18n/hu.ngx-lib.json +78 -78
- package/src/assets/i18n/it.ngx-lib.json +78 -78
- package/src/assets/i18n/ja.ngx-lib.json +78 -78
- package/src/assets/i18n/nl.ngx-lib.json +78 -78
- package/src/assets/i18n/pl.ngx-lib.json +78 -78
- package/src/assets/i18n/pt.ngx-lib.json +78 -78
- package/src/assets/i18n/ru.ngx-lib.json +78 -78
- package/src/assets/i18n/zh.ngx-lib.json +76 -76
- package/src/assets/images/no-image.svg +41 -41
- package/src/core/style/abstracts/breakpoints.scss +35 -35
- package/src/core/style/abstracts/functions.scss +422 -422
- package/src/core/style/abstracts/mixins.scss +797 -797
- package/src/core/style/abstracts/variables.scss +545 -545
- package/src/core/style/base/base.scss +873 -873
- package/src/core/style/base/grids.scss +4 -4
- package/src/core/style/base/helpers.scss +70 -70
- package/src/core/style/base/typography.scss +255 -255
- package/src/core/style/components/button.scss +349 -349
- package/src/core/style/components/checkbox.scss +473 -473
- package/src/core/style/components/datetime.scss +22 -22
- package/src/core/style/components/file.scss +219 -219
- package/src/core/style/components/general.scss +1086 -1088
- package/src/core/style/components/input.scss +94 -94
- package/src/core/style/components/quantity-selector.scss +14 -14
- package/src/core/style/components/radio-button.scss +168 -168
- package/src/core/style/components/select.scss +185 -185
- package/src/core/style/components/signature.scss +12 -12
- package/src/core/style/components/splitter.scss +64 -64
- package/src/core/style/components/textarea.scss +195 -195
- package/src/core/style/themes/black-theme.scss +7 -7
- package/src/core/style/themes/default-theme.scss +144 -144
- package/src/core/style/themes/light-theme.scss +7 -7
- package/src/core/style/themes/nature-theme.scss +7 -7
- package/src/core/style/vendors/normalize.scss +497 -497
- package/textarea/pepperi-addons-ngx-lib-textarea.metadata.json +1 -1
- package/textarea/textarea.component.d.ts +0 -1
- package/textarea/textarea.component.theme.scss +2 -2
- package/textbox/pepperi-addons-ngx-lib-textbox.metadata.json +1 -1
- package/textbox/textbox.component.theme.scss +3 -3
- package/textbox-icon/pepperi-addons-ngx-lib-textbox-icon.metadata.json +1 -1
- package/textbox-icon/textbox-icon.component.theme.scss +2 -2
- package/theming.scss +220 -224
- package/top-bar/pepperi-addons-ngx-lib-top-bar.metadata.json +1 -1
- package/top-bar/top-bar.component.theme.scss +9 -9
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js +0 -1113
- package/bundles/pepperi-addons-ngx-lib-query-builder.umd.js.map +0 -1
- package/esm2015/query-builder/common/model/filter.js +0 -2
- package/esm2015/query-builder/common/model/legacy.js +0 -2
- package/esm2015/query-builder/common/model/operator-unit.js +0 -42
- package/esm2015/query-builder/common/model/operator.js +0 -207
- package/esm2015/query-builder/common/model/structure.js +0 -2
- package/esm2015/query-builder/common/model/type-map.js +0 -27
- package/esm2015/query-builder/common/model/type.js +0 -6
- package/esm2015/query-builder/common/services/output-query.service.js +0 -114
- package/esm2015/query-builder/common/services/type-convertor.service.js +0 -44
- package/esm2015/query-builder/pepperi-addons-ngx-lib-query-builder.js +0 -9
- package/esm2015/query-builder/public-api.js +0 -8
- package/esm2015/query-builder/query-builder-item/query-builder-item.component.js +0 -103
- package/esm2015/query-builder/query-builder-section/query-builder-section.component.js +0 -64
- package/esm2015/query-builder/query-builder.component.js +0 -101
- package/esm2015/query-builder/query-builder.module.js +0 -43
- package/esm2015/query-builder/query-builder.service.js +0 -283
- package/esm2015/smart-filters/text-filter/text-filter.component.js +0 -79
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js +0 -1010
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.js.map +0 -1
- package/query-builder/common/model/filter.d.ts +0 -6
- package/query-builder/common/model/legacy.d.ts +0 -20
- package/query-builder/common/model/operator-unit.d.ts +0 -13
- package/query-builder/common/model/operator.d.ts +0 -21
- package/query-builder/common/model/structure.d.ts +0 -4
- package/query-builder/common/model/type-map.d.ts +0 -12
- package/query-builder/common/model/type.d.ts +0 -4
- package/query-builder/common/services/output-query.service.d.ts +0 -43
- package/query-builder/common/services/type-convertor.service.d.ts +0 -10
- package/query-builder/package.json +0 -14
- package/query-builder/pepperi-addons-ngx-lib-query-builder.d.ts +0 -8
- package/query-builder/pepperi-addons-ngx-lib-query-builder.metadata.json +0 -1
- package/query-builder/public-api.d.ts +0 -4
- package/query-builder/query-builder-item/query-builder-item.component.d.ts +0 -30
- package/query-builder/query-builder-section/query-builder-section.component.d.ts +0 -27
- package/query-builder/query-builder-section/query-builder-section.component.theme.scss +0 -6
- package/query-builder/query-builder.component.d.ts +0 -35
- package/query-builder/query-builder.module.d.ts +0 -2
- package/query-builder/query-builder.service.d.ts +0 -94
- package/smart-filters/text-filter/text-filter.component.d.ts +0 -17
|
@@ -665,21 +665,21 @@ export class PepCarouselComponent {
|
|
|
665
665
|
PepCarouselComponent.decorators = [
|
|
666
666
|
{ type: Component, args: [{
|
|
667
667
|
selector: 'pep-carousel',
|
|
668
|
-
template: `
|
|
669
|
-
<div class="carousel-content" #contentRef>
|
|
670
|
-
<ng-content></ng-content>
|
|
671
|
-
</div>
|
|
668
|
+
template: `
|
|
669
|
+
<div class="carousel-content" #contentRef>
|
|
670
|
+
<ng-content></ng-content>
|
|
671
|
+
</div>
|
|
672
672
|
`,
|
|
673
|
-
styles: [`
|
|
674
|
-
:host {
|
|
675
|
-
overflow: hidden;
|
|
676
|
-
display: block;
|
|
677
|
-
}
|
|
678
|
-
.carousel-content {
|
|
679
|
-
height: 100%;
|
|
680
|
-
overflow: auto;
|
|
681
|
-
white-space: nowrap;
|
|
682
|
-
}
|
|
673
|
+
styles: [`
|
|
674
|
+
:host {
|
|
675
|
+
overflow: hidden;
|
|
676
|
+
display: block;
|
|
677
|
+
}
|
|
678
|
+
.carousel-content {
|
|
679
|
+
height: 100%;
|
|
680
|
+
overflow: auto;
|
|
681
|
+
white-space: nowrap;
|
|
682
|
+
}
|
|
683
683
|
`]
|
|
684
684
|
},] }
|
|
685
685
|
];
|
|
@@ -711,4 +711,4 @@ PepCarouselComponent.propDecorators = {
|
|
|
711
711
|
onWheel: [{ type: HostListener, args: ['wheel', ['$event'],] }],
|
|
712
712
|
onWindowResize: [{ type: HostListener, args: ['window:resize',] }]
|
|
713
713
|
};
|
|
714
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBR04sWUFBWSxFQUNaLFNBQVMsRUFDVCxlQUFlLEVBR2YsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBdUJyRSxNQUFNLE9BQU8sb0JBQW9CO0lBZ043QixZQUNnQyxXQUF1QixFQUN4QixTQUFvQixFQUNyQixTQUFjO1FBRlosZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBak5wQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRVgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTVCOztXQUVHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQjs7V0FFRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FB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Ozs7Ozs7U0FVQzthQUVSOzs7WUF6Q0csVUFBVSx1QkEyUEwsTUFBTSxTQUFDLFVBQVU7WUF6UHRCLFNBQVMsdUJBMFBKLE1BQU0sU0FBQyxTQUFTOzRDQUNoQixNQUFNLFNBQUMsUUFBUTs7OzBCQW5JbkIsU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBRXhDLGVBQWUsU0FBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7NkJBRy9ELFdBQVcsU0FBQyxzQkFBc0I7NEJBc0JsQyxNQUFNOzJCQUVOLE1BQU07K0JBRU4sTUFBTTtnQ0FFTixNQUFNO29DQUVOLE1BQU07d0JBRU4sTUFBTTtzQkFFTixNQUFNOzhCQUtOLEtBQUssU0FBQyxpQkFBaUI7dUJBV3ZCLEtBQUssU0FBQyxVQUFVO3dCQVdoQixLQUFLLFNBQUMsV0FBVzt3QkFXakIsS0FBSyxTQUFDLFdBQVc7NEJBV2pCLEtBQUssU0FBQyxlQUFlOzJCQVFyQixLQUFLLFNBQUMsY0FBYzsyQkFRcEIsS0FBSyxTQUFDLGNBQWM7eUJBUXBCLEtBQUssU0FBQyxZQUFZOzJCQVFsQixLQUFLLFNBQUMsY0FBYztzQkF5U3BCLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7NkJBaUJoQyxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgSW5wdXQsXHJcbiAgICBPdXRwdXQsXHJcbiAgICBBZnRlclZpZXdJbml0LFxyXG4gICAgT25DaGFuZ2VzLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgVmlld0NoaWxkLFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcclxuICAgIFF1ZXJ5TGlzdCxcclxuICAgIEluamVjdCxcclxuICAgIEhvc3RCaW5kaW5nLFxyXG4gICAgSG9zdExpc3RlbmVyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL2Nhcm91c2VsLWl0ZW0uZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdwZXAtY2Fyb3VzZWwnLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2Fyb3VzZWwtY29udGVudFwiICNjb250ZW50UmVmPlxyXG4gICAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gICAgc3R5bGVzOiBbXHJcbiAgICAgICAgYFxyXG4gICAgICAgICAgICA6aG9zdCB7XHJcbiAgICAgICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLmNhcm91c2VsLWNvbnRlbnQge1xyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xyXG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XHJcbiAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgYCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBDYXJvdXNlbENvbXBvbmVudFxyXG4gICAgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcbiAgICBwcml2YXRlIF9pbmRleCA9IDA7XHJcblxyXG4gICAgcHJpdmF0ZSBfc2Nyb2xsYmFySGlkZGVuID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF94RGlzYWJsZWQgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF94V2hlZWxFbmFibGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfeURpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfZHJhZ0Rpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc25hcERpc2FibGVkID0gZmFsc2U7XHJcblxyXG4gICAgcHJpdmF0ZSBfc25hcE9mZnNldCA9IDA7XHJcblxyXG4gICAgcHJpdmF0ZSBfc25hcER1cmF0aW9uID0gNTAwO1xyXG5cclxuICAgIHByaXZhdGUgX2lzRHJhZ2dpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBwcml2YXRlIF9vbk1vdXNlTW92ZUxpc3RlbmVyOiAoKSA9PiBhbnk7XHJcblxyXG4gICAgcHJpdmF0ZSBfb25Nb3VzZVVwTGlzdGVuZXI6ICgpID0+IGFueTtcclxuXHJcbiAgICBwcml2YXRlIF9vbk1vdXNlRG93bkxpc3RlbmVyOiAoKSA9PiBhbnk7XHJcblxyXG4gICAgcHJpdmF0ZSBfb25TY3JvbGxMaXN0ZW5lcjogKCkgPT4gYW55O1xyXG5cclxuICAgIHByaXZhdGUgX29uRHJhZ1N0YXJ0TGlzdGVuZXI6ICgpID0+IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElzIHRoZSB1c2VyIGN1cnJlbnRseSBwcmVzc2luZyB0aGUgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBpc1ByZXNzZWQgPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElzIHRoZSB1c2VyIGN1cnJlbnRseSBzY3JvbGxpbmcgdGhlIGVsZW1lbnRcclxuICAgICAqL1xyXG4gICAgaXNTY3JvbGxpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBzY3JvbGxUaW1lcjogYW55OyAvLyB8IE5vZGVKUy5UaW1lciA9IC0xO1xyXG5cclxuICAgIHNjcm9sbFRvVGltZXI6IGFueTsgLy8gfCBOb2RlSlMuVGltZXIgPSAtMTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElzIHRoZSB1c2VyIGN1cnJlbnRseSBkcmFnZ2luZyB0aGUgZWxlbWVudFxyXG4gICAgICovXHJcbiAgICBnZXQgaXNEcmFnZ2luZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faXNEcmFnZ2luZztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB4IGNvb3JkaW5hdGVzIG9uIHRoZSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGRvd25YID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSB5IGNvb3JkaW5hdGVzIG9uIHRoZSBlbGVtZW50XHJcbiAgICAgKi9cclxuICAgIGRvd25ZID0gMDtcclxuXHJcbiAgICBkaXNwbGF5VHlwZTogc3RyaW5nIHwgbnVsbCA9ICdibG9jayc7XHJcblxyXG4gICAgZWxXaWR0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgZWxIZWlnaHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHBhcmVudE5vZGUgb2YgY2Fyb3VzZWwgRWxlbWVudFxyXG4gICAgICovXHJcbiAgICBwYXJlbnROb2RlOiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjYXJvdXNlbCBFbGVtZW50XHJcbiAgICAgKi9cclxuXHJcbiAgICBAVmlld0NoaWxkKCdjb250ZW50UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgX2NvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XHJcblxyXG4gICAgQENvbnRlbnRDaGlsZHJlbihQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcclxuICAgIF9jaGlsZHJlbjogUXVlcnlMaXN0PFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZT47XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5wb2ludGVyLWV2ZW50cycpIF9wb2ludGVyRXZlbnRzID0gJ2F1dG8nO1xyXG5cclxuICAgIHdyYXBwZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbDtcclxuXHJcbiAgICBzY3JvbGxiYXJXaWR0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgZ2V0IGN1cnJJbmRleCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXg7XHJcbiAgICB9XHJcbiAgICBzZXQgY3VyckluZGV4KHZhbHVlKSB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl9pbmRleCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pbmRleCA9IHZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmluZGV4Q2hhbmdlZC5lbWl0KHZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgaXNBbmltYXRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBwcmV2Q2hpbGRyZW5MZW5ndGggPSAwO1xyXG5cclxuICAgIGluZGV4Qm91bmQgPSAwO1xyXG5cclxuICAgIEBPdXRwdXQoKSBkc0luaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBpbmRleENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KCkgcmVhY2hlc0xlZnRCb3VuZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBAT3V0cHV0KCkgcmVhY2hlc1JpZ2h0Qm91bmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpIHNuYXBBbmltYXRpb25GaW5pc2hlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBkcmFnU3RhcnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgQE91dHB1dCgpIGRyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHRoZSBzY3JvbGxiYXIgaXMgaGlkZGVuXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgnc2Nyb2xsYmFySGlkZGVuJylcclxuICAgIGdldCBzY3JvbGxiYXJIaWRkZW4oKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Njcm9sbGJhckhpZGRlbjtcclxuICAgIH1cclxuICAgIHNldCBzY3JvbGxiYXJIaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9zY3JvbGxiYXJIaWRkZW4gPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IGRyYWdpbmcgYW5kIHNjcm9sbGluZyBpcyBiZSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ2Rpc2FibGVkJylcclxuICAgIGdldCBkaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBob3Jpem9udGFsbHkgZHJhZ2dpbmcgYW5kIHNjcm9sbGluZyBpcyBiZSBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ3hEaXNhYmxlZCcpXHJcbiAgICBnZXQgeERpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl94RGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBzZXQgeERpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5feERpc2FibGVkID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIHZlcnRpY2FsbHkgZHJhZ2dpbmcgYW5kIHNjcm9sbGluZyBldmVudHMgaXMgZGlzYWJsZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KCd5RGlzYWJsZWQnKVxyXG4gICAgZ2V0IHlEaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5feURpc2FibGVkO1xyXG4gICAgfVxyXG4gICAgc2V0IHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3lEaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogV2hldGhlciBzY3JvbGxpbmcgaG9yaXpvbnRhbGx5IHdpdGggbW91c2Ugd2hlZWwgaXMgZW5hYmxlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ3hXaGVlbEVuYWJsZWQnKVxyXG4gICAgZ2V0IHhXaGVlbEVuYWJsZWQoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3hXaGVlbEVuYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBzZXQgeFdoZWVsRW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3hXaGVlbEVuYWJsZWQgPSB2YWx1ZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoJ2RyYWdEaXNhYmxlZCcpXHJcbiAgICBnZXQgZHJhZ0Rpc2FibGVkKCkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9kcmFnRGlzYWJsZWQ7XHJcbiAgICB9XHJcbiAgICBzZXQgZHJhZ0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5fZHJhZ0Rpc2FibGVkID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCdzbmFwRGlzYWJsZWQnKVxyXG4gICAgZ2V0IHNuYXBEaXNhYmxlZCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc25hcERpc2FibGVkO1xyXG4gICAgfVxyXG4gICAgc2V0IHNuYXBEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3NuYXBEaXNhYmxlZCA9IHZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIEBJbnB1dCgnc25hcE9mZnNldCcpXHJcbiAgICBnZXQgc25hcE9mZnNldCgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc25hcE9mZnNldDtcclxuICAgIH1cclxuICAgIHNldCBzbmFwT2Zmc2V0KHZhbHVlOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLl9zbmFwT2Zmc2V0ID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgQElucHV0KCdzbmFwRHVyYXRpb24nKVxyXG4gICAgZ2V0IHNuYXBEdXJhdGlvbigpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fc25hcER1cmF0aW9uO1xyXG4gICAgfVxyXG4gICAgc2V0IHNuYXBEdXJhdGlvbih2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5fc25hcER1cmF0aW9uID0gdmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIEBJbmplY3QoUmVuZGVyZXIyKSBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgX2RvY3VtZW50OiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSBgJHt0aGlzLmdldFNjcm9sbGJhcldpZHRoKCl9cHhgO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgICAgIHRoaXMuc2V0U2Nyb2xsQmFyKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnhEaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkIHx8IHRoaXMuX3Njcm9sbGJhckhpZGRlbikge1xyXG4gICAgICAgICAgICB0aGlzLmRpc2FibGVTY3JvbGwoJ3gnKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNjcm9sbCgneCcpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMueURpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5kaXNhYmxlU2Nyb2xsKCd5Jyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbmFibGVTY3JvbGwoJ3knKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgICAgIC8vIGF1dG8gYXNzaWduIGNvbXB1dGVkIGNzc1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAnZHJhZy1zY3JvbGwnLFxyXG4gICAgICAgICAgICAndHJ1ZSdcclxuICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLmRpc3BsYXlUeXBlID1cclxuICAgICAgICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCdcclxuICAgICAgICAgICAgICAgID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxyXG4gICAgICAgICAgICAgICAgICAgIC5kaXNwbGF5XHJcbiAgICAgICAgICAgICAgICA6ICdibG9jayc7XHJcblxyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdkaXNwbGF5JyxcclxuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VHlwZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgJ3doaXRlU3BhY2UnLFxyXG4gICAgICAgICAgICAnbm9XcmFwJ1xyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIC8vIHN0b3JlIGVsZSB3aWR0aCBoZWlnaHQgZm9yIGxhdGVyIHVzZXJcclxuICAgICAgICB0aGlzLm1hcmtFbERpbWVuc2lvbigpO1xyXG5cclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAnd2lkdGgnLFxyXG4gICAgICAgICAgICB0aGlzLmVsV2lkdGhcclxuICAgICAgICApO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdoZWlnaHQnLFxyXG4gICAgICAgICAgICB0aGlzLmVsSGVpZ2h0XHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlcikge1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9vbk1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdtb3VzZWRvd24nLFxyXG4gICAgICAgICAgICB0aGlzLm9uTW91c2VEb3duSGFuZGxlci5iaW5kKHRoaXMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLl9vblNjcm9sbExpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICdzY3JvbGwnLFxyXG4gICAgICAgICAgICB0aGlzLm9uU2Nyb2xsSGFuZGxlci5iaW5kKHRoaXMpXHJcbiAgICAgICAgKTtcclxuICAgICAgICAvLyBwcmV2ZW50IEZpcmVmb3ggZnJvbSBkcmFnZ2luZyBpbWFnZXNcclxuICAgICAgICB0aGlzLl9vbkRyYWdTdGFydExpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICAgICAnZG9jdW1lbnQnLFxyXG4gICAgICAgICAgICAnZHJhZ3N0YXJ0JyxcclxuICAgICAgICAgICAgKGUpID0+IHtcclxuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgdGhpcy5jaGVja05hdlN0YXR1cygpO1xyXG4gICAgICAgIHRoaXMuZHNJbml0aWFsaXplZC5lbWl0KCk7XHJcbiAgICAgICAgdGhpcy5hZGp1c3RNYXJnaW5Ub0xhc3RDaGlsZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcclxuICAgICAgICAvLyBhdm9pZCBleHRyYSBjaGVja3NcclxuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoICE9PSB0aGlzLnByZXZDaGlsZHJlbkxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLm1hcmtFbERpbWVuc2lvbigpO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKCk7XHJcbiAgICAgICAgICAgIHRoaXMucHJldkNoaWxkcmVuTGVuZ3RoID0gdGhpcy5fY2hpbGRyZW4ubGVuZ3RoO1xyXG4gICAgICAgICAgICB0aGlzLmNoZWNrTmF2U3RhdHVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAnZHJhZy1zY3JvbGwnLFxyXG4gICAgICAgICAgICAnZmFsc2UnXHJcbiAgICAgICAgKTtcclxuICAgICAgICBpZiAodGhpcy5fb25Nb3VzZURvd25MaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5fb25Nb3VzZURvd25MaXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fb25TY3JvbGxMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLl9vblNjcm9sbExpc3RlbmVyID0gdGhpcy5fb25TY3JvbGxMaXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fb25EcmFnU3RhcnRMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLl9vbkRyYWdTdGFydExpc3RlbmVyID0gdGhpcy5fb25EcmFnU3RhcnRMaXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNlTW92ZUhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICB0aGlzLm9uTW91c2VNb3ZlKGV2ZW50KTtcclxuICAgIH1cclxuXHJcbiAgICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGlmICh0aGlzLmlzUHJlc3NlZCAmJiAhdGhpcy5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAvLyBXb3JrYXJvdW5kIGZvciBwcmV2ZW50IHNjcm9sbCBzdHVjayBpZiBicm93c2VyIGxvc3QgZm9jdXNcclxuICAgICAgICAgICAgLy8gTW91c2VFdmVudC5idXR0b25zIG5vdCBzdXBwb3J0IGJ5IFNhZmFyaVxyXG4gICAgICAgICAgICBpZiAoIWV2ZW50LmJ1dHRvbnMgJiYgIWV2ZW50LndoaWNoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5vbk1vdXNlVXBIYW5kbGVyKGV2ZW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5fcG9pbnRlckV2ZW50cyA9ICdub25lJztcclxuICAgICAgICAgICAgdGhpcy5fc2V0SXNEcmFnZ2luZyh0cnVlKTtcclxuXHJcbiAgICAgICAgICAgIC8vIERyYWcgWFxyXG4gICAgICAgICAgICBpZiAoIXRoaXMueERpc2FibGVkICYmICF0aGlzLmRyYWdEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpZW50WCA9IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRYO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPVxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC1cclxuICAgICAgICAgICAgICAgICAgICBjbGllbnRYICtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRvd25YO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kb3duWCA9IGNsaWVudFg7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIERyYWcgWVxyXG4gICAgICAgICAgICBpZiAoIXRoaXMueURpc2FibGVkICYmICF0aGlzLmRyYWdEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY2xpZW50WSA9IChldmVudCBhcyBNb3VzZUV2ZW50KS5jbGllbnRZO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCAtXHJcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50WSArXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3duWTtcclxuICAgICAgICAgICAgICAgIHRoaXMuZG93blkgPSBjbGllbnRZO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VEb3duSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGNvbnN0IGNhcm91c2VsSXRlbTogUGVwQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHwgbnVsbCA9IHRoaXMubG9jYXRlQ2Fyb3VzZWxJdGVtKFxyXG4gICAgICAgICAgICBldmVudC50YXJnZXQgYXMgRWxlbWVudFxyXG4gICAgICAgICk7XHJcbiAgICAgICAgaWYgKGNhcm91c2VsSXRlbSAmJiBjYXJvdXNlbEl0ZW0uZHJhZ0Rpc2FibGVkKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IGlzVG91Y2hFdmVudCA9IGV2ZW50LnR5cGUgPT09ICd0b3VjaHN0YXJ0JztcclxuXHJcbiAgICAgICAgdGhpcy5fc3RhcnRHbG9iYWxMaXN0ZW5pbmcoaXNUb3VjaEV2ZW50KTtcclxuICAgICAgICB0aGlzLmlzUHJlc3NlZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBldmVudCBhcyBNb3VzZUV2ZW50O1xyXG4gICAgICAgIHRoaXMuZG93blggPSBtb3VzZUV2ZW50LmNsaWVudFg7XHJcbiAgICAgICAgdGhpcy5kb3duWSA9IG1vdXNlRXZlbnQuY2xpZW50WTtcclxuXHJcbiAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVG9UaW1lciBhcyBudW1iZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2Nyb2xsSGFuZGxlcigpIHtcclxuICAgICAgICB0aGlzLmNoZWNrTmF2U3RhdHVzKCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmlzUHJlc3NlZCAmJiAhdGhpcy5pc0FuaW1hdGluZyAmJiAhdGhpcy5zbmFwRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGluZyA9IHRydWU7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVyIGFzIG51bWJlcik7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNTY3JvbGxpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRlQ3VycmVudEluZGV4KHRydWUpO1xyXG4gICAgICAgICAgICB9LCA1MDApO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9jYXRlQ3VycmVudEluZGV4KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG9uTW91c2VVcEhhbmRsZXIoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5pc1ByZXNzZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5pc1ByZXNzZWQgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5fcG9pbnRlckV2ZW50cyA9ICdhdXRvJztcclxuICAgICAgICAgICAgdGhpcy5fc2V0SXNEcmFnZ2luZyhmYWxzZSk7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5zbmFwRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRlQ3VycmVudEluZGV4KHRydWUpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGVDdXJyZW50SW5kZXgoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLl9zdG9wR2xvYmFsTGlzdGVuaW5nKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBOYXYgYnV0dG9uXHJcbiAgICAgKi9cclxuICAgIG1vdmVMZWZ0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmN1cnJJbmRleCAhPT0gMCB8fCB0aGlzLnNuYXBEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJJbmRleC0tO1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUb1RpbWVyIGFzIG51bWJlcik7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvQ2hpbGRyZW5Mb2NhdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zbmFwRHVyYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZVJpZ2h0KCkge1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMud3JhcHBlciB8fCB0aGlzLnBhcmVudE5vZGU7XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXIgPyBjb250YWluZXIuY2xpZW50V2lkdGggOiAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICF0aGlzLmlzU2Nyb2xsUmVhY2hlc1JpZ2h0RW5kKCkgJiZcclxuICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPFxyXG4gICAgICAgICAgICB0aGlzLm1heGltdW1JbmRleChjb250YWluZXJXaWR0aCwgdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpKVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLmN1cnJJbmRleCsrO1xyXG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUb1RpbWVyIGFzIG51bWJlcik7XHJcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvQ2hpbGRyZW5Mb2NhdGlvbigpLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5zbmFwRHVyYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbW92ZVRvKGluZGV4OiBudW1iZXIpIHtcclxuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLndyYXBwZXIgfHwgdGhpcy5wYXJlbnROb2RlO1xyXG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyID8gY29udGFpbmVyLmNsaWVudFdpZHRoIDogMDtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIGluZGV4ID49IDAgJiZcclxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMuY3VyckluZGV4ICYmXHJcbiAgICAgICAgICAgIHRoaXMuY3VyckluZGV4IDw9XHJcbiAgICAgICAgICAgIHRoaXMubWF4aW11bUluZGV4KGNvbnRhaW5lcldpZHRoLCB0aGlzLl9jaGlsZHJlbi50b0FycmF5KCkpXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID0gTWF0aC5taW4oXHJcbiAgICAgICAgICAgICAgICBpbmRleCxcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4aW11bUluZGV4KGNvbnRhaW5lcldpZHRoLCB0aGlzLl9jaGlsZHJlbi50b0FycmF5KCkpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRvVGltZXIgYXMgbnVtYmVyKTtcclxuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgIHRoaXMudG9DaGlsZHJlbkxvY2F0aW9uKCksXHJcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBEdXJhdGlvblxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGVja05hdlN0YXR1cygpIHtcclxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgY29uc3Qgb25seU9uZUl0ZW0gPSBCb29sZWFuKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA8PSAxKTtcclxuICAgICAgICAgICAgY29uc3QgY29udGFpbmVySXNMYXJnZXJUaGFuQ29udGVudCA9IEJvb2xlYW4oXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPD1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBpZiAob25seU9uZUl0ZW0gfHwgY29udGFpbmVySXNMYXJnZXJUaGFuQ29udGVudCkge1xyXG4gICAgICAgICAgICAgICAgLy8gb25seSBvbmUgZWxlbWVudFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFjaGVzTGVmdEJvdW5kLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNSaWdodEJvdW5kLmVtaXQodHJ1ZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc1Njcm9sbFJlYWNoZXNSaWdodEVuZCgpKSB7XHJcbiAgICAgICAgICAgICAgICAvLyByZWFjaGVkIHJpZ2h0IGVuZFxyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFjaGVzTGVmdEJvdW5kLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFjaGVzUmlnaHRCb3VuZC5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYgKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPT09IDAgJiZcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxXaWR0aCA+XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcclxuICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAvLyByZWFjaGVkIGxlZnQgZW5kXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNMZWZ0Qm91bmQuZW1pdCh0cnVlKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVhY2hlc1JpZ2h0Qm91bmQuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAvLyBpbiB0aGUgbWlkZGxlXHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNMZWZ0Qm91bmQuZW1pdChmYWxzZSk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNSaWdodEJvdW5kLmVtaXQoZmFsc2UpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgMCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxyXG4gICAgcHVibGljIG9uV2hlZWwoZXZlbnQ6IFdoZWVsRXZlbnQpIHtcclxuICAgICAgICBpZiAodGhpcy5feFdoZWVsRW5hYmxlZCkge1xyXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuX3NuYXBEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KGV2ZW50LmRlbHRhWSwgMCk7XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGVsdGFZIDwgMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUxlZnQoKTtcclxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuZGVsdGFZID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZVJpZ2h0KCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXHJcbiAgICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XHJcbiAgICAgICAgdGhpcy5yZWZyZXNoV3JhcHBlckRpbWVuc2lvbnMoKTtcclxuICAgICAgICB0aGlzLmNoZWNrTmF2U3RhdHVzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc2V0SXNEcmFnZ2luZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICh0aGlzLl9pc0RyYWdnaW5nID09PSB2YWx1ZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9pc0RyYWdnaW5nID0gdmFsdWU7XHJcbiAgICAgICAgdmFsdWUgPyB0aGlzLmRyYWdTdGFydC5lbWl0KCkgOiB0aGlzLmRyYWdFbmQuZW1pdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX3N0YXJ0R2xvYmFsTGlzdGVuaW5nKGlzVG91Y2hFdmVudDogYm9vbGVhbikge1xyXG4gICAgICAgIGlmICghdGhpcy5fb25Nb3VzZU1vdmVMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICBjb25zdCBldmVudE5hbWUgPSBpc1RvdWNoRXZlbnQgPyAndG91Y2htb3ZlJyA6ICdtb3VzZW1vdmUnO1xyXG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlTW92ZUxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxyXG4gICAgICAgICAgICAgICAgJ2RvY3VtZW50JyxcclxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcclxuICAgICAgICAgICAgICAgIHRoaXMub25Nb3VzZU1vdmVIYW5kbGVyLmJpbmQodGhpcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5fb25Nb3VzZVVwTGlzdGVuZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgZXZlbnROYW1lID0gaXNUb3VjaEV2ZW50ID8gJ3RvdWNoZW5kJyA6ICdtb3VzZXVwJztcclxuICAgICAgICAgICAgdGhpcy5fb25Nb3VzZVVwTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXHJcbiAgICAgICAgICAgICAgICAnZG9jdW1lbnQnLFxyXG4gICAgICAgICAgICAgICAgZXZlbnROYW1lLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5vbk1vdXNlVXBIYW5kbGVyLmJpbmQodGhpcylcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfc3RvcEdsb2JhbExpc3RlbmluZygpIHtcclxuICAgICAgICBpZiAodGhpcy5fb25Nb3VzZU1vdmVMaXN0ZW5lcikge1xyXG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlTW92ZUxpc3RlbmVyID0gdGhpcy5fb25Nb3VzZU1vdmVMaXN0ZW5lcigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuX29uTW91c2VVcExpc3RlbmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX29uTW91c2VVcExpc3RlbmVyID0gdGhpcy5fb25Nb3VzZVVwTGlzdGVuZXIoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkaXNhYmxlU2Nyb2xsKGF4aXM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIGBvdmVyZmxvdy0ke2F4aXN9YCxcclxuICAgICAgICAgICAgJ2hpZGRlbidcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZW5hYmxlU2Nyb2xsKGF4aXM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgIGBvdmVyZmxvdy0ke2F4aXN9YCxcclxuICAgICAgICAgICAgJ2F1dG8nXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGhpZGVTY3JvbGxiYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSAhPT0gJ25vbmUnICYmXHJcbiAgICAgICAgICAgICF0aGlzLndyYXBwZXJcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlID0gdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcblxyXG4gICAgICAgICAgICAvLyBjcmVhdGUgY29udGFpbmVyIGVsZW1lbnRcclxuICAgICAgICAgICAgdGhpcy53cmFwcGVyID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMud3JhcHBlciwgJ2Nhcm91c2VsLXdyYXBwZXInKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMud3JhcHBlciwgJ2NsYXNzJywgJ2Nhcm91c2VsLXdyYXBwZXInKTtcclxuICAgICAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy53cmFwcGVyLCAnY2Fyb3VzZWwtY29udGFpbmVyJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlZnJlc2hXcmFwcGVyRGltZW5zaW9ucygpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICd3aWR0aCcsXHJcbiAgICAgICAgICAgICAgICBgY2FsYygxMDAlICsgJHt0aGlzLnNjcm9sbGJhcldpZHRofSlgXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXHJcbiAgICAgICAgICAgICAgICBgY2FsYygxMDAlICsgJHt0aGlzLnNjcm9sbGJhcldpZHRofSlgXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgY29udGFpbmVyIGVsZW1lbnQgdG8gY29tcG9uZW50IGVsZW1lbnQuXHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAvLyBBcHBlbmQgY29udGVudCBlbGVtZW50IHRvIGNvbnRhaW5lciBlbGVtZW50LlxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5hcHBlbmRDaGlsZChcclxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlcixcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudFxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGp1c3RNYXJnaW5Ub0xhc3RDaGlsZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNob3dTY3JvbGxiYXIoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlcikge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICd3aWR0aCcsXHJcbiAgICAgICAgICAgICAgICAnMTAwJSdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcclxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5zdHlsZS5oZWlnaHRcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKHRoaXMucGFyZW50Tm9kZSAhPT0gbnVsbCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMud3JhcHBlcik7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLndyYXBwZXIgPSBudWxsO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5hZGp1c3RNYXJnaW5Ub0xhc3RDaGlsZCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoZWNrU2Nyb2xsYmFyKCkge1xyXG4gICAgICAgIGlmIChcclxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoIDw9XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICdoZWlnaHQnLFxyXG4gICAgICAgICAgICAgICAgJzEwMCUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcclxuICAgICAgICAgICAgICAgIGBjYWxjKDEwMCUgKyAke3RoaXMuc2Nyb2xsYmFyV2lkdGh9KWBcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IDw9XHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRIZWlnaHRcclxuICAgICAgICApIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnd2lkdGgnLFxyXG4gICAgICAgICAgICAgICAgJzEwMCUnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnd2lkdGgnLFxyXG4gICAgICAgICAgICAgICAgYGNhbGMoMTAwJSArICR7dGhpcy5zY3JvbGxiYXJXaWR0aH0pYFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldFNjcm9sbEJhcigpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5zY3JvbGxiYXJIaWRkZW4pIHtcclxuICAgICAgICAgICAgdGhpcy5oaWRlU2Nyb2xsYmFyKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zaG93U2Nyb2xsYmFyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2Nyb2xsYmFyV2lkdGgoKTogbnVtYmVyIHtcclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBCcm93c2VyIFNjcm9sbGJhciBXaWR0aHMgKDIwMTYpXHJcbiAgICAgICAgICogT1NYIChDaHJvbWUsIFNhZmFyaSwgRmlyZWZveCkgLSAxNXB4XHJcbiAgICAgICAgICogV2luZG93cyBYUCAoSUU3LCBDaHJvbWUsIEZpcmVmb3gpIC0gMTdweFxyXG4gICAgICAgICAqIFdpbmRvd3MgNyAoSUUxMCwgSUUxMSwgQ2hyb21lLCBGaXJlZm94KSAtIDE3cHhcclxuICAgICAgICAgKiBXaW5kb3dzIDguMSAoSUUxMSwgQ2hyb21lLCBGaXJlZm94KSAtIDE3cHhcclxuICAgICAgICAgKiBXaW5kb3dzIDEwIChJRTExLCBDaHJvbWUsIEZpcmVmb3gpIC0gMTdweFxyXG4gICAgICAgICAqIFdpbmRvd3MgMTAgKEVkZ2UgMTIvMTMpIC0gMTJweFxyXG4gICAgICAgICAqL1xyXG4gICAgICAgIGNvbnN0IG91dGVyID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUob3V0ZXIsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKG91dGVyLCAnd2lkdGgnLCAnMTAwcHgnKTtcclxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShvdXRlciwgJ21zT3ZlcmZsb3dTdHlsZScsICdzY3JvbGxiYXInKTsgLy8gbmVlZGVkIGZvciBXaW5KUyBhcHBzXHJcbiAgICAgICAgLy8gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcik7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgb3V0ZXIpO1xyXG4gICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX3JlbmRlcmVyLnNlbGVjdFJvb3RFbGVtZW50KCdib2R5JyksIG91dGVyKTtcclxuICAgICAgICBjb25zdCB3aWR0aE5vU2Nyb2xsID0gb3V0ZXIub2Zmc2V0V2lkdGg7XHJcbiAgICAgICAgLy8gZm9yY2Ugc2Nyb2xsYmFyc1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKG91dGVyLCAnb3ZlcmZsb3cnLCAnc2Nyb2xsJyk7XHJcblxyXG4gICAgICAgIC8vIGFkZCBpbm5lcmRpdlxyXG4gICAgICAgIGNvbnN0IGlubmVyID0gdGhpcy5fcmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoaW5uZXIsICd3aWR0aCcsICcxMDAlJyk7XHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQob3V0ZXIsIGlubmVyKTtcclxuXHJcbiAgICAgICAgY29uc3Qgd2lkdGhXaXRoU2Nyb2xsID0gaW5uZXIub2Zmc2V0V2lkdGg7XHJcblxyXG4gICAgICAgIC8vIHJlbW92ZSBkaXZzXHJcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgb3V0ZXIpO1xyXG5cclxuICAgICAgICAvKipcclxuICAgICAgICAgKiBTY3JvbGxiYXIgd2lkdGggd2lsbCBiZSAwIG9uIE1hYyBPUyB3aXRoIHRoZVxyXG4gICAgICAgICAqIGRlZmF1bHQgXCJPbmx5IHNob3cgc2Nyb2xsYmFycyB3aGVuIHNjcm9sbGluZ1wiIHNldHRpbmcgKFlvc2VtaXRlIGFuZCB1cCkuXHJcbiAgICAgICAgICogc2V0dGluZyBkZWZhdWx0IHdpZHRoIHRvIDIwO1xyXG4gICAgICAgICAqL1xyXG4gICAgICAgIHJldHVybiB3aWR0aE5vU2Nyb2xsIC0gd2lkdGhXaXRoU2Nyb2xsIHx8IDIwO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVmcmVzaFdyYXBwZXJEaW1lbnNpb25zKCkge1xyXG4gICAgICAgIGlmICh0aGlzLndyYXBwZXIpIHtcclxuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgfHxcclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLndyYXBwZXIsICd3aWR0aCcsICcxMDAlJyk7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxyXG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyLFxyXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQgPT09IDAgPyAnYXV0bycgOiBoZWlnaHQgKyAncHgnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qXHJcbiAgICAgKiBUaGUgYmVsb3cgc29sdXRpb24gaXMgaGVhdmlseSBpbnNwaXJlZCBmcm9tXHJcbiAgICAgKiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9hbmRqb3NoLzY3NjQ5MzlcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBzY3JvbGxUbyhlbGVtZW50OiBFbGVtZW50LCB0bzogbnVtYmVyLCBkdXJhdGlvbjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWU7XHJcbiAgICAgICAgY29uc3Qgc3RhcnQgPSBlbGVtZW50LnNjcm9sbExlZnQsXHJcbiAgICAgICAgICAgIGNoYW5nZSA9IHRvIC0gc3RhcnQgLSB0aGlzLnNuYXBPZmZzZXQsXHJcbiAgICAgICAgICAgIGluY3JlbWVudCA9IDIwO1xyXG4gICAgICAgIGxldCBjdXJyZW50VGltZSA9IDA7XHJcblxyXG4gICAgICAgIC8vIHQgPSBjdXJyZW50IHRpbWVcclxuICAgICAgICAvLyBiID0gc3RhcnQgdmFsdWVcclxuICAgICAgICAvLyBjID0gY2hhbmdlIGluIHZhbHVlXHJcbiAgICAgICAgLy8gZCA9IGR1cmF0aW9uXHJcbiAgICAgICAgY29uc3QgZWFzZUluT3V0UXVhZCA9ICh0OiBudW1iZXIsIGI6IG51bWJlciwgYzogbnVtYmVyLCBkOiBudW1iZXIpID0+IHtcclxuICAgICAgICAgICAgdCAvPSBkIC8gMjtcclxuICAgICAgICAgICAgaWYgKHQgPCAxKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gKGMgLyAyKSAqIHQgKiB0ICsgYjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0LS07XHJcbiAgICAgICAgICAgIHJldHVybiAoLWMgLyAyKSAqICh0ICogKHQgLSAyKSAtIDEpICsgYjtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBjb25zdCBhbmltYXRlU2Nyb2xsID0gKCkgPT4ge1xyXG4gICAgICAgICAgICBjdXJyZW50VGltZSArPSBpbmNyZW1lbnQ7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsTGVmdCA9IGVhc2VJbk91dFF1YWQoXHJcbiAgICAgICAgICAgICAgICBjdXJyZW50VGltZSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0LFxyXG4gICAgICAgICAgICAgICAgY2hhbmdlLFxyXG4gICAgICAgICAgICAgICAgZHVyYXRpb25cclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG9UaW1lciA9IHNldFRpbWVvdXQoYW5pbWF0ZVNjcm9sbCwgaW5jcmVtZW50KTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIC8vIHJ1biBvbmUgbW9yZSBmcmFtZSB0byBtYWtlIHN1cmUgdGhlIGFuaW1hdGlvbiBpcyBmdWxseSBmaW5pc2hlZFxyXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc25hcEFuaW1hdGlvbkZpbmlzaGVkLmVtaXQodGhpcy5jdXJySW5kZXgpO1xyXG4gICAgICAgICAgICAgICAgfSwgaW5jcmVtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgYW5pbWF0ZVNjcm9sbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgbG9jYXRlQ3VycmVudEluZGV4KHNuYXA/OiBib29sZWFuKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Q2hpbGRXaWR0aChcclxuICAgICAgICAgICAgKFxyXG4gICAgICAgICAgICAgICAgY3VycmVudENoaWxkV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBuZXh0Q2hpbGRyZW5XaWR0aCxcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBpZHg6IG51bWJlcixcclxuICAgICAgICAgICAgICAgIHN0b3BcclxuICAgICAgICAgICAgKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPj1cclxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoICYmXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPD1cclxuICAgICAgICAgICAgICAgICAgICBuZXh0Q2hpbGRyZW5XaWR0aFxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0Q2hpbGRyZW5XaWR0aCAtXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID5cclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudENoaWxkV2lkdGggLyAyICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLmlzU2Nyb2xsUmVhY2hlc1JpZ2h0RW5kKClcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcm9sbCBiYWNrIHNjcm9sbGluZ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID0gaWR4O1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbmFwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc25hcER1cmF0aW9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgIT09IDBcclxuICAgICAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBzY3JvbGxpbmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQW5pbWF0aW5nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmN1cnJJbmRleCA9IGlkeCArIDE7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNuYXApIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsVG8oXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuV2lkdGggKyBjdXJyZW50Q2hpbGRXaWR0aCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNuYXBEdXJhdGlvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzdG9wKCk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlkeCArIDEgPT09IHRoaXMuX2NoaWxkcmVuLmxlbmd0aCAtIDEpIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyByZWFjaGVzIGxhc3QgaW5kZXhcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPSBpZHggKyAxO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICBzdG9wKCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3VycmVudENoaWxkV2lkdGgoXHJcbiAgICAgICAgY2I6IChcclxuICAgICAgICAgICAgY3VycmVudENsaWxkV2lkdGg6IG51bWJlcixcclxuICAgICAgICAgICAgbmV4dENoaWxkcmVuV2lkdGg6IG51bWJlcixcclxuICAgICAgICAgICAgY2hpbGRyZW5XaWR0aDogbnVtYmVyLFxyXG4gICAgICAgICAgICBpbmRleDogbnVtYmVyLFxyXG4gICAgICAgICAgICBicmVha0Z1bmM6ICgpID0+IHZvaWRcclxuICAgICAgICApID0+IHZvaWRcclxuICAgICkge1xyXG4gICAgICAgIGxldCBjaGlsZHJlbldpZHRoID0gMDtcclxuICAgICAgICBsZXQgc2hvdWxkQnJlYWsgPSBmYWxzZTtcclxuICAgICAgICBjb25zdCBicmVha0Z1bmMgPSBmdW5jdGlvbiAoKSB7XHJcbiAgICAgICAgICAgIHNob3VsZEJyZWFrID0gdHJ1ZTtcclxuICAgICAgICB9O1xyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyID0gdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpO1xyXG5cclxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuQXJyLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGlmIChpID09PSBjaGlsZHJlbkFyci5sZW5ndGggLSAxKSB7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBpZiAoc2hvdWxkQnJlYWspIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBjb25zdCBuZXh0Q2hpbGRyZW5XaWR0aCA9XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoICtcclxuICAgICAgICAgICAgICAgIGNoaWxkcmVuQXJyW2kgKyAxXS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q2xpbGRXaWR0aCA9XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbkFycltpXS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgICAgICBjYihcclxuICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlsZFdpZHRoLFxyXG4gICAgICAgICAgICAgICAgbmV4dENoaWxkcmVuV2lkdGgsXHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoLFxyXG4gICAgICAgICAgICAgICAgaSxcclxuICAgICAgICAgICAgICAgIGJyZWFrRnVuY1xyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY2hpbGRyZW5XaWR0aCArPSBjdXJyZW50Q2xpbGRXaWR0aDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSB0b0NoaWxkcmVuTG9jYXRpb24oKTogbnVtYmVyIHtcclxuICAgICAgICBsZXQgdG8gPSAwO1xyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyID0gdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5jdXJySW5kZXg7IGkrKykge1xyXG4gICAgICAgICAgICB0byArPSBjaGlsZHJlbkFycltpXS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdG87XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBsb2NhdGVDYXJvdXNlbEl0ZW0oXHJcbiAgICAgICAgZWxlbWVudDogRWxlbWVudFxyXG4gICAgKTogUGVwQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGl0ZW06IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xyXG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyID0gdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2hpbGRyZW5BcnIubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT09IGNoaWxkcmVuQXJyW2ldLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIGl0ZW0gPSBjaGlsZHJlbkFycltpXTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1hcmtFbERpbWVuc2lvbigpIHtcclxuICAgICAgICBpZiAodGhpcy53cmFwcGVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZWxXaWR0aCA9IHRoaXMud3JhcHBlci5zdHlsZS53aWR0aDtcclxuICAgICAgICAgICAgdGhpcy5lbEhlaWdodCA9IHRoaXMud3JhcHBlci5zdHlsZS5oZWlnaHQ7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5lbFdpZHRoID1cclxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCB8fFxyXG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgJ3B4JztcclxuICAgICAgICAgICAgdGhpcy5lbEhlaWdodCA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0IHx8XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgJ3B4JztcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy53cmFwcGVyIHx8IHRoaXMucGFyZW50Tm9kZTtcclxuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lciA/IGNvbnRhaW5lci5jbGllbnRXaWR0aCA6IDA7XHJcbiAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgICAgdGhpcy5pbmRleEJvdW5kID0gdGhpcy5tYXhpbXVtSW5kZXgoXHJcbiAgICAgICAgICAgICAgICBjb250YWluZXJXaWR0aCxcclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoaWxkcmVuLnRvQXJyYXkoKVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG1heGltdW1JbmRleChcclxuICAgICAgICBjb250YWluZXJXaWR0aDogbnVtYmVyLFxyXG4gICAgICAgIGNoaWxkcmVuRWxlbWVudHM6IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZVtdXHJcbiAgICApOiBudW1iZXIge1xyXG4gICAgICAgIGxldCBjb3VudCA9IDA7XHJcbiAgICAgICAgbGV0IGNoaWxkcmVuV2lkdGggPSAwO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDw9IGNoaWxkcmVuRWxlbWVudHMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICAgICAgLy8gbGFzdCBOIGVsZW1lbnRcclxuICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxJdGVtRGlyZWN0aXZlOiBQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgPVxyXG4gICAgICAgICAgICAgICAgY2hpbGRyZW5FbGVtZW50c1tjaGlsZHJlbkVsZW1lbnRzLmxlbmd0aCAtIDEgLSBpXTtcclxuICAgICAgICAgICAgaWYgKCFjYXJvdXNlbEl0ZW1EaXJlY3RpdmUpIHtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbmF0aXZlRWxlbWVudCA9XHJcbiAgICAgICAgICAgICAgICAgICAgY2Fyb3VzZWxJdGVtRGlyZWN0aXZlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgICAgICAgICBsZXQgaXRlbVdpZHRoID0gbmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcclxuICAgICAgICAgICAgICAgIGlmIChpdGVtV2lkdGggPT09IDAgJiYgbmF0aXZlRWxlbWVudC5maXJzdEVsZW1lbnRDaGlsZCkge1xyXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1XaWR0aCA9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhcm91c2VsSXRlbURpcmVjdGl2ZS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlyc3RFbGVtZW50Q2hpbGQuY2xpZW50V2lkdGg7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoICs9IGl0ZW1XaWR0aDtcclxuICAgICAgICAgICAgICAgIGlmIChjaGlsZHJlbldpZHRoIDwgY29udGFpbmVyV2lkdGgpIHtcclxuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gY2hpbGRyZW5FbGVtZW50cy5sZW5ndGggLSBjb3VudDtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGlzU2Nyb2xsUmVhY2hlc1JpZ2h0RW5kKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbExlZnRQb3MgPVxyXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCArXHJcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgICByZXR1cm4gc2Nyb2xsTGVmdFBvcyA+PSB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBhZGRzIGEgbWFyZ2luIHJpZ2h0IHN0eWxlIHRvIHRoZSBsYXN0IGNoaWxkIGVsZW1lbnQgd2hpY2ggd2lsbCByZXNvbHZlIHRoZSBpc3N1ZVxyXG4gICAgICogb2YgbGFzdCBpdGVtIGdldHMgY3V0b2ZmLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGFkanVzdE1hcmdpblRvTGFzdENoaWxkKCk6IHZvaWQge1xyXG4gICAgICAgIC8vIGlmICh0aGlzLl9jaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwICYmIHRoaXMuaGlkZVNjcm9sbGJhcikge1xyXG4gICAgICAgIC8vICAgICBjb25zdCBjaGlsZHJlbkFyciA9IHRoaXMuX2NoaWxkcmVuLnRvQXJyYXkoKTtcclxuICAgICAgICAvLyAgICAgY29uc3QgbGFzdEl0ZW0gPSBjaGlsZHJlbkFycltjaGlsZHJlbkFyci5sZW5ndGggLSAxXS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG4gICAgICAgIC8vICAgICBpZiAodGhpcy53cmFwcGVyICYmIGNoaWxkcmVuQXJyLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAvLyAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKGxhc3RJdGVtLCAnbWFyZ2luLXJpZ2h0JywgdGhpcy5zY3JvbGxiYXJXaWR0aCk7XHJcbiAgICAgICAgLy8gICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShsYXN0SXRlbSwgJ21hcmdpbi1yaWdodCcsIDApO1xyXG4gICAgICAgIC8vICAgICB9XHJcbiAgICAgICAgLy8gfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
714
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jYXJvdXNlbC9jYXJvdXNlbC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBR04sWUFBWSxFQUNaLFNBQVMsRUFDVCxlQUFlLEVBR2YsTUFBTSxFQUNOLFdBQVcsRUFDWCxZQUFZLEdBQ2YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTNDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBdUJyRSxNQUFNLE9BQU8sb0JBQW9CO0lBZ043QixZQUNnQyxXQUF1QixFQUN4QixTQUFvQixFQUNyQixTQUFjO1FBRlosZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUNyQixjQUFTLEdBQVQsU0FBUyxDQUFLO1FBak5wQyxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRVgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBRW5CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRXRCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRWhCLGtCQUFhLEdBQUcsR0FBRyxDQUFDO1FBRXBCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTVCOztXQUVHO1FBQ0gsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUVsQjs7V0FFRztRQUNILGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FB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Ozs7Ozs7U0FVQzthQUVSOzs7WUF6Q0csVUFBVSx1QkEyUEwsTUFBTSxTQUFDLFVBQVU7WUF6UHRCLFNBQVMsdUJBMFBKLE1BQU0sU0FBQyxTQUFTOzRDQUNoQixNQUFNLFNBQUMsUUFBUTs7OzBCQW5JbkIsU0FBUyxTQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7d0JBRXhDLGVBQWUsU0FBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7NkJBRy9ELFdBQVcsU0FBQyxzQkFBc0I7NEJBc0JsQyxNQUFNOzJCQUVOLE1BQU07K0JBRU4sTUFBTTtnQ0FFTixNQUFNO29DQUVOLE1BQU07d0JBRU4sTUFBTTtzQkFFTixNQUFNOzhCQUtOLEtBQUssU0FBQyxpQkFBaUI7dUJBV3ZCLEtBQUssU0FBQyxVQUFVO3dCQVdoQixLQUFLLFNBQUMsV0FBVzt3QkFXakIsS0FBSyxTQUFDLFdBQVc7NEJBV2pCLEtBQUssU0FBQyxlQUFlOzJCQVFyQixLQUFLLFNBQUMsY0FBYzsyQkFRcEIsS0FBSyxTQUFDLGNBQWM7eUJBUXBCLEtBQUssU0FBQyxZQUFZOzJCQVFsQixLQUFLLFNBQUMsY0FBYztzQkF5U3BCLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7NkJBaUJoQyxZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRWxlbWVudFJlZixcbiAgICBDb21wb25lbnQsXG4gICAgUmVuZGVyZXIyLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIFZpZXdDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgICBRdWVyeUxpc3QsXG4gICAgSW5qZWN0LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEhvc3RMaXN0ZW5lcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vY2Fyb3VzZWwtaXRlbS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1jYXJvdXNlbCcsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcm91c2VsLWNvbnRlbnRcIiAjY29udGVudFJlZj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY2Fyb3VzZWwtY29udGVudCB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgICAgICB9XG4gICAgICAgIGAsXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgUGVwQ2Fyb3VzZWxDb21wb25lbnRcbiAgICBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBBZnRlclZpZXdDaGVja2VkIHtcbiAgICBwcml2YXRlIF9pbmRleCA9IDA7XG5cbiAgICBwcml2YXRlIF9zY3JvbGxiYXJIaWRkZW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX2Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF94RGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3hXaGVlbEVuYWJsZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3lEaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfZHJhZ0Rpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIF9zbmFwRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgX3NuYXBPZmZzZXQgPSAwO1xuXG4gICAgcHJpdmF0ZSBfc25hcER1cmF0aW9uID0gNTAwO1xuXG4gICAgcHJpdmF0ZSBfaXNEcmFnZ2luZyA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBfb25Nb3VzZU1vdmVMaXN0ZW5lcjogKCkgPT4gYW55O1xuXG4gICAgcHJpdmF0ZSBfb25Nb3VzZVVwTGlzdGVuZXI6ICgpID0+IGFueTtcblxuICAgIHByaXZhdGUgX29uTW91c2VEb3duTGlzdGVuZXI6ICgpID0+IGFueTtcblxuICAgIHByaXZhdGUgX29uU2Nyb2xsTGlzdGVuZXI6ICgpID0+IGFueTtcblxuICAgIHByaXZhdGUgX29uRHJhZ1N0YXJ0TGlzdGVuZXI6ICgpID0+IGFueTtcblxuICAgIC8qKlxuICAgICAqIElzIHRoZSB1c2VyIGN1cnJlbnRseSBwcmVzc2luZyB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGlzUHJlc3NlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogSXMgdGhlIHVzZXIgY3VycmVudGx5IHNjcm9sbGluZyB0aGUgZWxlbWVudFxuICAgICAqL1xuICAgIGlzU2Nyb2xsaW5nID0gZmFsc2U7XG5cbiAgICBzY3JvbGxUaW1lcjogYW55OyAvLyB8IE5vZGVKUy5UaW1lciA9IC0xO1xuXG4gICAgc2Nyb2xsVG9UaW1lcjogYW55OyAvLyB8IE5vZGVKUy5UaW1lciA9IC0xO1xuXG4gICAgLyoqXG4gICAgICogSXMgdGhlIHVzZXIgY3VycmVudGx5IGRyYWdnaW5nIHRoZSBlbGVtZW50XG4gICAgICovXG4gICAgZ2V0IGlzRHJhZ2dpbmcoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RyYWdnaW5nO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSB4IGNvb3JkaW5hdGVzIG9uIHRoZSBlbGVtZW50XG4gICAgICovXG4gICAgZG93blggPSAwO1xuXG4gICAgLyoqXG4gICAgICogVGhlIHkgY29vcmRpbmF0ZXMgb24gdGhlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBkb3duWSA9IDA7XG5cbiAgICBkaXNwbGF5VHlwZTogc3RyaW5nIHwgbnVsbCA9ICdibG9jayc7XG5cbiAgICBlbFdpZHRoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGVsSGVpZ2h0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBwYXJlbnROb2RlIG9mIGNhcm91c2VsIEVsZW1lbnRcbiAgICAgKi9cbiAgICBwYXJlbnROb2RlOiBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIFRoZSBjYXJvdXNlbCBFbGVtZW50XG4gICAgICovXG5cbiAgICBAVmlld0NoaWxkKCdjb250ZW50UmVmJywgeyBzdGF0aWM6IHRydWUgfSkgX2NvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIF9jaGlsZHJlbjogUXVlcnlMaXN0PFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZT47XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXItZXZlbnRzJykgX3BvaW50ZXJFdmVudHMgPSAnYXV0byc7XG5cbiAgICB3cmFwcGVyOiBIVE1MRGl2RWxlbWVudCB8IG51bGw7XG5cbiAgICBzY3JvbGxiYXJXaWR0aDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgICBnZXQgY3VyckluZGV4KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5kZXg7XG4gICAgfVxuICAgIHNldCBjdXJySW5kZXgodmFsdWUpIHtcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLl9pbmRleCkge1xuICAgICAgICAgICAgdGhpcy5faW5kZXggPSB2YWx1ZTtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhDaGFuZ2VkLmVtaXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaXNBbmltYXRpbmcgPSBmYWxzZTtcblxuICAgIHByZXZDaGlsZHJlbkxlbmd0aCA9IDA7XG5cbiAgICBpbmRleEJvdW5kID0gMDtcblxuICAgIEBPdXRwdXQoKSBkc0luaXRpYWxpemVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGluZGV4Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgQE91dHB1dCgpIHJlYWNoZXNMZWZ0Qm91bmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCkgcmVhY2hlc1JpZ2h0Qm91bmQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAT3V0cHV0KCkgc25hcEFuaW1hdGlvbkZpbmlzaGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgICBAT3V0cHV0KCkgZHJhZ1N0YXJ0ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgQE91dHB1dCgpIGRyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBzY3JvbGxiYXIgaXMgaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KCdzY3JvbGxiYXJIaWRkZW4nKVxuICAgIGdldCBzY3JvbGxiYXJIaWRkZW4oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zY3JvbGxiYXJIaWRkZW47XG4gICAgfVxuICAgIHNldCBzY3JvbGxiYXJIaWRkZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fc2Nyb2xsYmFySGlkZGVuID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBob3Jpem9udGFsbHkgYW5kIHZlcnRpY2FsbHkgZHJhZ2luZyBhbmQgc2Nyb2xsaW5nIGlzIGJlIGRpc2FibGVkXG4gICAgICovXG4gICAgQElucHV0KCdkaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgaG9yaXpvbnRhbGx5IGRyYWdnaW5nIGFuZCBzY3JvbGxpbmcgaXMgYmUgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3hEaXNhYmxlZCcpXG4gICAgZ2V0IHhEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3hEaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IHhEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl94RGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHZlcnRpY2FsbHkgZHJhZ2dpbmcgYW5kIHNjcm9sbGluZyBldmVudHMgaXMgZGlzYWJsZWRcbiAgICAgKi9cbiAgICBASW5wdXQoJ3lEaXNhYmxlZCcpXG4gICAgZ2V0IHlEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3lEaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IHlEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl95RGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHNjcm9sbGluZyBob3Jpem9udGFsbHkgd2l0aCBtb3VzZSB3aGVlbCBpcyBlbmFibGVkXG4gICAgICovXG4gICAgQElucHV0KCd4V2hlZWxFbmFibGVkJylcbiAgICBnZXQgeFdoZWVsRW5hYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3hXaGVlbEVuYWJsZWQ7XG4gICAgfVxuICAgIHNldCB4V2hlZWxFbmFibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3hXaGVlbEVuYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2RyYWdEaXNhYmxlZCcpXG4gICAgZ2V0IGRyYWdEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RyYWdEaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IGRyYWdEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9kcmFnRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ3NuYXBEaXNhYmxlZCcpXG4gICAgZ2V0IHNuYXBEaXNhYmxlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NuYXBEaXNhYmxlZDtcbiAgICB9XG4gICAgc2V0IHNuYXBEaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zbmFwRGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ3NuYXBPZmZzZXQnKVxuICAgIGdldCBzbmFwT2Zmc2V0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc25hcE9mZnNldDtcbiAgICB9XG4gICAgc2V0IHNuYXBPZmZzZXQodmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9zbmFwT2Zmc2V0ID0gdmFsdWU7XG4gICAgfVxuXG4gICAgQElucHV0KCdzbmFwRHVyYXRpb24nKVxuICAgIGdldCBzbmFwRHVyYXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbmFwRHVyYXRpb247XG4gICAgfVxuICAgIHNldCBzbmFwRHVyYXRpb24odmFsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9zbmFwRHVyYXRpb24gPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChFbGVtZW50UmVmKSBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KFJlbmRlcmVyMikgcHJpdmF0ZSBfcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ6IGFueVxuICAgICkge1xuICAgICAgICB0aGlzLnNjcm9sbGJhcldpZHRoID0gYCR7dGhpcy5nZXRTY3JvbGxiYXJXaWR0aCgpfXB4YDtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICAgICAgdGhpcy5zZXRTY3JvbGxCYXIoKTtcblxuICAgICAgICBpZiAodGhpcy54RGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLl9zY3JvbGxiYXJIaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuZGlzYWJsZVNjcm9sbCgneCcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVTY3JvbGwoJ3gnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnlEaXNhYmxlZCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmRpc2FibGVTY3JvbGwoJ3knKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlU2Nyb2xsKCd5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vIGF1dG8gYXNzaWduIGNvbXB1dGVkIGNzc1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZHJhZy1zY3JvbGwnLFxuICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5VHlwZSA9XG4gICAgICAgICAgICB0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICAgICAgICAgID8gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAuZGlzcGxheVxuICAgICAgICAgICAgICAgIDogJ2Jsb2NrJztcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICdkaXNwbGF5JyxcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVR5cGVcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnd2hpdGVTcGFjZScsXG4gICAgICAgICAgICAnbm9XcmFwJ1xuICAgICAgICApO1xuXG4gICAgICAgIC8vIHN0b3JlIGVsZSB3aWR0aCBoZWlnaHQgZm9yIGxhdGVyIHVzZXJcbiAgICAgICAgdGhpcy5tYXJrRWxEaW1lbnNpb24oKTtcblxuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgICB0aGlzLmVsV2lkdGhcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgIHRoaXMuZWxIZWlnaHRcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAodGhpcy53cmFwcGVyKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9vbk1vdXNlRG93bkxpc3RlbmVyID0gdGhpcy5fcmVuZGVyZXIubGlzdGVuKFxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgJ21vdXNlZG93bicsXG4gICAgICAgICAgICB0aGlzLm9uTW91c2VEb3duSGFuZGxlci5iaW5kKHRoaXMpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuX29uU2Nyb2xsTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnc2Nyb2xsJyxcbiAgICAgICAgICAgIHRoaXMub25TY3JvbGxIYW5kbGVyLmJpbmQodGhpcylcbiAgICAgICAgKTtcbiAgICAgICAgLy8gcHJldmVudCBGaXJlZm94IGZyb20gZHJhZ2dpbmcgaW1hZ2VzXG4gICAgICAgIHRoaXMuX29uRHJhZ1N0YXJ0TGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgJ2RyYWdzdGFydCcsXG4gICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jaGVja05hdlN0YXR1cygpO1xuICAgICAgICB0aGlzLmRzSW5pdGlhbGl6ZWQuZW1pdCgpO1xuICAgICAgICB0aGlzLmFkanVzdE1hcmdpblRvTGFzdENoaWxkKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdDaGVja2VkKCkge1xuICAgICAgICAvLyBhdm9pZCBleHRyYSBjaGVja3NcbiAgICAgICAgaWYgKHRoaXMuX2NoaWxkcmVuLmxlbmd0aCAhPT0gdGhpcy5wcmV2Q2hpbGRyZW5MZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubWFya0VsRGltZW5zaW9uKCk7XG4gICAgICAgICAgICB0aGlzLmNoZWNrU2Nyb2xsYmFyKCk7XG4gICAgICAgICAgICB0aGlzLnByZXZDaGlsZHJlbkxlbmd0aCA9IHRoaXMuX2NoaWxkcmVuLmxlbmd0aDtcbiAgICAgICAgICAgIHRoaXMuY2hlY2tOYXZTdGF0dXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAnZHJhZy1zY3JvbGwnLFxuICAgICAgICAgICAgJ2ZhbHNlJ1xuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5fb25Nb3VzZURvd25MaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5fb25Nb3VzZURvd25MaXN0ZW5lciA9IHRoaXMuX29uTW91c2VEb3duTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb25TY3JvbGxMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5fb25TY3JvbGxMaXN0ZW5lciA9IHRoaXMuX29uU2Nyb2xsTGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5fb25EcmFnU3RhcnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgdGhpcy5fb25EcmFnU3RhcnRMaXN0ZW5lciA9IHRoaXMuX29uRHJhZ1N0YXJ0TGlzdGVuZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VNb3ZlSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLm9uTW91c2VNb3ZlKGV2ZW50KTtcbiAgICB9XG5cbiAgICBvbk1vdXNlTW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5pc1ByZXNzZWQgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIHByZXZlbnQgc2Nyb2xsIHN0dWNrIGlmIGJyb3dzZXIgbG9zdCBmb2N1c1xuICAgICAgICAgICAgLy8gTW91c2VFdmVudC5idXR0b25zIG5vdCBzdXBwb3J0IGJ5IFNhZmFyaVxuICAgICAgICAgICAgaWYgKCFldmVudC5idXR0b25zICYmICFldmVudC53aGljaCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm9uTW91c2VVcEhhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9wb2ludGVyRXZlbnRzID0gJ25vbmUnO1xuICAgICAgICAgICAgdGhpcy5fc2V0SXNEcmFnZ2luZyh0cnVlKTtcblxuICAgICAgICAgICAgLy8gRHJhZyBYXG4gICAgICAgICAgICBpZiAoIXRoaXMueERpc2FibGVkICYmICF0aGlzLmRyYWdEaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsaWVudFggPSAoZXZlbnQgYXMgTW91c2VFdmVudCkuY2xpZW50WDtcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IC1cbiAgICAgICAgICAgICAgICAgICAgY2xpZW50WCArXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZG93blg7XG4gICAgICAgICAgICAgICAgdGhpcy5kb3duWCA9IGNsaWVudFg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERyYWcgWVxuICAgICAgICAgICAgaWYgKCF0aGlzLnlEaXNhYmxlZCAmJiAhdGhpcy5kcmFnRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGllbnRZID0gKGV2ZW50IGFzIE1vdXNlRXZlbnQpLmNsaWVudFk7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFRvcCA9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxUb3AgLVxuICAgICAgICAgICAgICAgICAgICBjbGllbnRZICtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kb3duWTtcbiAgICAgICAgICAgICAgICB0aGlzLmRvd25ZID0gY2xpZW50WTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTW91c2VEb3duSGFuZGxlcihldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBjb25zdCBjYXJvdXNlbEl0ZW06IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZSB8IG51bGwgPSB0aGlzLmxvY2F0ZUNhcm91c2VsSXRlbShcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldCBhcyBFbGVtZW50XG4gICAgICAgICk7XG4gICAgICAgIGlmIChjYXJvdXNlbEl0ZW0gJiYgY2Fyb3VzZWxJdGVtLmRyYWdEaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXNUb3VjaEV2ZW50ID0gZXZlbnQudHlwZSA9PT0gJ3RvdWNoc3RhcnQnO1xuXG4gICAgICAgIHRoaXMuX3N0YXJ0R2xvYmFsTGlzdGVuaW5nKGlzVG91Y2hFdmVudCk7XG4gICAgICAgIHRoaXMuaXNQcmVzc2VkID0gdHJ1ZTtcblxuICAgICAgICBjb25zdCBtb3VzZUV2ZW50ID0gZXZlbnQgYXMgTW91c2VFdmVudDtcbiAgICAgICAgdGhpcy5kb3duWCA9IG1vdXNlRXZlbnQuY2xpZW50WDtcbiAgICAgICAgdGhpcy5kb3duWSA9IG1vdXNlRXZlbnQuY2xpZW50WTtcblxuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUb1RpbWVyIGFzIG51bWJlcik7XG4gICAgfVxuXG4gICAgb25TY3JvbGxIYW5kbGVyKCkge1xuICAgICAgICB0aGlzLmNoZWNrTmF2U3RhdHVzKCk7XG4gICAgICAgIGlmICghdGhpcy5pc1ByZXNzZWQgJiYgIXRoaXMuaXNBbmltYXRpbmcgJiYgIXRoaXMuc25hcERpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmlzU2Nyb2xsaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNjcm9sbFRpbWVyIGFzIG51bWJlcik7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc1Njcm9sbGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMubG9jYXRlQ3VycmVudEluZGV4KHRydWUpO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9jYXRlQ3VycmVudEluZGV4KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk1vdXNlVXBIYW5kbGVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzUHJlc3NlZCkge1xuICAgICAgICAgICAgdGhpcy5pc1ByZXNzZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuX3BvaW50ZXJFdmVudHMgPSAnYXV0byc7XG4gICAgICAgICAgICB0aGlzLl9zZXRJc0RyYWdnaW5nKGZhbHNlKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5zbmFwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0ZUN1cnJlbnRJbmRleCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGVDdXJyZW50SW5kZXgoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX3N0b3BHbG9iYWxMaXN0ZW5pbmcoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qXG4gICAgICogTmF2IGJ1dHRvblxuICAgICAqL1xuICAgIG1vdmVMZWZ0KCkge1xuICAgICAgICBpZiAodGhpcy5jdXJySW5kZXggIT09IDAgfHwgdGhpcy5zbmFwRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY3VyckluZGV4LS07XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zY3JvbGxUb1RpbWVyIGFzIG51bWJlcik7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLnRvQ2hpbGRyZW5Mb2NhdGlvbigpLFxuICAgICAgICAgICAgICAgIHRoaXMuc25hcER1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbW92ZVJpZ2h0KCkge1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLndyYXBwZXIgfHwgdGhpcy5wYXJlbnROb2RlO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGNvbnRhaW5lciA/IGNvbnRhaW5lci5jbGllbnRXaWR0aCA6IDA7XG5cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgIXRoaXMuaXNTY3JvbGxSZWFjaGVzUmlnaHRFbmQoKSAmJlxuICAgICAgICAgICAgdGhpcy5jdXJySW5kZXggPFxuICAgICAgICAgICAgdGhpcy5tYXhpbXVtSW5kZXgoY29udGFpbmVyV2lkdGgsIHRoaXMuX2NoaWxkcmVuLnRvQXJyYXkoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJJbmRleCsrO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVG9UaW1lciBhcyBudW1iZXIpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy50b0NoaWxkcmVuTG9jYXRpb24oKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBEdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG1vdmVUbyhpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMud3JhcHBlciB8fCB0aGlzLnBhcmVudE5vZGU7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyID8gY29udGFpbmVyLmNsaWVudFdpZHRoIDogMDtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgaW5kZXggPj0gMCAmJlxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMuY3VyckluZGV4ICYmXG4gICAgICAgICAgICB0aGlzLmN1cnJJbmRleCA8PVxuICAgICAgICAgICAgdGhpcy5tYXhpbXVtSW5kZXgoY29udGFpbmVyV2lkdGgsIHRoaXMuX2NoaWxkcmVuLnRvQXJyYXkoKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJJbmRleCA9IE1hdGgubWluKFxuICAgICAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgICAgICAgIHRoaXMubWF4aW11bUluZGV4KGNvbnRhaW5lcldpZHRoLCB0aGlzLl9jaGlsZHJlbi50b0FycmF5KCkpXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2Nyb2xsVG9UaW1lciBhcyBudW1iZXIpO1xuICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdGhpcy50b0NoaWxkcmVuTG9jYXRpb24oKSxcbiAgICAgICAgICAgICAgICB0aGlzLnNuYXBEdXJhdGlvblxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNoZWNrTmF2U3RhdHVzKCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9ubHlPbmVJdGVtID0gQm9vbGVhbih0aGlzLl9jaGlsZHJlbi5sZW5ndGggPD0gMSk7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJJc0xhcmdlclRoYW5Db250ZW50ID0gQm9vbGVhbihcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPD1cbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGhcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAob25seU9uZUl0ZW0gfHwgY29udGFpbmVySXNMYXJnZXJUaGFuQ29udGVudCkge1xuICAgICAgICAgICAgICAgIC8vIG9ubHkgb25lIGVsZW1lbnRcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNMZWZ0Qm91bmQuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNSaWdodEJvdW5kLmVtaXQodHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTY3JvbGxSZWFjaGVzUmlnaHRFbmQoKSkge1xuICAgICAgICAgICAgICAgIC8vIHJlYWNoZWQgcmlnaHQgZW5kXG4gICAgICAgICAgICAgICAgdGhpcy5yZWFjaGVzTGVmdEJvdW5kLmVtaXQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVhY2hlc1JpZ2h0Qm91bmQuZW1pdCh0cnVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbExlZnQgPT09IDAgJiZcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPlxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgLy8gcmVhY2hlZCBsZWZ0IGVuZFxuICAgICAgICAgICAgICAgIHRoaXMucmVhY2hlc0xlZnRCb3VuZC5lbWl0KHRydWUpO1xuICAgICAgICAgICAgICAgIHRoaXMucmVhY2hlc1JpZ2h0Qm91bmQuZW1pdChmYWxzZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGluIHRoZSBtaWRkbGVcbiAgICAgICAgICAgICAgICB0aGlzLnJlYWNoZXNMZWZ0Qm91bmQuZW1pdChmYWxzZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5yZWFjaGVzUmlnaHRCb3VuZC5lbWl0KGZhbHNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgMCk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignd2hlZWwnLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbldoZWVsKGV2ZW50OiBXaGVlbEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLl94V2hlZWxFbmFibGVkKSB7XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5fc25hcERpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbEJ5KGV2ZW50LmRlbHRhWSwgMCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChldmVudC5kZWx0YVkgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW92ZUxlZnQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmRlbHRhWSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb3ZlUmlnaHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgICBwdWJsaWMgb25XaW5kb3dSZXNpemUoKSB7XG4gICAgICAgIHRoaXMucmVmcmVzaFdyYXBwZXJEaW1lbnNpb25zKCk7XG4gICAgICAgIHRoaXMuY2hlY2tOYXZTdGF0dXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRJc0RyYWdnaW5nKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLl9pc0RyYWdnaW5nID09PSB2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5faXNEcmFnZ2luZyA9IHZhbHVlO1xuICAgICAgICB2YWx1ZSA/IHRoaXMuZHJhZ1N0YXJ0LmVtaXQoKSA6IHRoaXMuZHJhZ0VuZC5lbWl0KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfc3RhcnRHbG9iYWxMaXN0ZW5pbmcoaXNUb3VjaEV2ZW50OiBib29sZWFuKSB7XG4gICAgICAgIGlmICghdGhpcy5fb25Nb3VzZU1vdmVMaXN0ZW5lcikge1xuICAgICAgICAgICAgY29uc3QgZXZlbnROYW1lID0gaXNUb3VjaEV2ZW50ID8gJ3RvdWNobW92ZScgOiAnbW91c2Vtb3ZlJztcbiAgICAgICAgICAgIHRoaXMuX29uTW91c2VNb3ZlTGlzdGVuZXIgPSB0aGlzLl9yZW5kZXJlci5saXN0ZW4oXG4gICAgICAgICAgICAgICAgJ2RvY3VtZW50JyxcbiAgICAgICAgICAgICAgICBldmVudE5hbWUsXG4gICAgICAgICAgICAgICAgdGhpcy5vbk1vdXNlTW92ZUhhbmRsZXIuYmluZCh0aGlzKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fb25Nb3VzZVVwTGlzdGVuZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9IGlzVG91Y2hFdmVudCA/ICd0b3VjaGVuZCcgOiAnbW91c2V1cCc7XG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlVXBMaXN0ZW5lciA9IHRoaXMuX3JlbmRlcmVyLmxpc3RlbihcbiAgICAgICAgICAgICAgICAnZG9jdW1lbnQnLFxuICAgICAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgICAgICB0aGlzLm9uTW91c2VVcEhhbmRsZXIuYmluZCh0aGlzKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3N0b3BHbG9iYWxMaXN0ZW5pbmcoKSB7XG4gICAgICAgIGlmICh0aGlzLl9vbk1vdXNlTW92ZUxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlTW92ZUxpc3RlbmVyID0gdGhpcy5fb25Nb3VzZU1vdmVMaXN0ZW5lcigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX29uTW91c2VVcExpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9vbk1vdXNlVXBMaXN0ZW5lciA9IHRoaXMuX29uTW91c2VVcExpc3RlbmVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGRpc2FibGVTY3JvbGwoYXhpczogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgYG92ZXJmbG93LSR7YXhpc31gLFxuICAgICAgICAgICAgJ2hpZGRlbidcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGVuYWJsZVNjcm9sbChheGlzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICBgb3ZlcmZsb3ctJHtheGlzfWAsXG4gICAgICAgICAgICAnYXV0bydcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGhpZGVTY3JvbGxiYXIoKTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ICE9PSAnbm9uZScgJiZcbiAgICAgICAgICAgICF0aGlzLndyYXBwZXJcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLnBhcmVudE5vZGUgPSB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcblxuICAgICAgICAgICAgLy8gY3JlYXRlIGNvbnRhaW5lciBlbGVtZW50XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFkZENsYXNzKHRoaXMud3JhcHBlciwgJ2Nhcm91c2VsLXdyYXBwZXInKTtcbiAgICAgICAgICAgIC8vIHRoaXMuX3JlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLndyYXBwZXIsICdjbGFzcycsICdjYXJvdXNlbC13cmFwcGVyJyk7XG4gICAgICAgICAgICAvLyB0aGlzLl9yZW5kZXJlci5hZGRDbGFzcyh0aGlzLndyYXBwZXIsICdjYXJvdXNlbC1jb250YWluZXInKTtcblxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoV3JhcHBlckRpbWVuc2lvbnMoKTtcblxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnb3ZlcmZsb3cnLCAnaGlkZGVuJyk7XG5cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnd2lkdGgnLFxuICAgICAgICAgICAgICAgIGBjYWxjKDEwMCUgKyAke3RoaXMuc2Nyb2xsYmFyV2lkdGh9KWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgYGNhbGMoMTAwJSArICR7dGhpcy5zY3JvbGxiYXJXaWR0aH0pYFxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQXBwZW5kIGNvbnRhaW5lciBlbGVtZW50IHRvIGNvbXBvbmVudCBlbGVtZW50LlxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQoXG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlclxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgLy8gQXBwZW5kIGNvbnRlbnQgZWxlbWVudCB0byBjb250YWluZXIgZWxlbWVudC5cbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKFxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlcixcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIHRoaXMuYWRqdXN0TWFyZ2luVG9MYXN0Q2hpbGQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1Njcm9sbGJhcigpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlcikge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgICAgICAgJzEwMCUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgIHRoaXMud3JhcHBlci5zdHlsZS5oZWlnaHRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICBpZiAodGhpcy5wYXJlbnROb2RlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMud3JhcHBlcik7XG4gICAgICAgICAgICAgICAgdGhpcy5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLndyYXBwZXIgPSBudWxsO1xuXG4gICAgICAgICAgICB0aGlzLmFkanVzdE1hcmdpblRvTGFzdENoaWxkKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNoZWNrU2Nyb2xsYmFyKCkge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsV2lkdGggPD1cbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgICAgICAgICAnMTAwJSdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgJ2hlaWdodCcsXG4gICAgICAgICAgICAgICAgYGNhbGMoMTAwJSArICR7dGhpcy5zY3JvbGxiYXJXaWR0aH0pYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSGVpZ2h0IDw9XG4gICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50SGVpZ2h0XG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgICAgICAgJzEwMCUnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICd3aWR0aCcsXG4gICAgICAgICAgICAgICAgYGNhbGMoMTAwJSArICR7dGhpcy5zY3JvbGxiYXJXaWR0aH0pYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2Nyb2xsQmFyKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zY3JvbGxiYXJIaWRkZW4pIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZVNjcm9sbGJhcigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaG93U2Nyb2xsYmFyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNjcm9sbGJhcldpZHRoKCk6IG51bWJlciB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBCcm93c2VyIFNjcm9sbGJhciBXaWR0aHMgKDIwMTYpXG4gICAgICAgICAqIE9TWCAoQ2hyb21lLCBTYWZhcmksIEZpcmVmb3gpIC0gMTVweFxuICAgICAgICAgKiBXaW5kb3dzIFhQIChJRTcsIENocm9tZSwgRmlyZWZveCkgLSAxN3B4XG4gICAgICAgICAqIFdpbmRvd3MgNyAoSUUxMCwgSUUxMSwgQ2hyb21lLCBGaXJlZm94KSAtIDE3cHhcbiAgICAgICAgICogV2luZG93cyA4LjEgKElFMTEsIENocm9tZSwgRmlyZWZveCkgLSAxN3B4XG4gICAgICAgICAqIFdpbmRvd3MgMTAgKElFMTEsIENocm9tZSwgRmlyZWZveCkgLSAxN3B4XG4gICAgICAgICAqIFdpbmRvd3MgMTAgKEVkZ2UgMTIvMTMpIC0gMTJweFxuICAgICAgICAgKi9cbiAgICAgICAgY29uc3Qgb3V0ZXIgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUob3V0ZXIsICd2aXNpYmlsaXR5JywgJ2hpZGRlbicpO1xuICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShvdXRlciwgJ3dpZHRoJywgJzEwMHB4Jyk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKG91dGVyLCAnbXNPdmVyZmxvd1N0eWxlJywgJ3Njcm9sbGJhcicpOyAvLyBuZWVkZWQgZm9yIFdpbkpTIGFwcHNcbiAgICAgICAgLy8gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvdXRlcik7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMuX2RvY3VtZW50LmJvZHksIG91dGVyKTtcbiAgICAgICAgLy8gdGhpcy5fcmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy5fcmVuZGVyZXIuc2VsZWN0Um9vdEVsZW1lbnQoJ2JvZHknKSwgb3V0ZXIpO1xuICAgICAgICBjb25zdCB3aWR0aE5vU2Nyb2xsID0gb3V0ZXIub2Zmc2V0V2lkdGg7XG4gICAgICAgIC8vIGZvcmNlIHNjcm9sbGJhcnNcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUob3V0ZXIsICdvdmVyZmxvdycsICdzY3JvbGwnKTtcblxuICAgICAgICAvLyBhZGQgaW5uZXJkaXZcbiAgICAgICAgY29uc3QgaW5uZXIgPSB0aGlzLl9yZW5kZXJlci5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoaW5uZXIsICd3aWR0aCcsICcxMDAlJyk7XG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmFwcGVuZENoaWxkKG91dGVyLCBpbm5lcik7XG5cbiAgICAgICAgY29uc3Qgd2lkdGhXaXRoU2Nyb2xsID0gaW5uZXIub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgLy8gcmVtb3ZlIGRpdnNcbiAgICAgICAgdGhpcy5fcmVuZGVyZXIucmVtb3ZlQ2hpbGQodGhpcy5fZG9jdW1lbnQuYm9keSwgb3V0ZXIpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTY3JvbGxiYXIgd2lkdGggd2lsbCBiZSAwIG9uIE1hYyBPUyB3aXRoIHRoZVxuICAgICAgICAgKiBkZWZhdWx0IFwiT25seSBzaG93IHNjcm9sbGJhcnMgd2hlbiBzY3JvbGxpbmdcIiBzZXR0aW5nIChZb3NlbWl0ZSBhbmQgdXApLlxuICAgICAgICAgKiBzZXR0aW5nIGRlZmF1bHQgd2lkdGggdG8gMjA7XG4gICAgICAgICAqL1xuICAgICAgICByZXR1cm4gd2lkdGhOb1Njcm9sbCAtIHdpZHRoV2l0aFNjcm9sbCB8fCAyMDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZnJlc2hXcmFwcGVyRGltZW5zaW9ucygpIHtcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlcikge1xuICAgICAgICAgICAgY29uc3QgaGVpZ2h0ID1cbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0IHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyLCAnd2lkdGgnLCAnMTAwJScpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgICAgICAgICAgdGhpcy53cmFwcGVyLFxuICAgICAgICAgICAgICAgICdoZWlnaHQnLFxuICAgICAgICAgICAgICAgIGhlaWdodCA9PT0gMCA/ICdhdXRvJyA6IGhlaWdodCArICdweCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKlxuICAgICAqIFRoZSBiZWxvdyBzb2x1dGlvbiBpcyBoZWF2aWx5IGluc3BpcmVkIGZyb21cbiAgICAgKiBodHRwczovL2dpc3QuZ2l0aHViLmNvbS9hbmRqb3NoLzY3NjQ5MzlcbiAgICAgKi9cbiAgICBwcml2YXRlIHNjcm9sbFRvKGVsZW1lbnQ6IEVsZW1lbnQsIHRvOiBudW1iZXIsIGR1cmF0aW9uOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5pc0FuaW1hdGluZyA9IHRydWU7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gZWxlbWVudC5zY3JvbGxMZWZ0LFxuICAgICAgICAgICAgY2hhbmdlID0gdG8gLSBzdGFydCAtIHRoaXMuc25hcE9mZnNldCxcbiAgICAgICAgICAgIGluY3JlbWVudCA9IDIwO1xuICAgICAgICBsZXQgY3VycmVudFRpbWUgPSAwO1xuXG4gICAgICAgIC8vIHQgPSBjdXJyZW50IHRpbWVcbiAgICAgICAgLy8gYiA9IHN0YXJ0IHZhbHVlXG4gICAgICAgIC8vIGMgPSBjaGFuZ2UgaW4gdmFsdWVcbiAgICAgICAgLy8gZCA9IGR1cmF0aW9uXG4gICAgICAgIGNvbnN0IGVhc2VJbk91dFF1YWQgPSAodDogbnVtYmVyLCBiOiBudW1iZXIsIGM6IG51bWJlciwgZDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICB0IC89IGQgLyAyO1xuICAgICAgICAgICAgaWYgKHQgPCAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChjIC8gMikgKiB0ICogdCArIGI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0LS07XG4gICAgICAgICAgICByZXR1cm4gKC1jIC8gMikgKiAodCAqICh0IC0gMikgLSAxKSArIGI7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgYW5pbWF0ZVNjcm9sbCA9ICgpID0+IHtcbiAgICAgICAgICAgIGN1cnJlbnRUaW1lICs9IGluY3JlbWVudDtcbiAgICAgICAgICAgIGVsZW1lbnQuc2Nyb2xsTGVmdCA9IGVhc2VJbk91dFF1YWQoXG4gICAgICAgICAgICAgICAgY3VycmVudFRpbWUsXG4gICAgICAgICAgICAgICAgc3RhcnQsXG4gICAgICAgICAgICAgICAgY2hhbmdlLFxuICAgICAgICAgICAgICAgIGR1cmF0aW9uXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGN1cnJlbnRUaW1lIDwgZHVyYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvVGltZXIgPSBzZXRUaW1lb3V0KGFuaW1hdGVTY3JvbGwsIGluY3JlbWVudCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIHJ1biBvbmUgbW9yZSBmcmFtZSB0byBtYWtlIHN1cmUgdGhlIGFuaW1hdGlvbiBpcyBmdWxseSBmaW5pc2hlZFxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQW5pbWF0aW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc25hcEFuaW1hdGlvbkZpbmlzaGVkLmVtaXQodGhpcy5jdXJySW5kZXgpO1xuICAgICAgICAgICAgICAgIH0sIGluY3JlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgICAgIGFuaW1hdGVTY3JvbGwoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvY2F0ZUN1cnJlbnRJbmRleChzbmFwPzogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmN1cnJlbnRDaGlsZFdpZHRoKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGN1cnJlbnRDaGlsZFdpZHRoLFxuICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbldpZHRoLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuV2lkdGgsXG4gICAgICAgICAgICAgICAgaWR4OiBudW1iZXIsXG4gICAgICAgICAgICAgICAgc3RvcFxuICAgICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsTGVmdCA+PVxuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoICYmXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0IDw9XG4gICAgICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbldpZHRoXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbldpZHRoIC1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ID5cbiAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRDaGlsZFdpZHRoIC8gMiAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgIXRoaXMuaXNTY3JvbGxSZWFjaGVzUmlnaHRFbmQoKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJvbGwgYmFjayBzY3JvbGxpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID0gaWR4O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNuYXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNjcm9sbFRvKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jb250ZW50UmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc25hcER1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICE9PSAwXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yd2FyZCBzY3JvbGxpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0FuaW1hdGluZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID0gaWR4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzbmFwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbldpZHRoICsgY3VycmVudENoaWxkV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc25hcER1cmF0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdG9wKCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpZHggKyAxID09PSB0aGlzLl9jaGlsZHJlbi5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHJlYWNoZXMgbGFzdCBpbmRleFxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNBbmltYXRpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY3VyckluZGV4ID0gaWR4ICsgMTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBzdG9wKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3VycmVudENoaWxkV2lkdGgoXG4gICAgICAgIGNiOiAoXG4gICAgICAgICAgICBjdXJyZW50Q2xpbGRXaWR0aDogbnVtYmVyLFxuICAgICAgICAgICAgbmV4dENoaWxkcmVuV2lkdGg6IG51bWJlcixcbiAgICAgICAgICAgIGNoaWxkcmVuV2lkdGg6IG51bWJlcixcbiAgICAgICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgICAgICBicmVha0Z1bmM6ICgpID0+IHZvaWRcbiAgICAgICAgKSA9PiB2b2lkXG4gICAgKSB7XG4gICAgICAgIGxldCBjaGlsZHJlbldpZHRoID0gMDtcbiAgICAgICAgbGV0IHNob3VsZEJyZWFrID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGJyZWFrRnVuYyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHNob3VsZEJyZWFrID0gdHJ1ZTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW5BcnIgPSB0aGlzLl9jaGlsZHJlbi50b0FycmF5KCk7XG5cbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaGlsZHJlbkFyci5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGkgPT09IGNoaWxkcmVuQXJyLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChzaG91bGRCcmVhaykge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBuZXh0Q2hpbGRyZW5XaWR0aCA9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5XaWR0aCArXG4gICAgICAgICAgICAgICAgY2hpbGRyZW5BcnJbaSArIDFdLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50Q2xpbGRXaWR0aCA9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5BcnJbaV0uX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgIGNiKFxuICAgICAgICAgICAgICAgIGN1cnJlbnRDbGlsZFdpZHRoLFxuICAgICAgICAgICAgICAgIG5leHRDaGlsZHJlbldpZHRoLFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuV2lkdGgsXG4gICAgICAgICAgICAgICAgaSxcbiAgICAgICAgICAgICAgICBicmVha0Z1bmNcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGNoaWxkcmVuV2lkdGggKz0gY3VycmVudENsaWxkV2lkdGg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHRvQ2hpbGRyZW5Mb2NhdGlvbigpOiBudW1iZXIge1xuICAgICAgICBsZXQgdG8gPSAwO1xuICAgICAgICBjb25zdCBjaGlsZHJlbkFyciA9IHRoaXMuX2NoaWxkcmVuLnRvQXJyYXkoKTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmN1cnJJbmRleDsgaSsrKSB7XG4gICAgICAgICAgICB0byArPSBjaGlsZHJlbkFycltpXS5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0bztcbiAgICB9XG5cbiAgICBwcml2YXRlIGxvY2F0ZUNhcm91c2VsSXRlbShcbiAgICAgICAgZWxlbWVudDogRWxlbWVudFxuICAgICk6IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZSB8IG51bGwge1xuICAgICAgICBsZXQgaXRlbTogUGVwQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIHwgbnVsbCA9IG51bGw7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuQXJyID0gdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNoaWxkcmVuQXJyLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBpZiAoZWxlbWVudCA9PT0gY2hpbGRyZW5BcnJbaV0uX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIGl0ZW0gPSBjaGlsZHJlbkFycltpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXRlbTtcbiAgICB9XG5cbiAgICBwcml2YXRlIG1hcmtFbERpbWVuc2lvbigpIHtcbiAgICAgICAgaWYgKHRoaXMud3JhcHBlcikge1xuICAgICAgICAgICAgdGhpcy5lbFdpZHRoID0gdGhpcy53cmFwcGVyLnN0eWxlLndpZHRoO1xuICAgICAgICAgICAgdGhpcy5lbEhlaWdodCA9IHRoaXMud3JhcHBlci5zdHlsZS5oZWlnaHQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVsV2lkdGggPVxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS53aWR0aCB8fFxuICAgICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCArICdweCc7XG4gICAgICAgICAgICB0aGlzLmVsSGVpZ2h0ID1cbiAgICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUuaGVpZ2h0IHx8XG4gICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldEhlaWdodCArICdweCc7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy53cmFwcGVyIHx8IHRoaXMucGFyZW50Tm9kZTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBjb250YWluZXIgPyBjb250YWluZXIuY2xpZW50V2lkdGggOiAwO1xuICAgICAgICBpZiAodGhpcy5fY2hpbGRyZW4ubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgdGhpcy5pbmRleEJvdW5kID0gdGhpcy5tYXhpbXVtSW5kZXgoXG4gICAgICAgICAgICAgICAgY29udGFpbmVyV2lkdGgsXG4gICAgICAgICAgICAgICAgdGhpcy5fY2hpbGRyZW4udG9BcnJheSgpXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYXhpbXVtSW5kZXgoXG4gICAgICAgIGNvbnRhaW5lcldpZHRoOiBudW1iZXIsXG4gICAgICAgIGNoaWxkcmVuRWxlbWVudHM6IFBlcENhcm91c2VsSXRlbURpcmVjdGl2ZVtdXG4gICAgKTogbnVtYmVyIHtcbiAgICAgICAgbGV0IGNvdW50ID0gMDtcbiAgICAgICAgbGV0IGNoaWxkcmVuV2lkdGggPSAwO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8PSBjaGlsZHJlbkVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAvLyBsYXN0IE4gZWxlbWVudFxuICAgICAgICAgICAgY29uc3QgY2Fyb3VzZWxJdGVtRGlyZWN0aXZlOiBQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmUgPVxuICAgICAgICAgICAgICAgIGNoaWxkcmVuRWxlbWVudHNbY2hpbGRyZW5FbGVtZW50cy5sZW5ndGggLSAxIC0gaV07XG4gICAgICAgICAgICBpZiAoIWNhcm91c2VsSXRlbURpcmVjdGl2ZSkge1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYXRpdmVFbGVtZW50ID1cbiAgICAgICAgICAgICAgICAgICAgY2Fyb3VzZWxJdGVtRGlyZWN0aXZlLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1XaWR0aCA9IG5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKGl0ZW1XaWR0aCA9PT0gMCAmJiBuYXRpdmVFbGVtZW50LmZpcnN0RWxlbWVudENoaWxkKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1XaWR0aCA9XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXJvdXNlbEl0ZW1EaXJlY3RpdmUuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5maXJzdEVsZW1lbnRDaGlsZC5jbGllbnRXaWR0aDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgY2hpbGRyZW5XaWR0aCArPSBpdGVtV2lkdGg7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkcmVuV2lkdGggPCBjb250YWluZXJXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb3VudCsrO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hpbGRyZW5FbGVtZW50cy5sZW5ndGggLSBjb3VudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGlzU2Nyb2xsUmVhY2hlc1JpZ2h0RW5kKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBzY3JvbGxMZWZ0UG9zID1cbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5zY3JvbGxMZWZ0ICtcbiAgICAgICAgICAgIHRoaXMuX2NvbnRlbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcbiAgICAgICAgcmV0dXJuIHNjcm9sbExlZnRQb3MgPj0gdGhpcy5fY29udGVudFJlZi5uYXRpdmVFbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGFkZHMgYSBtYXJnaW4gcmlnaHQgc3R5bGUgdG8gdGhlIGxhc3QgY2hpbGQgZWxlbWVudCB3aGljaCB3aWxsIHJlc29sdmUgdGhlIGlzc3VlXG4gICAgICogb2YgbGFzdCBpdGVtIGdldHMgY3V0b2ZmLlxuICAgICAqL1xuICAgIHByaXZhdGUgYWRqdXN0TWFyZ2luVG9MYXN0Q2hpbGQoKTogdm9pZCB7XG4gICAgICAgIC8vIGlmICh0aGlzLl9jaGlsZHJlbiAmJiB0aGlzLl9jaGlsZHJlbi5sZW5ndGggPiAwICYmIHRoaXMuaGlkZVNjcm9sbGJhcikge1xuICAgICAgICAvLyAgICAgY29uc3QgY2hpbGRyZW5BcnIgPSB0aGlzLl9jaGlsZHJlbi50b0FycmF5KCk7XG4gICAgICAgIC8vICAgICBjb25zdCBsYXN0SXRlbSA9IGNoaWxkcmVuQXJyW2NoaWxkcmVuQXJyLmxlbmd0aCAtIDFdLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIC8vICAgICBpZiAodGhpcy53cmFwcGVyICYmIGNoaWxkcmVuQXJyLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShsYXN0SXRlbSwgJ21hcmdpbi1yaWdodCcsIHRoaXMuc2Nyb2xsYmFyV2lkdGgpO1xuICAgICAgICAvLyAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZShsYXN0SXRlbSwgJ21hcmdpbi1yaWdodCcsIDApO1xuICAgICAgICAvLyAgICAgfVxuICAgICAgICAvLyB9XG4gICAgfVxufVxuIl19
|
|
@@ -9,4 +9,4 @@ PepCarouselModule.decorators = [
|
|
|
9
9
|
declarations: [PepCarouselComponent, PepCarouselItemDirective],
|
|
10
10
|
},] }
|
|
11
11
|
];
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jYXJvdXNlbC9jYXJvdXNlbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQU1yRSxNQUFNLE9BQU8saUJBQWlCOzs7WUFKN0IsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixFQUFFLHdCQUF3QixDQUFDO2dCQUN6RCxZQUFZLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSx3QkFBd0IsQ0FBQzthQUNqRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBlcENhcm91c2VsQ29tcG9uZW50IH0gZnJvbSAnLi9jYXJvdXNlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGVwQ2Fyb3VzZWxJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZXhwb3J0czogW1BlcENhcm91c2VsQ29tcG9uZW50LCBQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmVdLFxuICAgIGRlY2xhcmF0aW9uczogW1BlcENhcm91c2VsQ29tcG9uZW50LCBQZXBDYXJvdXNlbEl0ZW1EaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBDYXJvdXNlbE1vZHVsZSB7fVxuIl19
|
|
@@ -5,4 +5,4 @@ export * from './carousel.module';
|
|
|
5
5
|
export * from './carousel.component';
|
|
6
6
|
export * from './carousel-item.directive';
|
|
7
7
|
// export * from './carousel.model';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY2Fyb3VzZWwvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLG9DQUFvQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgY2Fyb3VzZWxcbiAqL1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXJvdXNlbC1pdGVtLmRpcmVjdGl2ZSc7XG4vLyBleHBvcnQgKiBmcm9tICcuL2Nhcm91c2VsLm1vZGVsJztcbiJdfQ==
|
|
@@ -87,9 +87,6 @@ export class PepCheckboxComponent {
|
|
|
87
87
|
this.standAlone = true;
|
|
88
88
|
this.setDefaultForm();
|
|
89
89
|
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
|
|
90
|
-
if (!this.renderTitle) {
|
|
91
|
-
this.renderer.addClass(this.element.nativeElement, PepCustomizationService.STAND_ALONE_FIELD_NO_SPACING_CLASS_NAME);
|
|
92
|
-
}
|
|
93
90
|
}
|
|
94
91
|
}
|
|
95
92
|
ngOnChanges(changes) {
|
|
@@ -119,7 +116,7 @@ export class PepCheckboxComponent {
|
|
|
119
116
|
PepCheckboxComponent.decorators = [
|
|
120
117
|
{ type: Component, args: [{
|
|
121
118
|
selector: 'pep-checkbox',
|
|
122
|
-
template: "<ng-container [formGroup]=\"form\">\
|
|
119
|
+
template: "<ng-container [formGroup]=\"form\">\n <ng-template #pepTemplate>\n <div class=\"pep-checkbox-container pep-input\" [ngClass]=\"{\n 'disable': disabled,\n 'pep-report-checkbox': layoutType === 'table' && !isActive,\n 'pep-card-checkbox': layoutType === 'card',\n 'one-row': rowSpan === 1,\n 'no-title': label.length == 0,\n 'right-alignment pull-right flip': xAlignment == 'right',\n 'center-alignment': xAlignment == 'center'\n }\" dir=\"{{ xAlignment == 'right' ? 'rtl' : 'ltr' }}\">\n <!--\n This is cause a bug that when click on the pep-input area and after on the checkbox\n the value is updated only for the second time.\n (click)=\"toggleChecked($event)\" \n -->\n <ng-container *ngIf=\"type == 'booleanText'; then booleanTextTemplate; else regularTemplate\"></ng-container>\n <ng-template #booleanTextTemplate>\n <div class=\"mat-checkbox-layout body-sm\" (click)=\"toggleChecked($event)\"\n [title]=\"(label.length > 0 ? label + ': ' : '') + (value ? ('CHECKBOX.TRUE' | translate) : ('CHECKBOX.FALSE' | translate))\">\n <button [id]=\"key\" class=\"emoji-icon ellipsis pull-left flip\">\n {{ value ? additionalValueObject?.CheckedText : additionalValueObject?.UncheckedText }}\n </button>\n <span *ngIf=\"label.length > 0 && layoutType !== 'table'\" class=\"mat-checkbox-label emoji-title\">{{\n label }}</span>\n </div>\n </ng-template>\n <ng-template #regularTemplate>\n <mat-checkbox [name]=\"key\" class=\"body-sm\" type=\"checkbox\" (change)=\"onMaterialChange($event)\"\n [title]=\"(label.length > 0 ? label + ': ' : '') + (value ? ('CHECKBOX.TRUE' | translate) : ('CHECKBOX.FALSE' | translate))\"\n [checked]=\"value\" [disabled]=\"disabled\">\n <span *ngIf=\"label.length > 0 && layoutType !== 'table'\">{{ label }}</span>\n </mat-checkbox>\n </ng-template>\n </div>\n </ng-template>\n\n <ng-container *ngIf=\"layoutType === 'form'\">\n <pep-field-title *ngIf=\"renderTitle\" [label]=\"label\" [mandatory]=\"mandatory\" [disabled]=\"disabled\"\n [xAlignment]=\"xAlignment\" [showTitle]=\"false\">\n </pep-field-title>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'card'\">\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"layoutType === 'table'\">\n <ng-container *ngIf=\"key === 'ItemHasActiveCampaign'; then itemCampaignBlock; else checkboxBlock\">\n </ng-container>\n <ng-template #itemCampaignBlock>\n <ng-container *ngIf=\"value; then trueTemplate; else falseTemplate\">\n </ng-container>\n <ng-template #trueTemplate>\n <mat-icon class=\"has-active-campaign\" title=\"{{ 'CHECKBOX.TRUE' | translate }}\">\n <pep-icon name=\"system_bolt\">\n </pep-icon>\n </mat-icon>\n </ng-template>\n <ng-template #falseTemplate>\n <span> </span>\n </ng-template>\n </ng-template>\n <ng-template #checkboxBlock>\n <ng-container *ngTemplateOutlet=\"pepTemplate\"></ng-container>\n </ng-template>\n </ng-container>\n</ng-container>",
|
|
123
120
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
124
121
|
styles: [":host{height:inherit;display:grid}:host>*{align-self:center}"]
|
|
125
122
|
},] }
|
|
@@ -149,4 +146,4 @@ PepCheckboxComponent.propDecorators = {
|
|
|
149
146
|
visible: [{ type: Input }],
|
|
150
147
|
valueChange: [{ type: Output }]
|
|
151
148
|
};
|
|
152
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUU1QixnQkFBZ0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQVFqQyxNQUFNLE9BQU8sb0JBQW9CO0lBbUU3QixZQUNZLFFBQW1CLEVBQ25CLG9CQUE2QyxFQUM3QyxPQUFtQixFQUNuQixTQUEyQjtRQUgzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRFOUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVosVUFBSyxHQUF5QixVQUFVLENBQUMsQ0FBQyxtQkFBbUI7UUFVNUQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUNsRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRWIscUJBQWdCLEdBQVEsU0FBUyxDQUFDO1FBVTFDLGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBRWhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIs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Z0JBQ1AsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLCt5SEFBd0M7Z0JBRXhDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNsRDs7O1lBdEJHLFNBQVM7WUFTVCx1QkFBdUI7WUFSdkIsVUFBVTtZQU1MLGdCQUFnQjs7O2tCQWlCcEIsS0FBSztvQkFDTCxLQUFLO29CQUNMLEtBQUs7bUJBR0wsS0FBSzt3QkFTTCxLQUFLO3VCQUNMLEtBQUs7dUJBQ0wsS0FBSzt5QkFDTCxLQUFLO3NCQUNMLEtBQUs7OEJBR0wsS0FBSzttQkFXTCxLQUFLO3VCQUNMLEtBQUs7d0JBQ0wsS0FBSzswQkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBR0wsS0FBSzswQkFtQkwsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBPbkluaXQsXHJcbiAgICBJbnB1dCxcclxuICAgIE91dHB1dCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgUmVuZGVyZXIyLFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIE9wdGlvbmFsLFxyXG4gICAgT25DaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZSxcclxuICAgIFBlcExheW91dFR5cGUsXHJcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxyXG4gICAgREVGQVVMVF9IT1JJWk9OVEFMX0FMSUdOTUVOVCxcclxuICAgIFBlcENoZWNrYm94RmllbGRUeXBlLFxyXG4gICAgUGVwQ2hlY2tib3hGaWVsZCxcclxufSBmcm9tICdAcGVwcGVyaS1hZGRvbnMvbmd4LWxpYic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAncGVwLWNoZWNrYm94JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jaGVja2JveC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZXBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkga2V5ID0gJyc7XHJcbiAgICBASW5wdXQoKSB2YWx1ZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcclxuXHJcbiAgICBwcml2YXRlIF90eXBlOiBQZXBDaGVja2JveEZpZWxkVHlwZSA9ICdjaGVja2JveCc7IC8vIHx8ICdib29sZWFuVGV4dCdcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgdHlwZSh2YWx1ZTogUGVwQ2hlY2tib3hGaWVsZFR5cGUpIHtcclxuICAgICAgICB0aGlzLl90eXBlID0gdmFsdWU7XHJcbiAgICAgICAgdGhpcy5zZXRBZGRpdGlvbmFsVmFsdWVPYmplY3QoKTtcclxuICAgIH1cclxuICAgIGdldCB0eXBlKCk6IFBlcENoZWNrYm94RmllbGRUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKSBtYW5kYXRvcnkgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XHJcbiAgICBASW5wdXQoKSByb3dTcGFuID0gMTtcclxuXHJcbiAgICBwcml2YXRlIF9hZGRpdGlvbmFsVmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcclxuICAgIEBJbnB1dCgpXHJcbiAgICBzZXQgYWRkaXRpb25hbFZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9hZGRpdGlvbmFsVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLnNldEFkZGl0aW9uYWxWYWx1ZU9iamVjdCgpO1xyXG4gICAgfVxyXG4gICAgZ2V0IGFkZGl0aW9uYWxWYWx1ZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hZGRpdGlvbmFsVmFsdWU7XHJcbiAgICB9XHJcblxyXG4gICAgY29udHJvbFR5cGUgPSAnY2hlY2tib3gnO1xyXG5cclxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XHJcbiAgICBASW5wdXQoKSBpc0FjdGl2ZSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcclxuICAgIEBJbnB1dCgpIGxheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XHJcblxyXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgc2V0IHZpc2libGUodmlzaWJsZTogYm9vbGVhbikge1xyXG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xyXG4gICAgICAgIGlmICh2aXNpYmxlKSB7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3MoXHJcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcclxuICAgICAgICAgICAgICAgICdoaWRkZW4tZWxlbWVudCdcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgZ2V0IHZpc2libGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7XHJcbiAgICB9XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcclxuXHJcbiAgICBhZGRpdGlvbmFsVmFsdWVPYmplY3Q6IGFueTtcclxuICAgIHB1YmxpYyBqc29uTGliID0gSlNPTjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZTogUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgICApIHsgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0QWRkaXRpb25hbFZhbHVlT2JqZWN0KCkge1xyXG4gICAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxWYWx1ZSAmJiB0aGlzLnR5cGUgPT09ICdib29sZWFuVGV4dCcpIHtcclxuICAgICAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdGhpcy5hZGRpdGlvbmFsVmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWVPYmplY3QgPSBKU09OLnBhcnNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxWYWx1ZVxyXG4gICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlT2JqZWN0ID0gdGhpcy5hZGRpdGlvbmFsVmFsdWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWVPYmplY3QgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgQ2hlY2tlZFRleHQ6IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0NIRUNLQk9YLlRSVUUnKSxcclxuICAgICAgICAgICAgICAgICAgICBVbmNoZWNrZWRUZXh0OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdDSEVDS0JPWC5GQUxTRScpLFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHBlcEZpZWxkID0gbmV3IFBlcENoZWNrYm94RmllbGQoe1xyXG4gICAgICAgICAgICBrZXk6IHRoaXMua2V5LFxyXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgICAgICAgbWFuZGF0b3J5OiB0aGlzLm1hbmRhdG9yeSxcclxuICAgICAgICAgICAgcmVhZG9ubHk6IHRoaXMucmVhZG9ubHksXHJcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChwZXBGaWVsZCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xyXG4gICAgICAgICAgICB0aGlzLnN0YW5kQWxvbmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB0aGlzLnNldERlZmF1bHRGb3JtKCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIXRoaXMucmVuZGVyVGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICAgICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UuU1RBTkRfQUxPTkVfRklFTERfTk9fU1BBQ0lOR19DTEFTU19OQU1FXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXREZWZhdWx0Rm9ybSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvL1xyXG4gICAgfVxyXG5cclxuICAgIG9uTWF0ZXJpYWxDaGFuZ2UoZTogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKGUuY2hlY2tlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgdG9nZ2xlQ2hlY2tlZChldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkOiBib29sZWFuID1cclxuICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgIGNvbnN0IG5ld1ZhbHVlID0gIWlzQ2hlY2tlZDtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSxcclxuICAgICAgICAgICAgdGhpcy5rZXksXHJcbiAgICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgKTtcclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodmFsdWUpO1xyXG4gICAgfVxyXG59Il19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFFVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFVBQVUsR0FHYixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQ0gsdUJBQXVCLEVBR3ZCLDRCQUE0QixFQUU1QixnQkFBZ0IsR0FDbkIsTUFBTSx5QkFBeUIsQ0FBQztBQVFqQyxNQUFNLE9BQU8sb0JBQW9CO0lBbUU3QixZQUNZLFFBQW1CLEVBQ25CLG9CQUE2QyxFQUM3QyxPQUFtQixFQUNuQixTQUEyQjtRQUgzQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBeUI7UUFDN0MsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQXRFOUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxLQUFLLENBQUM7UUFDZCxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBRVosVUFBSyxHQUF5QixVQUFVLENBQUMsQ0FBQyxtQkFBbUI7UUFVNUQsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUEyQiw0QkFBNEIsQ0FBQztRQUNsRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRWIscUJBQWdCLEdBQVEsU0FBUyxDQUFDO1FBVTFDLGdCQUFXLEdBQUcsVUFBVSxDQUFDO1FBRWhCLFNBQUksR0FBYyxJQUFJLENBQUM7UUFDdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLGdCQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ25CLGVBQVUsR0FBa0IsTUFBTSxDQUFDO1FBRXBDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFxQnhCLGdCQUFXLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFFakUsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUdaLFlBQU8sR0FBRyxJQUFJLENBQUM7SUFPbEIsQ0FBQztJQWxFTCxJQUNJLElBQUksQ0FBQyxLQUEyQjtRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBQ0QsSUFBSSxJQUFJO1FBQ0osT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3RCLENBQUM7SUFTRCxJQUNJLGVBQWUsQ0FBQyxLQUFVO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUNELElBQUksZUFBZTtRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFXRCxJQUNJLE9BQU8sQ0FBQyxPQUFnQjtRQUN4QixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUIsZ0JBQWdCLENBQ25CLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUMxQixnQkFBZ0IsQ0FDbkIsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUNELElBQUksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBaUJPLHdCQUF3QjtRQUM1QixJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLEVBQUU7WUFDckQsSUFBSTtnQkFDQSxJQUFJLE9BQU8sSUFBSSxDQUFDLGVBQWUsS0FBSyxRQUFRLEVBQUU7b0JBQzFDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUNuQyxJQUFJLENBQUMsZUFBZSxDQUN2QixDQUFDO2lCQUNMO3FCQUFNO29CQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO2lCQUNyRDthQUNKO1lBQUMsV0FBTTtnQkFDSixJQUFJLENBQUMscUJBQXFCLEdBQUc7b0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7b0JBQ3BELGFBQWEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQztpQkFDMUQsQ0FBQzthQUNMO1NBQ0o7SUFDTCxDQUFDO0lBRU8sY0FBYztRQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ2xDLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUMxQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxJQUFJLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBRXRCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFDMUIsdUJBQXVCLENBQUMsNEJBQTRCLENBQ3ZELENBQUM7U0FDTDtJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUNwQixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDakIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1NBQ3pCO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxFQUFFO0lBQ04sQ0FBQztJQUVELGdCQUFnQixDQUFDLENBQW9CO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNoQixNQUFNLFNBQVMsR0FDWCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUM5QixNQUFNLFFBQVEsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztZQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlCO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFVO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FDMUMsSUFBSSxDQUFDLElBQUksRUFDVCxJQUFJLENBQUMsR0FBRyxFQUNSLEtBQUssQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQzs7O1lBekpKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsdXFIQUF3QztnQkFFeEMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2xEOzs7WUF0QkcsU0FBUztZQVNULHVCQUF1QjtZQVJ2QixVQUFVO1lBTUwsZ0JBQWdCOzs7a0JBaUJwQixLQUFLO29CQUNMLEtBQUs7b0JBQ0wsS0FBSzttQkFHTCxLQUFLO3dCQVNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO3lCQUNMLEtBQUs7c0JBQ0wsS0FBSzs4QkFHTCxLQUFLO21CQVdMLEtBQUs7dUJBQ0wsS0FBSzt3QkFDTCxLQUFLOzBCQUNMLEtBQUs7eUJBQ0wsS0FBSztzQkFHTCxLQUFLOzBCQW1CTCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgT25EZXN0cm95LFxuICAgIFJlbmRlcmVyMixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9wdGlvbmFsLFxuICAgIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRDaGVja2JveENoYW5nZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoZWNrYm94JztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gICAgUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBQZXBIb3Jpem9udGFsQWxpZ25tZW50LFxuICAgIERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQsXG4gICAgUGVwQ2hlY2tib3hGaWVsZFR5cGUsXG4gICAgUGVwQ2hlY2tib3hGaWVsZCxcbn0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1jaGVja2JveCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrYm94LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBQZXBDaGVja2JveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBJbnB1dCgpIGtleSA9ICcnO1xuICAgIEBJbnB1dCgpIHZhbHVlID0gZmFsc2U7XG4gICAgQElucHV0KCkgbGFiZWwgPSAnJztcblxuICAgIHByaXZhdGUgX3R5cGU6IFBlcENoZWNrYm94RmllbGRUeXBlID0gJ2NoZWNrYm94JzsgLy8gfHwgJ2Jvb2xlYW5UZXh0J1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHR5cGUodmFsdWU6IFBlcENoZWNrYm94RmllbGRUeXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRBZGRpdGlvbmFsVmFsdWVPYmplY3QoKTtcbiAgICB9XG4gICAgZ2V0IHR5cGUoKTogUGVwQ2hlY2tib3hGaWVsZFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZTtcbiAgICB9XG5cbiAgICBASW5wdXQoKSBtYW5kYXRvcnkgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XG4gICAgQElucHV0KCkgeEFsaWdubWVudDogUGVwSG9yaXpvbnRhbEFsaWdubWVudCA9IERFRkFVTFRfSE9SSVpPTlRBTF9BTElHTk1FTlQ7XG4gICAgQElucHV0KCkgcm93U3BhbiA9IDE7XG5cbiAgICBwcml2YXRlIF9hZGRpdGlvbmFsVmFsdWU6IGFueSA9IHVuZGVmaW5lZDtcbiAgICBASW5wdXQoKVxuICAgIHNldCBhZGRpdGlvbmFsVmFsdWUodmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLl9hZGRpdGlvbmFsVmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5zZXRBZGRpdGlvbmFsVmFsdWVPYmplY3QoKTtcbiAgICB9XG4gICAgZ2V0IGFkZGl0aW9uYWxWYWx1ZSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWRkaXRpb25hbFZhbHVlO1xuICAgIH1cblxuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcblxuICAgIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cCA9IG51bGw7XG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIHJlbmRlclRpdGxlID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBQZXBMYXlvdXRUeXBlID0gJ2Zvcm0nO1xuXG4gICAgcHJpdmF0ZSBfdmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBzZXQgdmlzaWJsZSh2aXNpYmxlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX3Zpc2libGUgPSB2aXNpYmxlO1xuICAgICAgICBpZiAodmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICAnaGlkZGVuLWVsZW1lbnQnXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgICB9XG5cbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgc3RhbmRBbG9uZSA9IGZhbHNlO1xuXG4gICAgYWRkaXRpb25hbFZhbHVlT2JqZWN0OiBhbnk7XG4gICAgcHVibGljIGpzb25MaWIgPSBKU09OO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICAgICAgcHJpdmF0ZSBjdXN0b21pemF0aW9uU2VydmljZTogUGVwQ3VzdG9taXphdGlvblNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgICApIHsgfVxuXG4gICAgcHJpdmF0ZSBzZXRBZGRpdGlvbmFsVmFsdWVPYmplY3QoKSB7XG4gICAgICAgIGlmICh0aGlzLmFkZGl0aW9uYWxWYWx1ZSAmJiB0aGlzLnR5cGUgPT09ICdib29sZWFuVGV4dCcpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmFkZGl0aW9uYWxWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWVPYmplY3QgPSBKU09OLnBhcnNlKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWVcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFkZGl0aW9uYWxWYWx1ZU9iamVjdCA9IHRoaXMuYWRkaXRpb25hbFZhbHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlT2JqZWN0ID0ge1xuICAgICAgICAgICAgICAgICAgICBDaGVja2VkVGV4dDogdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnQ0hFQ0tCT1guVFJVRScpLFxuICAgICAgICAgICAgICAgICAgICBVbmNoZWNrZWRUZXh0OiB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdDSEVDS0JPWC5GQUxTRScpLFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRGb3JtKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBwZXBGaWVsZCA9IG5ldyBQZXBDaGVja2JveEZpZWxkKHtcbiAgICAgICAgICAgIGtleTogdGhpcy5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcbiAgICAgICAgICAgIG1hbmRhdG9yeTogdGhpcy5tYW5kYXRvcnksXG4gICAgICAgICAgICByZWFkb25seTogdGhpcy5yZWFkb25seSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0aGlzLmRpc2FibGVkLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5mb3JtID0gdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS5nZXREZWZhdWx0RnJvbUdyb3VwKHBlcEZpZWxkKTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zdGFuZEFsb25lID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcblxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhcbiAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICBQZXBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnN0YW5kQWxvbmUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEZvcm0oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG9uTWF0ZXJpYWxDaGFuZ2UoZTogTWF0Q2hlY2tib3hDaGFuZ2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZShlLmNoZWNrZWQpO1xuICAgIH1cblxuICAgIHRvZ2dsZUNoZWNrZWQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgaXNDaGVja2VkOiBib29sZWFuID1cbiAgICAgICAgICAgICAgICB0aGlzLnZhbHVlID8gdHJ1ZSA6IGZhbHNlO1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSAhaXNDaGVja2VkO1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ld1ZhbHVlO1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VWYWx1ZShuZXdWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjaGFuZ2VWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UudXBkYXRlRm9ybUZpZWxkVmFsdWUoXG4gICAgICAgICAgICB0aGlzLmZvcm0sXG4gICAgICAgICAgICB0aGlzLmtleSxcbiAgICAgICAgICAgIHZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgfVxufSJdfQ==
|
|
@@ -37,4 +37,4 @@ PepCheckboxModule.decorators = [
|
|
|
37
37
|
PepCheckboxModule.ctorParameters = () => [
|
|
38
38
|
{ type: PepIconRegistry }
|
|
39
39
|
];
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9jaGVja2JveC9jaGVja2JveC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsT0FBTyxFQUNILGFBQWEsRUFDYixlQUFlLEVBQ2YsaUJBQWlCLEdBQ3BCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFFMUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFtQjVELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO0lBQzVELENBQUM7OztZQXBCSixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osbUJBQW1CO29CQUNuQixtQkFBbUI7b0JBQ25CLGVBQWU7b0JBQ2Ysa0JBQWtCO29CQUNsQixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2Isa0JBQWtCO29CQUNsQixlQUFlO29CQUNmLGFBQWE7b0JBQ2IsbUJBQW1CO2lCQUN0QjtnQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztnQkFDL0IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDdkM7OztZQXZCRyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBNYXRDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0Q2hlY2tib3hNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGVja2JveCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5cbmltcG9ydCB7IFBlcE5neExpYk1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7XG4gICAgUGVwSWNvbk1vZHVsZSxcbiAgICBQZXBJY29uUmVnaXN0cnksXG4gICAgcGVwSWNvblN5c3RlbUJvbHQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ljb24nO1xuaW1wb3J0IHsgUGVwRmllbGRUaXRsZU1vZHVsZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliL2ZpZWxkLXRpdGxlJztcblxuaW1wb3J0IHsgUGVwQ2hlY2tib3hDb21wb25lbnQgfSBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIC8vIE1hdGVyaWFsIG1vZHVsZXNcbiAgICAgICAgTWF0Q29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgICAgIE1hdENoZWNrYm94TW9kdWxlLFxuICAgICAgICBNYXRJY29uTW9kdWxlLFxuICAgICAgICAvLyBuZ3gtbGliIG1vZHVsZXNcbiAgICAgICAgUGVwTmd4TGliTW9kdWxlLFxuICAgICAgICBQZXBJY29uTW9kdWxlLFxuICAgICAgICBQZXBGaWVsZFRpdGxlTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1BlcENoZWNrYm94Q29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtQZXBDaGVja2JveENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFBlcENoZWNrYm94TW9kdWxlIHtcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHBlcEljb25SZWdpc3RyeTogUGVwSWNvblJlZ2lzdHJ5KSB7XG4gICAgICAgIHRoaXMucGVwSWNvblJlZ2lzdHJ5LnJlZ2lzdGVySWNvbnMoW3BlcEljb25TeXN0ZW1Cb2x0XSk7XG4gICAgfVxufVxuIl19
|
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './checkbox.module';
|
|
5
5
|
export * from './checkbox.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvY2hlY2tib3gvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Ygbmd4LWxpYi9jaGVja2JveFxuICovXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NoZWNrYm94LmNvbXBvbmVudCc7XG4iXX0=
|