@techextensor/tab-core-utility 2.2.115 → 2.2.120

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.
@@ -22,12 +22,9 @@ export class TabGetService {
22
22
  * @param data - Object containing AppObjectName and DSQName
23
23
  * @returns Response from the API
24
24
  */
25
- executeRAWDSQWithName(data) {
26
- const headers = getHeaders();
27
- if (headers) {
28
- return this.apiService.post(`${API.getDSQ}/${data.AppObjectName}/${data.DSQName}`, data, headers);
29
- }
30
- return null;
25
+ executeRAWDSQWithName(data, headers) {
26
+ const header = getHeaders(headers);
27
+ return this.apiService.post(`${API.getDSQ}/${data.AppObjectName}/${data.DSQName}`, data, header);
31
28
  }
32
29
  /**
33
30
  * Get Record
@@ -380,4 +377,4 @@ export class TabGetService {
380
377
  type: Injectable,
381
378
  args: [{ providedIn: 'root' }]
382
379
  }], null, null); })();
383
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWdldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR2pDLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQXNhaEQ7SUFwYUM7Ozs7T0FJRztJQUNILHFCQUFxQixDQUFDLElBQVM7UUFDN0IsTUFB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O1lBQ1osd0NBQXdDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJO1lBQ3pCLDJEQUEyRDtZQUMzRCxHQUFHLEdBQUcsQ0FBQyxnQ0FBZ0MsRUFBRSxFQUN6QyxJQUFJO1lBQ0osOEJBQThCO1lBQzlCLE9BQU8sQ0FDUixDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzs4RUF2YVUsYUFBYTt1RUFBYixhQUFhLFdBQWIsYUFBYSxtQkFEQSxNQUFNOztpRkFDbkIsYUFBYTtjQUR6QixVQUFVO2VBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xyXG5cclxuaW1wb3J0IHsgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9odHRwLWNsaWVudC9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IERTUUhlbHBlciB9IGZyb20gJy4uL2hlbHBlcnMvY29tbW9uL2RzcS5oZWxwZXJzJztcclxuaW1wb3J0IHsgZ2V0SGVhZGVycyB9IGZyb20gJy4uL3V0aWxzL3JlcS1yZXMudXRpbCc7XHJcbmltcG9ydCB7IEFQSSB9IGZyb20gJy4uL2NvbnN0YW50cy9hcGktY29uc3RhbnRzJztcclxuaW1wb3J0IHsgZ2V0QXBwT2JqZWN0IH0gZnJvbSAnLi4vdXRpbHMvdGFiLWFwcC51dGlsJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFQSVNlbGVjdFF1ZXJ5IH0gZnJvbSAnLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzcyc7XHJcbmltcG9ydCB7IEZpbHRlclZhbHVlVHlwZSB9IGZyb20gJy4uL2VudW1zL2RzcS5lbnVtJztcclxuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSAnLi4vZW51bXMvcXVlcnkuZW51bSc7XHJcbmltcG9ydCB7XHJcbiAgQXBwT2JqZWN0c0NvbnN0YW50cyxcclxuICBEYXRhU291cmNlUXVlcmllc0NvbnN0YW50cyxcclxufSBmcm9tICcuLi9jb25zdGFudHMvYXBwLW9iamVjdC1jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWJHZXRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBkc3FIZWxwZXIgPSBpbmplY3QoRFNRSGVscGVyKTtcclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZSBSQVcgRFNRIHdpdGggTmFtZVxyXG4gICAqIEBwYXJhbSBkYXRhIC0gT2JqZWN0IGNvbnRhaW5pbmcgQXBwT2JqZWN0TmFtZSBhbmQgRFNRTmFtZVxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGV4ZWN1dGVSQVdEU1FXaXRoTmFtZShkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChcclxuICAgICAgICBgJHtBUEkuZ2V0RFNRfS8ke2RhdGEuQXBwT2JqZWN0TmFtZX0vJHtkYXRhLkRTUU5hbWV9YCxcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IFJlY29yZFxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBQYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGdldFJlY29yZChwYXJhbXM6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoYCR7QVBJLmdldHJlY29yZH1gLCBwYXJhbXMsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlIFJhdyBTUUxcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZXhlY3V0ZVJhd1NxbChkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkucmF3U1FMfSR7ZGF0YX1gLCAnJywgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBIaXN0b3J5XHJcbiAgICogQHBhcmFtIGFwcE9iamVjdElkIC0gSUQgb2YgdGhlIGFwcGxpY2F0aW9uIG9iamVjdFxyXG4gICAqIEBwYXJhbSByZWNvcmRJZHMgLSBBcnJheSBvZiByZWNvcmQgSURzXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0SGlzdG9yeShhcHBPYmplY3RJZDogc3RyaW5nLCByZWNvcmRJZHM6IHN0cmluZ1tdKTogYW55IHtcclxuICAgIGNvbnN0IGRhdGE6IGFueSA9IHt9O1xyXG4gICAgaWYgKGFwcE9iamVjdElkICYmIHJlY29yZElkcykge1xyXG4gICAgICBjb25zdCBhcHBPYmplY3ROYW1lID0gZ2V0QXBwT2JqZWN0KGFwcE9iamVjdElkKT8uT2JqZWN0TmFtZTtcclxuICAgICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgICAgaWYgKGFwcE9iamVjdE5hbWUgJiYgaGVhZGVycykge1xyXG4gICAgICAgIGRhdGEuT2JqZWN0TmFtZSA9IGFwcE9iamVjdE5hbWU7XHJcbiAgICAgICAgZGF0YS5SZWNvcmRJZHMgPSByZWNvcmRJZHM7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGAke0FQSS5nZXRIaXN0b3J5fWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENoYW5nZSBQYXNzd29yZFxyXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSBmb3IgY2hhbmdpbmcgcGFzc3dvcmRcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBjaGFuZ2VQYXNzd29yZChkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkuY2hhbmdlUGFzc3dvcmR9YCwgZGF0YSwgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXNldCBQYXNzd29yZFxyXG4gICAqIEBwYXJhbSBkYXRhIC0gRGF0YSBmb3IgcmVzZXR0aW5nIHBhc3N3b3JkXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgcmVzZXRQYXNzd29yZChkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IG5ldyBIdHRwSGVhZGVycyh7XHJcbiAgICAgICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsXHJcbiAgICAgIGFwcGxpY2F0aW9uQ29kZTogQ29tbW9uLmFwcGxpY2F0aW9uQ29kZSxcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGAke0FQSS5yZXN0cGFzc3dvcmR9YCwgZGF0YSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQTUpBWSBJbXBvcnRcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIFBNSkFZIGltcG9ydFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHBtamF5SW1wb3J0KGRhdGE6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KGAke0FQSS5wbWpheUltcG9ydH1gLCBkYXRhLCBoZWFkZXJzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGEgc2VsZWN0IHF1ZXJ5IHdpdGggb3B0aW9uYWwgcGFyYW1ldGVyc1xyXG4gICAqIEBwYXJhbSBkYXRhIC0gVGhlIHNlbGVjdCBxdWVyeSBkYXRhXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgLSBPcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHF1ZXJ5XHJcbiAgICogQHJldHVybnMgUmVzdWx0IG9mIHRoZSBzZWxlY3QgcXVlcnkgZXhlY3V0aW9uXHJcbiAgICovXHJcbiAgc2VsZWN0RXhlY3V0b3IoZGF0YTogQVBJU2VsZWN0UXVlcnksIHBhcmFtZXRlcnM/OiBhbnkpOiBhbnkge1xyXG4gICAgaWYgKHBhcmFtZXRlcnMgJiYgT2JqZWN0LmtleXMocGFyYW1ldGVycykubGVuZ3RoKSB7XHJcbiAgICAgIGRhdGEuV2hlcmVDbGF1c2UuRmlsdGVyTG9naWMgPSBkYXRhLldoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljIHx8ICdbXSc7XHJcbiAgICAgIGRhdGEuV2hlcmVDbGF1c2UuRmlsdGVycyA9IGRhdGEuV2hlcmVDbGF1c2UuRmlsdGVycyB8fCBbXTtcclxuICAgICAgZGF0YS5XaGVyZUNsYXVzZS5TUUxRdWVyeSA9IGRhdGEuV2hlcmVDbGF1c2UuU1FMUXVlcnkgfHwgJyc7XHJcbiAgICAgIC8qKlxyXG4gICAgICAgKiBSZXBsYWNlcyB2YWx1ZXMgZnJvbSBwYXJhbWV0ZXJzIGlmIG1hdGNoZWQgYW5kIGluIGZvcm1hdCBvZiB7e2tleX19LlxyXG4gICAgICAgKiBFeGFtcGxlOiBpZiBmaWx0ZXIuVmFsdWUgaXMgXCJ7e3VzZXJJZH19XCIgYW5kXHJcbiAgICAgICAqIHRoaXMuX3ZhbHVlLnBhcmFtZXRlcnMudXNlcklkIGlzIDEyMywgdGhlbiBmaWx0ZXIuVmFsdWUgd2lsbCBiZSByZXBsYWNlZCB3aXRoXHJcbiAgICAgICAqIFwiMTIzXCIuXHJcbiAgICAgICAqL1xyXG4gICAgICBkYXRhLldoZXJlQ2xhdXNlLkZpbHRlcnMuZm9yRWFjaCgoZmlsdGVyOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBmaWx0ZXIuVmFsdWVUeXBlIGlzIDEgKGxpdGVyYWwpXHJcbiAgICAgICAgaWYgKGZpbHRlci5WYWx1ZSAmJiBmaWx0ZXIuVmFsdWVUeXBlID09IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsKSB7XHJcbiAgICAgICAgICBmaWx0ZXIuVmFsdWUgPSBmaWx0ZXIuVmFsdWUucmVwbGFjZShcclxuICAgICAgICAgICAgL3t7KFtefV0rKX19L2csXHJcbiAgICAgICAgICAgIChtYXRjaDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyc1trZXldO1xyXG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBpZiB2YWx1ZVR5cGUgPSAyIChQYXJhbWV0ZXJzKVxyXG4gICAgICAgIC8vIHRoZW4gd2UgbmVlZCB0byByZXBsYWNlIHRoZSB2YWx1ZSB3aXRoIHBhcmFtZXRlcnMgYW5kIGNoYW5nZSB0aGUgdmFsdWVUeXBlIHRvIDEgKExpdGVyYWwpXHJcbiAgICAgICAgZWxzZSBpZiAoZmlsdGVyLlZhbHVlVHlwZSA9PSBGaWx0ZXJWYWx1ZVR5cGUuUGFyYW1ldGVyKSB7XHJcbiAgICAgICAgICBmaWx0ZXIuVmFsdWUgPSBmaWx0ZXIuVmFsdWUucmVwbGFjZShcclxuICAgICAgICAgICAgLyhbXn1dKykvZyxcclxuICAgICAgICAgICAgKG1hdGNoOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XHJcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBwYXJhbWV0ZXJzW2tleV07XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IG51bGw7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBmaWx0ZXIuVmFsdWVUeXBlID0gRmlsdGVyVmFsdWVUeXBlLkxpdGVyYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgKGRhdGE/LldoZXJlQ2xhdXNlPy5GaWx0ZXJzIHx8IFtdKS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBlbGVtZW50LlZhbHVlVHlwZSA9PT0gRmlsdGVyVmFsdWVUeXBlLlBhcmFtZXRlciAmJlxyXG4gICAgICAgICAgcGFyYW1ldGVyc1tlbGVtZW50LkZpZWxkSURdXHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICBlbGVtZW50LlZhbHVlID0gcGFyYW1ldGVyc1tlbGVtZW50LkZpZWxkSURdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGRhdGEsIFF1ZXJ5VHlwZS5TZWxlY3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgYSBzZWxlY3QgcXVlcnkgYnkgaXRzIElELCB1c2luZyB0aGUgcHJvdmlkZWQgcGFyYW1ldGVycy5cclxuICAgKlxyXG4gICAqIEBwYXJhbSBzZWxlY3RRdWVyeUlkIC0gVGhlIElEIG9mIHRoZSBzZWxlY3QgcXVlcnkgdG8gYmUgZXhlY3V0ZWQuXHJcbiAgICogQHBhcmFtIHBhcmFtZXRlcnMgLSBPcHRpb25hbCBwYXJhbWV0ZXJzIHRvIGJlIGFwcGxpZWQgdG8gdGhlIHF1ZXJ5LlxyXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIHNlbGVjdCBxdWVyeSBleGVjdXRpb24uXHJcbiAgICogQHRocm93cyBBbiBlcnJvciBpZiB0aGUgQVBJIHJlc3BvbnNlIHN0YXR1cyBjb2RlIGlzIG5vdCAnMjAwJy5cclxuICAgKi9cclxuICBleGVjdXRlU2VsZWN0UXVlcnlCeUlkKHNlbGVjdFF1ZXJ5SWQ6IHN0cmluZywgcGFyYW1ldGVycz86IGFueSk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy5leGVjdXRlUkFXRFNRV2l0aE5hbWUoe1xyXG4gICAgICBBcHBPYmplY3ROYW1lOiBBcHBPYmplY3RzQ29uc3RhbnRzLlRBQkRfUXVlcmllcyxcclxuICAgICAgRFNRTmFtZTogRGF0YVNvdXJjZVF1ZXJpZXNDb25zdGFudHMuRGV0YWlsX1RBQkRfUXVlcmllcyxcclxuICAgICAgUmVxdG9rZW5zOiB7XHJcbiAgICAgICAgSUQ6IHNlbGVjdFF1ZXJ5SWQsXHJcbiAgICAgIH0sXHJcbiAgICB9KS5waXBlKFxyXG4gICAgICBzd2l0Y2hNYXAoKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5TdGF0dXNDb2RlID09PSAnMjAwJykge1xyXG4gICAgICAgICAgY29uc3QgQ29uZmlndXJhdGlvbiA9IEpTT04ucGFyc2UocmVzLlJlc3VsdFswXS5Db25maWd1cmF0aW9uIHx8ICd7fScpO1xyXG4gICAgICAgICAgaWYgKENvbmZpZ3VyYXRpb24uV2hlcmVDbGF1c2U/LkZpbHRlcnMpIHtcclxuICAgICAgICAgICAgQ29uZmlndXJhdGlvbi5XaGVyZUNsYXVzZS5GaWx0ZXJzID0gdGhpcy5yZW1vdmVXaGVyZUNsYXVzZUZvckVtcHR5UGFyYW1zKENvbmZpZ3VyYXRpb24uV2hlcmVDbGF1c2UuRmlsdGVycywgcGFyYW1ldGVycyB8fCB7fSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RFeGVjdXRvcihDb25maWd1cmF0aW9uLCBwYXJhbWV0ZXJzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlcy5NZXNzYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxuICByZW1vdmVXaGVyZUNsYXVzZUZvckVtcHR5UGFyYW1zKGZpbHRlcnM6IGFueVtdLCBwYXJhbWV0ZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogYW55W10ge1xyXG4gICAgcmV0dXJuIGZpbHRlcnMuZmlsdGVyKChmaWx0ZXI6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChmaWx0ZXIuVmFsdWVUeXBlID09PSBGaWx0ZXJWYWx1ZVR5cGUuUGFyYW1ldGVyKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtZXRlck5hbWUgPSBmaWx0ZXIuVmFsdWU7XHJcbiAgICAgICAgICAgIGlmIChwYXJhbWV0ZXJzPy5oYXNPd25Qcm9wZXJ0eShwYXJhbWV0ZXJOYW1lKSAmJiBwYXJhbWV0ZXJzW3BhcmFtZXRlck5hbWVdID09PSAnJykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBSZW1vdmUgZmlsdGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHBhcmFtZXRlcnMgfHwge30pLmxlbmd0aCA9PT0gMCAmJiBmaWx0ZXIuVmFsdWVUeXBlID09PSBGaWx0ZXJWYWx1ZVR5cGUuUGFyYW1ldGVyKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gUmVtb3ZlIGZpbHRlclxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTsgLy8gS2VlcCBmaWx0ZXJcclxuICAgIH0pO1xyXG4gIH1cclxuICBnZXRUZXN0Q29ubmVjdGlvbihjb25uZWN0aW9uSWQ6IGFueSwgcGFyYW1zPzogYW55KTogYW55IHtcclxuICAgIGlmIChjb25uZWN0aW9uSWQpIHtcclxuICAgICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICAgIGAke0FQSS50ZXN0Q29ubmVjdGlvbn0ke2Nvbm5lY3Rpb25JZH1gLFxyXG4gICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgaGVhZGVyc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRQZXJmb3JtVmFsaWRhdGlvbihjb25uZWN0aW9uSWQ6IGFueSwgcGFyYW1zPzogYW55KTogYW55IHtcclxuICAgIGlmIChjb25uZWN0aW9uSWQpIHtcclxuICAgICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICAgIGAke0FQSS5wZXJmb3JtVmFsaWRhdGlvbn0ke2Nvbm5lY3Rpb25JZH1gLFxyXG4gICAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgICAgaGVhZGVyc1xyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBTZXRzIHRoZSB0YWIgY29tcG9uZW50cyBmb3IgdGhlIGdpdmVuIHRlbmFudFxyXG4gICAqIEBwYXJhbSBjb25uZWN0aW9uSWQgVGhlIElEIG9mIHRoZSBjb25uZWN0aW9uXHJcbiAgICogQHJldHVybnMgQW4gb2JzZXJ2YWJsZSBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgc2V0VGFiQ29tcG9uZW50c0ZvclRlbmFudChjb25uZWN0aW9uSWQ6IHN0cmluZywgZGF0YT86IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgLy8gU2V0IHRoZSB0YWIgY29tcG9uZW50cyBmb3IgdGhlIHRlbmFudFxyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgLy8gQVBJIGVuZHBvaW50IGZvciBzZXR0aW5nIHRhYiBjb21wb25lbnRzXHJcbiAgICAgICAgYCR7QVBJLnNldFRhYkNvbXBvbmVudHN9JHtjb25uZWN0aW9uSWR9YCxcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBhIGZvcm0gY29uZmlndXJhdGlvbiBmb3IgYSBjb21tb24gZmlsdGVyIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBhcHBsaWNhdGlvbiBvYmplY3QgSUQuXHJcbiAgICogQHBhcmFtIGFwcE9iamVjdElkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkgb3IgbnVsbCBpZiBoZWFkZXJzIGFyZSB1bmF2YWlsYWJsZS5cclxuICAgKi9cclxuICBnZXRCdWlsZEZvcm1JT0ZvckNvbW1vbkZpbHRlcihhcHBPYmplY3RJZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICBgJHtBUEkuQnVpbGRGb3JtSU9Db21wb25lbnRzfSR7YXBwT2JqZWN0SWR9JlR5cGU9Q29tbW9uRmlsdGVyYCxcclxuICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBmb3JtIGNvbmZpZ3VyYXRpb24gZm9yIGEgYnVsayB1cGRhdGUgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGFwcGxpY2F0aW9uIG9iamVjdCBJRC5cclxuICAgKiBAcGFyYW0gYXBwT2JqZWN0SWQgLSBUaGUgSUQgb2YgdGhlIGFwcGxpY2F0aW9uIG9iamVjdC5cclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gT3B0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3QuXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSSBvciBudWxsIGlmIGhlYWRlcnMgYXJlIHVuYXZhaWxhYmxlLlxyXG4gICAqL1xyXG4gIGdldEJ1aWxkRm9ybUlPRm9yQnVsa1VwZGF0ZShhcHBPYmplY3RJZDogc3RyaW5nLCBwYXJhbXM/OiBhbnkpIHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICBgJHtBUEkuQnVpbGRGb3JtSU9Db21wb25lbnRzfSR7YXBwT2JqZWN0SWR9JlR5cGU9QnVsa1VwZGF0ZWAsXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLy8gLyoqXHJcbiAgLy8gICogR2V0IFJlc291cmNlIExhbmd1YWdlIEJ5IExhbmd1YWdlIENvZGVcclxuICAvLyAgKiBAcGFyYW0gbGFuZ3VhZ2VDb2RlIC0gTGFuZ3VhZ2UgQ29kZVxyXG4gIC8vICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gIC8vICAqL1xyXG4gIC8vIGdldFJlc291cmNlTGFuZ3VhZ2VCeUxhbmd1YWdlQ29kZShsYW5ndWFnZUNvZGU6IG51bWJlcik6IGFueSB7XHJcbiAgLy8gICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gIC8vICAgaWYgKGhlYWRlcnMpIHtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxyXG4gIC8vICAgICAgIGAke0FQSS5sYW5ndWFnZVJlc291cmNlfWAsXHJcbiAgLy8gICAgICAgeyBMYW5ndWFnZUNvZGU6IGxhbmd1YWdlQ29kZSB9LFxyXG4gIC8vICAgICAgIGhlYWRlcnNcclxuICAvLyAgICAgKTtcclxuICAvLyAgIH1cclxuICAvLyAgIHJldHVybiBudWxsO1xyXG4gIC8vIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IFNlYXJjaCBEYXRhXHJcbiAgICogQHBhcmFtIHNlYXJjaFF1ZXJ5IC0gU2VhcmNoIFF1ZXJ5IHN0cmluZ1xyXG4gICAqIEBwYXJhbSBsaW1pdCAtIExpbWl0IG9mIHNlYXJjaCByZXN1bHRzXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0U2VhcmNoRGF0YShzZWFyY2hRdWVyeTogc3RyaW5nLCBsaW1pdDogbnVtYmVyLCBwYXJhbXM/OiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KFxyXG4gICAgICAgIGAke0FQSS5zZWFyY2h9P3NlYXJjaFF1ZXJ5PSR7c2VhcmNoUXVlcnl9JmxpbWl0PSR7bGltaXR9YCxcclxuICAgICAgICBwYXJhbXMsXHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBJbnNlcnQgU2NyZWVuIFBlcmZvcm1hbmNlIFN0YXRpc3RpY3NcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gaW5zZXJ0XHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgaW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VTdGF0aXN0aWNzKGRhdGE6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgLy8gU2V0IHRoZSB0YWIgY29tcG9uZW50cyBmb3IgdGhlIHRlbmFudFxyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgLy8gQVBJIGVuZHBvaW50IGZvciBpbnNlcnRpbmcgc2NyZWVuIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3NcclxuICAgICAgICBgJHtBUEkuSW5zZXJ0U2NyZWVuUGVyZm9ybWFuY2VBbmFseXRpY3N9YCxcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZXMgYW4gSFRUUCByZXF1ZXN0IHdpdGggdGhlIHNwZWNpZmllZCBtZXRob2QsIFVSTCwgaGVhZGVycywgYW5kIGJvZHkuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gZnVsbFVybCAtVGhlIGZ1bGwgVVJMIG9mIHRoZSByZXF1ZXN0IGNvbnRhaW5pbmcgdGhlIHF1ZXJ5IHBhcmFtZXRlcnMuXHJcbiAgICogQHBhcmFtIG1ldGhvZCAtIFRoZSBIVFRQIG1ldGhvZCB0byBiZSB1c2VkICgnR0VUJywgJ1BPU1QnLCAnUFVUJywgJ0RFTEVURScpLlxyXG4gICAqIEBwYXJhbSBoZWFkZXJzIC0gVGhlIGhlYWRlcnMgdG8gaW5jbHVkZSBpbiB0aGUgcmVxdWVzdC5cclxuICAgKiBAcGFyYW0gYm9keSAtIFRoZSBib2R5IGNvbnRlbnQgZm9yIG1ldGhvZHMgbGlrZSBQT1NUIGFuZCBQVVQuXHJcbiAgICogQHJldHVybnMgVGhlIEFQSSByZXNwb25zZSBjb3JyZXNwb25kaW5nIHRvIHRoZSByZXF1ZXN0LlxyXG4gICAqL1xyXG4gIGV4ZWN1dGVIdHRwUmVxdWVzdChcclxuICAgIGZ1bGxVcmw6IGFueSxcclxuICAgIG1ldGhvZDogJ0dFVCcgfCAnUE9TVCcgfCAnUFVUJyB8ICdERUxFVEUnLFxyXG4gICAgaGVhZGVyczogYW55LFxyXG4gICAgYm9keTogYW55XHJcbiAgKTogYW55IHtcclxuICAgIGhlYWRlcnMgPSB7XHJcbiAgICAgIC4uLihoZWFkZXJzIHx8IHt9KSxcclxuICAgICAgJ1gtU2tpcC1JbnRlcmNlcHRvcic6ICd0cnVlJyxcclxuICAgICAgJ1gtU2tpcC1BdXRoJzogJ3RydWUnLFxyXG4gICAgICAnWC1UcmFjay1BUEktRGV0YWlscyc6ICd0cnVlJyxcclxuICAgIH07XHJcbiAgICBpZiAobWV0aG9kID09ICdHRVQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0QnlVcmwoZnVsbFVybCwgeyBoZWFkZXJzIH0pO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT0gJ1BPU1QnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdEJ5VXJsKGZ1bGxVcmwsIGJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09ICdQVVQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucHV0QnlVcmwoZnVsbFVybCwgYm9keSwgeyBoZWFkZXJzIH0pO1xyXG4gICAgfSBlbHNlIGlmIChtZXRob2QgPT0gJ0RFTEVURScpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kZWxldGVCeVVybChmdWxsVXJsLCB7IGhlYWRlcnMgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZW5lcmF0ZXMgYW4gSFRUUCBSZXF1ZXN0IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBEYXRhU291cmNlUXVlcnkgbmFtZVxyXG4gICAqIEBwYXJhbSBRdWVyeU5hbWUgLSBUaGUgbmFtZSBvZiB0aGUgRGF0YVNvdXJjZVF1ZXJ5XHJcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgZ2VuZXJhdGVkIEhUVFAgcmVxdWVzdFxyXG4gICAqL1xyXG4gIGdlbmVyYXRlSHR0cFJlcXVlc3QoUXVlcnlOYW1lOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KFxyXG4gICAgICAgIGAke0FQSS5HZW5lcmF0ZUh0dHBSZXF1ZXN0fT9kc3FOYW1lPSR7UXVlcnlOYW1lfWAsXHJcbiAgICAgICAgdW5kZWZpbmVkLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIHRoZSBkZXRhaWxlZCBhbmFseXRpY3Mgb2YgYSBzY3JlZW4ncyBwZXJmb3JtYW5jZS5cclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gYmUgc2VudCB0byB0aGUgQVBJXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljcyhkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIC8vIFNldCB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSB0ZW5hbnRcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxyXG4gICAgICAgIC8vIEFQSSBlbmRwb2ludCBmb3IgcmV0cmlldmluZyB0aGUgZGV0YWlsZWQgYW5hbHl0aWNzIG9mIGEgc2NyZWVuJ3MgcGVyZm9ybWFuY2VcclxuICAgICAgICBgJHtBUEkuR2V0RGV0YWlsT2ZQZXJmb3JtYW5jZUFuYWx5dGljc31gLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgLy8gVGhlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgc3VtbWFyeSBvZiBwZXJmb3JtYW5jZSBhbmFseXRpY3NcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgdG8gYmUgc2VudCB0byB0aGUgQVBJXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgZ2V0U3VtbWFyeU9mUGVyZm9ybWFuY2VBbmFseXRpY3MoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICAvLyBTZXQgdGhlIHRhYiBjb21wb25lbnRzIGZvciB0aGUgdGVuYW50XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChcclxuICAgICAgICAvLyBBUEkgZW5kcG9pbnQgZm9yIGluc2VydGluZyBzY3JlZW4gcGVyZm9ybWFuY2Ugc3RhdGlzdGljc1xyXG4gICAgICAgIGAke0FQSS5HZXRTdW1tYXJ5T2ZQZXJmb3JtYW5jZUFuYWx5dGljc31gLFxyXG4gICAgICAgIGRhdGEsXHJcbiAgICAgICAgLy8gVGhlIGhlYWRlcnMgZm9yIHRoZSByZXF1ZXN0XHJcbiAgICAgICAgaGVhZGVyc1xyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcbiJdfQ==
380
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdldC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLWdldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQ0wsbUJBQW1CLEVBQ25CLDBCQUEwQixHQUMzQixNQUFNLG1DQUFtQyxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR2pDLE1BQU0sT0FBTyxhQUFhO0lBRDFCO1FBRW1CLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztLQW1haEQ7SUFqYUM7Ozs7T0FJRztJQUNILHFCQUFxQixDQUFDLElBQVMsRUFBQyxPQUFZ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QUFVLENBQUMsSUFBSTtZQUN6QiwyREFBMkQ7WUFDM0QsR0FBRyxHQUFHLENBQUMsZ0NBQWdDLEVBQUUsRUFDekMsSUFBSTtZQUNKLDhCQUE4QjtZQUM5QixPQUFPLENBQ1IsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OEVBcGFVLGFBQWE7dUVBQWIsYUFBYSxXQUFiLGFBQWEsbUJBREEsTUFBTTs7aUZBQ25CLGFBQWE7Y0FEekIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEh0dHBIZWFkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvaHR0cC1jbGllbnQvYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEU1FIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVycyc7XHJcbmltcG9ydCB7IGdldEhlYWRlcnMgfSBmcm9tICcuLi91dGlscy9yZXEtcmVzLnV0aWwnO1xyXG5pbXBvcnQgeyBBUEkgfSBmcm9tICcuLi9jb25zdGFudHMvYXBpLWNvbnN0YW50cyc7XHJcbmltcG9ydCB7IGdldEFwcE9iamVjdCB9IGZyb20gJy4uL3V0aWxzL3RhYi1hcHAudXRpbCc7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uL2NvbnN0YW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBUElTZWxlY3RRdWVyeSB9IGZyb20gJy4uL21vZGVscy9hcGktcXVlcnkuY2xhc3MnO1xyXG5pbXBvcnQgeyBGaWx0ZXJWYWx1ZVR5cGUgfSBmcm9tICcuLi9lbnVtcy9kc3EuZW51bSc7XHJcbmltcG9ydCB7IFF1ZXJ5VHlwZSB9IGZyb20gJy4uL2VudW1zL3F1ZXJ5LmVudW0nO1xyXG5pbXBvcnQge1xyXG4gIEFwcE9iamVjdHNDb25zdGFudHMsXHJcbiAgRGF0YVNvdXJjZVF1ZXJpZXNDb25zdGFudHMsXHJcbn0gZnJvbSAnLi4vY29uc3RhbnRzL2FwcC1vYmplY3QtY29uc3RhbnRzJztcclxuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgVGFiR2V0U2VydmljZSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZHNxSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGUgUkFXIERTUSB3aXRoIE5hbWVcclxuICAgKiBAcGFyYW0gZGF0YSAtIE9iamVjdCBjb250YWluaW5nIEFwcE9iamVjdE5hbWUgYW5kIERTUU5hbWVcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBleGVjdXRlUkFXRFNRV2l0aE5hbWUoZGF0YTogYW55LGhlYWRlcnM/OmFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXIgPSBnZXRIZWFkZXJzKGhlYWRlcnMpO1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgYCR7QVBJLmdldERTUX0vJHtkYXRhLkFwcE9iamVjdE5hbWV9LyR7ZGF0YS5EU1FOYW1lfWAsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICBoZWFkZXJcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBSZWNvcmRcclxuICAgKiBAcGFyYW0gcGFyYW1zIC0gUGFyYW1ldGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBnZXRSZWNvcmQocGFyYW1zOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZ2V0KGAke0FQSS5nZXRyZWNvcmR9YCwgcGFyYW1zLCBoZWFkZXJzKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRXhlY3V0ZSBSYXcgU1FMXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIGZvciB0aGUgcmVxdWVzdFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGV4ZWN1dGVSYXdTcWwoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoYCR7QVBJLnJhd1NRTH0ke2RhdGF9YCwgJycsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXQgSGlzdG9yeVxyXG4gICAqIEBwYXJhbSBhcHBPYmplY3RJZCAtIElEIG9mIHRoZSBhcHBsaWNhdGlvbiBvYmplY3RcclxuICAgKiBAcGFyYW0gcmVjb3JkSWRzIC0gQXJyYXkgb2YgcmVjb3JkIElEc1xyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGdldEhpc3RvcnkoYXBwT2JqZWN0SWQ6IHN0cmluZywgcmVjb3JkSWRzOiBzdHJpbmdbXSk6IGFueSB7XHJcbiAgICBjb25zdCBkYXRhOiBhbnkgPSB7fTtcclxuICAgIGlmIChhcHBPYmplY3RJZCAmJiByZWNvcmRJZHMpIHtcclxuICAgICAgY29uc3QgYXBwT2JqZWN0TmFtZSA9IGdldEFwcE9iamVjdChhcHBPYmplY3RJZCk/Lk9iamVjdE5hbWU7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChhcHBPYmplY3ROYW1lICYmIGhlYWRlcnMpIHtcclxuICAgICAgICBkYXRhLk9iamVjdE5hbWUgPSBhcHBPYmplY3ROYW1lO1xyXG4gICAgICAgIGRhdGEuUmVjb3JkSWRzID0gcmVjb3JkSWRzO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkuZ2V0SGlzdG9yeX1gLCBkYXRhLCBoZWFkZXJzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDaGFuZ2UgUGFzc3dvcmRcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIGNoYW5naW5nIHBhc3N3b3JkXHJcbiAgICogQHJldHVybnMgUmVzcG9uc2UgZnJvbSB0aGUgQVBJXHJcbiAgICovXHJcbiAgY2hhbmdlUGFzc3dvcmQoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoYCR7QVBJLmNoYW5nZVBhc3N3b3JkfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVzZXQgUGFzc3dvcmRcclxuICAgKiBAcGFyYW0gZGF0YSAtIERhdGEgZm9yIHJlc2V0dGluZyBwYXNzd29yZFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHJlc2V0UGFzc3dvcmQoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICBhcHBsaWNhdGlvbkNvZGU6IENvbW1vbi5hcHBsaWNhdGlvbkNvZGUsXHJcbiAgICB9KTtcclxuICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkucmVzdHBhc3N3b3JkfWAsIGRhdGEsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUE1KQVkgSW1wb3J0XHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIGZvciBQTUpBWSBpbXBvcnRcclxuICAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAgKi9cclxuICBwbWpheUltcG9ydChkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChgJHtBUEkucG1qYXlJbXBvcnR9YCwgZGF0YSwgaGVhZGVycyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBFeGVjdXRlcyBhIHNlbGVjdCBxdWVyeSB3aXRoIG9wdGlvbmFsIHBhcmFtZXRlcnNcclxuICAgKiBAcGFyYW0gZGF0YSAtIFRoZSBzZWxlY3QgcXVlcnkgZGF0YVxyXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIC0gT3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBhcHBsaWVkIHRvIHRoZSBxdWVyeVxyXG4gICAqIEByZXR1cm5zIFJlc3VsdCBvZiB0aGUgc2VsZWN0IHF1ZXJ5IGV4ZWN1dGlvblxyXG4gICAqL1xyXG4gIHNlbGVjdEV4ZWN1dG9yKGRhdGE6IEFQSVNlbGVjdFF1ZXJ5LCBwYXJhbWV0ZXJzPzogYW55KTogYW55IHtcclxuICAgIGlmIChwYXJhbWV0ZXJzICYmIE9iamVjdC5rZXlzKHBhcmFtZXRlcnMpLmxlbmd0aCkge1xyXG4gICAgICBkYXRhLldoZXJlQ2xhdXNlLkZpbHRlckxvZ2ljID0gZGF0YS5XaGVyZUNsYXVzZS5GaWx0ZXJMb2dpYyB8fCAnW10nO1xyXG4gICAgICBkYXRhLldoZXJlQ2xhdXNlLkZpbHRlcnMgPSBkYXRhLldoZXJlQ2xhdXNlLkZpbHRlcnMgfHwgW107XHJcbiAgICAgIGRhdGEuV2hlcmVDbGF1c2UuU1FMUXVlcnkgPSBkYXRhLldoZXJlQ2xhdXNlLlNRTFF1ZXJ5IHx8ICcnO1xyXG4gICAgICAvKipcclxuICAgICAgICogUmVwbGFjZXMgdmFsdWVzIGZyb20gcGFyYW1ldGVycyBpZiBtYXRjaGVkIGFuZCBpbiBmb3JtYXQgb2Yge3trZXl9fS5cclxuICAgICAgICogRXhhbXBsZTogaWYgZmlsdGVyLlZhbHVlIGlzIFwie3t1c2VySWR9fVwiIGFuZFxyXG4gICAgICAgKiB0aGlzLl92YWx1ZS5wYXJhbWV0ZXJzLnVzZXJJZCBpcyAxMjMsIHRoZW4gZmlsdGVyLlZhbHVlIHdpbGwgYmUgcmVwbGFjZWQgd2l0aFxyXG4gICAgICAgKiBcIjEyM1wiLlxyXG4gICAgICAgKi9cclxuICAgICAgZGF0YS5XaGVyZUNsYXVzZS5GaWx0ZXJzLmZvckVhY2goKGZpbHRlcjogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gZmlsdGVyLlZhbHVlVHlwZSBpcyAxIChsaXRlcmFsKVxyXG4gICAgICAgIGlmIChmaWx0ZXIuVmFsdWUgJiYgZmlsdGVyLlZhbHVlVHlwZSA9PSBGaWx0ZXJWYWx1ZVR5cGUuTGl0ZXJhbCkge1xyXG4gICAgICAgICAgZmlsdGVyLlZhbHVlID0gZmlsdGVyLlZhbHVlLnJlcGxhY2UoXHJcbiAgICAgICAgICAgIC97eyhbXn1dKyl9fS9nLFxyXG4gICAgICAgICAgICAobWF0Y2g6IHN0cmluZywga2V5OiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHBhcmFtZXRlcnNba2V5XTtcclxuICAgICAgICAgICAgICByZXR1cm4gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gaWYgdmFsdWVUeXBlID0gMiAoUGFyYW1ldGVycylcclxuICAgICAgICAvLyB0aGVuIHdlIG5lZWQgdG8gcmVwbGFjZSB0aGUgdmFsdWUgd2l0aCBwYXJhbWV0ZXJzIGFuZCBjaGFuZ2UgdGhlIHZhbHVlVHlwZSB0byAxIChMaXRlcmFsKVxyXG4gICAgICAgIGVsc2UgaWYgKGZpbHRlci5WYWx1ZVR5cGUgPT0gRmlsdGVyVmFsdWVUeXBlLlBhcmFtZXRlcikge1xyXG4gICAgICAgICAgZmlsdGVyLlZhbHVlID0gZmlsdGVyLlZhbHVlLnJlcGxhY2UoXHJcbiAgICAgICAgICAgIC8oW159XSspL2csXHJcbiAgICAgICAgICAgIChtYXRjaDogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gcGFyYW1ldGVyc1trZXldO1xyXG4gICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiBudWxsO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgZmlsdGVyLlZhbHVlVHlwZSA9IEZpbHRlclZhbHVlVHlwZS5MaXRlcmFsO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIChkYXRhPy5XaGVyZUNsYXVzZT8uRmlsdGVycyB8fCBbXSkuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgZWxlbWVudC5WYWx1ZVR5cGUgPT09IEZpbHRlclZhbHVlVHlwZS5QYXJhbWV0ZXIgJiZcclxuICAgICAgICAgIHBhcmFtZXRlcnNbZWxlbWVudC5GaWVsZElEXVxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgZWxlbWVudC5WYWx1ZSA9IHBhcmFtZXRlcnNbZWxlbWVudC5GaWVsZElEXTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZHNxSGVscGVyLmV4ZWN1dGVRdWVyeShkYXRhLCBRdWVyeVR5cGUuU2VsZWN0KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGEgc2VsZWN0IHF1ZXJ5IGJ5IGl0cyBJRCwgdXNpbmcgdGhlIHByb3ZpZGVkIHBhcmFtZXRlcnMuXHJcbiAgICpcclxuICAgKiBAcGFyYW0gc2VsZWN0UXVlcnlJZCAtIFRoZSBJRCBvZiB0aGUgc2VsZWN0IHF1ZXJ5IHRvIGJlIGV4ZWN1dGVkLlxyXG4gICAqIEBwYXJhbSBwYXJhbWV0ZXJzIC0gT3B0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBhcHBsaWVkIHRvIHRoZSBxdWVyeS5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVzdWx0IG9mIHRoZSBzZWxlY3QgcXVlcnkgZXhlY3V0aW9uLlxyXG4gICAqIEB0aHJvd3MgQW4gZXJyb3IgaWYgdGhlIEFQSSByZXNwb25zZSBzdGF0dXMgY29kZSBpcyBub3QgJzIwMCcuXHJcbiAgICovXHJcbiAgZXhlY3V0ZVNlbGVjdFF1ZXJ5QnlJZChzZWxlY3RRdWVyeUlkOiBzdHJpbmcsIHBhcmFtZXRlcnM/OiBhbnkpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuZXhlY3V0ZVJBV0RTUVdpdGhOYW1lKHtcclxuICAgICAgQXBwT2JqZWN0TmFtZTogQXBwT2JqZWN0c0NvbnN0YW50cy5UQUJEX1F1ZXJpZXMsXHJcbiAgICAgIERTUU5hbWU6IERhdGFTb3VyY2VRdWVyaWVzQ29uc3RhbnRzLkRldGFpbF9UQUJEX1F1ZXJpZXMsXHJcbiAgICAgIFJlcXRva2Vuczoge1xyXG4gICAgICAgIElEOiBzZWxlY3RRdWVyeUlkLFxyXG4gICAgICB9LFxyXG4gICAgfSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMuU3RhdHVzQ29kZSA9PT0gJzIwMCcpIHtcclxuICAgICAgICAgIGNvbnN0IENvbmZpZ3VyYXRpb24gPSBKU09OLnBhcnNlKHJlcy5SZXN1bHRbMF0uQ29uZmlndXJhdGlvbiB8fCAne30nKTtcclxuICAgICAgICAgIGlmIChDb25maWd1cmF0aW9uLldoZXJlQ2xhdXNlPy5GaWx0ZXJzKSB7XHJcbiAgICAgICAgICAgIENvbmZpZ3VyYXRpb24uV2hlcmVDbGF1c2UuRmlsdGVycyA9IHRoaXMucmVtb3ZlV2hlcmVDbGF1c2VGb3JFbXB0eVBhcmFtcyhDb25maWd1cmF0aW9uLldoZXJlQ2xhdXNlLkZpbHRlcnMsIHBhcmFtZXRlcnMgfHwge30pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RXhlY3V0b3IoQ29uZmlndXJhdGlvbiwgcGFyYW1ldGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXMuTWVzc2FnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcbiAgcmVtb3ZlV2hlcmVDbGF1c2VGb3JFbXB0eVBhcmFtcyhmaWx0ZXJzOiBhbnlbXSwgcGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgYW55Pik6IGFueVtdIHtcclxuICAgIHJldHVybiBmaWx0ZXJzLmZpbHRlcigoZmlsdGVyOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoZmlsdGVyLlZhbHVlVHlwZSA9PT0gRmlsdGVyVmFsdWVUeXBlLlBhcmFtZXRlcikge1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbWV0ZXJOYW1lID0gZmlsdGVyLlZhbHVlO1xyXG4gICAgICAgICAgICBpZiAocGFyYW1ldGVycz8uaGFzT3duUHJvcGVydHkocGFyYW1ldGVyTmFtZSkgJiYgcGFyYW1ldGVyc1twYXJhbWV0ZXJOYW1lXSA9PT0gJycpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgLy8gUmVtb3ZlIGZpbHRlclxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhwYXJhbWV0ZXJzIHx8IHt9KS5sZW5ndGggPT09IDAgJiYgZmlsdGVyLlZhbHVlVHlwZSA9PT0gRmlsdGVyVmFsdWVUeXBlLlBhcmFtZXRlcikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFJlbW92ZSBmaWx0ZXJcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHRydWU7IC8vIEtlZXAgZmlsdGVyXHJcbiAgICB9KTtcclxuICB9XHJcbiAgZ2V0VGVzdENvbm5lY3Rpb24oY29ubmVjdGlvbklkOiBhbnksIHBhcmFtcz86IGFueSk6IGFueSB7XHJcbiAgICBpZiAoY29ubmVjdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoXHJcbiAgICAgICAgICBgJHtBUEkudGVzdENvbm5lY3Rpb259JHtjb25uZWN0aW9uSWR9YCxcclxuICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgIGhlYWRlcnNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgZ2V0UGVyZm9ybVZhbGlkYXRpb24oY29ubmVjdGlvbklkOiBhbnksIHBhcmFtcz86IGFueSk6IGFueSB7XHJcbiAgICBpZiAoY29ubmVjdGlvbklkKSB7XHJcbiAgICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoXHJcbiAgICAgICAgICBgJHtBUEkucGVyZm9ybVZhbGlkYXRpb259JHtjb25uZWN0aW9uSWR9YCxcclxuICAgICAgICAgIHBhcmFtcyxcclxuICAgICAgICAgIGhlYWRlcnNcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSBnaXZlbiB0ZW5hbnRcclxuICAgKiBAcGFyYW0gY29ubmVjdGlvbklkIFRoZSBJRCBvZiB0aGUgY29ubmVjdGlvblxyXG4gICAqIEByZXR1cm5zIEFuIG9ic2VydmFibGUgb2YgdGhlIHJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIHNldFRhYkNvbXBvbmVudHNGb3JUZW5hbnQoY29ubmVjdGlvbklkOiBzdHJpbmcsIGRhdGE/OiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIC8vIFNldCB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSB0ZW5hbnRcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxyXG4gICAgICAgIC8vIEFQSSBlbmRwb2ludCBmb3Igc2V0dGluZyB0YWIgY29tcG9uZW50c1xyXG4gICAgICAgIGAke0FQSS5zZXRUYWJDb21wb25lbnRzfSR7Y29ubmVjdGlvbklkfWAsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICAvLyBUaGUgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXRyaWV2ZXMgYSBmb3JtIGNvbmZpZ3VyYXRpb24gZm9yIGEgY29tbW9uIGZpbHRlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgYXBwbGljYXRpb24gb2JqZWN0IElELlxyXG4gICAqIEBwYXJhbSBhcHBPYmplY3RJZCAtIFRoZSBJRCBvZiB0aGUgYXBwbGljYXRpb24gb2JqZWN0LlxyXG4gICAqIEBwYXJhbSBwYXJhbXMgLSBPcHRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgcmVxdWVzdC5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UgZnJvbSB0aGUgQVBJIG9yIG51bGwgaWYgaGVhZGVycyBhcmUgdW5hdmFpbGFibGUuXHJcbiAgICovXHJcbiAgZ2V0QnVpbGRGb3JtSU9Gb3JDb21tb25GaWx0ZXIoYXBwT2JqZWN0SWQ6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoXHJcbiAgICAgICAgYCR7QVBJLkJ1aWxkRm9ybUlPQ29tcG9uZW50c30ke2FwcE9iamVjdElkfSZUeXBlPUNvbW1vbkZpbHRlcmAsXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmVzIGEgZm9ybSBjb25maWd1cmF0aW9uIGZvciBhIGJ1bGsgdXBkYXRlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBhcHBsaWNhdGlvbiBvYmplY3QgSUQuXHJcbiAgICogQHBhcmFtIGFwcE9iamVjdElkIC0gVGhlIElEIG9mIHRoZSBhcHBsaWNhdGlvbiBvYmplY3QuXHJcbiAgICogQHBhcmFtIHBhcmFtcyAtIE9wdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSByZXF1ZXN0LlxyXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZSBmcm9tIHRoZSBBUEkgb3IgbnVsbCBpZiBoZWFkZXJzIGFyZSB1bmF2YWlsYWJsZS5cclxuICAgKi9cclxuICBnZXRCdWlsZEZvcm1JT0ZvckJ1bGtVcGRhdGUoYXBwT2JqZWN0SWQ6IHN0cmluZywgcGFyYW1zPzogYW55KSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5nZXQoXHJcbiAgICAgICAgYCR7QVBJLkJ1aWxkRm9ybUlPQ29tcG9uZW50c30ke2FwcE9iamVjdElkfSZUeXBlPUJ1bGtVcGRhdGVgLFxyXG4gICAgICAgIHBhcmFtcyxcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8vIC8qKlxyXG4gIC8vICAqIEdldCBSZXNvdXJjZSBMYW5ndWFnZSBCeSBMYW5ndWFnZSBDb2RlXHJcbiAgLy8gICogQHBhcmFtIGxhbmd1YWdlQ29kZSAtIExhbmd1YWdlIENvZGVcclxuICAvLyAgKiBAcmV0dXJucyBSZXNwb25zZSBmcm9tIHRoZSBBUElcclxuICAvLyAgKi9cclxuICAvLyBnZXRSZXNvdXJjZUxhbmd1YWdlQnlMYW5ndWFnZUNvZGUobGFuZ3VhZ2VDb2RlOiBudW1iZXIpOiBhbnkge1xyXG4gIC8vICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAvLyAgIGlmIChoZWFkZXJzKSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChcclxuICAvLyAgICAgICBgJHtBUEkubGFuZ3VhZ2VSZXNvdXJjZX1gLFxyXG4gIC8vICAgICAgIHsgTGFuZ3VhZ2VDb2RlOiBsYW5ndWFnZUNvZGUgfSxcclxuICAvLyAgICAgICBoZWFkZXJzXHJcbiAgLy8gICAgICk7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gbnVsbDtcclxuICAvLyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBTZWFyY2ggRGF0YVxyXG4gICAqIEBwYXJhbSBzZWFyY2hRdWVyeSAtIFNlYXJjaCBRdWVyeSBzdHJpbmdcclxuICAgKiBAcGFyYW0gbGltaXQgLSBMaW1pdCBvZiBzZWFyY2ggcmVzdWx0c1xyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGdldFNlYXJjaERhdGEoc2VhcmNoUXVlcnk6IHN0cmluZywgbGltaXQ6IG51bWJlciwgcGFyYW1zPzogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICBgJHtBUEkuc2VhcmNofT9zZWFyY2hRdWVyeT0ke3NlYXJjaFF1ZXJ5fSZsaW1pdD0ke2xpbWl0fWAsXHJcbiAgICAgICAgcGFyYW1zLFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5zZXJ0IFNjcmVlbiBQZXJmb3JtYW5jZSBTdGF0aXN0aWNzXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIGluc2VydFxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGluc2VydFNjcmVlblBlcmZvcm1hbmNlU3RhdGlzdGljcyhkYXRhOiBhbnkpOiBhbnkge1xyXG4gICAgY29uc3QgaGVhZGVycyA9IGdldEhlYWRlcnMoKTtcclxuICAgIGlmIChoZWFkZXJzKSB7XHJcbiAgICAgIC8vIFNldCB0aGUgdGFiIGNvbXBvbmVudHMgZm9yIHRoZSB0ZW5hbnRcclxuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5wb3N0KFxyXG4gICAgICAgIC8vIEFQSSBlbmRwb2ludCBmb3IgaW5zZXJ0aW5nIHNjcmVlbiBwZXJmb3JtYW5jZSBzdGF0aXN0aWNzXHJcbiAgICAgICAgYCR7QVBJLkluc2VydFNjcmVlblBlcmZvcm1hbmNlQW5hbHl0aWNzfWAsXHJcbiAgICAgICAgZGF0YSxcclxuICAgICAgICAvLyBUaGUgaGVhZGVycyBmb3IgdGhlIHJlcXVlc3RcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEV4ZWN1dGVzIGFuIEhUVFAgcmVxdWVzdCB3aXRoIHRoZSBzcGVjaWZpZWQgbWV0aG9kLCBVUkwsIGhlYWRlcnMsIGFuZCBib2R5LlxyXG4gICAqXHJcbiAgICogQHBhcmFtIGZ1bGxVcmwgLVRoZSBmdWxsIFVSTCBvZiB0aGUgcmVxdWVzdCBjb250YWluaW5nIHRoZSBxdWVyeSBwYXJhbWV0ZXJzLlxyXG4gICAqIEBwYXJhbSBtZXRob2QgLSBUaGUgSFRUUCBtZXRob2QgdG8gYmUgdXNlZCAoJ0dFVCcsICdQT1NUJywgJ1BVVCcsICdERUxFVEUnKS5cclxuICAgKiBAcGFyYW0gaGVhZGVycyAtIFRoZSBoZWFkZXJzIHRvIGluY2x1ZGUgaW4gdGhlIHJlcXVlc3QuXHJcbiAgICogQHBhcmFtIGJvZHkgLSBUaGUgYm9keSBjb250ZW50IGZvciBtZXRob2RzIGxpa2UgUE9TVCBhbmQgUFVULlxyXG4gICAqIEByZXR1cm5zIFRoZSBBUEkgcmVzcG9uc2UgY29ycmVzcG9uZGluZyB0byB0aGUgcmVxdWVzdC5cclxuICAgKi9cclxuICBleGVjdXRlSHR0cFJlcXVlc3QoXHJcbiAgICBmdWxsVXJsOiBhbnksXHJcbiAgICBtZXRob2Q6ICdHRVQnIHwgJ1BPU1QnIHwgJ1BVVCcgfCAnREVMRVRFJyxcclxuICAgIGhlYWRlcnM6IGFueSxcclxuICAgIGJvZHk6IGFueVxyXG4gICk6IGFueSB7XHJcbiAgICBoZWFkZXJzID0ge1xyXG4gICAgICAuLi4oaGVhZGVycyB8fCB7fSksXHJcbiAgICAgICdYLVNraXAtSW50ZXJjZXB0b3InOiAndHJ1ZScsXHJcbiAgICAgICdYLVNraXAtQXV0aCc6ICd0cnVlJyxcclxuICAgICAgJ1gtVHJhY2stQVBJLURldGFpbHMnOiAndHJ1ZScsXHJcbiAgICB9O1xyXG4gICAgaWYgKG1ldGhvZCA9PSAnR0VUJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldEJ5VXJsKGZ1bGxVcmwsIHsgaGVhZGVycyB9KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09ICdQT1NUJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3RCeVVybChmdWxsVXJsLCBib2R5LCB7IGhlYWRlcnMgfSk7XHJcbiAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PSAnUFVUJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnB1dEJ5VXJsKGZ1bGxVcmwsIGJvZHksIHsgaGVhZGVycyB9KTtcclxuICAgIH0gZWxzZSBpZiAobWV0aG9kID09ICdERUxFVEUnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UuZGVsZXRlQnlVcmwoZnVsbFVybCwgeyBoZWFkZXJzIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2VuZXJhdGVzIGFuIEhUVFAgUmVxdWVzdCBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgRGF0YVNvdXJjZVF1ZXJ5IG5hbWVcclxuICAgKiBAcGFyYW0gUXVlcnlOYW1lIC0gVGhlIG5hbWUgb2YgdGhlIERhdGFTb3VyY2VRdWVyeVxyXG4gICAqIEByZXR1cm5zIFRoZSByZXN1bHQgb2YgdGhlIGdlbmVyYXRlZCBIVFRQIHJlcXVlc3RcclxuICAgKi9cclxuICBnZW5lcmF0ZUh0dHBSZXF1ZXN0KFF1ZXJ5TmFtZTogc3RyaW5nKTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmdldChcclxuICAgICAgICBgJHtBUEkuR2VuZXJhdGVIdHRwUmVxdWVzdH0/ZHNxTmFtZT0ke1F1ZXJ5TmFtZX1gLFxyXG4gICAgICAgIHVuZGVmaW5lZCxcclxuICAgICAgICBoZWFkZXJzXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyB0aGUgZGV0YWlsZWQgYW5hbHl0aWNzIG9mIGEgc2NyZWVuJ3MgcGVyZm9ybWFuY2UuXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIGJlIHNlbnQgdG8gdGhlIEFQSVxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGdldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3MoZGF0YTogYW55KTogYW55IHtcclxuICAgIGNvbnN0IGhlYWRlcnMgPSBnZXRIZWFkZXJzKCk7XHJcbiAgICBpZiAoaGVhZGVycykge1xyXG4gICAgICAvLyBTZXQgdGhlIHRhYiBjb21wb25lbnRzIGZvciB0aGUgdGVuYW50XHJcbiAgICAgIHJldHVybiB0aGlzLmFwaVNlcnZpY2UucG9zdChcclxuICAgICAgICAvLyBBUEkgZW5kcG9pbnQgZm9yIHJldHJpZXZpbmcgdGhlIGRldGFpbGVkIGFuYWx5dGljcyBvZiBhIHNjcmVlbidzIHBlcmZvcm1hbmNlXHJcbiAgICAgICAgYCR7QVBJLkdldERldGFpbE9mUGVyZm9ybWFuY2VBbmFseXRpY3N9YCxcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IHN1bW1hcnkgb2YgcGVyZm9ybWFuY2UgYW5hbHl0aWNzXHJcbiAgICogQHBhcmFtIGRhdGEgLSBEYXRhIHRvIGJlIHNlbnQgdG8gdGhlIEFQSVxyXG4gICAqIEByZXR1cm5zIFJlc3BvbnNlIGZyb20gdGhlIEFQSVxyXG4gICAqL1xyXG4gIGdldFN1bW1hcnlPZlBlcmZvcm1hbmNlQW5hbHl0aWNzKGRhdGE6IGFueSk6IGFueSB7XHJcbiAgICBjb25zdCBoZWFkZXJzID0gZ2V0SGVhZGVycygpO1xyXG4gICAgaWYgKGhlYWRlcnMpIHtcclxuICAgICAgLy8gU2V0IHRoZSB0YWIgY29tcG9uZW50cyBmb3IgdGhlIHRlbmFudFxyXG4gICAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLnBvc3QoXHJcbiAgICAgICAgLy8gQVBJIGVuZHBvaW50IGZvciBpbnNlcnRpbmcgc2NyZWVuIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3NcclxuICAgICAgICBgJHtBUEkuR2V0U3VtbWFyeU9mUGVyZm9ybWFuY2VBbmFseXRpY3N9YCxcclxuICAgICAgICBkYXRhLFxyXG4gICAgICAgIC8vIFRoZSBoZWFkZXJzIGZvciB0aGUgcmVxdWVzdFxyXG4gICAgICAgIGhlYWRlcnNcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -74,7 +74,7 @@ export class TabUpdateService {
74
74
  }
75
75
  return null;
76
76
  }
77
- updateUsingScreenId(screenId, data, objectIdToSave) {
77
+ updateUsingScreenId(screenId, data, objectIdToSave, headers) {
78
78
  let fields;
79
79
  let appObject = AppObject;
80
80
  let crudTableName;
@@ -118,7 +118,7 @@ export class TabUpdateService {
118
118
  const dataObj = createDynamicData(data.data);
119
119
  removeBlankValue(dataObj);
120
120
  const requestPayload = this.requestResponseHelper.updateRequestPayload(crudTableName, whereClause, dataObj);
121
- return this.update(requestPayload);
121
+ return this.update(requestPayload, headers);
122
122
  }
123
123
  }
124
124
  return null;
@@ -168,4 +168,4 @@ export class TabUpdateService {
168
168
  type: Injectable,
169
169
  args: [{ providedIn: 'root' }]
170
170
  }], null, null); })();
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXVwZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlLLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS3pILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFbUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMs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QUFpQixFQUMzQixPQUFPLEVBQ1AsU0FBUyxDQUFDLE1BQU0sQ0FDakIsQ0FBQztnQkFDSixJQUFJLE9BQU8sR0FBUSxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUNwRSxTQUFTLENBQUMsaUJBQWlCLEVBQzNCLFdBQVcsRUFDWCxPQUFPLENBQ1IsQ0FBQztnQkFDRixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckMsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7aUZBdkxVLGdCQUFnQjt1RUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQixtQkFESCxNQUFNOztpRkFDbkIsZ0JBQWdCO2NBRDVCLFVBQVU7ZUFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBEU1FIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vZHNxLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgU2NyZWVuSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvc2NyZWVuL3NjcmVlbi5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IFdoZXJlQ2xhdXNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3doZXJlLWNsYXVzZS5oZWxwZXJzXCI7XHJcbmltcG9ydCB7IFJlcXVlc3RSZXNwb25zZUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9yZXEtcmVzLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgQVBJRmlsdGVyQ3JpdGVyaWEsIEFQSVVwZGF0ZVF1ZXJ5IH0gZnJvbSBcIi4uL21vZGVscy9hcGktcXVlcnkuY2xhc3NcIjtcclxuaW1wb3J0IHsgUXVlcnlUeXBlIH0gZnJvbSBcIi4uL2VudW1zL3F1ZXJ5LmVudW1cIjtcclxuaW1wb3J0IHsgZ2V0QXBwT2JqZWN0LCBnZXRBcHBPYmplY3RGcm9tRGF0YVNvdXJjZVF1ZXJ5SUQsIGdldEFwcE9iamVjdEZyb21TeXN0ZW1EQlRhYmxlTmFtZSwgZ2V0RGF0YUZyb21EYXRhU291cmNlUXVlcnlJRCwgc3luY0FwcE9iamVjdEZpZWxkcyB9IGZyb20gXCIuLi91dGlscy90YWItYXBwLnV0aWxcIjtcclxuaW1wb3J0IHsgQXBwT2JqZWN0LCBBcHBTY3JlZW4gfSBmcm9tIFwiLi4vbW9kZWxzL2FwcC1vYmplY3QuY2xhc3NcIjtcclxuaW1wb3J0IHsgY3JlYXRlRHluYW1pY0RhdGEsIHJlbW92ZUJsYW5rVmFsdWUgfSBmcm9tIFwiLi4vdXRpbHMvanNvbi51dGlsXCI7XHJcbmltcG9ydCB7IGdldEVkaXRSZWNvcmRJZCwgZ2V0UHJpbWFyeUtleUZpZWxkcywgcmVtb3ZlTXVsdGlwbGVQcmltYXJ5S2V5LCByZW1vdmVQcmltYXJ5S2V5IH0gZnJvbSBcIi4uL3V0aWxzL3JlcS1yZXMudXRpbFwiO1xyXG5pbXBvcnQgeyBVcGRhdGVRdWVyeVBhcmFtZXRlciB9IGZyb20gXCIuLi9tb2RlbHMvZGF0YS1zb3VyY2UtcXVlcmllcy5jbGFzc1wiO1xyXG5cclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBUYWJVcGRhdGVTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IGRzcUhlbHBlciA9IGluamVjdChEU1FIZWxwZXIpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuSGVscGVyID0gaW5qZWN0KFNjcmVlbkhlbHBlcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSB3aGVyZUNsYXVzZUhlbHBlciA9IGluamVjdChXaGVyZUNsYXVzZUhlbHBlcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0UmVzcG9uc2VIZWxwZXIgPSBpbmplY3QoUmVxdWVzdFJlc3BvbnNlSGVscGVyKTtcclxuXHJcbiAgdXBkYXRlKGRhdGE6IEFQSVVwZGF0ZVF1ZXJ5ICxoZWFkZXJzPzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5kc3FIZWxwZXIuZXhlY3V0ZVF1ZXJ5KGRhdGEsIFF1ZXJ5VHlwZS5VcGRhdGUsIGhlYWRlcnMpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlVXNpbmdEU1EoZHNxSWQ6IHN0cmluZywgZGF0YTogYW55LCB0YWJsZU5hbWU6IHN0cmluZywgcXVlcnlGaWVsZHNBcnJheT86IGFueSwgaGVhZGVycz86IGFueSkge1xyXG4gICAgY29uc3QgYXBwT2JqZWN0OiBBcHBPYmplY3QgPSBnZXREYXRhRnJvbURhdGFTb3VyY2VRdWVyeUlEKGRzcUlkKTtcclxuICAgIGlmIChhcHBPYmplY3QpIHtcclxuICAgICAgaWYgKGRhdGEgJiYgZGF0YS5kYXRhKSB7XHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGUodGFibGVOYW1lLCBxdWVyeUZpZWxkc0FycmF5KTtcclxuICAgICAgICBsZXQgZGF0YU9iajogYW55ID0gW107XHJcbiAgICAgICAgZGF0YU9iaiA9IGNyZWF0ZUR5bmFtaWNEYXRhKGRhdGEuZGF0YSk7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFBheWxvYWQgPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci51cGRhdGVSZXF1ZXN0UGF5bG9hZCh0YWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCBkYXRhT2JqKTtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUocmVxdWVzdFBheWxvYWQsIGhlYWRlcnMpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFBhcnRoIEIgVGhha2thciAtIDIwMjQtMTEtMDZcclxuICAgKiBVcGRhdGVzIGEgcmVjb3JkIGluIHRoZSBkYXRhYmFzZSBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgb2JqZWN0IElELlxyXG4gICAqIFNhbWUgY29kZSBhcyB1cGRhdGVVc2luZ1NjcmVlbklkIHdpdGggbWlub3IgbW9kaWZpY2F0aW9ucyBsaWtlIHVzaW5nIHRoZSBvYmplY3QgSUQgZGlyZWN0bHkgaW5zdGVhZCBvZiB0aGUgc2NyZWVuIElELlxyXG4gICAqIEBwYXJhbSBvYmplY3RJZCBUaGUgb2JqZWN0IElEIG9mIHRoZSByZWNvcmQgdG8gdXBkYXRlLlxyXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIHRvIHVwZGF0ZSB0aGUgcmVjb3JkIHdpdGguXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlIGZyb20gdGhlIHVwZGF0ZSBvcGVyYXRpb24uXHJcbiAgICovXHJcbiAgdXBkYXRlQnlPYmplY3RJZChvYmplY3RJZDogc3RyaW5nLCBkYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IGZpZWxkczogYW55W10gPSBbXTtcclxuICAgIGxldCBhcHBPYmplY3Q6IGFueSA9IEFwcE9iamVjdDtcclxuXHJcbiAgICBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3Qob2JqZWN0SWQpO1xyXG4gICAgYXBwT2JqZWN0LkZpZWxkcy5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgZmllbGRzLnB1c2goeyBGaWVsZDogZWxlbWVudCB9KTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgY3J1ZFRhYmxlTmFtZSA9IGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgIHN5bmNBcHBPYmplY3RGaWVsZHMoZGF0YS5kYXRhLCBhcHBPYmplY3QpO1xyXG5cclxuICAgIGNvbnN0IFByaW1hcnlLZXlGaWVsZHM6IGFueSA9IGdldFByaW1hcnlLZXlGaWVsZHMoYXBwT2JqZWN0KTtcclxuICAgIGxldCB3aGVyZUNsYXVzZTogYW55ID0gQVBJRmlsdGVyQ3JpdGVyaWE7XHJcbiAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgIGlmIChkYXRhLmRhdGEpIHtcclxuICAgICAgICBjb25zdCByZWNvcmRJZCA9IGdldEVkaXRSZWNvcmRJZChcclxuICAgICAgICAgIGRhdGEuZGF0YSxcclxuICAgICAgICAgIFByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgZGF0YVsncmVjb3JkSWQnXSA9IHJlY29yZElkO1xyXG5cclxuICAgICAgICBpZiAoUHJpbWFyeUtleUZpZWxkcyAmJiBQcmltYXJ5S2V5RmllbGRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgcmVtb3ZlUHJpbWFyeUtleShkYXRhLmRhdGEsIFByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZSk7XHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlR3JpZChcclxuICAgICAgICAgICAgZmllbGRzLFxyXG4gICAgICAgICAgICBkYXRhLnJlY29yZElkLFxyXG4gICAgICAgICAgICBQcmltYXJ5S2V5RmllbGRzWzBdLkZpZWxkTmFtZSxcclxuICAgICAgICAgICAgY3J1ZFRhYmxlTmFtZVxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFByaW1hcnlLZXlGaWVsZHMgJiYgUHJpbWFyeUtleUZpZWxkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSA9XHJcbiAgICAgICAgICAgIHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yTXVsdGlwbGVQcmltYXJ5S2V5cyhcclxuICAgICAgICAgICAgICBkYXRhLmRhdGEsXHJcbiAgICAgICAgICAgICAgUHJpbWFyeUtleUZpZWxkcyxcclxuICAgICAgICAgICAgICBjcnVkVGFibGVOYW1lXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICByZW1vdmVNdWx0aXBsZVByaW1hcnlLZXkoZGF0YS5kYXRhLCBQcmltYXJ5S2V5RmllbGRzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGF0YU9iajogYW55ID0gY3JlYXRlRHluYW1pY0RhdGEoZGF0YS5kYXRhKTtcclxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmopO1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkID0gdGhpcy5yZXF1ZXN0UmVzcG9uc2VIZWxwZXIudXBkYXRlUmVxdWVzdFBheWxvYWQoXHJcbiAgICAgICAgICBjcnVkVGFibGVOYW1lLFxyXG4gICAgICAgICAgd2hlcmVDbGF1c2UsXHJcbiAgICAgICAgICBkYXRhT2JqXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUocmVxdWVzdFBheWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgdXBkYXRlVXNpbmdTY3JlZW5JZChzY3JlZW5JZDogc3RyaW5nLCBkYXRhOiBhbnksIG9iamVjdElkVG9TYXZlPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgZmllbGRzO1xyXG4gICAgbGV0IGFwcE9iamVjdDogYW55ID0gQXBwT2JqZWN0O1xyXG4gICAgbGV0IGNydWRUYWJsZU5hbWU7XHJcbiAgICBpZiAoc2NyZWVuSWQpIHtcclxuICAgICAgY29uc3Qgc2NyZWVuOiBBcHBTY3JlZW4gPSB0aGlzLnNjcmVlbkhlbHBlci5nZXRTY3JlZW4oc2NyZWVuSWQpO1xyXG4gICAgICBjb25zdCBzY3JlZW5EYXRhU291cmNlID0gZ2V0RGF0YUZyb21EYXRhU291cmNlUXVlcnlJRChzY3JlZW4uRGF0YVNvdXJjZVF1ZXJ5KTtcclxuICAgICAgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0KHNjcmVlbkRhdGFTb3VyY2UuT2JqZWN0SURfVG9zYXZlKTtcclxuICAgICAgY3J1ZFRhYmxlTmFtZSA9IGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgICAgZmllbGRzID0gc2NyZWVuRGF0YVNvdXJjZT8uRmllbGRzPy5tYXAoKGZpZWxkOiBhbnkpID0+IHtcclxuICAgICAgICBjb25zdCBhcHBGaWVsZCA9IGFwcE9iamVjdD8uRmllbGRzPy5maW5kKChmOiBhbnkpID0+IGY/LklEPy50b0xvd2VyQ2FzZSgpID09PSBmaWVsZD8uQXBwRmllbGRJRD8udG9Mb3dlckNhc2UoKSkgPz8ge307XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgIC4uLmZpZWxkLFxyXG4gICAgICAgICAgRmllbGQ6IGFwcEZpZWxkXHJcbiAgICAgICAgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIHN5bmNBcHBPYmplY3RGaWVsZHMoZGF0YS5kYXRhLCBhcHBPYmplY3QpO1xyXG4gICAgfVxyXG4gICAgaWYgKG9iamVjdElkVG9TYXZlKSB7XHJcbiAgICAgIGZpZWxkcyA9IFtdO1xyXG4gICAgICBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3Qob2JqZWN0SWRUb1NhdmUpO1xyXG4gICAgICBhcHBPYmplY3QuRmllbGRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGZpZWxkcy5wdXNoKHsgRmllbGQ6IGVsZW1lbnQgfSlcclxuICAgICAgfSk7XHJcbiAgICAgIGNydWRUYWJsZU5hbWUgPSBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWU7XHJcbiAgICAgIHN5bmNBcHBPYmplY3RGaWVsZHMoZGF0YS5kYXRhLCBhcHBPYmplY3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IFByaW1hcnlLZXlGaWVsZHM6IGFueSA9IGdldFByaW1hcnlLZXlGaWVsZHMoYXBwT2JqZWN0KTtcclxuICAgIGxldCB3aGVyZUNsYXVzZTogYW55ID0gQVBJRmlsdGVyQ3JpdGVyaWE7XHJcbiAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgIGlmIChkYXRhLmRhdGEpIHtcclxuICAgICAgICBjb25zdCByZWNvcmRJZCA9IGdldEVkaXRSZWNvcmRJZChkYXRhLmRhdGEsIFByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZSk7XHJcbiAgICAgICAgZGF0YVsncmVjb3JkSWQnXSA9IHJlY29yZElkO1xyXG5cclxuICAgICAgICBpZiAoUHJpbWFyeUtleUZpZWxkcyAmJiBQcmltYXJ5S2V5RmllbGRzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICAgICAgcmVtb3ZlUHJpbWFyeUtleShkYXRhLmRhdGEsIFByaW1hcnlLZXlGaWVsZHNbMF0/LkZpZWxkTmFtZSk7XHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlR3JpZChmaWVsZHMsIGRhdGEucmVjb3JkSWQsIFByaW1hcnlLZXlGaWVsZHNbMF0uRmllbGROYW1lLCBjcnVkVGFibGVOYW1lKTtcclxuICAgICAgICB9IGVsc2UgaWYgKFByaW1hcnlLZXlGaWVsZHMgJiYgUHJpbWFyeUtleUZpZWxkcy5sZW5ndGggPiAxKSB7XHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yTXVsdGlwbGVQcmltYXJ5S2V5cyhkYXRhLmRhdGEsIFByaW1hcnlLZXlGaWVsZHMsIGNydWRUYWJsZU5hbWUpO1xyXG4gICAgICAgICAgcmVtb3ZlTXVsdGlwbGVQcmltYXJ5S2V5KGRhdGEuZGF0YSwgUHJpbWFyeUtleUZpZWxkcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRhdGFPYmo6IGFueSA9IGNyZWF0ZUR5bmFtaWNEYXRhKGRhdGEuZGF0YSk7XHJcbiAgICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqKTtcclxuICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLnVwZGF0ZVJlcXVlc3RQYXlsb2FkKGNydWRUYWJsZU5hbWUsIHdoZXJlQ2xhdXNlLCBkYXRhT2JqKTtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUocmVxdWVzdFBheWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVNjcmVlbihzY3JlZW5JZDogc3RyaW5nLCBzY3JlZW5EYXRhOiBhbnkpIHtcclxuICAgIGNvbnN0IHNjcmVlbjogQXBwU2NyZWVuID0gdGhpcy5zY3JlZW5IZWxwZXIuZ2V0U2NyZWVuKHNjcmVlbklkKTtcclxuICAgIGlmIChzY3JlZW4pIHtcclxuICAgICAgY29uc3QgYXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lKCdUQUJNRF9BcHBTY3JlZW4nKTtcclxuICAgICAgaWYgKGFwcE9iamVjdCkge1xyXG4gICAgICAgIHN5bmNBcHBPYmplY3RGaWVsZHMoc2NyZWVuRGF0YSwgYXBwT2JqZWN0KTtcclxuICAgICAgfVxyXG4gICAgICBPYmplY3QuYXNzaWduKHt9LCBzY3JlZW4sIHsgQ29udGFpbmVyOiBzY3JlZW5EYXRhLkNvbnRhaW5lciB9KTtcclxuICAgICAgY29uc3QgcXVlcnlGaWx0ZXJzOiBVcGRhdGVRdWVyeVBhcmFtZXRlcltdID0gW107XHJcbiAgICAgIHF1ZXJ5RmlsdGVycy5wdXNoKHsgRmllbGROYW1lOiAnSUQnLCBGaWVsZFZhbHVlOiBzY3JlZW5JZCB9KVxyXG4gICAgICBjb25zdCB3aGVyZUNsYXVzZSA9IHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlKCdUQUJNRF9BcHBTY3JlZW4nLCBxdWVyeUZpbHRlcnMpO1xyXG4gICAgICBjb25zdCBkYXRhT2JqOiBhbnkgPSBjcmVhdGVEeW5hbWljRGF0YShzY3JlZW5EYXRhKTtcclxuICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqKTtcclxuICAgICAgY29uc3QgcmVxdWVzdFBheWxvYWQgPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci51cGRhdGVSZXF1ZXN0UGF5bG9hZCgnVEFCTURfQXBwU2NyZWVuJywgd2hlcmVDbGF1c2UsIGRhdGFPYmopO1xyXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGUocmVxdWVzdFBheWxvYWQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFVwZGF0ZSByZWNvcmRzIHVzaW5nIHRoZSBwcm92aWRlZCBEU1EgSUQsIGRhdGEsIGZpbHRlcnNcclxuICAgKiBAcGFyYW0gZHNxSWQgVGhlIElEIG9mIHRoZSBEYXRhU291cmNlUXVlcnkgdG8gdXNlIGZvciB0aGUgdXBkYXRlXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gdXBkYXRlXHJcbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIGZpbHRlcnMgdG8gYXBwbHkgdG8gdGhlIHVwZGF0ZVxyXG4gICAqIEByZXR1cm5zIFRoZSByZXNwb25zZSBmcm9tIHRoZSB1cGRhdGUgb3BlcmF0aW9uXHJcbiAgICovXHJcbiAgdXBkYXRlVXNpbmdEc3FJZEZpbHRlcnNBbmRDdXN0b21WaWV3SWQoXHJcbiAgICBkc3FJZDogc3RyaW5nLFxyXG4gICAgZGF0YTogYW55LFxyXG4gICAgZmlsdGVyczogYW55XHJcbiAgKSB7XHJcbiAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdCA9IGdldEFwcE9iamVjdEZyb21EYXRhU291cmNlUXVlcnlJRChkc3FJZCk7XHJcbiAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgY29uc3Qgd2hlcmVDbGF1c2U6IEFQSUZpbHRlckNyaXRlcmlhID1cclxuICAgICAgICAgIHRoaXMud2hlcmVDbGF1c2VIZWxwZXIuYmluZFdoZXJlQ2xhdXNlRm9yVXBkYXRlVXNpbmdGaWx0ZXJzKFxyXG4gICAgICAgICAgICBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsXHJcbiAgICAgICAgICAgIGZpbHRlcnMsXHJcbiAgICAgICAgICAgIGFwcE9iamVjdC5GaWVsZHNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgbGV0IGRhdGFPYmo6IGFueSA9IFtdO1xyXG4gICAgICAgIGRhdGFPYmogPSBjcmVhdGVEeW5hbWljRGF0YShkYXRhKTtcclxuICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLnVwZGF0ZVJlcXVlc3RQYXlsb2FkKFxyXG4gICAgICAgICAgYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lLFxyXG4gICAgICAgICAgd2hlcmVDbGF1c2UsXHJcbiAgICAgICAgICBkYXRhT2JqXHJcbiAgICAgICAgKTtcclxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGUocmVxdWVzdFBheWxvYWQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXVwZGF0ZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL2NydWQvdGFiLXVwZGF0ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUV2RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSwyQkFBMkIsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxpQ0FBaUMsRUFBRSxpQ0FBaUMsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlLLE9BQU8sRUFBRSxTQUFTLEVBQWEsTUFBTSw0QkFBNEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLHdCQUF3QixFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBS3pILE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFbUIsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixpQkFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMs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QyxDQUN6RCxTQUFTLENBQUMsaUJBQWlCLEVBQzNCLE9BQU8sRUFDUCxTQUFTLENBQUMsTUFBTSxDQUNqQixDQUFDO2dCQUNKLElBQUksT0FBTyxHQUFRLEVBQUUsQ0FBQztnQkFDdEIsT0FBTyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsb0JBQW9CLENBQ3BFLFNBQVMsQ0FBQyxpQkFBaUIsRUFDM0IsV0FBVyxFQUNYLE9BQU8sQ0FDUixDQUFDO2dCQUNGLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztpRkF2TFUsZ0JBQWdCO3VFQUFoQixnQkFBZ0IsV0FBaEIsZ0JBQWdCLG1CQURILE1BQU07O2lGQUNuQixnQkFBZ0I7Y0FENUIsVUFBVTtlQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cclxuXHJcbmltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERTUUhlbHBlciB9IGZyb20gXCIuLi9oZWxwZXJzL2NvbW1vbi9kc3EuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBTY3JlZW5IZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9zY3JlZW4vc2NyZWVuLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgV2hlcmVDbGF1c2VIZWxwZXIgfSBmcm9tIFwiLi4vaGVscGVycy9jb21tb24vd2hlcmUtY2xhdXNlLmhlbHBlcnNcIjtcclxuaW1wb3J0IHsgUmVxdWVzdFJlc3BvbnNlSGVscGVyIH0gZnJvbSBcIi4uL2hlbHBlcnMvY29tbW9uL3JlcS1yZXMuaGVscGVyc1wiO1xyXG5pbXBvcnQgeyBBUElGaWx0ZXJDcml0ZXJpYSwgQVBJVXBkYXRlUXVlcnkgfSBmcm9tIFwiLi4vbW9kZWxzL2FwaS1xdWVyeS5jbGFzc1wiO1xyXG5pbXBvcnQgeyBRdWVyeVR5cGUgfSBmcm9tIFwiLi4vZW51bXMvcXVlcnkuZW51bVwiO1xyXG5pbXBvcnQgeyBnZXRBcHBPYmplY3QsIGdldEFwcE9iamVjdEZyb21EYXRhU291cmNlUXVlcnlJRCwgZ2V0QXBwT2JqZWN0RnJvbVN5c3RlbURCVGFibGVOYW1lLCBnZXREYXRhRnJvbURhdGFTb3VyY2VRdWVyeUlELCBzeW5jQXBwT2JqZWN0RmllbGRzIH0gZnJvbSBcIi4uL3V0aWxzL3RhYi1hcHAudXRpbFwiO1xyXG5pbXBvcnQgeyBBcHBPYmplY3QsIEFwcFNjcmVlbiB9IGZyb20gXCIuLi9tb2RlbHMvYXBwLW9iamVjdC5jbGFzc1wiO1xyXG5pbXBvcnQgeyBjcmVhdGVEeW5hbWljRGF0YSwgcmVtb3ZlQmxhbmtWYWx1ZSB9IGZyb20gXCIuLi91dGlscy9qc29uLnV0aWxcIjtcclxuaW1wb3J0IHsgZ2V0RWRpdFJlY29yZElkLCBnZXRQcmltYXJ5S2V5RmllbGRzLCByZW1vdmVNdWx0aXBsZVByaW1hcnlLZXksIHJlbW92ZVByaW1hcnlLZXkgfSBmcm9tIFwiLi4vdXRpbHMvcmVxLXJlcy51dGlsXCI7XHJcbmltcG9ydCB7IFVwZGF0ZVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSBcIi4uL21vZGVscy9kYXRhLXNvdXJjZS1xdWVyaWVzLmNsYXNzXCI7XHJcblxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIFRhYlVwZGF0ZVNlcnZpY2Uge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZHNxSGVscGVyID0gaW5qZWN0KERTUUhlbHBlcik7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBzY3JlZW5IZWxwZXIgPSBpbmplY3QoU2NyZWVuSGVscGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHdoZXJlQ2xhdXNlSGVscGVyID0gaW5qZWN0KFdoZXJlQ2xhdXNlSGVscGVyKTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHJlcXVlc3RSZXNwb25zZUhlbHBlciA9IGluamVjdChSZXF1ZXN0UmVzcG9uc2VIZWxwZXIpO1xyXG5cclxuICB1cGRhdGUoZGF0YTogQVBJVXBkYXRlUXVlcnkgLGhlYWRlcnM/OiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmRzcUhlbHBlci5leGVjdXRlUXVlcnkoZGF0YSwgUXVlcnlUeXBlLlVwZGF0ZSwgaGVhZGVycyk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVVc2luZ0RTUShkc3FJZDogc3RyaW5nLCBkYXRhOiBhbnksIHRhYmxlTmFtZTogc3RyaW5nLCBxdWVyeUZpZWxkc0FycmF5PzogYW55LCBoZWFkZXJzPzogYW55KSB7XHJcbiAgICBjb25zdCBhcHBPYmplY3Q6IEFwcE9iamVjdCA9IGdldERhdGFGcm9tRGF0YVNvdXJjZVF1ZXJ5SUQoZHNxSWQpO1xyXG4gICAgaWYgKGFwcE9iamVjdCkge1xyXG4gICAgICBpZiAoZGF0YSAmJiBkYXRhLmRhdGEpIHtcclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPSB0aGlzLndoZXJlQ2xhdXNlSGVscGVyLmJpbmRXaGVyZUNsYXVzZUZvclVwZGF0ZSh0YWJsZU5hbWUsIHF1ZXJ5RmllbGRzQXJyYXkpO1xyXG4gICAgICAgIGxldCBkYXRhT2JqOiBhbnkgPSBbXTtcclxuICAgICAgICBkYXRhT2JqID0gY3JlYXRlRHluYW1pY0RhdGEoZGF0YS5kYXRhKTtcclxuICAgICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLnVwZGF0ZVJlcXVlc3RQYXlsb2FkKHRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIGRhdGFPYmopO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShyZXF1ZXN0UGF5bG9hZCwgaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUGFydGggQiBUaGFra2FyIC0gMjAyNC0xMS0wNlxyXG4gICAqIFVwZGF0ZXMgYSByZWNvcmQgaW4gdGhlIGRhdGFiYXNlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBvYmplY3QgSUQuXHJcbiAgICogU2FtZSBjb2RlIGFzIHVwZGF0ZVVzaW5nU2NyZWVuSWQgd2l0aCBtaW5vciBtb2RpZmljYXRpb25zIGxpa2UgdXNpbmcgdGhlIG9iamVjdCBJRCBkaXJlY3RseSBpbnN0ZWFkIG9mIHRoZSBzY3JlZW4gSUQuXHJcbiAgICogQHBhcmFtIG9iamVjdElkIFRoZSBvYmplY3QgSUQgb2YgdGhlIHJlY29yZCB0byB1cGRhdGUuXHJcbiAgICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgdG8gdXBkYXRlIHRoZSByZWNvcmQgd2l0aC5cclxuICAgKiBAcmV0dXJucyBUaGUgcmVzcG9uc2UgZnJvbSB0aGUgdXBkYXRlIG9wZXJhdGlvbi5cclxuICAgKi9cclxuICB1cGRhdGVCeU9iamVjdElkKG9iamVjdElkOiBzdHJpbmcsIGRhdGE6IGFueSkge1xyXG4gICAgY29uc3QgZmllbGRzOiBhbnlbXSA9IFtdO1xyXG4gICAgbGV0IGFwcE9iamVjdDogYW55ID0gQXBwT2JqZWN0O1xyXG5cclxuICAgIGFwcE9iamVjdCA9IGdldEFwcE9iamVjdChvYmplY3RJZCk7XHJcbiAgICBhcHBPYmplY3QuRmllbGRzLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBmaWVsZHMucHVzaCh7IEZpZWxkOiBlbGVtZW50IH0pO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBjcnVkVGFibGVOYW1lID0gYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lO1xyXG4gICAgc3luY0FwcE9iamVjdEZpZWxkcyhkYXRhLmRhdGEsIGFwcE9iamVjdCk7XHJcblxyXG4gICAgY29uc3QgUHJpbWFyeUtleUZpZWxkczogYW55ID0gZ2V0UHJpbWFyeUtleUZpZWxkcyhhcHBPYmplY3QpO1xyXG4gICAgbGV0IHdoZXJlQ2xhdXNlOiBhbnkgPSBBUElGaWx0ZXJDcml0ZXJpYTtcclxuICAgIGlmIChhcHBPYmplY3QpIHtcclxuICAgICAgaWYgKGRhdGEuZGF0YSkge1xyXG4gICAgICAgIGNvbnN0IHJlY29yZElkID0gZ2V0RWRpdFJlY29yZElkKFxyXG4gICAgICAgICAgZGF0YS5kYXRhLFxyXG4gICAgICAgICAgUHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lXHJcbiAgICAgICAgKTtcclxuICAgICAgICBkYXRhWydyZWNvcmRJZCddID0gcmVjb3JkSWQ7XHJcblxyXG4gICAgICAgIGlmIChQcmltYXJ5S2V5RmllbGRzICYmIFByaW1hcnlLZXlGaWVsZHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICByZW1vdmVQcmltYXJ5S2V5KGRhdGEuZGF0YSwgUHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lKTtcclxuICAgICAgICAgIHdoZXJlQ2xhdXNlID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGVHcmlkKFxyXG4gICAgICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgICAgIGRhdGEucmVjb3JkSWQsXHJcbiAgICAgICAgICAgIFByaW1hcnlLZXlGaWVsZHNbMF0uRmllbGROYW1lLFxyXG4gICAgICAgICAgICBjcnVkVGFibGVOYW1lXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoUHJpbWFyeUtleUZpZWxkcyAmJiBQcmltYXJ5S2V5RmllbGRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHdoZXJlQ2xhdXNlID1cclxuICAgICAgICAgICAgdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JNdWx0aXBsZVByaW1hcnlLZXlzKFxyXG4gICAgICAgICAgICAgIGRhdGEuZGF0YSxcclxuICAgICAgICAgICAgICBQcmltYXJ5S2V5RmllbGRzLFxyXG4gICAgICAgICAgICAgIGNydWRUYWJsZU5hbWVcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICAgIHJlbW92ZU11bHRpcGxlUHJpbWFyeUtleShkYXRhLmRhdGEsIFByaW1hcnlLZXlGaWVsZHMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBkYXRhT2JqOiBhbnkgPSBjcmVhdGVEeW5hbWljRGF0YShkYXRhLmRhdGEpO1xyXG4gICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoZGF0YU9iaik7XHJcbiAgICAgICAgY29uc3QgcmVxdWVzdFBheWxvYWQgPSB0aGlzLnJlcXVlc3RSZXNwb25zZUhlbHBlci51cGRhdGVSZXF1ZXN0UGF5bG9hZChcclxuICAgICAgICAgIGNydWRUYWJsZU5hbWUsXHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSxcclxuICAgICAgICAgIGRhdGFPYmpcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShyZXF1ZXN0UGF5bG9hZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICB1cGRhdGVVc2luZ1NjcmVlbklkKHNjcmVlbklkOiBzdHJpbmcsIGRhdGE6IGFueSwgb2JqZWN0SWRUb1NhdmU/OiBzdHJpbmcsIGhlYWRlcnM/OiBhbnkpIHtcclxuICAgIGxldCBmaWVsZHM7XHJcbiAgICBsZXQgYXBwT2JqZWN0OiBhbnkgPSBBcHBPYmplY3Q7XHJcbiAgICBsZXQgY3J1ZFRhYmxlTmFtZTtcclxuICAgIGlmIChzY3JlZW5JZCkge1xyXG4gICAgICBjb25zdCBzY3JlZW46IEFwcFNjcmVlbiA9IHRoaXMuc2NyZWVuSGVscGVyLmdldFNjcmVlbihzY3JlZW5JZCk7XHJcbiAgICAgIGNvbnN0IHNjcmVlbkRhdGFTb3VyY2UgPSBnZXREYXRhRnJvbURhdGFTb3VyY2VRdWVyeUlEKHNjcmVlbi5EYXRhU291cmNlUXVlcnkpO1xyXG4gICAgICBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3Qoc2NyZWVuRGF0YVNvdXJjZS5PYmplY3RJRF9Ub3NhdmUpO1xyXG4gICAgICBjcnVkVGFibGVOYW1lID0gYXBwT2JqZWN0LlN5c3RlbURCVGFibGVOYW1lO1xyXG4gICAgICBmaWVsZHMgPSBzY3JlZW5EYXRhU291cmNlPy5GaWVsZHM/Lm1hcCgoZmllbGQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGFwcEZpZWxkID0gYXBwT2JqZWN0Py5GaWVsZHM/LmZpbmQoKGY6IGFueSkgPT4gZj8uSUQ/LnRvTG93ZXJDYXNlKCkgPT09IGZpZWxkPy5BcHBGaWVsZElEPy50b0xvd2VyQ2FzZSgpKSA/PyB7fTtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgLi4uZmllbGQsXHJcbiAgICAgICAgICBGaWVsZDogYXBwRmllbGRcclxuICAgICAgICB9O1xyXG4gICAgICB9KTtcclxuICAgICAgc3luY0FwcE9iamVjdEZpZWxkcyhkYXRhLmRhdGEsIGFwcE9iamVjdCk7XHJcbiAgICB9XHJcbiAgICBpZiAob2JqZWN0SWRUb1NhdmUpIHtcclxuICAgICAgZmllbGRzID0gW107XHJcbiAgICAgIGFwcE9iamVjdCA9IGdldEFwcE9iamVjdChvYmplY3RJZFRvU2F2ZSk7XHJcbiAgICAgIGFwcE9iamVjdC5GaWVsZHMuZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgZmllbGRzLnB1c2goeyBGaWVsZDogZWxlbWVudCB9KVxyXG4gICAgICB9KTtcclxuICAgICAgY3J1ZFRhYmxlTmFtZSA9IGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZTtcclxuICAgICAgc3luY0FwcE9iamVjdEZpZWxkcyhkYXRhLmRhdGEsIGFwcE9iamVjdCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgUHJpbWFyeUtleUZpZWxkczogYW55ID0gZ2V0UHJpbWFyeUtleUZpZWxkcyhhcHBPYmplY3QpO1xyXG4gICAgbGV0IHdoZXJlQ2xhdXNlOiBhbnkgPSBBUElGaWx0ZXJDcml0ZXJpYTtcclxuICAgIGlmIChhcHBPYmplY3QpIHtcclxuICAgICAgaWYgKGRhdGEuZGF0YSkge1xyXG4gICAgICAgIGNvbnN0IHJlY29yZElkID0gZ2V0RWRpdFJlY29yZElkKGRhdGEuZGF0YSwgUHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lKTtcclxuICAgICAgICBkYXRhWydyZWNvcmRJZCddID0gcmVjb3JkSWQ7XHJcblxyXG4gICAgICAgIGlmIChQcmltYXJ5S2V5RmllbGRzICYmIFByaW1hcnlLZXlGaWVsZHMubGVuZ3RoID09PSAxKSB7XHJcbiAgICAgICAgICByZW1vdmVQcmltYXJ5S2V5KGRhdGEuZGF0YSwgUHJpbWFyeUtleUZpZWxkc1swXT8uRmllbGROYW1lKTtcclxuICAgICAgICAgIHdoZXJlQ2xhdXNlID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGVHcmlkKGZpZWxkcywgZGF0YS5yZWNvcmRJZCwgUHJpbWFyeUtleUZpZWxkc1swXS5GaWVsZE5hbWUsIGNydWRUYWJsZU5hbWUpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoUHJpbWFyeUtleUZpZWxkcyAmJiBQcmltYXJ5S2V5RmllbGRzLmxlbmd0aCA+IDEpIHtcclxuICAgICAgICAgIHdoZXJlQ2xhdXNlID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JNdWx0aXBsZVByaW1hcnlLZXlzKGRhdGEuZGF0YSwgUHJpbWFyeUtleUZpZWxkcywgY3J1ZFRhYmxlTmFtZSk7XHJcbiAgICAgICAgICByZW1vdmVNdWx0aXBsZVByaW1hcnlLZXkoZGF0YS5kYXRhLCBQcmltYXJ5S2V5RmllbGRzKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgY29uc3QgZGF0YU9iajogYW55ID0gY3JlYXRlRHluYW1pY0RhdGEoZGF0YS5kYXRhKTtcclxuICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmopO1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkID0gdGhpcy5yZXF1ZXN0UmVzcG9uc2VIZWxwZXIudXBkYXRlUmVxdWVzdFBheWxvYWQoY3J1ZFRhYmxlTmFtZSwgd2hlcmVDbGF1c2UsIGRhdGFPYmopO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShyZXF1ZXN0UGF5bG9hZCwgaGVhZGVycyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlU2NyZWVuKHNjcmVlbklkOiBzdHJpbmcsIHNjcmVlbkRhdGE6IGFueSkge1xyXG4gICAgY29uc3Qgc2NyZWVuOiBBcHBTY3JlZW4gPSB0aGlzLnNjcmVlbkhlbHBlci5nZXRTY3JlZW4oc2NyZWVuSWQpO1xyXG4gICAgaWYgKHNjcmVlbikge1xyXG4gICAgICBjb25zdCBhcHBPYmplY3QgPSBnZXRBcHBPYmplY3RGcm9tU3lzdGVtREJUYWJsZU5hbWUoJ1RBQk1EX0FwcFNjcmVlbicpO1xyXG4gICAgICBpZiAoYXBwT2JqZWN0KSB7XHJcbiAgICAgICAgc3luY0FwcE9iamVjdEZpZWxkcyhzY3JlZW5EYXRhLCBhcHBPYmplY3QpO1xyXG4gICAgICB9XHJcbiAgICAgIE9iamVjdC5hc3NpZ24oe30sIHNjcmVlbiwgeyBDb250YWluZXI6IHNjcmVlbkRhdGEuQ29udGFpbmVyIH0pO1xyXG4gICAgICBjb25zdCBxdWVyeUZpbHRlcnM6IFVwZGF0ZVF1ZXJ5UGFyYW1ldGVyW10gPSBbXTtcclxuICAgICAgcXVlcnlGaWx0ZXJzLnB1c2goeyBGaWVsZE5hbWU6ICdJRCcsIEZpZWxkVmFsdWU6IHNjcmVlbklkIH0pXHJcbiAgICAgIGNvbnN0IHdoZXJlQ2xhdXNlID0gdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGUoJ1RBQk1EX0FwcFNjcmVlbicsIHF1ZXJ5RmlsdGVycyk7XHJcbiAgICAgIGNvbnN0IGRhdGFPYmo6IGFueSA9IGNyZWF0ZUR5bmFtaWNEYXRhKHNjcmVlbkRhdGEpO1xyXG4gICAgICByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmopO1xyXG4gICAgICBjb25zdCByZXF1ZXN0UGF5bG9hZCA9IHRoaXMucmVxdWVzdFJlc3BvbnNlSGVscGVyLnVwZGF0ZVJlcXVlc3RQYXlsb2FkKCdUQUJNRF9BcHBTY3JlZW4nLCB3aGVyZUNsYXVzZSwgZGF0YU9iaik7XHJcbiAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShyZXF1ZXN0UGF5bG9hZCk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogVXBkYXRlIHJlY29yZHMgdXNpbmcgdGhlIHByb3ZpZGVkIERTUSBJRCwgZGF0YSwgZmlsdGVyc1xyXG4gICAqIEBwYXJhbSBkc3FJZCBUaGUgSUQgb2YgdGhlIERhdGFTb3VyY2VRdWVyeSB0byB1c2UgZm9yIHRoZSB1cGRhdGVcclxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSB0byB1cGRhdGVcclxuICAgKiBAcGFyYW0gZmlsdGVycyBUaGUgZmlsdGVycyB0byBhcHBseSB0byB0aGUgdXBkYXRlXHJcbiAgICogQHJldHVybnMgVGhlIHJlc3BvbnNlIGZyb20gdGhlIHVwZGF0ZSBvcGVyYXRpb25cclxuICAgKi9cclxuICB1cGRhdGVVc2luZ0RzcUlkRmlsdGVyc0FuZEN1c3RvbVZpZXdJZChcclxuICAgIGRzcUlkOiBzdHJpbmcsXHJcbiAgICBkYXRhOiBhbnksXHJcbiAgICBmaWx0ZXJzOiBhbnlcclxuICApIHtcclxuICAgIGNvbnN0IGFwcE9iamVjdDogQXBwT2JqZWN0ID0gZ2V0QXBwT2JqZWN0RnJvbURhdGFTb3VyY2VRdWVyeUlEKGRzcUlkKTtcclxuICAgIGlmIChhcHBPYmplY3QpIHtcclxuICAgICAgaWYgKGRhdGEpIHtcclxuICAgICAgICBjb25zdCB3aGVyZUNsYXVzZTogQVBJRmlsdGVyQ3JpdGVyaWEgPVxyXG4gICAgICAgICAgdGhpcy53aGVyZUNsYXVzZUhlbHBlci5iaW5kV2hlcmVDbGF1c2VGb3JVcGRhdGVVc2luZ0ZpbHRlcnMoXHJcbiAgICAgICAgICAgIGFwcE9iamVjdC5TeXN0ZW1EQlRhYmxlTmFtZSxcclxuICAgICAgICAgICAgZmlsdGVycyxcclxuICAgICAgICAgICAgYXBwT2JqZWN0LkZpZWxkc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICBsZXQgZGF0YU9iajogYW55ID0gW107XHJcbiAgICAgICAgZGF0YU9iaiA9IGNyZWF0ZUR5bmFtaWNEYXRhKGRhdGEpO1xyXG4gICAgICAgIGNvbnN0IHJlcXVlc3RQYXlsb2FkID0gdGhpcy5yZXF1ZXN0UmVzcG9uc2VIZWxwZXIudXBkYXRlUmVxdWVzdFBheWxvYWQoXHJcbiAgICAgICAgICBhcHBPYmplY3QuU3lzdGVtREJUYWJsZU5hbWUsXHJcbiAgICAgICAgICB3aGVyZUNsYXVzZSxcclxuICAgICAgICAgIGRhdGFPYmpcclxuICAgICAgICApO1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZShyZXF1ZXN0UGF5bG9hZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbn1cclxuIl19
@@ -37,7 +37,7 @@ function formatArray(input) {
37
37
  Value = handleChildRelationship(input[key]);
38
38
  }
39
39
  else {
40
- Value = handleObject(input[key]);
40
+ Value = handlechild(input[key]);
41
41
  }
42
42
  }
43
43
  else if (typeof input[key] === 'object') {
@@ -65,6 +65,29 @@ function handleChildRelationship(child) {
65
65
  return null;
66
66
  }
67
67
  }
68
+ function handlechild(input) {
69
+ const array = [];
70
+ if (input !== null) {
71
+ input.forEach((element) => {
72
+ const newObj = Object.keys(element).map((key) => {
73
+ let Value = '';
74
+ if (Array.isArray(element[key])) {
75
+ Value = handlechild(element[key]);
76
+ }
77
+ else if (typeof element[key] === 'object') {
78
+ Value = formatArray(element[key]);
79
+ }
80
+ else {
81
+ Value = element[key];
82
+ }
83
+ return { AppFieldID: key, Value };
84
+ });
85
+ array.push(newObj);
86
+ });
87
+ return array;
88
+ }
89
+ return null;
90
+ }
68
91
  /**
69
92
  * Handles object keys in the input object based on specific cases
70
93
  * @param obj The object to be handled
@@ -135,4 +158,4 @@ export function removeBlankArrayKeys(dataObj) {
135
158
  function isValueBlank(value) {
136
159
  return value === null || value === '';
137
160
  }
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsMENBQTBDO0FBQzFDLHVEQUF1RDtBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVE7SUFDeEMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFVO0lBQzdCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLEdBQUcsS0FBSyxvQkFBb0Is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TyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzVELGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQy9CLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBWTtJQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG4vKipcclxuICogVmFsaWRhdGVzIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgSlNPTi5cclxuICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlLlxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBKU09OLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVKU09OKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHN0cik7XHJcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGpzb24pLnNsaWNlKDgsIC0xKSA9PT0gJ09iamVjdCc7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgZHluYW1pYyBkYXRhIGJhc2VkIG9uIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIG9iaiBUaGUgaW5wdXQgb2JqZWN0IHRvIGNyZWF0ZSBkeW5hbWljIGRhdGEgZnJvbVxyXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGFycmF5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY0RhdGEob2JqOiBhbnkpIHtcclxuICByZXR1cm4gZm9ybWF0QXJyYXkob2JqKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGhlIGlucHV0IG9iamVjdCBpbnRvIGEgbmV3IGFycmF5IHdpdGggQXBwRmllbGRJRCBhbmQgVmFsdWUgcGFpcnNcclxuICogQHBhcmFtIGlucHV0IFRoZSBpbnB1dCBvYmplY3QgdG8gYmUgZm9ybWF0dGVkXHJcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgYXJyYXkgd2l0aCBBcHBGaWVsZElEIGFuZCBWYWx1ZSBwYWlyc1xyXG4gKi9cclxuZnVuY3Rpb24gZm9ybWF0QXJyYXkoaW5wdXQ6IGFueSkge1xyXG4gIGlmIChpbnB1dCAhPT0gbnVsbCkge1xyXG4gICAgY29uc3QgbmV3T2JqID0gT2JqZWN0LmtleXMoaW5wdXQpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIGxldCBWYWx1ZTogYW55ID0gJyc7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0W2tleV0pKSB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ0NoaWxkX1JlbGF0aW9uc2hpcCcpIHtcclxuICAgICAgICAgIFZhbHVlID0gaGFuZGxlQ2hpbGRSZWxhdGlvbnNoaXAoaW5wdXRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFZhbHVlID0gaGFuZGxlT2JqZWN0KGlucHV0W2tleV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaW5wdXRba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICBWYWx1ZSA9IGhhbmRsZU9iamVjdChpbnB1dFtrZXldKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBWYWx1ZSA9IGlucHV0W2tleV07XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHsgQXBwRmllbGRJRDoga2V5LCBWYWx1ZSB9O1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gbmV3T2JqO1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhhbmRsZXMgdGhlIENoaWxkX1JlbGF0aW9uc2hpcCBrZXkgaW4gdGhlIGlucHV0IG9iamVjdFxyXG4gKiBAcGFyYW0gY2hpbGQgVGhlIHZhbHVlIG9mIHRoZSBDaGlsZF9SZWxhdGlvbnNoaXAga2V5XHJcbiAqIEByZXR1cm5zIFRoZSBKU09OIHN0cmluZ2lmaWVkIHZhbHVlIGlmIG5vdCBudWxsLCBlbXB0eSwgb3IgJ251bGwnOyBvdGhlcndpc2UgbnVsbFxyXG4gKi9cclxuZnVuY3Rpb24gaGFuZGxlQ2hpbGRSZWxhdGlvbnNoaXAoY2hpbGQ6IGFueSkge1xyXG4gIGlmIChjaGlsZCAhPT0gbnVsbCAmJiBjaGlsZCAhPT0gJycgJiYgY2hpbGQgIT09ICdudWxsJykge1xyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGNoaWxkKTtcclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogSGFuZGxlcyBvYmplY3Qga2V5cyBpbiB0aGUgaW5wdXQgb2JqZWN0IGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzXHJcbiAqIEBwYXJhbSBvYmogVGhlIG9iamVjdCB0byBiZSBoYW5kbGVkXHJcbiAqIEByZXR1cm5zIFRoZSBKU09OIHN0cmluZ2lmaWVkIHZhbHVlIGJhc2VkIG9uIHNwZWNpZmljIGNhc2VzIG9yIHJlY3Vyc2l2ZWx5IGZvcm1hdHMgdGhlIG9iamVjdFxyXG4gKi9cclxuZnVuY3Rpb24gaGFuZGxlT2JqZWN0KG9iajogYW55KSB7XHJcbiAgaWYgKG9iaiA9PT0gbnVsbCkge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIHN3aXRjaCAoT2JqZWN0LmtleXMob2JqKVswXSkge1xyXG4gICAgY2FzZSAnQ29udGFpbmVyJzpcclxuICAgIGNhc2UgJ1NldHRpbmdfVmFsdWUnOlxyXG4gICAgY2FzZSAnQ2hpbGRfUmVsYXRpb25zaGlwJzpcclxuICAgIGNhc2UgJ1NjcmVlbkNvbmZpZ3VyYXRpb24nOlxyXG4gICAgY2FzZSAnQXBwT2JqZWN0Q29uZmlndXJhdGlvbic6XHJcbiAgICBjYXNlICdTY2hlbWFDb25maWcnOlxyXG4gICAgY2FzZSAnQ3JpdGVyaWEnOlxyXG4gICAgY2FzZSAnQXBwbHlDcml0ZXJpYSc6XHJcbiAgICBjYXNlICdTTEFTZXR0aW5nJzpcclxuICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG9iaik7XHJcbiAgICBkZWZhdWx0OlxyXG4gICAgICByZXR1cm4gZm9ybWF0QXJyYXkob2JqKTtcclxuICB9XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmVzIGJsYW5rIHZhbHVlcyBmcm9tIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIGRhdGFPYmogVGhlIGlucHV0IG9iamVjdCB0byByZW1vdmUgYmxhbmsgdmFsdWVzIGZyb21cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmo6IGFueSkge1xyXG4gIE9iamVjdC5rZXlzKGRhdGFPYmopLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YU9ialtrZXldKSkge1xyXG4gICAgICBkYXRhT2JqW2tleV0uZm9yRWFjaCgoaXRlbTogeyBWYWx1ZTogYW55IH0sIGk6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChpc1ZhbHVlQmxhbmsoaXRlbS5WYWx1ZSkpIHtcclxuICAgICAgICAgIGRhdGFPYmpba2V5XS5zcGxpY2UoaSwgMSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlbW92ZUJsYW5rVmFsdWUoaXRlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgaWYgKGRhdGFPYmpba2V5XS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBkZWxldGUgZGF0YU9ialtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGRhdGFPYmpba2V5XSAmJiB0eXBlb2YgZGF0YU9ialtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICByZW1vdmVCbGFua1ZhbHVlKGRhdGFPYmpba2V5XSk7XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhkYXRhT2JqW2tleV0pLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnVmFsdWUnICYmIGlzVmFsdWVCbGFuayhkYXRhT2JqW2tleV0pKSB7XHJcbiAgICAgIGRlbGV0ZSBkYXRhT2JqW2tleV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmVzIGJsYW5rIGFycmF5IGtleXMgZnJvbSB0aGUgaW5wdXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBkYXRhT2JqIFRoZSBpbnB1dCBvYmplY3QgdG8gcmVtb3ZlIGJsYW5rIGFycmF5IGtleXMgZnJvbVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZUJsYW5rQXJyYXlLZXlzKGRhdGFPYmo6IGFueSkge1xyXG4gIGRhdGFPYmouZm9yRWFjaCgoZWxlbWVudDogYW55LCBpOiBhbnkpID0+IHtcclxuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuaGFzT3duUHJvcGVydHkoJ1ZhbHVlJykpIHtcclxuICAgICAgaWYgKHR5cGVvZiBlbGVtZW50LlZhbHVlID09PSAnb2JqZWN0JyAmJiBlbGVtZW50LlZhbHVlLmxlbmd0aCA9PSAwKSB7XHJcbiAgICAgICAgZGF0YU9iai5zcGxpY2UoaSwgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9KTtcclxufVxyXG5cclxuZnVuY3Rpb24gaXNWYWx1ZUJsYW5rKHZhbHVlOiBhbnkpOiBib29sZWFuIHtcclxuICByZXR1cm4gdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnO1xyXG59XHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9kYXRhLWFjY2Vzcy9zcmMvbGliL3RhYi1jb3JlLXV0aWxpdHkvYXBwL3V0aWxzL2pzb24udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxzREFBc0Q7QUFDdEQsMENBQTBDO0FBQzFDLHVEQUF1RDtBQUV2RDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFXO0lBQ3RDLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsT0FBTyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVEsQ0FBQztJQUN4RSxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEdBQVE7SUFDeEMsT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDMUIsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFTLFdBQVcsQ0FBQyxLQUFVO0lBQzdCLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ25CLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDNUMsSUFBSSxLQUFLLEdBQVEsRUFBRSxDQUFDO1lBQ3BCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM5QixJQUFJLEdBQUcsS0FBSyxvQkFBb0Is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R0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxHQUFHLEtBQUssT0FBTyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pELE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBWTtJQUMvQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBWSxFQUFFLENBQU0sRUFBRSxFQUFFO1FBQ3ZDLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUMvQyxJQUFJLE9BQU8sT0FBTyxDQUFDLEtBQUssS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ25FLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBVTtJQUM5QixPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsQ0FBQztBQUN4QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzICovXHJcbi8qIGVzbGludC1kaXNhYmxlIG5vLXByb3RvdHlwZS1idWlsdGlucyAqL1xyXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXHJcblxyXG4vKipcclxuICogVmFsaWRhdGVzIGlmIGEgc3RyaW5nIGlzIGEgdmFsaWQgSlNPTi5cclxuICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRvIHZhbGlkYXRlLlxyXG4gKiBAcmV0dXJucyBUcnVlIGlmIHRoZSBzdHJpbmcgaXMgYSB2YWxpZCBKU09OLCBmYWxzZSBvdGhlcndpc2UuXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVKU09OKHN0cjogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgdHJ5IHtcclxuICAgIGNvbnN0IGpzb24gPSBKU09OLnBhcnNlKHN0cik7XHJcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGpzb24pLnNsaWNlKDgsIC0xKSA9PT0gJ09iamVjdCc7XHJcbiAgfSBjYXRjaCAoZSkge1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgZHluYW1pYyBkYXRhIGJhc2VkIG9uIHRoZSBpbnB1dCBvYmplY3RcclxuICogQHBhcmFtIG9iaiBUaGUgaW5wdXQgb2JqZWN0IHRvIGNyZWF0ZSBkeW5hbWljIGRhdGEgZnJvbVxyXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGFycmF5XHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRHluYW1pY0RhdGEob2JqOiBhbnkpIHtcclxuICByZXR1cm4gZm9ybWF0QXJyYXkob2JqKTtcclxufVxyXG5cclxuLyoqXHJcbiAqIEZvcm1hdHMgdGhlIGlucHV0IG9iamVjdCBpbnRvIGEgbmV3IGFycmF5IHdpdGggQXBwRmllbGRJRCBhbmQgVmFsdWUgcGFpcnNcclxuICogQHBhcmFtIGlucHV0IFRoZSBpbnB1dCBvYmplY3QgdG8gYmUgZm9ybWF0dGVkXHJcbiAqIEByZXR1cm5zIFRoZSBmb3JtYXR0ZWQgYXJyYXkgd2l0aCBBcHBGaWVsZElEIGFuZCBWYWx1ZSBwYWlyc1xyXG4gKi9cclxuZnVuY3Rpb24gZm9ybWF0QXJyYXkoaW5wdXQ6IGFueSkge1xyXG4gIGlmIChpbnB1dCAhPT0gbnVsbCkge1xyXG4gICAgY29uc3QgbmV3T2JqID0gT2JqZWN0LmtleXMoaW5wdXQpLm1hcCgoa2V5KSA9PiB7XHJcbiAgICAgIGxldCBWYWx1ZTogYW55ID0gJyc7XHJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGlucHV0W2tleV0pKSB7XHJcbiAgICAgICAgaWYgKGtleSA9PT0gJ0NoaWxkX1JlbGF0aW9uc2hpcCcpIHtcclxuICAgICAgICAgIFZhbHVlID0gaGFuZGxlQ2hpbGRSZWxhdGlvbnNoaXAoaW5wdXRba2V5XSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIFZhbHVlID0gaGFuZGxlY2hpbGQoaW5wdXRba2V5XSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dFtrZXldID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIFZhbHVlID0gaGFuZGxlT2JqZWN0KGlucHV0W2tleV0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIFZhbHVlID0gaW5wdXRba2V5XTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4geyBBcHBGaWVsZElEOiBrZXksIFZhbHVlIH07XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBuZXdPYmo7XHJcbiAgfVxyXG4gIHJldHVybiBudWxsO1xyXG59XHJcblxyXG4vKipcclxuICogSGFuZGxlcyB0aGUgQ2hpbGRfUmVsYXRpb25zaGlwIGtleSBpbiB0aGUgaW5wdXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBjaGlsZCBUaGUgdmFsdWUgb2YgdGhlIENoaWxkX1JlbGF0aW9uc2hpcCBrZXlcclxuICogQHJldHVybnMgVGhlIEpTT04gc3RyaW5naWZpZWQgdmFsdWUgaWYgbm90IG51bGwsIGVtcHR5LCBvciAnbnVsbCc7IG90aGVyd2lzZSBudWxsXHJcbiAqL1xyXG5mdW5jdGlvbiBoYW5kbGVDaGlsZFJlbGF0aW9uc2hpcChjaGlsZDogYW55KSB7XHJcbiAgaWYgKGNoaWxkICE9PSBudWxsICYmIGNoaWxkICE9PSAnJyAmJiBjaGlsZCAhPT0gJ251bGwnKSB7XHJcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoY2hpbGQpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGhhbmRsZWNoaWxkKGlucHV0OiBhbnkpIHtcclxuICBjb25zdCBhcnJheTogYW55W10gPSBbXTtcclxuICBpZiAoaW5wdXQgIT09IG51bGwpIHtcclxuICAgIGlucHV0LmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICBjb25zdCBuZXdPYmogPSBPYmplY3Qua2V5cyhlbGVtZW50KS5tYXAoKGtleSkgPT4ge1xyXG4gICAgICAgIGxldCBWYWx1ZTogYW55ID0gJyc7XHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWxlbWVudFtrZXldKSkge1xyXG4gICAgICAgICAgVmFsdWUgPSBoYW5kbGVjaGlsZChlbGVtZW50W2tleV0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGVsZW1lbnRba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgICAgIFZhbHVlID0gZm9ybWF0QXJyYXkoZWxlbWVudFtrZXldKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgVmFsdWUgPSBlbGVtZW50W2tleV07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB7IEFwcEZpZWxkSUQ6IGtleSwgVmFsdWUgfTtcclxuICAgICAgfSk7XHJcbiAgICAgIGFycmF5LnB1c2gobmV3T2JqKTtcclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFycmF5O1xyXG4gIH1cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEhhbmRsZXMgb2JqZWN0IGtleXMgaW4gdGhlIGlucHV0IG9iamVjdCBiYXNlZCBvbiBzcGVjaWZpYyBjYXNlc1xyXG4gKiBAcGFyYW0gb2JqIFRoZSBvYmplY3QgdG8gYmUgaGFuZGxlZFxyXG4gKiBAcmV0dXJucyBUaGUgSlNPTiBzdHJpbmdpZmllZCB2YWx1ZSBiYXNlZCBvbiBzcGVjaWZpYyBjYXNlcyBvciByZWN1cnNpdmVseSBmb3JtYXRzIHRoZSBvYmplY3RcclxuICovXHJcbmZ1bmN0aW9uIGhhbmRsZU9iamVjdChvYmo6IGFueSkge1xyXG4gIGlmIChvYmogPT09IG51bGwpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBzd2l0Y2ggKE9iamVjdC5rZXlzKG9iailbMF0pIHtcclxuICAgIGNhc2UgJ0NvbnRhaW5lcic6XHJcbiAgICBjYXNlICdTZXR0aW5nX1ZhbHVlJzpcclxuICAgIGNhc2UgJ0NoaWxkX1JlbGF0aW9uc2hpcCc6XHJcbiAgICBjYXNlICdTY3JlZW5Db25maWd1cmF0aW9uJzpcclxuICAgIGNhc2UgJ0FwcE9iamVjdENvbmZpZ3VyYXRpb24nOlxyXG4gICAgY2FzZSAnU2NoZW1hQ29uZmlnJzpcclxuICAgIGNhc2UgJ0NyaXRlcmlhJzpcclxuICAgIGNhc2UgJ0FwcGx5Q3JpdGVyaWEnOlxyXG4gICAgY2FzZSAnU0xBU2V0dGluZyc6XHJcbiAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShvYmopO1xyXG4gICAgZGVmYXVsdDpcclxuICAgICAgcmV0dXJuIGZvcm1hdEFycmF5KG9iaik7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyBibGFuayB2YWx1ZXMgZnJvbSB0aGUgaW5wdXQgb2JqZWN0XHJcbiAqIEBwYXJhbSBkYXRhT2JqIFRoZSBpbnB1dCBvYmplY3QgdG8gcmVtb3ZlIGJsYW5rIHZhbHVlcyBmcm9tXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqOiBhbnkpIHtcclxuICBPYmplY3Qua2V5cyhkYXRhT2JqKS5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KGRhdGFPYmpba2V5XSkpIHtcclxuICAgICAgZGF0YU9ialtrZXldLmZvckVhY2goKGl0ZW06IHsgVmFsdWU6IGFueSB9LCBpOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAoaXNWYWx1ZUJsYW5rKGl0ZW0uVmFsdWUpKSB7XHJcbiAgICAgICAgICBkYXRhT2JqW2tleV0uc3BsaWNlKGksIDEpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZW1vdmVCbGFua1ZhbHVlKGl0ZW0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIGlmIChkYXRhT2JqW2tleV0ubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgZGVsZXRlIGRhdGFPYmpba2V5XTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmIChkYXRhT2JqW2tleV0gJiYgdHlwZW9mIGRhdGFPYmpba2V5XSA9PT0gJ29iamVjdCcpIHtcclxuICAgICAgcmVtb3ZlQmxhbmtWYWx1ZShkYXRhT2JqW2tleV0pO1xyXG4gICAgICBpZiAoT2JqZWN0LmtleXMoZGF0YU9ialtrZXldKS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICBkZWxldGUgZGF0YU9ialtrZXldO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ1ZhbHVlJyAmJiBpc1ZhbHVlQmxhbmsoZGF0YU9ialtrZXldKSkge1xyXG4gICAgICBkZWxldGUgZGF0YU9ialtrZXldO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlcyBibGFuayBhcnJheSBrZXlzIGZyb20gdGhlIGlucHV0IG9iamVjdFxyXG4gKiBAcGFyYW0gZGF0YU9iaiBUaGUgaW5wdXQgb2JqZWN0IHRvIHJlbW92ZSBibGFuayBhcnJheSBrZXlzIGZyb21cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZW1vdmVCbGFua0FycmF5S2V5cyhkYXRhT2JqOiBhbnkpIHtcclxuICBkYXRhT2JqLmZvckVhY2goKGVsZW1lbnQ6IGFueSwgaTogYW55KSA9PiB7XHJcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Lmhhc093blByb3BlcnR5KCdWYWx1ZScpKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgZWxlbWVudC5WYWx1ZSA9PT0gJ29iamVjdCcgJiYgZWxlbWVudC5WYWx1ZS5sZW5ndGggPT0gMCkge1xyXG4gICAgICAgIGRhdGFPYmouc3BsaWNlKGksIDEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVmFsdWVCbGFuayh2YWx1ZTogYW55KTogYm9vbGVhbiB7XHJcbiAgcmV0dXJuIHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJztcclxufSJdfQ==
@@ -8,7 +8,7 @@ export declare class TabGetService {
8
8
  * @param data - Object containing AppObjectName and DSQName
9
9
  * @returns Response from the API
10
10
  */
11
- executeRAWDSQWithName(data: any): any;
11
+ executeRAWDSQWithName(data: any, headers?: any): any;
12
12
  /**
13
13
  * Get Record
14
14
  * @param params - Parameters for the request
@@ -16,7 +16,7 @@ export declare class TabUpdateService {
16
16
  * @returns The response from the update operation.
17
17
  */
18
18
  updateByObjectId(objectId: string, data: any): import("rxjs").Observable<any> | null;
19
- updateUsingScreenId(screenId: string, data: any, objectIdToSave?: string): import("rxjs").Observable<any> | null;
19
+ updateUsingScreenId(screenId: string, data: any, objectIdToSave?: string, headers?: any): import("rxjs").Observable<any> | null;
20
20
  updateScreen(screenId: string, screenData: any): import("rxjs").Observable<any> | null;
21
21
  /**
22
22
  * Update records using the provided DSQ ID, data, filters
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@techextensor/tab-core-utility",
3
- "version": "2.2.115",
3
+ "version": "2.2.120",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",