dmencu 0.3.33 → 0.3.35

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 (128) hide show
  1. package/dist/client/client/client.d.ts +1 -1
  2. package/dist/client/client/client.js +538 -538
  3. package/dist/client/client/menu.js +2 -2
  4. package/dist/client/unlogged/abrir-formulario.d.ts +12 -12
  5. package/dist/client/unlogged/abrir-formulario.js +102 -102
  6. package/dist/client/unlogged/bypass-formulario.d.ts +200 -200
  7. package/dist/client/unlogged/bypass-formulario.js +1041 -1041
  8. package/dist/client/unlogged/redux-formulario.d.ts +349 -349
  9. package/dist/client/unlogged/redux-formulario.js +317 -317
  10. package/dist/client/unlogged/tipos.d.ts +469 -469
  11. package/dist/client/unlogged/tipos.js +21 -21
  12. package/dist/server/server/app-dmencu.d.ts +1511 -1511
  13. package/dist/server/server/app-dmencu.js +649 -649
  14. package/dist/server/server/def-config.d.ts +1 -1
  15. package/dist/server/server/def-config.js +14 -14
  16. package/dist/server/server/procedures-dmencu.d.ts +6 -6
  17. package/dist/server/server/procedures-dmencu.js +852 -852
  18. package/dist/server/server/server-dmencu.d.ts +1 -1
  19. package/dist/server/server/server-dmencu.js +20 -20
  20. package/dist/server/server/table-acciones.d.ts +3 -3
  21. package/dist/server/server/table-acciones.js +53 -53
  22. package/dist/server/server/table-areas.d.ts +3 -3
  23. package/dist/server/server/table-areas.js +88 -88
  24. package/dist/server/server/table-comunas.d.ts +3 -3
  25. package/dist/server/server/table-comunas.js +28 -28
  26. package/dist/server/server/table-control_campo.d.ts +11 -11
  27. package/dist/server/server/table-control_campo.js +71 -71
  28. package/dist/server/server/table-control_resumen.d.ts +3 -3
  29. package/dist/server/server/table-control_resumen.js +18 -18
  30. package/dist/server/server/table-encuestadores.d.ts +3 -3
  31. package/dist/server/server/table-encuestadores.js +18 -18
  32. package/dist/server/server/table-estados.d.ts +3 -3
  33. package/dist/server/server/table-estados.js +59 -60
  34. package/dist/server/server/table-estados_acciones.d.ts +3 -3
  35. package/dist/server/server/table-estados_acciones.js +38 -38
  36. package/dist/server/server/table-hogares.d.ts +3 -3
  37. package/dist/server/server/table-hogares.js +156 -156
  38. package/dist/server/server/table-hogares_sup.d.ts +3 -3
  39. package/dist/server/server/table-hogares_sup.js +191 -191
  40. package/dist/server/server/table-lotes.d.ts +3 -3
  41. package/dist/server/server/table-lotes.js +35 -35
  42. package/dist/server/server/table-mis_encuestadores.d.ts +3 -3
  43. package/dist/server/server/table-mis_encuestadores.js +56 -56
  44. package/dist/server/server/table-mis_tareas.d.ts +3 -3
  45. package/dist/server/server/table-mis_tareas.js +18 -18
  46. package/dist/server/server/table-mis_tareas_areas.d.ts +3 -3
  47. package/dist/server/server/table-mis_tareas_areas.js +20 -20
  48. package/dist/server/server/table-no_rea.d.ts +3 -3
  49. package/dist/server/server/table-no_rea.js +32 -32
  50. package/dist/server/server/table-no_rea_sup.d.ts +3 -3
  51. package/dist/server/server/table-no_rea_sup.js +32 -32
  52. package/dist/server/server/table-operaciones.d.ts +3 -3
  53. package/dist/server/server/table-operaciones.js +30 -30
  54. package/dist/server/server/table-parametros.d.ts +3 -3
  55. package/dist/server/server/table-parametros.js +39 -39
  56. package/dist/server/server/table-permisos.d.ts +3 -3
  57. package/dist/server/server/table-permisos.js +31 -31
  58. package/dist/server/server/table-personal.d.ts +6 -6
  59. package/dist/server/server/table-personal.js +56 -56
  60. package/dist/server/server/table-personal_rol.d.ts +3 -3
  61. package/dist/server/server/table-personal_rol.js +36 -36
  62. package/dist/server/server/table-personas.d.ts +3 -3
  63. package/dist/server/server/table-personas.js +448 -448
  64. package/dist/server/server/table-personas_sup.d.ts +3 -3
  65. package/dist/server/server/table-personas_sup.js +93 -93
  66. package/dist/server/server/table-recepcionistas.d.ts +3 -3
  67. package/dist/server/server/table-recepcionistas.js +18 -18
  68. package/dist/server/server/table-recuperadores.d.ts +3 -3
  69. package/dist/server/server/table-recuperadores.js +18 -18
  70. package/dist/server/server/table-resultados_tarea.d.ts +3 -3
  71. package/dist/server/server/table-resultados_tarea.js +28 -28
  72. package/dist/server/server/table-roles.d.ts +3 -3
  73. package/dist/server/server/table-roles.js +32 -32
  74. package/dist/server/server/table-roles_permisos.d.ts +3 -3
  75. package/dist/server/server/table-roles_permisos.js +35 -35
  76. package/dist/server/server/table-roles_subordinados.d.ts +3 -3
  77. package/dist/server/server/table-roles_subordinados.js +32 -32
  78. package/dist/server/server/table-semanas.d.ts +3 -3
  79. package/dist/server/server/table-semanas.js +34 -34
  80. package/dist/server/server/table-sincronizaciones.d.ts +3 -3
  81. package/dist/server/server/table-sincronizaciones.js +30 -30
  82. package/dist/server/server/table-supervisores.d.ts +3 -3
  83. package/dist/server/server/table-supervisores.js +18 -18
  84. package/dist/server/server/table-tareas.d.ts +3 -3
  85. package/dist/server/server/table-tareas.js +46 -46
  86. package/dist/server/server/table-tareas_areas.d.ts +3 -3
  87. package/dist/server/server/table-tareas_areas.js +55 -55
  88. package/dist/server/server/table-tareas_tem.d.ts +3 -3
  89. package/dist/server/server/table-tareas_tem.js +104 -105
  90. package/dist/server/server/table-tareas_tem_asignables.d.ts +1 -1
  91. package/dist/server/server/table-tareas_tem_asignables.js +44 -39
  92. package/dist/server/server/table-tareas_tem_recepcion.d.ts +3 -5
  93. package/dist/server/server/table-tareas_tem_recepcion.js +33 -43
  94. package/dist/server/server/table-tem.d.ts +3 -3
  95. package/dist/server/server/table-tem.js +191 -191
  96. package/dist/server/server/table-tem_asignacion.d.ts +3 -0
  97. package/dist/server/server/table-tem_asignacion.js +51 -0
  98. package/dist/server/server/table-tem_recepcion.d.ts +3 -3
  99. package/dist/server/server/table-tem_recepcion.js +18 -18
  100. package/dist/server/server/table-usuarios.d.ts +3 -3
  101. package/dist/server/server/table-usuarios.js +58 -58
  102. package/dist/server/server/table-visitas.d.ts +3 -3
  103. package/dist/server/server/table-visitas.js +91 -91
  104. package/dist/server/server/table-visitas_sup.d.ts +3 -3
  105. package/dist/server/server/table-visitas_sup.js +91 -91
  106. package/dist/server/server/table-viviendas.d.ts +3 -3
  107. package/dist/server/server/table-viviendas.js +299 -299
  108. package/dist/server/server/types-dmencu.d.ts +24 -24
  109. package/dist/server/server/types-dmencu.js +32 -32
  110. package/dist/server/unlogged/tipos.d.ts +469 -469
  111. package/dist/server/unlogged/tipos.js +21 -21
  112. package/dist/unlogged/unlogged/abrir-formulario.d.ts +12 -12
  113. package/dist/unlogged/unlogged/abrir-formulario.js +102 -102
  114. package/dist/unlogged/unlogged/adapt.js +7 -7
  115. package/dist/unlogged/unlogged/bypass-formulario.d.ts +200 -200
  116. package/dist/unlogged/unlogged/bypass-formulario.js +1041 -1041
  117. package/dist/unlogged/unlogged/redux-formulario.d.ts +349 -349
  118. package/dist/unlogged/unlogged/redux-formulario.js +317 -317
  119. package/dist/unlogged/unlogged/render-formulario.d.ts +54 -54
  120. package/dist/unlogged/unlogged/render-formulario.js +1485 -1485
  121. package/dist/unlogged/unlogged/render-general.d.ts +126 -126
  122. package/dist/unlogged/unlogged/render-general.js +184 -184
  123. package/dist/unlogged/unlogged/tipos.d.ts +469 -469
  124. package/dist/unlogged/unlogged/tipos.js +21 -21
  125. package/dist/unlogged/unlogged/unlogged.d.ts +1 -1
  126. package/dist/unlogged/unlogged/unlogged.js +162 -162
  127. package/install/tipoc_tipoc.tab +1 -0
  128. package/package.json +10 -11
