@techextensor/tab-core-utility 2.2.195 → 2.2.196

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.
@@ -34,7 +34,7 @@ export const API = {
34
34
  statusUpdate: 'status/update',
35
35
  authRegisterUser: 'auth/register',
36
36
  getUserDetails: 'identity/GetUserDetails',
37
- getPermission: 'Application/GetPermission',
37
+ permissions: 'permissions',
38
38
  getUserAccess: 'access',
39
39
  testConnection: 'MetaData/TestConnection',
40
40
  performValidation: 'MetaData/PerformValidation',
@@ -60,7 +60,7 @@ export const API = {
60
60
  GetReleaseJSONDifference: 'Release/GetReleaseJSONDifference',
61
61
  GetDataDifference: 'Release/GetDataDifference',
62
62
  RegisterTenant: 'Tenant/RegisterTenant',
63
- Execute: 'DataBaseExecution/Execute',
63
+ databaseExecute: 'database/execute',
64
64
  GetAllDocumnets: 'Documents/GetAllDocuments',
65
65
  GetDocumentById: 'Documents/GetDocumentById',
66
66
  ExecuteWorkflow: 'Workflow/Execute',
@@ -86,4 +86,4 @@ export const APIServices = {
86
86
  reportService: 'reportService',
87
87
  fileManagerService: 'fileManagerService'
88
88
  };
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakIscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFNBQVM7SUFDaEQsMkJBQTJCLEVBQUUsY0FBYyxFQUFFLE1BQU07SUFDbkQsa0RBQWtEO0lBQ2xELDhDQUE4QztJQUM5QyxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELGFBQWEsRUFBRSxpQ0FBaUM7SUFFaEQsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsV0FBVztJQUNyQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsS0FBSyxFQUFFLFlBQVk7SUFDbkIsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixPQUFPLEVBQUUscUJBQXFCO0lBQzlCLGtCQUFrQixFQUFFLGdCQUFnQjtJQUNwQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFVBQVUsRUFBRSx3QkFBd0I7SUFDcEMsU0FBUyxFQUFFLFdBQVc7SUFDdEIseUJBQXlCO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLHFCQUFxQixFQUFFLHdCQUF3QjtJQUMvQyxVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFlBQVksRUFBRSxlQUFlO0lBQzdCLGdCQUFnQixFQUFFLGVBQWU7SUFDakMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxhQUFhLEVBQUUsMkJBQTJCO0lBQzFDLGFBQWEsRUFBRSxRQUFRO0lBQ3ZCLGNBQWMsRUFBRSx5QkFBeUI7SUFDekMsaUJBQWlCLEVBQUUsNEJBQTRCO0lBQy9DLGdCQUFnQixFQUFFLHlCQUF5QjtJQUMzQyxxQkFBcUIsRUFBRSw4QkFBOEI7SUFDckQseUNBQXlDO0lBQ3pDLDZCQUE2QixFQUFFLGdDQUFnQztJQUMvRCxnQkFBZ0IsRUFBRSw0QkFBNEI7SUFDOUMsWUFBWSxFQUFFLGtCQUFrQjtJQUNoQyxZQUFZLEVBQUUscUJBQXFCO0lBQ25DLFFBQVEsRUFBRSxzQkFBc0I7SUFDaEMsZ0NBQWdDLEVBQzlCLGdEQUFnRDtJQUNsRCxtQkFBbUIsRUFBRSwwQkFBMEI7SUFDL0MsK0JBQStCLEVBQUcsK0NBQStDO0lBQ2pGLGdDQUFnQyxFQUFHLGdEQUFnRDtJQUNuRixpQkFBaUIsRUFBRSwwQkFBMEI7SUFDN0Msd0JBQXdCLEVBQUUsMkJBQTJCO0lBQ3JELFlBQVksRUFBRSxlQUFlO0lBQzdCLHVCQUF1QixFQUFHLHVDQUF1QztJQUNqRSxxQkFBcUIsRUFBRSxxQ0FBcUM7SUFDNUQsY0FBYyxFQUFFLGlCQUFpQjtJQUNqQyxVQUFVLEVBQUcsbUJBQW1CO0lBQ2hDLHdCQUF3QixFQUFDLGtDQUFrQztJQUMzRCxpQkFBaUIsRUFBQywyQkFBMkI7SUFDN0MsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxPQUFPLEVBQUUsMkJBQTJCO0lBQ3BDLGVBQWUsRUFBRSwyQkFBMkI7SUFDNUMsZUFBZSxFQUFFLDJCQUEyQjtJQUM1QyxlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQix5QkFBeUIsRUFBQyw0QkFBNEI7SUFDdEQsbUJBQW1CLEVBQUMsc0JBQXNCO0lBQzFDLGlCQUFpQixFQUFDLG9CQUFvQjtJQUN0QyxtQkFBbUIsRUFBQyxzQkFBc0I7Q0FDM0MsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBMkM7SUFDakUsV0FBVyxFQUFFLGFBQWE7SUFDMUIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixlQUFlLEVBQUUsaUJBQWlCO0lBQ2xDLG1CQUFtQixFQUFFLHFCQUFxQjtJQUMxQyxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxhQUFhLEVBQUUsZUFBZTtJQUM5QixhQUFhLEVBQUUsZUFBZTtJQUM5QixrQkFBa0IsRUFBRSxvQkFBb0I7Q0FDekMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQVBJU2VydmljZU5hbWUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSSA9IHtcclxuICBhcHBsaWNhdGlvbklkZW50aWZpZXI6ICcwMmRQbEdYQ0tDUHknLCAvL3Bob2VuaXhcclxuICBhcHBsaWNhdGlvbklkZW50aWZpZXJGb3JQTVM6ICdxcW1Yd2VHQjFEYkcnLCAvLyBwbXNcclxuICAvLyBlbmRwb2ludDogJ2h0dHA6Ly8xOTIuMTY4LjEwLjE4MTo4NDQxL2FwaS92MS8nLFxyXG4gIC8vIHdvcmtmbG93RW5kUG9pbnQ6ICdodHRwOi8vMTkyLjE2OC4xMC4xODEvJyxcclxuICBub3Z1QmFja2VuZFVybDogJ2h0dHBzOi8vbm92dWFwaS50ZWNoZXh0ZW5zb3IuY29tJyxcclxuICBub3Z1U29ja2V0VXJsOiAnaHR0cHM6Ly9ub3Z1d3MudGVjaGV4dGVuc29yLmNvbScsXHJcblxyXG4gIGJ1bGtJbnNlcnQ6ICdDUlVEL0J1bGtJbnNlcnQnLFxyXG4gIHNlbGVjdDogJ0NSVUQvU2VsZWN0JyxcclxuICBzY3JlZW46ICdzY3JlZW4nLFxyXG4gIGxpc3RzR2V0OiAnbGlzdHMvR2V0JyxcclxuICBidWlsZEFwcDogJ0FwcGxpY2F0aW9uL0J1aWxkQXBwJyxcclxuICBtZXRhZGF0YVNjaGVtYTogJ21ldGFkYXRhL3NjaGVtYScsXHJcbiAgbG9naW46ICdhdXRoL2xvZ2luJyxcclxuICBwbHVnaW5VcGxvYWQ6ICdQbHVnaW5zL1VwbG9hZCcsXHJcbiAgZ2V0RmlsZTogJ1BsdWdpbnMvR2V0RmlsZUJ5SWQnLFxyXG4gIGdldEFsbFBsdWdpbkJ5VHlwZTogJ1BsdWdpbnMvR2V0QWxsJyxcclxuICB0ZW1wbGF0ZVBhcnNlOiAnVGVtcGxhdGUvUGFyc2UnLFxyXG4gIHB1Ymxpc2hBcHA6ICdBcHBsaWNhdGlvbi9QdWJsaXNoQXBwJyxcclxuICBnZXRyZWNvcmQ6ICdHZXRSZWNvcmQnLFxyXG4gIC8vIHJhd1NRTDogJ0NSVUQvUmF3U1FMJyxcclxuICBmaWxlVXBsb2FkOiAnRmlsZS9VcGxvYWQnLFxyXG4gIEZpbGVNYW5hZ2VyVXBsb2FkRmlsZTogJ0ZpbGVNYW5hZ2VyL1VwbG9hZEZpbGUnLFxyXG4gIGRlbGV0ZUZpbGU6ICdGaWxlL0RlbGV0ZUZpbGUnLFxyXG4gIGdldE1lZGlhRmlsZTogJ0ZpbGUvR2V0RmlsZScsXHJcbiAgYXVkaXRHZXRIaXN0b3J5OiAnYXVkaXQvZ2V0aGlzdG9yeScsXHJcbiAgY2hhbmdlUGFzc3dvcmQ6ICdpZGVudGl0eS9DaGFuZ2VQYXNzd29yZCcsXHJcbiAgcmVzdHBhc3N3b3JkOiAnaWRlbnRpdHkvUmVzZXRQYXNzd29yZCcsXHJcbiAgZ2V0SW1hZ2U6ICdGaWxlL0dldEltYWdlJyxcclxuICBpbXBvcnREYXRhOiAnaW1wb3J0L2RhdGEnLFxyXG4gIHNjcmVlbkRhdGE6ICdmb3JtaW8vc2NyZWVuZGF0YScsXHJcbiAgcHJvY2Vzc1JlcXVlc3Q6ICdmb3JtaW8vcHJvY2Vzc3JlcXVlc3QnLFxyXG4gIHN0YXR1c0F2YWlsYWJsZTogJ3N0YXR1cy9hdmFpbGFibGUnLFxyXG4gIHN0YXR1c1VwZGF0ZTogJ3N0YXR1cy91cGRhdGUnLFxyXG4gIGF1dGhSZWdpc3RlclVzZXI6ICdhdXRoL3JlZ2lzdGVyJyxcclxuICBnZXRVc2VyRGV0YWlsczogJ2lkZW50aXR5L0dldFVzZXJEZXRhaWxzJyxcclxuICBnZXRQZXJtaXNzaW9uOiAnQXBwbGljYXRpb24vR2V0UGVybWlzc2lvbicsXHJcbiAgZ2V0VXNlckFjY2VzczogJ2FjY2VzcycsXHJcbiAgdGVzdENvbm5lY3Rpb246ICdNZXRhRGF0YS9UZXN0Q29ubmVjdGlvbicsXHJcbiAgcGVyZm9ybVZhbGlkYXRpb246ICdNZXRhRGF0YS9QZXJmb3JtVmFsaWRhdGlvbicsXHJcbiAgc2V0VGFiQ29tcG9uZW50czogJ1RlbmFudC9TZXRUYWJDb21wb25lbnRzJyxcclxuICBCdWlsZEZvcm1JT0NvbXBvbmVudHM6ICdGb3JtSU8vQnVpbGRGb3JtSU9Db21wb25lbnRzJyxcclxuICAvLyBmaWxlTWFuYWdlclVwbG9hZDonRmlsZU1hbmFnZXIvVXBsb2FkJ1xyXG4gIGFwcGxpY2F0aW9uUmVnaXN0ZXJBcHBPYmplY3RzOiAnYXBwbGljYXRpb24vcmVnaXN0ZXJhcHBvYmplY3RzJyxcclxuICBsYW5ndWFnZVJlc291cmNlOiAnUmVzb3VyY2VzL0xhbmd1YWdlUmVzb3VyY2UnLFxyXG4gIHJlZnJlc2hUb2tlbjogJ2lkZW50aXR5L1JlZnJlc2gnLFxyXG4gIGdsb2JhbFNlYXJjaDogJ2dsb2JhbHNlYXJjaC9zZWFyY2gnLFxyXG4gIGNsb25lRHNxOiAnQXBwbGljYXRpb24vQ2xvbmVEU1EnLFxyXG4gIEluc2VydFNjcmVlblBlcmZvcm1hbmNlQW5hbHl0aWNzOlxyXG4gICAgJ0VsYXN0aWNTZWFyY2gvSW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdlbmVyYXRlSHR0cFJlcXVlc3Q6ICdDUlVEL0dlbmVyYXRlSHR0cFJlcXVlc3QnLFxyXG4gIEdldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MgOiAnRWxhc3RpY1NlYXJjaC9HZXREZXRhaWxPZlBlcmZvcm1hbmNlQW5hbHl0aWNzJyxcclxuICBHZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcyA6ICdFbGFzdGljU2VhcmNoL0dldFN1bW1hcnlPZlBlcmZvcm1hbmNlQW5hbHl0aWNzJyxcclxuICBHZXREYXRhSnNvbkJ5VHlwZTogJ1RlbmFudC9HZXREYXRhSnNvbkJ5VHlwZScsXHJcbiAgYXBwbGljYXRpb25TeW5jQXBwRmllbGRzOiAnYXBwbGljYXRpb24vc3luY2FwcGZpZWxkcycsXHJcbiAgcmVwb3J0RXhwb3J0OiAncmVwb3J0L2V4cG9ydCcsXHJcbiAgUmVmcmVzaEdsb2JhbFNlYXJjaERhdGEgOiAnRWxhc3RpY1NlYXJjaC9SZWZyZXNoR2xvYmFsU2VhcmNoRGF0YScsXHJcbiAgUmVmcmVzaFJlY29yZEluZm9EYXRhOiAnRGF0YUludGVncml0eS9SZWZyZXNoUmVjb3JkSW5mb0RhdGEnLFxyXG4gIHJlcG9ydERvd25sb2FkOiAncmVwb3J0L2Rvd25sb2FkJyxcclxuICBzZW5kUmVwb3J0IDogJ3JlcG9ydC9TZW5kUmVwb3J0JyxcclxuICBHZXRSZWxlYXNlSlNPTkRpZmZlcmVuY2U6J1JlbGVhc2UvR2V0UmVsZWFzZUpTT05EaWZmZXJlbmNlJyxcclxuICBHZXREYXRhRGlmZmVyZW5jZTonUmVsZWFzZS9HZXREYXRhRGlmZmVyZW5jZScsXHJcbiAgUmVnaXN0ZXJUZW5hbnQ6ICdUZW5hbnQvUmVnaXN0ZXJUZW5hbnQnLFxyXG4gIEV4ZWN1dGU6ICdEYXRhQmFzZUV4ZWN1dGlvbi9FeGVjdXRlJyxcclxuICBHZXRBbGxEb2N1bW5ldHM6ICdEb2N1bWVudHMvR2V0QWxsRG9jdW1lbnRzJyxcclxuICBHZXREb2N1bWVudEJ5SWQ6ICdEb2N1bWVudHMvR2V0RG9jdW1lbnRCeUlkJyxcclxuICBFeGVjdXRlV29ya2Zsb3c6ICdXb3JrZmxvdy9FeGVjdXRlJyxcclxuICBRdWVyaWVzRXhlY3V0ZTogJ1F1ZXJpZXMvZXhlY3V0ZScsXHJcbiAgUXVlcmllc1NlbGVjdDogJ3F1ZXJpZXMvc2VsZWN0JyxcclxuICByZWNvcmRzSW5zZXJ0OiAncmVjb3Jkcy9pbnNlcnQnLFxyXG4gIHJlY29yZHNVcGRhdGU6ICdyZWNvcmRzL3VwZGF0ZScsXHJcbiAgcmVjb3Jkc0RlbGV0ZTogJ3JlY29yZHMvZGVsZXRlJyxcclxuICBmaWxlTWFuYWdlckZpbGVPcGVyYXRpb25zOidGaWxlTWFuYWdlci9GaWxlT3BlcmF0aW9ucycsXHJcbiAgZmlsZU1hbmFnZXJHZXRJbWFnZTonRmlsZU1hbmFnZXIvR2V0SW1hZ2UnLFxyXG4gIGZpbGVNYW5hZ2VyVXBsb2FkOidGaWxlTWFuYWdlci9VcGxvYWQnLFxyXG4gIGZpbGVNYW5hZ2VyRG93bmxvYWQ6J0ZpbGVNYW5hZ2VyL0Rvd25sb2FkJ1xyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IEFQSVNlcnZpY2VzOiBSZWNvcmQ8QVBJU2VydmljZU5hbWUsIEFQSVNlcnZpY2VOYW1lPiA9IHtcclxuICBjcnVkU2VydmljZTogJ2NydWRTZXJ2aWNlJyxcclxuICBtZXRhZGF0YVNlcnZpY2U6ICdtZXRhZGF0YVNlcnZpY2UnLFxyXG4gIGZvcm1pb1NlcnZpY2U6ICdmb3JtaW9TZXJ2aWNlJyxcclxuICBpZGVudGl0eVNlcnZpY2U6ICdpZGVudGl0eVNlcnZpY2UnLFxyXG4gIGNvZGVFeGVjdXRvclNlcnZpY2U6ICdjb2RlRXhlY3V0b3JTZXJ2aWNlJyxcclxuICBub3RpZmljYXRpb25TZXJ2aWNlOiAnbm90aWZpY2F0aW9uU2VydmljZScsXHJcbiAgd29ya2Zsb3dTZXJ2aWNlOiAnd29ya2Zsb3dTZXJ2aWNlJyxcclxuICBraWJhbmFTZXJ2aWNlOiAna2liYW5hU2VydmljZScsXHJcbiAgcmVwb3J0U2VydmljZTogJ3JlcG9ydFNlcnZpY2UnLFxyXG4gIGZpbGVNYW5hZ2VyU2VydmljZTogJ2ZpbGVNYW5hZ2VyU2VydmljZSdcclxufTsiXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jb25zdGFudHMvYXBpLWNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxHQUFHLEdBQUc7SUFDakIscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFNBQVM7SUFDaEQsMkJBQTJCLEVBQUUsY0FBYyxFQUFFLE1BQU07SUFDbkQsa0RBQWtEO0lBQ2xELDhDQUE4QztJQUM5QyxjQUFjLEVBQUUsa0NBQWtDO0lBQ2xELGFBQWEsRUFBRSxpQ0FBaUM7SUFFaEQsVUFBVSxFQUFFLGlCQUFpQjtJQUM3QixNQUFNLEVBQUUsYUFBYTtJQUNyQixNQUFNLEVBQUUsUUFBUTtJQUNoQixRQUFRLEVBQUUsV0FBVztJQUNyQixRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsS0FBSyxFQUFFLFlBQVk7SUFDbkIsWUFBWSxFQUFFLGdCQUFnQjtJQUM5QixPQUFPLEVBQUUscUJBQXFCO0lBQzlCLGtCQUFrQixFQUFFLGdCQUFnQjtJQUNwQyxhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLFVBQVUsRUFBRSx3QkFBd0I7SUFDcEMsU0FBUyxFQUFFLFdBQVc7SUFDdEIseUJBQXlCO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLHFCQUFxQixFQUFFLHdCQUF3QjtJQUMvQyxVQUFVLEVBQUUsaUJBQWlCO0lBQzdCLFlBQVksRUFBRSxjQUFjO0lBQzVCLGVBQWUsRUFBRSxrQkFBa0I7SUFDbkMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxZQUFZLEVBQUUsd0JBQXdCO0lBQ3RDLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLFVBQVUsRUFBRSxhQUFhO0lBQ3pCLFVBQVUsRUFBRSxtQkFBbUI7SUFDL0IsY0FBYyxFQUFFLHVCQUF1QjtJQUN2QyxlQUFlLEVBQUUsa0JBQWtCO0lBQ25DLFlBQVksRUFBRSxlQUFlO0lBQzdCLGdCQUFnQixFQUFFLGVBQWU7SUFDakMsY0FBYyxFQUFFLHlCQUF5QjtJQUN6QyxXQUFXLEVBQUUsYUFBYTtJQUMxQixhQUFhLEVBQUUsUUFBUTtJQUN2QixjQUFjLEVBQUUseUJBQXlCO0lBQ3pDLGlCQUFpQixFQUFFLDRCQUE0QjtJQUMvQyxnQkFBZ0IsRUFBRSx5QkFBeUI7SUFDM0MscUJBQXFCLEVBQUUsOEJBQThCO0lBQ3JELHlDQUF5QztJQUN6Qyw2QkFBNkIsRUFBRSxnQ0FBZ0M7SUFDL0QsZ0JBQWdCLEVBQUUsNEJBQTRCO0lBQzlDLFlBQVksRUFBRSxrQkFBa0I7SUFDaEMsWUFBWSxFQUFFLHFCQUFxQjtJQUNuQyxRQUFRLEVBQUUsc0JBQXNCO0lBQ2hDLGdDQUFnQyxFQUM5QixnREFBZ0Q7SUFDbEQsbUJBQW1CLEVBQUUsMEJBQTBCO0lBQy9DLCtCQUErQixFQUFHLCtDQUErQztJQUNqRixnQ0FBZ0MsRUFBRyxnREFBZ0Q7SUFDbkYsaUJBQWlCLEVBQUUsMEJBQTBCO0lBQzdDLHdCQUF3QixFQUFFLDJCQUEyQjtJQUNyRCxZQUFZLEVBQUUsZUFBZTtJQUM3Qix1QkFBdUIsRUFBRyx1Q0FBdUM7SUFDakUscUJBQXFCLEVBQUUscUNBQXFDO0lBQzVELGNBQWMsRUFBRSxpQkFBaUI7SUFDakMsVUFBVSxFQUFHLG1CQUFtQjtJQUNoQyx3QkFBd0IsRUFBQyxrQ0FBa0M7SUFDM0QsaUJBQWlCLEVBQUMsMkJBQTJCO0lBQzdDLGNBQWMsRUFBRSx1QkFBdUI7SUFDdkMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxlQUFlLEVBQUUsMkJBQTJCO0lBQzVDLGVBQWUsRUFBRSwyQkFBMkI7SUFDNUMsZUFBZSxFQUFFLGtCQUFrQjtJQUNuQyxjQUFjLEVBQUUsaUJBQWlCO0lBQ2pDLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IsYUFBYSxFQUFFLGdCQUFnQjtJQUMvQixhQUFhLEVBQUUsZ0JBQWdCO0lBQy9CLGFBQWEsRUFBRSxnQkFBZ0I7SUFDL0IseUJBQXlCLEVBQUMsNEJBQTRCO0lBQ3RELG1CQUFtQixFQUFDLHNCQUFzQjtJQUMxQyxpQkFBaUIsRUFBQyxvQkFBb0I7SUFDdEMsbUJBQW1CLEVBQUMsc0JBQXNCO0NBQzNDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQTJDO0lBQ2pFLFdBQVcsRUFBRSxhQUFhO0lBQzFCLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsYUFBYSxFQUFFLGVBQWU7SUFDOUIsZUFBZSxFQUFFLGlCQUFpQjtJQUNsQyxtQkFBbUIsRUFBRSxxQkFBcUI7SUFDMUMsbUJBQW1CLEVBQUUscUJBQXFCO0lBQzFDLGVBQWUsRUFBRSxpQkFBaUI7SUFDbEMsYUFBYSxFQUFFLGVBQWU7SUFDOUIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsa0JBQWtCLEVBQUUsb0JBQW9CO0NBQ3pDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEFQSVNlcnZpY2VOYW1lIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlJztcclxuXHJcbmV4cG9ydCBjb25zdCBBUEkgPSB7XHJcbiAgYXBwbGljYXRpb25JZGVudGlmaWVyOiAnMDJkUGxHWENLQ1B5JywgLy9waG9lbml4XHJcbiAgYXBwbGljYXRpb25JZGVudGlmaWVyRm9yUE1TOiAncXFtWHdlR0IxRGJHJywgLy8gcG1zXHJcbiAgLy8gZW5kcG9pbnQ6ICdodHRwOi8vMTkyLjE2OC4xMC4xODE6ODQ0MS9hcGkvdjEvJyxcclxuICAvLyB3b3JrZmxvd0VuZFBvaW50OiAnaHR0cDovLzE5Mi4xNjguMTAuMTgxLycsXHJcbiAgbm92dUJhY2tlbmRVcmw6ICdodHRwczovL25vdnVhcGkudGVjaGV4dGVuc29yLmNvbScsXHJcbiAgbm92dVNvY2tldFVybDogJ2h0dHBzOi8vbm92dXdzLnRlY2hleHRlbnNvci5jb20nLFxyXG5cclxuICBidWxrSW5zZXJ0OiAnQ1JVRC9CdWxrSW5zZXJ0JyxcclxuICBzZWxlY3Q6ICdDUlVEL1NlbGVjdCcsXHJcbiAgc2NyZWVuOiAnc2NyZWVuJyxcclxuICBsaXN0c0dldDogJ2xpc3RzL0dldCcsXHJcbiAgYnVpbGRBcHA6ICdBcHBsaWNhdGlvbi9CdWlsZEFwcCcsXHJcbiAgbWV0YWRhdGFTY2hlbWE6ICdtZXRhZGF0YS9zY2hlbWEnLFxyXG4gIGxvZ2luOiAnYXV0aC9sb2dpbicsXHJcbiAgcGx1Z2luVXBsb2FkOiAnUGx1Z2lucy9VcGxvYWQnLFxyXG4gIGdldEZpbGU6ICdQbHVnaW5zL0dldEZpbGVCeUlkJyxcclxuICBnZXRBbGxQbHVnaW5CeVR5cGU6ICdQbHVnaW5zL0dldEFsbCcsXHJcbiAgdGVtcGxhdGVQYXJzZTogJ1RlbXBsYXRlL1BhcnNlJyxcclxuICBwdWJsaXNoQXBwOiAnQXBwbGljYXRpb24vUHVibGlzaEFwcCcsXHJcbiAgZ2V0cmVjb3JkOiAnR2V0UmVjb3JkJyxcclxuICAvLyByYXdTUUw6ICdDUlVEL1Jhd1NRTCcsXHJcbiAgZmlsZVVwbG9hZDogJ0ZpbGUvVXBsb2FkJyxcclxuICBGaWxlTWFuYWdlclVwbG9hZEZpbGU6ICdGaWxlTWFuYWdlci9VcGxvYWRGaWxlJyxcclxuICBkZWxldGVGaWxlOiAnRmlsZS9EZWxldGVGaWxlJyxcclxuICBnZXRNZWRpYUZpbGU6ICdGaWxlL0dldEZpbGUnLFxyXG4gIGF1ZGl0R2V0SGlzdG9yeTogJ2F1ZGl0L2dldGhpc3RvcnknLFxyXG4gIGNoYW5nZVBhc3N3b3JkOiAnaWRlbnRpdHkvQ2hhbmdlUGFzc3dvcmQnLFxyXG4gIHJlc3RwYXNzd29yZDogJ2lkZW50aXR5L1Jlc2V0UGFzc3dvcmQnLFxyXG4gIGdldEltYWdlOiAnRmlsZS9HZXRJbWFnZScsXHJcbiAgaW1wb3J0RGF0YTogJ2ltcG9ydC9kYXRhJyxcclxuICBzY3JlZW5EYXRhOiAnZm9ybWlvL3NjcmVlbmRhdGEnLFxyXG4gIHByb2Nlc3NSZXF1ZXN0OiAnZm9ybWlvL3Byb2Nlc3NyZXF1ZXN0JyxcclxuICBzdGF0dXNBdmFpbGFibGU6ICdzdGF0dXMvYXZhaWxhYmxlJyxcclxuICBzdGF0dXNVcGRhdGU6ICdzdGF0dXMvdXBkYXRlJyxcclxuICBhdXRoUmVnaXN0ZXJVc2VyOiAnYXV0aC9yZWdpc3RlcicsXHJcbiAgZ2V0VXNlckRldGFpbHM6ICdpZGVudGl0eS9HZXRVc2VyRGV0YWlscycsXHJcbiAgcGVybWlzc2lvbnM6ICdwZXJtaXNzaW9ucycsXHJcbiAgZ2V0VXNlckFjY2VzczogJ2FjY2VzcycsXHJcbiAgdGVzdENvbm5lY3Rpb246ICdNZXRhRGF0YS9UZXN0Q29ubmVjdGlvbicsXHJcbiAgcGVyZm9ybVZhbGlkYXRpb246ICdNZXRhRGF0YS9QZXJmb3JtVmFsaWRhdGlvbicsXHJcbiAgc2V0VGFiQ29tcG9uZW50czogJ1RlbmFudC9TZXRUYWJDb21wb25lbnRzJyxcclxuICBCdWlsZEZvcm1JT0NvbXBvbmVudHM6ICdGb3JtSU8vQnVpbGRGb3JtSU9Db21wb25lbnRzJyxcclxuICAvLyBmaWxlTWFuYWdlclVwbG9hZDonRmlsZU1hbmFnZXIvVXBsb2FkJ1xyXG4gIGFwcGxpY2F0aW9uUmVnaXN0ZXJBcHBPYmplY3RzOiAnYXBwbGljYXRpb24vcmVnaXN0ZXJhcHBvYmplY3RzJyxcclxuICBsYW5ndWFnZVJlc291cmNlOiAnUmVzb3VyY2VzL0xhbmd1YWdlUmVzb3VyY2UnLFxyXG4gIHJlZnJlc2hUb2tlbjogJ2lkZW50aXR5L1JlZnJlc2gnLFxyXG4gIGdsb2JhbFNlYXJjaDogJ2dsb2JhbHNlYXJjaC9zZWFyY2gnLFxyXG4gIGNsb25lRHNxOiAnQXBwbGljYXRpb24vQ2xvbmVEU1EnLFxyXG4gIEluc2VydFNjcmVlblBlcmZvcm1hbmNlQW5hbHl0aWNzOlxyXG4gICAgJ0VsYXN0aWNTZWFyY2gvSW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VBbmFseXRpY3MnLFxyXG4gIEdlbmVyYXRlSHR0cFJlcXVlc3Q6ICdDUlVEL0dlbmVyYXRlSHR0cFJlcXVlc3QnLFxyXG4gIEdldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MgOiAnRWxhc3RpY1NlYXJjaC9HZXREZXRhaWxPZlBlcmZvcm1hbmNlQW5hbHl0aWNzJyxcclxuICBHZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcyA6ICdFbGFzdGljU2VhcmNoL0dldFN1bW1hcnlPZlBlcmZvcm1hbmNlQW5hbHl0aWNzJyxcclxuICBHZXREYXRhSnNvbkJ5VHlwZTogJ1RlbmFudC9HZXREYXRhSnNvbkJ5VHlwZScsXHJcbiAgYXBwbGljYXRpb25TeW5jQXBwRmllbGRzOiAnYXBwbGljYXRpb24vc3luY2FwcGZpZWxkcycsXHJcbiAgcmVwb3J0RXhwb3J0OiAncmVwb3J0L2V4cG9ydCcsXHJcbiAgUmVmcmVzaEdsb2JhbFNlYXJjaERhdGEgOiAnRWxhc3RpY1NlYXJjaC9SZWZyZXNoR2xvYmFsU2VhcmNoRGF0YScsXHJcbiAgUmVmcmVzaFJlY29yZEluZm9EYXRhOiAnRGF0YUludGVncml0eS9SZWZyZXNoUmVjb3JkSW5mb0RhdGEnLFxyXG4gIHJlcG9ydERvd25sb2FkOiAncmVwb3J0L2Rvd25sb2FkJyxcclxuICBzZW5kUmVwb3J0IDogJ3JlcG9ydC9TZW5kUmVwb3J0JyxcclxuICBHZXRSZWxlYXNlSlNPTkRpZmZlcmVuY2U6J1JlbGVhc2UvR2V0UmVsZWFzZUpTT05EaWZmZXJlbmNlJyxcclxuICBHZXREYXRhRGlmZmVyZW5jZTonUmVsZWFzZS9HZXREYXRhRGlmZmVyZW5jZScsXHJcbiAgUmVnaXN0ZXJUZW5hbnQ6ICdUZW5hbnQvUmVnaXN0ZXJUZW5hbnQnLFxyXG4gIGRhdGFiYXNlRXhlY3V0ZTogJ2RhdGFiYXNlL2V4ZWN1dGUnLFxyXG4gIEdldEFsbERvY3VtbmV0czogJ0RvY3VtZW50cy9HZXRBbGxEb2N1bWVudHMnLFxyXG4gIEdldERvY3VtZW50QnlJZDogJ0RvY3VtZW50cy9HZXREb2N1bWVudEJ5SWQnLFxyXG4gIEV4ZWN1dGVXb3JrZmxvdzogJ1dvcmtmbG93L0V4ZWN1dGUnLFxyXG4gIFF1ZXJpZXNFeGVjdXRlOiAnUXVlcmllcy9leGVjdXRlJyxcclxuICBRdWVyaWVzU2VsZWN0OiAncXVlcmllcy9zZWxlY3QnLFxyXG4gIHJlY29yZHNJbnNlcnQ6ICdyZWNvcmRzL2luc2VydCcsXHJcbiAgcmVjb3Jkc1VwZGF0ZTogJ3JlY29yZHMvdXBkYXRlJyxcclxuICByZWNvcmRzRGVsZXRlOiAncmVjb3Jkcy9kZWxldGUnLFxyXG4gIGZpbGVNYW5hZ2VyRmlsZU9wZXJhdGlvbnM6J0ZpbGVNYW5hZ2VyL0ZpbGVPcGVyYXRpb25zJyxcclxuICBmaWxlTWFuYWdlckdldEltYWdlOidGaWxlTWFuYWdlci9HZXRJbWFnZScsXHJcbiAgZmlsZU1hbmFnZXJVcGxvYWQ6J0ZpbGVNYW5hZ2VyL1VwbG9hZCcsXHJcbiAgZmlsZU1hbmFnZXJEb3dubG9hZDonRmlsZU1hbmFnZXIvRG93bmxvYWQnXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgQVBJU2VydmljZXM6IFJlY29yZDxBUElTZXJ2aWNlTmFtZSwgQVBJU2VydmljZU5hbWU+ID0ge1xyXG4gIGNydWRTZXJ2aWNlOiAnY3J1ZFNlcnZpY2UnLFxyXG4gIG1ldGFkYXRhU2VydmljZTogJ21ldGFkYXRhU2VydmljZScsXHJcbiAgZm9ybWlvU2VydmljZTogJ2Zvcm1pb1NlcnZpY2UnLFxyXG4gIGlkZW50aXR5U2VydmljZTogJ2lkZW50aXR5U2VydmljZScsXHJcbiAgY29kZUV4ZWN1dG9yU2VydmljZTogJ2NvZGVFeGVjdXRvclNlcnZpY2UnLFxyXG4gIG5vdGlmaWNhdGlvblNlcnZpY2U6ICdub3RpZmljYXRpb25TZXJ2aWNlJyxcclxuICB3b3JrZmxvd1NlcnZpY2U6ICd3b3JrZmxvd1NlcnZpY2UnLFxyXG4gIGtpYmFuYVNlcnZpY2U6ICdraWJhbmFTZXJ2aWNlJyxcclxuICByZXBvcnRTZXJ2aWNlOiAncmVwb3J0U2VydmljZScsXHJcbiAgZmlsZU1hbmFnZXJTZXJ2aWNlOiAnZmlsZU1hbmFnZXJTZXJ2aWNlJ1xyXG59OyJdfQ==
@@ -7,7 +7,7 @@ import { RequestResponseHelper } from "../helpers/common/req-res.helpers";
7
7
  import { DSQHelper } from "../helpers/common/dsq.helpers";
8
8
  import { QueryType } from "../enums/query.enum";
9
9
  import { ConjuctionClause, FilterValueType, RelationalOperator } from "../enums/dsq.enum";
10
- import { API } from "../constants/api-constants";
10
+ import { API, APIServices } from "../constants/api-constants";
11
11
  import { getHeaders } from "../utils/req-res.util";
12
12
  import { ApiService } from "../../core/http-client/api.service";
13
13
  import { TabGetService } from "./tab-get.service";
@@ -201,25 +201,22 @@ export class TabCrudService {
201
201
  * @returns An observable of the response from the API.
202
202
  */
203
203
  executeStoredProcedure(payload, headers) {
204
- if (!headers) {
205
- headers = getHeaders();
206
- }
207
- // Convert the parameters object to the required format
208
- const params = [];
209
- if (typeof payload?.Parameters === 'object') {
210
- // Iterate over the parameters and create the required format
204
+ headers = getHeaders(headers);
205
+ const parameters = [];
206
+ if (payload?.Parameters && typeof payload.Parameters === 'object') {
211
207
  Object.keys(payload.Parameters).forEach((key) => {
212
- params.push({
213
- Name: key,
214
- Value: payload.Parameters[key]
208
+ parameters.push({
209
+ name: key,
210
+ value: payload.Parameters[key]
215
211
  });
216
212
  });
217
213
  }
218
- // Execute the stored procedure
219
- return this._apiService.post(API.Execute, {
220
- ...payload,
221
- Parameters: params,
222
- }, headers);
214
+ const requestBody = {
215
+ objectName: payload.ObjectName,
216
+ objectType: payload.ObjectType,
217
+ parameters
218
+ };
219
+ return this._apiService.postToService(APIServices.crudService, API.databaseExecute, requestBody, headers);
223
220
  }
224
221
  static { this.ɵfac = function TabCrudService_Factory(t) { return new (t || TabCrudService)(); }; }
225
222
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: TabCrudService, factory: TabCrudService.ɵfac, providedIn: 'root' }); }
@@ -228,4 +225,4 @@ export class TabCrudService {
228
225
  type: Injectable,
229
226
  args: [{ providedIn: 'root' }]
230
227
  }], null, null); })();
