sigesp 0.9.2-210211 → 0.9.3-20221025

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.
Files changed (363) hide show
  1. package/bundles/sigesp.umd.js +10909 -1625
  2. package/bundles/sigesp.umd.js.map +1 -1
  3. package/bundles/sigesp.umd.min.js +1 -15
  4. package/bundles/sigesp.umd.min.js.map +1 -1
  5. package/esm2015/lib/app/app.component.js +1 -1
  6. package/esm2015/lib/app/app.module.js +5 -1
  7. package/esm2015/lib/core/interfaces/Auditoria.js +49 -0
  8. package/esm2015/lib/core/interfaces/Banco.js +1 -1
  9. package/esm2015/lib/core/interfaces/Catalogo.js +1 -1
  10. package/esm2015/lib/core/interfaces/CentroCosto.js +1 -1
  11. package/esm2015/lib/core/interfaces/Clasificacion.js +1 -1
  12. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +1 -1
  13. package/esm2015/lib/core/interfaces/Comunidad.js +1 -1
  14. package/esm2015/lib/core/interfaces/Configuracion.js +2 -0
  15. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +1 -1
  16. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +1 -1
  17. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +1 -1
  18. package/esm2015/lib/core/interfaces/Constantes.js +350 -0
  19. package/esm2015/lib/core/interfaces/CuentaEgresos.js +1 -1
  20. package/esm2015/lib/core/interfaces/CuentaIngreso.js +1 -1
  21. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +1 -1
  22. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +1 -1
  23. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +1 -1
  24. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +1 -1
  25. package/esm2015/lib/core/interfaces/Documento.js +1 -1
  26. package/esm2015/lib/core/interfaces/EntradaSuministro.js +2 -0
  27. package/esm2015/lib/core/interfaces/Especialidad.js +1 -1
  28. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +1 -1
  29. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +1 -1
  30. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +2 -0
  31. package/esm2015/lib/core/interfaces/Integracion.js +1 -1
  32. package/esm2015/lib/core/interfaces/Lugares.js +1 -1
  33. package/esm2015/lib/core/interfaces/Moneda.js +1 -1
  34. package/esm2015/lib/core/interfaces/Nomina.js +27 -0
  35. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +1 -1
  36. package/esm2015/lib/core/interfaces/Presupuesto.js +1 -1
  37. package/esm2015/lib/core/interfaces/Proveedor.js +1 -1
  38. package/esm2015/lib/core/interfaces/RecursosHumanos.js +4 -0
  39. package/esm2015/lib/core/interfaces/Request.js +1 -1
  40. package/esm2015/lib/core/interfaces/Response.js +1 -1
  41. package/esm2015/lib/core/interfaces/Seguridad.js +1 -1
  42. package/esm2015/lib/core/interfaces/Servicios.js +1 -1
  43. package/esm2015/lib/core/interfaces/Sistema.js +1 -1
  44. package/esm2015/lib/core/interfaces/Tributos.js +1 -1
  45. package/esm2015/lib/core/interfaces/UnidadTributaria.js +1 -1
  46. package/esm2015/lib/core/interfaces/Usuario.js +1 -1
  47. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +1 -1
  48. package/esm2015/lib/core/models/CFG/Empresa.model.js +109 -0
  49. package/esm2015/lib/core/models/CFG/comunidad.model.js +15 -0
  50. package/esm2015/lib/core/models/CFG/locations.model.js +122 -0
  51. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +31 -0
  52. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +41 -0
  53. package/esm2015/lib/core/models/RPC/clasification.model.js +14 -0
  54. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +23 -0
  55. package/esm2015/lib/core/models/RPC/document.model.js +16 -0
  56. package/esm2015/lib/core/models/RPC/proveedores.model.js +9 -0
  57. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +154 -0
  58. package/esm2015/lib/core/models/RPC/specialty.model.js +12 -0
  59. package/esm2015/lib/core/models/SCB/bank.model.js +175 -0
  60. package/esm2015/lib/core/models/SCG/IncomeAccount.js +81 -0
  61. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +11 -0
  62. package/esm2015/lib/core/models/SCG/centroCosto.model.js +7 -0
  63. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +169 -0
  64. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +26 -0
  65. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +7 -0
  66. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +59 -0
  67. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +94 -0
  68. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +132 -0
  69. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +97 -0
  70. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +58 -0
  71. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +38 -0
  72. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +192 -0
  73. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +84 -0
  74. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +58 -0
  75. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +81 -0
  76. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +34 -0
  77. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +88 -0
  78. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +43 -0
  79. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +36 -0
  80. package/esm2015/lib/core/models/SNO/MComponete.model.js +35 -0
  81. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +82 -0
  82. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +217 -0
  83. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +94 -0
  84. package/esm2015/lib/core/models/SNO/MConcursante.model.js +302 -0
  85. package/esm2015/lib/core/models/SNO/MConcurso.model.js +234 -0
  86. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +389 -0
  87. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +64 -0
  88. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +76 -0
  89. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +32 -0
  90. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +339 -0
  91. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +75 -0
  92. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +37 -0
  93. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +135 -0
  94. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +35 -0
  95. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +34 -0
  96. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +109 -0
  97. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +83 -0
  98. package/esm2015/lib/core/models/SNO/MFeriados.model.js +43 -0
  99. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +388 -0
  100. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +46 -0
  101. package/esm2015/lib/core/models/SNO/MGrado.model.js +44 -0
  102. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +112 -0
  103. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +70 -0
  104. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +99 -0
  105. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +79 -0
  106. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +92 -0
  107. package/esm2015/lib/core/models/SNO/MPermisos.model.js +65 -0
  108. package/esm2015/lib/core/models/SNO/MPersonal.model.js +579 -0
  109. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +46 -0
  110. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +298 -0
  111. package/esm2015/lib/core/models/SNO/MPlanHorario.model.js +131 -0
  112. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +31 -0
  113. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +212 -0
  114. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +40 -0
  115. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +40 -0
  116. package/esm2015/lib/core/models/SNO/MRango.model.js +40 -0
  117. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +402 -0
  118. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +43 -0
  119. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +34 -0
  120. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +107 -0
  121. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +67 -0
  122. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +118 -0
  123. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +54 -0
  124. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +37 -0
  125. package/esm2015/lib/core/models/SNO/MTabulador.model.js +90 -0
  126. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +69 -0
  127. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +31 -0
  128. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +34 -0
  129. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +62 -0
  130. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +58 -0
  131. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +112 -0
  132. package/esm2015/lib/core/models/SNO/McargaFamiliar.model.js +49 -0
  133. package/esm2015/lib/core/models/SOC/charge.model.js +63 -0
  134. package/esm2015/lib/core/models/SOC/clause.model.js +25 -0
  135. package/esm2015/lib/core/models/SOC/clauseModality.model.js +29 -0
  136. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +56 -0
  137. package/esm2015/lib/core/models/SOC/service.model.js +40 -0
  138. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +15 -22
  139. package/esm2015/lib/core/models/SOC/serviceType.model.js +22 -0
  140. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +1 -1
  141. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +47 -0
  142. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +55 -0
  143. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +13 -0
  144. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +132 -0
  145. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +40 -0
  146. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +10 -0
  147. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +81 -0
  148. package/esm2015/lib/core/models/SPG/organizationType.model.js +12 -0
  149. package/esm2015/lib/core/models/SSS/component.model.js +1 -1
  150. package/esm2015/lib/core/models/SSS/group.model.js +2 -2
  151. package/esm2015/lib/core/models/SSS/log.model.js +29 -0
  152. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +20 -0
  153. package/esm2015/lib/core/models/SSS/sistema.js +15 -0
  154. package/esm2015/lib/core/models/SSS/user.model.js +29 -0
  155. package/esm2015/lib/core/models/SSS/userDetail.model.js +70 -0
  156. package/esm2015/lib/core/models/SSS/userPermit.model.js +5 -1
  157. package/esm2015/lib/core/models/SSS/userPrefix.model.js +15 -0
  158. package/esm2015/lib/core/models/SSS/userRights.model.js +25 -1
  159. package/esm2015/lib/core/models/STB/deduction.model.js +78 -0
  160. package/esm2015/lib/core/models/STB/deductionType.model.js +20 -0
  161. package/esm2015/lib/core/models/STB/moneda.model.js +27 -0
  162. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +14 -0
  163. package/esm2015/lib/core/models/basic-model.model.js +1 -1
  164. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +1 -1
  165. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +1 -1
  166. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +1 -1
  167. package/esm2015/lib/shared/components/confirm/confirm.component.js +1 -1
  168. package/esm2015/lib/shared/components/icon/icon.component.js +1 -1
  169. package/esm2015/lib/shared/components/table-select/table-select.component.js +18 -3
  170. package/esm2015/lib/shared/material/customPaginator.js +1 -1
  171. package/esm2015/lib/shared/material/material.module.js +1 -1
  172. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +1 -1
  173. package/esm2015/lib/shared/shared.module.js +5 -1
  174. package/esm2015/lib/sigesp.service.js +552 -105
  175. package/esm2015/lib/validation.service.js +1 -1
  176. package/esm2015/public-api.js +126 -40
  177. package/esm2015/sigesp.js +11 -12
  178. package/fesm2015/sigesp.js +10457 -1765
  179. package/fesm2015/sigesp.js.map +1 -1
  180. package/lib/core/interfaces/Auditoria.d.ts +18 -0
  181. package/lib/core/interfaces/Banco.d.ts +548 -0
  182. package/lib/core/interfaces/Configuracion.d.ts +34 -0
  183. package/lib/core/interfaces/ConfiguracionSCG.d.ts +1 -0
  184. package/lib/core/interfaces/Constantes.d.ts +78 -0
  185. package/lib/core/interfaces/CuentasPorPagar.d.ts +19 -0
  186. package/lib/core/interfaces/EntradaSuministro.d.ts +87 -0
  187. package/lib/core/interfaces/IBancoCuentasPorPagar.d.ts +186 -0
  188. package/lib/core/interfaces/Lugares.d.ts +6 -0
  189. package/lib/core/interfaces/Nomina.d.ts +500 -0
  190. package/lib/core/interfaces/Proveedor.d.ts +2 -1
  191. package/lib/core/interfaces/RecursosHumanos.d.ts +1483 -0
  192. package/lib/core/interfaces/Seguridad.d.ts +22 -0
  193. package/lib/core/interfaces/Servicios.d.ts +13 -2
  194. package/lib/core/interfaces/Tributos.d.ts +11 -0
  195. package/lib/core/interfaces/Usuario.d.ts +18 -0
  196. package/lib/core/models/CFG/Empresa.model.d.ts +38 -0
  197. package/lib/core/models/{comunidad.model.d.ts → CFG/comunidad.model.d.ts} +1 -1
  198. package/lib/core/models/CFG/locations.model.d.ts +44 -0
  199. package/lib/core/models/CXP/MConceptosCXP.model.d.ts +11 -0
  200. package/lib/core/models/CXP/MTipoDocumentoCXP.model.d.ts +15 -0
  201. package/lib/core/models/{clasification.model.d.ts → RPC/clasification.model.d.ts} +1 -1
  202. package/lib/core/models/{configuracionRPC.model.d.ts → RPC/configuracionRPC.model.d.ts} +1 -1
  203. package/lib/core/models/{document.model.d.ts → RPC/document.model.d.ts} +1 -1
  204. package/lib/core/models/{proveedores.model.d.ts → RPC/proveedores.model.d.ts} +1 -1
  205. package/lib/core/models/{providerBeneficiary.model.d.ts → RPC/providerBeneficiary.model.d.ts} +6 -2
  206. package/lib/core/models/{specialty.model.d.ts → RPC/specialty.model.d.ts} +1 -1
  207. package/lib/core/models/SCB/bank.model.d.ts +61 -0
  208. package/lib/core/models/{IncomeAccount.d.ts → SCG/IncomeAccount.d.ts} +1 -1
  209. package/lib/core/models/{accountMarriage.model.d.ts → SCG/accountMarriage.model.d.ts} +1 -1
  210. package/lib/core/models/{centroCosto.model.d.ts → SCG/centroCosto.model.d.ts} +1 -1
  211. package/lib/core/models/{configuracionSCG.model.d.ts → SCG/configuracionSCG.model.d.ts} +20 -17
  212. package/lib/core/models/{cuentaInstitucional.model.d.ts → SCG/cuentaInstitucional.model.d.ts} +1 -1
  213. package/lib/core/models/{planUnicoCuenta.model.d.ts → SCG/planUnicoCuenta.model.d.ts} +1 -1
  214. package/lib/core/models/SIV/MDetaContable.model.d.ts +21 -0
  215. package/lib/core/models/SIV/MDetaEntrada.model.d.ts +33 -0
  216. package/lib/core/models/SIV/MEntradaSuministro.model.d.ts +47 -0
  217. package/lib/core/models/SNO/MAnticipoPrestaciones.model.d.ts +31 -0
  218. package/lib/core/models/SNO/MArchivoTxtCampo.model.d.ts +20 -0
  219. package/lib/core/models/SNO/MArchivosTxt.model.d.ts +14 -0
  220. package/lib/core/models/SNO/MAsignacionCargo.model.d.ts +73 -0
  221. package/lib/core/models/SNO/MAspectoEvaluacion.model.d.ts +28 -0
  222. package/lib/core/models/SNO/MAuditoria.model.d.ts +20 -0
  223. package/lib/core/models/SNO/MBeneficiario.model.d.ts +31 -0
  224. package/lib/core/models/SNO/MCargaMasiva.model.d.ts +12 -0
  225. package/lib/core/models/SNO/MCargosPersonal.model.d.ts +36 -0
  226. package/lib/core/models/SNO/MClasificacionObrero.mdel.d.ts +15 -0
  227. package/lib/core/models/SNO/MCodigoUnicoRac.model.d.ts +13 -0
  228. package/lib/core/models/SNO/MComponete.model.d.ts +13 -0
  229. package/lib/core/models/SNO/MConceptoVacaciones.model.d.ts +29 -0
  230. package/lib/core/models/SNO/MConceptosNomina.model.d.ts +72 -0
  231. package/lib/core/models/SNO/MConceptosPersonalNomina.model.d.ts +33 -0
  232. package/lib/core/models/SNO/MConcursante.model.d.ts +99 -0
  233. package/lib/core/models/SNO/MConcurso.model.d.ts +79 -0
  234. package/lib/core/models/SNO/MConfiguracionSNO.model.d.ts +131 -0
  235. package/lib/core/models/SNO/MConstanteNomina.model.d.ts +22 -0
  236. package/lib/core/models/SNO/MConstantePersonalNomina.model.d.ts +26 -0
  237. package/lib/core/models/SNO/MDedicacion.model.d.ts +12 -0
  238. package/lib/core/models/SNO/MDefinicionNomina.model.d.ts +129 -0
  239. package/lib/core/models/SNO/MDefinicionesBasicas.model.d.ts +23 -0
  240. package/lib/core/models/SNO/MDeudaAnterior.model.d.ts +13 -0
  241. package/lib/core/models/SNO/MEncargaduria.model.d.ts +46 -0
  242. package/lib/core/models/SNO/MEscalaEvaluacion.model.d.ts +14 -0
  243. package/lib/core/models/SNO/MEscalaEvaluacionDt.model.d.ts +13 -0
  244. package/lib/core/models/SNO/MEstructuraOrganizativa.model.d.ts +38 -0
  245. package/lib/core/models/SNO/MFamiliares.model.d.ts +30 -0
  246. package/lib/core/models/SNO/MFeriados.model.d.ts +16 -0
  247. package/lib/core/models/SNO/MFideicomiso.model.d.ts +135 -0
  248. package/lib/core/models/SNO/MFormacionAcademica.model.d.ts +17 -0
  249. package/lib/core/models/SNO/MGrado.model.d.ts +17 -0
  250. package/lib/core/models/SNO/MHojaTiempo.model.d.ts +38 -0
  251. package/lib/core/models/SNO/MImpuestoSobreRenta.model.d.ts +24 -0
  252. package/lib/core/models/SNO/MMetodoBanco.model.d.ts +33 -0
  253. package/lib/core/models/SNO/MNominaSimple.model.d.ts +32 -0
  254. package/lib/core/models/SNO/MPeriodoNomina.model.d.ts +25 -0
  255. package/lib/core/models/SNO/MPermisos.model.d.ts +23 -0
  256. package/lib/core/models/SNO/MPersonal.model.d.ts +196 -0
  257. package/lib/core/models/SNO/MPersonalJubilado.model.d.ts +16 -0
  258. package/lib/core/models/SNO/MPersonalNomina.model.d.ts +93 -0
  259. package/lib/core/models/SNO/MPlanHorario.model.d.ts +46 -0
  260. package/lib/core/models/SNO/MPlantillaConstancia.model.d.ts +11 -0
  261. package/lib/core/models/SNO/MPrestamo.model.d.ts +66 -0
  262. package/lib/core/models/SNO/MPrimaGrados.model.d.ts +14 -0
  263. package/lib/core/models/SNO/MPrimasConcepto.model.d.ts +14 -0
  264. package/lib/core/models/SNO/MRango.model.d.ts +14 -0
  265. package/lib/core/models/SNO/MReportesRRHH.d.ts +130 -0
  266. package/lib/core/models/SNO/MRequisitosConcursante.model.d.ts +15 -0
  267. package/lib/core/models/SNO/MRequisitosConcursos.model.d.ts +13 -0
  268. package/lib/core/models/SNO/MRequisitosMinimos.model.d.ts +37 -0
  269. package/lib/core/models/SNO/MSalarioHistorico.model.d.ts +24 -0
  270. package/lib/core/models/SNO/MSolicitudEmpleo.model.d.ts +41 -0
  271. package/lib/core/models/SNO/MTablaVacaciones.model.d.ts +14 -0
  272. package/lib/core/models/SNO/MTablaVacacionesPeriodo.model.d.ts +14 -0
  273. package/lib/core/models/SNO/MTabulador.model.d.ts +37 -0
  274. package/lib/core/models/SNO/MTipoEvaluacion.model.d.ts +26 -0
  275. package/lib/core/models/SNO/MTipoPersonal.model.d.ts +12 -0
  276. package/lib/core/models/SNO/MTiposEnfermedad.model.d.ts +13 -0
  277. package/lib/core/models/SNO/MTrabajoAnterior.model.d.ts +23 -0
  278. package/lib/core/models/SNO/MUbicacionFisica.model.d.ts +20 -0
  279. package/lib/core/models/SNO/MVacacionesPersonal.model.d.ts +39 -0
  280. package/lib/core/models/SNO/McargaFamiliar.model.d.ts +17 -0
  281. package/lib/core/models/{charge.model.d.ts → SOC/charge.model.d.ts} +2 -2
  282. package/lib/core/models/{clause.model.d.ts → SOC/clause.model.d.ts} +2 -2
  283. package/lib/core/models/{clauseModality.model.d.ts → SOC/clauseModality.model.d.ts} +2 -2
  284. package/lib/core/models/{configuracionSOC.model.d.ts → SOC/configuracionSOC.model.d.ts} +6 -2
  285. package/lib/core/models/{service.model.d.ts → SOC/service.model.d.ts} +5 -4
  286. package/lib/core/models/SOC/serviceCharge.model.d.ts +3 -10
  287. package/lib/core/models/{serviceType.model.d.ts → SOC/serviceType.model.d.ts} +2 -2
  288. package/lib/core/models/{comprobantePresupuestario.model.d.ts → SPG/comprobantePresupuestario.model.d.ts} +1 -1
  289. package/lib/core/models/{configurationSPG.model.d.ts → SPG/configurationSPG.model.d.ts} +2 -2
  290. package/lib/core/models/{cuentaPresupuesto.model.d.ts → SPG/cuentaPresupuesto.model.d.ts} +1 -1
  291. package/lib/core/models/{estructuraPresupuestaria.model.d.ts → SPG/estructuraPresupuestaria.model.d.ts} +1 -1
  292. package/lib/core/models/{expensiveAccount.model.d.ts → SPG/expensiveAccount.model.d.ts} +1 -1
  293. package/lib/core/models/{fuenteFinanciamiento.model.d.ts → SPG/fuenteFinanciamiento.model.d.ts} +1 -1
  294. package/lib/core/models/{incomeStructureAccount.model.d.ts → SPG/incomeStructureAccount.model.d.ts} +1 -1
  295. package/lib/core/models/{organizationType.model.d.ts → SPG/organizationType.model.d.ts} +1 -1
  296. package/lib/core/models/SSS/group.model.d.ts +1 -1
  297. package/lib/core/models/SSS/log.model.d.ts +15 -0
  298. package/lib/core/models/{securityConfiguration.model.d.ts → SSS/securityConfiguration.model.d.ts} +2 -2
  299. package/lib/core/models/{sistema.d.ts → SSS/sistema.d.ts} +1 -1
  300. package/lib/core/models/SSS/user.model.d.ts +19 -0
  301. package/lib/core/models/{userDetail.model.d.ts → SSS/userDetail.model.d.ts} +8 -7
  302. package/lib/core/models/SSS/userPermit.model.d.ts +2 -0
  303. package/lib/core/models/SSS/userPrefix.model.d.ts +11 -0
  304. package/lib/core/models/SSS/userRights.model.d.ts +8 -0
  305. package/lib/core/models/STB/deduction.model.d.ts +26 -0
  306. package/lib/core/models/{deductionType.model.d.ts → STB/deductionType.model.d.ts} +2 -2
  307. package/lib/core/models/{moneda.model.d.ts → STB/moneda.model.d.ts} +1 -1
  308. package/lib/core/models/{unidadTributaria.model.d.ts → STB/unidadTributaria.model.d.ts} +1 -1
  309. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +1 -1
  310. package/lib/shared/components/table-select/table-select.component.d.ts +5 -3
  311. package/lib/sigesp.service.d.ts +290 -38
  312. package/lib/validation.service.d.ts +1 -1
  313. package/package.json +3 -3
  314. package/public-api.d.ts +125 -46
  315. package/sigesp.d.ts +26 -25
  316. package/sigesp.metadata.json +1 -1
  317. package/esm2015/lib/core/interfaces/Bank.js +0 -2
  318. package/esm2015/lib/core/models/IncomeAccount.js +0 -81
  319. package/esm2015/lib/core/models/SCB/bankAccount.model.js +0 -36
  320. package/esm2015/lib/core/models/accountMarriage.model.js +0 -11
  321. package/esm2015/lib/core/models/bank.model.js +0 -45
  322. package/esm2015/lib/core/models/centroCosto.model.js +0 -7
  323. package/esm2015/lib/core/models/charge.model.js +0 -63
  324. package/esm2015/lib/core/models/clasification.model.js +0 -14
  325. package/esm2015/lib/core/models/clause.model.js +0 -25
  326. package/esm2015/lib/core/models/clauseModality.model.js +0 -29
  327. package/esm2015/lib/core/models/comprobantePresupuestario.model.js +0 -47
  328. package/esm2015/lib/core/models/comunidad.model.js +0 -15
  329. package/esm2015/lib/core/models/configuracionRPC.model.js +0 -23
  330. package/esm2015/lib/core/models/configuracionSCG.model.js +0 -57
  331. package/esm2015/lib/core/models/configuracionSOC.model.js +0 -44
  332. package/esm2015/lib/core/models/configurationSPG.model.js +0 -55
  333. package/esm2015/lib/core/models/cuentaInstitucional.model.js +0 -26
  334. package/esm2015/lib/core/models/cuentaPresupuesto.model.js +0 -13
  335. package/esm2015/lib/core/models/deduction.model.js +0 -24
  336. package/esm2015/lib/core/models/deductionType.model.js +0 -20
  337. package/esm2015/lib/core/models/document.model.js +0 -16
  338. package/esm2015/lib/core/models/estructuraPresupuestaria.model.js +0 -132
  339. package/esm2015/lib/core/models/expensiveAccount.model.js +0 -40
  340. package/esm2015/lib/core/models/fuenteFinanciamiento.model.js +0 -10
  341. package/esm2015/lib/core/models/incomeStructureAccount.model.js +0 -81
  342. package/esm2015/lib/core/models/locations.model.js +0 -52
  343. package/esm2015/lib/core/models/moneda.model.js +0 -27
  344. package/esm2015/lib/core/models/organizationType.model.js +0 -12
  345. package/esm2015/lib/core/models/planUnicoCuenta.model.js +0 -7
  346. package/esm2015/lib/core/models/proveedores.model.js +0 -9
  347. package/esm2015/lib/core/models/providerBeneficiary.model.js +0 -135
  348. package/esm2015/lib/core/models/securityConfiguration.model.js +0 -20
  349. package/esm2015/lib/core/models/service.model.js +0 -37
  350. package/esm2015/lib/core/models/serviceType.model.js +0 -22
  351. package/esm2015/lib/core/models/sistema.js +0 -15
  352. package/esm2015/lib/core/models/specialty.model.js +0 -12
  353. package/esm2015/lib/core/models/unidadTributaria.model.js +0 -14
  354. package/esm2015/lib/core/models/user.model.js +0 -18
  355. package/esm2015/lib/core/models/userDetail.model.js +0 -66
  356. package/esm2015/lib/core/models/userPrefix.model.js +0 -11
  357. package/lib/core/interfaces/Bank.d.ts +0 -17
  358. package/lib/core/models/SCB/bankAccount.model.d.ts +0 -20
  359. package/lib/core/models/bank.model.d.ts +0 -26
  360. package/lib/core/models/deduction.model.d.ts +0 -11
  361. package/lib/core/models/locations.model.d.ts +0 -31
  362. package/lib/core/models/user.model.d.ts +0 -14
  363. package/lib/core/models/userPrefix.model.d.ts +0 -10
