sigesp 0.9.104-20240402 → 1.0.0-20240419

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 (395) hide show
  1. package/esm2020/lib/app/app.component.mjs +14 -0
  2. package/esm2020/lib/app/app.module.mjs +34 -0
  3. package/esm2020/lib/core/interfaces/Auditoria.mjs +49 -0
  4. package/esm2020/lib/core/interfaces/Banco.mjs +2 -0
  5. package/esm2020/lib/core/interfaces/Catalogo.mjs +2 -0
  6. package/esm2020/lib/core/interfaces/CentroCosto.mjs +2 -0
  7. package/esm2020/lib/core/interfaces/Clasificacion.mjs +2 -0
  8. package/esm2020/lib/core/interfaces/Cliente.mjs +2 -0
  9. package/esm2020/lib/core/interfaces/ComprobantePresupuestario.mjs +2 -0
  10. package/esm2020/lib/core/interfaces/Comunidad.mjs +2 -0
  11. package/esm2020/lib/core/interfaces/Configuracion.mjs +2 -0
  12. package/esm2020/lib/core/interfaces/ConfiguracionRPC.mjs +2 -0
  13. package/esm2020/lib/core/interfaces/ConfiguracionSCG.mjs +2 -0
  14. package/esm2020/lib/core/interfaces/ConfigurationSPG.mjs +2 -0
  15. package/esm2020/lib/core/interfaces/Constantes.mjs +360 -0
  16. package/esm2020/lib/core/interfaces/CuentaEgresos.mjs +2 -0
  17. package/esm2020/lib/core/interfaces/CuentaIngreso.mjs +2 -0
  18. package/esm2020/lib/core/interfaces/CuentaIngresoEstructura.mjs +2 -0
  19. package/esm2020/lib/core/interfaces/CuentaInstitucional.mjs +2 -0
  20. package/esm2020/lib/core/interfaces/CuentaPresupuesto.mjs +2 -0
  21. package/esm2020/lib/core/interfaces/CuentasPorPagar.mjs +2 -0
  22. package/esm2020/lib/core/interfaces/Documento.mjs +2 -0
  23. package/esm2020/lib/core/interfaces/EntradaSuministro.mjs +2 -0
  24. package/esm2020/lib/core/interfaces/Especialidad.mjs +2 -0
  25. package/esm2020/lib/core/interfaces/EstructuraPresupuestaria.mjs +2 -0
  26. package/esm2020/lib/core/interfaces/FuenteFinanciamiento.mjs +2 -0
  27. package/esm2020/lib/core/interfaces/IBancoCuentasPorPagar.mjs +2 -0
  28. package/esm2020/lib/core/interfaces/ITipoDepositos.mjs +2 -0
  29. package/esm2020/lib/core/interfaces/Integracion.mjs +2 -0
  30. package/esm2020/lib/core/interfaces/Lugares.mjs +2 -0
  31. package/esm2020/lib/core/interfaces/Moneda.mjs +2 -0
  32. package/esm2020/lib/core/interfaces/Nomina.mjs +27 -0
  33. package/esm2020/lib/core/interfaces/PlanUnicoCuenta.mjs +2 -0
  34. package/esm2020/lib/core/interfaces/Presupuesto.mjs +2 -0
  35. package/esm2020/lib/core/interfaces/Proveedor.mjs +2 -0
  36. package/esm2020/lib/core/interfaces/RecursosHumanos.mjs +4 -0
  37. package/esm2020/lib/core/interfaces/Request.mjs +2 -0
  38. package/esm2020/lib/core/interfaces/Response.mjs +2 -0
  39. package/esm2020/lib/core/interfaces/Seguridad.mjs +2 -0
  40. package/esm2020/lib/core/interfaces/Servicios.mjs +2 -0
  41. package/esm2020/lib/core/interfaces/Sistema.mjs +2 -0
  42. package/esm2020/lib/core/interfaces/Tributos.mjs +2 -0
  43. package/esm2020/lib/core/interfaces/UnidadTributaria.mjs +2 -0
  44. package/esm2020/lib/core/interfaces/Usuario.mjs +2 -0
  45. package/esm2020/lib/core/interfaces/UsuarioPrefijo.mjs +2 -0
  46. package/esm2020/lib/core/models/CFG/Empresa.model.mjs +151 -0
  47. package/esm2020/lib/core/models/CFG/Enterprise.model.mjs +70 -0
  48. package/esm2020/lib/core/models/CFG/MPrefijo.model.mjs +64 -0
  49. package/esm2020/lib/core/models/CFG/Procede.model.mjs +31 -0
  50. package/esm2020/lib/core/models/CFG/TasaCambio.model.mjs +34 -0
  51. package/esm2020/lib/core/models/CFG/comunidad.model.mjs +22 -0
  52. package/esm2020/lib/core/models/CFG/locations.model.mjs +170 -0
  53. package/esm2020/lib/core/models/CFG/moneda.model.mjs +72 -0
  54. package/esm2020/lib/core/models/CFG/userPrefix.model.mjs +46 -0
  55. package/esm2020/lib/core/models/CXP/MConceptosCXP.model.mjs +34 -0
  56. package/esm2020/lib/core/models/CXP/MTipoDocumentoCXP.model.mjs +44 -0
  57. package/esm2020/lib/core/models/RPC/clasification.model.mjs +16 -0
  58. package/esm2020/lib/core/models/RPC/configuracionRPC.model.mjs +23 -0
  59. package/esm2020/lib/core/models/RPC/document.model.mjs +16 -0
  60. package/esm2020/lib/core/models/RPC/proveedores.model.mjs +9 -0
  61. package/esm2020/lib/core/models/RPC/providerBeneficiary.model.mjs +164 -0
  62. package/esm2020/lib/core/models/RPC/specialty.model.mjs +12 -0
  63. package/esm2020/lib/core/models/SCB/bank.model.mjs +181 -0
  64. package/esm2020/lib/core/models/SCG/IncomeAccount.mjs +83 -0
  65. package/esm2020/lib/core/models/SCG/accountMarriage.model.mjs +29 -0
  66. package/esm2020/lib/core/models/SCG/centroCosto.model.mjs +65 -0
  67. package/esm2020/lib/core/models/SCG/configuracionSCG.model.mjs +169 -0
  68. package/esm2020/lib/core/models/SCG/cuentaInstitucional.model.mjs +89 -0
  69. package/esm2020/lib/core/models/SCG/planUnicoCuenta.model.mjs +17 -0
  70. package/esm2020/lib/core/models/SFV/MClienteModel.mjs +116 -0
  71. package/esm2020/lib/core/models/SIV/MDetaContable.model.mjs +62 -0
  72. package/esm2020/lib/core/models/SIV/MDetaEntrada.model.mjs +94 -0
  73. package/esm2020/lib/core/models/SIV/MEntradaSuministro.model.mjs +132 -0
  74. package/esm2020/lib/core/models/SIV/MTipoDepositos.model.mjs +61 -0
  75. package/esm2020/lib/core/models/SNO/MAnticipoPrestaciones.model.mjs +100 -0
  76. package/esm2020/lib/core/models/SNO/MArchivoTxtCampo.model.mjs +61 -0
  77. package/esm2020/lib/core/models/SNO/MArchivosTxt.model.mjs +41 -0
  78. package/esm2020/lib/core/models/SNO/MAsignacionCargo.model.mjs +205 -0
  79. package/esm2020/lib/core/models/SNO/MAspectoEvaluacion.model.mjs +90 -0
  80. package/esm2020/lib/core/models/SNO/MAuditoria.model.mjs +61 -0
  81. package/esm2020/lib/core/models/SNO/MBeneficiario.model.mjs +137 -0
  82. package/esm2020/lib/core/models/SNO/MCargaFamiliar.model.mjs +52 -0
  83. package/esm2020/lib/core/models/SNO/MCargaMasiva.model.mjs +34 -0
  84. package/esm2020/lib/core/models/SNO/MCargosPersonal.model.mjs +101 -0
  85. package/esm2020/lib/core/models/SNO/MClasificacionObrero.mdel.mjs +46 -0
  86. package/esm2020/lib/core/models/SNO/MCodigoUnicoRac.model.mjs +39 -0
  87. package/esm2020/lib/core/models/SNO/MComponete.model.mjs +38 -0
  88. package/esm2020/lib/core/models/SNO/MConceptoVacaciones.model.mjs +85 -0
  89. package/esm2020/lib/core/models/SNO/MConceptosNomina.model.mjs +234 -0
  90. package/esm2020/lib/core/models/SNO/MConceptosPersonalNomina.model.mjs +97 -0
  91. package/esm2020/lib/core/models/SNO/MConcursante.model.mjs +317 -0
  92. package/esm2020/lib/core/models/SNO/MConcurso.model.mjs +246 -0
  93. package/esm2020/lib/core/models/SNO/MConfiguracionSNO.model.mjs +404 -0
  94. package/esm2020/lib/core/models/SNO/MConstanteNomina.model.mjs +67 -0
  95. package/esm2020/lib/core/models/SNO/MConstantePersonalNomina.model.mjs +79 -0
  96. package/esm2020/lib/core/models/SNO/MDedicacion.model.mjs +35 -0
  97. package/esm2020/lib/core/models/SNO/MDefinicionNomina.model.mjs +343 -0
  98. package/esm2020/lib/core/models/SNO/MDefinicionesBasicas.model.mjs +84 -0
  99. package/esm2020/lib/core/models/SNO/MDeudaAnterior.model.mjs +40 -0
  100. package/esm2020/lib/core/models/SNO/MEncargaduria.model.mjs +138 -0
  101. package/esm2020/lib/core/models/SNO/MEscalaEvaluacion.model.mjs +38 -0
  102. package/esm2020/lib/core/models/SNO/MEscalaEvaluacionDt.model.mjs +37 -0
  103. package/esm2020/lib/core/models/SNO/MEstructuraOrganizativa.model.mjs +119 -0
  104. package/esm2020/lib/core/models/SNO/MFamiliares.model.mjs +86 -0
  105. package/esm2020/lib/core/models/SNO/MFeriados.model.mjs +43 -0
  106. package/esm2020/lib/core/models/SNO/MFideicomiso.model.mjs +406 -0
  107. package/esm2020/lib/core/models/SNO/MFormacionAcademica.model.mjs +49 -0
  108. package/esm2020/lib/core/models/SNO/MGrado.model.mjs +47 -0
  109. package/esm2020/lib/core/models/SNO/MHojaTiempo.model.mjs +117 -0
  110. package/esm2020/lib/core/models/SNO/MImpuestoSobreRenta.model.mjs +73 -0
  111. package/esm2020/lib/core/models/SNO/MMetodoBanco.model.mjs +105 -0
  112. package/esm2020/lib/core/models/SNO/MNominaSimple.model.mjs +86 -0
  113. package/esm2020/lib/core/models/SNO/MPeriodoNomina.model.mjs +95 -0
  114. package/esm2020/lib/core/models/SNO/MPermisos.model.mjs +68 -0
  115. package/esm2020/lib/core/models/SNO/MPersonal.model.mjs +626 -0
  116. package/esm2020/lib/core/models/SNO/MPersonalJubilado.model.mjs +64 -0
  117. package/esm2020/lib/core/models/SNO/MPersonalNomina.model.mjs +313 -0
  118. package/esm2020/lib/core/models/SNO/MPlanHorario.model.mjs +116 -0
  119. package/esm2020/lib/core/models/SNO/MPlantillaConstancia.model.mjs +31 -0
  120. package/esm2020/lib/core/models/SNO/MPrestamo.model.mjs +221 -0
  121. package/esm2020/lib/core/models/SNO/MPrimaGrados.model.mjs +43 -0
  122. package/esm2020/lib/core/models/SNO/MPrimasConcepto.model.mjs +43 -0
  123. package/esm2020/lib/core/models/SNO/MRango.model.mjs +43 -0
  124. package/esm2020/lib/core/models/SNO/MReportesRRHH.mjs +402 -0
  125. package/esm2020/lib/core/models/SNO/MRequisitosConcursante.model.mjs +46 -0
  126. package/esm2020/lib/core/models/SNO/MRequisitosConcursos.model.mjs +37 -0
  127. package/esm2020/lib/core/models/SNO/MRequisitosMinimos.model.mjs +113 -0
  128. package/esm2020/lib/core/models/SNO/MSalarioHistorico.model.mjs +70 -0
  129. package/esm2020/lib/core/models/SNO/MSolicitudEmpleo.model.mjs +121 -0
  130. package/esm2020/lib/core/models/SNO/MTablaVacaciones.model.mjs +57 -0
  131. package/esm2020/lib/core/models/SNO/MTablaVacacionesPeriodo.model.mjs +40 -0
  132. package/esm2020/lib/core/models/SNO/MTabulador.model.mjs +96 -0
  133. package/esm2020/lib/core/models/SNO/MTipoEvaluacion.model.mjs +75 -0
  134. package/esm2020/lib/core/models/SNO/MTipoPersonal.model.mjs +34 -0
  135. package/esm2020/lib/core/models/SNO/MTiposEnfermedad.model.mjs +37 -0
  136. package/esm2020/lib/core/models/SNO/MTrabajoAnterior.model.mjs +65 -0
  137. package/esm2020/lib/core/models/SNO/MUbicacionFisica.model.mjs +61 -0
  138. package/esm2020/lib/core/models/SNO/MVacacionesPersonal.model.mjs +115 -0
  139. package/esm2020/lib/core/models/SOC/charge.model.mjs +66 -0
  140. package/esm2020/lib/core/models/SOC/clause.model.mjs +31 -0
  141. package/esm2020/lib/core/models/SOC/clauseModality.model.mjs +35 -0
  142. package/esm2020/lib/core/models/SOC/configuracionSOC.model.mjs +62 -0
  143. package/esm2020/lib/core/models/SOC/service.model.mjs +46 -0
  144. package/esm2020/lib/core/models/SOC/serviceCharge.model.mjs +37 -0
  145. package/esm2020/lib/core/models/SOC/serviceType.model.mjs +31 -0
  146. package/esm2020/lib/core/models/SPG/UnidadAdministradoraCentral.mjs +43 -0
  147. package/esm2020/lib/core/models/SPG/administrativeUnit.model.mjs +112 -0
  148. package/esm2020/lib/core/models/SPG/comprobantePresupuestario.model.mjs +51 -0
  149. package/esm2020/lib/core/models/SPG/configurationSPG.model.mjs +59 -0
  150. package/esm2020/lib/core/models/SPG/cuentaPresupuesto.model.mjs +120 -0
  151. package/esm2020/lib/core/models/SPG/estructuraPresupuestaria.model.mjs +176 -0
  152. package/esm2020/lib/core/models/SPG/expensiveAccount.model.mjs +108 -0
  153. package/esm2020/lib/core/models/SPG/fuenteFinanciamiento.model.mjs +31 -0
  154. package/esm2020/lib/core/models/SPG/incomeStructureAccount.model.mjs +81 -0
  155. package/esm2020/lib/core/models/SPG/organizationType.model.mjs +12 -0
  156. package/esm2020/lib/core/models/SSS/component.model.mjs +44 -0
  157. package/esm2020/lib/core/models/SSS/group.model.mjs +30 -0
  158. package/esm2020/lib/core/models/SSS/log.model.mjs +29 -0
  159. package/esm2020/lib/core/models/SSS/securityConfiguration.model.mjs +20 -0
  160. package/esm2020/lib/core/models/SSS/sistema.mjs +71 -0
  161. package/esm2020/lib/core/models/SSS/user.model.mjs +32 -0
  162. package/esm2020/lib/core/models/SSS/userDetail.model.mjs +73 -0
  163. package/esm2020/lib/core/models/SSS/userPermit.model.mjs +47 -0
  164. package/esm2020/lib/core/models/SSS/userRights.model.mjs +104 -0
  165. package/esm2020/lib/core/models/STB/MCargosAdicionales.mjs +84 -0
  166. package/esm2020/lib/core/models/STB/deduction.model.mjs +90 -0
  167. package/esm2020/lib/core/models/STB/deductionType.model.mjs +20 -0
  168. package/esm2020/lib/core/models/STB/unidadTributaria.model.mjs +14 -0
  169. package/esm2020/lib/core/models/basic-model.model.mjs +8 -0
  170. package/esm2020/lib/shared/components/catalogo/catalogo.component.mjs +72 -0
  171. package/esm2020/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.mjs +83 -0
  172. package/esm2020/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.mjs +74 -0
  173. package/esm2020/lib/shared/components/confirm/confirm.component.mjs +35 -0
  174. package/esm2020/lib/shared/components/icon/icon.component.mjs +22 -0
  175. package/esm2020/lib/shared/components/table-select/table-select.component.mjs +99 -0
  176. package/esm2020/lib/shared/material/customPaginator.mjs +24 -0
  177. package/esm2020/lib/shared/material/material.module.mjs +322 -0
  178. package/esm2020/lib/shared/pipes/iso-currency.pipe.mjs +43 -0
  179. package/esm2020/lib/shared/shared.module.mjs +66 -0
  180. package/esm2020/lib/sigesp.service.mjs +2050 -0
  181. package/esm2020/lib/validation.service.mjs +131 -0
  182. package/esm2020/public-api.mjs +156 -0
  183. package/esm2020/sigesp.mjs +5 -0
  184. package/fesm2015/{sigesp.js → sigesp.mjs} +524 -286
  185. package/fesm2015/sigesp.mjs.map +1 -0
  186. package/fesm2020/sigesp.mjs +14485 -0
  187. package/fesm2020/sigesp.mjs.map +1 -0
  188. package/index.d.ts +5 -0
  189. package/lib/app/app.component.d.ts +3 -0
  190. package/lib/app/app.module.d.ts +8 -0
  191. package/lib/core/models/SNO/MAuditoria.model.d.ts +1 -1
  192. package/lib/core/models/SNO/MFamiliares.model.d.ts +2 -2
  193. package/lib/shared/components/catalogo/catalogo.component.d.ts +4 -1
  194. package/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.d.ts +3 -0
  195. package/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.d.ts +4 -1
  196. package/lib/shared/components/confirm/confirm.component.d.ts +3 -0
  197. package/lib/shared/components/icon/icon.component.d.ts +3 -0
  198. package/lib/shared/components/table-select/table-select.component.d.ts +4 -1
  199. package/lib/shared/material/material.module.d.ts +46 -0
  200. package/lib/shared/pipes/iso-currency.pipe.d.ts +3 -0
  201. package/lib/shared/shared.module.d.ts +14 -0
  202. package/lib/sigesp.service.d.ts +6 -3
  203. package/lib/validation.service.d.ts +3 -0
  204. package/package.json +23 -11
  205. package/public-api.d.ts +8 -0
  206. package/bundles/sigesp.umd.js +0 -15577
  207. package/bundles/sigesp.umd.js.map +0 -1
  208. package/bundles/sigesp.umd.min.js +0 -2
  209. package/bundles/sigesp.umd.min.js.map +0 -1
  210. package/esm2015/lib/app/app.component.js +0 -15
  211. package/esm2015/lib/app/app.module.js +0 -23
  212. package/esm2015/lib/core/interfaces/Auditoria.js +0 -49
  213. package/esm2015/lib/core/interfaces/Banco.js +0 -2
  214. package/esm2015/lib/core/interfaces/Catalogo.js +0 -2
  215. package/esm2015/lib/core/interfaces/CentroCosto.js +0 -2
  216. package/esm2015/lib/core/interfaces/Clasificacion.js +0 -2
  217. package/esm2015/lib/core/interfaces/Cliente.js +0 -2
  218. package/esm2015/lib/core/interfaces/ComprobantePresupuestario.js +0 -2
  219. package/esm2015/lib/core/interfaces/Comunidad.js +0 -2
  220. package/esm2015/lib/core/interfaces/Configuracion.js +0 -2
  221. package/esm2015/lib/core/interfaces/ConfiguracionRPC.js +0 -2
  222. package/esm2015/lib/core/interfaces/ConfiguracionSCG.js +0 -2
  223. package/esm2015/lib/core/interfaces/ConfigurationSPG.js +0 -2
  224. package/esm2015/lib/core/interfaces/Constantes.js +0 -360
  225. package/esm2015/lib/core/interfaces/CuentaEgresos.js +0 -2
  226. package/esm2015/lib/core/interfaces/CuentaIngreso.js +0 -2
  227. package/esm2015/lib/core/interfaces/CuentaIngresoEstructura.js +0 -2
  228. package/esm2015/lib/core/interfaces/CuentaInstitucional.js +0 -2
  229. package/esm2015/lib/core/interfaces/CuentaPresupuesto.js +0 -2
  230. package/esm2015/lib/core/interfaces/CuentasPorPagar.js +0 -2
  231. package/esm2015/lib/core/interfaces/Documento.js +0 -2
  232. package/esm2015/lib/core/interfaces/EntradaSuministro.js +0 -2
  233. package/esm2015/lib/core/interfaces/Especialidad.js +0 -2
  234. package/esm2015/lib/core/interfaces/EstructuraPresupuestaria.js +0 -2
  235. package/esm2015/lib/core/interfaces/FuenteFinanciamiento.js +0 -2
  236. package/esm2015/lib/core/interfaces/IBancoCuentasPorPagar.js +0 -2
  237. package/esm2015/lib/core/interfaces/ITipoDepositos.js +0 -2
  238. package/esm2015/lib/core/interfaces/Integracion.js +0 -2
  239. package/esm2015/lib/core/interfaces/Lugares.js +0 -2
  240. package/esm2015/lib/core/interfaces/Moneda.js +0 -2
  241. package/esm2015/lib/core/interfaces/Nomina.js +0 -27
  242. package/esm2015/lib/core/interfaces/PlanUnicoCuenta.js +0 -2
  243. package/esm2015/lib/core/interfaces/Presupuesto.js +0 -2
  244. package/esm2015/lib/core/interfaces/Proveedor.js +0 -2
  245. package/esm2015/lib/core/interfaces/RecursosHumanos.js +0 -4
  246. package/esm2015/lib/core/interfaces/Request.js +0 -2
  247. package/esm2015/lib/core/interfaces/Response.js +0 -2
  248. package/esm2015/lib/core/interfaces/Seguridad.js +0 -2
  249. package/esm2015/lib/core/interfaces/Servicios.js +0 -2
  250. package/esm2015/lib/core/interfaces/Sistema.js +0 -2
  251. package/esm2015/lib/core/interfaces/Tributos.js +0 -2
  252. package/esm2015/lib/core/interfaces/UnidadTributaria.js +0 -2
  253. package/esm2015/lib/core/interfaces/Usuario.js +0 -2
  254. package/esm2015/lib/core/interfaces/UsuarioPrefijo.js +0 -2
  255. package/esm2015/lib/core/models/CFG/Empresa.model.js +0 -151
  256. package/esm2015/lib/core/models/CFG/Enterprise.model.js +0 -70
  257. package/esm2015/lib/core/models/CFG/MPrefijo.model.js +0 -64
  258. package/esm2015/lib/core/models/CFG/Procede.model.js +0 -31
  259. package/esm2015/lib/core/models/CFG/TasaCambio.model.js +0 -34
  260. package/esm2015/lib/core/models/CFG/comunidad.model.js +0 -22
  261. package/esm2015/lib/core/models/CFG/locations.model.js +0 -170
  262. package/esm2015/lib/core/models/CFG/moneda.model.js +0 -72
  263. package/esm2015/lib/core/models/CFG/userPrefix.model.js +0 -46
  264. package/esm2015/lib/core/models/CXP/MConceptosCXP.model.js +0 -34
  265. package/esm2015/lib/core/models/CXP/MTipoDocumentoCXP.model.js +0 -44
  266. package/esm2015/lib/core/models/RPC/clasification.model.js +0 -16
  267. package/esm2015/lib/core/models/RPC/configuracionRPC.model.js +0 -23
  268. package/esm2015/lib/core/models/RPC/document.model.js +0 -16
  269. package/esm2015/lib/core/models/RPC/proveedores.model.js +0 -9
  270. package/esm2015/lib/core/models/RPC/providerBeneficiary.model.js +0 -164
  271. package/esm2015/lib/core/models/RPC/specialty.model.js +0 -12
  272. package/esm2015/lib/core/models/SCB/bank.model.js +0 -181
  273. package/esm2015/lib/core/models/SCG/IncomeAccount.js +0 -83
  274. package/esm2015/lib/core/models/SCG/accountMarriage.model.js +0 -29
  275. package/esm2015/lib/core/models/SCG/centroCosto.model.js +0 -65
  276. package/esm2015/lib/core/models/SCG/configuracionSCG.model.js +0 -169
  277. package/esm2015/lib/core/models/SCG/cuentaInstitucional.model.js +0 -89
  278. package/esm2015/lib/core/models/SCG/planUnicoCuenta.model.js +0 -17
  279. package/esm2015/lib/core/models/SFV/MClienteModel.js +0 -116
  280. package/esm2015/lib/core/models/SIV/MDetaContable.model.js +0 -62
  281. package/esm2015/lib/core/models/SIV/MDetaEntrada.model.js +0 -94
  282. package/esm2015/lib/core/models/SIV/MEntradaSuministro.model.js +0 -132
  283. package/esm2015/lib/core/models/SIV/MTipoDepositos.model.js +0 -61
  284. package/esm2015/lib/core/models/SNO/MAnticipoPrestaciones.model.js +0 -100
  285. package/esm2015/lib/core/models/SNO/MArchivoTxtCampo.model.js +0 -61
  286. package/esm2015/lib/core/models/SNO/MArchivosTxt.model.js +0 -41
  287. package/esm2015/lib/core/models/SNO/MAsignacionCargo.model.js +0 -205
  288. package/esm2015/lib/core/models/SNO/MAspectoEvaluacion.model.js +0 -90
  289. package/esm2015/lib/core/models/SNO/MAuditoria.model.js +0 -61
  290. package/esm2015/lib/core/models/SNO/MBeneficiario.model.js +0 -137
  291. package/esm2015/lib/core/models/SNO/MCargaFamiliar.model.js +0 -52
  292. package/esm2015/lib/core/models/SNO/MCargaMasiva.model.js +0 -34
  293. package/esm2015/lib/core/models/SNO/MCargosPersonal.model.js +0 -101
  294. package/esm2015/lib/core/models/SNO/MClasificacionObrero.mdel.js +0 -46
  295. package/esm2015/lib/core/models/SNO/MCodigoUnicoRac.model.js +0 -39
  296. package/esm2015/lib/core/models/SNO/MComponete.model.js +0 -38
  297. package/esm2015/lib/core/models/SNO/MConceptoVacaciones.model.js +0 -85
  298. package/esm2015/lib/core/models/SNO/MConceptosNomina.model.js +0 -234
  299. package/esm2015/lib/core/models/SNO/MConceptosPersonalNomina.model.js +0 -97
  300. package/esm2015/lib/core/models/SNO/MConcursante.model.js +0 -317
  301. package/esm2015/lib/core/models/SNO/MConcurso.model.js +0 -246
  302. package/esm2015/lib/core/models/SNO/MConfiguracionSNO.model.js +0 -404
  303. package/esm2015/lib/core/models/SNO/MConstanteNomina.model.js +0 -67
  304. package/esm2015/lib/core/models/SNO/MConstantePersonalNomina.model.js +0 -79
  305. package/esm2015/lib/core/models/SNO/MDedicacion.model.js +0 -35
  306. package/esm2015/lib/core/models/SNO/MDefinicionNomina.model.js +0 -343
  307. package/esm2015/lib/core/models/SNO/MDefinicionesBasicas.model.js +0 -84
  308. package/esm2015/lib/core/models/SNO/MDeudaAnterior.model.js +0 -40
  309. package/esm2015/lib/core/models/SNO/MEncargaduria.model.js +0 -138
  310. package/esm2015/lib/core/models/SNO/MEscalaEvaluacion.model.js +0 -38
  311. package/esm2015/lib/core/models/SNO/MEscalaEvaluacionDt.model.js +0 -37
  312. package/esm2015/lib/core/models/SNO/MEstructuraOrganizativa.model.js +0 -119
  313. package/esm2015/lib/core/models/SNO/MFamiliares.model.js +0 -86
  314. package/esm2015/lib/core/models/SNO/MFeriados.model.js +0 -43
  315. package/esm2015/lib/core/models/SNO/MFideicomiso.model.js +0 -406
  316. package/esm2015/lib/core/models/SNO/MFormacionAcademica.model.js +0 -49
  317. package/esm2015/lib/core/models/SNO/MGrado.model.js +0 -47
  318. package/esm2015/lib/core/models/SNO/MHojaTiempo.model.js +0 -117
  319. package/esm2015/lib/core/models/SNO/MImpuestoSobreRenta.model.js +0 -73
  320. package/esm2015/lib/core/models/SNO/MMetodoBanco.model.js +0 -105
  321. package/esm2015/lib/core/models/SNO/MNominaSimple.model.js +0 -86
  322. package/esm2015/lib/core/models/SNO/MPeriodoNomina.model.js +0 -95
  323. package/esm2015/lib/core/models/SNO/MPermisos.model.js +0 -68
  324. package/esm2015/lib/core/models/SNO/MPersonal.model.js +0 -626
  325. package/esm2015/lib/core/models/SNO/MPersonalJubilado.model.js +0 -64
  326. package/esm2015/lib/core/models/SNO/MPersonalNomina.model.js +0 -313
  327. package/esm2015/lib/core/models/SNO/MPlanHorario.model.js +0 -116
  328. package/esm2015/lib/core/models/SNO/MPlantillaConstancia.model.js +0 -31
  329. package/esm2015/lib/core/models/SNO/MPrestamo.model.js +0 -221
  330. package/esm2015/lib/core/models/SNO/MPrimaGrados.model.js +0 -43
  331. package/esm2015/lib/core/models/SNO/MPrimasConcepto.model.js +0 -43
  332. package/esm2015/lib/core/models/SNO/MRango.model.js +0 -43
  333. package/esm2015/lib/core/models/SNO/MReportesRRHH.js +0 -402
  334. package/esm2015/lib/core/models/SNO/MRequisitosConcursante.model.js +0 -46
  335. package/esm2015/lib/core/models/SNO/MRequisitosConcursos.model.js +0 -37
  336. package/esm2015/lib/core/models/SNO/MRequisitosMinimos.model.js +0 -113
  337. package/esm2015/lib/core/models/SNO/MSalarioHistorico.model.js +0 -70
  338. package/esm2015/lib/core/models/SNO/MSolicitudEmpleo.model.js +0 -121
  339. package/esm2015/lib/core/models/SNO/MTablaVacaciones.model.js +0 -57
  340. package/esm2015/lib/core/models/SNO/MTablaVacacionesPeriodo.model.js +0 -40
  341. package/esm2015/lib/core/models/SNO/MTabulador.model.js +0 -96
  342. package/esm2015/lib/core/models/SNO/MTipoEvaluacion.model.js +0 -75
  343. package/esm2015/lib/core/models/SNO/MTipoPersonal.model.js +0 -34
  344. package/esm2015/lib/core/models/SNO/MTiposEnfermedad.model.js +0 -37
  345. package/esm2015/lib/core/models/SNO/MTrabajoAnterior.model.js +0 -65
  346. package/esm2015/lib/core/models/SNO/MUbicacionFisica.model.js +0 -61
  347. package/esm2015/lib/core/models/SNO/MVacacionesPersonal.model.js +0 -115
  348. package/esm2015/lib/core/models/SOC/charge.model.js +0 -66
  349. package/esm2015/lib/core/models/SOC/clause.model.js +0 -31
  350. package/esm2015/lib/core/models/SOC/clauseModality.model.js +0 -35
  351. package/esm2015/lib/core/models/SOC/configuracionSOC.model.js +0 -62
  352. package/esm2015/lib/core/models/SOC/service.model.js +0 -46
  353. package/esm2015/lib/core/models/SOC/serviceCharge.model.js +0 -37
  354. package/esm2015/lib/core/models/SOC/serviceType.model.js +0 -31
  355. package/esm2015/lib/core/models/SPG/UnidadAdministradoraCentral.js +0 -43
  356. package/esm2015/lib/core/models/SPG/administrativeUnit.model.js +0 -112
  357. package/esm2015/lib/core/models/SPG/comprobantePresupuestario.model.js +0 -51
  358. package/esm2015/lib/core/models/SPG/configurationSPG.model.js +0 -59
  359. package/esm2015/lib/core/models/SPG/cuentaPresupuesto.model.js +0 -120
  360. package/esm2015/lib/core/models/SPG/estructuraPresupuestaria.model.js +0 -176
  361. package/esm2015/lib/core/models/SPG/expensiveAccount.model.js +0 -108
  362. package/esm2015/lib/core/models/SPG/fuenteFinanciamiento.model.js +0 -31
  363. package/esm2015/lib/core/models/SPG/incomeStructureAccount.model.js +0 -81
  364. package/esm2015/lib/core/models/SPG/organizationType.model.js +0 -12
  365. package/esm2015/lib/core/models/SSS/component.model.js +0 -44
  366. package/esm2015/lib/core/models/SSS/group.model.js +0 -30
  367. package/esm2015/lib/core/models/SSS/log.model.js +0 -29
  368. package/esm2015/lib/core/models/SSS/securityConfiguration.model.js +0 -20
  369. package/esm2015/lib/core/models/SSS/sistema.js +0 -71
  370. package/esm2015/lib/core/models/SSS/user.model.js +0 -32
  371. package/esm2015/lib/core/models/SSS/userDetail.model.js +0 -73
  372. package/esm2015/lib/core/models/SSS/userPermit.model.js +0 -47
  373. package/esm2015/lib/core/models/SSS/userRights.model.js +0 -104
  374. package/esm2015/lib/core/models/STB/MCargosAdicionales.js +0 -84
  375. package/esm2015/lib/core/models/STB/deduction.model.js +0 -90
  376. package/esm2015/lib/core/models/STB/deductionType.model.js +0 -20
  377. package/esm2015/lib/core/models/STB/unidadTributaria.model.js +0 -14
  378. package/esm2015/lib/core/models/basic-model.model.js +0 -8
  379. package/esm2015/lib/shared/components/catalogo/catalogo.component.js +0 -59
  380. package/esm2015/lib/shared/components/catalogo-doble-input/catalogo-doble-input.component.js +0 -70
  381. package/esm2015/lib/shared/components/catalogo-estructuras/catalogo-estructuras.component.js +0 -62
  382. package/esm2015/lib/shared/components/confirm/confirm.component.js +0 -30
  383. package/esm2015/lib/shared/components/icon/icon.component.js +0 -20
  384. package/esm2015/lib/shared/components/table-select/table-select.component.js +0 -85
  385. package/esm2015/lib/shared/material/customPaginator.js +0 -24
  386. package/esm2015/lib/shared/material/material.module.js +0 -145
  387. package/esm2015/lib/shared/pipes/iso-currency.pipe.js +0 -39
  388. package/esm2015/lib/shared/shared.module.js +0 -51
  389. package/esm2015/lib/sigesp.service.js +0 -2084
  390. package/esm2015/lib/validation.service.js +0 -130
  391. package/esm2015/public-api.js +0 -148
  392. package/esm2015/sigesp.js +0 -15
  393. package/fesm2015/sigesp.js.map +0 -1
  394. package/sigesp.d.ts +0 -32
  395. package/sigesp.metadata.json +0 -1