231
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQXFCLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbkgsT0FBTyxFQUFnQyxpQkFBaUIsRUFBZ0IsTUFBTSwyQkFBMkIsQ0FBQztBQUMxRyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFF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LE9BQU8sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7K0VBM09RLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBREQsTUFBTTs7aUZBQ25CLGNBQWM7Y0FEMUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQ29tbW9uQXBpUmVzcG9uc2UsIENydWRCYXNlUGF5bG9hZCwgRGVsZXRlUGF5bG9hZCwgZXhlY3V0ZVN0b3JlZFByb2NlZHVyZVBheWxvYWQsIEdldFBheWxvYWQsIEluc2VydFBheWxvYWQsIFVwZGF0ZVBheWxvYWQgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9jb21tb24uaW50ZXJmYWNlXCI7XHJcbmltcG9ydCB7IEFwcE9iamVjdE1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9hcHAtb2JqZWN0Lm1vZGVsXCI7XHJcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL21ldGEtZGF0YS5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IGNyZWF0ZUR5bmFtaWNEYXRhLCBnZXRCdWxrSW5zZXJ0RmllbGRzLCBnZXRCdWxrSW5zZXJ0VmFsdWVzLCByZW1vdmVCbGFua1ZhbHVlIH0gZnJvbSBcIi4uL3V0aWxzL2pzb24udXRpbFwiO1xyXG5pbXBvcnQgeyBBUElCdWxrSW5zZXJ0RmllbGRzVmFsdWVTZXRzLCBBUElGaWx0ZXJDcml0ZXJpYSwgQVBJVmFsdWVTZXRzIH0gZnJvbSBcIi4uL21vZGVscy9hcGktcXVlcnkuY2xhc3NcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFJlc3BvbnNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBEU1FIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vZHNxLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSBcIi4uL2VudW1zL3F1ZXJ5LmVudW1cIjtcclxuaW1wb3J0IHsgQ29uanVjdGlvbkNsYXVzZSwgRmlsdGVyVmFsdWVUeXBlLCBSZWxhdGlvbmFsT3BlcmF0b3IgfSBmcm9tIFwiLi4vZW51bXMvZHNxLmVudW1cIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IERhdGFTb3VyY2VRdWVyeU1vZGVsIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyeS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gXCIuLi91dGlscy9yZXEtcmVzLnV0aWxcIjtcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkdldFNlcnZpY2UgfSBmcm9tIFwiLi90YWItZ2V0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFiSW5zZXJ0U2VydmljZSB9IGZyb20gXCIuL3RhYi1pbnNlcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJVcGRhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGFiLXVwZGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkRlbGV0ZVNlcnZpY2UgfSBmcm9tIFwiLi90YWItZGVsZXRlLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWJDcnVkU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXRhZGF0YUhlbHBlcjogTWV0YWRhdGFIZWxwZXIgPSBpbmplY3QoTWV0YWRhdGFIZWxwZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVxdWVzdFJlc3BvbnNlSGVscGVyOiBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgPSBpbmplY3QoUmVxdWVzdFJlc3BvbnNlSGVscGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RzcUhlbHBlcjogRFNRSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiR2V0U2VydmljZSA9IGluamVjdChUYWJHZXRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYkluc2VydFNlcnZpY2UgPSBpbmplY3QoVGFiSW5zZXJ0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJVcGRhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYlVwZGF0ZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRGVsZXRlU2VydmljZSA9IGluamVjdChUYWJEZWxldGVTZXJ2aWNlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGdpdmVuIHBheWxvYWQuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCB3aXRoIGVpdGhlciBkYXRhU291cmNlUXVlcnlJZE9yTmFtZSBvciBhcHBPYmplY3RJZE9yTmFtZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkOiBDcnVkQmFzZVBheWxvYWQpOiBBcHBPYmplY3RNb2RlbCB7XHJcbiAgICAgICAgbGV0IGFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgaWYgKHBheWxvYWQ/LmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKSB7XHJcbiAgICAgICAgICAgIC8vIElmIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lIGlzIGdpdmVuLCBnZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGRhdGEgc291cmNlIHF1ZXJ5XHJcbiAgICAgICAgICAgIGFwcE9iamVjdCA9IHRoaXMuX21ldGFkYXRhSGVscGVyLmdldERhdGFTb3VyY2VRdWVyeUJ5SWRPck5hbWUocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk/LnBhcmVudEFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkPy5hcHBPYmplY3RJZE9yTmFtZSkge1xyXG4gICAgICAgICAgICAvLyBJZiBhcHBPYmplY3RJZE9yTmFtZSBpcyBnaXZlbiwgZ2V0IHRoZSBBcHBPYmplY3RNb2RlbCBkaXJlY3RseVxyXG4gICAgICAgICAgICBhcHBPYmplY3QgPSB0aGlzLl9tZXRhZGF0YUhlbHBlci5nZXRBcHBPYmplY3RCeUlkT3JOYW1lKHBheWxvYWQuYXBwT2JqZWN0SWRPck5hbWUpO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghYXBwT2JqZWN0Py5JRCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBub3QgZm91bmQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhcHBPYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWx0ZXJzIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqIE9wdGlvbmFsbHkgcmV0YWlucyBwcmltYXJ5IGtleSBmaWVsZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIG9iamVjdCB0byBmaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0gYXBwT2JqZWN0IFRoZSBBcHBPYmplY3RNb2RlbCB1c2VkIHRvIHZhbGlkYXRlIHRoZSBmaWVsZHMuXHJcbiAgICAgKiBAcGFyYW0ga2VlcFByaW1hcnlLZXkgT3B0aW9uYWwgZmxhZyB0byByZXRhaW4gcHJpbWFyeSBrZXkgZmllbGRzLiBEZWZhdWx0cyB0byBmYWxzZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdmFsaWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGZpbHRlclZhbGlkQXBwT2JqZWN0RmllbGRzKGRhdGE6IGFueSwgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCwga2VlcFByaW1hcnlLZXkgPSBmYWxzZSwgcmVtb3ZlRW1wdHlWYWx1ZXMgPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSBmaWVsZHMgd2l0aCBibGFuayB2YWx1ZXMgKG9ubHkgZm9yIGluc2VydCwgbm90IGZvciB1cGRhdGUpXHJcbiAgICAgICAgaWYgKHJlbW92ZUVtcHR5VmFsdWVzKSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoZmlsdGVyZWREYXRhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIGtleSBpbiB0aGUgZmlsdGVyZWQgZGF0YVxyXG4gICAgICAgIE9iamVjdC5rZXlzKGZpbHRlcmVkRGF0YSk/LmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhcHBGaWVsZCA9IGFwcE9iamVjdC5maWVsZChrZXkpO1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkID0gYXBwT2JqZWN0LkNoaWxkUmVsYXRpb25TaGlwcz8uc29tZSgoeCkgPT4geD8uY2hpbGREZXRhaWxzPy5Mb29rdXBPYmplY3QgPT09IGtleSk7XHJcblxyXG4gICAgICAgICAgICAvLyBEZWxldGUgdGhlIGZpZWxkIGlmIGl0IGlzIG5vdCB2YWxpZCBvciBpZiBwcmltYXJ5IGtleXMgc2hvdWxkIG5vdCBiZSBrZXB0XHJcbiAgICAgICAgICAgIGlmICghKGFwcEZpZWxkIHx8IGNoaWxkRmllbGQpIHx8ICgha2VlcFByaW1hcnlLZXkgJiYgYXBwRmllbGQ/LklzUHJpbWFyeUtleSkpIHtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWx0ZXJlZERhdGFba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGNyaXRlcmlhIFRoZSBjcml0ZXJpYSBvYmplY3QgdG8gZ2VuZXJhdGUgdGhlIHdoZXJlIGNsYXVzZSBmcm9tLlxyXG4gICAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSB0byB1c2UgaW4gdGhlIHdoZXJlIGNsYXVzZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IEFQSUZpbHRlckNyaXRlcmlhIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgd2hlcmUgY2xhdXNlLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlV2hlcmVDbGF1c2UoY3JpdGVyaWE6IGFueSwgY3J1ZFRhYmxlTmFtZTogc3RyaW5nLCBwcm92aWRlRW1wdHlXaGVyZUNsYXVzZSA9IGZhbHNlKTogQVBJRmlsdGVyQ3JpdGVyaWEge1xyXG4gICAgICAgIGlmICghcHJvdmlkZUVtcHR5V2hlcmVDbGF1c2UgJiYgKCFjcml0ZXJpYSB8fCB0eXBlb2YgY3JpdGVyaWEgIT09ICdvYmplY3QnIHx8ICFPYmplY3Qua2V5cyhjcml0ZXJpYSkpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY3JpdGVyaWEnKTtcclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBjcml0ZXJpYVxyXG4gICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoY3JpdGVyaWEpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEgb2JqZWN0XHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgICAgICB3aGVyZUNsYXVzZS5maWx0ZXJzID0gW107XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIGtleSBpbiB0aGUgY3JpdGVyaWEgYW5kIGFkZCBpdCB0byB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICAgICAgT2JqZWN0LmtleXMoY3JpdGVyaWEpPy5mb3JFYWNoKChrZXk6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICBjb25qdW5jdGlvbjogQ29uanVjdGlvbkNsYXVzZS5BTkQsIC8vIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNydWRUYWJsZU5hbWUgKyAnLicgKyBrZXksIC8vIGZpZWxkIG5hbWVcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbywgLy8gcmVsYXRpb25hbCBvcGVyYXRvciBpcyBFcXVhbFRvIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgICAgIHZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsIC8vIHZhbHVlIHR5cGUgaXMgTGl0ZXJhbCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogY3JpdGVyaWFba2V5XSwgLy8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZmlsdGVyXHJcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXggKyAxLCAvLyBzZXQgdGhlIHNlcXVlbmNlIHN0YXJ0aW5nIGZyb20gMVxyXG4gICAgICAgICAgICAgICAgZ3JvdXBJZDogMCAvLyBzZXQgdGhlIGdyb3VwIElEIHRvIDAgYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB3aGVyZUNsYXVzZS5maWx0ZXJzLnB1c2goZmlsdGVyKTsgLy8gYWRkIHRoZSBmaWx0ZXIgdG8gdGhlIGFycmF5IG9mIGZpbHRlcnNcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBmaWx0ZXIgbG9naWMgdG8gJzEnXHJcbiAgICAgICAgd2hlcmVDbGF1c2UuZmlsdGVyTG9naWMgPSAnMSc7XHJcblxyXG4gICAgICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZVxyXG4gICAgICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4ZWN1dGVzIGEgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgcXVlcnkuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHF1ZXJ5IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgZ2V0KHBheWxvYWQ6IEdldFBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBBcHBPYmplY3RNb2RlbCBmcm9tIHRoZSBwYXlsb2FkXHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcblxyXG4gICAgICAgIC8vIEdldCB0aGUgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgZnJvbSB0aGUgQXBwT2JqZWN0TW9kZWxcclxuICAgICAgICBjb25zdCBkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgdW5kZWZpbmVkID0gYXBwT2JqZWN0LmRhdGFTb3VyY2VRdWVyeShwYXlsb2FkLmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKTtcclxuXHJcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIEFwcE9iamVjdE1vZGVsIGFuZCBEYXRhU291cmNlUXVlcnlNb2RlbFxyXG4gICAgICAgIGlmICghYXBwT2JqZWN0IHx8ICFkc3EpIHRocm93IG5ldyBFcnJvcignQXBwT2JqZWN0IG9yIERhdGFTb3VyY2VRdWVyeSBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgLy8gVXNlIFRhYkdldFNlcnZpY2UuZXhlY3V0ZVJBV0RTUVdpdGhOYW1lIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb25cclxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiR2V0U2VydmljZS5leGVjdXRlUkFXRFNRV2l0aE5hbWUoe1xyXG4gICAgICAgICAgICBBcHBPYmplY3ROYW1lOiBhcHBPYmplY3QuT2JqZWN0TmFtZSxcclxuICAgICAgICAgICAgRFNRTmFtZTogZHNxLlF1ZXJ5TmFtZSxcclxuICAgICAgICAgICAgLi4ucGF5bG9hZC5jcml0ZXJpYVxyXG4gICAgICAgIH0sIGhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS5cclxuICAgICAqIE5FVzogRGVsZWdhdGVzIHRvIFRhYkluc2VydFNlcnZpY2Ugd2hpY2ggdXNlcyAvcmVjb3Jkcy9pbnNlcnQgZW5kcG9pbnQgd2l0aCBTWU5DL0FTWU5DIHN1cHBvcnRcclxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gaW5zZXJ0IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSSAocmV0dXJucyBpbnNlcnRlZElkIG9ubHkpLlxyXG4gICAgICovXHJcbiAgICBpbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gRGVsZWdhdGUgdG8gVGFiSW5zZXJ0U2VydmljZSAtIGl0IGhhbmRsZXMgbmV3IEFQSSB3aXRoIFNZTkMvQVNZTkMgYXV0b21hdGljYWxseVxyXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJJbnNlcnRTZXJ2aWNlLmluc2VydEJ5T2JqZWN0SWQoYXBwT2JqZWN0LklELCB7IGRhdGE6IHBheWxvYWQuZGF0YSB9LCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgYnVsa0luc2VydChwYXlsb2FkOiBJbnNlcnRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG4gICAgICAgIC8vIENyZWF0ZSBhIHdoZXJlIGNsYXVzZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb25cclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLmdlbmVyYXRlV2hlcmVDbGF1c2Uoe30sIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRmllbGRzOiBzdHJpbmdbXSA9IGdldEJ1bGtJbnNlcnRGaWVsZHMocGF5bG9hZC5kYXRhKTtcclxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlczogQVBJQnVsa0luc2VydEZpZWxkc1ZhbHVlU2V0c1tdID0gZ2V0QnVsa0luc2VydFZhbHVlcyhwYXlsb2FkLmRhdGEpO1xyXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBwYXlsb2FkIGZvciB0aGUgQVBJIHJlcXVlc3RcclxuICAgICAgICBjb25zdCBhcGlQYXlsb2FkID0gdGhpcy5fcmVxdWVzdFJlc3BvbnNlSGVscGVyLmJ1bGtJbnNlcnRQYXlsb2FkKGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIHRyYW5zZm9ybWVkVmFsdWVzLCB0cmFuc2Zvcm1lZEZpZWxkcyk7XHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcXVlcnlcclxuICAgICAgICByZXR1cm4gdGhpcy5fZHNxSGVscGVyLmV4ZWN1dGVRdWVyeShhcGlQYXlsb2FkLCBRdWVyeVR5cGUuQnVsa0luc2VydCwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgZGF0YSBpbiB0aGUgc3BlY2lmaWVkIHRhYmxlLlxyXG4gICAgICogTkVXOiBEZWxlZ2F0ZXMgdG8gVGFiVXBkYXRlU2VydmljZSB3aGljaCB1c2VzIC9yZWNvcmRzL3VwZGF0ZSBlbmRwb2ludCB3aXRoIFNZTkMvQVNZTkMgc3VwcG9ydFxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGF0YSB0byB1cGRhdGUsIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHVwZGF0ZSwgYW5kIHRoZSBBcHBPYmplY3RNb2RlbCBJRC5cclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGUocGF5bG9hZDogVXBkYXRlUGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gRGVsZWdhdGUgdG8gVGFiVXBkYXRlU2VydmljZSAtIGl0IGhhbmRsZXMgbmV3IEFQSSB3aXRoIFNZTkMvQVNZTkMgYXV0b21hdGljYWxseVxyXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJVcGRhdGVTZXJ2aWNlLnVwZGF0ZUJ5T2JqZWN0SWQoYXBwT2JqZWN0LklELCB7IGRhdGE6IHBheWxvYWQuZGF0YSB9LCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZXMgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgdGFibGUuXHJcbiAgICAgKiBORVc6IERlbGVnYXRlcyB0byBUYWJEZWxldGVTZXJ2aWNlIHdoaWNoIHVzZXMgL3JlY29yZHMvZGVsZXRlIGVuZHBvaW50IHdpdGggU1lOQy9BU1lOQyBzdXBwb3J0XHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIGRlbGV0ZSBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZShwYXlsb2FkOiBEZWxldGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWRcclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLmdlbmVyYXRlV2hlcmVDbGF1c2UocGF5bG9hZC5jcml0ZXJpYSwgYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lKTtcclxuICAgICAgICBpZiAoIXdoZXJlQ2xhdXNlPy5maWx0ZXJzPy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcml0ZXJpYScpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0IChORVcgZm9ybWF0OiB7IGVudGl0eU5hbWUsIHdoZXJlQ2xhdXNlIH0pXHJcbiAgICAgICAgY29uc3QgYXBpUGF5bG9hZCA9IHRoaXMuX3JlcXVlc3RSZXNwb25zZUhlbHBlci5kZWxldGVQYXlsb2FkKGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgd2hlcmVDbGF1c2UpO1xyXG5cclxuICAgICAgICAvLyBEZWxlZ2F0ZSB0byBUYWJEZWxldGVTZXJ2aWNlIC0gaXQgaGFuZGxlcyBuZXcgQVBJIHdpdGggU1lOQy9BU1lOQyBhdXRvbWF0aWNhbGx5XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkRlbGV0ZVNlcnZpY2UuZGVsZXRlKGFwaVBheWxvYWQsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC8qKlxyXG4gICAgLy8gICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIHVzaW5nIHJhdyBTUUwuXHJcbiAgICAvLyAgKiBAcGFyYW0gc3AgVGhlIHN0b3JlZCBwcm9jZWR1cmUgcXVlcnkgc3RyaW5nLlxyXG4gICAgLy8gICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAvLyAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBBUEkgUE9TVCByZXF1ZXN0LlxyXG4gICAgLy8gICovXHJcbiAgICAvLyBleGVjdXRlU3Aoc3A6IHN0cmluZywgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIC8vICAgICAvLyBSZXRyaWV2ZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgLy8gICAgIGNvbnN0IGhlYWRlciA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcblxyXG4gICAgLy8gICAgIC8vIEV4ZWN1dGUgdGhlIHN0b3JlZCBwcm9jZWR1cmUgdXNpbmcgYSBQT1NUIHJlcXVlc3RcclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0KGAke0FQSS5yYXdTUUx9P3F1ZXJ5PSR7c3B9YCwge30sIGhlYWRlcikgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIGJhc2VkIG9uIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgb2JqZWN0IG5hbWUsIG9iamVjdCB0eXBlLCBhbmQgcGFyYW1ldGVycyBmb3IgdGhlIHN0b3JlZCBwcm9jZWR1cmUuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgZXhlY3V0ZVN0b3JlZFByb2NlZHVyZShwYXlsb2FkOiBleGVjdXRlU3RvcmVkUHJvY2VkdXJlUGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBpZiAoIWhlYWRlcnMpIHtcclxuICAgICAgICAgICAgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIENvbnZlcnQgdGhlIHBhcmFtZXRlcnMgb2JqZWN0IHRvIHRoZSByZXF1aXJlZCBmb3JtYXRcclxuICAgICAgICBjb25zdCBwYXJhbXM6IGFueSA9IFtdO1xyXG4gICAgICAgIGlmICh0eXBlb2YgcGF5bG9hZD8uUGFyYW1ldGVycyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgLy8gSXRlcmF0ZSBvdmVyIHRoZSBwYXJhbWV0ZXJzIGFuZCBjcmVhdGUgdGhlIHJlcXVpcmVkIGZvcm1hdFxyXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhwYXlsb2FkLlBhcmFtZXRlcnMpLmZvckVhY2goKGtleTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgICAgICAgICAgICAgTmFtZToga2V5LFxyXG4gICAgICAgICAgICAgICAgICAgIFZhbHVlOiBwYXlsb2FkLlBhcmFtZXRlcnNba2V5XVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgc3RvcmVkIHByb2NlZHVyZVxyXG4gICAgICAgIHJldHVybiB0aGlzLl9hcGlTZXJ2aWNlLnBvc3QoQVBJLkV4ZWN1dGUsIHtcclxuICAgICAgICAgICAgLi4ucGF5bG9hZCxcclxuICAgICAgICAgICAgUGFyYW1ldGVyczogcGFyYW1zLFxyXG4gICAgICAgIH0sIGhlYWRlcnMpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWNydWQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZGF0YS1hY2Nlc3Mvc3JjL2xpYi90YWItY29yZS11dGlsaXR5L2FwcC9jcnVkL3RhYi1jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBQ3ZELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRyxPQUFPLEVBQWdDLGlCQUFpQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHMUYsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JB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VyxDQUFDLFdBQVcsRUFDdkIsR0FBRyxDQUFDLGVBQWUsRUFDbkIsV0FBVyxFQUNYLE9BQU8sQ0FDVixDQUFDO0lBQ04sQ0FBQzsrRUEvT1EsY0FBYzt1RUFBZCxjQUFjLFdBQWQsY0FBYyxtQkFERCxNQUFNOztpRkFDbkIsY0FBYztjQUQxQixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25BcGlSZXNwb25zZSwgQ3J1ZEJhc2VQYXlsb2FkLCBEZWxldGVQYXlsb2FkLCBleGVjdXRlU3RvcmVkUHJvY2VkdXJlUGF5bG9hZCwgR2V0UGF5bG9hZCwgSW5zZXJ0UGF5bG9hZCwgVXBkYXRlUGF5bG9hZCB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2VcIjtcclxuaW1wb3J0IHsgQXBwT2JqZWN0TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2FwcC1vYmplY3QubW9kZWxcIjtcclxuaW1wb3J0IHsgTWV0YWRhdGFIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vbWV0YS1kYXRhLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgZ2V0QnVsa0luc2VydEZpZWxkcywgZ2V0QnVsa0luc2VydFZhbHVlcywgcmVtb3ZlQmxhbmtWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxcIjtcclxuaW1wb3J0IHsgQVBJQnVsa0luc2VydEZpZWxkc1ZhbHVlU2V0cywgQVBJRmlsdGVyQ3JpdGVyaWEgfSBmcm9tIFwiLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzc1wiO1xyXG5pbXBvcnQgeyBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vcmVxLXJlcy5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IERTUUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBRdWVyeVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvcXVlcnkuZW51bVwiO1xyXG5pbXBvcnQgeyBDb25qdWN0aW9uQ2xhdXNlLCBGaWx0ZXJWYWx1ZVR5cGUsIFJlbGF0aW9uYWxPcGVyYXRvciB9IGZyb20gXCIuLi9lbnVtcy9kc3EuZW51bVwiO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgfSBmcm9tIFwiLi4vbW9kZWxzL2RhdGEtc291cmNlLXF1ZXJ5Lm1vZGVsXCI7XHJcbmltcG9ydCB7IEFQSSwgQVBJU2VydmljZXMgfSBmcm9tIFwiLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHNcIjtcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gXCIuLi91dGlscy9yZXEtcmVzLnV0aWxcIjtcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi9jb3JlL2h0dHAtY2xpZW50L2FwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkdldFNlcnZpY2UgfSBmcm9tIFwiLi90YWItZ2V0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGFiSW5zZXJ0U2VydmljZSB9IGZyb20gXCIuL3RhYi1pbnNlcnQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBUYWJVcGRhdGVTZXJ2aWNlIH0gZnJvbSBcIi4vdGFiLXVwZGF0ZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFRhYkRlbGV0ZVNlcnZpY2UgfSBmcm9tIFwiLi90YWItZGVsZXRlLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWJDcnVkU2VydmljZSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXRhZGF0YUhlbHBlcjogTWV0YWRhdGFIZWxwZXIgPSBpbmplY3QoTWV0YWRhdGFIZWxwZXIpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcmVxdWVzdFJlc3BvbnNlSGVscGVyOiBSZXF1ZXN0UmVzcG9uc2VIZWxwZXIgPSBpbmplY3QoUmVxdWVzdFJlc3BvbnNlSGVscGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RzcUhlbHBlcjogRFNRSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9hcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiR2V0U2VydmljZSA9IGluamVjdChUYWJHZXRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3RhYkluc2VydFNlcnZpY2UgPSBpbmplY3QoVGFiSW5zZXJ0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJVcGRhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYlVwZGF0ZVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdGFiRGVsZXRlU2VydmljZSA9IGluamVjdChUYWJEZWxldGVTZXJ2aWNlKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGdpdmVuIHBheWxvYWQuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCB3aXRoIGVpdGhlciBkYXRhU291cmNlUXVlcnlJZE9yTmFtZSBvciBhcHBPYmplY3RJZE9yTmFtZS5cclxuICAgICAqIEByZXR1cm5zIFRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBnZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkOiBDcnVkQmFzZVBheWxvYWQpOiBBcHBPYmplY3RNb2RlbCB7XHJcbiAgICAgICAgbGV0IGFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgaWYgKHBheWxvYWQ/LmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKSB7XHJcbiAgICAgICAgICAgIC8vIElmIGRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lIGlzIGdpdmVuLCBnZXQgdGhlIEFwcE9iamVjdE1vZGVsIGZyb20gdGhlIGRhdGEgc291cmNlIHF1ZXJ5XHJcbiAgICAgICAgICAgIGFwcE9iamVjdCA9IHRoaXMuX21ldGFkYXRhSGVscGVyLmdldERhdGFTb3VyY2VRdWVyeUJ5SWRPck5hbWUocGF5bG9hZC5kYXRhU291cmNlUXVlcnlJZE9yTmFtZSk/LnBhcmVudEFwcE9iamVjdDtcclxuXHJcbiAgICAgICAgfSBlbHNlIGlmIChwYXlsb2FkPy5hcHBPYmplY3RJZE9yTmFtZSkge1xyXG4gICAgICAgICAgICAvLyBJZiBhcHBPYmplY3RJZE9yTmFtZSBpcyBnaXZlbiwgZ2V0IHRoZSBBcHBPYmplY3RNb2RlbCBkaXJlY3RseVxyXG4gICAgICAgICAgICBhcHBPYmplY3QgPSB0aGlzLl9tZXRhZGF0YUhlbHBlci5nZXRBcHBPYmplY3RCeUlkT3JOYW1lKHBheWxvYWQuYXBwT2JqZWN0SWRPck5hbWUpO1xyXG5cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghYXBwT2JqZWN0Py5JRCkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FwcE9iamVjdCBub3QgZm91bmQnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBhcHBPYmplY3Q7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGaWx0ZXJzIG91dCBpbnZhbGlkIGZpZWxkcyBmcm9tIHRoZSBwcm92aWRlZCBkYXRhIGJhc2VkIG9uIHRoZSBBcHBPYmplY3RNb2RlbC5cclxuICAgICAqIE9wdGlvbmFsbHkgcmV0YWlucyBwcmltYXJ5IGtleSBmaWVsZHMuXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIG9iamVjdCB0byBmaWx0ZXIuXHJcbiAgICAgKiBAcGFyYW0gYXBwT2JqZWN0IFRoZSBBcHBPYmplY3RNb2RlbCB1c2VkIHRvIHZhbGlkYXRlIHRoZSBmaWVsZHMuXHJcbiAgICAgKiBAcGFyYW0ga2VlcFByaW1hcnlLZXkgT3B0aW9uYWwgZmxhZyB0byByZXRhaW4gcHJpbWFyeSBrZXkgZmllbGRzLiBEZWZhdWx0cyB0byBmYWxzZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IG9iamVjdCB3aXRoIG9ubHkgdmFsaWQgZmllbGRzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGZpbHRlclZhbGlkQXBwT2JqZWN0RmllbGRzKGRhdGE6IGFueSwgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCwga2VlcFByaW1hcnlLZXkgPSBmYWxzZSwgcmVtb3ZlRW1wdHlWYWx1ZXMgPSB0cnVlKSB7XHJcbiAgICAgICAgaWYgKCFkYXRhIHx8IHR5cGVvZiBkYXRhICE9PSAnb2JqZWN0JykgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGRhdGEnKTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWREYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShkYXRhKSk7XHJcblxyXG4gICAgICAgIC8vIFJlbW92ZSBmaWVsZHMgd2l0aCBibGFuayB2YWx1ZXMgKG9ubHkgZm9yIGluc2VydCwgbm90IGZvciB1cGRhdGUpXHJcbiAgICAgICAgaWYgKHJlbW92ZUVtcHR5VmFsdWVzKSB7XHJcbiAgICAgICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoZmlsdGVyZWREYXRhKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIGtleSBpbiB0aGUgZmlsdGVyZWQgZGF0YVxyXG4gICAgICAgIE9iamVjdC5rZXlzKGZpbHRlcmVkRGF0YSk/LmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBhcHBGaWVsZCA9IGFwcE9iamVjdC5maWVsZChrZXkpO1xyXG4gICAgICAgICAgICBjb25zdCBjaGlsZEZpZWxkID0gYXBwT2JqZWN0LkNoaWxkUmVsYXRpb25TaGlwcz8uc29tZSgoeCkgPT4geD8uY2hpbGREZXRhaWxzPy5Mb29rdXBPYmplY3QgPT09IGtleSk7XHJcblxyXG4gICAgICAgICAgICAvLyBEZWxldGUgdGhlIGZpZWxkIGlmIGl0IGlzIG5vdCB2YWxpZCBvciBpZiBwcmltYXJ5IGtleXMgc2hvdWxkIG5vdCBiZSBrZXB0XHJcbiAgICAgICAgICAgIGlmICghKGFwcEZpZWxkIHx8IGNoaWxkRmllbGQpIHx8ICgha2VlcFByaW1hcnlLZXkgJiYgYXBwRmllbGQ/LklzUHJpbWFyeUtleSkpIHtcclxuICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWx0ZXJlZERhdGFba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZmlsdGVyZWREYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2VuZXJhdGVzIGEgd2hlcmUgY2xhdXNlIGJhc2VkIG9uIHRoZSBjcml0ZXJpYSBwcm92aWRlZC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGNyaXRlcmlhIFRoZSBjcml0ZXJpYSBvYmplY3QgdG8gZ2VuZXJhdGUgdGhlIHdoZXJlIGNsYXVzZSBmcm9tLlxyXG4gICAgICogQHBhcmFtIGNydWRUYWJsZU5hbWUgVGhlIENSVUQgdGFibGUgbmFtZSB0byB1c2UgaW4gdGhlIHdoZXJlIGNsYXVzZS5cclxuICAgICAqIEByZXR1cm5zIEEgbmV3IEFQSUZpbHRlckNyaXRlcmlhIG9iamVjdCB3aXRoIHRoZSBnZW5lcmF0ZWQgd2hlcmUgY2xhdXNlLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdlbmVyYXRlV2hlcmVDbGF1c2UoY3JpdGVyaWE6IGFueSwgY3J1ZFRhYmxlTmFtZTogc3RyaW5nLCBwcm92aWRlRW1wdHlXaGVyZUNsYXVzZSA9IGZhbHNlKTogQVBJRmlsdGVyQ3JpdGVyaWEge1xyXG4gICAgICAgIGlmICghcHJvdmlkZUVtcHR5V2hlcmVDbGF1c2UgJiYgKCFjcml0ZXJpYSB8fCB0eXBlb2YgY3JpdGVyaWEgIT09ICdvYmplY3QnIHx8ICFPYmplY3Qua2V5cyhjcml0ZXJpYSkpKSB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY3JpdGVyaWEnKTtcclxuXHJcbiAgICAgICAgLy8gUmVtb3ZlIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBjcml0ZXJpYVxyXG4gICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoY3JpdGVyaWEpO1xyXG5cclxuICAgICAgICAvLyBDcmVhdGUgYSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEgb2JqZWN0XHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2UgPSBuZXcgQVBJRmlsdGVyQ3JpdGVyaWEoKTtcclxuICAgICAgICB3aGVyZUNsYXVzZS5maWx0ZXJzID0gW107XHJcblxyXG4gICAgICAgIC8vIEl0ZXJhdGUgb3ZlciBlYWNoIGtleSBpbiB0aGUgY3JpdGVyaWEgYW5kIGFkZCBpdCB0byB0aGUgd2hlcmUgY2xhdXNlXHJcbiAgICAgICAgT2JqZWN0LmtleXMoY3JpdGVyaWEpPy5mb3JFYWNoKChrZXk6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBmaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgICBjb25qdW5jdGlvbjogQ29uanVjdGlvbkNsYXVzZS5BTkQsIC8vIGNvbmp1Y3Rpb24gY2xhdXNlIGlzIEFORCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICBmaWVsZE5hbWU6IGNydWRUYWJsZU5hbWUgKyAnLicgKyBrZXksIC8vIGZpZWxkIG5hbWVcclxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBSZWxhdGlvbmFsT3BlcmF0b3IuRXF1YWxUbywgLy8gcmVsYXRpb25hbCBvcGVyYXRvciBpcyBFcXVhbFRvIGJ5IGRlZmF1bHRcclxuICAgICAgICAgICAgICAgIHZhbHVlVHlwZTogRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWwsIC8vIHZhbHVlIHR5cGUgaXMgTGl0ZXJhbCBieSBkZWZhdWx0XHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogY3JpdGVyaWFba2V5XSwgLy8gc2V0IHRoZSB2YWx1ZSBvZiB0aGUgZmlsdGVyXHJcbiAgICAgICAgICAgICAgICBzZXF1ZW5jZTogaW5kZXggKyAxLCAvLyBzZXQgdGhlIHNlcXVlbmNlIHN0YXJ0aW5nIGZyb20gMVxyXG4gICAgICAgICAgICAgICAgZ3JvdXBJZDogMCAvLyBzZXQgdGhlIGdyb3VwIElEIHRvIDAgYnkgZGVmYXVsdFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB3aGVyZUNsYXVzZS5maWx0ZXJzLnB1c2goZmlsdGVyKTsgLy8gYWRkIHRoZSBmaWx0ZXIgdG8gdGhlIGFycmF5IG9mIGZpbHRlcnNcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gU2V0IHRoZSBmaWx0ZXIgbG9naWMgdG8gJzEnXHJcbiAgICAgICAgd2hlcmVDbGF1c2UuZmlsdGVyTG9naWMgPSAnMSc7XHJcblxyXG4gICAgICAgIC8vIFJldHVybiB0aGUgZ2VuZXJhdGVkIHdoZXJlIGNsYXVzZVxyXG4gICAgICAgIHJldHVybiB3aGVyZUNsYXVzZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEV4ZWN1dGVzIGEgR0VUIHJlcXVlc3QgdG8gcmV0cmlldmUgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgZGF0YSBzb3VyY2UgcXVlcnkuXHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHF1ZXJ5IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgZ2V0KHBheWxvYWQ6IEdldFBheWxvYWQsIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICAgICAgLy8gR2V0IHRoZSBBcHBPYmplY3RNb2RlbCBmcm9tIHRoZSBwYXlsb2FkXHJcbiAgICAgICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3RNb2RlbCA9IHRoaXMuZ2V0QXBwT2JqZWN0RnJvbVBheWxvYWQocGF5bG9hZCk7XHJcblxyXG4gICAgICAgIC8vIEdldCB0aGUgRGF0YVNvdXJjZVF1ZXJ5TW9kZWwgZnJvbSB0aGUgQXBwT2JqZWN0TW9kZWxcclxuICAgICAgICBjb25zdCBkc3E6IERhdGFTb3VyY2VRdWVyeU1vZGVsIHwgdW5kZWZpbmVkID0gYXBwT2JqZWN0LmRhdGFTb3VyY2VRdWVyeShwYXlsb2FkLmRhdGFTb3VyY2VRdWVyeUlkT3JOYW1lKTtcclxuXHJcbiAgICAgICAgLy8gVmFsaWRhdGUgdGhlIEFwcE9iamVjdE1vZGVsIGFuZCBEYXRhU291cmNlUXVlcnlNb2RlbFxyXG4gICAgICAgIGlmICghYXBwT2JqZWN0IHx8ICFkc3EpIHRocm93IG5ldyBFcnJvcignQXBwT2JqZWN0IG9yIERhdGFTb3VyY2VRdWVyeSBub3QgZm91bmQnKTtcclxuXHJcbiAgICAgICAgLy8gVXNlIFRhYkdldFNlcnZpY2UuZXhlY3V0ZVJBV0RTUVdpdGhOYW1lIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb25cclxuICAgICAgICByZXR1cm4gdGhpcy5fdGFiR2V0U2VydmljZS5leGVjdXRlUkFXRFNRV2l0aE5hbWUoe1xyXG4gICAgICAgICAgICBBcHBPYmplY3ROYW1lOiBhcHBPYmplY3QuT2JqZWN0TmFtZSxcclxuICAgICAgICAgICAgRFNRTmFtZTogZHNxLlF1ZXJ5TmFtZSxcclxuICAgICAgICAgICAgLi4ucGF5bG9hZC5jcml0ZXJpYVxyXG4gICAgICAgIH0sIGhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zZXJ0cyBkYXRhIGludG8gdGhlIHNwZWNpZmllZCB0YWJsZS5cclxuICAgICAqIE5FVzogRGVsZWdhdGVzIHRvIFRhYkluc2VydFNlcnZpY2Ugd2hpY2ggdXNlcyAvcmVjb3Jkcy9pbnNlcnQgZW5kcG9pbnQgd2l0aCBTWU5DL0FTWU5DIHN1cHBvcnRcclxuICAgICAqIEBwYXJhbSBwYXlsb2FkIFRoZSBwYXlsb2FkIGNvbnRhaW5pbmcgdGhlIGRhdGEgdG8gaW5zZXJ0IGFuZCB0aGUgQXBwT2JqZWN0TW9kZWwgSUQuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSSAocmV0dXJucyBpbnNlcnRlZElkIG9ubHkpLlxyXG4gICAgICovXHJcbiAgICBpbnNlcnQocGF5bG9hZDogSW5zZXJ0UGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gRGVsZWdhdGUgdG8gVGFiSW5zZXJ0U2VydmljZSAtIGl0IGhhbmRsZXMgbmV3IEFQSSB3aXRoIFNZTkMvQVNZTkMgYXV0b21hdGljYWxseVxyXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJJbnNlcnRTZXJ2aWNlLmluc2VydEJ5T2JqZWN0SWQoYXBwT2JqZWN0LklELCB7IGRhdGE6IHBheWxvYWQuZGF0YSB9LCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgYnVsa0luc2VydChwYXlsb2FkOiBJbnNlcnRQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG4gICAgICAgIC8vIENyZWF0ZSBhIHdoZXJlIGNsYXVzZSBmb3IgdGhlIGluc2VydCBvcGVyYXRpb25cclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLmdlbmVyYXRlV2hlcmVDbGF1c2Uoe30sIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIC8vIFRyYW5zZm9ybSB0aGUgZGF0YSBpbnRvIHRoZSBmb3JtYXQgcmVxdWlyZWQgYnkgdGhlIEFQSVxyXG4gICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRmllbGRzOiBzdHJpbmdbXSA9IGdldEJ1bGtJbnNlcnRGaWVsZHMocGF5bG9hZC5kYXRhKTtcclxuICAgICAgICBjb25zdCB0cmFuc2Zvcm1lZFZhbHVlczogQVBJQnVsa0luc2VydEZpZWxkc1ZhbHVlU2V0c1tdID0gZ2V0QnVsa0luc2VydFZhbHVlcyhwYXlsb2FkLmRhdGEpO1xyXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBwYXlsb2FkIGZvciB0aGUgQVBJIHJlcXVlc3RcclxuICAgICAgICBjb25zdCBhcGlQYXlsb2FkID0gdGhpcy5fcmVxdWVzdFJlc3BvbnNlSGVscGVyLmJ1bGtJbnNlcnRQYXlsb2FkKGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIHRyYW5zZm9ybWVkVmFsdWVzLCB0cmFuc2Zvcm1lZEZpZWxkcyk7XHJcbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcXVlcnlcclxuICAgICAgICByZXR1cm4gdGhpcy5fZHNxSGVscGVyLmV4ZWN1dGVRdWVyeShhcGlQYXlsb2FkLCBRdWVyeVR5cGUuQnVsa0luc2VydCwgaGVhZGVycykgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICB9XHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgZGF0YSBpbiB0aGUgc3BlY2lmaWVkIHRhYmxlLlxyXG4gICAgICogTkVXOiBEZWxlZ2F0ZXMgdG8gVGFiVXBkYXRlU2VydmljZSB3aGljaCB1c2VzIC9yZWNvcmRzL3VwZGF0ZSBlbmRwb2ludCB3aXRoIFNZTkMvQVNZTkMgc3VwcG9ydFxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgZGF0YSB0byB1cGRhdGUsIHRoZSBjcml0ZXJpYSBmb3IgdGhlIHVwZGF0ZSwgYW5kIHRoZSBBcHBPYmplY3RNb2RlbCBJRC5cclxuICAgICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJLlxyXG4gICAgICovXHJcbiAgICB1cGRhdGUocGF5bG9hZDogVXBkYXRlUGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdE1vZGVsID0gdGhpcy5nZXRBcHBPYmplY3RGcm9tUGF5bG9hZChwYXlsb2FkKTtcclxuXHJcbiAgICAgICAgLy8gRGVsZWdhdGUgdG8gVGFiVXBkYXRlU2VydmljZSAtIGl0IGhhbmRsZXMgbmV3IEFQSSB3aXRoIFNZTkMvQVNZTkMgYXV0b21hdGljYWxseVxyXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJVcGRhdGVTZXJ2aWNlLnVwZGF0ZUJ5T2JqZWN0SWQoYXBwT2JqZWN0LklELCB7IGRhdGE6IHBheWxvYWQuZGF0YSB9LCBoZWFkZXJzKSBhcyBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPjtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlbGV0ZXMgZGF0YSBmcm9tIHRoZSBzcGVjaWZpZWQgdGFibGUuXHJcbiAgICAgKiBORVc6IERlbGVnYXRlcyB0byBUYWJEZWxldGVTZXJ2aWNlIHdoaWNoIHVzZXMgL3JlY29yZHMvZGVsZXRlIGVuZHBvaW50IHdpdGggU1lOQy9BU1lOQyBzdXBwb3J0XHJcbiAgICAgKiBAcGFyYW0gcGF5bG9hZCBUaGUgcGF5bG9hZCBjb250YWluaW5nIHRoZSBjcml0ZXJpYSBmb3IgdGhlIGRlbGV0ZSBhbmQgdGhlIEFwcE9iamVjdE1vZGVsIElELlxyXG4gICAgICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICAgKi9cclxuICAgIGRlbGV0ZShwYXlsb2FkOiBEZWxldGVQYXlsb2FkLCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0TW9kZWwgPSB0aGlzLmdldEFwcE9iamVjdEZyb21QYXlsb2FkKHBheWxvYWQpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSBhIHdoZXJlIGNsYXVzZSBiYXNlZCBvbiB0aGUgY3JpdGVyaWEgcHJvdmlkZWRcclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLmdlbmVyYXRlV2hlcmVDbGF1c2UocGF5bG9hZC5jcml0ZXJpYSwgYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lKTtcclxuICAgICAgICBpZiAoIXdoZXJlQ2xhdXNlPy5maWx0ZXJzPy5sZW5ndGgpIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjcml0ZXJpYScpO1xyXG5cclxuICAgICAgICAvLyBHZW5lcmF0ZSB0aGUgcGF5bG9hZCBmb3IgdGhlIEFQSSByZXF1ZXN0IChORVcgZm9ybWF0OiB7IGVudGl0eU5hbWUsIHdoZXJlQ2xhdXNlIH0pXHJcbiAgICAgICAgY29uc3QgYXBpUGF5bG9hZCA9IHRoaXMuX3JlcXVlc3RSZXNwb25zZUhlbHBlci5kZWxldGVQYXlsb2FkKGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSwgd2hlcmVDbGF1c2UpO1xyXG5cclxuICAgICAgICAvLyBEZWxlZ2F0ZSB0byBUYWJEZWxldGVTZXJ2aWNlIC0gaXQgaGFuZGxlcyBuZXcgQVBJIHdpdGggU1lOQy9BU1lOQyBhdXRvbWF0aWNhbGx5XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RhYkRlbGV0ZVNlcnZpY2UuZGVsZXRlKGFwaVBheWxvYWQsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIC8qKlxyXG4gICAgLy8gICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIHVzaW5nIHJhdyBTUUwuXHJcbiAgICAvLyAgKiBAcGFyYW0gc3AgVGhlIHN0b3JlZCBwcm9jZWR1cmUgcXVlcnkgc3RyaW5nLlxyXG4gICAgLy8gICogQHBhcmFtIGhlYWRlcnMgT3B0aW9uYWwgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICAvLyAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBBUEkgUE9TVCByZXF1ZXN0LlxyXG4gICAgLy8gICovXHJcbiAgICAvLyBleGVjdXRlU3Aoc3A6IHN0cmluZywgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIC8vICAgICAvLyBSZXRyaWV2ZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgLy8gICAgIGNvbnN0IGhlYWRlciA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcblxyXG4gICAgLy8gICAgIC8vIEV4ZWN1dGUgdGhlIHN0b3JlZCBwcm9jZWR1cmUgdXNpbmcgYSBQT1NUIHJlcXVlc3RcclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0KGAke0FQSS5yYXdTUUx9P3F1ZXJ5PSR7c3B9YCwge30sIGhlYWRlcikgYXMgT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT47XHJcbiAgICAvLyB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhlY3V0ZXMgYSBzdG9yZWQgcHJvY2VkdXJlIGJhc2VkIG9uIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAgICogQHBhcmFtIHBheWxvYWQgVGhlIHBheWxvYWQgY29udGFpbmluZyB0aGUgb2JqZWN0IG5hbWUsIG9iamVjdCB0eXBlLCBhbmQgcGFyYW1ldGVycyBmb3IgdGhlIHN0b3JlZCBwcm9jZWR1cmUuXHJcbiAgICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgICAqL1xyXG4gICAgZXhlY3V0ZVN0b3JlZFByb2NlZHVyZShwYXlsb2FkOiBleGVjdXRlU3RvcmVkUHJvY2VkdXJlUGF5bG9hZCwgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgICAgICBcclxuICAgICAgICBoZWFkZXJzID0gZ2V0SGVhZGVycyhoZWFkZXJzKTtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJzOiBhbnkgPSBbXTtcclxuXHJcbiAgICAgICAgaWYgKHBheWxvYWQ/LlBhcmFtZXRlcnMgJiYgdHlwZW9mIHBheWxvYWQuUGFyYW1ldGVycyA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgICAgT2JqZWN0LmtleXMocGF5bG9hZC5QYXJhbWV0ZXJzKS5mb3JFYWNoKChrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFyYW1ldGVycy5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBrZXksXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHBheWxvYWQuUGFyYW1ldGVyc1trZXldXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCByZXF1ZXN0Qm9keSA9IHtcclxuICAgICAgICAgICAgb2JqZWN0TmFtZTogcGF5bG9hZC5PYmplY3ROYW1lLFxyXG4gICAgICAgICAgICBvYmplY3RUeXBlOiBwYXlsb2FkLk9iamVjdFR5cGUsXHJcbiAgICAgICAgICAgIHBhcmFtZXRlcnNcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5fYXBpU2VydmljZS5wb3N0VG9TZXJ2aWNlKFxyXG4gICAgICAgICAgICBBUElTZXJ2aWNlcy5jcnVkU2VydmljZSxcclxuICAgICAgICAgICAgQVBJLmRhdGFiYXNlRXhlY3V0ZSxcclxuICAgICAgICAgICAgcmVxdWVzdEJvZHksXHJcbiAgICAgICAgICAgIGhlYWRlcnNcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -61,7 +61,7 @@ export class AppHelper {
61
61
  */
62
62
  getPermission() {
63
63
  const headers = getHeaders();
64
- return this.apiService.get(API.getPermission, undefined, headers);
64
+ return this.apiService.getFromService(APIServices.crudService, API.permissions, undefined, headers);
65
65
  }
66
66
  getUserAccess() {
67
67
  const headers = getHeaders();
@@ -244,4 +244,4 @@ export class AppHelper {
244
244
  type: Injectable,
245
245
  args: [{ providedIn: 'root' }]
246
246
  }], null, null); })();
