sigesp 1.0.15-20240722 → 1.0.17-20240820
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/esm2020/lib/core/interfaces/Constantes.mjs +1 -1
- package/esm2020/lib/core/interfaces/Nomina.mjs +1 -1
- package/esm2020/lib/core/models/SNO/MDefinicionNomina.model.mjs +13 -45
- package/esm2020/lib/core/models/SNO/MPeriodoNomina.model.mjs +87 -1
- package/esm2020/lib/core/models/SNO/MPersonalNomina.model.mjs +3 -3
- package/esm2020/public-api.mjs +2 -2
- package/fesm2015/sigesp.mjs +100 -46
- package/fesm2015/sigesp.mjs.map +1 -1
- package/fesm2020/sigesp.mjs +100 -46
- package/fesm2020/sigesp.mjs.map +1 -1
- package/lib/core/interfaces/Constantes.d.ts +2 -0
- package/lib/core/interfaces/Nomina.d.ts +28 -14
- package/lib/core/models/SNO/MDefinicionNomina.model.d.ts +4 -15
- package/lib/core/models/SNO/MPeriodoNomina.model.d.ts +32 -1
- package/package.json +1 -1
- package/public-api.d.ts +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MBasicModel } from '../basic-model.model';
|
|
2
|
-
import { MPeriodoNomina } from './MPeriodoNomina.model';
|
|
2
|
+
import { MPeriodoNomina, MProcesosNomina } from './MPeriodoNomina.model';
|
|
3
3
|
import { formatDate } from '@angular/common';
|
|
4
4
|
export class MDefinicionNomina extends MBasicModel {
|
|
5
5
|
constructor(e = null) {
|
|
@@ -18,40 +18,27 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
18
18
|
this.tipoNomina = 0;
|
|
19
19
|
this.racNomina = 0;
|
|
20
20
|
this.adelantoPagoNomina = 0;
|
|
21
|
-
this.nominaEspecial = 0;
|
|
22
|
-
this.nominaCestaTicket = 0;
|
|
23
|
-
this.cestaTicketMetodoNomina = '';
|
|
24
|
-
this.codigoOrganismoCestaTicket = '';
|
|
25
21
|
this.ContabilizacionNomina = 'CCP';
|
|
26
22
|
this.destinoComprobanteNomina = 'B';
|
|
27
23
|
this.idProveedor = 0;
|
|
28
24
|
this.cuentaContableNomina = '';
|
|
29
25
|
this.notaDebitoBanco = 0;
|
|
30
|
-
this.recepcionDocumentoNomina = 0;
|
|
31
26
|
this.tipoDocumentoNomina = 0;
|
|
32
27
|
this.contabilizacionAporteNomina = 'CCP';
|
|
33
|
-
this.recepcionDocumentoAporte = 0;
|
|
34
28
|
this.tipoDocumentoAporte = 0;
|
|
35
29
|
this.periodoARestableceNomina = '';
|
|
36
30
|
this.validarContabilizacionPeriodoAnteriorNomina = 0;
|
|
37
31
|
this.tituloReporteNomina = '';
|
|
38
32
|
this.contabilizacionFideicomisoNomina = 'CCP';
|
|
39
|
-
this.recepcionDocumentoFideicomiso = 0;
|
|
40
33
|
this.tipoDocumentoFideicomiso = 0;
|
|
41
34
|
this.idBeneficiarioFideicomiso = 0;
|
|
42
35
|
this.cuentaContableFideicomiso = '';
|
|
43
36
|
this.informacionParaReporte = '';
|
|
44
37
|
this.dividirConceptoQuincena = 0;
|
|
45
|
-
this.recepcionDocumentoPagoPersonalCheque = 0;
|
|
46
38
|
this.tipoDocumentoPagoPersonalCheque = 0;
|
|
47
39
|
this.estatusCuentaAlternativa = 0;
|
|
48
|
-
this.racObreroNomina = 0;
|
|
49
|
-
this.nominaLiquidacion = 0;
|
|
50
|
-
this.hojaTiempoNomina = 0;
|
|
51
40
|
this.codigoFuenteFinanciamiento = 0;
|
|
52
41
|
this.cerrarSinDisponibilidad = 0;
|
|
53
|
-
this.estatusAgruparAportes = 0;
|
|
54
|
-
this.recepcionDocumentoCausa = 0;
|
|
55
42
|
this.tipoDocumentoCausa = 0;
|
|
56
43
|
this.idConceptoClasificacionParaNomina = 0;
|
|
57
44
|
this.idConceptoClasificacionParaAporte = 0;
|
|
@@ -73,7 +60,6 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
73
60
|
this.nombreProveedor = '';
|
|
74
61
|
this.nombreBeneficiarioFideicomiso = '';
|
|
75
62
|
this.codigoCentroCosto = '---';
|
|
76
|
-
this.cestaTickectSueltos = 0;
|
|
77
63
|
this.codigoUsuario = '';
|
|
78
64
|
this.denominacionCentroConsto = '';
|
|
79
65
|
this.denominacionCuentaContable = '';
|
|
@@ -81,7 +67,10 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
81
67
|
this.idPeriodoRestablecerNomina = 0;
|
|
82
68
|
this.estatusIncidencia = 0;
|
|
83
69
|
this.segmentarPersonal = 3000;
|
|
70
|
+
this.idUnidadAdministradora = 0;
|
|
71
|
+
this.denominacionUnidadAdministradora = '';
|
|
84
72
|
this.periodosNomina = [];
|
|
73
|
+
this.procesosNomina = [];
|
|
85
74
|
if (e) {
|
|
86
75
|
this.idEnterprise = +e.id_enterprise;
|
|
87
76
|
this.idEmpresa = +e.id_empresa;
|
|
@@ -97,40 +86,27 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
97
86
|
this.tipoNomina = parseInt(e.tipnom);
|
|
98
87
|
this.racNomina = parseInt(e.racnom);
|
|
99
88
|
this.adelantoPagoNomina = parseInt(e.adenom);
|
|
100
|
-
this.nominaEspecial = parseInt(e.espnom);
|
|
101
|
-
this.nominaCestaTicket = parseInt(e.ctnom);
|
|
102
|
-
this.cestaTicketMetodoNomina = e.ctmetnom;
|
|
103
|
-
this.codigoOrganismoCestaTicket = e.codorgcestic;
|
|
104
89
|
this.ContabilizacionNomina = e.consulnom;
|
|
105
90
|
this.destinoComprobanteNomina = e.descomnom;
|
|
106
91
|
this.idProveedor = parseInt(e.id_proveedor);
|
|
107
92
|
this.cuentaContableNomina = e.cueconnom;
|
|
108
93
|
this.notaDebitoBanco = parseInt(e.notdebnom);
|
|
109
|
-
this.recepcionDocumentoNomina = parseInt(e.recdocnom);
|
|
110
94
|
this.tipoDocumentoNomina = parseInt(e.tipdocnom);
|
|
111
95
|
this.contabilizacionAporteNomina = e.conaponom;
|
|
112
|
-
this.recepcionDocumentoAporte = parseInt(e.recdocapo);
|
|
113
96
|
this.tipoDocumentoAporte = parseInt(e.tipdocapo);
|
|
114
97
|
this.periodoARestableceNomina = e.perresnom;
|
|
115
98
|
this.validarContabilizacionPeriodoAnteriorNomina = parseInt(e.conpernom);
|
|
116
99
|
this.tituloReporteNomina = e.titrepnom;
|
|
117
100
|
this.contabilizacionFideicomisoNomina = e.confidnom;
|
|
118
|
-
this.recepcionDocumentoFideicomiso = parseInt(e.recdocfid);
|
|
119
101
|
this.tipoDocumentoFideicomiso = parseInt(e.tipdocfid);
|
|
120
102
|
this.idBeneficiarioFideicomiso = parseInt(e.id_benfid);
|
|
121
103
|
this.cuentaContableFideicomiso = e.cueconfid;
|
|
122
104
|
this.informacionParaReporte = e.informa;
|
|
123
105
|
this.dividirConceptoQuincena = parseInt(e.divcon);
|
|
124
|
-
this.recepcionDocumentoPagoPersonalCheque = parseInt(e.recdocpagperche);
|
|
125
106
|
this.tipoDocumentoPagoPersonalCheque = parseInt(e.tipdocpagperche);
|
|
126
107
|
this.estatusCuentaAlternativa = parseInt(e.estctaalt);
|
|
127
|
-
this.racObreroNomina = parseInt(e.racobrnom);
|
|
128
|
-
this.nominaLiquidacion = parseInt(e.nomliq);
|
|
129
|
-
this.hojaTiempoNomina = parseInt(e.hojtienom);
|
|
130
108
|
this.codigoFuenteFinanciamiento = parseInt(e.codfuefin);
|
|
131
109
|
this.cerrarSinDisponibilidad = parseInt(e.cersindis);
|
|
132
|
-
this.estatusAgruparAportes = parseInt(e.estagrapo);
|
|
133
|
-
this.recepcionDocumentoCausa = parseInt(e.recdoccaunom);
|
|
134
110
|
this.tipoDocumentoCausa = parseInt(e.tipdoccaunom);
|
|
135
111
|
this.idConceptoClasificacionParaNomina = parseInt(e.id_concxpnom);
|
|
136
112
|
this.idConceptoClasificacionParaAporte = parseInt(e.id_concxpapo);
|
|
@@ -139,7 +115,6 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
139
115
|
this.idConceptoClasificacionParaFideicomiso = parseInt(e.id_concxpfid);
|
|
140
116
|
this.codigoCentroCosto = e.codcencos;
|
|
141
117
|
this.denominacionCentroConsto = e.dencencos;
|
|
142
|
-
this.cestaTickectSueltos = parseInt(e.cestiksuel);
|
|
143
118
|
this.denominacionCodigoFuenteFinanciamiento = e.codigoftefin + ' - ' + e.denfuefin;
|
|
144
119
|
this.denominacionCuentaContable = e.denctacont;
|
|
145
120
|
this.nombreProveedor = e.nompro;
|
|
@@ -147,8 +122,13 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
147
122
|
if (e.periodos) {
|
|
148
123
|
this.periodosNomina = e.periodos.map(e => new MPeriodoNomina(e));
|
|
149
124
|
}
|
|
125
|
+
if (e.procesos) {
|
|
126
|
+
this.procesosNomina = e.procesos.map(e => new MProcesosNomina(e));
|
|
127
|
+
}
|
|
150
128
|
this.idPeriodoNomina = parseInt(e.id_periodoactual);
|
|
151
129
|
this.idPeriodoRestablecerNomina = parseInt(e.id_perresnom);
|
|
130
|
+
this.idUnidadAdministradora = +e.id_uniadm;
|
|
131
|
+
this.denominacionUnidadAdministradora = e.coduniadm + ' - ' + e.denuniadm;
|
|
152
132
|
this.segmentarPersonal = parseInt(e.segper);
|
|
153
133
|
}
|
|
154
134
|
else {
|
|
@@ -175,47 +155,33 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
175
155
|
tipnom: this.tipoNomina.toString(),
|
|
176
156
|
racnom: this.racNomina.toString(),
|
|
177
157
|
adenom: this.adelantoPagoNomina.toString(),
|
|
178
|
-
espnom: this.nominaEspecial.toString(),
|
|
179
|
-
ctnom: this.nominaCestaTicket.toString(),
|
|
180
|
-
ctmetnom: this.cestaTicketMetodoNomina,
|
|
181
|
-
codorgcestic: this.codigoOrganismoCestaTicket,
|
|
182
158
|
consulnom: this.ContabilizacionNomina,
|
|
183
159
|
descomnom: this.destinoComprobanteNomina,
|
|
184
160
|
id_proveedor: this.idProveedor.toString(),
|
|
185
161
|
cueconnom: this.cuentaContableNomina,
|
|
186
162
|
notdebnom: this.notaDebitoBanco.toString(),
|
|
187
|
-
recdocnom: this.recepcionDocumentoNomina.toString(),
|
|
188
163
|
tipdocnom: this.tipoDocumentoNomina.toString(),
|
|
189
164
|
conaponom: this.contabilizacionAporteNomina,
|
|
190
|
-
recdocapo: this.recepcionDocumentoAporte.toString(),
|
|
191
165
|
tipdocapo: this.tipoDocumentoAporte.toString(),
|
|
192
166
|
perresnom: this.periodoARestableceNomina,
|
|
193
167
|
conpernom: this.validarContabilizacionPeriodoAnteriorNomina.toString(),
|
|
194
168
|
titrepnom: this.tituloReporteNomina,
|
|
195
169
|
confidnom: this.contabilizacionFideicomisoNomina,
|
|
196
|
-
recdocfid: this.recepcionDocumentoFideicomiso.toString(),
|
|
197
170
|
tipdocfid: this.tipoDocumentoFideicomiso.toString(),
|
|
198
171
|
id_benfid: this.idBeneficiarioFideicomiso.toString(),
|
|
199
172
|
cueconfid: this.cuentaContableFideicomiso,
|
|
200
173
|
informa: this.informacionParaReporte,
|
|
201
174
|
divcon: this.dividirConceptoQuincena.toString(),
|
|
202
|
-
recdocpagperche: this.recepcionDocumentoPagoPersonalCheque.toString(),
|
|
203
175
|
tipdocpagperche: this.tipoDocumentoPagoPersonalCheque.toString(),
|
|
204
176
|
estctaalt: this.estatusCuentaAlternativa.toString(),
|
|
205
|
-
racobrnom: this.racObreroNomina.toString(),
|
|
206
|
-
nomliq: this.nominaLiquidacion.toString(),
|
|
207
|
-
hojtienom: this.hojaTiempoNomina.toString(),
|
|
208
177
|
codfuefin: this.codigoFuenteFinanciamiento.toString(),
|
|
209
178
|
cersindis: this.cerrarSinDisponibilidad.toString(),
|
|
210
|
-
estagrapo: this.estatusAgruparAportes.toString(),
|
|
211
|
-
recdoccaunom: this.recepcionDocumentoCausa.toString(),
|
|
212
179
|
tipdoccaunom: this.tipoDocumentoCausa.toString(),
|
|
213
180
|
id_concxpnom: this.idConceptoClasificacionParaNomina.toString(),
|
|
214
181
|
id_concxpapo: this.idConceptoClasificacionParaAporte.toString(),
|
|
215
182
|
id_concxpcau: this.idConceptoClasificacionParaCausa.toString(),
|
|
216
183
|
id_concxpper: this.idConceptoClasificacionParaPersonal.toString(),
|
|
217
184
|
id_concxpfid: this.idConceptoClasificacionParaFideicomiso.toString(),
|
|
218
|
-
cestiksuel: this.cestaTickectSueltos.toString(),
|
|
219
185
|
codcencos: this.codigoCentroCosto,
|
|
220
186
|
codusu: this.codigoUsuario,
|
|
221
187
|
codigoftefin: this.codigoFuenteFinanciamiento.toString(),
|
|
@@ -227,7 +193,9 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
227
193
|
id_perresnom: this.idPeriodoRestablecerNomina.toString(),
|
|
228
194
|
estincidencia: this.estatusIncidencia.toString(),
|
|
229
195
|
segper: this.segmentarPersonal.toString(),
|
|
196
|
+
id_uniadm: this.idUnidadAdministradora.toString(),
|
|
230
197
|
periodos: this.periodosNomina.map((function (e) { return e.dataInterface(); })),
|
|
198
|
+
procesos: this.procesosNomina.map((function (e) { return e.dataInterface(); })),
|
|
231
199
|
};
|
|
232
200
|
}
|
|
233
201
|
getPeriodoNomina() {
|
|
@@ -275,7 +243,7 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
275
243
|
fechaFinalNomina() {
|
|
276
244
|
let i = this.periodosNomina.length - 1;
|
|
277
245
|
let fechaFin = this.periodosNomina[i].fechaHastaperiodo;
|
|
278
|
-
return formatDate(fechaFin, 'yyyy-MM-dd', '
|
|
246
|
+
return formatDate(fechaFin, 'yyyy-MM-dd', 'es-ES');
|
|
279
247
|
}
|
|
280
248
|
/**
|
|
281
249
|
* @returns fecha de inicio a fin de la nomina
|
|
@@ -342,4 +310,4 @@ export class MDefinicionNomina extends MBasicModel {
|
|
|
342
310
|
}
|
|
343
311
|
}
|
|
344
312
|
}
|
|
345
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTURlZmluaWNpb25Ob21pbmEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWdlc3Avc3JjL2xpYi9jb3JlL21vZGVscy9TTk8vTURlZmluaWNpb25Ob21pbmEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsTUFBTSxPQUFPLGlCQUFrQixTQUFRLFdBQVc7SUFnRmhELFlBQVksSUFBVSxJQUFJO1FBQ3hCLEtBQUssRUFBRSxDQUFDO1FBaEZILGlCQUFZLEdBQVEsQ0FBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbkIsYUFBUSxHQUFRLENBQUMsQ0FBQztRQUNsQixpQkFBWSxHQUFRLEVBQUUsQ0FBQztRQUN2Qix1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFDN0IsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLDZCQUF3QixHQUFRLEVBQUUsQ0FBQztRQUNuQyxtQkFBYyxHQUFRLENBQUMsQ0FBQztRQUN4QixzQkFBaUIsR0FBUSxZQUFZLENBQUM7UUFDdEMsd0JBQW1CLEdBQVEsS0FBSyxDQUFDO1FBQ2pDLHdCQUFtQixHQUFRLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQVEsQ0FBQyxDQUFDO1FBQ3BCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbkIsdUJBQWtCLEdBQVEsQ0FBQyxDQUFDO1FBQzVCLG1CQUFjLEdBQVEsQ0FBQyxDQUFDO1FBQ3hCLHNCQUFpQixHQUFRLENBQUMsQ0FBQztRQUMzQiw0QkFBdUIsR0FBUSxFQUFFLENBQUM7UUFDbEMsK0JBQTBCLEdBQVEsRUFBRSxDQUFDO1FBQ3JDLDBCQUFxQixH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QU8sSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUUsRUFBRSxFQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7YUFBTyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBRSxFQUFFLEVBQUM7WUFDdkMsT0FBTyxLQUFLLENBQUE7U0FDYjthQUFPLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFFLENBQUMsRUFBQztZQUN0QyxPQUFPLEtBQUssQ0FBQTtTQUNiO0lBRUgsQ0FBQztDQUtGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTUJhc2ljTW9kZWwgfSBmcm9tICcuLi9iYXNpYy1tb2RlbC5tb2RlbCc7XHJcbmltcG9ydCB7IElOb21pbmEsIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Ob21pbmEnO1xyXG5pbXBvcnQgeyBNUGVyaW9kb05vbWluYSB9IGZyb20gJy4vTVBlcmlvZG9Ob21pbmEubW9kZWwnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNRGVmaW5pY2lvbk5vbWluYSBleHRlbmRzIE1CYXNpY01vZGVsIHsgXHJcbiAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICBwdWJsaWMgaWROb21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGNvZGlnb05vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbk5vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIHRpcG9QZXJvaW9kb05vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlc2NyaXBjaW9uUGVyaW9kb05vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGFub0N1cnNvTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBmZWNoYUluaWNpb05vbWluYTpzdHJpbmc9JzE5MDAtMDEtMDEnO1xyXG4gIHB1YmxpYyBwZXJpb2RvQWN0dWFsTm9taW5hOnN0cmluZz0nMDAxJztcclxuICBwdWJsaWMgbnVtZXJvUGVyaW9kb05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgdGlwb05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgcmFjTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBhZGVsYW50b1BhZ29Ob21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIG5vbWluYUVzcGVjaWFsOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBub21pbmFDZXN0YVRpY2tldDpudW1iZXI9MDtcclxuICBwdWJsaWMgY2VzdGFUaWNrZXRNZXRvZG9Ob21pbmE6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBjb2RpZ29PcmdhbmlzbW9DZXN0YVRpY2tldDpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIENvbnRhYmlsaXphY2lvbk5vbWluYTpzdHJpbmc9J0NDUCc7XHJcbiAgcHVibGljIGRlc3Rpbm9Db21wcm9iYW50ZU5vbWluYTpzdHJpbmc9J0InO1xyXG4gIHB1YmxpYyBpZFByb3ZlZWRvcjpudW1iZXI9MDtcclxuICBwdWJsaWMgY3VlbnRhQ29udGFibGVOb21pbmE6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBub3RhRGViaXRvQmFuY286bnVtYmVyPTA7XHJcbiAgcHVibGljIHJlY2VwY2lvbkRvY3VtZW50b05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgY29udGFiaWxpemFjaW9uQXBvcnRlTm9taW5hOnN0cmluZz0nQ0NQJztcclxuICBwdWJsaWMgcmVjZXBjaW9uRG9jdW1lbnRvQXBvcnRlOm51bWJlcj0wO1xyXG4gIHB1YmxpYyB0aXBvRG9jdW1lbnRvQXBvcnRlOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBwZXJpb2RvQVJlc3RhYmxlY2VOb21pbmE6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyB2YWxpZGFyQ29udGFiaWxpemFjaW9uUGVyaW9kb0FudGVyaW9yTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyB0aXR1bG9SZXBvcnRlTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgY29udGFiaWxpemFjaW9uRmlkZWljb21pc29Ob21pbmE6c3RyaW5nPSdDQ1AnO1xyXG4gIHB1YmxpYyByZWNlcGNpb25Eb2N1bWVudG9GaWRlaWNvbWlzbzpudW1iZXI9MDtcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b0ZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZEJlbmVmaWNpYXJpb0ZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBjdWVudGFDb250YWJsZUZpZGVpY29taXNvOnN0cmluZz0nJztcclxuICBwdWJsaWMgaW5mb3JtYWNpb25QYXJhUmVwb3J0ZTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRpdmlkaXJDb25jZXB0b1F1aW5jZW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyByZWNlcGNpb25Eb2N1bWVudG9QYWdvUGVyc29uYWxDaGVxdWU6bnVtYmVyPTA7XHJcbiAgcHVibGljIHRpcG9Eb2N1bWVudG9QYWdvUGVyc29uYWxDaGVxdWU6bnVtYmVyPTA7XHJcbiAgcHVibGljIGVzdGF0dXNDdWVudGFBbHRlcm5hdGl2YTpudW1iZXI9MDtcclxuICBwdWJsaWMgcmFjT2JyZXJvTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBub21pbmFMaXF1aWRhY2lvbjpudW1iZXI9MDtcclxuICBwdWJsaWMgaG9qYVRpZW1wb05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgY29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG86bnVtYmVyPTA7XHJcbiAgcHVibGljIGNlcnJhclNpbkRpc3BvbmliaWxpZGFkOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBlc3RhdHVzQWdydXBhckFwb3J0ZXM6bnVtYmVyPTA7XHJcbiAgcHVibGljIHJlY2VwY2lvbkRvY3VtZW50b0NhdXNhOm51bWJlcj0wO1xyXG4gIHB1YmxpYyB0aXBvRG9jdW1lbnRvQ2F1c2E6bnVtYmVyPTA7XHJcbiAgcHVibGljIGlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYU5vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQXBvcnRlOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFDYXVzYTpudW1iZXI9MDtcclxuICBwdWJsaWMgaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgcHVibGljIGlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25Db25jZXB0b0NsYXNpZmljYWNpb25QYXJhTm9taW5hPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25Db25jZXB0b0NsYXNpZmljYWNpb25QYXJhQXBvcnRlPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25Db25jZXB0b0NsYXNpZmljYWNpb25QYXJhQ2F1c2E9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbkNvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFQZXJzb25hbD0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUZpZGVpY29taXNvPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25UaXBvRG9jdW1lbnRvTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uVGlwb0RvY3VtZW50b0NhdXNhOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uVGlwb0RvY3VtZW50b1BhZ29QZXJzb25hbENoZXF1ZTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvblRpcG9Eb2N1bWVudG9GaWRlaWNvbWlzbzpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvblRpcG9Eb2N1bWVudG9BcG9ydGU9Jyc7XHJcbiAgcHVibGljIGNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvTW9zdGFyOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG86c3RyaW5nPScnOyAgXHJcbiAgcHVibGljIG5vbWJyZVByb3ZlZWRvcjpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIG5vbWJyZUJlbmVmaWNpYXJpb0ZpZGVpY29taXNvOnN0cmluZz0nJztcclxuICBwdWJsaWMgY29kaWdvQ2VudHJvQ29zdG86c3RyaW5nPSctLS0nO1xyXG4gIHB1YmxpYyBjZXN0YVRpY2tlY3RTdWVsdG9zOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBjb2RpZ29Vc3VhcmlvOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ2VudHJvQ29uc3RvOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ3VlbnRhQ29udGFibGU6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBpZFBlcmlvZG9Ob21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGlkUGVyaW9kb1Jlc3RhYmxlY2VyTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBlc3RhdHVzSW5jaWRlbmNpYTpudW1iZXI9MDtcclxuXHRwdWJsaWMgc2VnbWVudGFyUGVyc29uYWw6bnVtYmVyPTMwMDA7XHJcbiAgcHVibGljIHBlcmlvZG9zTm9taW5hOk1QZXJpb2RvTm9taW5hW109W107XHJcblxyXG4gIGNvbnN0cnVjdG9yKGU6SU5vbWluYT1udWxsKXtcclxuICAgIHN1cGVyKCk7XHJcbiAgICAgIGlmIChlKXtcclxuICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgdGhpcy5pZEVtcHJlc2E9K2UuaWRfZW1wcmVzYcKgXHJcbiAgICAgICAgdGhpcy5pZE5vbWluYT1wYXJzZUludChlLmlkX25vbWluYSk7XHJcbiAgICAgICAgICB0aGlzLmNvZGlnb05vbWluYT1lLmNvZG5vbTtcclxuICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uTm9taW5hPWUuZGVubm9tO1xyXG4gICAgICAgICAgdGhpcy50aXBvUGVyb2lvZG9Ob21pbmE9ZS50aXBwZXJub207XHJcbiAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uUGVyaW9kb05vbWluYT1lLmRlc3Blcm5vbTtcclxuICAgICAgICAgIHRoaXMuYW5vQ3Vyc29Ob21pbmE9cGFyc2VJbnQoZS5hbm9jdXJub20pO1xyXG4gICAgICAgICAgdGhpcy5mZWNoYUluaWNpb05vbWluYT1lLmZlY2luaW5vbTtcclxuICAgICAgICAgIHRoaXMucGVyaW9kb0FjdHVhbE5vbWluYT1lLnBlcmFjdG5vbTtcclxuICAgICAgICAgIHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT1wYXJzZUludChlLm51bXBlcm5vbSk7XHJcbiAgICAgICAgICB0aGlzLnRpcG9Ob21pbmE9cGFyc2VJbnQoZS50aXBub20pO1xyXG4gICAgICAgICAgdGhpcy5yYWNOb21pbmE9cGFyc2VJbnQoZS5yYWNub20pO1xyXG4gICAgICAgICAgdGhpcy5hZGVsYW50b1BhZ29Ob21pbmE9cGFyc2VJbnQoZS5hZGVub20pO1xyXG4gICAgICAgICAgdGhpcy5ub21pbmFFc3BlY2lhbD1wYXJzZUludChlLmVzcG5vbSk7XHJcbiAgICAgICAgICB0aGlzLm5vbWluYUNlc3RhVGlja2V0PXBhcnNlSW50KGUuY3Rub20pO1xyXG4gICAgICAgICAgdGhpcy5jZXN0YVRpY2tldE1ldG9kb05vbWluYT1lLmN0bWV0bm9tO1xyXG4gICAgICAgICAgdGhpcy5jb2RpZ29PcmdhbmlzbW9DZXN0YVRpY2tldD1lLmNvZG9yZ2Nlc3RpYztcclxuICAgICAgICAgIHRoaXMuQ29udGFiaWxpemFjaW9uTm9taW5hPWUuY29uc3Vsbm9tO1xyXG4gICAgICAgICAgdGhpcy5kZXN0aW5vQ29tcHJvYmFudGVOb21pbmE9ZS5kZXNjb21ub207XHJcbiAgICAgICAgICB0aGlzLmlkUHJvdmVlZG9yPXBhcnNlSW50KGUuaWRfcHJvdmVlZG9yKTtcclxuICAgICAgICAgIHRoaXMuY3VlbnRhQ29udGFibGVOb21pbmE9ZS5jdWVjb25ub207XHJcbiAgICAgICAgICB0aGlzLm5vdGFEZWJpdG9CYW5jbz1wYXJzZUludChlLm5vdGRlYm5vbSk7XHJcbiAgICAgICAgICB0aGlzLnJlY2VwY2lvbkRvY3VtZW50b05vbWluYT1wYXJzZUludChlLnJlY2RvY25vbSk7XHJcbiAgICAgICAgICB0aGlzLnRpcG9Eb2N1bWVudG9Ob21pbmE9cGFyc2VJbnQoZS50aXBkb2Nub20pO1xyXG4gICAgICAgICAgdGhpcy5jb250YWJpbGl6YWNpb25BcG9ydGVOb21pbmE9ZS5jb25hcG9ub207XHJcbiAgICAgICAgICB0aGlzLnJlY2VwY2lvbkRvY3VtZW50b0Fwb3J0ZT1wYXJzZUludChlLnJlY2RvY2Fwbyk7XHJcbiAgICAgICAgICB0aGlzLnRpcG9Eb2N1bWVudG9BcG9ydGU9cGFyc2VJbnQoZS50aXBkb2NhcG8pO1xyXG4gICAgICAgICAgdGhpcy5wZXJpb2RvQVJlc3RhYmxlY2VOb21pbmE9ZS5wZXJyZXNub207XHJcbiAgICAgICAgICB0aGlzLnZhbGlkYXJDb250YWJpbGl6YWNpb25QZXJpb2RvQW50ZXJpb3JOb21pbmE9cGFyc2VJbnQoZS5jb25wZXJub20pO1xyXG4gICAgICAgICAgdGhpcy50aXR1bG9SZXBvcnRlTm9taW5hPWUudGl0cmVwbm9tO1xyXG4gICAgICAgICAgdGhpcy5jb250YWJpbGl6YWNpb25GaWRlaWNvbWlzb05vbWluYT1lLmNvbmZpZG5vbTtcclxuICAgICAgICAgIHRoaXMucmVjZXBjaW9uRG9jdW1lbnRvRmlkZWljb21pc289cGFyc2VJbnQoZS5yZWNkb2NmaWQpO1xyXG4gICAgICAgICAgdGhpcy50aXBvRG9jdW1lbnRvRmlkZWljb21pc289cGFyc2VJbnQoZS50aXBkb2NmaWQpO1xyXG4gICAgICAgICAgdGhpcy5pZEJlbmVmaWNpYXJpb0ZpZGVpY29taXNvPXBhcnNlSW50KGUuaWRfYmVuZmlkKTtcclxuICAgICAgICAgIHRoaXMuY3VlbnRhQ29udGFibGVGaWRlaWNvbWlzbz1lLmN1ZWNvbmZpZDtcclxuICAgICAgICAgIHRoaXMuaW5mb3JtYWNpb25QYXJhUmVwb3J0ZT1lLmluZm9ybWE7XHJcbiAgICAgICAgICB0aGlzLmRpdmlkaXJDb25jZXB0b1F1aW5jZW5hPXBhcnNlSW50KGUuZGl2Y29uKTtcclxuICAgICAgICAgIHRoaXMucmVjZXBjaW9uRG9jdW1lbnRvUGFnb1BlcnNvbmFsQ2hlcXVlPXBhcnNlSW50KGUucmVjZG9jcGFncGVyY2hlKTtcclxuICAgICAgICAgIHRoaXMudGlwb0RvY3VtZW50b1BhZ29QZXJzb25hbENoZXF1ZT1wYXJzZUludChlLnRpcGRvY3BhZ3BlcmNoZSk7XHJcbiAgICAgICAgICB0aGlzLmVzdGF0dXNDdWVudGFBbHRlcm5hdGl2YcKgPXBhcnNlSW50KGUuZXN0Y3RhYWx0KTtcclxuICAgICAgICAgIHRoaXMucmFjT2JyZXJvTm9taW5hPXBhcnNlSW50KGUucmFjb2Jybm9tKTtcclxuICAgICAgICAgIHRoaXMubm9taW5hTGlxdWlkYWNpb249cGFyc2VJbnQoZS5ub21saXEpO1xyXG4gICAgICAgICAgdGhpcy5ob2phVGllbXBvTm9taW5hPXBhcnNlSW50KGUuaG9qdGllbm9tKTtcclxuICAgICAgICAgIHRoaXMuY29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG89cGFyc2VJbnQoZS5jb2RmdWVmaW4pO1xyXG4gICAgICAgICAgdGhpcy5jZXJyYXJTaW5EaXNwb25pYmlsaWRhZD1wYXJzZUludChlLmNlcnNpbmRpcyk7XHJcbiAgICAgICAgICB0aGlzLmVzdGF0dXNBZ3J1cGFyQXBvcnRlcz1wYXJzZUludChlLmVzdGFncmFwbyk7XHJcbiAgICAgICAgICB0aGlzLnJlY2VwY2lvbkRvY3VtZW50b0NhdXNhPXBhcnNlSW50KGUucmVjZG9jY2F1bm9tKTtcclxuICAgICAgICAgIHRoaXMudGlwb0RvY3VtZW50b0NhdXNhPXBhcnNlSW50KGUudGlwZG9jY2F1bm9tKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhTm9taW5hPXBhcnNlSW50KGUuaWRfY29uY3hwbm9tKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQXBvcnRlPXBhcnNlSW50KGUuaWRfY29uY3hwYXBvKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQ2F1c2E9cGFyc2VJbnQoZS5pZF9jb25jeHBjYXUpO1xyXG4gICAgICAgICAgdGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFQZXJzb25hbD1wYXJzZUludChlLmlkX2NvbmN4cHBlcik7XHJcbiAgICAgICAgICB0aGlzLmlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUZpZGVpY29taXNvPXBhcnNlSW50KGUuaWRfY29uY3hwZmlkKTtcclxuICAgICAgICAgIHRoaXMuY29kaWdvQ2VudHJvQ29zdG89ZS5jb2RjZW5jb3NcclxuICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ2VudHJvQ29uc3RvPWUuZGVuY2VuY29zXHJcbiAgICAgICAgICB0aGlzLmNlc3RhVGlja2VjdFN1ZWx0b3M9cGFyc2VJbnQoZS5jZXN0aWtzdWVsKSAgICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG89ZS5jb2RpZ29mdGVmaW4rJyAtICcrZS5kZW5mdWVmaW4gIFxyXG4gICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DdWVudGFDb250YWJsZT0gZS5kZW5jdGFjb250ICBcclxuICAgICAgICAgIHRoaXMubm9tYnJlUHJvdmVlZG9yPSBlLm5vbXBybztcclxuICAgICAgICAgIHRoaXMuZXN0YXR1c0luY2lkZW5jaWE9cGFyc2VJbnQoZS5lc3RpbmNpZGVuY2lhKTtcclxuICAgICAgICAgIGlmKGUucGVyaW9kb3Mpe1xyXG4gICAgICAgICAgICB0aGlzLnBlcmlvZG9zTm9taW5hPWUucGVyaW9kb3MubWFwKGU9Pm5ldyBNUGVyaW9kb05vbWluYShlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmlkUGVyaW9kb05vbWluYT1wYXJzZUludChlLmlkX3BlcmlvZG9hY3R1YWwpO1xyXG4gICAgICAgICAgdGhpcy5pZFBlcmlvZG9SZXN0YWJsZWNlck5vbWluYT1wYXJzZUludChlLmlkX3BlcnJlc25vbSk7IFxyXG4gICAgICAgICAgdGhpcy5zZWdtZW50YXJQZXJzb25hbD1wYXJzZUludChlLnNlZ3Blcik7IFxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJTm9taW5hIHtcclxuICAgICAgdGhpcy4gZ2V0UGVyaW9kb05vbWluYSgpO1xyXG4gICAgICBpZih0aGlzLnNlZ21lbnRhclBlcnNvbmFsPT0wKXtcclxuICAgICAgICB0aGlzLnNlZ21lbnRhclBlcnNvbmFsPTEwMDAwO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7XHJcbiAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgaWRfbm9taW5hOnRoaXMuaWROb21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGNvZG5vbTp0aGlzLmNvZGlnb05vbWluYSxcclxuICAgICAgICAgIGRlbm5vbTp0aGlzLmRlbm9taW5hY2lvbk5vbWluYSxcclxuICAgICAgICAgIHRpcHBlcm5vbTp0aGlzLnRpcG9QZXJvaW9kb05vbWluYSxcclxuICAgICAgICAgIGRlc3Blcm5vbTp0aGlzLmRlc2NyaXBjaW9uUGVyaW9kb05vbWluYSxcclxuICAgICAgICAgIGFub2N1cm5vbTp0aGlzLmFub0N1cnNvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBmZWNpbmlub206dGhpcy5mZWNoYUluaWNpb05vbWluYSxcclxuICAgICAgICAgIHBlcmFjdG5vbTp0aGlzLnBlcmlvZG9BY3R1YWxOb21pbmEsXHJcbiAgICAgICAgICBudW1wZXJub206dGhpcy5udW1lcm9QZXJpb2RvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICB0aXBub206dGhpcy50aXBvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICByYWNub206dGhpcy5yYWNOb21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGFkZW5vbTp0aGlzLmFkZWxhbnRvUGFnb05vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgZXNwbm9tOnRoaXMubm9taW5hRXNwZWNpYWwudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGN0bm9tOnRoaXMubm9taW5hQ2VzdGFUaWNrZXQudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGN0bWV0bm9tOnRoaXMuY2VzdGFUaWNrZXRNZXRvZG9Ob21pbmEsXHJcbiAgICAgICAgICBjb2RvcmdjZXN0aWM6dGhpcy5jb2RpZ29PcmdhbmlzbW9DZXN0YVRpY2tldCxcclxuICAgICAgICAgIGNvbnN1bG5vbTp0aGlzLkNvbnRhYmlsaXphY2lvbk5vbWluYSxcclxuICAgICAgICAgIGRlc2NvbW5vbTp0aGlzLmRlc3Rpbm9Db21wcm9iYW50ZU5vbWluYSxcclxuICAgICAgICAgIGlkX3Byb3ZlZWRvcjp0aGlzLmlkUHJvdmVlZG9yLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjdWVjb25ub206dGhpcy5jdWVudGFDb250YWJsZU5vbWluYSxcclxuICAgICAgICAgIG5vdGRlYm5vbTp0aGlzLm5vdGFEZWJpdG9CYW5jby50b1N0cmluZygpLFxyXG4gICAgICAgICAgcmVjZG9jbm9tOnRoaXMucmVjZXBjaW9uRG9jdW1lbnRvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICB0aXBkb2Nub206dGhpcy50aXBvRG9jdW1lbnRvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjb25hcG9ub206dGhpcy5jb250YWJpbGl6YWNpb25BcG9ydGVOb21pbmEsXHJcbiAgICAgICAgICByZWNkb2NhcG86dGhpcy5yZWNlcGNpb25Eb2N1bWVudG9BcG9ydGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHRpcGRvY2Fwbzp0aGlzLnRpcG9Eb2N1bWVudG9BcG9ydGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHBlcnJlc25vbTp0aGlzLnBlcmlvZG9BUmVzdGFibGVjZU5vbWluYSxcclxuICAgICAgICAgIGNvbnBlcm5vbTp0aGlzLnZhbGlkYXJDb250YWJpbGl6YWNpb25QZXJpb2RvQW50ZXJpb3JOb21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHRpdHJlcG5vbTp0aGlzLnRpdHVsb1JlcG9ydGVOb21pbmEsXHJcbiAgICAgICAgICBjb25maWRub206dGhpcy5jb250YWJpbGl6YWNpb25GaWRlaWNvbWlzb05vbWluYSxcclxuICAgICAgICAgIHJlY2RvY2ZpZDp0aGlzLnJlY2VwY2lvbkRvY3VtZW50b0ZpZGVpY29taXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICB0aXBkb2NmaWQ6dGhpcy50aXBvRG9jdW1lbnRvRmlkZWljb21pc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgIGlkX2JlbmZpZDp0aGlzLmlkQmVuZWZpY2lhcmlvRmlkZWljb21pc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgIGN1ZWNvbmZpZDp0aGlzLmN1ZW50YUNvbnRhYmxlRmlkZWljb21pc28sXHJcbiAgICAgICAgICBpbmZvcm1hOnRoaXMuaW5mb3JtYWNpb25QYXJhUmVwb3J0ZSxcclxuICAgICAgICAgIGRpdmNvbjp0aGlzLmRpdmlkaXJDb25jZXB0b1F1aW5jZW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICByZWNkb2NwYWdwZXJjaGU6dGhpcy5yZWNlcGNpb25Eb2N1bWVudG9QYWdvUGVyc29uYWxDaGVxdWUudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHRpcGRvY3BhZ3BlcmNoZTp0aGlzLnRpcG9Eb2N1bWVudG9QYWdvUGVyc29uYWxDaGVxdWUudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGVzdGN0YWFsdDp0aGlzLmVzdGF0dXNDdWVudGFBbHRlcm5hdGl2YcKgLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICByYWNvYnJub206dGhpcy5yYWNPYnJlcm9Ob21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIG5vbWxpcTp0aGlzLm5vbWluYUxpcXVpZGFjaW9uLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBob2p0aWVub206dGhpcy5ob2phVGllbXBvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjb2RmdWVmaW46dGhpcy5jb2RpZ29GdWVudGVGaW5hbmNpYW1pZW50by50b1N0cmluZygpLFxyXG4gICAgICAgICAgY2Vyc2luZGlzOnRoaXMuY2VycmFyU2luRGlzcG9uaWJpbGlkYWQudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGVzdGFncmFwbzp0aGlzLmVzdGF0dXNBZ3J1cGFyQXBvcnRlcy50b1N0cmluZygpLFxyXG4gICAgICAgICAgcmVjZG9jY2F1bm9tOnRoaXMucmVjZXBjaW9uRG9jdW1lbnRvQ2F1c2EudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHRpcGRvY2NhdW5vbTp0aGlzLnRpcG9Eb2N1bWVudG9DYXVzYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgaWRfY29uY3hwbm9tOnRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9jb25jeHBhcG86dGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFBcG9ydGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGlkX2NvbmN4cGNhdTp0aGlzLmlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUNhdXNhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9jb25jeHBwZXI6dGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFQZXJzb25hbC50b1N0cmluZygpLFxyXG4gICAgICAgICAgaWRfY29uY3hwZmlkOnRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhRmlkZWljb21pc28udG9TdHJpbmcoKSwgICAgICAgICAgICAgICBcclxuICAgICAgICAgIGNlc3Rpa3N1ZWw6dGhpcy5jZXN0YVRpY2tlY3RTdWVsdG9zLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjb2RjZW5jb3M6dGhpcy5jb2RpZ29DZW50cm9Db3N0byxcclxuICAgICAgICAgIGNvZHVzdTp0aGlzLmNvZGlnb1VzdWFyaW8sXHJcbiAgICAgICAgICBjb2RpZ29mdGVmaW46dGhpcy5jb2RpZ29GdWVudGVGaW5hbmNpYW1pZW50by50b1N0cmluZygpLFxyXG4gICAgICAgICAgZGVuZnVlZmluOnRoaXMuZGVub21pbmFjaW9uQ29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG8sXHJcbiAgICAgICAgICBkZW5jZW5jb3M6IHRoaXMuZGVub21pbmFjaW9uQ2VudHJvQ29uc3RvLFxyXG4gICAgICAgICAgZGVuY3RhY29udDogdGhpcy5kZW5vbWluYWNpb25DdWVudGFDb250YWJsZSxcclxuICAgICAgICAgIG5vbXBybzp0aGlzLm5vbWJyZVByb3ZlZWRvcixcclxuICAgICAgICAgIGlkX3BlcmlvZG9hY3R1YWw6dGhpcy5pZFBlcmlvZG9Ob21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGlkX3BlcnJlc25vbTp0aGlzLmlkUGVyaW9kb1Jlc3RhYmxlY2VyTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBlc3RpbmNpZGVuY2lhOnRoaXMuZXN0YXR1c0luY2lkZW5jaWEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIHNlZ3Blcjp0aGlzLnNlZ21lbnRhclBlcnNvbmFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBwZXJpb2Rvczp0aGlzLnBlcmlvZG9zTm9taW5hLm1hcCgoZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGUuZGF0YUludGVyZmFjZSgpOyB9KSksICAgICAgICAgIFxyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UGVyaW9kb05vbWluYSgpe1xyXG4gICAgaWYgKHRoaXMudGlwb1Blcm9pb2RvTm9taW5hPT0nMCcpe1xyXG4gICAgICB0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9NTJcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMudGlwb1Blcm9pb2RvTm9taW5hPT0nMScpe1xyXG4gICAgICB0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9MjRcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMudGlwb1Blcm9pb2RvTm9taW5hPT0nMicpe1xyXG4gICAgICB0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9MTJcclxuICAgIH0gIGVsc2UgaWYgKHRoaXMudGlwb1Blcm9pb2RvTm9taW5hPT0nMycpe1xyXG4gICAgICB0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9MVxyXG4gICAgfSAgICAgICAgICBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFRpcG8gZGUgbm9taW5hIHtTZW1hbmFsLCBRdWluY2VuYWwsTWVuc3VhbCxBbnVhbH1cclxuICAgKi9cclxuICBwdWJsaWMgZGVub21pbmFjaW9uTnVtZXJvTm9taW5hKCk6c3RyaW5ne1xyXG4gICAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09NTIpe1xyXG4gICAgICByZXR1cm4gJ1NlbWFuYWwnXHJcbiAgICB9IGVsc2UgIGlmICh0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9PTI0KXtcclxuICAgICAgcmV0dXJuICdRdWluY2VuYWwnXHJcbiAgICB9IGVsc2UgIGlmICh0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9PTEyKXtcclxuICAgICAgcmV0dXJuICdNZW5zdWFsJ1xyXG4gICAgfSAgZWxzZSBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT0xKXtcclxuICAgICAgcmV0dXJuICdBbnVhbCdcclxuICAgIH0gICAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyBwb3NpY2lvbiBkZWwgYXJyYXkgZG9uZGUgZXN0YSBlbCBwZXJpb2RvIGFjdHVhbCBkZSBsYSBub21pbmEsIGRlIGxvIGNvbnRyYXJpbyAtMVxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbmRpY2UoKTpudW1iZXIgeyAgICAgICAgICBcclxuICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hLmZpbmRJbmRleChlPT4gZS5jb2RpZ29QZXJpb2RvPT0gdGhpcy5wZXJpb2RvQWN0dWFsTm9taW5hKTtcclxuICB9XHJcblxyXG5cclxuICAvKipcclxuICAgKiAgQHJldHVybnMgRmVjaGEgZmluYWwgZGUgbGEgbm9taW5hXHJcbiAgICovXHJcbiAgcHVibGljIGZlY2hhRmluYWxOb21pbmEoKTpzdHJpbmd7XHJcbiAgICBsZXQgaT0gdGhpcy5wZXJpb2Rvc05vbWluYS5sZW5ndGgtMTtcclxuICAgIGxldCBmZWNoYUZpbj0gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5mZWNoYUhhc3RhcGVyaW9kbztcclxuICAgIHJldHVybiBmb3JtYXREYXRlKGZlY2hhRmluLCAneXl5eS1NTS1kZCcsICdlbi1VUycpO1xyXG4gIH1cclxuICBcclxuICAvKiogICAgICAgICBcclxuICAgKiBAcmV0dXJucyBmZWNoYSBkZSBpbmljaW8gYSBmaW4gZGUgbGEgbm9taW5hXHJcbiAgICovXHJcbiAgcHVibGljIGZlY2hhTm9taW5hKCk6c3RyaW5ne1xyXG4gICAgbGV0IGk9IHRoaXMucGVyaW9kb3NOb21pbmEubGVuZ3RoLTE7XHJcbiAgICBsZXQgZmVjaGFGaW49IHRoaXMucGVyaW9kb3NOb21pbmFbaV0uZmVjaGFIYXN0YXBlcmlvZG87XHJcbiAgICBsZXQgZmVjaGFJbmk9IHRoaXMucGVyaW9kb3NOb21pbmFbaV0uZmVjaGFEZXNkZVBlcmlvZG87XHJcbiAgICByZXR1cm4gZm9ybWF0RGF0ZShmZWNoYUZpbiwgJ2RkLU1NLXl5eXknLCAnZXMtRVMnKSsnIGFsICcrZm9ybWF0RGF0ZShmZWNoYUluaSwgJ2RkLU1NLXl5eXknLCAnZXMtRVMnKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIFJldG9ybmEgZXMgZXN0YXR1cyBkZWwgcGVyaW9kbyBhY3R1YWwgZGUgbGEgbm9taW5hIHtcclxuICAgKiBTaW4gQ2FsY3VsYXIsIGNvbnRhYmlsaXphZGEsUGVyaW9kbyBDb250YWJpbGl6YWRvLFxyXG4gICAqIFBlcmlvZG8geSBBcG9ydGUgQ29udGFiaWxpemFkbywgQXBvcnRlIENvbnRhYmlsaXphZG8gfVxyXG4gICAqL1xyXG5cclxuICBwdWJsaWMgZXN0YXR1c05vbWluYSgpOnN0cmluZyB7XHJcbiAgICBsZXQgaSA9IHRoaXMuaW5kaWNlKCk7XHJcbiAgICBpZiAoaT49MCl7XHJcbiAgICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hW2ldLmVzdGF0dXNQZXJpb2RvKClcclxuICAgIH0gIFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgU2kgbGEgbm9taW5hIHB1ZWRlIHNlciBtb2RpZmljYWRhICh2ZXJkYWRlcm8sIGZhbHNvKVxyXG4gICAqL1xyXG4gIHB1YmxpYyBlZGl0YWJsZSgpOmJvb2xlYW4ge1xyXG4gICAgbGV0IGk9IHRoaXMuaW5kaWNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5wZXJpb2RvRWRpdGFibGUoKVxyXG4gIH0gXHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zIGluZGljYSBzaSBlbCBwZXJpZG8gYWN0dWFsIGVzdGEgYWJpZXJ0b1xyXG4gICAqIEByZXR1cm5zIHZlcmRhZGVyby9mYWxzb1xyXG4gICAqLyAgICAgICAgXHJcbiAgIHB1YmxpYyBwZXJpb2RvQ2VycmFkbygpOmJvb2xlYW4ge1xyXG4gICAgbGV0IGk9IHRoaXMuaW5kaWNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5jZXJyYXJQZXJpb2RvPT0xXHJcbiAgfSBcclxuXHJcblxyXG4gIC8qKlxyXG4gICAqIEByZXR1cm5zIEZlY2hhIGluaWNpbyBkZWwgcGVyaW9kbyBhY3R1YWwgZGUgbGEgbm9taW5hXHJcbiAgICovXHJcbiAgcHVibGljIGZlY2hhSW5jaW9QZXJpb2RvQWN0dWFsKCk6c3RyaW5ne1xyXG4gICAgbGV0IGk9IHRoaXMuaW5kaWNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5mZWNoYURlc2RlUGVyaW9kbztcclxuICB9XHJcblxyXG4vKipcclxuICogQHJldHVybnMgRmVjaGEgZmluYWwgZGVsIHBlcmlvZG8gYWN0dWFsIGRlIGxhIG5vbWluYVxyXG4gKi9cclxuICBwdWJsaWMgZmVjaGFGaW5hUGVyaW9kb0FjdHVhbCgpOnN0cmluZ3tcclxuICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hW3RoaXMuaW5kaWNlKCldLmZlY2hhSGFzdGFwZXJpb2RvO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVsdGltb1BlcmlvZG9Ob21pbmEoKTpzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09NTIpe1xyXG4gICAgICByZXR1cm4gJzA1MidcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09MjQpe1xyXG4gICAgICByZXR1cm4gJzAyNCdcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09MTIpe1xyXG4gICAgICByZXR1cm4gJzAxMidcclxuICAgIH0gIGVsc2UgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09MSl7XHJcbiAgICAgIHJldHVybiAnMDAxJ1xyXG4gICAgfSAgICBcclxuICAgICAgICBcclxuICB9XHJcblxyXG5cclxuICBcclxuICAgICBcclxufSBcclxuXHJcblxyXG5cclxuIl19
|
|
313
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTURlZmluaWNpb25Ob21pbmEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWdlc3Avc3JjL2xpYi9jb3JlL21vZGVscy9TTk8vTURlZmluaWNpb25Ob21pbmEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxXQUFXO0lBc0VoRCxZQUFZLElBQVUsSUFBSTtRQUN4QixLQUFLLEVBQUUsQ0FBQztRQXRFSCxpQkFBWSxHQUFRLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGFBQVEsR0FBUSxDQUFDLENBQUM7UUFDbEIsaUJBQVksR0FBUSxFQUFFLENBQUM7UUFDdkIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLHVCQUFrQixHQUFRLEVBQUUsQ0FBQztRQUM3Qiw2QkFBd0IsR0FBUSxFQUFFLENBQUM7UUFDbkMsbUJBQWMsR0FBUSxDQUFDLENBQUM7UUFDeEIsc0JBQWlCLEdBQVEsWUFBWSxDQUFDO1FBQ3RDLHdCQUFtQixHQUFRLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBUSxDQUFDLENBQUM7UUFDN0IsZUFBVSxHQUFRLENBQUMsQ0FBQztRQUNwQixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLHVCQUFrQixHQUFRLENBQUMsQ0FBQztRQUM1QiwwQkFBcUIsR0FBUSxLQUFLLENBQUM7UUFDbkMsNkJBQXdCLEdBQVEsR0FBRyxDQUFDO1FBQ3BDLGdCQUFXLEdBQVEsQ0FBQyxDQUFDO1FBQ3JCLHlCQUFvQixHQUFRLEVBQUUsQ0FBQztRQUMv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QUFJLENBQUMsbUJBQW1CLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNyQyxJQUFJLENBQUMsZ0NBQWdDLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNsRCxJQUFJLENBQUMsd0JBQXdCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNwRCxJQUFJLENBQUMseUJBQXlCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMseUJBQXlCLEdBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUMzQyxJQUFJLENBQUMsc0JBQXNCLEdBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUN0QyxJQUFJLENBQUMsdUJBQXVCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsK0JBQStCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNqRSxJQUFJLENBQUMsd0JBQXdCLEdBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsMEJBQTBCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsdUJBQXVCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuRCxJQUFJLENBQUMsa0JBQWtCLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNqRCxJQUFJLENBQUMsaUNBQWlDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsaUNBQWlDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNoRSxJQUFJLENBQUMsZ0NBQWdDLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsbUNBQW1D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QUNLLGNBQWM7UUFDcEIsSUFBSSxDQUFDLEdBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUUsQ0FBQyxDQUFBO0lBQ2hELENBQUM7SUFHRDs7T0FFRztJQUNJLHVCQUF1QjtRQUM1QixJQUFJLENBQUMsR0FBRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDckIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDO0lBQ2xELENBQUM7SUFFSDs7T0FFRztJQUNNLHNCQUFzQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUM7SUFDOUQsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBRSxFQUFFLEVBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUE7U0FDYjthQUFPLElBQUksSUFBSSxDQUFDLG1CQUFtQixJQUFFLEVBQUUsRUFBQztZQUN2QyxPQUFPLEtBQUssQ0FBQTtTQUNiO2FBQU8sSUFBSSxJQUFJLENBQUMsbUJBQW1CLElBQUUsRUFBRSxFQUFDO1lBQ3ZDLE9BQU8sS0FBSyxDQUFBO1NBQ2I7YUFBTyxJQUFJLElBQUksQ0FBQyxtQkFBbUIsSUFBRSxDQUFDLEVBQUM7WUFDdEMsT0FBTyxLQUFLLENBQUE7U0FDYjtJQUVILENBQUM7Q0FLRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1CYXNpY01vZGVsIH0gZnJvbSAnLi4vYmFzaWMtbW9kZWwubW9kZWwnO1xyXG5pbXBvcnQgeyBJTm9taW5hLCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvTm9taW5hJztcclxuaW1wb3J0IHsgTVBlcmlvZG9Ob21pbmEsIE1Qcm9jZXNvc05vbWluYSB9IGZyb20gJy4vTVBlcmlvZG9Ob21pbmEubW9kZWwnO1xyXG5pbXBvcnQgeyBmb3JtYXREYXRlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNRGVmaW5pY2lvbk5vbWluYSBleHRlbmRzIE1CYXNpY01vZGVsIHsgXHJcbiAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICBwdWJsaWMgaWROb21pbmE6bnVtYmVyPTA7ICBcclxuICBwdWJsaWMgY29kaWdvTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgdGlwb1Blcm9pb2RvTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgZGVzY3JpcGNpb25QZXJpb2RvTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgYW5vQ3Vyc29Ob21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGZlY2hhSW5pY2lvTm9taW5hOnN0cmluZz0nMTkwMC0wMS0wMSc7XHJcbiAgcHVibGljIHBlcmlvZG9BY3R1YWxOb21pbmE6c3RyaW5nPScwMDEnO1xyXG4gIHB1YmxpYyBudW1lcm9QZXJpb2RvTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyB0aXBvTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyByYWNOb21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGFkZWxhbnRvUGFnb05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgQ29udGFiaWxpemFjaW9uTm9taW5hOnN0cmluZz0nQ0NQJztcclxuICBwdWJsaWMgZGVzdGlub0NvbXByb2JhbnRlTm9taW5hOnN0cmluZz0nQic7XHJcbiAgcHVibGljIGlkUHJvdmVlZG9yOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBjdWVudGFDb250YWJsZU5vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIG5vdGFEZWJpdG9CYW5jbzpudW1iZXI9MDtcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b05vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgY29udGFiaWxpemFjaW9uQXBvcnRlTm9taW5hOnN0cmluZz0nQ0NQJztcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b0Fwb3J0ZTpudW1iZXI9MDtcclxuICBwdWJsaWMgcGVyaW9kb0FSZXN0YWJsZWNlTm9taW5hOnN0cmluZz0nJztcclxuICBwdWJsaWMgdmFsaWRhckNvbnRhYmlsaXphY2lvblBlcmlvZG9BbnRlcmlvck5vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgdGl0dWxvUmVwb3J0ZU5vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGNvbnRhYmlsaXphY2lvbkZpZGVpY29taXNvTm9taW5hOnN0cmluZz0nQ0NQJztcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b0ZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZEJlbmVmaWNpYXJpb0ZpZGVpY29taXNvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBjdWVudGFDb250YWJsZUZpZGVpY29taXNvOnN0cmluZz0nJztcclxuICBwdWJsaWMgaW5mb3JtYWNpb25QYXJhUmVwb3J0ZTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRpdmlkaXJDb25jZXB0b1F1aW5jZW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyB0aXBvRG9jdW1lbnRvUGFnb1BlcnNvbmFsQ2hlcXVlOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBlc3RhdHVzQ3VlbnRhQWx0ZXJuYXRpdmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBjZXJyYXJTaW5EaXNwb25pYmlsaWRhZDpudW1iZXI9MDtcclxuICBwdWJsaWMgdGlwb0RvY3VtZW50b0NhdXNhOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFOb21pbmE6bnVtYmVyPTA7XHJcbiAgcHVibGljIGlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUFwb3J0ZTpudW1iZXI9MDtcclxuICBwdWJsaWMgaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQ2F1c2E6bnVtYmVyPTA7XHJcbiAgcHVibGljIGlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYVBlcnNvbmFsOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFGaWRlaWNvbWlzbzpudW1iZXI9MDtcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYU5vbWluYT0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUFwb3J0ZT0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUNhdXNhPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25Db25jZXB0b0NsYXNpZmljYWNpb25QYXJhUGVyc29uYWw9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbkNvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFGaWRlaWNvbWlzbz0nJztcclxuICBwdWJsaWMgZGVub21pbmFjaW9uVGlwb0RvY3VtZW50b05vbWluYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvblRpcG9Eb2N1bWVudG9DYXVzYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvblRpcG9Eb2N1bWVudG9QYWdvUGVyc29uYWxDaGVxdWU6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25UaXBvRG9jdW1lbnRvRmlkZWljb21pc286c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25UaXBvRG9jdW1lbnRvQXBvcnRlPScnO1xyXG4gIHB1YmxpYyBjb2RpZ29GdWVudGVGaW5hbmNpYW1pZW50b01vc3RhcjpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbkNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvOnN0cmluZz0nJzsgIFxyXG4gIHB1YmxpYyBub21icmVQcm92ZWVkb3I6c3RyaW5nPScnO1xyXG4gIHB1YmxpYyBub21icmVCZW5lZmljaWFyaW9GaWRlaWNvbWlzbzpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGNvZGlnb0NlbnRyb0Nvc3RvOnN0cmluZz0nLS0tJztcclxuICBwdWJsaWMgY29kaWdvVXN1YXJpbzpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbkNlbnRyb0NvbnN0bzpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIGRlbm9taW5hY2lvbkN1ZW50YUNvbnRhYmxlOnN0cmluZz0nJztcclxuICBwdWJsaWMgaWRQZXJpb2RvTm9taW5hOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBpZFBlcmlvZG9SZXN0YWJsZWNlck5vbWluYTpudW1iZXI9MDtcclxuICBwdWJsaWMgZXN0YXR1c0luY2lkZW5jaWE6bnVtYmVyPTA7XHJcblx0cHVibGljIHNlZ21lbnRhclBlcnNvbmFsOm51bWJlcj0zMDAwO1xyXG4gIHB1YmxpYyBpZFVuaWRhZEFkbWluaXN0cmFkb3JhOm51bWJlcj0wO1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25VbmlkYWRBZG1pbmlzdHJhZG9yYTpzdHJpbmc9Jyc7XHJcbiAgcHVibGljIHBlcmlvZG9zTm9taW5hOk1QZXJpb2RvTm9taW5hW109W107XHJcbiAgcHVibGljIHByb2Nlc29zTm9taW5hOk1Qcm9jZXNvc05vbWluYVtdPVtdO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoZTpJTm9taW5hPW51bGwpe1xyXG4gICAgc3VwZXIoKTtcclxuICAgICAgaWYgKGUpe1xyXG4gICAgICAgIHRoaXMuaWRFbnRlcnByaXNlPStlLmlkX2VudGVycHJpc2U7ICBcclxuICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICB0aGlzLmlkTm9taW5hPXBhcnNlSW50KGUuaWRfbm9taW5hKTtcclxuICAgICAgICAgIHRoaXMuY29kaWdvTm9taW5hPWUuY29kbm9tO1xyXG4gICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Ob21pbmE9ZS5kZW5ub207XHJcbiAgICAgICAgICB0aGlzLnRpcG9QZXJvaW9kb05vbWluYT1lLnRpcHBlcm5vbTtcclxuICAgICAgICAgIHRoaXMuZGVzY3JpcGNpb25QZXJpb2RvTm9taW5hPWUuZGVzcGVybm9tO1xyXG4gICAgICAgICAgdGhpcy5hbm9DdXJzb05vbWluYT1wYXJzZUludChlLmFub2N1cm5vbSk7XHJcbiAgICAgICAgICB0aGlzLmZlY2hhSW5pY2lvTm9taW5hPWUuZmVjaW5pbm9tO1xyXG4gICAgICAgICAgdGhpcy5wZXJpb2RvQWN0dWFsTm9taW5hPWUucGVyYWN0bm9tO1xyXG4gICAgICAgICAgdGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPXBhcnNlSW50KGUubnVtcGVybm9tKTtcclxuICAgICAgICAgIHRoaXMudGlwb05vbWluYT1wYXJzZUludChlLnRpcG5vbSk7XHJcbiAgICAgICAgICB0aGlzLnJhY05vbWluYT1wYXJzZUludChlLnJhY25vbSk7XHJcbiAgICAgICAgICB0aGlzLmFkZWxhbnRvUGFnb05vbWluYT1wYXJzZUludChlLmFkZW5vbSk7XHJcbiAgICAgICAgICB0aGlzLkNvbnRhYmlsaXphY2lvbk5vbWluYT1lLmNvbnN1bG5vbTtcclxuICAgICAgICAgIHRoaXMuZGVzdGlub0NvbXByb2JhbnRlTm9taW5hPWUuZGVzY29tbm9tO1xyXG4gICAgICAgICAgdGhpcy5pZFByb3ZlZWRvcj1wYXJzZUludChlLmlkX3Byb3ZlZWRvcik7XHJcbiAgICAgICAgICB0aGlzLmN1ZW50YUNvbnRhYmxlTm9taW5hPWUuY3VlY29ubm9tO1xyXG4gICAgICAgICAgdGhpcy5ub3RhRGViaXRvQmFuY289cGFyc2VJbnQoZS5ub3RkZWJub20pO1xyXG4gICAgICAgICAgdGhpcy50aXBvRG9jdW1lbnRvTm9taW5hPXBhcnNlSW50KGUudGlwZG9jbm9tKTtcclxuICAgICAgICAgIHRoaXMuY29udGFiaWxpemFjaW9uQXBvcnRlTm9taW5hPWUuY29uYXBvbm9tO1xyXG4gICAgICAgICAgdGhpcy50aXBvRG9jdW1lbnRvQXBvcnRlPXBhcnNlSW50KGUudGlwZG9jYXBvKTtcclxuICAgICAgICAgIHRoaXMucGVyaW9kb0FSZXN0YWJsZWNlTm9taW5hPWUucGVycmVzbm9tO1xyXG4gICAgICAgICAgdGhpcy52YWxpZGFyQ29udGFiaWxpemFjaW9uUGVyaW9kb0FudGVyaW9yTm9taW5hPXBhcnNlSW50KGUuY29ucGVybm9tKTtcclxuICAgICAgICAgIHRoaXMudGl0dWxvUmVwb3J0ZU5vbWluYT1lLnRpdHJlcG5vbTtcclxuICAgICAgICAgIHRoaXMuY29udGFiaWxpemFjaW9uRmlkZWljb21pc29Ob21pbmE9ZS5jb25maWRub207XHJcbiAgICAgICAgICB0aGlzLnRpcG9Eb2N1bWVudG9GaWRlaWNvbWlzbz1wYXJzZUludChlLnRpcGRvY2ZpZCk7XHJcbiAgICAgICAgICB0aGlzLmlkQmVuZWZpY2lhcmlvRmlkZWljb21pc289cGFyc2VJbnQoZS5pZF9iZW5maWQpO1xyXG4gICAgICAgICAgdGhpcy5jdWVudGFDb250YWJsZUZpZGVpY29taXNvPWUuY3VlY29uZmlkO1xyXG4gICAgICAgICAgdGhpcy5pbmZvcm1hY2lvblBhcmFSZXBvcnRlPWUuaW5mb3JtYTtcclxuICAgICAgICAgIHRoaXMuZGl2aWRpckNvbmNlcHRvUXVpbmNlbmE9cGFyc2VJbnQoZS5kaXZjb24pO1xyXG4gICAgICAgICAgdGhpcy50aXBvRG9jdW1lbnRvUGFnb1BlcnNvbmFsQ2hlcXVlPXBhcnNlSW50KGUudGlwZG9jcGFncGVyY2hlKTtcclxuICAgICAgICAgIHRoaXMuZXN0YXR1c0N1ZW50YUFsdGVybmF0aXZhwqA9cGFyc2VJbnQoZS5lc3RjdGFhbHQpO1xyXG4gICAgICAgICAgdGhpcy5jb2RpZ29GdWVudGVGaW5hbmNpYW1pZW50bz1wYXJzZUludChlLmNvZGZ1ZWZpbik7XHJcbiAgICAgICAgICB0aGlzLmNlcnJhclNpbkRpc3BvbmliaWxpZGFkPXBhcnNlSW50KGUuY2Vyc2luZGlzKTtcclxuICAgICAgICAgIHRoaXMudGlwb0RvY3VtZW50b0NhdXNhPXBhcnNlSW50KGUudGlwZG9jY2F1bm9tKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhTm9taW5hPXBhcnNlSW50KGUuaWRfY29uY3hwbm9tKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQXBvcnRlPXBhcnNlSW50KGUuaWRfY29uY3hwYXBvKTtcclxuICAgICAgICAgIHRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQ2F1c2E9cGFyc2VJbnQoZS5pZF9jb25jeHBjYXUpO1xyXG4gICAgICAgICAgdGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFQZXJzb25hbD1wYXJzZUludChlLmlkX2NvbmN4cHBlcik7XHJcbiAgICAgICAgICB0aGlzLmlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUZpZGVpY29taXNvPXBhcnNlSW50KGUuaWRfY29uY3hwZmlkKTtcclxuICAgICAgICAgIHRoaXMuY29kaWdvQ2VudHJvQ29zdG89ZS5jb2RjZW5jb3NcclxuICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQ2VudHJvQ29uc3RvPWUuZGVuY2VuY29zXHJcbiAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvPWUuY29kaWdvZnRlZmluKycgLSAnK2UuZGVuZnVlZmluICAgICAgICAgICAgXHJcblxyXG4gICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DdWVudGFDb250YWJsZT0gZS5kZW5jdGFjb250ICBcclxuICAgICAgICAgIHRoaXMubm9tYnJlUHJvdmVlZG9yPSBlLm5vbXBybztcclxuICAgICAgICAgIHRoaXMuZXN0YXR1c0luY2lkZW5jaWE9cGFyc2VJbnQoZS5lc3RpbmNpZGVuY2lhKTtcclxuICAgICAgICAgIGlmKGUucGVyaW9kb3Mpe1xyXG4gICAgICAgICAgICB0aGlzLnBlcmlvZG9zTm9taW5hPWUucGVyaW9kb3MubWFwKGU9Pm5ldyBNUGVyaW9kb05vbWluYShlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZihlLnByb2Nlc29zKXtcclxuICAgICAgICAgICAgdGhpcy5wcm9jZXNvc05vbWluYT1lLnByb2Nlc29zLm1hcChlPT5uZXcgTVByb2Nlc29zTm9taW5hKGUpKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHRoaXMuaWRQZXJpb2RvTm9taW5hPXBhcnNlSW50KGUuaWRfcGVyaW9kb2FjdHVhbCk7XHJcbiAgICAgICAgICB0aGlzLmlkUGVyaW9kb1Jlc3RhYmxlY2VyTm9taW5hPXBhcnNlSW50KGUuaWRfcGVycmVzbm9tKTsgXHJcbiAgICAgICAgICB0aGlzLmlkVW5pZGFkQWRtaW5pc3RyYWRvcmE9K2UuaWRfdW5pYWRtO1xyXG4gICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25VbmlkYWRBZG1pbmlzdHJhZG9yYT1lLmNvZHVuaWFkbSsnIC0gJytlLmRlbnVuaWFkbSAgXHJcbiAgICAgICAgICB0aGlzLnNlZ21lbnRhclBlcnNvbmFsPXBhcnNlSW50KGUuc2VncGVyKTsgXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklOb21pbmEge1xyXG4gICAgICB0aGlzLiBnZXRQZXJpb2RvTm9taW5hKCk7XHJcbiAgICAgIGlmKHRoaXMuc2VnbWVudGFyUGVyc29uYWw9PTApe1xyXG4gICAgICAgIHRoaXMuc2VnbWVudGFyUGVyc29uYWw9MTAwMDA7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHtcclxuICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgaWRfZW1wcmVzYcKgOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgIGlkX25vbWluYTp0aGlzLmlkTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjb2Rub206dGhpcy5jb2RpZ29Ob21pbmEsXHJcbiAgICAgICAgICBkZW5ub206dGhpcy5kZW5vbWluYWNpb25Ob21pbmEsXHJcbiAgICAgICAgICB0aXBwZXJub206dGhpcy50aXBvUGVyb2lvZG9Ob21pbmEsXHJcbiAgICAgICAgICBkZXNwZXJub206dGhpcy5kZXNjcmlwY2lvblBlcmlvZG9Ob21pbmEsXHJcbiAgICAgICAgICBhbm9jdXJub206dGhpcy5hbm9DdXJzb05vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgZmVjaW5pbm9tOnRoaXMuZmVjaGFJbmljaW9Ob21pbmEsXHJcbiAgICAgICAgICBwZXJhY3Rub206dGhpcy5wZXJpb2RvQWN0dWFsTm9taW5hLFxyXG4gICAgICAgICAgbnVtcGVybm9tOnRoaXMubnVtZXJvUGVyaW9kb05vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGlwbm9tOnRoaXMudGlwb05vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgcmFjbm9tOnRoaXMucmFjTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBhZGVub206dGhpcy5hZGVsYW50b1BhZ29Ob21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGNvbnN1bG5vbTp0aGlzLkNvbnRhYmlsaXphY2lvbk5vbWluYSxcclxuICAgICAgICAgIGRlc2NvbW5vbTp0aGlzLmRlc3Rpbm9Db21wcm9iYW50ZU5vbWluYSxcclxuICAgICAgICAgIGlkX3Byb3ZlZWRvcjp0aGlzLmlkUHJvdmVlZG9yLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjdWVjb25ub206dGhpcy5jdWVudGFDb250YWJsZU5vbWluYSxcclxuICAgICAgICAgIG5vdGRlYm5vbTp0aGlzLm5vdGFEZWJpdG9CYW5jby50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGlwZG9jbm9tOnRoaXMudGlwb0RvY3VtZW50b05vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgY29uYXBvbm9tOnRoaXMuY29udGFiaWxpemFjaW9uQXBvcnRlTm9taW5hLFxyXG4gICAgICAgICAgdGlwZG9jYXBvOnRoaXMudGlwb0RvY3VtZW50b0Fwb3J0ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgcGVycmVzbm9tOnRoaXMucGVyaW9kb0FSZXN0YWJsZWNlTm9taW5hLFxyXG4gICAgICAgICAgY29ucGVybm9tOnRoaXMudmFsaWRhckNvbnRhYmlsaXphY2lvblBlcmlvZG9BbnRlcmlvck5vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGl0cmVwbm9tOnRoaXMudGl0dWxvUmVwb3J0ZU5vbWluYSxcclxuICAgICAgICAgIGNvbmZpZG5vbTp0aGlzLmNvbnRhYmlsaXphY2lvbkZpZGVpY29taXNvTm9taW5hLFxyXG4gICAgICAgICAgdGlwZG9jZmlkOnRoaXMudGlwb0RvY3VtZW50b0ZpZGVpY29taXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9iZW5maWQ6dGhpcy5pZEJlbmVmaWNpYXJpb0ZpZGVpY29taXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjdWVjb25maWQ6dGhpcy5jdWVudGFDb250YWJsZUZpZGVpY29taXNvLFxyXG4gICAgICAgICAgaW5mb3JtYTp0aGlzLmluZm9ybWFjaW9uUGFyYVJlcG9ydGUsXHJcbiAgICAgICAgICBkaXZjb246dGhpcy5kaXZpZGlyQ29uY2VwdG9RdWluY2VuYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGlwZG9jcGFncGVyY2hlOnRoaXMudGlwb0RvY3VtZW50b1BhZ29QZXJzb25hbENoZXF1ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgZXN0Y3RhYWx0OnRoaXMuZXN0YXR1c0N1ZW50YUFsdGVybmF0aXZhwqAudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGNvZGZ1ZWZpbjp0aGlzLmNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBjZXJzaW5kaXM6dGhpcy5jZXJyYXJTaW5EaXNwb25pYmlsaWRhZC50b1N0cmluZygpLFxyXG4gICAgICAgICAgdGlwZG9jY2F1bm9tOnRoaXMudGlwb0RvY3VtZW50b0NhdXNhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9jb25jeHBub206dGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFOb21pbmEudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGlkX2NvbmN4cGFwbzp0aGlzLmlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYUFwb3J0ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgaWRfY29uY3hwY2F1OnRoaXMuaWRDb25jZXB0b0NsYXNpZmljYWNpb25QYXJhQ2F1c2EudG9TdHJpbmcoKSxcclxuICAgICAgICAgIGlkX2NvbmN4cHBlcjp0aGlzLmlkQ29uY2VwdG9DbGFzaWZpY2FjaW9uUGFyYVBlcnNvbmFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9jb25jeHBmaWQ6dGhpcy5pZENvbmNlcHRvQ2xhc2lmaWNhY2lvblBhcmFGaWRlaWNvbWlzby50b1N0cmluZygpLCAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgY29kY2VuY29zOnRoaXMuY29kaWdvQ2VudHJvQ29zdG8sXHJcbiAgICAgICAgICBjb2R1c3U6dGhpcy5jb2RpZ29Vc3VhcmlvLFxyXG4gICAgICAgICAgY29kaWdvZnRlZmluOnRoaXMuY29kaWdvRnVlbnRlRmluYW5jaWFtaWVudG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgIGRlbmZ1ZWZpbjp0aGlzLmRlbm9taW5hY2lvbkNvZGlnb0Z1ZW50ZUZpbmFuY2lhbWllbnRvLFxyXG4gICAgICAgICAgZGVuY2VuY29zOiB0aGlzLmRlbm9taW5hY2lvbkNlbnRyb0NvbnN0byxcclxuICAgICAgICAgIGRlbmN0YWNvbnQ6IHRoaXMuZGVub21pbmFjaW9uQ3VlbnRhQ29udGFibGUsXHJcbiAgICAgICAgICBub21wcm86dGhpcy5ub21icmVQcm92ZWVkb3IsXHJcbiAgICAgICAgICBpZF9wZXJpb2RvYWN0dWFsOnRoaXMuaWRQZXJpb2RvTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBpZF9wZXJyZXNub206dGhpcy5pZFBlcmlvZG9SZXN0YWJsZWNlck5vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgZXN0aW5jaWRlbmNpYTp0aGlzLmVzdGF0dXNJbmNpZGVuY2lhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICBzZWdwZXI6dGhpcy5zZWdtZW50YXJQZXJzb25hbC50b1N0cmluZygpLFxyXG4gICAgICAgICAgaWRfdW5pYWRtOnRoaXMuaWRVbmlkYWRBZG1pbmlzdHJhZG9yYS50b1N0cmluZygpLCAgICAgICAgICBcclxuICAgICAgICAgIHBlcmlvZG9zOnRoaXMucGVyaW9kb3NOb21pbmEubWFwKChmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5kYXRhSW50ZXJmYWNlKCk7IH0pKSxcclxuICAgICAgICAgIHByb2Nlc29zOnRoaXMucHJvY2Vzb3NOb21pbmEubWFwKChmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS5kYXRhSW50ZXJmYWNlKCk7IH0pKSwgICAgICAgICAgXHJcbiAgICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRQZXJpb2RvTm9taW5hKCl7XHJcbiAgICBpZiAodGhpcy50aXBvUGVyb2lvZG9Ob21pbmE9PScwJyl7XHJcbiAgICAgIHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT01MlxyXG4gICAgfSBlbHNlICBpZiAodGhpcy50aXBvUGVyb2lvZG9Ob21pbmE9PScxJyl7XHJcbiAgICAgIHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT0yNFxyXG4gICAgfSBlbHNlICBpZiAodGhpcy50aXBvUGVyb2lvZG9Ob21pbmE9PScyJyl7XHJcbiAgICAgIHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT0xMlxyXG4gICAgfSAgZWxzZSBpZiAodGhpcy50aXBvUGVyb2lvZG9Ob21pbmE9PSczJyl7XHJcbiAgICAgIHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT0xXHJcbiAgICB9ICAgICAgICAgIFxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgVGlwbyBkZSBub21pbmEge1NlbWFuYWwsIFF1aW5jZW5hbCxNZW5zdWFsLEFudWFsfVxyXG4gICAqL1xyXG4gIHB1YmxpYyBkZW5vbWluYWNpb25OdW1lcm9Ob21pbmEoKTpzdHJpbmd7XHJcbiAgICBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT01Mil7XHJcbiAgICAgIHJldHVybiAnU2VtYW5hbCdcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09MjQpe1xyXG4gICAgICByZXR1cm4gJ1F1aW5jZW5hbCdcclxuICAgIH0gZWxzZSAgaWYgKHRoaXMubnVtZXJvUGVyaW9kb05vbWluYT09MTIpe1xyXG4gICAgICByZXR1cm4gJ01lbnN1YWwnXHJcbiAgICB9ICBlbHNlIGlmICh0aGlzLm51bWVyb1BlcmlvZG9Ob21pbmE9PTEpe1xyXG4gICAgICByZXR1cm4gJ0FudWFsJ1xyXG4gICAgfSAgICBcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHBvc2ljaW9uIGRlbCBhcnJheSBkb25kZSBlc3RhIGVsIHBlcmlvZG8gYWN0dWFsIGRlIGxhIG5vbWluYSwgZGUgbG8gY29udHJhcmlvIC0xXHJcbiAgICovXHJcbiAgcHVibGljIGluZGljZSgpOm51bWJlciB7ICAgICAgICAgIFxyXG4gICAgcmV0dXJuIHRoaXMucGVyaW9kb3NOb21pbmEuZmluZEluZGV4KGU9PiBlLmNvZGlnb1BlcmlvZG89PSB0aGlzLnBlcmlvZG9BY3R1YWxOb21pbmEpO1xyXG4gIH1cclxuXHJcblxyXG4gIC8qKlxyXG4gICAqICBAcmV0dXJucyBGZWNoYSBmaW5hbCBkZSBsYSBub21pbmFcclxuICAgKi9cclxuICBwdWJsaWMgZmVjaGFGaW5hbE5vbWluYSgpOnN0cmluZ3tcclxuICAgIGxldCBpPSB0aGlzLnBlcmlvZG9zTm9taW5hLmxlbmd0aC0xO1xyXG4gICAgbGV0IGZlY2hhRmluPSB0aGlzLnBlcmlvZG9zTm9taW5hW2ldLmZlY2hhSGFzdGFwZXJpb2RvO1xyXG4gICAgcmV0dXJuIGZvcm1hdERhdGUoZmVjaGFGaW4sICd5eXl5LU1NLWRkJywgJ2VzLUVTJyk7XHJcbiAgfVxyXG4gIFxyXG4gIC8qKiAgICAgICAgIFxyXG4gICAqIEByZXR1cm5zIGZlY2hhIGRlIGluaWNpbyBhIGZpbiBkZSBsYSBub21pbmFcclxuICAgKi9cclxuICBwdWJsaWMgZmVjaGFOb21pbmEoKTpzdHJpbmd7XHJcbiAgICBsZXQgaT0gdGhpcy5wZXJpb2Rvc05vbWluYS5sZW5ndGgtMTtcclxuICAgIGxldCBmZWNoYUZpbj0gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5mZWNoYUhhc3RhcGVyaW9kbztcclxuICAgIGxldCBmZWNoYUluaT0gdGhpcy5wZXJpb2Rvc05vbWluYVtpXS5mZWNoYURlc2RlUGVyaW9kbztcclxuICAgIHJldHVybiBmb3JtYXREYXRlKGZlY2hhRmluLCAnZGQtTU0teXl5eScsICdlcy1FUycpKycgYWwgJytmb3JtYXREYXRlKGZlY2hhSW5pLCAnZGQtTU0teXl5eScsICdlcy1FUycpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHJldHVybnMgUmV0b3JuYSBlcyBlc3RhdHVzIGRlbCBwZXJpb2RvIGFjdHVhbCBkZSBsYSBub21pbmEge1xyXG4gICAqIFNpbiBDYWxjdWxhciwgY29udGFiaWxpemFkYSxQZXJpb2RvIENvbnRhYmlsaXphZG8sXHJcbiAgICogUGVyaW9kbyB5IEFwb3J0ZSBDb250YWJpbGl6YWRvLCBBcG9ydGUgQ29udGFiaWxpemFkbyB9XHJcbiAgICovXHJcblxyXG4gIHB1YmxpYyBlc3RhdHVzTm9taW5hKCk6c3RyaW5nIHtcclxuICAgIGxldCBpID0gdGhpcy5pbmRpY2UoKTtcclxuICAgIGlmIChpPj0wKXtcclxuICAgICAgcmV0dXJuIHRoaXMucGVyaW9kb3NOb21pbmFbaV0uZXN0YXR1c1BlcmlvZG8oKVxyXG4gICAgfSAgXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyBTaSBsYSBub21pbmEgcHVlZGUgc2VyIG1vZGlmaWNhZGEgKHZlcmRhZGVybywgZmFsc28pXHJcbiAgICovXHJcbiAgcHVibGljIGVkaXRhYmxlKCk6Ym9vbGVhbiB7XHJcbiAgICBsZXQgaT0gdGhpcy5pbmRpY2UoKTtcclxuICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hW2ldLnBlcmlvZG9FZGl0YWJsZSgpXHJcbiAgfSBcclxuXHJcbiAgLyoqXHJcbiAgICogQHJldHVybnMgaW5kaWNhIHNpIGVsIHBlcmlkbyBhY3R1YWwgZXN0YSBhYmllcnRvXHJcbiAgICogQHJldHVybnMgdmVyZGFkZXJvL2ZhbHNvXHJcbiAgICovICAgICAgICBcclxuICAgcHVibGljIHBlcmlvZG9DZXJyYWRvKCk6Ym9vbGVhbiB7XHJcbiAgICBsZXQgaT0gdGhpcy5pbmRpY2UoKTtcclxuICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hW2ldLmNlcnJhclBlcmlvZG89PTFcclxuICB9IFxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogQHJldHVybnMgRmVjaGEgaW5pY2lvIGRlbCBwZXJpb2RvIGFjdHVhbCBkZSBsYSBub21pbmFcclxuICAgKi9cclxuICBwdWJsaWMgZmVjaGFJbmNpb1BlcmlvZG9BY3R1YWwoKTpzdHJpbmd7XHJcbiAgICBsZXQgaT0gdGhpcy5pbmRpY2UoKTtcclxuICAgIHJldHVybiB0aGlzLnBlcmlvZG9zTm9taW5hW2ldLmZlY2hhRGVzZGVQZXJpb2RvO1xyXG4gIH1cclxuXHJcbi8qKlxyXG4gKiBAcmV0dXJucyBGZWNoYSBmaW5hbCBkZWwgcGVyaW9kbyBhY3R1YWwgZGUgbGEgbm9taW5hXHJcbiAqL1xyXG4gIHB1YmxpYyBmZWNoYUZpbmFQZXJpb2RvQWN0dWFsKCk6c3RyaW5ne1xyXG4gICAgcmV0dXJuIHRoaXMucGVyaW9kb3NOb21pbmFbdGhpcy5pbmRpY2UoKV0uZmVjaGFIYXN0YXBlcmlvZG87XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdWx0aW1vUGVyaW9kb05vbWluYSgpOnN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT01Mil7XHJcbiAgICAgIHJldHVybiAnMDUyJ1xyXG4gICAgfSBlbHNlICBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT0yNCl7XHJcbiAgICAgIHJldHVybiAnMDI0J1xyXG4gICAgfSBlbHNlICBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT0xMil7XHJcbiAgICAgIHJldHVybiAnMDEyJ1xyXG4gICAgfSAgZWxzZSBpZiAodGhpcy5udW1lcm9QZXJpb2RvTm9taW5hPT0xKXtcclxuICAgICAgcmV0dXJuICcwMDEnXHJcbiAgICB9ICAgIFxyXG4gICAgICAgIFxyXG4gIH1cclxuXHJcblxyXG4gIFxyXG4gICAgIFxyXG59IFxyXG5cclxuXHJcblxyXG4iXX0=
|
|
@@ -95,4 +95,90 @@ export class MPeriodoNomina extends MBasicModel {
|
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
}
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVBlcmlvZG9Ob21pbmEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWdlc3Avc3JjL2xpYi9jb3JlL21vZGVscy9TTk8vTVBlcmlvZG9Ob21pbmEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQXFCM0MsWUFBWSxJQUFpQixJQUFJO1FBQzdCLEtBQUssRUFBRSxDQUFBO1FBckJKLGlCQUFZLEdBQVEsQ0FBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbkIsYUFBUSxHQUFRLENBQUMsQ0FBQztRQUNsQixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFRLFlBQVksQ0FBQztRQUN0QyxzQkFBaUIsR0FBUSxZQUFZLENBQUM7UUFDdEMsa0JBQWEsR0FBUSxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBUSxDQUFDLENBQUM7UUFDdEIsMEJBQXFCLEdBQVEsQ0FBQyxDQUFDO1FBQy9CLCtCQUEwQixHQUFRLENBQUMsQ0FBQztRQUNwQyx1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQVEsQ0FBQyxDQUFDO1FBQzFCLGdDQUEyQixHQUFRLENBQUMsQ0FBQztRQUNyQyw2QkFBd0IsR0FBUSxDQUFDLENBQUM7UUFDbEMsMkNBQXNDLEdBQVEsQ0FBQyxDQUFDO1FBQ2hELGNBQVMsR0FBUyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFTLEtBQUssQ0FBQztRQUN4QixRQUFHLEdBQVEsQ0FBQyxDQUFDO1FBSWhCLElBQUcsQ0FBQyxFQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDbkMsSUFBSSxD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U0FBUyxJQUFLLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLHFCQUFxQixJQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLElBQUUsQ0FBQyxFQUFDO1lBQ2pILE9BQU8sZUFBZSxDQUFBO1NBQ3pCO0lBQ0wsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxxQkFBcUIsSUFBRSxDQUFDLElBQUksSUFBSSxDQUFDLDBCQUEwQixJQUFFLENBQUMsRUFBQztZQUMxRyxPQUFPLElBQUksQ0FBQztTQUNmO2FBQU07WUFDSCxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUVMLENBQUM7Q0FFSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQZXJpb2RvTm9taW5hIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Ob21pbmEnO1xyXG5pbXBvcnQgeyBNQmFzaWNNb2RlbCB9IGZyb20gJy4uL2Jhc2ljLW1vZGVsLm1vZGVsJztcclxuZXhwb3J0IGNsYXNzIE1QZXJpb2RvTm9taW5hIGV4dGVuZHMgTUJhc2ljTW9kZWwge1xyXG4gICAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkTm9taW5hOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29QZXJpb2RvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBmZWNoYURlc2RlUGVyaW9kbzpzdHJpbmc9JzE5MDAtMDEtMDEnO1xyXG4gICAgcHVibGljIGZlY2hhSGFzdGFwZXJpb2RvOnN0cmluZz0nMTkwMC0wMS0wMSc7XHJcbiAgICBwdWJsaWMgY2VycmFyUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyB0b3RhbFBlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29udGFiaWxpYXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIG9ic2VydmFjaW9uUGVyaW9kbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgcGVyaW9kb0FkaWNpb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZmlkZWljb21pc29Db250YWJpbGl6YWRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGZpZGVpY29taXNvSW50ZXJlc0NvbnRhYmlsaXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIHByZW5vbWluYTpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIGNhbGN1bGFkbzpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIG1lczpudW1iZXI9MDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlOklQZXJpb2RvTm9taW5hPW51bGwpe1xyXG4gICAgICAgIHN1cGVyKClcclxuICAgICAgICBpZihlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZE5vbWluYT1wYXJzZUludChlLmlkX25vbWluYSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJpb2RvPXBhcnNlSW50KGUuaWRfcGVyaW9kbyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGVyaW9kbz1lLmNvZHBlcmk7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFEZXNkZVBlcmlvZG89ZS5mZWNkZXNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFIYXN0YXBlcmlvZG89ZS5mZWNoYXNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY2VycmFyUGVyaW9kbz1wYXJzZUludChlLmNlcnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxQZXJpb2RvPStlLnRvdHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89cGFyc2VJbnQoZS5jb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPXBhcnNlSW50KGUuYXBvY29ucGVyKTtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvblBlcmlvZG89ZS5vYnNwZXJcclxuICAgICAgICAgICAgdGhpcy5wZXJpb2RvQWRpY2lvbmFsPXBhcnNlSW50KGUucGVyYWRpKTtcclxuICAgICAgICAgICAgdGhpcy5pbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG89cGFyc2VJbnQoZS5pbmdjb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmZpZGVpY29taXNvQ29udGFiaWxpemFkbz1wYXJzZUludChlLmZpZGNvbnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuZmlkZWljb21pc29JbnRlcmVzQ29udGFiaWxpemFkb1BlcmlvZG89cGFyc2VJbnQoZS5maWRpbnRjb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnByZW5vbWluYT1lLnByZW5vbWluYT09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGFkbz1lLmNhbGN1bGFkbz09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1lcz0rZS5tZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQZXJpb2RvTm9taW5he1xyXG4gICAgICAgIHJldHVybntcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhwqA6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX25vbWluYTp0aGlzLmlkTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3BlcmlvZG86dGhpcy5pZFBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kcGVyaTp0aGlzLmNvZGlnb1BlcmlvZG8sXHJcbiAgICAgICAgICAgIGZlY2Rlc3Blcjp0aGlzLmZlY2hhRGVzZGVQZXJpb2RvLFxyXG4gICAgICAgICAgICBmZWNoYXNwZXI6dGhpcy5mZWNoYUhhc3RhcGVyaW9kbyxcclxuICAgICAgICAgICAgY2VycGVyOnRoaXMuY2VycmFyUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0b3RwZXI6dGhpcy50b3RhbFBlcmlvZG8udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGNvbnBlcjp0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBhcG9jb25wZXI6dGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBvYnNwZXI6dGhpcy5vYnNlcnZhY2lvblBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcGVyYWRpOnRoaXMucGVyaW9kb0FkaWNpb25hbC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpbmdjb25wZXI6dGhpcy5pbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgZmlkY29ucGVyOnRoaXMuZmlkZWljb21pc29Db250YWJpbGl6YWRvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGZpZGludGNvbnBlcjp0aGlzLmZpZGVpY29taXNvSW50ZXJlc0NvbnRhYmlsaXphZG9QZXJpb2RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHByZW5vbWluYTp0aGlzLnByZW5vbWluYT8gJzEnOicwJyxcclxuICAgICAgICAgICAgY2FsY3VsYWRvOnRoaXMuY2FsY3VsYWRvPyAnMSc6JzAnLFxyXG4gICAgICAgICAgICBtZXM6dGhpcy5tZXMudG9TdHJpbmcoKSxcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlc3RhdHVzUGVyaW9kbygpOnN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbGN1bGFkbyAgJiYgIXRoaXMucHJlbm9taW5hICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTApe1xyXG4gICAgICAgICAgICByZXR1cm4gJ1NpbiBDYWxjdWxhcidcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FsY3VsYWRvICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTApe1xyXG4gICAgICAgICAgICByZXR1cm4gJ0NhbGN1bGFkYSdcclxuICAgICAgICB9IGVsc2UgICBpZiAodGhpcy5jYWxjdWxhZG8gJiYgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89PTEgJiYgdGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kbz09MCl7XHJcbiAgICAgICAgICAgIHJldHVybiAnUGVyaW9kbyBDb250YWJpbGl6YWRvJ1xyXG4gICAgICAgIH0gZWxzZSAgIGlmICh0aGlzLmNhbGN1bGFkbyAmJiB0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kbz09MSAmJiB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPT0xKXtcclxuICAgICAgICAgICAgcmV0dXJuICdQZXJpb2RvIHkgQXBvcnRlIENvbnRhYmlsaXphZG8nXHJcbiAgICAgICAgfSBlbHNlICAgaWYgKHRoaXMuY2FsY3VsYWRvICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTEpe1xyXG4gICAgICAgICAgICByZXR1cm4gJ0Fwb3J0ZSBDb250YWJpbGl6YWRvJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY2FsY3VsYWRvICAmJiB0aGlzLnByZW5vbWluYSAmJiB0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kbz09MCAmJiB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPT0wKXtcclxuICAgICAgICAgICAgcmV0dXJuICdQcmUtQ2FsY3VsYWRhJ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcGVyaW9kb0VkaXRhYmxlKCk6Ym9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbGN1bGFkbyAmJiAhdGhpcy5wcmVub21pbmEgJiYgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89PTAgJiYgdGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kbz09MCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9XHJcbiAgICBcclxufSJdfQ==
|
|
98
|
+
export class MProcesosNomina extends MBasicModel {
|
|
99
|
+
constructor(e) {
|
|
100
|
+
super();
|
|
101
|
+
this.idEmpresa = 0;
|
|
102
|
+
this.idNomina = 0;
|
|
103
|
+
this.idPeriodo = 0;
|
|
104
|
+
this.idProceso = 0;
|
|
105
|
+
this.codigoProceso = '';
|
|
106
|
+
this.nombreProceso = '';
|
|
107
|
+
this.fechaProceso = '1900-01-01';
|
|
108
|
+
this.cerrarProceso = 0;
|
|
109
|
+
this.totalProceso = 0;
|
|
110
|
+
this.contabiliazadoProceso = 0;
|
|
111
|
+
this.aporteContabilizadoProceso = 0;
|
|
112
|
+
this.precalculo = false;
|
|
113
|
+
this.calculado = false;
|
|
114
|
+
this.mes = 0;
|
|
115
|
+
this.asignarTodos = false;
|
|
116
|
+
this.codigoNomina = '';
|
|
117
|
+
this.codigoPeriodo = '';
|
|
118
|
+
this.fechaDesdePeriodo = '1900-01-01';
|
|
119
|
+
this.fechaHastaPeriodo = '1900-01-01';
|
|
120
|
+
this.denominacionEstado = 'No calculado';
|
|
121
|
+
this.nominaLiquidacion = 0;
|
|
122
|
+
this.desincorporarVacacionesNomina = 0;
|
|
123
|
+
this.cantidadPersonalProceso = 0;
|
|
124
|
+
this.cantidadProcesada = 0;
|
|
125
|
+
this.porcentajeProcesada = 0;
|
|
126
|
+
if (e) {
|
|
127
|
+
this.idEmpresa = +e.id_empresa;
|
|
128
|
+
this.idNomina = +e.id_nomina;
|
|
129
|
+
this.idProceso = +e.id_proceso;
|
|
130
|
+
this.idPeriodo = +e.id_periodo;
|
|
131
|
+
this.codigoProceso = e.codpro;
|
|
132
|
+
this.nombreProceso = e.nompro;
|
|
133
|
+
this.fechaProceso = e.fecpro;
|
|
134
|
+
this.cerrarProceso = +e.cerpro;
|
|
135
|
+
this.totalProceso = +e.totpro;
|
|
136
|
+
this.contabiliazadoProceso = +e.conpro;
|
|
137
|
+
this.aporteContabilizadoProceso = +e.apocontpro;
|
|
138
|
+
this.precalculo = e.precalculo == '1';
|
|
139
|
+
this.calculado = e.calculado == '1';
|
|
140
|
+
this.codigoNomina = e.codnom;
|
|
141
|
+
this.codigoPeriodo = e.codper;
|
|
142
|
+
this.fechaDesdePeriodo = e.fecdesper;
|
|
143
|
+
this.fechaHastaPeriodo = e.fechasper;
|
|
144
|
+
this.asignarTodos = e.aplitod == '1';
|
|
145
|
+
(this.contabiliazadoProceso == 1 || this.aporteContabilizadoProceso == 1) ?
|
|
146
|
+
this.denominacionEstado = 'Contabilizado' :
|
|
147
|
+
this.cerrarProceso == 1 ? this.denominacionEstado = 'Cerrado' :
|
|
148
|
+
this.calculado ? this.denominacionEstado = 'Calculado' :
|
|
149
|
+
this.precalculo ? this.denominacionEstado = 'Precalculado' :
|
|
150
|
+
this.denominacionEstado = 'No Calculado';
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
getEstatus() {
|
|
154
|
+
(this.contabiliazadoProceso == 1 || this.aporteContabilizadoProceso == 1) ?
|
|
155
|
+
this.denominacionEstado = 'Contabilizado' :
|
|
156
|
+
this.calculado ? this.denominacionEstado = 'Calculado' :
|
|
157
|
+
this.precalculo ? this.denominacionEstado = 'Precalculado' :
|
|
158
|
+
this.denominacionEstado = 'No Calculado';
|
|
159
|
+
return this.denominacionEstado;
|
|
160
|
+
}
|
|
161
|
+
dataInterface() {
|
|
162
|
+
return {
|
|
163
|
+
id_empresa: this.idEmpresa.toString(),
|
|
164
|
+
id_nomina: this.idNomina.toString(),
|
|
165
|
+
id_periodo: this.idPeriodo.toString(),
|
|
166
|
+
id_proceso: this.idProceso.toString(),
|
|
167
|
+
codpro: this.codigoProceso,
|
|
168
|
+
nompro: this.nombreProceso,
|
|
169
|
+
fecpro: this.fechaProceso,
|
|
170
|
+
cerpro: this.cerrarProceso.toPrecision(),
|
|
171
|
+
tolpro: this.totalProceso.toString(),
|
|
172
|
+
conpro: this.contabiliazadoProceso.toString(),
|
|
173
|
+
apocontpro: this.aporteContabilizadoProceso.toString(),
|
|
174
|
+
precalculo: this.precalculo ? '1' : '0',
|
|
175
|
+
calculado: this.calculado ? '1' : '0',
|
|
176
|
+
totpro: this.totalProceso.toString(),
|
|
177
|
+
mes: this.mes.toString(),
|
|
178
|
+
aplitod: this.asignarTodos ? '1' : '0',
|
|
179
|
+
nomliq: this.nominaLiquidacion.toString(),
|
|
180
|
+
desvacnom: this.desincorporarVacacionesNomina.toString(),
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVBlcmlvZG9Ob21pbmEubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaWdlc3Avc3JjL2xpYi9jb3JlL21vZGVscy9TTk8vTVBlcmlvZG9Ob21pbmEubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQXFCM0MsWUFBWSxJQUFpQixJQUFJO1FBQzdCLEtBQUssRUFBRSxDQUFBO1FBckJKLGlCQUFZLEdBQVEsQ0FBQyxDQUFDO1FBQ3RCLGNBQVMsR0FBUSxDQUFDLENBQUM7UUFDbkIsYUFBUSxHQUFRLENBQUMsQ0FBQztRQUNsQixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGtCQUFhLEdBQVEsRUFBRSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFRLFlBQVksQ0FBQztRQUN0QyxzQkFBaUIsR0FBUSxZQUFZLENBQUM7UUFDdEMsa0JBQWEsR0FBUSxDQUFDLENBQUM7UUFDdkIsaUJBQVksR0FBUSxDQUFDLENBQUM7UUFDdEIsMEJBQXFCLEdBQVEsQ0FBQyxDQUFDO1FBQy9CLCtCQUEwQixHQUFRLENBQUMsQ0FBQztRQUNwQyx1QkFBa0IsR0FBUSxFQUFFLENBQUM7UUFDN0IscUJBQWdCLEdBQVEsQ0FBQyxDQUFDO1FBQzFCLGdDQUEyQixHQUFRLENBQUMsQ0FBQztRQUNyQyw2QkFBd0IsR0FBUSxDQUFDLENBQUM7UUFDbEMsMkNBQXNDLEdBQVEsQ0FBQyxDQUFDO1FBQ2hELGNBQVMsR0FBUyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFTLEtBQUssQ0FBQztRQUN4QixRQUFHLEdBQVEsQ0FBQyxDQUFDO1FBSWhCLElBQUcsQ0FBQyxFQUFDO1lBQ0QsSUFBSSxDQUFDLFlBQVksR0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7WUFDbkMsSUFBSSxD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SUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsRUFBRTtZQUN4QyxTQUFTLEVBQUMsSUFBSSxDQUFDLDZCQUE2QixDQUFDLFFBQVEsRUFBRTtTQUMxRCxDQUFBO0lBQ0wsQ0FBQztDQUlKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBlcmlvZG9Ob21pbmEsIElQcm9jZXNvTm9taW5hIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9Ob21pbmEnO1xyXG5pbXBvcnQgeyBNQmFzaWNNb2RlbCB9IGZyb20gJy4uL2Jhc2ljLW1vZGVsLm1vZGVsJztcclxuZXhwb3J0IGNsYXNzIE1QZXJpb2RvTm9taW5hIGV4dGVuZHMgTUJhc2ljTW9kZWwge1xyXG4gICAgcHVibGljIGlkRW50ZXJwcmlzZTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkTm9taW5hOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29QZXJpb2RvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBmZWNoYURlc2RlUGVyaW9kbzpzdHJpbmc9JzE5MDAtMDEtMDEnO1xyXG4gICAgcHVibGljIGZlY2hhSGFzdGFwZXJpb2RvOnN0cmluZz0nMTkwMC0wMS0wMSc7XHJcbiAgICBwdWJsaWMgY2VycmFyUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyB0b3RhbFBlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29udGFiaWxpYXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIG9ic2VydmFjaW9uUGVyaW9kbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgcGVyaW9kb0FkaWNpb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZmlkZWljb21pc29Db250YWJpbGl6YWRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGZpZGVpY29taXNvSW50ZXJlc0NvbnRhYmlsaXphZG9QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIHByZW5vbWluYTpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIGNhbGN1bGFkbzpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIG1lczpudW1iZXI9MDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlOklQZXJpb2RvTm9taW5hPW51bGwpe1xyXG4gICAgICAgIHN1cGVyKClcclxuICAgICAgICBpZihlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZE5vbWluYT1wYXJzZUludChlLmlkX25vbWluYSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJpb2RvPXBhcnNlSW50KGUuaWRfcGVyaW9kbyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGVyaW9kbz1lLmNvZHBlcmk7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFEZXNkZVBlcmlvZG89ZS5mZWNkZXNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFIYXN0YXBlcmlvZG89ZS5mZWNoYXNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY2VycmFyUGVyaW9kbz1wYXJzZUludChlLmNlcnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxQZXJpb2RvPStlLnRvdHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89cGFyc2VJbnQoZS5jb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPXBhcnNlSW50KGUuYXBvY29ucGVyKTtcclxuICAgICAgICAgICAgdGhpcy5vYnNlcnZhY2lvblBlcmlvZG89ZS5vYnNwZXJcclxuICAgICAgICAgICAgdGhpcy5wZXJpb2RvQWRpY2lvbmFsPXBhcnNlSW50KGUucGVyYWRpKTtcclxuICAgICAgICAgICAgdGhpcy5pbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG89cGFyc2VJbnQoZS5pbmdjb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLmZpZGVpY29taXNvQ29udGFiaWxpemFkbz1wYXJzZUludChlLmZpZGNvbnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuZmlkZWljb21pc29JbnRlcmVzQ29udGFiaWxpemFkb1BlcmlvZG89cGFyc2VJbnQoZS5maWRpbnRjb25wZXIpO1xyXG4gICAgICAgICAgICB0aGlzLnByZW5vbWluYT1lLnByZW5vbWluYT09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmNhbGN1bGFkbz1lLmNhbGN1bGFkbz09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLm1lcz0rZS5tZXM7XHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklQZXJpb2RvTm9taW5he1xyXG4gICAgICAgIHJldHVybntcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhwqA6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX25vbWluYTp0aGlzLmlkTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3BlcmlvZG86dGhpcy5pZFBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kcGVyaTp0aGlzLmNvZGlnb1BlcmlvZG8sXHJcbiAgICAgICAgICAgIGZlY2Rlc3Blcjp0aGlzLmZlY2hhRGVzZGVQZXJpb2RvLFxyXG4gICAgICAgICAgICBmZWNoYXNwZXI6dGhpcy5mZWNoYUhhc3RhcGVyaW9kbyxcclxuICAgICAgICAgICAgY2VycGVyOnRoaXMuY2VycmFyUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICB0b3RwZXI6dGhpcy50b3RhbFBlcmlvZG8udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGNvbnBlcjp0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBhcG9jb25wZXI6dGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBvYnNwZXI6dGhpcy5vYnNlcnZhY2lvblBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcGVyYWRpOnRoaXMucGVyaW9kb0FkaWNpb25hbC50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpbmdjb25wZXI6dGhpcy5pbmdyZXNvQ29udGFiaWxpemFkb1BlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgZmlkY29ucGVyOnRoaXMuZmlkZWljb21pc29Db250YWJpbGl6YWRvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGZpZGludGNvbnBlcjp0aGlzLmZpZGVpY29taXNvSW50ZXJlc0NvbnRhYmlsaXphZG9QZXJpb2RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIHByZW5vbWluYTp0aGlzLnByZW5vbWluYT8gJzEnOicwJyxcclxuICAgICAgICAgICAgY2FsY3VsYWRvOnRoaXMuY2FsY3VsYWRvPyAnMSc6JzAnLFxyXG4gICAgICAgICAgICBtZXM6dGhpcy5tZXMudG9TdHJpbmcoKSxcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBlc3RhdHVzUGVyaW9kbygpOnN0cmluZyB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbGN1bGFkbyAgJiYgIXRoaXMucHJlbm9taW5hICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTApe1xyXG4gICAgICAgICAgICByZXR1cm4gJ1NpbiBDYWxjdWxhcidcclxuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuY2FsY3VsYWRvICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTApe1xyXG4gICAgICAgICAgICByZXR1cm4gJ0NhbGN1bGFkYSdcclxuICAgICAgICB9IGVsc2UgICBpZiAodGhpcy5jYWxjdWxhZG8gJiYgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89PTEgJiYgdGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kbz09MCl7XHJcbiAgICAgICAgICAgIHJldHVybiAnUGVyaW9kbyBDb250YWJpbGl6YWRvJ1xyXG4gICAgICAgIH0gZWxzZSAgIGlmICh0aGlzLmNhbGN1bGFkbyAmJiB0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kbz09MSAmJiB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPT0xKXtcclxuICAgICAgICAgICAgcmV0dXJuICdQZXJpb2RvIHkgQXBvcnRlIENvbnRhYmlsaXphZG8nXHJcbiAgICAgICAgfSBlbHNlICAgaWYgKHRoaXMuY2FsY3VsYWRvICYmIHRoaXMuY29udGFiaWxpYXphZG9QZXJpb2RvPT0wICYmIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1BlcmlvZG89PTEpe1xyXG4gICAgICAgICAgICByZXR1cm4gJ0Fwb3J0ZSBDb250YWJpbGl6YWRvJ1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuY2FsY3VsYWRvICAmJiB0aGlzLnByZW5vbWluYSAmJiB0aGlzLmNvbnRhYmlsaWF6YWRvUGVyaW9kbz09MCAmJiB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9QZXJpb2RvPT0wKXtcclxuICAgICAgICAgICAgcmV0dXJuICdQcmUtQ2FsY3VsYWRhJ1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcGVyaW9kb0VkaXRhYmxlKCk6Ym9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmNhbGN1bGFkbyAmJiAhdGhpcy5wcmVub21pbmEgJiYgdGhpcy5jb250YWJpbGlhemFkb1BlcmlvZG89PTAgJiYgdGhpcy5hcG9ydGVDb250YWJpbGl6YWRvUGVyaW9kbz09MCl7XHJcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgXHJcbiAgICB9IFxyXG4gICAgXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUHJvY2Vzb3NOb21pbmEgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZEVudGVycHJpc2U6IG51bWJlcjtcclxuICAgIHB1YmxpYyBpZE5vbWluYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBlcmlvZG86bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGlkUHJvY2VzbzpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvUHJvY2VzbzpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIG5vbWJyZVByb2Nlc286c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhUHJvY2Vzbzogc3RyaW5nPScxOTAwLTAxLTAxJztcclxuICAgIHB1YmxpYyBjZXJyYXJQcm9jZXNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyB0b3RhbFByb2Nlc286IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvbnRhYmlsaWF6YWRvUHJvY2VzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYXBvcnRlQ29udGFiaWxpemFkb1Byb2Nlc286IG51bWJlcj0wO1xyXG4gICAgcHVibGljIHByZWNhbGN1bG86IGJvb2xlYW49ZmFsc2U7XHJcbiAgICBwdWJsaWMgY2FsY3VsYWRvOiBib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIG1lczogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYXNpZ25hclRvZG9zOmJvb2xlYW49ZmFsc2U7ICAgIFxyXG4gICAgcHVibGljIGNvZGlnb05vbWluYTpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvUGVyaW9kbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZmVjaGFEZXNkZVBlcmlvZG86c3RyaW5nPScxOTAwLTAxLTAxJztcclxuICAgIHB1YmxpYyBmZWNoYUhhc3RhUGVyaW9kbzpzdHJpbmc9JzE5MDAtMDEtMDEnOyAgXHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uRXN0YWRvOnN0cmluZz0nTm8gY2FsY3VsYWRvJyBcclxuICAgIHB1YmxpYyBub21pbmFMaXF1aWRhY2lvbjpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBkZXNpbmNvcnBvcmFyVmFjYWNpb25lc05vbWluYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjYW50aWRhZFBlcnNvbmFsUHJvY2VzbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjYW50aWRhZFByb2Nlc2FkYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBwb3JjZW50YWplUHJvY2VzYWRhOm51bWJlcj0wO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGU/OklQcm9jZXNvTm9taW5hKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2EgPSArZS5pZF9lbXByZXNhOyBcclxuICAgICAgICAgICAgdGhpcy5pZE5vbWluYT0gK2UuaWRfbm9taW5hO1xyXG4gICAgICAgICAgICB0aGlzLmlkUHJvY2Vzbz0gK2UuaWRfcHJvY2VzbzsgXHJcbiAgICAgICAgICAgIHRoaXMuaWRQZXJpb2RvPSArZS5pZF9wZXJpb2RvOyBcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Qcm9jZXNvPSBlLmNvZHBybzsgXHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUHJvY2Vzbz0gZS5ub21wcm87ICAgICAgICAgIFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhUHJvY2Vzbz1lLmZlY3Byb1xyXG4gICAgICAgICAgICB0aGlzLmNlcnJhclByb2Nlc28gPSArZS5jZXJwcm87XHJcbiAgICAgICAgICAgIHRoaXMudG90YWxQcm9jZXNvPSArZS50b3Rwcm87XHJcbiAgICAgICAgICAgIHRoaXMuY29udGFiaWxpYXphZG9Qcm9jZXNvPSArZS5jb25wcm87XHJcbiAgICAgICAgICAgIHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1Byb2Nlc289ICtlLmFwb2NvbnRwcm87XHJcbiAgICAgICAgICAgIHRoaXMucHJlY2FsY3Vsbz0gZS5wcmVjYWxjdWxvPT0nMSc7XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYWRvPSBlLmNhbGN1bGFkbz09JzEnO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb05vbWluYT0gZS5jb2Rub21cclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29QZXJpb2RvPWUuY29kcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhRGVzZGVQZXJpb2RvID1lLmZlY2Rlc3BlcjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUhhc3RhUGVyaW9kbz1lLmZlY2hhc3BlcjtcclxuICAgICAgICAgICAgdGhpcy5hc2lnbmFyVG9kb3MgPSBlLmFwbGl0b2Q9PScxJzsgICAgICAgICAgICBcclxuICAgICAgICAgICAgKHRoaXMuY29udGFiaWxpYXphZG9Qcm9jZXNvPT0xIHx8IHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1Byb2Nlc289PTEpP1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkVzdGFkbz0nQ29udGFiaWxpemFkbyc6IFxyXG4gICAgICAgICAgICB0aGlzLmNlcnJhclByb2Nlc289PTE/ICB0aGlzLmRlbm9taW5hY2lvbkVzdGFkbz0nQ2VycmFkbyc6XHJcbiAgICAgICAgICAgIHRoaXMuY2FsY3VsYWRvPyAgdGhpcy5kZW5vbWluYWNpb25Fc3RhZG89J0NhbGN1bGFkbyc6XHJcbiAgICAgICAgICAgIHRoaXMucHJlY2FsY3Vsbz8gIHRoaXMuZGVub21pbmFjaW9uRXN0YWRvPSdQcmVjYWxjdWxhZG8nOlxyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkVzdGFkbz0nTm8gQ2FsY3VsYWRvJztcclxuXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRFc3RhdHVzKCk6c3RyaW5ne1xyXG4gICAgICAgICh0aGlzLmNvbnRhYmlsaWF6YWRvUHJvY2Vzbz09MSB8fCB0aGlzLmFwb3J0ZUNvbnRhYmlsaXphZG9Qcm9jZXNvPT0xKT9cclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Fc3RhZG89J0NvbnRhYmlsaXphZG8nOiBcclxuICAgICAgICAgICAgdGhpcy5jYWxjdWxhZG8/ICB0aGlzLmRlbm9taW5hY2lvbkVzdGFkbz0nQ2FsY3VsYWRvJzpcclxuICAgICAgICAgICAgdGhpcy5wcmVjYWxjdWxvPyAgdGhpcy5kZW5vbWluYWNpb25Fc3RhZG89J1ByZWNhbGN1bGFkbyc6XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uRXN0YWRvPSdObyBDYWxjdWxhZG8nO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRlbm9taW5hY2lvbkVzdGFkb1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SVByb2Nlc29Ob21pbmF7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9ub21pbmE6dGhpcy5pZE5vbWluYS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9wZXJpb2RvOnRoaXMuaWRQZXJpb2RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3Byb2Nlc286dGhpcy5pZFByb2Nlc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kcHJvOnRoaXMuY29kaWdvUHJvY2VzbyxcclxuICAgICAgICAgICAgbm9tcHJvOnRoaXMubm9tYnJlUHJvY2VzbyxcclxuICAgICAgICAgICAgZmVjcHJvOiB0aGlzLmZlY2hhUHJvY2VzbyxcclxuICAgICAgICAgICAgY2VycHJvOiB0aGlzLmNlcnJhclByb2Nlc28udG9QcmVjaXNpb24oKSxcclxuICAgICAgICAgICAgdG9scHJvOiB0aGlzLnRvdGFsUHJvY2Vzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjb25wcm86IHRoaXMuY29udGFiaWxpYXphZG9Qcm9jZXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGFwb2NvbnRwcm86IHRoaXMuYXBvcnRlQ29udGFiaWxpemFkb1Byb2Nlc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcHJlY2FsY3VsbzogIHRoaXMucHJlY2FsY3Vsbz8gJzEnOicwJyxcclxuICAgICAgICAgICAgY2FsY3VsYWRvOiB0aGlzLmNhbGN1bGFkbz8gJzEnOicwJyxcclxuICAgICAgICAgICAgdG90cHJvOnRoaXMudG90YWxQcm9jZXNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIG1lczogdGhpcy5tZXMudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgYXBsaXRvZDogdGhpcy5hc2lnbmFyVG9kb3M/ICcxJzonMCcsXHJcbiAgICAgICAgICAgIG5vbWxpcTp0aGlzLm5vbWluYUxpcXVpZGFjaW9uLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGRlc3ZhY25vbTp0aGlzLmRlc2luY29ycG9yYXJWYWNhY2lvbmVzTm9taW5hLnRvU3RyaW5nKCksXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbiAgICBcclxufSJdfQ==
|