dmencu 0.3.34 → 0.3.36

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 (127) hide show
  1. package/dist/client/client/client.d.ts +1 -1
  2. package/dist/client/client/client.js +540 -539
  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 +854 -854
  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 +60 -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 +5 -5
  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 +192 -192
  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/package.json +1 -1
@@ -1,185 +1,185 @@
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", "react", "react-redux", "memoize-one", "like-ar", "clsx", "./redux-formulario", "@material-ui/core"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.RenderPrincipal = exports.RenderAndCaptureError = exports.ReseterForm = exports.focusToId = exports.ScrollTop = exports.scrollToBottom = exports.scrollToTop = exports.adaptarTipoVarCasillero = exports.ICON = exports.materialIoIconsSvgPath = exports.memoize = exports.clsx = void 0;
13
- const React = require("react");
14
- const react_redux_1 = require("react-redux");
15
- const memoizeBadTyped = require("memoize-one");
16
- const likeAr = require("like-ar");
17
- const clsxx = require("clsx");
18
- //@ts-ignore el módulo clsx no tiene bien puesto los tipos en su .d.ts
19
- exports.clsx = clsxx;
20
- //@ts-ignore el módulo memoize-one no tiene bien puesto los tipos en su .d.ts
21
- exports.memoize = memoizeBadTyped;
22
- const redux_formulario_1 = require("./redux-formulario");
23
- const core_1 = require("@material-ui/core");
24
- // https://material-ui.com/components/material-icons/
25
- exports.materialIoIconsSvgPath = {
26
- Add: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",
27
- ArrowBack: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z",
28
- Assignment: "M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",
29
- Check: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z",
30
- CheckBoxOutlineBlankOutlined: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
31
- CheckBoxOutlined: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z",
32
- ChevronLeft: "M14.71 6.71a.9959.9959 0 00-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z",
33
- ChevronRight: "M9.29 6.71c-.39.39-.39 1.02 0 1.41L13.17 12l-3.88 3.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L10.7 6.7c-.38-.38-1.02-.38-1.41.01z",
34
- Clear: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
35
- Close: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
36
- Code: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z",
37
- Create: "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",
38
- Delete: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z",
39
- DeleteForever: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z",
40
- DeleteOutline: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4z",
41
- Description: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z",
42
- EmojiObjects: "M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28c.35.6.98 1 1.72 1s1.38-.4 1.72-1H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46C18.09 13.95 19 12.08 19 10c0-3.87-3.13-7-7-7zm2 16h-4v-1h4v1zm0-2h-4v-1h4v1zm-1.5-5.59V14h-1v-2.59L9.67 9.59l.71-.71L12 10.5l1.62-1.62.71.71-1.83 1.82z",
43
- ExitToApp: "M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
44
- ExpandLess: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z",
45
- ExpandMore: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z",
46
- FormatLineSpacing: "M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z",
47
- Forward: "M12 8V4l8 8-8 8v-4H4V8z",
48
- ForwardOutlined: "M14 8.83L17.17 12 14 15.17V14H6v-4h8V8.83M12 4v4H4v8h8v4l8-8-8-8z",
49
- Info: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",
50
- KeyboardArrowUp: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z",
51
- KeyboardArrowDown: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",
52
- Label: "M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z",
53
- LocalAtm: "M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z",
54
- Menu: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",
55
- Navigation: "M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z",
56
- NavigationDown: "M12 22L4.5 3.71l.71 -.71L12 6l6.79 -3 .71 .71z",
57
- RemoveShoppingCart: "M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38c-.5.36-.83.95-.83 1.62 0 1.1.89 2 1.99 2 .67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z",
58
- Save: "M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z",
59
- Search: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",
60
- Send: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z",
61
- Settings: "M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z",
62
- SyncAlt: "M22 8l-4-4v3H3v2h15v3l4-4zM2 16l4 4v-3h15v-2H6v-3l-4 4z",
63
- TrendingFlat: "M22 12l-4-4v3H3v2h15v3z",
64
- Warning: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",
65
- };
66
- exports.ICON = likeAr(exports.materialIoIconsSvgPath).map(svgText => () => React.createElement(core_1.SvgIcon, null,
67
- React.createElement("path", { d: svgText }))).plain();
68
- function adaptarTipoVarCasillero(casilleroDataType) {
69
- const adapter = {
70
- 'opciones': 'number',
71
- 'si_no': 'number',
72
- 'numero': 'number',
73
- 'hora': 'tel',
74
- 'horas': 'number',
75
- 'texto': 'text',
76
- 'fecha': 'text'
77
- };
78
- return adapter[casilleroDataType];
79
- }
80
- exports.adaptarTipoVarCasillero = adaptarTipoVarCasillero;
81
- const useStylesScrollTop = (0, core_1.makeStyles)((theme) => (0, core_1.createStyles)({
82
- root: {
83
- position: 'fixed',
84
- bottom: theme.spacing(2),
85
- right: theme.spacing(2),
86
- },
87
- }));
88
- const scrollToTop = () => {
89
- window.scroll({ behavior: 'smooth', top: 0, left: 0 });
90
- };
91
- exports.scrollToTop = scrollToTop;
92
- const scrollToBottom = () => {
93
- window.scroll({ behavior: 'smooth', top: document.body.clientHeight - window.innerHeight, left: 0 });
94
- };
95
- exports.scrollToBottom = scrollToBottom;
96
- function ScrollTop(props) {
97
- const { children } = props;
98
- const classes = useStylesScrollTop();
99
- // Note that you normally won't need to set the window ref as useScrollTrigger
100
- // will default to window.
101
- // This is only being set here because the demo is in an iframe.
102
- const trigger = (0, core_1.useScrollTrigger)({
103
- disableHysteresis: true,
104
- threshold: 100,
105
- });
106
- return (React.createElement(core_1.Zoom, { in: trigger },
107
- React.createElement("div", { onClick: exports.scrollToTop, role: "presentation", className: classes.root }, children)));
108
- }
109
- exports.ScrollTop = ScrollTop;
110
- function focusToId(id, opts, cb) {
111
- var element = document.getElementById(id);
112
- var padre = element;
113
- while (padre && padre.className != 'pregunta' && padre != document.body)
114
- padre = padre.parentElement;
115
- if (padre && padre.className == 'pregunta')
116
- element = padre;
117
- if (element) {
118
- if (cb) {
119
- cb(element);
120
- }
121
- else {
122
- element.focus();
123
- if (opts.moveToElement) {
124
- element.scrollIntoView();
125
- window.scroll({ behavior: opts.moveBehavior || 'auto', top: window.scrollY - 100, left: 0 });
126
- }
127
- }
128
- }
129
- }
130
- exports.focusToId = focusToId;
131
- function ReseterForm(props) {
132
- const dispatch = (0, react_redux_1.useDispatch)();
133
- return React.createElement(React.Fragment, null,
134
- React.createElement(core_1.Button, { variant: "outlined", onClick: () => {
135
- dispatch(props.dispatchers.RESET_OPCIONES({}));
136
- props.onTryAgain();
137
- } }, props.mensaje));
138
- }
139
- exports.ReseterForm = ReseterForm;
140
- class RenderAndCaptureError extends React.Component {
141
- constructor(props) {
142
- super(props);
143
- this.state = { hasError: false, error: {} };
144
- }
145
- componentDidCatch(error, info) {
146
- this.setState({ hasError: true, error, info });
147
- }
148
- render() {
149
- if (this.state.hasError) {
150
- return React.createElement(React.Fragment, null,
151
- React.createElement(core_1.Typography, null, "Hubo un problema en la programaci\u00F3n de la pantalla."),
152
- React.createElement(ReseterForm, { dispatchers: this.props.dispatchers, mensaje: this.props.mensajeRetorno, onTryAgain: () => this.setState({ hasError: false, error: {} }) }),
153
- React.createElement(core_1.Button, { variant: "outlined", color: "secondary", onClick: () => {
154
- (0, redux_formulario_1.gotoSincronizar)();
155
- } }, "ir a la pantalla de sincronizaci\u00F3n"),
156
- React.createElement(core_1.Typography, null, "Error detectado:"),
157
- React.createElement(core_1.Typography, null, this.state.error instanceof Error ? this.state.error.message : 'unknown error'),
158
- React.createElement(core_1.Typography, null, JSON.stringify(this.state.info)));
159
- }
160
- return this.props.children;
161
- }
162
- }
163
- exports.RenderAndCaptureError = RenderAndCaptureError;
164
- const theme = (0, core_1.createMuiTheme)({
165
- overrides: {
166
- MuiCssBaseline: {
167
- '@global': {
168
- html: {
169
- WebkitFontSmoothing: 'auto',
170
- },
171
- },
172
- },
173
- },
174
- });
175
- function RenderPrincipal(props) {
176
- return React.createElement(React.StrictMode, null,
177
- React.createElement(react_redux_1.Provider, { store: props.store },
178
- React.createElement(core_1.ThemeProvider, { theme: theme },
179
- React.createElement(RenderAndCaptureError, { dispatchers: props.dispatchers, mensajeRetorno: props.mensajeRetorno },
180
- React.createElement(core_1.CssBaseline, null),
181
- props.children))));
182
- }
183
- exports.RenderPrincipal = RenderPrincipal;
184
- });
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", "react", "react-redux", "memoize-one", "like-ar", "clsx", "./redux-formulario", "@material-ui/core"], factory);
8
+ }
9
+ })(function (require, exports) {
10
+ "use strict";
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RenderPrincipal = exports.RenderAndCaptureError = exports.ReseterForm = exports.focusToId = exports.ScrollTop = exports.scrollToBottom = exports.scrollToTop = exports.adaptarTipoVarCasillero = exports.ICON = exports.materialIoIconsSvgPath = exports.memoize = exports.clsx = void 0;
13
+ const React = require("react");
14
+ const react_redux_1 = require("react-redux");
15
+ const memoizeBadTyped = require("memoize-one");
16
+ const likeAr = require("like-ar");
17
+ const clsxx = require("clsx");
18
+ //@ts-ignore el módulo clsx no tiene bien puesto los tipos en su .d.ts
19
+ exports.clsx = clsxx;
20
+ //@ts-ignore el módulo memoize-one no tiene bien puesto los tipos en su .d.ts
21
+ exports.memoize = memoizeBadTyped;
22
+ const redux_formulario_1 = require("./redux-formulario");
23
+ const core_1 = require("@material-ui/core");
24
+ // https://material-ui.com/components/material-icons/
25
+ exports.materialIoIconsSvgPath = {
26
+ Add: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z",
27
+ ArrowBack: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20v-2z",
28
+ Assignment: "M19 3h-4.18C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-7 0c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm2 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z",
29
+ Check: "M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z",
30
+ CheckBoxOutlineBlankOutlined: "M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
31
+ CheckBoxOutlined: "M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V5h14v14zM17.99 9l-1.41-1.42-6.59 6.59-2.58-2.57-1.42 1.41 4 3.99z",
32
+ ChevronLeft: "M14.71 6.71a.9959.9959 0 00-1.41 0L8.71 11.3c-.39.39-.39 1.02 0 1.41l4.59 4.59c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z",
33
+ ChevronRight: "M9.29 6.71c-.39.39-.39 1.02 0 1.41L13.17 12l-3.88 3.88c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0l4.59-4.59c.39-.39.39-1.02 0-1.41L10.7 6.7c-.38-.38-1.02-.38-1.41.01z",
34
+ Clear: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
35
+ Close: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z",
36
+ Code: "M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z",
37
+ Create: "M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z",
38
+ Delete: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z",
39
+ DeleteForever: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12l1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z",
40
+ DeleteOutline: "M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM8 9h8v10H8V9zm7.5-5l-1-1h-5l-1 1H5v2h14V4z",
41
+ Description: "M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z",
42
+ EmojiObjects: "M12 3c-.46 0-.93.04-1.4.14-2.76.53-4.96 2.76-5.48 5.52-.48 2.61.48 5.01 2.22 6.56.43.38.66.91.66 1.47V19c0 1.1.9 2 2 2h.28c.35.6.98 1 1.72 1s1.38-.4 1.72-1H14c1.1 0 2-.9 2-2v-2.31c0-.55.22-1.09.64-1.46C18.09 13.95 19 12.08 19 10c0-3.87-3.13-7-7-7zm2 16h-4v-1h4v1zm0-2h-4v-1h4v1zm-1.5-5.59V14h-1v-2.59L9.67 9.59l.71-.71L12 10.5l1.62-1.62.71.71-1.83 1.82z",
43
+ ExitToApp: "M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z",
44
+ ExpandLess: "M12 8l-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z",
45
+ ExpandMore: "M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6z",
46
+ FormatLineSpacing: "M6 7h2.5L5 3.5 1.5 7H4v10H1.5L5 20.5 8.5 17H6V7zm4-2v2h12V5H10zm0 14h12v-2H10v2zm0-6h12v-2H10v2z",
47
+ Forward: "M12 8V4l8 8-8 8v-4H4V8z",
48
+ ForwardOutlined: "M14 8.83L17.17 12 14 15.17V14H6v-4h8V8.83M12 4v4H4v8h8v4l8-8-8-8z",
49
+ Info: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z",
50
+ KeyboardArrowUp: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6z",
51
+ KeyboardArrowDown: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z",
52
+ Label: "M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z",
53
+ LocalAtm: "M11 17h2v-1h1c.55 0 1-.45 1-1v-3c0-.55-.45-1-1-1h-3v-1h4V8h-2V7h-2v1h-1c-.55 0-1 .45-1 1v3c0 .55.45 1 1 1h3v1H9v2h2v1zm9-13H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V6c0-1.11-.89-2-2-2zm0 14H4V6h16v12z",
54
+ Menu: "M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z",
55
+ Navigation: "M12 2L4.5 20.29l.71.71L12 18l6.79 3 .71-.71z",
56
+ NavigationDown: "M12 22L4.5 3.71l.71 -.71L12 6l6.79 -3 .71 .71z",
57
+ RemoveShoppingCart: "M22.73 22.73L2.77 2.77 2 2l-.73-.73L0 2.54l4.39 4.39 2.21 4.66-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h7.46l1.38 1.38c-.5.36-.83.95-.83 1.62 0 1.1.89 2 1.99 2 .67 0 1.26-.33 1.62-.84L21.46 24l1.27-1.27zM7.42 15c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h2.36l2 2H7.42zm8.13-2c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H6.54l9.01 9zM7 18c-1.1 0-1.99.9-1.99 2S5.9 22 7 22s2-.9 2-2-.9-2-2-2z",
58
+ Save: "M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z",
59
+ Search: "M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z",
60
+ Send: "M2.01 21L23 12 2.01 3 2 10l15 2-15 2z",
61
+ Settings: "M15.95 10.78c.03-.25.05-.51.05-.78s-.02-.53-.06-.78l1.69-1.32c.15-.12.19-.34.1-.51l-1.6-2.77c-.1-.18-.31-.24-.49-.18l-1.99.8c-.42-.32-.86-.58-1.35-.78L12 2.34c-.03-.2-.2-.34-.4-.34H8.4c-.2 0-.36.14-.39.34l-.3 2.12c-.49.2-.94.47-1.35.78l-1.99-.8c-.18-.07-.39 0-.49.18l-1.6 2.77c-.1.18-.06.39.1.51l1.69 1.32c-.04.25-.07.52-.07.78s.02.53.06.78L2.37 12.1c-.15.12-.19.34-.1.51l1.6 2.77c.1.18.31.24.49.18l1.99-.8c.42.32.86.58 1.35.78l.3 2.12c.04.2.2.34.4.34h3.2c.2 0 .37-.14.39-.34l.3-2.12c.49-.2.94-.47 1.35-.78l1.99.8c.18.07.39 0 .49-.18l1.6-2.77c.1-.18.06-.39-.1-.51l-1.67-1.32zM10 13c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z",
62
+ SyncAlt: "M22 8l-4-4v3H3v2h15v3l4-4zM2 16l4 4v-3h15v-2H6v-3l-4 4z",
63
+ TrendingFlat: "M22 12l-4-4v3H3v2h15v3z",
64
+ Warning: "M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z",
65
+ };
66
+ exports.ICON = likeAr(exports.materialIoIconsSvgPath).map(svgText => () => React.createElement(core_1.SvgIcon, null,
67
+ React.createElement("path", { d: svgText }))).plain();
68
+ function adaptarTipoVarCasillero(casilleroDataType) {
69
+ const adapter = {
70
+ 'opciones': 'number',
71
+ 'si_no': 'number',
72
+ 'numero': 'number',
73
+ 'hora': 'tel',
74
+ 'horas': 'number',
75
+ 'texto': 'text',
76
+ 'fecha': 'text'
77
+ };
78
+ return adapter[casilleroDataType];
79
+ }
80
+ exports.adaptarTipoVarCasillero = adaptarTipoVarCasillero;
81
+ const useStylesScrollTop = (0, core_1.makeStyles)((theme) => (0, core_1.createStyles)({
82
+ root: {
83
+ position: 'fixed',
84
+ bottom: theme.spacing(2),
85
+ right: theme.spacing(2),
86
+ },
87
+ }));
88
+ const scrollToTop = () => {
89
+ window.scroll({ behavior: 'smooth', top: 0, left: 0 });
90
+ };
91
+ exports.scrollToTop = scrollToTop;
92
+ const scrollToBottom = () => {
93
+ window.scroll({ behavior: 'smooth', top: document.body.clientHeight - window.innerHeight, left: 0 });
94
+ };
95
+ exports.scrollToBottom = scrollToBottom;
96
+ function ScrollTop(props) {
97
+ const { children } = props;
98
+ const classes = useStylesScrollTop();
99
+ // Note that you normally won't need to set the window ref as useScrollTrigger
100
+ // will default to window.
101
+ // This is only being set here because the demo is in an iframe.
102
+ const trigger = (0, core_1.useScrollTrigger)({
103
+ disableHysteresis: true,
104
+ threshold: 100,
105
+ });
106
+ return (React.createElement(core_1.Zoom, { in: trigger },
107
+ React.createElement("div", { onClick: exports.scrollToTop, role: "presentation", className: classes.root }, children)));
108
+ }
109
+ exports.ScrollTop = ScrollTop;
110
+ function focusToId(id, opts, cb) {
111
+ var element = document.getElementById(id);
112
+ var padre = element;
113
+ while (padre && padre.className != 'pregunta' && padre != document.body)
114
+ padre = padre.parentElement;
115
+ if (padre && padre.className == 'pregunta')
116
+ element = padre;
117
+ if (element) {
118
+ if (cb) {
119
+ cb(element);
120
+ }
121
+ else {
122
+ element.focus();
123
+ if (opts.moveToElement) {
124
+ element.scrollIntoView();
125
+ window.scroll({ behavior: opts.moveBehavior || 'auto', top: window.scrollY - 100, left: 0 });
126
+ }
127
+ }
128
+ }
129
+ }
130
+ exports.focusToId = focusToId;
131
+ function ReseterForm(props) {
132
+ const dispatch = (0, react_redux_1.useDispatch)();
133
+ return React.createElement(React.Fragment, null,
134
+ React.createElement(core_1.Button, { variant: "outlined", onClick: () => {
135
+ dispatch(props.dispatchers.RESET_OPCIONES({}));
136
+ props.onTryAgain();
137
+ } }, props.mensaje));
138
+ }
139
+ exports.ReseterForm = ReseterForm;
140
+ class RenderAndCaptureError extends React.Component {
141
+ constructor(props) {
142
+ super(props);
143
+ this.state = { hasError: false, error: {} };
144
+ }
145
+ componentDidCatch(error, info) {
146
+ this.setState({ hasError: true, error, info });
147
+ }
148
+ render() {
149
+ if (this.state.hasError) {
150
+ return React.createElement(React.Fragment, null,
151
+ React.createElement(core_1.Typography, null, "Hubo un problema en la programaci\u00F3n de la pantalla."),
152
+ React.createElement(ReseterForm, { dispatchers: this.props.dispatchers, mensaje: this.props.mensajeRetorno, onTryAgain: () => this.setState({ hasError: false, error: {} }) }),
153
+ React.createElement(core_1.Button, { variant: "outlined", color: "secondary", onClick: () => {
154
+ (0, redux_formulario_1.gotoSincronizar)();
155
+ } }, "ir a la pantalla de sincronizaci\u00F3n"),
156
+ React.createElement(core_1.Typography, null, "Error detectado:"),
157
+ React.createElement(core_1.Typography, null, this.state.error instanceof Error ? this.state.error.message : 'unknown error'),
158
+ React.createElement(core_1.Typography, null, JSON.stringify(this.state.info)));
159
+ }
160
+ return this.props.children;
161
+ }
162
+ }
163
+ exports.RenderAndCaptureError = RenderAndCaptureError;
164
+ const theme = (0, core_1.createMuiTheme)({
165
+ overrides: {
166
+ MuiCssBaseline: {
167
+ '@global': {
168
+ html: {
169
+ WebkitFontSmoothing: 'auto',
170
+ },
171
+ },
172
+ },
173
+ },
174
+ });
175
+ function RenderPrincipal(props) {
176
+ return React.createElement(React.StrictMode, null,
177
+ React.createElement(react_redux_1.Provider, { store: props.store },
178
+ React.createElement(core_1.ThemeProvider, { theme: theme },
179
+ React.createElement(RenderAndCaptureError, { dispatchers: props.dispatchers, mensajeRetorno: props.mensajeRetorno },
180
+ React.createElement(core_1.CssBaseline, null),
181
+ props.children))));
182
+ }
183
+ exports.RenderPrincipal = RenderPrincipal;
184
+ });
185
185
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVuZGVyLWdlbmVyYWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdW5sb2dnZWQvcmVuZGVyLWdlbmVyYWwudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFBLCtCQUErQjtJQUcvQiw2Q0FBaUU7SUFDakUsK0NBQStDO0lBQy9DLGtDQUFrQztJQUNsQyw4QkFBOEI7SUFDOUIsc0VBQXNFO0lBQzNELFFBQUEsSUFBSSxHQUF1QyxLQUFLLENBQUM7SUFFNUQsNkVBQTZFO0lBQ2xFLFFBQUEsT0FBTyxHQUFrQyxlQUFlLENBQUM7SUFFcEUseURBQWtEO0lBRWxELDRDQVUyQjtJQUkzQixxREFBcUQ7SUFDeEMsUUFBQSxzQkFBc0IsR0FBQztRQUNoQyxHQUFHLEVBQUMscUNBQXFDO1FBQ3pDLFNBQVMsRUFBQyw4REFBOEQ7UUFDeEUsVUFBVSxFQUFFLGdPQUFnTztRQUM1TyxLQUFLLEVBQUUsbURBQW1EO1FBQzFELDRCQUE0QixFQUFFLDRGQUE0RjtRQUMxSCxnQkFBZ0IsRUFBRSx1SkFBdUo7UUFDekssV0FBVyxFQUFFLHdLQUF3SztRQUNyTCxZQUFZLEVBQUUsMEtBQTBLO1FBQ3hMLEtBQUssRUFBRSx1R0FBdUc7UUFDOUcsS0FBSyxFQUFFLHVHQUF1RztRQUM5RyxJQUFJLEVBQUUsNEZBQTRGO1FBQ2xHLE1BQU0sRUFBRSxxSkFBcUo7UUFDN0osTUFBTSxFQUFDLCtFQUErRTtRQUN0RixhQUFhLEVBQUMsNk1BQTZNO1FBQzNOLGFBQWEsRUFBQyx5RkFBeUY7UUFDdkcsV0FBVyxFQUFFLGdJQUFnSTtRQUM3SSxZQUFZLEVBQUUsbVdBQW1XO1FBQ2pYLFNBQVMsRUFBRSxzS0FBc0s7UUFDakwsVUFBVSxFQUFFLGdEQUFnRDtRQUM1RCxVQUFVLEVBQUUsOENBQThDO1FBQzFELGlCQUFpQixFQUFFLGtHQUFrRztRQUNySCxPQUFPLEVBQUUseUJBQXlCO1FBQ2xDLGVBQWUsRUFBRSxtRUFBbUU7UUFD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Q0FBQyxLQUFLLENBQUMsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQWM7b0JBQ3pHLG9CQUFDLGlCQUFVLFFBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFjLENBQzNELENBQUM7YUFDUDtZQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFDL0IsQ0FBQztLQUNKO0lBOUJELHNEQThCQztJQUVELE1BQU0sS0FBSyxHQUFHLElBQUEscUJBQWMsRUFBQztRQUMzQixTQUFTLEVBQUU7WUFDVCxjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRTt3QkFDSixtQkFBbUIsRUFBRSxNQUFNO3FCQUM1QjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDLENBQUM7SUFFSCxTQUFnQixlQUFlLENBQXNCLEtBQW9HO1FBQ3JKLE9BQU8sb0JBQUMsS0FBSyxDQUFDLFVBQVU7WUFDcEIsb0JBQUMsc0JBQVEsSUFBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7Z0JBQ3hCLG9CQUFDLG9CQUFhLElBQUMsS0FBSyxFQUFFLEtBQUs7b0JBQ3ZCLG9CQUFDLHFCQUFxQixJQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxLQUFLLENBQUMsY0FBYzt3QkFDdkYsb0JBQUMsa0JBQVcsT0FBRzt3QkFDZCxLQUFLLENBQUMsUUFBUSxDQUNLLENBQ1osQ0FDVCxDQUNJLENBQUE7SUFDdkIsQ0FBQztJQVhELDBDQVdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XHJcbmltcG9ydCAqIGFzIFJlYWN0RE9NIGZyb20gXCJyZWFjdC1kb21cIjtcclxuaW1wb3J0IHt1c2VTdGF0ZSwgdXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gXCJyZWFjdFwiO1xyXG5pbXBvcnQgeyBQcm92aWRlciwgdXNlU2VsZWN0b3IsIHVzZURpc3BhdGNoIH0gZnJvbSBcInJlYWN0LXJlZHV4XCI7IFxyXG5pbXBvcnQgKiBhcyBtZW1vaXplQmFkVHlwZWQgZnJvbSBcIm1lbW9pemUtb25lXCI7XHJcbmltcG9ydCAqIGFzIGxpa2VBciBmcm9tIFwibGlrZS1hclwiO1xyXG5pbXBvcnQgKiBhcyBjbHN4eCBmcm9tICdjbHN4JztcclxuLy9AdHMtaWdub3JlIGVsIG3Ds2R1bG8gY2xzeCBubyB0aWVuZSBiaWVuIHB1ZXN0byBsb3MgdGlwb3MgZW4gc3UgLmQudHNcclxuZXhwb3J0IHZhciBjbHN4OiAoPFQ+KGExOnN0cmluZ3xULCBhMj86VCk9PiBzdHJpbmcpID0gY2xzeHg7XHJcblxyXG4vL0B0cy1pZ25vcmUgZWwgbcOzZHVsbyBtZW1vaXplLW9uZSBubyB0aWVuZSBiaWVuIHB1ZXN0byBsb3MgdGlwb3MgZW4gc3UgLmQudHNcclxuZXhwb3J0IHZhciBtZW1vaXplOnR5cGVvZiBtZW1vaXplQmFkVHlwZWQuZGVmYXVsdCA9IG1lbW9pemVCYWRUeXBlZDtcclxuXHJcbmltcG9ydCB7Z290b1NpbmNyb25pemFyfSBmcm9tIFwiLi9yZWR1eC1mb3JtdWxhcmlvXCJcclxuXHJcbmltcG9ydCB7XHJcbiAgICBBcHBCYXIsIEJhZGdlLCBCdXR0b24sIEJ1dHRvbkdyb3VwLCBDYXJkLCBDaGlwLCBDaXJjdWxhclByb2dyZXNzLCBDc3NCYXNlbGluZSwgXHJcbiAgICBEaWFsb2csIERpYWxvZ0FjdGlvbnMsIERpYWxvZ0NvbnRlbnQsIERpYWxvZ0NvbnRlbnRUZXh0LCBcclxuICAgIERpYWxvZ1RpdGxlLCBEaXZpZGVyLCBGYWIsIEdyaWQsIEljb25CdXR0b24sIElucHV0QmFzZSwgXHJcbiAgICBMaXN0LCBMaXN0SXRlbSwgTGlzdEl0ZW1JY29uLCBMaXN0SXRlbVRleHQsIERyYXdlciwgXHJcbiAgICBNZW51LCBNZW51SXRlbSwgUGFwZXIsIFN2Z0ljb24sIFN3aXRjaCwgXHJcbiAgICBUYWJsZSwgVGFibGVCb2R5LCBUYWJsZUNlbGwsIFRhYmxlSGVhZCwgVGFibGVSb3csIFRleHRGaWVsZCwgVGhlbWVQcm92aWRlciwgVG9vbGJhciwgVHlwb2dyYXBoeSwgWm9vbSxcclxuICAgIHVzZVNjcm9sbFRyaWdnZXIsXHJcbiAgICAvLyBzdHlsZXM6XHJcbiAgICBjcmVhdGVTdHlsZXMsIG1ha2VTdHlsZXMsIFRoZW1lLCBmYWRlLCBjcmVhdGVNdWlUaGVtZVxyXG59IGZyb20gXCJAbWF0ZXJpYWwtdWkvY29yZVwiO1xyXG5pbXBvcnQgeyBTdG9yZSwgQWN0aW9uIH0gZnJvbSBcInJlZHV4XCI7XHJcbmltcG9ydCB7IFRpcG9WYXJpYWJsZXMgfSBmcm9tIFwiLi90aXBvc1wiO1xyXG5cclxuLy8gaHR0cHM6Ly9tYXRlcmlhbC11aS5jb20vY29tcG9uZW50cy9tYXRlcmlhbC1pY29ucy9cclxuZXhwb3J0IGNvbnN0IG1hdGVyaWFsSW9JY29uc1N2Z1BhdGg9e1xyXG4gICAgQWRkOlwiTTE5IDEzaC02djZoLTJ2LTZINXYtMmg2VjVoMnY2aDZ2MnpcIixcclxuICAgIEFycm93QmFjazpcIk0yMCAxMUg3LjgzbDUuNTktNS41OUwxMiA0bC04IDggOCA4IDEuNDEtMS40MUw3LjgzIDEzSDIwdi0yelwiLFxyXG4gICAgQXNzaWdubWVudDogXCJNMTkgM2gtNC4xOEMxNC40IDEuODQgMTMuMyAxIDEyIDFjLTEuMyAwLTIuNC44NC0yLjgyIDJINWMtMS4xIDAtMiAuOS0yIDJ2MTRjMCAxLjEuOSAyIDIgMmgxNGMxLjEgMCAyLS45IDItMlY1YzAtMS4xLS45LTItMi0yem0tNyAwYy41NSAwIDEgLjQ1IDEgMXMtLjQ1IDEtMSAxLTEtLjQ1LTEtMSAuNDUtMSAxLTF6bTIgMTRIN3YtMmg3djJ6bTMtNEg3di0yaDEwdjJ6bTAtNEg3VjdoMTB2MnpcIixcclxuICAgIENoZWNrOiBcIk05IDE2LjE3TDQuODMgMTJsLTEuNDIgMS40MUw5IDE5IDIxIDdsLTEuNDEtMS40MXpcIixcclxuICAgIENoZWNrQm94T3V0bGluZUJsYW5rT3V0bGluZWQ6IFwiTTE5IDV2MTRINVY1aDE0bTAtMkg1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCIsXHJcbiAgICBDaGVja0JveE91dGxpbmVkOiBcIk0xOSAzSDVjLTEuMSAwLTIgLjktMiAydjE0YzAgMS4xLjkgMiAyIDJoMTRjMS4xIDAgMi0uOSAyLTJWNWMwLTEuMS0uOS0yLTItMnptMCAxNkg1VjVoMTR2MTR6TTE3Ljk5IDlsLTEuNDEtMS40Mi02LjU5IDYuNTktMi41OC0yLjU3LTEuNDIgMS40MSA0IDMuOTl6XCIsXHJcbiAgICBDaGV2cm9uTGVmdDogXCJNMTQuNzEgNi43MWEuOTk1OS45OTU5IDAgMDAtMS40MSAwTDguNzEgMTEuM2MtLjM5LjM5LS4zOSAxLjAyIDAgMS40MWw0LjU5IDQuNTljLjM5LjM5IDEuMDIuMzkgMS40MSAwIC4zOS0uMzkuMzktMS4wMiAwLTEuNDFMMTAuODMgMTJsMy44OC0zLjg4Yy4zOS0uMzkuMzgtMS4wMyAwLTEuNDF6XCIsXHJcbiAgICBDaGV2cm9uUmlnaHQ6IFwiTTkuMjkgNi43MWMtLjM5LjM5LS4zOSAxLjAyIDAgMS40MUwxMy4xNyAxMmwtMy44OCAzLjg4Yy0uMzkuMzktLjM5IDEuMDIgMCAxLjQxLjM5LjM5IDEuMDIuMzkgMS40MSAwbDQuNTktNC41OWMuMzktLjM5LjM5LTEuMDIgMC0xLjQxTDEwLjcgNi43Yy0uMzgtLjM4LTEuMDItLjM4LTEuNDEuMDF6XCIsXHJcbiAgICBDbGVhcjogXCJNMTkgNi40MUwxNy41OSA1IDEyIDEwLjU5IDYuNDEgNSA1IDYuNDEgMTAuNTkgMTIgNSAxNy41OSA2LjQxIDE5IDEyIDEzLjQxIDE3LjU5IDE5IDE5IDE3LjU5IDEzLjQxIDEyelwiLFxyXG4gICAgQ2xvc2U6IFwiTTE5IDYuNDFMMTcuNTkgNSAxMiAxMC41OSA2LjQxIDUgNSA2LjQxIDEwLjU5IDEyIDUgMTcuNTkgNi40MSAxOSAxMiAxMy40MSAxNy41OSAxOSAxOSAxNy41OSAxMy40MSAxMnpcIixcclxuICAgIENvZGU6IFwiTTkuNCAxNi42TDQuOCAxMmw0LjYtNC42TDggNmwtNiA2IDYgNiAxLjQtMS40em01LjIgMGw0LjYtNC42LTQuNi00LjZMMTYgNmw2IDYtNiA2LTEuNC0xLjR6XCIsXHJcbiAgICBDcmVhdGU6IFwiTTMgMTcuMjVWMjFoMy43NUwxNy44MSA5Ljk0bC0zLjc1LTMuNzVMMyAxNy4yNXpNMjAuNzEgNy4wNGMuMzktLjM5LjM5LTEuMDIgMC0xLjQxbC0yLjM0LTIuMzRhLjk5NTkuOTk1OSAwIDAwLTEuNDEgMGwtMS44MyAxLjgzIDMuNzUgMy43NSAxLjgzLTEuODN6XCIsXHJcbiAgICBEZWxldGU6XCJNNiAxOWMwIDEuMS45IDIgMiAyaDhjMS4xIDAgMi0uOSAyLTJWN0g2djEyek0xOSA0aC0zLjVsLTEtMWgtNWwtMSAxSDV2MmgxNFY0elwiLFxyXG4gICAgRGVsZXRlRm9yZXZlcjpcIk02IDE5YzAgMS4xLjkgMiAyIDJoOGMxLjEgMCAyLS45IDItMlY3SDZ2MTJ6bTIuNDYtNy4xMmwxLjQxLTEuNDFMMTIgMTIuNTlsMi4xMi0yLjEyIDEuNDEgMS40MUwxMy40MSAxNGwyLjEyIDIuMTItMS40MSAxLjQxTDEyIDE1LjQxbC0yLjEyIDIuMTItMS40MS0xLjQxTDEwLjU5IDE0bC0yLjEzLTIuMTJ6TTE1LjUgNGwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZWxldGVPdXRsaW5lOlwiTTYgMTljMCAxLjEuOSAyIDIgMmg4YzEuMSAwIDItLjkgMi0yVjdINnYxMnpNOCA5aDh2MTBIOFY5em03LjUtNWwtMS0xaC01bC0xIDFINXYyaDE0VjR6XCIsXHJcbiAgICBEZXNjcmlwdGlvbjogXCJNMTQgMkg2Yy0xLjEgMC0xLjk5LjktMS45OSAyTDQgMjBjMCAxLjEuODkgMiAxLjk5IDJIMThjMS4xIDAgMi0uOSAyLTJWOGwtNi02em0yIDE2SDh2LTJoOHYyem0wLTRIOHYtMmg4djJ6bS0zLTVWMy41TDE4LjUgOUgxM3pcIixcclxuICAgIEVtb2ppT2JqZWN0czogXCJNMTIgM2MtLjQ2IDAtLjkzLjA0LTEuNC4xNC0yLjc2LjUzLTQuOTYgMi43Ni01LjQ4IDUuNTItLjQ4IDIuNjEuNDggNS4wMSAyLjIyIDYuNTYuNDMuMzguNjYuOTEuNjYgMS40N1YxOWMwIDEuMS45IDIgMiAyaC4yOGMuMzUuNi45OCAxIDEuNzIgMXMxLjM4LS40IDEuNzItMUgxNGMxLjEgMCAyLS45IDItMnYtMi4zMWMwLS41NS4yMi0xLjA5LjY0LTEuNDZDMTguMDkgMTMuOTUgMTkgMTIuMDggMTkgMTBjMC0zLjg3LTMuMTMtNy03LTd6bTIgMTZoLTR2LTFoNHYxem0wLTJoLTR2LTFoNHYxem0tMS41LTUuNTlWMTRoLTF2LTIuNTlMOS42NyA5LjU5bC43MS0uNzFMMTIgMTAuNWwxLjYyLTEuNjIuNzEuNzEtMS44MyAxLjgyelwiLFxyXG4gICAgRXhpdFRvQXBwOiBcIk0xMC4wOSAxNS41OUwxMS41IDE3bDUtNS01LTUtMS40MSAxLjQxTDEyLjY3IDExSDN2Mmg5LjY3bC0yLjU4IDIuNTl6TTE5IDNINWMtMS4xMSAwLTIgLjktMiAydjRoMlY1aDE0djE0SDV2LTRIM3Y0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6XCIsXHJcbiAgICBFeHBhbmRMZXNzOiBcIk0xMiA4bC02IDYgMS40MSAxLjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNHpcIixcclxuICAgIEV4cGFuZE1vcmU6IFwiTTE2LjU5IDguNTlMMTIgMTMuMTcgNy40MSA4LjU5IDYgMTBsNiA2IDYtNnpcIixcclxuICAgIEZvcm1hdExpbmVTcGFjaW5nOiBcIk02IDdoMi41TDUgMy41IDEuNSA3SDR2MTBIMS41TDUgMjAuNSA4LjUgMTdINlY3em00LTJ2MmgxMlY1SDEwem0wIDE0aDEydi0ySDEwdjJ6bTAtNmgxMnYtMkgxMHYyelwiLFxyXG4gICAgRm9yd2FyZDogXCJNMTIgOFY0bDggOC04IDh2LTRINFY4elwiLFxyXG4gICAgRm9yd2FyZE91dGxpbmVkOiBcIk0xNCA4LjgzTDE3LjE3IDEyIDE0IDE1LjE3VjE0SDZ2LTRoOFY4LjgzTTEyIDR2NEg0djhoOHY0bDgtOC04LTh6XCIsXHJcbiAgICBJbmZvOiBcIk0xMiAyQzYuNDggMiAyIDYuNDggMiAxMnM0LjQ4IDEwIDEwIDEwIDEwLTQuNDggMTAtMTBTMTcuNTIgMiAxMiAyem0xIDE1aC0ydi02aDJ2NnptMC04aC0yVjdoMnYyelwiLFxyXG4gICAgS2V5Ym9hcmRBcnJvd1VwOiBcIk03LjQxIDE1LjQxTDEyIDEwLjgzbDQuNTkgNC41OEwxOCAxNGwtNi02LTYgNnpcIixcclxuICAgIEtleWJvYXJkQXJyb3dEb3duOiBcIk03LjQxIDguNTlMMTIgMTMuMTdsNC41OS00LjU4TDE4IDEwbC02IDYtNi02IDEuNDEtMS40MXpcIixcclxuICAgIExhYmVsOiBcIk0xNy42MyA1Ljg0QzE3LjI3IDUuMzMgMTYuNjcgNSAxNiA1TDUgNS4wMUMzLjkgNS4wMSAzIDUuOSAzIDd2MTBjMCAxLjEuOSAxLjk5IDIgMS45OUwxNiAxOWMuNjcgMCAxLjI3LS4zMyAxLjYzLS44NEwyMiAxMmwtNC4zNy02LjE2elwiLFxyXG4gICAgTG9jYWxBdG06IFwiTTExIDE3aDJ2LTFoMWMuNTUgMCAxLS40NSAxLTF2LTNjMC0uNTUtLjQ1LTEtMS0xaC0zdi0xaDRWOGgtMlY3aC0ydjFoLTFjLS41NSAwLTEgLjQ1LTEgMXYzYzAgLjU1LjQ1IDEgMSAxaDN2MUg5djJoMnYxem05LTEzSDRjLTEuMTEgMC0xLjk5Ljg5LTEuOTkgMkwyIDE4YzAgMS4xMS44OSAyIDIgMmgxNmMxLjExIDAgMi0uODkgMi0yVjZjMC0xLjExLS44OS0yLTItMnptMCAxNEg0VjZoMTZ2MTJ6XCIsXHJcbiAgICBNZW51OiBcIk0zIDE4aDE4di0ySDN2MnptMC01aDE4di0ySDN2MnptMC03djJoMThWNkgzelwiLFxyXG4gICAgTmF2aWdhdGlvbjogXCJNMTIgMkw0LjUgMjAuMjlsLjcxLjcxTDEyIDE4bDYuNzkgMyAuNzEtLjcxelwiLFxyXG4gICAgTmF2aWdhdGlvbkRvd246IFwiTTEyIDIyTDQuNSAzLjcxbC43MSAtLjcxTDEyIDZsNi43OSAtMyAuNzEgLjcxelwiLFxyXG4gICAgUmVtb3ZlU2hvcHBpbmdDYXJ0OiBcIk0yMi43MyAyMi43M0wyLjc3IDIuNzcgMiAybC0uNzMtLjczTDAgMi41NGw0LjM5IDQuMzkgMi4yMSA0LjY2LTEuMzUgMi40NWMtLjE2LjI4LS4yNS42MS0uMjUuOTYgMCAxLjEuOSAyIDIgMmg3LjQ2bDEuMzggMS4zOGMtLjUuMzYtLjgzLjk1LS44MyAxLjYyIDAgMS4xLjg5IDIgMS45OSAyIC42NyAwIDEuMjYtLjMzIDEuNjItLjg0TDIxLjQ2IDI0bDEuMjctMS4yN3pNNy40MiAxNWMtLjE0IDAtLjI1LS4xMS0uMjUtLjI1bC4wMy0uMTIuOS0xLjYzaDIuMzZsMiAySDcuNDJ6bTguMTMtMmMuNzUgMCAxLjQxLS40MSAxLjc1LTEuMDNsMy41OC02LjQ5Yy4wOC0uMTQuMTItLjMxLjEyLS40OCAwLS41NS0uNDUtMS0xLTFINi41NGw5LjAxIDl6TTcgMThjLTEuMSAwLTEuOTkuOS0xLjk5IDJTNS45IDIyIDcgMjJzMi0uOSAyLTItLjktMi0yLTJ6XCIsXHJcbiAgICBTYXZlOlwiTTE3IDNINWMtMS4xMSAwLTIgLjktMiAydjE0YzAgMS4xLjg5IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjdsLTQtNHptLTUgMTZjLTEuNjYgMC0zLTEuMzQtMy0zczEuMzQtMyAzLTMgMyAxLjM0IDMgMy0xLjM0IDMtMyAzem0zLTEwSDVWNWgxMHY0elwiLFxyXG4gICAgU2VhcmNoOiBcIk0xNS41IDE0aC0uNzlsLS4yOC0uMjdDMTUuNDEgMTIuNTkgMTYgMTEuMTEgMTYgOS41IDE2IDUuOTEgMTMuMDkgMyA5LjUgM1MzIDUuOTEgMyA5LjUgNS45MSAxNiA5LjUgMTZjMS42MSAwIDMuMDktLjU5IDQuMjMtMS41N2wuMjcuMjh2Ljc5bDUgNC45OUwyMC40OSAxOWwtNC45OS01em0tNiAwQzcuMDEgMTQgNSAxMS45OSA1IDkuNVM3LjAxIDUgOS41IDUgMTQgNy4wMSAxNCA5LjUgMTEuOTkgMTQgOS41IDE0elwiLFxyXG4gICAgU2VuZDogXCJNMi4wMSAyMUwyMyAxMiAyLjAxIDMgMiAxMGwxNSAyLTE1IDJ6XCIsXHJcbiAgICBTZXR0aW5nczogXCJNMTUuOTUgMTAuNzhjLjAzLS4yNS4wNS0uNTEuMDUtLjc4cy0uMDItLjUzLS4wNi0uNzhsMS42OS0xLjMyYy4xNS0uMTIuMTktLjM0LjEtLjUxbC0xLjYtMi43N2MtLjEtLjE4LS4zMS0uMjQtLjQ5LS4xOGwtMS45OS44Yy0uNDItLjMyLS44Ni0uNTgtMS4zNS0uNzhMMTIgMi4zNGMtLjAzLS4yLS4yLS4zNC0uNC0uMzRIOC40Yy0uMiAwLS4zNi4xNC0uMzkuMzRsLS4zIDIuMTJjLS40OS4yLS45NC40Ny0xLjM1Ljc4bC0xLjk5LS44Yy0uMTgtLjA3LS4zOSAwLS40OS4xOGwtMS42IDIuNzdjLS4xLjE4LS4wNi4zOS4xLjUxbDEuNjkgMS4zMmMtLjA0LjI1LS4wNy41Mi0uMDcuNzhzLjAyLjUzLjA2Ljc4TDIuMzcgMTIuMWMtLjE1LjEyLS4xOS4zNC0uMS41MWwxLjYgMi43N2MuMS4xOC4zMS4yNC40OS4xOGwxLjk5LS44Yy40Mi4zMi44Ni41OCAxLjM1Ljc4bC4zIDIuMTJjLjA0LjIuMi4zNC40LjM0aDMuMmMuMiAwIC4zNy0uMTQuMzktLjM0bC4zLTIuMTJjLjQ5LS4yLjk0LS40NyAxLjM1LS43OGwxLjk5LjhjLjE4LjA3LjM5IDAgLjQ5LS4xOGwxLjYtMi43N2MuMS0uMTguMDYtLjM5LS4xLS41MWwtMS42Ny0xLjMyek0xMCAxM2MtMS42NSAwLTMtMS4zNS0zLTNzMS4zNS0zIDMtMyAzIDEuMzUgMyAzLTEuMzUgMy0zIDN6XCIsXHJcbiAgICBTeW5jQWx0OlwiTTIyIDhsLTQtNHYzSDN2MmgxNXYzbDQtNHpNMiAxNmw0IDR2LTNoMTV2LTJINnYtM2wtNCA0elwiLFxyXG4gICAgVHJlbmRpbmdGbGF0OlwiTTIyIDEybC00LTR2M0gzdjJoMTV2M3pcIixcclxuICAgIFdhcm5pbmc6IFwiTTEgMjFoMjJMMTIgMiAxIDIxem0xMi0zaC0ydi0yaDJ2MnptMC00aC0ydi00aDJ2NHpcIixcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IElDT04gPSBsaWtlQXIobWF0ZXJpYWxJb0ljb25zU3ZnUGF0aCkubWFwKHN2Z1RleHQ9PiAoKSA9PlxyXG4gICAgPFN2Z0ljb24+PHBhdGggZD17c3ZnVGV4dH0vPjwvU3ZnSWNvbj5cclxuKS5wbGFpbigpO1xyXG5cclxuZXhwb3J0IHR5cGUgU3R5bGVzID0gUmVhY3QuQ1NTUHJvcGVydGllcztcclxuXHJcbmV4cG9ydCB0eXBlIE9uVXBkYXRlPFQ+ID0gKGRhdGE6VCk9PnZvaWRcclxuXHJcbmV4cG9ydCB0eXBlIElucHV0VHlwZXMgPSAnZGF0ZSd8J251bWJlcid8J3RlbCd8J3RleHQnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGFkYXB0YXJUaXBvVmFyQ2FzaWxsZXJvKGNhc2lsbGVyb0RhdGFUeXBlOlRpcG9WYXJpYWJsZXN8J29wY2lvbmVzJ3wnc2lfbm8nKTpJbnB1dFR5cGVze1xyXG4gICAgY29uc3QgYWRhcHRlcjp7W2tleSBpbiBUaXBvVmFyaWFibGVzfCdvcGNpb25lcyd8J3NpX25vJ106SW5wdXRUeXBlc30gPSB7XHJcbiAgICAgICAgJ29wY2lvbmVzJzonbnVtYmVyJyxcclxuICAgICAgICAnc2lfbm8nOiAnbnVtYmVyJyxcclxuICAgICAgICAnbnVtZXJvJzogJ251bWJlcicsXHJcbiAgICAgICAgJ2hvcmEnOiAndGVsJyxcclxuICAgICAgICAnaG9yYXMnOiAnbnVtYmVyJyxcclxuICAgICAgICAndGV4dG8nOiAndGV4dCcsXHJcbiAgICAgICAgJ2ZlY2hhJzogJ3RleHQnXHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRhcHRlcltjYXNpbGxlcm9EYXRhVHlwZV1cclxufVxyXG5cclxuXHJcbmNvbnN0IHVzZVN0eWxlc1Njcm9sbFRvcCA9IG1ha2VTdHlsZXMoKHRoZW1lOiBUaGVtZSkgPT5cclxuICAgIGNyZWF0ZVN0eWxlcyh7XHJcbiAgICAgICAgcm9vdDoge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcclxuICAgICAgICAgICAgYm90dG9tOiB0aGVtZS5zcGFjaW5nKDIpLFxyXG4gICAgICAgICAgICByaWdodDogdGhlbWUuc3BhY2luZygyKSxcclxuICAgICAgICB9LFxyXG4gICAgfSksXHJcbik7XHJcblxyXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9Ub3AgPSAoKSA9PiB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsKHtiZWhhdmlvcjonc21vb3RoJywgdG9wOjAsIGxlZnQ6MH0pXHJcbn07XHJcblxyXG5leHBvcnQgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XHJcbiAgICB3aW5kb3cuc2Nyb2xsKHtiZWhhdmlvcjonc21vb3RoJywgdG9wOmRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0LXdpbmRvdy5pbm5lckhlaWdodCwgbGVmdDowfSlcclxufTtcclxuXHJcblxyXG5leHBvcnQgZnVuY3Rpb24gU2Nyb2xsVG9wKHByb3BzOiBhbnkpIHtcclxuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHByb3BzO1xyXG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlc1Njcm9sbFRvcCgpO1xyXG4gICAgLy8gTm90ZSB0aGF0IHlvdSBub3JtYWxseSB3b24ndCBuZWVkIHRvIHNldCB0aGUgd2luZG93IHJlZiBhcyB1c2VTY3JvbGxUcmlnZ2VyXHJcbiAgICAvLyB3aWxsIGRlZmF1bHQgdG8gd2luZG93LlxyXG4gICAgLy8gVGhpcyBpcyBvbmx5IGJlaW5nIHNldCBoZXJlIGJlY2F1c2UgdGhlIGRlbW8gaXMgaW4gYW4gaWZyYW1lLlxyXG4gICAgY29uc3QgdHJpZ2dlciA9IHVzZVNjcm9sbFRyaWdnZXIoe1xyXG4gICAgICAgIGRpc2FibGVIeXN0ZXJlc2lzOiB0cnVlLFxyXG4gICAgICAgIHRocmVzaG9sZDogMTAwLFxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAgIDxab29tIGluPXt0cmlnZ2VyfT5cclxuICAgICAgICAgICAgPGRpdiBvbkNsaWNrPXtzY3JvbGxUb1RvcH0gcm9sZT1cInByZXNlbnRhdGlvblwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5yb290fT5cclxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9ab29tPlxyXG4gICAgKTtcclxufVxyXG5cclxuZXhwb3J0IHR5cGUgRm9jdXNPcHRzPXtcclxuICAgIG1vdmVUb0VsZW1lbnQ6IGJvb2xlYW5cclxuICAgIG1vdmVCZWhhdmlvcj86ICdhdXRvJyB8ICdzbW9vdGgnXHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBmb2N1c1RvSWQoaWQ6c3RyaW5nLCBvcHRzOkZvY3VzT3B0cywgY2I/OihlOkhUTUxFbGVtZW50KT0+dm9pZCl7XHJcbiAgICB2YXIgZWxlbWVudD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7XHJcbiAgICB2YXIgcGFkcmU9ZWxlbWVudDtcclxuICAgIHdoaWxlKHBhZHJlICYmIHBhZHJlLmNsYXNzTmFtZSE9J3ByZWd1bnRhJyAmJiBwYWRyZSE9ZG9jdW1lbnQuYm9keSkgcGFkcmUgPSBwYWRyZS5wYXJlbnRFbGVtZW50O1xyXG4gICAgaWYocGFkcmUgJiYgcGFkcmUuY2xhc3NOYW1lPT0ncHJlZ3VudGEnKSBlbGVtZW50PXBhZHJlO1xyXG4gICAgaWYoZWxlbWVudCl7XHJcbiAgICAgICAgaWYoY2Ipe1xyXG4gICAgICAgICAgICBjYihlbGVtZW50KTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgICAgZWxlbWVudC5mb2N1cygpO1xyXG4gICAgICAgICAgICBpZihvcHRzLm1vdmVUb0VsZW1lbnQpe1xyXG4gICAgICAgICAgICAgICAgZWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xyXG4gICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbCh7YmVoYXZpb3I6b3B0cy5tb3ZlQmVoYXZpb3J8fCdhdXRvJywgdG9wOndpbmRvdy5zY3JvbGxZLTEwMCwgbGVmdDowfSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IHR5cGUgSURpc3BhdGNoZXJzID0ge1JFU0VUX09QQ0lPTkVTOkZ1bmN0aW9ufTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZXNldGVyRm9ybShwcm9wczp7b25UcnlBZ2FpbjooKT0+dm9pZCwgZGlzcGF0Y2hlcnM6SURpc3BhdGNoZXJzLCBtZW5zYWplOnN0cmluZ30pe1xyXG4gICAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xyXG4gICAgcmV0dXJuIDw+XHJcbiAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIlxyXG4gICAgICAgICAgICBvbkNsaWNrPXsoKT0+e1xyXG4gICAgICAgICAgICAgICAgZGlzcGF0Y2gocHJvcHMuZGlzcGF0Y2hlcnMuUkVTRVRfT1BDSU9ORVMoe30pKTtcclxuICAgICAgICAgICAgICAgIHByb3BzLm9uVHJ5QWdhaW4oKTtcclxuICAgICAgICAgICAgfX1cclxuICAgICAgICA+e3Byb3BzLm1lbnNhamV9PC9CdXR0b24+XHJcbiAgICA8Lz47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBSZW5kZXJBbmRDYXB0dXJlRXJyb3IgZXh0ZW5kcyBSZWFjdC5Db21wb25lbnQ8XHJcbiAgICB7ZGlzcGF0Y2hlcnM6SURpc3BhdGNoZXJzLCBtZW5zYWplUmV0b3JubzpzdHJpbmd9LFxyXG4gICAge2hhc0Vycm9yOmJvb2xlYW4sIGVycm9yOkVycm9yfHt9LCBpbmZvPzphbnl9XHJcbj57XHJcbiAgICBjb25zdHJ1Y3Rvcihwcm9wczphbnkpIHtcclxuICAgICAgICBzdXBlcihwcm9wcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHsgaGFzRXJyb3I6IGZhbHNlLCBlcnJvcjp7fX07XHJcbiAgICB9XHJcbiAgICBjb21wb25lbnREaWRDYXRjaChlcnJvcjpFcnJvciwgaW5mbzphbnkpe1xyXG4gICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoYXNFcnJvcjogdHJ1ZSAsIGVycm9yLCBpbmZvIH0pO1xyXG4gICAgfVxyXG4gICAgcmVuZGVyKCl7XHJcbiAgICAgICAgaWYodGhpcy5zdGF0ZS5oYXNFcnJvcil7XHJcbiAgICAgICAgICAgIHJldHVybiA8PlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+SHVibyB1biBwcm9ibGVtYSBlbiBsYSBwcm9ncmFtYWNpw7NuIGRlIGxhIHBhbnRhbGxhLjwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxSZXNldGVyRm9ybSBkaXNwYXRjaGVycz17dGhpcy5wcm9wcy5kaXNwYXRjaGVyc30gbWVuc2FqZT17dGhpcy5wcm9wcy5tZW5zYWplUmV0b3Jub30gb25UcnlBZ2Fpbj17KCk9PlxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUoeyBoYXNFcnJvcjogZmFsc2UsIGVycm9yOnt9fSlcclxuICAgICAgICAgICAgICAgIH0vPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwib3V0bGluZWRcIiBjb2xvcj1cInNlY29uZGFyeVwiXHJcbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCk9PntcclxuICAgICAgICAgICAgICAgICAgICAgICAgZ290b1NpbmNyb25pemFyKCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfX1cclxuICAgICAgICAgICAgICAgID5pciBhIGxhIHBhbnRhbGxhIGRlIHNpbmNyb25pemFjacOzbjwvQnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+RXJyb3IgZGV0ZWN0YWRvOjwvVHlwb2dyYXBoeT5cclxuICAgICAgICAgICAgICAgIDxUeXBvZ3JhcGh5Pnt0aGlzLnN0YXRlLmVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyB0aGlzLnN0YXRlLmVycm9yLm1lc3NhZ2UgOiAndW5rbm93biBlcnJvcid9PC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+e0pTT04uc3RyaW5naWZ5KHRoaXMuc3RhdGUuaW5mbyl9PC9UeXBvZ3JhcGh5PlxyXG4gICAgICAgICAgICA8Lz47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiB0aGlzLnByb3BzLmNoaWxkcmVuO1xyXG4gICAgfVxyXG59XHJcblxyXG5jb25zdCB0aGVtZSA9IGNyZWF0ZU11aVRoZW1lKHtcclxuICBvdmVycmlkZXM6IHtcclxuICAgIE11aUNzc0Jhc2VsaW5lOiB7XHJcbiAgICAgICdAZ2xvYmFsJzoge1xyXG4gICAgICAgIGh0bWw6IHtcclxuICAgICAgICAgIFdlYmtpdEZvbnRTbW9vdGhpbmc6ICdhdXRvJyxcclxuICAgICAgICB9LFxyXG4gICAgICB9LFxyXG4gICAgfSxcclxuICB9LFxyXG59KTtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBSZW5kZXJQcmluY2lwYWw8VCxUMiBleHRlbmRzIEFjdGlvbj4ocHJvcHM6e3N0b3JlOlN0b3JlPFQsVDI+LCBkaXNwYXRjaGVyczpJRGlzcGF0Y2hlcnMsIG1lbnNhamVSZXRvcm5vOnN0cmluZywgY2hpbGRyZW46UmVhY3QuUmVhY3ROb2RlfSl7XHJcbiAgICByZXR1cm4gPFJlYWN0LlN0cmljdE1vZGU+XHJcbiAgICAgICAgPFByb3ZpZGVyIHN0b3JlPXtwcm9wcy5zdG9yZX0+XHJcbiAgICAgICAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZX0+XHJcbiAgICAgICAgICAgICAgICA8UmVuZGVyQW5kQ2FwdHVyZUVycm9yIGRpc3BhdGNoZXJzPXtwcm9wcy5kaXNwYXRjaGVyc30gbWVuc2FqZVJldG9ybm89e3Byb3BzLm1lbnNhamVSZXRvcm5vfT5cclxuICAgICAgICAgICAgICAgICAgICA8Q3NzQmFzZWxpbmUgLz5cclxuICAgICAgICAgICAgICAgICAgICB7cHJvcHMuY2hpbGRyZW59XHJcbiAgICAgICAgICAgICAgICA8L1JlbmRlckFuZENhcHR1cmVFcnJvcj5cclxuICAgICAgICAgICAgPC9UaGVtZVByb3ZpZGVyPiAgICAgICAgXHJcbiAgICAgICAgPC9Qcm92aWRlcj5cclxuICAgIDwvUmVhY3QuU3RyaWN0TW9kZT5cclxufVxyXG5cclxuIl19