@thetradeengineorg1/snova-shell-module 0.0.260 → 0.0.261
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 +24 -24
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js +18874 -18874
- package/bundles/thetradeengineorg1-snova-shell-module.umd.js.map +1 -1
- package/esm2015/lib/globaldependencies/components/avatar.component.js +33 -33
- package/esm2015/lib/globaldependencies/components/componentbase.js +538 -538
- package/esm2015/lib/globaldependencies/constants/feature-ids.js +449 -449
- package/esm2015/lib/globaldependencies/constants/localstorage-properties.js +38 -38
- package/esm2015/lib/globaldependencies/helpers/dom.helper.js +70 -70
- package/esm2015/lib/globaldependencies/helpers/fontawesome-icons.js +144 -144
- package/esm2015/lib/globaldependencies/helpers/moment-utc-date-adapter.js +37 -37
- package/esm2015/lib/globaldependencies/helpers/window.helper.js +32 -32
- package/esm2015/lib/globaldependencies/intercepter/jwt.interceptor.js +40 -40
- package/esm2015/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.js +36 -36
- package/esm2015/lib/globaldependencies/pipes/highLightText.pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/orderby-pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.js +22 -22
- package/esm2015/lib/globaldependencies/pipes/sanitize.pipe.js +24 -24
- package/esm2015/lib/globaldependencies/pipes/softlabels.pipes.js +346 -346
- package/esm2015/lib/globaldependencies/pipes/utctolocaltime.pipe.js +23 -23
- package/esm2015/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.js +25 -25
- package/esm2015/lib/globaldependencies/pipes/workflowstatus.pipes.js +27 -27
- package/esm2015/lib/shell-components/components/Payments/account.component.js +121 -121
- package/esm2015/lib/shell-components/components/Payments/company-information.js +558 -558
- package/esm2015/lib/shell-components/components/Payments/company-plans.component.js +636 -636
- package/esm2015/lib/shell-components/components/Payments/document.component.js +129 -129
- package/esm2015/lib/shell-components/components/Payments/payment-method.component.js +90 -90
- package/esm2015/lib/shell-components/components/Payments/product-service.component.js +438 -438
- package/esm2015/lib/shell-components/components/Payments/purchase-more-licenses.js +249 -249
- package/esm2015/lib/shell-components/components/Payments/transactions.component.js +172 -172
- package/esm2015/lib/shell-components/components/admin-layout/admin-layout.component.js +350 -350
- package/esm2015/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.js +102 -102
- package/esm2015/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.js +126 -126
- package/esm2015/lib/shell-components/components/export-import-configuration/export-configuration.component.js +502 -502
- package/esm2015/lib/shell-components/components/feed-time/feed-time-dialog.component.js +98 -98
- package/esm2015/lib/shell-components/components/feed-time/feed-time.component.js +87 -87
- package/esm2015/lib/shell-components/components/header-side/header-side.component.js +2342 -2342
- package/esm2015/lib/shell-components/components/header-top/header-top.component.js +489 -489
- package/esm2015/lib/shell-components/components/lives/lives-welcome-page.js +55 -55
- package/esm2015/lib/shell-components/components/menu/menu.component.js +3413 -3413
- package/esm2015/lib/shell-components/components/menu/searchTask.enum.js +10 -10
- package/esm2015/lib/shell-components/components/notifications/announcement-dialog.component.js +110 -110
- package/esm2015/lib/shell-components/components/notifications/notifications.component.js +534 -534
- package/esm2015/lib/shell-components/components/sidebar-top/sidebar-top.component.js +39 -39
- package/esm2015/lib/shell-components/components/sidenav/side-bar.component.js +148 -148
- package/esm2015/lib/shell-components/components/sidenav/sidenav.component.js +439 -439
- package/esm2015/lib/shell-components/components/submit-feedback/submit-feedback.component.js +75 -75
- package/esm2015/lib/shell-components/constants/api-urls.js +1052 -1052
- package/esm2015/lib/shell-components/constants/available-languages.js +25 -25
- package/esm2015/lib/shell-components/constants/channel-names.js +38 -38
- package/esm2015/lib/shell-components/constants/menu-categories.js +6 -6
- package/esm2015/lib/shell-components/constants/notification-routes.js +6 -6
- package/esm2015/lib/shell-components/constants/notification-type-ids.js +42 -42
- package/esm2015/lib/shell-components/enum/recentSearchType.enum.js +13 -13
- package/esm2015/lib/shell-components/models/AppMenuItemModel.js +3 -3
- package/esm2015/lib/shell-components/models/AppNotification.js +17 -17
- package/esm2015/lib/shell-components/models/AssetAssignedNotificationModel.js +12 -12
- package/esm2015/lib/shell-components/models/ChannelUpdateModel.js +3 -3
- package/esm2015/lib/shell-components/models/EmployeeStatusModel.js +3 -3
- package/esm2015/lib/shell-components/models/IAdjust-screen-options.js +2 -2
- package/esm2015/lib/shell-components/models/IBadge.js +2 -2
- package/esm2015/lib/shell-components/models/IChildItem.js +2 -2
- package/esm2015/lib/shell-components/models/ILayout-change-options.js +2 -2
- package/esm2015/lib/shell-components/models/IMenuItem.js +2 -2
- package/esm2015/lib/shell-components/models/IlayoutConf.js +2 -2
- package/esm2015/lib/shell-components/models/IntroModel.js +3 -3
- package/esm2015/lib/shell-components/models/MessageDetails.js +3 -3
- package/esm2015/lib/shell-components/models/MessageTypingDetails.js +3 -3
- package/esm2015/lib/shell-components/models/NewProjectCreatedNotificationModel.js +10 -10
- package/esm2015/lib/shell-components/models/NewProjectFeatureNotificationModel.js +10 -10
- package/esm2015/lib/shell-components/models/NotificationsOutPutModel.js +22 -22
- package/esm2015/lib/shell-components/models/ProjectSearchCriteriaInputModel.js +3 -3
- package/esm2015/lib/shell-components/models/RecentSearchModel.js +5 -5
- package/esm2015/lib/shell-components/models/ReportConfigAssignedNotification.js +11 -11
- package/esm2015/lib/shell-components/models/ReportSubmittedNotification.js +12 -12
- package/esm2015/lib/shell-components/models/RoleUpdatedNotification.js +9 -9
- package/esm2015/lib/shell-components/models/UserStoryAssignedNotification.js +13 -13
- package/esm2015/lib/shell-components/models/archiveUserStoryModel.js +10 -10
- package/esm2015/lib/shell-components/models/companieslist.model.js +3 -3
- package/esm2015/lib/shell-components/models/company-model.js +7 -7
- package/esm2015/lib/shell-components/models/company-payment-model.js +3 -3
- package/esm2015/lib/shell-components/models/dragedWidget.js +3 -3
- package/esm2015/lib/shell-components/models/employee-List.js +3 -3
- package/esm2015/lib/shell-components/models/employee.js +4 -4
- package/esm2015/lib/shell-components/models/entityRoleFeature.js +3 -3
- package/esm2015/lib/shell-components/models/export-configuration-model.js +3 -3
- package/esm2015/lib/shell-components/models/export-data.module.js +8 -8
- package/esm2015/lib/shell-components/models/goalApprovedNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/import-configuration-model.js +3 -3
- package/esm2015/lib/shell-components/models/initialStatusofUsers.js +3 -3
- package/esm2015/lib/shell-components/models/invoiceOutput-model.js +3 -3
- package/esm2015/lib/shell-components/models/leaveApplicationNotifiction.js +9 -9
- package/esm2015/lib/shell-components/models/multiChartsScheduling.js +11 -11
- package/esm2015/lib/shell-components/models/parkUserStoryInputModel.js +10 -10
- package/esm2015/lib/shell-components/models/project.js +3 -3
- package/esm2015/lib/shell-components/models/recentSearchApiModel.js +3 -3
- package/esm2015/lib/shell-components/models/searchCriteriaInputModelBase.js +3 -3
- package/esm2015/lib/shell-components/models/shellModulesInfo.js +7 -7
- package/esm2015/lib/shell-components/models/softlabels-model.js +7 -7
- package/esm2015/lib/shell-components/models/sprintReplanRequestedModel.js +9 -9
- package/esm2015/lib/shell-components/models/sprintStartedNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/store-model.js +3 -3
- package/esm2015/lib/shell-components/models/store-search-model.js +4 -4
- package/esm2015/lib/shell-components/models/themes.model.js +3 -3
- package/esm2015/lib/shell-components/models/timesheetenabledisable.js +4 -4
- package/esm2015/lib/shell-components/models/user.js +8 -8
- package/esm2015/lib/shell-components/models/userStory.js +3 -3
- package/esm2015/lib/shell-components/models/userStoryCommentNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/userStoryUpdateNotificationModel.js +9 -9
- package/esm2015/lib/shell-components/models/userstory-custom-fields.model.js +3 -3
- package/esm2015/lib/shell-components/models/validation.model.js +2 -2
- package/esm2015/lib/shell-components/models/widgetlist.js +6 -6
- package/esm2015/lib/shell-components/models/workspaceList.js +3 -3
- package/esm2015/lib/shell-components/services/authentication.service.js +96 -96
- package/esm2015/lib/shell-components/services/chat.service.js +67 -67
- package/esm2015/lib/shell-components/services/common-used.service.js +263 -263
- package/esm2015/lib/shell-components/services/feature.service.js +101 -101
- package/esm2015/lib/shell-components/services/google-analytics.service.js +24 -24
- package/esm2015/lib/shell-components/services/layout.service.js +68 -68
- package/esm2015/lib/shell-components/services/payment.service.js +103 -103
- package/esm2015/lib/shell-components/services/recentSearch.service.js +90 -90
- package/esm2015/lib/shell-components/services/shell.modules.service.js +24 -24
- package/esm2015/lib/shell-components/services/signalr.service.js +113 -113
- package/esm2015/lib/shell-components/services/theme.service.js +161 -161
- package/esm2015/lib/shell-components/shell.module.js +450 -450
- package/esm2015/lib/shell-components/shell.routing.js +16 -16
- package/esm2015/lib/shell-components/store/actions/authentication.actions.js +260 -260
- package/esm2015/lib/shell-components/store/actions/chat.actions.js +248 -248
- package/esm2015/lib/shell-components/store/actions/menuitems.actions.js +39 -39
- package/esm2015/lib/shell-components/store/actions/notification-validator.action.js +19 -19
- package/esm2015/lib/shell-components/store/actions/notifications.actions.js +74 -74
- package/esm2015/lib/shell-components/store/effects/authentication.effects.js +503 -503
- package/esm2015/lib/shell-components/store/effects/chat.effects.js +139 -139
- package/esm2015/lib/shell-components/store/effects/index.js +13 -13
- package/esm2015/lib/shell-components/store/effects/menuitems.effects.js +53 -53
- package/esm2015/lib/shell-components/store/effects/notification-validator.effects.js +56 -56
- package/esm2015/lib/shell-components/store/effects/notifications.effects.js +116 -116
- package/esm2015/lib/shell-components/store/reducers/authentication.reducers.js +86 -86
- package/esm2015/lib/shell-components/store/reducers/chat.reducers.js +68 -68
- package/esm2015/lib/shell-components/store/reducers/index.js +80 -80
- package/esm2015/lib/shell-components/store/reducers/menuitems.reducers.js +56 -56
- package/esm2015/lib/shell-components/store/reducers/notification-validator.reducers.js +13 -13
- package/esm2015/lib/shell-components/store/reducers/notifications.reducers.js +38 -38
- package/esm2015/public-api.js +92 -92
- package/esm2015/store/reducers/index.js +47 -47
- package/esm2015/thetradeengineorg1-snova-shell-module.js +4 -4
- package/fesm2015/thetradeengineorg1-snova-shell-module.js +16979 -16979
- package/fesm2015/thetradeengineorg1-snova-shell-module.js.map +1 -1
- package/lib/globaldependencies/components/avatar.component.d.ts +10 -10
- package/lib/globaldependencies/components/componentbase.d.ts +455 -455
- package/lib/globaldependencies/constants/feature-ids.d.ts +448 -448
- package/lib/globaldependencies/constants/localstorage-properties.d.ts +37 -37
- package/lib/globaldependencies/helpers/dom.helper.d.ts +7 -7
- package/lib/globaldependencies/helpers/fontawesome-icons.d.ts +1 -1
- package/lib/globaldependencies/helpers/moment-utc-date-adapter.d.ts +9 -9
- package/lib/globaldependencies/helpers/window.helper.d.ts +12 -12
- package/lib/globaldependencies/intercepter/jwt.interceptor.d.ts +11 -11
- package/lib/globaldependencies/pipes/fetchSizedAndCachedImage.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/highLightText.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/orderby-pipe.d.ts +9 -9
- package/lib/globaldependencies/pipes/removeSpecialCharacters.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/sanitize.pipe.d.ts +11 -11
- package/lib/globaldependencies/pipes/softlabels.pipes.d.ts +8 -8
- package/lib/globaldependencies/pipes/utctolocaltime.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/utctolocaltimewithdate.pipe.d.ts +8 -8
- package/lib/globaldependencies/pipes/workflowstatus.pipes.d.ts +8 -8
- package/lib/shell-components/components/Payments/account.component.d.ts +14 -14
- package/lib/shell-components/components/Payments/company-information.d.ts +62 -62
- package/lib/shell-components/components/Payments/company-plans.component.d.ts +47 -47
- package/lib/shell-components/components/Payments/document.component.d.ts +20 -20
- package/lib/shell-components/components/Payments/payment-method.component.d.ts +15 -15
- package/lib/shell-components/components/Payments/product-service.component.d.ts +48 -48
- package/lib/shell-components/components/Payments/purchase-more-licenses.d.ts +37 -37
- package/lib/shell-components/components/Payments/transactions.component.d.ts +28 -28
- package/lib/shell-components/components/admin-layout/admin-layout.component.d.ts +67 -67
- package/lib/shell-components/components/all-work-items-dialog/all-work-items-dialog.component.d.ts +32 -32
- package/lib/shell-components/components/confirmation-dialog/confirmation-dialog.component.d.ts +32 -32
- package/lib/shell-components/components/export-import-configuration/export-configuration.component.d.ts +60 -60
- package/lib/shell-components/components/feed-time/feed-time-dialog.component.d.ts +33 -33
- package/lib/shell-components/components/feed-time/feed-time.component.d.ts +27 -27
- package/lib/shell-components/components/header-side/header-side.component.d.ts +220 -220
- package/lib/shell-components/components/header-top/header-top.component.d.ts +40 -40
- package/lib/shell-components/components/lives/lives-welcome-page.d.ts +14 -14
- package/lib/shell-components/components/menu/menu.component.d.ts +220 -220
- package/lib/shell-components/components/menu/searchTask.enum.d.ts +8 -8
- package/lib/shell-components/components/notifications/announcement-dialog.component.d.ts +27 -27
- package/lib/shell-components/components/notifications/notifications.component.d.ts +53 -53
- package/lib/shell-components/components/sidebar-top/sidebar-top.component.d.ts +10 -10
- package/lib/shell-components/components/sidenav/side-bar.component.d.ts +23 -23
- package/lib/shell-components/components/sidenav/sidenav.component.d.ts +17 -17
- package/lib/shell-components/components/submit-feedback/submit-feedback.component.d.ts +25 -25
- package/lib/shell-components/constants/api-urls.d.ts +1051 -1051
- package/lib/shell-components/constants/available-languages.d.ts +7 -7
- package/lib/shell-components/constants/channel-names.d.ts +37 -37
- package/lib/shell-components/constants/menu-categories.d.ts +5 -5
- package/lib/shell-components/constants/notification-routes.d.ts +5 -5
- package/lib/shell-components/constants/notification-type-ids.d.ts +41 -41
- package/lib/shell-components/enum/recentSearchType.enum.d.ts +11 -11
- package/lib/shell-components/models/AppMenuItemModel.d.ts +12 -12
- package/lib/shell-components/models/AppNotification.d.ts +12 -12
- package/lib/shell-components/models/AssetAssignedNotificationModel.d.ts +10 -10
- package/lib/shell-components/models/ChannelUpdateModel.d.ts +47 -47
- package/lib/shell-components/models/EmployeeStatusModel.d.ts +11 -11
- package/lib/shell-components/models/IAdjust-screen-options.d.ts +4 -4
- package/lib/shell-components/models/IBadge.d.ts +4 -4
- package/lib/shell-components/models/IChildItem.d.ts +7 -7
- package/lib/shell-components/models/ILayout-change-options.d.ts +4 -4
- package/lib/shell-components/models/IMenuItem.d.ts +14 -14
- package/lib/shell-components/models/IlayoutConf.d.ts +10 -10
- package/lib/shell-components/models/IntroModel.d.ts +3 -3
- package/lib/shell-components/models/MessageDetails.d.ts +55 -55
- package/lib/shell-components/models/MessageTypingDetails.d.ts +9 -9
- package/lib/shell-components/models/NewProjectCreatedNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/NewProjectFeatureNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/NotificationsOutPutModel.d.ts +41 -41
- package/lib/shell-components/models/ProjectSearchCriteriaInputModel.d.ts +10 -10
- package/lib/shell-components/models/RecentSearchModel.d.ts +14 -14
- package/lib/shell-components/models/ReportConfigAssignedNotification.d.ts +9 -9
- package/lib/shell-components/models/ReportSubmittedNotification.d.ts +10 -10
- package/lib/shell-components/models/RoleUpdatedNotification.d.ts +7 -7
- package/lib/shell-components/models/UserStoryAssignedNotification.d.ts +8 -8
- package/lib/shell-components/models/archiveUserStoryModel.d.ts +7 -7
- package/lib/shell-components/models/companieslist.model.d.ts +8 -8
- package/lib/shell-components/models/company-model.d.ts +31 -31
- package/lib/shell-components/models/company-payment-model.d.ts +18 -18
- package/lib/shell-components/models/dragedWidget.d.ts +16 -16
- package/lib/shell-components/models/employee-List.d.ts +8 -8
- package/lib/shell-components/models/employee.d.ts +60 -60
- package/lib/shell-components/models/entityRoleFeature.d.ts +9 -9
- package/lib/shell-components/models/export-configuration-model.d.ts +8 -8
- package/lib/shell-components/models/export-data.module.d.ts +6 -6
- package/lib/shell-components/models/goalApprovedNotificationModel.d.ts +8 -8
- package/lib/shell-components/models/import-configuration-model.d.ts +3 -3
- package/lib/shell-components/models/initialStatusofUsers.d.ts +5 -5
- package/lib/shell-components/models/invoiceOutput-model.d.ts +9 -9
- package/lib/shell-components/models/leaveApplicationNotifiction.d.ts +7 -7
- package/lib/shell-components/models/multiChartsScheduling.d.ts +9 -9
- package/lib/shell-components/models/parkUserStoryInputModel.d.ts +7 -7
- package/lib/shell-components/models/project.d.ts +28 -28
- package/lib/shell-components/models/recentSearchApiModel.d.ts +6 -6
- package/lib/shell-components/models/searchCriteriaInputModelBase.d.ts +10 -10
- package/lib/shell-components/models/shellModulesInfo.d.ts +16 -16
- package/lib/shell-components/models/softlabels-model.d.ts +66 -66
- package/lib/shell-components/models/sprintReplanRequestedModel.d.ts +7 -7
- package/lib/shell-components/models/sprintStartedNotificationModel.d.ts +7 -7
- package/lib/shell-components/models/store-model.d.ts +13 -13
- package/lib/shell-components/models/store-search-model.d.ts +7 -7
- package/lib/shell-components/models/themes.model.d.ts +9 -9
- package/lib/shell-components/models/timesheetenabledisable.d.ts +16 -16
- package/lib/shell-components/models/user.d.ts +40 -40
- package/lib/shell-components/models/userStory.d.ts +188 -188
- package/lib/shell-components/models/userStoryCommentNotificationModel.d.ts +6 -6
- package/lib/shell-components/models/userStoryUpdateNotificationModel.d.ts +6 -6
- package/lib/shell-components/models/userstory-custom-fields.model.d.ts +6 -6
- package/lib/shell-components/models/validation.model.d.ts +5 -5
- package/lib/shell-components/models/widgetlist.d.ts +28 -28
- package/lib/shell-components/models/workspaceList.d.ts +19 -19
- package/lib/shell-components/services/authentication.service.d.ts +18 -18
- package/lib/shell-components/services/chat.service.d.ts +16 -16
- package/lib/shell-components/services/common-used.service.d.ts +45 -45
- package/lib/shell-components/services/feature.service.d.ts +19 -19
- package/lib/shell-components/services/google-analytics.service.d.ts +9 -9
- package/lib/shell-components/services/layout.service.d.ts +23 -23
- package/lib/shell-components/services/payment.service.d.ts +19 -19
- package/lib/shell-components/services/recentSearch.service.d.ts +16 -16
- package/lib/shell-components/services/shell.modules.service.d.ts +9 -9
- package/lib/shell-components/services/signalr.service.d.ts +25 -25
- package/lib/shell-components/services/theme.service.d.ts +14 -14
- package/lib/shell-components/shell.module.d.ts +119 -119
- package/lib/shell-components/shell.routing.d.ts +2 -2
- package/lib/shell-components/store/actions/authentication.actions.d.ts +327 -327
- package/lib/shell-components/store/actions/chat.actions.d.ts +399 -399
- package/lib/shell-components/store/actions/menuitems.actions.d.ts +51 -51
- package/lib/shell-components/store/actions/notification-validator.action.d.ts +25 -25
- package/lib/shell-components/store/actions/notifications.actions.d.ts +116 -116
- package/lib/shell-components/store/effects/authentication.effects.d.ts +54 -54
- package/lib/shell-components/store/effects/chat.effects.d.ts +30 -30
- package/lib/shell-components/store/effects/index.d.ts +1 -1
- package/lib/shell-components/store/effects/menuitems.effects.d.ts +17 -17
- package/lib/shell-components/store/effects/notification-validator.effects.d.ts +21 -21
- package/lib/shell-components/store/effects/notifications.effects.d.ts +23 -23
- package/lib/shell-components/store/reducers/authentication.reducers.d.ts +30 -30
- package/lib/shell-components/store/reducers/chat.reducers.d.ts +17 -17
- package/lib/shell-components/store/reducers/index.d.ts +59 -59
- package/lib/shell-components/store/reducers/menuitems.reducers.d.ts +11 -11
- package/lib/shell-components/store/reducers/notification-validator.reducers.d.ts +5 -5
- package/lib/shell-components/store/reducers/notifications.reducers.d.ts +10 -10
- package/package.json +1 -1
- package/public-api.d.ts +82 -82
- package/store/reducers/index.d.ts +24 -24
- package/thetradeengineorg1-snova-shell-module.d.ts +5 -5
|
@@ -1,346 +1,346 @@
|
|
|
1
|
-
import { Injectable, Pipe } from "@angular/core";
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class SoftLabelPipe {
|
|
4
|
-
transform(searchText, softLabels) {
|
|
5
|
-
let replaceText;
|
|
6
|
-
if (!softLabels || softLabels.length === 0) {
|
|
7
|
-
return searchText;
|
|
8
|
-
}
|
|
9
|
-
if (searchText && searchText.trim()) {
|
|
10
|
-
if (searchText.toLowerCase().match(/(^|\W)project($|\W)/)) {
|
|
11
|
-
replaceText = softLabels[0].projectLabel;
|
|
12
|
-
let re = /project/gi;
|
|
13
|
-
if (replaceText) {
|
|
14
|
-
searchText = searchText.replace(re, replaceText);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
if (searchText.toLowerCase().match(/(^|\W)deadline($|\W)/)) {
|
|
18
|
-
replaceText = softLabels[0].deadlineLabel;
|
|
19
|
-
let re = /deadline/gi;
|
|
20
|
-
if (replaceText) {
|
|
21
|
-
searchText = searchText.replace(re, replaceText);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
if (searchText.toLowerCase().match(/(^|\W)goal($|\W)/)) {
|
|
25
|
-
replaceText = softLabels[0].goalLabel;
|
|
26
|
-
let re = /goal/gi;
|
|
27
|
-
if (replaceText) {
|
|
28
|
-
searchText = searchText.replace(re, replaceText);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
if (searchText.toLowerCase().match(/(^|\W)work item($|\W)/)) {
|
|
32
|
-
replaceText = softLabels[0].userStoryLabel;
|
|
33
|
-
let re = /work item/gi;
|
|
34
|
-
if (replaceText) {
|
|
35
|
-
searchText = searchText.replace(re, replaceText);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
if (searchText.toLowerCase().match(/(^|\W)employee($|\W)/)) {
|
|
39
|
-
replaceText = softLabels[0].employeeLabel;
|
|
40
|
-
let re = /employee/gi;
|
|
41
|
-
if (replaceText) {
|
|
42
|
-
searchText = searchText.replace(re, replaceText);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
if (searchText.toLowerCase().match(/(^|\W)projects($|\W)/)) {
|
|
46
|
-
replaceText = softLabels[0].projectsLabel;
|
|
47
|
-
let re = /projects/gi;
|
|
48
|
-
if (replaceText) {
|
|
49
|
-
searchText = searchText.replace(re, replaceText);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (searchText.toLowerCase().match(/(^|\W)deadlines($|\W)/)) {
|
|
53
|
-
replaceText = softLabels[0].deadlinesLabel;
|
|
54
|
-
let re = /deadlines/gi;
|
|
55
|
-
if (replaceText) {
|
|
56
|
-
searchText = searchText.replace(re, replaceText);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
if (searchText.toLowerCase().match(/(^|\W)goals($|\W)/)) {
|
|
60
|
-
replaceText = softLabels[0].goalsLabel;
|
|
61
|
-
let re = /goals/gi;
|
|
62
|
-
if (replaceText) {
|
|
63
|
-
searchText = searchText.replace(re, replaceText);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
if (searchText.toLowerCase().match(/(^|\W)work items($|\W)/)) {
|
|
67
|
-
replaceText = softLabels[0].userStoriesLabel;
|
|
68
|
-
let re = /work items/gi;
|
|
69
|
-
if (replaceText) {
|
|
70
|
-
searchText = searchText.replace(re, replaceText);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
if (searchText.toLowerCase().match(/(^|\W)employees($|\W)/)) {
|
|
74
|
-
replaceText = softLabels[0].employeesLabel;
|
|
75
|
-
let re = /employees/gi;
|
|
76
|
-
if (replaceText) {
|
|
77
|
-
searchText = searchText.replace(re, replaceText);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (searchText.toLowerCase().match(/(^|\W)scenario($|\W)/)) {
|
|
81
|
-
replaceText = softLabels[0].scenarioLabel;
|
|
82
|
-
let re = /scenario/gi;
|
|
83
|
-
if (replaceText) {
|
|
84
|
-
searchText = searchText.replace(re, replaceText);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
if (searchText.toLowerCase().match(/(^|\W)test suite($|\W)/)) {
|
|
88
|
-
replaceText = softLabels[0].scenariosLabel;
|
|
89
|
-
let re = /test suite/gi;
|
|
90
|
-
if (replaceText) {
|
|
91
|
-
searchText = searchText.replace(re, replaceText);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (searchText.toLowerCase().match(/(^|\W)test suites($|\W)/)) {
|
|
95
|
-
replaceText = softLabels[0].scenarioLabel;
|
|
96
|
-
let re = /test suites/gi;
|
|
97
|
-
if (replaceText) {
|
|
98
|
-
searchText = searchText.replace(re, replaceText);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
if (searchText.toLowerCase().match(/(^|\W)scenarios($|\W)/)) {
|
|
102
|
-
replaceText = softLabels[0].scenariosLabel;
|
|
103
|
-
let re = /scenarios/gi;
|
|
104
|
-
if (replaceText) {
|
|
105
|
-
searchText = searchText.replace(re, replaceText);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
if (searchText.toLowerCase().match(/(^|\W)run($|\W)/)) {
|
|
109
|
-
replaceText = softLabels[0].runLabel;
|
|
110
|
-
let re = /run/gi;
|
|
111
|
-
if (replaceText) {
|
|
112
|
-
searchText = searchText.replace(re, replaceText);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
if (searchText.toLowerCase().match(/(^|\W)runs($|\W)/)) {
|
|
116
|
-
replaceText = softLabels[0].runsLabel;
|
|
117
|
-
let re = /runs/gi;
|
|
118
|
-
if (replaceText) {
|
|
119
|
-
searchText = searchText.replace(re, replaceText);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (searchText.toLowerCase().match(/(^|\W)test suite($|\W)/)) {
|
|
123
|
-
replaceText = softLabels[0].runLabel;
|
|
124
|
-
let re = /run/gi;
|
|
125
|
-
if (replaceText) {
|
|
126
|
-
searchText = searchText.replace(re, replaceText);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (searchText.toLowerCase().match(/(^|\W)test suites($|\W)/)) {
|
|
130
|
-
replaceText = softLabels[0].runsLabel;
|
|
131
|
-
let re = /runs/gi;
|
|
132
|
-
if (replaceText) {
|
|
133
|
-
searchText = searchText.replace(re, replaceText);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (searchText.toLowerCase().match(/(^|\W)version($|\W)/)) {
|
|
137
|
-
replaceText = softLabels[0].versionLabel;
|
|
138
|
-
let re = /version/gi;
|
|
139
|
-
if (replaceText) {
|
|
140
|
-
searchText = searchText.replace(re, replaceText);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
if (searchText.toLowerCase().match(/(^|\W)versions($|\W)/)) {
|
|
144
|
-
replaceText = softLabels[0].versionsLabel;
|
|
145
|
-
let re = /versions/gi;
|
|
146
|
-
if (replaceText) {
|
|
147
|
-
searchText = searchText.replace(re, replaceText);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
if (searchText.toLowerCase().match(/(^|\W)test report($|\W)/)) {
|
|
151
|
-
replaceText = softLabels[0].testReportLabel;
|
|
152
|
-
let re = /test report/gi;
|
|
153
|
-
if (replaceText) {
|
|
154
|
-
searchText = searchText.replace(re, replaceText);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
if (searchText.toLowerCase().match(/(^|\W)test reports($|\W)/)) {
|
|
158
|
-
replaceText = softLabels[0].testReportsLabel;
|
|
159
|
-
let re = /test reports/gi;
|
|
160
|
-
if (replaceText) {
|
|
161
|
-
searchText = searchText.replace(re, replaceText);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
if (searchText.toLowerCase().match(/(^|\W)estimated time($|\W)/)) {
|
|
165
|
-
replaceText = softLabels[0].estimatedTimeLabel;
|
|
166
|
-
let re = /estimated time/gi;
|
|
167
|
-
if (replaceText) {
|
|
168
|
-
searchText = searchText.replace(re, replaceText);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
if (searchText.toLowerCase().match(/(^|\W)estimation($|\W)/)) {
|
|
172
|
-
replaceText = softLabels[0].estimationLabel;
|
|
173
|
-
let re = /estimation/gi;
|
|
174
|
-
if (replaceText) {
|
|
175
|
-
searchText = searchText.replace(re, replaceText);
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
if (searchText.toLowerCase().match(/(^|\W)estimations($|\W)/)) {
|
|
179
|
-
replaceText = softLabels[0].estimationsLabel;
|
|
180
|
-
let re = /estimations/gi;
|
|
181
|
-
if (replaceText) {
|
|
182
|
-
searchText = searchText.replace(re, replaceText);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
if (searchText.toLowerCase().match(/(^|\W)estimate($|\W)/)) {
|
|
186
|
-
replaceText = softLabels[0].estimateLabel;
|
|
187
|
-
let re = /estimate/gi;
|
|
188
|
-
if (replaceText) {
|
|
189
|
-
searchText = searchText.replace(re, replaceText);
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
if (searchText.toLowerCase().match(/(^|\W)estimates($|\W)/)) {
|
|
193
|
-
replaceText = softLabels[0].estimatesLabel;
|
|
194
|
-
let re = /estimates/gi;
|
|
195
|
-
if (replaceText) {
|
|
196
|
-
searchText = searchText.replace(re, replaceText);
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
if (searchText.toLowerCase().match(/(^|\W)audits($|\W)/)) {
|
|
200
|
-
replaceText = softLabels[0].auditsLabel;
|
|
201
|
-
let re = /audits/gi;
|
|
202
|
-
if (replaceText) {
|
|
203
|
-
searchText = searchText.replace(re, replaceText);
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
if (searchText.toLowerCase().match(/(^|\W)conduct($|\W)/)) {
|
|
207
|
-
replaceText = softLabels[0].conductLabel;
|
|
208
|
-
let re = /conduct/gi;
|
|
209
|
-
if (replaceText) {
|
|
210
|
-
searchText = searchText.replace(re, replaceText);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
if (searchText.toLowerCase().match(/(^|\W)conducts($|\W)/)) {
|
|
214
|
-
replaceText = softLabels[0].conductsLabel;
|
|
215
|
-
let re = /conducts/gi;
|
|
216
|
-
if (replaceText) {
|
|
217
|
-
searchText = searchText.replace(re, replaceText);
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
if (searchText.toLowerCase().match(/(^|\W)action($|\W)/)) {
|
|
221
|
-
replaceText = softLabels[0].actionLabel;
|
|
222
|
-
let re = /action/gi;
|
|
223
|
-
if (replaceText) {
|
|
224
|
-
searchText = searchText.replace(re, replaceText);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
if (searchText.toLowerCase().match(/(^|\W)actions($|\W)/)) {
|
|
228
|
-
replaceText = softLabels[0].actionsLabel;
|
|
229
|
-
let re = /actions/gi;
|
|
230
|
-
if (replaceText) {
|
|
231
|
-
searchText = searchText.replace(re, replaceText);
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
if (searchText.toLowerCase().match(/(^|\W)timeline($|\W)/)) {
|
|
235
|
-
replaceText = softLabels[0].timelineLabel;
|
|
236
|
-
let re = /timeline/gi;
|
|
237
|
-
if (replaceText) {
|
|
238
|
-
searchText = searchText.replace(re, replaceText);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
if (searchText.toLowerCase() == "audit report") {
|
|
242
|
-
replaceText = softLabels[0].auditReportLabel;
|
|
243
|
-
let re = /audit report/gi;
|
|
244
|
-
if (replaceText) {
|
|
245
|
-
searchText = searchText.replace(re, replaceText);
|
|
246
|
-
}
|
|
247
|
-
}
|
|
248
|
-
if (searchText.toLowerCase() == "audit reports") {
|
|
249
|
-
replaceText = softLabels[0].auditReportsLabel;
|
|
250
|
-
let re = /audit reports/gi;
|
|
251
|
-
if (replaceText) {
|
|
252
|
-
searchText = searchText.replace(re, replaceText);
|
|
253
|
-
}
|
|
254
|
-
}
|
|
255
|
-
if (searchText.toLowerCase().match(/(^|\W)audit activity($|\W)/)) {
|
|
256
|
-
replaceText = softLabels[0].auditActivityLabel;
|
|
257
|
-
let re = /audit activity/gi;
|
|
258
|
-
if (replaceText) {
|
|
259
|
-
searchText = searchText.replace(re, replaceText);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
if (searchText.toLowerCase().match(/(^|\W)audit analytics($|\W)/)) {
|
|
263
|
-
replaceText = softLabels[0].auditAnalyticsLabel;
|
|
264
|
-
let re = /audit analytics/gi;
|
|
265
|
-
if (replaceText) {
|
|
266
|
-
searchText = searchText.replace(re, replaceText);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
if (searchText.toLowerCase().match(/(^|\W)client($|\W)/)) {
|
|
270
|
-
replaceText = softLabels[0].clientLabel;
|
|
271
|
-
let re = /client/gi;
|
|
272
|
-
if (replaceText) {
|
|
273
|
-
searchText = searchText.replace(re, replaceText);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
if (searchText.toLowerCase().match(/(^|\W)clients($|\W)/)) {
|
|
277
|
-
replaceText = softLabels[0].clientsLabel;
|
|
278
|
-
let re = /clients/gi;
|
|
279
|
-
if (replaceText) {
|
|
280
|
-
searchText = searchText.replace(re, replaceText);
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
if (searchText.toLowerCase().match(/(^|\W)question($|\W)/)) {
|
|
284
|
-
replaceText = softLabels[0].auditQuestionLabel;
|
|
285
|
-
let re = /question/gi;
|
|
286
|
-
if (replaceText) {
|
|
287
|
-
searchText = searchText.replace(re, replaceText);
|
|
288
|
-
}
|
|
289
|
-
}
|
|
290
|
-
if (searchText.toLowerCase().match(/(^|\W)questions($|\W)/)) {
|
|
291
|
-
replaceText = softLabels[0].auditQuestionsLabel;
|
|
292
|
-
let re = /questions/gi;
|
|
293
|
-
if (replaceText) {
|
|
294
|
-
searchText = searchText.replace(re, replaceText);
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
if (searchText.toLowerCase().match(/(^|\W)report($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
298
|
-
replaceText = softLabels[0].reportLabel;
|
|
299
|
-
let re = /report/gi;
|
|
300
|
-
if (replaceText) {
|
|
301
|
-
searchText = searchText.replace(re, replaceText);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
if (searchText.toLowerCase().match(/(^|\W)reports($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
305
|
-
replaceText = softLabels[0].reportsLabel;
|
|
306
|
-
let re = /reports/gi;
|
|
307
|
-
if (replaceText) {
|
|
308
|
-
searchText = searchText.replace(re, replaceText);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
if (searchText.toLowerCase().match(/(^|\W)audit($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
312
|
-
replaceText = softLabels[0].auditLabel;
|
|
313
|
-
let re = /audit/gi;
|
|
314
|
-
if (replaceText) {
|
|
315
|
-
searchText = searchText.replace(re, replaceText);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
if (!searchText.includes('estimated time')) {
|
|
319
|
-
let searchString = searchText.split('.');
|
|
320
|
-
let str = "";
|
|
321
|
-
searchString.forEach(function (item) {
|
|
322
|
-
if (item.trim() != "") {
|
|
323
|
-
if (item != "HR" && !item.includes('h'))
|
|
324
|
-
item = item.trim().charAt(0).toUpperCase() + item.trim().substr(1).toLowerCase();
|
|
325
|
-
str = str != "" ? (str + ". " + item + ".") : item;
|
|
326
|
-
}
|
|
327
|
-
});
|
|
328
|
-
searchText = str;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
return searchText;
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
SoftLabelPipe.ɵfac = function SoftLabelPipe_Factory(t) { return new (t || SoftLabelPipe)(); };
|
|
335
|
-
SoftLabelPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "softLabelsPipe", type: SoftLabelPipe, pure: true });
|
|
336
|
-
SoftLabelPipe.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SoftLabelPipe, factory: SoftLabelPipe.ɵfac, providedIn: 'root' });
|
|
337
|
-
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SoftLabelPipe, [{
|
|
338
|
-
type: Pipe,
|
|
339
|
-
args: [{
|
|
340
|
-
name: "softLabelsPipe"
|
|
341
|
-
}]
|
|
342
|
-
}, {
|
|
343
|
-
type: Injectable,
|
|
344
|
-
args: [{ providedIn: 'root' }]
|
|
345
|
-
}], null, null); })();
|
|
346
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdGxhYmVscy5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9nbG9iYWxkZXBlbmRlbmNpZXMvcGlwZXMvc29mdGxhYmVscy5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTWhFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxVQUFrQixFQUFFLFVBQWlCO1FBQzdDLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3pELFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUN6QyxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUM7Z0JBQ3JCLElBQUksV0FBVyxFQUFFO29CQUNmLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDbEQ7YUFDRjtZQUNELElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUMxRCxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDO2dCQUN0QixJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFVLEdBQUcsVUFBVSxDQUFDLE9B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QVcsRUFBRSxDQUFDO3dCQUNuRixHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3FCQUNwRDtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxVQUFVLEdBQUcsR0FBRyxDQUFDO2FBQ2xCO1NBQ0Y7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzswRUE3VVUsYUFBYTtvRkFBYixhQUFhO21FQUFiLGFBQWEsV0FBYixhQUFhLG1CQURBLE1BQU07dUZBQ25CLGFBQWE7Y0FKekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxnQkFBZ0I7YUFDdkI7O2NBQ0EsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgKiBhcyBfIGZyb20gXCJ1bmRlcnNjb3JlXCI7XHJcbkBQaXBlKHtcclxuICBuYW1lOiBcInNvZnRMYWJlbHNQaXBlXCJcclxufSlcclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFNvZnRMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0cmFuc2Zvcm0oc2VhcmNoVGV4dDogc3RyaW5nLCBzb2Z0TGFiZWxzOiBhbnlbXSk6IHN0cmluZyB7XHJcbiAgICBsZXQgcmVwbGFjZVRleHQ7XHJcbiAgICBpZiAoIXNvZnRMYWJlbHMgfHwgc29mdExhYmVscy5sZW5ndGggPT09IDApIHtcclxuICAgICAgcmV0dXJuIHNlYXJjaFRleHQ7XHJcbiAgICB9XHJcbiAgICBpZiAoc2VhcmNoVGV4dCAmJiBzZWFyY2hUZXh0LnRyaW0oKSkge1xyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpcHJvamVjdCgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5wcm9qZWN0TGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3Byb2plY3QvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylkZWFkbGluZSgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5kZWFkbGluZUxhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9kZWFkbGluZS9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWdvYWwoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uZ29hbExhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9nb2FsL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpd29yayBpdGVtKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnVzZXJTdG9yeUxhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC93b3JrIGl0ZW0vZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyllbXBsb3llZSgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lbXBsb3llZUxhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9lbXBsb3llZS9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXByb2plY3RzKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnByb2plY3RzTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3Byb2plY3RzL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZGVhZGxpbmVzKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmRlYWRsaW5lc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9kZWFkbGluZXMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylnb2FscygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5nb2Fsc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9nb2Fscy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXdvcmsgaXRlbXMoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0udXNlclN0b3JpZXNMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvd29yayBpdGVtcy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWVtcGxveWVlcygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lbXBsb3llZXNMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvZW1wbG95ZWVzL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpc2NlbmFyaW8oJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uc2NlbmFyaW9MYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvc2NlbmFyaW8vZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHN1aXRlKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnNjZW5hcmlvc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC90ZXN0IHN1aXRlL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdGVzdCBzdWl0ZXMoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uc2NlbmFyaW9MYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvdGVzdCBzdWl0ZXMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylzY2VuYXJpb3MoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uc2NlbmFyaW9zTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3NjZW5hcmlvcy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJ1bigkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5ydW5MYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvcnVuL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpcnVucygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5ydW5zTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3J1bnMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHN1aXRlKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnJ1bkxhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9ydW4vZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHN1aXRlcygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5ydW5zTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3J1bnMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl2ZXJzaW9uKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnZlcnNpb25MYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvdmVyc2lvbi9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXZlcnNpb25zKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnZlcnNpb25zTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3ZlcnNpb25zL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdGVzdCByZXBvcnQoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0udGVzdFJlcG9ydExhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC90ZXN0IHJlcG9ydC9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXRlc3QgcmVwb3J0cygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS50ZXN0UmVwb3J0c0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC90ZXN0IHJlcG9ydHMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyllc3RpbWF0ZWQgdGltZSgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lc3RpbWF0ZWRUaW1lTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2VzdGltYXRlZCB0aW1lL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGlvbigkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lc3RpbWF0aW9uTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2VzdGltYXRpb24vZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyllc3RpbWF0aW9ucygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lc3RpbWF0aW9uc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9lc3RpbWF0aW9ucy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWVzdGltYXRlKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmVzdGltYXRlTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2VzdGltYXRlL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGVzKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmVzdGltYXRlc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9lc3RpbWF0ZXMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylhdWRpdHMoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYXVkaXRzTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0cy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWNvbmR1Y3QoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uY29uZHVjdExhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9jb25kdWN0L2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY29uZHVjdHMoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uY29uZHVjdHNMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvY29uZHVjdHMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylhY3Rpb24oJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYWN0aW9uTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2FjdGlvbi9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWFjdGlvbnMoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYWN0aW9uc0xhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9hY3Rpb25zL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdGltZWxpbmUoJHxcXFcpLykpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0udGltZWxpbmVMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvdGltZWxpbmUvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgPT0gXCJhdWRpdCByZXBvcnRcIikge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdFJlcG9ydExhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9hdWRpdCByZXBvcnQvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgPT0gXCJhdWRpdCByZXBvcnRzXCIpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYXVkaXRSZXBvcnRzTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0IHJlcG9ydHMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylhdWRpdCBhY3Rpdml0eSgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdEFjdGl2aXR5TGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0IGFjdGl2aXR5L2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpYXVkaXQgYW5hbHl0aWNzKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmF1ZGl0QW5hbHl0aWNzTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0IGFuYWx5dGljcy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWNsaWVudCgkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5jbGllbnRMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvY2xpZW50L2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY2xpZW50cygkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5jbGllbnRzTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL2NsaWVudHMvZ2k7XHJcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XHJcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylxdWVzdGlvbigkfFxcVykvKSkge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdFF1ZXN0aW9uTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3F1ZXN0aW9uL2dpO1xyXG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xyXG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpcXVlc3Rpb25zKCR8XFxXKS8pKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmF1ZGl0UXVlc3Rpb25zTGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3F1ZXN0aW9ucy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJlcG9ydCgkfFxcVykvKSAmJiBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgIT0gXCJhdWRpdCByZXBvcnRcIiAmJiBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgIT0gXCJhdWRpdCByZXBvcnRzXCIpIHtcclxuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0ucmVwb3J0TGFiZWw7XHJcbiAgICAgICAgbGV0IHJlID0gL3JlcG9ydC9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJlcG9ydHMoJHxcXFcpLykgJiYgc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpICE9IFwiYXVkaXQgcmVwb3J0XCIgJiYgc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpICE9IFwiYXVkaXQgcmVwb3J0c1wiKSB7XHJcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnJlcG9ydHNMYWJlbDtcclxuICAgICAgICBsZXQgcmUgPSAvcmVwb3J0cy9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWF1ZGl0KCR8XFxXKS8pICYmIHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSAhPSBcImF1ZGl0IHJlcG9ydFwiICYmIHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSAhPSBcImF1ZGl0IHJlcG9ydHNcIikge1xyXG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdExhYmVsO1xyXG4gICAgICAgIGxldCByZSA9IC9hdWRpdC9naTtcclxuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcclxuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFzZWFyY2hUZXh0LmluY2x1ZGVzKCdlc3RpbWF0ZWQgdGltZScpKSB7XHJcbiAgICAgICAgbGV0IHNlYXJjaFN0cmluZyA9IHNlYXJjaFRleHQuc3BsaXQoJy4nKTtcclxuICAgICAgICBsZXQgc3RyID0gXCJcIjtcclxuXHJcbiAgICAgICAgc2VhcmNoU3RyaW5nLmZvckVhY2goZnVuY3Rpb24gKGl0ZW0pIHtcclxuXHJcbiAgICAgICAgICBpZiAoaXRlbS50cmltKCkgIT0gXCJcIikge1xyXG4gICAgICAgICAgICBpZiAoaXRlbSAhPSBcIkhSXCIgJiYgIWl0ZW0uaW5jbHVkZXMoJ2gnKSlcclxuICAgICAgICAgICAgICBpdGVtID0gaXRlbS50cmltKCkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBpdGVtLnRyaW0oKS5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICAgICAgc3RyID0gc3RyICE9IFwiXCIgPyAoc3RyICsgXCIuIFwiICsgaXRlbSArIFwiLlwiKSA6IGl0ZW07XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHNlYXJjaFRleHQgPSBzdHI7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc2VhcmNoVGV4dDtcclxuICB9XHJcbn1cclxuIl19
|
|
1
|
+
import { Injectable, Pipe } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SoftLabelPipe {
|
|
4
|
+
transform(searchText, softLabels) {
|
|
5
|
+
let replaceText;
|
|
6
|
+
if (!softLabels || softLabels.length === 0) {
|
|
7
|
+
return searchText;
|
|
8
|
+
}
|
|
9
|
+
if (searchText && searchText.trim()) {
|
|
10
|
+
if (searchText.toLowerCase().match(/(^|\W)project($|\W)/)) {
|
|
11
|
+
replaceText = softLabels[0].projectLabel;
|
|
12
|
+
let re = /project/gi;
|
|
13
|
+
if (replaceText) {
|
|
14
|
+
searchText = searchText.replace(re, replaceText);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
if (searchText.toLowerCase().match(/(^|\W)deadline($|\W)/)) {
|
|
18
|
+
replaceText = softLabels[0].deadlineLabel;
|
|
19
|
+
let re = /deadline/gi;
|
|
20
|
+
if (replaceText) {
|
|
21
|
+
searchText = searchText.replace(re, replaceText);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (searchText.toLowerCase().match(/(^|\W)goal($|\W)/)) {
|
|
25
|
+
replaceText = softLabels[0].goalLabel;
|
|
26
|
+
let re = /goal/gi;
|
|
27
|
+
if (replaceText) {
|
|
28
|
+
searchText = searchText.replace(re, replaceText);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (searchText.toLowerCase().match(/(^|\W)work item($|\W)/)) {
|
|
32
|
+
replaceText = softLabels[0].userStoryLabel;
|
|
33
|
+
let re = /work item/gi;
|
|
34
|
+
if (replaceText) {
|
|
35
|
+
searchText = searchText.replace(re, replaceText);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
if (searchText.toLowerCase().match(/(^|\W)employee($|\W)/)) {
|
|
39
|
+
replaceText = softLabels[0].employeeLabel;
|
|
40
|
+
let re = /employee/gi;
|
|
41
|
+
if (replaceText) {
|
|
42
|
+
searchText = searchText.replace(re, replaceText);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (searchText.toLowerCase().match(/(^|\W)projects($|\W)/)) {
|
|
46
|
+
replaceText = softLabels[0].projectsLabel;
|
|
47
|
+
let re = /projects/gi;
|
|
48
|
+
if (replaceText) {
|
|
49
|
+
searchText = searchText.replace(re, replaceText);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (searchText.toLowerCase().match(/(^|\W)deadlines($|\W)/)) {
|
|
53
|
+
replaceText = softLabels[0].deadlinesLabel;
|
|
54
|
+
let re = /deadlines/gi;
|
|
55
|
+
if (replaceText) {
|
|
56
|
+
searchText = searchText.replace(re, replaceText);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (searchText.toLowerCase().match(/(^|\W)goals($|\W)/)) {
|
|
60
|
+
replaceText = softLabels[0].goalsLabel;
|
|
61
|
+
let re = /goals/gi;
|
|
62
|
+
if (replaceText) {
|
|
63
|
+
searchText = searchText.replace(re, replaceText);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (searchText.toLowerCase().match(/(^|\W)work items($|\W)/)) {
|
|
67
|
+
replaceText = softLabels[0].userStoriesLabel;
|
|
68
|
+
let re = /work items/gi;
|
|
69
|
+
if (replaceText) {
|
|
70
|
+
searchText = searchText.replace(re, replaceText);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (searchText.toLowerCase().match(/(^|\W)employees($|\W)/)) {
|
|
74
|
+
replaceText = softLabels[0].employeesLabel;
|
|
75
|
+
let re = /employees/gi;
|
|
76
|
+
if (replaceText) {
|
|
77
|
+
searchText = searchText.replace(re, replaceText);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
if (searchText.toLowerCase().match(/(^|\W)scenario($|\W)/)) {
|
|
81
|
+
replaceText = softLabels[0].scenarioLabel;
|
|
82
|
+
let re = /scenario/gi;
|
|
83
|
+
if (replaceText) {
|
|
84
|
+
searchText = searchText.replace(re, replaceText);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
if (searchText.toLowerCase().match(/(^|\W)test suite($|\W)/)) {
|
|
88
|
+
replaceText = softLabels[0].scenariosLabel;
|
|
89
|
+
let re = /test suite/gi;
|
|
90
|
+
if (replaceText) {
|
|
91
|
+
searchText = searchText.replace(re, replaceText);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (searchText.toLowerCase().match(/(^|\W)test suites($|\W)/)) {
|
|
95
|
+
replaceText = softLabels[0].scenarioLabel;
|
|
96
|
+
let re = /test suites/gi;
|
|
97
|
+
if (replaceText) {
|
|
98
|
+
searchText = searchText.replace(re, replaceText);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (searchText.toLowerCase().match(/(^|\W)scenarios($|\W)/)) {
|
|
102
|
+
replaceText = softLabels[0].scenariosLabel;
|
|
103
|
+
let re = /scenarios/gi;
|
|
104
|
+
if (replaceText) {
|
|
105
|
+
searchText = searchText.replace(re, replaceText);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (searchText.toLowerCase().match(/(^|\W)run($|\W)/)) {
|
|
109
|
+
replaceText = softLabels[0].runLabel;
|
|
110
|
+
let re = /run/gi;
|
|
111
|
+
if (replaceText) {
|
|
112
|
+
searchText = searchText.replace(re, replaceText);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
if (searchText.toLowerCase().match(/(^|\W)runs($|\W)/)) {
|
|
116
|
+
replaceText = softLabels[0].runsLabel;
|
|
117
|
+
let re = /runs/gi;
|
|
118
|
+
if (replaceText) {
|
|
119
|
+
searchText = searchText.replace(re, replaceText);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (searchText.toLowerCase().match(/(^|\W)test suite($|\W)/)) {
|
|
123
|
+
replaceText = softLabels[0].runLabel;
|
|
124
|
+
let re = /run/gi;
|
|
125
|
+
if (replaceText) {
|
|
126
|
+
searchText = searchText.replace(re, replaceText);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
if (searchText.toLowerCase().match(/(^|\W)test suites($|\W)/)) {
|
|
130
|
+
replaceText = softLabels[0].runsLabel;
|
|
131
|
+
let re = /runs/gi;
|
|
132
|
+
if (replaceText) {
|
|
133
|
+
searchText = searchText.replace(re, replaceText);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
if (searchText.toLowerCase().match(/(^|\W)version($|\W)/)) {
|
|
137
|
+
replaceText = softLabels[0].versionLabel;
|
|
138
|
+
let re = /version/gi;
|
|
139
|
+
if (replaceText) {
|
|
140
|
+
searchText = searchText.replace(re, replaceText);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
if (searchText.toLowerCase().match(/(^|\W)versions($|\W)/)) {
|
|
144
|
+
replaceText = softLabels[0].versionsLabel;
|
|
145
|
+
let re = /versions/gi;
|
|
146
|
+
if (replaceText) {
|
|
147
|
+
searchText = searchText.replace(re, replaceText);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
if (searchText.toLowerCase().match(/(^|\W)test report($|\W)/)) {
|
|
151
|
+
replaceText = softLabels[0].testReportLabel;
|
|
152
|
+
let re = /test report/gi;
|
|
153
|
+
if (replaceText) {
|
|
154
|
+
searchText = searchText.replace(re, replaceText);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
if (searchText.toLowerCase().match(/(^|\W)test reports($|\W)/)) {
|
|
158
|
+
replaceText = softLabels[0].testReportsLabel;
|
|
159
|
+
let re = /test reports/gi;
|
|
160
|
+
if (replaceText) {
|
|
161
|
+
searchText = searchText.replace(re, replaceText);
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
if (searchText.toLowerCase().match(/(^|\W)estimated time($|\W)/)) {
|
|
165
|
+
replaceText = softLabels[0].estimatedTimeLabel;
|
|
166
|
+
let re = /estimated time/gi;
|
|
167
|
+
if (replaceText) {
|
|
168
|
+
searchText = searchText.replace(re, replaceText);
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (searchText.toLowerCase().match(/(^|\W)estimation($|\W)/)) {
|
|
172
|
+
replaceText = softLabels[0].estimationLabel;
|
|
173
|
+
let re = /estimation/gi;
|
|
174
|
+
if (replaceText) {
|
|
175
|
+
searchText = searchText.replace(re, replaceText);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
if (searchText.toLowerCase().match(/(^|\W)estimations($|\W)/)) {
|
|
179
|
+
replaceText = softLabels[0].estimationsLabel;
|
|
180
|
+
let re = /estimations/gi;
|
|
181
|
+
if (replaceText) {
|
|
182
|
+
searchText = searchText.replace(re, replaceText);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (searchText.toLowerCase().match(/(^|\W)estimate($|\W)/)) {
|
|
186
|
+
replaceText = softLabels[0].estimateLabel;
|
|
187
|
+
let re = /estimate/gi;
|
|
188
|
+
if (replaceText) {
|
|
189
|
+
searchText = searchText.replace(re, replaceText);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (searchText.toLowerCase().match(/(^|\W)estimates($|\W)/)) {
|
|
193
|
+
replaceText = softLabels[0].estimatesLabel;
|
|
194
|
+
let re = /estimates/gi;
|
|
195
|
+
if (replaceText) {
|
|
196
|
+
searchText = searchText.replace(re, replaceText);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
if (searchText.toLowerCase().match(/(^|\W)audits($|\W)/)) {
|
|
200
|
+
replaceText = softLabels[0].auditsLabel;
|
|
201
|
+
let re = /audits/gi;
|
|
202
|
+
if (replaceText) {
|
|
203
|
+
searchText = searchText.replace(re, replaceText);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (searchText.toLowerCase().match(/(^|\W)conduct($|\W)/)) {
|
|
207
|
+
replaceText = softLabels[0].conductLabel;
|
|
208
|
+
let re = /conduct/gi;
|
|
209
|
+
if (replaceText) {
|
|
210
|
+
searchText = searchText.replace(re, replaceText);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
if (searchText.toLowerCase().match(/(^|\W)conducts($|\W)/)) {
|
|
214
|
+
replaceText = softLabels[0].conductsLabel;
|
|
215
|
+
let re = /conducts/gi;
|
|
216
|
+
if (replaceText) {
|
|
217
|
+
searchText = searchText.replace(re, replaceText);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
if (searchText.toLowerCase().match(/(^|\W)action($|\W)/)) {
|
|
221
|
+
replaceText = softLabels[0].actionLabel;
|
|
222
|
+
let re = /action/gi;
|
|
223
|
+
if (replaceText) {
|
|
224
|
+
searchText = searchText.replace(re, replaceText);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
if (searchText.toLowerCase().match(/(^|\W)actions($|\W)/)) {
|
|
228
|
+
replaceText = softLabels[0].actionsLabel;
|
|
229
|
+
let re = /actions/gi;
|
|
230
|
+
if (replaceText) {
|
|
231
|
+
searchText = searchText.replace(re, replaceText);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
if (searchText.toLowerCase().match(/(^|\W)timeline($|\W)/)) {
|
|
235
|
+
replaceText = softLabels[0].timelineLabel;
|
|
236
|
+
let re = /timeline/gi;
|
|
237
|
+
if (replaceText) {
|
|
238
|
+
searchText = searchText.replace(re, replaceText);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
if (searchText.toLowerCase() == "audit report") {
|
|
242
|
+
replaceText = softLabels[0].auditReportLabel;
|
|
243
|
+
let re = /audit report/gi;
|
|
244
|
+
if (replaceText) {
|
|
245
|
+
searchText = searchText.replace(re, replaceText);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
if (searchText.toLowerCase() == "audit reports") {
|
|
249
|
+
replaceText = softLabels[0].auditReportsLabel;
|
|
250
|
+
let re = /audit reports/gi;
|
|
251
|
+
if (replaceText) {
|
|
252
|
+
searchText = searchText.replace(re, replaceText);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (searchText.toLowerCase().match(/(^|\W)audit activity($|\W)/)) {
|
|
256
|
+
replaceText = softLabels[0].auditActivityLabel;
|
|
257
|
+
let re = /audit activity/gi;
|
|
258
|
+
if (replaceText) {
|
|
259
|
+
searchText = searchText.replace(re, replaceText);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (searchText.toLowerCase().match(/(^|\W)audit analytics($|\W)/)) {
|
|
263
|
+
replaceText = softLabels[0].auditAnalyticsLabel;
|
|
264
|
+
let re = /audit analytics/gi;
|
|
265
|
+
if (replaceText) {
|
|
266
|
+
searchText = searchText.replace(re, replaceText);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
if (searchText.toLowerCase().match(/(^|\W)client($|\W)/)) {
|
|
270
|
+
replaceText = softLabels[0].clientLabel;
|
|
271
|
+
let re = /client/gi;
|
|
272
|
+
if (replaceText) {
|
|
273
|
+
searchText = searchText.replace(re, replaceText);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
if (searchText.toLowerCase().match(/(^|\W)clients($|\W)/)) {
|
|
277
|
+
replaceText = softLabels[0].clientsLabel;
|
|
278
|
+
let re = /clients/gi;
|
|
279
|
+
if (replaceText) {
|
|
280
|
+
searchText = searchText.replace(re, replaceText);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (searchText.toLowerCase().match(/(^|\W)question($|\W)/)) {
|
|
284
|
+
replaceText = softLabels[0].auditQuestionLabel;
|
|
285
|
+
let re = /question/gi;
|
|
286
|
+
if (replaceText) {
|
|
287
|
+
searchText = searchText.replace(re, replaceText);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
if (searchText.toLowerCase().match(/(^|\W)questions($|\W)/)) {
|
|
291
|
+
replaceText = softLabels[0].auditQuestionsLabel;
|
|
292
|
+
let re = /questions/gi;
|
|
293
|
+
if (replaceText) {
|
|
294
|
+
searchText = searchText.replace(re, replaceText);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
if (searchText.toLowerCase().match(/(^|\W)report($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
298
|
+
replaceText = softLabels[0].reportLabel;
|
|
299
|
+
let re = /report/gi;
|
|
300
|
+
if (replaceText) {
|
|
301
|
+
searchText = searchText.replace(re, replaceText);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
if (searchText.toLowerCase().match(/(^|\W)reports($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
305
|
+
replaceText = softLabels[0].reportsLabel;
|
|
306
|
+
let re = /reports/gi;
|
|
307
|
+
if (replaceText) {
|
|
308
|
+
searchText = searchText.replace(re, replaceText);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
if (searchText.toLowerCase().match(/(^|\W)audit($|\W)/) && searchText.toLowerCase() != "audit report" && searchText.toLowerCase() != "audit reports") {
|
|
312
|
+
replaceText = softLabels[0].auditLabel;
|
|
313
|
+
let re = /audit/gi;
|
|
314
|
+
if (replaceText) {
|
|
315
|
+
searchText = searchText.replace(re, replaceText);
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
if (!searchText.includes('estimated time')) {
|
|
319
|
+
let searchString = searchText.split('.');
|
|
320
|
+
let str = "";
|
|
321
|
+
searchString.forEach(function (item) {
|
|
322
|
+
if (item.trim() != "") {
|
|
323
|
+
if (item != "HR" && !item.includes('h'))
|
|
324
|
+
item = item.trim().charAt(0).toUpperCase() + item.trim().substr(1).toLowerCase();
|
|
325
|
+
str = str != "" ? (str + ". " + item + ".") : item;
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
searchText = str;
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
return searchText;
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
SoftLabelPipe.ɵfac = function SoftLabelPipe_Factory(t) { return new (t || SoftLabelPipe)(); };
|
|
335
|
+
SoftLabelPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "softLabelsPipe", type: SoftLabelPipe, pure: true });
|
|
336
|
+
SoftLabelPipe.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: SoftLabelPipe, factory: SoftLabelPipe.ɵfac, providedIn: 'root' });
|
|
337
|
+
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SoftLabelPipe, [{
|
|
338
|
+
type: Pipe,
|
|
339
|
+
args: [{
|
|
340
|
+
name: "softLabelsPipe"
|
|
341
|
+
}]
|
|
342
|
+
}, {
|
|
343
|
+
type: Injectable,
|
|
344
|
+
args: [{ providedIn: 'root' }]
|
|
345
|
+
}], null, null); })();
|
|
346
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29mdGxhYmVscy5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NoZWxsLW1vZHVsZS1jb21wb25lbnRzL3NoZWxsLWNvbXBvbmVudHMvc3JjL2xpYi9nbG9iYWxkZXBlbmRlbmNpZXMvcGlwZXMvc29mdGxhYmVscy5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBTWhFLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLFNBQVMsQ0FBQyxVQUFrQixFQUFFLFVBQWlCO1FBQzdDLElBQUksV0FBVyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxVQUFVLENBQUM7U0FDbkI7UUFDRCxJQUFJLFVBQVUsSUFBSSxVQUFVLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbkMsSUFBSSxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUMsS0FBSyxDQUFDLHFCQUFxQixDQUFDLEVBQUU7Z0JBQ3pELFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO2dCQUN6QyxJQUFJLEVBQUUsR0FBRyxXQUFXLENBQUM7Z0JBQ3JCLElBQUksV0FBVyxFQUFFO29CQUNmLFVBQVUsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztpQkFDbEQ7YUFDRjtZQUNELElBQUksVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUMxRCxXQUFXLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztnQkFDMUMsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDO2dCQUN0QixJQUFJLFdBQVcsRUFBRTtvQkFDZixVQUFVLEdBQUcsVUFBVSxDQUFDLE9B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QVcsRUFBRSxDQUFDO3dCQUNuRixHQUFHLEdBQUcsR0FBRyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO3FCQUNwRDtnQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFFSCxVQUFVLEdBQUcsR0FBRyxDQUFDO2FBQ2xCO1NBQ0Y7UUFFRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDOzswRUE3VVUsYUFBYTtvRkFBYixhQUFhO21FQUFiLGFBQWEsV0FBYixhQUFhLG1CQURBLE1BQU07dUZBQ25CLGFBQWE7Y0FKekIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxnQkFBZ0I7YUFDdkI7O2NBQ0EsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwidW5kZXJzY29yZVwiO1xuQFBpcGUoe1xuICBuYW1lOiBcInNvZnRMYWJlbHNQaXBlXCJcbn0pXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNvZnRMYWJlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHNlYXJjaFRleHQ6IHN0cmluZywgc29mdExhYmVsczogYW55W10pOiBzdHJpbmcge1xuICAgIGxldCByZXBsYWNlVGV4dDtcbiAgICBpZiAoIXNvZnRMYWJlbHMgfHwgc29mdExhYmVscy5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBzZWFyY2hUZXh0O1xuICAgIH1cbiAgICBpZiAoc2VhcmNoVGV4dCAmJiBzZWFyY2hUZXh0LnRyaW0oKSkge1xuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXByb2plY3QoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnByb2plY3RMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3Byb2plY3QvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWRlYWRsaW5lKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5kZWFkbGluZUxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvZGVhZGxpbmUvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWdvYWwoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmdvYWxMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2dvYWwvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXdvcmsgaXRlbSgkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0udXNlclN0b3J5TGFiZWw7XG4gICAgICAgIGxldCByZSA9IC93b3JrIGl0ZW0vZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWVtcGxveWVlKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lbXBsb3llZUxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvZW1wbG95ZWUvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXByb2plY3RzKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5wcm9qZWN0c0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvcHJvamVjdHMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWRlYWRsaW5lcygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uZGVhZGxpbmVzTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9kZWFkbGluZXMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWdvYWxzKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5nb2Fsc0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvZ29hbHMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXdvcmsgaXRlbXMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnVzZXJTdG9yaWVzTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC93b3JrIGl0ZW1zL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyllbXBsb3llZXMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmVtcGxveWVlc0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvZW1wbG95ZWVzL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylzY2VuYXJpbygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uc2NlbmFyaW9MYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3NjZW5hcmlvL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHN1aXRlKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5zY2VuYXJpb3NMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3Rlc3Qgc3VpdGUvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXRlc3Qgc3VpdGVzKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5zY2VuYXJpb0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvdGVzdCBzdWl0ZXMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXNjZW5hcmlvcygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uc2NlbmFyaW9zTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9zY2VuYXJpb3MvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJ1bigkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0ucnVuTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9ydW4vZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJ1bnMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnJ1bnNMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3J1bnMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXRlc3Qgc3VpdGUoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnJ1bkxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvcnVuL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHN1aXRlcygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0ucnVuc0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvcnVucy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdmVyc2lvbigkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0udmVyc2lvbkxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvdmVyc2lvbi9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdmVyc2lvbnMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnZlcnNpb25zTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC92ZXJzaW9ucy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdGVzdCByZXBvcnQoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnRlc3RSZXBvcnRMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3Rlc3QgcmVwb3J0L2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVyl0ZXN0IHJlcG9ydHMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnRlc3RSZXBvcnRzTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC90ZXN0IHJlcG9ydHMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWVzdGltYXRlZCB0aW1lKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lc3RpbWF0ZWRUaW1lTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9lc3RpbWF0ZWQgdGltZS9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGlvbigkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uZXN0aW1hdGlvbkxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvZXN0aW1hdGlvbi9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGlvbnMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmVzdGltYXRpb25zTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9lc3RpbWF0aW9ucy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGUoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmVzdGltYXRlTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9lc3RpbWF0ZS9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpZXN0aW1hdGVzKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5lc3RpbWF0ZXNMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2VzdGltYXRlcy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpYXVkaXRzKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdHNMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0cy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY29uZHVjdCgkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uY29uZHVjdExhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvY29uZHVjdC9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY29uZHVjdHMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmNvbmR1Y3RzTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9jb25kdWN0cy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpYWN0aW9uKCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hY3Rpb25MYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2FjdGlvbi9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpYWN0aW9ucygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYWN0aW9uc0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvYWN0aW9ucy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpdGltZWxpbmUoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnRpbWVsaW5lTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC90aW1lbGluZS9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpID09IFwiYXVkaXQgcmVwb3J0XCIpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmF1ZGl0UmVwb3J0TGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9hdWRpdCByZXBvcnQvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSA9PSBcImF1ZGl0IHJlcG9ydHNcIikge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYXVkaXRSZXBvcnRzTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9hdWRpdCByZXBvcnRzL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylhdWRpdCBhY3Rpdml0eSgkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYXVkaXRBY3Rpdml0eUxhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvYXVkaXQgYWN0aXZpdHkvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKWF1ZGl0IGFuYWx5dGljcygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uYXVkaXRBbmFseXRpY3NMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2F1ZGl0IGFuYWx5dGljcy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY2xpZW50KCR8XFxXKS8pKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5jbGllbnRMYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL2NsaWVudC9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpY2xpZW50cygkfFxcVykvKSkge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0uY2xpZW50c0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvY2xpZW50cy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpcXVlc3Rpb24oJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmF1ZGl0UXVlc3Rpb25MYWJlbDtcbiAgICAgICAgbGV0IHJlID0gL3F1ZXN0aW9uL2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylxdWVzdGlvbnMoJHxcXFcpLykpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLmF1ZGl0UXVlc3Rpb25zTGFiZWw7XG4gICAgICAgIGxldCByZSA9IC9xdWVzdGlvbnMvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKS5tYXRjaCgvKF58XFxXKXJlcG9ydCgkfFxcVykvKSAmJiBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgIT0gXCJhdWRpdCByZXBvcnRcIiAmJiBzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkgIT0gXCJhdWRpdCByZXBvcnRzXCIpIHtcbiAgICAgICAgcmVwbGFjZVRleHQgPSBzb2Z0TGFiZWxzWzBdLnJlcG9ydExhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvcmVwb3J0L2dpO1xuICAgICAgICBpZiAocmVwbGFjZVRleHQpIHtcbiAgICAgICAgICBzZWFyY2hUZXh0ID0gc2VhcmNoVGV4dC5yZXBsYWNlKHJlLCByZXBsYWNlVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChzZWFyY2hUZXh0LnRvTG93ZXJDYXNlKCkubWF0Y2goLyhefFxcVylyZXBvcnRzKCR8XFxXKS8pICYmIHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSAhPSBcImF1ZGl0IHJlcG9ydFwiICYmIHNlYXJjaFRleHQudG9Mb3dlckNhc2UoKSAhPSBcImF1ZGl0IHJlcG9ydHNcIikge1xuICAgICAgICByZXBsYWNlVGV4dCA9IHNvZnRMYWJlbHNbMF0ucmVwb3J0c0xhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvcmVwb3J0cy9naTtcbiAgICAgICAgaWYgKHJlcGxhY2VUZXh0KSB7XG4gICAgICAgICAgc2VhcmNoVGV4dCA9IHNlYXJjaFRleHQucmVwbGFjZShyZSwgcmVwbGFjZVRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpLm1hdGNoKC8oXnxcXFcpYXVkaXQoJHxcXFcpLykgJiYgc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpICE9IFwiYXVkaXQgcmVwb3J0XCIgJiYgc2VhcmNoVGV4dC50b0xvd2VyQ2FzZSgpICE9IFwiYXVkaXQgcmVwb3J0c1wiKSB7XG4gICAgICAgIHJlcGxhY2VUZXh0ID0gc29mdExhYmVsc1swXS5hdWRpdExhYmVsO1xuICAgICAgICBsZXQgcmUgPSAvYXVkaXQvZ2k7XG4gICAgICAgIGlmIChyZXBsYWNlVGV4dCkge1xuICAgICAgICAgIHNlYXJjaFRleHQgPSBzZWFyY2hUZXh0LnJlcGxhY2UocmUsIHJlcGxhY2VUZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKCFzZWFyY2hUZXh0LmluY2x1ZGVzKCdlc3RpbWF0ZWQgdGltZScpKSB7XG4gICAgICAgIGxldCBzZWFyY2hTdHJpbmcgPSBzZWFyY2hUZXh0LnNwbGl0KCcuJyk7XG4gICAgICAgIGxldCBzdHIgPSBcIlwiO1xuXG4gICAgICAgIHNlYXJjaFN0cmluZy5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtKSB7XG5cbiAgICAgICAgICBpZiAoaXRlbS50cmltKCkgIT0gXCJcIikge1xuICAgICAgICAgICAgaWYgKGl0ZW0gIT0gXCJIUlwiICYmICFpdGVtLmluY2x1ZGVzKCdoJykpXG4gICAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnRyaW0oKS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGl0ZW0udHJpbSgpLnN1YnN0cigxKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgc3RyID0gc3RyICE9IFwiXCIgPyAoc3RyICsgXCIuIFwiICsgaXRlbSArIFwiLlwiKSA6IGl0ZW07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBzZWFyY2hUZXh0ID0gc3RyO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBzZWFyY2hUZXh0O1xuICB9XG59XG4iXX0=
|