dmencu 0.1.53 → 0.2.1

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 (71) hide show
  1. package/dist/client/unlogged/render-formulario.tsx +21 -1
  2. package/dist/client/unlogged/tipos.d.ts +9 -2
  3. package/dist/client/unlogged/tipos.js +1 -1
  4. package/dist/server/server/app-dmencu.d.ts +4 -0
  5. package/dist/server/server/table-acciones.d.ts +3 -0
  6. package/dist/server/server/table-acciones.js +55 -0
  7. package/dist/server/server/table-estados.d.ts +3 -0
  8. package/dist/server/server/table-estados.js +51 -0
  9. package/dist/server/server/table-estados_acciones.d.ts +3 -0
  10. package/dist/server/server/table-estados_acciones.js +43 -0
  11. package/dist/server/server/table-mis_tareas_tem copy.d.ts +3 -0
  12. package/dist/server/server/table-mis_tareas_tem copy.js +19 -0
  13. package/dist/server/server/table-tareas_tem copy.d.ts +3 -0
  14. package/dist/server/server/table-tareas_tem copy.js +176 -0
  15. package/dist/server/server/table-tareas_tem disponibles.d.ts +3 -0
  16. package/dist/server/server/table-tareas_tem disponibles.js +19 -0
  17. package/dist/server/server/table-tareas_tem_asignables copy.d.ts +3 -0
  18. package/dist/server/server/table-tareas_tem_asignables copy.js +24 -0
  19. package/dist/server/server/table-tareas_tem_asignables.d.ts +5 -0
  20. package/dist/server/server/table-tareas_tem_asignables.js +53 -0
  21. package/dist/server/server/table-tareas_tem_disponibles.d.ts +3 -0
  22. package/dist/server/server/table-tareas_tem_disponibles.js +19 -0
  23. package/dist/server/server/table-tareas_tem_recepcion.d.ts +3 -0
  24. package/dist/server/server/table-tareas_tem_recepcion.js +28 -0
  25. package/dist/server/unlogged/tipos.d.ts +9 -2
  26. package/dist/server/unlogged/tipos.js +1 -1
  27. package/dist/unlogged/unlogged/render-formulario.d.ts +8 -1
  28. package/dist/unlogged/unlogged/render-formulario.js +9 -3
  29. package/dist/unlogged/unlogged/render-formulario.tsx +21 -1
  30. package/dist/unlogged/unlogged/tipos.d.ts +9 -2
  31. package/dist/unlogged/unlogged/tipos.js +1 -1
  32. package/install/esquema_comun.sql +2 -2
  33. package/install/{metadatos/tipoc.tab → tipoc.tab} +14 -12
  34. package/install/{metadatos/tipoc_tipoc.tab → tipoc_tipoc.tab} +24 -22
  35. package/package.json +1 -1
  36. package/dist/client/client/carga-dm/dm-manifest.manifest +0 -70
  37. package/dist/client/client/css/etiquetas-qr.styl +0 -84
  38. package/dist/client/client/service-worker.js +0 -114
  39. package/dist/client/unlogged/digitov.js +0 -59
  40. package/dist/client/unlogged/generador-qr.js +0 -60
  41. package/dist/client/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
  42. package/dist/client/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
  43. package/dist/client/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
  44. package/dist/client/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
  45. package/dist/client/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
  46. package/dist/client/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
  47. package/dist/client/unlogged/img/_login-logo-icon.png +0 -0
  48. package/dist/client/unlogged/img/_logo-128.png +0 -0
  49. package/dist/client/unlogged/img/_logo.png +0 -0
  50. package/dist/server/server/app-dmencu.ts.BASE.js +0 -580
  51. package/dist/server/server/app-dmencu.ts.LOCAL.js +0 -598
  52. package/dist/server/server/app-dmencu.ts.REMOTE.js +0 -582
  53. package/dist/server/server/table-etiquetas.js +0 -48
  54. package/dist/server/server/table-etiquetas_resultado.js +0 -113
  55. package/dist/server/server/table-etiquetas_resultado_plus.js +0 -19
  56. package/dist/server/server/table-mis_relevadores.js +0 -78
  57. package/dist/server/server/table-planchas.js +0 -38
  58. package/dist/server/server/table-relevadores.js +0 -19
  59. package/dist/server/server/table-resultados-test.js +0 -37
  60. package/dist/unlogged/unlogged/consola-errores.js +0 -25
  61. package/dist/unlogged/unlogged/digitov.js +0 -59
  62. package/dist/unlogged/unlogged/generador-qr.js +0 -60
  63. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-192.png +0 -0
  64. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-32.png +0 -0
  65. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-48.png +0 -0
  66. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-512.png +0 -0
  67. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-64.png +0 -0
  68. package/dist/unlogged/unlogged/img/PREJU_2022-logo-dm-72.png +0 -0
  69. package/dist/unlogged/unlogged/img/_login-logo-icon.png +0 -0
  70. package/dist/unlogged/unlogged/img/_logo-128.png +0 -0
  71. package/dist/unlogged/unlogged/img/_logo.png +0 -0
@@ -22,7 +22,7 @@ import {Bloque, BotonFormulario,
22
22
  toPlainForPk,
23
23
  IdCasillero,
24
24
  PreguntaConSiNo,
25
- Texto, Estructura, InformacionHdr, DatosHdrUaPpal, ConfiguracionSorteoFormulario, ResumenEstado, DatosByPassPersistibles, IdOperativo, IdEnc
25
+ Texto, Estructura, InformacionHdr, DatosHdrUaPpal, ConfiguracionSorteoFormulario, ResumenEstado, DatosByPassPersistibles, IdOperativo, IdEnc, Libre
26
26
  } from "./tipos";
