dts-backoffice-util 14.2.2 → 14.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +20 -8
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +4 -4
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +4 -4
- package/esm2020/lib/dts-backoffice-util.module.mjs +5 -5
- package/esm2020/lib/pipes/dts-date-format.pipe.mjs +4 -4
- package/esm2020/lib/services/breadcrumb-control.service.mjs +24 -7
- package/esm2020/lib/services/cache-params.service.mjs +4 -4
- package/esm2020/lib/services/menu-datasul.service.mjs +4 -4
- package/esm2020/lib/services/profile.service.mjs +4 -4
- package/esm2020/lib/services/report.service.mjs +4 -4
- package/esm2020/lib/services/session-info.service.mjs +4 -4
- package/esm2020/lib/services/translate.service.mjs +4 -4
- package/fesm2015/dts-backoffice-util.mjs +54 -37
- package/fesm2015/dts-backoffice-util.mjs.map +1 -1
- package/fesm2020/dts-backoffice-util.mjs +54 -37
- package/fesm2020/dts-backoffice-util.mjs.map +1 -1
- package/lib/services/breadcrumb-control.service.d.ts +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,12 +1,23 @@
|
|
|
1
1
|
# Documentação dos Componentes e Utils
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## Objetivo
|
|
4
|
+
|
|
5
|
+
Biblioteca que engloba diversos componentes e serviços utilizados no desenvolvimento HTML/Angular com PO-UI.
|
|
4
6
|
|
|
5
7
|
<br>
|
|
6
8
|
|
|
7
|
-
##
|
|
9
|
+
## Versões
|
|
8
10
|
|
|
9
|
-
Biblioteca
|
|
11
|
+
Segue abaixo as últimas versões da Biblioteca, conforme a versão do PO-UI e Angular correspondentes.<br>Detalhes das alterações: **[**VER CHANGE LOG**](https://github.com/ModernizaDatasul/dts-backoffice-util/blob/master/projects/dts-backoffice-util/CHANGELOG.md)**.
|
|
12
|
+
|
|
13
|
+
| PO-UI | Angular | Versão dtsBackofficeUtil |
|
|
14
|
+
|-|-| -|
|
|
15
|
+
| v14 | v14 | 14.3.0 |
|
|
16
|
+
| v6 | v13 | 6.0.2 |
|
|
17
|
+
| v5 | v12 | 5.0.1 |
|
|
18
|
+
| v4 | v11 | 4.0.1 |
|
|
19
|
+
| v3 | v10 | 3.0.1 |
|
|
20
|
+
| v2 | v9 | 2.8.4 |
|
|
10
21
|
|
|
11
22
|
<br>
|
|
12
23
|
|
|
@@ -144,8 +155,8 @@ this.menuDatasulService.sendNotification(notification);
|
|
|
144
155
|
No HTML usar da seguinte forma:
|
|
145
156
|
```
|
|
146
157
|
<app-totvs-schedule-execution
|
|
147
|
-
programName="
|
|
148
|
-
externalName="pdp/pdapi701"
|
|
158
|
+
programName="pdapi701"
|
|
159
|
+
externalName="pdp/pdapi701.p"
|
|
149
160
|
programEMS5="false"
|
|
150
161
|
programVersion=""
|
|
151
162
|
[parameters]="parametersRpw"
|
|
@@ -174,7 +185,7 @@ Parâmetros:
|
|
|
174
185
|
|
|
175
186
|
| Nome | Tipo | Obrigatório | Descrição |
|
|
176
187
|
|-|-|-|-|
|
|
177
|
-
| programName | string | Sim |
|
|
188
|
+
| programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
|
|
178
189
|
| externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
|
|
179
190
|
| programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
|
|
180
191
|
| programVersion | string | Não | Versão do programa progress. |
|
|
@@ -309,7 +320,7 @@ createSchedule(): void {
|
|
|
309
320
|
// Criar um Agendamento para ser Executado "agora"
|
|
310
321
|
const execParam = new ExecutionParameters();
|
|
311
322
|
execParam.executionServer = executionServer;
|
|
312
|
-
execParam.programName = '
|
|
323
|
+
execParam.programName = 'api_executa_carga_dados_carol';
|
|
313
324
|
execParam.externalName = 'api_executa_carga_dados_carol';
|
|
314
325
|
execParam.programEMS5 = true;
|
|
315
326
|
execParam.programVersion = '1.00.00.001';
|
|
@@ -410,7 +421,7 @@ IExecutionParameters
|
|
|
410
421
|
| Nome | Tipo | Obrigatório | Descrição |
|
|
411
422
|
|-|-|-|-|
|
|
412
423
|
| executionServer | string | Sim | Código do Servidor RPW. |
|
|
413
|
-
| programName | string | Sim |
|
|
424
|
+
| programName | string | Sim | Código de Programa cadastrado no menu, do programa que será executado no RPW. |
|
|
414
425
|
| externalName | string | Sim | Nome completo do Programa que será executado no RPW, diretório + nome externo.<br>**Importante:** Em virtude do dicionário (Foundation), este parâmetro é limitado a 24 dígitos. |
|
|
415
426
|
| programEMS5 | boolean | Não | Indica se o programa progress é do EMS5. |
|
|
416
427
|
| programVersion | string | Não | Versão do programa progress. |
|
|
@@ -613,6 +624,7 @@ Métodos:
|
|
|
613
624
|
| addBreadcrumb | Adiciona um item ao breadcrumb, considerando a URL atual da tela.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- activatedRoute (ActivatedRoute): ActivedRoute da tela.<br>**Retorno:** Não há. |
|
|
614
625
|
| addBreadcrumbURL | Adiciona um item ao breadcrumb, informando uma URL específica.<br>**Parâmetros:**<br>- literal (string): Nome da tela que será apresentado no breadcrumb.<br>- url (string): URL específica.<br>**Retorno:** Não há. |
|
|
615
626
|
| updBreadcrumbURL | Altera uma informação qualquer contida na URL do item informado.<br>**Parâmetros:**<br>- literal (string): Nome da tela que está no breadcrumb.<br>- valueOld (string): Valor a ser substituído.<br>- valueNew (string): Novo valor.<br>**Retorno:** Não há. |
|
|
627
|
+
| delBreadcrumb | Exclui um item do breadcrumb.<br>**Parâmetros:**<br>- literal (string): Nome do item (nome da tela), que deve ser excluído do breadcrumb.<br>**Retorno:** Não há. |
|
|
616
628
|
| getBreadcrumb | Retorna o breadcrumb atual completo.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- breadcrumb (PoBreadcrumb) |
|
|
617
629
|
| getCurrentRouter | Retorna a URL do breadcrumb do item corrente.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
|
618
630
|
| getPrevRouter | Retorna a URL do breadcrumb do item anterior.<br>**Parâmetros:** Não há.<br>**Retorno:**<br>- url (string) |
|
package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs
CHANGED
|
@@ -244,9 +244,9 @@ export class TotvsScheduleExecutionComponent {
|
|
|
244
244
|
return true;
|
|
245
245
|
}
|
|
246
246
|
}
|
|
247
|
-
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
248
|
-
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: TotvsScheduleExecutionComponent, selector: "app-totvs-schedule-execution", inputs: { programName: "programName", externalName: "externalName", programEMS5: "programEMS5", programVersion: "programVersion", parameters: "parameters", disabledParams: "disabledParams", loading: "loading" }, outputs: { endExecution: "endExecution" }, viewQueries: [{ propertyName: "scheduleExecutionForm", first: true, predicate: ["scheduleExecutionForm"], descendants: true, static: true }], ngImport: i0, template: "<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execu\u00E7\u00E3o\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execu\u00E7\u00E3o\"\r\n p-placeholder=\"Servidor de Execu\u00E7\u00E3o\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorr\u00EAncia ?\"\r\n p-label-off=\"N\u00E3o\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Di\u00E1ria\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do m\u00EAs\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PoButtonComponent, selector: "po-button" }, { kind: "component", type: i1.PoDatepickerComponent, selector: "po-datepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: i1.PoInputComponent, selector: "po-input" }, { kind: "component", type: i1.PoLookupComponent, selector: "po-lookup" }, { kind: "component", type: i1.PoMultiselectComponent, selector: "po-multiselect" }, { kind: "component", type: i1.PoNumberComponent, selector: "po-number", inputs: ["p-step", "p-min", "p-max"] }, { kind: "component", type: i1.PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: i1.PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-placeholder", "p-options", "p-field-label", "p-field-value"], outputs: ["ngModelChange"] }, { kind: "component", type: i1.PoSwitchComponent, selector: "po-switch", inputs: ["p-label-position", "p-label-off", "p-label-on"] }, { kind: "component", type: i1.PoTabComponent, selector: "po-tab" }, { kind: "component", type: i1.PoTabsComponent, selector: "po-tabs" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
249
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
247
|
+
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TotvsScheduleExecutionComponent, deps: [{ token: i1.PoI18nService }, { token: i2.TotvsScheduleExecutionService }, { token: i1.PoNotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
248
|
+
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TotvsScheduleExecutionComponent, selector: "app-totvs-schedule-execution", inputs: { programName: "programName", externalName: "externalName", programEMS5: "programEMS5", programVersion: "programVersion", parameters: "parameters", disabledParams: "disabledParams", loading: "loading" }, outputs: { endExecution: "endExecution" }, viewQueries: [{ propertyName: "scheduleExecutionForm", first: true, predicate: ["scheduleExecutionForm"], descendants: true, static: true }], ngImport: i0, template: "<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execu\u00E7\u00E3o\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execu\u00E7\u00E3o\"\r\n p-placeholder=\"Servidor de Execu\u00E7\u00E3o\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorr\u00EAncia ?\"\r\n p-label-off=\"N\u00E3o\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Di\u00E1ria\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do m\u00EAs\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i1.PoButtonComponent, selector: "po-button" }, { kind: "component", type: i1.PoDatepickerComponent, selector: "po-datepicker", inputs: ["p-label", "p-help"] }, { kind: "component", type: i1.PoInputComponent, selector: "po-input" }, { kind: "component", type: i1.PoLookupComponent, selector: "po-lookup" }, { kind: "component", type: i1.PoMultiselectComponent, selector: "po-multiselect" }, { kind: "component", type: i1.PoNumberComponent, selector: "po-number", inputs: ["p-step", "p-min", "p-max"] }, { kind: "component", type: i1.PoRadioGroupComponent, selector: "po-radio-group", inputs: ["p-label", "p-help"] }, { kind: "component", type: i1.PoSelectComponent, selector: "po-select", inputs: ["p-readonly", "p-placeholder", "p-options", "p-field-label", "p-field-value"], outputs: ["ngModelChange"] }, { kind: "component", type: i1.PoSwitchComponent, selector: "po-switch", inputs: ["p-label-position", "p-label-off", "p-label-on"] }, { kind: "component", type: i1.PoTabComponent, selector: "po-tab" }, { kind: "component", type: i1.PoTabsComponent, selector: "po-tabs" }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TotvsScheduleExecutionComponent, decorators: [{
|
|
250
250
|
type: Component,
|
|
251
251
|
args: [{ selector: 'app-totvs-schedule-execution', template: "<form #scheduleExecutionForm=\"ngForm\">\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionType\"\r\n p-label=\"Data de Execu\u00E7\u00E3o\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionType\"\r\n [p-options]=\"executionTypeOptions\"\r\n (p-change)=\"changeExecutionType()\">\r\n </po-radio-group>\r\n\r\n <po-datepicker *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"model.execAppointDate\"\r\n p-label=\"Agendar para\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointDate\">\r\n </po-datepicker>\r\n\r\n <po-input *ngIf=isExecutionSchedule()\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHour\"\r\n p-label=\"Hora\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHour\">\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-lookup\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"executionServer\"\r\n p-label=\"Servidor de Execu\u00E7\u00E3o\"\r\n p-placeholder=\"Servidor de Execu\u00E7\u00E3o\"\r\n [p-columns]=\"zoomRpwServiceColumns\"\r\n [p-field-format]=\"fieldRpwServiceFormat\"\r\n [p-filter-service]=\"rpwService\"\r\n p-field-label=\"name\"\r\n p-field-value=\"code\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.executionServer\">\r\n </po-lookup>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-switch\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"repeatExecution\"\r\n p-label=\"Repetir ocorr\u00EAncia ?\"\r\n p-label-off=\"N\u00E3o\"\r\n p-label-on=\"Sim\"\r\n [(ngModel)]=\"model.repeatExecution\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"changeRepeatExecution()\">\r\n </po-switch>\r\n </div>\r\n\r\n <div class=\"po-row\" *ngIf=\"isRepeatExecution()\">\r\n \r\n <po-tabs>\r\n\r\n <po-tab \r\n p-label=\"Di\u00E1ria\" \r\n [p-active]=\"getActiveTab(1)\" \r\n (p-click)=\"setActiveTab(1)\">\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyDaily\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n \r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"> \r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitDaily\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n \r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalDaily\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n \r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueDaily\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n \r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeDaily\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Semanal\"\r\n [p-active]=\"getActiveTab(2)\"\r\n (p-click)=\"setActiveTab(2)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-multiselect\r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"selectWeeklys\"\r\n p-label=\"Dias da Semana\"\r\n p-placeholder=\"Escolha os dias da semana\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.selectWeeklys\"\r\n [p-options]=\"weeklyOptions\">\r\n </po-multiselect>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyWeekly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitWeekly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n\r\n <po-tab \r\n p-label=\"Mensal\" \r\n [p-active]=\"getActiveTab(3)\" \r\n (p-click)=\"setActiveTab(3)\">\r\n\r\n <div class=\"po-row po-sm-12 po-md-12 po-lg-12 po-xl-12\">\r\n <po-number\r\n class=\"po-sm-3 po-md-3 po-lg-3 po-xl-3\"\r\n name=\"dayOfMonth\"\r\n p-label=\"Dia do m\u00EAs\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"2\"\r\n p-min=\"0\"\r\n p-max=\"31\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.dayOfMonth\">\r\n </po-number>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-radio-group \r\n class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\"\r\n name=\"frequencyMonthly\"\r\n p-label=\"Frequ\u00EAncia\"\r\n p-columns=1\r\n [(ngModel)]=\"model.frequency\"\r\n [p-disabled]=\"disabledParams\"\r\n [p-options]=\"frequencyOptions\"\r\n (p-change)=\"changeTypeFrequency()\">\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-row po-sm-6 po-md-6 po-lg-6 po-xl-6\">\r\n <po-input\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourInitMonthly\"\r\n p-label=\"Hora In\u00EDcio\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourInit\">\r\n </po-input>\r\n\r\n <po-input *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-6 po-md-6 po-lg-6 po-xl-6\"\r\n name=\"execAppointHourFinalWeekly\"\r\n p-label=\"Hora Fim\"\r\n p-mask=\"99:99\"\r\n p-mask-format-model=\"true\"\r\n p-pattern=\"^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$\"\r\n p-error-pattern=\"Hora inv\u00E1lida\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.execAppointHourFinal\">\r\n </po-input>\r\n\r\n <po-number *ngIf=\"isFrenquency()\"\r\n class=\"po-sm-5 po-md-5 po-lg-5 po-xl-5\"\r\n name=\"frequencyValueWeekly\"\r\n p-label=\"A cada\"\r\n p-minlength=\"1\"\r\n p-maxlength=\"3\"\r\n p-min=\"0\"\r\n p-max=\"999\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyValue\">\r\n </po-number>\r\n\r\n <po-select *ngIf=\"isFrenquency()\"\r\n class=\"po-mt-3 po-sm-7 po-md-7 po-lg-7 po-xl-7\"\r\n name=\"frequencyTypeWeekly\"\r\n p-label=\"\"\r\n [p-options]=\"frequencyTypeOptions\"\r\n [p-disabled]=\"disabledParams\"\r\n [(ngModel)]=\"model.frequencyType\">\r\n </po-select>\r\n </div>\r\n </po-tab>\r\n </po-tabs>\r\n </div>\r\n\r\n <div class=\"po-sm-12 po-md-12 po-lg-12 po-xl-12\" style=\"padding-top: 15px;\">\r\n <po-button\r\n style=\"float: right;\"\r\n p-label=\"Gerar Agendamento RPW\"\r\n [p-disabled]=\"disabledParams\"\r\n (click)=\"executeSchedule()\">\r\n </po-button>\r\n </div>\r\n</form>\r\n" }]
|
|
252
252
|
}], ctorParameters: function () { return [{ type: i1.PoI18nService }, { type: i2.TotvsScheduleExecutionService }, { type: i1.PoNotificationService }]; }, propDecorators: { scheduleExecutionForm: [{
|
|
@@ -269,4 +269,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
269
269
|
}], endExecution: [{
|
|
270
270
|
type: Output
|
|
271
271
|
}] } });
|
|
272
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R0cy1iYWNrb2ZmaWNlLXV0aWwvc3JjL2xpYi9jb21wb25lbnRzL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL2NvbXBvbmVudHMvdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQVUzRixNQUFNLE9BQU8sK0JBQStCO0lBWXhDLFlBQ1csYUFBNEIsRUFDNUIsVUFBeUMsRUFDekMsY0FBcUM7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBVnZDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFjcEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBVm5CLENBQUM7SUFZRCxRQUFRO1FBQ0o7Ozs7Ozs7ZUFPTztRQUVQLElBQUksQ0FBQyxl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LG9CQUFvQixDQUFDLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7b0JBQ3RFLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztvQkFDckYsT0FBTyxLQUFLLENBQUM7aUJBQ2hCO2FBQ0o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O2dKQW5SUSwrQkFBK0I7b0lBQS9CLCtCQUErQixpZENaNUMsaXdiQTZTQTs0RkRqU2EsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNJLDhCQUE4QjtvTEFNYyxxQkFBcUI7c0JBQTFFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb1JhZGlvR3JvdXBPcHRpb24sIFBvSTE4blNlcnZpY2UsIFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9Mb29rdXBDb2x1bW4gfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IElTY2hlZHVsZVBhcmFtZXRlcnMsIFNjaGVkdWxlUGFyYW1ldGVycyB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC10b3R2cy1zY2hlZHVsZS1leGVjdXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVG90dnNTY2hlZHVsZUV4ZWN1dGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdzY2hlZHVsZUV4ZWN1dGlvbkZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZUV4ZWN1dGlvbkZvcm06IE5nRm9ybTtcclxuXHJcbiAgICBASW5wdXQoKSBwcm9ncmFtTmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxOYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcm9ncmFtRU1TNSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHJvZ3JhbVZlcnNpb24gPSAnJztcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IFtdO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWRQYXJhbXMgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBlbmRFeGVjdXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHBvSTE4blNlcnZpY2U6IFBvSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHJwd1NlcnZpY2U6IFRvdHZzU2NoZWR1bGVFeGVjdXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZXhlY3V0aW9uVHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICBmcmVxdWVuY3lPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgZnJlcXVlbmN5VHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICB3ZWVrbHlPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgem9vbVJwd1NlcnZpY2VDb2x1bW5zOiBBcnJheTxQb0xvb2t1cENvbHVtbj47XHJcbiAgICBtb2RlbDogU2NoZWR1bGVQYXJhbWV0ZXJzO1xyXG4gICAgcHJpdmF0ZSBqc29uT2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLyogVkVSSUZJQ0FSIENPTU8gRklDQVLDgSBBIFRSQURVw4fDg09cclxuICAgICAgICBmb3JrSm9pbihcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoKSxcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoeyBjb250ZXh0OiAnZ2VuZXJhbFJwdycgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKGxpdGVyYWxzID0+IHtcclxuICAgICAgICAgICAgICBsaXRlcmFscy5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHRoaXMubGl0ZXJhbHMsIGl0ZW0pICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudHMoKTtcclxuICAgICAgICAgIH0pOyovXHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDb21wb25lbnRzKCkge1xyXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uVHlwZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdFeGVjdXRhciBIb2plJywgdmFsdWU6IDEgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0FnZW5kYXIgRXhlY3XDp8OjbycsIHZhbHVlOiAyIH1cclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdVbWEgdmV6IG5vIGRpYScsIHZhbHVlOiAnbm8nIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdWw6FyaWFzIHZlemVzIG5vIGRpYScsIHZhbHVlOiAneWVzJyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUeXBlT3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0hvcmEocyknLCB2YWx1ZTogJ2hvdXInIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdNaW51dG8ocyknLCB2YWx1ZTogJ21pbnV0ZScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMud2Vla2x5T3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0RvbWluZ28nLCB2YWx1ZTogJ1N1bmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NlZ3VuZGEnLCB2YWx1ZTogJ01vbmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1RlcsOnYScsIHZhbHVlOiAnVHVlc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1F1YXJ0YScsIHZhbHVlOiAnV2VkbmVzZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnUXVpbnRhJywgdmFsdWU6ICdUaHVyc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NleHRhJywgdmFsdWU6ICdGcmlkYXknIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdTw6FiYWRvJywgdmFsdWU6ICdTYXR1cmRheScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuem9vbVJwd1NlcnZpY2VDb2x1bW5zID0gW1xyXG4gICAgICAgICAgICB7IHByb3BlcnR5OiAnY29kZScsIGxhYmVsOiAnU2Vydmlkb3InLCB0eXBlOiAnc3RyaW5nJywgd2lkdGg6ICcyMCUnIH0sXHJcbiAgICAgICAgICAgIHsgcHJvcGVydHk6ICduYW1lJywgbGFiZWw6ICdEZXNjcmnDp8OjbycsIHR5cGU6ICdzdHJpbmcnLCB3aWR0aDogJzgwJScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgU2NoZWR1bGVQYXJhbWV0ZXJzKCk7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjdXRpb25UeXBlID0gMTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSAxO1xyXG4gICAgICAgIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNjaGVkdWxlUGFyYW1ldGVycyhzY2hQYXJhbTogSVNjaGVkdWxlUGFyYW1ldGVycykge1xyXG4gICAgICAgIGlmICghc2NoUGFyYW0pIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHNjaFBhcmFtO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTY2hlZHVsZVBhcmFtZXRlcnMoKTogSVNjaGVkdWxlUGFyYW1ldGVycyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZmllbGRScHdTZXJ2aWNlRm9ybWF0KHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLmNvZGV9IC0gJHt2YWx1ZS5uYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFeGVjdXRpb25TY2hlZHVsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZXhlY3V0aW9uVHlwZSA9PT0gMik7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZXBlYXRFeGVjdXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRnJlbnF1ZW5jeSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZnJlcXVlbmN5ID09PSAneWVzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUmVwZWF0RXhlY3V0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCkgeyB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7IH1cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWwpIHsgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCA9IGAke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9YDsgfVxyXG4gICAgICAgIHRoaXMubW9kZWwuc2VsZWN0V2Vla2x5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF5T2ZNb250aCA9IDA7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mcmVxdWVuY3kgPSAnbm8nO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSA9ICdob3VyJztcclxuICAgICAgICB0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VFeGVjdXRpb25UeXBlKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50RGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXIgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlVHlwZUZyZXF1ZW5jeSgpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gY29kVGFiKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSBjb2RUYWI7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGAke251bX1gO1xyXG4gICAgICAgIGlmIChudW0gPCAxMCkgeyBzdHIgPSBgMCR7bnVtfWA7IH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4ZWN1dGVTY2hlZHVsZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZFBhcmFtcykgeyByZXR1cm47IH1cclxuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGUoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0ID0ge307XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5wcm9jZXNzSUQgPSB0aGlzLnByb2dyYW1OYW1lO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5yZWN1cnJlbnQgPSB0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbjtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5maXJzdEV4ZWN1dGlvbiA9IGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHsoZGF0ZS5nZXRNb250aCgpICsgMSl9LSR7ZGF0ZS5nZXREYXRlKCl9VCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX06MDAuMDAwWmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5qc29uT2JqZWN0LmZpcnN0RXhlY3V0aW9uID0gYCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludERhdGV9VCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJ9OjAwLjAwMFpgO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zID0gW107XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zWzBdID0geyBjaGF2ZTogJ3Jwd1NlcnZlcicsIHZhbG9yOiB0aGlzLm1vZGVsLmV4ZWN1dGlvblNlcnZlciB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1sxXSA9IHsgY2hhdmU6ICdSUFdfUFJPR1JBTScsIHZhbG9yOiB0aGlzLmV4dGVybmFsTmFtZSB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1syXSA9IHsgY2hhdmU6ICdSUFdfUFJHX0VNUzUnLCB2YWxvcjogdGhpcy5wcm9ncmFtRU1TNSA/ICd5ZXMnIDogJ25vJyB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1szXSA9IHsgY2hhdmU6ICdSUFdfUFJHX1ZFUlMnLCB2YWxvcjogdGhpcy5wcm9ncmFtVmVyc2lvbiB9O1xyXG5cclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0gPSB7fTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0ucGFyYW1ldHJvc19uZWdvY2lvID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRhIGhvamUgb3UgYWdlbmRhZGFcclxuICAgICAgICB0aGlzLnJwd1NlcnZpY2UuY3JlYXRlRXhlY3V0aW9uKHRoaXMuanNvbk9iamVjdCwgdGhpcy5sb2FkaW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MoJ0FnZW5kYW1lbnRvIHJlYWxpemFkbyBjb20gc3VjZXNzbyAhJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3QuZGFpbHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnaCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnbScpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3Qud2Vla2x5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXlzT2ZXZWVrOiB0aGlzLm1vZGVsLnNlbGVjdFdlZWtseXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPT09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5tb250aGx5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXk6IHRoaXMubW9kZWwuZGF5T2ZNb250aFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGcmVucXVlbmN5KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5yYW5nZUV4ZWN1dGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlTGltaXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsLCAnbScpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRXhlY3V0YSBhIGRpw6FyaWEsIHNlbWFuYWwgb3UgbWVuc2FsXHJcbiAgICAgICAgICAgIHRoaXMucnB3U2VydmljZS5jcmVhdGVFeGVjdXRpb24odGhpcy5qc29uT2JqZWN0LCB0aGlzLmxvYWRpbmcpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbmRFeGVjdXRpb24uZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIb3VyT3JNaW51dGUodmFsdWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodHlwZSA9PT0gJ2gnKSB7IHJldHVybiArdmFsdWUuc3Vic3RyaW5nKDAsIDIpOyB9XHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdtJykgeyByZXR1cm4gK3ZhbHVlLnN1YnN0cmluZygzLCA2KTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhcmVIb3VyKGhvdXJJbml0OiBzdHJpbmcsIGhvdXJGaW5hbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGhvdXJJbml0ID09PSBob3VyRmluYWwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnaCcpIDwgdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnaCcpKSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnbScpID4gdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnbScpKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc2NoZWR1bGVFeGVjdXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ1ZlcmlmaXF1ZSBhcyBpbmNvbnNpc3TDqm5jaWFzIGVtIHRlbGEuJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjdXRpb25TZXJ2ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignU2Vydmlkb3IgZGUgRXhlY3XDp8OjbyBuw6NvIGZvaSBpbmZvcm1hZG8uJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRXhlY3V0aW9uU2NoZWR1bGUoKSAmJiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnREYXRlIHx8ICF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91cikpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBkYXRhIGUgYSBob3JhIHBhcmEgYWdlbmRhbWVudG8gZGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdJbmZvcm1hciBhIGhvcmEgZGUgaW7DrWNpbyBwYXJhIGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMiAmJiAodGhpcy5tb2RlbC5zZWxlY3RXZWVrbHlzLmxlbmd0aCA9PT0gMCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIG9zIGRpYXMgZGEgc2VtYW5hIHBhcmEgYSBleGVjdcOnw6NvLicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAzICYmICghdGhpcy5tb2RlbC5kYXlPZk1vbnRoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgbyBkaWEgcGFyYSBhIGV4ZWN1w6fDo28uJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRnJlbnF1ZW5jeSgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFyZUhvdXIodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0hvcmEgRmltIGRldmUgc2VyIG1haW9yIHF1ZSBIb3JhIEluw61jaW8uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBmcmVxdcOqbmNpYSBkZSBleGVjdcOnw6NvIChBIGNhZGEgaG9yYS9taW51dG8pLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZvcm0gI3NjaGVkdWxlRXhlY3V0aW9uRm9ybT1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiPlxyXG4gICAgICAgIDxwby1yYWRpby1ncm91cCBcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGVjdXRpb25UeXBlXCJcclxuICAgICAgICAgICAgcC1sYWJlbD1cIkRhdGEgZGUgRXhlY3XDp8Ojb1wiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjdXRpb25UeXBlXCJcclxuICAgICAgICAgICAgW3Atb3B0aW9uc109XCJleGVjdXRpb25UeXBlT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VFeGVjdXRpb25UeXBlKClcIj5cclxuICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG5cclxuICAgICAgICA8cG8tZGF0ZXBpY2tlciAqbmdJZj1pc0V4ZWN1dGlvblNjaGVkdWxlKClcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgbmFtZT1cIm1vZGVsLmV4ZWNBcHBvaW50RGF0ZVwiXHJcbiAgICAgICAgICAgIHAtbGFiZWw9XCJBZ2VuZGFyIHBhcmFcIlxyXG4gICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnREYXRlXCI+XHJcbiAgICAgICAgPC9wby1kYXRlcGlja2VyPlxyXG5cclxuICAgICAgICA8cG8taW5wdXQgKm5nSWY9aXNFeGVjdXRpb25TY2hlZHVsZSgpXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiSG9yYVwiXHJcbiAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91clwiPlxyXG4gICAgICAgIDwvcG8taW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgPHBvLWxvb2t1cFxyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgbmFtZT1cImV4ZWN1dGlvblNlcnZlclwiXHJcbiAgICAgICAgICAgIHAtbGFiZWw9XCJTZXJ2aWRvciBkZSBFeGVjdcOnw6NvXCJcclxuICAgICAgICAgICAgcC1wbGFjZWhvbGRlcj1cIlNlcnZpZG9yIGRlIEV4ZWN1w6fDo29cIlxyXG4gICAgICAgICAgICBbcC1jb2x1bW5zXT1cInpvb21ScHdTZXJ2aWNlQ29sdW1uc1wiXHJcbiAgICAgICAgICAgIFtwLWZpZWxkLWZvcm1hdF09XCJmaWVsZFJwd1NlcnZpY2VGb3JtYXRcIlxyXG4gICAgICAgICAgICBbcC1maWx0ZXItc2VydmljZV09XCJycHdTZXJ2aWNlXCJcclxuICAgICAgICAgICAgcC1maWVsZC1sYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICBwLWZpZWxkLXZhbHVlPVwiY29kZVwiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjdXRpb25TZXJ2ZXJcIj5cclxuICAgICAgICA8L3BvLWxvb2t1cD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIj5cclxuICAgICAgICA8cG8tc3dpdGNoXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJyZXBlYXRFeGVjdXRpb25cIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiUmVwZXRpciBvY29ycsOqbmNpYSA/XCJcclxuICAgICAgICAgICAgcC1sYWJlbC1vZmY9XCJOw6NvXCJcclxuICAgICAgICAgICAgcC1sYWJlbC1vbj1cIlNpbVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwucmVwZWF0RXhlY3V0aW9uXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUmVwZWF0RXhlY3V0aW9uKClcIj5cclxuICAgICAgICA8L3BvLXN3aXRjaD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3dcIiAqbmdJZj1cImlzUmVwZWF0RXhlY3V0aW9uKClcIj5cclxuICAgICBcclxuICAgICAgICA8cG8tdGFicz5cclxuXHJcbiAgICAgICAgICAgIDxwby10YWIgXHJcbiAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRGnDoXJpYVwiIFxyXG4gICAgICAgICAgICAgICAgW3AtYWN0aXZlXT1cImdldEFjdGl2ZVRhYigxKVwiIFxyXG4gICAgICAgICAgICAgICAgKHAtY2xpY2spPVwic2V0QWN0aXZlVGFiKDEpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tcmFkaW8tZ3JvdXAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5RGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRnJlcXXDqm5jaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWNvbHVtbnM9MVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImNoYW5nZVR5cGVGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VySW5pdERhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgSW7DrWNpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckZpbmFsRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBGaW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW51bWJlciAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS01IHBvLW1kLTUgcG8tbGctNSBwby14bC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeVZhbHVlRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiQSBjYWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW5sZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXg9XCI5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8cG8tc2VsZWN0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLW10LTMgcG8tc20tNyBwby1tZC03IHBvLWxnLTcgcG8teGwtN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lUeXBlRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lUeXBlT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9wby10YWI+XHJcblxyXG4gICAgICAgICAgICA8cG8tdGFiIFxyXG4gICAgICAgICAgICAgICAgcC1sYWJlbD1cIlNlbWFuYWxcIlxyXG4gICAgICAgICAgICAgICAgW3AtYWN0aXZlXT1cImdldEFjdGl2ZVRhYigyKVwiXHJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJzZXRBY3RpdmVUYWIoMilcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW11bHRpc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0V2Vla2x5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJEaWFzIGRhIFNlbWFuYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGxhY2Vob2xkZXI9XCJFc2NvbGhhIG9zIGRpYXMgZGEgc2VtYW5hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnNlbGVjdFdlZWtseXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cIndlZWtseU9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tcmFkaW8tZ3JvdXAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5V2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkZyZXF1w6puY2lhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1jb2x1bW5zPTFcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VUeXBlRnJlcXVlbmN5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8taW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckluaXRXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBJbsOtY2lvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckZpbmFsV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgRmltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tbnVtYmVyICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTUgcG8tbWQtNSBwby1sZy01IHBvLXhsLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VmFsdWVXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiQSBjYWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW5sZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXg9XCI5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXNlbGVjdCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1tdC0zIHBvLXNtLTcgcG8tbWQtNyBwby1sZy03IHBvLXhsLTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VHlwZVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cImZyZXF1ZW5jeVR5cGVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3BvLXRhYj5cclxuXHJcbiAgICAgICAgICAgIDxwby10YWIgXHJcbiAgICAgICAgICAgICAgICBwLWxhYmVsPVwiTWVuc2FsXCIgXHJcbiAgICAgICAgICAgICAgICBbcC1hY3RpdmVdPVwiZ2V0QWN0aXZlVGFiKDMpXCIgXHJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJzZXRBY3RpdmVUYWIoMylcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTMgcG8tbWQtMyBwby1sZy0zIHBvLXhsLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGF5T2ZNb250aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJEaWEgZG8gbcOqc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4PVwiMzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZGF5T2ZNb250aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeU1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRnJlcXXDqm5jaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWNvbHVtbnM9MVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImNoYW5nZVR5cGVGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJJbml0TW9udGhseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJIb3JhIEluw61jaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJJbml0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1pbnB1dD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLWlucHV0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VyRmluYWxXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBGaW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1udW1iZXIgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNSBwby1tZC01IHBvLWxnLTUgcG8teGwtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lWYWx1ZVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJBIGNhZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbmxlbmd0aD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heD1cIjk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tbnVtYmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tc2VsZWN0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLW10LTMgcG8tc20tNyBwby1tZC03IHBvLWxnLTcgcG8teGwtN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lUeXBlV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5VHlwZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvcG8tdGFiPlxyXG4gICAgICAgIDwvcG8tdGFicz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+XHJcbiAgICAgICAgPHBvLWJ1dHRvblxyXG4gICAgICAgICAgICBzdHlsZT1cImZsb2F0OiByaWdodDtcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiR2VyYXIgQWdlbmRhbWVudG8gUlBXXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZVNjaGVkdWxlKClcIj5cclxuICAgICAgICA8L3BvLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
|
272
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R0cy1iYWNrb2ZmaWNlLXV0aWwvc3JjL2xpYi9jb21wb25lbnRzL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL2NvbXBvbmVudHMvdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQVUzRixNQUFNLE9BQU8sK0JBQStCO0lBWXhDLFlBQ1csYUFBNEIsRUFDNUIsVUFBeUMsRUFDekMsY0FBcUM7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBVnZDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFjcEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBVm5CLENBQUM7SUFZRCxRQUFRO1FBQ0o7Ozs7Ozs7ZUFPTztRQUVQLElBQUksQ0FBQyxl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LG9CQUFvQixDQUFDLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7b0JBQ3RFLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztvQkFDckYsT0FBTyxLQUFLLENBQUM7aUJBQ2hCO2FBQ0o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OytJQW5SUSwrQkFBK0I7bUlBQS9CLCtCQUErQixpZENaNUMsaXdiQTZTQTsyRkRqU2EsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNJLDhCQUE4QjtvTEFNYyxxQkFBcUI7c0JBQTFFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb1JhZGlvR3JvdXBPcHRpb24sIFBvSTE4blNlcnZpY2UsIFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9Mb29rdXBDb2x1bW4gfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IElTY2hlZHVsZVBhcmFtZXRlcnMsIFNjaGVkdWxlUGFyYW1ldGVycyB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC10b3R2cy1zY2hlZHVsZS1leGVjdXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVG90dnNTY2hlZHVsZUV4ZWN1dGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdzY2hlZHVsZUV4ZWN1dGlvbkZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZUV4ZWN1dGlvbkZvcm06IE5nRm9ybTtcclxuXHJcbiAgICBASW5wdXQoKSBwcm9ncmFtTmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxOYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcm9ncmFtRU1TNSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHJvZ3JhbVZlcnNpb24gPSAnJztcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IFtdO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWRQYXJhbXMgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBlbmRFeGVjdXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHBvSTE4blNlcnZpY2U6IFBvSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHJwd1NlcnZpY2U6IFRvdHZzU2NoZWR1bGVFeGVjdXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZXhlY3V0aW9uVHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICBmcmVxdWVuY3lPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgZnJlcXVlbmN5VHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICB3ZWVrbHlPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgem9vbVJwd1NlcnZpY2VDb2x1bW5zOiBBcnJheTxQb0xvb2t1cENvbHVtbj47XHJcbiAgICBtb2RlbDogU2NoZWR1bGVQYXJhbWV0ZXJzO1xyXG4gICAgcHJpdmF0ZSBqc29uT2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLyogVkVSSUZJQ0FSIENPTU8gRklDQVLDgSBBIFRSQURVw4fDg09cclxuICAgICAgICBmb3JrSm9pbihcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoKSxcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoeyBjb250ZXh0OiAnZ2VuZXJhbFJwdycgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKGxpdGVyYWxzID0+IHtcclxuICAgICAgICAgICAgICBsaXRlcmFscy5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHRoaXMubGl0ZXJhbHMsIGl0ZW0pICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudHMoKTtcclxuICAgICAgICAgIH0pOyovXHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDb21wb25lbnRzKCkge1xyXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uVHlwZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdFeGVjdXRhciBIb2plJywgdmFsdWU6IDEgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0FnZW5kYXIgRXhlY3XDp8OjbycsIHZhbHVlOiAyIH1cclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdVbWEgdmV6IG5vIGRpYScsIHZhbHVlOiAnbm8nIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdWw6FyaWFzIHZlemVzIG5vIGRpYScsIHZhbHVlOiAneWVzJyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUeXBlT3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0hvcmEocyknLCB2YWx1ZTogJ2hvdXInIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdNaW51dG8ocyknLCB2YWx1ZTogJ21pbnV0ZScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMud2Vla2x5T3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0RvbWluZ28nLCB2YWx1ZTogJ1N1bmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NlZ3VuZGEnLCB2YWx1ZTogJ01vbmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1RlcsOnYScsIHZhbHVlOiAnVHVlc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1F1YXJ0YScsIHZhbHVlOiAnV2VkbmVzZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnUXVpbnRhJywgdmFsdWU6ICdUaHVyc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NleHRhJywgdmFsdWU6ICdGcmlkYXknIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdTw6FiYWRvJywgdmFsdWU6ICdTYXR1cmRheScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuem9vbVJwd1NlcnZpY2VDb2x1bW5zID0gW1xyXG4gICAgICAgICAgICB7IHByb3BlcnR5OiAnY29kZScsIGxhYmVsOiAnU2Vydmlkb3InLCB0eXBlOiAnc3RyaW5nJywgd2lkdGg6ICcyMCUnIH0sXHJcbiAgICAgICAgICAgIHsgcHJvcGVydHk6ICduYW1lJywgbGFiZWw6ICdEZXNjcmnDp8OjbycsIHR5cGU6ICdzdHJpbmcnLCB3aWR0aDogJzgwJScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgU2NoZWR1bGVQYXJhbWV0ZXJzKCk7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjdXRpb25UeXBlID0gMTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSAxO1xyXG4gICAgICAgIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNjaGVkdWxlUGFyYW1ldGVycyhzY2hQYXJhbTogSVNjaGVkdWxlUGFyYW1ldGVycykge1xyXG4gICAgICAgIGlmICghc2NoUGFyYW0pIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHNjaFBhcmFtO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTY2hlZHVsZVBhcmFtZXRlcnMoKTogSVNjaGVkdWxlUGFyYW1ldGVycyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgICB9XHJcblxyXG4gICAgZmllbGRScHdTZXJ2aWNlRm9ybWF0KHZhbHVlKSB7XHJcbiAgICAgICAgcmV0dXJuIGAke3ZhbHVlLmNvZGV9IC0gJHt2YWx1ZS5uYW1lfWA7XHJcbiAgICB9XHJcblxyXG4gICAgaXNFeGVjdXRpb25TY2hlZHVsZSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZXhlY3V0aW9uVHlwZSA9PT0gMik7XHJcbiAgICB9XHJcblxyXG4gICAgaXNSZXBlYXRFeGVjdXRpb24oKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRnJlbnF1ZW5jeSgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwuZnJlcXVlbmN5ID09PSAneWVzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlUmVwZWF0RXhlY3V0aW9uKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCkgeyB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7IH1cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWwpIHsgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCA9IGAke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9YDsgfVxyXG4gICAgICAgIHRoaXMubW9kZWwuc2VsZWN0V2Vla2x5cyA9IFtdO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZGF5T2ZNb250aCA9IDA7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mcmVxdWVuY3kgPSAnbm8nO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSA9ICdob3VyJztcclxuICAgICAgICB0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VFeGVjdXRpb25UeXBlKCkge1xyXG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgICAgICB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50RGF0ZSA9IGRhdGU7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXIgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlVHlwZUZyZXF1ZW5jeSgpIHtcclxuICAgIH1cclxuXHJcbiAgICBnZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICByZXR1cm4gKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gY29kVGFiKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXRBY3RpdmVUYWIoY29kVGFiOiBudW1iZXIpIHtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSBjb2RUYWI7XHJcbiAgICB9XHJcblxyXG4gICAgYWRkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGAke251bX1gO1xyXG4gICAgICAgIGlmIChudW0gPCAxMCkgeyBzdHIgPSBgMCR7bnVtfWA7IH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG5cclxuICAgIGV4ZWN1dGVTY2hlZHVsZSgpIHtcclxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZFBhcmFtcykgeyByZXR1cm47IH1cclxuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGUoKSkgeyByZXR1cm47IH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0ID0ge307XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LnN0YXR1cyA9ICdhY3RpdmUnO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5wcm9jZXNzSUQgPSB0aGlzLnByb2dyYW1OYW1lO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5yZWN1cnJlbnQgPSB0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbjtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyID0ge307XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDEpIHtcclxuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5maXJzdEV4ZWN1dGlvbiA9IGAke2RhdGUuZ2V0RnVsbFllYXIoKX0tJHsoZGF0ZS5nZXRNb250aCgpICsgMSl9LSR7ZGF0ZS5nZXREYXRlKCl9VCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX06MDAuMDAwWmA7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5qc29uT2JqZWN0LmZpcnN0RXhlY3V0aW9uID0gYCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludERhdGV9VCR7dGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJ9OjAwLjAwMFpgO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zID0gW107XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zWzBdID0geyBjaGF2ZTogJ3Jwd1NlcnZlcicsIHZhbG9yOiB0aGlzLm1vZGVsLmV4ZWN1dGlvblNlcnZlciB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1sxXSA9IHsgY2hhdmU6ICdSUFdfUFJPR1JBTScsIHZhbG9yOiB0aGlzLmV4dGVybmFsTmFtZSB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1syXSA9IHsgY2hhdmU6ICdSUFdfUFJHX0VNUzUnLCB2YWxvcjogdGhpcy5wcm9ncmFtRU1TNSA/ICd5ZXMnIDogJ25vJyB9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1szXSA9IHsgY2hhdmU6ICdSUFdfUFJHX1ZFUlMnLCB2YWxvcjogdGhpcy5wcm9ncmFtVmVyc2lvbiB9O1xyXG5cclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0gPSB7fTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbNF0ucGFyYW1ldHJvc19uZWdvY2lvID0gdGhpcy5wYXJhbWV0ZXJzO1xyXG5cclxuICAgICAgICAvLyBFeGVjdXRhIGhvamUgb3UgYWdlbmRhZGFcclxuICAgICAgICB0aGlzLnJwd1NlcnZpY2UuY3JlYXRlRXhlY3V0aW9uKHRoaXMuanNvbk9iamVjdCwgdGhpcy5sb2FkaW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLnN1Y2Nlc3MoJ0FnZW5kYW1lbnRvIHJlYWxpemFkbyBjb20gc3VjZXNzbyAhJyk7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbikge1xyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3QuZGFpbHkgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnaCcpLFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCAnbScpXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAyKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3Qud2Vla2x5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXlzT2ZXZWVrOiB0aGlzLm1vZGVsLnNlbGVjdFdlZWtseXNcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPT09IDMpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5tb250aGx5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKSxcclxuICAgICAgICAgICAgICAgICAgICBkYXk6IHRoaXMubW9kZWwuZGF5T2ZNb250aFxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNGcmVucXVlbmN5KCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5yYW5nZUV4ZWN1dGlvbnMgPSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZnJlcXVlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VHlwZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMubW9kZWwuZnJlcXVlbmN5VmFsdWVcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHJhbmdlTGltaXQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaG91cjogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsLCAnbScpXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy8gRXhlY3V0YSBhIGRpw6FyaWEsIHNlbWFuYWwgb3UgbWVuc2FsXHJcbiAgICAgICAgICAgIHRoaXMucnB3U2VydmljZS5jcmVhdGVFeGVjdXRpb24odGhpcy5qc29uT2JqZWN0LCB0aGlzLmxvYWRpbmcpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbmRFeGVjdXRpb24uZW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRIb3VyT3JNaW51dGUodmFsdWU6IHN0cmluZywgdHlwZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAodHlwZSA9PT0gJ2gnKSB7IHJldHVybiArdmFsdWUuc3Vic3RyaW5nKDAsIDIpOyB9XHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdtJykgeyByZXR1cm4gK3ZhbHVlLnN1YnN0cmluZygzLCA2KTsgfVxyXG4gICAgfVxyXG5cclxuICAgIGNvbXBhcmVIb3VyKGhvdXJJbml0OiBzdHJpbmcsIGhvdXJGaW5hbDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKGhvdXJJbml0ID09PSBob3VyRmluYWwpIHsgcmV0dXJuIGZhbHNlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnaCcpIDwgdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnaCcpKSB7IHJldHVybiB0cnVlOyB9XHJcbiAgICAgICAgaWYgKHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJJbml0LCAnbScpID4gdGhpcy5nZXRIb3VyT3JNaW51dGUoaG91ckZpbmFsLCAnbScpKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG5cclxuICAgICAgICBpZiAoIXRoaXMuc2NoZWR1bGVFeGVjdXRpb25Gb3JtLnZhbGlkKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ1ZlcmlmaXF1ZSBhcyBpbmNvbnNpc3TDqm5jaWFzIGVtIHRlbGEuJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjdXRpb25TZXJ2ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignU2Vydmlkb3IgZGUgRXhlY3XDp8OjbyBuw6NvIGZvaSBpbmZvcm1hZG8uJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmlzRXhlY3V0aW9uU2NoZWR1bGUoKSAmJiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnREYXRlIHx8ICF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91cikpIHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBkYXRhIGUgYSBob3JhIHBhcmEgYWdlbmRhbWVudG8gZGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uKSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdJbmZvcm1hciBhIGhvcmEgZGUgaW7DrWNpbyBwYXJhIGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMiAmJiAodGhpcy5tb2RlbC5zZWxlY3RXZWVrbHlzLmxlbmd0aCA9PT0gMCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIG9zIGRpYXMgZGEgc2VtYW5hIHBhcmEgYSBleGVjdcOnw6NvLicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAzICYmICghdGhpcy5tb2RlbC5kYXlPZk1vbnRoKSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgbyBkaWEgcGFyYSBhIGV4ZWN1w6fDo28uJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRnJlbnF1ZW5jeSgpKSB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29tcGFyZUhvdXIodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0LCB0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0hvcmEgRmltIGRldmUgc2VyIG1haW9yIHF1ZSBIb3JhIEluw61jaW8uJyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBmcmVxdcOqbmNpYSBkZSBleGVjdcOnw6NvIChBIGNhZGEgaG9yYS9taW51dG8pLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuIiwiPGZvcm0gI3NjaGVkdWxlRXhlY3V0aW9uRm9ybT1cIm5nRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiPlxyXG4gICAgICAgIDxwby1yYWRpby1ncm91cCBcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGVjdXRpb25UeXBlXCJcclxuICAgICAgICAgICAgcC1sYWJlbD1cIkRhdGEgZGUgRXhlY3XDp8Ojb1wiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjdXRpb25UeXBlXCJcclxuICAgICAgICAgICAgW3Atb3B0aW9uc109XCJleGVjdXRpb25UeXBlT3B0aW9uc1wiXHJcbiAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VFeGVjdXRpb25UeXBlKClcIj5cclxuICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG5cclxuICAgICAgICA8cG8tZGF0ZXBpY2tlciAqbmdJZj1pc0V4ZWN1dGlvblNjaGVkdWxlKClcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgbmFtZT1cIm1vZGVsLmV4ZWNBcHBvaW50RGF0ZVwiXHJcbiAgICAgICAgICAgIHAtbGFiZWw9XCJBZ2VuZGFyIHBhcmFcIlxyXG4gICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnREYXRlXCI+XHJcbiAgICAgICAgPC9wby1kYXRlcGlja2VyPlxyXG5cclxuICAgICAgICA8cG8taW5wdXQgKm5nSWY9aXNFeGVjdXRpb25TY2hlZHVsZSgpXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiSG9yYVwiXHJcbiAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91clwiPlxyXG4gICAgICAgIDwvcG8taW5wdXQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgPHBvLWxvb2t1cFxyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgbmFtZT1cImV4ZWN1dGlvblNlcnZlclwiXHJcbiAgICAgICAgICAgIHAtbGFiZWw9XCJTZXJ2aWRvciBkZSBFeGVjdcOnw6NvXCJcclxuICAgICAgICAgICAgcC1wbGFjZWhvbGRlcj1cIlNlcnZpZG9yIGRlIEV4ZWN1w6fDo29cIlxyXG4gICAgICAgICAgICBbcC1jb2x1bW5zXT1cInpvb21ScHdTZXJ2aWNlQ29sdW1uc1wiXHJcbiAgICAgICAgICAgIFtwLWZpZWxkLWZvcm1hdF09XCJmaWVsZFJwd1NlcnZpY2VGb3JtYXRcIlxyXG4gICAgICAgICAgICBbcC1maWx0ZXItc2VydmljZV09XCJycHdTZXJ2aWNlXCJcclxuICAgICAgICAgICAgcC1maWVsZC1sYWJlbD1cIm5hbWVcIlxyXG4gICAgICAgICAgICBwLWZpZWxkLXZhbHVlPVwiY29kZVwiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjdXRpb25TZXJ2ZXJcIj5cclxuICAgICAgICA8L3BvLWxvb2t1cD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIj5cclxuICAgICAgICA8cG8tc3dpdGNoXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJyZXBlYXRFeGVjdXRpb25cIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiUmVwZXRpciBvY29ycsOqbmNpYSA/XCJcclxuICAgICAgICAgICAgcC1sYWJlbC1vZmY9XCJOw6NvXCJcclxuICAgICAgICAgICAgcC1sYWJlbC1vbj1cIlNpbVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwucmVwZWF0RXhlY3V0aW9uXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2hhbmdlUmVwZWF0RXhlY3V0aW9uKClcIj5cclxuICAgICAgICA8L3BvLXN3aXRjaD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3dcIiAqbmdJZj1cImlzUmVwZWF0RXhlY3V0aW9uKClcIj5cclxuICAgICBcclxuICAgICAgICA8cG8tdGFicz5cclxuXHJcbiAgICAgICAgICAgIDxwby10YWIgXHJcbiAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRGnDoXJpYVwiIFxyXG4gICAgICAgICAgICAgICAgW3AtYWN0aXZlXT1cImdldEFjdGl2ZVRhYigxKVwiIFxyXG4gICAgICAgICAgICAgICAgKHAtY2xpY2spPVwic2V0QWN0aXZlVGFiKDEpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tcmFkaW8tZ3JvdXAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5RGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRnJlcXXDqm5jaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWNvbHVtbnM9MVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImNoYW5nZVR5cGVGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VySW5pdERhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgSW7DrWNpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckZpbmFsRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBGaW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW51bWJlciAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS01IHBvLW1kLTUgcG8tbGctNSBwby14bC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeVZhbHVlRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiQSBjYWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW5sZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXg9XCI5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8cG8tc2VsZWN0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLW10LTMgcG8tc20tNyBwby1tZC03IHBvLWxnLTcgcG8teGwtN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lUeXBlRGFpbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lUeXBlT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9wby10YWI+XHJcblxyXG4gICAgICAgICAgICA8cG8tdGFiIFxyXG4gICAgICAgICAgICAgICAgcC1sYWJlbD1cIlNlbWFuYWxcIlxyXG4gICAgICAgICAgICAgICAgW3AtYWN0aXZlXT1cImdldEFjdGl2ZVRhYigyKVwiXHJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJzZXRBY3RpdmVUYWIoMilcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW11bHRpc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic2VsZWN0V2Vla2x5c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJEaWFzIGRhIFNlbWFuYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGxhY2Vob2xkZXI9XCJFc2NvbGhhIG9zIGRpYXMgZGEgc2VtYW5hXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnNlbGVjdFdlZWtseXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cIndlZWtseU9wdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW11bHRpc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tcmFkaW8tZ3JvdXAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5V2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkZyZXF1w6puY2lhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1jb2x1bW5zPTFcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VUeXBlRnJlcXVlbmN5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cG8taW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckluaXRXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBJbsOtY2lvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckZpbmFsV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgRmltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tbnVtYmVyICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTUgcG8tbWQtNSBwby1sZy01IHBvLXhsLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VmFsdWVXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiQSBjYWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW5sZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXg9XCI5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXNlbGVjdCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1tdC0zIHBvLXNtLTcgcG8tbWQtNyBwby1sZy03IHBvLXhsLTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VHlwZVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cImZyZXF1ZW5jeVR5cGVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3BvLXRhYj5cclxuXHJcbiAgICAgICAgICAgIDxwby10YWIgXHJcbiAgICAgICAgICAgICAgICBwLWxhYmVsPVwiTWVuc2FsXCIgXHJcbiAgICAgICAgICAgICAgICBbcC1hY3RpdmVdPVwiZ2V0QWN0aXZlVGFiKDMpXCIgXHJcbiAgICAgICAgICAgICAgICAocC1jbGljayk9XCJzZXRBY3RpdmVUYWIoMylcIj5cclxuXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW51bWJlclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTMgcG8tbWQtMyBwby1sZy0zIHBvLXhsLTNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZGF5T2ZNb250aFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJEaWEgZG8gbcOqc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4bGVuZ3RoPVwiMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4PVwiMzFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZGF5T2ZNb250aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tbnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeU1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRnJlcXXDqm5jaWFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWNvbHVtbnM9MVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImNoYW5nZVR5cGVGcmVxdWVuY3koKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJJbml0TW9udGhseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJIb3JhIEluw61jaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJJbml0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1pbnB1dD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLWlucHV0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VyRmluYWxXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBGaW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1udW1iZXIgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNSBwby1tZC01IHBvLWxnLTUgcG8teGwtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lWYWx1ZVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJBIGNhZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbmxlbmd0aD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heGxlbmd0aD1cIjNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heD1cIjk5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tbnVtYmVyPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tc2VsZWN0ICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLW10LTMgcG8tc20tNyBwby1tZC03IHBvLWxnLTcgcG8teGwtN1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lUeXBlV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5VHlwZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvcG8tdGFiPlxyXG4gICAgICAgIDwvcG8tdGFicz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiIHN0eWxlPVwicGFkZGluZy10b3A6IDE1cHg7XCI+XHJcbiAgICAgICAgPHBvLWJ1dHRvblxyXG4gICAgICAgICAgICBzdHlsZT1cImZsb2F0OiByaWdodDtcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiR2VyYXIgQWdlbmRhbWVudG8gUlBXXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZVNjaGVkdWxlKClcIj5cclxuICAgICAgICA8L3BvLWJ1dHRvbj5cclxuICAgIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
|
package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs
CHANGED
|
@@ -175,9 +175,9 @@ export class TotvsScheduleExecutionService {
|
|
|
175
175
|
return str;
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
|
-
/** @nocollapse */ TotvsScheduleExecutionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.
|
|
179
|
-
/** @nocollapse */ TotvsScheduleExecutionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.
|
|
180
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.
|
|
178
|
+
/** @nocollapse */ TotvsScheduleExecutionService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TotvsScheduleExecutionService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
179
|
+
/** @nocollapse */ TotvsScheduleExecutionService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TotvsScheduleExecutionService });
|
|
180
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TotvsScheduleExecutionService, decorators: [{
|
|
181
181
|
type: Injectable
|
|
182
182
|
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvY29tcG9uZW50cy90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBMEMsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFhdEMsWUFBbUIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVgzQixZQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRXRELG1CQUFjLEdBQUcsMkRBQTJELENBQUM7UUFDN0Usb0JBQWUsR0FBRywyREFBMkQsQ0FBQztRQUM5RSxvQkFBZSxHQUFHLDJEQUEyRCxDQUFDO0lBTy9DLENBQUM7SUFFeEMsZ0JBQWdCLENBQUMsTUFBbUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUV0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDM0MsU0FBUyxDQUFDLElBQUksQ0FBQyxlQUFlLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQVU7UUFDdkIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBTSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxlQUFlLENBQUMsVUFBa0IsRUFBRSxPQUFnQjtRQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBRTdFLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzFFO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzVEO0lBQ0wsQ0FBQztJQUVELHFCQUFxQixDQUFDLGVBQXFDLEVBQUUsT0FBZ0I7UUFDekUsSUFBSSxpQkFBc0IsQ0FBQztRQUMzQixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXhCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDbEYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzlELE1BQU0sQ0FBQyxjQUFjLEdBQUcsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdEQ7UUFFRCxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDdkIsaUJBQWlCLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUNwQyxpQkFBaUIsQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUNqRCxpQkFBaUIsQ0FBQyxjQUFjLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ2xMLGlCQUFpQixDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFcEMsaUJBQWlCLENBQUMsa0JBQWtCLEdBQUc7WUFDbkMsVUFBVSxFQUFFO2dCQUNSLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLGVBQWUsRUFBRTtnQkFDckQsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsWUFBWSxFQUFFO2dCQUNwRCxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFO2dCQUNuRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxjQUFjLEVBQUU7Z0JBQ3ZELEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGNBQWMsRUFBRTthQUNoRDtTQUNKLENBQUM7UUFFRixJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3JGO2FBQU07WUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLGlCQUFpQixDQUFDLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsYUFBcUIsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUM5RCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLGtCQUFrQixhQUFhLEVBQUUsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDdkMsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQ3hFLENBQUM7SUFDTixDQUFDO0lBRUQseUJBQXlCLENBQUMsV0FBbUIsRUFBRSxPQUFPLEdBQUcsS0FBSztRQUMxRCxNQUFNLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksV0FBVyxFQUFFLENBQUM7UUFDckQsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUN0RSxDQUFDO0lBQ04sQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFXLEVBQUUsT0FBZ0I7UUFDOUMsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDM0M7YUFBTTtZQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7SUFDTCxDQUFDO0lBRU8sa0JBQWtCLENBQUMsSUFBWSxFQUFFLFFBQWE7UUFDbEQsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBQzVFLFFBQVEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRTdCLE1BQU0sVUFBVSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7UUFDekMsVUFBVSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDO1FBQ2xELFVBQVUsQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUM5QyxVQUFVLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDOUMsVUFBVSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUVwQyxPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRUQsMEJBQTBCLENBQUMsYUFBcUIsRUFBRSxXQUFtQixFQUFFLFdBQXFCLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDekcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsd0JBQXdCLENBQUMsV0FBbUIsRUFBRSxXQUFtQixFQUFFLFdBQXFCLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDckcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRU8saUJBQWlCLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFDbEQsV0FBbUIsRUFBRSxXQUFxQixFQUFFLE9BQWdCO1FBRTVELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7UUFFdEMsTUFBTSxVQUFVLEdBQUcsV0FBVyxDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLGVBQWUsRUFBRSxDQUFDO1lBQ3pDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BFLFVBQVUsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2hFLFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1lBQzlCLFVBQVUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLFVBQVUsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDLENBQUMscUNBQXFDO1lBRXBFLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO2dCQUFFLE9BQU87YUFBRTtZQUUvQyxJQUFJLElBQUksS0FBSyxlQUFlLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztxQkFDN0UsU0FBUyxDQUFDLENBQUMsUUFBMEIsRUFBRSxFQUFFO29CQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNyRixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDVCxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzdFLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7WUFFRCxJQUFJLElBQUksS0FBSyxhQUFhLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztxQkFDM0UsU0FBUyxDQUFDLENBQUMsUUFBMEIsRUFBRSxFQUFFO29CQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO2dCQUNyRixDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDVCxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQzdFLENBQUMsQ0FBQyxDQUFDO2FBQ1Y7UUFFTCxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE1BQWMsRUFBRSxVQUE0QixFQUFFLFFBQTBCLEVBQ2pHLFVBQWUsRUFBRSxXQUFxQjtRQUV0QyxJQUFJLFFBQVEsRUFBRTtZQUNWLFVBQVUsR0FBRyxRQUFRLENBQUM7U0FDekI7YUFBTTtZQUNILFVBQVUsQ0FBQyxLQUFLLEdBQUcsc0NBQXNDLE1BQU0sRUFBRSxDQUFDO1lBQ2xFLFVBQVUsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ2pDO1FBRUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDeEIsVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTO1lBQy9CLFVBQVUsQ0FBQyxNQUFNLEtBQUssU0FBUyxFQUFFO1lBQ2pDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVPLHVCQUF1QixDQUFDLEtBQVUsRUFBRSxVQUE0QixFQUNwRSxVQUFlLEVBQUUsV0FBcUI7UUFFdEMsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO1lBQ3BDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3pCLElBQUksS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDYixRQUFRLEdBQUcsRUFBRSxDQUFDO2dCQUNkLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7b0JBQUUsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2lCQUFFO2dCQUN0RCxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFO29CQUFFLFFBQVEsR0FBRyxHQUFHLFFBQVEsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO2lCQUFFO2dCQUMvRSxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO29CQUFFLFFBQVEsR0FBRyxHQUFHLFFBQVEsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO2lCQUFFO2FBQ2xHO1NBQ0o7YUFBTTtZQUNILFFBQVEsR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFFRCxVQUFVLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztRQUM1QixVQUFVLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUM5QixXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEIsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVPLE9BQU8sQ0FBQyxHQUFXO1FBQ3ZCLElBQUksR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDbkIsSUFBSSxHQUFHLEdBQUcsRUFBRSxFQUFFO1lBQUUsR0FBRyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7U0FBRTtRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7OzhJQXpNUSw2QkFBNkI7a0pBQTdCLDZCQUE2Qjs0RkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBFeGVjdXRpb25TdGF0dXMsIElFeGVjdXRpb25QYXJhbWV0ZXJzLCBJRXhlY3V0aW9uU3RhdHVzIH0gZnJvbSAnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgaGVhZGVycyA9IHsgaGVhZGVyczogeyAnWC1QTy1TY3JlZW4tTG9jayc6ICd0cnVlJyB9IH07XHJcblxyXG4gICAgcHJpdmF0ZSB1cmxDYWRTZXJ2aWRvciA9ICcvZHRzL2RhdGFzdWwtcmVzdC9yZXNvdXJjZXMvcHJnL2J0Yi92MS9zZXJ2aWRvcmVzRXhlY3VjYW8nO1xyXG4gICAgcHJpdmF0ZSB1cmxKb2JTY2hlZHVsZXIgPSAnL2R0cy9kYXRhc3VsLXJlc3QvcmVzb3VyY2VzL3ByZy9mcmFtZXdvcmsvdjEvam9iU2NoZWR1bGVyJztcclxuICAgIHByaXZhdGUgdXJsSm9iRXhlY3V0aW9uID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZnJhbWV3b3JrL3YxL2pvYkV4ZWN1dGlvbic7XHJcblxyXG4gICAgLy8gcHJpdmF0ZSB1cmxDYWRTZXJ2aWRvciA9ICcvZ2VuZXJpY3Nab29tJztcclxuICAgIC8vIHByaXZhdGUgdXJsSm9iU2NoZWR1bGVyID0gJy9qb2JTY2hlZHVsZXInO1xyXG5cclxuICAgIHByaXZhdGUgam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgICBnZXRGaWx0ZXJlZEl0ZW1zKHBhcmFtczogUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuICAgICAgICB1cmxQYXJhbXMucHVzaChgcGFnZVNpemU9JHtwYXJhbXMucGFnZVNpemUudG9TdHJpbmcoKX1gKTtcclxuICAgICAgICB1cmxQYXJhbXMucHVzaChgcGFnZT0ke3BhcmFtcy5wYWdlLnRvU3RyaW5nKCl9YCk7XHJcblxyXG4gICAgICAgIGlmIChwYXJhbXMuZmlsdGVyICYmIHBhcmFtcy5maWx0ZXIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgcXVpY2tTZWFyY2g9JHtwYXJhbXMuZmlsdGVyfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmxDYWRTZXJ2aWRvcn0/JHt1cmxQYXJhbXMuam9pbignJicpfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9iamVjdEJ5VmFsdWUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnVybENhZFNlcnZpZG9yfS8ke2lkfWAsIHRoaXMuaGVhZGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRXhlY3V0aW9uKHBhcmFtZXRlcnM6IE9iamVjdCwgbG9hZGluZzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnKnwnKSk7XHJcblxyXG4gICAgICAgIGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVybEpvYlNjaGVkdWxlcn1gLCBwYXJhbXMsIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXJsSm9iU2NoZWR1bGVyfWAsIHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUV4ZWN1dGlvbkZvck5vdyhleGVjdXRpb25QYXJhbXM6IElFeGVjdXRpb25QYXJhbWV0ZXJzLCBsb2FkaW5nOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBsZXQgam9iU2NoZWR1bGVQYXJhbXM6IGFueTtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShleGVjdXRpb25QYXJhbXMpLnJlcGxhY2UoL1xcXFxcXFxcL2csICcqfCcpKTtcclxuICAgICAgICBpZiAoIXBhcmFtcy5idXNpbmVzc1BhcmFtcyB8fCBwYXJhbXMuYnVzaW5lc3NQYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5idXNpbmVzc1BhcmFtcyA9IFt7IGNoYXZlOiAnJywgdmFsb3I6ICcnIH1dO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMgPSB7fTtcclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5zdGF0dXMgPSAnYWN0aXZlJztcclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5wcm9jZXNzSUQgPSBwYXJhbXMucHJvZ3JhbU5hbWU7XHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMuZmlyc3RFeGVjdXRpb24gPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7KGRhdGUuZ2V0TW9udGgoKSArIDEpfS0ke2RhdGUuZ2V0RGF0ZSgpfVQke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9OjAwLjAwMFpgO1xyXG4gICAgICAgIGpvYlNjaGVkdWxlUGFyYW1zLnJlY3VycmVudCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5leGVjdXRpb25QYXJhbWV0ZXIgPSB7XHJcbiAgICAgICAgICAgIHBhcmFtZXRyb3M6IFtcclxuICAgICAgICAgICAgICAgIHsgY2hhdmU6ICdycHdTZXJ2ZXInLCB2YWxvcjogcGFyYW1zLmV4ZWN1dGlvblNlcnZlciB9LFxyXG4gICAgICAgICAgICAgICAgeyBjaGF2ZTogJ1JQV19QUk9HUkFNJywgdmFsb3I6IHBhcmFtcy5leHRlcm5hbE5hbWUgfSxcclxuICAgICAgICAgICAgICAgIHsgY2hhdmU6ICdSUFdfUFJHX0VNUzUnLCB2YWxvcjogcGFyYW1zLnByb2dyYW1FTVM1ID8gJ3llcycgOiAnbm8nIH0sXHJcbiAgICAgICAgICAgICAgICB7IGNoYXZlOiAnUlBXX1BSR19WRVJTJywgdmFsb3I6IHBhcmFtcy5wcm9ncmFtVmVyc2lvbiB9LFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbWV0cm9zX25lZ29jaW86IHBhcmFtcy5idXNpbmVzc1BhcmFtcyB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51cmxKb2JTY2hlZHVsZXJ9YCwgam9iU2NoZWR1bGVQYXJhbXMsIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXJsSm9iU2NoZWR1bGVyfWAsIGpvYlNjaGVkdWxlUGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RXhlY3V0aW9uQnlKb2JTY2hlZHVsZUlEKGpvYlNjaGVkdWxlSUQ6IHN0cmluZywgbG9hZGluZyA9IGZhbHNlKTogT2JzZXJ2YWJsZTxJRXhlY3V0aW9uU3RhdHVzPiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxKb2JFeGVjdXRpb259P2pvYlNjaGVkdWxlSUQ9JHtqb2JTY2hlZHVsZUlEfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0aW9uKHVybCwgbG9hZGluZykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy50cmFuc2Zvcm1FeGVjdXRpb24oJ2pvYlNjaGVkdWxlSUQnLCByZXNwb25zZSkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFeGVjdXRpb25CeUV4ZWN1dGlvbklEKGV4ZWN1dGlvbklEOiBzdHJpbmcsIGxvYWRpbmcgPSBmYWxzZSk6IE9ic2VydmFibGU8SUV4ZWN1dGlvblN0YXR1cz4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsSm9iRXhlY3V0aW9ufS8ke2V4ZWN1dGlvbklEfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0aW9uKHVybCwgbG9hZGluZykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy50cmFuc2Zvcm1FeGVjdXRpb24oJ2V4ZWN1dGlvbklEJywgcmVzcG9uc2UpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFeGVjdXRpb24odXJsOiBzdHJpbmcsIGxvYWRpbmc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgdGhpcy5oZWFkZXJzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyYW5zZm9ybUV4ZWN1dGlvbih0eXBlOiBzdHJpbmcsIHJlc3BvbnNlOiBhbnkpOiBJRXhlY3V0aW9uU3RhdHVzIHtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5pdGVtcyB8fCByZXNwb25zZS5pdGVtcy5sZW5ndGggPT09IDApIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5pdGVtc1swXTtcclxuXHJcbiAgICAgICAgY29uc3QgZXhlY1N0YXR1cyA9IG5ldyBFeGVjdXRpb25TdGF0dXMoKTtcclxuICAgICAgICBleGVjU3RhdHVzLmpvYlNjaGVkdWxlSUQgPSByZXNwb25zZS5qb2JTY2hlZHVsZUlEO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuZXhlY3V0aW9uSUQgPSByZXNwb25zZS5leGVjdXRpb25JRDtcclxuICAgICAgICBleGVjU3RhdHVzLnN0YXJ0ZWREYXRlID0gcmVzcG9uc2Uuc3RhcnRlZERhdGU7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5lcnJvciA9IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xyXG5cclxuICAgICAgICByZXR1cm4gZXhlY1N0YXR1cztcclxuICAgIH1cclxuXHJcbiAgICBmb2xsb3dVcEV4Y0J5Sm9iU2NoZWR1bGVJRChqb2JTY2hlZHVsZUlEOiBzdHJpbmcsIGludGVydmFsTnVtOiBudW1iZXIsIGZuY0NhbGxCYWNrOiBGdW5jdGlvbiwgbG9hZGluZyA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWN1dGlvbignam9iU2NoZWR1bGVJRCcsIGpvYlNjaGVkdWxlSUQsIGludGVydmFsTnVtLCBmbmNDYWxsQmFjaywgbG9hZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sbG93VXBFeGNCeUV4ZWN1dGlvbklEKGV4ZWN1dGlvbklEOiBzdHJpbmcsIGludGVydmFsTnVtOiBudW1iZXIsIGZuY0NhbGxCYWNrOiBGdW5jdGlvbiwgbG9hZGluZyA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWN1dGlvbignZXhlY3V0aW9uSUQnLCBleGVjdXRpb25JRCwgaW50ZXJ2YWxOdW0sIGZuY0NhbGxCYWNrLCBsb2FkaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZvbGxvd1VwRXhlY3V0aW9uKHR5cGU6IHN0cmluZywgZXhlY0lEOiBzdHJpbmcsXHJcbiAgICAgICAgaW50ZXJ2YWxOdW06IG51bWJlciwgZm5jQ2FsbEJhY2s6IEZ1bmN0aW9uLCBsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IG51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVydmFsSUQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4ZWNTdGF0dXMgPSBuZXcgRXhlY3V0aW9uU3RhdHVzKCk7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuam9iU2NoZWR1bGVJRCA9ICh0eXBlID09PSAnam9iU2NoZWR1bGVJRCcpID8gZXhlY0lEIDogJyc7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuZXhlY3V0aW9uSUQgPSAodHlwZSA9PT0gJ2V4ZWN1dGlvbklEJykgPyBleGVjSUQgOiAnJztcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5zdGFydGVkRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuZXJyb3IgPSAnJztcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5zdGF0dXMgPSAnUEVORElORyc7IC8vIFBFTkRJTkcsIFJVTk5JTkcsIFNVQ0NFU1MsIEZBSUxVUkVcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pvYlNjaGVkdWxlSUQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSB0aGlzLmdldEV4ZWN1dGlvbkJ5Sm9iU2NoZWR1bGVJRChleGVjSUQsIGxvYWRpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQsIGV4ZWNTdGF0dXMsIHJlc3BvbnNlLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuRXJyb3IoZXJyb3IsIGV4ZWNTdGF0dXMsIGludGVydmFsSUQsIGZuY0NhbGxCYWNrKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdleGVjdXRpb25JRCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IHRoaXMuZ2V0RXhlY3V0aW9uQnlFeGVjdXRpb25JRChleGVjSUQsIGxvYWRpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQsIGV4ZWNTdGF0dXMsIHJlc3BvbnNlLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuRXJyb3IoZXJyb3IsIGV4ZWNTdGF0dXMsIGludGVydmFsSUQsIGZuY0NhbGxCYWNrKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LCBpbnRlcnZhbE51bSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQ6IHN0cmluZywgZXhlY1N0YXR1czogSUV4ZWN1dGlvblN0YXR1cywgcmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMsXHJcbiAgICAgICAgaW50ZXJ2YWxJRDogYW55LCBmbmNDYWxsQmFjazogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMgPSByZXNwb25zZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLmVycm9yID0gYEFnZW5kYW1lbnRvIG7Do28gZW5jb250cmFkbyBjb20gSUQ6ICR7ZXhlY0lEfWA7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gJ0ZBSUxVUkUnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFmbmNDYWxsQmFjayhleGVjU3RhdHVzKSB8fFxyXG4gICAgICAgICAgICBleGVjU3RhdHVzLnN0YXR1cyA9PT0gJ1NVQ0NFU1MnIHx8XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID09PSAnRkFJTFVSRScpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb2xsb3dVcEV4ZWNSZXR1cm5FcnJvcihlcnJvcjogYW55LCBleGVjU3RhdHVzOiBJRXhlY3V0aW9uU3RhdHVzLFxyXG4gICAgICAgIGludGVydmFsSUQ6IGFueSwgZm5jQ2FsbEJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XHJcblxyXG4gICAgICAgIGxldCBlcnJvRGVzYyA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBlcnJvRGVzYyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgZXJyb0Rlc2MgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlKSB7IGVycm9EZXNjID0gZXJyb3IuZXJyb3IuY29kZTsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLm1lc3NhZ2UpIHsgZXJyb0Rlc2MgPSBgJHtlcnJvRGVzY30gLSAke2Vycm9yLmVycm9yLm1lc3NhZ2V9YDsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLmRldGFpbGVkTWVzc2FnZSkgeyBlcnJvRGVzYyA9IGAke2Vycm9EZXNjfSAtICR7ZXJyb3IuZXJyb3IuZGV0YWlsZWRNZXNzYWdlfWA7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVycm9EZXNjID0gZXJyb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBleGVjU3RhdHVzLmVycm9yID0gZXJyb0Rlc2M7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5zdGF0dXMgPSAnRkFJTFVSRSc7XHJcbiAgICAgICAgZm5jQ2FsbEJhY2soZXhlY1N0YXR1cyk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGAke251bX1gO1xyXG4gICAgICAgIGlmIChudW0gPCAxMCkgeyBzdHIgPSBgMCR7bnVtfWA7IH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kdHMtYmFja29mZmljZS11dGlsL3NyYy9saWIvY29tcG9uZW50cy90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckMsT0FBTyxFQUFFLGVBQWUsRUFBMEMsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBRzNHLE1BQU0sT0FBTyw2QkFBNkI7SUFhdEMsWUFBbUIsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQVgzQixZQUFPLEdBQUcsRUFBRSxPQUFPLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBRXRELG1CQUFjLEdBQUcsMkRBQTJELENBQUM7UUFDN0Usb0JBQWUsR0FBRywyREFBMkQsQ0FBQztRQUM5RSxvQkFBZSxHQUFHLDJEQUEyRCxDQUFDO0lBTy9DLENBQUM7SUFFeEMsZ0JBQWdCLENBQUMsTUFBbUM7UUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUV0QyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpELElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLENB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RyxFQUFFLENBQUM7U0FBRTtRQUNsQyxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7OzZJQXpNUSw2QkFBNkI7aUpBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUR6QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBFeGVjdXRpb25TdGF0dXMsIElFeGVjdXRpb25QYXJhbWV0ZXJzLCBJRXhlY3V0aW9uU3RhdHVzIH0gZnJvbSAnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24ubW9kZWwnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgVG90dnNTY2hlZHVsZUV4ZWN1dGlvblNlcnZpY2Uge1xyXG5cclxuICAgIHByaXZhdGUgaGVhZGVycyA9IHsgaGVhZGVyczogeyAnWC1QTy1TY3JlZW4tTG9jayc6ICd0cnVlJyB9IH07XHJcblxyXG4gICAgcHJpdmF0ZSB1cmxDYWRTZXJ2aWRvciA9ICcvZHRzL2RhdGFzdWwtcmVzdC9yZXNvdXJjZXMvcHJnL2J0Yi92MS9zZXJ2aWRvcmVzRXhlY3VjYW8nO1xyXG4gICAgcHJpdmF0ZSB1cmxKb2JTY2hlZHVsZXIgPSAnL2R0cy9kYXRhc3VsLXJlc3QvcmVzb3VyY2VzL3ByZy9mcmFtZXdvcmsvdjEvam9iU2NoZWR1bGVyJztcclxuICAgIHByaXZhdGUgdXJsSm9iRXhlY3V0aW9uID0gJy9kdHMvZGF0YXN1bC1yZXN0L3Jlc291cmNlcy9wcmcvZnJhbWV3b3JrL3YxL2pvYkV4ZWN1dGlvbic7XHJcblxyXG4gICAgLy8gcHJpdmF0ZSB1cmxDYWRTZXJ2aWRvciA9ICcvZ2VuZXJpY3Nab29tJztcclxuICAgIC8vIHByaXZhdGUgdXJsSm9iU2NoZWR1bGVyID0gJy9qb2JTY2hlZHVsZXInO1xyXG5cclxuICAgIHByaXZhdGUgam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50KSB7IH1cclxuXHJcbiAgICBnZXRGaWx0ZXJlZEl0ZW1zKHBhcmFtczogUG9Mb29rdXBGaWx0ZXJlZEl0ZW1zUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xyXG5cclxuICAgICAgICB1cmxQYXJhbXMucHVzaChgcGFnZVNpemU9JHtwYXJhbXMucGFnZVNpemUudG9TdHJpbmcoKX1gKTtcclxuICAgICAgICB1cmxQYXJhbXMucHVzaChgcGFnZT0ke3BhcmFtcy5wYWdlLnRvU3RyaW5nKCl9YCk7XHJcblxyXG4gICAgICAgIGlmIChwYXJhbXMuZmlsdGVyICYmIHBhcmFtcy5maWx0ZXIubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICB1cmxQYXJhbXMucHVzaChgcXVpY2tTZWFyY2g9JHtwYXJhbXMuZmlsdGVyfWApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmxDYWRTZXJ2aWRvcn0/JHt1cmxQYXJhbXMuam9pbignJicpfWApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldE9iamVjdEJ5VmFsdWUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8YW55PihgJHt0aGlzLnVybENhZFNlcnZpZG9yfS8ke2lkfWAsIHRoaXMuaGVhZGVycyk7XHJcbiAgICB9XHJcblxyXG4gICAgY3JlYXRlRXhlY3V0aW9uKHBhcmFtZXRlcnM6IE9iamVjdCwgbG9hZGluZzogYm9vbGVhbik6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShwYXJhbWV0ZXJzKS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnKnwnKSk7XHJcblxyXG4gICAgICAgIGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnVybEpvYlNjaGVkdWxlcn1gLCBwYXJhbXMsIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXJsSm9iU2NoZWR1bGVyfWAsIHBhcmFtcyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNyZWF0ZUV4ZWN1dGlvbkZvck5vdyhleGVjdXRpb25QYXJhbXM6IElFeGVjdXRpb25QYXJhbWV0ZXJzLCBsb2FkaW5nOiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICBsZXQgam9iU2NoZWR1bGVQYXJhbXM6IGFueTtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgY29uc3QgcGFyYW1zID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShleGVjdXRpb25QYXJhbXMpLnJlcGxhY2UoL1xcXFxcXFxcL2csICcqfCcpKTtcclxuICAgICAgICBpZiAoIXBhcmFtcy5idXNpbmVzc1BhcmFtcyB8fCBwYXJhbXMuYnVzaW5lc3NQYXJhbXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHBhcmFtcy5idXNpbmVzc1BhcmFtcyA9IFt7IGNoYXZlOiAnJywgdmFsb3I6ICcnIH1dO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMgPSB7fTtcclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5zdGF0dXMgPSAnYWN0aXZlJztcclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5wcm9jZXNzSUQgPSBwYXJhbXMucHJvZ3JhbU5hbWU7XHJcbiAgICAgICAgam9iU2NoZWR1bGVQYXJhbXMuZmlyc3RFeGVjdXRpb24gPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7KGRhdGUuZ2V0TW9udGgoKSArIDEpfS0ke2RhdGUuZ2V0RGF0ZSgpfVQke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9OjAwLjAwMFpgO1xyXG4gICAgICAgIGpvYlNjaGVkdWxlUGFyYW1zLnJlY3VycmVudCA9IGZhbHNlO1xyXG5cclxuICAgICAgICBqb2JTY2hlZHVsZVBhcmFtcy5leGVjdXRpb25QYXJhbWV0ZXIgPSB7XHJcbiAgICAgICAgICAgIHBhcmFtZXRyb3M6IFtcclxuICAgICAgICAgICAgICAgIHsgY2hhdmU6ICdycHdTZXJ2ZXInLCB2YWxvcjogcGFyYW1zLmV4ZWN1dGlvblNlcnZlciB9LFxyXG4gICAgICAgICAgICAgICAgeyBjaGF2ZTogJ1JQV19QUk9HUkFNJywgdmFsb3I6IHBhcmFtcy5leHRlcm5hbE5hbWUgfSxcclxuICAgICAgICAgICAgICAgIHsgY2hhdmU6ICdSUFdfUFJHX0VNUzUnLCB2YWxvcjogcGFyYW1zLnByb2dyYW1FTVM1ID8gJ3llcycgOiAnbm8nIH0sXHJcbiAgICAgICAgICAgICAgICB7IGNoYXZlOiAnUlBXX1BSR19WRVJTJywgdmFsb3I6IHBhcmFtcy5wcm9ncmFtVmVyc2lvbiB9LFxyXG4gICAgICAgICAgICAgICAgeyBwYXJhbWV0cm9zX25lZ29jaW86IHBhcmFtcy5idXNpbmVzc1BhcmFtcyB9XHJcbiAgICAgICAgICAgIF1cclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBpZiAobG9hZGluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy51cmxKb2JTY2hlZHVsZXJ9YCwgam9iU2NoZWR1bGVQYXJhbXMsIHRoaXMuaGVhZGVycyk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudXJsSm9iU2NoZWR1bGVyfWAsIGpvYlNjaGVkdWxlUGFyYW1zKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RXhlY3V0aW9uQnlKb2JTY2hlZHVsZUlEKGpvYlNjaGVkdWxlSUQ6IHN0cmluZywgbG9hZGluZyA9IGZhbHNlKTogT2JzZXJ2YWJsZTxJRXhlY3V0aW9uU3RhdHVzPiB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy51cmxKb2JFeGVjdXRpb259P2pvYlNjaGVkdWxlSUQ9JHtqb2JTY2hlZHVsZUlEfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0aW9uKHVybCwgbG9hZGluZykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy50cmFuc2Zvcm1FeGVjdXRpb24oJ2pvYlNjaGVkdWxlSUQnLCByZXNwb25zZSkpXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRFeGVjdXRpb25CeUV4ZWN1dGlvbklEKGV4ZWN1dGlvbklEOiBzdHJpbmcsIGxvYWRpbmcgPSBmYWxzZSk6IE9ic2VydmFibGU8SUV4ZWN1dGlvblN0YXR1cz4ge1xyXG4gICAgICAgIGNvbnN0IHVybCA9IGAke3RoaXMudXJsSm9iRXhlY3V0aW9ufS8ke2V4ZWN1dGlvbklEfWA7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RXhlY3V0aW9uKHVybCwgbG9hZGluZykucGlwZShcclxuICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4gdGhpcy50cmFuc2Zvcm1FeGVjdXRpb24oJ2V4ZWN1dGlvbklEJywgcmVzcG9uc2UpKVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRFeGVjdXRpb24odXJsOiBzdHJpbmcsIGxvYWRpbmc6IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgICAgIGlmIChsb2FkaW5nKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgdGhpcy5oZWFkZXJzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHRyYW5zZm9ybUV4ZWN1dGlvbih0eXBlOiBzdHJpbmcsIHJlc3BvbnNlOiBhbnkpOiBJRXhlY3V0aW9uU3RhdHVzIHtcclxuICAgICAgICBpZiAoIXJlc3BvbnNlIHx8ICFyZXNwb25zZS5pdGVtcyB8fCByZXNwb25zZS5pdGVtcy5sZW5ndGggPT09IDApIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgcmVzcG9uc2UgPSByZXNwb25zZS5pdGVtc1swXTtcclxuXHJcbiAgICAgICAgY29uc3QgZXhlY1N0YXR1cyA9IG5ldyBFeGVjdXRpb25TdGF0dXMoKTtcclxuICAgICAgICBleGVjU3RhdHVzLmpvYlNjaGVkdWxlSUQgPSByZXNwb25zZS5qb2JTY2hlZHVsZUlEO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuZXhlY3V0aW9uSUQgPSByZXNwb25zZS5leGVjdXRpb25JRDtcclxuICAgICAgICBleGVjU3RhdHVzLnN0YXJ0ZWREYXRlID0gcmVzcG9uc2Uuc3RhcnRlZERhdGU7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5lcnJvciA9IHJlc3BvbnNlLmVycm9yO1xyXG4gICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzO1xyXG5cclxuICAgICAgICByZXR1cm4gZXhlY1N0YXR1cztcclxuICAgIH1cclxuXHJcbiAgICBmb2xsb3dVcEV4Y0J5Sm9iU2NoZWR1bGVJRChqb2JTY2hlZHVsZUlEOiBzdHJpbmcsIGludGVydmFsTnVtOiBudW1iZXIsIGZuY0NhbGxCYWNrOiBGdW5jdGlvbiwgbG9hZGluZyA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWN1dGlvbignam9iU2NoZWR1bGVJRCcsIGpvYlNjaGVkdWxlSUQsIGludGVydmFsTnVtLCBmbmNDYWxsQmFjaywgbG9hZGluZyk7XHJcbiAgICB9XHJcblxyXG4gICAgZm9sbG93VXBFeGNCeUV4ZWN1dGlvbklEKGV4ZWN1dGlvbklEOiBzdHJpbmcsIGludGVydmFsTnVtOiBudW1iZXIsIGZuY0NhbGxCYWNrOiBGdW5jdGlvbiwgbG9hZGluZyA9IGZhbHNlKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWN1dGlvbignZXhlY3V0aW9uSUQnLCBleGVjdXRpb25JRCwgaW50ZXJ2YWxOdW0sIGZuY0NhbGxCYWNrLCBsb2FkaW5nKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZvbGxvd1VwRXhlY3V0aW9uKHR5cGU6IHN0cmluZywgZXhlY0lEOiBzdHJpbmcsXHJcbiAgICAgICAgaW50ZXJ2YWxOdW06IG51bWJlciwgZm5jQ2FsbEJhY2s6IEZ1bmN0aW9uLCBsb2FkaW5nOiBib29sZWFuKTogdm9pZCB7XHJcblxyXG4gICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IG51bGw7XHJcblxyXG4gICAgICAgIGNvbnN0IGludGVydmFsSUQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGV4ZWNTdGF0dXMgPSBuZXcgRXhlY3V0aW9uU3RhdHVzKCk7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuam9iU2NoZWR1bGVJRCA9ICh0eXBlID09PSAnam9iU2NoZWR1bGVJRCcpID8gZXhlY0lEIDogJyc7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuZXhlY3V0aW9uSUQgPSAodHlwZSA9PT0gJ2V4ZWN1dGlvbklEJykgPyBleGVjSUQgOiAnJztcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5zdGFydGVkRGF0ZSA9IG51bGw7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuZXJyb3IgPSAnJztcclxuICAgICAgICAgICAgZXhlY1N0YXR1cy5zdGF0dXMgPSAnUEVORElORyc7IC8vIFBFTkRJTkcsIFJVTk5JTkcsIFNVQ0NFU1MsIEZBSUxVUkVcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2pvYlNjaGVkdWxlSUQnKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSB0aGlzLmdldEV4ZWN1dGlvbkJ5Sm9iU2NoZWR1bGVJRChleGVjSUQsIGxvYWRpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQsIGV4ZWNTdGF0dXMsIHJlc3BvbnNlLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuRXJyb3IoZXJyb3IsIGV4ZWNTdGF0dXMsIGludGVydmFsSUQsIGZuY0NhbGxCYWNrKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGUgPT09ICdleGVjdXRpb25JRCcpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IHRoaXMuZ2V0RXhlY3V0aW9uQnlFeGVjdXRpb25JRChleGVjSUQsIGxvYWRpbmcpXHJcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQsIGV4ZWNTdGF0dXMsIHJlc3BvbnNlLCBpbnRlcnZhbElELCBmbmNDYWxsQmFjayk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSwgKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9sbG93VXBFeGVjUmV0dXJuRXJyb3IoZXJyb3IsIGV4ZWNTdGF0dXMsIGludGVydmFsSUQsIGZuY0NhbGxCYWNrKTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICB9LCBpbnRlcnZhbE51bSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb2xsb3dVcEV4ZWNSZXR1cm5PayhleGVjSUQ6IHN0cmluZywgZXhlY1N0YXR1czogSUV4ZWN1dGlvblN0YXR1cywgcmVzcG9uc2U6IElFeGVjdXRpb25TdGF0dXMsXHJcbiAgICAgICAgaW50ZXJ2YWxJRDogYW55LCBmbmNDYWxsQmFjazogRnVuY3Rpb24pOiB2b2lkIHtcclxuXHJcbiAgICAgICAgaWYgKHJlc3BvbnNlKSB7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMgPSByZXNwb25zZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICBleGVjU3RhdHVzLmVycm9yID0gYEFnZW5kYW1lbnRvIG7Do28gZW5jb250cmFkbyBjb20gSUQ6ICR7ZXhlY0lEfWA7XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID0gJ0ZBSUxVUkUnO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCFmbmNDYWxsQmFjayhleGVjU3RhdHVzKSB8fFxyXG4gICAgICAgICAgICBleGVjU3RhdHVzLnN0YXR1cyA9PT0gJ1NVQ0NFU1MnIHx8XHJcbiAgICAgICAgICAgIGV4ZWNTdGF0dXMuc3RhdHVzID09PSAnRkFJTFVSRScpIHtcclxuICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuam9iRXhlY3V0aW9uU3Vic2NyaXB0aW9uJCA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmb2xsb3dVcEV4ZWNSZXR1cm5FcnJvcihlcnJvcjogYW55LCBleGVjU3RhdHVzOiBJRXhlY3V0aW9uU3RhdHVzLFxyXG4gICAgICAgIGludGVydmFsSUQ6IGFueSwgZm5jQ2FsbEJhY2s6IEZ1bmN0aW9uKTogdm9pZCB7XHJcblxyXG4gICAgICAgIGxldCBlcnJvRGVzYyA9ICcnO1xyXG5cclxuICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xyXG4gICAgICAgICAgICBlcnJvRGVzYyA9IGVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICAgIGlmIChlcnJvci5lcnJvcikge1xyXG4gICAgICAgICAgICAgICAgZXJyb0Rlc2MgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmIChlcnJvci5lcnJvci5jb2RlKSB7IGVycm9EZXNjID0gZXJyb3IuZXJyb3IuY29kZTsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLm1lc3NhZ2UpIHsgZXJyb0Rlc2MgPSBgJHtlcnJvRGVzY30gLSAke2Vycm9yLmVycm9yLm1lc3NhZ2V9YDsgfVxyXG4gICAgICAgICAgICAgICAgaWYgKGVycm9yLmVycm9yLmRldGFpbGVkTWVzc2FnZSkgeyBlcnJvRGVzYyA9IGAke2Vycm9EZXNjfSAtICR7ZXJyb3IuZXJyb3IuZGV0YWlsZWRNZXNzYWdlfWA7IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGVycm9EZXNjID0gZXJyb3I7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBleGVjU3RhdHVzLmVycm9yID0gZXJyb0Rlc2M7XHJcbiAgICAgICAgZXhlY1N0YXR1cy5zdGF0dXMgPSAnRkFJTFVSRSc7XHJcbiAgICAgICAgZm5jQ2FsbEJhY2soZXhlY1N0YXR1cyk7XHJcbiAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRlcnZhbElEKTtcclxuICAgICAgICB0aGlzLmpvYkV4ZWN1dGlvblN1YnNjcmlwdGlvbiQgPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgYWRkWmVybyhudW06IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgbGV0IHN0ciA9IGAke251bX1gO1xyXG4gICAgICAgIGlmIChudW0gPCAxMCkgeyBzdHIgPSBgMCR7bnVtfWA7IH1cclxuICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|