@adlfe/campaign-management-library 2.10.4 → 2.10.6

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.
@@ -28,14 +28,14 @@ else if (origin.includes('dashboard-qa')) {
28
28
  }
29
29
  // 4. Cek Demo Dev secara spesifik
30
30
  else if (origin.includes('demo-dev')) {
31
- API_CONST = 'https://apibsp-dev.adlsandbox.net';
31
+ API_CONST = 'https://api-staging.neuapix.com';
32
32
  }
33
33
  // 5. Default (Localhost atau lainnya)
34
34
  else {
35
- API_CONST = 'https://apibsp-dev.adlsandbox.net';
35
+ API_CONST = 'https://api-staging.neuapix.com';
36
36
  }
37
37
  export const environment = {
38
38
  production: false,
39
39
  api: API_CONST,
40
40
  };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUV0QixxREFBcUQ7QUFDckQsMENBQTBDO0FBQzFDLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsZ0VBQWdFO0FBQ2hFLG1EQUFtRDtBQUNuRCxnRUFBZ0U7QUFDaEUsb0RBQW9EO0FBQ3BELHdEQUF3RDtBQUV4RCwrQkFBK0I7QUFDL0Isc0JBQXNCO0FBQ3RCLG1CQUFtQjtBQUNuQixLQUFLO0FBQ0wsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ25CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFFL0Isb0JBQW9CO0FBQ3BCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO0lBQzFDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztDQUN6QztBQUNELGlCQUFpQjtLQUNaLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQzNDLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztDQUNqRDtBQUNELFlBQVk7S0FDUCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDdEMsU0FBUyxHQUFHLGtDQUFrQyxDQUFDO0NBQ2xEO0FBQ0Qsa0NBQWtDO0tBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUNsQyxTQUFTLEdBQUcsbUNBQW1DLENBQUM7Q0FDbkQ7QUFDRCxzQ0FBc0M7S0FDakM7SUFDRCxTQUFTLEdBQUcsbUNBQW1DLENBQUM7Q0FDbkQ7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsVUFBVSxFQUFFLEtBQUs7SUFDakIsR0FBRyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGxldCBBUElfQ09OU1QgPSAnJztcclxuXHJcbi8vIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLm5ldWFwaXguY29tJztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkYXNoYm9hcmQtc3RhZ2luZy5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG4vLyBlbHNlIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYS5hZGxzYW5kYm94JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpYnNwLXFhLmFkbHNhbmRib3gubmV0JztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldi5hZGxzYW5kYm94Lm5ldCcpKVxyXG4vLyBcdEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG4vLyBlbHNlIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xyXG4vLyBcdHByb2R1Y3Rpb246IGZhbHNlLFxyXG4vLyBcdGFwaTogQVBJX0NPTlNULFxyXG4vLyB9O1xyXG5sZXQgQVBJX0NPTlNUID0gJyc7XHJcbmNvbnN0IG9yaWdpbiA9IGxvY2F0aW9uLm9yaWdpbjtcclxuXHJcbi8vIDEuIENlayBQcm9kdWN0aW9uXHJcbmlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4LmNvbScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGkubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDIuIENlayBTdGFnaW5nXHJcbmVsc2UgaWYgKG9yaWdpbi5pbmNsdWRlcygnZGFzaGJvYXJkLXN0YWdpbmcnKSkge1xyXG4gICAgQVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDMuIENlayBRQVxyXG5lbHNlIGlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtcWEuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcbi8vIDQuIENlayBEZW1vIERldiBzZWNhcmEgc3Blc2lmaWtcclxuZWxzZSBpZiAob3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldicpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtZGV2LmFkbHNhbmRib3gubmV0JztcclxufVxyXG4vLyA1LiBEZWZhdWx0IChMb2NhbGhvc3QgYXRhdSBsYWlubnlhKVxyXG5lbHNlIHtcclxuICAgIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XHJcbiAgICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICAgIGFwaTogQVBJX0NPTlNULFxyXG59O1xyXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUV0QixxREFBcUQ7QUFDckQsMENBQTBDO0FBQzFDLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsZ0VBQWdFO0FBQ2hFLG1EQUFtRDtBQUNuRCxnRUFBZ0U7QUFDaEUsb0RBQW9EO0FBQ3BELHdEQUF3RDtBQUV4RCwrQkFBK0I7QUFDL0Isc0JBQXNCO0FBQ3RCLG1CQUFtQjtBQUNuQixLQUFLO0FBQ0wsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ25CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFFL0Isb0JBQW9CO0FBQ3BCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO0lBQzFDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztDQUN6QztBQUNELGlCQUFpQjtLQUNaLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQzNDLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztDQUNqRDtBQUNELFlBQVk7S0FDUCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDdEMsU0FBUyxHQUFHLGtDQUFrQyxDQUFDO0NBQ2xEO0FBQ0Qsa0NBQWtDO0tBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUNsQyxTQUFTLEdBQUcsaUNBQWlDLENBQUM7Q0FDakQ7QUFDRCxzQ0FBc0M7S0FDakM7SUFDRCxTQUFTLEdBQUcsaUNBQWlDLENBQUM7Q0FDakQ7QUFFRCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsVUFBVSxFQUFFLEtBQUs7SUFDakIsR0FBRyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGxldCBBUElfQ09OU1QgPSAnJztcclxuXHJcbi8vIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLm5ldWFwaXguY29tJztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkYXNoYm9hcmQtc3RhZ2luZy5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG4vLyBlbHNlIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYS5hZGxzYW5kYm94JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpYnNwLXFhLmFkbHNhbmRib3gubmV0JztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldi5hZGxzYW5kYm94Lm5ldCcpKVxyXG4vLyBcdEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG4vLyBlbHNlIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xyXG4vLyBcdHByb2R1Y3Rpb246IGZhbHNlLFxyXG4vLyBcdGFwaTogQVBJX0NPTlNULFxyXG4vLyB9O1xyXG5sZXQgQVBJX0NPTlNUID0gJyc7XHJcbmNvbnN0IG9yaWdpbiA9IGxvY2F0aW9uLm9yaWdpbjtcclxuXHJcbi8vIDEuIENlayBQcm9kdWN0aW9uXHJcbmlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4LmNvbScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGkubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDIuIENlayBTdGFnaW5nXHJcbmVsc2UgaWYgKG9yaWdpbi5pbmNsdWRlcygnZGFzaGJvYXJkLXN0YWdpbmcnKSkge1xyXG4gICAgQVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDMuIENlayBRQVxyXG5lbHNlIGlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtcWEuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcbi8vIDQuIENlayBEZW1vIERldiBzZWNhcmEgc3Blc2lmaWtcclxuZWxzZSBpZiAob3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldicpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy5uZXVhcGl4LmNvbSc7XHJcbn1cclxuLy8gNS4gRGVmYXVsdCAoTG9jYWxob3N0IGF0YXUgbGFpbm55YSlcclxuZWxzZSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy5uZXVhcGl4LmNvbSc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcclxuICAgIHByb2R1Y3Rpb246IGZhbHNlLFxyXG4gICAgYXBpOiBBUElfQ09OU1QsXHJcbn07XHJcbiJdfQ==