@@ -1,3 +1,3 @@
1
- "use strict";
2
- // ver client.ts
1
+ "use strict";
2
+ // ver client.ts
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGllbnQvbWVudS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdmVyIGNsaWVudC50cyJdfQ==
@@ -1,12 +1,12 @@
1
- import { Estructura, Respuestas, ModoAlmacenamiento } from "./tipos";
2
- export declare const GLOVAR_DATOSBYPASS = "datosbypass";
3
- export declare const GLOVAR_MODOBYPASS = "modobypass";
4
- export declare const GLOVAR_ESTRUCTURA = "estructura";
5
- export declare const BACKUPS = "backups";
6
- export declare function recuperarDatosByPass(): void;
7
- export declare function cargarHojaDeRuta(nuevoPaquete: {
8
- respuestas: Respuestas;
9
- modoAlmacenamiento: ModoAlmacenamiento;
10
- dirty?: boolean;
11
- }): void;
12
- export declare function cargarEstructura(estructuraACargar: Estructura): void;
1
+ import { Estructura, Respuestas, ModoAlmacenamiento } from "./tipos";
2
+ export declare const GLOVAR_DATOSBYPASS = "datosbypass";
3
+ export declare const GLOVAR_MODOBYPASS = "modobypass";
4
+ export declare const GLOVAR_ESTRUCTURA = "estructura";
5
+ export declare const BACKUPS = "backups";
6
+ export declare function recuperarDatosByPass(): void;
7
+ export declare function cargarHojaDeRuta(nuevoPaquete: {
8
+ respuestas: Respuestas;
9
+ modoAlmacenamiento: ModoAlmacenamiento;
10
+ dirty?: boolean;
11
+ }): void;
12
+ export declare function cargarEstructura(estructuraACargar: Estructura): void;
@@ -1,103 +1,103 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- (function (factory) {
11
- if (typeof module === "object" && typeof module.exports === "object") {
12
- var v = factory(require, exports);
13
- if (v !== undefined) module.exports = v;
14
- }
15
- else if (typeof define === "function" && define.amd) {
16
- define(["require", "exports", "./tipos", "like-ar", "./bypass-formulario"], factory);
17
- }
18
- })(function (require, exports) {
19
- "use strict";
20
- Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.cargarEstructura = exports.cargarHojaDeRuta = exports.recuperarDatosByPass = exports.BACKUPS = exports.GLOVAR_ESTRUCTURA = exports.GLOVAR_MODOBYPASS = exports.GLOVAR_DATOSBYPASS = void 0;
22
- const tipos_1 = require("./tipos");
23
- const likeAr = require("like-ar");
24
- const bypass_formulario_1 = require("./bypass-formulario");
25
- exports.GLOVAR_DATOSBYPASS = 'datosbypass';
26
- exports.GLOVAR_MODOBYPASS = 'modobypass';
27
- exports.GLOVAR_ESTRUCTURA = 'estructura';
28
- exports.BACKUPS = 'backups';
29
- (0, bypass_formulario_1.setPersistirDatosByPass)(function persistirEnMemoria(persistentes) {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- var { modoAlmacenamiento } = persistentes;
32
- if (modoAlmacenamiento == 'local') {
33
- my.setLocalVar(exports.GLOVAR_DATOSBYPASS, persistentes);
34
- }
35
- else {
36
- my.setSessionVar(exports.GLOVAR_DATOSBYPASS, persistentes);
37
- }
38
- my.setSessionVar(exports.GLOVAR_MODOBYPASS, modoAlmacenamiento);
39
- });
40
- });
41
- function recuperarDatosByPass() {
42
- var recuperado;
43
- var modoAlmacenamiento = my.getSessionVar(exports.GLOVAR_MODOBYPASS);
44
- if (modoAlmacenamiento == 'local') {
45
- recuperado = my.getLocalVar(exports.GLOVAR_DATOSBYPASS);
46
- }
47
- else {
48
- recuperado = my.getSessionVar(exports.GLOVAR_DATOSBYPASS);
49
- }
50
- if (recuperado) {
51
- (0, bypass_formulario_1.setDatosByPass)(Object.assign(Object.assign({}, recuperado), { modoAlmacenamiento }));
52
- }
53
- return;
54
- }
55
- exports.recuperarDatosByPass = recuperarDatosByPass;
56
- function cargarHojaDeRuta(nuevoPaquete) {
57
- var _a;
58
- var modoActual = my.getSessionVar(exports.GLOVAR_MODOBYPASS);
59
- if (modoActual && nuevoPaquete.modoAlmacenamiento != modoActual) {
60
- throw new Error('No se pueden mezclar modos de apertura de encuestas, directo y por hoja de ruta para MD (' + modoActual + ', ' + nuevoPaquete.modoAlmacenamiento + ')');
61
- }
62
- var datosByPass = Object.assign(Object.assign({}, nuevoPaquete), { dirty: (_a = nuevoPaquete.dirty) !== null && _a !== void 0 ? _a : false });
63
- (0, bypass_formulario_1.setDatosByPass)(datosByPass);
64
- }
65
- exports.cargarHojaDeRuta = cargarHojaDeRuta;
66
- function cargarEstructura(estructuraACargar) {
67
- var estructura = (0, bypass_formulario_1.setEstructura)(estructuraACargar);
68
- my.setLocalVar(exports.GLOVAR_ESTRUCTURA, estructura);
69
- }
70
- exports.cargarEstructura = cargarEstructura;
71
- var backupPendiente = Promise.resolve();
72
- function enviarBackup() {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- var backups = my.getLocalVar(exports.BACKUPS);
75
- var { token, tem } = backups;
76
- if (likeAr(tem).array().length) {
77
- try {
78
- yield my.ajax.dm_backup({ token, tem });
79
- // tengo que levantarlo de nuevo porque acá hay una interrupción del flujo
80
- var backupsALimpiar = my.getLocalVar(exports.BACKUPS);
81
- backupsALimpiar.tem = likeAr(backupsALimpiar.tem).filter(caso => caso.idBackup > backups.idActual).plain();
82
- my.setLocalVar(exports.BACKUPS, backupsALimpiar);
83
- }
84
- catch (err) {
85
- console.log('no se pudo hacer backup', err);
86
- }
87
- }
88
- });
89
- }
90
- (0, bypass_formulario_1.setEncolarBackup)(function encolarBackup(token, forPkRaiz, respuestasRaiz) {
91
- var backups = my.existsLocalVar(exports.BACKUPS) ? my.getLocalVar(exports.BACKUPS) : {
92
- idActual: 0,
93
- tem: {}
94
- };
95
- backups.idActual += 1;
96
- backups.token = token;
97
- let plainForPk = (0, tipos_1.toPlainForPk)(forPkRaiz);
98
- backups.tem[plainForPk] = { idBackup: backups.idActual, forPkRaiz, respuestasRaiz };
99
- my.setLocalVar(exports.BACKUPS, backups);
100
- backupPendiente = backupPendiente.then(enviarBackup);
101
- });
102
- });
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ (function (factory) {
11
+ if (typeof module === "object" && typeof module.exports === "object") {
12
+ var v = factory(require, exports);
13
+ if (v !== undefined) module.exports = v;
14
+ }
15
+ else if (typeof define === "function" && define.amd) {
16
+ define(["require", "exports", "./tipos", "like-ar", "./bypass-formulario"], factory);
17
+ }
18
+ })(function (require, exports) {
19
+ "use strict";
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.cargarEstructura = exports.cargarHojaDeRuta = exports.recuperarDatosByPass = exports.BACKUPS = exports.GLOVAR_ESTRUCTURA = exports.GLOVAR_MODOBYPASS = exports.GLOVAR_DATOSBYPASS = void 0;
22
+ const tipos_1 = require("./tipos");
23
+ const likeAr = require("like-ar");
24
+ const bypass_formulario_1 = require("./bypass-formulario");
25
+ exports.GLOVAR_DATOSBYPASS = 'datosbypass';
26
+ exports.GLOVAR_MODOBYPASS = 'modobypass';
27
+ exports.GLOVAR_ESTRUCTURA = 'estructura';
28
+ exports.BACKUPS = 'backups';
29
+ (0, bypass_formulario_1.setPersistirDatosByPass)(function persistirEnMemoria(persistentes) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ var { modoAlmacenamiento } = persistentes;
32
+ if (modoAlmacenamiento == 'local') {
33
+ my.setLocalVar(exports.GLOVAR_DATOSBYPASS, persistentes);
34
+ }
35
+ else {
36
+ my.setSessionVar(exports.GLOVAR_DATOSBYPASS, persistentes);
37
+ }
38
+ my.setSessionVar(exports.GLOVAR_MODOBYPASS, modoAlmacenamiento);
39
+ });
40
+ });
41
+ function recuperarDatosByPass() {
42
+ var recuperado;
43
+ var modoAlmacenamiento = my.getSessionVar(exports.GLOVAR_MODOBYPASS);
44
+ if (modoAlmacenamiento == 'local') {
45
+ recuperado = my.getLocalVar(exports.GLOVAR_DATOSBYPASS);
46
+ }
47
+ else {
48
+ recuperado = my.getSessionVar(exports.GLOVAR_DATOSBYPASS);
49
+ }
50
+ if (recuperado) {
51
+ (0, bypass_formulario_1.setDatosByPass)(Object.assign(Object.assign({}, recuperado), { modoAlmacenamiento }));
52
+ }
53
+ return;
54
+ }
55
+ exports.recuperarDatosByPass = recuperarDatosByPass;
56
+ function cargarHojaDeRuta(nuevoPaquete) {
57
+ var _a;
58
+ var modoActual = my.getSessionVar(exports.GLOVAR_MODOBYPASS);
59
+ if (modoActual && nuevoPaquete.modoAlmacenamiento != modoActual) {
60
+ throw new Error('No se pueden mezclar modos de apertura de encuestas, directo y por hoja de ruta para MD (' + modoActual + ', ' + nuevoPaquete.modoAlmacenamiento + ')');
61
+ }
62
+ var datosByPass = Object.assign(Object.assign({}, nuevoPaquete), { dirty: (_a = nuevoPaquete.dirty) !== null && _a !== void 0 ? _a : false });
63
+ (0, bypass_formulario_1.setDatosByPass)(datosByPass);
64
+ }
65
+ exports.cargarHojaDeRuta = cargarHojaDeRuta;
66
+ function cargarEstructura(estructuraACargar) {
67
+ var estructura = (0, bypass_formulario_1.setEstructura)(estructuraACargar);
68
+ my.setLocalVar(exports.GLOVAR_ESTRUCTURA, estructura);
69
+ }
70
+ exports.cargarEstructura = cargarEstructura;
71
+ var backupPendiente = Promise.resolve();
72
+ function enviarBackup() {
73
+ return __awaiter(this, void 0, void 0, function* () {
74
+ var backups = my.getLocalVar(exports.BACKUPS);
75
+ var { token, tem } = backups;
76
+ if (likeAr(tem).array().length) {
77
+ try {
78
+ yield my.ajax.dm_backup({ token, tem });
79
+ // tengo que levantarlo de nuevo porque acá hay una interrupción del flujo
80
+ var backupsALimpiar = my.getLocalVar(exports.BACKUPS);
81
+ backupsALimpiar.tem = likeAr(backupsALimpiar.tem).filter(caso => caso.idBackup > backups.idActual).plain();
82
+ my.setLocalVar(exports.BACKUPS, backupsALimpiar);
83
+ }
84
+ catch (err) {
85
+ console.log('no se pudo hacer backup', err);
86
+ }
87
+ }
88
+ });
89
+ }
90
+ (0, bypass_formulario_1.setEncolarBackup)(function encolarBackup(token, forPkRaiz, respuestasRaiz) {
91
+ var backups = my.existsLocalVar(exports.BACKUPS) ? my.getLocalVar(exports.BACKUPS) : {
92
+ idActual: 0,
93
+ tem: {}
94
+ };
95
+ backups.idActual += 1;
96
+ backups.token = token;
97
+ let plainForPk = (0, tipos_1.toPlainForPk)(forPkRaiz);
98
+ backups.tem[plainForPk] = { idBackup: backups.idActual, forPkRaiz, respuestasRaiz };
99
+ my.setLocalVar(exports.BACKUPS, backups);
100
+ backupPendiente = backupPendiente.then(enviarBackup);
101
+ });
102
+ });
103
103
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJyaXItZm9ybXVsYXJpby5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91bmxvZ2dlZC9hYnJpci1mb3JtdWxhcmlvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQUFBLG1DQUtpQjtJQUVqQixrQ0FBa0M7SUFFbEMsMkRBRTRCO0lBRWYsUUFBQSxrQkFBa0IsR0FBQyxhQUFhLENBQUM7SUFDakMsUUFBQSxpQkFBaUIsR0FBQyxZQUFZLENBQUM7SUFDL0IsUUFBQSxpQkFBaUIsR0FBQyxZQUFZLENBQUM7SUFDL0IsUUFBQSxPQUFPLEdBQUcsU0FBUyxDQUFDO0lBRWpDLElBQUEsMkNBQXVCLEVBQ25CLFNBQWUsa0JBQWtCLENBQUMsWUFBb0M7O1lBQ2xFLElBQUksRUFBQyxrQkFBa0IsRUFBQyxHQUFHLFlBQVksQ0FBQTtZQUN2QyxJQUFHLGtCQUFrQixJQUFFLE9BQU8sRUFBQztnQkFDM0IsRUFBRSxDQUFDLFdBQVcsQ0FBQywwQkFBa0IsRUFBRSxZQUFZLENBQUMsQ0FBQTthQUNuRDtpQkFBSTtnQkFDRCxFQUFFLENBQUMsYUFBYSxDQUFDLDBCQUFrQixFQUFFLFlBQVksQ0FBQyxDQUFBO2FBQ3JEO1lBQ0QsRUFBRSxDQUFDLGFBQWEsQ0FBQyx5QkFBaUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO1FBQzNELENBQUM7S0FBQSxDQUNKLENBQUE7SUFFRCxTQUFnQixvQkFBb0I7UUFDaEMsSUFBSSxVQUFrQyxDQUFDO1FBQ3ZDLElBQUksa0JBQWtCLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyx5QkFBaUIsQ0FBdUIsQ0FBQztRQUNuRixJQUFHLGtCQUFrQixJQUFFLE9BQU8sRUFBQztZQUMzQixVQUFVLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQywwQkFBa0IsQ0FBQyxDQUFBO1NBQ2xEO2FBQUk7WUFDRCxVQUFVLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQywwQkFBa0IsQ0FBQyxD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RUFBQyxDQUFDO1FBQy9FLEVBQUUsQ0FBQyxXQUFXLENBQUMsZUFBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2hDLGVBQWUsR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3hELENBQUMsQ0FDSixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcywgRXN0cnVjdHVyYSwgRm9yUGtSYWl6LFxyXG4gICAgUmVzcHVlc3RhcyxcclxuICAgIE1vZG9BbG1hY2VuYW1pZW50byxcclxuICAgIFBsYWluRm9yUGssXHJcbiAgICB0b1BsYWluRm9yUGssXHJcbn0gZnJvbSBcIi4vdGlwb3NcIjtcclxuXHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5cclxuaW1wb3J0IHsgXHJcbiAgICBzZXREYXRvc0J5UGFzcywgc2V0RW5jb2xhckJhY2t1cCwgc2V0RXN0cnVjdHVyYSwgc2V0UGVyc2lzdGlyRGF0b3NCeVBhc3MgXHJcbn0gZnJvbSBcIi4vYnlwYXNzLWZvcm11bGFyaW9cIlxyXG5cclxuZXhwb3J0IGNvbnN0IEdMT1ZBUl9EQVRPU0JZUEFTUz0nZGF0b3NieXBhc3MnO1xyXG5leHBvcnQgY29uc3QgR0xPVkFSX01PRE9CWVBBU1M9J21vZG9ieXBhc3MnO1xyXG5leHBvcnQgY29uc3QgR0xPVkFSX0VTVFJVQ1RVUkE9J2VzdHJ1Y3R1cmEnO1xyXG5leHBvcnQgY29uc3QgQkFDS1VQUyA9ICdiYWNrdXBzJztcclxuXHJcbnNldFBlcnNpc3RpckRhdG9zQnlQYXNzKFxyXG4gICAgYXN5bmMgZnVuY3Rpb24gcGVyc2lzdGlyRW5NZW1vcmlhKHBlcnNpc3RlbnRlczpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcyl7XHJcbiAgICAgICAgdmFyIHttb2RvQWxtYWNlbmFtaWVudG99ID0gcGVyc2lzdGVudGVzXHJcbiAgICAgICAgaWYobW9kb0FsbWFjZW5hbWllbnRvPT0nbG9jYWwnKXtcclxuICAgICAgICAgICAgbXkuc2V0TG9jYWxWYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX0RBVE9TQllQQVNTLCBwZXJzaXN0ZW50ZXMpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIG15LnNldFNlc3Npb25WYXIoR0xPVkFSX01PRE9CWVBBU1MsIG1vZG9BbG1hY2VuYW1pZW50bylcclxuICAgIH1cclxuKVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHJlY3VwZXJhckRhdG9zQnlQYXNzKCl7XHJcbiAgICB2YXIgcmVjdXBlcmFkbzpEYXRvc0J5UGFzc1BlcnNpc3RpYmxlcztcclxuICAgIHZhciBtb2RvQWxtYWNlbmFtaWVudG8gPSBteS5nZXRTZXNzaW9uVmFyKEdMT1ZBUl9NT0RPQllQQVNTKSBhcyBNb2RvQWxtYWNlbmFtaWVudG87XHJcbiAgICBpZihtb2RvQWxtYWNlbmFtaWVudG89PSdsb2NhbCcpe1xyXG4gICAgICAgIHJlY3VwZXJhZG8gPSBteS5nZXRMb2NhbFZhcihHTE9WQVJfREFUT1NCWVBBU1MpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgICByZWN1cGVyYWRvID0gbXkuZ2V0U2Vzc2lvblZhcihHTE9WQVJfREFUT1NCWVBBU1MpXHJcbiAgICB9XHJcbiAgICBpZihyZWN1cGVyYWRvKXtcclxuICAgICAgICBzZXREYXRvc0J5UGFzcyh7Li4ucmVjdXBlcmFkbywgbW9kb0FsbWFjZW5hbWllbnRvfSlcclxuICAgIH1cclxuICAgIHJldHVyblxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FyZ2FySG9qYURlUnV0YShudWV2b1BhcXVldGU6e3Jlc3B1ZXN0YXM6UmVzcHVlc3RhcywgbW9kb0FsbWFjZW5hbWllbnRvOk1vZG9BbG1hY2VuYW1pZW50bywgZGlydHk/OmJvb2xlYW59KXtcclxuICAgIHZhciBtb2RvQWN0dWFsID0gbXkuZ2V0U2Vzc2lvblZhcihHTE9WQVJfTU9ET0JZUEFTUyk7XHJcbiAgICBpZihtb2RvQWN0dWFsICYmIG51ZXZvUGFxdWV0ZS5tb2RvQWxtYWNlbmFtaWVudG8hPW1vZG9BY3R1YWwpe1xyXG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gc2UgcHVlZGVuIG1lemNsYXIgbW9kb3MgZGUgYXBlcnR1cmEgZGUgZW5jdWVzdGFzLCBkaXJlY3RvIHkgcG9yIGhvamEgZGUgcnV0YSBwYXJhIE1EICgnK21vZG9BY3R1YWwrJywgJytudWV2b1BhcXVldGUubW9kb0FsbWFjZW5hbWllbnRvKycpJyk7XHJcbiAgICB9XHJcbiAgICB2YXIgZGF0b3NCeVBhc3MgPSB7XHJcbiAgICAgICAgLi4ubnVldm9QYXF1ZXRlLCBcclxuICAgICAgICBkaXJ0eTogbnVldm9QYXF1ZXRlLmRpcnR5Pz9mYWxzZVxyXG4gICAgfVxyXG4gICAgc2V0RGF0b3NCeVBhc3MoZGF0b3NCeVBhc3MpO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2FyZ2FyRXN0cnVjdHVyYShlc3RydWN0dXJhQUNhcmdhcjpFc3RydWN0dXJhKXtcclxuICAgIHZhciBlc3RydWN0dXJhID0gc2V0RXN0cnVjdHVyYShlc3RydWN0dXJhQUNhcmdhcik7XHJcbiAgICBteS5zZXRMb2NhbFZhcihHTE9WQVJfRVNUUlVDVFVSQSwgZXN0cnVjdHVyYSk7XHJcbn1cclxuXHJcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXHJcblxyXG5cclxudHlwZSBCYWNrdXBzPXtcclxuICAgIGlkQWN0dWFsOm51bWJlcixcclxuICAgIHRva2VuOnN0cmluZ3x1bmRlZmluZWQsXHJcbiAgICB0ZW06e1trZXkgaW4gUGxhaW5Gb3JQa106e2lkQmFja3VwOm51bWJlciwgZm9yUGtSYWl6OkZvclBrUmFpeiwgcmVzcHVlc3Rhc1JhaXo6UmVzcHVlc3Rhc319XHJcbn1cclxuXHJcbnZhciBiYWNrdXBQZW5kaWVudGUgPSBQcm9taXNlLnJlc29sdmUoKTtcclxuXHJcbmFzeW5jIGZ1bmN0aW9uIGVudmlhckJhY2t1cCgpe1xyXG4gICAgdmFyIGJhY2t1cHM6QmFja3VwcyA9IG15LmdldExvY2FsVmFyKEJBQ0tVUFMpO1xyXG4gICAgdmFyIHt0b2tlbiwgdGVtfSA9IGJhY2t1cHM7XHJcbiAgICBpZihsaWtlQXIodGVtKS5hcnJheSgpLmxlbmd0aCl7XHJcbiAgICAgICAgdHJ5e1xyXG4gICAgICAgICAgICBhd2FpdCBteS5hamF4LmRtX2JhY2t1cCh7dG9rZW4sIHRlbX0pXHJcbiAgICAgICAgICAgIC8vIHRlbmdvIHF1ZSBsZXZhbnRhcmxvIGRlIG51ZXZvIHBvcnF1ZSBhY8OhIGhheSB1bmEgaW50ZXJydXBjacOzbiBkZWwgZmx1am9cclxuICAgICAgICAgICAgdmFyIGJhY2t1cHNBTGltcGlhcjpCYWNrdXBzID0gbXkuZ2V0TG9jYWxWYXIoQkFDS1VQUyk7XHJcbiAgICAgICAgICAgIGJhY2t1cHNBTGltcGlhci50ZW09bGlrZUFyKGJhY2t1cHNBTGltcGlhci50ZW0pLmZpbHRlcihjYXNvPT5jYXNvLmlkQmFja3VwPmJhY2t1cHMuaWRBY3R1YWwpLnBsYWluKCk7XHJcbiAgICAgICAgICAgIG15LnNldExvY2FsVmFyKEJBQ0tVUFMsIGJhY2t1cHNBTGltcGlhcik7XHJcbiAgICAgICAgfWNhdGNoKGVycil7XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdubyBzZSBwdWRvIGhhY2VyIGJhY2t1cCcsIGVycik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5zZXRFbmNvbGFyQmFja3VwKFxyXG4gICAgZnVuY3Rpb24gZW5jb2xhckJhY2t1cCh0b2tlbjpzdHJpbmd8dW5kZWZpbmVkLCBmb3JQa1JhaXo6Rm9yUGtSYWl6LCByZXNwdWVzdGFzUmFpejpSZXNwdWVzdGFzKXtcclxuICAgICAgICB2YXIgYmFja3VwczpCYWNrdXBzID0gbXkuZXhpc3RzTG9jYWxWYXIoQkFDS1VQUyk/bXkuZ2V0TG9jYWxWYXIoQkFDS1VQUyk6e1xyXG4gICAgICAgICAgICBpZEFjdHVhbDowLFxyXG4gICAgICAgICAgICB0ZW06e31cclxuICAgICAgICB9O1xyXG4gICAgICAgIGJhY2t1cHMuaWRBY3R1YWwrPTE7XHJcbiAgICAgICAgYmFja3Vwcy50b2tlbj10b2tlbjtcclxuICAgICAgICBsZXQgcGxhaW5Gb3JQayA9IHRvUGxhaW5Gb3JQayhmb3JQa1JhaXopO1xyXG4gICAgICAgIGJhY2t1cHMudGVtW3BsYWluRm9yUGtdPXtpZEJhY2t1cDpiYWNrdXBzLmlkQWN0dWFsLCBmb3JQa1JhaXosIHJlc3B1ZXN0YXNSYWl6fTtcclxuICAgICAgICBteS5zZXRMb2NhbFZhcihCQUNLVVBTLGJhY2t1cHMpO1xyXG4gICAgICAgIGJhY2t1cFBlbmRpZW50ZSA9IGJhY2t1cFBlbmRpZW50ZS50aGVuKGVudmlhckJhY2t1cClcclxuICAgIH1cclxuKVxyXG4iXX0=