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.
@@ -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', 'en-US');
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==