@@ -11,8 +11,11 @@ let FilterInListOfCampaignComponent = class FilterInListOfCampaignComponent {
11
11
  constructor(apiAdapterService) {
12
12
  this.apiAdapterService = apiAdapterService;
13
13
  this.channelOption = PlatformOptionConst;
14
+ this.filteredChannelOption = [];
14
15
  this.businessNameOption = [];
16
+ this.filteredBusinessNameOption = [];
15
17
  this.statusOption = [];
18
+ this.filteredStatusOption = [];
16
19
  this.templateOption = [];
17
20
  this.isHaveNextTemplateOption = true;
18
21
  this.isLoadingTemplateOption = false;
@@ -23,6 +26,8 @@ let FilterInListOfCampaignComponent = class FilterInListOfCampaignComponent {
23
26
  }
24
27
  ngOnInit() {
25
28
  this.statusOption = generateEnumOption(StatusCampaignEnum);
29
+ this.filteredStatusOption = [...this.statusOption];
30
+ this.filteredChannelOption = [...this.channelOption];
26
31
  this.initForm();
27
32
  this.getBusinessNameOptionService();
28
33
  }
@@ -47,6 +52,7 @@ let FilterInListOfCampaignComponent = class FilterInListOfCampaignComponent {
47
52
  .executeApiRequest([], '/admin/client/all-with-child?pageNo=1&rowPerPage=1000', 'GET')
48
53
  .subscribe((res) => {
49
54
  this.businessNameOption = res.data;
55
+ this.filteredBusinessNameOption = [...this.businessNameOption];
50
56
  });
51
57
  this.subscribers.push(subs);
52
58
  }
@@ -93,6 +99,18 @@ let FilterInListOfCampaignComponent = class FilterInListOfCampaignComponent {
93
99
  this.pageNoTemplateOption = 1;
94
100
  this.getTemplateOptionService(searchValue);
95
101
  }
102
+ businessNameSearch(searchValue) {
103
+ const value = searchValue.toLowerCase();
104
+ this.filteredBusinessNameOption = this.businessNameOption.filter(option => option.name.toLowerCase().includes(value));
105
+ }
106
+ channelSearch(searchValue) {
107
+ const value = searchValue.toLowerCase();
108
+ this.filteredChannelOption = this.channelOption.filter(option => option.label.toLowerCase().includes(value));
109
+ }
110
+ statusSearch(searchValue) {
111
+ const value = searchValue.toLowerCase();
112
+ this.filteredStatusOption = this.statusOption.filter(option => option.label.toLowerCase().includes(value));
113
+ }
96
114
  clearDate() {
97
115
  this.form.get('startDate').setValue(null);
98
116
  this.form.get('endDate').setValue(null);
@@ -132,12 +150,12 @@ __decorate([
132
150
  FilterInListOfCampaignComponent = __decorate([
133
151
  Component({
134
152
  selector: 'lib-filter-in-list-of-campaign',
135
- template: "<p class=\"font-16px font-bold\">Filter</p>\r\n\r\n<form [formGroup]=\"form\"\r\n\tclass=\"contact-filter\">\r\n\t<div class=\"row\">\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-70\">\r\n\t\t\t\t\t<mat-label>Business Name</mat-label>\r\n\r\n\t\t\t\t\t<mat-select placeholder=\"Select Business Name\"\r\n\t\t\t\t\t\tformControlName=\"businessName\">\r\n\t\t\t\t\t\t<mat-option value=\"\"> --- select none --- </mat-option>\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let option of businessNameOption\"\r\n\t\t\t\t\t\t\t[value]=\"option.id\">\r\n\t\t\t\t\t\t\t{{ option.name }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-70\">\r\n\t\t\t\t\t<mat-label>Channel</mat-label>\r\n\r\n\t\t\t\t\t<mat-select placeholder=\"Select the Channel\"\r\n\t\t\t\t\t\tformControlName=\"medium\">\r\n\t\t\t\t\t\t<mat-option value=\"\"> --- select none --- </mat-option>\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let option of channelOption\"\r\n\t\t\t\t\t\t\t[value]=\"option.value\"\r\n\t\t\t\t\t\t\t(click)=\"getTemplateOptionService()\">\r\n\t\t\t\t\t\t\t{{ option.label }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-100\">\r\n\t\t\t\t\t<mat-label class=\"asterix--after\">Template Name</mat-label>\r\n\r\n\t\t\t\t\t<mat-select matSelectInfiniteScroll\r\n\t\t\t\t\t\tformControlName=\"templateName\"\r\n\t\t\t\t\t\tplaceholder=\"Select template\"\r\n\t\t\t\t\t\t[complete]=\"isHaveNextTemplateOption === false\"\r\n\t\t\t\t\t\t[compareWith]=\"templateSelectedDisplay\"\r\n\t\t\t\t\t\t(infiniteScroll)=\"getNextTemplateBatch()\">\r\n\t\t\t\t\t\t<div style=\"margin: 20px\">\r\n\t\t\t\t\t\t\t<lib-search [placeholder]=\"'Search'\"\r\n\t\t\t\t\t\t\t\t[currentValue]=\"form?.get('templateName').value?.name\"\r\n\t\t\t\t\t\t\t\t(searchRes)=\"templateSearch($event)\"></lib-search>\r\n\t\t\t\t\t\t</div>\r\n\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let option of templateOption\"\r\n\t\t\t\t\t\t\t[value]=\"option\">\r\n\t\t\t\t\t\t\t{{ option.name }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t\t<mat-option *ngIf=\"isLoadingTemplateOption\">Loading...</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-70\">\r\n\t\t\t\t\t<mat-label>Status</mat-label>\r\n\r\n\t\t\t\t\t<mat-select placeholder=\"Select the Status\"\r\n\t\t\t\t\t\tformControlName=\"status\">\r\n\t\t\t\t\t\t<mat-option value=\"\"> --- select none --- </mat-option>\r\n\t\t\t\t\t\t<mat-option *ngFor=\"let option of statusOption\"\r\n\t\t\t\t\t\t\t[value]=\"option.value\">\r\n\t\t\t\t\t\t\t{{ option.label }}\r\n\t\t\t\t\t\t</mat-option>\r\n\t\t\t\t\t</mat-select>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-100\">\r\n\t\t\t\t\t<mat-label> Start Date </mat-label>\r\n\t\t\t\t\t<input matInput\r\n\t\t\t\t\t\t[matDatepicker]=\"startDatePicker\"\r\n\t\t\t\t\t\tformControlName=\"startDate\"\r\n\t\t\t\t\t\tclass=\"mat-datepicker-input\"\r\n\t\t\t\t\t\t(dateChange)=\"validateBackDate()\" />\r\n\r\n\t\t\t\t\t<mat-datepicker-toggle matSuffix\r\n\t\t\t\t\t\t[for]=\"startDatePicker\"> </mat-datepicker-toggle>\r\n\t\t\t\t\t<mat-icon *ngIf=\"form.get('startDate').value\"\r\n\t\t\t\t\t\tmatDatepickerToggleIcon\r\n\t\t\t\t\t\t(click)=\"clearDate()\">clear</mat-icon>\r\n\t\t\t\t\t<mat-datepicker #startDatePicker></mat-datepicker>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class=\"col-md-12 col-12\">\r\n\t\t\t<div class=\"form-group\">\r\n\t\t\t\t<mat-form-field appearance=\"outline\"\r\n\t\t\t\t\tfloatLabel=\"always\"\r\n\t\t\t\t\tclass=\"w-100\">\r\n\t\t\t\t\t<mat-label> End Date </mat-label>\r\n\t\t\t\t\t<input matInput\r\n\t\t\t\t\t\t[min]=\"form.get('startDate').value\"\r\n\t\t\t\t\t\t[matDatepicker]=\"endDatePicker\"\r\n\t\t\t\t\t\tformControlName=\"endDate\"\r\n\t\t\t\t\t\tclass=\"mat-datepicker-input\"\r\n\t\t\t\t\t\t(dateChange)=\"validateBackDate()\" />\r\n\r\n\t\t\t\t\t<mat-datepicker-toggle matSuffix\r\n\t\t\t\t\t\t[for]=\"endDatePicker\"> </mat-datepicker-toggle>\r\n\t\t\t\t\t<mat-icon *ngIf=\"form.get('endDate').value\"\r\n\t\t\t\t\t\tmatDatepickerToggleIcon\r\n\t\t\t\t\t\t(click)=\"clearDate()\">clear</mat-icon>\r\n\t\t\t\t\t<mat-datepicker #endDatePicker></mat-datepicker>\r\n\t\t\t\t</mat-form-field>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div style=\"display: flex; flex: 1; width: 100%\">\r\n\t\t\t<button mat-stroked-button\r\n\t\t\t\tcolor=\"primary-telin\"\r\n\t\t\t\tclass=\"telin-font-color w-48\"\r\n\t\t\t\tstyle=\"width: 100%; margin-bottom: 10px\"\r\n\t\t\t\t(click)=\"onReset()\">\r\n\t\t\t\tReset\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t\t<div class=\"d-flex justify-content-between\">\r\n\t\t\t<button mat-stroked-button\r\n\t\t\t\tcolor=\"secondary-telin\"\r\n\t\t\t\tclass=\"w-48\"\r\n\t\t\t\t(click)=\"onCancel()\">\r\n\t\t\t\tCancel\r\n\t\t\t</button>\r\n\r\n\t\t\t<button mat-flat-button\r\n\t\t\t\tcolor=\"primary-telin-blue2\"\r\n\t\t\t\tclass=\"w-48\"\r\n\t\t\t\t(click)=\"onApply()\">\r\n\t\t\t\tApply\r\n\t\t\t</button>\r\n\t\t</div>\r\n\t</div>\r\n</form>\r\n",
136
- styles: [".contact-filter .platform{display:grid;grid-gap:5px;grid-template-columns:auto 1fr auto}.button-row{margin:8px 8px 8px 0}.mat-datepicker-input{width:85%}.mat-icon{position:relative;float:right;top:-7px;cursor:pointer;color:rgba(0,0,0,.54)}"]
153
+ template: "<p class=\"font-16px font-bold\">Filter</p>\r\n\r\n<form [formGroup]=\"form\" class=\"contact-filter\">\r\n <div class=\"row\">\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-70\">\r\n <mat-label>Business Name</mat-label>\r\n <mat-select placeholder=\"Select Business Name\" formControlName=\"businessName\">\r\n <div class=\"select-search\">\r\n <lib-search\r\n [placeholder]=\"'Search'\"\r\n (searchRes)=\"businessNameSearch($event)\"\r\n ></lib-search>\r\n </div>\r\n\r\n <mat-option value=\"\"> --- select none --- </mat-option>\r\n <mat-option\r\n *ngFor=\"let option of filteredBusinessNameOption\"\r\n [value]=\"option.id\"\r\n >\r\n {{ option.name }}\r\n </mat-option>\r\n <mat-option *ngIf=\"!filteredBusinessNameOption.length\" disabled>\r\n No data found\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-70\">\r\n <mat-label>Channel</mat-label>\r\n\r\n <mat-select placeholder=\"Select the Channel\" formControlName=\"medium\">\r\n <mat-option value=\"\"> --- select none --- </mat-option>\r\n <mat-option\r\n *ngFor=\"let option of filteredChannelOption\"\r\n [value]=\"option.value\"\r\n (click)=\"getTemplateOptionService()\"\r\n >\r\n {{ option.label }}\r\n </mat-option>\r\n <mat-option *ngIf=\"!filteredChannelOption.length\" disabled>\r\n No data found\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-100\">\r\n <mat-label class=\"asterix--after\">Template Name</mat-label>\r\n\r\n <mat-select\r\n matSelectInfiniteScroll\r\n formControlName=\"templateName\"\r\n placeholder=\"Select template\"\r\n [complete]=\"isHaveNextTemplateOption === false\"\r\n [compareWith]=\"templateSelectedDisplay\"\r\n (infiniteScroll)=\"getNextTemplateBatch()\"\r\n >\r\n <div style=\"margin: 20px\">\r\n <lib-search\r\n [placeholder]=\"'Search'\"\r\n [currentValue]=\"form?.get('templateName').value?.name\"\r\n (searchRes)=\"templateSearch($event)\"\r\n ></lib-search>\r\n </div>\r\n\r\n <mat-option *ngFor=\"let option of templateOption\" [value]=\"option\">\r\n {{ option.name }}\r\n </mat-option>\r\n <mat-option *ngIf=\"isLoadingTemplateOption\">Loading...</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-70\">\r\n <mat-label>Status</mat-label>\r\n\r\n <mat-select placeholder=\"Select the Status\" formControlName=\"status\">\r\n <div class=\"select-search\">\r\n <lib-search\r\n [placeholder]=\"'Search'\"\r\n (searchRes)=\"statusSearch($event)\"\r\n ></lib-search>\r\n </div>\r\n\r\n <mat-option value=\"\"> --- select none --- </mat-option>\r\n <mat-option\r\n *ngFor=\"let option of filteredStatusOption\"\r\n [value]=\"option.value\"\r\n >\r\n {{ option.label }}\r\n </mat-option>\r\n <mat-option *ngIf=\"!filteredStatusOption.length\" disabled>\r\n No data found\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-100\">\r\n <mat-label> Start Date </mat-label>\r\n <input\r\n matInput\r\n [matDatepicker]=\"startDatePicker\"\r\n formControlName=\"startDate\"\r\n class=\"mat-datepicker-input\"\r\n (dateChange)=\"validateBackDate()\"\r\n />\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"startDatePicker\">\r\n </mat-datepicker-toggle>\r\n <mat-icon\r\n *ngIf=\"form.get('startDate').value\"\r\n matDatepickerToggleIcon\r\n (click)=\"clearDate()\"\r\n >clear</mat-icon\r\n >\r\n <mat-datepicker #startDatePicker></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-12 col-12\">\r\n <div class=\"form-group\">\r\n <mat-form-field appearance=\"outline\" floatLabel=\"always\" class=\"w-100\">\r\n <mat-label> End Date </mat-label>\r\n <input\r\n matInput\r\n [min]=\"form.get('startDate').value\"\r\n [matDatepicker]=\"endDatePicker\"\r\n formControlName=\"endDate\"\r\n class=\"mat-datepicker-input\"\r\n (dateChange)=\"validateBackDate()\"\r\n />\r\n\r\n <mat-datepicker-toggle matSuffix [for]=\"endDatePicker\"> </mat-datepicker-toggle>\r\n <mat-icon\r\n *ngIf=\"form.get('endDate').value\"\r\n matDatepickerToggleIcon\r\n (click)=\"clearDate()\"\r\n >clear</mat-icon\r\n >\r\n <mat-datepicker #endDatePicker></mat-datepicker>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div style=\"display: flex; flex: 1; width: 100%\">\r\n <button\r\n mat-stroked-button\r\n color=\"primary-telin\"\r\n class=\"telin-font-color w-48\"\r\n style=\"width: 100%; margin-bottom: 10px\"\r\n (click)=\"onReset()\"\r\n >\r\n Reset\r\n </button>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <button mat-stroked-button color=\"secondary-telin\" class=\"w-48\" (click)=\"onCancel()\">\r\n Cancel\r\n </button>\r\n\r\n <button mat-flat-button color=\"primary-telin-blue2\" class=\"w-48\" (click)=\"onApply()\">\r\n Apply\r\n </button>\r\n </div>\r\n </div>\r\n</form>\r\n",
154
+ styles: [".contact-filter .platform{display:grid;grid-gap:5px;grid-template-columns:auto 1fr auto}.button-row{margin:8px 8px 8px 0}.mat-datepicker-input{width:85%}.mat-icon{position:relative;float:right;top:-7px;cursor:pointer;color:rgba(0,0,0,.54)}.select-search{margin:20px}"]
137
155
  }),
138
156
  Injectable({
139
157
  providedIn: 'root',
140
158
  })
141
159
  ], FilterInListOfCampaignComponent);
142
160
  export { FilterInListOfCampaignComponent };
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluLWxpc3Qtb2YtY2FtcGFpZ24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFkbGZlL2NhbXBhaWduLW1hbmFnZW1lbnQtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9jYW1wYWlnbi1tYW5hZ2VtZW50L21vZHVsZXMvY2FtcGFpZ24taW5kZXgvY29tcG9uZW50L2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduL2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBWTlELElBQWEsK0JBQStCLEdBQTVDLE1BQWEsK0JBQStCO0lBcUIzQyxZQUFvQixpQkFBMkM7UUFBM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQWJ4RCxrQkFBYSxHQUFVLG1CQUFtQixDQUFDO1FBQzNDLHVCQUFrQixHQUFnQixFQUFFLENBQUM7UUFDckMsaUJBQVksR0FBc0IsRUFBRSxDQUFDO1FBQ3JDLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUN2Qyw2QkFBd0IsR0FBWSxJQUFJLENBQUM7UUFDekMsNEJBQXVCLEdBQVksS0FBSyxDQUFDO1FBRXhDLHlCQUFvQixHQUFXLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFtQixF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RUFDbUM7QUFHNUM7SUFEQyxNQUFNLEVBQUU7c0VBQ2dDO0FBY3pDO0lBREMsS0FBSyxFQUFFO29FQUNnQjtBQW5CWiwrQkFBK0I7SUFSM0MsU0FBUyxDQUFDO1FBQ1YsUUFBUSxFQUFFLGdDQUFnQztRQUMxQyw4MUxBQTBEOztLQUUxRCxDQUFDO0lBQ0QsVUFBVSxDQUFDO1FBQ1gsVUFBVSxFQUFFLE1BQU07S0FDbEIsQ0FBQztHQUNXLCtCQUErQixDQW9KM0M7U0FwSlksK0JBQStCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuXHRDb21wb25lbnQsXHJcblx0RXZlbnRFbWl0dGVyLFxyXG5cdEluamVjdGFibGUsXHJcblx0SW5wdXQsXHJcblx0T25EZXN0cm95LFxyXG5cdE9uSW5pdCxcclxuXHRPdXRwdXQsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBQbGF0Zm9ybU9wdGlvbkNvbnN0IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9jb25zdCc7XHJcbmltcG9ydCB7IFN0YXR1c0NhbXBhaWduRW51bSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvZW51bXMnO1xyXG5pbXBvcnQgeyBCYXNlT3B0aW9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVscyc7XHJcbmltcG9ydCB7IFBhcmFtZXRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWFkYXB0ZXItc2VydmljZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcHBSZXNwb25zZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvbW9kZWxzL3V0aWwvYXBpLWR0by9yZXNwb25zZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBBcGlBZGFwdGVyU2VydmljZVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgZ2VuZXJhdGVFbnVtT3B0aW9uIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS91dGlsJztcclxuaW1wb3J0IHsgVGVtcGxhdGVXQU1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgQ2xpZW50RHRvIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbGliLWZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLWluLWxpc3Qtb2YtY2FtcGFpZ24uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbkBJbmplY3RhYmxlKHtcclxuXHRwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWx0ZXJJbkxpc3RPZkNhbXBhaWduQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cdEBPdXRwdXQoKVxyXG5cdHB1YmxpYyBvbkNoYW5nZUZpbHRlcjogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcblxyXG5cdEBPdXRwdXQoKVxyXG5cdHB1YmxpYyBjbG9zZURyb3Bkb3duOiBFdmVudEVtaXR0ZXI8dm9pZD47XHJcblxyXG5cdHB1YmxpYyBmb3JtOiBGb3JtR3JvdXA7XHJcblx0cHVibGljIGNoYW5uZWxPcHRpb246IGFueVtdID0gUGxhdGZvcm1PcHRpb25Db25zdDtcclxuXHRwdWJsaWMgYnVzaW5lc3NOYW1lT3B0aW9uOiBDbGllbnREdG9bXSA9IFtdO1xyXG5cdHB1YmxpYyBzdGF0dXNPcHRpb246IEJhc2VPcHRpb25Nb2RlbFtdID0gW107XHJcblx0cHVibGljIHRlbXBsYXRlT3B0aW9uOiBUZW1wbGF0ZVdBTW9kZWxbXSA9IFtdO1xyXG5cdHB1YmxpYyBpc0hhdmVOZXh0VGVtcGxhdGVPcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cdHB1YmxpYyBpc0xvYWRpbmdUZW1wbGF0ZU9wdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuXHRwcml2YXRlIHBhZ2VOb1RlbXBsYXRlT3B0aW9uOiBudW1iZXIgPSAxO1xyXG5cdHByaXZhdGUgc3Vic2NyaWJlcnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGZpbHRlclZhbHVlOiBhbnk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgYXBpQWRhcHRlclNlcnZpY2U6IEFwaUFkYXB0ZXJTZXJ2aWNlU2VydmljZSkge1xyXG5cdFx0dGhpcy5jbG9zZURyb3Bkb3duID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdFx0dGhpcy5vbkNoYW5nZUZpbHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHR9XHJcblxyXG5cdG5nT25Jbml0KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdGF0dXNPcHRpb24gPSBnZW5lcmF0ZUVudW1PcHRpb24oU3RhdHVzQ2FtcGFpZ25FbnVtKTtcclxuXHJcblx0XHR0aGlzLmluaXRGb3JtKCk7XHJcblx0XHR0aGlzLmdldEJ1c2luZXNzTmFtZU9wdGlvblNlcnZpY2UoKTtcclxuXHR9XHJcblxyXG5cdHByaXZhdGUgaW5pdEZvcm0oKTogdm9pZCB7XHJcblx0XHR0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcclxuXHRcdFx0YnVzaW5lc3NOYW1lOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8uYnVzaW5lc3NOYW1lID8/ICcnKSxcclxuXHRcdFx0bWVkaXVtOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8ubWVkaXVtID8/ICcnKSxcclxuXHRcdFx0dGVtcGxhdGVOYW1lOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8udGVtcGxhdGVOYW1lID8/ICcnKSxcclxuXHRcdFx0c3RhdHVzOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8uc3RhdHVzID8/ICcnKSxcclxuXHRcdFx0c3RhcnREYXRlOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8uc3RhcnREYXRlID8/ICcnKSxcclxuXHRcdFx0ZW5kRGF0ZTogbmV3IEZvcm1Db250cm9sKHRoaXMuZmlsdGVyVmFsdWU/LmVuZERhdGUgPz8gJycpLFxyXG5cdFx0fSk7XHJcblxyXG5cdFx0aWYgKHRoaXMuZmlsdGVyVmFsdWU/LnRlbXBsYXRlTmFtZSlcclxuXHRcdFx0dGhpcy50ZW1wbGF0ZU9wdGlvbiA9IFtcclxuXHRcdFx0XHQuLi50aGlzLnRlbXBsYXRlT3B0aW9uLFxyXG5cdFx0XHRcdHRoaXMuZmlsdGVyVmFsdWU/LnRlbXBsYXRlTmFtZSxcclxuXHRcdFx0XTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRCdXNpbmVzc05hbWVPcHRpb25TZXJ2aWNlKCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuXHRcdFx0LmV4ZWN1dGVBcGlSZXF1ZXN0KFxyXG5cdFx0XHRcdFtdLFxyXG5cdFx0XHRcdCcvYWRtaW4vY2xpZW50L2FsbC13aXRoLWNoaWxkP3BhZ2VObz0xJnJvd1BlclBhZ2U9MTAwMCcsXHJcblx0XHRcdFx0J0dFVCdcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXM6IEFwcFJlc3BvbnNlPENsaWVudER0b1tdPikgPT4ge1xyXG5cdFx0XHRcdHRoaXMuYnVzaW5lc3NOYW1lT3B0aW9uID0gcmVzLmRhdGE7XHJcblx0XHRcdH0pO1xyXG5cclxuXHRcdHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXRUZW1wbGF0ZU9wdGlvblNlcnZpY2UoXHJcblx0XHRmaWx0ZXI6IHN0cmluZyA9ICcnLFxyXG5cdFx0aXNJbmZpbml0ZTogYm9vbGVhbiA9IGZhbHNlXHJcblx0KTogdm9pZCB7XHJcblx0XHR0aGlzLmlzTG9hZGluZ1RlbXBsYXRlT3B0aW9uID0gdHJ1ZTtcclxuXHJcblx0XHRjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG5cdFx0XHR0aGlzLmluaXRQYXJhbSgncGFnZU5vJywgdGhpcy5wYWdlTm9UZW1wbGF0ZU9wdGlvbiwgJ251bWJlcicpLFxyXG5cdFx0XHR0aGlzLmluaXRQYXJhbSgncm93UGVyUGFnZScsIDIwLCAnbnVtYmVyJyksXHJcblx0XHRcdHRoaXMuaW5pdFBhcmFtKCdwbGF0Zm9ybScsIHRoaXMuZm9ybS5nZXQoJ21lZGl1bScpLnZhbHVlLCAnc3RyaW5nJyksXHJcblx0XHRcdHRoaXMuaW5pdFBhcmFtKCdmaWx0ZXInLCBmaWx0ZXIsICdzdHJpbmcnKSxcclxuXHRcdFx0dGhpcy5pbml0UGFyYW0oJ3N0YXR1cycsICdBUFBST1ZFRCcsICdzdHJpbmcnKSxcclxuXHRcdF07XHJcblxyXG5cdFx0Y29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuXHRcdFx0LmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvbWVzc2FnZS90ZW1wbGF0ZScsICdHRVQnKVxyXG5cdFx0XHQuc3Vic2NyaWJlKChyZXNwOiBBcHBSZXNwb25zZTxUZW1wbGF0ZVdBTW9kZWxbXT4pID0+IHtcclxuXHRcdFx0XHR0aGlzLnRlbXBsYXRlT3B0aW9uID0gaXNJbmZpbml0ZVxyXG5cdFx0XHRcdFx0PyBbLi4udGhpcy50ZW1wbGF0ZU9wdGlvbiwgLi4ucmVzcC5kYXRhXVxyXG5cdFx0XHRcdFx0OiByZXNwLmRhdGE7XHJcblx0XHRcdFx0dGhpcy5pc0hhdmVOZXh0VGVtcGxhdGVPcHRpb24gPSByZXNwLmhhdmVOZXh0O1xyXG5cdFx0XHRcdHRoaXMuaXNMb2FkaW5nVGVtcGxhdGVPcHRpb24gPSBmYWxzZTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpbml0UGFyYW0oX25hbWU6IHN0cmluZywgX3ZhbHVlOiBhbnksIF90eXBlOiBzdHJpbmcpOiBQYXJhbWV0ZXIge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bmFtZTogX25hbWUsXHJcblx0XHRcdHZhbHVlOiBfdmFsdWUsXHJcblx0XHRcdGluOiAncXVlcnknLFxyXG5cdFx0XHR0eXBlOiBfdHlwZSxcclxuXHRcdH07XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgZ2V0TmV4dFRlbXBsYXRlQmF0Y2goKSB7XHJcblx0XHRpZiAoIXRoaXMuaXNIYXZlTmV4dFRlbXBsYXRlT3B0aW9uKSByZXR1cm47XHJcblxyXG5cdFx0dGhpcy5wYWdlTm9UZW1wbGF0ZU9wdGlvbiArPSAxO1xyXG5cdFx0dGhpcy5nZXRUZW1wbGF0ZU9wdGlvblNlcnZpY2UoJycsIHRydWUpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHRlbXBsYXRlU2VsZWN0ZWREaXNwbGF5KFxyXG5cdFx0YXR0cmlidXRlMTogVGVtcGxhdGVXQU1vZGVsLFxyXG5cdFx0YXR0cmlidXRlMjogVGVtcGxhdGVXQU1vZGVsXHJcblx0KTogc3RyaW5nIHtcclxuXHRcdHJldHVybiBhdHRyaWJ1dGUxICYmIGF0dHJpYnV0ZTIgJiYgYXR0cmlidXRlMS5uYW1lID09IGF0dHJpYnV0ZTIubmFtZVxyXG5cdFx0XHQ/IGAke2F0dHJpYnV0ZTEubmFtZX1gXHJcblx0XHRcdDogJyc7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdGVtcGxhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0dGhpcy5wYWdlTm9UZW1wbGF0ZU9wdGlvbiA9IDE7XHJcblx0XHR0aGlzLmdldFRlbXBsYXRlT3B0aW9uU2VydmljZShzZWFyY2hWYWx1ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY2xlYXJEYXRlKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5mb3JtLmdldCgnc3RhcnREYXRlJykuc2V0VmFsdWUobnVsbCk7XHJcblx0XHR0aGlzLmZvcm0uZ2V0KCdlbmREYXRlJykuc2V0VmFsdWUobnVsbCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdmFsaWRhdGVCYWNrRGF0ZSgpOiB2b2lkIHtcclxuXHRcdGlmIChuZXcgRGF0ZSh0aGlzLmZvcm0uZ2V0KCdzdGFydERhdGUnKS52YWx1ZSkuZ2V0VGltZSgpID4gbmV3IERhdGUodGhpcy5mb3JtLmdldCgnZW5kRGF0ZScpLnZhbHVlKS5nZXRUaW1lKCkpXHJcblx0XHRcdHRoaXMuZm9ybS5nZXQoJ2VuZERhdGUnKS5zZXRWYWx1ZSgnJyk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgb25SZXNldCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZm9ybS5yZXNldCgpO1xyXG5cdFx0dGhpcy5vbkNoYW5nZUZpbHRlci5lbWl0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBvbkNhbmNlbCgpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2xvc2VEcm9wZG93bi5lbWl0KCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgb25BcHBseSgpOiB2b2lkIHtcclxuXHRcdHRoaXMub25DaGFuZ2VGaWx0ZXIuZW1pdCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XHJcblx0XHR0aGlzLmNsb3NlRHJvcGRvd24uZW1pdCgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcblx0XHR0aGlzLnN1YnNjcmliZXJzLmZvckVhY2goZWFjaCA9PiBlYWNoLnVuc3Vic2NyaWJlKCkpO1xyXG5cdH1cclxufVxyXG4iXX0=
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLWluLWxpc3Qtb2YtY2FtcGFpZ24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFkbGZlL2NhbXBhaWduLW1hbmFnZW1lbnQtbGlicmFyeS8iLCJzb3VyY2VzIjpbImxpYi9jYW1wYWlnbi1tYW5hZ2VtZW50L21vZHVsZXMvY2FtcGFpZ24taW5kZXgvY29tcG9uZW50L2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduL2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNOLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEdBQ04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUkvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBWTlELElBQWEsK0JBQStCLEdBQTVDLE1BQWEsK0JBQStCO0lBd0IzQyxZQUFvQixpQkFBMkM7UUFBM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQWhCeEQsa0JBQWEsR0FBVSxtQkFBbUIsQ0FBQztRQUMzQywwQkFBcUIsR0FBVSxFQUFFLENBQUM7UUFDbEMsdUJBQWtCLEdBQWdCLEVBQUUsQ0FBQztRQUNyQywrQkFBMEIsR0FBZ0IsRUFBRSxDQUFDO1FBQzdDLGlCQUFZLEdBQXNCLEVBQUUsQ0FBQztRQUNyQyx5QkFBb0IsR0FBc0IsRUFBRSxDQUFDO1FBQzdDLG1CQUFjLEdBQXNCLEVBQUUsQ0FBQztRQUN2Qyw2QkFBd0IsR0FB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Q0QsQ0FBQTs7WUF2SnVDLHdCQUF3Qjs7O0FBdEIvRDtJQURDLE1BQU0sRUFBRTt1RUFDbUM7QUFHNUM7SUFEQyxNQUFNLEVBQUU7c0VBQ2dDO0FBaUJ6QztJQURDLEtBQUssRUFBRTtvRUFDZ0I7QUF0QlosK0JBQStCO0lBUjNDLFNBQVMsQ0FBQztRQUNWLFFBQVEsRUFBRSxnQ0FBZ0M7UUFDMUMsMjJRQUEwRDs7S0FFMUQsQ0FBQztJQUNELFVBQVUsQ0FBQztRQUNYLFVBQVUsRUFBRSxNQUFNO0tBQ2xCLENBQUM7R0FDVywrQkFBK0IsQ0ErSzNDO1NBL0tZLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0Q29tcG9uZW50LFxyXG5cdEV2ZW50RW1pdHRlcixcclxuXHRJbmplY3RhYmxlLFxyXG5cdElucHV0LFxyXG5cdE9uRGVzdHJveSxcclxuXHRPbkluaXQsXHJcblx0T3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgUGxhdGZvcm1PcHRpb25Db25zdCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvY29uc3QnO1xyXG5pbXBvcnQgeyBTdGF0dXNDYW1wYWlnbkVudW0gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL2VudW1zJztcclxuaW1wb3J0IHsgQmFzZU9wdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1hZGFwdGVyLXNlcnZpY2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBwUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1kdG8vcmVzcG9uc2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGdlbmVyYXRlRW51bU9wdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvcmUvdXRpbCc7XHJcbmltcG9ydCB7IFRlbXBsYXRlV0FNb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IENsaWVudER0byB9IGZyb20gJy4uLy4uL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2xpYi1maWx0ZXItaW4tbGlzdC1vZi1jYW1wYWlnbicsXHJcblx0dGVtcGxhdGVVcmw6ICcuL2ZpbHRlci1pbi1saXN0LW9mLWNhbXBhaWduLmNvbXBvbmVudC5odG1sJyxcclxuXHRzdHlsZVVybHM6IFsnLi9maWx0ZXItaW4tbGlzdC1vZi1jYW1wYWlnbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5ASW5qZWN0YWJsZSh7XHJcblx0cHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVySW5MaXN0T2ZDYW1wYWlnbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHRAT3V0cHV0KClcclxuXHRwdWJsaWMgb25DaGFuZ2VGaWx0ZXI6IEV2ZW50RW1pdHRlcjxzdHJpbmc+O1xyXG5cclxuXHRAT3V0cHV0KClcclxuXHRwdWJsaWMgY2xvc2VEcm9wZG93bjogRXZlbnRFbWl0dGVyPHZvaWQ+O1xyXG5cclxuXHRwdWJsaWMgZm9ybTogRm9ybUdyb3VwO1xyXG5cdHB1YmxpYyBjaGFubmVsT3B0aW9uOiBhbnlbXSA9IFBsYXRmb3JtT3B0aW9uQ29uc3Q7XHJcblx0cHVibGljIGZpbHRlcmVkQ2hhbm5lbE9wdGlvbjogYW55W10gPSBbXTtcclxuXHRwdWJsaWMgYnVzaW5lc3NOYW1lT3B0aW9uOiBDbGllbnREdG9bXSA9IFtdO1xyXG5cdHB1YmxpYyBmaWx0ZXJlZEJ1c2luZXNzTmFtZU9wdGlvbjogQ2xpZW50RHRvW10gPSBbXTtcclxuXHRwdWJsaWMgc3RhdHVzT3B0aW9uOiBCYXNlT3B0aW9uTW9kZWxbXSA9IFtdO1xyXG5cdHB1YmxpYyBmaWx0ZXJlZFN0YXR1c09wdGlvbjogQmFzZU9wdGlvbk1vZGVsW10gPSBbXTtcclxuXHRwdWJsaWMgdGVtcGxhdGVPcHRpb246IFRlbXBsYXRlV0FNb2RlbFtdID0gW107XHJcblx0cHVibGljIGlzSGF2ZU5leHRUZW1wbGF0ZU9wdGlvbjogYm9vbGVhbiA9IHRydWU7XHJcblx0cHVibGljIGlzTG9hZGluZ1RlbXBsYXRlT3B0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdHByaXZhdGUgcGFnZU5vVGVtcGxhdGVPcHRpb246IG51bWJlciA9IDE7XHJcblx0cHJpdmF0ZSBzdWJzY3JpYmVyczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcblx0QElucHV0KClcclxuXHRwdWJsaWMgZmlsdGVyVmFsdWU6IGFueTtcclxuXHJcblx0Y29uc3RydWN0b3IocHJpdmF0ZSBhcGlBZGFwdGVyU2VydmljZTogQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlKSB7XHJcblx0XHR0aGlzLmNsb3NlRHJvcGRvd24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblx0XHR0aGlzLm9uQ2hhbmdlRmlsdGVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cdH1cclxuXHJcblx0bmdPbkluaXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLnN0YXR1c09wdGlvbiA9IGdlbmVyYXRlRW51bU9wdGlvbihTdGF0dXNDYW1wYWlnbkVudW0pO1xyXG5cdFx0dGhpcy5maWx0ZXJlZFN0YXR1c09wdGlvbiA9IFsuLi50aGlzLnN0YXR1c09wdGlvbl07XHJcblx0XHR0aGlzLmZpbHRlcmVkQ2hhbm5lbE9wdGlvbiA9IFsuLi50aGlzLmNoYW5uZWxPcHRpb25dO1xyXG5cclxuXHRcdHRoaXMuaW5pdEZvcm0oKTtcclxuXHRcdHRoaXMuZ2V0QnVzaW5lc3NOYW1lT3B0aW9uU2VydmljZSgpO1xyXG5cdH1cclxuXHJcblx0cHJpdmF0ZSBpbml0Rm9ybSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZm9ybSA9IG5ldyBGb3JtR3JvdXAoe1xyXG5cdFx0XHRidXNpbmVzc05hbWU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlclZhbHVlPy5idXNpbmVzc05hbWUgPz8gJycpLFxyXG5cdFx0XHRtZWRpdW06IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlclZhbHVlPy5tZWRpdW0gPz8gJycpLFxyXG5cdFx0XHR0ZW1wbGF0ZU5hbWU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlclZhbHVlPy50ZW1wbGF0ZU5hbWUgPz8gJycpLFxyXG5cdFx0XHRzdGF0dXM6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlclZhbHVlPy5zdGF0dXMgPz8gJycpLFxyXG5cdFx0XHRzdGFydERhdGU6IG5ldyBGb3JtQ29udHJvbCh0aGlzLmZpbHRlclZhbHVlPy5zdGFydERhdGUgPz8gJycpLFxyXG5cdFx0XHRlbmREYXRlOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5maWx0ZXJWYWx1ZT8uZW5kRGF0ZSA/PyAnJyksXHJcblx0XHR9KTtcclxuXHJcblx0XHRpZiAodGhpcy5maWx0ZXJWYWx1ZT8udGVtcGxhdGVOYW1lKVxyXG5cdFx0XHR0aGlzLnRlbXBsYXRlT3B0aW9uID0gW1xyXG5cdFx0XHRcdC4uLnRoaXMudGVtcGxhdGVPcHRpb24sXHJcblx0XHRcdFx0dGhpcy5maWx0ZXJWYWx1ZT8udGVtcGxhdGVOYW1lLFxyXG5cdFx0XHRdO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldEJ1c2luZXNzTmFtZU9wdGlvblNlcnZpY2UoKTogdm9pZCB7XHJcblx0XHRjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG5cdFx0XHQuZXhlY3V0ZUFwaVJlcXVlc3QoXHJcblx0XHRcdFx0W10sXHJcblx0XHRcdFx0Jy9hZG1pbi9jbGllbnQvYWxsLXdpdGgtY2hpbGQ/cGFnZU5vPTEmcm93UGVyUGFnZT0xMDAwJyxcclxuXHRcdFx0XHQnR0VUJ1xyXG5cdFx0XHQpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlczogQXBwUmVzcG9uc2U8Q2xpZW50RHRvW10+KSA9PiB7XHJcblx0XHRcdFx0dGhpcy5idXNpbmVzc05hbWVPcHRpb24gPSByZXMuZGF0YTtcclxuXHRcdFx0XHR0aGlzLmZpbHRlcmVkQnVzaW5lc3NOYW1lT3B0aW9uID0gWy4uLnRoaXMuYnVzaW5lc3NOYW1lT3B0aW9uXTtcclxuXHRcdFx0fSk7XHJcblxyXG5cdFx0dGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGdldFRlbXBsYXRlT3B0aW9uU2VydmljZShcclxuXHRcdGZpbHRlcjogc3RyaW5nID0gJycsXHJcblx0XHRpc0luZmluaXRlOiBib29sZWFuID0gZmFsc2VcclxuXHQpOiB2b2lkIHtcclxuXHRcdHRoaXMuaXNMb2FkaW5nVGVtcGxhdGVPcHRpb24gPSB0cnVlO1xyXG5cclxuXHRcdGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcblx0XHRcdHRoaXMuaW5pdFBhcmFtKCdwYWdlTm8nLCB0aGlzLnBhZ2VOb1RlbXBsYXRlT3B0aW9uLCAnbnVtYmVyJyksXHJcblx0XHRcdHRoaXMuaW5pdFBhcmFtKCdyb3dQZXJQYWdlJywgMjAsICdudW1iZXInKSxcclxuXHRcdFx0dGhpcy5pbml0UGFyYW0oJ3BsYXRmb3JtJywgdGhpcy5mb3JtLmdldCgnbWVkaXVtJykudmFsdWUsICdzdHJpbmcnKSxcclxuXHRcdFx0dGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG5cdFx0XHR0aGlzLmluaXRQYXJhbSgnc3RhdHVzJywgJ0FQUFJPVkVEJywgJ3N0cmluZycpLFxyXG5cdFx0XTtcclxuXHJcblx0XHRjb25zdCBzdWJzID0gdGhpcy5hcGlBZGFwdGVyU2VydmljZVxyXG5cdFx0XHQuZXhlY3V0ZUFwaVJlcXVlc3QocGFyYW1ldGVyTGlzdCwgJy9tZXNzYWdlL3RlbXBsYXRlJywgJ0dFVCcpXHJcblx0XHRcdC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPFRlbXBsYXRlV0FNb2RlbFtdPikgPT4ge1xyXG5cdFx0XHRcdHRoaXMudGVtcGxhdGVPcHRpb24gPSBpc0luZmluaXRlXHJcblx0XHRcdFx0XHQ/IFsuLi50aGlzLnRlbXBsYXRlT3B0aW9uLCAuLi5yZXNwLmRhdGFdXHJcblx0XHRcdFx0XHQ6IHJlc3AuZGF0YTtcclxuXHRcdFx0XHR0aGlzLmlzSGF2ZU5leHRUZW1wbGF0ZU9wdGlvbiA9IHJlc3AuaGF2ZU5leHQ7XHJcblx0XHRcdFx0dGhpcy5pc0xvYWRpbmdUZW1wbGF0ZU9wdGlvbiA9IGZhbHNlO1xyXG5cdFx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcblx0fVxyXG5cclxuXHRwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcblx0XHRyZXR1cm4ge1xyXG5cdFx0XHRuYW1lOiBfbmFtZSxcclxuXHRcdFx0dmFsdWU6IF92YWx1ZSxcclxuXHRcdFx0aW46ICdxdWVyeScsXHJcblx0XHRcdHR5cGU6IF90eXBlLFxyXG5cdFx0fTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBnZXROZXh0VGVtcGxhdGVCYXRjaCgpIHtcclxuXHRcdGlmICghdGhpcy5pc0hhdmVOZXh0VGVtcGxhdGVPcHRpb24pIHJldHVybjtcclxuXHJcblx0XHR0aGlzLnBhZ2VOb1RlbXBsYXRlT3B0aW9uICs9IDE7XHJcblx0XHR0aGlzLmdldFRlbXBsYXRlT3B0aW9uU2VydmljZSgnJywgdHJ1ZSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdGVtcGxhdGVTZWxlY3RlZERpc3BsYXkoXHJcblx0XHRhdHRyaWJ1dGUxOiBUZW1wbGF0ZVdBTW9kZWwsXHJcblx0XHRhdHRyaWJ1dGUyOiBUZW1wbGF0ZVdBTW9kZWxcclxuXHQpOiBzdHJpbmcge1xyXG5cdFx0cmV0dXJuIGF0dHJpYnV0ZTEgJiYgYXR0cmlidXRlMiAmJiBhdHRyaWJ1dGUxLm5hbWUgPT0gYXR0cmlidXRlMi5uYW1lXHJcblx0XHRcdD8gYCR7YXR0cmlidXRlMS5uYW1lfWBcclxuXHRcdFx0OiAnJztcclxuXHR9XHJcblxyXG5cdHB1YmxpYyB0ZW1wbGF0ZVNlYXJjaChzZWFyY2hWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHR0aGlzLnBhZ2VOb1RlbXBsYXRlT3B0aW9uID0gMTtcclxuXHRcdHRoaXMuZ2V0VGVtcGxhdGVPcHRpb25TZXJ2aWNlKHNlYXJjaFZhbHVlKTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBidXNpbmVzc05hbWVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0Y29uc3QgdmFsdWUgPSBzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZEJ1c2luZXNzTmFtZU9wdGlvbiA9IHRoaXMuYnVzaW5lc3NOYW1lT3B0aW9uLmZpbHRlcihvcHRpb24gPT5cclxuXHRcdFx0b3B0aW9uLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh2YWx1ZSlcclxuXHRcdCk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgY2hhbm5lbFNlYXJjaChzZWFyY2hWYWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcblx0XHRjb25zdCB2YWx1ZSA9IHNlYXJjaFZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcblx0XHR0aGlzLmZpbHRlcmVkQ2hhbm5lbE9wdGlvbiA9IHRoaXMuY2hhbm5lbE9wdGlvbi5maWx0ZXIob3B0aW9uID0+XHJcblx0XHRcdG9wdGlvbi5sYWJlbC50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHZhbHVlKVxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHB1YmxpYyBzdGF0dXNTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG5cdFx0Y29uc3QgdmFsdWUgPSBzZWFyY2hWYWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG5cdFx0dGhpcy5maWx0ZXJlZFN0YXR1c09wdGlvbiA9IHRoaXMuc3RhdHVzT3B0aW9uLmZpbHRlcihvcHRpb24gPT5cclxuXHRcdFx0b3B0aW9uLmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXModmFsdWUpXHJcblx0XHQpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIGNsZWFyRGF0ZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuZm9ybS5nZXQoJ3N0YXJ0RGF0ZScpLnNldFZhbHVlKG51bGwpO1xyXG5cdFx0dGhpcy5mb3JtLmdldCgnZW5kRGF0ZScpLnNldFZhbHVlKG51bGwpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIHZhbGlkYXRlQmFja0RhdGUoKTogdm9pZCB7XHJcblx0XHRpZiAobmV3IERhdGUodGhpcy5mb3JtLmdldCgnc3RhcnREYXRlJykudmFsdWUpLmdldFRpbWUoKSA+IG5ldyBEYXRlKHRoaXMuZm9ybS5nZXQoJ2VuZERhdGUnKS52YWx1ZSkuZ2V0VGltZSgpKVxyXG5cdFx0XHR0aGlzLmZvcm0uZ2V0KCdlbmREYXRlJykuc2V0VmFsdWUoJycpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIG9uUmVzZXQoKTogdm9pZCB7XHJcblx0XHR0aGlzLmZvcm0ucmVzZXQoKTtcclxuXHRcdHRoaXMub25DaGFuZ2VGaWx0ZXIuZW1pdCh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSk7XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XHJcblx0XHR0aGlzLmNsb3NlRHJvcGRvd24uZW1pdCgpO1xyXG5cdH1cclxuXHJcblx0cHVibGljIG9uQXBwbHkoKTogdm9pZCB7XHJcblx0XHR0aGlzLm9uQ2hhbmdlRmlsdGVyLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xyXG5cdFx0dGhpcy5jbG9zZURyb3Bkb3duLmVtaXQoKTtcclxuXHR9XHJcblxyXG5cdG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKGVhY2ggPT4gZWFjaC51bnN1YnNjcmliZSgpKTtcclxuXHR9XHJcbn1cclxuIl19
@@ -229,11 +229,11 @@ let NewNumberBasesComponent = class NewNumberBasesComponent {
229
229
  }
230
230
  onFileSelected(event) {
231
231
  const file = event.target.files;
232
- const MAXIMUM_SIZE = 10 * 1024 * 1024;
232
+ const MAXIMUM_SIZE = 30 * 1024 * 1024;
233
233
  if (file.length === 0)
234
234
  return;
235
235
  if (file[0].size > MAXIMUM_SIZE) {
236
- this.toastr.error('Upload media failed, max size 10mb');
236
+ this.toastr.error('Upload media failed, max size 30mb');
237
237
  return;
238
238
  }
239
239
  // this.uploadMediaService(file[0]);
@@ -320,4 +320,4 @@ NewNumberBasesComponent = __decorate([
320
320
  })
321
321
  ], NewNumberBasesComponent);
322
322
  export { NewNumberBasesComponent };
323
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RCxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWdDaEMsWUFDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxF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QyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDSixDQUFBOztZQXZXa0Msd0JBQXdCO1lBQ25DLGFBQWE7O0FBaENqQztJQURDLE1BQU0sRUFBRTsrREFNTjtBQXFCTTtJQUFSLEtBQUssRUFBRTsrREFBZ0M7QUFFcEI7SUFBbkIsU0FBUyxDQUFDLE9BQU8sQ0FBQzt3REFBa0I7QUE5QjVCLHVCQUF1QjtJQUxuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLHl0SkFBZ0Q7O0tBRW5ELENBQUM7R0FDVyx1QkFBdUIsQ0F3WW5DO1NBeFlZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1hZGFwdGVyLXNlcnZpY2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBwUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1kdG8vcmVzcG9uc2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGRvd25sb2FkQmxvYkZpbGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWwnO1xyXG5pbXBvcnQgeyBDb250YWN0Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9jYW1wYWlnbi1pbmRleC9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctbnVtYmVyLWJhc2VzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld051bWJlckJhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2U6IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHN0cmluZ1tdO1xyXG4gICAgICAgIG51bWJlckNvdW50OiBudW1iZXI7XHJcbiAgICAgICAgaXNVcGxvYWQ6IGJvb2xlYW47XHJcbiAgICAgICAgZmlsZTogYW55O1xyXG4gICAgfT47XHJcblxyXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZU1vZGVsO1xyXG4gICAgcHVibGljIGlzVXBsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNTaG93VXBsb2FkQ1NWOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY2F0ZWdvcnlTZWxlY3RlZDogQ29udGFjdENhdGVnb3J5TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxDb250YWN0Q2F0ZWdvcnlNb2RlbD4odHJ1ZSwgW10pO1xyXG4gICAgcHVibGljIGV4dEZpbGVBY2NlcHRlZDogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcclxuICAgICAgICAnLmNzdicsXHJcbiAgICBdO1xyXG4gICAgcHVibGljIGZpbGVTZWxlY3RlZDoge1xyXG4gICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICB0YXJnZXRVUkw6IHN0cmluZztcclxuICAgIH0gPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgY2F0ZWdvcnlQYXJhbTogSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWw7XHJcbiAgICBwcml2YXRlIHN1YnNjcmliZXJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlYWRPbmx5TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKE1hdFNvcnQpIG1hdFNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhcGlBZGFwdGVyU2VydmljZTogQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlQYXJhbSA9IG5ldyBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbCgpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRUYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiBbXSxcclxuICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5pc1VwbG9hZCxcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFRhYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUgPSBuZXcgVGFibGVNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMudGFibGUubGFiZWxzID0gW1xyXG4gICAgICAgICAgICAnc2VsZWN0JyxcclxuICAgICAgICAgICAgJ0NhdGVnb3J5JyxcclxuICAgICAgICAgICAgJ05vLiBPZiBDdXN0b21lcicsXHJcbiAgICAgICAgICAgICdDcmVhdGVkIERhdGUnLFxyXG4gICAgICAgICAgICAnVXBkYXRlZCBEYXRlJyxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMudGFibGUuY29sdW1ucyA9IFsnc2VsZWN0JywgJ25hbWUnLCAndG90YWxNZW1iZXJzJywgJ2NyZWF0ZWREYXRlJywgJ3VwZGF0ZWREYXRlJ107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldENhbXBhaWduU3RvcmFnZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKVxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJykpXHJcbiAgICAgICAgICAgIDoge307XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RWRpdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoT2JqZWN0LmVudHJpZXModGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UpLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlzU2hvd1VwbG9hZENTViA9IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkO1xyXG5cclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/LmZvckVhY2goKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tlZCh0cnVlLCBlYWNoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhdGVnb3J5TGlzdChmaWx0ZXI6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VTaXplID0gMTAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BhZ2VObycsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlTm8sICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3Jvd1BlclBhZ2UnLCB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUsICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0gPT09ICdMSU5FJylcclxuICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAgICAgJ2FjY291bnRJZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uZnJvbT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkT25seU1vZGUpIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnc3VtbWFyeScsIHRydWUsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2FkbWluL2NhdGVnb3J5JywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPENvbnRhY3RDYXRlZ29yeU1vZGVsW10+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhID0gcmVzcC5kYXRhPy5maWx0ZXIoKGVhY2gpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNldE5leHRQYWdlKHJlc3AuaGF2ZU5leHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogX25hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWUsXHJcbiAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICB0eXBlOiBfdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdChzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVBhZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLnBhZ2VTaXplICE9PSBldmVudD8ucGFnZVNpemUpIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSA/IHRoaXMudGFibGUucGFnZSA6IGV2ZW50Py5wYWdlSW5kZXggKyAxO1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgPSBldmVudD8ucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplO1xyXG5cclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja2JveExhYmVsKHJvdz86IENvbnRhY3RDYXRlZ29yeU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSByb3cgJHtyb3cubmFtZSArIDF9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHQpID0+IHQuaWQgPT09IGRhdGEuaWQpLmxlbmd0aCA+IDApIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoaXNDaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrZWQoaXNDaGVja2VkOiBib29sZWFuLCByb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoLi4udGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZmlsdGVyKCh4KSA9PiB4LmlkID09PSByb3cuaWQpKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2hlY2tlZChyb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maW5kKCh4KSA9PiB4LmlkID09PSByb3cuaWQpO1xyXG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Eb3dubG9hZFNhbXBsZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAncGxhdGZvcm0nLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8udGVtcGxhdGU/LnBsYXRmb3JtLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVOYW1lJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVMYW5nJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5sYW5nLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkPy5tYXAoKHQpID0+IHQuaWQpLmpvaW4oKSA/PyBbXSxcclxuICAgICAgICAgICAgICAgICdzdHJpbmcnXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvbWVzc2FnZS9idWxrdXBsb2FkL3RlbXBsYXRlJywgJ0dFVCcsIHRydWUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkQmxvYkZpbGUocmVzcCwgJ1NhbXBsZS1VcGxvYWRQYXJhbWV0ZXIueGxzeCcpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBmaWxlOiBGaWxlTGlzdCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XHJcbiAgICAgICAgY29uc3QgTUFYSU1VTV9TSVpFID0gMTAgKiAxMDI0ICogMTAyNDtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChmaWxlWzBdLnNpemUgPiBNQVhJTVVNX1NJWkUpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VwbG9hZCBtZWRpYSBmYWlsZWQsIG1heCBzaXplIDEwbWInKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy51cGxvYWRNZWRpYVNlcnZpY2UoZmlsZVswXSk7XHJcbiAgICAgICAgdGhpcy5nZXRQcmVzaWduZWRVcmxTZXJ2aWNlKGZpbGVbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJlc2lnbmVkVXJsU2VydmljZShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1VwbG9hZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVOYW1lJywgdmFsdWU6IGZpbGUubmFtZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVUeXBlJywgdmFsdWU6IGZpbGUudHlwZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvY2FtcGFpZ24vdXBsb2FkL3ByZS1zaWduZWQtdXJsJywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwICYmIHJlc3AuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFRvUzNTZXJ2aWNlKGZpbGUsIHJlc3AuZGF0YS51cmwsIHJlc3AuZGF0YS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzVXBsb2FkID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwbG9hZFRvUzNTZXJ2aWNlKGZpbGU6IEZpbGUsIHMzVXJsOiBzdHJpbmcsIGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBpQWRhcHRlclNlcnZpY2UudXBsb2FkRmlsZVRvUzMoczNVcmwsIGZpbGUpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzMpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwbG9hZGluZyB0byBTMyBzdG9yYWdlJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTMyBVcGxvYWQgRXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNhbXBhaWduSWQgPSB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZDtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyBmaWxlTmFtZTogZmlsZU5hbWVTMyB9LFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsIGAvY2FtcGFpZ24vJHtjYW1wYWlnbklkfS90YXJnZXRmaWxlYCwgJ1BPU1QnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3ApIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuaW5mbygnVXBsb2FkIFhMU1ggaGFzIGJlZW4gdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VwbG9hZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVXBsb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlTmFtZVMzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiByZXNwLmRhdGE/LnRhcmdldFVSTCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1VwbG9hZCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKChlYWNoKSA9PiBlYWNoLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
323
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LW51bWJlci1iYXNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2NhbXBhaWduLW1hbmFnZW1lbnQvbW9kdWxlcy9uZXctY2FtcGFpZ24vbmV3LW51bWJlci1iYXNlcy9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFDSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3JFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXpELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQU96RCxJQUFhLHVCQUF1QixHQUFwQyxNQUFhLHVCQUF1QjtJQWdDaEMsWUFDWSxpQkFBMkMsRUFDM0MsTUFBcUI7UUFEckIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEwQjtRQUMzQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBeEIxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0Isb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMscUJBQWdCLEdBQTJCLEVBQUUsQ0FBQztRQUM5QyxjQUFTLEdBQUcsSUFBSSxjQUFjLENBQXVCLElBQUksRUFBRSxF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QyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7Q0FDSixDQUFBOztZQXZXa0Msd0JBQXdCO1lBQ25DLGFBQWE7O0FBaENqQztJQURDLE1BQU0sRUFBRTsrREFNTjtBQXFCTTtJQUFSLEtBQUssRUFBRTsrREFBZ0M7QUFFcEI7SUFBbkIsU0FBUyxDQUFDLE9BQU8sQ0FBQzt3REFBa0I7QUE5QjVCLHVCQUF1QjtJQUxuQyxTQUFTLENBQUM7UUFDUCxRQUFRLEVBQUUsc0JBQXNCO1FBQ2hDLHl0SkFBZ0Q7O0tBRW5ELENBQUM7R0FDVyx1QkFBdUIsQ0F3WW5DO1NBeFlZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlbGVjdGlvbk1vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvbGxlY3Rpb25zJztcclxuaW1wb3J0IHtcclxuICAgIENvbXBvbmVudCxcclxuICAgIEV2ZW50RW1pdHRlcixcclxuICAgIElucHV0LFxyXG4gICAgT25EZXN0cm95LFxyXG4gICAgT25Jbml0LFxyXG4gICAgT3V0cHV0LFxyXG4gICAgVmlld0NoaWxkLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRTb3J0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IFRvYXN0clNlcnZpY2UgfSBmcm9tICduZ3gtdG9hc3RyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEh0dHBCb2R5UmVxUGFnaW5hdGlvbk1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBQYXJhbWV0ZXIgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1hZGFwdGVyLXNlcnZpY2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBwUmVzcG9uc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL21vZGVscy91dGlsL2FwaS1kdG8vcmVzcG9uc2UtbW9kZWxzJztcclxuaW1wb3J0IHsgQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IGRvd25sb2FkQmxvYkZpbGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWwnO1xyXG5pbXBvcnQgeyBDb250YWN0Q2F0ZWdvcnlNb2RlbCB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IFRhYmxlTW9kZWwgfSBmcm9tICcuLi8uLi9jYW1wYWlnbi1pbmRleC9tb2RlbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi1uZXctbnVtYmVyLWJhc2VzJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9uZXctbnVtYmVyLWJhc2VzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL25ldy1udW1iZXItYmFzZXMuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE5ld051bWJlckJhc2VzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQE91dHB1dCgpXHJcbiAgICBwdWJsaWMgdGFyZ2V0QXVkaWVuY2U6IEV2ZW50RW1pdHRlcjx7XHJcbiAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHN0cmluZ1tdO1xyXG4gICAgICAgIG51bWJlckNvdW50OiBudW1iZXI7XHJcbiAgICAgICAgaXNVcGxvYWQ6IGJvb2xlYW47XHJcbiAgICAgICAgZmlsZTogYW55O1xyXG4gICAgfT47XHJcblxyXG4gICAgcHVibGljIHRhYmxlOiBUYWJsZU1vZGVsO1xyXG4gICAgcHVibGljIGlzVXBsb2FkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgaXNTaG93VXBsb2FkQ1NWOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICBwdWJsaWMgY2F0ZWdvcnlTZWxlY3RlZDogQ29udGFjdENhdGVnb3J5TW9kZWxbXSA9IFtdO1xyXG4gICAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBTZWxlY3Rpb25Nb2RlbDxDb250YWN0Q2F0ZWdvcnlNb2RlbD4odHJ1ZSwgW10pO1xyXG4gICAgcHVibGljIGV4dEZpbGVBY2NlcHRlZDogc3RyaW5nW10gPSBbXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXHJcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcclxuICAgICAgICAnLmNzdicsXHJcbiAgICBdO1xyXG4gICAgcHVibGljIGZpbGVTZWxlY3RlZDoge1xyXG4gICAgICAgIG5hbWU6IHN0cmluZztcclxuICAgICAgICB0YXJnZXRVUkw6IHN0cmluZztcclxuICAgIH0gPSBudWxsO1xyXG5cclxuICAgIHByaXZhdGUgY2F0ZWdvcnlQYXJhbTogSHR0cEJvZHlSZXFQYWdpbmF0aW9uTW9kZWw7XHJcbiAgICBwcml2YXRlIHN1YnNjcmliZXJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc1JlYWRPbmx5TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgICBAVmlld0NoaWxkKE1hdFNvcnQpIG1hdFNvcnQ6IE1hdFNvcnQ7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBhcGlBZGFwdGVyU2VydmljZTogQXBpQWRhcHRlclNlcnZpY2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdG9hc3RyOiBUb2FzdHJTZXJ2aWNlXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlQYXJhbSA9IG5ldyBIdHRwQm9keVJlcVBhZ2luYXRpb25Nb2RlbCgpO1xyXG5cclxuICAgICAgICB0aGlzLmluaXRUYWJsZSgpO1xyXG4gICAgICAgIHRoaXMuZ2V0Q2F0ZWdvcnlMaXN0KCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFyZ2V0QXVkaWVuY2UuZW1pdCh7XHJcbiAgICAgICAgICAgIHRhcmdldEF1ZGllbmNlOiBbXSxcclxuICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5pc1VwbG9hZCxcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFRhYmxlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUgPSBuZXcgVGFibGVNb2RlbCgpO1xyXG4gICAgICAgIHRoaXMudGFibGUubGFiZWxzID0gW1xyXG4gICAgICAgICAgICAnc2VsZWN0JyxcclxuICAgICAgICAgICAgJ0NhdGVnb3J5JyxcclxuICAgICAgICAgICAgJ05vLiBPZiBDdXN0b21lcicsXHJcbiAgICAgICAgICAgICdDcmVhdGVkIERhdGUnLFxyXG4gICAgICAgICAgICAnVXBkYXRlZCBEYXRlJyxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHRoaXMudGFibGUuY29sdW1ucyA9IFsnc2VsZWN0JywgJ25hbWUnLCAndG90YWxNZW1iZXJzJywgJ2NyZWF0ZWREYXRlJywgJ3VwZGF0ZWREYXRlJ107XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGdldENhbXBhaWduU3RvcmFnZSgpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgndGVsaW4uY2FtcGFpZ24nKVxyXG4gICAgICAgICAgICA/IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RlbGluLmNhbXBhaWduJykpXHJcbiAgICAgICAgICAgIDoge307XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0RWRpdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoT2JqZWN0LmVudHJpZXModGhpcy5nZXRDYW1wYWlnblN0b3JhZ2UpLmxlbmd0aCA9PT0gMCkgcmV0dXJuO1xyXG5cclxuICAgICAgICB0aGlzLmlzU2hvd1VwbG9hZENTViA9IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LmlzVXBsb2FkO1xyXG5cclxuICAgICAgICB0aGlzLmZpbGVTZWxlY3RlZCA9IHtcclxuICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/LmZvckVhY2goKGVhY2gpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZCkpXHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tlZCh0cnVlLCBlYWNoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhdGVnb3J5TGlzdChmaWx0ZXI6IHN0cmluZyA9ICcnKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VTaXplID0gMTAwMDtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3BhZ2VObycsIHRoaXMuY2F0ZWdvcnlQYXJhbS5wYWdlTm8sICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ3Jvd1BlclBhZ2UnLCB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUsICdudW1iZXInKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oJ2ZpbHRlcicsIGZpbHRlciwgJ3N0cmluZycpLFxyXG4gICAgICAgICAgICB0aGlzLmluaXRQYXJhbShcclxuICAgICAgICAgICAgICAgICdwbGF0Zm9ybScsXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0sXHJcbiAgICAgICAgICAgICAgICAnc3RyaW5nJ1xyXG4gICAgICAgICAgICApLFxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5mb3JtPy5tZWRpdW0gPT09ICdMSU5FJylcclxuICAgICAgICAgICAgcGFyYW1ldGVyTGlzdC5wdXNoKFxyXG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAgICAgJ2FjY291bnRJZCcsXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8uZnJvbT8uaWQsXHJcbiAgICAgICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgICAgIClcclxuICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaXNSZWFkT25seU1vZGUpIHBhcmFtZXRlckxpc3QucHVzaCh0aGlzLmluaXRQYXJhbSgnc3VtbWFyeScsIHRydWUsICdzdHJpbmcnKSk7XHJcblxyXG4gICAgICAgIGNvbnN0IHN1YnMgPSB0aGlzLmFwaUFkYXB0ZXJTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5leGVjdXRlQXBpUmVxdWVzdChwYXJhbWV0ZXJMaXN0LCAnL2FkbWluL2NhdGVnb3J5JywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPENvbnRhY3RDYXRlZ29yeU1vZGVsW10+KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1JlYWRPbmx5TW9kZSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhID0gcmVzcC5kYXRhPy5maWx0ZXIoKGVhY2gpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZT8uaW5jbHVkZXMoZWFjaC5pZClcclxuICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnRhYmxlLmRhdGFTb3VyY2UuZGF0YTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEgPSByZXNwLmRhdGE7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRhYmxlLnNldE5leHRQYWdlKHJlc3AuaGF2ZU5leHQpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgIHRoaXMuaW5pdEVkaXQoKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRQYXJhbShfbmFtZTogc3RyaW5nLCBfdmFsdWU6IGFueSwgX3R5cGU6IHN0cmluZyk6IFBhcmFtZXRlciB7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgbmFtZTogX25hbWUsXHJcbiAgICAgICAgICAgIHZhbHVlOiBfdmFsdWUsXHJcbiAgICAgICAgICAgIGluOiAncXVlcnknLFxyXG4gICAgICAgICAgICB0eXBlOiBfdHlwZSxcclxuICAgICAgICB9O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVTZWFyY2goc2VhcmNoVmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdChzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZVBhZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnRhYmxlLnBhZ2VTaXplICE9PSBldmVudD8ucGFnZVNpemUpIHRoaXMudGFibGUucmVzZXRQYWdlKCk7XHJcblxyXG4gICAgICAgIHRoaXMudGFibGUucGFnZSA9XHJcbiAgICAgICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgIT09IGV2ZW50Py5wYWdlU2l6ZSA/IHRoaXMudGFibGUucGFnZSA6IGV2ZW50Py5wYWdlSW5kZXggKyAxO1xyXG4gICAgICAgIHRoaXMudGFibGUucGFnZVNpemUgPSBldmVudD8ucGFnZVNpemU7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVBhcmFtLnBhZ2VObyA9IHRoaXMudGFibGUucGFnZTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5UGFyYW0ucGFnZVNpemUgPSB0aGlzLnRhYmxlLnBhZ2VTaXplO1xyXG5cclxuICAgICAgICB0aGlzLmdldENhdGVnb3J5TGlzdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzb3J0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5zb3J0ID0gdGhpcy5tYXRTb3J0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjaGVja2JveExhYmVsKHJvdz86IENvbnRhY3RDYXRlZ29yeU1vZGVsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJvdykgcmV0dXJuIGAke3RoaXMuaXNBbGxTZWxlY3RlZCgpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSBhbGxgO1xyXG5cclxuICAgICAgICByZXR1cm4gYCR7dGhpcy5zZWxlY3Rpb24uaXNTZWxlY3RlZChyb3cpID8gJ2Rlc2VsZWN0JyA6ICdzZWxlY3QnfSByb3cgJHtyb3cubmFtZSArIDF9YDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNBbGxTZWxlY3RlZCgpIHtcclxuICAgICAgICBjb25zdCBudW1TZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkLmxlbmd0aDtcclxuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGE/Lmxlbmd0aCA/PyAwO1xyXG5cclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhICYmXHJcbiAgICAgICAgICAgIHRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhLmxlbmd0aCA+IDAgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQgJiZcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoID4gMFxyXG4gICAgICAgICkge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IGRhdGEgb2YgdGhpcy50YWJsZS5kYXRhU291cmNlLmRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maWx0ZXIoKHQpID0+IHQuaWQgPT09IGRhdGEuaWQpLmxlbmd0aCA+IDApIGNvbnRpbnVlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG51bVNlbGVjdGVkID09PSBudW1Sb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBtYXN0ZXJUb2dnbGUoaXNDaGVja2VkOiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gW107XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IFtdLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IDAsXHJcbiAgICAgICAgICAgICAgICBpc1VwbG9hZDogdGhpcy5pc1Nob3dVcGxvYWRDU1YsXHJcbiAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRVUkw6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/LnRhcmdldFVSTCxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0KC4uLnRoaXMudGFibGUuZGF0YVNvdXJjZS5kYXRhKTtcclxuICAgICAgICB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZDtcclxuXHJcbiAgICAgICAgdGhpcy50YXJnZXRBdWRpZW5jZS5lbWl0KHtcclxuICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICBudW1iZXJDb3VudDogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLnJlZHVjZSgoc3VtLCB4KSA9PiBzdW0gKyB4LnRvdGFsTWVtYmVycywgMCksXHJcbiAgICAgICAgICAgIGlzVXBsb2FkOiB0aGlzLmlzU2hvd1VwbG9hZENTVixcclxuICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8ubmFtZSxcclxuICAgICAgICAgICAgICAgIHRhcmdldFVSTDogdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LnRhcmdldEF1ZGllbmNlRmlsZT8udGFyZ2V0VVJMLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkNoZWNrZWQoaXNDaGVja2VkOiBib29sZWFuLCByb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgaWYgKCFpc0NoZWNrZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uZGVzZWxlY3QoLi4udGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZmlsdGVyKCh4KSA9PiB4LmlkID09PSByb3cuaWQpKTtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQ7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0QXVkaWVuY2U6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5tYXAoKHQpID0+IHQuaWQpLFxyXG4gICAgICAgICAgICAgICAgbnVtYmVyQ291bnQ6IHRoaXMuY2F0ZWdvcnlTZWxlY3RlZC5yZWR1Y2UoKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsIDApLFxyXG4gICAgICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICAgICAgZmlsZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy50YXJnZXRBdWRpZW5jZUZpbGU/Lm5hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpO1xyXG4gICAgICAgIHRoaXMuY2F0ZWdvcnlTZWxlY3RlZCA9IHRoaXMuc2VsZWN0aW9uLnNlbGVjdGVkO1xyXG5cclxuICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKChzdW0sIHgpID0+IHN1bSArIHgudG90YWxNZW1iZXJzLCAwKSxcclxuICAgICAgICAgICAgaXNVcGxvYWQ6IHRoaXMuaXNTaG93VXBsb2FkQ1NWLFxyXG4gICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8udGFyZ2V0QXVkaWVuY2VGaWxlPy50YXJnZXRVUkwsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ2hlY2tlZChyb3c6IENvbnRhY3RDYXRlZ29yeU1vZGVsKSB7XHJcbiAgICAgICAgY29uc3QgZm91bmQgPSB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5maW5kKCh4KSA9PiB4LmlkID09PSByb3cuaWQpO1xyXG4gICAgICAgIHJldHVybiBmb3VuZCA/IHRydWUgOiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgb25Eb3dubG9hZFNhbXBsZVNlcnZpY2UoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1ldGVyTGlzdDogQXJyYXk8UGFyYW1ldGVyPiA9IFtcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAncGxhdGZvcm0nLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDYW1wYWlnblN0b3JhZ2U/LmdlbmVyYWxJbmZvcm1hdGlvbj8uZm9ybT8udGVtcGxhdGU/LnBsYXRmb3JtLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVOYW1lJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5uYW1lLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAndGVtcGxhdGVMYW5nJyxcclxuICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q2FtcGFpZ25TdG9yYWdlPy5nZW5lcmFsSW5mb3JtYXRpb24/LmZvcm0/LnRlbXBsYXRlPy5sYW5nLFxyXG4gICAgICAgICAgICAgICAgJ3N0cmluZydcclxuICAgICAgICAgICAgKSxcclxuICAgICAgICAgICAgdGhpcy5pbml0UGFyYW0oXHJcbiAgICAgICAgICAgICAgICAnY2F0ZWdvcnknLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVNlbGVjdGVkPy5tYXAoKHQpID0+IHQuaWQpLmpvaW4oKSA/PyBbXSxcclxuICAgICAgICAgICAgICAgICdzdHJpbmcnXHJcbiAgICAgICAgICAgICksXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvbWVzc2FnZS9idWxrdXBsb2FkL3RlbXBsYXRlJywgJ0dFVCcsIHRydWUpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgIGRvd25sb2FkQmxvYkZpbGUocmVzcCwgJ1NhbXBsZS1VcGxvYWRQYXJhbWV0ZXIueGxzeCcpO1xyXG4gICAgICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5wdXNoKHN1YnMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBvbkZpbGVTZWxlY3RlZChldmVudDogRXZlbnQpIHtcclxuICAgICAgICBjb25zdCBmaWxlOiBGaWxlTGlzdCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuZmlsZXM7XHJcbiAgICAgICAgY29uc3QgTUFYSU1VTV9TSVpFID0gMzAgKiAxMDI0ICogMTAyNDtcclxuXHJcbiAgICAgICAgaWYgKGZpbGUubGVuZ3RoID09PSAwKSByZXR1cm47XHJcblxyXG4gICAgICAgIGlmIChmaWxlWzBdLnNpemUgPiBNQVhJTVVNX1NJWkUpIHtcclxuICAgICAgICAgICAgdGhpcy50b2FzdHIuZXJyb3IoJ1VwbG9hZCBtZWRpYSBmYWlsZWQsIG1heCBzaXplIDMwbWInKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gdGhpcy51cGxvYWRNZWRpYVNlcnZpY2UoZmlsZVswXSk7XHJcbiAgICAgICAgdGhpcy5nZXRQcmVzaWduZWRVcmxTZXJ2aWNlKGZpbGVbMF0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UHJlc2lnbmVkVXJsU2VydmljZShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1VwbG9hZCA9IHRydWU7XHJcblxyXG4gICAgICAgIGNvbnN0IHBhcmFtZXRlckxpc3Q6IEFycmF5PFBhcmFtZXRlcj4gPSBbXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVOYW1lJywgdmFsdWU6IGZpbGUubmFtZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgICAgIHsgbmFtZTogJ2ZpbGVUeXBlJywgdmFsdWU6IGZpbGUudHlwZSwgaW46ICdxdWVyeScsIHR5cGU6ICdzdHJpbmcnIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsICcvY2FtcGFpZ24vdXBsb2FkL3ByZS1zaWduZWQtdXJsJywgJ0dFVCcpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAocmVzcDogQXBwUmVzcG9uc2U8YW55PikgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXNwICYmIHJlc3AuZGF0YSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwbG9hZFRvUzNTZXJ2aWNlKGZpbGUsIHJlc3AuZGF0YS51cmwsIHJlc3AuZGF0YS5maWxlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICgpID0+ICh0aGlzLmlzVXBsb2FkID0gZmFsc2UpXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaWJlcnMucHVzaChzdWJzKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwbG9hZFRvUzNTZXJ2aWNlKGZpbGU6IEZpbGUsIHMzVXJsOiBzdHJpbmcsIGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuYXBpQWRhcHRlclNlcnZpY2UudXBsb2FkRmlsZVRvUzMoczNVcmwsIGZpbGUpLnN1YnNjcmliZShcclxuICAgICAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5maW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzMpO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ci5lcnJvcignRmFpbGVkIHVwbG9hZGluZyB0byBTMyBzdG9yYWdlJyk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmlzVXBsb2FkID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCdTMyBVcGxvYWQgRXJyb3I6JywgZXJyKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmaW5hbGl6ZVRhcmdldEZpbGVTZXJ2aWNlKGZpbGVOYW1lUzM6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGNhbXBhaWduSWQgPSB0aGlzLmdldENhbXBhaWduU3RvcmFnZT8uZ2VuZXJhbEluZm9ybWF0aW9uPy5pZDtcclxuICAgICAgICBjb25zdCBwYXJhbWV0ZXJMaXN0OiBBcnJheTxQYXJhbWV0ZXI+ID0gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiAnYm9keScsXHJcbiAgICAgICAgICAgICAgICB2YWx1ZTogeyBmaWxlTmFtZTogZmlsZU5hbWVTMyB9LFxyXG4gICAgICAgICAgICAgICAgaW46ICdib2R5JyxcclxuICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxyXG4gICAgICAgICAgICAgICAgd2l0aG91dEtleURhdGE6IHRydWUsXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgY29uc3Qgc3VicyA9IHRoaXMuYXBpQWRhcHRlclNlcnZpY2VcclxuICAgICAgICAgICAgLmV4ZWN1dGVBcGlSZXF1ZXN0KHBhcmFtZXRlckxpc3QsIGAvY2FtcGFpZ24vJHtjYW1wYWlnbklkfS90YXJnZXRmaWxlYCwgJ1BPU1QnKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgICAgICAgICAgKHJlc3A6IEFwcFJlc3BvbnNlPGFueT4pID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3ApIHJldHVybjtcclxuXHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2FzdHIuaW5mbygnVXBsb2FkIFhMU1ggaGFzIGJlZW4gdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1VwbG9hZCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldEF1ZGllbmNlLmVtaXQoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRBdWRpZW5jZTogdGhpcy5jYXRlZ29yeVNlbGVjdGVkLm1hcCgodCkgPT4gdC5pZCksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG51bWJlckNvdW50OiB0aGlzLmNhdGVnb3J5U2VsZWN0ZWQucmVkdWNlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN1bSwgeCkgPT4gc3VtICsgeC50b3RhbE1lbWJlcnMsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAwXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzVXBsb2FkOiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlTmFtZVMzLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0VVJMOiByZXNwLmRhdGE/LnRhcmdldFVSTCB8fCAnJyxcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAoKSA9PiAodGhpcy5pc1VwbG9hZCA9IGZhbHNlKVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICB0aGlzLnN1YnNjcmliZXJzLnB1c2goc3Vicyk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVycy5mb3JFYWNoKChlYWNoKSA9PiBlYWNoLnVuc3Vic2NyaWJlKCkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -28,14 +28,14 @@ else if (origin.includes('dashboard-qa')) {
28
28
  }
29
29
  // 4. Cek Demo Dev secara spesifik
30
30
  else if (origin.includes('demo-dev')) {
31
- API_CONST = 'https://apibsp-dev.adlsandbox.net';
31
+ API_CONST = 'https://api-staging.neuapix.com';
32
32
  }
33
33
  // 5. Default (Localhost atau lainnya)
34
34
  else {
35
- API_CONST = 'https://apibsp-dev.adlsandbox.net';
35
+ API_CONST = 'https://api-staging.neuapix.com';
36
36
  }
37
37
  export var environment = {
38
38
  production: false,
39
39
  api: API_CONST,
40
40
  };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUV0QixxREFBcUQ7QUFDckQsMENBQTBDO0FBQzFDLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsZ0VBQWdFO0FBQ2hFLG1EQUFtRDtBQUNuRCxnRUFBZ0U7QUFDaEUsb0RBQW9EO0FBQ3BELHdEQUF3RDtBQUV4RCwrQkFBK0I7QUFDL0Isc0JBQXNCO0FBQ3RCLG1CQUFtQjtBQUNuQixLQUFLO0FBQ0wsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ25CLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFFL0Isb0JBQW9CO0FBQ3BCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO0lBQzFDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztDQUN6QztBQUNELGlCQUFpQjtLQUNaLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQzNDLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztDQUNqRDtBQUNELFlBQVk7S0FDUCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDdEMsU0FBUyxHQUFHLGtDQUFrQyxDQUFDO0NBQ2xEO0FBQ0Qsa0NBQWtDO0tBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUNsQyxTQUFTLEdBQUcsbUNBQW1DLENBQUM7Q0FDbkQ7QUFDRCxzQ0FBc0M7S0FDakM7SUFDRCxTQUFTLEdBQUcsbUNBQW1DLENBQUM7Q0FDbkQ7QUFFRCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDdkIsVUFBVSxFQUFFLEtBQUs7SUFDakIsR0FBRyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGxldCBBUElfQ09OU1QgPSAnJztcclxuXHJcbi8vIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLm5ldWFwaXguY29tJztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkYXNoYm9hcmQtc3RhZ2luZy5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG4vLyBlbHNlIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYS5hZGxzYW5kYm94JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpYnNwLXFhLmFkbHNhbmRib3gubmV0JztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldi5hZGxzYW5kYm94Lm5ldCcpKVxyXG4vLyBcdEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG4vLyBlbHNlIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xyXG4vLyBcdHByb2R1Y3Rpb246IGZhbHNlLFxyXG4vLyBcdGFwaTogQVBJX0NPTlNULFxyXG4vLyB9O1xyXG5sZXQgQVBJX0NPTlNUID0gJyc7XHJcbmNvbnN0IG9yaWdpbiA9IGxvY2F0aW9uLm9yaWdpbjtcclxuXHJcbi8vIDEuIENlayBQcm9kdWN0aW9uXHJcbmlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4LmNvbScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGkubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDIuIENlayBTdGFnaW5nXHJcbmVsc2UgaWYgKG9yaWdpbi5pbmNsdWRlcygnZGFzaGJvYXJkLXN0YWdpbmcnKSkge1xyXG4gICAgQVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDMuIENlayBRQVxyXG5lbHNlIGlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtcWEuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcbi8vIDQuIENlayBEZW1vIERldiBzZWNhcmEgc3Blc2lmaWtcclxuZWxzZSBpZiAob3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldicpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtZGV2LmFkbHNhbmRib3gubmV0JztcclxufVxyXG4vLyA1LiBEZWZhdWx0IChMb2NhbGhvc3QgYXRhdSBsYWlubnlhKVxyXG5lbHNlIHtcclxuICAgIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgZW52aXJvbm1lbnQgPSB7XHJcbiAgICBwcm9kdWN0aW9uOiBmYWxzZSxcclxuICAgIGFwaTogQVBJX0NPTlNULFxyXG59O1xyXG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRsZmUvY2FtcGFpZ24tbWFuYWdlbWVudC1saWJyYXJ5LyIsInNvdXJjZXMiOlsiZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNCQUFzQjtBQUV0QixxREFBcUQ7QUFDckQsMENBQTBDO0FBQzFDLGtFQUFrRTtBQUNsRSxrREFBa0Q7QUFDbEQsZ0VBQWdFO0FBQ2hFLG1EQUFtRDtBQUNuRCxnRUFBZ0U7QUFDaEUsb0RBQW9EO0FBQ3BELHdEQUF3RDtBQUV4RCwrQkFBK0I7QUFDL0Isc0JBQXNCO0FBQ3RCLG1CQUFtQjtBQUNuQixLQUFLO0FBQ0wsSUFBSSxTQUFTLEdBQUcsRUFBRSxDQUFDO0FBQ25CLElBQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFFL0Isb0JBQW9CO0FBQ3BCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFO0lBQzFDLFNBQVMsR0FBRyx5QkFBeUIsQ0FBQztDQUN6QztBQUNELGlCQUFpQjtLQUNaLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFO0lBQzNDLFNBQVMsR0FBRyxpQ0FBaUMsQ0FBQztDQUNqRDtBQUNELFlBQVk7S0FDUCxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7SUFDdEMsU0FBUyxHQUFHLGtDQUFrQyxDQUFDO0NBQ2xEO0FBQ0Qsa0NBQWtDO0tBQzdCLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUNsQyxTQUFTLEdBQUcsaUNBQWlDLENBQUM7Q0FDakQ7QUFDRCxzQ0FBc0M7S0FDakM7SUFDRCxTQUFTLEdBQUcsaUNBQWlDLENBQUM7Q0FDakQ7QUFFRCxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDdkIsVUFBVSxFQUFFLEtBQUs7SUFDakIsR0FBRyxFQUFFLFNBQVM7Q0FDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGxldCBBUElfQ09OU1QgPSAnJztcclxuXHJcbi8vIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLm5ldWFwaXguY29tJztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkYXNoYm9hcmQtc3RhZ2luZy5uZXVhcGl4JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG4vLyBlbHNlIGlmIChsb2NhdGlvbi5vcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYS5hZGxzYW5kYm94JykpXHJcbi8vIFx0QVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpYnNwLXFhLmFkbHNhbmRib3gubmV0JztcclxuLy8gZWxzZSBpZiAobG9jYXRpb24ub3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldi5hZGxzYW5kYm94Lm5ldCcpKVxyXG4vLyBcdEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG4vLyBlbHNlIEFQSV9DT05TVCA9ICdodHRwczovL2FwaWJzcC1kZXYuYWRsc2FuZGJveC5uZXQnO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IGVudmlyb25tZW50ID0ge1xyXG4vLyBcdHByb2R1Y3Rpb246IGZhbHNlLFxyXG4vLyBcdGFwaTogQVBJX0NPTlNULFxyXG4vLyB9O1xyXG5sZXQgQVBJX0NPTlNUID0gJyc7XHJcbmNvbnN0IG9yaWdpbiA9IGxvY2F0aW9uLm9yaWdpbjtcclxuXHJcbi8vIDEuIENlayBQcm9kdWN0aW9uXHJcbmlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC5uZXVhcGl4LmNvbScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGkubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDIuIENlayBTdGFnaW5nXHJcbmVsc2UgaWYgKG9yaWdpbi5pbmNsdWRlcygnZGFzaGJvYXJkLXN0YWdpbmcnKSkge1xyXG4gICAgQVBJX0NPTlNUID0gJ2h0dHBzOi8vYXBpLXN0YWdpbmcubmV1YXBpeC5jb20nO1xyXG59XHJcbi8vIDMuIENlayBRQVxyXG5lbHNlIGlmIChvcmlnaW4uaW5jbHVkZXMoJ2Rhc2hib2FyZC1xYScpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGlic3AtcWEuYWRsc2FuZGJveC5uZXQnO1xyXG59XHJcbi8vIDQuIENlayBEZW1vIERldiBzZWNhcmEgc3Blc2lmaWtcclxuZWxzZSBpZiAob3JpZ2luLmluY2x1ZGVzKCdkZW1vLWRldicpKSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy5uZXVhcGl4LmNvbSc7XHJcbn1cclxuLy8gNS4gRGVmYXVsdCAoTG9jYWxob3N0IGF0YXUgbGFpbm55YSlcclxuZWxzZSB7XHJcbiAgICBBUElfQ09OU1QgPSAnaHR0cHM6Ly9hcGktc3RhZ2luZy5uZXVhcGl4LmNvbSc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBlbnZpcm9ubWVudCA9IHtcclxuICAgIHByb2R1Y3Rpb246IGZhbHNlLFxyXG4gICAgYXBpOiBBUElfQ09OU1QsXHJcbn07XHJcbiJdfQ==