@@ -0,0 +1,579 @@
1
+ import { EstatusEstudio, Estudios } from '../../interfaces/Constantes';
2
+ import { MBasicModel } from '../basic-model.model';
3
+ export class MPersonal extends MBasicModel {
4
+ constructor(p = null) {
5
+ super();
6
+ this.idEmpresa = 0;
7
+ this.idPersonal = 0;
8
+ this.codigoPersonal = ''; //10
9
+ this.cedulaPersonal = ''; //10
10
+ this.rifPersonal = ''; //15
11
+ this.nombrePersonal = ''; //60
12
+ this.apellidoPersonal = '';
13
+ this.fechaNacimientoPersonal = '1900-01-01';
14
+ this.codigoPaisNacimiento = '';
15
+ this.codigoEstadoNacimiento = '';
16
+ this.nacionalidadPersonal = '';
17
+ this.estadoCivilPersonal = 'S';
18
+ this.telefonoHabitacionPersonal = ''; //15
19
+ this.telefonoMovilPersobal = ''; //15
20
+ this.correoElectronicoPersonal = ''; //60
21
+ this.direccionPersonal = ''; //255
22
+ this.codigoPais = '';
23
+ this.codigoEstado = '';
24
+ this.codigoMunicipio = '';
25
+ this.codigoParroquia = '';
26
+ this.sexoPersonal = '';
27
+ this.numeroHijo = 0;
28
+ this.conyugueTrabaja = 0;
29
+ this.cedulaBeneficiarioPersonal = '';
30
+ this.estatura = 0;
31
+ this.peso = 0;
32
+ this.tallaCamisa = '';
33
+ this.tallaPantalon = '';
34
+ this.tallaZapato = '';
35
+ this.idProfesion = 0;
36
+ this.nivelAcademicoPersonal = ''; //1
37
+ this.idComponente = 0;
38
+ this.idRango = 0;
39
+ this.fotoPersonal = '';
40
+ this.observacionPersonal = '';
41
+ this.estatusPersonal = '1';
42
+ this.idClasificacionPersonal = 0;
43
+ this.centroMedicoIVVS = ''; //155
44
+ this.turnoPersonal = ''; //1
45
+ this.horarioPersonal = ''; //10
46
+ this.estatusHCMPersonal = 0;
47
+ this.tipoSangrePersonal = ''; //10
48
+ this.numeroExpedientePersonal = ''; //20
49
+ this.cargoOriginalPersonal = ''; //100
50
+ this.tipoViviendaPersonal = 0; //ojo
51
+ this.tenenciaViviendaPersonal = ''; //40/ojo
52
+ this.montoPagadoViviendaPersonal = 0;
53
+ this.estatusCajaAhorro = 0;
54
+ this.cuentaCajaAhorroPersonal = ''; //25
55
+ this.porcentajeCajaAhorro = 0;
56
+ this.cuetaLeyPoliticaHabitacionaPersonal = ''; //25
57
+ this.cuentaFideicomiso = ''; //25
58
+ this.estatusSindicato = 0;
59
+ this.fechaIngresoAdministracionPublica = '1900-01-01';
60
+ this.anoServicioPrevioFijoAP = 0; //integer
61
+ this.anoServicioPrevioContratadoAP = 0; //integer
62
+ this.anoPersonalObrero = 0; //integer
63
+ this.anoServicioPrevioPersonal = 0; //integer
64
+ this.mesesServicioPrevioPersonal = 0; //integer
65
+ this.diasServicioPrevioPersonal = 0; //integer
66
+ this.fechaIngerosPersonal = '1900-01-01';
67
+ this.fechaReingresoPersonal = '1900-01-01';
68
+ this.fechajubilacionPersonal = '1900-01-01';
69
+ this.fechaEgresoPersonal = '1900-01-01';
70
+ this.causaEgresoPersonal = 'N'; //1
71
+ this.observacionEgresoPersonal = ''; //254
72
+ this.preaviso = '0'; //1
73
+ this.fechaLOSFAN = '1900-01-01';
74
+ this.situacion = 'N'; //1
75
+ this.fechaSituacion = '1900-01-01';
76
+ this.idCausales = 0;
77
+ this.fechaRegistroSistema = '1900-01-01';
78
+ this.codidoUsuario = '';
79
+ this.observacion = '';
80
+ this.idCentroMedico = 0;
81
+ this.idTipoPersonal = 0;
82
+ this.codigoComponente = '';
83
+ this.denominacionComponente = '';
84
+ this.codigoRango = '';
85
+ this.denominacionRango = '';
86
+ this.codigoCentroMedico = '';
87
+ this.denominacionCentroMedico = '';
88
+ this.codigoTipoPersonal = '';
89
+ this.denominacionTipoPersonal = '';
90
+ this.codigoCausaRetiro = '';
91
+ this.denominacionCausaRetiro = '';
92
+ this.idProveedorBeneficiario = 0;
93
+ this.denominacionEstatus = '';
94
+ this.conapdis = false;
95
+ this.idSindicato = 0;
96
+ this.codigoSindicato = '00000';
97
+ this.denominacionSindicato = '';
98
+ this.nombrePais = '';
99
+ this.nombreEstado = '';
100
+ this.nombreMunicipio = '';
101
+ this.nombreParroquia = '';
102
+ this.nombrePaisNacimiento = '';
103
+ this.nombreEstadoNacimiento = '';
104
+ this.codigoProfesion = '';
105
+ this.denominacionProfesion = '';
106
+ this.montoPension = 0;
107
+ this.idPlanHorario = 0;
108
+ this.idHora = 0;
109
+ this.descripcionPlanHorario = '';
110
+ this.codigoPlanHorario = '';
111
+ this.idPuestoTrabajo = 0;
112
+ this.descripcionPuestoTrabajo = '';
113
+ this.codigoPuestoTrabajo = '';
114
+ this.descripcionHorario = '';
115
+ if (p) {
116
+ this.idEmpresa = +p.id_empresa;
117
+ this.idPersonal = +p.id_personal;
118
+ this.codigoPersonal = p.codper;
119
+ this.cedulaPersonal = p.cedper;
120
+ this.rifPersonal = p.rifper;
121
+ this.nombrePersonal = p.nomper;
122
+ this.apellidoPersonal = p.apeper;
123
+ this.fechaNacimientoPersonal = p.fecnacper;
124
+ this.codigoPaisNacimiento = p.codpainac;
125
+ this.codigoEstadoNacimiento = p.codestnac;
126
+ this.nacionalidadPersonal = p.nacper;
127
+ this.estadoCivilPersonal = p.estcivper;
128
+ this.telefonoHabitacionPersonal = p.telhabper;
129
+ this.telefonoMovilPersobal = p.telmovper;
130
+ this.correoElectronicoPersonal = p.coreleper;
131
+ this.direccionPersonal = p.dirper;
132
+ this.codigoPais = p.codpai;
133
+ this.codigoEstado = p.codest;
134
+ this.codigoMunicipio = p.codmun;
135
+ this.codigoParroquia = p.codpar;
136
+ this.sexoPersonal = p.sexper;
137
+ this.numeroHijo = +p.numhijper;
138
+ this.conyugueTrabaja = +p.contra;
139
+ this.cedulaBeneficiarioPersonal = p.cedbenper;
140
+ this.estatura = +p.estatura;
141
+ this.peso = +p.peso;
142
+ this.tallaCamisa = p.tallcam;
143
+ this.tallaPantalon = p.tallpan;
144
+ 1;
145
+ this.tallaZapato = p.tallzap;
146
+ this.idProfesion = +p.id_profesion;
147
+ this.nivelAcademicoPersonal = p.nivacaper;
148
+ this.idComponente = +p.id_componente;
149
+ this.idRango = +p.id_rango;
150
+ this.fotoPersonal = p.fotper;
151
+ this.observacionPersonal = p.obsegrper;
152
+ this.estatusPersonal = p.estper;
153
+ this.idClasificacionPersonal = +p.id_claper;
154
+ this.turnoPersonal = p.turper;
155
+ this.horarioPersonal = p.horper;
156
+ this.estatusHCMPersonal = +p.hcmper;
157
+ this.tipoSangrePersonal = p.tipsanper;
158
+ this.numeroExpedientePersonal = p.numexpper;
159
+ this.cargoOriginalPersonal = p.caroriper;
160
+ this.tipoViviendaPersonal = +p.tipvivper;
161
+ this.tenenciaViviendaPersonal = p.tenvivper;
162
+ this.montoPagadoViviendaPersonal = +p.monpagvivper;
163
+ this.estatusCajaAhorro = +p.estcajaho;
164
+ this.cuentaCajaAhorroPersonal = p.cuecajahoper;
165
+ this.porcentajeCajaAhorro = +p.porcajaho;
166
+ this.cuetaLeyPoliticaHabitacionaPersonal = p.cuelphper;
167
+ this.cuentaFideicomiso = p.cuefidper;
168
+ 1;
169
+ this.estatusSindicato = +p.estsindicato;
170
+ this.fechaIngresoAdministracionPublica = p.fecingadmpubper;
171
+ this.anoServicioPrevioFijoAP = +p.anoservprefijo;
172
+ this.anoServicioPrevioContratadoAP = +p.anoservprecont;
173
+ this.anoPersonalObrero = +p.anoperobr;
174
+ this.anoServicioPrevioPersonal = +p.anoservpreper;
175
+ this.mesesServicioPrevioPersonal = +p.messervpreper;
176
+ this.diasServicioPrevioPersonal = +p.diaservpreper;
177
+ this.fechaIngerosPersonal = p.fecingper;
178
+ this.fechaReingresoPersonal = p.fecreingper;
179
+ this.fechajubilacionPersonal = p.fecjubper;
180
+ this.fechaEgresoPersonal = p.fecegrper;
181
+ this.causaEgresoPersonal = p.cauegrper;
182
+ this.observacionEgresoPersonal = p.obsegrper;
183
+ this.preaviso = p.preaviso;
184
+ this.fechaLOSFAN = p.feclossfan;
185
+ this.situacion = p.situacion;
186
+ this.fechaSituacion = p.fecsitu;
187
+ this.idCausales = +p.id_causales;
188
+ this.fechaRegistroSistema = p.fecregsis;
189
+ this.codidoUsuario = p.codusu;
190
+ this.observacion = p.observacion;
191
+ this.idCentroMedico = p.id_cenmedss,
192
+ this.idTipoPersonal = p.id_tipopersonal,
193
+ this.codigoComponente = p.codcom;
194
+ this.denominacionComponente = p.dencom;
195
+ this.codigoRango = p.codran;
196
+ this.denominacionRango = p.denran;
197
+ this.codigoCentroMedico = p.codcenmedss;
198
+ this.denominacionCentroMedico = p.dencenmedss;
199
+ this.codigoTipoPersonal = p.codtipper;
200
+ this.denominacionTipoPersonal = p.dentipper;
201
+ this.codigoCausaRetiro = p.dencau;
202
+ this.denominacionCausaRetiro = p.codcau;
203
+ this.idProveedorBeneficiario = parseInt(p.id_proveedorbeneficiario);
204
+ this.idSindicato = parseInt(p.id_sindicato);
205
+ this.codigoSindicato = p.codsin;
206
+ this.denominacionSindicato = p.densin;
207
+ this.estatusPersonal == '0' ? this.denominacionEstatus = 'PRE-INGRESO' :
208
+ this.estatusPersonal == '1' ? this.denominacionEstatus = 'ACTIVO' :
209
+ this.estatusPersonal == '2' ? this.denominacionEstatus = 'NINGUNO' :
210
+ this.estatusPersonal == '3' ? this.denominacionEstatus = 'EGRESADO' :
211
+ this.estatusPersonal == '4' ? this.denominacionEstatus = 'REMOCIÓN' :
212
+ this.estatusPersonal == '5' ? this.denominacionEstatus = 'RETIRO' :
213
+ this.estatusPersonal == '6' ? this.denominacionEstatus = 'DESTITUCIÓN' :
214
+ this.estatusPersonal == '7' ? this.denominacionEstatus = 'LIQUIDACIÓN' : '';
215
+ this.conapdis = p.conapdis == '1' ? true : false;
216
+ this.idSindicato = parseInt(p.id_sindicato);
217
+ this.codigoSindicato = p.codsin;
218
+ this.denominacionSindicato = p.densin;
219
+ this.nombrePais = p.despai;
220
+ this.nombreEstado = p.desest;
221
+ this.nombreMunicipio = p.desmun;
222
+ this.nombreParroquia = p.despar;
223
+ this.nombreEstadoNacimiento = p.desest_nac;
224
+ this.nombrePaisNacimiento = p.despai_nac;
225
+ this.codigoProfesion = p.codpro;
226
+ this.denominacionProfesion = p.denpro;
227
+ this.montoPension = +p.monpen;
228
+ this.idPlanHorario = +p.id_planhor;
229
+ this.idHora = +p.id_hora;
230
+ if (this.idPlanHorario > 0) {
231
+ this.codigoPlanHorario = p.codplanhor;
232
+ this.descripcionPlanHorario = p.denplanhor;
233
+ }
234
+ else if (this.idHora > 0) {
235
+ this.descripcionHorario = p.horini + '-' + p.horfin;
236
+ }
237
+ }
238
+ else {
239
+ this.isNew = true;
240
+ }
241
+ }
242
+ dataInterface() {
243
+ return {
244
+ id_empresa: +this.idEmpresa,
245
+ id_personal: +this.idPersonal,
246
+ codper: this.codigoPersonal,
247
+ cedper: this.cedulaPersonal,
248
+ rifper: this.rifPersonal,
249
+ nomper: this.nombrePersonal,
250
+ apeper: this.apellidoPersonal,
251
+ fecnacper: this.fechaNacimientoPersonal,
252
+ codpainac: this.codigoPaisNacimiento,
253
+ codestnac: this.codigoEstadoNacimiento,
254
+ nacper: this.nacionalidadPersonal,
255
+ estcivper: this.estadoCivilPersonal,
256
+ telhabper: this.telefonoHabitacionPersonal,
257
+ telmovper: this.telefonoMovilPersobal,
258
+ coreleper: this.correoElectronicoPersonal,
259
+ dirper: this.direccionPersonal,
260
+ codpai: this.codigoPais,
261
+ codest: this.codigoEstado,
262
+ codmun: this.codigoMunicipio,
263
+ codpar: this.codigoParroquia,
264
+ sexper: this.sexoPersonal,
265
+ numhijper: +this.numeroHijo,
266
+ contra: +this.conyugueTrabaja,
267
+ cedbenper: this.cedulaBeneficiarioPersonal,
268
+ estatura: this.estatura,
269
+ peso: this.peso,
270
+ tallcam: this.tallaCamisa,
271
+ tallpan: this.tallaPantalon,
272
+ tallzap: this.tallaZapato,
273
+ id_profesion: this.idProfesion,
274
+ nivacaper: this.nivelAcademicoPersonal,
275
+ id_componente: +this.idComponente,
276
+ id_rango: +this.idRango,
277
+ fotper: this.fotoPersonal,
278
+ obsper: this.observacionPersonal,
279
+ estper: this.estatusPersonal,
280
+ id_claper: +this.idClasificacionPersonal,
281
+ turper: this.turnoPersonal,
282
+ horper: this.horarioPersonal,
283
+ hcmper: this.estatusHCMPersonal,
284
+ tipsanper: this.tipoSangrePersonal,
285
+ numexpper: this.numeroExpedientePersonal,
286
+ caroriper: this.cargoOriginalPersonal,
287
+ tipvivper: this.tipoViviendaPersonal,
288
+ tenvivper: this.tenenciaViviendaPersonal,
289
+ monpagvivper: this.montoPagadoViviendaPersonal,
290
+ estcajaho: this.estatusCajaAhorro,
291
+ cuecajahoper: this.cuentaCajaAhorroPersonal,
292
+ porcajaho: this.porcentajeCajaAhorro,
293
+ cuelphper: this.cuetaLeyPoliticaHabitacionaPersonal,
294
+ cuefidper: this.cuentaFideicomiso,
295
+ estsindicato: this.estatusSindicato,
296
+ fecingadmpubper: this.fechaIngresoAdministracionPublica,
297
+ anoservprefijo: this.anoServicioPrevioFijoAP,
298
+ anoservprecont: this.anoServicioPrevioContratadoAP,
299
+ anoperobr: this.anoPersonalObrero,
300
+ anoservpreper: this.anoServicioPrevioPersonal,
301
+ messervpreper: this.mesesServicioPrevioPersonal,
302
+ diaservpreper: this.diasServicioPrevioPersonal,
303
+ fecingper: this.fechaIngerosPersonal,
304
+ fecreingper: this.fechaReingresoPersonal,
305
+ fecjubper: this.fechajubilacionPersonal,
306
+ fecegrper: this.fechaEgresoPersonal,
307
+ cauegrper: this.causaEgresoPersonal,
308
+ obsegrper: this.observacionEgresoPersonal,
309
+ preaviso: this.preaviso,
310
+ feclossfan: this.fechaLOSFAN,
311
+ situacion: this.situacion,
312
+ fecsitu: this.fechaSituacion,
313
+ id_causales: +this.idCausales,
314
+ fecregsis: this.fechaRegistroSistema,
315
+ codusu: this.codidoUsuario,
316
+ observacion: this.observacion,
317
+ id_cenmedss: +this.idCentroMedico,
318
+ id_tipopersonal: +this.idTipoPersonal,
319
+ codcom: this.codigoComponente,
320
+ dencom: this.denominacionComponente,
321
+ codran: this.codigoRango,
322
+ denran: this.denominacionRango,
323
+ codcenmedss: this.codigoCentroMedico,
324
+ dencenmedss: this.denominacionCentroMedico,
325
+ codtipper: this.codigoTipoPersonal,
326
+ dentipper: this.denominacionTipoPersonal,
327
+ codcau: this.codigoCausaRetiro,
328
+ dencau: this.denominacionCausaRetiro,
329
+ id_proveedorbeneficiario: this.idProveedorBeneficiario.toString(),
330
+ id_sindicato: this.idSindicato.toString(),
331
+ codsin: this.codigoSindicato,
332
+ densin: this.denominacionSindicato,
333
+ conapdis: this.conapdis ? '1' : '0',
334
+ despai: this.nombrePais,
335
+ desest: this.nombreEstado,
336
+ desmun: this.nombreMunicipio,
337
+ despar: this.nombreParroquia,
338
+ desest_nac: this.nombreEstadoNacimiento,
339
+ despai_nac: this.nombrePaisNacimiento,
340
+ id_planhor: this.idPlanHorario.toString(),
341
+ id_hora: this.idHora.toString(),
342
+ id_puetra: this.idPuestoTrabajo.toString(),
343
+ };
344
+ }
345
+ }
346
+ export class MCambioEstatusPersonal extends MBasicModel {
347
+ constructor(e = null) {
348
+ super();
349
+ this.idPersonal = 0;
350
+ this.codigoPersonal = '';
351
+ this.estatusActual = '2';
352
+ this.estatusNuevo = '2';
353
+ this.fechaEgreso = '';
354
+ this.causaEgreso = '';
355
+ this.preaviso = '1';
356
+ this.idCausales = 0;
357
+ this.observacion = '';
358
+ this.fechaReingreso = '1900-01-01';
359
+ if (e) {
360
+ this.idPersonal = e.idPersonal;
361
+ this.codigoPersonal = e.codigoPersonal;
362
+ this.estatusActual = e.estatusActual;
363
+ this.estatusNuevo = e.estatusNuevo;
364
+ this.fechaEgreso = e.fechaEgreso;
365
+ this.causaEgreso = e.causaEgreso;
366
+ this.preaviso = e.preaviso;
367
+ this.idCausales = e.idCausales;
368
+ this.observacion = e.observacion;
369
+ this.fechaReingreso = e.fechaReingreso;
370
+ }
371
+ }
372
+ dataInterface() {
373
+ return {
374
+ idPersonal: this.idPersonal,
375
+ codigoPersonal: this.codigoPersonal,
376
+ estatusActual: this.estatusActual,
377
+ estatusNuevo: this.estatusNuevo,
378
+ fechaEgreso: this.fechaEgreso,
379
+ causaEgreso: this.causaEgreso,
380
+ preaviso: this.preaviso,
381
+ idCausales: this.idCausales,
382
+ observacion: this.observacion,
383
+ fechaReingreso: this.fechaReingreso,
384
+ };
385
+ }
386
+ }
387
+ export class MPersonalCuentaBanco extends MBasicModel {
388
+ constructor(e) {
389
+ super();
390
+ this.idEmpresa = 0;
391
+ this.idPersonal = 0;
392
+ this.idCuentaBancoPersonal = -1;
393
+ this.codigoCuentaBancoPersonal = '';
394
+ this.denominacionCuentaBancoPersonal = '';
395
+ this.idBanco = 0;
396
+ this.idTipoCuentaBanco = 0;
397
+ this.cuentaBancoPersonal = '';
398
+ this.estatusCuentaBanco = true;
399
+ this.tipoCuentaPrincipal = false;
400
+ this.codigoBanco = '';
401
+ this.cuentaReducida = '';
402
+ this.nombreBanco = '';
403
+ this.nombreTipoCuentaBanco = '';
404
+ if (e) {
405
+ this.idEmpresa = parseInt(e.id_empresa);
406
+ this.idPersonal = parseInt(e.id_personal);
407
+ this.idCuentaBancoPersonal = parseInt(e.id_ctabanper);
408
+ this.codigoCuentaBancoPersonal = e.codctabanper;
409
+ this.denominacionCuentaBancoPersonal = e.denctabanper;
410
+ this.idBanco = parseInt(e.id_banco);
411
+ this.idTipoCuentaBanco = parseInt(e.id_tipocta);
412
+ this.cuentaBancoPersonal = e.ctabanper;
413
+ this.estatusCuentaBanco = e.estctabco == '1' ? true : false;
414
+ this.tipoCuentaPrincipal = e.tipctapri == '1' ? true : false;
415
+ this.codigoBanco = this.cuentaBancoPersonal.substring(0, 4);
416
+ this.cuentaReducida = this.cuentaBancoPersonal.slice(4);
417
+ this.nombreBanco = e.nomban;
418
+ this.nombreTipoCuentaBanco = e.nomtipcta;
419
+ }
420
+ else {
421
+ this.isNew = true;
422
+ }
423
+ }
424
+ dataInterface() {
425
+ return {
426
+ id_empresa: this.idEmpresa.toString(),
427
+ id_personal: this.idPersonal.toString(),
428
+ id_ctabanper: this.idCuentaBancoPersonal.toString(),
429
+ codctabanper: this.codigoCuentaBancoPersonal,
430
+ denctabanper: this.denominacionCuentaBancoPersonal,
431
+ id_banco: this.idBanco.toString(),
432
+ id_tipocta: this.idTipoCuentaBanco.toString(),
433
+ ctabanper: this.cuentaBancoPersonal,
434
+ estctabco: this.estatusCuentaBanco ? '1' : '0',
435
+ tipctapri: this.tipoCuentaPrincipal ? '1' : '0',
436
+ };
437
+ }
438
+ }
439
+ export class MEstudiosRealizados {
440
+ constructor(e = null) {
441
+ this.idEmpresa = 0;
442
+ this.idPersonal = 0;
443
+ this.idEstudio = 0;
444
+ this.codigoEstudioRealizado = '';
445
+ this.tipoEstudioRealizado = '1';
446
+ this.denominacionEstudioRealizado = '1';
447
+ this.institutoEstudioRealizado = '';
448
+ this.descripcionEstudioRealizado = '';
449
+ this.tituloEstudioRealizado = '';
450
+ this.calificacionEstudioRealizado = 0;
451
+ this.escalaValores = '';
452
+ this.fechaInicioEstudioRealizado = '1900-01-01';
453
+ this.fechaFinEstudioRealizado = '1900-01-01';
454
+ this.fechaGradoEstudioRealizado = '1900-01-01';
455
+ this.aprobacionEstudioRealizado = '1';
456
+ this.anoAprobacionEstudioRealizado = 0;
457
+ this.horasEstudioRealizado = 0;
458
+ this.TipoEstudio = Estudios;
459
+ this.Aprobado = EstatusEstudio;
460
+ if (e) {
461
+ this.idEmpresa = parseInt(e.id_empresa);
462
+ this.idPersonal = parseInt(e.id_personal);
463
+ this.idEstudio = parseInt(e.id_estudio);
464
+ this.codigoEstudioRealizado = e.codestrea;
465
+ this.tipoEstudioRealizado = e.tipestrea;
466
+ this.institutoEstudioRealizado = e.insestrea;
467
+ this.descripcionEstudioRealizado = e.desestrea;
468
+ this.tituloEstudioRealizado = e.titestrea;
469
+ this.calificacionEstudioRealizado = +e.calestrea;
470
+ this.escalaValores = e.escval;
471
+ this.fechaInicioEstudioRealizado = e.fecinireaest;
472
+ this.fechaFinEstudioRealizado = e.fecfinestrea;
473
+ this.fechaGradoEstudioRealizado = e.fecgraestrea;
474
+ this.aprobacionEstudioRealizado = e.aprestrea;
475
+ this.anoAprobacionEstudioRealizado = parseInt(e.anoaprestrea);
476
+ this.horasEstudioRealizado = parseInt(e.horestrea);
477
+ this.denominacionEstudioRealizado = this.TipoEstudio.find(e => e.value == this.tipoEstudioRealizado).denominacion;
478
+ this.denominacionAprobacionEstudioRealizado = this.Aprobado.find(e => e.value == this.aprobacionEstudioRealizado).denominacion;
479
+ }
480
+ }
481
+ dataInterface() {
482
+ return {
483
+ id_empresa: this.idEmpresa.toString(),
484
+ id_personal: this.idPersonal.toString(),
485
+ id_estudio: this.idEstudio.toString(),
486
+ codestrea: this.codigoEstudioRealizado,
487
+ tipestrea: this.tipoEstudioRealizado,
488
+ insestrea: this.institutoEstudioRealizado,
489
+ desestrea: this.descripcionEstudioRealizado,
490
+ titestrea: this.tituloEstudioRealizado,
491
+ calestrea: this.calificacionEstudioRealizado,
492
+ escval: this.escalaValores,
493
+ fecinireaest: this.fechaInicioEstudioRealizado,
494
+ fecfinestrea: this.fechaFinEstudioRealizado,
495
+ fecgraestrea: this.fechaGradoEstudioRealizado,
496
+ aprestrea: this.aprobacionEstudioRealizado,
497
+ anoaprestrea: this.anoAprobacionEstudioRealizado.toString(),
498
+ horestrea: this.horasEstudioRealizado.toString(),
499
+ };
500
+ }
501
+ }
502
+ export class MPrestacionesAntiguedad extends MBasicModel {
503
+ constructor(e = null) {
504
+ super();
505
+ this.idEmpresa = 0;
506
+ this.idPersonal = 0;
507
+ this.idFideicomiso = 0;
508
+ this.anoCurPeriodo = 0;
509
+ this.mesCurPeriodo = 0;
510
+ this.sueldoIntegralPersonal = 0;
511
+ this.bonoExtraPersonal = 0;
512
+ this.bonoVacacionesPersonal = 0;
513
+ this.bonoFinAnnoPersonal = 0;
514
+ this.aportePersonal = 0;
515
+ this.diaFideicomiso = 0;
516
+ this.diaAdicional = 0;
517
+ this.metodoPresatciones = '';
518
+ this.metodoDiasAdicionales = '';
519
+ this.bonoVacacionalDiasAdicionalesPersonal = 0;
520
+ this.bonoFinAnnoDiasAdicionalesPersonal = 0;
521
+ this.sueldoIntegralDiasAdicionalesPersonal = 0;
522
+ this.aportePrestacionesPersonal = 0;
523
+ this.aporteAdicionalPersonal = 0;
524
+ this.codigoUsuario = '';
525
+ this.idDtFideicomisoPeriodo = 0;
526
+ if (e) {
527
+ this.idEmpresa = parseInt(e.id_empresa);
528
+ this.idPersonal = parseInt(e.id_personal);
529
+ this.idFideicomiso = parseInt(e.id_fideicomiso);
530
+ this.anoCurPeriodo = parseInt(e.anocurper);
531
+ this.mesCurPeriodo = parseInt(e.mescurper);
532
+ this.sueldoIntegralPersonal = +e.sueintper;
533
+ this.bonoExtraPersonal = +e.bonextper;
534
+ this.bonoVacacionesPersonal = +e.bonvacper;
535
+ this.bonoFinAnnoPersonal = +e.bonfinper;
536
+ this.aportePersonal = +e.apoper;
537
+ this.diaFideicomiso = +e.diafid;
538
+ this.diaAdicional = +e.diaadi;
539
+ this.metodoPresatciones = e.metodopre;
540
+ this.metodoDiasAdicionales = e.metodoadi;
541
+ this.bonoVacacionalDiasAdicionalesPersonal = +e.bonvacadiper;
542
+ this.bonoFinAnnoDiasAdicionalesPersonal = +e.bonfinadiper;
543
+ this.sueldoIntegralDiasAdicionalesPersonal = +e.sueintadiper;
544
+ this.aportePrestacionesPersonal = +e.apopreper;
545
+ this.aporteAdicionalPersonal = +e.apoadiper;
546
+ this.codigoUsuario = e.codusu;
547
+ this.idDtFideicomisoPeriodo = parseInt(e.id_dt_fideiperiodo);
548
+ }
549
+ else {
550
+ this.isNew = true;
551
+ }
552
+ }
553
+ dataInterface() {
554
+ return {
555
+ id_empresa: this.idEmpresa.toString(),
556
+ id_personal: this.idPersonal.toString(),
557
+ id_fideicomiso: this.idFideicomiso.toString(),
558
+ anocurper: this.anoCurPeriodo.toString(),
559
+ mescurper: this.mesCurPeriodo.toString(),
560
+ sueintper: this.sueldoIntegralPersonal,
561
+ bonextper: this.bonoExtraPersonal,
562
+ bonvacper: this.bonoVacacionesPersonal,
563
+ bonfinper: this.bonoFinAnnoPersonal,
564
+ apoper: this.aportePersonal,
565
+ diafid: this.diaFideicomiso,
566
+ diaadi: this.diaAdicional,
567
+ metodopre: this.metodoPresatciones,
568
+ metodoadi: this.metodoDiasAdicionales,
569
+ bonvacadiper: this.bonoVacacionalDiasAdicionalesPersonal,
570
+ bonfinadiper: this.bonoFinAnnoDiasAdicionalesPersonal,
571
+ sueintadiper: this.sueldoIntegralDiasAdicionalesPersonal,
572
+ apopreper: this.aportePrestacionesPersonal,
573
+ apoadiper: this.aporteAdicionalPersonal,
574
+ codusu: this.codigoUsuario,
575
+ id_dt_fideiperiodo: this.idDtFideicomisoPeriodo.toString(),
576
+ };
577
+ }
578
+ }
579
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTVBlcnNvbmFsLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L0FwcFNlcnYvd3d3L3NpZ2VzcHYzKGdpdCkvc2lnZXNwLWVzdGFibGUvc2lnZXNwX2NvcmUvcHJvamVjdHMvc2lnZXNwL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9jb3JlL21vZGVscy9TTk8vTVBlcnNvbmFsLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE1BQU0sT0FBTyxTQUFVLFNBQVEsV0FBVztJQWdIdEMsWUFBYSxJQUFZLElBQUk7UUFDekIsS0FBSyxFQUFFLENBQUE7UUFoSEosY0FBUyxHQUFTLENBQUMsQ0FBQztRQUNwQixlQUFVLEdBQVMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQVMsRUFBRSxDQUFDLENBQUEsS0FBSztRQUMvQixtQkFBYyxHQUFVLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDakMsZ0JBQVcsR0FBUyxFQUFFLENBQUMsQ0FBQSxLQUFLO1FBQzVCLG1CQUFjLEdBQVMsRUFBRSxDQUFDLENBQUEsS0FBSztRQUMvQixxQkFBZ0IsR0FBUyxFQUFFLENBQUM7UUFDNUIsNEJBQXVCLEdBQVMsWUFBWSxDQUFDO1FBQzdDLHlCQUFvQixHQUFTLEVBQUUsQ0FBQztRQUNoQywyQkFBc0IsR0FBUyxFQUFFLENBQUM7UUFDbEMseUJBQW9CLEdBQVEsRUFBRSxDQUFDO1FBQy9CLHdCQUFtQixHQUFRLEdBQUcsQ0FBQztRQUMvQiwrQkFBMEIsR0FBUSxFQUFFLENBQUMsQ0FBQyxJQUFJO1FBQzFDLDBCQUFxQixHQUFRLEVBQUUsQ0FBQyxDQUFRLElBQUk7UUFDNUMsOEJBQXlCLEdBQVEsRUFBRSxDQUFDLENBQUMsSUFBSTtRQUN6QyxzQkFBaUIsR0FBUSxFQUFFLENBQUMsQ0FBQyxLQUFLO1FB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QyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsUUFBUSxDQUFBLENBQUM7b0JBQzdELElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsU0FBUyxDQUFBLENBQUM7d0JBQzlELElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsVUFBVSxDQUFBLENBQUM7NEJBQy9ELElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsVUFBVSxDQUFBLENBQUM7Z0NBQy9ELElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsUUFBUSxDQUFBLENBQUM7b0NBQzdELElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsYUFBYSxDQUFBLENBQUM7d0NBQ2xFLElBQUksQ0FBQyxlQUFlLElBQUUsR0FBRyxDQUFBLENBQUMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEdBQUMsYUFBYSxDQUFBLENBQUMsQ0FBQSxFQUFFLENBQUM7WUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBQyxDQUFDLENBQUMsUUFBUSxJQUFFLEdBQUcsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFBLENBQUMsQ0FBQSxLQUFLLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUM5QixJQUFJLENBQUMscUJBQXFCLEdBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztZQUNwQyxJ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QyxXQUFXLEVBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdEMsY0FBYyxFQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFO1lBQzVDLFNBQVMsRUFBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRTtZQUN2QyxTQUFTLEVBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUU7WUFDdkMsU0FBUyxFQUFDLElBQUksQ0FBQyxzQkFBc0I7WUFDckMsU0FBUyxFQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDaEMsU0FBUyxFQUFDLElBQUksQ0FBQyxzQkFBc0I7WUFDckMsU0FBUyxFQUFDLElBQUksQ0FBQyxtQkFBbUI7WUFDbEMsTUFBTSxFQUFDLElBQUksQ0FBQyxjQUFjO1lBQzFCLE1BQU0sRUFBQyxJQUFJLENBQUMsY0FBYztZQUMxQixNQUFNLEVBQUMsSUFBSSxDQUFDLFlBQVk7WUFDeEIsU0FBUyxFQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFDakMsU0FBUyxFQUFDLElBQUksQ0FBQyxxQkFBcUI7WUFDcEMsWUFBWSxFQUFDLElBQUksQ0FBQyxxQ0FBcUM7WUFDdkQsWUFBWSxFQUFDLElBQUksQ0FBQyxrQ0FBa0M7WUFDcEQsWUFBWSxFQUFDLElBQUksQ0FBQyxxQ0FBcUM7WUFDdkQsU0FBUyxFQUFDLElBQUksQ0FBQywwQkFBMEI7WUFDekMsU0FBUyxFQUFDLElBQUksQ0FBQyx1QkFBdUI7WUFDdEMsTUFBTSxFQUFDLElBQUksQ0FBQyxhQUFhO1lBQ3pCLGtCQUFrQixFQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUU7U0FDNUQsQ0FBQTtJQUNMLENBQUM7Q0FHSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVzdGF0dXNFc3R1ZGlvLCBFc3R1ZGlvcyB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvQ29uc3RhbnRlcyc7XHJcbmltcG9ydCB7IElDYW1iaW9Fc3RhdHVzUGVyc29uYWwsIElFc3R1ZGlvUmVhbGl6YWRvLCBJUGVyc29uYWwsIElQZXJzb25hbEN1ZW50YXNCYW5jYXJpYXMsIElQcmVzdGFjaW9uZXNBbnRpZ3VlZGFkIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9SZWN1cnNvc0h1bWFub3MnO1xyXG5pbXBvcnQgeyBNQmFzaWNNb2RlbCB9IGZyb20gJy4uL2Jhc2ljLW1vZGVsLm1vZGVsJztcclxuXHJcbmV4cG9ydCBjbGFzcyBNUGVyc29uYWwgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRQZXJzb25hbDogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNvZGlnb1BlcnNvbmFsOiBzdHJpbmc9Jyc7Ly8xMCBcclxuICAgIHB1YmxpYyBjZWR1bGFQZXJzb25hbDogc3RyaW5nPSAnJzsgLy8xMCBcclxuICAgIHB1YmxpYyByaWZQZXJzb25hbDogc3RyaW5nPScnOy8vMTUgXHJcbiAgICBwdWJsaWMgbm9tYnJlUGVyc29uYWw6IHN0cmluZz0nJzsvLzYwIFxyXG4gICAgcHVibGljIGFwZWxsaWRvUGVyc29uYWw6IHN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFOYWNpbWllbnRvUGVyc29uYWw6IHN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGNvZGlnb1BhaXNOYWNpbWllbnRvOnN0cmluZyA9Jyc7ICAgICBcclxuICAgIHB1YmxpYyBjb2RpZ29Fc3RhZG9OYWNpbWllbnRvOnN0cmluZyA9Jyc7ICBcclxuICAgIHB1YmxpYyBuYWNpb25hbGlkYWRQZXJzb25hbDpzdHJpbmc9Jyc7ICAgXHJcbiAgICBwdWJsaWMgZXN0YWRvQ2l2aWxQZXJzb25hbDpzdHJpbmc9J1MnO1xyXG4gICAgcHVibGljIHRlbGVmb25vSGFiaXRhY2lvblBlcnNvbmFsOnN0cmluZz0nJzsgLy8xNVxyXG4gICAgcHVibGljIHRlbGVmb25vTW92aWxQZXJzb2JhbDpzdHJpbmc9Jyc7ICAgICAgICAvLzE1XHJcbiAgICBwdWJsaWMgY29ycmVvRWxlY3Ryb25pY29QZXJzb25hbDpzdHJpbmc9Jyc7IC8vNjBcclxuICAgIHB1YmxpYyBkaXJlY2Npb25QZXJzb25hbDpzdHJpbmc9Jyc7IC8vMjU1XHJcbiAgICBwdWJsaWMgY29kaWdvUGFpczpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGNvZGlnb0VzdGFkbzpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGNvZGlnb011bmljaXBpbzpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGNvZGlnb1BhcnJvcXVpYTpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgc2V4b1BlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgbnVtZXJvSGlqbzpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29ueXVndWVUcmFiYWphOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBjZWR1bGFCZW5lZmljaWFyaW9QZXJzb25hbDpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGVzdGF0dXJhOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgcGVzbzogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIHRhbGxhQ2FtaXNhOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgdGFsbGFQYW50YWxvbjpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIHRhbGxhWmFwYXRvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgaWRQcm9mZXNpb246bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIG5pdmVsQWNhZGVtaWNvUGVyc29uYWw6c3RyaW5nPScnOyAvLzFcclxuICAgIHB1YmxpYyBpZENvbXBvbmVudGU6IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZFJhbmdvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgZm90b1BlcnNvbmFsOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb25QZXJzb25hbDpzdHJpbmc9Jyc7IFxyXG4gICAgcHVibGljIGVzdGF0dXNQZXJzb25hbDpzdHJpbmc9JzEnOyBcclxuICAgIHB1YmxpYyBpZENsYXNpZmljYWNpb25QZXJzb25hbDogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNlbnRyb01lZGljb0lWVlM6c3RyaW5nPScnOyAvLzE1NVxyXG4gICAgcHVibGljIHR1cm5vUGVyc29uYWw6c3RyaW5nPScnOyAvLzFcclxuICAgIHB1YmxpYyBob3JhcmlvUGVyc29uYWw6c3RyaW5nPScnOyAvLzEwXHJcbiAgICBwdWJsaWMgZXN0YXR1c0hDTVBlcnNvbmFsOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyB0aXBvU2FuZ3JlUGVyc29uYWw6c3RyaW5nPScnOy8vMTBcclxuICAgIHB1YmxpYyBudW1lcm9FeHBlZGllbnRlUGVyc29uYWw6c3RyaW5nPScnOyAvLzIwXHJcbiAgICBwdWJsaWMgY2FyZ29PcmlnaW5hbFBlcnNvbmFsOnN0cmluZz0nJzsgLy8xMDBcclxuICAgIHB1YmxpYyB0aXBvVml2aWVuZGFQZXJzb25hbDpudW1iZXI9MDsgLy9vam9cclxuICAgIHB1YmxpYyB0ZW5lbmNpYVZpdmllbmRhUGVyc29uYWw6c3RyaW5nPScnOyAvLzQwL29qb1xyXG4gICAgcHVibGljIG1vbnRvUGFnYWRvVml2aWVuZGFQZXJzb25hbDpudW1iZXIgPTA7IFxyXG4gICAgcHVibGljIGVzdGF0dXNDYWphQWhvcnJvOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBjdWVudGFDYWphQWhvcnJvUGVyc29uYWw6c3RyaW5nPScnOyAvLzI1XHJcbiAgICBwdWJsaWMgcG9yY2VudGFqZUNhamFBaG9ycm86bnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGN1ZXRhTGV5UG9saXRpY2FIYWJpdGFjaW9uYVBlcnNvbmFsOnN0cmluZz0nJzsgLy8yNVxyXG4gICAgcHVibGljIGN1ZW50YUZpZGVpY29taXNvOnN0cmluZz0nJzsgLy8yNVxyXG4gICAgcHVibGljIGVzdGF0dXNTaW5kaWNhdG86IG51bWJlcj0wO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzb0FkbWluaXN0cmFjaW9uUHVibGljYTpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBhbm9TZXJ2aWNpb1ByZXZpb0Zpam9BUDpudW1iZXI9MDsgLy9pbnRlZ2VyXHJcbiAgICBwdWJsaWMgYW5vU2VydmljaW9QcmV2aW9Db250cmF0YWRvQVA6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGFub1BlcnNvbmFsT2JyZXJvOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBhbm9TZXJ2aWNpb1ByZXZpb1BlcnNvbmFsOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBtZXNlc1NlcnZpY2lvUHJldmlvUGVyc29uYWw6bnVtYmVyPTA7IC8vaW50ZWdlclxyXG4gICAgcHVibGljIGRpYXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsOm51bWJlcj0wOyAvL2ludGVnZXJcclxuICAgIHB1YmxpYyBmZWNoYUluZ2Vyb3NQZXJzb25hbDpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBmZWNoYVJlaW5ncmVzb1BlcnNvbmFsOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhanViaWxhY2lvblBlcnNvbmFsOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhRWdyZXNvUGVyc29uYWw6c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgY2F1c2FFZ3Jlc29QZXJzb25hbDpzdHJpbmc9J04nOyAvLzFcclxuICAgIHB1YmxpYyBvYnNlcnZhY2lvbkVncmVzb1BlcnNvbmFsOnN0cmluZz0nJzsgLy8yNTRcclxuICAgIHB1YmxpYyBwcmVhdmlzbzpzdHJpbmc9JzAnOyAvLzFcclxuICAgIHB1YmxpYyBmZWNoYUxPU0ZBTjpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBzaXR1YWNpb246c3RyaW5nPSdOJzsgLy8xXHJcbiAgICBwdWJsaWMgZmVjaGFTaXR1YWNpb246c3RyaW5nPScxOTAwLTAxLTAxJzsgXHJcbiAgICBwdWJsaWMgaWRDYXVzYWxlczogbnVtYmVyID0wOyBcclxuICAgIHB1YmxpYyBmZWNoYVJlZ2lzdHJvU2lzdGVtYTpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBjb2RpZG9Vc3VhcmlvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb246IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgaWRDZW50cm9NZWRpY286IG51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZFRpcG9QZXJzb25hbDpudW1iZXI9MDsgICAgICAgXHJcbiAgICBwdWJsaWMgY29kaWdvQ29tcG9uZW50ZTogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25Db21wb25lbnRlOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1JhbmdvOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblJhbmdvOiBzdHJpbmcgPScnOyBcclxuICAgIHB1YmxpYyBjb2RpZ29DZW50cm9NZWRpY286IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ2VudHJvTWVkaWNvOiBzdHJpbmcgPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1RpcG9QZXJzb25hbDogc3RyaW5nID0nJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25UaXBvUGVyc29uYWw6IHN0cmluZyA9Jyc7XHJcbiAgICBwdWJsaWMgY29kaWdvQ2F1c2FSZXRpcm86c3RyaW5nPScnOyAgXHJcbiAgICBwdWJsaWMgZGVub21pbmFjaW9uQ2F1c2FSZXRpcm86IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZFByb3ZlZWRvckJlbmVmaWNpYXJpbzpudW1iZXI9MDsgICBcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25Fc3RhdHVzOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb25hcGRpczpib29sZWFuPWZhbHNlO1xyXG4gICAgcHVibGljIGlkU2luZGljYXRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGNvZGlnb1NpbmRpY2F0bzpzdHJpbmc9JzAwMDAwJztcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25TaW5kaWNhdG86c3RyaW5nPScnOyAgXHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpczpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlRXN0YWRvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVNdW5pY2lwaW86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZVBhcnJvcXVpYTpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpc05hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUVzdGFkb05hY2ltaWVudG86c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvZGlnb1Byb2Zlc2lvbjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvblByb2Zlc2lvbjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG1vbnRvUGVuc2lvbjpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBsYW5Ib3JhcmlvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkSG9yYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvblBsYW5Ib3JhcmlvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29QbGFuSG9yYXJpbzpzdHJpbmc9Jyc7ICBcclxuICAgIHB1YmxpYyBpZFB1ZXN0b1RyYWJham86bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgZGVzY3JpcGNpb25QdWVzdG9UcmFiYWpvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29QdWVzdG9UcmFiYWpvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvbkhvcmFyaW86c3RyaW5nPScnOyAgICBcclxuICAgXHJcblxyXG4gICAgY29uc3RydWN0b3IgKHA6SVBlcnNvbmFsPW51bGwpe1xyXG4gICAgICAgIHN1cGVyKClcclxuICAgICAgICBpZiAocCl7XHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPSArcC5pZF9lbXByZXNhO1xyXG4gICAgICAgICAgICB0aGlzLmlkUGVyc29uYWw9ICtwLmlkX3BlcnNvbmFsO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1BlcnNvbmFsPSBwLmNvZHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jZWR1bGFQZXJzb25hbD0gcC5jZWRwZXI7XHJcbiAgICAgICAgICAgIHRoaXMucmlmUGVyc29uYWw9IHAucmlmcGVyO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZVBlcnNvbmFsPSBwLm5vbXBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuYXBlbGxpZG9QZXJzb25hbD0gcC5hcGVwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFOYWNpbWllbnRvUGVyc29uYWw9IHAuZmVjbmFjcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1BhaXNOYWNpbWllbnRvPSBwLmNvZHBhaW5hYztcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Fc3RhZG9OYWNpbWllbnRvPSBwLmNvZGVzdG5hYzsgIFxyXG4gICAgICAgICAgICB0aGlzLm5hY2lvbmFsaWRhZFBlcnNvbmFsPSBwLm5hY3BlcjtcclxuICAgICAgICAgICAgdGhpcy5lc3RhZG9DaXZpbFBlcnNvbmFsPSBwLmVzdGNpdnBlcjtcclxuICAgICAgICAgICAgdGhpcy50ZWxlZm9ub0hhYml0YWNpb25QZXJzb25hbD0gcC50ZWxoYWJwZXI7XHJcbiAgICAgICAgICAgIHRoaXMudGVsZWZvbm9Nb3ZpbFBlcnNvYmFsPSBwLnRlbG1vdnBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb3JyZW9FbGVjdHJvbmljb1BlcnNvbmFsPSBwLmNvcmVsZXBlcjtcclxuICAgICAgICAgICAgdGhpcy5kaXJlY2Npb25QZXJzb25hbD0gcC5kaXJwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFpcz0gcC5jb2RwYWk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0YWRvPSBwLmNvZGVzdDtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29NdW5pY2lwaW89IHAuY29kbXVuO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1BhcnJvcXVpYT0gcC5jb2RwYXI7XHJcbiAgICAgICAgICAgIHRoaXMuc2V4b1BlcnNvbmFsPSBwLnNleHBlcjtcclxuICAgICAgICAgICAgdGhpcy5udW1lcm9IaWpvPStwLm51bWhpanBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuY29ueXVndWVUcmFiYWphPSArcC5jb250cmE7IFxyXG4gICAgICAgICAgICB0aGlzLmNlZHVsYUJlbmVmaWNpYXJpb1BlcnNvbmFsPSBwLmNlZGJlbnBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1cmE9K3AuZXN0YXR1cmE7XHJcbiAgICAgICAgICAgIHRoaXMucGVzbz0rcC5wZXNvO1xyXG4gICAgICAgICAgICB0aGlzLnRhbGxhQ2FtaXNhPSBwLnRhbGxjYW1cclxuICAgICAgICAgICAgdGhpcy50YWxsYVBhbnRhbG9uPXAudGFsbHBhbjsxIFxyXG4gICAgICAgICAgICB0aGlzLnRhbGxhWmFwYXRvPSBwLnRhbGx6YXA7XHJcbiAgICAgICAgICAgIHRoaXMuaWRQcm9mZXNpb249ICtwLmlkX3Byb2Zlc2lvbjsgXHJcbiAgICAgICAgICAgIHRoaXMubml2ZWxBY2FkZW1pY29QZXJzb25hbD0gcC5uaXZhY2FwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb21wb25lbnRlPStwLmlkX2NvbXBvbmVudGU7XHJcbiAgICAgICAgICAgIHRoaXMuaWRSYW5nbz0rcC5pZF9yYW5nbztcclxuICAgICAgICAgICAgdGhpcy5mb3RvUGVyc29uYWw9IHAuZm90cGVyO1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmFjaW9uUGVyc29uYWw9IHAub2JzZWdycGVyO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD0gcC5lc3RwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDbGFzaWZpY2FjaW9uUGVyc29uYWw9K3AuaWRfY2xhcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnR1cm5vUGVyc29uYWw9IHAudHVycGVyO1xyXG4gICAgICAgICAgICB0aGlzLmhvcmFyaW9QZXJzb25hbD0gcC5ob3JwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c0hDTVBlcnNvbmFsPSArcC5oY21wZXI7IFxyXG4gICAgICAgICAgICB0aGlzLnRpcG9TYW5ncmVQZXJzb25hbD0gcC50aXBzYW5wZXI7XHJcbiAgICAgICAgICAgIHRoaXMubnVtZXJvRXhwZWRpZW50ZVBlcnNvbmFsPSBwLm51bWV4cHBlcjtcclxuICAgICAgICAgICAgdGhpcy5jYXJnb09yaWdpbmFsUGVyc29uYWw9IHAuY2Fyb3JpcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRpcG9WaXZpZW5kYVBlcnNvbmFsPSArcC50aXB2aXZwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLnRlbmVuY2lhVml2aWVuZGFQZXJzb25hbD0gcC50ZW52aXZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMubW9udG9QYWdhZG9WaXZpZW5kYVBlcnNvbmFsPSArcC5tb25wYWd2aXZwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNDYWphQWhvcnJvPSArcC5lc3RjYWphaG87IFxyXG4gICAgICAgICAgICB0aGlzLmN1ZW50YUNhamFBaG9ycm9QZXJzb25hbD0gcC5jdWVjYWphaG9wZXI7XHJcbiAgICAgICAgICAgIHRoaXMucG9yY2VudGFqZUNhamFBaG9ycm89ICtwLnBvcmNhamFobzsgXHJcbiAgICAgICAgICAgIHRoaXMuY3VldGFMZXlQb2xpdGljYUhhYml0YWNpb25hUGVyc29uYWw9IHAuY3VlbHBocGVyO1xyXG4gICAgICAgICAgICB0aGlzLmN1ZW50YUZpZGVpY29taXNvPSBwLmN1ZWZpZHBlcjsxXHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1NpbmRpY2F0bz0rcC5lc3RzaW5kaWNhdG87XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFJbmdyZXNvQWRtaW5pc3RyYWNpb25QdWJsaWNhPSBwLmZlY2luZ2FkbXB1YnBlcjtcclxuICAgICAgICAgICAgdGhpcy5hbm9TZXJ2aWNpb1ByZXZpb0Zpam9BUD0gK3AuYW5vc2VydnByZWZpam87XHJcbiAgICAgICAgICAgIHRoaXMuYW5vU2VydmljaW9QcmV2aW9Db250cmF0YWRvQVA9ICtwLmFub3NlcnZwcmVjb250OyBcclxuICAgICAgICAgICAgdGhpcy5hbm9QZXJzb25hbE9icmVybz0gK3AuYW5vcGVyb2JyO1xyXG4gICAgICAgICAgICB0aGlzLmFub1NlcnZpY2lvUHJldmlvUGVyc29uYWw9ICtwLmFub3NlcnZwcmVwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLm1lc2VzU2VydmljaW9QcmV2aW9QZXJzb25hbD0gK3AubWVzc2VydnByZXBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZGlhc1NlcnZpY2lvUHJldmlvUGVyc29uYWw9ICtwLmRpYXNlcnZwcmVwZXI7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5nZXJvc1BlcnNvbmFsPSBwLmZlY2luZ3BlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZWluZ3Jlc29QZXJzb25hbD0gcC5mZWNyZWluZ3BlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFqdWJpbGFjaW9uUGVyc29uYWw9IHAuZmVjanVicGVyOyBcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUVncmVzb1BlcnNvbmFsPSBwLmZlY2VncnBlcjsgXHJcbiAgICAgICAgICAgIHRoaXMuY2F1c2FFZ3Jlc29QZXJzb25hbD0gcC5jYXVlZ3JwZXI7XHJcbiAgICAgICAgICAgIHRoaXMub2JzZXJ2YWNpb25FZ3Jlc29QZXJzb25hbD0gcC5vYnNlZ3JwZXI7XHJcbiAgICAgICAgICAgIHRoaXMucHJlYXZpc289IHAucHJlYXZpc287XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFMT1NGQU49IHAuZmVjbG9zc2ZhbjtcclxuICAgICAgICAgICAgdGhpcy5zaXR1YWNpb249IHAuc2l0dWFjaW9uO1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhU2l0dWFjaW9uPSBwLmZlY3NpdHU7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDYXVzYWxlcz0gK3AuaWRfY2F1c2FsZXM7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZWdpc3Ryb1Npc3RlbWE9IHAuZmVjcmVnc2lzO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlkb1VzdWFyaW89IHAuY29kdXN1O1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmFjaW9uID1wLm9ic2VydmFjaW9uO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ2VudHJvTWVkaWNvPSBwLmlkX2Nlbm1lZHNzLCBcclxuICAgICAgICAgICAgdGhpcy5pZFRpcG9QZXJzb25hbD0gcC5pZF90aXBvcGVyc29uYWwsXHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvQ29tcG9uZW50ZT1wLmNvZGNvbTtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25Db21wb25lbnRlPXAuZGVuY29tO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb1JhbmdvPXAuY29kcmFuO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvblJhbmdvPXAuZGVucmFuOyBcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29DZW50cm9NZWRpY289cC5jb2RjZW5tZWRzcztcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DZW50cm9NZWRpY289cC5kZW5jZW5tZWRzcztcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29UaXBvUGVyc29uYWw9cC5jb2R0aXBwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uVGlwb1BlcnNvbmFsPXAuZGVudGlwcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NhdXNhUmV0aXJvPXAuZGVuY2F1O1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvbkNhdXNhUmV0aXJvPXAuY29kY2F1O1xyXG4gICAgICAgICAgICB0aGlzLmlkUHJvdmVlZG9yQmVuZWZpY2lhcmlvPXBhcnNlSW50KHAuaWRfcHJvdmVlZG9yYmVuZWZpY2lhcmlvKTtcclxuICAgICAgICAgICAgdGhpcy5pZFNpbmRpY2F0bz1wYXJzZUludChwLmlkX3NpbmRpY2F0byk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvU2luZGljYXRvPXAuY29kc2luO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvblNpbmRpY2F0bz1wLmRlbnNpbjtcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9PScwJz8gdGhpcy5kZW5vbWluYWNpb25Fc3RhdHVzPSdQUkUtSU5HUkVTTycgOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzEnPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J0FDVElWTyc6XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPT0nMic/IHRoaXMuZGVub21pbmFjaW9uRXN0YXR1cz0nTklOR1VOTyc6XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPT0nMyc/IHRoaXMuZGVub21pbmFjaW9uRXN0YXR1cz0nRUdSRVNBRE8nOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzQnPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J1JFTU9DScOTTic6XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1BlcnNvbmFsPT0nNSc/IHRoaXMuZGVub21pbmFjaW9uRXN0YXR1cz0nUkVUSVJPJzpcclxuICAgICAgICAgICAgdGhpcy5lc3RhdHVzUGVyc29uYWw9PSc2Jz8gdGhpcy5kZW5vbWluYWNpb25Fc3RhdHVzPSdERVNUSVRVQ0nDk04nOlxyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNQZXJzb25hbD09JzcnPyB0aGlzLmRlbm9taW5hY2lvbkVzdGF0dXM9J0xJUVVJREFDScOTTic6Jyc7XHJcbiAgICAgICAgICAgIHRoaXMuY29uYXBkaXM9cC5jb25hcGRpcz09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLmlkU2luZGljYXRvPSBwYXJzZUludChwLmlkX3NpbmRpY2F0byk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvU2luZGljYXRvPXAuY29kc2luO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvblNpbmRpY2F0bz1wLmRlbnNpbjtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVQYWlzPXAuZGVzcGFpO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZUVzdGFkbz1wLmRlc2VzdDtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVNdW5pY2lwaW89cC5kZXNtdW47XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUGFycm9xdWlhPXAuZGVzcGFyOyBcclxuICAgICAgICAgICAgdGhpcy5ub21icmVFc3RhZG9OYWNpbWllbnRvPXAuZGVzZXN0X25hYztcclxuICAgICAgICAgICAgdGhpcy5ub21icmVQYWlzTmFjaW1pZW50bz1wLmRlc3BhaV9uYWM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUHJvZmVzaW9uPXAuY29kcHJvO1xyXG4gICAgICAgICAgICB0aGlzLmRlbm9taW5hY2lvblByb2Zlc2lvbj1wLmRlbnBybztcclxuICAgICAgICAgICAgdGhpcy5tb250b1BlbnNpb249K3AubW9ucGVuO1xyXG4gICAgICAgICAgICB0aGlzLmlkUGxhbkhvcmFyaW89K3AuaWRfcGxhbmhvcjtcclxuICAgICAgICAgICAgdGhpcy5pZEhvcmE9K3AuaWRfaG9yYTtcclxuICAgICAgICAgICAgaWYodGhpcy5pZFBsYW5Ib3JhcmlvPjApe1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jb2RpZ29QbGFuSG9yYXJpbz1wLmNvZHBsYW5ob3I7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uUGxhbkhvcmFyaW89cC5kZW5wbGFuaG9yO1xyXG4gICAgICAgICAgICB9IGVsc2UgaWYodGhpcy5pZEhvcmE+MCl7IFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwY2lvbkhvcmFyaW89cC5ob3JpbmkrJy0nK3AuaG9yZmluO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlOyAgICBcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJUGVyc29uYWwge1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDordGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX3BlcnNvbmFswqA6K3RoaXMuaWRQZXJzb25hbCxcclxuICAgICAgICAgICAgY29kcGVywqA6dGhpcy5jb2RpZ29QZXJzb25hbCxcclxuICAgICAgICAgICAgY2VkcGVywqA6dGhpcy5jZWR1bGFQZXJzb25hbCxcclxuICAgICAgICAgICAgcmlmcGVywqA6dGhpcy5yaWZQZXJzb25hbCxcclxuICAgICAgICAgICAgbm9tcGVywqA6dGhpcy5ub21icmVQZXJzb25hbCxcclxuICAgICAgICAgICAgYXBlcGVywqA6dGhpcy5hcGVsbGlkb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBmZWNuYWNwZXLCoDp0aGlzLmZlY2hhTmFjaW1pZW50b1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RwYWluYWPCoDp0aGlzLmNvZGlnb1BhaXNOYWNpbWllbnRvLFxyXG4gICAgICAgICAgICBjb2Rlc3RuYWPCoDp0aGlzLmNvZGlnb0VzdGFkb05hY2ltaWVudG8sXHJcbiAgICAgICAgICAgIG5hY3Blcjp0aGlzLm5hY2lvbmFsaWRhZFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBlc3RjaXZwZXI6dGhpcy5lc3RhZG9DaXZpbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0ZWxoYWJwZXLCoDp0aGlzLnRlbGVmb25vSGFiaXRhY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICB0ZWxtb3ZwZXLCoDp0aGlzLnRlbGVmb25vTW92aWxQZXJzb2JhbCxcclxuICAgICAgICAgICAgY29yZWxlcGVywqA6dGhpcy5jb3JyZW9FbGVjdHJvbmljb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBkaXJwZXLCoDp0aGlzLmRpcmVjY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2RwYWnCoDp0aGlzLmNvZGlnb1BhaXMsXHJcbiAgICAgICAgICAgIGNvZGVzdMKgOnRoaXMuY29kaWdvRXN0YWRvLFxyXG4gICAgICAgICAgICBjb2RtdW7CoDp0aGlzLmNvZGlnb011bmljaXBpbyxcclxuICAgICAgICAgICAgY29kcGFyOnRoaXMuY29kaWdvUGFycm9xdWlhLFxyXG4gICAgICAgICAgICBzZXhwZXLCoDp0aGlzLnNleG9QZXJzb25hbCxcclxuICAgICAgICAgICAgbnVtaGlqcGVywqA6K3RoaXMubnVtZXJvSGlqbyxcclxuICAgICAgICAgICAgY29udHJhOit0aGlzLmNvbnl1Z3VlVHJhYmFqYSxcclxuICAgICAgICAgICAgY2VkYmVucGVyOnRoaXMuY2VkdWxhQmVuZWZpY2lhcmlvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGF0dXJhOnRoaXMuZXN0YXR1cmEsXHJcbiAgICAgICAgICAgIHBlc286dGhpcy5wZXNvLFxyXG4gICAgICAgICAgICB0YWxsY2FtOnRoaXMudGFsbGFDYW1pc2EsXHJcbiAgICAgICAgICAgIHRhbGxwYW46dGhpcy50YWxsYVBhbnRhbG9uLFxyXG4gICAgICAgICAgICB0YWxsemFwOnRoaXMudGFsbGFaYXBhdG8sXHJcbiAgICAgICAgICAgIGlkX3Byb2Zlc2lvbjp0aGlzLmlkUHJvZmVzaW9uLFxyXG4gICAgICAgICAgICBuaXZhY2FwZXI6dGhpcy5uaXZlbEFjYWRlbWljb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBpZF9jb21wb25lbnRlOit0aGlzLmlkQ29tcG9uZW50ZSxcclxuICAgICAgICAgICAgaWRfcmFuZ286K3RoaXMuaWRSYW5nbyxcclxuICAgICAgICAgICAgZm90cGVyOnRoaXMuZm90b1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBvYnNwZXI6dGhpcy5vYnNlcnZhY2lvblBlcnNvbmFsLFxyXG4gICAgICAgICAgICBlc3RwZXI6dGhpcy5lc3RhdHVzUGVyc29uYWwsICAgXHJcbiAgICAgICAgICAgIGlkX2NsYXBlcjordGhpcy5pZENsYXNpZmljYWNpb25QZXJzb25hbCwgICAgICAgIFxyXG4gICAgICAgICAgICB0dXJwZXI6dGhpcy50dXJub1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBob3JwZXI6dGhpcy5ob3JhcmlvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGhjbXBlcjp0aGlzLmVzdGF0dXNIQ01QZXJzb25hbCxcclxuICAgICAgICAgICAgdGlwc2FucGVyOnRoaXMudGlwb1NhbmdyZVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBudW1leHBwZXI6dGhpcy5udW1lcm9FeHBlZGllbnRlUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGNhcm9yaXBlcjp0aGlzLmNhcmdvT3JpZ2luYWxQZXJzb25hbCxcclxuICAgICAgICAgICAgdGlwdml2cGVyOnRoaXMudGlwb1ZpdmllbmRhUGVyc29uYWwsXHJcbiAgICAgICAgICAgIHRlbnZpdnBlcjp0aGlzLnRlbmVuY2lhVml2aWVuZGFQZXJzb25hbCxcclxuICAgICAgICAgICAgbW9ucGFndml2cGVyOnRoaXMubW9udG9QYWdhZG9WaXZpZW5kYVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBlc3RjYWphaG86dGhpcy5lc3RhdHVzQ2FqYUFob3JybyxcclxuICAgICAgICAgICAgY3VlY2FqYWhvcGVyOnRoaXMuY3VlbnRhQ2FqYUFob3Jyb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBwb3JjYWphaG86dGhpcy5wb3JjZW50YWplQ2FqYUFob3JybyxcclxuICAgICAgICAgICAgY3VlbHBocGVyOnRoaXMuY3VldGFMZXlQb2xpdGljYUhhYml0YWNpb25hUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGN1ZWZpZHBlcjp0aGlzLmN1ZW50YUZpZGVpY29taXNvLFxyXG4gICAgICAgICAgICBlc3RzaW5kaWNhdG86dGhpcy5lc3RhdHVzU2luZGljYXRvLFxyXG4gICAgICAgICAgICBmZWNpbmdhZG1wdWJwZXI6dGhpcy5mZWNoYUluZ3Jlc29BZG1pbmlzdHJhY2lvblB1YmxpY2EsXHJcbiAgICAgICAgICAgIGFub3NlcnZwcmVmaWpvOnRoaXMuYW5vU2VydmljaW9QcmV2aW9GaWpvQVAsXHJcbiAgICAgICAgICAgIGFub3NlcnZwcmVjb250OnRoaXMuYW5vU2VydmljaW9QcmV2aW9Db250cmF0YWRvQVAsXHJcbiAgICAgICAgICAgIGFub3Blcm9icjp0aGlzLmFub1BlcnNvbmFsT2JyZXJvLFxyXG4gICAgICAgICAgICBhbm9zZXJ2cHJlcGVyOnRoaXMuYW5vU2VydmljaW9QcmV2aW9QZXJzb25hbCxcclxuICAgICAgICAgICAgbWVzc2VydnByZXBlcjp0aGlzLm1lc2VzU2VydmljaW9QcmV2aW9QZXJzb25hbCxcclxuICAgICAgICAgICAgZGlhc2VydnByZXBlcjp0aGlzLmRpYXNTZXJ2aWNpb1ByZXZpb1BlcnNvbmFsLFxyXG4gICAgICAgICAgICBmZWNpbmdwZXI6dGhpcy5mZWNoYUluZ2Vyb3NQZXJzb25hbMKgLFxyXG4gICAgICAgICAgICBmZWNyZWluZ3Blcjp0aGlzLmZlY2hhUmVpbmdyZXNvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGZlY2p1YnBlcjp0aGlzLmZlY2hhanViaWxhY2lvblBlcnNvbmFswqAsXHJcbiAgICAgICAgICAgIGZlY2VncnBlcjp0aGlzLmZlY2hhRWdyZXNvUGVyc29uYWzCoCxcclxuICAgICAgICAgICAgY2F1ZWdycGVyOnRoaXMuY2F1c2FFZ3Jlc29QZXJzb25hbCxcclxuICAgICAgICAgICAgb2JzZWdycGVyOnRoaXMub2JzZXJ2YWNpb25FZ3Jlc29QZXJzb25hbCxcclxuICAgICAgICAgICAgcHJlYXZpc286dGhpcy5wcmVhdmlzbyxcclxuICAgICAgICAgICAgZmVjbG9zc2Zhbjp0aGlzLmZlY2hhTE9TRkFOwqAsXHJcbiAgICAgICAgICAgIHNpdHVhY2lvbjp0aGlzLnNpdHVhY2lvbixcclxuICAgICAgICAgICAgZmVjc2l0dTp0aGlzLmZlY2hhU2l0dWFjaW9uwqAsXHJcbiAgICAgICAgICAgIGlkX2NhdXNhbGVzOsKgK3RoaXMuaWRDYXVzYWxlcyxcclxuICAgICAgICAgICAgZmVjcmVnc2lzOnRoaXMuZmVjaGFSZWdpc3Ryb1Npc3RlbWHCoCxcclxuICAgICAgICAgICAgY29kdXN1OnRoaXMuY29kaWRvVXN1YXJpbyxcclxuICAgICAgICAgICAgb2JzZXJ2YWNpb246dGhpcy5vYnNlcnZhY2lvbiwgXHJcbiAgICAgICAgICAgIGlkX2Nlbm1lZHNzOit0aGlzLmlkQ2VudHJvTWVkaWNvLCBcclxuICAgICAgICAgICAgaWRfdGlwb3BlcnNvbmFsOit0aGlzLmlkVGlwb1BlcnNvbmFsLCAgXHJcbiAgICAgICAgICAgIGNvZGNvbTp0aGlzLmNvZGlnb0NvbXBvbmVudGUsXHJcbiAgICAgICAgICAgIGRlbmNvbTp0aGlzLmRlbm9taW5hY2lvbkNvbXBvbmVudGUsXHJcbiAgICAgICAgICAgIGNvZHJhbjp0aGlzLmNvZGlnb1JhbmdvLFxyXG4gICAgICAgICAgICBkZW5yYW46dGhpcy5kZW5vbWluYWNpb25SYW5nbyxcclxuICAgICAgICAgICAgY29kY2VubWVkc3M6dGhpcy5jb2RpZ29DZW50cm9NZWRpY28sXHJcbiAgICAgICAgICAgIGRlbmNlbm1lZHNzOnRoaXMuZGVub21pbmFjaW9uQ2VudHJvTWVkaWNvLFxyXG4gICAgICAgICAgICBjb2R0aXBwZXI6dGhpcy5jb2RpZ29UaXBvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGRlbnRpcHBlcjp0aGlzLmRlbm9taW5hY2lvblRpcG9QZXJzb25hbCxcclxuICAgICAgICAgICAgY29kY2F1OnRoaXMuY29kaWdvQ2F1c2FSZXRpcm8sXHJcbiAgICAgICAgICAgIGRlbmNhdTp0aGlzLmRlbm9taW5hY2lvbkNhdXNhUmV0aXJvLCAgIFxyXG4gICAgICAgICAgICBpZF9wcm92ZWVkb3JiZW5lZmljaWFyaW86dGhpcy5pZFByb3ZlZWRvckJlbmVmaWNpYXJpby50b1N0cmluZygpLCAgICAgXHJcbiAgICAgICAgICAgIGlkX3NpbmRpY2F0bzp0aGlzLmlkU2luZGljYXRvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHNpbjp0aGlzLmNvZGlnb1NpbmRpY2F0byxcclxuICAgICAgICAgICAgZGVuc2luOnRoaXMuZGVub21pbmFjaW9uU2luZGljYXRvLCBcclxuICAgICAgICAgICAgY29uYXBkaXM6dGhpcy5jb25hcGRpcz8gJzEnOicwJyxcclxuICAgICAgICAgICAgZGVzcGFpOnRoaXMubm9tYnJlUGFpcyxcclxuICAgICAgICAgICAgZGVzZXN0OnRoaXMubm9tYnJlRXN0YWRvLFxyXG4gICAgICAgICAgICBkZXNtdW46dGhpcy5ub21icmVNdW5pY2lwaW8sXHJcbiAgICAgICAgICAgIGRlc3Bhcjp0aGlzLm5vbWJyZVBhcnJvcXVpYSwgIFxyXG4gICAgICAgICAgICBkZXNlc3RfbmFjOnRoaXMubm9tYnJlRXN0YWRvTmFjaW1pZW50byxcclxuICAgICAgICAgICAgZGVzcGFpX25hYzp0aGlzLm5vbWJyZVBhaXNOYWNpbWllbnRvLFxyXG4gICAgICAgICAgICBpZF9wbGFuaG9yOnRoaXMuaWRQbGFuSG9yYXJpby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9ob3JhOnRoaXMuaWRIb3JhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3B1ZXRyYTp0aGlzLmlkUHVlc3RvVHJhYmFqby50b1N0cmluZygpLFxyXG4gICAgICAgIH1cclxuICAgIH0gICBcclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNQ2FtYmlvRXN0YXR1c1BlcnNvbmFsIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRQZXJzb25hbDogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvUGVyc29uYWw6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBlc3RhdHVzQWN0dWFsOiBzdHJpbmc9JzInO1xyXG4gICAgcHVibGljIGVzdGF0dXNOdWV2bzogc3RyaW5nPScyJztcclxuICAgIHB1YmxpYyBmZWNoYUVncmVzbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNhdXNhRWdyZXNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgcHJlYXZpc286IHN0cmluZz0nMSc7XHJcbiAgICBwdWJsaWMgaWRDYXVzYWxlczogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgb2JzZXJ2YWNpb246IHN0cmluZz0nJzsgIFxyXG4gICAgcHVibGljIGZlY2hhUmVpbmdyZXNvOnN0cmluZz0nMTkwMC0wMS0wMSc7XHJcblxyXG4gICAgY29uc3RydWN0b3IgKGU6SUNhbWJpb0VzdGF0dXNQZXJzb25hbD1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkUGVyc29uYWwgPSBlLmlkUGVyc29uYWw7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGVyc29uYWwgPSBlLmNvZGlnb1BlcnNvbmFsO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNBY3R1YWwgPSBlLmVzdGF0dXNBY3R1YWw7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c051ZXZvID0gZS5lc3RhdHVzTnVldm87XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFFZ3Jlc28gPSBlLmZlY2hhRWdyZXNvO1xyXG4gICAgICAgICAgICB0aGlzLmNhdXNhRWdyZXNvID0gZS5jYXVzYUVncmVzbztcclxuICAgICAgICAgICAgdGhpcy5wcmVhdmlzbyA9IGUucHJlYXZpc287XHJcbiAgICAgICAgICAgIHRoaXMuaWRDYXVzYWxlcz0gZS5pZENhdXNhbGVzO1xyXG4gICAgICAgICAgICB0aGlzLm9ic2VydmFjaW9uID0gZS5vYnNlcnZhY2lvbjsgIFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhUmVpbmdyZXNvPSBlLmZlY2hhUmVpbmdyZXNvO1xyXG4gXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJQ2FtYmlvRXN0YXR1c1BlcnNvbmFse1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkUGVyc29uYWw6IHRoaXMuaWRQZXJzb25hbCxcclxuICAgICAgICAgICAgY29kaWdvUGVyc29uYWw6IHRoaXMuY29kaWdvUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGVzdGF0dXNBY3R1YWw6IHRoaXMuZXN0YXR1c0FjdHVhbCxcclxuICAgICAgICAgICAgZXN0YXR1c051ZXZvOiB0aGlzLmVzdGF0dXNOdWV2byxcclxuICAgICAgICAgICAgZmVjaGFFZ3Jlc286IHRoaXMuZmVjaGFFZ3Jlc28sXHJcbiAgICAgICAgICAgIGNhdXNhRWdyZXNvOiB0aGlzLmNhdXNhRWdyZXNvLFxyXG4gICAgICAgICAgICBwcmVhdmlzbzogdGhpcy5wcmVhdmlzbyxcclxuICAgICAgICAgICAgaWRDYXVzYWxlczogdGhpcy5pZENhdXNhbGVzLFxyXG4gICAgICAgICAgICBvYnNlcnZhY2lvbjogdGhpcy5vYnNlcnZhY2lvbiwgXHJcbiAgICAgICAgICAgIGZlY2hhUmVpbmdyZXNvOnRoaXMuZmVjaGFSZWluZ3Jlc28sXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUGVyc29uYWxDdWVudGFCYW5jbyBleHRlbmRzIE1CYXNpY01vZGVsIHtcclxuICAgIHB1YmxpYyBpZEVtcHJlc2E6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEN1ZW50YUJhbmNvUGVyc29uYWw6bnVtYmVyPS0xO1xyXG4gICAgcHVibGljIGNvZGlnb0N1ZW50YUJhbmNvUGVyc29uYWw6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkN1ZW50YUJhbmNvUGVyc29uYWw6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGlkQmFuY286bnVtYmVyPTA7ICAgXHJcbiAgICBwdWJsaWMgaWRUaXBvQ3VlbnRhQmFuY286bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY3VlbnRhQmFuY29QZXJzb25hbDpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZXN0YXR1c0N1ZW50YUJhbmNvOmJvb2xlYW49dHJ1ZTtcclxuICAgIHB1YmxpYyB0aXBvQ3VlbnRhUHJpbmNpcGFsOmJvb2xlYW49ZmFsc2U7XHJcbiAgICBwdWJsaWMgY29kaWdvQmFuY286c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGN1ZW50YVJlZHVjaWRhOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVCYW5jbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlVGlwb0N1ZW50YUJhbmNvOnN0cmluZz0nJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihlPzpJUGVyc29uYWxDdWVudGFzQmFuY2FyaWFzKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVtcHJlc2E9cGFyc2VJbnQoZS5pZF9lbXByZXNhKTtcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsPXBhcnNlSW50KGUuaWRfcGVyc29uYWwpO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ3VlbnRhQmFuY29QZXJzb25hbD1wYXJzZUludChlLmlkX2N0YWJhbnBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvQ3VlbnRhQmFuY29QZXJzb25hbD1lLmNvZGN0YWJhbnBlcjtcclxuICAgICAgICAgICAgdGhpcy5kZW5vbWluYWNpb25DdWVudGFCYW5jb1BlcnNvbmFsPWUuZGVuY3RhYmFucGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkQmFuY289cGFyc2VJbnQoZS5pZF9iYW5jbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRUaXBvQ3VlbnRhQmFuY289cGFyc2VJbnQoZS5pZF90aXBvY3RhKTtcclxuICAgICAgICAgICAgdGhpcy5jdWVudGFCYW5jb1BlcnNvbmFsPWUuY3RhYmFucGVyO1xyXG4gICAgICAgICAgICB0aGlzLmVzdGF0dXNDdWVudGFCYW5jbz1lLmVzdGN0YWJjbz09JzEnPyB0cnVlOmZhbHNlO1xyXG4gICAgICAgICAgICB0aGlzLnRpcG9DdWVudGFQcmluY2lwYWw9ZS50aXBjdGFwcmk9PScxJz8gdHJ1ZTpmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29CYW5jbz10aGlzLmN1ZW50YUJhbmNvUGVyc29uYWwuc3Vic3RyaW5nKDAsNCk7XHJcbiAgICAgICAgICAgIHRoaXMuY3VlbnRhUmVkdWNpZGE9dGhpcy5jdWVudGFCYW5jb1BlcnNvbmFsLnNsaWNlKDQpXHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlQmFuY289ZS5ub21iYW47XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlVGlwb0N1ZW50YUJhbmNvPWUubm9tdGlwY3RhO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGF0YUludGVyZmFjZSgpOklQZXJzb25hbEN1ZW50YXNCYW5jYXJpYXN7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYS50b1N0cmluZygpLCBcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6dGhpcy5pZFBlcnNvbmFsLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF9jdGFiYW5wZXI6dGhpcy5pZEN1ZW50YUJhbmNvUGVyc29uYWwudG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGNvZGN0YWJhbnBlcjp0aGlzLmNvZGlnb0N1ZW50YUJhbmNvUGVyc29uYWwsIFxyXG4gICAgICAgICAgICBkZW5jdGFiYW5wZXI6dGhpcy5kZW5vbWluYWNpb25DdWVudGFCYW5jb1BlcnNvbmFsLCBcclxuICAgICAgICAgICAgaWRfYmFuY286dGhpcy5pZEJhbmNvLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBpZF90aXBvY3RhOnRoaXMuaWRUaXBvQ3VlbnRhQmFuY28udG9TdHJpbmcoKSwgXHJcbiAgICAgICAgICAgIGN0YWJhbnBlcjp0aGlzLmN1ZW50YUJhbmNvUGVyc29uYWwsIFxyXG4gICAgICAgICAgICBlc3RjdGFiY286dGhpcy5lc3RhdHVzQ3VlbnRhQmFuY28/ICcxJzonMCcsIFxyXG4gICAgICAgICAgICB0aXBjdGFwcmk6dGhpcy50aXBvQ3VlbnRhUHJpbmNpcGFsPyAnMSc6JzAnLFxyXG4gICAgICAgICAgICBcclxuICAgICAgICB9XHJcblxyXG4gICAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1Fc3R1ZGlvc1JlYWxpemFkb3Mge1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRXN0dWRpbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyB0aXBvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzEnO1xyXG4gICAgcHVibGljIGRlbm9taW5hY2lvbkVzdHVkaW9SZWFsaXphZG86c3RyaW5nPScxJztcclxuICAgIHB1YmxpYyBpbnN0aXR1dG9Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvbkVzdHVkaW9SZWFsaXphZG86c3RyaW5nPScnOyBcclxuICAgIHB1YmxpYyB0aXR1bG9Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgY2FsaWZpY2FjaW9uRXN0dWRpb1JlYWxpemFkbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBlc2NhbGFWYWxvcmVzOnN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZmVjaGFJbmljaW9Fc3R1ZGlvUmVhbGl6YWRvOnN0cmluZz0nMTkwMC0wMS0wMSc7IFxyXG4gICAgcHVibGljIGZlY2hhRmluRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBmZWNoYUdyYWRvRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzE5MDAtMDEtMDEnOyBcclxuICAgIHB1YmxpYyBhcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc9JzEnOyBcclxuICAgIHB1YmxpYyBkZW5vbWluYWNpb25BcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbzpzdHJpbmc7IFxyXG4gICAgcHVibGljIGFub0Fwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGhvcmFzRXN0dWRpb1JlYWxpemFkbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBUaXBvRXN0dWRpbz1Fc3R1ZGlvc1xyXG4gICAgcHVibGljIEFwcm9iYWRvPUVzdGF0dXNFc3R1ZGlvXHJcblxyXG4gICAgY29uc3RydWN0b3IgKGU6SUVzdHVkaW9SZWFsaXphZG89IG51bGwpe1xyXG4gICAgICAgIGlmKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0gcGFyc2VJbnQoZS5pZF9lbXByZXNhKTtcclxuICAgICAgICAgICAgdGhpcy5pZFBlcnNvbmFsPSBwYXJzZUludChlLmlkX3BlcnNvbmFsKTtcclxuICAgICAgICAgICAgdGhpcy5pZEVzdHVkaW89IHBhcnNlSW50KGUuaWRfZXN0dWRpbyk7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0dWRpb1JlYWxpemFkbz0gZS5jb2Rlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMudGlwb0VzdHVkaW9SZWFsaXphZG89IGUudGlwZXN0cmVhO1xyXG4gICAgICAgICAgICB0aGlzLmluc3RpdHV0b0VzdHVkaW9SZWFsaXphZG89IGUuaW5zZXN0cmVhO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uRXN0dWRpb1JlYWxpemFkbz0gZS5kZXNlc3RyZWE7IFxyXG4gICAgICAgICAgICB0aGlzLnRpdHVsb0VzdHVkaW9SZWFsaXphZG89IGUudGl0ZXN0cmVhOyBcclxuICAgICAgICAgICAgdGhpcy5jYWxpZmljYWNpb25Fc3R1ZGlvUmVhbGl6YWRvPSArZS5jYWxlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuZXNjYWxhVmFsb3Jlcz0gZS5lc2N2YWw7IFxyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5pY2lvRXN0dWRpb1JlYWxpemFkbz0gZS5mZWNpbmlyZWFlc3Q7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFGaW5Fc3R1ZGlvUmVhbGl6YWRvPSBlLmZlY2ZpbmVzdHJlYTtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUdyYWRvRXN0dWRpb1JlYWxpemFkbz0gZS5mZWNncmFlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG89IGUuYXByZXN0cmVhOyBcclxuICAgICAgICAgICAgdGhpcy5hbm9BcHJvYmFjaW9uRXN0dWRpb1JlYWxpemFkbz0gcGFyc2VJbnQoZS5hbm9hcHJlc3RyZWEpO1xyXG4gICAgICAgICAgICB0aGlzLmhvcmFzRXN0dWRpb1JlYWxpemFkbz0gcGFyc2VJbnQoZS5ob3Jlc3RyZWEpOyAgXHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uRXN0dWRpb1JlYWxpemFkbz10aGlzLlRpcG9Fc3R1ZGlvLmZpbmQoZT0+ZS52YWx1ZT09dGhpcy50aXBvRXN0dWRpb1JlYWxpemFkbykuZGVub21pbmFjaW9uICAgICAgXHJcbiAgICAgICAgICAgIHRoaXMuZGVub21pbmFjaW9uQXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG89dGhpcy5BcHJvYmFkby5maW5kKGU9PmUudmFsdWU9PXRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG8pLmRlbm9taW5hY2lvbiAgICAgIFxyXG4gICAgICAgIH0gICAgICAgIFxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SUVzdHVkaW9SZWFsaXphZG97XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW1wcmVzYTp0aGlzLmlkRW1wcmVzYS50b1N0cmluZygpLCBcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6dGhpcy5pZFBlcnNvbmFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VzdHVkaW86dGhpcy5pZEVzdHVkaW8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kZXN0cmVhOnRoaXMuY29kaWdvRXN0dWRpb1JlYWxpemFkbyxcclxuICAgICAgICAgICAgdGlwZXN0cmVhOnRoaXMudGlwb0VzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGluc2VzdHJlYTp0aGlzLmluc3RpdHV0b0VzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGRlc2VzdHJlYTp0aGlzLmRlc2NyaXBjaW9uRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIHRpdGVzdHJlYTp0aGlzLnRpdHVsb0VzdHVkaW9SZWFsaXphZG8sIFxyXG4gICAgICAgICAgICBjYWxlc3RyZWE6dGhpcy5jYWxpZmljYWNpb25Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgZXNjdmFsOnRoaXMuZXNjYWxhVmFsb3JlcywgXHJcbiAgICAgICAgICAgIGZlY2luaXJlYWVzdDp0aGlzLmZlY2hhSW5pY2lvRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIGZlY2ZpbmVzdHJlYTp0aGlzLmZlY2hhRmluRXN0dWRpb1JlYWxpemFkbywgXHJcbiAgICAgICAgICAgIGZlY2dyYWVzdHJlYTp0aGlzLmZlY2hhR3JhZG9Fc3R1ZGlvUmVhbGl6YWRvLCBcclxuICAgICAgICAgICAgYXByZXN0cmVhOnRoaXMuYXByb2JhY2lvbkVzdHVkaW9SZWFsaXphZG8sXHJcbiAgICAgICAgICAgIGFub2FwcmVzdHJlYTp0aGlzLmFub0Fwcm9iYWNpb25Fc3R1ZGlvUmVhbGl6YWRvLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBob3Jlc3RyZWE6dGhpcy5ob3Jhc0VzdHVkaW9SZWFsaXphZG8udG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNUHJlc3RhY2lvbmVzQW50aWd1ZWRhZCBleHRlbmRzIE1CYXNpY01vZGVse1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRmlkZWljb21pc286bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYW5vQ3VyUGVyaW9kbzpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBtZXNDdXJQZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgcHVibGljIHN1ZWxkb0ludGVncmFsUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYm9ub0V4dHJhUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgYm9ub1ZhY2FjaW9uZXNQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBib25vRmluQW5ub1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGFwb3J0ZVBlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGRpYUZpZGVpY29taXNvOm51bWJlcj0wXHJcbiAgICBwdWJsaWMgZGlhQWRpY2lvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIG1ldG9kb1ByZXNhdGNpb25lczpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbWV0b2RvRGlhc0FkaWNpb25hbGVzOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBib25vVmFjYWNpb25hbERpYXNBZGljaW9uYWxlc1BlcnNvbmFsOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGJvbm9GaW5Bbm5vRGlhc0FkaWNpb25hbGVzUGVyc29uYWw6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgc3VlbGRvSW50ZWdyYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBhcG9ydGVQcmVzdGFjaW9uZXNQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBhcG9ydGVBZGljaW9uYWxQZXJzb25hbDpudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjb2RpZ29Vc3VhcmlvOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZER0RmlkZWljb21pc29QZXJpb2RvOm51bWJlcj0wO1xyXG4gICAgIFxyXG4gICAgY29uc3RydWN0b3IoZTpJUHJlc3RhY2lvbmVzQW50aWd1ZWRhZD1udWxsKXtcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKSB7XHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPXBhcnNlSW50KGUuaWRfZW1wcmVzYSk7IFxyXG4gICAgICAgICAgICB0aGlzLmlkUGVyc29uYWw9cGFyc2VJbnQoZS5pZF9wZXJzb25hbCk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRGaWRlaWNvbWlzbz1wYXJzZUludChlLmlkX2ZpZGVpY29taXNvKTtcclxuICAgICAgICAgICAgdGhpcy5hbm9DdXJQZXJpb2RvPXBhcnNlSW50KGUuYW5vY3VycGVyKTtcclxuICAgICAgICAgICAgdGhpcy5tZXNDdXJQZXJpb2RvPXBhcnNlSW50KGUubWVzY3VycGVyKTtcclxuICAgICAgICAgICAgdGhpcy5zdWVsZG9JbnRlZ3JhbFBlcnNvbmFsPStlLnN1ZWludHBlcjtcclxuICAgICAgICAgICAgdGhpcy5ib25vRXh0cmFQZXJzb25hbD0rZS5ib25leHRwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYm9ub1ZhY2FjaW9uZXNQZXJzb25hbD0rZS5ib252YWNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYm9ub0ZpbkFubm9QZXJzb25hbD0rZS5ib25maW5wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBvcnRlUGVyc29uYWw9K2UuYXBvcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRpYUZpZGVpY29taXNvPStlLmRpYWZpZDtcclxuICAgICAgICAgICAgdGhpcy5kaWFBZGljaW9uYWw9K2UuZGlhYWRpO1xyXG4gICAgICAgICAgICB0aGlzLm1ldG9kb1ByZXNhdGNpb25lcz1lLm1ldG9kb3ByZTtcclxuICAgICAgICAgICAgdGhpcy5tZXRvZG9EaWFzQWRpY2lvbmFsZXM9ZS5tZXRvZG9hZGk7XHJcbiAgICAgICAgICAgIHRoaXMuYm9ub1ZhY2FjaW9uYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbD0rZS5ib252YWNhZGlwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYm9ub0ZpbkFubm9EaWFzQWRpY2lvbmFsZXNQZXJzb25hbD0rZS5ib25maW5hZGlwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuc3VlbGRvSW50ZWdyYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbD0rZS5zdWVpbnRhZGlwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBvcnRlUHJlc3RhY2lvbmVzUGVyc29uYWw9K2UuYXBvcHJlcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmFwb3J0ZUFkaWNpb25hbFBlcnNvbmFsPStlLmFwb2FkaXBlcjtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ29Vc3VhcmlvPWUuY29kdXN1O1xyXG4gICAgICAgICAgICB0aGlzLmlkRHRGaWRlaWNvbWlzb1BlcmlvZG89cGFyc2VJbnQoZS5pZF9kdF9maWRlaXBlcmlvZG8pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJUHJlc3RhY2lvbmVzQW50aWd1ZWRhZHtcclxuICAgICAgICByZXR1cm57XHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2E6dGhpcy5pZEVtcHJlc2EudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfcGVyc29uYWw6dGhpcy5pZFBlcnNvbmFsLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2ZpZGVpY29taXNvOnRoaXMuaWRGaWRlaWNvbWlzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBhbm9jdXJwZXI6dGhpcy5hbm9DdXJQZXJpb2RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIG1lc2N1cnBlcjp0aGlzLm1lc0N1clBlcmlvZG8udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgc3VlaW50cGVyOnRoaXMuc3VlbGRvSW50ZWdyYWxQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9uZXh0cGVyOnRoaXMuYm9ub0V4dHJhUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGJvbnZhY3Blcjp0aGlzLmJvbm9WYWNhY2lvbmVzUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGJvbmZpbnBlcjp0aGlzLmJvbm9GaW5Bbm5vUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGFwb3Blcjp0aGlzLmFwb3J0ZVBlcnNvbmFsLFxyXG4gICAgICAgICAgICBkaWFmaWQ6dGhpcy5kaWFGaWRlaWNvbWlzbyxcclxuICAgICAgICAgICAgZGlhYWRpOnRoaXMuZGlhQWRpY2lvbmFsLFxyXG4gICAgICAgICAgICBtZXRvZG9wcmU6dGhpcy5tZXRvZG9QcmVzYXRjaW9uZXMsXHJcbiAgICAgICAgICAgIG1ldG9kb2FkaTp0aGlzLm1ldG9kb0RpYXNBZGljaW9uYWxlcyxcclxuICAgICAgICAgICAgYm9udmFjYWRpcGVyOnRoaXMuYm9ub1ZhY2FjaW9uYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYm9uZmluYWRpcGVyOnRoaXMuYm9ub0ZpbkFubm9EaWFzQWRpY2lvbmFsZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgc3VlaW50YWRpcGVyOnRoaXMuc3VlbGRvSW50ZWdyYWxEaWFzQWRpY2lvbmFsZXNQZXJzb25hbCxcclxuICAgICAgICAgICAgYXBvcHJlcGVyOnRoaXMuYXBvcnRlUHJlc3RhY2lvbmVzUGVyc29uYWwsXHJcbiAgICAgICAgICAgIGFwb2FkaXBlcjp0aGlzLmFwb3J0ZUFkaWNpb25hbFBlcnNvbmFsLFxyXG4gICAgICAgICAgICBjb2R1c3U6dGhpcy5jb2RpZ29Vc3VhcmlvLFxyXG4gICAgICAgICAgICBpZF9kdF9maWRlaXBlcmlvZG86dGhpcy5pZER0RmlkZWljb21pc29QZXJpb2RvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgXHJcbn1cclxuXHJcbiJdfQ==