247
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHckQsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXNSMUQ7SUFuUkM7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFVBQWUsRUFBRSxFQUFFLE9BQWE7UUFDekMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFD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QUM7SUFDbkYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQ0FBaUMsQ0FBQyxJQUE4QixFQUFFLGFBQW1CO1FBQ25GLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsT0FBYTtRQUMzQixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsRUFBVSxFQUFFLE9BQWE7UUFDdkMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsZUFBZSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRixDQUFDOzBFQXZSVSxTQUFTO3VFQUFULFNBQVMsV0FBVCxTQUFTLG1CQURJLE1BQU07O2lGQUNuQixTQUFTO2NBRHJCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRIZWFkZXJzIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVxLXJlcy51dGlsJztcclxuaW1wb3J0IHsgQVBJLCBBUElTZXJ2aWNlcyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IENsb25lRHNxUGF5bG9hZCwgQ29tbW9uQXBpUmVzcG9uc2UsIEdldERhdGFKc29uQnlUeXBlUGF5bG9hZCwgUGVyZm9ybWFuY2VBbmFseXRpY3NQYXlsb2FkLCBSZWZyZXNoR2xvYmFsU2VhcmNoRGF0YVBheWxvYWQsIFJlZnJlc2hSZWNvcmRJbmZvRGF0YVBheWxvYWQsIFJlZ2lzdGVyQXBwT2JqZWN0c1BheWxvYWQsIFJlcG9ydFBheWxvYWQsIFNjcmVlblBlcmZvcm1hbmNlUGF5bG9hZCwgU3luY0FwcEZpZWxkc1BheWxvYWQgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2NvbW1vbi5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBNZXRhZGF0YUhlbHBlciB9IGZyb20gJy4vbWV0YS1kYXRhLmhlbHBlcnMnO1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFwcEhlbHBlciB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbWV0YWRhdGFIZWxwZXIgPSBpbmplY3QoTWV0YWRhdGFIZWxwZXIpO1xyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogUmVidWlsZHMgdGhlIGFwcGxpY2F0aW9uLlxyXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcmVidWlsZCBvcGVyYXRpb25cclxuICAgKi9cclxuICByZWJ1aWxkQXBwKHBheWxvYWQ6IGFueSA9IHt9LCBoZWFkZXJzPzogYW55KTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgaGVhZGVycyA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLmJ1aWxkQXBwLCBwYXlsb2FkLCBoZWFkZXJzKS5waXBlKFxyXG4gICAgICBtYXAoKHJlczogQ29tbW9uQXBpUmVzcG9uc2UpID0+IHtcclxuICAgICAgICB0aGlzLm1ldGFkYXRhSGVscGVyLmNsZWFyQ2FjaGUoKTtcclxuICAgICAgICByZXR1cm4gcmVzO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIFB1Ymxpc2hlcyB0aGUgYXBwbGljYXRpb24uXHJcbiAgLy8gICogQHBhcmFtIHBhcmFtcyBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciBwdWJsaXNoaW5nIHRoZSBhcHBsaWNhdGlvblxyXG4gIC8vICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcHVibGlzaCBvcGVyYXRpb25cclxuICAvLyAgKi9cclxuICAvLyBwdWJsaXNoQXBwKHBhcmFtcz86IGFueSkge1xyXG4gIC8vICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAvLyAgIGlmIChoZWFkZXJzKSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KEFQSS5wdWJsaXNoQXBwLCBwYXJhbXMsIGhlYWRlcnMpO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgcmV0dXJuIG51bGw7XHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgc2NoZW1hIGRhdGEgZnJvbSB0aGUgbmV3IG1ldGFkYXRhIEFQSS5cclxuICAgKiBVc2VzIG1ldGFkYXRhU2VydmljZSBtaWNyb3NlcnZpY2UgZW5kcG9pbnRcclxuICAgKiBAcmV0dXJucyBTdWJzY3JpcHRpb24gZm9yIGdldHRpbmcgc2NoZW1hIGRhdGEgKHJlc3VsdCBpcyBvYmplY3QsIG5vdCBzdHJpbmdpZmllZCBKU09OKVxyXG4gICAqL1xyXG4gIGdldFNjaGVtYSgpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXRGcm9tU2VydmljZShcclxuICAgICAgQVBJU2VydmljZXMubWV0YWRhdGFTZXJ2aWNlLFxyXG4gICAgICBBUEkubWV0YWRhdGFTY2hlbWEsXHJcbiAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgaGVhZGVyc1xyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8vIHN0b3JlU2NoZW1hSW50b0lEQigpe1xyXG4gIC8vICAgLy8gdGhpcy5pZGJTZXJ2aWNlLmNsZWFySW5kZXhlZERCKClcclxuICAvLyAgIHRoaXMuZ2V0U2NoZW1hKCk/LnN1YnNjcmliZSh7XHJcbiAgLy8gICAgIG5leHQ6ICh2YWx1ZTogU2NoZW1hUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICAgIENvbW1vbi50YWJKc29uID0gSlNPTi5wYXJzZSh2YWx1ZS5SZXN1bHQpO1xyXG4gIC8vICAgICAgICAgdGhpcy5pZGJTZXJ2aWNlLnNldEl0ZW0oU3RvcmFnZUNvbnN0YW50cy50YWJEYXRhLCBKU09OLnBhcnNlKHZhbHVlLlJlc3VsdCkpXHJcbiAgLy8gICAgIH0sXHJcbiAgLy8gICAgIGVycm9yOiAocmVzcG9uc2U6IEVycm9yKSA9PiB7XHJcbiAgLy8gICAgICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSlcclxuICAvLyAgICAgfVxyXG4gIC8vIH0pXHJcbiAgLy8gfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgcGVybWlzc2lvbiBkYXRhLlxyXG4gICAqIEByZXR1cm5zIFN1YnNjcmlwdGlvbiBmb3IgZ2V0dGluZyBwZXJtaXNzaW9uIGRhdGFcclxuICAgKi9cclxuICBnZXRQZXJtaXNzaW9uKCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChBUEkuZ2V0UGVybWlzc2lvbiwgdW5kZWZpbmVkLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJBY2Nlc3MoKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0RnJvbVNlcnZpY2UoQVBJU2VydmljZXMuY3J1ZFNlcnZpY2UsIEFQSS5nZXRVc2VyQWNjZXNzLCB1bmRlZmluZWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGFwcGxpY2F0aW9uIG9iamVjdHMuXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgYXBwbGljYXRpb24gb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcmVnaXN0cmF0aW9uIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHJlZ2lzdGVyQXBwT2JqZWN0cyhwYXlsb2FkOiBSZWdpc3RlckFwcE9iamVjdHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0VG9TZXJ2aWNlKFxyXG4gICAgICBBUElTZXJ2aWNlcy5tZXRhZGF0YVNlcnZpY2UsXHJcbiAgICAgIEFQSS5hcHBsaWNhdGlvblJlZ2lzdGVyQXBwT2JqZWN0cyxcclxuICAgICAgcGF5bG9hZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb25lcyBhIERhdGFTb3VyY2VRdWVyeSAoRFNRKSB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBhcmFtZXRlcnMgZm9yIGNsb25pbmcgdGhlIERTUVxyXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGNsb25pbmcgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgY2xvbmVEc3EocGF5bG9hZDogQ2xvbmVEc3FQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuY2xvbmVEc3EsIHBheWxvYWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGRhdGEgaW4gSlNPTiBmb3JtYXQgYmFzZWQgb24gdGhlIGdpdmVuIEpTT04gdHlwZSBhbmQgcmVxdWVzdCB0b2tlbnMuXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGF5bG9hZCBjb250YWluaW5nIHRoZSBKU09OIHR5cGUgYW5kIHJlcXVlc3QgdG9rZW5zXHJcbiAgICogQHJldHVybnMgVGhlIEpTT04gZGF0YSByZXRyaWV2ZWRcclxuICAgKi9cclxuICBnZXREYXRhSnNvbkJ5VHlwZShwYXlsb2FkOiBHZXREYXRhSnNvbkJ5VHlwZVBheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXREYXRhSnNvbkJ5VHlwZSwgcGF5bG9hZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTeW5jcyB0aGUgZmllbGRzIG9mIHRoZSBhcHBsaWNhdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0gcGF5bG9hZCBQYXJhbWV0ZXJzIGZvciBzeW5jaW5nIHRoZSBmaWVsZHNcclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBzeW5jaHJvbml6YXRpb24gb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgc3luY0FwcEZpZWxkcyhwYXlsb2FkOiBTeW5jQXBwRmllbGRzUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdFRvU2VydmljZShcclxuICAgICAgQVBJU2VydmljZXMubWV0YWRhdGFTZXJ2aWNlLFxyXG4gICAgICBBUEkuYXBwbGljYXRpb25TeW5jQXBwRmllbGRzLFxyXG4gICAgICBwYXlsb2FkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSBnaXZlbiB0ZW5hbnRcclxuICAgKiBAcGFyYW0gY29ubmVjdGlvbklkIFRoZSBJRCBvZiB0aGUgY29ubmVjdGlvblxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHNldFRhYkNvbXBvbmVudHMoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGAke0FQSS5zZXRUYWJDb21wb25lbnRzfS8ke2Nvbm5lY3Rpb25JZH1gLCB7fSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24gZm9yIHRoZSBnaXZlbiBjb25uZWN0aW9uXHJcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb25cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBwZXJmb3JtVmFsaWRhdGlvbihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkucGVyZm9ybVZhbGlkYXRpb259LyR7Y29ubmVjdGlvbklkfWAsIHVuZGVmaW5lZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXN0cyB0aGUgY29ubmVjdGlvbiBmb3IgdGhlIGdpdmVuIGNvbm5lY3Rpb24gSUQuXHJcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb25cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICB0ZXN0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkudGVzdENvbm5lY3Rpb259LyR7Y29ubmVjdGlvbklkfWAsIHVuZGVmaW5lZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNoZXMgdGhlIGdsb2JhbCBzZWFyY2ggZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBAcGFyYW0gZGF0YSBQYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IG9iamVjdCBJRCBmb3IgcmVmcmVzaGluZyBzZWFyY2ggZGF0YVxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIEFQSSByZXNwb25zZVxyXG4gICAqL1xyXG4gIHJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhKGRhdGE6IFJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoYCR7QVBJLlJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVmcmVzaGVzIHRoZSByZWNvcmQgaW5mb3JtYXRpb24gZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBAcGFyYW0gZGF0YSBQYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IG9iamVjdCBJRCBmb3IgcmVmcmVzaGluZyByZWNvcmQgaW5mb3JtYXRpb24gZGF0YVxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIEFQSSByZXNwb25zZVxyXG4gICAqL1xyXG4gIHJlZnJlc2hSZWNvcmRJbmZvRGF0YShkYXRhOiBSZWZyZXNoUmVjb3JkSW5mb0RhdGFQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkuUmVmcmVzaFJlY29yZEluZm9EYXRhfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwb3J0cyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBVc2VzIFJlcG9ydCBtaWNyb3NlcnZpY2Ugd2l0aCBjYW1lbENhc2UgcGF5bG9hZFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIFBhcmFtZXRlcnMgZm9yIGV4cG9ydGluZyB0aGUgcmVwb3J0XHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZXhwb3J0IG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGV4cG9ydFJlcG9ydChwYXlsb2FkOiBSZXBvcnRQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIC8vIENvbnZlcnQgcGF5bG9hZCB0byBjYW1lbENhc2UgZm9yIG5ldyBBUElcclxuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XHJcbiAgICAgIGRhdGFSZXBvcnRJZDogcGF5bG9hZC5EYXRhUmVwb3J0SWQsXHJcbiAgICAgIHJlcVRva2VuczogcGF5bG9hZC5SZXF0b2tlbnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RUb1NlcnZpY2UoXHJcbiAgICAgIEFQSVNlcnZpY2VzLnJlcG9ydFNlcnZpY2UsXHJcbiAgICAgIEFQSS5yZXBvcnRFeHBvcnQsXHJcbiAgICAgIG5ld1BheWxvYWQsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChyZXM6IENvbW1vbkFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gQ29udmVydCByZXN1bHQgYmFjayB0byBvcmlnaW5hbCBmb3JtYXQgaWYgbmVlZGVkXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIFJlc3VsdDogcmVzPy5SZXN1bHQ/LmNvbnRlbnRcclxuICAgICAgICB9O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkcyBhIHJlcG9ydCBmaWxlIGJhc2VkIG9uIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAqIFVzZXMgUmVwb3J0IG1pY3Jvc2VydmljZSB3aXRoIGNhbWVsQ2FzZSBwYXlsb2FkXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGFyYW1ldGVycyBmb3IgZG93bmxvYWRpbmcgdGhlIHJlcG9ydCBmaWxlXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZG93bmxvYWQgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgZG93bmxvYWRSZXBvcnQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIC8vIENvbnZlcnQgcGF5bG9hZCB0byBjYW1lbENhc2UgZm9yIG5ldyBBUElcclxuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XHJcbiAgICAgIGRhdGFSZXBvcnRJZDogcGF5bG9hZC5EYXRhUmVwb3J0SWQsXHJcbiAgICAgIHJlcVRva2VuczogcGF5bG9hZC5SZXF0b2tlbnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RCbG9iVG9TZXJ2aWNlKFxyXG4gICAgICBBUElTZXJ2aWNlcy5yZXBvcnRTZXJ2aWNlLFxyXG4gICAgICBBUEkucmVwb3J0RG93bmxvYWQsXHJcbiAgICAgIG5ld1BheWxvYWQsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0gcGF5bG9hZCBQYXJhbWV0ZXJzIGZvciBzZW5kaW5nIHRoZSByZXBvcnRcclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBzZW5kIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHNlbmRSZXBvcnQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLnNlbmRSZXBvcnQsIHBheWxvYWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxlZCBhbmFseXRpY3Mgb2YgYSBzY3JlZW4ncyBwZXJmb3JtYW5jZS5cclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gYmUgc2VudCB0byB0aGUgQVBJXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljcyhkYXRhOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXREZXRhaWxPZlBlcmZvcm1hbmNlQW5hbHl0aWNzLCBkYXRhLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBzdW1tYXJ5IG9mIHBlcmZvcm1hbmNlIGFuYWx5dGljc1xyXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSB0byBiZSBzZW50IHRvIHRoZSBBUElcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBnZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcyhkYXRhOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcywgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgU2NyZWVuIFBlcmZvcm1hbmNlIFN0YXRpc3RpY3NcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gaW5zZXJ0XHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgaW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VTdGF0aXN0aWNzKGRhdGE6IFNjcmVlblBlcmZvcm1hbmNlUGF5bG9hZCwgY3VzdG9tSGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKGN1c3RvbUhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5JbnNlcnRTY3JlZW5QZXJmb3JtYW5jZUFuYWx5dGljcywgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYWxsIGRvY3VtZW50cy5cclxuICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICovXHJcbiAgZ2V0QWxsRG9jdW1uZXRzKGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoQVBJLkdldEFsbERvY3VtbmV0cywgdW5kZWZpbmVkLCBoZWFkZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgZG9jdW1lbnQgYnkgaXRzIElELlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgSUQgb2YgdGhlIGRvY3VtZW50IHRvIHJldHJpZXZlLlxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgKi9cclxuICBnZXREb2N1bWVudEJ5SWQoaWQ6IHN0cmluZywgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlciA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkuR2V0RG9jdW1lbnRCeUlkfS8ke2lkfWAsIHVuZGVmaW5lZCwgaGVhZGVyKTtcclxuICB9XHJcbn0iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmhlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2RhdGEtYWNjZXNzL3NyYy9saWIvdGFiLWNvcmUtdXRpbGl0eS9hcHAvaGVscGVycy9jb21tb24vYXBwLmhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdURBQXVEO0FBRXZELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFHckQsTUFBTSxPQUFPLFNBQVM7SUFEdEI7UUFFbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQXNSMUQ7SUFuUkM7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLFVBQWUsRUFBRSxFQUFFLE9BQWE7UUFDekMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDOUQsR0FBRyxDQUFDLENBQUMsR0FBc0IsRUFBRSxFQUFFO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDakMsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLENBQUMsQ0FDSCxDQUFD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QUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGlDQUFpQyxDQUFDLElBQThCLEVBQUUsYUFBbUI7UUFDbkYsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILGVBQWUsQ0FBQyxPQUFhO1FBQzNCLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuQyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILGVBQWUsQ0FBQyxFQUFVLEVBQUUsT0FBYTtRQUN2QyxNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxlQUFlLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2hGLENBQUM7MEVBdlJVLFNBQVM7dUVBQVQsU0FBUyxXQUFULFNBQVMsbUJBREksTUFBTTs7aUZBQ25CLFNBQVM7Y0FEckIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tICcuLi8uLi91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5pbXBvcnQgeyBBUEksIEFQSVNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL2FwaS1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ2xvbmVEc3FQYXlsb2FkLCBDb21tb25BcGlSZXNwb25zZSwgR2V0RGF0YUpzb25CeVR5cGVQYXlsb2FkLCBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQsIFJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhUGF5bG9hZCwgUmVmcmVzaFJlY29yZEluZm9EYXRhUGF5bG9hZCwgUmVnaXN0ZXJBcHBPYmplY3RzUGF5bG9hZCwgUmVwb3J0UGF5bG9hZCwgU2NyZWVuUGVyZm9ybWFuY2VQYXlsb2FkLCBTeW5jQXBwRmllbGRzUGF5bG9hZCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvY29tbW9uLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IE1ldGFkYXRhSGVscGVyIH0gZnJvbSAnLi9tZXRhLWRhdGEuaGVscGVycyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQXBwSGVscGVyIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBtZXRhZGF0YUhlbHBlciA9IGluamVjdChNZXRhZGF0YUhlbHBlcik7XHJcblxyXG5cclxuICAvKipcclxuICAgKiBSZWJ1aWxkcyB0aGUgYXBwbGljYXRpb24uXHJcbiAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSByZWJ1aWxkIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHJlYnVpbGRBcHAocGF5bG9hZDogYW55ID0ge30sIGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBoZWFkZXJzID0gZ2V0SGVhZGVycyhoZWFkZXJzKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuYnVpbGRBcHAsIHBheWxvYWQsIGhlYWRlcnMpLnBpcGUoXHJcbiAgICAgIG1hcCgocmVzOiBDb21tb25BcGlSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubWV0YWRhdGFIZWxwZXIuY2xlYXJDYWNoZSgpO1xyXG4gICAgICAgIHJldHVybiByZXM7XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogUHVibGlzaGVzIHRoZSBhcHBsaWNhdGlvbi5cclxuICAvLyAgKiBAcGFyYW0gcGFyYW1zIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHB1Ymxpc2hpbmcgdGhlIGFwcGxpY2F0aW9uXHJcbiAgLy8gICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBwdWJsaXNoIG9wZXJhdGlvblxyXG4gIC8vICAqL1xyXG4gIC8vIHB1Ymxpc2hBcHAocGFyYW1zPzogYW55KSB7XHJcbiAgLy8gICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gIC8vICAgaWYgKGhlYWRlcnMpIHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoQVBJLnB1Ymxpc2hBcHAsIHBhcmFtcywgaGVhZGVycyk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gbnVsbDtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBzY2hlbWEgZGF0YSBmcm9tIHRoZSBuZXcgbWV0YWRhdGEgQVBJLlxyXG4gICAqIFVzZXMgbWV0YWRhdGFTZXJ2aWNlIG1pY3Jvc2VydmljZSBlbmRwb2ludFxyXG4gICAqIEByZXR1cm5zIFN1YnNjcmlwdGlvbiBmb3IgZ2V0dGluZyBzY2hlbWEgZGF0YSAocmVzdWx0IGlzIG9iamVjdCwgbm90IHN0cmluZ2lmaWVkIEpTT04pXHJcbiAgICovXHJcbiAgZ2V0U2NoZW1hKCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldEZyb21TZXJ2aWNlKFxyXG4gICAgICBBUElTZXJ2aWNlcy5tZXRhZGF0YVNlcnZpY2UsXHJcbiAgICAgIEFQSS5tZXRhZGF0YVNjaGVtYSxcclxuICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICBoZWFkZXJzXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLy8gc3RvcmVTY2hlbWFJbnRvSURCKCl7XHJcbiAgLy8gICAvLyB0aGlzLmlkYlNlcnZpY2UuY2xlYXJJbmRleGVkREIoKVxyXG4gIC8vICAgdGhpcy5nZXRTY2hlbWEoKT8uc3Vic2NyaWJlKHtcclxuICAvLyAgICAgbmV4dDogKHZhbHVlOiBTY2hlbWFSZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgICAgQ29tbW9uLnRhYkpzb24gPSBKU09OLnBhcnNlKHZhbHVlLlJlc3VsdCk7XHJcbiAgLy8gICAgICAgICB0aGlzLmlkYlNlcnZpY2Uuc2V0SXRlbShTdG9yYWdlQ29uc3RhbnRzLnRhYkRhdGEsIEpTT04ucGFyc2UodmFsdWUuUmVzdWx0KSlcclxuICAvLyAgICAgfSxcclxuICAvLyAgICAgZXJyb3I6IChyZXNwb25zZTogRXJyb3IpID0+IHtcclxuICAvLyAgICAgICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKVxyXG4gIC8vICAgICB9XHJcbiAgLy8gfSlcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwZXJtaXNzaW9uIGRhdGEuXHJcbiAgICogQHJldHVybnMgU3Vic2NyaXB0aW9uIGZvciBnZXR0aW5nIHBlcm1pc3Npb24gZGF0YVxyXG4gICAqL1xyXG4gIGdldFBlcm1pc3Npb24oKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0RnJvbVNlcnZpY2UoQVBJU2VydmljZXMuY3J1ZFNlcnZpY2UsIEFQSS5wZXJtaXNzaW9ucywgdW5kZWZpbmVkLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJBY2Nlc3MoKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0RnJvbVNlcnZpY2UoQVBJU2VydmljZXMuY3J1ZFNlcnZpY2UsIEFQSS5nZXRVc2VyQWNjZXNzLCB1bmRlZmluZWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVnaXN0ZXJzIGFwcGxpY2F0aW9uIG9iamVjdHMuXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGFyYW1ldGVycyBmb3IgcmVnaXN0ZXJpbmcgYXBwbGljYXRpb24gb2JqZWN0c1xyXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgcmVnaXN0cmF0aW9uIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHJlZ2lzdGVyQXBwT2JqZWN0cyhwYXlsb2FkOiBSZWdpc3RlckFwcE9iamVjdHNQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0VG9TZXJ2aWNlKFxyXG4gICAgICBBUElTZXJ2aWNlcy5tZXRhZGF0YVNlcnZpY2UsXHJcbiAgICAgIEFQSS5hcHBsaWNhdGlvblJlZ2lzdGVyQXBwT2JqZWN0cyxcclxuICAgICAgcGF5bG9hZFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENsb25lcyBhIERhdGFTb3VyY2VRdWVyeSAoRFNRKSB3aXRoIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIHBhcmFtZXRlcnMgZm9yIGNsb25pbmcgdGhlIERTUVxyXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGNsb25pbmcgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgY2xvbmVEc3EocGF5bG9hZDogQ2xvbmVEc3FQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChBUEkuY2xvbmVEc3EsIHBheWxvYWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGRhdGEgaW4gSlNPTiBmb3JtYXQgYmFzZWQgb24gdGhlIGdpdmVuIEpTT04gdHlwZSBhbmQgcmVxdWVzdCB0b2tlbnMuXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGF5bG9hZCBjb250YWluaW5nIHRoZSBKU09OIHR5cGUgYW5kIHJlcXVlc3QgdG9rZW5zXHJcbiAgICogQHJldHVybnMgVGhlIEpTT04gZGF0YSByZXRyaWV2ZWRcclxuICAgKi9cclxuICBnZXREYXRhSnNvbkJ5VHlwZShwYXlsb2FkOiBHZXREYXRhSnNvbkJ5VHlwZVBheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXREYXRhSnNvbkJ5VHlwZSwgcGF5bG9hZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTeW5jcyB0aGUgZmllbGRzIG9mIHRoZSBhcHBsaWNhdGlvbiBvYmplY3Qgd2l0aCB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0gcGF5bG9hZCBQYXJhbWV0ZXJzIGZvciBzeW5jaW5nIHRoZSBmaWVsZHNcclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBzeW5jaHJvbml6YXRpb24gb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgc3luY0FwcEZpZWxkcyhwYXlsb2FkOiBTeW5jQXBwRmllbGRzUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdFRvU2VydmljZShcclxuICAgICAgQVBJU2VydmljZXMubWV0YWRhdGFTZXJ2aWNlLFxyXG4gICAgICBBUEkuYXBwbGljYXRpb25TeW5jQXBwRmllbGRzLFxyXG4gICAgICBwYXlsb2FkXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSBnaXZlbiB0ZW5hbnRcclxuICAgKiBAcGFyYW0gY29ubmVjdGlvbklkIFRoZSBJRCBvZiB0aGUgY29ubmVjdGlvblxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHNldFRhYkNvbXBvbmVudHMoY29ubmVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGAke0FQSS5zZXRUYWJDb21wb25lbnRzfS8ke2Nvbm5lY3Rpb25JZH1gLCB7fSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSByZXN1bHQgb2YgdGhlIHZhbGlkYXRpb24gZm9yIHRoZSBnaXZlbiBjb25uZWN0aW9uXHJcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb25cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBwZXJmb3JtVmFsaWRhdGlvbihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkucGVyZm9ybVZhbGlkYXRpb259LyR7Y29ubmVjdGlvbklkfWAsIHVuZGVmaW5lZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBUZXN0cyB0aGUgY29ubmVjdGlvbiBmb3IgdGhlIGdpdmVuIGNvbm5lY3Rpb24gSUQuXHJcbiAgICogQHBhcmFtIGNvbm5lY3Rpb25JZCBUaGUgSUQgb2YgdGhlIGNvbm5lY3Rpb25cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICB0ZXN0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkudGVzdENvbm5lY3Rpb259LyR7Y29ubmVjdGlvbklkfWAsIHVuZGVmaW5lZCwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWZyZXNoZXMgdGhlIGdsb2JhbCBzZWFyY2ggZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBAcGFyYW0gZGF0YSBQYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IG9iamVjdCBJRCBmb3IgcmVmcmVzaGluZyBzZWFyY2ggZGF0YVxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIEFQSSByZXNwb25zZVxyXG4gICAqL1xyXG4gIHJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhKGRhdGE6IFJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhUGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoYCR7QVBJLlJlZnJlc2hHbG9iYWxTZWFyY2hEYXRhfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVmcmVzaGVzIHRoZSByZWNvcmQgaW5mb3JtYXRpb24gZGF0YSB1c2luZyB0aGUgcHJvdmlkZWQgcGF5bG9hZC5cclxuICAgKiBAcGFyYW0gZGF0YSBQYXlsb2FkIGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IG9iamVjdCBJRCBmb3IgcmVmcmVzaGluZyByZWNvcmQgaW5mb3JtYXRpb24gZGF0YVxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIEFQSSByZXNwb25zZVxyXG4gICAqL1xyXG4gIHJlZnJlc2hSZWNvcmRJbmZvRGF0YShkYXRhOiBSZWZyZXNoUmVjb3JkSW5mb0RhdGFQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkuUmVmcmVzaFJlY29yZEluZm9EYXRhfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhwb3J0cyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBVc2VzIFJlcG9ydCBtaWNyb3NlcnZpY2Ugd2l0aCBjYW1lbENhc2UgcGF5bG9hZFxyXG4gICAqIEBwYXJhbSBwYXlsb2FkIFBhcmFtZXRlcnMgZm9yIGV4cG9ydGluZyB0aGUgcmVwb3J0XHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZXhwb3J0IG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIGV4cG9ydFJlcG9ydChwYXlsb2FkOiBSZXBvcnRQYXlsb2FkKTogT2JzZXJ2YWJsZTxDb21tb25BcGlSZXNwb25zZT4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIC8vIENvbnZlcnQgcGF5bG9hZCB0byBjYW1lbENhc2UgZm9yIG5ldyBBUElcclxuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XHJcbiAgICAgIGRhdGFSZXBvcnRJZDogcGF5bG9hZC5EYXRhUmVwb3J0SWQsXHJcbiAgICAgIHJlcVRva2VuczogcGF5bG9hZC5SZXF0b2tlbnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RUb1NlcnZpY2UoXHJcbiAgICAgIEFQSVNlcnZpY2VzLnJlcG9ydFNlcnZpY2UsXHJcbiAgICAgIEFQSS5yZXBvcnRFeHBvcnQsXHJcbiAgICAgIG5ld1BheWxvYWQsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgICkucGlwZShcclxuICAgICAgbWFwKChyZXM6IENvbW1vbkFwaVJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgLy8gQ29udmVydCByZXN1bHQgYmFjayB0byBvcmlnaW5hbCBmb3JtYXQgaWYgbmVlZGVkXHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLnJlcyxcclxuICAgICAgICAgIFJlc3VsdDogcmVzPy5SZXN1bHQ/LmNvbnRlbnRcclxuICAgICAgICB9O1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkcyBhIHJlcG9ydCBmaWxlIGJhc2VkIG9uIHRoZSBnaXZlbiBwYXJhbWV0ZXJzLlxyXG4gICAqIFVzZXMgUmVwb3J0IG1pY3Jvc2VydmljZSB3aXRoIGNhbWVsQ2FzZSBwYXlsb2FkXHJcbiAgICogQHBhcmFtIHBheWxvYWQgUGFyYW1ldGVycyBmb3IgZG93bmxvYWRpbmcgdGhlIHJlcG9ydCBmaWxlXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZG93bmxvYWQgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgZG93bmxvYWRSZXBvcnQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IE9ic2VydmFibGU8QmxvYj4ge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIC8vIENvbnZlcnQgcGF5bG9hZCB0byBjYW1lbENhc2UgZm9yIG5ldyBBUElcclxuICAgIGNvbnN0IG5ld1BheWxvYWQgPSB7XHJcbiAgICAgIGRhdGFSZXBvcnRJZDogcGF5bG9hZC5EYXRhUmVwb3J0SWQsXHJcbiAgICAgIHJlcVRva2VuczogcGF5bG9hZC5SZXF0b2tlbnNcclxuICAgIH07XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RCbG9iVG9TZXJ2aWNlKFxyXG4gICAgICBBUElTZXJ2aWNlcy5yZXBvcnRTZXJ2aWNlLFxyXG4gICAgICBBUEkucmVwb3J0RG93bmxvYWQsXHJcbiAgICAgIG5ld1BheWxvYWQsXHJcbiAgICAgIGhlYWRlcnNcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTZW5kcyBhIHJlcG9ydCBiYXNlZCBvbiB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cclxuICAgKiBAcGFyYW0gcGF5bG9hZCBQYXJhbWV0ZXJzIGZvciBzZW5kaW5nIHRoZSByZXBvcnRcclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBzZW5kIG9wZXJhdGlvblxyXG4gICAqL1xyXG4gIHNlbmRSZXBvcnQocGF5bG9hZDogUmVwb3J0UGF5bG9hZCk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoQVBJLnNlbmRSZXBvcnQsIHBheWxvYWQsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxlZCBhbmFseXRpY3Mgb2YgYSBzY3JlZW4ncyBwZXJmb3JtYW5jZS5cclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gYmUgc2VudCB0byB0aGUgQVBJXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljcyhkYXRhOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXREZXRhaWxPZlBlcmZvcm1hbmNlQW5hbHl0aWNzLCBkYXRhLCBoZWFkZXJzKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBzdW1tYXJ5IG9mIHBlcmZvcm1hbmNlIGFuYWx5dGljc1xyXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSB0byBiZSBzZW50IHRvIHRoZSBBUElcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBnZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcyhkYXRhOiBQZXJmb3JtYW5jZUFuYWx5dGljc1BheWxvYWQpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5HZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljcywgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgU2NyZWVuIFBlcmZvcm1hbmNlIFN0YXRpc3RpY3NcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gaW5zZXJ0XHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgaW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VTdGF0aXN0aWNzKGRhdGE6IFNjcmVlblBlcmZvcm1hbmNlUGF5bG9hZCwgY3VzdG9tSGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKGN1c3RvbUhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KEFQSS5JbnNlcnRTY3JlZW5QZXJmb3JtYW5jZUFuYWx5dGljcywgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYWxsIGRvY3VtZW50cy5cclxuICAgKiBAcGFyYW0gaGVhZGVycyBPcHRpb25hbCBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBBbiBvYnNlcnZhYmxlIG9mIHRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkuXHJcbiAgICovXHJcbiAgZ2V0QWxsRG9jdW1uZXRzKGhlYWRlcnM/OiBhbnkpOiBPYnNlcnZhYmxlPENvbW1vbkFwaVJlc3BvbnNlPiB7XHJcbiAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoQVBJLkdldEFsbERvY3VtbmV0cywgdW5kZWZpbmVkLCBoZWFkZXIpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgZG9jdW1lbnQgYnkgaXRzIElELlxyXG4gICAqIEBwYXJhbSBpZCBUaGUgSUQgb2YgdGhlIGRvY3VtZW50IHRvIHJldHJpZXZlLlxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSS5cclxuICAgKi9cclxuICBnZXREb2N1bWVudEJ5SWQoaWQ6IHN0cmluZywgaGVhZGVycz86IGFueSk6IE9ic2VydmFibGU8Q29tbW9uQXBpUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IGhlYWRlciA9IGdldEhlYWRlcnMoaGVhZGVycyk7XHJcbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChgJHtBUEkuR2V0RG9jdW1lbnRCeUlkfS8ke2lkfWAsIHVuZGVmaW5lZCwgaGVhZGVyKTtcclxuICB9XHJcbn0iXX0=
@@ -32,7 +32,7 @@ export declare const API: {
32
32
  statusUpdate: string;
33
33
  authRegisterUser: string;
34
34
  getUserDetails: string;
35
- getPermission: string;
35
+ permissions: string;
36
36
  getUserAccess: string;
37
37
  testConnection: string;
38
38
  performValidation: string;
@@ -57,7 +57,7 @@ export declare const API: {
57
57
  GetReleaseJSONDifference: string;
58
58
  GetDataDifference: string;
59
59
  RegisterTenant: string;
60
- Execute: string;
60
+ databaseExecute: string;
61
61
  GetAllDocumnets: string;
62
62
  GetDocumentById: string;
63
63
  ExecuteWorkflow: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techextensor/tab-core-utility",
3
- "version": "2.2.195",
3
+ "version": "2.2.196",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^19.2.15",
6
6
  "@angular/core": "^19.2.15",