dts-backoffice-util 5.0.0 → 14.0.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 +1 -1
- package/{esm2015/dts-backoffice-util.js → esm2020/dts-backoffice-util.mjs} +0 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs +269 -0
- package/{esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.js → esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.model.mjs} +0 -0
- package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.mjs +183 -0
- package/esm2020/lib/dts-backoffice-util.module.mjs +54 -0
- package/{esm2015/lib/interfaces/filter-range.interface.js → esm2020/lib/interfaces/filter-range.interface.mjs} +0 -0
- package/{esm2015/lib/interfaces/totvs-response.interface.js → esm2020/lib/interfaces/totvs-response.interface.mjs} +0 -0
- package/{esm2015/lib/model/session-info.model.js → esm2020/lib/model/session-info.model.mjs} +0 -0
- package/esm2020/lib/pipes/dts-date-format.pipe.mjs +20 -0
- package/esm2020/lib/services/breadcrumb-control.service.mjs +82 -0
- package/esm2020/lib/services/cache-params.service.mjs +25 -0
- package/esm2020/lib/services/menu-datasul.service.mjs +41 -0
- package/esm2020/lib/services/profile.service.mjs +55 -0
- package/esm2020/lib/services/report.service.mjs +57 -0
- package/esm2020/lib/services/session-info.service.mjs +36 -0
- package/esm2020/lib/services/translate.service.mjs +23 -0
- package/{esm2015/lib/utils/date.util.js → esm2020/lib/utils/date.util.mjs} +0 -0
- package/{esm2015/lib/utils/disclaimer.util.js → esm2020/lib/utils/disclaimer.util.mjs} +0 -0
- package/{esm2015/lib/utils/field-validation.util.js → esm2020/lib/utils/field-validation.util.mjs} +0 -0
- package/esm2020/lib/utils/file.util.mjs +129 -0
- package/{esm2015/lib/utils/filter-range.util.js → esm2020/lib/utils/filter-range.util.mjs} +0 -0
- package/{esm2015/lib/utils/generic-functions.utils.js → esm2020/lib/utils/generic-functions.utils.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/{dts-backoffice-util.js → dts-backoffice-util.mjs} +128 -172
- package/fesm2015/dts-backoffice-util.mjs.map +1 -0
- package/fesm2020/dts-backoffice-util.mjs +1849 -0
- package/fesm2020/dts-backoffice-util.mjs.map +1 -0
- package/{dts-backoffice-util.d.ts → index.d.ts} +1 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.d.ts +3 -0
- package/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.d.ts +3 -0
- package/lib/dts-backoffice-util.module.d.ts +10 -0
- package/lib/pipes/dts-date-format.pipe.d.ts +3 -0
- package/lib/services/breadcrumb-control.service.d.ts +3 -0
- package/lib/services/cache-params.service.d.ts +3 -0
- package/lib/services/menu-datasul.service.d.ts +3 -0
- package/lib/services/profile.service.d.ts +3 -0
- package/lib/services/report.service.d.ts +3 -0
- package/lib/services/session-info.service.d.ts +3 -0
- package/lib/services/translate.service.d.ts +3 -0
- package/package.json +23 -11
- package/bundles/dts-backoffice-util.umd.js +0 -2017
- package/bundles/dts-backoffice-util.umd.js.map +0 -1
- package/dts-backoffice-util.metadata.json +0 -1
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.js +0 -274
- package/esm2015/lib/components/totvs-schedule-execution/totvs-schedule-execution.service.js +0 -190
- package/esm2015/lib/dts-backoffice-util.module.js +0 -40
- package/esm2015/lib/pipes/dts-date-format.pipe.js +0 -17
- package/esm2015/lib/services/breadcrumb-control.service.js +0 -88
- package/esm2015/lib/services/cache-params.service.js +0 -32
- package/esm2015/lib/services/menu-datasul.service.js +0 -47
- package/esm2015/lib/services/profile.service.js +0 -65
- package/esm2015/lib/services/report.service.js +0 -65
- package/esm2015/lib/services/session-info.service.js +0 -46
- package/esm2015/lib/services/translate.service.js +0 -21
- package/esm2015/lib/utils/file.util.js +0 -128
- package/fesm2015/dts-backoffice-util.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Documentação dos Componentes e Utils
|
|
2
2
|
|
|
3
|
-
ÚLTIMA VERSÃO: **
|
|
3
|
+
ÚLTIMA VERSÃO: **14.0.0 (02-09-2022)** **([**VER CHANGE LOG**](https://github.com/ModernizaDatasul/dts-backoffice-util/blob/master/projects/dts-backoffice-util/CHANGELOG.md))**
|
|
4
4
|
|
|
5
5
|
<br>
|
|
6
6
|
|
|
File without changes
|
package/esm2020/lib/components/totvs-schedule-execution/totvs-schedule-execution.component.mjs
ADDED
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { Component, Input, ViewChild, Output, EventEmitter } from '@angular/core';
|
|
2
|
+
import { ScheduleParameters } from './totvs-schedule-execution.model';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@po-ui/ng-components";
|
|
5
|
+
import * as i2 from "./totvs-schedule-execution.service";
|
|
6
|
+
import * as i3 from "@angular/common";
|
|
7
|
+
import * as i4 from "@angular/forms";
|
|
8
|
+
export class TotvsScheduleExecutionComponent {
|
|
9
|
+
constructor(poI18nService, rpwService, poNotification) {
|
|
10
|
+
this.poI18nService = poI18nService;
|
|
11
|
+
this.rpwService = rpwService;
|
|
12
|
+
this.poNotification = poNotification;
|
|
13
|
+
this.programEMS5 = false;
|
|
14
|
+
this.programVersion = '';
|
|
15
|
+
this.disabledParams = false;
|
|
16
|
+
this.loading = false;
|
|
17
|
+
this.endExecution = new EventEmitter();
|
|
18
|
+
this.jsonObject = {};
|
|
19
|
+
this.literals = {};
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
/* VERIFICAR COMO FICARÁ A TRADUÇÃO
|
|
23
|
+
forkJoin(
|
|
24
|
+
this.poI18nService.getLiterals(),
|
|
25
|
+
this.poI18nService.getLiterals({ context: 'generalRpw' })
|
|
26
|
+
).subscribe(literals => {
|
|
27
|
+
literals.map(item => Object.assign(this.literals, item) );
|
|
28
|
+
this.setupComponents();
|
|
29
|
+
});*/
|
|
30
|
+
this.setupComponents();
|
|
31
|
+
}
|
|
32
|
+
setupComponents() {
|
|
33
|
+
this.executionTypeOptions = [
|
|
34
|
+
{ label: 'Executar Hoje', value: 1 },
|
|
35
|
+
{ label: 'Agendar Execução', value: 2 }
|
|
36
|
+
];
|
|
37
|
+
this.frequencyOptions = [
|
|
38
|
+
{ label: 'Uma vez no dia', value: 'no' },
|
|
39
|
+
{ label: 'Várias vezes no dia', value: 'yes' }
|
|
40
|
+
];
|
|
41
|
+
this.frequencyTypeOptions = [
|
|
42
|
+
{ label: 'Hora(s)', value: 'hour' },
|
|
43
|
+
{ label: 'Minuto(s)', value: 'minute' }
|
|
44
|
+
];
|
|
45
|
+
this.weeklyOptions = [
|
|
46
|
+
{ label: 'Domingo', value: 'Sunday' },
|
|
47
|
+
{ label: 'Segunda', value: 'Monday' },
|
|
48
|
+
{ label: 'Terça', value: 'Tuesday' },
|
|
49
|
+
{ label: 'Quarta', value: 'Wednesday' },
|
|
50
|
+
{ label: 'Quinta', value: 'Thursday' },
|
|
51
|
+
{ label: 'Sexta', value: 'Friday' },
|
|
52
|
+
{ label: 'Sábado', value: 'Saturday' }
|
|
53
|
+
];
|
|
54
|
+
this.zoomRpwServiceColumns = [
|
|
55
|
+
{ property: 'code', label: 'Servidor', type: 'string', width: '20%' },
|
|
56
|
+
{ property: 'name', label: 'Descrição', type: 'string', width: '80%' }
|
|
57
|
+
];
|
|
58
|
+
this.model = new ScheduleParameters();
|
|
59
|
+
this.model.executionType = 1;
|
|
60
|
+
this.model.repeatType = 1;
|
|
61
|
+
this.model.repeatExecution = false;
|
|
62
|
+
}
|
|
63
|
+
setScheduleParameters(schParam) {
|
|
64
|
+
if (!schParam) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
this.model = schParam;
|
|
68
|
+
}
|
|
69
|
+
fieldRpwServiceFormat(value) {
|
|
70
|
+
return `${value.code} - ${value.name}`;
|
|
71
|
+
}
|
|
72
|
+
isExecutionSchedule() {
|
|
73
|
+
return (this.model.executionType === 2);
|
|
74
|
+
}
|
|
75
|
+
isRepeatExecution() {
|
|
76
|
+
return this.model.repeatExecution;
|
|
77
|
+
}
|
|
78
|
+
isFrenquency() {
|
|
79
|
+
return (this.model.frequency === 'yes');
|
|
80
|
+
}
|
|
81
|
+
changeRepeatExecution() {
|
|
82
|
+
const date = new Date();
|
|
83
|
+
if (!this.model.execAppointHourInit) {
|
|
84
|
+
this.model.execAppointHourInit = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
85
|
+
}
|
|
86
|
+
if (!this.model.execAppointHourFinal) {
|
|
87
|
+
this.model.execAppointHourFinal = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
88
|
+
}
|
|
89
|
+
this.model.selectWeeklys = [];
|
|
90
|
+
this.model.dayOfMonth = 0;
|
|
91
|
+
this.model.frequency = 'no';
|
|
92
|
+
this.model.frequencyType = 'hour';
|
|
93
|
+
this.model.frequencyValue = 0;
|
|
94
|
+
}
|
|
95
|
+
changeExecutionType() {
|
|
96
|
+
const date = new Date();
|
|
97
|
+
this.model.execAppointDate = date;
|
|
98
|
+
this.model.execAppointHour = `${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}`;
|
|
99
|
+
}
|
|
100
|
+
changeTypeFrequency() {
|
|
101
|
+
}
|
|
102
|
+
getActiveTab(codTab) {
|
|
103
|
+
return (this.model.repeatType === codTab);
|
|
104
|
+
}
|
|
105
|
+
setActiveTab(codTab) {
|
|
106
|
+
this.model.repeatType = codTab;
|
|
107
|
+
}
|
|
108
|
+
addZero(num) {
|
|
109
|
+
let str = `${num}`;
|
|
110
|
+
if (num < 10) {
|
|
111
|
+
str = `0${num}`;
|
|
112
|
+
}
|
|
113
|
+
return str;
|
|
114
|
+
}
|
|
115
|
+
executeSchedule() {
|
|
116
|
+
if (this.disabledParams) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
if (!this.validate()) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
this.jsonObject = {};
|
|
123
|
+
this.jsonObject.status = 'active';
|
|
124
|
+
this.jsonObject.processID = this.programName;
|
|
125
|
+
this.jsonObject.recurrent = this.model.repeatExecution;
|
|
126
|
+
this.jsonObject.executionParameter = {};
|
|
127
|
+
if (this.model.executionType === 1) {
|
|
128
|
+
const date = new Date();
|
|
129
|
+
this.jsonObject.firstExecution = `${date.getFullYear()}-${(date.getMonth() + 1)}-${date.getDate()}T${this.addZero(date.getHours())}:${this.addZero(date.getMinutes())}:00.000Z`;
|
|
130
|
+
}
|
|
131
|
+
if (this.model.executionType === 2) {
|
|
132
|
+
this.jsonObject.firstExecution = `${this.model.execAppointDate}T${this.model.execAppointHour}:00.000Z`;
|
|
133
|
+
}
|
|
134
|
+
this.jsonObject.executionParameter.parametros = [];
|
|
135
|
+
this.jsonObject.executionParameter.parametros[0] = { chave: 'rpwServer', valor: this.model.executionServer };
|
|
136
|
+
this.jsonObject.executionParameter.parametros[1] = { chave: 'RPW_PROGRAM', valor: this.externalName };
|
|
137
|
+
this.jsonObject.executionParameter.parametros[2] = { chave: 'RPW_PRG_EMS5', valor: this.programEMS5 ? 'yes' : 'no' };
|
|
138
|
+
this.jsonObject.executionParameter.parametros[3] = { chave: 'RPW_PRG_VERS', valor: this.programVersion };
|
|
139
|
+
this.jsonObject.executionParameter.parametros[4] = {};
|
|
140
|
+
this.jsonObject.executionParameter.parametros[4].parametros_negocio = this.parameters;
|
|
141
|
+
// Executa hoje ou agendada
|
|
142
|
+
this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {
|
|
143
|
+
this.poNotification.success('Agendamento realizado com sucesso !');
|
|
144
|
+
});
|
|
145
|
+
if (this.model.repeatExecution) {
|
|
146
|
+
if (this.model.repeatType === 1) {
|
|
147
|
+
this.jsonObject.daily = {
|
|
148
|
+
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
149
|
+
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm')
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
if (this.model.repeatType === 2) {
|
|
153
|
+
this.jsonObject.weekly = {
|
|
154
|
+
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
155
|
+
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),
|
|
156
|
+
daysOfWeek: this.model.selectWeeklys
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
if (this.model.repeatType === 3) {
|
|
160
|
+
this.jsonObject.monthly = {
|
|
161
|
+
hour: this.getHourOrMinute(this.model.execAppointHourInit, 'h'),
|
|
162
|
+
minute: this.getHourOrMinute(this.model.execAppointHourInit, 'm'),
|
|
163
|
+
day: this.model.dayOfMonth
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
if (this.isFrenquency()) {
|
|
167
|
+
this.jsonObject.rangeExecutions = {
|
|
168
|
+
frequency: {
|
|
169
|
+
type: this.model.frequencyType,
|
|
170
|
+
value: this.model.frequencyValue
|
|
171
|
+
},
|
|
172
|
+
rangeLimit: {
|
|
173
|
+
hour: this.getHourOrMinute(this.model.execAppointHourFinal, 'h'),
|
|
174
|
+
minute: this.getHourOrMinute(this.model.execAppointHourFinal, 'm')
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
// Executa a diária, semanal ou mensal
|
|
179
|
+
this.rpwService.createExecution(this.jsonObject, this.loading).subscribe(() => {
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
this.endExecution.emit(this.model);
|
|
183
|
+
}
|
|
184
|
+
getHourOrMinute(value, type) {
|
|
185
|
+
if (type === 'h') {
|
|
186
|
+
return +value.substring(0, 2);
|
|
187
|
+
}
|
|
188
|
+
if (type === 'm') {
|
|
189
|
+
return +value.substring(3, 6);
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
compareHour(hourInit, hourFinal) {
|
|
193
|
+
if (hourInit === hourFinal) {
|
|
194
|
+
return false;
|
|
195
|
+
}
|
|
196
|
+
if (this.getHourOrMinute(hourInit, 'h') < this.getHourOrMinute(hourFinal, 'h')) {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
if (this.getHourOrMinute(hourInit, 'm') > this.getHourOrMinute(hourFinal, 'm')) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
204
|
+
validate() {
|
|
205
|
+
if (!this.scheduleExecutionForm.valid) {
|
|
206
|
+
this.poNotification.error('Verifique as inconsistências em tela.');
|
|
207
|
+
return false;
|
|
208
|
+
}
|
|
209
|
+
if (!this.model.executionServer) {
|
|
210
|
+
this.poNotification.error('Servidor de Execução não foi informado.');
|
|
211
|
+
return false;
|
|
212
|
+
}
|
|
213
|
+
if (this.isExecutionSchedule() && (!this.model.execAppointDate || !this.model.execAppointHour)) {
|
|
214
|
+
this.poNotification.error('Informar a data e a hora para agendamento da execução.');
|
|
215
|
+
return false;
|
|
216
|
+
}
|
|
217
|
+
if (this.model.repeatExecution) {
|
|
218
|
+
if (!this.model.execAppointHourInit) {
|
|
219
|
+
this.poNotification.error('Informar a hora de início para a execução.');
|
|
220
|
+
return false;
|
|
221
|
+
}
|
|
222
|
+
if (this.model.repeatType === 2 && (this.model.selectWeeklys.length === 0)) {
|
|
223
|
+
this.poNotification.error('Informar os dias da semana para a execução.');
|
|
224
|
+
return false;
|
|
225
|
+
}
|
|
226
|
+
if (this.model.repeatType === 3 && (!this.model.dayOfMonth)) {
|
|
227
|
+
this.poNotification.error('Informar o dia para a execução.');
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
if (this.isFrenquency()) {
|
|
231
|
+
if (!this.compareHour(this.model.execAppointHourInit, this.model.execAppointHourFinal)) {
|
|
232
|
+
this.poNotification.error('Hora Fim deve ser maior que Hora Início.');
|
|
233
|
+
return false;
|
|
234
|
+
}
|
|
235
|
+
if (this.model.frequencyValue === 0) {
|
|
236
|
+
this.poNotification.error('Informar a frequência de execução (A cada hora/minuto).');
|
|
237
|
+
return false;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return true;
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TotvsScheduleExecutionComponent, deps: [{ token: i1.PoI18nService }, { token: i2.TotvsScheduleExecutionService }, { token: i1.PoNotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
245
|
+
/** @nocollapse */ TotvsScheduleExecutionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.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"] }] });
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: TotvsScheduleExecutionComponent, decorators: [{
|
|
247
|
+
type: Component,
|
|
248
|
+
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" }]
|
|
249
|
+
}], ctorParameters: function () { return [{ type: i1.PoI18nService }, { type: i2.TotvsScheduleExecutionService }, { type: i1.PoNotificationService }]; }, propDecorators: { scheduleExecutionForm: [{
|
|
250
|
+
type: ViewChild,
|
|
251
|
+
args: ['scheduleExecutionForm', { static: true }]
|
|
252
|
+
}], programName: [{
|
|
253
|
+
type: Input
|
|
254
|
+
}], externalName: [{
|
|
255
|
+
type: Input
|
|
256
|
+
}], programEMS5: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], programVersion: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], parameters: [{
|
|
261
|
+
type: Input
|
|
262
|
+
}], disabledParams: [{
|
|
263
|
+
type: Input
|
|
264
|
+
}], loading: [{
|
|
265
|
+
type: Input
|
|
266
|
+
}], endExecution: [{
|
|
267
|
+
type: Output
|
|
268
|
+
}] } });
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R0cy1iYWNrb2ZmaWNlLXV0aWwvc3JjL2xpYi9jb21wb25lbnRzL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHRzLWJhY2tvZmZpY2UtdXRpbC9zcmMvbGliL2NvbXBvbmVudHMvdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQXVCLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQVUzRixNQUFNLE9BQU8sK0JBQStCO0lBWXhDLFlBQ1csYUFBNEIsRUFDNUIsVUFBeUMsRUFDekMsY0FBcUM7UUFGckMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZUFBVSxHQUFWLFVBQVUsQ0FBK0I7UUFDekMsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBVnZDLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRXBCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDZixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFjcEMsZUFBVSxHQUFRLEVBQUUsQ0FBQztRQUU3QixhQUFRLEdBQVEsRUFBRSxDQUFDO0lBVm5CLENBQUM7SUFZRCxRQUFRO1FBQ0o7Ozs7Ozs7ZUFPTztRQUVQLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxvQkFBb0IsR0FBRztZQUN4QixFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRTtZQUNwQyxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFO1NBQzFDLENBQUM7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDcEIsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUN4QyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1NBQ2pELENBQUM7UUFFRixJQUFJLENBQUMsb0JBQW9CLEdBQUc7WUFDeEIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7U0FDMUMsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLEdBQUc7WUFDakIsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDckMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUU7WUFDcEMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUU7WUFDdkMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7WUFDdEMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDbkMsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7U0FDekMsQ0FBQztRQUVGLElBQUksQ0FBQyxxQkFBcUIsR0FBRztZQUN6QixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7WUFDckUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1NBQ3pFLENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztJQUN2QyxDQUFDO0lBRU0scUJBQXFCLENBQUMsUUFBNkI7UUFDdEQsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztRQUN2QixPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztJQUN0QyxDQUFDO0lBRUQsWUFBWTtRQUNSLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQscUJBQXFCO1FBQ2pCLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUU7WUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FBRTtRQUNoSixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRTtZQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUFFO1FBQ2xKLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzVCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztRQUNsQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG1CQUFtQjtRQUNmLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFFeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDdkcsQ0FBQztJQUVELG1CQUFtQjtJQUNuQixDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDdkIsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFXO1FBQ2YsSUFBSSxHQUFHLEdBQUcsR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNuQixJQUFJLEdBQUcsR0FBRyxFQUFFLEVBQUU7WUFBRSxHQUFHLEdBQUcsSUFBSSxHQUFHLEVBQUUsQ0FBQztTQUFFO1FBQ2xDLE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUFFLE9BQU87U0FBRTtRQUVqQyxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDbEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQztRQUN2RCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUV4QyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxLQUFLLENBQUMsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLFVBQVUsQ0FBQztTQUNuTDtRQUNELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLEtBQUssQ0FBQyxFQUFFO1lBQ2hDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLFVBQVUsQ0FBQztTQUMxRztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNuRCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDN0csSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JILElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXpHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBRXRGLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFFLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7UUFDdkUsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxFQUFFO2dCQUM3QixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRztvQkFDcEIsSUFBSSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUM7b0JBQy9ELE1BQU0sRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO2lCQUNwRSxDQUFDO2FBQ0w7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUc7b0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsR0FBRyxDQUFDO29CQUMvRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztvQkFDakUsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYTtpQkFDdkMsQ0FBQzthQUNMO1lBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHO29CQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEdBQUcsQ0FBQztvQkFDL0QsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxHQUFHLENBQUM7b0JBQ2pFLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVU7aUJBQzdCLENBQUM7YUFDTDtZQUVELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO2dCQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsR0FBRztvQkFDOUIsU0FBUyxFQUFFO3dCQUNQLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWE7d0JBQzlCLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWM7cUJBQ25DO29CQUNELFVBQVUsRUFBRTt3QkFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLEdBQUcsQ0FBQzt3QkFDaEUsTUFBTSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxHQUFHLENBQUM7cUJBQ3JFO2lCQUNKLENBQUM7YUFDTDtZQUVELHNDQUFzQztZQUN0QyxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzlFLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFhLEVBQUUsSUFBWTtRQUN2QyxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FBRTtRQUNwRCxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7WUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FBRTtJQUN4RCxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDM0MsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUM3QyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQUUsT0FBTyxJQUFJLENBQUM7U0FBRTtRQUNoRyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQUUsT0FBTyxLQUFLLENBQUM7U0FBRTtRQUNqRyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsUUFBUTtRQUVKLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxFQUFFO1lBQ25DLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLHVDQUF1QyxDQUFDLENBQUM7WUFDbkUsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUU7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUNyRSxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUVELElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsRUFBRTtZQUM1RixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFDO1lBQ3BGLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBRUQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsRUFBRTtZQUM1QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRTtnQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUMsQ0FBQztnQkFDeEUsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDeEUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsNkNBQTZDLENBQUMsQ0FBQztnQkFDekUsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUMsQ0FBQztnQkFDN0QsT0FBTyxLQUFLLENBQUM7YUFDaEI7WUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtnQkFDckIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixDQUFDLEVBQUU7b0JBQ3BGLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7b0JBQ3RFLE9BQU8sS0FBSyxDQUFDO2lCQUNoQjtnQkFFRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxLQUFLLENBQUMsRUFBRTtvQkFDakMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMseURBQXlELENBQUMsQ0FBQztvQkFDckYsT0FBTyxLQUFLLENBQUM7aUJBQ2hCO2FBQ0o7U0FDSjtRQUVELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OytJQS9RUSwrQkFBK0I7bUlBQS9CLCtCQUErQixpZENaNUMsaXdiQTZTQTsyRkRqU2EsK0JBQStCO2tCQU4zQyxTQUFTOytCQUNJLDhCQUE4QjtvTEFNYyxxQkFBcUI7c0JBQTFFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUUzQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb1JhZGlvR3JvdXBPcHRpb24sIFBvSTE4blNlcnZpY2UsIFBvTm90aWZpY2F0aW9uU2VydmljZSwgUG9Mb29rdXBDb2x1bW4gfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IElTY2hlZHVsZVBhcmFtZXRlcnMsIFNjaGVkdWxlUGFyYW1ldGVycyB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgTmdGb3JtIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUb3R2c1NjaGVkdWxlRXhlY3V0aW9uU2VydmljZSB9IGZyb20gJy4vdG90dnMtc2NoZWR1bGUtZXhlY3V0aW9uLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2FwcC10b3R2cy1zY2hlZHVsZS1leGVjdXRpb24nLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RvdHZzLXNjaGVkdWxlLWV4ZWN1dGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi90b3R2cy1zY2hlZHVsZS1leGVjdXRpb24uY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVG90dnNTY2hlZHVsZUV4ZWN1dGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBAVmlld0NoaWxkKCdzY2hlZHVsZUV4ZWN1dGlvbkZvcm0nLCB7IHN0YXRpYzogdHJ1ZSB9KSBzY2hlZHVsZUV4ZWN1dGlvbkZvcm06IE5nRm9ybTtcclxuXHJcbiAgICBASW5wdXQoKSBwcm9ncmFtTmFtZTogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgZXh0ZXJuYWxOYW1lOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBwcm9ncmFtRU1TNSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgcHJvZ3JhbVZlcnNpb24gPSAnJztcclxuICAgIEBJbnB1dCgpIHBhcmFtZXRlcnM6IFtdO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWRQYXJhbXMgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGxvYWRpbmcgPSBmYWxzZTtcclxuICAgIEBPdXRwdXQoKSBlbmRFeGVjdXRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHBvSTE4blNlcnZpY2U6IFBvSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHVibGljIHJwd1NlcnZpY2U6IFRvdHZzU2NoZWR1bGVFeGVjdXRpb25TZXJ2aWNlLFxyXG4gICAgICAgIHB1YmxpYyBwb05vdGlmaWNhdGlvbjogUG9Ob3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZXhlY3V0aW9uVHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICBmcmVxdWVuY3lPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgZnJlcXVlbmN5VHlwZU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj47XHJcbiAgICB3ZWVrbHlPcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+O1xyXG4gICAgem9vbVJwd1NlcnZpY2VDb2x1bW5zOiBBcnJheTxQb0xvb2t1cENvbHVtbj47XHJcbiAgICBtb2RlbDogU2NoZWR1bGVQYXJhbWV0ZXJzO1xyXG4gICAgcHJpdmF0ZSBqc29uT2JqZWN0OiBhbnkgPSB7fTtcclxuXHJcbiAgICBsaXRlcmFsczogYW55ID0ge307XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgLyogVkVSSUZJQ0FSIENPTU8gRklDQVLDgSBBIFRSQURVw4fDg09cclxuICAgICAgICBmb3JrSm9pbihcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoKSxcclxuICAgICAgICAgICAgICB0aGlzLnBvSTE4blNlcnZpY2UuZ2V0TGl0ZXJhbHMoeyBjb250ZXh0OiAnZ2VuZXJhbFJwdycgfSlcclxuICAgICAgICAgICkuc3Vic2NyaWJlKGxpdGVyYWxzID0+IHtcclxuICAgICAgICAgICAgICBsaXRlcmFscy5tYXAoaXRlbSA9PiBPYmplY3QuYXNzaWduKHRoaXMubGl0ZXJhbHMsIGl0ZW0pICk7XHJcbiAgICAgICAgICAgICAgdGhpcy5zZXR1cENvbXBvbmVudHMoKTtcclxuICAgICAgICAgIH0pOyovXHJcblxyXG4gICAgICAgIHRoaXMuc2V0dXBDb21wb25lbnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0dXBDb21wb25lbnRzKCkge1xyXG4gICAgICAgIHRoaXMuZXhlY3V0aW9uVHlwZU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdFeGVjdXRhciBIb2plJywgdmFsdWU6IDEgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0FnZW5kYXIgRXhlY3XDp8OjbycsIHZhbHVlOiAyIH1cclxuICAgICAgICBdO1xyXG5cclxuICAgICAgICB0aGlzLmZyZXF1ZW5jeU9wdGlvbnMgPSBbXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdVbWEgdmV6IG5vIGRpYScsIHZhbHVlOiAnbm8nIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdWw6FyaWFzIHZlemVzIG5vIGRpYScsIHZhbHVlOiAneWVzJyB9XHJcbiAgICAgICAgXTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmVxdWVuY3lUeXBlT3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0hvcmEocyknLCB2YWx1ZTogJ2hvdXInIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdNaW51dG8ocyknLCB2YWx1ZTogJ21pbnV0ZScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMud2Vla2x5T3B0aW9ucyA9IFtcclxuICAgICAgICAgICAgeyBsYWJlbDogJ0RvbWluZ28nLCB2YWx1ZTogJ1N1bmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NlZ3VuZGEnLCB2YWx1ZTogJ01vbmRheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1RlcsOnYScsIHZhbHVlOiAnVHVlc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1F1YXJ0YScsIHZhbHVlOiAnV2VkbmVzZGF5JyB9LFxyXG4gICAgICAgICAgICB7IGxhYmVsOiAnUXVpbnRhJywgdmFsdWU6ICdUaHVyc2RheScgfSxcclxuICAgICAgICAgICAgeyBsYWJlbDogJ1NleHRhJywgdmFsdWU6ICdGcmlkYXknIH0sXHJcbiAgICAgICAgICAgIHsgbGFiZWw6ICdTw6FiYWRvJywgdmFsdWU6ICdTYXR1cmRheScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMuem9vbVJwd1NlcnZpY2VDb2x1bW5zID0gW1xyXG4gICAgICAgICAgICB7IHByb3BlcnR5OiAnY29kZScsIGxhYmVsOiAnU2Vydmlkb3InLCB0eXBlOiAnc3RyaW5nJywgd2lkdGg6ICcyMCUnIH0sXHJcbiAgICAgICAgICAgIHsgcHJvcGVydHk6ICduYW1lJywgbGFiZWw6ICdEZXNjcmnDp8OjbycsIHR5cGU6ICdzdHJpbmcnLCB3aWR0aDogJzgwJScgfVxyXG4gICAgICAgIF07XHJcblxyXG4gICAgICAgIHRoaXMubW9kZWwgPSBuZXcgU2NoZWR1bGVQYXJhbWV0ZXJzKCk7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjdXRpb25UeXBlID0gMTtcclxuICAgICAgICB0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPSAxO1xyXG4gICAgICAgIHRoaXMubW9kZWwucmVwZWF0RXhlY3V0aW9uID0gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldFNjaGVkdWxlUGFyYW1ldGVycyhzY2hQYXJhbTogSVNjaGVkdWxlUGFyYW1ldGVycykge1xyXG4gICAgICAgIGlmICghc2NoUGFyYW0pIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgdGhpcy5tb2RlbCA9IHNjaFBhcmFtO1xyXG4gICAgfVxyXG5cclxuICAgIGZpZWxkUnB3U2VydmljZUZvcm1hdCh2YWx1ZSkge1xyXG4gICAgICAgIHJldHVybiBgJHt2YWx1ZS5jb2RlfSAtICR7dmFsdWUubmFtZX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlzRXhlY3V0aW9uU2NoZWR1bGUoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLmV4ZWN1dGlvblR5cGUgPT09IDIpO1xyXG4gICAgfVxyXG5cclxuICAgIGlzUmVwZWF0RXhlY3V0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBpc0ZyZW5xdWVuY3koKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLmZyZXF1ZW5jeSA9PT0gJ3llcycpO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVJlcGVhdEV4ZWN1dGlvbigpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQpIHsgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJJbml0ID0gYCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX1gOyB9XHJcbiAgICAgICAgaWYgKCF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsKSB7IHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWwgPSBgJHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRIb3VycygpKX06JHt0aGlzLmFkZFplcm8oZGF0ZS5nZXRNaW51dGVzKCkpfWA7IH1cclxuICAgICAgICB0aGlzLm1vZGVsLnNlbGVjdFdlZWtseXMgPSBbXTtcclxuICAgICAgICB0aGlzLm1vZGVsLmRheU9mTW9udGggPSAwO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZnJlcXVlbmN5ID0gJ25vJztcclxuICAgICAgICB0aGlzLm1vZGVsLmZyZXF1ZW5jeVR5cGUgPSAnaG91cic7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5mcmVxdWVuY3lWYWx1ZSA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlRXhlY3V0aW9uVHlwZSgpIHtcclxuICAgICAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5tb2RlbC5leGVjQXBwb2ludERhdGUgPSBkYXRlO1xyXG4gICAgICAgIHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyID0gYCR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0SG91cnMoKSl9OiR7dGhpcy5hZGRaZXJvKGRhdGUuZ2V0TWludXRlcygpKX1gO1xyXG4gICAgfVxyXG5cclxuICAgIGNoYW5nZVR5cGVGcmVxdWVuY3koKSB7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0QWN0aXZlVGFiKGNvZFRhYjogbnVtYmVyKSB7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPT09IGNvZFRhYik7XHJcbiAgICB9XHJcblxyXG4gICAgc2V0QWN0aXZlVGFiKGNvZFRhYjogbnVtYmVyKSB7XHJcbiAgICAgICAgdGhpcy5tb2RlbC5yZXBlYXRUeXBlID0gY29kVGFiO1xyXG4gICAgfVxyXG5cclxuICAgIGFkZFplcm8obnVtOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIGxldCBzdHIgPSBgJHtudW19YDtcclxuICAgICAgICBpZiAobnVtIDwgMTApIHsgc3RyID0gYDAke251bX1gOyB9XHJcbiAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgIH1cclxuXHJcbiAgICBleGVjdXRlU2NoZWR1bGUoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWRQYXJhbXMpIHsgcmV0dXJuOyB9XHJcbiAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlKCkpIHsgcmV0dXJuOyB9XHJcblxyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdCA9IHt9O1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5zdGF0dXMgPSAnYWN0aXZlJztcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QucHJvY2Vzc0lEID0gdGhpcy5wcm9ncmFtTmFtZTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QucmVjdXJyZW50ID0gdGhpcy5tb2RlbC5yZXBlYXRFeGVjdXRpb247XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlciA9IHt9O1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5leGVjdXRpb25UeXBlID09PSAxKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICAgICAgICB0aGlzLmpzb25PYmplY3QuZmlyc3RFeGVjdXRpb24gPSBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9LSR7KGRhdGUuZ2V0TW9udGgoKSArIDEpfS0ke2RhdGUuZ2V0RGF0ZSgpfVQke3RoaXMuYWRkWmVybyhkYXRlLmdldEhvdXJzKCkpfToke3RoaXMuYWRkWmVybyhkYXRlLmdldE1pbnV0ZXMoKSl9OjAwLjAwMFpgO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5leGVjdXRpb25UeXBlID09PSAyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuanNvbk9iamVjdC5maXJzdEV4ZWN1dGlvbiA9IGAke3RoaXMubW9kZWwuZXhlY0FwcG9pbnREYXRlfVQke3RoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyfTowMC4wMDBaYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvcyA9IFtdO1xyXG4gICAgICAgIHRoaXMuanNvbk9iamVjdC5leGVjdXRpb25QYXJhbWV0ZXIucGFyYW1ldHJvc1swXSA9IHsgY2hhdmU6ICdycHdTZXJ2ZXInLCB2YWxvcjogdGhpcy5tb2RlbC5leGVjdXRpb25TZXJ2ZXIgfTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbMV0gPSB7IGNoYXZlOiAnUlBXX1BST0dSQU0nLCB2YWxvcjogdGhpcy5leHRlcm5hbE5hbWUgfTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbMl0gPSB7IGNoYXZlOiAnUlBXX1BSR19FTVM1JywgdmFsb3I6IHRoaXMucHJvZ3JhbUVNUzUgPyAneWVzJyA6ICdubycgfTtcclxuICAgICAgICB0aGlzLmpzb25PYmplY3QuZXhlY3V0aW9uUGFyYW1ldGVyLnBhcmFtZXRyb3NbM10gPSB7IGNoYXZlOiAnUlBXX1BSR19WRVJTJywgdmFsb3I6IHRoaXMucHJvZ3JhbVZlcnNpb24gfTtcclxuXHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zWzRdID0ge307XHJcbiAgICAgICAgdGhpcy5qc29uT2JqZWN0LmV4ZWN1dGlvblBhcmFtZXRlci5wYXJhbWV0cm9zWzRdLnBhcmFtZXRyb3NfbmVnb2NpbyA9IHRoaXMucGFyYW1ldGVycztcclxuXHJcbiAgICAgICAgLy8gRXhlY3V0YSBob2plIG91IGFnZW5kYWRhXHJcbiAgICAgICAgdGhpcy5ycHdTZXJ2aWNlLmNyZWF0ZUV4ZWN1dGlvbih0aGlzLmpzb25PYmplY3QsIHRoaXMubG9hZGluZykuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5zdWNjZXNzKCdBZ2VuZGFtZW50byByZWFsaXphZG8gY29tIHN1Y2Vzc28gIScpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRFeGVjdXRpb24pIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5qc29uT2JqZWN0LmRhaWx5ID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ2gnKSxcclxuICAgICAgICAgICAgICAgICAgICBtaW51dGU6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgJ20nKVxyXG4gICAgICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5qc29uT2JqZWN0LndlZWtseSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBob3VyOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQsICdoJyksXHJcbiAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQsICdtJyksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF5c09mV2VlazogdGhpcy5tb2RlbC5zZWxlY3RXZWVrbHlzXHJcbiAgICAgICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5yZXBlYXRUeXBlID09PSAzKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3QubW9udGhseSA9IHtcclxuICAgICAgICAgICAgICAgICAgICBob3VyOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQsICdoJyksXHJcbiAgICAgICAgICAgICAgICAgICAgbWludXRlOiB0aGlzLmdldEhvdXJPck1pbnV0ZSh0aGlzLm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXQsICdtJyksXHJcbiAgICAgICAgICAgICAgICAgICAgZGF5OiB0aGlzLm1vZGVsLmRheU9mTW9udGhcclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmlzRnJlbnF1ZW5jeSgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpzb25PYmplY3QucmFuZ2VFeGVjdXRpb25zID0ge1xyXG4gICAgICAgICAgICAgICAgICAgIGZyZXF1ZW5jeToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiB0aGlzLm1vZGVsLmZyZXF1ZW5jeVR5cGUsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLm1vZGVsLmZyZXF1ZW5jeVZhbHVlXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICByYW5nZUxpbWl0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGhvdXI6IHRoaXMuZ2V0SG91ck9yTWludXRlKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWwsICdoJyksXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1pbnV0ZTogdGhpcy5nZXRIb3VyT3JNaW51dGUodGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCwgJ20nKVxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH07XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8vIEV4ZWN1dGEgYSBkacOhcmlhLCBzZW1hbmFsIG91IG1lbnNhbFxyXG4gICAgICAgICAgICB0aGlzLnJwd1NlcnZpY2UuY3JlYXRlRXhlY3V0aW9uKHRoaXMuanNvbk9iamVjdCwgdGhpcy5sb2FkaW5nKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZW5kRXhlY3V0aW9uLmVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0SG91ck9yTWludXRlKHZhbHVlOiBzdHJpbmcsIHR5cGU6IHN0cmluZyk6IG51bWJlciB7XHJcbiAgICAgICAgaWYgKHR5cGUgPT09ICdoJykgeyByZXR1cm4gK3ZhbHVlLnN1YnN0cmluZygwLCAyKTsgfVxyXG4gICAgICAgIGlmICh0eXBlID09PSAnbScpIHsgcmV0dXJuICt2YWx1ZS5zdWJzdHJpbmcoMywgNik7IH1cclxuICAgIH1cclxuXHJcbiAgICBjb21wYXJlSG91cihob3VySW5pdDogc3RyaW5nLCBob3VyRmluYWw6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmIChob3VySW5pdCA9PT0gaG91ckZpbmFsKSB7IHJldHVybiBmYWxzZTsgfVxyXG4gICAgICAgIGlmICh0aGlzLmdldEhvdXJPck1pbnV0ZShob3VySW5pdCwgJ2gnKSA8IHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJGaW5hbCwgJ2gnKSkgeyByZXR1cm4gdHJ1ZTsgfVxyXG4gICAgICAgIGlmICh0aGlzLmdldEhvdXJPck1pbnV0ZShob3VySW5pdCwgJ20nKSA+IHRoaXMuZ2V0SG91ck9yTWludXRlKGhvdXJGaW5hbCwgJ20nKSkgeyByZXR1cm4gZmFsc2U7IH1cclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZSgpOiBib29sZWFuIHtcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLnNjaGVkdWxlRXhlY3V0aW9uRm9ybS52YWxpZCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdWZXJpZmlxdWUgYXMgaW5jb25zaXN0w6puY2lhcyBlbSB0ZWxhLicpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY3V0aW9uU2VydmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ1NlcnZpZG9yIGRlIEV4ZWN1w6fDo28gbsOjbyBmb2kgaW5mb3JtYWRvLicpO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5pc0V4ZWN1dGlvblNjaGVkdWxlKCkgJiYgKCF0aGlzLm1vZGVsLmV4ZWNBcHBvaW50RGF0ZSB8fCAhdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXIpKSB7XHJcbiAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIGEgZGF0YSBlIGEgaG9yYSBwYXJhIGFnZW5kYW1lbnRvIGRhIGV4ZWN1w6fDo28uJyk7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdEV4ZWN1dGlvbikge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5wb05vdGlmaWNhdGlvbi5lcnJvcignSW5mb3JtYXIgYSBob3JhIGRlIGluw61jaW8gcGFyYSBhIGV4ZWN1w6fDo28uJyk7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsLnJlcGVhdFR5cGUgPT09IDIgJiYgKHRoaXMubW9kZWwuc2VsZWN0V2Vla2x5cy5sZW5ndGggPT09IDApKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdJbmZvcm1hciBvcyBkaWFzIGRhIHNlbWFuYSBwYXJhIGEgZXhlY3XDp8Ojby4nKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMubW9kZWwucmVwZWF0VHlwZSA9PT0gMyAmJiAoIXRoaXMubW9kZWwuZGF5T2ZNb250aCkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIG8gZGlhIHBhcmEgYSBleGVjdcOnw6NvLicpO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0ZyZW5xdWVuY3koKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmNvbXBhcmVIb3VyKHRoaXMubW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdCwgdGhpcy5tb2RlbC5leGVjQXBwb2ludEhvdXJGaW5hbCkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvTm90aWZpY2F0aW9uLmVycm9yKCdIb3JhIEZpbSBkZXZlIHNlciBtYWlvciBxdWUgSG9yYSBJbsOtY2lvLicpO1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tb2RlbC5mcmVxdWVuY3lWYWx1ZSA9PT0gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9Ob3RpZmljYXRpb24uZXJyb3IoJ0luZm9ybWFyIGEgZnJlcXXDqm5jaWEgZGUgZXhlY3XDp8OjbyAoQSBjYWRhIGhvcmEvbWludXRvKS4nKTtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG59XHJcbiIsIjxmb3JtICNzY2hlZHVsZUV4ZWN1dGlvbkZvcm09XCJuZ0Zvcm1cIj5cclxuICAgIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIj5cclxuICAgICAgICA8cG8tcmFkaW8tZ3JvdXAgXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIlxyXG4gICAgICAgICAgICBuYW1lPVwiZXhlY3V0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgIHAtbGFiZWw9XCJEYXRhIGRlIEV4ZWN1w6fDo29cIlxyXG4gICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY3V0aW9uVHlwZVwiXHJcbiAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZXhlY3V0aW9uVHlwZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAocC1jaGFuZ2UpPVwiY2hhbmdlRXhlY3V0aW9uVHlwZSgpXCI+XHJcbiAgICAgICAgPC9wby1yYWRpby1ncm91cD5cclxuXHJcbiAgICAgICAgPHBvLWRhdGVwaWNrZXIgKm5nSWY9aXNFeGVjdXRpb25TY2hlZHVsZSgpXHJcbiAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJtb2RlbC5leGVjQXBwb2ludERhdGVcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiQWdlbmRhciBwYXJhXCJcclxuICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50RGF0ZVwiPlxyXG4gICAgICAgIDwvcG8tZGF0ZXBpY2tlcj5cclxuXHJcbiAgICAgICAgPHBvLWlucHV0ICpuZ0lmPWlzRXhlY3V0aW9uU2NoZWR1bGUoKVxyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VyXCJcclxuICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmFcIlxyXG4gICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJcIj5cclxuICAgICAgICA8L3BvLWlucHV0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiPlxyXG4gICAgICAgIDxwby1sb29rdXBcclxuICAgICAgICAgICAgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiXHJcbiAgICAgICAgICAgIG5hbWU9XCJleGVjdXRpb25TZXJ2ZXJcIlxyXG4gICAgICAgICAgICBwLWxhYmVsPVwiU2Vydmlkb3IgZGUgRXhlY3XDp8Ojb1wiXHJcbiAgICAgICAgICAgIHAtcGxhY2Vob2xkZXI9XCJTZXJ2aWRvciBkZSBFeGVjdcOnw6NvXCJcclxuICAgICAgICAgICAgW3AtY29sdW1uc109XCJ6b29tUnB3U2VydmljZUNvbHVtbnNcIlxyXG4gICAgICAgICAgICBbcC1maWVsZC1mb3JtYXRdPVwiZmllbGRScHdTZXJ2aWNlRm9ybWF0XCJcclxuICAgICAgICAgICAgW3AtZmlsdGVyLXNlcnZpY2VdPVwicnB3U2VydmljZVwiXHJcbiAgICAgICAgICAgIHAtZmllbGQtbGFiZWw9XCJuYW1lXCJcclxuICAgICAgICAgICAgcC1maWVsZC12YWx1ZT1cImNvZGVcIlxyXG4gICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY3V0aW9uU2VydmVyXCI+XHJcbiAgICAgICAgPC9wby1sb29rdXA+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93IHBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCI+XHJcbiAgICAgICAgPHBvLXN3aXRjaFxyXG4gICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICBuYW1lPVwicmVwZWF0RXhlY3V0aW9uXCJcclxuICAgICAgICAgICAgcC1sYWJlbD1cIlJlcGV0aXIgb2NvcnLDqm5jaWEgP1wiXHJcbiAgICAgICAgICAgIHAtbGFiZWwtb2ZmPVwiTsOjb1wiXHJcbiAgICAgICAgICAgIHAtbGFiZWwtb249XCJTaW1cIlxyXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLnJlcGVhdEV4ZWN1dGlvblwiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNoYW5nZVJlcGVhdEV4ZWN1dGlvbigpXCI+XHJcbiAgICAgICAgPC9wby1zd2l0Y2g+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tcm93XCIgKm5nSWY9XCJpc1JlcGVhdEV4ZWN1dGlvbigpXCI+XHJcbiAgICAgXHJcbiAgICAgICAgPHBvLXRhYnM+XHJcblxyXG4gICAgICAgICAgICA8cG8tdGFiIFxyXG4gICAgICAgICAgICAgICAgcC1sYWJlbD1cIkRpw6FyaWFcIiBcclxuICAgICAgICAgICAgICAgIFtwLWFjdGl2ZV09XCJnZXRBY3RpdmVUYWIoMSlcIiBcclxuICAgICAgICAgICAgICAgIChwLWNsaWNrKT1cInNldEFjdGl2ZVRhYigxKVwiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeURhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkZyZXF1w6puY2lhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1jb2x1bW5zPTFcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VUeXBlRnJlcXVlbmN5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiPiAgICBcclxuICAgICAgICAgICAgICAgICAgICA8cG8taW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckluaXREYWlseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJIb3JhIEluw61jaW9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2s9XCI5OTo5OVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzay1mb3JtYXQtbW9kZWw9XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1wYXR0ZXJuPVwiXihbMC05XXwwWzAtOV18MVswLTldfDJbMC0zXSk6WzAtNV1bMC05XSRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWVycm9yLXBhdHRlcm49XCJIb3JhIGludsOhbGlkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5leGVjQXBwb2ludEhvdXJJbml0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1pbnB1dD5cclxuICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8cG8taW5wdXQgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJGaW5hbERhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgRmltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG4gICAgICAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1udW1iZXIgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNSBwby1tZC01IHBvLWxnLTUgcG8teGwtNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lWYWx1ZURhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkEgY2FkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4PVwiOTk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1udW1iZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXNlbGVjdCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1tdC0zIHBvLXNtLTcgcG8tbWQtNyBwby1sZy03IHBvLXhsLTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VHlwZURhaWx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5VHlwZU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VHlwZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8tc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvcG8tdGFiPlxyXG5cclxuICAgICAgICAgICAgPHBvLXRhYiBcclxuICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJTZW1hbmFsXCJcclxuICAgICAgICAgICAgICAgIFtwLWFjdGl2ZV09XCJnZXRBY3RpdmVUYWIoMilcIlxyXG4gICAgICAgICAgICAgICAgKHAtY2xpY2spPVwic2V0QWN0aXZlVGFiKDIpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1tdWx0aXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNlbGVjdFdlZWtseXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRGlhcyBkYSBTZW1hbmFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLXBsYWNlaG9sZGVyPVwiRXNjb2xoYSBvcyBkaWFzIGRhIHNlbWFuYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5zZWxlY3RXZWVrbHlzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJ3ZWVrbHlPcHRpb25zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1tdWx0aXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTEyIHBvLW1kLTEyIHBvLWxnLTEyIHBvLXhsLTEyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJGcmVxdcOqbmNpYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtY29sdW1ucz0xXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cImZyZXF1ZW5jeU9wdGlvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAocC1jaGFuZ2UpPVwiY2hhbmdlVHlwZUZyZXF1ZW5jeSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1yYWRpby1ncm91cD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLWlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJJbml0V2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgSW7DrWNpb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91ckluaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8taW5wdXQgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJleGVjQXBwb2ludEhvdXJGaW5hbFdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJIb3JhIEZpbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWFzaz1cIjk5Ojk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrLWZvcm1hdC1tb2RlbD1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLXBhdHRlcm49XCJeKFswLTldfDBbMC05XXwxWzAtOV18MlswLTNdKTpbMC01XVswLTldJFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtZXJyb3ItcGF0dGVybj1cIkhvcmEgaW52w6FsaWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmV4ZWNBcHBvaW50SG91ckZpbmFsXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1pbnB1dD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLW51bWJlciAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS01IHBvLW1kLTUgcG8tbGctNSBwby14bC01XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeVZhbHVlV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkEgY2FkYVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4bGVuZ3RoPVwiM1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbWF4PVwiOTk5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVZhbHVlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1udW1iZXI+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1zZWxlY3QgKm5nSWY9XCJpc0ZyZW5xdWVuY3koKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicG8tbXQtMyBwby1zbS03IHBvLW1kLTcgcG8tbGctNyBwby14bC03XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImZyZXF1ZW5jeVR5cGVXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJmcmVxdWVuY3lUeXBlT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lUeXBlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9wby1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9wby10YWI+XHJcblxyXG4gICAgICAgICAgICA8cG8tdGFiIFxyXG4gICAgICAgICAgICAgICAgcC1sYWJlbD1cIk1lbnNhbFwiIFxyXG4gICAgICAgICAgICAgICAgW3AtYWN0aXZlXT1cImdldEFjdGl2ZVRhYigzKVwiIFxyXG4gICAgICAgICAgICAgICAgKHAtY2xpY2spPVwic2V0QWN0aXZlVGFiKDMpXCI+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBvLXJvdyBwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1udW1iZXJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS0zIHBvLW1kLTMgcG8tbGctMyBwby14bC0zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImRheU9mTW9udGhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiRGlhIGRvIG3DqnNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbmxlbmd0aD1cIjFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heGxlbmd0aD1cIjJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1heD1cIjMxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmRheU9mTW9udGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1yYWRpby1ncm91cCBcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS0xMiBwby1tZC0xMiBwby1sZy0xMiBwby14bC0xMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJmcmVxdWVuY3lNb250aGx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkZyZXF1w6puY2lhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1jb2x1bW5zPTFcclxuICAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJtb2RlbC5mcmVxdWVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwiZnJlcXVlbmN5T3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwLWNoYW5nZSk9XCJjaGFuZ2VUeXBlRnJlcXVlbmN5KClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1yb3cgcG8tc20tNiBwby1tZC02IHBvLWxnLTYgcG8teGwtNlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTYgcG8tbWQtNiBwby1sZy02IHBvLXhsLTZcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXhlY0FwcG9pbnRIb3VySW5pdE1vbnRobHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiSG9yYSBJbsOtY2lvXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VySW5pdFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvcG8taW5wdXQ+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxwby1pbnB1dCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1zbS02IHBvLW1kLTYgcG8tbGctNiBwby14bC02XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImV4ZWNBcHBvaW50SG91ckZpbmFsV2Vla2x5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1sYWJlbD1cIkhvcmEgRmltXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXNrPVwiOTk6OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLW1hc2stZm9ybWF0LW1vZGVsPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtcGF0dGVybj1cIl4oWzAtOV18MFswLTldfDFbMC05XXwyWzAtM10pOlswLTVdWzAtOV0kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1lcnJvci1wYXR0ZXJuPVwiSG9yYSBpbnbDoWxpZGFcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZXhlY0FwcG9pbnRIb3VyRmluYWxcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLWlucHV0PlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8cG8tbnVtYmVyICpuZ0lmPVwiaXNGcmVucXVlbmN5KClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBvLXNtLTUgcG8tbWQtNSBwby1sZy01IHBvLXhsLTVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VmFsdWVXZWVrbHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwLWxhYmVsPVwiQSBjYWRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW5sZW5ndGg9XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1taW49XCIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgcC1tYXg9XCI5OTlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1kaXNhYmxlZF09XCJkaXNhYmxlZFBhcmFtc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWwuZnJlcXVlbmN5VmFsdWVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLW51bWJlcj5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgPHBvLXNlbGVjdCAqbmdJZj1cImlzRnJlbnF1ZW5jeSgpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwby1tdC0zIHBvLXNtLTcgcG8tbWQtNyBwby1sZy03IHBvLXhsLTdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZnJlcXVlbmN5VHlwZVdlZWtseVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHAtbGFiZWw9XCJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cImZyZXF1ZW5jeVR5cGVPcHRpb25zXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3AtZGlzYWJsZWRdPVwiZGlzYWJsZWRQYXJhbXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cIm1vZGVsLmZyZXF1ZW5jeVR5cGVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BvLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3BvLXRhYj5cclxuICAgICAgICA8L3BvLXRhYnM+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicG8tc20tMTIgcG8tbWQtMTIgcG8tbGctMTIgcG8teGwtMTJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAxNXB4O1wiPlxyXG4gICAgICAgIDxwby1idXR0b25cclxuICAgICAgICAgICAgc3R5bGU9XCJmbG9hdDogcmlnaHQ7XCJcclxuICAgICAgICAgICAgcC1sYWJlbD1cIkdlcmFyIEFnZW5kYW1lbnRvIFJQV1wiXHJcbiAgICAgICAgICAgIFtwLWRpc2FibGVkXT1cImRpc2FibGVkUGFyYW1zXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImV4ZWN1dGVTY2hlZHVsZSgpXCI+XHJcbiAgICAgICAgPC9wby1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|