27
27
  import{
28
28
  accion_abrir_formulario,
@@ -108,6 +108,15 @@ window.addEventListener('load', ()=>{
108
108
  type CommonAttributes = {className?:string,style?:CSSProperties,id?:string, tabIndex?:number} // CSSProperties
109
109
  type ColorValues = 'primary'|'secondary'|'default'|'inherit'
110
110
 
111
+ export type LibreDespliegueType = (props:{
112
+ key:string
113
+ casillero:Libre
114
+ formulario:Formulario
115
+ forPk:ForPk
116
+ })=>JSX.Element;
117
+
118
+ var LibreDespliegue: LibreDespliegueType
119
+
111
120
  const Button = ({variant, onClick, disabled, children, className, color, size,
112
121
  disableElevation, disableFocusRipple, disableRipple, fullWidth,
113
122
  ...other
@@ -858,6 +867,7 @@ function TextoDespliegue(props:{casillero:Texto, forPk:ForPk}){
858
867
  // var nuevaForPk={...forPk, formulario:idFormularioDestino};
859
868
  // nuevaForPk[nuevoCampoPk] = defBoton.num
860
869
  dispatch(dispatchers.CAMBIAR_FORMULARIO({forPk:defBoton.forPk, apilarVuelta:true}));
870
+ dispatchByPass(accion_abrir_formulario,{forPk:defBoton.forPk})
861
871
  }
862
872
  return <DesplegarCasillero
863
873
  id={`${id}-externo`}
@@ -1248,6 +1258,7 @@ function DesplegarContenidoInternoBloqueOFormulario(props:{bloqueOFormulario:Blo
1248
1258
  casillero.tipoc == "CONS"?<ConsistenciaDespliegue key={key} casillero={casillero} forPk={props.forPk}/>:
1249
1259
  casillero.tipoc == "CP"?<ConjuntoPreguntasDespliegue key={key} casillero={casillero} formulario={props.formulario} forPk={props.forPk}/>:
1250
1260
  casillero.tipoc == "TEXTO"?<TextoDespliegue key={key} casillero={casillero} forPk={props.forPk}/>:
1261
+ casillero.tipoc == "LIBRE"?<LibreDespliegue key={key} casillero={casillero} formulario={props.formulario} forPk={props.forPk}/>:
1251
1262
  <CasilleroDesconocido key={key} casillero={casillero} forPk={props.forPk}/>
1252
1263
  )
1253
1264
  :i==limiteNoVerTodo?
@@ -2015,6 +2026,15 @@ function loadInstance(){
2015
2026
  //mostrarQuienesSomos();
2016
2027
  }
2017
2028
 
2029
+ export const setLibreDespliegue = (libre:LibreDespliegueType)=>LibreDespliegue = libre
2030
+
2031
+ setLibreDespliegue((props:{
2032
+ key:string
2033
+ casillero:Libre
2034
+ formulario:Formulario
2035
+ forPk:ForPk
2036
+ })=><div key={props.key} id={props.casillero.id_casillero}>este casillero debe redefinirse en la APP final y su uso es exclusivo del área informática</div>)
2037
+
2018
2038
  setCalcularVariables((respuestasRaiz:RespuestasRaiz, forPk:ForPk)=>{
2019
2039
  //TODO GENERALIZAR
2020
2040
  var uasIterar:{
@@ -17,7 +17,7 @@ export declare type IdFin = 'fin';
17
17
  export declare type IdDestino = IdPregunta | IdBloque | IdFin | IdFiltro;
18
18
  export declare type Valor = string | number | null;
19
19
  export declare type TipocDestinos = 'P' | 'CP' | 'B' | 'FILTRO' | 'BF';
20
- export declare type Tipoc = TipocDestinos | 'F' | 'O' | 'OM' | 'CONS' | 'TEXTO';
20
+ export declare type Tipoc = TipocDestinos | 'F' | 'O' | 'OM' | 'CONS' | 'TEXTO' | 'LIBRE';
21
21
  export declare type IdTarea = 'encu' | 'recu' | 'supe';
22
22
  export declare type FeedbackVariable = Feedback<IdVariable, IdFin>;
23
23
  export declare type TipoVariables = 'texto' | 'numero' | 'fecha' | 'horas';
@@ -142,6 +142,13 @@ export declare type Texto = CasilleroBase & {
142
142
  tipovar?: null;
143
143
  primera_variable?: null;
144
144
  };
145
+ export declare type Libre = CasilleroBase & {
146
+ tipoc: 'LIBRE';
147
+ casillero: IdTexto;
148
+ var_name?: null;
149
+ tipovar?: null;
150
+ primera_variable?: null;
151
+ };
145
152
  export declare type BotonFormulario = CasilleroBase & {
146
153
  tipoc: 'BF';
147
154
  casillero: IdBotonFormulario;
@@ -161,7 +168,7 @@ export declare type Formulario = CasilleroBase & {
161
168
  hermano?: true;
162
169
  unidad_analisis: IdUnidadAnalisis;
163
170
  };
164
- export declare type CasillerosImplementados = Formulario | Bloque | Filtro | ConjuntoPreguntas | Pregunta | OpcionMultiple | Opcion | BotonFormulario | Consistencia | Texto;
171
+ export declare type CasillerosImplementados = Formulario | Bloque | Filtro | ConjuntoPreguntas | Pregunta | OpcionMultiple | Opcion | BotonFormulario | Consistencia | Texto | Libre;
165
172
  export declare type CampoPkRaiz = 'vivienda' | 'etc...';
166
173
  export declare type ForPkRaiz = {
167
174
  formulario: IdFormulario;
@@ -16,4 +16,4 @@
16
16
  }
17
17
  exports.toPlainForPk = toPlainForPk;
18
18
  });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUF5Y2IsU0FBZ0IsWUFBWSxDQUFDLEtBQVc7UUFDcEMsK0NBQStDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSEQsb0NBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtTdHJ1Y3R1cmUsIEZlZWRiYWNrfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kb0FsbWFjZW5hbWllbnRvID0gJ3Nlc3Npb24nfCAvLyBjdWFuZG8gc2VhIHBhcmEgdW5hIHNvbGEgcGVzdGHDsWEsIHNlIHVzYSBlbiBtb2RvIGRpcmVjdG8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJ3wnZWFoMjAyMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRWYXJpYWJsZSA9ICd2MSd8J3YyJ3wndjMnfCdldGMuLi4nfCd2ZG9taW5pbyd8JyRwMCdcclxuZXhwb3J0IHR5cGUgSWRQcmVndW50YSA9ICdQMSd8J1AyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMSd8J0IyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZvcm11bGFyaW8gPSAnRjEnfCdGMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRVbmlkYWRBbmFsaXNpcyA9ICd2aXZpZW5kYXMnfCdob2dhcmVzJ3wncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJ3wnQkY6RjInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29uc2lzdGVuY2lhID0gJ0NPTlMxJ3wnQ09OUzInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVGV4dG8gPSAnRDMwX1JFRid8J01FU19SRUYnfCdTRU1fUkVGJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRybyBcclxuZXhwb3J0IHR5cGUgVmFsb3IgPSBzdHJpbmd8bnVtYmVyfG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCd8J0NQJ3wnQid8J0ZJTFRSTyd8J0JGJ1xyXG5leHBvcnQgdHlwZSBUaXBvYyA9IFRpcG9jRGVzdGlub3MgfCAnRid8J08nfCdPTSd8J0NPTlMnIHwnVEVYVE8nXHJcblxyXG5leHBvcnQgdHlwZSBJZFRhcmVhID0gJ2VuY3UnfCdyZWN1J3wnc3VwZSc7XHJcblxyXG5leHBvcnQgdHlwZSBGZWVkYmFja1ZhcmlhYmxlID0gRmVlZGJhY2s8SWRWYXJpYWJsZSwgSWRGaW4+XHJcblxyXG5leHBvcnQgdHlwZSBUaXBvVmFyaWFibGVzID0gJ3RleHRvJ3wnbnVtZXJvJ3wnZmVjaGEnfCdob3JhcydcclxuXHJcbmV4cG9ydCB0eXBlIERlc3BsaWVndWUgPSAnaG9yaXpvbnRhbCd8J29jdWx0YSdcclxuXHJcbmV4cG9ydCB0eXBlIENhc2lsbGVyb0Jhc2UgPSB7XHJcbiAgICBpZF9jYXNpbGxlcm8/OnN0cmluZ1xyXG4gICAgdGlwb2M6VGlwb2NcclxuICAgIGNhc2lsbGVybzpJZENhc2lsbGVyb1xyXG4gICAgbm9tYnJlOnN0cmluZ1xyXG4gICAgc2FsdG86SWREZXN0aW5vfElkRmlufG51bGxcclxuICAgIHZlcl9pZDpzdHJpbmd8bnVsbFxyXG4gICAgZGVzcGxpZWd1ZUVuY2FiZXphZG86J2xhdGVyYWwnfCdzdXBlcmlvcid8bnVsbFxyXG4gICAgZGVzcGxpZWd1ZUNvbnRlbmlkbzondmVydGljYWwnfCdob3Jpem9udGFsJ3xudWxsXHJcbiAgICBkZXNwbGllZ3VlVGlwb0lucHV0Oid0ZWwnfG51bGxcclxuICAgIGRlc3BsaWVndWVPY3VsdGE6Ym9vbGVhbnxudWxsXHJcbiAgICBsZWVyOmJvb2xlYW58bnVsbFxyXG4gICAgYWNsYXJhY2lvbjpzdHJpbmd8bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86SWRWYXJpYWJsZXxudWxsXHJcbiAgICB2YXJfbmFtZT86SWRWYXJpYWJsZXxudWxsXHJcbiAgICB2YXJfbmFtZV9lc3BlY2lhbD86c3RyaW5nfG51bGxcclxuICAgIHRpcG92YXI/OlRpcG9WYXJpYWJsZXN8J29wY2lvbmVzJ3wnc2lfbm8nfG51bGxcclxuICAgIGNhc2lsbGVyb3M/OkNhc2lsbGVyb3NJbXBsZW1lbnRhZG9zW118bnVsbFxyXG4gICAgZXhwcmVzaW9uX2hhYmlsaXRhcj86c3RyaW5nXHJcbiAgICBleHByZXNpb25faGFiaWxpdGFyX2pzPzpzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXI/OnN0cmluZ1xyXG4gICAgZXhwcmVzaW9uX2F1dG9pbmdyZXNhcl9qcz86c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbj1DYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J08nXHJcbiAgICBjYXNpbGxlcm86SWRPcGNpb25cclxuICAgIGNhc2lsbGVyb3M6UHJlZ3VudGFTaW1wbGVbXVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uU2k9T3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOjFcclxuICAgIG5vbWJyZTonU8OtJ1xyXG4gICAgY2FzaWxsZXJvczpQcmVndW50YVNpbXBsZVtdIFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb25Obz1PcGNpb24gJiB7XHJcbiAgICBjYXNpbGxlcm86MlxyXG4gICAgbm9tYnJlOidObydcclxuICAgIGNhc2lsbGVyb3M6UHJlZ3VudGFTaW1wbGVbXSBcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTXVsdGlwbGU9Q2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidPTSdcclxuICAgIHRpcG92YXI6J29wY2lvbmVzJ1xyXG4gICAgdmFyX25hbWU6SWRWYXJpYWJsZVxyXG4gICAgY2FzaWxsZXJvczpbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG4gICAgY2FsY3VsYWRhPzpib29sZWFuXHJcbiAgICBsaWJyZT86Ym9vbGVhblxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUJhc2UgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J1AnXHJcbiAgICBvcHRhdGl2bzpib29sZWFufG51bGxcclxuICAgIGNhc2lsbGVybzpJZFByZWd1bnRhXHJcbiAgICBjYWxjdWxhZGE6IGJvb2xlYW58bnVsbFxyXG4gICAgbGlicmU6IGJvb2xlYW58bnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YVNpbXBsZSA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6VGlwb1ZhcmlhYmxlc1xyXG4gICAgdmFyX25hbWU6SWRWYXJpYWJsZVxyXG4gICAgbG9uZ2l0dWQ6c3RyaW5nXHJcbiAgICBzYWx0b19uc19uYzpJZFZhcmlhYmxlfG51bGxcclxuICAgIGNhc2lsbGVyb3M6IFByZWd1bnRhU2ltcGxlW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25TaU5vID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3Zhcjonc2lfbm8nXHJcbiAgICB2YXJfbmFtZTpJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzpJZFZhcmlhYmxlfG51bGxcclxuICAgIGNhc2lsbGVyb3M6IFtPcGNpb25TaSwgT3BjaW9uTm9dXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uT3BjaW9uZXMgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOidvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIHNhbHRvX25zX25jOklkVmFyaWFibGV8bnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uW11cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFDb25PcGNpb25lc011bHRpcGxlcyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBPcGNpb25NdWx0aXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhPVByZWd1bnRhU2ltcGxlIHwgUHJlZ3VudGFDb25TaU5vIHwgUHJlZ3VudGFDb25PcGNpb25lcyB8IFByZWd1bnRhQ29uT3BjaW9uZXNNdWx0aXBsZXNcclxuXHJcbmV4cG9ydCB0eXBlIENvbmp1bnRvUHJlZ3VudGFzPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0NQJ1xyXG4gICAgY2FzaWxsZXJvOklkUHJlZ3VudGFcclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhW11cclxufVxyXG5cclxuLypcclxuZXhwb3J0IGludGVyZmFjZSBJQ29udGVuaWRvIGV4dGVuZHMgQ2FzaWxsZXJvQmFzZSB7XHJcbiAgICBjYXNpbGxlcm9zOklDb250ZW5pZG9bXVxyXG59XHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBGaWx0cm8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0ZJTFRSTydcclxuICAgIGNhc2lsbGVybzpJZEZpbHRyb1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxuICAgIGNhbGN1bGFkYT86bnVsbFxyXG4gICAgbGlicmU/Om51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29udGVuaWRvRm9ybXVsYXJpbz1CbG9xdWV8UHJlZ3VudGF8Q29uanVudG9QcmVndW50YXN8RmlsdHJvfEJvdG9uRm9ybXVsYXJpb3xDb25zaXN0ZW5jaWF8VGV4dG9cclxuXHJcbmV4cG9ydCB0eXBlIEJsb3F1ZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonQidcclxuICAgIGNhc2lsbGVybzpJZEJsb3F1ZVxyXG4gICAgY2FzaWxsZXJvczpDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICB1bmlkYWRfYW5hbGlzaXM/OklkVW5pZGFkQW5hbGlzaXNcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uc2lzdGVuY2lhID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidDT05TJ1xyXG4gICAgY2FzaWxsZXJvOklkQ29uc2lzdGVuY2lhXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIFRleHRvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidURVhUTydcclxuICAgIGNhc2lsbGVybzpJZFRleHRvXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG59XHJcbmV4cG9ydCB0eXBlIEJvdG9uRm9ybXVsYXJpbyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonQkYnXHJcbiAgICBjYXNpbGxlcm86SWRCb3RvbkZvcm11bGFyaW9cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbiAgICB2YXJfbmFtZV9CRj86SWRWYXJpYWJsZVxyXG4gICAgbG9uZ2l0dWQ/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBGb3JtdWxhcmlvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidGJ1xyXG4gICAgY2FzaWxsZXJvOklkRm9ybXVsYXJpb1xyXG4gICAgZm9ybXVsYXJpb19wcmluY2lwYWw6Ym9vbGVhblxyXG4gICAgY2FzaWxsZXJvczpDb250ZW5pZG9Gb3JtdWxhcmlvW11cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBoZXJtYW5vPzp0cnVlXHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6SWRVbmlkYWRBbmFsaXNpc1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9zSW1wbGVtZW50YWRvcz1Gb3JtdWxhcmlvfEJsb3F1ZXxGaWx0cm98Q29uanVudG9QcmVndW50YXN8UHJlZ3VudGF8T3BjaW9uTXVsdGlwbGV8T3BjaW9ufEJvdG9uRm9ybXVsYXJpb3xDb25zaXN0ZW5jaWF8VGV4dG9cclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGtSYWl6ID0gJ3ZpdmllbmRhJ3wnZXRjLi4uJztcclxuXHJcbmV4cG9ydCB0eXBlIEZvclBrUmFpej17XHJcbiAgICBmb3JtdWxhcmlvOklkRm9ybXVsYXJpbywgXHJcbn0gJiB7XHJcbiAgICBbY2FtcG8gaW4gQ2FtcG9Qa1JhaXpdPzpudW1iZXJcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FtcG9QayA9ICd2aXZpZW5kYSd8J2hvZ2FyJ3wncGVyc29uYSd8J2V0Yy4uLic7XHJcbmV4cG9ydCB0eXBlIEZvclBrID0ge1xyXG4gICAgZm9ybXVsYXJpbzpJZEZvcm11bGFyaW8sIFxyXG59ICYge1xyXG4gICAgW2NhbXBvIGluIENhbXBvUGtdPzpudW1iZXJcclxufVxyXG5leHBvcnQgdHlwZSBQbGFpbkZvclBrPSd7XCJmb3JtdWxhcmlvXCI6XCJGOkYxXCIsXCJ2aXZpZW5kYVwiOlwiMTAyMDJcIixcInBlcnNvbmFcIjpudWxsfSd8J2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBPYmpldG9OdW1lcmFkb09BcnJheTxUPiA9IFRbXSB8IHtbbiBpbiBudW1iZXJdOlR9XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzPXtcclxuICAgICAgICBbcHJlZ3VudGEgaW4gSWRWYXJpYWJsZV06VmFsb3JcclxuICAgIH0gJiB7XHJcbiAgICAgICAgW3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOk9iamV0b051bWVyYWRvT0FycmF5PFJlc3B1ZXN0YXM+XHJcbiAgICB9XHJcblxyXG5leHBvcnQgdHlwZSBSZXNwdWVzdGFzUmFpej1SZXNwdWVzdGFzICYge1xyXG4gICAgcmVzdW1lbkVzdGFkbzpSZXN1bWVuRXN0YWRvXHJcbiAgICByZXN1bWVuRXN0YWRvU3VwOlJlc3VtZW5Fc3RhZG9cclxuICAgICRkaXJ0eTpib29sZWFuXHJcbiAgICBjb2ROb1JlYTogc3RyaW5nfG51bGxcclxuICAgIGNvZFJlYTogbnVtYmVyfG51bGxcclxuICAgIGNvZE5vUmVhU3VwOiBzdHJpbmd8bnVsbFxyXG4gICAgY29kUmVhU3VwOiBudW1iZXJ8bnVsbFxyXG59XHJcblxyXG4vKlxyXG4gICAgYWNsYXJhY2nDs246XHJcbiAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgIGVzdMOhIGFuaWRhZG8gcG9yIHVuaWRhZCBkZSBhbsOhbGlzaXNcclxuKi9cclxuXHJcbmV4cG9ydCB0eXBlIFVuaWRhZEFuYWxpc2lzID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOklkVW5pZGFkQW5hbGlzaXMsIFxyXG4gICAgcGFkcmU/OklkVW5pZGFkQW5hbGlzaXMsIFxyXG4gICAgcGtfYWdyZWdhZGE6Q2FtcG9QaywgXHJcbiAgICBwcmluY2lwYWw/OmJvb2xlYW4sIFxyXG4gICAgaGlqYXM6IHtbayBpbiBJZFVuaWRhZEFuYWxpc2lzXT86IFVuaWRhZEFuYWxpc2lzfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBURU0gPSB7XHJcbiAgICBub21jYWxsZTpzdHJpbmdcclxuICAgIGRvbWluaW86bnVtYmVyXHJcbiAgICBzZWN0b3I6c3RyaW5nXHJcbiAgICBlZGlmaWNpbzpzdHJpbmdcclxuICAgIGVudHJhZGE6c3RyaW5nXHJcbiAgICBucm9jYXRhc3RyYWw6c3RyaW5nXHJcbiAgICBwaXNvOnN0cmluZ1x0XHJcbiAgICBkZXBhcnRhbWVudG86c3RyaW5nXHJcbiAgICBoYWJpdGFjaW9uOnN0cmluZ1xyXG4gICAgY2FzYTpzdHJpbmdcclxuICAgIHByaW9yaWRhZDoxfDJ8M1xyXG4gICAgb2JzZXJ2YWNpb25lczpzdHJpbmdcclxuICAgIHNlbGVjY2lvbmFkbzpudW1iZXIsXHJcbiAgICBjaXRhOiBzdHJpbmcsXHJcbiAgICBjYXJnYTpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzdW1lbkVzdGFkbyA9ICd2YWNpbycgfCAnY29uIHByb2JsZW1hcycgfCAnaW5jb21wbGV0bycgfCAnb2snIHwgJ25vIHJlYScgfCAnY2l0YSBwYWN0YWRhJztcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9UYXJlYT0ge1xyXG4gICAgdGFyZWE/OiBJZFRhcmVhXHJcbiAgICBub3Rhcz86c3RyaW5nXHJcbiAgICBmZWNoYV9hc2lnbmFjaW9uPzpEYXRlXHJcbiAgICBhc2lnbmFkbz86c3RyaW5nXHJcbiAgICBtYWluX2Zvcm06IElkRm9ybXVsYXJpb1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBWaXNpdGE9e1xyXG4gICAgZmVjaGE6IHN0cmluZyB8IG51bGxcclxuICAgIGhvcmE6IHN0cmluZyB8IG51bGxcclxuICAgIGlkcGVyOiBzdHJpbmcgfCBudWxsXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmcgfCBudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlICBEYXRvc0hkclVhUHBhbD0ge1xyXG4gICAgdGFyZWE6IEluZm9UYXJlYVxyXG4gICAgdGVtOiBURU1cclxuICAgIFxyXG4vKlxyXG4gICAgYWNsYXJhY2nDs246XHJcbiAgICB7djE6J3gnLCB2MjoneCcsIHBlcnNvbmFzOlt7cDE6MSwgcDI6J3h9LHtwMToyLCBwMjp4fV0sIG1hc2NvdGFzOltdIH1cclxuICAgIGVzdMOhIGFuaWRhZG8gcG9yIHVuaWRhZCBkZSBhbsOhbGlzaXNcclxuKi9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRDYXJnYT1cIjIwMjAtMDctMDdcInxcIjIwMjAtMDctMDhcIlxyXG5cclxuZXhwb3J0IHR5cGUgRXN0YWRvQ2FyZ2E9J3Jlc3VtZW4nfCdyZWxldmFtaWVudG8nfCdyZWNpYm8nXHJcblxyXG5leHBvcnQgdHlwZSBDYXJnYT17XHJcbiAgICBmZWNoYTogRGF0ZVxyXG4gICAgZXN0YWRvX2NhcmdhOiBFc3RhZG9DYXJnYVxyXG4gICAgbmVjZXNhcmlhczogbnVtYmVyXHJcbiAgICBvYnNlcnZhY2lvbmVzOiBzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2FzPXtcclxuICAgIFtpZENhcmdhIGluIElkQ2FyZ2FdOiBDYXJnYVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFc3RydWN0dXJhUm93VmFsaWRhdG9yPVN0cnVjdHVyZTxJZFZhcmlhYmxlLFZhbG9yLElkRmluPjtcclxuXHJcbmV4cG9ydCB0eXBlIE1vZG9EZXNwbGllZ3VlID0gJ21ldGFkYXRvcyd8J3JlbGV2YW1pZW50byd8J1BERidcclxuXHJcbmV4cG9ydCB0eXBlIEluZm9Gb3JtdWxhcmlvPXtcclxuICAgIGNhc2lsbGVyb3M6Rm9ybXVsYXJpbywgLy8gY2FzaWxsZXJvcyBhcGxhbmFkb3NcclxuICAgIGVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3I6RXN0cnVjdHVyYVJvd1ZhbGlkYXRvciAvLyBlc3RydWN0dXJhIGRlIHZhcmlhYmxlcyBwYXJhIGVsIFJvd1ZhbGlkYXRvclxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZFJlc3VsdGFkbyA9ICdBVkVSSUdVQVInfCdUT0RPJztcclxuXHJcbmV4cG9ydCB0eXBlIFRhcmVhc0VzdHJ1Y3R1cmE9e1xyXG4gICAgW2lkVGFyZWEgaW4gSWRUYXJlYV06e1xyXG4gICAgICAgIHJlc3VsdGFkb3M6e1xyXG4gICAgICAgICAgICBbaWRSZXN1bHRhZG8gaW4gSWRSZXN1bHRhZG9dOntcclxuICAgICAgICAgICAgICAgIGRlc2NyaXBjaW9uOnN0cmluZ1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBFc3RydWN0dXJhID0ge1xyXG4gICAgZm9ybXVsYXJpb3M6eyBcclxuICAgICAgICBbbm9tYnJlRm9ybXVsYXJpbyBpbiBJZEZvcm11bGFyaW9dOkluZm9Gb3JtdWxhcmlvXHJcbiAgICB9XHJcbiAgICB1bmlkYWRlc19hbmFsaXNpczp7IFxyXG4gICAgICAgIFtpZFVuaWRhZEFuYWxpc2lzIGluIElkVW5pZGFkQW5hbGlzaXNdOiBVbmlkYWRBbmFsaXNpc1xyXG4gICAgfVxyXG4gICAgdGFyZWFzOlRhcmVhc0VzdHJ1Y3R1cmFcclxuICAgIHRpbWVzdGFtcDpudW1iZXJcclxuICAgIG9wZXJhdGl2bzpJZE9wZXJhdGl2b1xyXG4gICAgY29uZmlnU29ydGVvOiBDb25maWd1cmFjaW9uU29ydGVvXHJcblx0bm9SZWFzOiB7IFxyXG5cdCAgICAgIG5vX3JlYTogc3RyaW5nICBcclxuXHRcdCAgZGVzY3JpcGNpb246IHN0cmluZ1xyXG5cdFx0ICBncnVwbzogICAgIHN0cmluZyAgICBcclxuXHRcdCAgdmFyaWFibGU6ICBzdHJpbmdcclxuXHRcdCAgdmFsb3I6ICAgICBzdHJpbmdcclxuXHRcdCAgZ3J1cG8wOiAgICBzdHJpbmdcclxuXHR9W11cclxuICAgIG5vUmVhc1N1cDogeyBcclxuICAgICAgICBub19yZWFfc3VwOiBzdHJpbmcgIFxyXG4gICAgICAgIGRlc2Nfbm9yZWFfc3VwOiBzdHJpbmdcclxuICAgICAgICBncnVwb19zdXA6ICAgICBzdHJpbmcgICAgXHJcbiAgICAgICAgdmFyaWFibGVfc3VwOiAgc3RyaW5nXHJcbiAgICAgICAgdmFsb3Jfc3VwOiAgICAgc3RyaW5nXHJcbiAgICAgICAgZ3J1cG8wX3N1cDogICAgc3RyaW5nXHJcbiAgfVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkRW5jID0gJzEzMDAzMSd8JzEzMDAzMid8J2V0Yyc7XHJcbmV4cG9ydCB0eXBlIEluZm9ybWFjaW9uSGRyPXtbZW5jIGluIElkRW5jXTogRGF0b3NIZHJVYVBwYWx9XHJcblxyXG5leHBvcnQgdHlwZSBDYXNvU3RhdGU9e1xyXG4gICAgb3BjaW9uZXM6eyAvLyBkYXRvcyBkZSBuYXZlZ2FjacOzbiBxdWUgZWxpamUgZWwgdXN1YXJpb1xyXG4gICAgICAgIGZvclBrOkZvclBrfG51bGwgLy8gw61uZGljZSBkZW50cm8gZGUgbGFzIHVuaWRhZGVzIGRlIGFuw6FsaXNpcy4gTnVsbCA9IGVuIGhvamEgZGUgcnV0YVxyXG4gICAgICAgIHBpbGFGb3JQazpGb3JQa1tdXHJcbiAgICAgICAgbW9kb0Rlc3BsaWVndWU6TW9kb0Rlc3BsaWVndWVcclxuICAgICAgICBiaWVudmVuaWRvOmJvb2xlYW5cclxuICAgICAgICBtb2RvRGlyZWN0bzpib29sZWFuXHJcbiAgICAgICAgbW9kb0JvcnJhclJlc3B1ZXN0YTpJZFZhcmlhYmxlfG51bGxcclxuICAgICAgICBjb25DYW1wb09wY2lvbmVzOmJvb2xlYW5cclxuICAgICAgICBzYWx0b0F1dG9tYXRpY286Ym9vbGVhblxyXG4gICAgfSwgXHJcbiAgICBtb2RvOnsgLy8gbm8gc2UgcGVyc2lzdGVcclxuICAgICAgICBkZW1vOmJvb2xlYW5cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRGVmT3BlcmF0aXZvID0ge1xyXG4gICAgZXNOb1JlYToocmVzcHVlc3RhczpSZXNwdWVzdGFzKT0+IHtjb2ROb1JlYTpzdHJpbmd8bnVsbCwgZXNOb1JlYTpib29sZWFufSxcclxuICAgIGVzTm9SZWFTdXA6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kTm9SZWFTdXA6c3RyaW5nfG51bGwsIGVzTm9SZWFTdXA6Ym9vbGVhbn0sXHJcbiAgICBlc1JlYWxpemFkYToocmVzcHVlc3RhczpSZXNwdWVzdGFzKT0+IHtjb2RSZWE6bnVtYmVyfG51bGwsIGVzUmVhOmJvb2xlYW59LFxyXG4gICAgZXNSZWFsaXphZGFTdXA6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kUmVhU3VwOm51bWJlcnxudWxsLCBlc1JlYVN1cDpib29sZWFufSxcclxuICAgIFVBcHJpbmNpcGFsOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgZGVmVUE6e1tpIGluIElkVW5pZGFkQW5hbGlzaXNdOntwazpJZFZhcmlhYmxlLCBpbmNsdWlkYXM6SWRVbmlkYWRBbmFsaXNpc1tdLCBpZHNGb3I6SWRGb3JtdWxhcmlvW119fSxcclxuICAgIGRlZkZvcjp7W2YgaW4gSWRGb3JtdWxhcmlvXTp7LyphcmJvbFVBOklkVW5pZGFkQW5hbGlzaXNbXSwgKi8gaGVybWFubz86dHJ1ZX19XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERhdG9zQnlQYXNzUGVyc2lzdGlibGVzID0ge1xyXG4gICAgcmVzcHVlc3Rhczp7W3VhIGluIElkVW5pZGFkQW5hbGlzaXNdOlJlc3B1ZXN0YXNSYWl6W119XHJcbiAgICBtb2RvQWxtYWNlbmFtaWVudG86TW9kb0FsbWFjZW5hbWllbnRvXHJcbiAgICBwZXJzb25hOnN0cmluZ1xyXG4gICAgdGFyZWE6SWRUYXJlYVxyXG4gICAgaWRwZXI6c3RyaW5nXHJcbiAgICBjYXJnYXM6IENhcmdhc1xyXG4gICAgaW5mb3JtYWNpb25IZHI6IEluZm9ybWFjaW9uSGRyXHJcbiAgICBzb2xvTGVjdHVyYTogYm9vbGVhblxyXG4gICAgdG9rZW4/OnN0cmluZ1xyXG4gICAgbnVtX3NpbmNybz86bnVtYmVyXHJcbiAgICB0aW1lc3RhbXBFc3RydWN0dXJhPzpudW1iZXJcclxufVxyXG5cclxudHlwZSBDb25maWd1cmFjaW9uU29ydGVvVGFibGEgPSB7XHJcbiAgICBtZXRvZG86IFwidGFibGFcIixcclxuICAgIHBhcmFtX21ldG9kbzoge1xyXG4gICAgICAgIHRhYmxhOnN0cmluZ1tdLFxyXG4gICAgICAgIHZhcl9sZXRyYTpJZFZhcmlhYmxlLFxyXG4gICAgfSAgICBcclxufVxyXG5cclxudHlwZSBDb25maWd1cmFjaW9uU29ydGVvSGFzaCA9IHtcclxuICAgIG1ldG9kbzogXCJoYXNoXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB2YXJfY29lZjogW1xyXG4gICAgICAgICAgICB7dmFyOklkVmFyaWFibGUsIGNvZWY6bnVtYmVyfSxcclxuICAgICAgICAgICAge3ZhcjpJZFZhcmlhYmxlLCBjb2VmOm51bWJlcn0sXHJcbiAgICAgICAgXSxcclxuICAgICAgICBkaXZpc29yOiBudW1iZXJcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW8gPSB7W2tleSBpbiBJZEZvcm11bGFyaW9dOkNvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvfVxyXG5cclxuZXhwb3J0IHR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0Zvcm11bGFyaW8gPSB7XHJcbiAgICB1bmlkYWRfYW5hbGlzaXM6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICB1bmlkYWRfYW5hbGlzaXNfcGFkcmU6IElkVW5pZGFkQW5hbGlzaXMsXHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZDogc3RyaW5nIC8vXCJub3QgKHAxKSBvciBubyB0IChwMikgb3Igbm90KHAzKVwiXHJcbiAgICBleHByX2luY29tcGxldGl0dWQ6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06e2RvbWluaW86bnVtYmVyLCBleHByOnN0cmluZ31cclxuICAgIH0gXHJcbiAgICAvL2V4cHJfaW5jb21wbGV0aXR1ZF9qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgZGlzcGFyYWRvcjogSWRWYXJpYWJsZSAvL1wicDlcIlxyXG4gICAgLy9maWx0cm86IHN0cmluZyAvL1wicDM+PTE4XCJcclxuICAgIGZpbHRybzoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTp7ZG9taW5pbzpudW1iZXIsIGV4cHI6c3RyaW5nfVxyXG4gICAgfSBcclxuICAgIC8vZmlsdHJvX2pzOiBzdHJpbmcgLy9zZSBjcmVhIGFsIGNvbXBpbGFyXHJcbiAgICBmaWx0cm9fanM6IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06e2RvbWluaW86bnVtYmVyLCBleHByOnN0cmluZ31cclxuICAgIH0gXHJcbiAgICBvcmRlbjoge1xyXG4gICAgICAgIHZhcmlhYmxlOklkVmFyaWFibGVcclxuICAgICAgICBvcmRlbjogMXwtMVxyXG4gICAgfVtdIC8vW1wicDNcIiwgXCJwMlwiLCBcInAxXCIsIFwicDBcIl0sIC8vIHAwIGVzIGNvbnN0cnVpZGEsIG5vIHZhIGVuIHBhcsOhbWV0cm9zLCBzZSBwb25lIHBhcmEgcXVlIGVsIG9yZGVuIHNlYSBkZXRlcm1pbsOtc3RpY29cclxuICAgIHBhcmFtZXRyb3M6SWRWYXJpYWJsZVtdLy8gW1wicDFcIixcInAyXCIsXCJwM1wiLCBcInA0XCIsIFwicDVcIiwgXCJwNlwiXSwgLy8gdmFyaWFibGVzIHF1ZSBhbnVsYW4gYWwgZGlzcGFyYWRvclxyXG4gICAgY2FudGlkYWRfc29ydGVhYmxlczogSWRWYXJpYWJsZVxyXG4gICAgY2FudGlkYWRfdG90YWw6IElkVmFyaWFibGVcclxuICAgIHJlc3VsdGFkbzogSWRWYXJpYWJsZSAvL1wicDExXCJcclxuICAgIHJlc3VsdGFkb19tYW51YWw6IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICBzb3J0ZWFkb19tb3N0cmFyPzoge3NvdXJjZTpJZFZhcmlhYmxlLCB0YXJnZXQ6SWRWYXJpYWJsZX1bXSxcclxuICAgIGluY29tcGxldGFzOiBJZFZhcmlhYmxlXHJcbiAgICB2YXJpYWJsZUJvdG9uRm9ybXVsYXJpb1VBOiBJZFZhcmlhYmxlLy8nJEIuRjpTMV9QJ1xyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQUluZGl2aWR1YWw/OiBJZFZhcmlhYmxlIC8vJyRCLkY6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX2luZGl2aWR1YWw/OiBJZEZvcm11bGFyaW8gLy8gJ0Y6STEnXHJcbiAgICBpZF9mb3JtdWxhcmlvX3BhZHJlPzogSWRGb3JtdWxhcmlvIC8vICdGOlMxJ1xyXG59ICYgKENvbmZpZ3VyYWNpb25Tb3J0ZW9IYXNoIHwgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhKVxyXG5cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiB0b1BsYWluRm9yUGsoZm9yUGs6Rm9yUGspOlBsYWluRm9yUGt7XHJcbiAgICAvLyBAdHMtaWdub3JlIHNhYmVtb3MgcXVlIGhheSBxdWUgaGFjZXIgdW4gSlNPTlxyXG4gICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGZvclBrKTtcclxufVxyXG5cclxuZGVjbGFyZSBnbG9iYWwge1xyXG4gICAgbmFtZXNwYWNlIG15T3due1xyXG4gICAgICAgIGludGVyZmFjZSBBZGRyUGFyYW1zIHtcclxuICAgICAgICAgICAgc3RhdGVfZm9yUGs6c3RyaW5nXHJcbiAgICAgICAgICAgIHN0YXRlX3BpbGFGb3JQazpzdHJpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlwb3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvdGlwb3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0lBQUEsWUFBWSxDQUFDOzs7SUFnZGIsU0FBZ0IsWUFBWSxDQUFDLEtBQVc7UUFDcEMsK0NBQStDO1FBQy9DLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBSEQsb0NBR0MiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcclxuaW1wb3J0IHtTdHJ1Y3R1cmUsIEZlZWRiYWNrfSBmcm9tIFwicm93LXZhbGlkYXRvclwiO1xyXG5cclxuZXhwb3J0IHR5cGUgTW9kb0FsbWFjZW5hbWllbnRvID0gJ3Nlc3Npb24nfCAvLyBjdWFuZG8gc2VhIHBhcmEgdW5hIHNvbGEgcGVzdGHDsWEsIHNlIHVzYSBlbiBtb2RvIGRpcmVjdG8sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhbCcgICAgLy8gcGFyYSB0b2RvIGVsIGRpc3Bvc2l0aXZvLCBzZSB1c2EgYWwgY2FyZ2FyIGhvamFzIGRlIHJ1dGEgZW50cmVzXHJcblxyXG5leHBvcnQgdHlwZSBJZE9wY2lvbiA9IG51bWJlclxyXG5leHBvcnQgdHlwZSBJZE9wZXJhdGl2byA9ICdldG9pMjExJ3wnZWFoMjAyMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRWYXJpYWJsZSA9ICd2MSd8J3YyJ3wndjMnfCdldGMuLi4nfCd2ZG9taW5pbyd8JyRwMCdcclxuZXhwb3J0IHR5cGUgSWRQcmVndW50YSA9ICdQMSd8J1AyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEJsb3F1ZSA9ICdCMSd8J0IyJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZvcm11bGFyaW8gPSAnRjEnfCdGMid8J2V0Yy4uLidcclxuZXhwb3J0IHR5cGUgSWRVbmlkYWRBbmFsaXNpcyA9ICd2aXZpZW5kYXMnfCdob2dhcmVzJ3wncGVyc29uYXMnXHJcbmV4cG9ydCB0eXBlIElkQm90b25Gb3JtdWxhcmlvID0gJ0JGOkYxJ3wnQkY6RjInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ29uc2lzdGVuY2lhID0gJ0NPTlMxJ3wnQ09OUzInfCdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkVGV4dG8gPSAnRDMwX1JFRid8J01FU19SRUYnfCdTRU1fUkVGJ3wnZXRjLi4uJ1xyXG5leHBvcnQgdHlwZSBJZEZpbHRybyA9ICdGSUxUUk8xJyB8ICdGSUxUUk8yJyB8ICdldGMuLi4nXHJcbmV4cG9ydCB0eXBlIElkQ2FzaWxsZXJvID0gSWRWYXJpYWJsZSB8IElkUHJlZ3VudGEgfCBJZEJsb3F1ZSB8IElkRm9ybXVsYXJpbyB8IElkRmlsdHJvIHwgSWRPcGNpb25cclxuZXhwb3J0IHR5cGUgSWRGaW4gPSAnZmluJzsgLy8gbmV2ZXIgLy8gVE9ETzogcG9kZXIgcG9uZXIgJ0ZJTidcclxuZXhwb3J0IHR5cGUgSWREZXN0aW5vID0gSWRQcmVndW50YSB8IElkQmxvcXVlIHwgSWRGaW4gfCBJZEZpbHRybyBcclxuZXhwb3J0IHR5cGUgVmFsb3IgPSBzdHJpbmd8bnVtYmVyfG51bGw7XHJcbmV4cG9ydCB0eXBlIFRpcG9jRGVzdGlub3MgPSAnUCd8J0NQJ3wnQid8J0ZJTFRSTyd8J0JGJ1xyXG5leHBvcnQgdHlwZSBUaXBvYyA9IFRpcG9jRGVzdGlub3MgfCAnRid8J08nfCdPTSd8J0NPTlMnIHwnVEVYVE8nIHwgJ0xJQlJFJ1xyXG5cclxuZXhwb3J0IHR5cGUgSWRUYXJlYSA9ICdlbmN1J3wncmVjdSd8J3N1cGUnO1xyXG5cclxuZXhwb3J0IHR5cGUgRmVlZGJhY2tWYXJpYWJsZSA9IEZlZWRiYWNrPElkVmFyaWFibGUsIElkRmluPlxyXG5cclxuZXhwb3J0IHR5cGUgVGlwb1ZhcmlhYmxlcyA9ICd0ZXh0byd8J251bWVybyd8J2ZlY2hhJ3wnaG9yYXMnXHJcblxyXG5leHBvcnQgdHlwZSBEZXNwbGllZ3VlID0gJ2hvcml6b250YWwnfCdvY3VsdGEnXHJcblxyXG5leHBvcnQgdHlwZSBDYXNpbGxlcm9CYXNlID0ge1xyXG4gICAgaWRfY2FzaWxsZXJvPzpzdHJpbmdcclxuICAgIHRpcG9jOlRpcG9jXHJcbiAgICBjYXNpbGxlcm86SWRDYXNpbGxlcm9cclxuICAgIG5vbWJyZTpzdHJpbmdcclxuICAgIHNhbHRvOklkRGVzdGlub3xJZEZpbnxudWxsXHJcbiAgICB2ZXJfaWQ6c3RyaW5nfG51bGxcclxuICAgIGRlc3BsaWVndWVFbmNhYmV6YWRvOidsYXRlcmFsJ3wnc3VwZXJpb3InfG51bGxcclxuICAgIGRlc3BsaWVndWVDb250ZW5pZG86J3ZlcnRpY2FsJ3wnaG9yaXpvbnRhbCd8bnVsbFxyXG4gICAgZGVzcGxpZWd1ZVRpcG9JbnB1dDondGVsJ3xudWxsXHJcbiAgICBkZXNwbGllZ3VlT2N1bHRhOmJvb2xlYW58bnVsbFxyXG4gICAgbGVlcjpib29sZWFufG51bGxcclxuICAgIGFjbGFyYWNpb246c3RyaW5nfG51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/OklkVmFyaWFibGV8bnVsbFxyXG4gICAgdmFyX25hbWU/OklkVmFyaWFibGV8bnVsbFxyXG4gICAgdmFyX25hbWVfZXNwZWNpYWw/OnN0cmluZ3xudWxsXHJcbiAgICB0aXBvdmFyPzpUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ3xudWxsXHJcbiAgICBjYXNpbGxlcm9zPzpDYXNpbGxlcm9zSW1wbGVtZW50YWRvc1tdfG51bGxcclxuICAgIGV4cHJlc2lvbl9oYWJpbGl0YXI/OnN0cmluZ1xyXG4gICAgZXhwcmVzaW9uX2hhYmlsaXRhcl9qcz86c3RyaW5nXHJcbiAgICBleHByZXNpb25fYXV0b2luZ3Jlc2FyPzpzdHJpbmdcclxuICAgIGV4cHJlc2lvbl9hdXRvaW5ncmVzYXJfanM/OnN0cmluZ1xyXG59XHJcblxyXG5leHBvcnQgdHlwZSBPcGNpb249Q2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidPJ1xyXG4gICAgY2FzaWxsZXJvOklkT3BjaW9uXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhU2ltcGxlW11cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvblNpPU9wY2lvbiAmIHtcclxuICAgIGNhc2lsbGVybzoxXHJcbiAgICBub21icmU6J1PDrSdcclxuICAgIGNhc2lsbGVyb3M6UHJlZ3VudGFTaW1wbGVbXSBcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgT3BjaW9uTm89T3BjaW9uICYge1xyXG4gICAgY2FzaWxsZXJvOjJcclxuICAgIG5vbWJyZTonTm8nXHJcbiAgICBjYXNpbGxlcm9zOlByZWd1bnRhU2ltcGxlW10gXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIE9wY2lvbk11bHRpcGxlPUNhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonT00nXHJcbiAgICB0aXBvdmFyOidvcGNpb25lcydcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIGNhc2lsbGVyb3M6W09wY2lvblNpLCBPcGNpb25Ob11cclxuICAgIGNhbGN1bGFkYT86Ym9vbGVhblxyXG4gICAgbGlicmU/OmJvb2xlYW5cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFCYXNlID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidQJ1xyXG4gICAgb3B0YXRpdm86Ym9vbGVhbnxudWxsXHJcbiAgICBjYXNpbGxlcm86SWRQcmVndW50YVxyXG4gICAgY2FsY3VsYWRhOiBib29sZWFufG51bGxcclxuICAgIGxpYnJlOiBib29sZWFufG51bGxcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgUHJlZ3VudGFTaW1wbGUgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB0aXBvdmFyOlRpcG9WYXJpYWJsZXNcclxuICAgIHZhcl9uYW1lOklkVmFyaWFibGVcclxuICAgIGxvbmdpdHVkOnN0cmluZ1xyXG4gICAgc2FsdG9fbnNfbmM6SWRWYXJpYWJsZXxudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBQcmVndW50YVNpbXBsZVtdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uU2lObyA9IFByZWd1bnRhQmFzZSAmIHtcclxuICAgIHRpcG92YXI6J3NpX25vJ1xyXG4gICAgdmFyX25hbWU6SWRWYXJpYWJsZVxyXG4gICAgc2FsdG9fbnNfbmM6SWRWYXJpYWJsZXxudWxsXHJcbiAgICBjYXNpbGxlcm9zOiBbT3BjaW9uU2ksIE9wY2lvbk5vXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YUNvbk9wY2lvbmVzID0gUHJlZ3VudGFCYXNlICYge1xyXG4gICAgdGlwb3Zhcjonb3BjaW9uZXMnXHJcbiAgICB2YXJfbmFtZTpJZFZhcmlhYmxlXHJcbiAgICBzYWx0b19uc19uYzpJZFZhcmlhYmxlfG51bGxcclxuICAgIGNhc2lsbGVyb3M6IE9wY2lvbltdXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFByZWd1bnRhQ29uT3BjaW9uZXNNdWx0aXBsZXMgPSBQcmVndW50YUJhc2UgJiB7XHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgY2FzaWxsZXJvczogT3BjaW9uTXVsdGlwbGVbXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBQcmVndW50YT1QcmVndW50YVNpbXBsZSB8IFByZWd1bnRhQ29uU2lObyB8IFByZWd1bnRhQ29uT3BjaW9uZXMgfCBQcmVndW50YUNvbk9wY2lvbmVzTXVsdGlwbGVzXHJcblxyXG5leHBvcnQgdHlwZSBDb25qdW50b1ByZWd1bnRhcz0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidDUCdcclxuICAgIGNhc2lsbGVybzpJZFByZWd1bnRhXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgY2FzaWxsZXJvczpQcmVndW50YVtdXHJcbn1cclxuXHJcbi8qXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRlbmlkbyBleHRlbmRzIENhc2lsbGVyb0Jhc2Uge1xyXG4gICAgY2FzaWxsZXJvczpJQ29udGVuaWRvW11cclxufVxyXG4qL1xyXG5cclxuZXhwb3J0IHR5cGUgRmlsdHJvID0gQ2FzaWxsZXJvQmFzZSAmIHtcclxuICAgIHRpcG9jOidGSUxUUk8nXHJcbiAgICBjYXNpbGxlcm86SWRGaWx0cm9cclxuICAgIHZhcl9uYW1lPzpudWxsXHJcbiAgICB0aXBvdmFyPzpudWxsXHJcbiAgICBwcmltZXJhX3ZhcmlhYmxlPzpudWxsXHJcbiAgICBjYWxjdWxhZGE/Om51bGxcclxuICAgIGxpYnJlPzpudWxsXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnRlbmlkb0Zvcm11bGFyaW89QmxvcXVlfFByZWd1bnRhfENvbmp1bnRvUHJlZ3VudGFzfEZpbHRyb3xCb3RvbkZvcm11bGFyaW98Q29uc2lzdGVuY2lhfFRleHRvXHJcblxyXG5leHBvcnQgdHlwZSBCbG9xdWUgPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0InXHJcbiAgICBjYXNpbGxlcm86SWRCbG9xdWVcclxuICAgIGNhc2lsbGVyb3M6Q29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzPzpJZFVuaWRhZEFuYWxpc2lzXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENvbnNpc3RlbmNpYSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonQ09OUydcclxuICAgIGNhc2lsbGVybzpJZENvbnNpc3RlbmNpYVxyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBUZXh0byA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonVEVYVE8nXHJcbiAgICBjYXNpbGxlcm86SWRUZXh0b1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBMaWJyZSA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonTElCUkUnXHJcbiAgICBjYXNpbGxlcm86SWRUZXh0b1xyXG4gICAgdmFyX25hbWU/Om51bGxcclxuICAgIHRpcG92YXI/Om51bGxcclxuICAgIHByaW1lcmFfdmFyaWFibGU/Om51bGxcclxufVxyXG5leHBvcnQgdHlwZSBCb3RvbkZvcm11bGFyaW8gPSBDYXNpbGxlcm9CYXNlICYge1xyXG4gICAgdGlwb2M6J0JGJ1xyXG4gICAgY2FzaWxsZXJvOklkQm90b25Gb3JtdWxhcmlvXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgcHJpbWVyYV92YXJpYWJsZT86bnVsbFxyXG4gICAgdmFyX25hbWVfQkY/OklkVmFyaWFibGVcclxuICAgIGxvbmdpdHVkPzpzdHJpbmdcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRm9ybXVsYXJpbyA9IENhc2lsbGVyb0Jhc2UgJiB7XHJcbiAgICB0aXBvYzonRidcclxuICAgIGNhc2lsbGVybzpJZEZvcm11bGFyaW9cclxuICAgIGZvcm11bGFyaW9fcHJpbmNpcGFsOmJvb2xlYW5cclxuICAgIGNhc2lsbGVyb3M6Q29udGVuaWRvRm9ybXVsYXJpb1tdXHJcbiAgICB2YXJfbmFtZT86bnVsbFxyXG4gICAgdGlwb3Zhcj86bnVsbFxyXG4gICAgaGVybWFubz86dHJ1ZVxyXG4gICAgdW5pZGFkX2FuYWxpc2lzOklkVW5pZGFkQW5hbGlzaXNcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgQ2FzaWxsZXJvc0ltcGxlbWVudGFkb3M9Rm9ybXVsYXJpb3xCbG9xdWV8RmlsdHJvfENvbmp1bnRvUHJlZ3VudGFzfFByZWd1bnRhfE9wY2lvbk11bHRpcGxlfE9wY2lvbnxCb3RvbkZvcm11bGFyaW98Q29uc2lzdGVuY2lhfFRleHRvfExpYnJlXHJcblxyXG5leHBvcnQgdHlwZSBDYW1wb1BrUmFpeiA9ICd2aXZpZW5kYSd8J2V0Yy4uLic7XHJcblxyXG5leHBvcnQgdHlwZSBGb3JQa1JhaXo9e1xyXG4gICAgZm9ybXVsYXJpbzpJZEZvcm11bGFyaW8sIFxyXG59ICYge1xyXG4gICAgW2NhbXBvIGluIENhbXBvUGtSYWl6XT86bnVtYmVyXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhbXBvUGsgPSAndml2aWVuZGEnfCdob2dhcid8J3BlcnNvbmEnfCdldGMuLi4nO1xyXG5leHBvcnQgdHlwZSBGb3JQayA9IHtcclxuICAgIGZvcm11bGFyaW86SWRGb3JtdWxhcmlvLCBcclxufSAmIHtcclxuICAgIFtjYW1wbyBpbiBDYW1wb1BrXT86bnVtYmVyXHJcbn1cclxuZXhwb3J0IHR5cGUgUGxhaW5Gb3JQaz0ne1wiZm9ybXVsYXJpb1wiOlwiRjpGMVwiLFwidml2aWVuZGFcIjpcIjEwMjAyXCIsXCJwZXJzb25hXCI6bnVsbH0nfCdldGMuLi4nO1xyXG5cclxuZXhwb3J0IHR5cGUgT2JqZXRvTnVtZXJhZG9PQXJyYXk8VD4gPSBUW10gfCB7W24gaW4gbnVtYmVyXTpUfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhcz17XHJcbiAgICAgICAgW3ByZWd1bnRhIGluIElkVmFyaWFibGVdOlZhbG9yXHJcbiAgICB9ICYge1xyXG4gICAgICAgIFt1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTpPYmpldG9OdW1lcmFkb09BcnJheTxSZXNwdWVzdGFzPlxyXG4gICAgfVxyXG5cclxuZXhwb3J0IHR5cGUgUmVzcHVlc3Rhc1JhaXo9UmVzcHVlc3RhcyAmIHtcclxuICAgIHJlc3VtZW5Fc3RhZG86UmVzdW1lbkVzdGFkb1xyXG4gICAgcmVzdW1lbkVzdGFkb1N1cDpSZXN1bWVuRXN0YWRvXHJcbiAgICAkZGlydHk6Ym9vbGVhblxyXG4gICAgY29kTm9SZWE6IHN0cmluZ3xudWxsXHJcbiAgICBjb2RSZWE6IG51bWJlcnxudWxsXHJcbiAgICBjb2ROb1JlYVN1cDogc3RyaW5nfG51bGxcclxuICAgIGNvZFJlYVN1cDogbnVtYmVyfG51bGxcclxufVxyXG5cclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcblxyXG5leHBvcnQgdHlwZSBVbmlkYWRBbmFsaXNpcyA9IHtcclxuICAgIHVuaWRhZF9hbmFsaXNpczpJZFVuaWRhZEFuYWxpc2lzLCBcclxuICAgIHBhZHJlPzpJZFVuaWRhZEFuYWxpc2lzLCBcclxuICAgIHBrX2FncmVnYWRhOkNhbXBvUGssIFxyXG4gICAgcHJpbmNpcGFsPzpib29sZWFuLCBcclxuICAgIGhpamFzOiB7W2sgaW4gSWRVbmlkYWRBbmFsaXNpc10/OiBVbmlkYWRBbmFsaXNpc31cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVEVNID0ge1xyXG4gICAgbm9tY2FsbGU6c3RyaW5nXHJcbiAgICBkb21pbmlvOm51bWJlclxyXG4gICAgc2VjdG9yOnN0cmluZ1xyXG4gICAgZWRpZmljaW86c3RyaW5nXHJcbiAgICBlbnRyYWRhOnN0cmluZ1xyXG4gICAgbnJvY2F0YXN0cmFsOnN0cmluZ1xyXG4gICAgcGlzbzpzdHJpbmdcdFxyXG4gICAgZGVwYXJ0YW1lbnRvOnN0cmluZ1xyXG4gICAgaGFiaXRhY2lvbjpzdHJpbmdcclxuICAgIGNhc2E6c3RyaW5nXHJcbiAgICBwcmlvcmlkYWQ6MXwyfDNcclxuICAgIG9ic2VydmFjaW9uZXM6c3RyaW5nXHJcbiAgICBzZWxlY2Npb25hZG86bnVtYmVyLFxyXG4gICAgY2l0YTogc3RyaW5nLFxyXG4gICAgY2FyZ2E6c3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFJlc3VtZW5Fc3RhZG8gPSAndmFjaW8nIHwgJ2NvbiBwcm9ibGVtYXMnIHwgJ2luY29tcGxldG8nIHwgJ29rJyB8ICdubyByZWEnIHwgJ2NpdGEgcGFjdGFkYSc7XHJcblxyXG5leHBvcnQgdHlwZSBJbmZvVGFyZWE9IHtcclxuICAgIHRhcmVhPzogSWRUYXJlYVxyXG4gICAgbm90YXM/OnN0cmluZ1xyXG4gICAgZmVjaGFfYXNpZ25hY2lvbj86RGF0ZVxyXG4gICAgYXNpZ25hZG8/OnN0cmluZ1xyXG4gICAgbWFpbl9mb3JtOiBJZEZvcm11bGFyaW9cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgVmlzaXRhPXtcclxuICAgIGZlY2hhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBob3JhOiBzdHJpbmcgfCBudWxsXHJcbiAgICBpZHBlcjogc3RyaW5nIHwgbnVsbFxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nIHwgbnVsbFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSAgRGF0b3NIZHJVYVBwYWw9IHtcclxuICAgIHRhcmVhOiBJbmZvVGFyZWFcclxuICAgIHRlbTogVEVNXHJcbiAgICBcclxuLypcclxuICAgIGFjbGFyYWNpw7NuOlxyXG4gICAge3YxOid4JywgdjI6J3gnLCBwZXJzb25hczpbe3AxOjEsIHAyOid4fSx7cDE6MiwgcDI6eH1dLCBtYXNjb3RhczpbXSB9XHJcbiAgICBlc3TDoSBhbmlkYWRvIHBvciB1bmlkYWQgZGUgYW7DoWxpc2lzXHJcbiovXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIElkQ2FyZ2E9XCIyMDIwLTA3LTA3XCJ8XCIyMDIwLTA3LTA4XCJcclxuXHJcbmV4cG9ydCB0eXBlIEVzdGFkb0NhcmdhPSdyZXN1bWVuJ3wncmVsZXZhbWllbnRvJ3wncmVjaWJvJ1xyXG5cclxuZXhwb3J0IHR5cGUgQ2FyZ2E9e1xyXG4gICAgZmVjaGE6IERhdGVcclxuICAgIGVzdGFkb19jYXJnYTogRXN0YWRvQ2FyZ2FcclxuICAgIG5lY2VzYXJpYXM6IG51bWJlclxyXG4gICAgb2JzZXJ2YWNpb25lczogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIENhcmdhcz17XHJcbiAgICBbaWRDYXJnYSBpbiBJZENhcmdhXTogQ2FyZ2FcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYVJvd1ZhbGlkYXRvcj1TdHJ1Y3R1cmU8SWRWYXJpYWJsZSxWYWxvcixJZEZpbj47XHJcblxyXG5leHBvcnQgdHlwZSBNb2RvRGVzcGxpZWd1ZSA9ICdtZXRhZGF0b3MnfCdyZWxldmFtaWVudG8nfCdQREYnXHJcblxyXG5leHBvcnQgdHlwZSBJbmZvRm9ybXVsYXJpbz17XHJcbiAgICBjYXNpbGxlcm9zOkZvcm11bGFyaW8sIC8vIGNhc2lsbGVyb3MgYXBsYW5hZG9zXHJcbiAgICBlc3RydWN0dXJhUm93VmFsaWRhdG9yOkVzdHJ1Y3R1cmFSb3dWYWxpZGF0b3IgLy8gZXN0cnVjdHVyYSBkZSB2YXJpYWJsZXMgcGFyYSBlbCBSb3dWYWxpZGF0b3JcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSWRSZXN1bHRhZG8gPSAnQVZFUklHVUFSJ3wnVE9ETyc7XHJcblxyXG5leHBvcnQgdHlwZSBUYXJlYXNFc3RydWN0dXJhPXtcclxuICAgIFtpZFRhcmVhIGluIElkVGFyZWFdOntcclxuICAgICAgICByZXN1bHRhZG9zOntcclxuICAgICAgICAgICAgW2lkUmVzdWx0YWRvIGluIElkUmVzdWx0YWRvXTp7XHJcbiAgICAgICAgICAgICAgICBkZXNjcmlwY2lvbjpzdHJpbmdcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRXN0cnVjdHVyYSA9IHtcclxuICAgIGZvcm11bGFyaW9zOnsgXHJcbiAgICAgICAgW25vbWJyZUZvcm11bGFyaW8gaW4gSWRGb3JtdWxhcmlvXTpJbmZvRm9ybXVsYXJpb1xyXG4gICAgfVxyXG4gICAgdW5pZGFkZXNfYW5hbGlzaXM6eyBcclxuICAgICAgICBbaWRVbmlkYWRBbmFsaXNpcyBpbiBJZFVuaWRhZEFuYWxpc2lzXTogVW5pZGFkQW5hbGlzaXNcclxuICAgIH1cclxuICAgIHRhcmVhczpUYXJlYXNFc3RydWN0dXJhXHJcbiAgICB0aW1lc3RhbXA6bnVtYmVyXHJcbiAgICBvcGVyYXRpdm86SWRPcGVyYXRpdm9cclxuICAgIGNvbmZpZ1NvcnRlbzogQ29uZmlndXJhY2lvblNvcnRlb1xyXG5cdG5vUmVhczogeyBcclxuXHQgICAgICBub19yZWE6IHN0cmluZyAgXHJcblx0XHQgIGRlc2NyaXBjaW9uOiBzdHJpbmdcclxuXHRcdCAgZ3J1cG86ICAgICBzdHJpbmcgICAgXHJcblx0XHQgIHZhcmlhYmxlOiAgc3RyaW5nXHJcblx0XHQgIHZhbG9yOiAgICAgc3RyaW5nXHJcblx0XHQgIGdydXBvMDogICAgc3RyaW5nXHJcblx0fVtdXHJcbiAgICBub1JlYXNTdXA6IHsgXHJcbiAgICAgICAgbm9fcmVhX3N1cDogc3RyaW5nICBcclxuICAgICAgICBkZXNjX25vcmVhX3N1cDogc3RyaW5nXHJcbiAgICAgICAgZ3J1cG9fc3VwOiAgICAgc3RyaW5nICAgIFxyXG4gICAgICAgIHZhcmlhYmxlX3N1cDogIHN0cmluZ1xyXG4gICAgICAgIHZhbG9yX3N1cDogICAgIHN0cmluZ1xyXG4gICAgICAgIGdydXBvMF9zdXA6ICAgIHN0cmluZ1xyXG4gIH1bXVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBJZEVuYyA9ICcxMzAwMzEnfCcxMzAwMzInfCdldGMnO1xyXG5leHBvcnQgdHlwZSBJbmZvcm1hY2lvbkhkcj17W2VuYyBpbiBJZEVuY106IERhdG9zSGRyVWFQcGFsfVxyXG5cclxuZXhwb3J0IHR5cGUgQ2Fzb1N0YXRlPXtcclxuICAgIG9wY2lvbmVzOnsgLy8gZGF0b3MgZGUgbmF2ZWdhY2nDs24gcXVlIGVsaWplIGVsIHVzdWFyaW9cclxuICAgICAgICBmb3JQazpGb3JQa3xudWxsIC8vIMOtbmRpY2UgZGVudHJvIGRlIGxhcyB1bmlkYWRlcyBkZSBhbsOhbGlzaXMuIE51bGwgPSBlbiBob2phIGRlIHJ1dGFcclxuICAgICAgICBwaWxhRm9yUGs6Rm9yUGtbXVxyXG4gICAgICAgIG1vZG9EZXNwbGllZ3VlOk1vZG9EZXNwbGllZ3VlXHJcbiAgICAgICAgYmllbnZlbmlkbzpib29sZWFuXHJcbiAgICAgICAgbW9kb0RpcmVjdG86Ym9vbGVhblxyXG4gICAgICAgIG1vZG9Cb3JyYXJSZXNwdWVzdGE6SWRWYXJpYWJsZXxudWxsXHJcbiAgICAgICAgY29uQ2FtcG9PcGNpb25lczpib29sZWFuXHJcbiAgICAgICAgc2FsdG9BdXRvbWF0aWNvOmJvb2xlYW5cclxuICAgIH0sIFxyXG4gICAgbW9kbzp7IC8vIG5vIHNlIHBlcnNpc3RlXHJcbiAgICAgICAgZGVtbzpib29sZWFuXHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERlZk9wZXJhdGl2byA9IHtcclxuICAgIGVzTm9SZWE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kTm9SZWE6c3RyaW5nfG51bGwsIGVzTm9SZWE6Ym9vbGVhbn0sXHJcbiAgICBlc05vUmVhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZE5vUmVhU3VwOnN0cmluZ3xudWxsLCBlc05vUmVhU3VwOmJvb2xlYW59LFxyXG4gICAgZXNSZWFsaXphZGE6KHJlc3B1ZXN0YXM6UmVzcHVlc3Rhcyk9PiB7Y29kUmVhOm51bWJlcnxudWxsLCBlc1JlYTpib29sZWFufSxcclxuICAgIGVzUmVhbGl6YWRhU3VwOihyZXNwdWVzdGFzOlJlc3B1ZXN0YXMpPT4ge2NvZFJlYVN1cDpudW1iZXJ8bnVsbCwgZXNSZWFTdXA6Ym9vbGVhbn0sXHJcbiAgICBVQXByaW5jaXBhbDogSWRVbmlkYWRBbmFsaXNpcyxcclxuICAgIGRlZlVBOntbaSBpbiBJZFVuaWRhZEFuYWxpc2lzXTp7cGs6SWRWYXJpYWJsZSwgaW5jbHVpZGFzOklkVW5pZGFkQW5hbGlzaXNbXSwgaWRzRm9yOklkRm9ybXVsYXJpb1tdfX0sXHJcbiAgICBkZWZGb3I6e1tmIGluIElkRm9ybXVsYXJpb106ey8qYXJib2xVQTpJZFVuaWRhZEFuYWxpc2lzW10sICovIGhlcm1hbm8/OnRydWV9fVxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyA9IHtcclxuICAgIHJlc3B1ZXN0YXM6e1t1YSBpbiBJZFVuaWRhZEFuYWxpc2lzXTpSZXNwdWVzdGFzUmFpeltdfVxyXG4gICAgbW9kb0FsbWFjZW5hbWllbnRvOk1vZG9BbG1hY2VuYW1pZW50b1xyXG4gICAgcGVyc29uYTpzdHJpbmdcclxuICAgIHRhcmVhOklkVGFyZWFcclxuICAgIGlkcGVyOnN0cmluZ1xyXG4gICAgY2FyZ2FzOiBDYXJnYXNcclxuICAgIGluZm9ybWFjaW9uSGRyOiBJbmZvcm1hY2lvbkhkclxyXG4gICAgc29sb0xlY3R1cmE6IGJvb2xlYW5cclxuICAgIHRva2VuPzpzdHJpbmdcclxuICAgIG51bV9zaW5jcm8/Om51bWJlclxyXG4gICAgdGltZXN0YW1wRXN0cnVjdHVyYT86bnVtYmVyXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb1RhYmxhID0ge1xyXG4gICAgbWV0b2RvOiBcInRhYmxhXCIsXHJcbiAgICBwYXJhbV9tZXRvZG86IHtcclxuICAgICAgICB0YWJsYTpzdHJpbmdbXSxcclxuICAgICAgICB2YXJfbGV0cmE6SWRWYXJpYWJsZSxcclxuICAgIH0gICAgXHJcbn1cclxuXHJcbnR5cGUgQ29uZmlndXJhY2lvblNvcnRlb0hhc2ggPSB7XHJcbiAgICBtZXRvZG86IFwiaGFzaFwiLFxyXG4gICAgcGFyYW1fbWV0b2RvOiB7XHJcbiAgICAgICAgdmFyX2NvZWY6IFtcclxuICAgICAgICAgICAge3ZhcjpJZFZhcmlhYmxlLCBjb2VmOm51bWJlcn0sXHJcbiAgICAgICAgICAgIHt2YXI6SWRWYXJpYWJsZSwgY29lZjpudW1iZXJ9LFxyXG4gICAgICAgIF0sXHJcbiAgICAgICAgZGl2aXNvcjogbnVtYmVyXHJcbiAgICB9ICAgIFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBDb25maWd1cmFjaW9uU29ydGVvID0ge1trZXkgaW4gSWRGb3JtdWxhcmlvXTpDb25maWd1cmFjaW9uU29ydGVvRm9ybXVsYXJpb31cclxuXHJcbmV4cG9ydCB0eXBlIENvbmZpZ3VyYWNpb25Tb3J0ZW9Gb3JtdWxhcmlvID0ge1xyXG4gICAgdW5pZGFkX2FuYWxpc2lzOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgdW5pZGFkX2FuYWxpc2lzX3BhZHJlOiBJZFVuaWRhZEFuYWxpc2lzLFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWQ6IHN0cmluZyAvL1wibm90IChwMSkgb3Igbm8gdCAocDIpIG9yIG5vdChwMylcIlxyXG4gICAgZXhwcl9pbmNvbXBsZXRpdHVkOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgLy9leHByX2luY29tcGxldGl0dWRfanM6IHN0cmluZyAvL3NlIGNyZWEgYWwgY29tcGlsYXJcclxuICAgIGV4cHJfaW5jb21wbGV0aXR1ZF9qczoge1xyXG4gICAgICAgIFtrZXkgaW4gbnVtYmVyXTp7ZG9taW5pbzpudW1iZXIsIGV4cHI6c3RyaW5nfVxyXG4gICAgfSBcclxuICAgIGRpc3BhcmFkb3I6IElkVmFyaWFibGUgLy9cInA5XCJcclxuICAgIC8vZmlsdHJvOiBzdHJpbmcgLy9cInAzPj0xOFwiXHJcbiAgICBmaWx0cm86IHtcclxuICAgICAgICBba2V5IGluIG51bWJlcl06e2RvbWluaW86bnVtYmVyLCBleHByOnN0cmluZ31cclxuICAgIH0gXHJcbiAgICAvL2ZpbHRyb19qczogc3RyaW5nIC8vc2UgY3JlYSBhbCBjb21waWxhclxyXG4gICAgZmlsdHJvX2pzOiB7XHJcbiAgICAgICAgW2tleSBpbiBudW1iZXJdOntkb21pbmlvOm51bWJlciwgZXhwcjpzdHJpbmd9XHJcbiAgICB9IFxyXG4gICAgb3JkZW46IHtcclxuICAgICAgICB2YXJpYWJsZTpJZFZhcmlhYmxlXHJcbiAgICAgICAgb3JkZW46IDF8LTFcclxuICAgIH1bXSAvL1tcInAzXCIsIFwicDJcIiwgXCJwMVwiLCBcInAwXCJdLCAvLyBwMCBlcyBjb25zdHJ1aWRhLCBubyB2YSBlbiBwYXLDoW1ldHJvcywgc2UgcG9uZSBwYXJhIHF1ZSBlbCBvcmRlbiBzZWEgZGV0ZXJtaW7DrXN0aWNvXHJcbiAgICBwYXJhbWV0cm9zOklkVmFyaWFibGVbXS8vIFtcInAxXCIsXCJwMlwiLFwicDNcIiwgXCJwNFwiLCBcInA1XCIsIFwicDZcIl0sIC8vIHZhcmlhYmxlcyBxdWUgYW51bGFuIGFsIGRpc3BhcmFkb3JcclxuICAgIGNhbnRpZGFkX3NvcnRlYWJsZXM6IElkVmFyaWFibGVcclxuICAgIGNhbnRpZGFkX3RvdGFsOiBJZFZhcmlhYmxlXHJcbiAgICByZXN1bHRhZG86IElkVmFyaWFibGUgLy9cInAxMVwiXHJcbiAgICByZXN1bHRhZG9fbWFudWFsOiBJZFZhcmlhYmxlIC8vXCJwMTFcIlxyXG4gICAgc29ydGVhZG9fbW9zdHJhcj86IHtzb3VyY2U6SWRWYXJpYWJsZSwgdGFyZ2V0OklkVmFyaWFibGV9W10sXHJcbiAgICBpbmNvbXBsZXRhczogSWRWYXJpYWJsZVxyXG4gICAgdmFyaWFibGVCb3RvbkZvcm11bGFyaW9VQTogSWRWYXJpYWJsZS8vJyRCLkY6UzFfUCdcclxuICAgIHZhcmlhYmxlQm90b25Gb3JtdWxhcmlvVUFJbmRpdmlkdWFsPzogSWRWYXJpYWJsZSAvLyckQi5GOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19pbmRpdmlkdWFsPzogSWRGb3JtdWxhcmlvIC8vICdGOkkxJ1xyXG4gICAgaWRfZm9ybXVsYXJpb19wYWRyZT86IElkRm9ybXVsYXJpbyAvLyAnRjpTMSdcclxufSAmIChDb25maWd1cmFjaW9uU29ydGVvSGFzaCB8IENvbmZpZ3VyYWNpb25Tb3J0ZW9UYWJsYSlcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdG9QbGFpbkZvclBrKGZvclBrOkZvclBrKTpQbGFpbkZvclBre1xyXG4gICAgLy8gQHRzLWlnbm9yZSBzYWJlbW9zIHF1ZSBoYXkgcXVlIGhhY2VyIHVuIEpTT05cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShmb3JQayk7XHJcbn1cclxuXHJcbmRlY2xhcmUgZ2xvYmFsIHtcclxuICAgIG5hbWVzcGFjZSBteU93bntcclxuICAgICAgICBpbnRlcmZhY2UgQWRkclBhcmFtcyB7XHJcbiAgICAgICAgICAgIHN0YXRlX2ZvclBrOnN0cmluZ1xyXG4gICAgICAgICAgICBzdGF0ZV9waWxhRm9yUGs6c3RyaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59Il19
@@ -4,8 +4,8 @@
4
4
 
5
5
  drop schema if exists "comun" cascade;
6
6
  create schema "comun";
7
- grant usage on schema "comun" to "preju2022_admin";
8
- grant create on schema "comun" to "preju2022_admin";
7
+ --grant usage on schema "comun" to "preju2022_admin";
8
+ --grant create on schema "comun" to "preju2022_admin";
9
9
 
10
10
  CREATE OR REPLACE FUNCTION comun.informado("P_valor" anyelement)
11
11
  RETURNS boolean AS
@@ -1,13 +1,15 @@
1
- tipoc|denominacion|irrepetible|desp_casillero|desp_hijos|puede_ser_var
2
- B|bloque|true|||false
3
- BF|Botón para formulario|true|||
4
- CONS|consistencia|true|||false
5
- CP|conjunto de preguntas|true|||false
6
- F|formulario||||false
7
- FILTRO|filtro|true|||false
8
- MATRIZ|matriz (de varias preguntas)|true|||false
9
- O|opción|||nueva_fila|false
10
- OM|opción múltiple|||misma_fila|
11
- P|pregunta|true||tabla|
12
- PMATRIZ|pregunta en forma de matriz|true||tabla_matriz|false
1
+ tipoc|denominacion|irrepetible|desp_casillero|desp_hijos|puede_ser_var
2
+ B|bloque|true|||false
3
+ BF|Botón para formulario|true|||
4
+ CONS|consistencia|true|||false
5
+ CP|conjunto de preguntas|true|||false
6
+ F|formulario||||false
7
+ FILTRO|filtro|true|||false
8
+ FIN|fin|true|||false
9
+ LIBRE|casillero de uso libre (uso exclusivo de PEI)|true|||false
10
+ MATRIZ|matriz (de varias preguntas)|true|||false
11
+ O|opción|||nueva_fila|false
12
+ OM|opción múltiple|||misma_fila|
13
+ P|pregunta|true||tabla|
14
+ PMATRIZ|pregunta en forma de matriz|true||tabla_matriz|false
13
15
  TEXTO|texto aclaratorio sin pregunta||||false
@@ -1,23 +1,25 @@
1
- tipoc_padre|tipoc_hijo
2
- B|CP
3
- B|FILTRO
4
- B|MATRIZ
5
- B|P
6
- B|PMATRIZ
7
- B|TEXTO
8
- CP|P
9
- F|B
10
- F|BF
11
- F|CP
12
- F|FILTRO
13
- F|MATRIZ
14
- F|P
15
- F|PMATRIZ
16
- F|TEXTO
17
- MATRIZ|P
18
- O|P
19
- OM|O
20
- OM|P
21
- P|O
22
- P|OM
1
+ tipoc_padre|tipoc_hijo
2
+ B|CP
3
+ B|FILTRO
4
+ B|LIBRE
5
+ B|MATRIZ
6
+ B|P
7
+ B|PMATRIZ
8
+ B|TEXTO
9
+ CP|P
10
+ F|B
11
+ F|BF
12
+ F|CP
13
+ F|FILTRO
14
+ F|LIBRE
15
+ F|MATRIZ
16
+ F|P
17
+ F|PMATRIZ
18
+ F|TEXTO
19
+ MATRIZ|P
20
+ O|P
21
+ OM|O
22
+ OM|P
23
+ P|O
24
+ P|OM
23
25
  PMATRIZ|OM
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "dmencu",
3
3
  "description": "DM Encu - Encuestas en dispositivo móvil",
4
- "version": "0.1.53",
4
+ "version": "0.2.1",
5
5
  "author": "Codenautas <codenautas@googlegroups.com>",
6
6
  "license": "MIT",
7
7
  "main": "dist/server/server/app-dmencu.js",
@@ -1,70 +0,0 @@
1
- CACHE MANIFEST
2
- #0813b
3
-
4
- CACHE:
5
- #--------------------------- JS ------------------------------------
6
- ../lib/react.production.min.js
7
- ../lib/react-dom.production.min.js
8
- ../lib/material-ui.production.min.js
9
- ../lib/clsx.min.js
10
- ../lib/redux.min.js
11
- ../lib/react-redux.min.js
12
- ../lib/require-bro.js
13
- ../lib/like-ar.js
14
- ../lib/best-globals.js
15
- ../lib/json4all.js
16
- ../lib/js-to-html.js
17
- ../lib/redux-typed-reducer.js
18
- ../lib/memoize-one.js
19
- ../adapt.js
20
- ../tipos.js
21
- ../digitov.js
22
- ../redux-formulario.js
23
- ../render-general.js
24
- ../render-formulario.js
25
- ../client_modules/row-validator.js
26
- ../unlogged.js
27
- ../lib/js-yaml.js
28
- ../lib/xlsx.core.min.js
29
- ../lib/lazy-some.js
30
- ../lib/sql-tools.js
31
- ../dialog-promise/dialog-promise.js
32
- ../moment/min/moment.js
33
- ../pikaday/pikaday.js
34
- ../lib/polyfills-bro.js
35
- ../lib/big.js
36
- ../lib/type-store.js
37
- ../lib/typed-controls.js
38
- ../lib/ajax-best-promise.js
39
- ../my-ajax.js
40
- ../my-start.js
41
- ../lib/my-localdb.js
42
- ../lib/my-websqldb.js
43
- ../lib/my-localdb.js.map
44
- ../lib/my-websqldb.js.map
45
- # NO VA ../lib/my-things.js
46
- # NO VA ../lib/my-tables.js
47
- ../lib/my-inform-net-status.js
48
- # NO VA ../lib/my-menu.js
49
- ../lib/my-skin.js
50
- ../lib/cliente-en-castellano.js
51
- ../client/client.js
52
- ../client/menu.js
53
-
54
- #------------------------------ CSS ---------------------------------
55
- ../dialog-promise/dialog-promise.css
56
- ../pikaday/pikaday.css
57
- # NO VA ../css/my-things.css
58
- # NO VA ../css/my-tables.css
59
- # NO VA ../css/my-menu.css
60
- ../css/offline-mode.css
61
- ../css/formulario-react.css
62
-
63
- #------------------------------ IMAGES ---------------------------------
64
- ../img/main-loading.gif
65
-
66
- FALLBACK:
67
- ../menu* ../campo
68
-
69
- NETWORK:
70
- *
@@ -1,84 +0,0 @@
1
- altoEtiqueta = 148px
2
- mitadAltoEtiqueta = 75px
3
- anchoEtiqueta = 390px
4
- altoQr = 128px
5
- altoLogoEstadistica = 73px
6
- altoTexto = 41px
7
- altoDmEncu = 73px
8
- altoBA = 55px
9
-
10
- .etiqueta
11
- display flex
12
- background-color #ffffff
13
- width anchoEtiqueta
14
- height altoEtiqueta
15
- .columna
16
- padding 11px 0px
17
- .codigo-qr
18
- height altoQr
19
- width altoQr
20
- img
21
- height altoQr
22
- .logo-estadistica
23
- height altoLogoEstadistica
24
- img
25
- height altoLogoEstadistica
26
- .texto-codigo
27
- height altoTexto
28
- padding 6px 0px
29
- x-background-color yellow
30
- text-align center
31
- vertical-align middle
32
- font-size 30px
33
- .logo-dmencu
34
- height altoDmEncu
35
- img
36
- height altoDmEncu
37
- .logo-ba
38
- height altoBA
39
- img
40
- height altoBA
41
- .columna-derecha
42
- padding 0px 0px
43
-
44
- .not_print
45
- @media print
46
- display none
47
-
48
- .pre-plancha
49
- display flex
50
- color #399947
51
- margin-left 25px
52
- padding-top 22px
53
- min-height 32px
54
- height 32px
55
- vertical-align bottom
56
- align-items bottom
57
- font-size 130%
58
- .plancha
59
- margin-left 10px
60
- display grid
61
- grid-template-columns repeat(3, 1fr)
62
- page-break-after always
63
-
64
-
65
- .table-param-screen, .result-progress
66
- @media print
67
- display none
68
-
69
- .etiqueta
70
- @media screen
71
- border 1px dashed orange
72
-
73
- .result-div
74
- @media print
75
- zoom 0.65
76
-
77
- .result-div[resultado-cargar=ok], .result-div[resultado-rectificar=ok]
78
- background-color #5F5
79
- .result-div[resultado-cargar='tenia']
80
- background-color orange
81
- .result-div[resultado-cargar]
82
- .ficha-persona
83
- label
84
- font-weight 600
@@ -1,114 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- const CACHE_NAME = '#20-11-05';
12
- const FALLBACK = 'campo';
13
- var urlsToCache = [
14
- "campo",
15
- /*
16
- "lib/react.production.min.js",
17
- "lib/react-dom.production.min.js",
18
- "lib/material-ui.production.min.js",
19
- */
20
- "lib/react.development.js",
21
- "lib/react-dom.development.js",
22
- "lib/material-ui.development.js",
23
- "lib/clsx.min.js",
24
- "lib/redux.min.js",
25
- "lib/react-redux.min.js",
26
- "lib/require-bro.js",
27
- "lib/like-ar.js",
28
- "lib/best-globals.js",
29
- "lib/json4all.js",
30
- "lib/js-to-html.js",
31
- "lib/redux-typed-reducer.js",
32
- "lib/memoize-one.js",
33
- "adapt.js",
34
- "tipos.js",
35
- "digitov.js",
36
- "redux-formulario.js",
37
- "render-general.js",
38
- "render-formulario.js",
39
- "client_modules/row-validator.js",
40
- "unlogged.js",
41
- "lib/js-yaml.js",
42
- "lib/xlsx.core.min.js",
43
- "lib/lazy-some.js",
44
- "lib/sql-tools.js",
45
- "dialog-promise/dialog-promise.js",
46
- "moment/min/moment.js",
47
- "pikaday/pikaday.js",
48
- "lib/polyfills-bro.js",
49
- "lib/big.js",
50
- "lib/type-store.js",
51
- "lib/typed-controls.js",
52
- "lib/ajax-best-promise.js",
53
- "my-ajax.js",
54
- "my-start.js",
55
- "lib/my-localdb.js",
56
- "lib/my-websqldb.js",
57
- "lib/my-localdb.js.map",
58
- "lib/my-websqldb.js.map",
59
- "lib/my-inform-net-status.js",
60
- "lib/my-skin.js",
61
- "lib/cliente-en-castellano.js",
62
- "client/client.js",
63
- "client/menu.js",
64
- "dialog-promise/dialog-promise.css",
65
- "pikaday/pikaday.css",
66
- "css/offline-mode.css",
67
- "css/formulario-react.css",
68
- "img/main-loading.gif",
69
- ];
70
- self.addEventListener('install', (event) => __awaiter(void 0, void 0, void 0, function* () {
71
- //si hay cambios no espero para cambiarlo
72
- self.skipWaiting();
73
- console.log("instalando");
74
- event.waitUntil(caches.open(CACHE_NAME).then((cache) => cache.addAll(urlsToCache)));
75
- }));
76
- self.addEventListener('fetch', (event) => {
77
- var sourceParts = event.request.url.split('/');
78
- var source = sourceParts[sourceParts.length - 1];
79
- console.log("source", source);
80
- if (source == '@version') {
81
- var miBlob = new Blob();
82
- var opciones = { "status": 200, "statusText": CACHE_NAME, ok: true };
83
- var miRespuesta = new Response(miBlob, opciones);
84
- event.respondWith(miRespuesta);
85
- }
86
- else {
87
- event.respondWith(caches.open(CACHE_NAME).then((cache) => cache.match(event.request).then((response) => {
88
- console.log("respuesta caché: ", response);
89
- return response || fetch(event.request).then((response) => {
90
- console.log("respuesta", response);
91
- if (!response) {
92
- console.log("no tiene respuesta");
93
- throw Error('without response');
94
- }
95
- return response;
96
- }).catch((err) => {
97
- console.log(err);
98
- return new Response(`<p>Se produjo un error al intentar cargar la p&aacute;gina, es posible que no haya conexi&oacute;n a internet</p><a href=${FALLBACK}>Volver a Hoja de Ruta</button>`, {
99
- headers: { 'Content-Type': 'text/html' }
100
- });
101
- });
102
- })));
103
- }
104
- });
105
- self.addEventListener('activate', (event) => {
106
- console.log("borrando caches viejas");
107
- event.waitUntil(caches.keys().then((cacheNames) => {
108
- return Promise.all(cacheNames.filter((cacheName) => cacheName != CACHE_NAME).map((cacheName) => {
109
- console.log("borrando cache ", cacheName);
110
- return caches.delete(cacheName);
111
- }));
112
- }));
113
- });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS13b3JrZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY2xpZW50L3NlcnZpY2Utd29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVksQ0FBQzs7Ozs7Ozs7OztBQUNiLE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQztBQUMvQixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUM7QUFDekIsSUFBSSxXQUFXLEdBQUc7SUFDZCxPQUFPO0lBQ1A7Ozs7TUFJRTtJQUNILDBCQUEwQjtJQUMxQiw4QkFBOEI7SUFDOUIsZ0NBQWdDO0lBQ2hDLGlCQUFpQjtJQUNoQixrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIscUJBQXFCO0lBQ3JCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixVQUFVO0lBQ1YsVUFBVTtJQUNWLFlBQVk7SUFDWixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLHNCQUFzQjtJQUN0QixpQ0FBaUM7SUFDakMsYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsa0JBQWtCO0lBQ2xCLGtCQUFrQjtJQUNsQixrQ0FBa0M7SUFDbEMsc0JBQXNCO0lBQ3RCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFDdEIsWUFBWTtJQUNaLG1CQUFtQjtJQUNuQix1QkFBdUI7SUFDdkIsMEJBQTBCO0lBQzFCLFlBQVk7SUFDWixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQix1QkFBdUI7SUFDdkIsd0JBQXdCO0lBQ3hCLDZCQUE2QjtJQUM3QixnQkFBZ0I7SUFDaEIsOEJBQThCO0lBQzlCLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsbUNBQW1DO0lBQ25DLHFCQUFxQjtJQUNyQixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLHNCQUFzQjtDQUN6QixDQUFDO0FBQ0YsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxDQUFPLEtBQUssRUFBQyxFQUFFO0lBQzVDLHlDQUF5QztJQUN6QyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN6QixLQUFLLENBQUMsU0FBUyxDQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDLEVBQUUsQ0FDbEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FDNUIsQ0FDSixDQUFDO0FBQ04sQ0FBQyxDQUFBLENBQUMsQ0FBQztBQUVILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUMsRUFBRTtJQUNwQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0MsSUFBSSxNQUFNLEdBQVUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUMsTUFBTSxDQUFDLENBQUE7SUFDNUIsSUFBRyxNQUFNLElBQUUsVUFBVSxFQUFDO1FBQ2xCLElBQUksTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxRQUFRLEdBQUcsRUFBRSxRQUFRLEVBQUcsR0FBRyxFQUFHLFlBQVksRUFBRyxVQUFVLEVBQUUsRUFBRSxFQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZFLElBQUksV0FBVyxHQUFHLElBQUksUUFBUSxDQUFDLE1BQU0sRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0tBQ2xDO1NBQUk7UUFDRCxLQUFLLENBQUMsV0FBVyxDQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFDLEVBQUUsQ0FDbEMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFDLEVBQUU7WUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxRQUFRLENBQUMsQ0FBQTtZQUMxQyxPQUFPLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBQyxFQUFFO2dCQUNyRCxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQTtnQkFDbEMsSUFBRyxDQUFDLFFBQVEsRUFBRTtvQkFDVixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUE7b0JBQ2pDLE1BQU0sS0FBSyxDQUFDLGtCQUFrQixDQUFDLENBQUM7aUJBQ25DO2dCQUNELE9BQU8sUUFBUSxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsRUFBQyxFQUFFO2dCQUNaLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLE9BQU8sSUFBSSxRQUFRLENBQUMsNEhBQTRILFFBQVEsaUNBQWlDLEVBQUU7b0JBQ3ZMLE9BQU8sRUFBRSxFQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUM7aUJBQ3pDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQ0wsQ0FDSixDQUFDO0tBQ0w7QUFDTCxDQUFDLENBQUMsQ0FBQztBQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUMsRUFBRTtJQUN2QyxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUE7SUFDckMsS0FBSyxDQUFDLFNBQVMsQ0FDWCxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFDLEVBQUU7UUFDN0IsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUNkLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUMsRUFBRSxDQUMzQixTQUFTLElBQUksVUFBVSxDQUMxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBQyxFQUFFO1lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMxQyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUNMLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xyXG5jb25zdCBDQUNIRV9OQU1FID0gJyMyMC0xMS0wNSc7XHJcbmNvbnN0IEZBTExCQUNLID0gJ2NhbXBvJztcclxudmFyIHVybHNUb0NhY2hlID0gW1xyXG4gICAgXCJjYW1wb1wiLFxyXG4gICAgLypcclxuICAgIFwibGliL3JlYWN0LnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICBcImxpYi9yZWFjdC1kb20ucHJvZHVjdGlvbi5taW4uanNcIixcclxuICAgIFwibGliL21hdGVyaWFsLXVpLnByb2R1Y3Rpb24ubWluLmpzXCIsXHJcbiAgICAqL1xyXG4gICBcImxpYi9yZWFjdC5kZXZlbG9wbWVudC5qc1wiLFxyXG4gICBcImxpYi9yZWFjdC1kb20uZGV2ZWxvcG1lbnQuanNcIixcclxuICAgXCJsaWIvbWF0ZXJpYWwtdWkuZGV2ZWxvcG1lbnQuanNcIixcclxuICAgXCJsaWIvY2xzeC5taW4uanNcIixcclxuICAgIFwibGliL3JlZHV4Lm1pbi5qc1wiLFxyXG4gICAgXCJsaWIvcmVhY3QtcmVkdXgubWluLmpzXCIsXHJcbiAgICBcImxpYi9yZXF1aXJlLWJyby5qc1wiLFxyXG4gICAgXCJsaWIvbGlrZS1hci5qc1wiLFxyXG4gICAgXCJsaWIvYmVzdC1nbG9iYWxzLmpzXCIsXHJcbiAgICBcImxpYi9qc29uNGFsbC5qc1wiLFxyXG4gICAgXCJsaWIvanMtdG8taHRtbC5qc1wiLFxyXG4gICAgXCJsaWIvcmVkdXgtdHlwZWQtcmVkdWNlci5qc1wiLFxyXG4gICAgXCJsaWIvbWVtb2l6ZS1vbmUuanNcIixcclxuICAgIFwiYWRhcHQuanNcIixcclxuICAgIFwidGlwb3MuanNcIixcclxuICAgIFwiZGlnaXRvdi5qc1wiLFxyXG4gICAgXCJyZWR1eC1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICBcInJlbmRlci1nZW5lcmFsLmpzXCIsXHJcbiAgICBcInJlbmRlci1mb3JtdWxhcmlvLmpzXCIsXHJcbiAgICBcImNsaWVudF9tb2R1bGVzL3Jvdy12YWxpZGF0b3IuanNcIixcclxuICAgIFwidW5sb2dnZWQuanNcIixcclxuICAgIFwibGliL2pzLXlhbWwuanNcIixcclxuICAgIFwibGliL3hsc3guY29yZS5taW4uanNcIixcclxuICAgIFwibGliL2xhenktc29tZS5qc1wiLFxyXG4gICAgXCJsaWIvc3FsLXRvb2xzLmpzXCIsXHJcbiAgICBcImRpYWxvZy1wcm9taXNlL2RpYWxvZy1wcm9taXNlLmpzXCIsXHJcbiAgICBcIm1vbWVudC9taW4vbW9tZW50LmpzXCIsXHJcbiAgICBcInBpa2FkYXkvcGlrYWRheS5qc1wiLFxyXG4gICAgXCJsaWIvcG9seWZpbGxzLWJyby5qc1wiLFxyXG4gICAgXCJsaWIvYmlnLmpzXCIsXHJcbiAgICBcImxpYi90eXBlLXN0b3JlLmpzXCIsXHJcbiAgICBcImxpYi90eXBlZC1jb250cm9scy5qc1wiLFxyXG4gICAgXCJsaWIvYWpheC1iZXN0LXByb21pc2UuanNcIixcclxuICAgIFwibXktYWpheC5qc1wiLFxyXG4gICAgXCJteS1zdGFydC5qc1wiLFxyXG4gICAgXCJsaWIvbXktbG9jYWxkYi5qc1wiLFxyXG4gICAgXCJsaWIvbXktd2Vic3FsZGIuanNcIixcclxuICAgIFwibGliL215LWxvY2FsZGIuanMubWFwXCIsXHJcbiAgICBcImxpYi9teS13ZWJzcWxkYi5qcy5tYXBcIixcclxuICAgIFwibGliL215LWluZm9ybS1uZXQtc3RhdHVzLmpzXCIsXHJcbiAgICBcImxpYi9teS1za2luLmpzXCIsXHJcbiAgICBcImxpYi9jbGllbnRlLWVuLWNhc3RlbGxhbm8uanNcIixcclxuICAgIFwiY2xpZW50L2NsaWVudC5qc1wiLFxyXG4gICAgXCJjbGllbnQvbWVudS5qc1wiLFxyXG4gICAgXCJkaWFsb2ctcHJvbWlzZS9kaWFsb2ctcHJvbWlzZS5jc3NcIixcclxuICAgIFwicGlrYWRheS9waWthZGF5LmNzc1wiLFxyXG4gICAgXCJjc3Mvb2ZmbGluZS1tb2RlLmNzc1wiLFxyXG4gICAgXCJjc3MvZm9ybXVsYXJpby1yZWFjdC5jc3NcIixcclxuICAgIFwiaW1nL21haW4tbG9hZGluZy5naWZcIixcclxuXTtcclxuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdpbnN0YWxsJywgYXN5bmMgKGV2ZW50KT0+e1xyXG4gICAgLy9zaSBoYXkgY2FtYmlvcyBubyBlc3Blcm8gcGFyYSBjYW1iaWFybG9cclxuICAgIHNlbGYuc2tpcFdhaXRpbmcoKTtcclxuICAgIGNvbnNvbGUubG9nKFwiaW5zdGFsYW5kb1wiKVxyXG4gICAgZXZlbnQud2FpdFVudGlsKFxyXG4gICAgICAgIGNhY2hlcy5vcGVuKENBQ0hFX05BTUUpLnRoZW4oKGNhY2hlKT0+XHJcbiAgICAgICAgICAgIGNhY2hlLmFkZEFsbCh1cmxzVG9DYWNoZSlcclxuICAgICAgICApXHJcbiAgICApO1xyXG59KTtcclxuXHJcbnNlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpPT57XHJcbiAgICB2YXIgc291cmNlUGFydHMgPSBldmVudC5yZXF1ZXN0LnVybC5zcGxpdCgnLycpO1xyXG4gICAgdmFyIHNvdXJjZTpzdHJpbmcgPSBzb3VyY2VQYXJ0c1tzb3VyY2VQYXJ0cy5sZW5ndGgtMV07XHJcbiAgICBjb25zb2xlLmxvZyhcInNvdXJjZVwiLHNvdXJjZSlcclxuICAgIGlmKHNvdXJjZT09J0B2ZXJzaW9uJyl7XHJcbiAgICAgICAgdmFyIG1pQmxvYiA9IG5ldyBCbG9iKCk7XHJcbiAgICAgICAgdmFyIG9wY2lvbmVzID0geyBcInN0YXR1c1wiIDogMjAwICwgXCJzdGF0dXNUZXh0XCIgOiBDQUNIRV9OQU1FLCBvazp0cnVlIH07XHJcbiAgICAgICAgdmFyIG1pUmVzcHVlc3RhID0gbmV3IFJlc3BvbnNlKG1pQmxvYixvcGNpb25lcyk7XHJcbiAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgobWlSZXNwdWVzdGEpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgICAgZXZlbnQucmVzcG9uZFdpdGgoXHJcbiAgICAgICAgICAgIGNhY2hlcy5vcGVuKENBQ0hFX05BTUUpLnRoZW4oKGNhY2hlKT0+XHJcbiAgICAgICAgICAgICAgICBjYWNoZS5tYXRjaChldmVudC5yZXF1ZXN0KS50aGVuKChyZXNwb25zZSk9PntcclxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcInJlc3B1ZXN0YSBjYWNow6k6IFwiLCByZXNwb25zZSlcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzcG9uc2UgfHwgZmV0Y2goZXZlbnQucmVxdWVzdCkudGhlbigocmVzcG9uc2UpPT57XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwicmVzcHVlc3RhXCIsIHJlc3BvbnNlKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZighcmVzcG9uc2UpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwibm8gdGllbmUgcmVzcHVlc3RhXCIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBFcnJvcignd2l0aG91dCByZXNwb25zZScpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlcnIpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUmVzcG9uc2UoYDxwPlNlIHByb2R1am8gdW4gZXJyb3IgYWwgaW50ZW50YXIgY2FyZ2FyIGxhIHAmYWFjdXRlO2dpbmEsIGVzIHBvc2libGUgcXVlIG5vIGhheWEgY29uZXhpJm9hY3V0ZTtuIGEgaW50ZXJuZXQ8L3A+PGEgaHJlZj0ke0ZBTExCQUNLfT5Wb2x2ZXIgYSBIb2phIGRlIFJ1dGE8L2J1dHRvbj5gLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7J0NvbnRlbnQtVHlwZSc6ICd0ZXh0L2h0bWwnfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59KTtcclxuc2VsZi5hZGRFdmVudExpc3RlbmVyKCdhY3RpdmF0ZScsIChldmVudCk9PntcclxuICAgIGNvbnNvbGUubG9nKFwiYm9ycmFuZG8gY2FjaGVzIHZpZWphc1wiKVxyXG4gICAgZXZlbnQud2FpdFVudGlsKFxyXG4gICAgICAgIGNhY2hlcy5rZXlzKCkudGhlbigoY2FjaGVOYW1lcyk9PntcclxuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UuYWxsKFxyXG4gICAgICAgICAgICAgICAgY2FjaGVOYW1lcy5maWx0ZXIoKGNhY2hlTmFtZSk9PlxyXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlTmFtZSAhPSBDQUNIRV9OQU1FXHJcbiAgICAgICAgICAgICAgICApLm1hcCgoY2FjaGVOYW1lKT0+e1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKFwiYm9ycmFuZG8gY2FjaGUgXCIsIGNhY2hlTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlcy5kZWxldGUoY2FjaGVOYW1lKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSlcclxuICAgICk7XHJcbn0pOyJdfQ==
@@ -1,59 +0,0 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
5
- }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.controlarCodigoDV2 = exports.DigitoVerificador = void 0;
13
- class DigitoVerificador {
14
- constructor(cast, multiplicadores, divisor, desplazamiento) {
15
- this.cast = cast;
16
- this.multiplicadores = multiplicadores;
17
- this.divisor = divisor;
18
- this.desplazamiento = desplazamiento;
19
- }
20
- obtenerDigito(numero) {
21
- var digitos = numero.toString().split('');
22
- var i = 0;
23
- var sumador = this.cast(0);
24
- while (digitos.length) {
25
- var digito = this.cast(digitos.pop() || 0);
26
- var multiplicador = this.multiplicadores[i];
27
- // @ts-expect-error No debería ser error. https://github.com/microsoft/TypeScript/issues/39569
28
- var producto = digito * multiplicador;
29
- // @ts-expect-error No debería ser error. https://github.com/microsoft/TypeScript/issues/39569
30
- sumador = sumador + producto;
31
- i++;
32
- }
33
- if (this.desplazamiento) {
34
- // @ts-expect-error No debería ser error. https://github.com/microsoft/TypeScript/issues/39569
35
- sumador = sumador + this.desplazamiento;
36
- }
37
- // @ts-expect-error No debería ser error. https://github.com/microsoft/TypeScript/issues/39569
38
- var verificador = sumador % this.divisor;
39
- if (!verificador)
40
- return this.cast(0);
41
- if (this.divisor - verificador > 9)
42
- return null;
43
- // @ts-expect-error No debería ser error. https://github.com/microsoft/TypeScript/issues/39569
44
- return this.divisor - verificador;
45
- }
46
- }
47
- exports.DigitoVerificador = DigitoVerificador;
48
- var dmencu = '203';
49
- var v1 = dmencu == '201' ? new DigitoVerificador(Number, [2, 3, 4, 5], 11) : dmencu == '202' ? new DigitoVerificador(Number, [2, 3, 4, 5], 11, 1) : new DigitoVerificador(Number, [2, 3, 4, 5], 11, 2);
50
- var v2 = dmencu == '201' ? new DigitoVerificador(Number, [3, 4, 5, 7], 11) : dmencu == '202' ? new DigitoVerificador(Number, [3, 4, 5, 9], 11) : new DigitoVerificador(Number, [3, 4, 5, 13], 11);
51
- function controlarCodigoDV2(codigo) {
52
- var [i, dd] = codigo.split('-');
53
- var d1 = v1.obtenerDigito(Number(i));
54
- var d2 = v2.obtenerDigito(Number(i));
55
- return dd == "" + d1 + d2;
56
- }
57
- exports.controlarCodigoDV2 = controlarCodigoDV2;
58
- });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlnaXRvdi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bmxvZ2dlZC9kaWdpdG92LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFBLE1BQWEsaUJBQWlCO1FBQzFCLFlBQW9CLElBQXNDLEVBQVUsZUFBcUIsRUFBVSxPQUFXLEVBQVUsY0FBbUI7WUFBdkgsU0FBSSxHQUFKLElBQUksQ0FBa0M7WUFBVSxvQkFBZSxHQUFmLGVBQWUsQ0FBTTtZQUFVLFlBQU8sR0FBUCxPQUFPLENBQUk7WUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBSztRQUMzSSxDQUFDO1FBQ0QsYUFBYSxDQUFDLE1BQVU7WUFDcEIsSUFBSSxPQUFPLEdBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsR0FBQyxDQUFDLENBQUM7WUFDUixJQUFJLE9BQU8sR0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE9BQU0sT0FBTyxDQUFDLE1BQU0sRUFBQztnQkFDakIsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLElBQUksYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVDLDhGQUE4RjtnQkFDOUYsSUFBSSxRQUFRLEdBQU8sTUFBTSxHQUFHLGFBQWEsQ0FBQztnQkFDMUMsOEZBQThGO2dCQUM5RixPQUFPLEdBQUcsT0FBTyxHQUFHLFFBQVEsQ0FBQztnQkFDN0IsQ0FBQyxFQUFFLENBQUM7YUFDUDtZQUNELElBQUcsSUFBSSxDQUFDLGNBQWMsRUFBQztnQkFDbkIsOEZBQThGO2dCQUM5RixPQUFPLEdBQUcsT0FBTyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUE7YUFDMUM7WUFDRCw4RkFBOEY7WUFDOUYsSUFBSSxXQUFXLEdBQU8sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDN0MsSUFBRyxDQUFDLFdBQVc7Z0JBQUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUcsSUFBSSxDQUFDLE9BQU8sR0FBQyxXQUFXLEdBQUMsQ0FBQztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUMzQyw4RkFBOEY7WUFDOUYsT0FBTyxJQUFJLENBQUMsT0FBTyxHQUFDLFdBQVcsQ0FBQztRQUNwQyxDQUFDO0tBQ0o7SUEzQkQsOENBMkJDO0lBRUQsSUFBSSxNQUFNLEdBQUMsS0FBSyxDQUFDO0lBRWpCLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBRSxLQUFLLENBQUEsQ0FBQyxDQUFBLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLE1BQU0sSUFBRSxLQUFLLENBQUEsQ0FBQyxDQUFDLElBQUksaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxFQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxDQUFDLEVBQUMsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsRUFBQyxDQUFDLENBQUMsQ0FBQztJQUNsTCxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUMsQ0FBQyxNQUFNLElBQUUsS0FBSyxDQUFBLENBQUMsQ0FBQyxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLENBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFHLENBQUMsQ0FBRSxJQUFJLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBQyxDQUFDLEVBQUMsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxFQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRWpMLFNBQWdCLGtCQUFrQixDQUFDLE1BQWE7UUFDNUMsSUFBSSxDQUFDLENBQUMsRUFBQyxFQUFFLENBQUMsR0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksRUFBRSxHQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxFQUFFLEdBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxPQUFPLEVBQUUsSUFBRSxFQUFFLEdBQUMsRUFBRSxHQUFDLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBTEQsZ0RBS0MiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgRGlnaXRvVmVyaWZpY2Fkb3I8TnVtIGV4dGVuZHMgYmlnaW50fG51bWJlcj57XHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNhc3Q6KG51bWJyZVN0cmluZzpzdHJpbmd8bnVtYmVyKT0+TnVtLCBwcml2YXRlIG11bHRpcGxpY2Fkb3JlczpOdW1bXSwgcHJpdmF0ZSBkaXZpc29yOk51bSwgcHJpdmF0ZSBkZXNwbGF6YW1pZW50bz86TnVtKXtcclxuICAgIH1cclxuICAgIG9idGVuZXJEaWdpdG8obnVtZXJvOk51bSk6TnVtfG51bGx7XHJcbiAgICAgICAgdmFyIGRpZ2l0b3M9bnVtZXJvLnRvU3RyaW5nKCkuc3BsaXQoJycpO1xyXG4gICAgICAgIHZhciBpPTA7XHJcbiAgICAgICAgdmFyIHN1bWFkb3I6TnVtID0gdGhpcy5jYXN0KDApO1xyXG4gICAgICAgIHdoaWxlKGRpZ2l0b3MubGVuZ3RoKXtcclxuICAgICAgICAgICAgdmFyIGRpZ2l0byA9IHRoaXMuY2FzdChkaWdpdG9zLnBvcCgpfHwwKTtcclxuICAgICAgICAgICAgdmFyIG11bHRpcGxpY2Fkb3IgPSB0aGlzLm11bHRpcGxpY2Fkb3Jlc1tpXTtcclxuICAgICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBObyBkZWJlcsOtYSBzZXIgZXJyb3IuIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMzk1NjlcclxuICAgICAgICAgICAgdmFyIHByb2R1Y3RvOk51bSA9IGRpZ2l0byAqIG11bHRpcGxpY2Fkb3I7XHJcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgTm8gZGViZXLDrWEgc2VyIGVycm9yLiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzM5NTY5XHJcbiAgICAgICAgICAgIHN1bWFkb3IgPSBzdW1hZG9yICsgcHJvZHVjdG87XHJcbiAgICAgICAgICAgIGkrKztcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYodGhpcy5kZXNwbGF6YW1pZW50byl7XHJcbiAgICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgTm8gZGViZXLDrWEgc2VyIGVycm9yLiBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvaXNzdWVzLzM5NTY5XHJcbiAgICAgICAgICAgIHN1bWFkb3IgPSBzdW1hZG9yICsgdGhpcy5kZXNwbGF6YW1pZW50b1xyXG4gICAgICAgIH1cclxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIE5vIGRlYmVyw61hIHNlciBlcnJvci4gaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2lzc3Vlcy8zOTU2OVxyXG4gICAgICAgIHZhciB2ZXJpZmljYWRvcjpOdW0gPSBzdW1hZG9yICUgdGhpcy5kaXZpc29yO1xyXG4gICAgICAgIGlmKCF2ZXJpZmljYWRvcikgcmV0dXJuIHRoaXMuY2FzdCgwKTtcclxuICAgICAgICBpZih0aGlzLmRpdmlzb3ItdmVyaWZpY2Fkb3I+OSkgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBObyBkZWJlcsOtYSBzZXIgZXJyb3IuIGh0dHBzOi8vZ2l0aHViLmNvbS9taWNyb3NvZnQvVHlwZVNjcmlwdC9pc3N1ZXMvMzk1NjlcclxuICAgICAgICByZXR1cm4gdGhpcy5kaXZpc29yLXZlcmlmaWNhZG9yO1xyXG4gICAgfVxyXG59XHJcblxyXG52YXIgZG1lbmN1PScyMDMnO1xyXG5cclxudmFyIHYxID0gZG1lbmN1PT0nMjAxJz9uZXcgRGlnaXRvVmVyaWZpY2Fkb3IoTnVtYmVyLCBbMiwzLDQsNV0sMTEpOiBkbWVuY3U9PScyMDInPyBuZXcgRGlnaXRvVmVyaWZpY2Fkb3IoTnVtYmVyLCBbMiwzLDQsNV0sMTEsMSkgOiAgbmV3IERpZ2l0b1ZlcmlmaWNhZG9yKE51bWJlciwgWzIsMyw0LDVdLDExLDIpO1xyXG52YXIgdjIgPSBkbWVuY3U9PScyMDEnP25ldyBEaWdpdG9WZXJpZmljYWRvcihOdW1iZXIsIFszLDQsNSw3XSwxMSk6IGRtZW5jdT09JzIwMic/IG5ldyBEaWdpdG9WZXJpZmljYWRvcihOdW1iZXIsIFszLDQsNSw5XSwxMSkgICA6ICBuZXcgRGlnaXRvVmVyaWZpY2Fkb3IoTnVtYmVyLCBbMyw0LDUsMTNdLDExKTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb250cm9sYXJDb2RpZ29EVjIoY29kaWdvOnN0cmluZyl7XHJcbiAgICB2YXIgW2ksZGRdPWNvZGlnby5zcGxpdCgnLScpO1xyXG4gICAgdmFyIGQxPXYxLm9idGVuZXJEaWdpdG8oTnVtYmVyKGkpKTtcclxuICAgIHZhciBkMj12Mi5vYnRlbmVyRGlnaXRvKE51bWJlcihpKSk7XHJcbiAgICByZXR1cm4gZGQ9PVwiXCIrZDErZDI7XHJcbn0iXX0=