@@ -1,317 +0,0 @@
1
- import { MBasicModel } from "../basic-model.model";
2
- export class MConcursante extends MBasicModel {
3
- constructor(e = null) {
4
- super();
5
- this.idEnterprise = 0;
6
- this.idEmpresa = 0;
7
- this.idConcurso = 0;
8
- this.codigoConcurso = '';
9
- this.idConcursante = 0;
10
- this.cedula = '';
11
- this.idProfesion = 0;
12
- this.profesion = '';
13
- this.nombreProfesion = '';
14
- this.fechaInscripcion = '';
15
- this.nombres = '';
16
- this.apellidos = '';
17
- this.direccion = '';
18
- this.fechaNacimiento = '';
19
- this.estadoCivil = '';
20
- this.codigoPais = '';
21
- this.nombrePais = '';
22
- this.codigoEstado = '';
23
- this.nombreEstado = '';
24
- this.nacionalidad = '';
25
- this.telefono = '';
26
- this.celular = '';
27
- this.correo = '';
28
- this.genero = '';
29
- this.nivelAcademico = 0;
30
- this.estatusRequisitos = 1;
31
- if (e) {
32
- this.idEnterprise = +e.id_enterprise;
33
- this.idEmpresa = +e.id_empresa;
34
- this.idConcurso = parseInt(e.id_concurso);
35
- this.codigoConcurso = e.codcon;
36
- this.idConcursante = parseInt(e.id_concursante);
37
- this.cedula = e.cedper;
38
- this.idProfesion = parseInt(e.id_profesion);
39
- this.profesion = e.profesion;
40
- this.nombreProfesion = e.nombre_profesion;
41
- this.fechaInscripcion = e.fecreg;
42
- this.nombres = e.nomper;
43
- this.apellidos = e.apeper;
44
- this.direccion = e.dirper;
45
- this.fechaNacimiento = e.fecnacper;
46
- this.estadoCivil = e.estcivper;
47
- this.codigoPais = e.codpai;
48
- this.nombrePais = e.nombre_pais;
49
- this.codigoEstado = e.codest;
50
- this.nombreEstado = e.nombre_estado;
51
- this.nacionalidad = e.nacper;
52
- this.telefono = e.telhabper;
53
- this.celular = e.telmovper;
54
- this.correo = e.emaper;
55
- this.genero = e.sexper;
56
- this.nivelAcademico = parseInt(e.nivacaper);
57
- this.estatusRequisitos = parseInt(e.estconper);
58
- }
59
- }
60
- dataInterface() {
61
- return {
62
- id_enterprise: this.idEnterprise.toString(),
63
- id_empresa: this.idEmpresa,
64
- id_concurso: this.idConcurso.toString(),
65
- codcon: this.codigoConcurso,
66
- id_concursante: this.idConcursante.toString(),
67
- cedper: this.cedula,
68
- id_profesion: this.idProfesion.toString(),
69
- profesion: this.profesion,
70
- nombre_profesion: this.nombreProfesion,
71
- fecreg: this.fechaInscripcion,
72
- nomper: this.nombres,
73
- apeper: this.apellidos,
74
- dirper: this.direccion,
75
- fecnacper: this.fechaNacimiento,
76
- estcivper: this.estadoCivil,
77
- codpai: this.codigoPais,
78
- nombre_pais: this.nombrePais,
79
- codest: this.codigoEstado,
80
- nombre_estado: this.nombreEstado,
81
- nacper: this.nacionalidad,
82
- telhabper: this.telefono,
83
- telmovper: this.celular,
84
- emaper: this.correo,
85
- sexper: this.genero,
86
- nivacaper: this.nivelAcademico.toString(),
87
- estconper: this.estatusRequisitos.toString()
88
- };
89
- }
90
- }
91
- export class MTrabajosConcursantes extends MBasicModel {
92
- constructor(e) {
93
- super();
94
- this.idEnterprise = 0;
95
- this.idEmpresa = 0;
96
- this.idConcurso = 0;
97
- this.idConcursante = 0;
98
- this.idTrabajo = 0;
99
- this.codigo = '';
100
- this.empresaTrabajoAnterior = '';
101
- this.cargoTrabajoAnterior = '';
102
- this.fechaIngreso = '';
103
- this.fechaRetiro = '';
104
- if (e) {
105
- this.idEnterprise = +e.id_enterprise;
106
- this.idEmpresa = +e.id_empresa;
107
- this.idConcurso = parseInt(e.id_concurso);
108
- this.idConcursante = parseInt(e.id_concursante);
109
- this.idTrabajo = parseInt(e.id_trabajocon);
110
- this.codigo = e.codtraper;
111
- this.empresaTrabajoAnterior = e.emptraper;
112
- this.cargoTrabajoAnterior = e.cartraant;
113
- this.fechaIngreso = e.fecingtraant;
114
- this.fechaRetiro = e.fecrettraant;
115
- }
116
- else {
117
- this.isNew = true;
118
- }
119
- }
120
- dataInterface() {
121
- return {
122
- id_enterprise: this.idEnterprise.toString(),
123
- id_empresa: this.idEmpresa,
124
- id_concurso: this.idConcurso.toString(),
125
- id_concursante: this.idConcursante.toString(),
126
- id_trabajocon: this.idTrabajo.toString(),
127
- codtraper: this.codigo,
128
- emptraper: this.empresaTrabajoAnterior,
129
- cartraant: this.cargoTrabajoAnterior,
130
- fecingtraant: this.fechaIngreso,
131
- fecrettraant: this.fechaRetiro
132
- };
133
- }
134
- }
135
- export class MEstudiosConcursantes extends MBasicModel {
136
- constructor(e = null) {
137
- super();
138
- this.idEnterprise = 0;
139
- this.idEmpresa = 0;
140
- this.idConcurso = 0;
141
- this.idConcursante = 0;
142
- this.idEstudio = 0;
143
- this.codigoEstudio = '';
144
- this.institutoEstudio = '';
145
- this.descripcionEstudio = '';
146
- this.fechaInicioEstudio = '';
147
- this.fechaFinEstudio = '';
148
- this.tituloObtenido = 0;
149
- this.yearAprobados = 0;
150
- this.horasEstudiosRealizadas = 0;
151
- if (e) {
152
- this.idEnterprise = +e.id_enterprise;
153
- this.idEmpresa = +e.id_empresa;
154
- this.idConcurso = parseInt(e.id_concurso);
155
- this.idConcursante = parseInt(e.id_concursante);
156
- this.idEstudio = parseInt(e.id_estudiocon);
157
- this.codigoEstudio = e.codestrea;
158
- this.institutoEstudio = e.insestper;
159
- this.descripcionEstudio = e.desestper;
160
- this.fechaInicioEstudio = e.fecinireaest;
161
- this.fechaFinEstudio = e.fecfinestrea;
162
- this.tituloObtenido = parseInt(e.titestper);
163
- this.yearAprobados = parseInt(e.anoaprestper);
164
- this.horasEstudiosRealizadas = parseInt(e.horestrea);
165
- }
166
- else {
167
- this.isNew = true;
168
- }
169
- }
170
- dataInterface() {
171
- return {
172
- id_enterprise: this.idEnterprise.toString(),
173
- id_empresa: this.idEmpresa,
174
- id_concurso: this.idConcurso.toString(),
175
- id_concursante: this.idConcursante.toString(),
176
- id_estudiocon: this.idEstudio.toString(),
177
- codestrea: this.codigoEstudio,
178
- insestper: this.institutoEstudio,
179
- desestper: this.descripcionEstudio,
180
- fecinireaest: this.fechaInicioEstudio,
181
- fecfinestrea: this.fechaFinEstudio,
182
- titestper: this.tituloObtenido.toString(),
183
- anoaprestper: this.yearAprobados.toString(),
184
- horestrea: this.horasEstudiosRealizadas.toString(),
185
- };
186
- }
187
- }
188
- export class MExperienciaLaboral extends MBasicModel {
189
- constructor(e = null) {
190
- super();
191
- this.idEmpresa = 0;
192
- this.idConcurso = 0;
193
- this.idConcursante = 0;
194
- this.idTrabajoConcursante = 0;
195
- this.codigoTrabajo = '';
196
- this.empresa = '';
197
- this.cargo = '';
198
- this.fechaIngreso = '';
199
- this.fechaRetiro = '';
200
- if (e) {
201
- this.idEmpresa = parseInt(e.id_empresa);
202
- this.idConcursante = parseInt(e.id_concurso);
203
- this.idConcursante = parseInt(e.id_concursante);
204
- this.idTrabajoConcursante = parseInt(e.id_trabajocon);
205
- this.codigoTrabajo = e.codtra;
206
- this.empresa = e.emptraper;
207
- this.cargo = e.cartraant;
208
- this.fechaIngreso = e.fecingtraant;
209
- this.fechaRetiro = e.fecrettraant;
210
- }
211
- else {
212
- this.isNew = true;
213
- }
214
- }
215
- dataInterface() {
216
- return {
217
- id_empresa: this.idEmpresa.toString(),
218
- id_concurso: this.idConcurso.toString(),
219
- id_concursante: this.idConcursante.toString(),
220
- id_trabajocon: this.idTrabajoConcursante.toString(),
221
- codtra: this.codigoTrabajo,
222
- emptraper: this.empresa,
223
- cartraant: this.cargo,
224
- fecingtraant: this.fechaIngreso,
225
- fecrettraant: this.fechaRetiro
226
- };
227
- }
228
- }
229
- export class MFamiliaConcursante extends MBasicModel {
230
- constructor(e = null) {
231
- super();
232
- this.idEnterprise = 0;
233
- this.idEmpresa = 0;
234
- this.idConcurso = 0;
235
- this.idConcursante = 0;
236
- this.idFamiliar = 0;
237
- this.codigo = '';
238
- this.cedula = '';
239
- this.nombre = '';
240
- this.apellido = '';
241
- this.sexo = '';
242
- this.nexo = '';
243
- this.fecha = '';
244
- if (e) {
245
- this.idEnterprise = +e.id_enterprise;
246
- this.idEmpresa = +e.id_empresa;
247
- this.idConcurso = parseInt(e.id_concurso);
248
- this.idConcursante = parseInt(e.id_concursante);
249
- this.idFamiliar = parseInt(e.id_familiacon);
250
- this.codigo = e.codfam;
251
- this.cedula = e.cedfam;
252
- this.nombre = e.nomfam;
253
- this.apellido = e.apefam;
254
- this.sexo = e.sexfam;
255
- this.nexo = e.nexfam;
256
- this.fecha = e.fecnacfam;
257
- }
258
- else {
259
- this.isNew = true;
260
- }
261
- }
262
- dataInterface() {
263
- return {
264
- id_enterprise: this.idEnterprise.toString(),
265
- id_empresa: this.idEmpresa,
266
- id_concurso: this.idConcurso.toString(),
267
- id_concursante: this.idConcursante.toString(),
268
- id_familiacon: this.idFamiliar.toString(),
269
- codfam: this.codigo,
270
- cedfam: this.cedula,
271
- nomfam: this.nombre,
272
- apefam: this.apellido,
273
- sexfam: this.sexo,
274
- nexfam: this.nexo,
275
- fecnacfam: this.fecha,
276
- };
277
- }
278
- }
279
- export class MFormacionInformal extends MBasicModel {
280
- constructor(e = null) {
281
- super();
282
- this.idEnterprise = 0;
283
- this.idEmpresa = 0;
284
- this.idConcurso = 0;
285
- this.idConcursante = 0;
286
- this.idCurso = 0;
287
- this.codigoCurso = '';
288
- this.descripcionCurso = '';
289
- this.horasCurso = 0;
290
- if (e) {
291
- this.idEnterprise = +e.id_enterprise;
292
- this.idEmpresa = +e.id_empresa;
293
- this.idConcursante = parseInt(e.id_concurso);
294
- this.idConcursante = parseInt(e.id_concursante);
295
- this.idCurso = parseInt(e.id_curso);
296
- this.codigoCurso = e.codcur;
297
- this.descripcionCurso = e.desestrea;
298
- this.horasCurso = parseInt(e.horestrea);
299
- }
300
- else {
301
- this.isNew = true;
302
- }
303
- }
304
- dataInterface() {
305
- return {
306
- id_enterprise: this.idEnterprise.toString(),
307
- id_empresa: this.idEmpresa,
308
- id_concurso: this.idConcurso.toString(),
309
- id_concursante: this.idConcurso.toString(),
310
- id_curso: this.idCurso.toString(),
311
- codcur: this.codigoCurso,
312
- desestrea: this.descripcionCurso,
313
- horestrea: this.horasCurso.toString()
314
- };
315
- }
316
- }
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTUNvbmN1cnNhbnRlLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L0FwcFNlcnYvd3d3L3NpZ2VzcF9tb2R1bG9zL3NpZ2VzcF9jb3JlL3Byb2plY3RzL3NpZ2VzcC9zcmMvIiwic291cmNlcyI6WyJsaWIvY29yZS9tb2RlbHMvU05PL01Db25jdXJzYW50ZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBNEJ6QyxZQUFhLElBQWUsSUFBSTtRQUM1QixLQUFLLEVBQUUsQ0FBQztRQTVCTCxpQkFBWSxHQUFRLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsQ0FBQyxDQUFDO1FBQ25CLGVBQVUsR0FBUyxDQUFDLENBQUM7UUFDckIsbUJBQWMsR0FBUyxFQUFFLENBQUM7UUFDMUIsa0JBQWEsR0FBUyxDQUFDLENBQUM7UUFDeEIsV0FBTSxHQUFTLEVBQUUsQ0FBQztRQUNsQixnQkFBVyxHQUFTLENBQUMsQ0FBQztRQUN0QixjQUFTLEdBQVEsRUFBRSxDQUFDO1FBQ3BCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUFTLEVBQUUsQ0FBQztRQUM1QixZQUFPLEdBQVMsRUFBRSxDQUFDO1FBQ25CLGNBQVMsR0FBUyxFQUFFLENBQUM7UUFDckIsY0FBUyxHQUFTLEVBQUUsQ0FBQztRQUNyQixvQkFBZSxHQUFTLEVBQUUsQ0FBQztRQUMzQixnQkFBVyxHQUFTLEVBQUUsQ0FBQztRQUN2QixlQUFVLEdBQVMsRUFBRSxDQUFDO1FBQ3RCLGVBQVUsR0FBUyxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsaUJBQVksR0FBUyxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFTLEVBQUUsQ0FBQztRQUNwQixZQUFPLEdBQVMsRUFBRSxDQUFD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QUMsU0FBUyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ0gsSUFBSSxDQUFDLEtBQUssR0FBQyxJQUFJLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU0sYUFBYTtRQUNoQixPQUFPO1lBQ0gsYUFBYSxFQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFO1lBQzFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUztZQUMxQixXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDdkMsY0FBYyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1lBQzFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtZQUNqQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDeEIsU0FBUyxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDaEMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFO1NBQ3hDLENBQUE7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQ29uY3Vyc2FudGUsIElFc3R1ZGlvc0NvbmN1cnNhbnRlcywgSUV4cGVyaWVuY2lhTGFib3JhbCwgSUZhbWlsaWFDb25jdXJzYW50ZSwgSUZvcm1hY2lvbkluZm9ybWFsLCBJVHJhYmFqb3NDb25jdXJzYW50ZXMgfSBmcm9tIFwiLi4vLi4vaW50ZXJmYWNlcy9SZWN1cnNvc0h1bWFub3NcIjtcclxuaW1wb3J0IHsgTUJhc2ljTW9kZWwgfSBmcm9tIFwiLi4vYmFzaWMtbW9kZWwubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBNQ29uY3Vyc2FudGUgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvQ29uY3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBjZWR1bGE6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBpZFByb2Zlc2lvbjogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgcHJvZmVzaW9uOnN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVQcm9mZXNpb246c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5zY3JpcGNpb246IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBub21icmVzOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgYXBlbGxpZG9zOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZGlyZWNjaW9uOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZmVjaGFOYWNpbWllbnRvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZXN0YWRvQ2l2aWw6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjb2RpZ29QYWlzOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgbm9tYnJlUGFpczogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvZGlnb0VzdGFkbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZUVzdGFkbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5hY2lvbmFsaWRhZDogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIHRlbGVmb25vOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY2VsdWxhcjogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNvcnJlbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGdlbmVybzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5pdmVsQWNhZGVtaWNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBlc3RhdHVzUmVxdWlzaXRvczogbnVtYmVyPTE7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklDb25jdXJzYW50ZT1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0NvbmN1cnNvPWUuY29kY29uO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuY2VkdWxhPWUuY2VkcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmlkUHJvZmVzaW9uPXBhcnNlSW50KGUuaWRfcHJvZmVzaW9uKTtcclxuICAgICAgICAgICAgdGhpcy5wcm9mZXNpb249ZS5wcm9mZXNpb247XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlUHJvZmVzaW9uPWUubm9tYnJlX3Byb2Zlc2lvbjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluc2NyaXBjaW9uPWUuZmVjcmVnO1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZXM9ZS5ub21wZXI7XHJcbiAgICAgICAgICAgIHRoaXMuYXBlbGxpZG9zPWUuYXBlcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmRpcmVjY2lvbj1lLmRpcnBlcjtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYU5hY2ltaWVudG89ZS5mZWNuYWNwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YWRvQ2l2aWw9ZS5lc3RjaXZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvUGFpcz1lLmNvZHBhaTtcclxuICAgICAgICAgICAgdGhpcy5ub21icmVQYWlzPWUubm9tYnJlX3BhaXM7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvRXN0YWRvPWUuY29kZXN0O1xyXG4gICAgICAgICAgICB0aGlzLm5vbWJyZUVzdGFkbz1lLm5vbWJyZV9lc3RhZG87XHJcbiAgICAgICAgICAgIHRoaXMubmFjaW9uYWxpZGFkPWUubmFjcGVyO1xyXG4gICAgICAgICAgICB0aGlzLnRlbGVmb25vPWUudGVsaGFicGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNlbHVsYXI9ZS50ZWxtb3ZwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuY29ycmVvPWUuZW1hcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmdlbmVybz1lLnNleHBlcjtcclxuICAgICAgICAgICAgdGhpcy5uaXZlbEFjYWRlbWljbz1wYXJzZUludChlLm5pdmFjYXBlcik7XHJcbiAgICAgICAgICAgIHRoaXMuZXN0YXR1c1JlcXVpc2l0b3M9cGFyc2VJbnQoZS5lc3Rjb25wZXIpO1xyXG5cclxuICAgICAgICB9ICAgXHJcbiAgICB9XHJcbiAgICBcclxuICAgIHB1YmxpYyBkYXRhSW50ZXJmYWNlKCk6SUNvbmN1cnNhbnRle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZW1wcmVzYcKgOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzbzogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZGNvbjogdGhpcy5jb2RpZ29Db25jdXJzbyxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBjZWRwZXI6IHRoaXMuY2VkdWxhLFxyXG4gICAgICAgICAgICBpZF9wcm9mZXNpb246IHRoaXMuaWRQcm9mZXNpb24udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgcHJvZmVzaW9uOiB0aGlzLnByb2Zlc2lvbixcclxuICAgICAgICAgICAgbm9tYnJlX3Byb2Zlc2lvbjogdGhpcy5ub21icmVQcm9mZXNpb24sXHJcbiAgICAgICAgICAgIGZlY3JlZzogdGhpcy5mZWNoYUluc2NyaXBjaW9uLFxyXG4gICAgICAgICAgICBub21wZXI6IHRoaXMubm9tYnJlcyxcclxuICAgICAgICAgICAgYXBlcGVyOiB0aGlzLmFwZWxsaWRvcyxcclxuICAgICAgICAgICAgZGlycGVyOiB0aGlzLmRpcmVjY2lvbixcclxuICAgICAgICAgICAgZmVjbmFjcGVyOiB0aGlzLmZlY2hhTmFjaW1pZW50byxcclxuICAgICAgICAgICAgZXN0Y2l2cGVyOiB0aGlzLmVzdGFkb0NpdmlsLFxyXG4gICAgICAgICAgICBjb2RwYWk6IHRoaXMuY29kaWdvUGFpcyxcclxuICAgICAgICAgICAgbm9tYnJlX3BhaXM6IHRoaXMubm9tYnJlUGFpcyxcclxuICAgICAgICAgICAgY29kZXN0OiB0aGlzLmNvZGlnb0VzdGFkbyxcclxuICAgICAgICAgICAgbm9tYnJlX2VzdGFkbzogdGhpcy5ub21icmVFc3RhZG8sXHJcbiAgICAgICAgICAgIG5hY3BlcjogdGhpcy5uYWNpb25hbGlkYWQsXHJcbiAgICAgICAgICAgIHRlbGhhYnBlcjogdGhpcy50ZWxlZm9ubyxcclxuICAgICAgICAgICAgdGVsbW92cGVyOiB0aGlzLmNlbHVsYXIsXHJcbiAgICAgICAgICAgIGVtYXBlcjogdGhpcy5jb3JyZW8sXHJcbiAgICAgICAgICAgIHNleHBlcjogdGhpcy5nZW5lcm8sXHJcbiAgICAgICAgICAgIG5pdmFjYXBlcjogdGhpcy5uaXZlbEFjYWRlbWljby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBlc3Rjb25wZXI6IHRoaXMuZXN0YXR1c1JlcXVpc2l0b3MudG9TdHJpbmcoKVxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNVHJhYmFqb3NDb25jdXJzYW50ZXMgZXh0ZW5kcyBNQmFzaWNNb2RlbCB7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRUcmFiYWpvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZW1wcmVzYVRyYWJham9BbnRlcmlvcjpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgY2FyZ29UcmFiYWpvQW50ZXJpb3I6c3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzbzpzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgZmVjaGFSZXRpcm86c3RyaW5nPScnO1xyXG4gICAgXHJcbiAgICBjb25zdHJ1Y3RvciAoZT86SVRyYWJham9zQ29uY3Vyc2FudGVzKSB7ICBcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPStlLmlkX2VtcHJlc2HCoFxyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc289cGFyc2VJbnQoZS5pZF9jb25jdXJzbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNhbnRlKTtcclxuICAgICAgICAgICAgdGhpcy5pZFRyYWJham89cGFyc2VJbnQoZS5pZF90cmFiYWpvY29uKTtcclxuICAgICAgICAgICAgdGhpcy5jb2RpZ289ZS5jb2R0cmFwZXI7XHJcbiAgICAgICAgICAgIHRoaXMuZW1wcmVzYVRyYWJham9BbnRlcmlvcj1lLmVtcHRyYXBlcjtcclxuICAgICAgICAgICAgdGhpcy5jYXJnb1RyYWJham9BbnRlcmlvcj1lLmNhcnRyYWFudDtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYUluZ3Jlc289ZS5mZWNpbmd0cmFhbnQ7XHJcbiAgICAgICAgICAgIHRoaXMuZmVjaGFSZXRpcm89ZS5mZWNyZXR0cmFhbnQ7XHJcbiAgICAgICAgfSAgIGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklUcmFiYWpvc0NvbmN1cnNhbnRlc3tcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzYW50ZTogdGhpcy5pZENvbmN1cnNhbnRlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX3RyYWJham9jb246IHRoaXMuaWRUcmFiYWpvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHRyYXBlcjogdGhpcy5jb2RpZ28sXHJcbiAgICAgICAgICAgIGVtcHRyYXBlcjogdGhpcy5lbXByZXNhVHJhYmFqb0FudGVyaW9yLFxyXG4gICAgICAgICAgICBjYXJ0cmFhbnQ6IHRoaXMuY2FyZ29UcmFiYWpvQW50ZXJpb3IsIFxyXG4gICAgICAgICAgICBmZWNpbmd0cmFhbnQ6IHRoaXMuZmVjaGFJbmdyZXNvLCBcclxuICAgICAgICAgICAgZmVjcmV0dHJhYW50OiB0aGlzLmZlY2hhUmV0aXJvXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgTUVzdHVkaW9zQ29uY3Vyc2FudGVzIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcblx0cHVibGljIGlkRXN0dWRpbzogbnVtYmVyPTA7XHJcblx0cHVibGljIGNvZGlnb0VzdHVkaW86IHN0cmluZz0nJztcclxuXHRwdWJsaWMgaW5zdGl0dXRvRXN0dWRpbzogc3RyaW5nPScnO1xyXG5cdHB1YmxpYyBkZXNjcmlwY2lvbkVzdHVkaW86IHN0cmluZz0nJztcclxuXHRwdWJsaWMgZmVjaGFJbmljaW9Fc3R1ZGlvOiBzdHJpbmc9Jyc7XHJcblx0cHVibGljIGZlY2hhRmluRXN0dWRpbzogc3RyaW5nPScnO1xyXG5cdHB1YmxpYyB0aXR1bG9PYnRlbmlkbzogbnVtYmVyPTA7XHJcblx0cHVibGljIHllYXJBcHJvYmFkb3M6IG51bWJlcj0wO1xyXG5cdHB1YmxpYyBob3Jhc0VzdHVkaW9zUmVhbGl6YWRhczogbnVtYmVyPTA7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklFc3R1ZGlvc0NvbmN1cnNhbnRlcz1udWxsKSB7XHJcbiAgICAgICAgc3VwZXIoKTsgIFxyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG5cdFx0XHR0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcblx0XHRcdHRoaXMuaWRFc3R1ZGlvPXBhcnNlSW50KGUuaWRfZXN0dWRpb2Nvbik7XHJcblx0XHRcdHRoaXMuY29kaWdvRXN0dWRpbz1lLmNvZGVzdHJlYTtcclxuXHRcdFx0dGhpcy5pbnN0aXR1dG9Fc3R1ZGlvPWUuaW5zZXN0cGVyO1xyXG5cdFx0XHR0aGlzLmRlc2NyaXBjaW9uRXN0dWRpbz1lLmRlc2VzdHBlcjtcclxuXHRcdFx0dGhpcy5mZWNoYUluaWNpb0VzdHVkaW89ZS5mZWNpbmlyZWFlc3Q7XHJcblx0XHRcdHRoaXMuZmVjaGFGaW5Fc3R1ZGlvPWUuZmVjZmluZXN0cmVhO1xyXG5cdFx0XHR0aGlzLnRpdHVsb09idGVuaWRvPXBhcnNlSW50KGUudGl0ZXN0cGVyKTtcclxuXHRcdFx0dGhpcy55ZWFyQXByb2JhZG9zPXBhcnNlSW50KGUuYW5vYXByZXN0cGVyKTtcclxuXHRcdFx0dGhpcy5ob3Jhc0VzdHVkaW9zUmVhbGl6YWRhcz1wYXJzZUludChlLmhvcmVzdHJlYSk7XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuaXNOZXc9dHJ1ZTtcclxuICAgICAgICB9ICBcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRXN0dWRpb3NDb25jdXJzYW50ZXN7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgaWRfZW50ZXJwcmlzZTp0aGlzLmlkRW50ZXJwcmlzZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9lbXByZXNhwqA6dGhpcy5pZEVtcHJlc2EsXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNvOiB0aGlzLmlkQ29uY3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG5cdFx0XHRpZF9lc3R1ZGlvY29uOiB0aGlzLmlkRXN0dWRpby50b1N0cmluZygpLFxyXG5cdFx0XHRjb2Rlc3RyZWE6IHRoaXMuY29kaWdvRXN0dWRpbyxcclxuXHRcdFx0aW5zZXN0cGVyOiB0aGlzLmluc3RpdHV0b0VzdHVkaW8sXHJcblx0XHRcdGRlc2VzdHBlcjogdGhpcy5kZXNjcmlwY2lvbkVzdHVkaW8sXHJcblx0XHRcdGZlY2luaXJlYWVzdDogdGhpcy5mZWNoYUluaWNpb0VzdHVkaW8sXHJcblx0XHRcdGZlY2ZpbmVzdHJlYTogdGhpcy5mZWNoYUZpbkVzdHVkaW8sXHJcblx0XHRcdHRpdGVzdHBlcjogdGhpcy50aXR1bG9PYnRlbmlkby50b1N0cmluZygpLFxyXG5cdFx0XHRhbm9hcHJlc3RwZXI6IHRoaXMueWVhckFwcm9iYWRvcy50b1N0cmluZygpLFxyXG5cdFx0XHRob3Jlc3RyZWE6IHRoaXMuaG9yYXNFc3R1ZGlvc1JlYWxpemFkYXMudG9TdHJpbmcoKSxcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNRXhwZXJpZW5jaWFMYWJvcmFsIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZFRyYWJham9Db25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgY29kaWdvVHJhYmFqbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGVtcHJlc2E6IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBjYXJnbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhSW5ncmVzbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGZlY2hhUmV0aXJvOiBzdHJpbmc9Jyc7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklFeHBlcmllbmNpYUxhYm9yYWw9bnVsbCkgeyAgXHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgICAgICBpZiAoZSl7XHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPXBhcnNlSW50KGUuaWRfZW1wcmVzYSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNvKTtcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNhbnRlPXBhcnNlSW50KGUuaWRfY29uY3Vyc2FudGUpO1xyXG4gICAgICAgICAgICB0aGlzLmlkVHJhYmFqb0NvbmN1cnNhbnRlPXBhcnNlSW50KGUuaWRfdHJhYmFqb2Nvbik7XHJcbiAgICAgICAgICAgIHRoaXMuY29kaWdvVHJhYmFqbz1lLmNvZHRyYTtcclxuICAgICAgICAgICAgdGhpcy5lbXByZXNhPWUuZW1wdHJhcGVyO1xyXG4gICAgICAgICAgICB0aGlzLmNhcmdvPWUuY2FydHJhYW50O1xyXG4gICAgICAgICAgICB0aGlzLmZlY2hhSW5ncmVzbz1lLmZlY2luZ3RyYWFudDtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYVJldGlybz1lLmZlY3JldHRyYWFudDtcclxuICAgICAgICB9ICBlbHNle1xyXG4gICAgICAgICAgICB0aGlzLmlzTmV3PXRydWU7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRXhwZXJpZW5jaWFMYWJvcmFse1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2E6IHRoaXMuaWRFbXByZXNhLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNvOiB0aGlzLmlkQ29uY3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc2FudGU6IHRoaXMuaWRDb25jdXJzYW50ZS50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF90cmFiYWpvY29uOiB0aGlzLmlkVHJhYmFqb0NvbmN1cnNhbnRlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGNvZHRyYTogdGhpcy5jb2RpZ29UcmFiYWpvLFxyXG4gICAgICAgICAgICBlbXB0cmFwZXI6IHRoaXMuZW1wcmVzYSxcclxuICAgICAgICAgICAgY2FydHJhYW50OiB0aGlzLmNhcmdvLFxyXG4gICAgICAgICAgICBmZWNpbmd0cmFhbnQ6IHRoaXMuZmVjaGFJbmdyZXNvLFxyXG4gICAgICAgICAgICBmZWNyZXR0cmFhbnQ6IHRoaXMuZmVjaGFSZXRpcm9cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBNRmFtaWxpYUNvbmN1cnNhbnRlIGV4dGVuZHMgTUJhc2ljTW9kZWx7XHJcbiAgICBwdWJsaWMgaWRFbnRlcnByaXNlOm51bWJlcj0wO1xyXG4gICAgcHVibGljIGlkRW1wcmVzYTpudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgaWRDb25jdXJzbzogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRDb25jdXJzYW50ZTogbnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRGYW1pbGlhcjogbnVtYmVyPTA7IFxyXG4gICAgcHVibGljIGNvZGlnbzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGNlZHVsYTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5vbWJyZTogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIGFwZWxsaWRvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgc2V4bzogc3RyaW5nPScnO1xyXG4gICAgcHVibGljIG5leG86IHN0cmluZz0nJzsgXHJcbiAgICBwdWJsaWMgZmVjaGE6IHN0cmluZz0nJztcclxuICAgIFxyXG4gICAgY29uc3RydWN0b3IgKGU6SUZhbWlsaWFDb25jdXJzYW50ZT1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpO1xyXG4gICAgICAgIGlmIChlKXtcclxuICAgICAgICAgICAgdGhpcy5pZEVudGVycHJpc2U9K2UuaWRfZW50ZXJwcmlzZTsgIFxyXG4gICAgICAgICAgICB0aGlzLmlkRW1wcmVzYT0rZS5pZF9lbXByZXNhwqBcclxuICAgICAgICAgICAgdGhpcy5pZENvbmN1cnNvPXBhcnNlSW50KGUuaWRfY29uY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzYW50ZSk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRGYW1pbGlhcj1wYXJzZUludChlLmlkX2ZhbWlsaWFjb24pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnbz1lLmNvZGZhbTtcclxuICAgICAgICAgICAgdGhpcy5jZWR1bGE9ZS5jZWRmYW07XHJcbiAgICAgICAgICAgIHRoaXMubm9tYnJlPWUubm9tZmFtO1xyXG4gICAgICAgICAgICB0aGlzLmFwZWxsaWRvPWUuYXBlZmFtO1xyXG4gICAgICAgICAgICB0aGlzLnNleG89ZS5zZXhmYW07XHJcbiAgICAgICAgICAgIHRoaXMubmV4bz1lLm5leGZhbTtcclxuICAgICAgICAgICAgdGhpcy5mZWNoYT1lLmZlY25hY2ZhbVxyXG4gICAgICAgIH0gICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gICAgcHVibGljIGRhdGFJbnRlcmZhY2UoKTpJRmFtaWxpYUNvbmN1cnNhbnRle1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIGlkX2VudGVycHJpc2U6dGhpcy5pZEVudGVycHJpc2UudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZW1wcmVzYcKgOnRoaXMuaWRFbXByZXNhLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzbzogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2NvbmN1cnNhbnRlOiB0aGlzLmlkQ29uY3Vyc2FudGUudG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgaWRfZmFtaWxpYWNvbjogdGhpcy5pZEZhbWlsaWFyLnRvU3RyaW5nKCksIFxyXG4gICAgICAgICAgICBjb2RmYW06IHRoaXMuY29kaWdvLFxyXG4gICAgICAgICAgICBjZWRmYW06IHRoaXMuY2VkdWxhLFxyXG4gICAgICAgICAgICBub21mYW06IHRoaXMubm9tYnJlLFxyXG4gICAgICAgICAgICBhcGVmYW06IHRoaXMuYXBlbGxpZG8sXHJcbiAgICAgICAgICAgIHNleGZhbTogdGhpcy5zZXhvLFxyXG4gICAgICAgICAgICBuZXhmYW06IHRoaXMubmV4byxcclxuICAgICAgICAgICAgZmVjbmFjZmFtOiB0aGlzLmZlY2hhLFxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIE1Gb3JtYWNpb25JbmZvcm1hbCBleHRlbmRzIE1CYXNpY01vZGVsIHtcclxuICAgIHB1YmxpYyBpZEVudGVycHJpc2U6bnVtYmVyPTA7XHJcbiAgICBwdWJsaWMgaWRFbXByZXNhOm51bWJlcj0wOyBcclxuICAgIHB1YmxpYyBpZENvbmN1cnNvOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZENvbmN1cnNhbnRlOiBudW1iZXI9MDtcclxuICAgIHB1YmxpYyBpZEN1cnNvOiBudW1iZXI9MDsgXHJcbiAgICBwdWJsaWMgY29kaWdvQ3Vyc286IHN0cmluZz0nJztcclxuICAgIHB1YmxpYyBkZXNjcmlwY2lvbkN1cnNvOiBzdHJpbmc9Jyc7XHJcbiAgICBwdWJsaWMgaG9yYXNDdXJzbzogbnVtYmVyPTA7XHJcbiAgICBcclxuICAgIGNvbnN0cnVjdG9yIChlOklGb3JtYWNpb25JbmZvcm1hbD1udWxsKSB7ICBcclxuICAgICAgICBzdXBlcigpXHJcbiAgICAgICAgaWYgKGUpe1xyXG4gICAgICAgICAgICB0aGlzLmlkRW50ZXJwcmlzZT0rZS5pZF9lbnRlcnByaXNlOyAgXHJcbiAgICAgICAgICAgIHRoaXMuaWRFbXByZXNhPStlLmlkX2VtcHJlc2HCoFxyXG4gICAgICAgICAgICB0aGlzLmlkQ29uY3Vyc2FudGU9cGFyc2VJbnQoZS5pZF9jb25jdXJzbyk7XHJcbiAgICAgICAgICAgIHRoaXMuaWRDb25jdXJzYW50ZT1wYXJzZUludChlLmlkX2NvbmN1cnNhbnRlKTtcclxuICAgICAgICAgICAgdGhpcy5pZEN1cnNvPXBhcnNlSW50KGUuaWRfY3Vyc28pO1xyXG4gICAgICAgICAgICB0aGlzLmNvZGlnb0N1cnNvPWUuY29kY3VyO1xyXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXBjaW9uQ3Vyc289ZS5kZXNlc3RyZWE7XHJcbiAgICAgICAgICAgIHRoaXMuaG9yYXNDdXJzbz1wYXJzZUludChlLmhvcmVzdHJlYSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5pc05ldz10cnVlO1xyXG4gICAgICAgIH0gIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBwdWJsaWMgZGF0YUludGVyZmFjZSgpOklGb3JtYWNpb25JbmZvcm1hbHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBpZF9lbnRlcnByaXNlOnRoaXMuaWRFbnRlcnByaXNlLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2VtcHJlc2HCoDp0aGlzLmlkRW1wcmVzYSxcclxuICAgICAgICAgICAgaWRfY29uY3Vyc286IHRoaXMuaWRDb25jdXJzby50b1N0cmluZygpLFxyXG4gICAgICAgICAgICBpZF9jb25jdXJzYW50ZTogdGhpcy5pZENvbmN1cnNvLnRvU3RyaW5nKCksXHJcbiAgICAgICAgICAgIGlkX2N1cnNvOiB0aGlzLmlkQ3Vyc28udG9TdHJpbmcoKSxcclxuICAgICAgICAgICAgY29kY3VyOiB0aGlzLmNvZGlnb0N1cnNvLFxyXG4gICAgICAgICAgICBkZXNlc3RyZWE6IHRoaXMuZGVzY3JpcGNpb25DdXJzbyxcclxuICAgICAgICAgICAgaG9yZXN0cmVhOiB0aGlzLmhvcmFzQ3Vyc28udG9TdHJpbmcoKVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==