@imperium/layout 8.1.1 → 10.0.0

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 (132) hide show
  1. package/dist/esm/commonItems.js +9 -0
  2. package/dist/esm/commonItems.js.map +1 -0
  3. package/dist/esm/content/components/ActionForm.js +62 -0
  4. package/dist/esm/content/components/ActionForm.js.map +1 -0
  5. package/dist/esm/content/components/ActionFormSidebarItemComponent.js +36 -0
  6. package/dist/esm/content/components/ActionFormSidebarItemComponent.js.map +1 -0
  7. package/dist/esm/content/components/ActionSidebarItemComponent.js +20 -0
  8. package/dist/esm/content/components/ActionSidebarItemComponent.js.map +1 -0
  9. package/dist/esm/content/components/ContentComponent.js +63 -0
  10. package/dist/esm/content/components/ContentComponent.js.map +1 -0
  11. package/dist/esm/content/components/CustomSidebarItemComponent.js +8 -0
  12. package/dist/esm/content/components/CustomSidebarItemComponent.js.map +1 -0
  13. package/dist/esm/content/components/Header.js +26 -0
  14. package/dist/esm/content/components/Header.js.map +1 -0
  15. package/dist/esm/content/components/PlainSidebarItem.js +20 -0
  16. package/dist/esm/content/components/PlainSidebarItem.js.map +1 -0
  17. package/dist/esm/content/components/SidebarItemWrapper.js +58 -0
  18. package/dist/esm/content/components/SidebarItemWrapper.js.map +1 -0
  19. package/dist/esm/content/components/styles.module.css.js +8 -0
  20. package/dist/esm/content/components/styles.module.css.js.map +1 -0
  21. package/dist/esm/content/createPages.js +32 -0
  22. package/dist/esm/content/createPages.js.map +1 -0
  23. package/dist/esm/content/dividerSidebarItem.js +7 -0
  24. package/dist/esm/content/dividerSidebarItem.js.map +1 -0
  25. package/dist/esm/content/hooks/useBuildContentData.js +18 -0
  26. package/dist/esm/content/hooks/useBuildContentData.js.map +1 -0
  27. package/dist/esm/content/types.js +18 -0
  28. package/dist/esm/content/types.js.map +1 -0
  29. package/dist/esm/content/utils.js +29 -0
  30. package/dist/esm/content/utils.js.map +1 -0
  31. package/dist/esm/datahooks/DataHooks.js +39 -0
  32. package/dist/esm/datahooks/DataHooks.js.map +1 -0
  33. package/dist/esm/datahooks/ExecuteDataHook.js +9 -0
  34. package/dist/esm/datahooks/ExecuteDataHook.js.map +1 -0
  35. package/dist/esm/datahooks/ExecutePermissionHook.js +17 -0
  36. package/dist/esm/datahooks/ExecutePermissionHook.js.map +1 -0
  37. package/dist/esm/datahooks/PermissionHooks.js +16 -0
  38. package/dist/esm/datahooks/PermissionHooks.js.map +1 -0
  39. package/dist/esm/external/style-inject/dist/style-inject.es.js +29 -0
  40. package/dist/esm/external/style-inject/dist/style-inject.es.js.map +1 -0
  41. package/dist/esm/hooks/useBuildData.js +28 -0
  42. package/dist/esm/hooks/useBuildData.js.map +1 -0
  43. package/dist/esm/hooks/useIsActiveRoute.js +22 -0
  44. package/dist/esm/hooks/useIsActiveRoute.js.map +1 -0
  45. package/dist/esm/hooks/useSelectPermission.js +12 -0
  46. package/dist/esm/hooks/useSelectPermission.js.map +1 -0
  47. package/dist/esm/hooks/useSelectState.js +12 -0
  48. package/dist/esm/hooks/useSelectState.js.map +1 -0
  49. package/dist/esm/index.js +21 -0
  50. package/dist/esm/index.js.map +1 -0
  51. package/dist/esm/layout/components/CustomLayoutItemComponent.js +8 -0
  52. package/dist/esm/layout/components/CustomLayoutItemComponent.js.map +1 -0
  53. package/dist/esm/layout/components/DropdownItem.js +40 -0
  54. package/dist/esm/layout/components/DropdownItem.js.map +1 -0
  55. package/dist/esm/layout/components/Layout.js +74 -0
  56. package/dist/esm/layout/components/Layout.js.map +1 -0
  57. package/dist/esm/layout/components/LayoutItemBar.js +29 -0
  58. package/dist/esm/layout/components/LayoutItemBar.js.map +1 -0
  59. package/dist/esm/layout/components/LayoutItemWrapper.js +72 -0
  60. package/dist/esm/layout/components/LayoutItemWrapper.js.map +1 -0
  61. package/dist/esm/layout/components/MenuItem.js +11 -0
  62. package/dist/esm/layout/components/MenuItem.js.map +1 -0
  63. package/dist/esm/layout/components/PlainItem.js +14 -0
  64. package/dist/esm/layout/components/PlainItem.js.map +1 -0
  65. package/dist/esm/layout/components/SecondaryMenuToggleItem.js +16 -0
  66. package/dist/esm/layout/components/SecondaryMenuToggleItem.js.map +1 -0
  67. package/dist/esm/layout/components/styles.module.css.js +8 -0
  68. package/dist/esm/layout/components/styles.module.css.js.map +1 -0
  69. package/dist/esm/layout/hooks/useMobileLayout.js +21 -0
  70. package/dist/esm/layout/hooks/useMobileLayout.js.map +1 -0
  71. package/dist/esm/layout/moveItems.js +65 -0
  72. package/dist/esm/layout/moveItems.js.map +1 -0
  73. package/dist/esm/layout/types.js +12 -0
  74. package/dist/esm/layout/types.js.map +1 -0
  75. package/dist/esm/layout/utils.js +41 -0
  76. package/dist/esm/layout/utils.js.map +1 -0
  77. package/dist/esm/layout/withLayout.js +52 -0
  78. package/dist/esm/layout/withLayout.js.map +1 -0
  79. package/dist/esm/state.js +25 -0
  80. package/dist/esm/state.js.map +1 -0
  81. package/dist/esm/types.js +7 -0
  82. package/dist/esm/types.js.map +1 -0
  83. package/dist/esm/utils.js +9 -0
  84. package/dist/esm/utils.js.map +1 -0
  85. package/dist/stats.html +2689 -0
  86. package/dist/stats.txt +92 -0
  87. package/dist/{commonItems.d.ts → types/commonItems.d.ts} +0 -0
  88. package/dist/{content → types/content}/components/ActionForm.d.ts +0 -0
  89. package/dist/{content → types/content}/components/ActionFormSidebarItemComponent.d.ts +0 -0
  90. package/dist/{content → types/content}/components/ActionSidebarItemComponent.d.ts +0 -0
  91. package/dist/{content → types/content}/components/ContentComponent.d.ts +0 -0
  92. package/dist/{content → types/content}/components/CustomSidebarItemComponent.d.ts +0 -0
  93. package/dist/{content → types/content}/components/Header.d.ts +0 -0
  94. package/dist/{content → types/content}/components/PlainSidebarItem.d.ts +0 -0
  95. package/dist/{content → types/content}/components/SidebarItemWrapper.d.ts +0 -0
  96. package/dist/{content → types/content}/createPages.d.ts +0 -0
  97. package/dist/{content → types/content}/dividerSidebarItem.d.ts +0 -0
  98. package/dist/{content → types/content}/hooks/useBuildContentData.d.ts +1 -1
  99. package/dist/{content → types/content}/types.d.ts +0 -0
  100. package/dist/{content → types/content}/utils.d.ts +0 -0
  101. package/dist/{datahooks → types/datahooks}/DataHooks.d.ts +0 -0
  102. package/dist/{datahooks → types/datahooks}/ExecuteDataHook.d.ts +0 -0
  103. package/dist/{datahooks → types/datahooks}/ExecutePermissionHook.d.ts +0 -0
  104. package/dist/{datahooks → types/datahooks}/PermissionHooks.d.ts +0 -0
  105. package/dist/{datahooks → types/datahooks}/types.d.ts +0 -0
  106. package/dist/{hooks → types/hooks}/useBuildData.d.ts +0 -0
  107. package/dist/{hooks → types/hooks}/useIsActiveRoute.d.ts +0 -0
  108. package/dist/{hooks → types/hooks}/useSelectPermission.d.ts +0 -0
  109. package/dist/{hooks → types/hooks}/useSelectState.d.ts +0 -0
  110. package/dist/{index.d.ts → types/index.d.ts} +0 -0
  111. package/dist/{layout → types/layout}/components/CustomLayoutItemComponent.d.ts +0 -0
  112. package/dist/{layout → types/layout}/components/DropdownItem.d.ts +0 -0
  113. package/dist/{layout → types/layout}/components/Layout.d.ts +0 -0
  114. package/dist/{layout → types/layout}/components/LayoutItemBar.d.ts +0 -0
  115. package/dist/{layout → types/layout}/components/LayoutItemWrapper.d.ts +2 -2
  116. package/dist/{layout → types/layout}/components/MenuItem.d.ts +0 -0
  117. package/dist/{layout → types/layout}/components/PlainItem.d.ts +2 -2
  118. package/dist/{layout → types/layout}/components/SecondaryMenuToggleItem.d.ts +0 -0
  119. package/dist/{layout → types/layout}/hooks/useMobileLayout.d.ts +0 -0
  120. package/dist/{layout → types/layout}/moveItems.d.ts +0 -0
  121. package/dist/{layout → types/layout}/types.d.ts +0 -0
  122. package/dist/{layout → types/layout}/utils.d.ts +0 -0
  123. package/dist/{layout → types/layout}/withLayout.d.ts +0 -0
  124. package/dist/{state.d.ts → types/state.d.ts} +0 -0
  125. package/dist/{types.d.ts → types/types.d.ts} +0 -0
  126. package/dist/types/utils.d.ts +3 -0
  127. package/package.json +19 -19
  128. package/client.js +0 -7
  129. package/dist/client.js +0 -3665
  130. package/dist/client.min.js +0 -2
  131. package/dist/client.min.js.map +0 -1
  132. package/dist/utils.d.ts +0 -6
package/dist/client.js DELETED
@@ -1,3665 +0,0 @@
1
- /******/ (() => { // webpackBootstrap
2
- /******/ "use strict";
3
- /******/ var __webpack_modules__ = ({
4
-
5
- /***/ "../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./content/components/styles.css":
6
- /*!****************************************************************************************************************!*\
7
- !*** ../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./content/components/styles.css ***!
8
- \****************************************************************************************************************/
9
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
10
-
11
- __webpack_require__.r(__webpack_exports__);
12
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
13
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
14
- /* harmony export */ });
15
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "../../../node_modules/css-loader/dist/runtime/sourceMaps.js");
16
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
17
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "../../../node_modules/css-loader/dist/runtime/api.js");
18
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
19
- // Imports
20
-
21
-
22
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
23
- // Module
24
- ___CSS_LOADER_EXPORT___.push([module.id, ".content-components-styles__parent--qcZqw {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: row;\n\theight: 100%;\n}\n\n.content-components-styles__wrapper--mbzSi {\n\tflex: 1;\n\tflex-basis: calc(65%);\n}\n\n.content-components-styles__content--fhSXG {\n\tmargin: 0 0.8rem 0.8rem 0.8rem;\n}\n\n.content-components-styles__contentFull--kUW3_ {\n\theight: 100%;\n\tmargin: 0 0;\n}\n\n.content-components-styles__header--NOGyc {\n\tpadding: 0.8rem 0.8rem 0 0.8rem;\n\tmargin-bottom: 0.8rem;\n}\n\n.content-components-styles__sidebar--rLU5R {\n\tmin-width: 250px;\n\tpadding: 10px;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n}\n\n.content-components-styles__sidebarItem--Eylgf {\n\tmargin-bottom: 5px;\n}\n\n.content-components-styles__actionsHeader--N6zzM {\n\tdisplay: none;\n}\n\n@media only screen and (max-width: 768px) {\n\t.content-components-styles__parent--qcZqw {\n\t\tflex-direction: column;\n\t\theight: auto;\n\t}\n\t.content-components-styles__wrapper--mbzSi {\n\t\tborder-right: none;\n\t\tpadding-bottom: 20px;\n\t}\n\t.content-components-styles__sidebar--rLU5R {\n\t\tmin-width: auto;\n\t}\n\t.content-components-styles__actionsHeader--N6zzM {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n}\n", "",{"version":3,"sources":["webpack://./content/components/styles.css"],"names":[],"mappings":"AAAA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,YAAY;AACb;;AAEA;CACC,OAAO;CACP,qBAAqB;AACtB;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,YAAY;CACZ,WAAW;AACZ;;AAEA;CACC,+BAA+B;CAC/B,qBAAqB;AACtB;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB,kBAAkB;AACnB;;AAEA;CACC,kBAAkB;AACnB;;AAEA;CACC,aAAa;AACd;;AAEA;CACC;EACC,sBAAsB;EACtB,YAAY;CACb;CACA;EACC,kBAAkB;EAClB,oBAAoB;CACrB;CACA;EACC,eAAe;CAChB;CACA;EACC,cAAc;EACd,kBAAkB;CACnB;AACD","sourcesContent":[".parent {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: row;\n\theight: 100%;\n}\n\n.wrapper {\n\tflex: 1;\n\tflex-basis: calc(65%);\n}\n\n.content {\n\tmargin: 0 0.8rem 0.8rem 0.8rem;\n}\n\n.contentFull {\n\theight: 100%;\n\tmargin: 0 0;\n}\n\n.header {\n\tpadding: 0.8rem 0.8rem 0 0.8rem;\n\tmargin-bottom: 0.8rem;\n}\n\n.sidebar {\n\tmin-width: 250px;\n\tpadding: 10px;\n\toverflow-y: auto;\n\toverflow-x: hidden;\n}\n\n.sidebarItem {\n\tmargin-bottom: 5px;\n}\n\n.actionsHeader {\n\tdisplay: none;\n}\n\n@media only screen and (max-width: 768px) {\n\t.parent {\n\t\tflex-direction: column;\n\t\theight: auto;\n\t}\n\t.wrapper {\n\t\tborder-right: none;\n\t\tpadding-bottom: 20px;\n\t}\n\t.sidebar {\n\t\tmin-width: auto;\n\t}\n\t.actionsHeader {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n}\n"],"sourceRoot":""}]);
25
- // Exports
26
- ___CSS_LOADER_EXPORT___.locals = {
27
- "parent": "content-components-styles__parent--qcZqw",
28
- "wrapper": "content-components-styles__wrapper--mbzSi",
29
- "content": "content-components-styles__content--fhSXG",
30
- "contentFull": "content-components-styles__contentFull--kUW3_",
31
- "header": "content-components-styles__header--NOGyc",
32
- "sidebar": "content-components-styles__sidebar--rLU5R",
33
- "sidebarItem": "content-components-styles__sidebarItem--Eylgf",
34
- "actionsHeader": "content-components-styles__actionsHeader--N6zzM"
35
- };
36
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
37
-
38
-
39
- /***/ }),
40
-
41
- /***/ "../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./layout/components/styles.css":
42
- /*!***************************************************************************************************************!*\
43
- !*** ../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./layout/components/styles.css ***!
44
- \***************************************************************************************************************/
45
- /***/ ((module, __webpack_exports__, __webpack_require__) => {
46
-
47
- __webpack_require__.r(__webpack_exports__);
48
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
49
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
50
- /* harmony export */ });
51
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js */ "../../../node_modules/css-loader/dist/runtime/sourceMaps.js");
52
- /* harmony import */ var _node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
53
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../../../node_modules/css-loader/dist/runtime/api.js */ "../../../node_modules/css-loader/dist/runtime/api.js");
54
- /* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
55
- // Imports
56
-
57
-
58
- var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_sourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
59
- // Module
60
- ___CSS_LOADER_EXPORT___.push([module.id, "/* Need to pass 100% height all the way down */\n#root {\n\theight: 100%;\n}\n#root > div {\n\theight: 100%;\n}\n\n.layout-components-styles__parent--sws8O {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.layout-components-styles__menubar--WMcXn {\n\tborder-radius: 0 !important;\n\tmargin: 0 !important;\n}\n\n.layout-components-styles__statusbar--Ha4f_ {\n\tmargin: 0 !important;\n\tborder-radius: 0 !important;\n}\n\n.layout-components-styles__secondaryMenu--byu6y {\n\tmin-width: 220px !important;\n\twidth: 100% !important;\n\theight: 100% !important;\n\tborder-radius: 0 !important;\n\tmargin: 0 !important;\n\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\n\ttransition: margin-left 0.3s ease-in-out;\n}\n\n.layout-components-styles__secondaryMenuHidden--ek7Qz {\n\tmargin-left: -220px !important;\n}\n\n.layout-components-styles__contentWrapper--SaYGn {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tpadding: 0 !important;\n\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\n\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\n}\n\n.layout-components-styles__content--JGDuW {\n\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\n\talign-content: flex-start;\n\theight: 100%;\n\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\n\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\n}\n\n.layout-components-styles__footer--A7LSH {\n\tmargin: 0 !important;\n\tborder-radius: 0 !important;\n}\n\n.layout-components-styles__verticalDropdownIcon--V69Cw {\n\ttransform: rotate(0deg);\n\ttransition: transform 0.3s ;\n\tcursor: pointer;\n}\n\n.layout-components-styles__verticalDropdownIconRotated--bZyNO {\n\ttransform: rotate(90deg);\n\ttransition: transform 0.3s ;\n\tcursor: pointer;\n}\n\n.layout-components-styles__verticalDropdownTitle--s6Asq {\n\tpadding: 0;\n\tcolor: #fff !important;\n}\n\n.layout-components-styles__verticalDropdownContent--xGHxa {\n\tpadding-top: 0 !important;\n\tmargin: 0 -1.14285714em 0 0;\n\tborder-radius: 0;\n}\n\n.layout-components-styles__icon--Gtl4t {\n\ttransform: rotate(0deg);\n\ttransition: transform 0.4s linear;\n\tcursor: pointer;\n}\n\n.layout-components-styles__iconRotated--XB67Y {\n\ttransform: rotate(-180deg);\n\ttransition: transform 0.5s;\n\tcursor: pointer;\n}\n", "",{"version":3,"sources":["webpack://./layout/components/styles.css"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C;CACC,YAAY;AACb;AACA;CACC,YAAY;AACb;;AAEA;CACC,gBAAgB;CAChB,aAAa;CACb,sBAAsB;AACvB;;AAEA;CACC,2BAA2B;CAC3B,oBAAoB;AACrB;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,2BAA2B;CAC3B,sBAAsB;CACtB,uBAAuB;CACvB,2BAA2B;CAC3B,oBAAoB;CACpB,gBAAgB,EAAE,8DAA8D;CAChF,wCAAwC;AACzC;;AAEA;CACC,8BAA8B;AAC/B;;AAEA;CACC,OAAO;CACP,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,qBAAqB;CACrB,sCAAsC,EAAE,2EAA2E;CACnH,gBAAgB,EAAE,8DAA8D;AACjF;;AAEA;CACC,OAAO,EAAE,6FAA6F;CACtG,yBAAyB;CACzB,YAAY;CACZ,gBAAgB,EAAE,8DAA8D;CAChF,kBAAkB,EAAE,8DAA8D;AACnF;;AAEA;CACC,oBAAoB;CACpB,2BAA2B;AAC5B;;AAEA;CACC,uBAAuB;CACvB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,wBAAwB;CACxB,2BAA2B;CAC3B,eAAe;AAChB;;AAEA;CACC,UAAU;CACV,sBAAsB;AACvB;;AAEA;CACC,yBAAyB;CACzB,2BAA2B;CAC3B,gBAAgB;AACjB;;AAEA;CACC,uBAAuB;CACvB,iCAAiC;CACjC,eAAe;AAChB;;AAEA;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,eAAe;AAChB","sourcesContent":["/* Need to pass 100% height all the way down */\n:global(#root) {\n\theight: 100%;\n}\n:global(#root) > div {\n\theight: 100%;\n}\n\n.parent {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.menubar {\n\tborder-radius: 0 !important;\n\tmargin: 0 !important;\n}\n\n.statusbar {\n\tmargin: 0 !important;\n\tborder-radius: 0 !important;\n}\n\n.secondaryMenu {\n\tmin-width: 220px !important;\n\twidth: 100% !important;\n\theight: 100% !important;\n\tborder-radius: 0 !important;\n\tmargin: 0 !important;\n\toverflow-x: auto; /* added to make the content scroll and not the whole layout */\n\ttransition: margin-left 0.3s ease-in-out;\n}\n\n.secondaryMenuHidden {\n\tmargin-left: -220px !important;\n}\n\n.contentWrapper {\n\tflex: 1;\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: nowrap;\n\tpadding: 0 !important;\n\tborder: 0 solid transparent !important; /* this is a segment, and they seem to have a 1px white border by default */\n\toverflow-y: auto; /* added to make the content scroll and not the whole layout */\n}\n\n.content {\n\tflex: 1; /* changed this to have a flex of one instead of auto so the side menu doesn't get squished */\n\talign-content: flex-start;\n\theight: 100%;\n\tmax-height: 100%; /* added to make the content scroll and not the whole layout */\n\toverflow-x: hidden; /* added to make the content scroll and not the whole layout */\n}\n\n.footer {\n\tmargin: 0 !important;\n\tborder-radius: 0 !important;\n}\n\n.verticalDropdownIcon {\n\ttransform: rotate(0deg);\n\ttransition: transform 0.3s ;\n\tcursor: pointer;\n}\n\n.verticalDropdownIconRotated {\n\ttransform: rotate(90deg);\n\ttransition: transform 0.3s ;\n\tcursor: pointer;\n}\n\n.verticalDropdownTitle {\n\tpadding: 0;\n\tcolor: #fff !important;\n}\n\n.verticalDropdownContent {\n\tpadding-top: 0 !important;\n\tmargin: 0 -1.14285714em 0 0;\n\tborder-radius: 0;\n}\n\n.icon {\n\ttransform: rotate(0deg);\n\ttransition: transform 0.4s linear;\n\tcursor: pointer;\n}\n\n.iconRotated {\n\ttransform: rotate(-180deg);\n\ttransition: transform 0.5s;\n\tcursor: pointer;\n}\n"],"sourceRoot":""}]);
61
- // Exports
62
- ___CSS_LOADER_EXPORT___.locals = {
63
- "parent": "layout-components-styles__parent--sws8O",
64
- "menubar": "layout-components-styles__menubar--WMcXn",
65
- "statusbar": "layout-components-styles__statusbar--Ha4f_",
66
- "secondaryMenu": "layout-components-styles__secondaryMenu--byu6y",
67
- "secondaryMenuHidden": "layout-components-styles__secondaryMenuHidden--ek7Qz",
68
- "contentWrapper": "layout-components-styles__contentWrapper--SaYGn",
69
- "content": "layout-components-styles__content--JGDuW",
70
- "footer": "layout-components-styles__footer--A7LSH",
71
- "verticalDropdownIcon": "layout-components-styles__verticalDropdownIcon--V69Cw",
72
- "verticalDropdownIconRotated": "layout-components-styles__verticalDropdownIconRotated--bZyNO",
73
- "verticalDropdownTitle": "layout-components-styles__verticalDropdownTitle--s6Asq",
74
- "verticalDropdownContent": "layout-components-styles__verticalDropdownContent--xGHxa",
75
- "icon": "layout-components-styles__icon--Gtl4t",
76
- "iconRotated": "layout-components-styles__iconRotated--XB67Y"
77
- };
78
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
79
-
80
-
81
- /***/ }),
82
-
83
- /***/ "../../../node_modules/css-loader/dist/runtime/api.js":
84
- /*!************************************************************!*\
85
- !*** ../../../node_modules/css-loader/dist/runtime/api.js ***!
86
- \************************************************************/
87
- /***/ ((module) => {
88
-
89
-
90
-
91
- /*
92
- MIT License http://www.opensource.org/licenses/mit-license.php
93
- Author Tobias Koppers @sokra
94
- */
95
- module.exports = function (cssWithMappingToString) {
96
- var list = []; // return the list of modules as css string
97
-
98
- list.toString = function toString() {
99
- return this.map(function (item) {
100
- var content = "";
101
- var needLayer = typeof item[5] !== "undefined";
102
-
103
- if (item[4]) {
104
- content += "@supports (".concat(item[4], ") {");
105
- }
106
-
107
- if (item[2]) {
108
- content += "@media ".concat(item[2], " {");
109
- }
110
-
111
- if (needLayer) {
112
- content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
113
- }
114
-
115
- content += cssWithMappingToString(item);
116
-
117
- if (needLayer) {
118
- content += "}";
119
- }
120
-
121
- if (item[2]) {
122
- content += "}";
123
- }
124
-
125
- if (item[4]) {
126
- content += "}";
127
- }
128
-
129
- return content;
130
- }).join("");
131
- }; // import a list of modules into the list
132
-
133
-
134
- list.i = function i(modules, media, dedupe, supports, layer) {
135
- if (typeof modules === "string") {
136
- modules = [[null, modules, undefined]];
137
- }
138
-
139
- var alreadyImportedModules = {};
140
-
141
- if (dedupe) {
142
- for (var _i = 0; _i < this.length; _i++) {
143
- var id = this[_i][0];
144
-
145
- if (id != null) {
146
- alreadyImportedModules[id] = true;
147
- }
148
- }
149
- }
150
-
151
- for (var _i2 = 0; _i2 < modules.length; _i2++) {
152
- var item = [].concat(modules[_i2]);
153
-
154
- if (dedupe && alreadyImportedModules[item[0]]) {
155
- continue;
156
- }
157
-
158
- if (typeof layer !== "undefined") {
159
- if (typeof item[5] === "undefined") {
160
- item[5] = layer;
161
- } else {
162
- item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
163
- item[5] = layer;
164
- }
165
- }
166
-
167
- if (media) {
168
- if (!item[2]) {
169
- item[2] = media;
170
- } else {
171
- item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
172
- item[2] = media;
173
- }
174
- }
175
-
176
- if (supports) {
177
- if (!item[4]) {
178
- item[4] = "".concat(supports);
179
- } else {
180
- item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
181
- item[4] = supports;
182
- }
183
- }
184
-
185
- list.push(item);
186
- }
187
- };
188
-
189
- return list;
190
- };
191
-
192
- /***/ }),
193
-
194
- /***/ "../../../node_modules/css-loader/dist/runtime/sourceMaps.js":
195
- /*!*******************************************************************!*\
196
- !*** ../../../node_modules/css-loader/dist/runtime/sourceMaps.js ***!
197
- \*******************************************************************/
198
- /***/ ((module) => {
199
-
200
-
201
-
202
- module.exports = function (item) {
203
- var content = item[1];
204
- var cssMapping = item[3];
205
-
206
- if (!cssMapping) {
207
- return content;
208
- }
209
-
210
- if (typeof btoa === "function") {
211
- var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));
212
- var data = "sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(base64);
213
- var sourceMapping = "/*# ".concat(data, " */");
214
- var sourceURLs = cssMapping.sources.map(function (source) {
215
- return "/*# sourceURL=".concat(cssMapping.sourceRoot || "").concat(source, " */");
216
- });
217
- return [content].concat(sourceURLs).concat([sourceMapping]).join("\n");
218
- }
219
-
220
- return [content].join("\n");
221
- };
222
-
223
- /***/ }),
224
-
225
- /***/ "./commonItems.ts":
226
- /*!************************!*\
227
- !*** ./commonItems.ts ***!
228
- \************************/
229
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
230
-
231
- __webpack_require__.r(__webpack_exports__);
232
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
233
- /* harmony export */ "isHorizontalPositionedItem": () => (/* binding */ isHorizontalPositionedItem),
234
- /* harmony export */ "isRouteItem": () => (/* binding */ isRouteItem)
235
- /* harmony export */ });
236
- /**
237
- * Describes an item that can hide itself based on redux state
238
- */
239
-
240
- /**
241
- * Describes an item with optional weight
242
- */
243
-
244
- /**
245
- * Describes an item that links to a route
246
- */
247
-
248
- /**
249
- * Describes an item that can be positioned horizontally left or right
250
- */
251
- function isHorizontalPositionedItem(value) {
252
- return !!(value.position || value.stickOnMobile);
253
- }
254
- function isRouteItem(value) {
255
- return !!(value.to || value.exact || value.strict || value.sensitive);
256
- }
257
-
258
- /***/ }),
259
-
260
- /***/ "./content/components/ActionForm.tsx":
261
- /*!*******************************************!*\
262
- !*** ./content/components/ActionForm.tsx ***!
263
- \*******************************************/
264
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
265
-
266
- __webpack_require__.r(__webpack_exports__);
267
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
268
- /* harmony export */ "ActionForm": () => (/* binding */ ActionForm)
269
- /* harmony export */ });
270
- /* harmony import */ var _thx_controls__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @thx/controls */ "@thx/controls");
271
- /* harmony import */ var _thx_controls__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_thx_controls__WEBPACK_IMPORTED_MODULE_0__);
272
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! debug */ "debug");
273
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_1__);
274
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
275
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
276
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
277
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
278
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
279
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);
280
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/ActionForm.tsx",
281
- _s = $RefreshSig$();
282
-
283
-
284
-
285
-
286
-
287
-
288
- var d = debug__WEBPACK_IMPORTED_MODULE_1___default()('imperium.layout.content.components.ActionForm');
289
- function ActionForm(_ref) {
290
- _s();
291
-
292
- var item = _ref.item,
293
- data = _ref.data,
294
- onHideForm = _ref.onHideForm;
295
- // Get initial values
296
- var initialValues = {};
297
-
298
- if (item.initialValues) {
299
- if (typeof item.initialValues === 'function') {
300
- initialValues = item.initialValues(data);
301
- } else {
302
- initialValues = item.initialValues;
303
- }
304
- } // TForm
305
-
306
-
307
- var _useTForm = (0,_thx_controls__WEBPACK_IMPORTED_MODULE_0__.useTForm)({
308
- initialValues: initialValues,
309
- onSubmit: function onSubmit(submitValues) {
310
- if (item.onSubmit) {
311
- item.onSubmit(submitValues, data);
312
- }
313
-
314
- onHideForm();
315
- },
316
- enableReinitialize: true,
317
- validationSchema: item.validationSchema
318
- }),
319
- hasErrors = _useTForm.hasErrors,
320
- hasWarnings = _useTForm.hasWarnings,
321
- handleSubmit = _useTForm.handleSubmit,
322
- handleChange = _useTForm.handleChange,
323
- values = _useTForm.values,
324
- resetForm = _useTForm.resetForm,
325
- errors = _useTForm.errors,
326
- fieldError = _useTForm.fieldError;
327
-
328
- var saveButton = hasWarnings ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Popup, {
329
- trigger: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Button, {
330
- positive: true,
331
- type: "submit",
332
- floated: "right",
333
- icon: true,
334
- labelPosition: "left",
335
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Icon, {
336
- name: "exclamation circle",
337
- color: "red"
338
- }, void 0, false, {
339
- fileName: _jsxFileName,
340
- lineNumber: 44,
341
- columnNumber: 6
342
- }, this), "Save"]
343
- }, void 0, true, {
344
- fileName: _jsxFileName,
345
- lineNumber: 43,
346
- columnNumber: 5
347
- }, this),
348
- content: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Message, {
349
- error: true,
350
- list: Object.values(errors)
351
- }, void 0, false, {
352
- fileName: _jsxFileName,
353
- lineNumber: 48,
354
- columnNumber: 13
355
- }, this),
356
- on: "hover"
357
- }, void 0, false, {
358
- fileName: _jsxFileName,
359
- lineNumber: 41,
360
- columnNumber: 3
361
- }, this) : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Button, {
362
- positive: true,
363
- type: "submit",
364
- floated: "right",
365
- children: "Save"
366
- }, void 0, false, {
367
- fileName: _jsxFileName,
368
- lineNumber: 52,
369
- columnNumber: 3
370
- }, this); // Render form
371
-
372
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Form, {
373
- error: hasErrors,
374
- warning: hasWarnings,
375
- onSubmit: handleSubmit,
376
- children: [item.form({
377
- handleChange: handleChange,
378
- values: values,
379
- data: data,
380
- fieldError: fieldError
381
- }), saveButton, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Button, {
382
- type: "button",
383
- onClick: function onClick() {
384
- resetForm();
385
- onHideForm();
386
- },
387
- children: "Cancel"
388
- }, void 0, false, {
389
- fileName: _jsxFileName,
390
- lineNumber: 62,
391
- columnNumber: 4
392
- }, this)]
393
- }, void 0, true, {
394
- fileName: _jsxFileName,
395
- lineNumber: 59,
396
- columnNumber: 3
397
- }, this);
398
- }
399
-
400
- _s(ActionForm, "dRp34PVbJCQEYZVklfP663AKEEw=", false, function () {
401
- return [_thx_controls__WEBPACK_IMPORTED_MODULE_0__.useTForm];
402
- });
403
-
404
- _c = ActionForm;
405
-
406
- var _c;
407
-
408
- $RefreshReg$(_c, "ActionForm");
409
-
410
- /***/ }),
411
-
412
- /***/ "./content/components/ActionFormSidebarItemComponent.tsx":
413
- /*!***************************************************************!*\
414
- !*** ./content/components/ActionFormSidebarItemComponent.tsx ***!
415
- \***************************************************************/
416
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
417
-
418
- __webpack_require__.r(__webpack_exports__);
419
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
420
- /* harmony export */ "ActionFormSidebarItemComponent": () => (/* binding */ ActionFormSidebarItemComponent)
421
- /* harmony export */ });
422
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
423
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
424
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! debug */ "debug");
425
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_1__);
426
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
427
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
428
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
429
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
430
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./content/utils.tsx");
431
- /* harmony import */ var _ActionForm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ActionForm */ "./content/components/ActionForm.tsx");
432
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
433
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);
434
-
435
-
436
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/ActionFormSidebarItemComponent.tsx",
437
- _s = $RefreshSig$();
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
- var d = debug__WEBPACK_IMPORTED_MODULE_1___default()('imperium.layout.content.components.ActionFormSidebarItemComponent');
446
- function ActionFormSidebarItemComponent(_ref) {
447
- _s();
448
-
449
- var item = _ref.item,
450
- data = _ref.data;
451
-
452
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),
453
- _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
454
- isEdit = _useState2[0],
455
- setIsEdit = _useState2[1];
456
-
457
- if (isEdit) {
458
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(_ActionForm__WEBPACK_IMPORTED_MODULE_5__.ActionForm, {
459
- item: item,
460
- data: data,
461
- onHideForm: function onHideForm() {
462
- setIsEdit(false);
463
- }
464
- }, void 0, false, {
465
- fileName: _jsxFileName,
466
- lineNumber: 24,
467
- columnNumber: 4
468
- }, this);
469
- }
470
-
471
- var icon = (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getIcon)(item, data); // Render action button
472
-
473
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Button, {
474
- fluid: true,
475
- compact: true,
476
- color: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getColor)(item, data),
477
- icon: !!icon,
478
- labelPosition: icon ? 'left' : undefined,
479
- onClick: function onClick() {
480
- setIsEdit(true);
481
- },
482
- children: [icon, (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getText)(item, data)]
483
- }, void 0, true, {
484
- fileName: _jsxFileName,
485
- lineNumber: 38,
486
- columnNumber: 3
487
- }, this);
488
- }
489
-
490
- _s(ActionFormSidebarItemComponent, "IoDxBt6oZLuuzPcHAVPOspg3K60=");
491
-
492
- _c = ActionFormSidebarItemComponent;
493
-
494
- var _c;
495
-
496
- $RefreshReg$(_c, "ActionFormSidebarItemComponent");
497
-
498
- /***/ }),
499
-
500
- /***/ "./content/components/ActionSidebarItemComponent.tsx":
501
- /*!***********************************************************!*\
502
- !*** ./content/components/ActionSidebarItemComponent.tsx ***!
503
- \***********************************************************/
504
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
505
-
506
- __webpack_require__.r(__webpack_exports__);
507
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
508
- /* harmony export */ "ActionSidebarItemComponent": () => (/* binding */ ActionSidebarItemComponent)
509
- /* harmony export */ });
510
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
511
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
512
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
513
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__);
514
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../utils */ "./content/utils.tsx");
515
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
516
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);
517
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/ActionSidebarItemComponent.tsx";
518
-
519
-
520
-
521
-
522
- function ActionSidebarItemComponent(_ref) {
523
- var item = _ref.item,
524
- data = _ref.data;
525
- var icon = (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getIcon)(item, data);
526
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Button, {
527
- fluid: true,
528
- compact: true,
529
- color: (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getColor)(item, data),
530
- icon: !!icon,
531
- labelPosition: icon ? 'left' : undefined,
532
- onClick: function onClick() {
533
- item.onClick(data);
534
- },
535
- children: [icon, (0,_utils__WEBPACK_IMPORTED_MODULE_2__.getText)(item, data)]
536
- }, void 0, true, {
537
- fileName: _jsxFileName,
538
- lineNumber: 16,
539
- columnNumber: 3
540
- }, this);
541
- }
542
- _c = ActionSidebarItemComponent;
543
-
544
- var _c;
545
-
546
- $RefreshReg$(_c, "ActionSidebarItemComponent");
547
-
548
- /***/ }),
549
-
550
- /***/ "./content/components/ContentComponent.tsx":
551
- /*!*************************************************!*\
552
- !*** ./content/components/ContentComponent.tsx ***!
553
- \*************************************************/
554
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
555
-
556
- __webpack_require__.r(__webpack_exports__);
557
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
558
- /* harmony export */ "ContentComponent": () => (/* binding */ ContentComponent)
559
- /* harmony export */ });
560
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
561
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
562
- /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash */ "lodash");
563
- /* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_1__);
564
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
565
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
566
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-redux */ "react-redux");
567
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_3__);
568
- /* harmony import */ var _datahooks_DataHooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../datahooks/DataHooks */ "./datahooks/DataHooks.tsx");
569
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../state */ "./state.ts");
570
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../utils */ "./utils.ts");
571
- /* harmony import */ var _hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../hooks/useBuildContentData */ "./content/hooks/useBuildContentData.ts");
572
- /* harmony import */ var _Header__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./Header */ "./content/components/Header.tsx");
573
- /* harmony import */ var _SidebarItemWrapper__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./SidebarItemWrapper */ "./content/components/SidebarItemWrapper.tsx");
574
- /* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./styles.css */ "./content/components/styles.css");
575
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
576
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__);
577
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/ContentComponent.tsx",
578
- _s = $RefreshSig$(),
579
- _s2 = $RefreshSig$(),
580
- _s3 = $RefreshSig$();
581
-
582
-
583
-
584
-
585
-
586
-
587
-
588
-
589
-
590
-
591
-
592
-
593
-
594
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.content.components.ContentComponent');
595
-
596
- function useDeepCompareMemoize(value) {
597
- _s();
598
-
599
- var ref = (0,react__WEBPACK_IMPORTED_MODULE_2__.useRef)();
600
- if (!value && !ref.current) return ref.current;
601
-
602
- if (!(0,lodash__WEBPACK_IMPORTED_MODULE_1__.isEqual)(value, ref.current)) {
603
- ref.current = value;
604
- }
605
-
606
- return ref.current;
607
- }
608
-
609
- _s(useDeepCompareMemoize, "QMBuJFIdzLIeqBcFwhMf246mjOM=");
610
-
611
- function useDeepCompareEffect(callback, deps) {
612
- _s2();
613
-
614
- // eslint-disable-next-line react-hooks/exhaustive-deps
615
- (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)(callback, deps.map(useDeepCompareMemoize));
616
- }
617
-
618
- _s2(useDeepCompareEffect, "OD7bBpZva5O2jO+Puf00hKivP7c=");
619
-
620
- function ContentComponent(_ref) {
621
- _s3();
622
-
623
- var _this = this;
624
-
625
- var page = _ref.page,
626
- params = _ref.params;
627
- var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch)();
628
- var data = (0,_hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_7__.useBuildContentData)({
629
- stateSelectorHook: page.stateSelectorHook,
630
- permissionSelectorHook: page.permissionSelectorHook,
631
- params: params
632
- });
633
- useDeepCompareEffect(function () {
634
- dispatch(_state__WEBPACK_IMPORTED_MODULE_5__.actions.setParams(params));
635
- }, [dispatch, params]);
636
- var content = page.content(data);
637
- var sidebarItems = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.sortWeightedItems)(page.sidebar || []);
638
- var sidebar = sidebarItems.length > 0 ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
639
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].sidebar, " imperiumContentSidebar"),
640
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
641
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].actionsHeader, " imperiumContentSidebarHeader"),
642
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("h3", {
643
- children: "Actions"
644
- }, void 0, false, {
645
- fileName: _jsxFileName,
646
- lineNumber: 51,
647
- columnNumber: 6
648
- }, this)
649
- }, void 0, false, {
650
- fileName: _jsxFileName,
651
- lineNumber: 50,
652
- columnNumber: 5
653
- }, this), sidebarItems.map(function (sb, index) {
654
- return (
655
- /*#__PURE__*/
656
- // eslint-disable-next-line react/no-array-index-key
657
- (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
658
- className: _styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].sidebarItem,
659
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_SidebarItemWrapper__WEBPACK_IMPORTED_MODULE_9__.SidebarItemWrapper, {
660
- item: sb,
661
- params: params,
662
- data: data
663
- }, void 0, false, {
664
- fileName: _jsxFileName,
665
- lineNumber: 57,
666
- columnNumber: 8
667
- }, _this)
668
- }, index, false, {
669
- fileName: _jsxFileName,
670
- lineNumber: 56,
671
- columnNumber: 7
672
- }, _this)
673
- );
674
- })]
675
- }, void 0, true, {
676
- fileName: _jsxFileName,
677
- lineNumber: 49,
678
- columnNumber: 4
679
- }, this) : null;
680
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
681
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].parent, " imperiumContentWrapperParent"),
682
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
683
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].wrapper, " imperiumContentWrapper"),
684
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_Header__WEBPACK_IMPORTED_MODULE_8__.Header, {
685
- header: page.header,
686
- data: data
687
- }, void 0, false, {
688
- fileName: _jsxFileName,
689
- lineNumber: 67,
690
- columnNumber: 5
691
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)("div", {
692
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].content, " imperiumContent ").concat(page.full && _styles_css__WEBPACK_IMPORTED_MODULE_10__["default"].contentFull),
693
- children: content
694
- }, void 0, false, {
695
- fileName: _jsxFileName,
696
- lineNumber: 68,
697
- columnNumber: 5
698
- }, this)]
699
- }, void 0, true, {
700
- fileName: _jsxFileName,
701
- lineNumber: 66,
702
- columnNumber: 4
703
- }, this), sidebar, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_datahooks_DataHooks__WEBPACK_IMPORTED_MODULE_4__.DataHooks, {
704
- dataHooks: page.dataHooks || []
705
- }, void 0, false, {
706
- fileName: _jsxFileName,
707
- lineNumber: 71,
708
- columnNumber: 4
709
- }, this)]
710
- }, void 0, true, {
711
- fileName: _jsxFileName,
712
- lineNumber: 65,
713
- columnNumber: 3
714
- }, this);
715
- }
716
-
717
- _s3(ContentComponent, "TsIGechvpJywByg0eItU4mkBCro=", false, function () {
718
- return [react_redux__WEBPACK_IMPORTED_MODULE_3__.useDispatch, _hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_7__.useBuildContentData, useDeepCompareEffect];
719
- });
720
-
721
- _c = ContentComponent;
722
-
723
- var _c;
724
-
725
- $RefreshReg$(_c, "ContentComponent");
726
-
727
- /***/ }),
728
-
729
- /***/ "./content/components/CustomSidebarItemComponent.tsx":
730
- /*!***********************************************************!*\
731
- !*** ./content/components/CustomSidebarItemComponent.tsx ***!
732
- \***********************************************************/
733
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
734
-
735
- __webpack_require__.r(__webpack_exports__);
736
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
737
- /* harmony export */ "CustomSidebarItemComponent": () => (/* binding */ CustomSidebarItemComponent)
738
- /* harmony export */ });
739
- function CustomSidebarItemComponent(_ref) {
740
- var item = _ref.item,
741
- data = _ref.data;
742
- return item.render(data);
743
- }
744
- _c = CustomSidebarItemComponent;
745
-
746
- var _c;
747
-
748
- $RefreshReg$(_c, "CustomSidebarItemComponent");
749
-
750
- /***/ }),
751
-
752
- /***/ "./content/components/Header.tsx":
753
- /*!***************************************!*\
754
- !*** ./content/components/Header.tsx ***!
755
- \***************************************/
756
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
757
-
758
- __webpack_require__.r(__webpack_exports__);
759
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
760
- /* harmony export */ "Header": () => (/* binding */ Header)
761
- /* harmony export */ });
762
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
763
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
764
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
765
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
766
- /* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.css */ "./content/components/styles.css");
767
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
768
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);
769
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/Header.tsx";
770
-
771
-
772
-
773
-
774
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.content.components.Header');
775
- function Header(_ref) {
776
- var data = _ref.data,
777
- header = _ref.header;
778
-
779
- if (header) {
780
- var headerInfo = {
781
- title: ''
782
- };
783
-
784
- if (typeof header === 'string') {
785
- headerInfo.title = header;
786
- } else if (typeof header === 'function') {
787
- headerInfo = header(data);
788
- } else {
789
- headerInfo = header;
790
- }
791
-
792
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)("div", {
793
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_2__["default"].header, " imperiumContentHeader"),
794
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)("h2", {
795
- children: headerInfo.title
796
- }, void 0, false, {
797
- fileName: _jsxFileName,
798
- lineNumber: 28,
799
- columnNumber: 5
800
- }, this)
801
- }, void 0, false, {
802
- fileName: _jsxFileName,
803
- lineNumber: 27,
804
- columnNumber: 4
805
- }, this);
806
- }
807
-
808
- return null;
809
- }
810
- _c = Header;
811
-
812
- var _c;
813
-
814
- $RefreshReg$(_c, "Header");
815
-
816
- /***/ }),
817
-
818
- /***/ "./content/components/PlainSidebarItem.tsx":
819
- /*!*************************************************!*\
820
- !*** ./content/components/PlainSidebarItem.tsx ***!
821
- \*************************************************/
822
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
823
-
824
- __webpack_require__.r(__webpack_exports__);
825
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
826
- /* harmony export */ "PlainSidebarItem": () => (/* binding */ PlainSidebarItem)
827
- /* harmony export */ });
828
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
829
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
830
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-router-dom */ "react-router-dom");
831
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_1__);
832
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
833
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__);
834
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./content/utils.tsx");
835
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
836
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);
837
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/PlainSidebarItem.tsx";
838
-
839
-
840
-
841
-
842
-
843
- function PlainSidebarItem(_ref) {
844
- var item = _ref.item,
845
- data = _ref.data;
846
- var icon = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getIcon)(item, data);
847
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__.Button, {
848
- fluid: true,
849
- compact: true,
850
- color: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getColor)(item, data),
851
- icon: !!icon,
852
- labelPosition: icon ? 'left' : undefined,
853
- as: react_router_dom__WEBPACK_IMPORTED_MODULE_1__.Link,
854
- to: (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getRouteTo)(item, data),
855
- children: [icon, (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getText)(item, data)]
856
- }, void 0, true, {
857
- fileName: _jsxFileName,
858
- lineNumber: 17,
859
- columnNumber: 3
860
- }, this);
861
- }
862
- _c = PlainSidebarItem;
863
-
864
- var _c;
865
-
866
- $RefreshReg$(_c, "PlainSidebarItem");
867
-
868
- /***/ }),
869
-
870
- /***/ "./content/components/SidebarItemWrapper.tsx":
871
- /*!***************************************************!*\
872
- !*** ./content/components/SidebarItemWrapper.tsx ***!
873
- \***************************************************/
874
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
875
-
876
- __webpack_require__.r(__webpack_exports__);
877
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
878
- /* harmony export */ "SidebarItemWrapper": () => (/* binding */ SidebarItemWrapper)
879
- /* harmony export */ });
880
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
881
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
882
- /* harmony import */ var mingo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mingo */ "mingo");
883
- /* harmony import */ var mingo__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mingo__WEBPACK_IMPORTED_MODULE_1__);
884
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
885
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
886
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
887
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
888
- /* harmony import */ var _hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../hooks/useBuildContentData */ "./content/hooks/useBuildContentData.ts");
889
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../types */ "./content/types.ts");
890
- /* harmony import */ var _ActionFormSidebarItemComponent__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ActionFormSidebarItemComponent */ "./content/components/ActionFormSidebarItemComponent.tsx");
891
- /* harmony import */ var _ActionSidebarItemComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./ActionSidebarItemComponent */ "./content/components/ActionSidebarItemComponent.tsx");
892
- /* harmony import */ var _CustomSidebarItemComponent__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./CustomSidebarItemComponent */ "./content/components/CustomSidebarItemComponent.tsx");
893
- /* harmony import */ var _PlainSidebarItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./PlainSidebarItem */ "./content/components/PlainSidebarItem.tsx");
894
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
895
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__);
896
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/components/SidebarItemWrapper.tsx",
897
- _s = $RefreshSig$();
898
-
899
-
900
-
901
-
902
-
903
-
904
-
905
-
906
-
907
-
908
-
909
-
910
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.content.components.SidebarItemWrapper');
911
- function SidebarItemWrapper(_ref) {
912
- _s();
913
-
914
- var item = _ref.item,
915
- parentData = _ref.data,
916
- params = _ref.params;
917
- var data = (0,_hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_4__.useBuildContentData)({
918
- data: parentData,
919
- stateSelectorHook: item.stateSelectorHook,
920
- permissionSelectorHook: item.permissionSelectorHook,
921
- params: params
922
- }); // Check if visible
923
-
924
- if (item.visible) {
925
- if (typeof item.visible === 'function') {
926
- if (!item.visible(data)) return null;
927
- } else {
928
- var q = new mingo__WEBPACK_IMPORTED_MODULE_1__.Query(item.visible || {});
929
- if (!q.test(data)) return null;
930
- }
931
- }
932
-
933
- if ((0,_types__WEBPACK_IMPORTED_MODULE_5__.isCustomSidebarItem)(item)) {
934
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_CustomSidebarItemComponent__WEBPACK_IMPORTED_MODULE_8__.CustomSidebarItemComponent, {
935
- item: item,
936
- data: data
937
- }, void 0, false, {
938
- fileName: _jsxFileName,
939
- lineNumber: 41,
940
- columnNumber: 10
941
- }, this);
942
- }
943
-
944
- if ((0,_types__WEBPACK_IMPORTED_MODULE_5__.isActionSidebarItem)(item)) {
945
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_ActionSidebarItemComponent__WEBPACK_IMPORTED_MODULE_7__.ActionSidebarItemComponent, {
946
- item: item,
947
- data: data
948
- }, void 0, false, {
949
- fileName: _jsxFileName,
950
- lineNumber: 45,
951
- columnNumber: 10
952
- }, this);
953
- }
954
-
955
- if ((0,_types__WEBPACK_IMPORTED_MODULE_5__.isActionFormSidebarItem)(item)) {
956
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_ActionFormSidebarItemComponent__WEBPACK_IMPORTED_MODULE_6__.ActionFormSidebarItemComponent, {
957
- item: item,
958
- data: data
959
- }, void 0, false, {
960
- fileName: _jsxFileName,
961
- lineNumber: 49,
962
- columnNumber: 10
963
- }, this);
964
- }
965
-
966
- if ((0,_types__WEBPACK_IMPORTED_MODULE_5__.isDividerSidebarItem)(item)) {
967
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Divider, {}, void 0, false, {
968
- fileName: _jsxFileName,
969
- lineNumber: 53,
970
- columnNumber: 10
971
- }, this);
972
- } // @ts-ignore These types should work, not sure why it's not. Runtime code is fine.
973
-
974
-
975
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_PlainSidebarItem__WEBPACK_IMPORTED_MODULE_9__.PlainSidebarItem, {
976
- item: item,
977
- data: data
978
- }, void 0, false, {
979
- fileName: _jsxFileName,
980
- lineNumber: 57,
981
- columnNumber: 9
982
- }, this);
983
- }
984
-
985
- _s(SidebarItemWrapper, "xjcdexqxLIICpGAZKBGiYOVWDas=", false, function () {
986
- return [_hooks_useBuildContentData__WEBPACK_IMPORTED_MODULE_4__.useBuildContentData];
987
- });
988
-
989
- _c = SidebarItemWrapper;
990
-
991
- var _c;
992
-
993
- $RefreshReg$(_c, "SidebarItemWrapper");
994
-
995
- /***/ }),
996
-
997
- /***/ "./content/createPages.tsx":
998
- /*!*********************************!*\
999
- !*** ./content/createPages.tsx ***!
1000
- \*********************************/
1001
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1002
-
1003
- __webpack_require__.r(__webpack_exports__);
1004
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1005
- /* harmony export */ "createPages": () => (/* binding */ createPages)
1006
- /* harmony export */ });
1007
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
1008
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
1009
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! debug */ "debug");
1010
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_1__);
1011
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
1012
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1013
- /* harmony import */ var _components_ContentComponent__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./components/ContentComponent */ "./content/components/ContentComponent.tsx");
1014
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types */ "./content/types.ts");
1015
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1016
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);
1017
-
1018
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/createPages.tsx";
1019
-
1020
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1021
-
1022
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1023
-
1024
-
1025
-
1026
-
1027
-
1028
-
1029
- var d = debug__WEBPACK_IMPORTED_MODULE_1___default()('imperium.layout.content.createPages');
1030
- function createPages(routes, pages) {
1031
- var _this = this;
1032
-
1033
- var renderRoutePropsObj = Object.keys(routes.types).reduce(function (memo, key) {
1034
- return _objectSpread(_objectSpread({}, memo), {}, _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()({}, key, function (params) {
1035
- var pg = pages[key];
1036
-
1037
- if ((0,_types__WEBPACK_IMPORTED_MODULE_4__.isPage)(pg)) {
1038
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_components_ContentComponent__WEBPACK_IMPORTED_MODULE_3__.ContentComponent, {
1039
- page: pg,
1040
- params: params
1041
- }, void 0, false, {
1042
- fileName: _jsxFileName,
1043
- lineNumber: 17,
1044
- columnNumber: 13
1045
- }, _this);
1046
- }
1047
-
1048
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_components_ContentComponent__WEBPACK_IMPORTED_MODULE_3__.ContentComponent, {
1049
- page: {
1050
- content: pg
1051
- },
1052
- params: params
1053
- }, void 0, false, {
1054
- fileName: _jsxFileName,
1055
- lineNumber: 20,
1056
- columnNumber: 6
1057
- }, _this);
1058
- }));
1059
- }, {});
1060
- return routes.renderRouteProps(renderRoutePropsObj);
1061
- }
1062
-
1063
- /***/ }),
1064
-
1065
- /***/ "./content/dividerSidebarItem.ts":
1066
- /*!***************************************!*\
1067
- !*** ./content/dividerSidebarItem.ts ***!
1068
- \***************************************/
1069
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1070
-
1071
- __webpack_require__.r(__webpack_exports__);
1072
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1073
- /* harmony export */ "dividerSidebarItem": () => (/* binding */ dividerSidebarItem)
1074
- /* harmony export */ });
1075
- var dividerSidebarItem = {
1076
- text: '',
1077
- divider: true
1078
- };
1079
-
1080
- /***/ }),
1081
-
1082
- /***/ "./content/hooks/useBuildContentData.ts":
1083
- /*!**********************************************!*\
1084
- !*** ./content/hooks/useBuildContentData.ts ***!
1085
- \**********************************************/
1086
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1087
-
1088
- __webpack_require__.r(__webpack_exports__);
1089
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1090
- /* harmony export */ "useBuildContentData": () => (/* binding */ useBuildContentData)
1091
- /* harmony export */ });
1092
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
1093
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
1094
- /* harmony import */ var _hooks_useBuildData__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../hooks/useBuildData */ "./hooks/useBuildData.ts");
1095
-
1096
-
1097
- var _s = $RefreshSig$();
1098
-
1099
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1100
-
1101
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1102
-
1103
-
1104
- function useBuildContentData(_ref) {
1105
- _s();
1106
-
1107
- var data = _ref.data,
1108
- stateSelectorHook = _ref.stateSelectorHook,
1109
- permissionSelectorHook = _ref.permissionSelectorHook,
1110
- routeItem = _ref.routeItem,
1111
- params = _ref.params;
1112
- var buildData = (0,_hooks_useBuildData__WEBPACK_IMPORTED_MODULE_1__.useBuildData)({
1113
- data: data,
1114
- stateSelectorHook: stateSelectorHook,
1115
- permissionSelectorHook: permissionSelectorHook,
1116
- routeItem: routeItem
1117
- });
1118
- return _objectSpread(_objectSpread({}, buildData), {}, {
1119
- params: params
1120
- });
1121
- }
1122
-
1123
- _s(useBuildContentData, "yk5pGS0moWWVjdJ9ddvs9cW3Gsc=", false, function () {
1124
- return [_hooks_useBuildData__WEBPACK_IMPORTED_MODULE_1__.useBuildData];
1125
- });
1126
-
1127
- /***/ }),
1128
-
1129
- /***/ "./content/types.ts":
1130
- /*!**************************!*\
1131
- !*** ./content/types.ts ***!
1132
- \**************************/
1133
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1134
-
1135
- __webpack_require__.r(__webpack_exports__);
1136
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1137
- /* harmony export */ "isPage": () => (/* binding */ isPage),
1138
- /* harmony export */ "isActionSidebarItem": () => (/* binding */ isActionSidebarItem),
1139
- /* harmony export */ "isActionFormSidebarItem": () => (/* binding */ isActionFormSidebarItem),
1140
- /* harmony export */ "isCustomSidebarItem": () => (/* binding */ isCustomSidebarItem),
1141
- /* harmony export */ "isDividerSidebarItem": () => (/* binding */ isDividerSidebarItem)
1142
- /* harmony export */ });
1143
- function isPage(value) {
1144
- return !!value.content;
1145
- }
1146
- function isActionSidebarItem(value) {
1147
- return !!value.onClick;
1148
- }
1149
- function isActionFormSidebarItem(value) {
1150
- return !!value.form;
1151
- }
1152
- function isCustomSidebarItem(value) {
1153
- return !!value.render;
1154
- }
1155
- function isDividerSidebarItem(value) {
1156
- return value.divider;
1157
- }
1158
-
1159
- /***/ }),
1160
-
1161
- /***/ "./content/utils.tsx":
1162
- /*!***************************!*\
1163
- !*** ./content/utils.tsx ***!
1164
- \***************************/
1165
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1166
-
1167
- __webpack_require__.r(__webpack_exports__);
1168
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1169
- /* harmony export */ "getIcon": () => (/* binding */ getIcon),
1170
- /* harmony export */ "getRouteTo": () => (/* binding */ getRouteTo),
1171
- /* harmony export */ "getText": () => (/* binding */ getText),
1172
- /* harmony export */ "getColor": () => (/* binding */ getColor)
1173
- /* harmony export */ });
1174
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1175
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1176
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
1177
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__);
1178
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1179
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);
1180
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/content/utils.tsx";
1181
-
1182
-
1183
-
1184
- function getIcon(item, data) {
1185
- if (item.icon) {
1186
- var iconName = typeof item.icon === 'function' ? item.icon(data) : item.icon;
1187
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Icon, {
1188
- name: iconName
1189
- }, void 0, false, {
1190
- fileName: _jsxFileName,
1191
- lineNumber: 10,
1192
- columnNumber: 10
1193
- }, this);
1194
- }
1195
-
1196
- return null;
1197
- }
1198
- function getRouteTo(item, data) {
1199
- if (item.to) {
1200
- return typeof item.to === 'function' ? item.to(data) : item.to;
1201
- }
1202
-
1203
- return '';
1204
- }
1205
- function getText(item, data) {
1206
- return typeof item.text === 'function' ? item.text(data) : item.text;
1207
- }
1208
- function getColor(item, data) {
1209
- if (!item.color) return 'blue';
1210
- return typeof item.color === 'function' ? item.color(data) : item.color;
1211
- }
1212
-
1213
- /***/ }),
1214
-
1215
- /***/ "./datahooks/DataHooks.tsx":
1216
- /*!*********************************!*\
1217
- !*** ./datahooks/DataHooks.tsx ***!
1218
- \*********************************/
1219
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1220
-
1221
- __webpack_require__.r(__webpack_exports__);
1222
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1223
- /* harmony export */ "DataHooks": () => (/* binding */ DataHooks)
1224
- /* harmony export */ });
1225
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
1226
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
1227
- /* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/fp */ "lodash/fp");
1228
- /* harmony import */ var lodash_fp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_fp__WEBPACK_IMPORTED_MODULE_1__);
1229
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
1230
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1231
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-router-dom */ "react-router-dom");
1232
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_3__);
1233
- /* harmony import */ var _ExecuteDataHook__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./ExecuteDataHook */ "./datahooks/ExecuteDataHook.tsx");
1234
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1235
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);
1236
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/datahooks/DataHooks.tsx",
1237
- _s = $RefreshSig$();
1238
-
1239
-
1240
-
1241
-
1242
-
1243
-
1244
-
1245
-
1246
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.datahooks.DataHooks');
1247
-
1248
- /**
1249
- * Renders layout data hooks. These hooks should return nothing. All interaction should be in side effects, usually retrieving data and setting Redux state.
1250
- * @param dataHooks
1251
- * @constructor
1252
- */
1253
- function DataHooks(_ref) {
1254
- _s();
1255
-
1256
- var _this = this;
1257
-
1258
- var dataHooks = _ref.dataHooks;
1259
-
1260
- var _useLocation = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation)(),
1261
- pathname = _useLocation.pathname;
1262
-
1263
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
1264
- children: dataHooks.map(function (hook, index) {
1265
- if (typeof hook === 'function') {
1266
- // eslint-disable-next-line react/no-array-index-key
1267
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_ExecuteDataHook__WEBPACK_IMPORTED_MODULE_4__.ExecuteDataHook, {
1268
- dataHook: hook
1269
- }, index, false, {
1270
- fileName: _jsxFileName,
1271
- lineNumber: 27,
1272
- columnNumber: 13
1273
- }, _this);
1274
- }
1275
-
1276
- var fn = Array.isArray(hook.routeMatch) ? (0,lodash_fp__WEBPACK_IMPORTED_MODULE_1__.compose)(hook.routeMatch) : hook.routeMatch;
1277
- var routeParams = fn(pathname);
1278
-
1279
- if (Array.isArray(hook.dataHook)) {
1280
- return (
1281
- /*#__PURE__*/
1282
- // eslint-disable-next-line react/no-array-index-key
1283
- (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)((react__WEBPACK_IMPORTED_MODULE_2___default().Fragment), {
1284
- children: hook.dataHook.map(function (dh, index2) {
1285
- // eslint-disable-next-line react/no-array-index-key
1286
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_ExecuteDataHook__WEBPACK_IMPORTED_MODULE_4__.ExecuteDataHook, {
1287
- dataHook: dh,
1288
- routeParams: routeParams
1289
- }, index2, false, {
1290
- fileName: _jsxFileName,
1291
- lineNumber: 37,
1292
- columnNumber: 16
1293
- }, _this);
1294
- })
1295
- }, index, false, {
1296
- fileName: _jsxFileName,
1297
- lineNumber: 34,
1298
- columnNumber: 7
1299
- }, _this)
1300
- );
1301
- } // eslint-disable-next-line react/no-array-index-key
1302
-
1303
-
1304
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_ExecuteDataHook__WEBPACK_IMPORTED_MODULE_4__.ExecuteDataHook, {
1305
- dataHook: hook.dataHook,
1306
- routeParams: routeParams
1307
- }, index, false, {
1308
- fileName: _jsxFileName,
1309
- lineNumber: 43,
1310
- columnNumber: 12
1311
- }, _this);
1312
- })
1313
- }, void 0, false);
1314
- }
1315
-
1316
- _s(DataHooks, "DLzm74WbLrqXx5fm3m0DPqqQIzo=", false, function () {
1317
- return [react_router_dom__WEBPACK_IMPORTED_MODULE_3__.useLocation];
1318
- });
1319
-
1320
- _c = DataHooks;
1321
-
1322
- var _c;
1323
-
1324
- $RefreshReg$(_c, "DataHooks");
1325
-
1326
- /***/ }),
1327
-
1328
- /***/ "./datahooks/ExecuteDataHook.tsx":
1329
- /*!***************************************!*\
1330
- !*** ./datahooks/ExecuteDataHook.tsx ***!
1331
- \***************************************/
1332
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1333
-
1334
- __webpack_require__.r(__webpack_exports__);
1335
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1336
- /* harmony export */ "ExecuteDataHook": () => (/* binding */ ExecuteDataHook)
1337
- /* harmony export */ });
1338
- function ExecuteDataHook(_ref) {
1339
- var dataHook = _ref.dataHook,
1340
- routeParams = _ref.routeParams;
1341
- dataHook(routeParams);
1342
- return null;
1343
- }
1344
- _c = ExecuteDataHook;
1345
-
1346
- var _c;
1347
-
1348
- $RefreshReg$(_c, "ExecuteDataHook");
1349
-
1350
- /***/ }),
1351
-
1352
- /***/ "./datahooks/ExecutePermissionHook.tsx":
1353
- /*!*********************************************!*\
1354
- !*** ./datahooks/ExecutePermissionHook.tsx ***!
1355
- \*********************************************/
1356
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1357
-
1358
- __webpack_require__.r(__webpack_exports__);
1359
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1360
- /* harmony export */ "ExecutePermissionHook": () => (/* binding */ ExecutePermissionHook)
1361
- /* harmony export */ });
1362
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
1363
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
1364
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-redux */ "react-redux");
1365
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_1__);
1366
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../state */ "./state.ts");
1367
- var _s = $RefreshSig$();
1368
-
1369
-
1370
-
1371
-
1372
- function ExecutePermissionHook(_ref) {
1373
- _s();
1374
-
1375
- var permissionHook = _ref.permissionHook,
1376
- routeParams = _ref.routeParams;
1377
- var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch)();
1378
- var perms = permissionHook(routeParams);
1379
- (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(function () {
1380
- Object.keys(perms).forEach(function (permission) {
1381
- dispatch(_state__WEBPACK_IMPORTED_MODULE_2__.actions.setPermission({
1382
- permission: permission,
1383
- result: perms[permission]
1384
- }));
1385
- });
1386
- }, [dispatch, perms]);
1387
- return null;
1388
- }
1389
-
1390
- _s(ExecutePermissionHook, "rAh3tY+Iv6hWC9AI4Dm+rCbkwNE=", false, function () {
1391
- return [react_redux__WEBPACK_IMPORTED_MODULE_1__.useDispatch];
1392
- });
1393
-
1394
- _c = ExecutePermissionHook;
1395
-
1396
- var _c;
1397
-
1398
- $RefreshReg$(_c, "ExecutePermissionHook");
1399
-
1400
- /***/ }),
1401
-
1402
- /***/ "./datahooks/PermissionHooks.tsx":
1403
- /*!***************************************!*\
1404
- !*** ./datahooks/PermissionHooks.tsx ***!
1405
- \***************************************/
1406
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1407
-
1408
- __webpack_require__.r(__webpack_exports__);
1409
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1410
- /* harmony export */ "PermissionHooks": () => (/* binding */ PermissionHooks)
1411
- /* harmony export */ });
1412
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
1413
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
1414
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
1415
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
1416
- /* harmony import */ var _ExecutePermissionHook__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ExecutePermissionHook */ "./datahooks/ExecutePermissionHook.tsx");
1417
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1418
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);
1419
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/datahooks/PermissionHooks.tsx";
1420
-
1421
-
1422
-
1423
-
1424
-
1425
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.datahooks.PermissionHooks');
1426
- function PermissionHooks(_ref) {
1427
- var _this = this;
1428
-
1429
- var permissionHooks = _ref.permissionHooks;
1430
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.Fragment, {
1431
- children: permissionHooks.map(function (hook, index) {
1432
- // eslint-disable-next-line react/no-array-index-key
1433
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(_ExecutePermissionHook__WEBPACK_IMPORTED_MODULE_2__.ExecutePermissionHook, {
1434
- permissionHook: hook
1435
- }, index, false, {
1436
- fileName: _jsxFileName,
1437
- lineNumber: 17,
1438
- columnNumber: 12
1439
- }, _this);
1440
- })
1441
- }, void 0, false);
1442
- }
1443
- _c = PermissionHooks;
1444
-
1445
- var _c;
1446
-
1447
- $RefreshReg$(_c, "PermissionHooks");
1448
-
1449
- /***/ }),
1450
-
1451
- /***/ "./hooks/useBuildData.ts":
1452
- /*!*******************************!*\
1453
- !*** ./hooks/useBuildData.ts ***!
1454
- \*******************************/
1455
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1456
-
1457
- __webpack_require__.r(__webpack_exports__);
1458
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1459
- /* harmony export */ "useBuildData": () => (/* binding */ useBuildData)
1460
- /* harmony export */ });
1461
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
1462
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
1463
- /* harmony import */ var _imperium_auth_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @imperium/auth-client */ "@imperium/auth-client");
1464
- /* harmony import */ var _imperium_auth_client__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_imperium_auth_client__WEBPACK_IMPORTED_MODULE_1__);
1465
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! debug */ "debug");
1466
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_2__);
1467
- /* harmony import */ var lodash_compact__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/compact */ "lodash/compact");
1468
- /* harmony import */ var lodash_compact__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_compact__WEBPACK_IMPORTED_MODULE_3__);
1469
- /* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/merge */ "lodash/merge");
1470
- /* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_4__);
1471
- /* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! querystring */ "querystring");
1472
- /* harmony import */ var querystring__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(querystring__WEBPACK_IMPORTED_MODULE_5__);
1473
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-router-dom */ "react-router-dom");
1474
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_6__);
1475
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../state */ "./state.ts");
1476
- /* harmony import */ var _useIsActiveRoute__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./useIsActiveRoute */ "./hooks/useIsActiveRoute.ts");
1477
- /* harmony import */ var _useSelectPermission__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./useSelectPermission */ "./hooks/useSelectPermission.ts");
1478
- /* harmony import */ var _useSelectState__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./useSelectState */ "./hooks/useSelectState.ts");
1479
-
1480
-
1481
- var _s = $RefreshSig$();
1482
-
1483
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
1484
-
1485
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
1486
-
1487
-
1488
-
1489
-
1490
-
1491
-
1492
-
1493
-
1494
-
1495
-
1496
-
1497
- var d = debug__WEBPACK_IMPORTED_MODULE_2___default()('imperium.layout.hooks.useBuildData');
1498
- function useBuildData(_ref) {
1499
- _s();
1500
-
1501
- var stateSelectorHook = _ref.stateSelectorHook,
1502
- permissionSelectorHook = _ref.permissionSelectorHook,
1503
- data = _ref.data,
1504
- routeItem = _ref.routeItem;
1505
-
1506
- var _useAuth = (0,_imperium_auth_client__WEBPACK_IMPORTED_MODULE_1__.useAuth)(),
1507
- id = _useAuth.id;
1508
-
1509
- var _useLayoutState = (0,_state__WEBPACK_IMPORTED_MODULE_7__.useLayoutState)(),
1510
- permissions = _useLayoutState.permissions;
1511
-
1512
- var state = (0,_useSelectState__WEBPACK_IMPORTED_MODULE_10__.useSelectState)(stateSelectorHook);
1513
- var loc = (0,react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useLocation)();
1514
- var route = {
1515
- path: lodash_compact__WEBPACK_IMPORTED_MODULE_3___default()(loc.pathname.split('/')),
1516
- hash: loc.hash,
1517
- search: querystring__WEBPACK_IMPORTED_MODULE_5___default().parse(loc.search)
1518
- };
1519
- var active = (0,_useIsActiveRoute__WEBPACK_IMPORTED_MODULE_8__.useIsActiveRoute)({
1520
- loc: loc,
1521
- route: route,
1522
- state: state,
1523
- active: false,
1524
- id: id,
1525
- permissions: permissions
1526
- }, routeItem);
1527
- var permissionsX = (0,_useSelectPermission__WEBPACK_IMPORTED_MODULE_9__.useSelectPermission)({
1528
- state: state,
1529
- loc: loc,
1530
- active: active,
1531
- route: route,
1532
- id: id,
1533
- permissions: permissions
1534
- }, permissionSelectorHook);
1535
- var newData = {
1536
- state: state,
1537
- loc: loc,
1538
- active: active,
1539
- route: route,
1540
- permissions: _objectSpread(_objectSpread({}, permissions), permissionsX),
1541
- id: id
1542
- };
1543
- return data ? lodash_merge__WEBPACK_IMPORTED_MODULE_4___default()(data, newData) : newData;
1544
- }
1545
-
1546
- _s(useBuildData, "NMDuLcIxXrtjYS0wpu117oP2RFQ=", false, function () {
1547
- return [_imperium_auth_client__WEBPACK_IMPORTED_MODULE_1__.useAuth, _state__WEBPACK_IMPORTED_MODULE_7__.useLayoutState, _useSelectState__WEBPACK_IMPORTED_MODULE_10__.useSelectState, react_router_dom__WEBPACK_IMPORTED_MODULE_6__.useLocation, _useIsActiveRoute__WEBPACK_IMPORTED_MODULE_8__.useIsActiveRoute, _useSelectPermission__WEBPACK_IMPORTED_MODULE_9__.useSelectPermission];
1548
- });
1549
-
1550
- /***/ }),
1551
-
1552
- /***/ "./hooks/useIsActiveRoute.ts":
1553
- /*!***********************************!*\
1554
- !*** ./hooks/useIsActiveRoute.ts ***!
1555
- \***********************************/
1556
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1557
-
1558
- __webpack_require__.r(__webpack_exports__);
1559
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1560
- /* harmony export */ "useIsActiveRoute": () => (/* binding */ useIsActiveRoute)
1561
- /* harmony export */ });
1562
- /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-router */ "react-router");
1563
- /* harmony import */ var react_router__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_router__WEBPACK_IMPORTED_MODULE_0__);
1564
- /* harmony import */ var _commonItems__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../commonItems */ "./commonItems.ts");
1565
- var _s = $RefreshSig$();
1566
-
1567
-
1568
-
1569
- function useIsActiveRoute(data, item) {
1570
- _s();
1571
-
1572
- // Determine if the current route matches the to route to see if the link is active
1573
- var routeMatchObject = {};
1574
-
1575
- if (item && (0,_commonItems__WEBPACK_IMPORTED_MODULE_1__.isRouteItem)(item)) {
1576
- if (typeof item.to === 'string') {
1577
- routeMatchObject.path = item.to;
1578
- }
1579
-
1580
- if (typeof item.to === 'function') {
1581
- routeMatchObject.path = item.to(data);
1582
- }
1583
-
1584
- routeMatchObject.exact = item.exact !== false;
1585
- routeMatchObject.sensitive = item.sensitive;
1586
- routeMatchObject.strict = item.strict;
1587
- }
1588
-
1589
- var routeMatch = (0,react_router__WEBPACK_IMPORTED_MODULE_0__.useRouteMatch)(routeMatchObject);
1590
- return routeMatch !== null;
1591
- }
1592
-
1593
- _s(useIsActiveRoute, "L9+tG2+BZKTwRUciW8KKlSP2K7c=", false, function () {
1594
- return [react_router__WEBPACK_IMPORTED_MODULE_0__.useRouteMatch];
1595
- });
1596
-
1597
- /***/ }),
1598
-
1599
- /***/ "./hooks/useSelectPermission.ts":
1600
- /*!**************************************!*\
1601
- !*** ./hooks/useSelectPermission.ts ***!
1602
- \**************************************/
1603
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1604
-
1605
- __webpack_require__.r(__webpack_exports__);
1606
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1607
- /* harmony export */ "useSelectPermission": () => (/* binding */ useSelectPermission)
1608
- /* harmony export */ });
1609
- /* harmony import */ var lodash_flowRight__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/flowRight */ "lodash/flowRight");
1610
- /* harmony import */ var lodash_flowRight__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_flowRight__WEBPACK_IMPORTED_MODULE_0__);
1611
-
1612
- function useSelectPermission(data, permissionSelectorHook) {
1613
- var finalSelectorHook = function finalSelectorHook() {
1614
- return {};
1615
- };
1616
-
1617
- if (permissionSelectorHook) {
1618
- finalSelectorHook = Array.isArray(permissionSelectorHook) ? lodash_flowRight__WEBPACK_IMPORTED_MODULE_0___default()(permissionSelectorHook) : permissionSelectorHook;
1619
- }
1620
-
1621
- return finalSelectorHook(data);
1622
- }
1623
-
1624
- /***/ }),
1625
-
1626
- /***/ "./hooks/useSelectState.ts":
1627
- /*!*********************************!*\
1628
- !*** ./hooks/useSelectState.ts ***!
1629
- \*********************************/
1630
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1631
-
1632
- __webpack_require__.r(__webpack_exports__);
1633
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1634
- /* harmony export */ "useSelectState": () => (/* binding */ useSelectState)
1635
- /* harmony export */ });
1636
- /* harmony import */ var lodash_flowRight__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/flowRight */ "lodash/flowRight");
1637
- /* harmony import */ var lodash_flowRight__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_flowRight__WEBPACK_IMPORTED_MODULE_0__);
1638
-
1639
- function useSelectState(stateSelectorHook) {
1640
- var finalSelectorHook = function finalSelectorHook() {
1641
- return {};
1642
- };
1643
-
1644
- if (stateSelectorHook) {
1645
- finalSelectorHook = Array.isArray(stateSelectorHook) ? lodash_flowRight__WEBPACK_IMPORTED_MODULE_0___default()(stateSelectorHook) : stateSelectorHook;
1646
- }
1647
-
1648
- return finalSelectorHook();
1649
- }
1650
-
1651
- /***/ }),
1652
-
1653
- /***/ "./layout/components/CustomLayoutItemComponent.tsx":
1654
- /*!*********************************************************!*\
1655
- !*** ./layout/components/CustomLayoutItemComponent.tsx ***!
1656
- \*********************************************************/
1657
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1658
-
1659
- __webpack_require__.r(__webpack_exports__);
1660
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1661
- /* harmony export */ "CustomLayoutItemComponent": () => (/* binding */ CustomLayoutItemComponent)
1662
- /* harmony export */ });
1663
- function CustomLayoutItemComponent(_ref) {
1664
- var item = _ref.item,
1665
- data = _ref.data;
1666
- return item.render(data);
1667
- }
1668
- _c = CustomLayoutItemComponent;
1669
-
1670
- var _c;
1671
-
1672
- $RefreshReg$(_c, "CustomLayoutItemComponent");
1673
-
1674
- /***/ }),
1675
-
1676
- /***/ "./layout/components/DropdownItem.tsx":
1677
- /*!********************************************!*\
1678
- !*** ./layout/components/DropdownItem.tsx ***!
1679
- \********************************************/
1680
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1681
-
1682
- __webpack_require__.r(__webpack_exports__);
1683
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1684
- /* harmony export */ "DropdownItem": () => (/* binding */ DropdownItem)
1685
- /* harmony export */ });
1686
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
1687
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0__);
1688
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! debug */ "debug");
1689
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_1__);
1690
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
1691
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
1692
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
1693
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
1694
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../utils */ "./layout/utils.tsx");
1695
- /* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./styles.css */ "./layout/components/styles.css");
1696
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1697
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__);
1698
-
1699
-
1700
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/DropdownItem.tsx",
1701
- _s = $RefreshSig$();
1702
-
1703
-
1704
-
1705
-
1706
-
1707
-
1708
-
1709
- var d = debug__WEBPACK_IMPORTED_MODULE_1___default()('imperium.layout.components.DropdownItem');
1710
- function DropdownItem(_ref) {
1711
- _s();
1712
-
1713
- var item = _ref.item,
1714
- vertical = _ref.vertical,
1715
- children = _ref.children,
1716
- data = _ref.data;
1717
-
1718
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false),
1719
- _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_0___default()(_useState, 2),
1720
- open = _useState2[0],
1721
- setOpen = _useState2[1];
1722
-
1723
- if (vertical) {
1724
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Menu.Item, {
1725
- className: "imperiumVerticalDropdown",
1726
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Accordion, {
1727
- fluid: true,
1728
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Accordion.Title, {
1729
- className: _styles_css__WEBPACK_IMPORTED_MODULE_5__["default"].verticalDropdownTitle,
1730
- onClick: function onClick(ev) {
1731
- ev.stopPropagation();
1732
- setOpen(!open);
1733
- },
1734
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Icon, {
1735
- className: open ? _styles_css__WEBPACK_IMPORTED_MODULE_5__["default"].verticalDropdownIconRotated : _styles_css__WEBPACK_IMPORTED_MODULE_5__["default"].verticalDropdownIcon,
1736
- name: "arrow right"
1737
- }, void 0, false, {
1738
- fileName: _jsxFileName,
1739
- lineNumber: 32,
1740
- columnNumber: 7
1741
- }, this), item.text]
1742
- }, void 0, true, {
1743
- fileName: _jsxFileName,
1744
- lineNumber: 25,
1745
- columnNumber: 6
1746
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Accordion.Content, {
1747
- active: open,
1748
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_5__["default"].verticalDropdownContent, " imperiumVerticalDropdownContent"),
1749
- children: children
1750
- }, void 0, false, {
1751
- fileName: _jsxFileName,
1752
- lineNumber: 35,
1753
- columnNumber: 6
1754
- }, this)]
1755
- }, void 0, true, {
1756
- fileName: _jsxFileName,
1757
- lineNumber: 24,
1758
- columnNumber: 5
1759
- }, this)
1760
- }, void 0, false, {
1761
- fileName: _jsxFileName,
1762
- lineNumber: 23,
1763
- columnNumber: 4
1764
- }, this);
1765
- }
1766
-
1767
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Dropdown, {
1768
- item: true,
1769
- text: (0,_utils__WEBPACK_IMPORTED_MODULE_4__.getText)(item, data),
1770
- className: "imperiumDropdown",
1771
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_6__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Dropdown.Menu, {
1772
- className: "imperiumDropdownContent",
1773
- children: children
1774
- }, void 0, false, {
1775
- fileName: _jsxFileName,
1776
- lineNumber: 43,
1777
- columnNumber: 4
1778
- }, this)
1779
- }, void 0, false, {
1780
- fileName: _jsxFileName,
1781
- lineNumber: 42,
1782
- columnNumber: 3
1783
- }, this);
1784
- }
1785
-
1786
- _s(DropdownItem, "xG1TONbKtDWtdOTrXaTAsNhPg/Q=");
1787
-
1788
- _c = DropdownItem;
1789
-
1790
- var _c;
1791
-
1792
- $RefreshReg$(_c, "DropdownItem");
1793
-
1794
- /***/ }),
1795
-
1796
- /***/ "./layout/components/Layout.tsx":
1797
- /*!**************************************!*\
1798
- !*** ./layout/components/Layout.tsx ***!
1799
- \**************************************/
1800
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1801
-
1802
- __webpack_require__.r(__webpack_exports__);
1803
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1804
- /* harmony export */ "Layout": () => (/* binding */ Layout)
1805
- /* harmony export */ });
1806
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
1807
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);
1808
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ "@babel/runtime/helpers/slicedToArray");
1809
- /* harmony import */ var _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1__);
1810
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! debug */ "debug");
1811
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_2__);
1812
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
1813
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
1814
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
1815
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__);
1816
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../state */ "./state.ts");
1817
- /* harmony import */ var _moveItems__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../moveItems */ "./layout/moveItems.ts");
1818
- /* harmony import */ var _LayoutItemBar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LayoutItemBar */ "./layout/components/LayoutItemBar.tsx");
1819
- /* harmony import */ var _SecondaryMenuToggleItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./SecondaryMenuToggleItem */ "./layout/components/SecondaryMenuToggleItem.tsx");
1820
- /* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./styles.css */ "./layout/components/styles.css");
1821
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
1822
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__);
1823
-
1824
-
1825
-
1826
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/Layout.tsx",
1827
- _s = $RefreshSig$();
1828
-
1829
-
1830
-
1831
-
1832
-
1833
-
1834
-
1835
-
1836
-
1837
-
1838
- var d = debug__WEBPACK_IMPORTED_MODULE_2___default()('imperium.layout.components.Layout');
1839
-
1840
- /**
1841
- * Renders the main layout.
1842
- * Hides/shows/collapses things as need for mobile layout.
1843
- * Tracks state to whether the side menu is open or not.
1844
- * @param footer
1845
- * @param menubar
1846
- * @param statusbar
1847
- * @param children
1848
- * @constructor
1849
- */
1850
- function Layout(_ref) {
1851
- _s();
1852
-
1853
- var _this = this;
1854
-
1855
- var footer = _ref.footer,
1856
- primaryMenu = _ref.primaryMenu,
1857
- statusbar = _ref.statusbar,
1858
- secondaryMenu = _ref.secondaryMenu,
1859
- children = _ref.children;
1860
-
1861
- var _useLayoutState = (0,_state__WEBPACK_IMPORTED_MODULE_5__.useLayoutState)(),
1862
- isMobile = _useLayoutState.isMobile;
1863
-
1864
- var _useState = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(true),
1865
- _useState2 = _babel_runtime_helpers_slicedToArray__WEBPACK_IMPORTED_MODULE_1___default()(_useState, 2),
1866
- menuOpen = _useState2[0],
1867
- setMenuOpen = _useState2[1];
1868
-
1869
- var primaryMenuToggle = {
1870
- stickOnMobile: true,
1871
- weight: -19999,
1872
- render: function render() {
1873
- if (!isMobile) return null;
1874
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_SecondaryMenuToggleItem__WEBPACK_IMPORTED_MODULE_8__.SecondaryMenuToggleItem, {
1875
- menuOpen: menuOpen,
1876
- setMenuOpen: setMenuOpen
1877
- }, void 0, false, {
1878
- fileName: _jsxFileName,
1879
- lineNumber: 36,
1880
- columnNumber: 11
1881
- }, _this);
1882
- }
1883
- }; // Determine menubar items
1884
-
1885
- var primaryMenuItems = (0,_moveItems__WEBPACK_IMPORTED_MODULE_6__.moveItems)(isMobile ? [primaryMenuToggle].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(primaryMenu)).filter(function (v) {
1886
- return v.stickOnMobile === true;
1887
- }) : [primaryMenuToggle].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(primaryMenu))); // const pmi = mergeItems(primaryMenuItems);
1888
- // Determine sidebar items
1889
-
1890
- var secondaryMenuItems = (0,_moveItems__WEBPACK_IMPORTED_MODULE_6__.moveItems)(isMobile ? [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(secondaryMenu), [{
1891
- text: '',
1892
- menu: [primaryMenuToggle].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(primaryMenu)).filter(function (v) {
1893
- return v.stickOnMobile !== true;
1894
- })
1895
- }]) : secondaryMenu);
1896
- var secondaryMenuComp = secondaryMenuItems.length > 0 ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)("div", {
1897
- className: "imperiumSecondaryMenuWrapper",
1898
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_LayoutItemBar__WEBPACK_IMPORTED_MODULE_7__.LayoutItemBar, {
1899
- items: secondaryMenuItems,
1900
- inverted: true,
1901
- vertical: true,
1902
- className: isMobile && !menuOpen ? "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].secondaryMenu, " ").concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].secondaryMenuHidden, " imperiumSecondaryMenu") : "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].secondaryMenu, " imperiumSecondaryMenu")
1903
- }, void 0, false, {
1904
- fileName: _jsxFileName,
1905
- lineNumber: 63,
1906
- columnNumber: 5
1907
- }, this)
1908
- }, void 0, false, {
1909
- fileName: _jsxFileName,
1910
- lineNumber: 62,
1911
- columnNumber: 4
1912
- }, this) : null; // Determine footer items
1913
-
1914
- var footerItems = (0,_moveItems__WEBPACK_IMPORTED_MODULE_6__.moveItems)(footer);
1915
- var footerComp = footerItems.length > 0 ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_LayoutItemBar__WEBPACK_IMPORTED_MODULE_7__.LayoutItemBar, {
1916
- name: "footer",
1917
- items: footerItems,
1918
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].footer, " imperiumFooter"),
1919
- inverted: true,
1920
- borderless: true
1921
- }, void 0, false, {
1922
- fileName: _jsxFileName,
1923
- lineNumber: 80,
1924
- columnNumber: 4
1925
- }, this) : null; // Determine status bar items
1926
-
1927
- var statusbarItems = (0,_moveItems__WEBPACK_IMPORTED_MODULE_6__.moveItems)(statusbar);
1928
- var statusbarComp = statusbarItems.length > 0 ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_LayoutItemBar__WEBPACK_IMPORTED_MODULE_7__.LayoutItemBar, {
1929
- items: statusbarItems,
1930
- inverted: true,
1931
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].statusbar, " imperiumStatusbar")
1932
- }, void 0, false, {
1933
- fileName: _jsxFileName,
1934
- lineNumber: 86,
1935
- columnNumber: 31
1936
- }, this) : null;
1937
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)("div", {
1938
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].parent, " imperiumLayout ").concat(isMobile ? 'imperiumMobile' : 'imperiumNotMobile'),
1939
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)("div", {
1940
- className: "imperiumPrimaryMenuWrapper",
1941
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(_LayoutItemBar__WEBPACK_IMPORTED_MODULE_7__.LayoutItemBar, {
1942
- items: primaryMenuItems,
1943
- inverted: true,
1944
- borderless: true,
1945
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].menubar, " imperiumPrimaryMenu")
1946
- }, void 0, false, {
1947
- fileName: _jsxFileName,
1948
- lineNumber: 91,
1949
- columnNumber: 5
1950
- }, this), statusbarComp]
1951
- }, void 0, true, {
1952
- fileName: _jsxFileName,
1953
- lineNumber: 90,
1954
- columnNumber: 4
1955
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__.Segment, {
1956
- attached: true,
1957
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].contentWrapper, " imperiumLayoutContentWrapper"),
1958
- children: [secondaryMenuComp, /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_10__.jsxDEV)("div", {
1959
- className: "".concat(_styles_css__WEBPACK_IMPORTED_MODULE_9__["default"].content, " imperiumLayoutContent"),
1960
- children: children
1961
- }, void 0, false, {
1962
- fileName: _jsxFileName,
1963
- lineNumber: 96,
1964
- columnNumber: 5
1965
- }, this)]
1966
- }, void 0, true, {
1967
- fileName: _jsxFileName,
1968
- lineNumber: 94,
1969
- columnNumber: 4
1970
- }, this), footerComp]
1971
- }, void 0, true, {
1972
- fileName: _jsxFileName,
1973
- lineNumber: 89,
1974
- columnNumber: 3
1975
- }, this);
1976
- }
1977
-
1978
- _s(Layout, "t8ntOqgYMtaVI+om302bpzJQXE8=", false, function () {
1979
- return [_state__WEBPACK_IMPORTED_MODULE_5__.useLayoutState];
1980
- });
1981
-
1982
- _c = Layout;
1983
-
1984
- var _c;
1985
-
1986
- $RefreshReg$(_c, "Layout");
1987
-
1988
- /***/ }),
1989
-
1990
- /***/ "./layout/components/LayoutItemBar.tsx":
1991
- /*!*********************************************!*\
1992
- !*** ./layout/components/LayoutItemBar.tsx ***!
1993
- \*********************************************/
1994
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
1995
-
1996
- __webpack_require__.r(__webpack_exports__);
1997
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1998
- /* harmony export */ "LayoutItemBar": () => (/* binding */ LayoutItemBar)
1999
- /* harmony export */ });
2000
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
2001
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
2002
- /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/objectWithoutProperties */ "@babel/runtime/helpers/objectWithoutProperties");
2003
- /* harmony import */ var _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1__);
2004
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! debug */ "debug");
2005
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_2__);
2006
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
2007
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
2008
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2009
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__);
2010
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./utils.ts");
2011
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../utils */ "./layout/utils.tsx");
2012
- /* harmony import */ var _LayoutItemWrapper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./LayoutItemWrapper */ "./layout/components/LayoutItemWrapper.tsx");
2013
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2014
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);
2015
-
2016
-
2017
- var _excluded = ["items"];
2018
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/LayoutItemBar.tsx";
2019
-
2020
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2021
-
2022
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2023
-
2024
-
2025
-
2026
-
2027
-
2028
-
2029
-
2030
-
2031
- var d = debug__WEBPACK_IMPORTED_MODULE_2___default()('imperium.layout.components.LayoutItemBar');
2032
-
2033
- /**
2034
- * Renders a horizontal or vertical bar of menu items.
2035
- * @param name
2036
- * @param items
2037
- * @param rest
2038
- * @constructor
2039
- */
2040
- function LayoutItemBar(_ref) {
2041
- var _this = this;
2042
-
2043
- var items = _ref.items,
2044
- rest = _babel_runtime_helpers_objectWithoutProperties__WEBPACK_IMPORTED_MODULE_1___default()(_ref, _excluded);
2045
-
2046
- var ims = (0,_utils__WEBPACK_IMPORTED_MODULE_6__.splitPositionedItems)(items); // eslint-disable-next-line react/no-array-index-key
2047
-
2048
- var leftItems = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.sortWeightedItems)(ims.leftItems).map(function (item, index) {
2049
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_LayoutItemWrapper__WEBPACK_IMPORTED_MODULE_7__.LayoutItemWrapper, {
2050
- item: item,
2051
- vertical: rest.vertical
2052
- }, index, false, {
2053
- fileName: _jsxFileName,
2054
- lineNumber: 27,
2055
- columnNumber: 74
2056
- }, _this);
2057
- }); // eslint-disable-next-line react/no-array-index-key
2058
-
2059
- var rightItems = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.sortWeightedItems)(ims.rightItems).map(function (item, index) {
2060
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_LayoutItemWrapper__WEBPACK_IMPORTED_MODULE_7__.LayoutItemWrapper, {
2061
- item: item,
2062
- vertical: rest.vertical
2063
- }, index, false, {
2064
- fileName: _jsxFileName,
2065
- lineNumber: 29,
2066
- columnNumber: 76
2067
- }, _this);
2068
- });
2069
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__.Menu, _objectSpread(_objectSpread({}, rest), {}, {
2070
- children: [leftItems, rest.vertical ? rightItems : /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_4__.Menu.Menu, {
2071
- position: "right",
2072
- children: rightItems
2073
- }, void 0, false, {
2074
- fileName: _jsxFileName,
2075
- lineNumber: 34,
2076
- columnNumber: 34
2077
- }, this)]
2078
- }), void 0, true, {
2079
- fileName: _jsxFileName,
2080
- lineNumber: 32,
2081
- columnNumber: 3
2082
- }, this);
2083
- }
2084
- _c = LayoutItemBar;
2085
-
2086
- var _c;
2087
-
2088
- $RefreshReg$(_c, "LayoutItemBar");
2089
-
2090
- /***/ }),
2091
-
2092
- /***/ "./layout/components/LayoutItemWrapper.tsx":
2093
- /*!*************************************************!*\
2094
- !*** ./layout/components/LayoutItemWrapper.tsx ***!
2095
- \*************************************************/
2096
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2097
-
2098
- __webpack_require__.r(__webpack_exports__);
2099
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2100
- /* harmony export */ "LayoutItemWrapper": () => (/* binding */ LayoutItemWrapper)
2101
- /* harmony export */ });
2102
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
2103
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
2104
- /* harmony import */ var mingo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! mingo */ "mingo");
2105
- /* harmony import */ var mingo__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(mingo__WEBPACK_IMPORTED_MODULE_1__);
2106
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ "react");
2107
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);
2108
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2109
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
2110
- /* harmony import */ var _hooks_useBuildData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../hooks/useBuildData */ "./hooks/useBuildData.ts");
2111
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../utils */ "./utils.ts");
2112
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types */ "./layout/types.ts");
2113
- /* harmony import */ var _CustomLayoutItemComponent__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./CustomLayoutItemComponent */ "./layout/components/CustomLayoutItemComponent.tsx");
2114
- /* harmony import */ var _DropdownItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./DropdownItem */ "./layout/components/DropdownItem.tsx");
2115
- /* harmony import */ var _MenuItem__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./MenuItem */ "./layout/components/MenuItem.tsx");
2116
- /* harmony import */ var _PlainItem__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./PlainItem */ "./layout/components/PlainItem.tsx");
2117
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2118
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__);
2119
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/LayoutItemWrapper.tsx",
2120
- _s = $RefreshSig$();
2121
-
2122
-
2123
-
2124
-
2125
-
2126
-
2127
-
2128
-
2129
-
2130
-
2131
-
2132
-
2133
-
2134
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.components.LayoutItemWrapper');
2135
-
2136
- /**
2137
- * Renders any type of Item. Gathers state, route and other data and checks for visibility.
2138
- * @param item
2139
- * @param as
2140
- * @param vertical
2141
- * @param parentData
2142
- * @constructor
2143
- */
2144
- function LayoutItemWrapper(_ref) {
2145
- _s();
2146
-
2147
- var _this = this;
2148
-
2149
- var item = _ref.item,
2150
- as = _ref.as,
2151
- vertical = _ref.vertical,
2152
- parentData = _ref.data;
2153
- var data = (0,_hooks_useBuildData__WEBPACK_IMPORTED_MODULE_4__.useBuildData)({
2154
- stateSelectorHook: item.stateSelectorHook,
2155
- permissionSelectorHook: item.permissionSelectorHook,
2156
- routeItem: item,
2157
- data: parentData
2158
- }); // Check if visible
2159
-
2160
- if (item.visible) {
2161
- if (typeof item.visible === 'function') {
2162
- if (!item.visible(data)) return null;
2163
- } else {
2164
- var q = new mingo__WEBPACK_IMPORTED_MODULE_1__.Query(item.visible || {});
2165
- if (!q.test(data)) return null;
2166
- }
2167
- }
2168
-
2169
- if ((0,_types__WEBPACK_IMPORTED_MODULE_6__.isCustomLayoutItem)(item)) {
2170
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_CustomLayoutItemComponent__WEBPACK_IMPORTED_MODULE_7__.CustomLayoutItemComponent, {
2171
- item: item,
2172
- data: data
2173
- }, void 0, false, {
2174
- fileName: _jsxFileName,
2175
- lineNumber: 51,
2176
- columnNumber: 10
2177
- }, this);
2178
- }
2179
-
2180
- if ((0,_types__WEBPACK_IMPORTED_MODULE_6__.isDropdownLayoutItem)(item)) {
2181
- // eslint-disable-next-line react/no-array-index-key
2182
- var children = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.sortWeightedItems)(item.dropdown).map(function (v, index) {
2183
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(LayoutItemWrapper, {
2184
- item: v,
2185
- as: semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Dropdown.Item,
2186
- data: data
2187
- }, index, false, {
2188
- fileName: _jsxFileName,
2189
- lineNumber: 55,
2190
- columnNumber: 71
2191
- }, _this);
2192
- });
2193
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_DropdownItem__WEBPACK_IMPORTED_MODULE_8__.DropdownItem, {
2194
- item: item,
2195
- children: children,
2196
- vertical: vertical,
2197
- data: data
2198
- }, void 0, false, {
2199
- fileName: _jsxFileName,
2200
- lineNumber: 56,
2201
- columnNumber: 10
2202
- }, this);
2203
- }
2204
-
2205
- if ((0,_types__WEBPACK_IMPORTED_MODULE_6__.isMenuLayoutItem)(item)) {
2206
- // eslint-disable-next-line react/no-array-index-key
2207
- var _children = (0,_utils__WEBPACK_IMPORTED_MODULE_5__.sortWeightedItems)(item.menu).map(function (v, index) {
2208
- return (
2209
- /*#__PURE__*/
2210
- // eslint-disable-next-line react/no-array-index-key
2211
- (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(LayoutItemWrapper, {
2212
- item: v,
2213
- as: semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Dropdown.Item,
2214
- vertical: vertical,
2215
- data: data
2216
- }, index, false, {
2217
- fileName: _jsxFileName,
2218
- lineNumber: 62,
2219
- columnNumber: 4
2220
- }, _this)
2221
- );
2222
- });
2223
-
2224
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_MenuItem__WEBPACK_IMPORTED_MODULE_9__.MenuItem, {
2225
- item: item,
2226
- children: _children
2227
- }, void 0, false, {
2228
- fileName: _jsxFileName,
2229
- lineNumber: 64,
2230
- columnNumber: 10
2231
- }, this);
2232
- }
2233
-
2234
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_11__.jsxDEV)(_PlainItem__WEBPACK_IMPORTED_MODULE_10__.PlainItem, {
2235
- item: item,
2236
- data: data,
2237
- as: as
2238
- }, void 0, false, {
2239
- fileName: _jsxFileName,
2240
- lineNumber: 66,
2241
- columnNumber: 9
2242
- }, this);
2243
- }
2244
-
2245
- _s(LayoutItemWrapper, "63X82nRHXEfE2kFjkn68lcgX7ho=", false, function () {
2246
- return [_hooks_useBuildData__WEBPACK_IMPORTED_MODULE_4__.useBuildData];
2247
- });
2248
-
2249
- _c = LayoutItemWrapper;
2250
-
2251
- var _c;
2252
-
2253
- $RefreshReg$(_c, "LayoutItemWrapper");
2254
-
2255
- /***/ }),
2256
-
2257
- /***/ "./layout/components/MenuItem.tsx":
2258
- /*!****************************************!*\
2259
- !*** ./layout/components/MenuItem.tsx ***!
2260
- \****************************************/
2261
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2262
-
2263
- __webpack_require__.r(__webpack_exports__);
2264
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2265
- /* harmony export */ "MenuItem": () => (/* binding */ MenuItem)
2266
- /* harmony export */ });
2267
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2268
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2269
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2270
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__);
2271
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2272
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__);
2273
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/MenuItem.tsx";
2274
-
2275
-
2276
-
2277
- function MenuItem(_ref) {
2278
- var item = _ref.item,
2279
- children = _ref.children;
2280
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Menu.Item, {
2281
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Menu.Header, {
2282
- children: item.text
2283
- }, void 0, false, {
2284
- fileName: _jsxFileName,
2285
- lineNumber: 13,
2286
- columnNumber: 4
2287
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Menu.Menu, {
2288
- compact: "",
2289
- children: children
2290
- }, void 0, false, {
2291
- fileName: _jsxFileName,
2292
- lineNumber: 14,
2293
- columnNumber: 4
2294
- }, this)]
2295
- }, void 0, true, {
2296
- fileName: _jsxFileName,
2297
- lineNumber: 12,
2298
- columnNumber: 3
2299
- }, this);
2300
- }
2301
- _c = MenuItem;
2302
-
2303
- var _c;
2304
-
2305
- $RefreshReg$(_c, "MenuItem");
2306
-
2307
- /***/ }),
2308
-
2309
- /***/ "./layout/components/PlainItem.tsx":
2310
- /*!*****************************************!*\
2311
- !*** ./layout/components/PlainItem.tsx ***!
2312
- \*****************************************/
2313
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2314
-
2315
- __webpack_require__.r(__webpack_exports__);
2316
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2317
- /* harmony export */ "PlainItem": () => (/* binding */ PlainItem)
2318
- /* harmony export */ });
2319
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
2320
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
2321
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2322
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2323
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2324
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__);
2325
- /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ "./layout/utils.tsx");
2326
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2327
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__);
2328
-
2329
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/PlainItem.tsx";
2330
-
2331
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2332
-
2333
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2334
-
2335
-
2336
-
2337
-
2338
-
2339
- function PlainItem(_ref) {
2340
- var item = _ref.item,
2341
- data = _ref.data,
2342
- as = _ref.as;
2343
- var linkParams = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.linkParameters)(item, data);
2344
- var ItemX = as || semantic_ui_react__WEBPACK_IMPORTED_MODULE_2__.Menu.Item;
2345
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_4__.jsxDEV)(ItemX, _objectSpread(_objectSpread({}, linkParams), {}, {
2346
- children: [(0,_utils__WEBPACK_IMPORTED_MODULE_3__.getIcon)(item, data), (0,_utils__WEBPACK_IMPORTED_MODULE_3__.getText)(item, data)]
2347
- }), void 0, true, {
2348
- fileName: _jsxFileName,
2349
- lineNumber: 19,
2350
- columnNumber: 3
2351
- }, this);
2352
- }
2353
- _c = PlainItem;
2354
-
2355
- var _c;
2356
-
2357
- $RefreshReg$(_c, "PlainItem");
2358
-
2359
- /***/ }),
2360
-
2361
- /***/ "./layout/components/SecondaryMenuToggleItem.tsx":
2362
- /*!*******************************************************!*\
2363
- !*** ./layout/components/SecondaryMenuToggleItem.tsx ***!
2364
- \*******************************************************/
2365
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2366
-
2367
- __webpack_require__.r(__webpack_exports__);
2368
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2369
- /* harmony export */ "SecondaryMenuToggleItem": () => (/* binding */ SecondaryMenuToggleItem)
2370
- /* harmony export */ });
2371
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");
2372
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
2373
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2374
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__);
2375
- /* harmony import */ var _styles_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./styles.css */ "./layout/components/styles.css");
2376
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2377
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__);
2378
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/components/SecondaryMenuToggleItem.tsx";
2379
-
2380
-
2381
-
2382
-
2383
- function SecondaryMenuToggleItem(_ref) {
2384
- var menuOpen = _ref.menuOpen,
2385
- setMenuOpen = _ref.setMenuOpen;
2386
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Menu.Item, {
2387
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_3__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_1__.Icon, {
2388
- className: menuOpen ? _styles_css__WEBPACK_IMPORTED_MODULE_2__["default"].iconRotated : _styles_css__WEBPACK_IMPORTED_MODULE_2__["default"].icon,
2389
- name: menuOpen ? 'close' : 'sidebar',
2390
- onClick: function onClick() {
2391
- setMenuOpen(!menuOpen);
2392
- }
2393
- }, void 0, false, {
2394
- fileName: _jsxFileName,
2395
- lineNumber: 13,
2396
- columnNumber: 4
2397
- }, this)
2398
- }, void 0, false, {
2399
- fileName: _jsxFileName,
2400
- lineNumber: 12,
2401
- columnNumber: 3
2402
- }, this);
2403
- }
2404
- _c = SecondaryMenuToggleItem;
2405
-
2406
- var _c;
2407
-
2408
- $RefreshReg$(_c, "SecondaryMenuToggleItem");
2409
-
2410
- /***/ }),
2411
-
2412
- /***/ "./layout/hooks/useMobileLayout.ts":
2413
- /*!*****************************************!*\
2414
- !*** ./layout/hooks/useMobileLayout.ts ***!
2415
- \*****************************************/
2416
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2417
-
2418
- __webpack_require__.r(__webpack_exports__);
2419
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2420
- /* harmony export */ "useMobileLayout": () => (/* binding */ useMobileLayout)
2421
- /* harmony export */ });
2422
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! debug */ "debug");
2423
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_0__);
2424
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2425
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2426
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-redux */ "react-redux");
2427
- /* harmony import */ var react_redux__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_redux__WEBPACK_IMPORTED_MODULE_2__);
2428
- /* harmony import */ var react_responsive__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react-responsive */ "react-responsive");
2429
- /* harmony import */ var react_responsive__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react_responsive__WEBPACK_IMPORTED_MODULE_3__);
2430
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../state */ "./state.ts");
2431
- var _s = $RefreshSig$();
2432
-
2433
-
2434
-
2435
-
2436
-
2437
-
2438
- var d = debug__WEBPACK_IMPORTED_MODULE_0___default()('imperium.layout.hooks.useMobileLayout');
2439
- function useMobileLayout() {
2440
- _s();
2441
-
2442
- var dispatch = (0,react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch)();
2443
-
2444
- var _useLayoutState = (0,_state__WEBPACK_IMPORTED_MODULE_4__.useLayoutState)(),
2445
- isMobile = _useLayoutState.isMobile;
2446
-
2447
- var isMobileX = (0,react_responsive__WEBPACK_IMPORTED_MODULE_3__.useMediaQuery)({
2448
- query: '(max-width: 900px)'
2449
- });
2450
- (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
2451
- if (isMobile !== isMobileX) {
2452
- d("Media query change detected: ".concat(isMobile, " -> ").concat(isMobileX));
2453
- dispatch(_state__WEBPACK_IMPORTED_MODULE_4__.actions.setMobile(isMobileX));
2454
- }
2455
- }, [dispatch, isMobile, isMobileX]);
2456
- }
2457
-
2458
- _s(useMobileLayout, "qsguf0hDkZ0k/kSUZF7YdTswnNU=", false, function () {
2459
- return [react_redux__WEBPACK_IMPORTED_MODULE_2__.useDispatch, _state__WEBPACK_IMPORTED_MODULE_4__.useLayoutState, react_responsive__WEBPACK_IMPORTED_MODULE_3__.useMediaQuery];
2460
- });
2461
-
2462
- /***/ }),
2463
-
2464
- /***/ "./layout/moveItems.ts":
2465
- /*!*****************************!*\
2466
- !*** ./layout/moveItems.ts ***!
2467
- \*****************************/
2468
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2469
-
2470
- __webpack_require__.r(__webpack_exports__);
2471
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2472
- /* harmony export */ "moveItems": () => (/* binding */ moveItems)
2473
- /* harmony export */ });
2474
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
2475
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
2476
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
2477
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__);
2478
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! debug */ "debug");
2479
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_2__);
2480
- /* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash/groupBy */ "lodash/groupBy");
2481
- /* harmony import */ var lodash_groupBy__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash_groupBy__WEBPACK_IMPORTED_MODULE_3__);
2482
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./types */ "./layout/types.ts");
2483
-
2484
-
2485
-
2486
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2487
-
2488
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2489
-
2490
-
2491
-
2492
-
2493
- var d = debug__WEBPACK_IMPORTED_MODULE_2___default()('imperium.layout.moveItems');
2494
-
2495
- function pullItems(items) {
2496
- var pulled = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
2497
- return items.reduce(function (memo, item) {
2498
- if ((0,_types__WEBPACK_IMPORTED_MODULE_4__.isDropdownLayoutItem)(item)) {
2499
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [_objectSpread(_objectSpread({}, item), {}, {
2500
- dropdown: pullItems(item.dropdown, pulled)
2501
- })]);
2502
- }
2503
-
2504
- if ((0,_types__WEBPACK_IMPORTED_MODULE_4__.isMenuLayoutItem)(item)) {
2505
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [_objectSpread(_objectSpread({}, item), {}, {
2506
- menu: pullItems(item.menu, pulled)
2507
- })]);
2508
- }
2509
-
2510
- if (!item.moveToKey) {
2511
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [item]);
2512
- }
2513
-
2514
- pulled.push(item);
2515
- return memo;
2516
- }, []);
2517
- }
2518
-
2519
- function addItems(items, pulled) {
2520
- return items.reduce(function (memo, item) {
2521
- if ((0,_types__WEBPACK_IMPORTED_MODULE_4__.isDropdownLayoutItem)(item)) {
2522
- var newItems = item.key && pulled[item.key] ? pulled[item.key] : [];
2523
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [_objectSpread(_objectSpread({}, item), {}, {
2524
- dropdown: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(addItems(item.dropdown, pulled)), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(newItems))
2525
- })]);
2526
- }
2527
-
2528
- if ((0,_types__WEBPACK_IMPORTED_MODULE_4__.isMenuLayoutItem)(item) && item.key) {
2529
- var _newItems = item.key && pulled[item.key] ? pulled[item.key] : [];
2530
-
2531
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [_objectSpread(_objectSpread({}, item), {}, {
2532
- menu: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(addItems(item.menu, pulled)), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(_newItems))
2533
- })]);
2534
- }
2535
-
2536
- return [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo), [item]);
2537
- }, []);
2538
- }
2539
-
2540
- function moveItems(items) {
2541
- var pulled = [];
2542
- var itemsMinusPulled = pullItems(items, pulled);
2543
- return addItems(itemsMinusPulled, lodash_groupBy__WEBPACK_IMPORTED_MODULE_3___default()(pulled, 'moveToKey'));
2544
- }
2545
-
2546
- /***/ }),
2547
-
2548
- /***/ "./layout/types.ts":
2549
- /*!*************************!*\
2550
- !*** ./layout/types.ts ***!
2551
- \*************************/
2552
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2553
-
2554
- __webpack_require__.r(__webpack_exports__);
2555
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2556
- /* harmony export */ "isCustomLayoutItem": () => (/* binding */ isCustomLayoutItem),
2557
- /* harmony export */ "isDropdownLayoutItem": () => (/* binding */ isDropdownLayoutItem),
2558
- /* harmony export */ "isMenuLayoutItem": () => (/* binding */ isMenuLayoutItem)
2559
- /* harmony export */ });
2560
- /**
2561
- * Describes a basic weighted, possibly visible item
2562
- */
2563
-
2564
- /**
2565
- * Describes a menu that displays a dropdown list of items
2566
- */
2567
-
2568
- /**
2569
- * Describes a menu that displays a sub menu (not a dropdown list)
2570
- */
2571
-
2572
- /**
2573
- * Describes a horizontal menu item which is either a route item or dropdown menu
2574
- */
2575
- function isCustomLayoutItem(value) {
2576
- return !!value.render;
2577
- }
2578
- function isDropdownLayoutItem(value) {
2579
- return !!value.dropdown;
2580
- }
2581
- function isMenuLayoutItem(value) {
2582
- return !!value.menu;
2583
- }
2584
-
2585
- /***/ }),
2586
-
2587
- /***/ "./layout/utils.tsx":
2588
- /*!**************************!*\
2589
- !*** ./layout/utils.tsx ***!
2590
- \**************************/
2591
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2592
-
2593
- __webpack_require__.r(__webpack_exports__);
2594
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2595
- /* harmony export */ "splitPositionedItems": () => (/* binding */ splitPositionedItems),
2596
- /* harmony export */ "linkParameters": () => (/* binding */ linkParameters),
2597
- /* harmony export */ "getText": () => (/* binding */ getText),
2598
- /* harmony export */ "getIcon": () => (/* binding */ getIcon)
2599
- /* harmony export */ });
2600
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
2601
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0__);
2602
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");
2603
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);
2604
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react-router-dom */ "react-router-dom");
2605
- /* harmony import */ var react_router_dom__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react_router_dom__WEBPACK_IMPORTED_MODULE_2__);
2606
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! semantic-ui-react */ "semantic-ui-react");
2607
- /* harmony import */ var semantic_ui_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__);
2608
- /* harmony import */ var _commonItems__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../commonItems */ "./commonItems.ts");
2609
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2610
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__);
2611
-
2612
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/utils.tsx";
2613
-
2614
-
2615
-
2616
-
2617
-
2618
-
2619
- /**
2620
- * Splits positioned items into left and right arrays (if horizontal)
2621
- * @param items
2622
- */
2623
- function splitPositionedItems(items) {
2624
- return items.reduce(function (memo, v) {
2625
- if ((0,_commonItems__WEBPACK_IMPORTED_MODULE_4__.isHorizontalPositionedItem)(v) && v.position === 'right') {
2626
- return {
2627
- leftItems: memo.leftItems,
2628
- rightItems: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(memo.rightItems), [v])
2629
- };
2630
- }
2631
-
2632
- return {
2633
- leftItems: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_0___default()(memo.leftItems), [v]),
2634
- rightItems: memo.rightItems
2635
- };
2636
- }, {
2637
- leftItems: [],
2638
- rightItems: []
2639
- });
2640
- }
2641
- function linkParameters(item, data) {
2642
- return item.to ? {
2643
- as: react_router_dom__WEBPACK_IMPORTED_MODULE_2__.Link,
2644
- active: data.active,
2645
- to: typeof item.to === 'function' ? item.to(data) : item.to
2646
- } : {};
2647
- }
2648
- function getText(item, data) {
2649
- return typeof item.text === 'function' ? item.text(data) : item.text;
2650
- }
2651
- function getIcon(item, data) {
2652
- // Generate the icon component, if it exists
2653
- var iconName;
2654
-
2655
- if (item.icon) {
2656
- iconName = typeof item.icon === 'function' ? item.icon(data) : item.icon;
2657
- }
2658
-
2659
- return item.icon ? /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(semantic_ui_react__WEBPACK_IMPORTED_MODULE_3__.Icon, {
2660
- name: iconName
2661
- }, void 0, false, {
2662
- fileName: _jsxFileName,
2663
- lineNumber: 51,
2664
- columnNumber: 21
2665
- }, this) : null;
2666
- }
2667
-
2668
- /***/ }),
2669
-
2670
- /***/ "./layout/withLayout.tsx":
2671
- /*!*******************************!*\
2672
- !*** ./layout/withLayout.tsx ***!
2673
- \*******************************/
2674
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2675
-
2676
- __webpack_require__.r(__webpack_exports__);
2677
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2678
- /* harmony export */ "withLayout": () => (/* binding */ withLayout)
2679
- /* harmony export */ });
2680
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
2681
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
2682
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ "@babel/runtime/helpers/toConsumableArray");
2683
- /* harmony import */ var _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1__);
2684
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! debug */ "debug");
2685
- /* harmony import */ var debug__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(debug__WEBPACK_IMPORTED_MODULE_2__);
2686
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ "react");
2687
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);
2688
- /* harmony import */ var _datahooks_DataHooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../datahooks/DataHooks */ "./datahooks/DataHooks.tsx");
2689
- /* harmony import */ var _datahooks_PermissionHooks__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../datahooks/PermissionHooks */ "./datahooks/PermissionHooks.tsx");
2690
- /* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../types */ "./types.ts");
2691
- /* harmony import */ var _components_Layout__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./components/Layout */ "./layout/components/Layout.tsx");
2692
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! react/jsx-dev-runtime */ "react/jsx-dev-runtime");
2693
- /* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__);
2694
-
2695
-
2696
- var _jsxFileName = "/home/mike/dev/imperium/packages/layout/src/layout/withLayout.tsx";
2697
-
2698
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2699
-
2700
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2701
-
2702
-
2703
-
2704
-
2705
-
2706
-
2707
-
2708
-
2709
-
2710
- var d = debug__WEBPACK_IMPORTED_MODULE_2___default()('imperium.layout.withLayout');
2711
- var initialLayoutModuleData = {
2712
- dataHooks: [],
2713
- permissionSelectorHooks: [],
2714
- primaryMenu: [],
2715
- statusbar: [],
2716
- secondaryMenu: [],
2717
- footer: []
2718
- };
2719
- function withLayout(client) {
2720
- var layoutModuleData = client.modules.reduce(function (memo, module) {
2721
- if ((0,_types__WEBPACK_IMPORTED_MODULE_6__.isImperiumLayoutClientModule)(module)) {
2722
- return {
2723
- dataHooks: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.dataHooks || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.dataHooks || [])),
2724
- permissionSelectorHooks: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.permissionSelectorHooks || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.permissionSelectorHooks || [])),
2725
- primaryMenu: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.primaryMenu || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.primaryMenu || [])),
2726
- statusbar: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.statusbar || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.statusbar || [])),
2727
- secondaryMenu: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.secondaryMenu || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.secondaryMenu || [])),
2728
- footer: [].concat(_babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(memo.footer || []), _babel_runtime_helpers_toConsumableArray__WEBPACK_IMPORTED_MODULE_1___default()(module.layout.footer || []))
2729
- };
2730
- }
2731
-
2732
- return memo;
2733
- }, initialLayoutModuleData);
2734
- d('Layout items processed', layoutModuleData); // eslint-disable-next-line @typescript-eslint/no-explicit-any
2735
-
2736
- return function layoutHoc(Wrapped) {
2737
- var displayName = Wrapped.displayName || Wrapped.name || '';
2738
-
2739
- function WithLayout(props) {
2740
- return /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.Fragment, {
2741
- children: [/*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_components_Layout__WEBPACK_IMPORTED_MODULE_7__.Layout, _objectSpread(_objectSpread({}, layoutModuleData), {}, {
2742
- children: /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(Wrapped, _objectSpread(_objectSpread({}, props), {}, {
2743
- layout: layoutModuleData
2744
- }), void 0, false, {
2745
- fileName: _jsxFileName,
2746
- lineNumber: 45,
2747
- columnNumber: 7
2748
- }, this)
2749
- }), void 0, false, {
2750
- fileName: _jsxFileName,
2751
- lineNumber: 44,
2752
- columnNumber: 6
2753
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_datahooks_DataHooks__WEBPACK_IMPORTED_MODULE_4__.DataHooks, {
2754
- dataHooks: layoutModuleData.dataHooks
2755
- }, void 0, false, {
2756
- fileName: _jsxFileName,
2757
- lineNumber: 47,
2758
- columnNumber: 6
2759
- }, this), /*#__PURE__*/(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_8__.jsxDEV)(_datahooks_PermissionHooks__WEBPACK_IMPORTED_MODULE_5__.PermissionHooks, {
2760
- permissionHooks: layoutModuleData.permissionSelectorHooks
2761
- }, void 0, false, {
2762
- fileName: _jsxFileName,
2763
- lineNumber: 48,
2764
- columnNumber: 6
2765
- }, this)]
2766
- }, void 0, true);
2767
- }
2768
-
2769
- WithLayout.displayName = "withLayout(".concat(displayName, ")");
2770
- return WithLayout;
2771
- };
2772
- }
2773
-
2774
- /***/ }),
2775
-
2776
- /***/ "./state.ts":
2777
- /*!******************!*\
2778
- !*** ./state.ts ***!
2779
- \******************/
2780
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2781
-
2782
- __webpack_require__.r(__webpack_exports__);
2783
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2784
- /* harmony export */ "state": () => (/* binding */ state),
2785
- /* harmony export */ "useLayoutState": () => (/* binding */ useLayoutState),
2786
- /* harmony export */ "actions": () => (/* binding */ actions)
2787
- /* harmony export */ });
2788
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @babel/runtime/helpers/defineProperty */ "@babel/runtime/helpers/defineProperty");
2789
- /* harmony import */ var _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0__);
2790
- /* harmony import */ var _imperium_state__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @imperium/state */ "@imperium/state");
2791
- /* harmony import */ var _imperium_state__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_imperium_state__WEBPACK_IMPORTED_MODULE_1__);
2792
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @reduxjs/toolkit */ "@reduxjs/toolkit");
2793
- /* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_2__);
2794
-
2795
-
2796
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
2797
-
2798
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _babel_runtime_helpers_defineProperty__WEBPACK_IMPORTED_MODULE_0___default()(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
2799
-
2800
- /* eslint-disable no-param-reassign */
2801
-
2802
-
2803
- var state = (0,_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_2__.createSlice)({
2804
- name: 'imperiumLayout',
2805
- initialState: {
2806
- isMobile: false,
2807
- params: {},
2808
- permissions: {}
2809
- },
2810
- reducers: {
2811
- setMobile: function setMobile(st, action) {
2812
- return _objectSpread(_objectSpread({}, st), {}, {
2813
- isMobile: action.payload
2814
- });
2815
- },
2816
- setParams: function setParams(st, action) {
2817
- st.params = action.payload;
2818
- },
2819
- setPermission: function setPermission(st, action) {
2820
- st.permissions[action.payload.permission] = action.payload.result;
2821
- }
2822
- }
2823
- });
2824
- var useLayoutState = (0,_imperium_state__WEBPACK_IMPORTED_MODULE_1__.createSliceHook)(state);
2825
- var actions = state.actions;
2826
-
2827
-
2828
- /***/ }),
2829
-
2830
- /***/ "./types.ts":
2831
- /*!******************!*\
2832
- !*** ./types.ts ***!
2833
- \******************/
2834
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2835
-
2836
- __webpack_require__.r(__webpack_exports__);
2837
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2838
- /* harmony export */ "isImperiumLayoutClientModule": () => (/* binding */ isImperiumLayoutClientModule)
2839
- /* harmony export */ });
2840
- /**
2841
- * A hook that selects from redux state.
2842
- */
2843
-
2844
- /**
2845
- * The visibility query can either be a mingo query or a function that returns a boolean. The data is an object with the router path merged with any state selector hook data.
2846
- */
2847
- function isImperiumLayoutClientModule(module) {
2848
- var layoutModule = module;
2849
- return layoutModule.layout !== undefined;
2850
- }
2851
-
2852
- /***/ }),
2853
-
2854
- /***/ "./utils.ts":
2855
- /*!******************!*\
2856
- !*** ./utils.ts ***!
2857
- \******************/
2858
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2859
-
2860
- __webpack_require__.r(__webpack_exports__);
2861
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2862
- /* harmony export */ "sortWeightedItems": () => (/* binding */ sortWeightedItems)
2863
- /* harmony export */ });
2864
- /* harmony import */ var lodash_memoize__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/memoize */ "lodash/memoize");
2865
- /* harmony import */ var lodash_memoize__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_memoize__WEBPACK_IMPORTED_MODULE_0__);
2866
- /* harmony import */ var lodash_sortBy__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/sortBy */ "lodash/sortBy");
2867
- /* harmony import */ var lodash_sortBy__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_sortBy__WEBPACK_IMPORTED_MODULE_1__);
2868
-
2869
-
2870
-
2871
- /**
2872
- * Sorts weighted items
2873
- */
2874
- var sortWeightedItems = lodash_memoize__WEBPACK_IMPORTED_MODULE_0___default()(function sortWeightedItemsImpl(items) {
2875
- return lodash_sortBy__WEBPACK_IMPORTED_MODULE_1___default()(items, function (v) {
2876
- return v.weight || 0;
2877
- });
2878
- });
2879
-
2880
- /***/ }),
2881
-
2882
- /***/ "./content/components/styles.css":
2883
- /*!***************************************!*\
2884
- !*** ./content/components/styles.css ***!
2885
- \***************************************/
2886
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2887
-
2888
- __webpack_require__.r(__webpack_exports__);
2889
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2890
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2891
- /* harmony export */ });
2892
- /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
2893
- /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
2894
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../../../node_modules/style-loader/dist/runtime/styleDomAPI.js");
2895
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
2896
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../../../node_modules/style-loader/dist/runtime/insertBySelector.js");
2897
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
2898
- /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
2899
- /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
2900
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../../../node_modules/style-loader/dist/runtime/insertStyleElement.js");
2901
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
2902
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../../../node_modules/style-loader/dist/runtime/styleTagTransform.js");
2903
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
2904
- /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css */ "../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./content/components/styles.css");
2905
-
2906
-
2907
-
2908
-
2909
-
2910
-
2911
-
2912
-
2913
-
2914
-
2915
-
2916
- var options = {};
2917
-
2918
- options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
2919
- options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
2920
-
2921
- options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
2922
-
2923
- options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
2924
- options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
2925
-
2926
- var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
2927
-
2928
-
2929
-
2930
-
2931
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
2932
-
2933
-
2934
- /***/ }),
2935
-
2936
- /***/ "./layout/components/styles.css":
2937
- /*!**************************************!*\
2938
- !*** ./layout/components/styles.css ***!
2939
- \**************************************/
2940
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
2941
-
2942
- __webpack_require__.r(__webpack_exports__);
2943
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
2944
- /* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
2945
- /* harmony export */ });
2946
- /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
2947
- /* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__);
2948
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js */ "../../../node_modules/style-loader/dist/runtime/styleDomAPI.js");
2949
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1__);
2950
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js */ "../../../node_modules/style-loader/dist/runtime/insertBySelector.js");
2951
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2__);
2952
- /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js */ "../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js");
2953
- /* harmony import */ var _node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3__);
2954
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js */ "../../../node_modules/style-loader/dist/runtime/insertStyleElement.js");
2955
- /* harmony import */ var _node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4__);
2956
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! !../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js */ "../../../node_modules/style-loader/dist/runtime/styleTagTransform.js");
2957
- /* harmony import */ var _node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5__);
2958
- /* harmony import */ var _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! !!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./styles.css */ "../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./layout/components/styles.css");
2959
-
2960
-
2961
-
2962
-
2963
-
2964
-
2965
-
2966
-
2967
-
2968
-
2969
-
2970
- var options = {};
2971
-
2972
- options.styleTagTransform = (_node_modules_style_loader_dist_runtime_styleTagTransform_js__WEBPACK_IMPORTED_MODULE_5___default());
2973
- options.setAttributes = (_node_modules_style_loader_dist_runtime_setAttributesWithoutAttributes_js__WEBPACK_IMPORTED_MODULE_3___default());
2974
-
2975
- options.insert = _node_modules_style_loader_dist_runtime_insertBySelector_js__WEBPACK_IMPORTED_MODULE_2___default().bind(null, "head");
2976
-
2977
- options.domAPI = (_node_modules_style_loader_dist_runtime_styleDomAPI_js__WEBPACK_IMPORTED_MODULE_1___default());
2978
- options.insertStyleElement = (_node_modules_style_loader_dist_runtime_insertStyleElement_js__WEBPACK_IMPORTED_MODULE_4___default());
2979
-
2980
- var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"], options);
2981
-
2982
-
2983
-
2984
-
2985
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"] && _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals ? _node_modules_css_loader_dist_cjs_js_ruleSet_1_rules_2_use_2_styles_css__WEBPACK_IMPORTED_MODULE_6__["default"].locals : undefined);
2986
-
2987
-
2988
- /***/ }),
2989
-
2990
- /***/ "../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js":
2991
- /*!***********************************************************************************!*\
2992
- !*** ../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
2993
- \***********************************************************************************/
2994
- /***/ ((module) => {
2995
-
2996
-
2997
-
2998
- var stylesInDOM = [];
2999
-
3000
- function getIndexByIdentifier(identifier) {
3001
- var result = -1;
3002
-
3003
- for (var i = 0; i < stylesInDOM.length; i++) {
3004
- if (stylesInDOM[i].identifier === identifier) {
3005
- result = i;
3006
- break;
3007
- }
3008
- }
3009
-
3010
- return result;
3011
- }
3012
-
3013
- function modulesToDom(list, options) {
3014
- var idCountMap = {};
3015
- var identifiers = [];
3016
-
3017
- for (var i = 0; i < list.length; i++) {
3018
- var item = list[i];
3019
- var id = options.base ? item[0] + options.base : item[0];
3020
- var count = idCountMap[id] || 0;
3021
- var identifier = "".concat(id, " ").concat(count);
3022
- idCountMap[id] = count + 1;
3023
- var indexByIdentifier = getIndexByIdentifier(identifier);
3024
- var obj = {
3025
- css: item[1],
3026
- media: item[2],
3027
- sourceMap: item[3],
3028
- supports: item[4],
3029
- layer: item[5]
3030
- };
3031
-
3032
- if (indexByIdentifier !== -1) {
3033
- stylesInDOM[indexByIdentifier].references++;
3034
- stylesInDOM[indexByIdentifier].updater(obj);
3035
- } else {
3036
- var updater = addElementStyle(obj, options);
3037
- options.byIndex = i;
3038
- stylesInDOM.splice(i, 0, {
3039
- identifier: identifier,
3040
- updater: updater,
3041
- references: 1
3042
- });
3043
- }
3044
-
3045
- identifiers.push(identifier);
3046
- }
3047
-
3048
- return identifiers;
3049
- }
3050
-
3051
- function addElementStyle(obj, options) {
3052
- var api = options.domAPI(options);
3053
- api.update(obj);
3054
-
3055
- var updater = function updater(newObj) {
3056
- if (newObj) {
3057
- if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
3058
- return;
3059
- }
3060
-
3061
- api.update(obj = newObj);
3062
- } else {
3063
- api.remove();
3064
- }
3065
- };
3066
-
3067
- return updater;
3068
- }
3069
-
3070
- module.exports = function (list, options) {
3071
- options = options || {};
3072
- list = list || [];
3073
- var lastIdentifiers = modulesToDom(list, options);
3074
- return function update(newList) {
3075
- newList = newList || [];
3076
-
3077
- for (var i = 0; i < lastIdentifiers.length; i++) {
3078
- var identifier = lastIdentifiers[i];
3079
- var index = getIndexByIdentifier(identifier);
3080
- stylesInDOM[index].references--;
3081
- }
3082
-
3083
- var newLastIdentifiers = modulesToDom(newList, options);
3084
-
3085
- for (var _i = 0; _i < lastIdentifiers.length; _i++) {
3086
- var _identifier = lastIdentifiers[_i];
3087
-
3088
- var _index = getIndexByIdentifier(_identifier);
3089
-
3090
- if (stylesInDOM[_index].references === 0) {
3091
- stylesInDOM[_index].updater();
3092
-
3093
- stylesInDOM.splice(_index, 1);
3094
- }
3095
- }
3096
-
3097
- lastIdentifiers = newLastIdentifiers;
3098
- };
3099
- };
3100
-
3101
- /***/ }),
3102
-
3103
- /***/ "../../../node_modules/style-loader/dist/runtime/insertBySelector.js":
3104
- /*!***************************************************************************!*\
3105
- !*** ../../../node_modules/style-loader/dist/runtime/insertBySelector.js ***!
3106
- \***************************************************************************/
3107
- /***/ ((module) => {
3108
-
3109
-
3110
-
3111
- var memo = {};
3112
- /* istanbul ignore next */
3113
-
3114
- function getTarget(target) {
3115
- if (typeof memo[target] === "undefined") {
3116
- var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself
3117
-
3118
- if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
3119
- try {
3120
- // This will throw an exception if access to iframe is blocked
3121
- // due to cross-origin restrictions
3122
- styleTarget = styleTarget.contentDocument.head;
3123
- } catch (e) {
3124
- // istanbul ignore next
3125
- styleTarget = null;
3126
- }
3127
- }
3128
-
3129
- memo[target] = styleTarget;
3130
- }
3131
-
3132
- return memo[target];
3133
- }
3134
- /* istanbul ignore next */
3135
-
3136
-
3137
- function insertBySelector(insert, style) {
3138
- var target = getTarget(insert);
3139
-
3140
- if (!target) {
3141
- throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
3142
- }
3143
-
3144
- target.appendChild(style);
3145
- }
3146
-
3147
- module.exports = insertBySelector;
3148
-
3149
- /***/ }),
3150
-
3151
- /***/ "../../../node_modules/style-loader/dist/runtime/insertStyleElement.js":
3152
- /*!*****************************************************************************!*\
3153
- !*** ../../../node_modules/style-loader/dist/runtime/insertStyleElement.js ***!
3154
- \*****************************************************************************/
3155
- /***/ ((module) => {
3156
-
3157
-
3158
-
3159
- /* istanbul ignore next */
3160
- function insertStyleElement(options) {
3161
- var element = document.createElement("style");
3162
- options.setAttributes(element, options.attributes);
3163
- options.insert(element, options.options);
3164
- return element;
3165
- }
3166
-
3167
- module.exports = insertStyleElement;
3168
-
3169
- /***/ }),
3170
-
3171
- /***/ "../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js":
3172
- /*!*****************************************************************************************!*\
3173
- !*** ../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js ***!
3174
- \*****************************************************************************************/
3175
- /***/ ((module, __unused_webpack_exports, __webpack_require__) => {
3176
-
3177
-
3178
-
3179
- /* istanbul ignore next */
3180
- function setAttributesWithoutAttributes(styleElement) {
3181
- var nonce = true ? __webpack_require__.nc : 0;
3182
-
3183
- if (nonce) {
3184
- styleElement.setAttribute("nonce", nonce);
3185
- }
3186
- }
3187
-
3188
- module.exports = setAttributesWithoutAttributes;
3189
-
3190
- /***/ }),
3191
-
3192
- /***/ "../../../node_modules/style-loader/dist/runtime/styleDomAPI.js":
3193
- /*!**********************************************************************!*\
3194
- !*** ../../../node_modules/style-loader/dist/runtime/styleDomAPI.js ***!
3195
- \**********************************************************************/
3196
- /***/ ((module) => {
3197
-
3198
-
3199
-
3200
- /* istanbul ignore next */
3201
- function apply(styleElement, options, obj) {
3202
- var css = "";
3203
-
3204
- if (obj.supports) {
3205
- css += "@supports (".concat(obj.supports, ") {");
3206
- }
3207
-
3208
- if (obj.media) {
3209
- css += "@media ".concat(obj.media, " {");
3210
- }
3211
-
3212
- var needLayer = typeof obj.layer !== "undefined";
3213
-
3214
- if (needLayer) {
3215
- css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
3216
- }
3217
-
3218
- css += obj.css;
3219
-
3220
- if (needLayer) {
3221
- css += "}";
3222
- }
3223
-
3224
- if (obj.media) {
3225
- css += "}";
3226
- }
3227
-
3228
- if (obj.supports) {
3229
- css += "}";
3230
- }
3231
-
3232
- var sourceMap = obj.sourceMap;
3233
-
3234
- if (sourceMap && typeof btoa !== "undefined") {
3235
- css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
3236
- } // For old IE
3237
-
3238
- /* istanbul ignore if */
3239
-
3240
-
3241
- options.styleTagTransform(css, styleElement, options.options);
3242
- }
3243
-
3244
- function removeStyleElement(styleElement) {
3245
- // istanbul ignore if
3246
- if (styleElement.parentNode === null) {
3247
- return false;
3248
- }
3249
-
3250
- styleElement.parentNode.removeChild(styleElement);
3251
- }
3252
- /* istanbul ignore next */
3253
-
3254
-
3255
- function domAPI(options) {
3256
- var styleElement = options.insertStyleElement(options);
3257
- return {
3258
- update: function update(obj) {
3259
- apply(styleElement, options, obj);
3260
- },
3261
- remove: function remove() {
3262
- removeStyleElement(styleElement);
3263
- }
3264
- };
3265
- }
3266
-
3267
- module.exports = domAPI;
3268
-
3269
- /***/ }),
3270
-
3271
- /***/ "../../../node_modules/style-loader/dist/runtime/styleTagTransform.js":
3272
- /*!****************************************************************************!*\
3273
- !*** ../../../node_modules/style-loader/dist/runtime/styleTagTransform.js ***!
3274
- \****************************************************************************/
3275
- /***/ ((module) => {
3276
-
3277
-
3278
-
3279
- /* istanbul ignore next */
3280
- function styleTagTransform(css, styleElement) {
3281
- if (styleElement.styleSheet) {
3282
- styleElement.styleSheet.cssText = css;
3283
- } else {
3284
- while (styleElement.firstChild) {
3285
- styleElement.removeChild(styleElement.firstChild);
3286
- }
3287
-
3288
- styleElement.appendChild(document.createTextNode(css));
3289
- }
3290
- }
3291
-
3292
- module.exports = styleTagTransform;
3293
-
3294
- /***/ }),
3295
-
3296
- /***/ "@babel/runtime/helpers/defineProperty":
3297
- /*!********************************************************!*\
3298
- !*** external "@babel/runtime/helpers/defineProperty" ***!
3299
- \********************************************************/
3300
- /***/ ((module) => {
3301
-
3302
- module.exports = require("@babel/runtime/helpers/defineProperty");
3303
-
3304
- /***/ }),
3305
-
3306
- /***/ "@babel/runtime/helpers/objectWithoutProperties":
3307
- /*!*****************************************************************!*\
3308
- !*** external "@babel/runtime/helpers/objectWithoutProperties" ***!
3309
- \*****************************************************************/
3310
- /***/ ((module) => {
3311
-
3312
- module.exports = require("@babel/runtime/helpers/objectWithoutProperties");
3313
-
3314
- /***/ }),
3315
-
3316
- /***/ "@babel/runtime/helpers/slicedToArray":
3317
- /*!*******************************************************!*\
3318
- !*** external "@babel/runtime/helpers/slicedToArray" ***!
3319
- \*******************************************************/
3320
- /***/ ((module) => {
3321
-
3322
- module.exports = require("@babel/runtime/helpers/slicedToArray");
3323
-
3324
- /***/ }),
3325
-
3326
- /***/ "@babel/runtime/helpers/toConsumableArray":
3327
- /*!***********************************************************!*\
3328
- !*** external "@babel/runtime/helpers/toConsumableArray" ***!
3329
- \***********************************************************/
3330
- /***/ ((module) => {
3331
-
3332
- module.exports = require("@babel/runtime/helpers/toConsumableArray");
3333
-
3334
- /***/ }),
3335
-
3336
- /***/ "@imperium/auth-client":
3337
- /*!****************************************!*\
3338
- !*** external "@imperium/auth-client" ***!
3339
- \****************************************/
3340
- /***/ ((module) => {
3341
-
3342
- module.exports = require("@imperium/auth-client");
3343
-
3344
- /***/ }),
3345
-
3346
- /***/ "@imperium/state":
3347
- /*!**********************************!*\
3348
- !*** external "@imperium/state" ***!
3349
- \**********************************/
3350
- /***/ ((module) => {
3351
-
3352
- module.exports = require("@imperium/state");
3353
-
3354
- /***/ }),
3355
-
3356
- /***/ "@reduxjs/toolkit":
3357
- /*!***********************************!*\
3358
- !*** external "@reduxjs/toolkit" ***!
3359
- \***********************************/
3360
- /***/ ((module) => {
3361
-
3362
- module.exports = require("@reduxjs/toolkit");
3363
-
3364
- /***/ }),
3365
-
3366
- /***/ "@thx/controls":
3367
- /*!********************************!*\
3368
- !*** external "@thx/controls" ***!
3369
- \********************************/
3370
- /***/ ((module) => {
3371
-
3372
- module.exports = require("@thx/controls");
3373
-
3374
- /***/ }),
3375
-
3376
- /***/ "debug":
3377
- /*!************************!*\
3378
- !*** external "debug" ***!
3379
- \************************/
3380
- /***/ ((module) => {
3381
-
3382
- module.exports = require("debug");
3383
-
3384
- /***/ }),
3385
-
3386
- /***/ "lodash":
3387
- /*!*************************!*\
3388
- !*** external "lodash" ***!
3389
- \*************************/
3390
- /***/ ((module) => {
3391
-
3392
- module.exports = require("lodash");
3393
-
3394
- /***/ }),
3395
-
3396
- /***/ "lodash/compact":
3397
- /*!*********************************!*\
3398
- !*** external "lodash/compact" ***!
3399
- \*********************************/
3400
- /***/ ((module) => {
3401
-
3402
- module.exports = require("lodash/compact");
3403
-
3404
- /***/ }),
3405
-
3406
- /***/ "lodash/flowRight":
3407
- /*!***********************************!*\
3408
- !*** external "lodash/flowRight" ***!
3409
- \***********************************/
3410
- /***/ ((module) => {
3411
-
3412
- module.exports = require("lodash/flowRight");
3413
-
3414
- /***/ }),
3415
-
3416
- /***/ "lodash/fp":
3417
- /*!****************************!*\
3418
- !*** external "lodash/fp" ***!
3419
- \****************************/
3420
- /***/ ((module) => {
3421
-
3422
- module.exports = require("lodash/fp");
3423
-
3424
- /***/ }),
3425
-
3426
- /***/ "lodash/groupBy":
3427
- /*!*********************************!*\
3428
- !*** external "lodash/groupBy" ***!
3429
- \*********************************/
3430
- /***/ ((module) => {
3431
-
3432
- module.exports = require("lodash/groupBy");
3433
-
3434
- /***/ }),
3435
-
3436
- /***/ "lodash/memoize":
3437
- /*!*********************************!*\
3438
- !*** external "lodash/memoize" ***!
3439
- \*********************************/
3440
- /***/ ((module) => {
3441
-
3442
- module.exports = require("lodash/memoize");
3443
-
3444
- /***/ }),
3445
-
3446
- /***/ "lodash/merge":
3447
- /*!*******************************!*\
3448
- !*** external "lodash/merge" ***!
3449
- \*******************************/
3450
- /***/ ((module) => {
3451
-
3452
- module.exports = require("lodash/merge");
3453
-
3454
- /***/ }),
3455
-
3456
- /***/ "lodash/sortBy":
3457
- /*!********************************!*\
3458
- !*** external "lodash/sortBy" ***!
3459
- \********************************/
3460
- /***/ ((module) => {
3461
-
3462
- module.exports = require("lodash/sortBy");
3463
-
3464
- /***/ }),
3465
-
3466
- /***/ "mingo":
3467
- /*!************************!*\
3468
- !*** external "mingo" ***!
3469
- \************************/
3470
- /***/ ((module) => {
3471
-
3472
- module.exports = require("mingo");
3473
-
3474
- /***/ }),
3475
-
3476
- /***/ "querystring":
3477
- /*!******************************!*\
3478
- !*** external "querystring" ***!
3479
- \******************************/
3480
- /***/ ((module) => {
3481
-
3482
- module.exports = require("querystring");
3483
-
3484
- /***/ }),
3485
-
3486
- /***/ "react":
3487
- /*!************************!*\
3488
- !*** external "react" ***!
3489
- \************************/
3490
- /***/ ((module) => {
3491
-
3492
- module.exports = require("react");
3493
-
3494
- /***/ }),
3495
-
3496
- /***/ "react-redux":
3497
- /*!******************************!*\
3498
- !*** external "react-redux" ***!
3499
- \******************************/
3500
- /***/ ((module) => {
3501
-
3502
- module.exports = require("react-redux");
3503
-
3504
- /***/ }),
3505
-
3506
- /***/ "react-responsive":
3507
- /*!***********************************!*\
3508
- !*** external "react-responsive" ***!
3509
- \***********************************/
3510
- /***/ ((module) => {
3511
-
3512
- module.exports = require("react-responsive");
3513
-
3514
- /***/ }),
3515
-
3516
- /***/ "react-router":
3517
- /*!*******************************!*\
3518
- !*** external "react-router" ***!
3519
- \*******************************/
3520
- /***/ ((module) => {
3521
-
3522
- module.exports = require("react-router");
3523
-
3524
- /***/ }),
3525
-
3526
- /***/ "react-router-dom":
3527
- /*!***********************************!*\
3528
- !*** external "react-router-dom" ***!
3529
- \***********************************/
3530
- /***/ ((module) => {
3531
-
3532
- module.exports = require("react-router-dom");
3533
-
3534
- /***/ }),
3535
-
3536
- /***/ "react/jsx-dev-runtime":
3537
- /*!****************************************!*\
3538
- !*** external "react/jsx-dev-runtime" ***!
3539
- \****************************************/
3540
- /***/ ((module) => {
3541
-
3542
- module.exports = require("react/jsx-dev-runtime");
3543
-
3544
- /***/ }),
3545
-
3546
- /***/ "semantic-ui-react":
3547
- /*!************************************!*\
3548
- !*** external "semantic-ui-react" ***!
3549
- \************************************/
3550
- /***/ ((module) => {
3551
-
3552
- module.exports = require("semantic-ui-react");
3553
-
3554
- /***/ })
3555
-
3556
- /******/ });
3557
- /************************************************************************/
3558
- /******/ // The module cache
3559
- /******/ var __webpack_module_cache__ = {};
3560
- /******/
3561
- /******/ // The require function
3562
- /******/ function __webpack_require__(moduleId) {
3563
- /******/ // Check if module is in cache
3564
- /******/ var cachedModule = __webpack_module_cache__[moduleId];
3565
- /******/ if (cachedModule !== undefined) {
3566
- /******/ return cachedModule.exports;
3567
- /******/ }
3568
- /******/ // Create a new module (and put it into the cache)
3569
- /******/ var module = __webpack_module_cache__[moduleId] = {
3570
- /******/ id: moduleId,
3571
- /******/ // no module.loaded needed
3572
- /******/ exports: {}
3573
- /******/ };
3574
- /******/
3575
- /******/ // Execute the module function
3576
- /******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
3577
- /******/
3578
- /******/ // Return the exports of the module
3579
- /******/ return module.exports;
3580
- /******/ }
3581
- /******/
3582
- /************************************************************************/
3583
- /******/ /* webpack/runtime/compat get default export */
3584
- /******/ (() => {
3585
- /******/ // getDefaultExport function for compatibility with non-harmony modules
3586
- /******/ __webpack_require__.n = (module) => {
3587
- /******/ var getter = module && module.__esModule ?
3588
- /******/ () => (module['default']) :
3589
- /******/ () => (module);
3590
- /******/ __webpack_require__.d(getter, { a: getter });
3591
- /******/ return getter;
3592
- /******/ };
3593
- /******/ })();
3594
- /******/
3595
- /******/ /* webpack/runtime/define property getters */
3596
- /******/ (() => {
3597
- /******/ // define getter functions for harmony exports
3598
- /******/ __webpack_require__.d = (exports, definition) => {
3599
- /******/ for(var key in definition) {
3600
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
3601
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
3602
- /******/ }
3603
- /******/ }
3604
- /******/ };
3605
- /******/ })();
3606
- /******/
3607
- /******/ /* webpack/runtime/hasOwnProperty shorthand */
3608
- /******/ (() => {
3609
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
3610
- /******/ })();
3611
- /******/
3612
- /******/ /* webpack/runtime/make namespace object */
3613
- /******/ (() => {
3614
- /******/ // define __esModule on exports
3615
- /******/ __webpack_require__.r = (exports) => {
3616
- /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
3617
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
3618
- /******/ }
3619
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
3620
- /******/ };
3621
- /******/ })();
3622
- /******/
3623
- /************************************************************************/
3624
- var __webpack_exports__ = {};
3625
- // This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.
3626
- (() => {
3627
- /*!******************!*\
3628
- !*** ./index.ts ***!
3629
- \******************/
3630
- __webpack_require__.r(__webpack_exports__);
3631
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
3632
- /* harmony export */ "layoutClientModule": () => (/* binding */ layoutClientModule),
3633
- /* harmony export */ "useLayoutState": () => (/* reexport safe */ _state__WEBPACK_IMPORTED_MODULE_2__.useLayoutState),
3634
- /* harmony export */ "layoutActions": () => (/* reexport safe */ _state__WEBPACK_IMPORTED_MODULE_2__.actions),
3635
- /* harmony export */ "createPages": () => (/* reexport safe */ _content_createPages__WEBPACK_IMPORTED_MODULE_3__.createPages),
3636
- /* harmony export */ "dividerSidebarItem": () => (/* reexport safe */ _content_dividerSidebarItem__WEBPACK_IMPORTED_MODULE_4__.dividerSidebarItem)
3637
- /* harmony export */ });
3638
- /* harmony import */ var _layout_hooks_useMobileLayout__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./layout/hooks/useMobileLayout */ "./layout/hooks/useMobileLayout.ts");
3639
- /* harmony import */ var _layout_withLayout__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./layout/withLayout */ "./layout/withLayout.tsx");
3640
- /* harmony import */ var _state__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./state */ "./state.ts");
3641
- /* harmony import */ var _content_createPages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./content/createPages */ "./content/createPages.tsx");
3642
- /* harmony import */ var _content_dividerSidebarItem__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./content/dividerSidebarItem */ "./content/dividerSidebarItem.ts");
3643
-
3644
-
3645
-
3646
- function layoutClientModule() {
3647
- return {
3648
- name: '@imperium/layout',
3649
- order: 30,
3650
- hocs: [_layout_withLayout__WEBPACK_IMPORTED_MODULE_1__.withLayout],
3651
- state: _state__WEBPACK_IMPORTED_MODULE_2__.state,
3652
- layout: {
3653
- dataHooks: [_layout_hooks_useMobileLayout__WEBPACK_IMPORTED_MODULE_0__.useMobileLayout]
3654
- }
3655
- };
3656
- }
3657
-
3658
-
3659
-
3660
- })();
3661
-
3662
- module.exports = __webpack_exports__;
3663
- /******/ })()
3664
- ;
3665
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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LGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ0xBO0FBQ0E7QUFDQTtBQUdPLFNBQVN3RSxrQkFBVCxHQUFzRjtBQUM1RixTQUFPO0FBQ05kLElBQUFBLElBQUksRUFBRSxrQkFEQTtBQUVOZSxJQUFBQSxLQUFLLEVBQUUsRUFGRDtBQUdOQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQ3pCLDBEQUFELENBSEE7QUFJTjVGLElBQUFBLEtBQUssRUFBTEEseUNBSk07QUFLTmlHLElBQUFBLE1BQU0sRUFBRTtBQUNQdkssTUFBQUEsU0FBUyxFQUFFLENBQUNtSiwwRUFBRDtBQURKO0FBTEYsR0FBUDtBQVNBO0FBR0Q7QUFDQSIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL2NvbnRlbnQvY29tcG9uZW50cy9zdHlsZXMuY3NzIiwid2VicGFjazovLy8uL2xheW91dC9jb21wb25lbnRzL3N0eWxlcy5jc3MiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9hcGkuanMiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzIiwid2VicGFjazovLy8uL2NvbW1vbkl0ZW1zLnRzIiwid2VicGFjazovLy8uL2NvbnRlbnQvY29tcG9uZW50cy9BY3Rpb25Gb3JtLnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2NvbXBvbmVudHMvQWN0aW9uRm9ybVNpZGViYXJJdGVtQ29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2NvbXBvbmVudHMvQWN0aW9uU2lkZWJhckl0ZW1Db21wb25lbnQudHN4Iiwid2VicGFjazovLy8uL2NvbnRlbnQvY29tcG9uZW50cy9Db250ZW50Q29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2NvbXBvbmVudHMvQ3VzdG9tU2lkZWJhckl0ZW1Db21wb25lbnQudHN4Iiwid2VicGFjazovLy8uL2NvbnRlbnQvY29tcG9uZW50cy9IZWFkZXIudHN4Iiwid2VicGFjazovLy8uL2NvbnRlbnQvY29tcG9uZW50cy9QbGFpblNpZGViYXJJdGVtLnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2NvbXBvbmVudHMvU2lkZWJhckl0ZW1XcmFwcGVyLnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2NyZWF0ZVBhZ2VzLnRzeCIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2RpdmlkZXJTaWRlYmFySXRlbS50cyIsIndlYnBhY2s6Ly8vLi9jb250ZW50L2hvb2tzL3VzZUJ1aWxkQ29udGVudERhdGEudHMiLCJ3ZWJwYWNrOi8vLy4vY29udGVudC90eXBlcy50cyIsIndlYnBhY2s6Ly8vLi9jb250ZW50L3V0aWxzLnRzeCIsIndlYnBhY2s6Ly8vLi9kYXRhaG9va3MvRGF0YUhvb2tzLnRzeCIsIndlYnBhY2s6Ly8vLi9kYXRhaG9va3MvRXhlY3V0ZURhdGFIb29rLnRzeCIsIndlYnBhY2s6Ly8vLi9kYXRhaG9va3MvRXhlY3V0ZVBlcm1pc3Npb25Ib29rLnRzeCIsIndlYnBhY2s6Ly8vLi9kYXRhaG9va3MvUGVybWlzc2lvbkhvb2tzLnRzeCIsIndlYnBhY2s6Ly8vLi9ob29rcy91c2VCdWlsZERhdGEudHMiLCJ3ZWJwYWNrOi8vLy4vaG9va3MvdXNlSXNBY3RpdmVSb3V0ZS50cyIsIndlYnBhY2s6Ly8vLi9ob29rcy91c2VTZWxlY3RQZXJtaXNzaW9uLnRzIiwid2VicGFjazovLy8uL2hvb2tzL3VzZVNlbGVjdFN0YXRlLnRzIiwid2VicGFjazovLy8uL2xheW91dC9jb21wb25lbnRzL0N1c3RvbUxheW91dEl0ZW1Db21wb25lbnQudHN4Iiwid2VicGFjazovLy8uL2xheW91dC9jb21wb25lbnRzL0Ryb3Bkb3duSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L2NvbXBvbmVudHMvTGF5b3V0LnRzeCIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvY29tcG9uZW50cy9MYXlvdXRJdGVtQmFyLnRzeCIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvY29tcG9uZW50cy9MYXlvdXRJdGVtV3JhcHBlci50c3giLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L2NvbXBvbmVudHMvTWVudUl0ZW0udHN4Iiwid2VicGFjazovLy8uL2xheW91dC9jb21wb25lbnRzL1BsYWluSXRlbS50c3giLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L2NvbXBvbmVudHMvU2Vjb25kYXJ5TWVudVRvZ2dsZUl0ZW0udHN4Iiwid2VicGFjazovLy8uL2xheW91dC9ob29rcy91c2VNb2JpbGVMYXlvdXQudHMiLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L21vdmVJdGVtcy50cyIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvdHlwZXMudHMiLCJ3ZWJwYWNrOi8vLy4vbGF5b3V0L3V0aWxzLnRzeCIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvd2l0aExheW91dC50c3giLCJ3ZWJwYWNrOi8vLy4vc3RhdGUudHMiLCJ3ZWJwYWNrOi8vLy4vdHlwZXMudHMiLCJ3ZWJwYWNrOi8vLy4vdXRpbHMudHMiLCJ3ZWJwYWNrOi8vLy4vY29udGVudC9jb21wb25lbnRzL3N0eWxlcy5jc3M/ZDFmNSIsIndlYnBhY2s6Ly8vLi9sYXlvdXQvY29tcG9uZW50cy9zdHlsZXMuY3NzPzE2ZjAiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qcyIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qcyIsIndlYnBhY2s6Ly8vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0U3R5bGVFbGVtZW50LmpzIiwid2VicGFjazovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanMiLCJ3ZWJwYWNrOi8vLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzIiwid2VicGFjazovLy8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qcyIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2xpY2VkVG9BcnJheVwiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvdG9Db25zdW1hYmxlQXJyYXlcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJAaW1wZXJpdW0vYXV0aC1jbGllbnRcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJAaW1wZXJpdW0vc3RhdGVcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJAcmVkdXhqcy90b29sa2l0XCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwiQHRoeC9jb250cm9sc1wiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcImRlYnVnXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2NvbXBhY3RcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvZmxvd1JpZ2h0XCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2ZwXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwibG9kYXNoL2dyb3VwQnlcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJsb2Rhc2gvbWVtb2l6ZVwiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9tZXJnZVwiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcImxvZGFzaC9zb3J0QnlcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJtaW5nb1wiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcInF1ZXJ5c3RyaW5nXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1yZWR1eFwiIiwid2VicGFjazovLy9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LXJlc3BvbnNpdmVcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1yb3V0ZXJcIiIsIndlYnBhY2s6Ly8vZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1yb3V0ZXItZG9tXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QvanN4LWRldi1ydW50aW1lXCIiLCJ3ZWJwYWNrOi8vL2V4dGVybmFsIGNvbW1vbmpzIFwic2VtYW50aWMtdWktcmVhY3RcIiIsIndlYnBhY2s6Ly8vd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovLy93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vLy4vaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIuY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fcGFyZW50LS1xY1pxdyB7XFxuXFx0ZmxleDogMTtcXG5cXHRkaXNwbGF5OiBmbGV4O1xcblxcdGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuXFx0aGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4uY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fd3JhcHBlci0tbWJ6U2kge1xcblxcdGZsZXg6IDE7XFxuXFx0ZmxleC1iYXNpczogY2FsYyg2NSUpO1xcbn1cXG5cXG4uY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fY29udGVudC0tZmhTWEcge1xcblxcdG1hcmdpbjogMCAwLjhyZW0gMC44cmVtIDAuOHJlbTtcXG59XFxuXFxuLmNvbnRlbnQtY29tcG9uZW50cy1zdHlsZXNfX2NvbnRlbnRGdWxsLS1rVVczXyB7XFxuXFx0aGVpZ2h0OiAxMDAlO1xcblxcdG1hcmdpbjogMCAwO1xcbn1cXG5cXG4uY29udGVudC1jb21wb25lbnRzLXN0eWxlc19faGVhZGVyLS1OT0d5YyB7XFxuXFx0cGFkZGluZzogMC44cmVtIDAuOHJlbSAwIDAuOHJlbTtcXG5cXHRtYXJnaW4tYm90dG9tOiAwLjhyZW07XFxufVxcblxcbi5jb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19zaWRlYmFyLS1yTFU1UiB7XFxuXFx0bWluLXdpZHRoOiAyNTBweDtcXG5cXHRwYWRkaW5nOiAxMHB4O1xcblxcdG92ZXJmbG93LXk6IGF1dG87XFxuXFx0b3ZlcmZsb3cteDogaGlkZGVuO1xcbn1cXG5cXG4uY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fc2lkZWJhckl0ZW0tLUV5bGdmIHtcXG5cXHRtYXJnaW4tYm90dG9tOiA1cHg7XFxufVxcblxcbi5jb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19hY3Rpb25zSGVhZGVyLS1ONnp6TSB7XFxuXFx0ZGlzcGxheTogbm9uZTtcXG59XFxuXFxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NjhweCkge1xcblxcdC5jb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19wYXJlbnQtLXFjWnF3IHtcXG5cXHRcXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcblxcdFxcdGhlaWdodDogYXV0bztcXG5cXHR9XFxuXFx0LmNvbnRlbnQtY29tcG9uZW50cy1zdHlsZXNfX3dyYXBwZXItLW1ielNpIHtcXG5cXHRcXHRib3JkZXItcmlnaHQ6IG5vbmU7XFxuXFx0XFx0cGFkZGluZy1ib3R0b206IDIwcHg7XFxuXFx0fVxcblxcdC5jb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19zaWRlYmFyLS1yTFU1UiB7XFxuXFx0XFx0bWluLXdpZHRoOiBhdXRvO1xcblxcdH1cXG5cXHQuY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fYWN0aW9uc0hlYWRlci0tTjZ6ek0ge1xcblxcdFxcdGRpc3BsYXk6IGJsb2NrO1xcblxcdFxcdG1hcmdpbi1ib3R0b206IDVweDtcXG5cXHR9XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2NvbnRlbnQvY29tcG9uZW50cy9zdHlsZXMuY3NzXCJdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJBQUFBO0NBQ0MsT0FBTztDQUNQLGFBQWE7Q0FDYixtQkFBbUI7Q0FDbkIsWUFBWTtBQUNiOztBQUVBO0NBQ0MsT0FBTztDQUNQLHFCQUFxQjtBQUN0Qjs7QUFFQTtDQUNDLDhCQUE4QjtBQUMvQjs7QUFFQTtDQUNDLFlBQVk7Q0FDWixXQUFXO0FBQ1o7O0FBRUE7Q0FDQywrQkFBK0I7Q0FDL0IscUJBQXFCO0FBQ3RCOztBQUVBO0NBQ0MsZ0JBQWdCO0NBQ2hCLGFBQWE7Q0FDYixnQkFBZ0I7Q0FDaEIsa0JBQWtCO0FBQ25COztBQUVBO0NBQ0Msa0JBQWtCO0FBQ25COztBQUVBO0NBQ0MsYUFBYTtBQUNkOztBQUVBO0NBQ0M7RUFDQyxzQkFBc0I7RUFDdEIsWUFBWTtDQUNiO0NBQ0E7RUFDQyxrQkFBa0I7RUFDbEIsb0JBQW9CO0NBQ3JCO0NBQ0E7RUFDQyxlQUFlO0NBQ2hCO0NBQ0E7RUFDQyxjQUFjO0VBQ2Qsa0JBQWtCO0NBQ25CO0FBQ0RcIixcInNvdXJjZXNDb250ZW50XCI6W1wiLnBhcmVudCB7XFxuXFx0ZmxleDogMTtcXG5cXHRkaXNwbGF5OiBmbGV4O1xcblxcdGZsZXgtZGlyZWN0aW9uOiByb3c7XFxuXFx0aGVpZ2h0OiAxMDAlO1xcbn1cXG5cXG4ud3JhcHBlciB7XFxuXFx0ZmxleDogMTtcXG5cXHRmbGV4LWJhc2lzOiBjYWxjKDY1JSk7XFxufVxcblxcbi5jb250ZW50IHtcXG5cXHRtYXJnaW46IDAgMC44cmVtIDAuOHJlbSAwLjhyZW07XFxufVxcblxcbi5jb250ZW50RnVsbCB7XFxuXFx0aGVpZ2h0OiAxMDAlO1xcblxcdG1hcmdpbjogMCAwO1xcbn1cXG5cXG4uaGVhZGVyIHtcXG5cXHRwYWRkaW5nOiAwLjhyZW0gMC44cmVtIDAgMC44cmVtO1xcblxcdG1hcmdpbi1ib3R0b206IDAuOHJlbTtcXG59XFxuXFxuLnNpZGViYXIge1xcblxcdG1pbi13aWR0aDogMjUwcHg7XFxuXFx0cGFkZGluZzogMTBweDtcXG5cXHRvdmVyZmxvdy15OiBhdXRvO1xcblxcdG92ZXJmbG93LXg6IGhpZGRlbjtcXG59XFxuXFxuLnNpZGViYXJJdGVtIHtcXG5cXHRtYXJnaW4tYm90dG9tOiA1cHg7XFxufVxcblxcbi5hY3Rpb25zSGVhZGVyIHtcXG5cXHRkaXNwbGF5OiBub25lO1xcbn1cXG5cXG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc2OHB4KSB7XFxuXFx0LnBhcmVudCB7XFxuXFx0XFx0ZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcXG5cXHRcXHRoZWlnaHQ6IGF1dG87XFxuXFx0fVxcblxcdC53cmFwcGVyIHtcXG5cXHRcXHRib3JkZXItcmlnaHQ6IG5vbmU7XFxuXFx0XFx0cGFkZGluZy1ib3R0b206IDIwcHg7XFxuXFx0fVxcblxcdC5zaWRlYmFyIHtcXG5cXHRcXHRtaW4td2lkdGg6IGF1dG87XFxuXFx0fVxcblxcdC5hY3Rpb25zSGVhZGVyIHtcXG5cXHRcXHRkaXNwbGF5OiBibG9jaztcXG5cXHRcXHRtYXJnaW4tYm90dG9tOiA1cHg7XFxuXFx0fVxcbn1cXG5cIl0sXCJzb3VyY2VSb290XCI6XCJcIn1dKTtcbi8vIEV4cG9ydHNcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLmxvY2FscyA9IHtcblx0XCJwYXJlbnRcIjogXCJjb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19wYXJlbnQtLXFjWnF3XCIsXG5cdFwid3JhcHBlclwiOiBcImNvbnRlbnQtY29tcG9uZW50cy1zdHlsZXNfX3dyYXBwZXItLW1ielNpXCIsXG5cdFwiY29udGVudFwiOiBcImNvbnRlbnQtY29tcG9uZW50cy1zdHlsZXNfX2NvbnRlbnQtLWZoU1hHXCIsXG5cdFwiY29udGVudEZ1bGxcIjogXCJjb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19jb250ZW50RnVsbC0ta1VXM19cIixcblx0XCJoZWFkZXJcIjogXCJjb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19oZWFkZXItLU5PR3ljXCIsXG5cdFwic2lkZWJhclwiOiBcImNvbnRlbnQtY29tcG9uZW50cy1zdHlsZXNfX3NpZGViYXItLXJMVTVSXCIsXG5cdFwic2lkZWJhckl0ZW1cIjogXCJjb250ZW50LWNvbXBvbmVudHMtc3R5bGVzX19zaWRlYmFySXRlbS0tRXlsZ2ZcIixcblx0XCJhY3Rpb25zSGVhZGVyXCI6IFwiY29udGVudC1jb21wb25lbnRzLXN0eWxlc19fYWN0aW9uc0hlYWRlci0tTjZ6ek1cIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiLy8gSW1wb3J0c1xuaW1wb3J0IF9fX0NTU19MT0FERVJfQVBJX1NPVVJDRU1BUF9JTVBPUlRfX18gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvcnVudGltZS9zb3VyY2VNYXBzLmpzXCI7XG5pbXBvcnQgX19fQ1NTX0xPQURFUl9BUElfSU1QT1JUX19fIGZyb20gXCIuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L3J1bnRpbWUvYXBpLmpzXCI7XG52YXIgX19fQ1NTX0xPQURFUl9FWFBPUlRfX18gPSBfX19DU1NfTE9BREVSX0FQSV9JTVBPUlRfX18oX19fQ1NTX0xPQURFUl9BUElfU09VUkNFTUFQX0lNUE9SVF9fXyk7XG4vLyBNb2R1bGVcbl9fX0NTU19MT0FERVJfRVhQT1JUX19fLnB1c2goW21vZHVsZS5pZCwgXCIvKiBOZWVkIHRvIHBhc3MgMTAwJSBoZWlnaHQgYWxsIHRoZSB3YXkgZG93biAqL1xcbiNyb290IHtcXG5cXHRoZWlnaHQ6IDEwMCU7XFxufVxcbiNyb290ID4gZGl2IHtcXG5cXHRoZWlnaHQ6IDEwMCU7XFxufVxcblxcbi5sYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3BhcmVudC0tc3dzOE8ge1xcblxcdG1pbi1oZWlnaHQ6IDEwMCU7XFxuXFx0ZGlzcGxheTogZmxleDtcXG5cXHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xcbn1cXG5cXG4ubGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19tZW51YmFyLS1XTWNYbiB7XFxuXFx0Ym9yZGVyLXJhZGl1czogMCAhaW1wb3J0YW50O1xcblxcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xcbn1cXG5cXG4ubGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19zdGF0dXNiYXItLUhhNGZfIHtcXG5cXHRtYXJnaW46IDAgIWltcG9ydGFudDtcXG5cXHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5sYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3NlY29uZGFyeU1lbnUtLWJ5dTZ5IHtcXG5cXHRtaW4td2lkdGg6IDIyMHB4ICFpbXBvcnRhbnQ7XFxuXFx0d2lkdGg6IDEwMCUgIWltcG9ydGFudDtcXG5cXHRoZWlnaHQ6IDEwMCUgIWltcG9ydGFudDtcXG5cXHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxuXFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XFxuXFx0b3ZlcmZsb3cteDogYXV0bzsgLyogYWRkZWQgdG8gbWFrZSB0aGUgY29udGVudCBzY3JvbGwgYW5kIG5vdCB0aGUgd2hvbGUgbGF5b3V0ICovXFxuXFx0dHJhbnNpdGlvbjogbWFyZ2luLWxlZnQgMC4zcyBlYXNlLWluLW91dDtcXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19fc2Vjb25kYXJ5TWVudUhpZGRlbi0tZWs3UXoge1xcblxcdG1hcmdpbi1sZWZ0OiAtMjIwcHggIWltcG9ydGFudDtcXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19fY29udGVudFdyYXBwZXItLVNhWUduIHtcXG5cXHRmbGV4OiAxO1xcblxcdGRpc3BsYXk6IGZsZXg7XFxuXFx0ZmxleC1kaXJlY3Rpb246IHJvdztcXG5cXHRmbGV4LXdyYXA6IG5vd3JhcDtcXG5cXHRwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XFxuXFx0Ym9yZGVyOiAwIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7IC8qIHRoaXMgaXMgYSBzZWdtZW50LCBhbmQgdGhleSBzZWVtIHRvIGhhdmUgYSAxcHggd2hpdGUgYm9yZGVyIGJ5IGRlZmF1bHQgKi9cXG5cXHRvdmVyZmxvdy15OiBhdXRvOyAvKiBhZGRlZCB0byBtYWtlIHRoZSBjb250ZW50IHNjcm9sbCBhbmQgbm90IHRoZSB3aG9sZSBsYXlvdXQgKi9cXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19fY29udGVudC0tSkdEdVcge1xcblxcdGZsZXg6IDE7IC8qIGNoYW5nZWQgdGhpcyB0byBoYXZlIGEgZmxleCBvZiBvbmUgaW5zdGVhZCBvZiBhdXRvIHNvIHRoZSBzaWRlIG1lbnUgZG9lc24ndCBnZXQgc3F1aXNoZWQgKi9cXG5cXHRhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xcblxcdGhlaWdodDogMTAwJTtcXG5cXHRtYXgtaGVpZ2h0OiAxMDAlOyAvKiBhZGRlZCB0byBtYWtlIHRoZSBjb250ZW50IHNjcm9sbCBhbmQgbm90IHRoZSB3aG9sZSBsYXlvdXQgKi9cXG5cXHRvdmVyZmxvdy14OiBoaWRkZW47IC8qIGFkZGVkIHRvIG1ha2UgdGhlIGNvbnRlbnQgc2Nyb2xsIGFuZCBub3QgdGhlIHdob2xlIGxheW91dCAqL1xcbn1cXG5cXG4ubGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19mb290ZXItLUE3TFNIIHtcXG5cXHRtYXJnaW46IDAgIWltcG9ydGFudDtcXG5cXHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5sYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3ZlcnRpY2FsRHJvcGRvd25JY29uLS1WNjlDdyB7XFxuXFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuXFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgO1xcblxcdGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19fdmVydGljYWxEcm9wZG93bkljb25Sb3RhdGVkLS1iWnlOTyB7XFxuXFx0dHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xcblxcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIDtcXG5cXHRjdXJzb3I6IHBvaW50ZXI7XFxufVxcblxcbi5sYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3ZlcnRpY2FsRHJvcGRvd25UaXRsZS0tczZBc3Ege1xcblxcdHBhZGRpbmc6IDA7XFxuXFx0Y29sb3I6ICNmZmYgIWltcG9ydGFudDtcXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19fdmVydGljYWxEcm9wZG93bkNvbnRlbnQtLXhHSHhhIHtcXG5cXHRwYWRkaW5nLXRvcDogMCAhaW1wb3J0YW50O1xcblxcdG1hcmdpbjogMCAtMS4xNDI4NTcxNGVtIDAgMDtcXG5cXHRib3JkZXItcmFkaXVzOiAwO1xcbn1cXG5cXG4ubGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19pY29uLS1HdGw0dCB7XFxuXFx0dHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XFxuXFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgbGluZWFyO1xcblxcdGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLmxheW91dC1jb21wb25lbnRzLXN0eWxlc19faWNvblJvdGF0ZWQtLVhCNjdZIHtcXG5cXHR0cmFuc2Zvcm06IHJvdGF0ZSgtMTgwZGVnKTtcXG5cXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC41cztcXG5cXHRjdXJzb3I6IHBvaW50ZXI7XFxufVxcblwiLCBcIlwiLHtcInZlcnNpb25cIjozLFwic291cmNlc1wiOltcIndlYnBhY2s6Ly8uL2xheW91dC9jb21wb25lbnRzL3N0eWxlcy5jc3NcIl0sXCJuYW1lc1wiOltdLFwibWFwcGluZ3NcIjpcIkFBQUEsOENBQThDO0FBQzlDO0NBQ0MsWUFBWTtBQUNiO0FBQ0E7Q0FDQyxZQUFZO0FBQ2I7O0FBRUE7Q0FDQyxnQkFBZ0I7Q0FDaEIsYUFBYTtDQUNiLHNCQUFzQjtBQUN2Qjs7QUFFQTtDQUNDLDJCQUEyQjtDQUMzQixvQkFBb0I7QUFDckI7O0FBRUE7Q0FDQyxvQkFBb0I7Q0FDcEIsMkJBQTJCO0FBQzVCOztBQUVBO0NBQ0MsMkJBQTJCO0NBQzNCLHNCQUFzQjtDQUN0Qix1QkFBdUI7Q0FDdkIsMkJBQTJCO0NBQzNCLG9CQUFvQjtDQUNwQixnQkFBZ0IsRUFBRSw4REFBOEQ7Q0FDaEYsd0NBQXdDO0FBQ3pDOztBQUVBO0NBQ0MsOEJBQThCO0FBQy9COztBQUVBO0NBQ0MsT0FBTztDQUNQLGFBQWE7Q0FDYixtQkFBbUI7Q0FDbkIsaUJBQWlCO0NBQ2pCLHFCQUFxQjtDQUNyQixzQ0FBc0MsRUFBRSwyRUFBMkU7Q0FDbkgsZ0JBQWdCLEVBQUUsOERBQThEO0FBQ2pGOztBQUVBO0NBQ0MsT0FBTyxFQUFFLDZGQUE2RjtDQUN0Ryx5QkFBeUI7Q0FDekIsWUFBWTtDQUNaLGdCQUFnQixFQUFFLDhEQUE4RDtDQUNoRixrQkFBa0IsRUFBRSw4REFBOEQ7QUFDbkY7O0FBRUE7Q0FDQyxvQkFBb0I7Q0FDcEIsMkJBQTJCO0FBQzVCOztBQUVBO0NBQ0MsdUJBQXVCO0NBQ3ZCLDJCQUEyQjtDQUMzQixlQUFlO0FBQ2hCOztBQUVBO0NBQ0Msd0JBQXdCO0NBQ3hCLDJCQUEyQjtDQUMzQixlQUFlO0FBQ2hCOztBQUVBO0NBQ0MsVUFBVTtDQUNWLHNCQUFzQjtBQUN2Qjs7QUFFQTtDQUNDLHlCQUF5QjtDQUN6QiwyQkFBMkI7Q0FDM0IsZ0JBQWdCO0FBQ2pCOztBQUVBO0NBQ0MsdUJBQXVCO0NBQ3ZCLGlDQUFpQztDQUNqQyxlQUFlO0FBQ2hCOztBQUVBO0NBQ0MsMEJBQTBCO0NBQzFCLDBCQUEwQjtDQUMxQixlQUFlO0FBQ2hCXCIsXCJzb3VyY2VzQ29udGVudFwiOltcIi8qIE5lZWQgdG8gcGFzcyAxMDAlIGhlaWdodCBhbGwgdGhlIHdheSBkb3duICovXFxuOmdsb2JhbCgjcm9vdCkge1xcblxcdGhlaWdodDogMTAwJTtcXG59XFxuOmdsb2JhbCgjcm9vdCkgPiBkaXYge1xcblxcdGhlaWdodDogMTAwJTtcXG59XFxuXFxuLnBhcmVudCB7XFxuXFx0bWluLWhlaWdodDogMTAwJTtcXG5cXHRkaXNwbGF5OiBmbGV4O1xcblxcdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XFxufVxcblxcbi5tZW51YmFyIHtcXG5cXHRib3JkZXItcmFkaXVzOiAwICFpbXBvcnRhbnQ7XFxuXFx0bWFyZ2luOiAwICFpbXBvcnRhbnQ7XFxufVxcblxcbi5zdGF0dXNiYXIge1xcblxcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xcblxcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnNlY29uZGFyeU1lbnUge1xcblxcdG1pbi13aWR0aDogMjIwcHggIWltcG9ydGFudDtcXG5cXHR3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xcblxcdGhlaWdodDogMTAwJSAhaW1wb3J0YW50O1xcblxcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG5cXHRtYXJnaW46IDAgIWltcG9ydGFudDtcXG5cXHRvdmVyZmxvdy14OiBhdXRvOyAvKiBhZGRlZCB0byBtYWtlIHRoZSBjb250ZW50IHNjcm9sbCBhbmQgbm90IHRoZSB3aG9sZSBsYXlvdXQgKi9cXG5cXHR0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAwLjNzIGVhc2UtaW4tb3V0O1xcbn1cXG5cXG4uc2Vjb25kYXJ5TWVudUhpZGRlbiB7XFxuXFx0bWFyZ2luLWxlZnQ6IC0yMjBweCAhaW1wb3J0YW50O1xcbn1cXG5cXG4uY29udGVudFdyYXBwZXIge1xcblxcdGZsZXg6IDE7XFxuXFx0ZGlzcGxheTogZmxleDtcXG5cXHRmbGV4LWRpcmVjdGlvbjogcm93O1xcblxcdGZsZXgtd3JhcDogbm93cmFwO1xcblxcdHBhZGRpbmc6IDAgIWltcG9ydGFudDtcXG5cXHRib3JkZXI6IDAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDsgLyogdGhpcyBpcyBhIHNlZ21lbnQsIGFuZCB0aGV5IHNlZW0gdG8gaGF2ZSBhIDFweCB3aGl0ZSBib3JkZXIgYnkgZGVmYXVsdCAqL1xcblxcdG92ZXJmbG93LXk6IGF1dG87IC8qIGFkZGVkIHRvIG1ha2UgdGhlIGNvbnRlbnQgc2Nyb2xsIGFuZCBub3QgdGhlIHdob2xlIGxheW91dCAqL1xcbn1cXG5cXG4uY29udGVudCB7XFxuXFx0ZmxleDogMTsgLyogY2hhbmdlZCB0aGlzIHRvIGhhdmUgYSBmbGV4IG9mIG9uZSBpbnN0ZWFkIG9mIGF1dG8gc28gdGhlIHNpZGUgbWVudSBkb2Vzbid0IGdldCBzcXVpc2hlZCAqL1xcblxcdGFsaWduLWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XFxuXFx0aGVpZ2h0OiAxMDAlO1xcblxcdG1heC1oZWlnaHQ6IDEwMCU7IC8qIGFkZGVkIHRvIG1ha2UgdGhlIGNvbnRlbnQgc2Nyb2xsIGFuZCBub3QgdGhlIHdob2xlIGxheW91dCAqL1xcblxcdG92ZXJmbG93LXg6IGhpZGRlbjsgLyogYWRkZWQgdG8gbWFrZSB0aGUgY29udGVudCBzY3JvbGwgYW5kIG5vdCB0aGUgd2hvbGUgbGF5b3V0ICovXFxufVxcblxcbi5mb290ZXIge1xcblxcdG1hcmdpbjogMCAhaW1wb3J0YW50O1xcblxcdGJvcmRlci1yYWRpdXM6IDAgIWltcG9ydGFudDtcXG59XFxuXFxuLnZlcnRpY2FsRHJvcGRvd25JY29uIHtcXG5cXHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG5cXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyA7XFxuXFx0Y3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4udmVydGljYWxEcm9wZG93bkljb25Sb3RhdGVkIHtcXG5cXHR0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XFxuXFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgO1xcblxcdGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXFxuLnZlcnRpY2FsRHJvcGRvd25UaXRsZSB7XFxuXFx0cGFkZGluZzogMDtcXG5cXHRjb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xcbn1cXG5cXG4udmVydGljYWxEcm9wZG93bkNvbnRlbnQge1xcblxcdHBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7XFxuXFx0bWFyZ2luOiAwIC0xLjE0Mjg1NzE0ZW0gMCAwO1xcblxcdGJvcmRlci1yYWRpdXM6IDA7XFxufVxcblxcbi5pY29uIHtcXG5cXHR0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcXG5cXHR0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC40cyBsaW5lYXI7XFxuXFx0Y3Vyc29yOiBwb2ludGVyO1xcbn1cXG5cXG4uaWNvblJvdGF0ZWQge1xcblxcdHRyYW5zZm9ybTogcm90YXRlKC0xODBkZWcpO1xcblxcdHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzO1xcblxcdGN1cnNvcjogcG9pbnRlcjtcXG59XFxuXCJdLFwic291cmNlUm9vdFwiOlwiXCJ9XSk7XG4vLyBFeHBvcnRzXG5fX19DU1NfTE9BREVSX0VYUE9SVF9fXy5sb2NhbHMgPSB7XG5cdFwicGFyZW50XCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19wYXJlbnQtLXN3czhPXCIsXG5cdFwibWVudWJhclwiOiBcImxheW91dC1jb21wb25lbnRzLXN0eWxlc19fbWVudWJhci0tV01jWG5cIixcblx0XCJzdGF0dXNiYXJcIjogXCJsYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3N0YXR1c2Jhci0tSGE0Zl9cIixcblx0XCJzZWNvbmRhcnlNZW51XCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19zZWNvbmRhcnlNZW51LS1ieXU2eVwiLFxuXHRcInNlY29uZGFyeU1lbnVIaWRkZW5cIjogXCJsYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3NlY29uZGFyeU1lbnVIaWRkZW4tLWVrN1F6XCIsXG5cdFwiY29udGVudFdyYXBwZXJcIjogXCJsYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX2NvbnRlbnRXcmFwcGVyLS1TYVlHblwiLFxuXHRcImNvbnRlbnRcIjogXCJsYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX2NvbnRlbnQtLUpHRHVXXCIsXG5cdFwiZm9vdGVyXCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19mb290ZXItLUE3TFNIXCIsXG5cdFwidmVydGljYWxEcm9wZG93bkljb25cIjogXCJsYXlvdXQtY29tcG9uZW50cy1zdHlsZXNfX3ZlcnRpY2FsRHJvcGRvd25JY29uLS1WNjlDd1wiLFxuXHRcInZlcnRpY2FsRHJvcGRvd25JY29uUm90YXRlZFwiOiBcImxheW91dC1jb21wb25lbnRzLXN0eWxlc19fdmVydGljYWxEcm9wZG93bkljb25Sb3RhdGVkLS1iWnlOT1wiLFxuXHRcInZlcnRpY2FsRHJvcGRvd25UaXRsZVwiOiBcImxheW91dC1jb21wb25lbnRzLXN0eWxlc19fdmVydGljYWxEcm9wZG93blRpdGxlLS1zNkFzcVwiLFxuXHRcInZlcnRpY2FsRHJvcGRvd25Db250ZW50XCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX192ZXJ0aWNhbERyb3Bkb3duQ29udGVudC0teEdIeGFcIixcblx0XCJpY29uXCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19pY29uLS1HdGw0dFwiLFxuXHRcImljb25Sb3RhdGVkXCI6IFwibGF5b3V0LWNvbXBvbmVudHMtc3R5bGVzX19pY29uUm90YXRlZC0tWEI2N1lcIlxufTtcbmV4cG9ydCBkZWZhdWx0IF9fX0NTU19MT0FERVJfRVhQT1JUX19fO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qXG4gIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwXG4gIEF1dGhvciBUb2JpYXMgS29wcGVycyBAc29rcmFcbiovXG5tb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uIChjc3NXaXRoTWFwcGluZ1RvU3RyaW5nKSB7XG4gIHZhciBsaXN0ID0gW107IC8vIHJldHVybiB0aGUgbGlzdCBvZiBtb2R1bGVzIGFzIGNzcyBzdHJpbmdcblxuICBsaXN0LnRvU3RyaW5nID0gZnVuY3Rpb24gdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uIChpdGVtKSB7XG4gICAgICB2YXIgY29udGVudCA9IFwiXCI7XG4gICAgICB2YXIgbmVlZExheWVyID0gdHlwZW9mIGl0ZW1bNV0gIT09IFwidW5kZWZpbmVkXCI7XG5cbiAgICAgIGlmIChpdGVtWzRdKSB7XG4gICAgICAgIGNvbnRlbnQgKz0gXCJAc3VwcG9ydHMgKFwiLmNvbmNhdChpdGVtWzRdLCBcIikge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKGl0ZW1bMl0pIHtcbiAgICAgICAgY29udGVudCArPSBcIkBtZWRpYSBcIi5jb25jYXQoaXRlbVsyXSwgXCIge1wiKTtcbiAgICAgIH1cblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIik7XG4gICAgICB9XG5cbiAgICAgIGNvbnRlbnQgKz0gY3NzV2l0aE1hcHBpbmdUb1N0cmluZyhpdGVtKTtcblxuICAgICAgaWYgKG5lZWRMYXllcikge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVsyXSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICBpZiAoaXRlbVs0XSkge1xuICAgICAgICBjb250ZW50ICs9IFwifVwiO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY29udGVudDtcbiAgICB9KS5qb2luKFwiXCIpO1xuICB9OyAvLyBpbXBvcnQgYSBsaXN0IG9mIG1vZHVsZXMgaW50byB0aGUgbGlzdFxuXG5cbiAgbGlzdC5pID0gZnVuY3Rpb24gaShtb2R1bGVzLCBtZWRpYSwgZGVkdXBlLCBzdXBwb3J0cywgbGF5ZXIpIHtcbiAgICBpZiAodHlwZW9mIG1vZHVsZXMgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgIG1vZHVsZXMgPSBbW251bGwsIG1vZHVsZXMsIHVuZGVmaW5lZF1dO1xuICAgIH1cblxuICAgIHZhciBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzID0ge307XG5cbiAgICBpZiAoZGVkdXBlKSB7XG4gICAgICBmb3IgKHZhciBfaSA9IDA7IF9pIDwgdGhpcy5sZW5ndGg7IF9pKyspIHtcbiAgICAgICAgdmFyIGlkID0gdGhpc1tfaV1bMF07XG5cbiAgICAgICAgaWYgKGlkICE9IG51bGwpIHtcbiAgICAgICAgICBhbHJlYWR5SW1wb3J0ZWRNb2R1bGVzW2lkXSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBmb3IgKHZhciBfaTIgPSAwOyBfaTIgPCBtb2R1bGVzLmxlbmd0aDsgX2kyKyspIHtcbiAgICAgIHZhciBpdGVtID0gW10uY29uY2F0KG1vZHVsZXNbX2kyXSk7XG5cbiAgICAgIGlmIChkZWR1cGUgJiYgYWxyZWFkeUltcG9ydGVkTW9kdWxlc1tpdGVtWzBdXSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKHR5cGVvZiBsYXllciAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICBpZiAodHlwZW9mIGl0ZW1bNV0gPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQGxheWVyXCIuY29uY2F0KGl0ZW1bNV0ubGVuZ3RoID4gMCA/IFwiIFwiLmNvbmNhdChpdGVtWzVdKSA6IFwiXCIsIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzVdID0gbGF5ZXI7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKG1lZGlhKSB7XG4gICAgICAgIGlmICghaXRlbVsyXSkge1xuICAgICAgICAgIGl0ZW1bMl0gPSBtZWRpYTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtWzFdID0gXCJAbWVkaWEgXCIuY29uY2F0KGl0ZW1bMl0sIFwiIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzJdID0gbWVkaWE7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHN1cHBvcnRzKSB7XG4gICAgICAgIGlmICghaXRlbVs0XSkge1xuICAgICAgICAgIGl0ZW1bNF0gPSBcIlwiLmNvbmNhdChzdXBwb3J0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXRlbVsxXSA9IFwiQHN1cHBvcnRzIChcIi5jb25jYXQoaXRlbVs0XSwgXCIpIHtcIikuY29uY2F0KGl0ZW1bMV0sIFwifVwiKTtcbiAgICAgICAgICBpdGVtWzRdID0gc3VwcG9ydHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgbGlzdC5wdXNoKGl0ZW0pO1xuICAgIH1cbiAgfTtcblxuICByZXR1cm4gbGlzdDtcbn07IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGl0ZW0pIHtcbiAgdmFyIGNvbnRlbnQgPSBpdGVtWzFdO1xuICB2YXIgY3NzTWFwcGluZyA9IGl0ZW1bM107XG5cbiAgaWYgKCFjc3NNYXBwaW5nKSB7XG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH1cblxuICBpZiAodHlwZW9mIGJ0b2EgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHZhciBiYXNlNjQgPSBidG9hKHVuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChKU09OLnN0cmluZ2lmeShjc3NNYXBwaW5nKSkpKTtcbiAgICB2YXIgZGF0YSA9IFwic291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247Y2hhcnNldD11dGYtODtiYXNlNjQsXCIuY29uY2F0KGJhc2U2NCk7XG4gICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBcIi8qIyBcIi5jb25jYXQoZGF0YSwgXCIgKi9cIik7XG4gICAgdmFyIHNvdXJjZVVSTHMgPSBjc3NNYXBwaW5nLnNvdXJjZXMubWFwKGZ1bmN0aW9uIChzb3VyY2UpIHtcbiAgICAgIHJldHVybiBcIi8qIyBzb3VyY2VVUkw9XCIuY29uY2F0KGNzc01hcHBpbmcuc291cmNlUm9vdCB8fCBcIlwiKS5jb25jYXQoc291cmNlLCBcIiAqL1wiKTtcbiAgICB9KTtcbiAgICByZXR1cm4gW2NvbnRlbnRdLmNvbmNhdChzb3VyY2VVUkxzKS5jb25jYXQoW3NvdXJjZU1hcHBpbmddKS5qb2luKFwiXFxuXCIpO1xuICB9XG5cbiAgcmV0dXJuIFtjb250ZW50XS5qb2luKFwiXFxuXCIpO1xufTsiLCJpbXBvcnQgdHlwZSB7UGVybWlzc2lvblNlbGVjdG9ySG9vaywgU3RhdGVTZWxlY3Rvckhvb2ssIFZpc2liaWxpdHlRdWVyeUZufSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEZXNjcmliZXMgYW4gaXRlbSB0aGF0IGNhbiBoaWRlIGl0c2VsZiBiYXNlZCBvbiByZWR1eCBzdGF0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZpc2liaWxpdHlJdGVtIHtcblx0c3RhdGVTZWxlY3Rvckhvb2s/OiBTdGF0ZVNlbGVjdG9ySG9vayB8IFN0YXRlU2VsZWN0b3JIb29rW107IC8vIEhvb2sgb3IgYXJyYXkgb2YgaG9va3MgdGhhdCBzZWxlY3Qgc3RhdGVcblx0cGVybWlzc2lvblNlbGVjdG9ySG9vaz86IFBlcm1pc3Npb25TZWxlY3Rvckhvb2sgfCBQZXJtaXNzaW9uU2VsZWN0b3JIb29rW107IC8vIEhvb2sgb3IgYXJyYXkgb2YgaG9va3MgdGhhdCBzZWxlY3QgcGVybWlzc2lvbnNcblx0dmlzaWJsZT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgVmlzaWJpbGl0eVF1ZXJ5Rm47XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGFuIGl0ZW0gd2l0aCBvcHRpb25hbCB3ZWlnaHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWlnaHRlZEl0ZW0ge1xuXHR3ZWlnaHQ/OiBudW1iZXI7IC8vIExhcmdlciBudW1iZXJzIG1vdmUgcmlnaHQvZG93blxufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhbiBpdGVtIHRoYXQgbGlua3MgdG8gYSByb3V0ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvdXRlSXRlbTxUPiB7XG5cdHRvPzogc3RyaW5nIHwgKChkYXRhOiBUKSA9PiBzdHJpbmcpO1xuXHRleGFjdD86IGJvb2xlYW47XG5cdHN0cmljdD86IGJvb2xlYW47XG5cdHNlbnNpdGl2ZT86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGFuIGl0ZW0gdGhhdCBjYW4gYmUgcG9zaXRpb25lZCBob3Jpem9udGFsbHkgbGVmdCBvciByaWdodFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvcml6b250YWxQb3NpdGlvbmVkSXRlbSB7XG5cdHBvc2l0aW9uPzogJ2xlZnQnIHwgJ3JpZ2h0JzsgLy8gRGVmYXVsdCBpcyBsZWZ0XG5cdHN0aWNrT25Nb2JpbGU/OiBib29sZWFuOyAvLyBJZiB0cnVlLCB3aWxsIG5vdCBiZSBoaWRkZW4gd2hlbiBpbiBtb2JpbGUgbW9kZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW0odmFsdWU6IGFueSk6IHZhbHVlIGlzIEhvcml6b250YWxQb3NpdGlvbmVkSXRlbSB7XG5cdHJldHVybiAhISgodmFsdWUgYXMgSG9yaXpvbnRhbFBvc2l0aW9uZWRJdGVtKS5wb3NpdGlvbiB8fCAodmFsdWUgYXMgSG9yaXpvbnRhbFBvc2l0aW9uZWRJdGVtKS5zdGlja09uTW9iaWxlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzUm91dGVJdGVtPFQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBSb3V0ZUl0ZW08VD4ge1xuXHRyZXR1cm4gISEoKHZhbHVlIGFzIFJvdXRlSXRlbTxUPikudG8gfHwgKHZhbHVlIGFzIFJvdXRlSXRlbTxUPikuZXhhY3QgfHwgKHZhbHVlIGFzIFJvdXRlSXRlbTxUPikuc3RyaWN0IHx8ICh2YWx1ZSBhcyBSb3V0ZUl0ZW08VD4pLnNlbnNpdGl2ZSk7XG59XG4iLCJpbXBvcnQgdHlwZSB7RGVmaW5lUm91dGVPcHRpb25zfSBmcm9tICdAaW1wZXJpdW0vcm91dGVyJztcbmltcG9ydCB7dXNlVEZvcm19IGZyb20gJ0B0aHgvY29udHJvbHMnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0J1dHRvbiwgRm9ybSwgSWNvbiwgTWVzc2FnZSwgUG9wdXB9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB0eXBlIHtBY3Rpb25Gb3JtU2lkZWJhckl0ZW0sIENvbnRlbnREYXRhfSBmcm9tICcuLi90eXBlcyc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnaW1wZXJpdW0ubGF5b3V0LmNvbnRlbnQuY29tcG9uZW50cy5BY3Rpb25Gb3JtJyk7XG5cbmludGVyZmFjZSBBY3Rpb25Gb3JtUHJvcHM8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IHtcblx0aXRlbTogQWN0aW9uRm9ybVNpZGViYXJJdGVtPFQsIEs+O1xuXHRkYXRhOiBDb250ZW50RGF0YTxULCBLPjtcblx0b25IaWRlRm9ybTogKCkgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEFjdGlvbkZvcm08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KHtpdGVtLCBkYXRhLCBvbkhpZGVGb3JtfTogQWN0aW9uRm9ybVByb3BzPFQsIEs+KSB7XG5cdC8vIEdldCBpbml0aWFsIHZhbHVlc1xuXHRsZXQgaW5pdGlhbFZhbHVlcyA9IHt9O1xuXHRpZiAoaXRlbS5pbml0aWFsVmFsdWVzKSB7XG5cdFx0aWYgKHR5cGVvZiBpdGVtLmluaXRpYWxWYWx1ZXMgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGluaXRpYWxWYWx1ZXMgPSBpdGVtLmluaXRpYWxWYWx1ZXMoZGF0YSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGluaXRpYWxWYWx1ZXMgPSBpdGVtLmluaXRpYWxWYWx1ZXM7XG5cdFx0fVxuXHR9XG5cblx0Ly8gVEZvcm1cblx0Y29uc3Qge2hhc0Vycm9ycywgaGFzV2FybmluZ3MsIGhhbmRsZVN1Ym1pdCwgaGFuZGxlQ2hhbmdlLCB2YWx1ZXMsIHJlc2V0Rm9ybSwgZXJyb3JzLCBmaWVsZEVycm9yfSA9IHVzZVRGb3JtKHtcblx0XHRpbml0aWFsVmFsdWVzLFxuXHRcdG9uU3VibWl0OiBzdWJtaXRWYWx1ZXMgPT4ge1xuXHRcdFx0aWYgKGl0ZW0ub25TdWJtaXQpIHtcblx0XHRcdFx0aXRlbS5vblN1Ym1pdChzdWJtaXRWYWx1ZXMsIGRhdGEpO1xuXHRcdFx0fVxuXHRcdFx0b25IaWRlRm9ybSgpO1xuXHRcdH0sXG5cdFx0ZW5hYmxlUmVpbml0aWFsaXplOiB0cnVlLFxuXHRcdHZhbGlkYXRpb25TY2hlbWE6IGl0ZW0udmFsaWRhdGlvblNjaGVtYSxcblx0fSk7XG5cblx0Y29uc3Qgc2F2ZUJ1dHRvbiA9IGhhc1dhcm5pbmdzID8gKFxuXHRcdDxQb3B1cFxuXHRcdFx0dHJpZ2dlcj17XG5cdFx0XHRcdDxCdXR0b24gcG9zaXRpdmUgdHlwZT1cInN1Ym1pdFwiIGZsb2F0ZWQ9XCJyaWdodFwiIGljb24gbGFiZWxQb3NpdGlvbj1cImxlZnRcIj5cblx0XHRcdFx0XHQ8SWNvbiBuYW1lPVwiZXhjbGFtYXRpb24gY2lyY2xlXCIgY29sb3I9XCJyZWRcIiAvPlxuXHRcdFx0XHRcdFNhdmVcblx0XHRcdFx0PC9CdXR0b24+XG5cdFx0XHR9XG5cdFx0XHRjb250ZW50PXs8TWVzc2FnZSBlcnJvciBsaXN0PXtPYmplY3QudmFsdWVzKGVycm9ycyl9IC8+fVxuXHRcdFx0b249XCJob3ZlclwiXG5cdFx0Lz5cblx0KSA6IChcblx0XHQ8QnV0dG9uIHBvc2l0aXZlIHR5cGU9XCJzdWJtaXRcIiBmbG9hdGVkPVwicmlnaHRcIj5cblx0XHRcdFNhdmVcblx0XHQ8L0J1dHRvbj5cblx0KTtcblxuXHQvLyBSZW5kZXIgZm9ybVxuXHRyZXR1cm4gKFxuXHRcdDxGb3JtIGVycm9yPXtoYXNFcnJvcnN9IHdhcm5pbmc9e2hhc1dhcm5pbmdzfSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fT5cblx0XHRcdHtpdGVtLmZvcm0oe2hhbmRsZUNoYW5nZSwgdmFsdWVzLCBkYXRhLCBmaWVsZEVycm9yfSl9XG5cdFx0XHR7c2F2ZUJ1dHRvbn1cblx0XHRcdDxCdXR0b25cblx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdG9uQ2xpY2s9eygpID0+IHtcblx0XHRcdFx0XHRyZXNldEZvcm0oKTtcblx0XHRcdFx0XHRvbkhpZGVGb3JtKCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdENhbmNlbFxuXHRcdFx0PC9CdXR0b24+XG5cdFx0PC9Gb3JtPlxuXHQpO1xufVxuIiwiaW1wb3J0IHR5cGUge0RlZmluZVJvdXRlT3B0aW9uc30gZnJvbSAnQGltcGVyaXVtL3JvdXRlcic7XG5pbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7QnV0dG9ufSBmcm9tICdzZW1hbnRpYy11aS1yZWFjdCc7XG5pbXBvcnQgdHlwZSB7QWN0aW9uRm9ybVNpZGViYXJJdGVtLCBDb250ZW50RGF0YX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtnZXRDb2xvciwgZ2V0SWNvbiwgZ2V0VGV4dH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtBY3Rpb25Gb3JtfSBmcm9tICcuL0FjdGlvbkZvcm0nO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5jb250ZW50LmNvbXBvbmVudHMuQWN0aW9uRm9ybVNpZGViYXJJdGVtQ29tcG9uZW50Jyk7XG5cbmludGVyZmFjZSBBY3Rpb25Gb3JtU2lkZWJhckl0ZW1Db21wb25lbnRQcm9wczxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4ge1xuXHRpdGVtOiBBY3Rpb25Gb3JtU2lkZWJhckl0ZW08VCwgSz47XG5cdGRhdGE6IENvbnRlbnREYXRhPFQsIEs+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQWN0aW9uRm9ybVNpZGViYXJJdGVtQ29tcG9uZW50PFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPih7XG5cdGl0ZW0sXG5cdGRhdGEsXG59OiBBY3Rpb25Gb3JtU2lkZWJhckl0ZW1Db21wb25lbnRQcm9wczxULCBLPikge1xuXHRjb25zdCBbaXNFZGl0LCBzZXRJc0VkaXRdID0gdXNlU3RhdGUoZmFsc2UpO1xuXG5cdGlmIChpc0VkaXQpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PEFjdGlvbkZvcm1cblx0XHRcdFx0aXRlbT17aXRlbX1cblx0XHRcdFx0ZGF0YT17ZGF0YX1cblx0XHRcdFx0b25IaWRlRm9ybT17KCkgPT4ge1xuXHRcdFx0XHRcdHNldElzRWRpdChmYWxzZSk7XG5cdFx0XHRcdH19XG5cdFx0XHQvPlxuXHRcdCk7XG5cdH1cblxuXHRjb25zdCBpY29uID0gZ2V0SWNvbihpdGVtLCBkYXRhKTtcblxuXHQvLyBSZW5kZXIgYWN0aW9uIGJ1dHRvblxuXHRyZXR1cm4gKFxuXHRcdDxCdXR0b25cblx0XHRcdGZsdWlkXG5cdFx0XHRjb21wYWN0XG5cdFx0XHRjb2xvcj17Z2V0Q29sb3IoaXRlbSwgZGF0YSl9XG5cdFx0XHRpY29uPXshIWljb259XG5cdFx0XHRsYWJlbFBvc2l0aW9uPXtpY29uID8gJ2xlZnQnIDogdW5kZWZpbmVkfVxuXHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRzZXRJc0VkaXQodHJ1ZSk7XG5cdFx0XHR9fVxuXHRcdD5cblx0XHRcdHtpY29ufVxuXHRcdFx0e2dldFRleHQoaXRlbSwgZGF0YSl9XG5cdFx0PC9CdXR0b24+XG5cdCk7XG59XG4iLCJpbXBvcnQgdHlwZSB7RGVmaW5lUm91dGVPcHRpb25zfSBmcm9tICdAaW1wZXJpdW0vcm91dGVyJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge0FjdGlvblNpZGViYXJJdGVtLCBDb250ZW50RGF0YX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtnZXRDb2xvciwgZ2V0SWNvbiwgZ2V0VGV4dH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgQWN0aW9uU2lkZWJhckl0ZW1Db21wb25lbnRQcm9wczxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4ge1xuXHRpdGVtOiBBY3Rpb25TaWRlYmFySXRlbTxULCBLPjtcblx0ZGF0YTogQ29udGVudERhdGE8VCwgSz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBY3Rpb25TaWRlYmFySXRlbUNvbXBvbmVudDxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oe2l0ZW0sIGRhdGF9OiBBY3Rpb25TaWRlYmFySXRlbUNvbXBvbmVudFByb3BzPFQsIEs+KSB7XG5cdGNvbnN0IGljb24gPSBnZXRJY29uKGl0ZW0sIGRhdGEpO1xuXG5cdHJldHVybiAoXG5cdFx0PEJ1dHRvblxuXHRcdFx0Zmx1aWRcblx0XHRcdGNvbXBhY3Rcblx0XHRcdGNvbG9yPXtnZXRDb2xvcihpdGVtLCBkYXRhKX1cblx0XHRcdGljb249eyEhaWNvbn1cblx0XHRcdGxhYmVsUG9zaXRpb249e2ljb24gPyAnbGVmdCcgOiB1bmRlZmluZWR9XG5cdFx0XHRvbkNsaWNrPXsoKSA9PiB7XG5cdFx0XHRcdGl0ZW0ub25DbGljayhkYXRhKTtcblx0XHRcdH19XG5cdFx0PlxuXHRcdFx0e2ljb259XG5cdFx0XHR7Z2V0VGV4dChpdGVtLCBkYXRhKX1cblx0XHQ8L0J1dHRvbj5cblx0KTtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7aXNFcXVhbH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBSZWFjdCwge0RlcGVuZGVuY3lMaXN0LCBFZmZlY3RDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7RGF0YUhvb2tzfSBmcm9tICcuLi8uLi9kYXRhaG9va3MvRGF0YUhvb2tzJztcbmltcG9ydCB7YWN0aW9uc30gZnJvbSAnLi4vLi4vc3RhdGUnO1xuaW1wb3J0IHtzb3J0V2VpZ2h0ZWRJdGVtc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHt1c2VCdWlsZENvbnRlbnREYXRhfSBmcm9tICcuLi9ob29rcy91c2VCdWlsZENvbnRlbnREYXRhJztcbmltcG9ydCB0eXBlIHtQYWdlLCBSb3V0ZVBhcmFtZXRlcnN9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7SGVhZGVyfSBmcm9tICcuL0hlYWRlcic7XG5pbXBvcnQge1NpZGViYXJJdGVtV3JhcHBlcn0gZnJvbSAnLi9TaWRlYmFySXRlbVdyYXBwZXInO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5jb250ZW50LmNvbXBvbmVudHMuQ29udGVudENvbXBvbmVudCcpO1xuXG5pbnRlcmZhY2UgQ29udGVudENvbXBvbmVudFByb3BzPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiB7XG5cdHBhZ2U6IFBhZ2U8VCwgSz47XG5cdHBhcmFtczogUm91dGVQYXJhbWV0ZXJzPFRbS11bJ3BhcmFtcyddPjtcbn1cblxuZnVuY3Rpb24gdXNlRGVlcENvbXBhcmVNZW1vaXplKHZhbHVlOiBhbnkpIHtcblx0Y29uc3QgcmVmID0gdXNlUmVmKCk7XG5cdGlmICghdmFsdWUgJiYgIXJlZi5jdXJyZW50KSByZXR1cm4gcmVmLmN1cnJlbnQ7XG5cdGlmICghaXNFcXVhbCh2YWx1ZSwgcmVmLmN1cnJlbnQpKSB7XG5cdFx0cmVmLmN1cnJlbnQgPSB2YWx1ZTtcblx0fVxuXHRyZXR1cm4gcmVmLmN1cnJlbnQ7XG59XG5cbmZ1bmN0aW9uIHVzZURlZXBDb21wYXJlRWZmZWN0KGNhbGxiYWNrOiBFZmZlY3RDYWxsYmFjaywgZGVwczogRGVwZW5kZW5jeUxpc3QpIHtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuXHR1c2VFZmZlY3QoY2FsbGJhY2ssIGRlcHMubWFwKHVzZURlZXBDb21wYXJlTWVtb2l6ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udGVudENvbXBvbmVudDxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oe3BhZ2UsIHBhcmFtc306IENvbnRlbnRDb21wb25lbnRQcm9wczxULCBLPikge1xuXHRjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cdGNvbnN0IGRhdGEgPSB1c2VCdWlsZENvbnRlbnREYXRhKHtzdGF0ZVNlbGVjdG9ySG9vazogcGFnZS5zdGF0ZVNlbGVjdG9ySG9vaywgcGVybWlzc2lvblNlbGVjdG9ySG9vazogcGFnZS5wZXJtaXNzaW9uU2VsZWN0b3JIb29rLCBwYXJhbXN9KTtcblxuXHR1c2VEZWVwQ29tcGFyZUVmZmVjdCgoKSA9PiB7XG5cdFx0ZGlzcGF0Y2goYWN0aW9ucy5zZXRQYXJhbXMocGFyYW1zKSk7XG5cdH0sIFtkaXNwYXRjaCwgcGFyYW1zXSk7XG5cblx0Y29uc3QgY29udGVudCA9IHBhZ2UuY29udGVudChkYXRhKTtcblx0Y29uc3Qgc2lkZWJhckl0ZW1zID0gc29ydFdlaWdodGVkSXRlbXMocGFnZS5zaWRlYmFyIHx8IFtdKTtcblxuXHRjb25zdCBzaWRlYmFyID1cblx0XHRzaWRlYmFySXRlbXMubGVuZ3RoID4gMCA/IChcblx0XHRcdDxkaXYgY2xhc3NOYW1lPXtgJHtzdHlsZXMuc2lkZWJhcn0gaW1wZXJpdW1Db250ZW50U2lkZWJhcmB9PlxuXHRcdFx0XHQ8ZGl2IGNsYXNzTmFtZT17YCR7c3R5bGVzLmFjdGlvbnNIZWFkZXJ9IGltcGVyaXVtQ29udGVudFNpZGViYXJIZWFkZXJgfT5cblx0XHRcdFx0XHQ8aDM+QWN0aW9uczwvaDM+XG5cdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHR7c2lkZWJhckl0ZW1zLm1hcCgoc2IsIGluZGV4KSA9PiB7XG5cdFx0XHRcdFx0cmV0dXJuIChcblx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtzdHlsZXMuc2lkZWJhckl0ZW19IGtleT17aW5kZXh9PlxuXHRcdFx0XHRcdFx0XHQ8U2lkZWJhckl0ZW1XcmFwcGVyIGl0ZW09e3NifSBwYXJhbXM9e3BhcmFtc30gZGF0YT17ZGF0YX0gLz5cblx0XHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHRcdCk7XG5cdFx0XHRcdH0pfVxuXHRcdFx0PC9kaXY+XG5cdFx0KSA6IG51bGw7XG5cblx0cmV0dXJuIChcblx0XHQ8ZGl2IGNsYXNzTmFtZT17YCR7c3R5bGVzLnBhcmVudH0gaW1wZXJpdW1Db250ZW50V3JhcHBlclBhcmVudGB9PlxuXHRcdFx0PGRpdiBjbGFzc05hbWU9e2Ake3N0eWxlcy53cmFwcGVyfSBpbXBlcml1bUNvbnRlbnRXcmFwcGVyYH0+XG5cdFx0XHRcdDxIZWFkZXIgaGVhZGVyPXtwYWdlLmhlYWRlcn0gZGF0YT17ZGF0YX0gLz5cblx0XHRcdFx0PGRpdiBjbGFzc05hbWU9e2Ake3N0eWxlcy5jb250ZW50fSBpbXBlcml1bUNvbnRlbnQgJHtwYWdlLmZ1bGwgJiYgc3R5bGVzLmNvbnRlbnRGdWxsfWB9Pntjb250ZW50fTwvZGl2PlxuXHRcdFx0PC9kaXY+XG5cdFx0XHR7c2lkZWJhcn1cblx0XHRcdDxEYXRhSG9va3MgZGF0YUhvb2tzPXtwYWdlLmRhdGFIb29rcyB8fCBbXX0gLz5cblx0XHQ8L2Rpdj5cblx0KTtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IHR5cGUge0NvbnRlbnREYXRhLCBDdXN0b21TaWRlYmFySXRlbX0gZnJvbSAnLi4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgQ3VzdG9tU2lkZWJhckl0ZW1Db21wb25lbnRQcm9wczxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4ge1xuXHRpdGVtOiBDdXN0b21TaWRlYmFySXRlbTxULCBLPjtcblx0ZGF0YTogQ29udGVudERhdGE8VCwgSz47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDdXN0b21TaWRlYmFySXRlbUNvbXBvbmVudDxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oe2l0ZW0sIGRhdGF9OiBDdXN0b21TaWRlYmFySXRlbUNvbXBvbmVudFByb3BzPFQsIEs+KSB7XG5cdHJldHVybiBpdGVtLnJlbmRlcihkYXRhKTtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7Q29udGVudERhdGEsIENvbnRlbnRIZWFkZXJ9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9zdHlsZXMuY3NzJztcblxuY29uc3QgZCA9IGRlYnVnKCdpbXBlcml1bS5sYXlvdXQuY29udGVudC5jb21wb25lbnRzLkhlYWRlcicpO1xuXG5pbnRlcmZhY2UgSGVhZGVyUHJvcHM8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IHtcblx0aGVhZGVyOiBDb250ZW50SGVhZGVyPFQsIEs+O1xuXHRkYXRhOiBDb250ZW50RGF0YTxULCBLPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEhlYWRlcjxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oe2RhdGEsIGhlYWRlcn06IEhlYWRlclByb3BzPFQsIEs+KSB7XG5cdGlmIChoZWFkZXIpIHtcblx0XHRsZXQgaGVhZGVySW5mbyA9IHtcblx0XHRcdHRpdGxlOiAnJyxcblx0XHR9O1xuXHRcdGlmICh0eXBlb2YgaGVhZGVyID09PSAnc3RyaW5nJykge1xuXHRcdFx0aGVhZGVySW5mby50aXRsZSA9IGhlYWRlcjtcblx0XHR9IGVsc2UgaWYgKHR5cGVvZiBoZWFkZXIgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGhlYWRlckluZm8gPSBoZWFkZXIoZGF0YSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGhlYWRlckluZm8gPSBoZWFkZXI7XG5cdFx0fVxuXHRcdHJldHVybiAoXG5cdFx0XHQ8ZGl2IGNsYXNzTmFtZT17YCR7c3R5bGVzLmhlYWRlcn0gaW1wZXJpdW1Db250ZW50SGVhZGVyYH0+XG5cdFx0XHRcdDxoMj57aGVhZGVySW5mby50aXRsZX08L2gyPlxuXHRcdFx0PC9kaXY+XG5cdFx0KTtcblx0fVxuXHRyZXR1cm4gbnVsbDtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7TGlua30gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge0FjdGlvbkZvcm1TaWRlYmFySXRlbSwgQWN0aW9uU2lkZWJhckl0ZW0sIENvbnRlbnREYXRhLCBDdXN0b21TaWRlYmFySXRlbSwgRGl2aWRlclNpZGViYXJJdGVtLCBTaWRlYmFySXRlbX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtnZXRDb2xvciwgZ2V0SWNvbiwgZ2V0Um91dGVUbywgZ2V0VGV4dH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5pbnRlcmZhY2UgUGxhaW5TaWRlYmFySXRlbVByb3BzPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiB7XG5cdGl0ZW06IEV4Y2x1ZGU8U2lkZWJhckl0ZW08VCwgSz4sIEN1c3RvbVNpZGViYXJJdGVtPFQsIEs+IHwgQWN0aW9uU2lkZWJhckl0ZW08VCwgSz4gfCBBY3Rpb25Gb3JtU2lkZWJhckl0ZW08VCwgSz4gfCBEaXZpZGVyU2lkZWJhckl0ZW08VCwgSz4+O1xuXHRkYXRhOiBDb250ZW50RGF0YTxULCBLPjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBsYWluU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KHtpdGVtLCBkYXRhfTogUGxhaW5TaWRlYmFySXRlbVByb3BzPFQsIEs+KSB7XG5cdGNvbnN0IGljb24gPSBnZXRJY29uKGl0ZW0sIGRhdGEpO1xuXG5cdHJldHVybiAoXG5cdFx0PEJ1dHRvbiBmbHVpZCBjb21wYWN0IGNvbG9yPXtnZXRDb2xvcihpdGVtLCBkYXRhKX0gaWNvbj17ISFpY29ufSBsYWJlbFBvc2l0aW9uPXtpY29uID8gJ2xlZnQnIDogdW5kZWZpbmVkfSBhcz17TGlua30gdG89e2dldFJvdXRlVG8oaXRlbSwgZGF0YSl9PlxuXHRcdFx0e2ljb259XG5cdFx0XHR7Z2V0VGV4dChpdGVtLCBkYXRhKX1cblx0XHQ8L0J1dHRvbj5cblx0KTtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7UXVlcnl9IGZyb20gJ21pbmdvJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0RpdmlkZXJ9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB7dXNlQnVpbGRDb250ZW50RGF0YX0gZnJvbSAnLi4vaG9va3MvdXNlQnVpbGRDb250ZW50RGF0YSc7XG5pbXBvcnQgdHlwZSB7Q29udGVudERhdGEsIFJvdXRlUGFyYW1ldGVycywgU2lkZWJhckl0ZW19IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7aXNBY3Rpb25Gb3JtU2lkZWJhckl0ZW0sIGlzQWN0aW9uU2lkZWJhckl0ZW0sIGlzQ3VzdG9tU2lkZWJhckl0ZW0sIGlzRGl2aWRlclNpZGViYXJJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0FjdGlvbkZvcm1TaWRlYmFySXRlbUNvbXBvbmVudH0gZnJvbSAnLi9BY3Rpb25Gb3JtU2lkZWJhckl0ZW1Db21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25TaWRlYmFySXRlbUNvbXBvbmVudH0gZnJvbSAnLi9BY3Rpb25TaWRlYmFySXRlbUNvbXBvbmVudCc7XG5pbXBvcnQge0N1c3RvbVNpZGViYXJJdGVtQ29tcG9uZW50fSBmcm9tICcuL0N1c3RvbVNpZGViYXJJdGVtQ29tcG9uZW50JztcbmltcG9ydCB7UGxhaW5TaWRlYmFySXRlbX0gZnJvbSAnLi9QbGFpblNpZGViYXJJdGVtJztcblxuY29uc3QgZCA9IGRlYnVnKCdpbXBlcml1bS5sYXlvdXQuY29udGVudC5jb21wb25lbnRzLlNpZGViYXJJdGVtV3JhcHBlcicpO1xuXG5pbnRlcmZhY2UgU2lkZWJhckl0ZW1XcmFwcGVyUHJvcHM8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IHtcblx0aXRlbTogU2lkZWJhckl0ZW08VCwgSz47XG5cdGRhdGE/OiBDb250ZW50RGF0YTxULCBLPjtcblx0cGFyYW1zOiBSb3V0ZVBhcmFtZXRlcnM8VFtLXVsncGFyYW1zJ10+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU2lkZWJhckl0ZW1XcmFwcGVyPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPih7aXRlbSwgZGF0YTogcGFyZW50RGF0YSwgcGFyYW1zfTogU2lkZWJhckl0ZW1XcmFwcGVyUHJvcHM8VCwgSz4pIHtcblx0Y29uc3QgZGF0YSA9IHVzZUJ1aWxkQ29udGVudERhdGEoe1xuXHRcdGRhdGE6IHBhcmVudERhdGEsXG5cdFx0c3RhdGVTZWxlY3Rvckhvb2s6IGl0ZW0uc3RhdGVTZWxlY3Rvckhvb2ssXG5cdFx0cGVybWlzc2lvblNlbGVjdG9ySG9vazogaXRlbS5wZXJtaXNzaW9uU2VsZWN0b3JIb29rLFxuXHRcdHBhcmFtcyxcblx0fSk7XG5cblx0Ly8gQ2hlY2sgaWYgdmlzaWJsZVxuXHRpZiAoaXRlbS52aXNpYmxlKSB7XG5cdFx0aWYgKHR5cGVvZiBpdGVtLnZpc2libGUgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGlmICghaXRlbS52aXNpYmxlKGRhdGEpKSByZXR1cm4gbnVsbDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0Y29uc3QgcSA9IG5ldyBRdWVyeShpdGVtLnZpc2libGUgfHwge30pO1xuXHRcdFx0aWYgKCFxLnRlc3QoZGF0YSkpIHJldHVybiBudWxsO1xuXHRcdH1cblx0fVxuXG5cdGlmIChpc0N1c3RvbVNpZGViYXJJdGVtKGl0ZW0pKSB7XG5cdFx0cmV0dXJuIDxDdXN0b21TaWRlYmFySXRlbUNvbXBvbmVudCBpdGVtPXtpdGVtfSBkYXRhPXtkYXRhfSAvPjtcblx0fVxuXG5cdGlmIChpc0FjdGlvblNpZGViYXJJdGVtKGl0ZW0pKSB7XG5cdFx0cmV0dXJuIDxBY3Rpb25TaWRlYmFySXRlbUNvbXBvbmVudCBpdGVtPXtpdGVtfSBkYXRhPXtkYXRhfSAvPjtcblx0fVxuXG5cdGlmIChpc0FjdGlvbkZvcm1TaWRlYmFySXRlbShpdGVtKSkge1xuXHRcdHJldHVybiA8QWN0aW9uRm9ybVNpZGViYXJJdGVtQ29tcG9uZW50IGl0ZW09e2l0ZW19IGRhdGE9e2RhdGF9IC8+O1xuXHR9XG5cblx0aWYgKGlzRGl2aWRlclNpZGViYXJJdGVtKGl0ZW0pKSB7XG5cdFx0cmV0dXJuIDxEaXZpZGVyIC8+O1xuXHR9XG5cblx0Ly8gQHRzLWlnbm9yZSBUaGVzZSB0eXBlcyBzaG91bGQgd29yaywgbm90IHN1cmUgd2h5IGl0J3Mgbm90LiBSdW50aW1lIGNvZGUgaXMgZmluZS5cblx0cmV0dXJuIDxQbGFpblNpZGViYXJJdGVtIGl0ZW09e2l0ZW19IGRhdGE9e2RhdGF9IC8+O1xufVxuIiwiaW1wb3J0IHR5cGUge1JvdXRlcywgRGVmaW5lUm91dGVPcHRpb25zLCBLZXllZFJvdXRlUmVuZGVyRm5zfSBmcm9tICdAaW1wZXJpdW0vcm91dGVyJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtDb250ZW50Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvQ29udGVudENvbXBvbmVudCc7XG5pbXBvcnQgdHlwZSB7UGFnZXMsIFJvdXRlUGFyYW1ldGVyc30gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQge2lzUGFnZX0gZnJvbSAnLi90eXBlcyc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnaW1wZXJpdW0ubGF5b3V0LmNvbnRlbnQuY3JlYXRlUGFnZXMnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVBhZ2VzPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnM+KHJvdXRlczogUm91dGVzPFQ+LCBwYWdlczogUGFnZXM8VD4pIHtcblx0Y29uc3QgcmVuZGVyUm91dGVQcm9wc09iaiA9IE9iamVjdC5rZXlzKHJvdXRlcy50eXBlcykucmVkdWNlKChtZW1vLCBrZXkpID0+IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Li4ubWVtbyxcblx0XHRcdFtrZXldOiAocGFyYW1zOiBSb3V0ZVBhcmFtZXRlcnM8VFt0eXBlb2Yga2V5XVsncGFyYW1zJ10+KSA9PiB7XG5cdFx0XHRcdGNvbnN0IHBnID0gcGFnZXNba2V5XTtcblx0XHRcdFx0aWYgKGlzUGFnZShwZykpIHtcblx0XHRcdFx0XHRyZXR1cm4gPENvbnRlbnRDb21wb25lbnQgcGFnZT17cGd9IHBhcmFtcz17cGFyYW1zfSAvPjtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdDxDb250ZW50Q29tcG9uZW50XG5cdFx0XHRcdFx0XHRwYWdlPXt7XG5cdFx0XHRcdFx0XHRcdGNvbnRlbnQ6IHBnLFxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdHBhcmFtcz17cGFyYW1zfVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0XHR9LFxuXHRcdH07XG5cdH0sIHt9IGFzIEtleWVkUm91dGVSZW5kZXJGbnM8VD4pO1xuXG5cdHJldHVybiByb3V0ZXMucmVuZGVyUm91dGVQcm9wcyhyZW5kZXJSb3V0ZVByb3BzT2JqKTtcbn1cbiIsImltcG9ydCB0eXBlIHtEaXZpZGVyU2lkZWJhckl0ZW19IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgZGl2aWRlclNpZGViYXJJdGVtOiBEaXZpZGVyU2lkZWJhckl0ZW08YW55LCBhbnk+ID0ge1xuXHR0ZXh0OiAnJyxcblx0ZGl2aWRlcjogdHJ1ZSxcbn07XG4iLCJpbXBvcnQgdHlwZSB7RGVmaW5lUm91dGVPcHRpb25zfSBmcm9tICdAaW1wZXJpdW0vcm91dGVyJztcbmltcG9ydCB0eXBlIHtVc2VCdWlsZERhdGFQYXJhbXN9IGZyb20gJy4uLy4uL2hvb2tzL3VzZUJ1aWxkRGF0YSc7XG5pbXBvcnQge3VzZUJ1aWxkRGF0YX0gZnJvbSAnLi4vLi4vaG9va3MvdXNlQnVpbGREYXRhJztcbmltcG9ydCB0eXBlIHtDb250ZW50RGF0YSwgUm91dGVQYXJhbWV0ZXJzfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBVc2VCdWlsZENvbnRlbnREYXRhUGFyYW1zPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiBleHRlbmRzIFVzZUJ1aWxkRGF0YVBhcmFtcyB7XG5cdGRhdGE/OiBDb250ZW50RGF0YTxULCBLPjtcblx0cGFyYW1zOiBSb3V0ZVBhcmFtZXRlcnM8VFtLXVsncGFyYW1zJ10+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXNlQnVpbGRDb250ZW50RGF0YTxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oe1xuXHRkYXRhLFxuXHRzdGF0ZVNlbGVjdG9ySG9vayxcblx0cGVybWlzc2lvblNlbGVjdG9ySG9vayxcblx0cm91dGVJdGVtLFxuXHRwYXJhbXMsXG59OiBVc2VCdWlsZENvbnRlbnREYXRhUGFyYW1zPFQsIEs+KSB7XG5cdGNvbnN0IGJ1aWxkRGF0YSA9IHVzZUJ1aWxkRGF0YSh7ZGF0YSwgc3RhdGVTZWxlY3Rvckhvb2ssIHBlcm1pc3Npb25TZWxlY3Rvckhvb2ssIHJvdXRlSXRlbX0pO1xuXHRyZXR1cm4ge1xuXHRcdC4uLmJ1aWxkRGF0YSxcblx0XHRwYXJhbXMsXG5cdH07XG59XG4iLCJpbXBvcnQgdHlwZSB7RGVmaW5lUm91dGVPcHRpb25zLCBQYXJhbWV0ZXJzRnJvbUFzc2VydGlvbn0gZnJvbSAnQGltcGVyaXVtL3JvdXRlcic7XG5pbXBvcnQgdHlwZSBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgdHlwZSB7U2VtYW50aWNDT0xPUlMsIFNlbWFudGljSUNPTlN9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB0eXBlIHtSb3V0ZUl0ZW0sIFZpc2liaWxpdHlJdGVtLCBXZWlnaHRlZEl0ZW19IGZyb20gJy4uL2NvbW1vbkl0ZW1zJztcbmltcG9ydCB0eXBlIHtEYXRhSG9va0l0ZW19IGZyb20gJy4uL2RhdGFob29rcy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7RGF0YSwgUGVybWlzc2lvblNlbGVjdG9ySG9vaywgU3RhdGVTZWxlY3Rvckhvb2t9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IHR5cGUgUm91dGVQYXJhbWV0ZXJzPFQgZXh0ZW5kcyByZWFkb25seSBzdHJpbmdbXSB8IHVuZGVmaW5lZD4gPSBUIGV4dGVuZHMgcmVhZG9ubHkgc3RyaW5nW10gPyBQYXJhbWV0ZXJzRnJvbUFzc2VydGlvbjxUPiA6IG5ldmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRlbnREYXRhPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiBleHRlbmRzIERhdGEge1xuXHRwYXJhbXM6IFJvdXRlUGFyYW1ldGVyczxUW0tdWydwYXJhbXMnXT47XG59XG5cbmV4cG9ydCB0eXBlIENvbnRlbnQ8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+ID0gKGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSA9PiBKU1guRWxlbWVudDtcblxuZXhwb3J0IGludGVyZmFjZSBCYXNlU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IGV4dGVuZHMgV2VpZ2h0ZWRJdGVtLCBWaXNpYmlsaXR5SXRlbSB7XG5cdHRleHQ6IHN0cmluZyB8ICgoZGF0YTogQ29udGVudERhdGE8VCwgSz4pID0+IHN0cmluZyk7XG5cdGljb24/OiBTZW1hbnRpY0lDT05TIHwgKChkYXRhOiBDb250ZW50RGF0YTxULCBLPikgPT4gU2VtYW50aWNJQ09OUyk7XG5cdGNvbG9yPzogU2VtYW50aWNDT0xPUlMgfCAoKGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSA9PiBTZW1hbnRpY0NPTE9SUyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGl2aWRlclNpZGViYXJJdGVtPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiBleHRlbmRzIEJhc2VTaWRlYmFySXRlbTxULCBLPiB7XG5cdGRpdmlkZXI6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IGV4dGVuZHMgQmFzZVNpZGViYXJJdGVtPFQsIEs+IHtcblx0b25DbGljazogKGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSA9PiB2b2lkO1xufVxuXG5pbnRlcmZhY2UgQWN0aW9uRm9ybVNpZGViYXJJdGVtRm9ybVBhcmFtczxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4ge1xuXHR2YWx1ZXM6IFJlY29yZDxzdHJpbmcsIGFueT47XG5cdGhhbmRsZUNoYW5nZTogKGU6IFJlYWN0LkNoYW5nZUV2ZW50PGFueT4pID0+IHZvaWQ7XG5cdGZpZWxkRXJyb3I6IChmaWVsZE5hbWU6IHN0cmluZyB8IG51bWJlcikgPT4gYm9vbGVhbjtcblx0ZGF0YTogQ29udGVudERhdGE8VCwgSz47XG59XG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkZvcm1TaWRlYmFySXRlbTxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4gZXh0ZW5kcyBCYXNlU2lkZWJhckl0ZW08VCwgSz4ge1xuXHRmb3JtOiAocGFyYW1zOiBBY3Rpb25Gb3JtU2lkZWJhckl0ZW1Gb3JtUGFyYW1zPFQsIEs+KSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG5cdGluaXRpYWxWYWx1ZXM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgKChkYXRhOiBDb250ZW50RGF0YTxULCBLPikgPT4gUmVjb3JkPHN0cmluZywgYW55Pik7XG5cdG9uU3VibWl0PzogKHZhbHVlczogUmVjb3JkPHN0cmluZywgYW55PiwgZGF0YTogQ29udGVudERhdGE8VCwgSz4pID0+IHZvaWQ7XG5cdHZhbGlkYXRpb25TY2hlbWE/OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IGV4dGVuZHMgV2VpZ2h0ZWRJdGVtLCBWaXNpYmlsaXR5SXRlbSB7XG5cdHJlbmRlcjogKGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSA9PiBKU1guRWxlbWVudCB8IG51bGw7XG59XG5cbmV4cG9ydCB0eXBlIFNpZGViYXJJdGVtPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPiA9XG5cdHwgKEJhc2VTaWRlYmFySXRlbTxULCBLPiAmIFJvdXRlSXRlbTxDb250ZW50RGF0YTxULCBLPj4pXG5cdHwgQWN0aW9uU2lkZWJhckl0ZW08VCwgSz5cblx0fCBDdXN0b21TaWRlYmFySXRlbTxULCBLPlxuXHR8IEFjdGlvbkZvcm1TaWRlYmFySXRlbTxULCBLPlxuXHR8IERpdmlkZXJTaWRlYmFySXRlbTxULCBLPjtcblxuZXhwb3J0IHR5cGUgQ29udGVudEhlYWRlcjxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4gPVxuXHR8IHN0cmluZ1xuXHR8IHt0aXRsZTogc3RyaW5nOyBpY29uPzogc3RyaW5nfSAvLyBUT0RPIGljb24gc2hvdWxkIHByb2JhYmx5IGJlIFNlbWFudGljSUNPTlNcblx0fCAoKGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSA9PiB7dGl0bGU6IHN0cmluZzsgaWNvbj86IHN0cmluZ30pXG5cdHwgdW5kZWZpbmVkO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2U8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+IHtcblx0ZGF0YUhvb2tzPzogRGF0YUhvb2tJdGVtW107XG5cdHN0YXRlU2VsZWN0b3JIb29rPzogU3RhdGVTZWxlY3Rvckhvb2sgfCBTdGF0ZVNlbGVjdG9ySG9va1tdO1xuXHRwZXJtaXNzaW9uU2VsZWN0b3JIb29rPzogUGVybWlzc2lvblNlbGVjdG9ySG9vayB8IFBlcm1pc3Npb25TZWxlY3Rvckhvb2tbXTtcblx0Y29udGVudDogQ29udGVudDxULCBLPjtcblx0aGVhZGVyPzogQ29udGVudEhlYWRlcjxULCBLPjtcblx0c2lkZWJhcj86IFNpZGViYXJJdGVtPFQsIEs+W107XG5cdGZ1bGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgdHlwZSBQYWdlczxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zPiA9IHtcblx0W2tleSBpbiBrZXlvZiBUXTogUGFnZTxULCBrZXk+IHwgQ29udGVudDxULCBrZXk+O1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzUGFnZTxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFBhZ2U8VCwgSz4ge1xuXHRyZXR1cm4gISEodmFsdWUgYXMgUGFnZTxULCBLPikuY29udGVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBBY3Rpb25TaWRlYmFySXRlbTxULCBLPiB7XG5cdHJldHVybiAhISh2YWx1ZSBhcyBBY3Rpb25TaWRlYmFySXRlbTxULCBLPikub25DbGljaztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uRm9ybVNpZGViYXJJdGVtPFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPih2YWx1ZTogYW55KTogdmFsdWUgaXMgQWN0aW9uRm9ybVNpZGViYXJJdGVtPFQsIEs+IHtcblx0cmV0dXJuICEhKHZhbHVlIGFzIEFjdGlvbkZvcm1TaWRlYmFySXRlbTxULCBLPikuZm9ybTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VzdG9tU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDdXN0b21TaWRlYmFySXRlbTxULCBLPiB7XG5cdHJldHVybiAhISh2YWx1ZSBhcyBDdXN0b21TaWRlYmFySXRlbTxULCBLPikucmVuZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEaXZpZGVyU2lkZWJhckl0ZW08VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEaXZpZGVyU2lkZWJhckl0ZW08VCwgSz4ge1xuXHRyZXR1cm4gKHZhbHVlIGFzIERpdmlkZXJTaWRlYmFySXRlbTxULCBLPikuZGl2aWRlcjtcbn1cbiIsImltcG9ydCB0eXBlIHtEZWZpbmVSb3V0ZU9wdGlvbnN9IGZyb20gJ0BpbXBlcml1bS9yb3V0ZXInO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7SWNvbiwgU2VtYW50aWNDT0xPUlN9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB0eXBlIHtSb3V0ZUl0ZW19IGZyb20gJy4uL2NvbW1vbkl0ZW1zJztcbmltcG9ydCB0eXBlIHtCYXNlU2lkZWJhckl0ZW0sIENvbnRlbnREYXRhfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEljb248VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KGl0ZW06IEJhc2VTaWRlYmFySXRlbTxULCBLPiwgZGF0YTogQ29udGVudERhdGE8VCwgSz4pIHtcblx0aWYgKGl0ZW0uaWNvbikge1xuXHRcdGNvbnN0IGljb25OYW1lID0gdHlwZW9mIGl0ZW0uaWNvbiA9PT0gJ2Z1bmN0aW9uJyA/IGl0ZW0uaWNvbihkYXRhKSA6IGl0ZW0uaWNvbjtcblx0XHRyZXR1cm4gPEljb24gbmFtZT17aWNvbk5hbWV9IC8+O1xuXHR9XG5cdHJldHVybiBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Um91dGVUbzxUIGV4dGVuZHMgRGVmaW5lUm91dGVPcHRpb25zLCBLIGV4dGVuZHMga2V5b2YgVD4oaXRlbTogUm91dGVJdGVtPENvbnRlbnREYXRhPFQsIEs+PiwgZGF0YTogQ29udGVudERhdGE8VCwgSz4pIHtcblx0aWYgKGl0ZW0udG8pIHtcblx0XHRyZXR1cm4gdHlwZW9mIGl0ZW0udG8gPT09ICdmdW5jdGlvbicgPyBpdGVtLnRvKGRhdGEpIDogaXRlbS50bztcblx0fVxuXHRyZXR1cm4gJyc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUZXh0PFQgZXh0ZW5kcyBEZWZpbmVSb3V0ZU9wdGlvbnMsIEsgZXh0ZW5kcyBrZXlvZiBUPihpdGVtOiBCYXNlU2lkZWJhckl0ZW08VCwgSz4sIGRhdGE6IENvbnRlbnREYXRhPFQsIEs+KSB7XG5cdHJldHVybiB0eXBlb2YgaXRlbS50ZXh0ID09PSAnZnVuY3Rpb24nID8gaXRlbS50ZXh0KGRhdGEpIDogaXRlbS50ZXh0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29sb3I8VCBleHRlbmRzIERlZmluZVJvdXRlT3B0aW9ucywgSyBleHRlbmRzIGtleW9mIFQ+KGl0ZW06IEJhc2VTaWRlYmFySXRlbTxULCBLPiwgZGF0YTogQ29udGVudERhdGE8VCwgSz4pOiBTZW1hbnRpY0NPTE9SUyB7XG5cdGlmICghaXRlbS5jb2xvcikgcmV0dXJuICdibHVlJztcblx0cmV0dXJuIHR5cGVvZiBpdGVtLmNvbG9yID09PSAnZnVuY3Rpb24nID8gaXRlbS5jb2xvcihkYXRhKSA6IGl0ZW0uY29sb3I7XG59XG4iLCJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHtjb21wb3NlfSBmcm9tICdsb2Rhc2gvZnAnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlTG9jYXRpb259IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHtFeGVjdXRlRGF0YUhvb2t9IGZyb20gJy4vRXhlY3V0ZURhdGFIb29rJztcbmltcG9ydCB0eXBlIHtEYXRhSG9va0l0ZW19IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5kYXRhaG9va3MuRGF0YUhvb2tzJyk7XG5cbmludGVyZmFjZSBEYXRhSG9va3NQcm9wcyB7XG5cdGRhdGFIb29rczogRGF0YUhvb2tJdGVtW107XG59XG5cbi8qKlxuICogUmVuZGVycyBsYXlvdXQgZGF0YSBob29rcy4gVGhlc2UgaG9va3Mgc2hvdWxkIHJldHVybiBub3RoaW5nLiBBbGwgaW50ZXJhY3Rpb24gc2hvdWxkIGJlIGluIHNpZGUgZWZmZWN0cywgdXN1YWxseSByZXRyaWV2aW5nIGRhdGEgYW5kIHNldHRpbmcgUmVkdXggc3RhdGUuXG4gKiBAcGFyYW0gZGF0YUhvb2tzXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERhdGFIb29rcyh7ZGF0YUhvb2tzfTogRGF0YUhvb2tzUHJvcHMpIHtcblx0Y29uc3Qge3BhdGhuYW1lfSA9IHVzZUxvY2F0aW9uKCk7XG5cblx0cmV0dXJuIChcblx0XHQ8PlxuXHRcdFx0e2RhdGFIb29rcy5tYXAoKGhvb2ssIGluZGV4KSA9PiB7XG5cdFx0XHRcdGlmICh0eXBlb2YgaG9vayA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcblx0XHRcdFx0XHRyZXR1cm4gPEV4ZWN1dGVEYXRhSG9vayBrZXk9e2luZGV4fSBkYXRhSG9vaz17aG9va30gLz47XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29uc3QgZm4gPSBBcnJheS5pc0FycmF5KGhvb2sucm91dGVNYXRjaCkgPyBjb21wb3NlKGhvb2sucm91dGVNYXRjaCkgOiBob29rLnJvdXRlTWF0Y2g7XG5cdFx0XHRcdGNvbnN0IHJvdXRlUGFyYW1zID0gZm4ocGF0aG5hbWUpO1xuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheShob29rLmRhdGFIb29rKSkge1xuXHRcdFx0XHRcdHJldHVybiAoXG5cdFx0XHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG5cdFx0XHRcdFx0XHQ8UmVhY3QuRnJhZ21lbnQga2V5PXtpbmRleH0+XG5cdFx0XHRcdFx0XHRcdHtob29rLmRhdGFIb29rLm1hcCgoZGgsIGluZGV4MikgPT4ge1xuXHRcdFx0XHRcdFx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gPEV4ZWN1dGVEYXRhSG9vayBrZXk9e2luZGV4Mn0gZGF0YUhvb2s9e2RofSByb3V0ZVBhcmFtcz17cm91dGVQYXJhbXN9IC8+O1xuXHRcdFx0XHRcdFx0XHR9KX1cblx0XHRcdFx0XHRcdDwvUmVhY3QuRnJhZ21lbnQ+XG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG5cdFx0XHRcdHJldHVybiA8RXhlY3V0ZURhdGFIb29rIGRhdGFIb29rPXtob29rLmRhdGFIb29rfSBrZXk9e2luZGV4fSByb3V0ZVBhcmFtcz17cm91dGVQYXJhbXN9IC8+O1xuXHRcdFx0fSl9XG5cdFx0PC8+XG5cdCk7XG59XG4iLCJpbXBvcnQgdHlwZSB7RGF0YUhvb2t9IGZyb20gJy4vdHlwZXMnO1xuXG5pbnRlcmZhY2UgRXhlY3V0ZURhdGFIb29rUHJvcHMge1xuXHRkYXRhSG9vazogRGF0YUhvb2s7XG5cdHJvdXRlUGFyYW1zPzogYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRXhlY3V0ZURhdGFIb29rKHtkYXRhSG9vaywgcm91dGVQYXJhbXN9OiBFeGVjdXRlRGF0YUhvb2tQcm9wcykge1xuXHRkYXRhSG9vayhyb3V0ZVBhcmFtcyk7XG5cdHJldHVybiBudWxsO1xufVxuIiwiaW1wb3J0IHt1c2VFZmZlY3R9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7dXNlRGlzcGF0Y2h9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7YWN0aW9uc30gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHR5cGUge1Blcm1pc3Npb25TZWxlY3Rvckhvb2t9IGZyb20gJy4uL3R5cGVzJztcblxuaW50ZXJmYWNlIEV4ZWN1dGVQZXJtaXNzaW9uSG9va1Byb3BzIHtcblx0cGVybWlzc2lvbkhvb2s6IFBlcm1pc3Npb25TZWxlY3Rvckhvb2s7XG5cdHJvdXRlUGFyYW1zPzogYW55O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRXhlY3V0ZVBlcm1pc3Npb25Ib29rKHtwZXJtaXNzaW9uSG9vaywgcm91dGVQYXJhbXN9OiBFeGVjdXRlUGVybWlzc2lvbkhvb2tQcm9wcykge1xuXHRjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG5cdGNvbnN0IHBlcm1zID0gcGVybWlzc2lvbkhvb2socm91dGVQYXJhbXMpO1xuXG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0T2JqZWN0LmtleXMocGVybXMpLmZvckVhY2gocGVybWlzc2lvbiA9PiB7XG5cdFx0XHRkaXNwYXRjaChhY3Rpb25zLnNldFBlcm1pc3Npb24oe3Blcm1pc3Npb24sIHJlc3VsdDogcGVybXNbcGVybWlzc2lvbl19KSk7XG5cdFx0fSk7XG5cdH0sIFtkaXNwYXRjaCwgcGVybXNdKTtcblxuXHRyZXR1cm4gbnVsbDtcbn1cbiIsImltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHR5cGUge1Blcm1pc3Npb25TZWxlY3Rvckhvb2t9IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7RXhlY3V0ZVBlcm1pc3Npb25Ib29rfSBmcm9tICcuL0V4ZWN1dGVQZXJtaXNzaW9uSG9vayc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnaW1wZXJpdW0ubGF5b3V0LmRhdGFob29rcy5QZXJtaXNzaW9uSG9va3MnKTtcblxuaW50ZXJmYWNlIFBlcm1pc3Npb25Ib29rc1Byb3BzIHtcblx0cGVybWlzc2lvbkhvb2tzOiBQZXJtaXNzaW9uU2VsZWN0b3JIb29rW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQZXJtaXNzaW9uSG9va3Moe3Blcm1pc3Npb25Ib29rc306IFBlcm1pc3Npb25Ib29rc1Byb3BzKSB7XG5cdHJldHVybiAoXG5cdFx0PD5cblx0XHRcdHtwZXJtaXNzaW9uSG9va3MubWFwKChob29rLCBpbmRleCkgPT4ge1xuXHRcdFx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG5cdFx0XHRcdHJldHVybiA8RXhlY3V0ZVBlcm1pc3Npb25Ib29rIGtleT17aW5kZXh9IHBlcm1pc3Npb25Ib29rPXtob29rfSAvPjtcblx0XHRcdH0pfVxuXHRcdDwvPlxuXHQpO1xufVxuIiwiaW1wb3J0IHt1c2VBdXRofSBmcm9tICdAaW1wZXJpdW0vYXV0aC1jbGllbnQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB0eXBlIHtMb2NhdGlvbn0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgY29tcGFjdCBmcm9tICdsb2Rhc2gvY29tcGFjdCc7XG5pbXBvcnQgbWVyZ2UgZnJvbSAnbG9kYXNoL21lcmdlJztcbmltcG9ydCBxdWVyeVN0cmluZyBmcm9tICdxdWVyeXN0cmluZyc7XG5pbXBvcnQge3VzZUxvY2F0aW9ufSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCB7dXNlTGF5b3V0U3RhdGV9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB0eXBlIHtEYXRhLCBQZXJtaXNzaW9uU2VsZWN0b3JIb29rLCBTdGF0ZVNlbGVjdG9ySG9va30gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHt1c2VJc0FjdGl2ZVJvdXRlfSBmcm9tICcuL3VzZUlzQWN0aXZlUm91dGUnO1xuaW1wb3J0IHt1c2VTZWxlY3RQZXJtaXNzaW9ufSBmcm9tICcuL3VzZVNlbGVjdFBlcm1pc3Npb24nO1xuaW1wb3J0IHt1c2VTZWxlY3RTdGF0ZX0gZnJvbSAnLi91c2VTZWxlY3RTdGF0ZSc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnaW1wZXJpdW0ubGF5b3V0Lmhvb2tzLnVzZUJ1aWxkRGF0YScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZUJ1aWxkRGF0YVBhcmFtcyB7XG5cdGRhdGE/OiBEYXRhO1xuXHRyb3V0ZUl0ZW0/OiBhbnk7XG5cdHN0YXRlU2VsZWN0b3JIb29rPzogU3RhdGVTZWxlY3Rvckhvb2sgfCBTdGF0ZVNlbGVjdG9ySG9va1tdO1xuXHRwZXJtaXNzaW9uU2VsZWN0b3JIb29rPzogUGVybWlzc2lvblNlbGVjdG9ySG9vayB8IFBlcm1pc3Npb25TZWxlY3Rvckhvb2tbXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUJ1aWxkRGF0YSh7c3RhdGVTZWxlY3Rvckhvb2ssIHBlcm1pc3Npb25TZWxlY3Rvckhvb2ssIGRhdGEsIHJvdXRlSXRlbX06IFVzZUJ1aWxkRGF0YVBhcmFtcykge1xuXHRjb25zdCB7aWR9ID0gdXNlQXV0aCgpO1xuXHRjb25zdCB7cGVybWlzc2lvbnN9ID0gdXNlTGF5b3V0U3RhdGUoKTtcblx0Y29uc3Qgc3RhdGUgPSB1c2VTZWxlY3RTdGF0ZShzdGF0ZVNlbGVjdG9ySG9vayk7XG5cdGNvbnN0IGxvYyA9IHVzZUxvY2F0aW9uKCkgYXMgTG9jYXRpb247XG5cdGNvbnN0IHJvdXRlID0ge1xuXHRcdHBhdGg6IGNvbXBhY3QobG9jLnBhdGhuYW1lLnNwbGl0KCcvJykpLFxuXHRcdGhhc2g6IGxvYy5oYXNoLFxuXHRcdHNlYXJjaDogcXVlcnlTdHJpbmcucGFyc2UobG9jLnNlYXJjaCksXG5cdH07XG5cdGNvbnN0IGFjdGl2ZSA9IHVzZUlzQWN0aXZlUm91dGUoe2xvYywgcm91dGUsIHN0YXRlLCBhY3RpdmU6IGZhbHNlLCBpZCwgcGVybWlzc2lvbnN9LCByb3V0ZUl0ZW0pO1xuXHRjb25zdCBwZXJtaXNzaW9uc1ggPSB1c2VTZWxlY3RQZXJtaXNzaW9uKHtzdGF0ZSwgbG9jLCBhY3RpdmUsIHJvdXRlLCBpZCwgcGVybWlzc2lvbnN9LCBwZXJtaXNzaW9uU2VsZWN0b3JIb29rKTtcblx0Y29uc3QgbmV3RGF0YTogRGF0YSA9IHtzdGF0ZSwgbG9jLCBhY3RpdmUsIHJvdXRlLCBwZXJtaXNzaW9uczogey4uLnBlcm1pc3Npb25zLCAuLi5wZXJtaXNzaW9uc1h9LCBpZH07XG5cdHJldHVybiBkYXRhID8gbWVyZ2UoZGF0YSwgbmV3RGF0YSkgOiBuZXdEYXRhO1xufVxuIiwiaW1wb3J0IHt1c2VSb3V0ZU1hdGNofSBmcm9tICdyZWFjdC1yb3V0ZXInO1xuaW1wb3J0IHR5cGUge1JvdXRlUHJvcHN9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0IHtpc1JvdXRlSXRlbX0gZnJvbSAnLi4vY29tbW9uSXRlbXMnO1xuaW1wb3J0IHR5cGUge0RhdGF9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZUlzQWN0aXZlUm91dGUoZGF0YTogRGF0YSwgaXRlbT86IGFueSkge1xuXHQvLyBEZXRlcm1pbmUgaWYgdGhlIGN1cnJlbnQgcm91dGUgbWF0Y2hlcyB0aGUgdG8gcm91dGUgdG8gc2VlIGlmIHRoZSBsaW5rIGlzIGFjdGl2ZVxuXHRjb25zdCByb3V0ZU1hdGNoT2JqZWN0OiBSb3V0ZVByb3BzID0ge307XG5cdGlmIChpdGVtICYmIGlzUm91dGVJdGVtKGl0ZW0pKSB7XG5cdFx0aWYgKHR5cGVvZiBpdGVtLnRvID09PSAnc3RyaW5nJykge1xuXHRcdFx0cm91dGVNYXRjaE9iamVjdC5wYXRoID0gaXRlbS50bztcblx0XHR9XG5cdFx0aWYgKHR5cGVvZiBpdGVtLnRvID09PSAnZnVuY3Rpb24nKSB7XG5cdFx0XHRyb3V0ZU1hdGNoT2JqZWN0LnBhdGggPSBpdGVtLnRvKGRhdGEpO1xuXHRcdH1cblx0XHRyb3V0ZU1hdGNoT2JqZWN0LmV4YWN0ID0gaXRlbS5leGFjdCAhPT0gZmFsc2U7XG5cdFx0cm91dGVNYXRjaE9iamVjdC5zZW5zaXRpdmUgPSBpdGVtLnNlbnNpdGl2ZTtcblx0XHRyb3V0ZU1hdGNoT2JqZWN0LnN0cmljdCA9IGl0ZW0uc3RyaWN0O1xuXHR9XG5cdGNvbnN0IHJvdXRlTWF0Y2ggPSB1c2VSb3V0ZU1hdGNoKHJvdXRlTWF0Y2hPYmplY3QpO1xuXHRyZXR1cm4gcm91dGVNYXRjaCAhPT0gbnVsbDtcbn1cbiIsImltcG9ydCBmbG93UmlnaHQgZnJvbSAnbG9kYXNoL2Zsb3dSaWdodCc7XG5pbXBvcnQgdHlwZSB7RGF0YSwgUGVybWlzc2lvblNlbGVjdG9ySG9va30gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0UGVybWlzc2lvbihkYXRhOiBEYXRhLCBwZXJtaXNzaW9uU2VsZWN0b3JIb29rPzogUGVybWlzc2lvblNlbGVjdG9ySG9vayB8IFBlcm1pc3Npb25TZWxlY3Rvckhvb2tbXSkge1xuXHRsZXQgZmluYWxTZWxlY3Rvckhvb2s6IFBlcm1pc3Npb25TZWxlY3Rvckhvb2sgPSAoKSA9PiAoe30pO1xuXHRpZiAocGVybWlzc2lvblNlbGVjdG9ySG9vaykge1xuXHRcdGZpbmFsU2VsZWN0b3JIb29rID0gQXJyYXkuaXNBcnJheShwZXJtaXNzaW9uU2VsZWN0b3JIb29rKSA/IGZsb3dSaWdodChwZXJtaXNzaW9uU2VsZWN0b3JIb29rKSA6IHBlcm1pc3Npb25TZWxlY3Rvckhvb2s7XG5cdH1cblx0cmV0dXJuIGZpbmFsU2VsZWN0b3JIb29rKGRhdGEpO1xufVxuIiwiaW1wb3J0IGZsb3dSaWdodCBmcm9tICdsb2Rhc2gvZmxvd1JpZ2h0JztcbmltcG9ydCB0eXBlIHtTdGF0ZVNlbGVjdG9ySG9va30gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gdXNlU2VsZWN0U3RhdGUoc3RhdGVTZWxlY3Rvckhvb2s/OiBTdGF0ZVNlbGVjdG9ySG9vayB8IFN0YXRlU2VsZWN0b3JIb29rW10pIHtcblx0bGV0IGZpbmFsU2VsZWN0b3JIb29rOiAoKSA9PiBhbnkgPSAoKSA9PiAoe30pO1xuXHRpZiAoc3RhdGVTZWxlY3Rvckhvb2spIHtcblx0XHRmaW5hbFNlbGVjdG9ySG9vayA9IEFycmF5LmlzQXJyYXkoc3RhdGVTZWxlY3Rvckhvb2spID8gZmxvd1JpZ2h0KHN0YXRlU2VsZWN0b3JIb29rKSA6IHN0YXRlU2VsZWN0b3JIb29rO1xuXHR9XG5cdHJldHVybiBmaW5hbFNlbGVjdG9ySG9vaygpO1xufVxuIiwiaW1wb3J0IHR5cGUge0RhdGF9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHtDdXN0b21MYXlvdXRJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBDdXN0b21MYXlvdXRJdGVtQ29tcG9uZW50UHJvcHMge1xuXHRpdGVtOiBDdXN0b21MYXlvdXRJdGVtO1xuXHRkYXRhOiBEYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ3VzdG9tTGF5b3V0SXRlbUNvbXBvbmVudCh7aXRlbSwgZGF0YX06IEN1c3RvbUxheW91dEl0ZW1Db21wb25lbnRQcm9wcykge1xuXHRyZXR1cm4gaXRlbS5yZW5kZXIoZGF0YSk7XG59XG4iLCJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7QWNjb3JkaW9uLCBEcm9wZG93biwgSWNvbiwgTWVudX0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge0RhdGF9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHtEcm9wZG93bkxheW91dEl0ZW19IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Z2V0VGV4dH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5jb21wb25lbnRzLkRyb3Bkb3duSXRlbScpO1xuXG5pbnRlcmZhY2UgRHJvcGRvd25JdGVtUHJvcHMge1xuXHRpdGVtOiBEcm9wZG93bkxheW91dEl0ZW07XG5cdGNoaWxkcmVuOiBKU1guRWxlbWVudFtdO1xuXHRkYXRhOiBEYXRhO1xuXHR2ZXJ0aWNhbD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBEcm9wZG93bkl0ZW0oe2l0ZW0sIHZlcnRpY2FsLCBjaGlsZHJlbiwgZGF0YX06IERyb3Bkb3duSXRlbVByb3BzKSB7XG5cdGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuXHRpZiAodmVydGljYWwpIHtcblx0XHRyZXR1cm4gKFxuXHRcdFx0PE1lbnUuSXRlbSBjbGFzc05hbWU9XCJpbXBlcml1bVZlcnRpY2FsRHJvcGRvd25cIj5cblx0XHRcdFx0PEFjY29yZGlvbiBmbHVpZD5cblx0XHRcdFx0XHQ8QWNjb3JkaW9uLlRpdGxlXG5cdFx0XHRcdFx0XHRjbGFzc05hbWU9e3N0eWxlcy52ZXJ0aWNhbERyb3Bkb3duVGl0bGV9XG5cdFx0XHRcdFx0XHRvbkNsaWNrPXtldiA9PiB7XG5cdFx0XHRcdFx0XHRcdGV2LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0XHRzZXRPcGVuKCFvcGVuKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0PEljb24gY2xhc3NOYW1lPXtvcGVuID8gc3R5bGVzLnZlcnRpY2FsRHJvcGRvd25JY29uUm90YXRlZCA6IHN0eWxlcy52ZXJ0aWNhbERyb3Bkb3duSWNvbn0gbmFtZT1cImFycm93IHJpZ2h0XCIgLz5cblx0XHRcdFx0XHRcdHtpdGVtLnRleHR9XG5cdFx0XHRcdFx0PC9BY2NvcmRpb24uVGl0bGU+XG5cdFx0XHRcdFx0PEFjY29yZGlvbi5Db250ZW50IGFjdGl2ZT17b3Blbn0gY2xhc3NOYW1lPXtgJHtzdHlsZXMudmVydGljYWxEcm9wZG93bkNvbnRlbnR9IGltcGVyaXVtVmVydGljYWxEcm9wZG93bkNvbnRlbnRgfSBjaGlsZHJlbj17Y2hpbGRyZW59IC8+XG5cdFx0XHRcdDwvQWNjb3JkaW9uPlxuXHRcdFx0PC9NZW51Lkl0ZW0+XG5cdFx0KTtcblx0fVxuXG5cdHJldHVybiAoXG5cdFx0PERyb3Bkb3duIGl0ZW0gdGV4dD17Z2V0VGV4dChpdGVtLCBkYXRhKX0gY2xhc3NOYW1lPVwiaW1wZXJpdW1Ecm9wZG93blwiPlxuXHRcdFx0PERyb3Bkb3duLk1lbnUgY2xhc3NOYW1lPVwiaW1wZXJpdW1Ecm9wZG93bkNvbnRlbnRcIj57Y2hpbGRyZW59PC9Ecm9wZG93bi5NZW51PlxuXHRcdDwvRHJvcGRvd24+XG5cdCk7XG59XG4iLCJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFJlYWN0LCB7UmVhY3ROb2RlLCB1c2VTdGF0ZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtTZWdtZW50fSBmcm9tICdzZW1hbnRpYy11aS1yZWFjdCc7XG5pbXBvcnQge3VzZUxheW91dFN0YXRlfSBmcm9tICcuLi8uLi9zdGF0ZSc7XG5pbXBvcnQge21vdmVJdGVtc30gZnJvbSAnLi4vbW92ZUl0ZW1zJztcbmltcG9ydCB0eXBlIHtMYXlvdXREYXRhfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge0xheW91dEl0ZW1CYXJ9IGZyb20gJy4vTGF5b3V0SXRlbUJhcic7XG5pbXBvcnQge1NlY29uZGFyeU1lbnVUb2dnbGVJdGVtfSBmcm9tICcuL1NlY29uZGFyeU1lbnVUb2dnbGVJdGVtJztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9zdHlsZXMuY3NzJztcblxuY29uc3QgZCA9IGRlYnVnKCdpbXBlcml1bS5sYXlvdXQuY29tcG9uZW50cy5MYXlvdXQnKTtcblxuaW50ZXJmYWNlIExheW91dFByb3BzIGV4dGVuZHMgUmVxdWlyZWQ8TGF5b3V0RGF0YT4ge1xuXHRjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBtYWluIGxheW91dC5cbiAqIEhpZGVzL3Nob3dzL2NvbGxhcHNlcyB0aGluZ3MgYXMgbmVlZCBmb3IgbW9iaWxlIGxheW91dC5cbiAqIFRyYWNrcyBzdGF0ZSB0byB3aGV0aGVyIHRoZSBzaWRlIG1lbnUgaXMgb3BlbiBvciBub3QuXG4gKiBAcGFyYW0gZm9vdGVyXG4gKiBAcGFyYW0gbWVudWJhclxuICogQHBhcmFtIHN0YXR1c2JhclxuICogQHBhcmFtIGNoaWxkcmVuXG4gKiBAY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIExheW91dCh7Zm9vdGVyLCBwcmltYXJ5TWVudSwgc3RhdHVzYmFyLCBzZWNvbmRhcnlNZW51LCBjaGlsZHJlbn06IExheW91dFByb3BzKSB7XG5cdGNvbnN0IHtpc01vYmlsZX0gPSB1c2VMYXlvdXRTdGF0ZSgpO1xuXHRjb25zdCBbbWVudU9wZW4sIHNldE1lbnVPcGVuXSA9IHVzZVN0YXRlKHRydWUpO1xuXG5cdGNvbnN0IHByaW1hcnlNZW51VG9nZ2xlID0ge1xuXHRcdHN0aWNrT25Nb2JpbGU6IHRydWUsXG5cdFx0d2VpZ2h0OiAtMTk5OTksXG5cdFx0cmVuZGVyOiAoKSA9PiB7XG5cdFx0XHRpZiAoIWlzTW9iaWxlKSByZXR1cm4gbnVsbDtcblx0XHRcdHJldHVybiA8U2Vjb25kYXJ5TWVudVRvZ2dsZUl0ZW0gbWVudU9wZW49e21lbnVPcGVufSBzZXRNZW51T3Blbj17c2V0TWVudU9wZW59IC8+O1xuXHRcdH0sXG5cdH07XG5cblx0Ly8gRGV0ZXJtaW5lIG1lbnViYXIgaXRlbXNcblx0Y29uc3QgcHJpbWFyeU1lbnVJdGVtcyA9IG1vdmVJdGVtcyhcblx0XHRpc01vYmlsZSA/IFtwcmltYXJ5TWVudVRvZ2dsZSwgLi4ucHJpbWFyeU1lbnVdLmZpbHRlcih2ID0+IHYuc3RpY2tPbk1vYmlsZSA9PT0gdHJ1ZSkgOiBbcHJpbWFyeU1lbnVUb2dnbGUsIC4uLnByaW1hcnlNZW51XSxcblx0KTtcblxuXHQvLyBjb25zdCBwbWkgPSBtZXJnZUl0ZW1zKHByaW1hcnlNZW51SXRlbXMpO1xuXG5cdC8vIERldGVybWluZSBzaWRlYmFyIGl0ZW1zXG5cdGNvbnN0IHNlY29uZGFyeU1lbnVJdGVtcyA9IG1vdmVJdGVtcyhcblx0XHRpc01vYmlsZVxuXHRcdFx0PyBbXG5cdFx0XHRcdFx0Li4uc2Vjb25kYXJ5TWVudSxcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHR0ZXh0OiAnJyxcblx0XHRcdFx0XHRcdG1lbnU6IFtwcmltYXJ5TWVudVRvZ2dsZSwgLi4ucHJpbWFyeU1lbnVdLmZpbHRlcih2ID0+IHYuc3RpY2tPbk1vYmlsZSAhPT0gdHJ1ZSksXG5cdFx0XHRcdFx0fSxcblx0XHRcdCAgXVxuXHRcdFx0OiBzZWNvbmRhcnlNZW51LFxuXHQpO1xuXG5cdGNvbnN0IHNlY29uZGFyeU1lbnVDb21wID1cblx0XHRzZWNvbmRhcnlNZW51SXRlbXMubGVuZ3RoID4gMCA/IChcblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiaW1wZXJpdW1TZWNvbmRhcnlNZW51V3JhcHBlclwiPlxuXHRcdFx0XHQ8TGF5b3V0SXRlbUJhclxuXHRcdFx0XHRcdGl0ZW1zPXtzZWNvbmRhcnlNZW51SXRlbXN9XG5cdFx0XHRcdFx0aW52ZXJ0ZWRcblx0XHRcdFx0XHR2ZXJ0aWNhbFxuXHRcdFx0XHRcdGNsYXNzTmFtZT17XG5cdFx0XHRcdFx0XHRpc01vYmlsZSAmJiAhbWVudU9wZW5cblx0XHRcdFx0XHRcdFx0PyBgJHtzdHlsZXMuc2Vjb25kYXJ5TWVudX0gJHtzdHlsZXMuc2Vjb25kYXJ5TWVudUhpZGRlbn0gaW1wZXJpdW1TZWNvbmRhcnlNZW51YFxuXHRcdFx0XHRcdFx0XHQ6IGAke3N0eWxlcy5zZWNvbmRhcnlNZW51fSBpbXBlcml1bVNlY29uZGFyeU1lbnVgXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQvPlxuXHRcdFx0PC9kaXY+XG5cdFx0KSA6IG51bGw7XG5cblx0Ly8gRGV0ZXJtaW5lIGZvb3RlciBpdGVtc1xuXHRjb25zdCBmb290ZXJJdGVtcyA9IG1vdmVJdGVtcyhmb290ZXIpO1xuXHRjb25zdCBmb290ZXJDb21wID1cblx0XHRmb290ZXJJdGVtcy5sZW5ndGggPiAwID8gKFxuXHRcdFx0PExheW91dEl0ZW1CYXIgbmFtZT1cImZvb3RlclwiIGl0ZW1zPXtmb290ZXJJdGVtc30gY2xhc3NOYW1lPXtgJHtzdHlsZXMuZm9vdGVyfSBpbXBlcml1bUZvb3RlcmB9IGludmVydGVkIGJvcmRlcmxlc3MgLz5cblx0XHQpIDogbnVsbDtcblxuXHQvLyBEZXRlcm1pbmUgc3RhdHVzIGJhciBpdGVtc1xuXHRjb25zdCBzdGF0dXNiYXJJdGVtcyA9IG1vdmVJdGVtcyhzdGF0dXNiYXIpO1xuXHRjb25zdCBzdGF0dXNiYXJDb21wID1cblx0XHRzdGF0dXNiYXJJdGVtcy5sZW5ndGggPiAwID8gPExheW91dEl0ZW1CYXIgaXRlbXM9e3N0YXR1c2Jhckl0ZW1zfSBpbnZlcnRlZCBjbGFzc05hbWU9e2Ake3N0eWxlcy5zdGF0dXNiYXJ9IGltcGVyaXVtU3RhdHVzYmFyYH0gLz4gOiBudWxsO1xuXG5cdHJldHVybiAoXG5cdFx0PGRpdiBjbGFzc05hbWU9e2Ake3N0eWxlcy5wYXJlbnR9IGltcGVyaXVtTGF5b3V0ICR7aXNNb2JpbGUgPyAnaW1wZXJpdW1Nb2JpbGUnIDogJ2ltcGVyaXVtTm90TW9iaWxlJ31gfT5cblx0XHRcdDxkaXYgY2xhc3NOYW1lPVwiaW1wZXJpdW1QcmltYXJ5TWVudVdyYXBwZXJcIj5cblx0XHRcdFx0PExheW91dEl0ZW1CYXIgaXRlbXM9e3ByaW1hcnlNZW51SXRlbXN9IGludmVydGVkIGJvcmRlcmxlc3MgY2xhc3NOYW1lPXtgJHtzdHlsZXMubWVudWJhcn0gaW1wZXJpdW1QcmltYXJ5TWVudWB9IC8+XG5cdFx0XHRcdHtzdGF0dXNiYXJDb21wfVxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8U2VnbWVudCBhdHRhY2hlZCBjbGFzc05hbWU9e2Ake3N0eWxlcy5jb250ZW50V3JhcHBlcn0gaW1wZXJpdW1MYXlvdXRDb250ZW50V3JhcHBlcmB9PlxuXHRcdFx0XHR7c2Vjb25kYXJ5TWVudUNvbXB9XG5cdFx0XHRcdDxkaXYgY2xhc3NOYW1lPXtgJHtzdHlsZXMuY29udGVudH0gaW1wZXJpdW1MYXlvdXRDb250ZW50YH0+e2NoaWxkcmVufTwvZGl2PlxuXHRcdFx0PC9TZWdtZW50PlxuXHRcdFx0e2Zvb3RlckNvbXB9XG5cdFx0PC9kaXY+XG5cdCk7XG59XG4iLCJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB0eXBlIHtNZW51UHJvcHN9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB7TWVudX0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHtzb3J0V2VpZ2h0ZWRJdGVtc30gZnJvbSAnLi4vLi4vdXRpbHMnO1xuaW1wb3J0IHR5cGUge0xheW91dEl0ZW19IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7c3BsaXRQb3NpdGlvbmVkSXRlbXN9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7TGF5b3V0SXRlbVdyYXBwZXJ9IGZyb20gJy4vTGF5b3V0SXRlbVdyYXBwZXInO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5jb21wb25lbnRzLkxheW91dEl0ZW1CYXInKTtcblxuaW50ZXJmYWNlIEl0ZW1CYXJQcm9wcyBleHRlbmRzIE1lbnVQcm9wcyB7XG5cdGl0ZW1zOiBMYXlvdXRJdGVtW107XG59XG5cbi8qKlxuICogUmVuZGVycyBhIGhvcml6b250YWwgb3IgdmVydGljYWwgYmFyIG9mIG1lbnUgaXRlbXMuXG4gKiBAcGFyYW0gbmFtZVxuICogQHBhcmFtIGl0ZW1zXG4gKiBAcGFyYW0gcmVzdFxuICogQGNvbnN0cnVjdG9yXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMYXlvdXRJdGVtQmFyKHtpdGVtcywgLi4ucmVzdH06IEl0ZW1CYXJQcm9wcykge1xuXHRjb25zdCBpbXMgPSBzcGxpdFBvc2l0aW9uZWRJdGVtcyhpdGVtcyk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWFycmF5LWluZGV4LWtleVxuXHRjb25zdCBsZWZ0SXRlbXMgPSBzb3J0V2VpZ2h0ZWRJdGVtcyhpbXMubGVmdEl0ZW1zKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiA8TGF5b3V0SXRlbVdyYXBwZXIgaXRlbT17aXRlbX0ga2V5PXtpbmRleH0gdmVydGljYWw9e3Jlc3QudmVydGljYWx9IC8+KTtcblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0L25vLWFycmF5LWluZGV4LWtleVxuXHRjb25zdCByaWdodEl0ZW1zID0gc29ydFdlaWdodGVkSXRlbXMoaW1zLnJpZ2h0SXRlbXMpLm1hcCgoaXRlbSwgaW5kZXgpID0+IDxMYXlvdXRJdGVtV3JhcHBlciBpdGVtPXtpdGVtfSBrZXk9e2luZGV4fSB2ZXJ0aWNhbD17cmVzdC52ZXJ0aWNhbH0gLz4pO1xuXG5cdHJldHVybiAoXG5cdFx0PE1lbnUgey4uLnJlc3R9PlxuXHRcdFx0e2xlZnRJdGVtc31cblx0XHRcdHtyZXN0LnZlcnRpY2FsID8gcmlnaHRJdGVtcyA6IDxNZW51Lk1lbnUgcG9zaXRpb249XCJyaWdodFwiPntyaWdodEl0ZW1zfTwvTWVudS5NZW51Pn1cblx0XHQ8L01lbnU+XG5cdCk7XG59XG4iLCJpbXBvcnQgZGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IHtRdWVyeX0gZnJvbSAnbWluZ28nO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7RHJvcGRvd259IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB7dXNlQnVpbGREYXRhfSBmcm9tICcuLi8uLi9ob29rcy91c2VCdWlsZERhdGEnO1xuaW1wb3J0IHR5cGUge0RhdGF9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7c29ydFdlaWdodGVkSXRlbXN9IGZyb20gJy4uLy4uL3V0aWxzJztcbmltcG9ydCB0eXBlIHtMYXlvdXRJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2lzQ3VzdG9tTGF5b3V0SXRlbSwgaXNEcm9wZG93bkxheW91dEl0ZW0sIGlzTWVudUxheW91dEl0ZW19IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7Q3VzdG9tTGF5b3V0SXRlbUNvbXBvbmVudH0gZnJvbSAnLi9DdXN0b21MYXlvdXRJdGVtQ29tcG9uZW50JztcbmltcG9ydCB7RHJvcGRvd25JdGVtfSBmcm9tICcuL0Ryb3Bkb3duSXRlbSc7XG5pbXBvcnQge01lbnVJdGVtfSBmcm9tICcuL01lbnVJdGVtJztcbmltcG9ydCB7UGxhaW5JdGVtfSBmcm9tICcuL1BsYWluSXRlbSc7XG5cbmNvbnN0IGQgPSBkZWJ1ZygnaW1wZXJpdW0ubGF5b3V0LmNvbXBvbmVudHMuTGF5b3V0SXRlbVdyYXBwZXInKTtcblxuaW50ZXJmYWNlIEl0ZW1XcmFwcGVyUHJvcHMge1xuXHRpdGVtOiBMYXlvdXRJdGVtO1xuXHRhcz86IFJlYWN0LkNvbXBvbmVudENsYXNzO1xuXHR2ZXJ0aWNhbD86IGJvb2xlYW47XG5cdGRhdGE/OiBEYXRhO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYW55IHR5cGUgb2YgSXRlbS4gR2F0aGVycyBzdGF0ZSwgcm91dGUgYW5kIG90aGVyIGRhdGEgYW5kIGNoZWNrcyBmb3IgdmlzaWJpbGl0eS5cbiAqIEBwYXJhbSBpdGVtXG4gKiBAcGFyYW0gYXNcbiAqIEBwYXJhbSB2ZXJ0aWNhbFxuICogQHBhcmFtIHBhcmVudERhdGFcbiAqIEBjb25zdHJ1Y3RvclxuICovXG5leHBvcnQgZnVuY3Rpb24gTGF5b3V0SXRlbVdyYXBwZXIoe2l0ZW0sIGFzLCB2ZXJ0aWNhbCwgZGF0YTogcGFyZW50RGF0YX06IEl0ZW1XcmFwcGVyUHJvcHMpIHtcblx0Y29uc3QgZGF0YSA9IHVzZUJ1aWxkRGF0YSh7XG5cdFx0c3RhdGVTZWxlY3Rvckhvb2s6IGl0ZW0uc3RhdGVTZWxlY3Rvckhvb2ssXG5cdFx0cGVybWlzc2lvblNlbGVjdG9ySG9vazogaXRlbS5wZXJtaXNzaW9uU2VsZWN0b3JIb29rLFxuXHRcdHJvdXRlSXRlbTogaXRlbSxcblx0XHRkYXRhOiBwYXJlbnREYXRhLFxuXHR9KTtcblxuXHQvLyBDaGVjayBpZiB2aXNpYmxlXG5cdGlmIChpdGVtLnZpc2libGUpIHtcblx0XHRpZiAodHlwZW9mIGl0ZW0udmlzaWJsZSA9PT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0aWYgKCFpdGVtLnZpc2libGUoZGF0YSkpIHJldHVybiBudWxsO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb25zdCBxID0gbmV3IFF1ZXJ5KGl0ZW0udmlzaWJsZSB8fCB7fSk7XG5cdFx0XHRpZiAoIXEudGVzdChkYXRhKSkgcmV0dXJuIG51bGw7XG5cdFx0fVxuXHR9XG5cblx0aWYgKGlzQ3VzdG9tTGF5b3V0SXRlbShpdGVtKSkge1xuXHRcdHJldHVybiA8Q3VzdG9tTGF5b3V0SXRlbUNvbXBvbmVudCBpdGVtPXtpdGVtfSBkYXRhPXtkYXRhfSAvPjtcblx0fVxuXHRpZiAoaXNEcm9wZG93bkxheW91dEl0ZW0oaXRlbSkpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG5cdFx0Y29uc3QgY2hpbGRyZW4gPSBzb3J0V2VpZ2h0ZWRJdGVtcyhpdGVtLmRyb3Bkb3duKS5tYXAoKHYsIGluZGV4KSA9PiA8TGF5b3V0SXRlbVdyYXBwZXIga2V5PXtpbmRleH0gaXRlbT17dn0gYXM9e0Ryb3Bkb3duLkl0ZW19IGRhdGE9e2RhdGF9IC8+KTtcblx0XHRyZXR1cm4gPERyb3Bkb3duSXRlbSBpdGVtPXtpdGVtfSBjaGlsZHJlbj17Y2hpbGRyZW59IHZlcnRpY2FsPXt2ZXJ0aWNhbH0gZGF0YT17ZGF0YX0gLz47XG5cdH1cblx0aWYgKGlzTWVudUxheW91dEl0ZW0oaXRlbSkpIHtcblx0XHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3Qvbm8tYXJyYXktaW5kZXgta2V5XG5cdFx0Y29uc3QgY2hpbGRyZW4gPSBzb3J0V2VpZ2h0ZWRJdGVtcyhpdGVtLm1lbnUpLm1hcCgodiwgaW5kZXgpID0+IChcblx0XHRcdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9uby1hcnJheS1pbmRleC1rZXlcblx0XHRcdDxMYXlvdXRJdGVtV3JhcHBlciBrZXk9e2luZGV4fSBpdGVtPXt2fSBhcz17RHJvcGRvd24uSXRlbX0gdmVydGljYWw9e3ZlcnRpY2FsfSBkYXRhPXtkYXRhfSAvPlxuXHRcdCkpO1xuXHRcdHJldHVybiA8TWVudUl0ZW0gaXRlbT17aXRlbX0gY2hpbGRyZW49e2NoaWxkcmVufSAvPjtcblx0fVxuXHRyZXR1cm4gPFBsYWluSXRlbSBpdGVtPXtpdGVtfSBkYXRhPXtkYXRhfSBhcz17YXN9IC8+O1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7TWVudX0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge01lbnVMYXlvdXRJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5cbmludGVyZmFjZSBNZW51SXRlbVByb3BzIHtcblx0aXRlbTogTWVudUxheW91dEl0ZW07XG5cdGNoaWxkcmVuOiBKU1guRWxlbWVudFtdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTWVudUl0ZW0oe2l0ZW0sIGNoaWxkcmVufTogTWVudUl0ZW1Qcm9wcykge1xuXHRyZXR1cm4gKFxuXHRcdDxNZW51Lkl0ZW0+XG5cdFx0XHQ8TWVudS5IZWFkZXI+e2l0ZW0udGV4dH08L01lbnUuSGVhZGVyPlxuXHRcdFx0PE1lbnUuTWVudSBjb21wYWN0PVwiXCI+e2NoaWxkcmVufTwvTWVudS5NZW51PlxuXHRcdDwvTWVudS5JdGVtPlxuXHQpO1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7TWVudX0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge0RhdGF9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB0eXBlIHtDdXN0b21MYXlvdXRJdGVtLCBEcm9wZG93bkxheW91dEl0ZW0sIExheW91dEl0ZW0sIE1lbnVMYXlvdXRJdGVtfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQge2dldEljb24sIGdldFRleHQsIGxpbmtQYXJhbWV0ZXJzfSBmcm9tICcuLi91dGlscyc7XG5cbmludGVyZmFjZSBQbGFpbkl0ZW1Qcm9wcyB7XG5cdGl0ZW06IEV4Y2x1ZGU8TGF5b3V0SXRlbSwgTWVudUxheW91dEl0ZW0gfCBEcm9wZG93bkxheW91dEl0ZW0gfCBDdXN0b21MYXlvdXRJdGVtPjtcblx0ZGF0YTogRGF0YTtcblx0YXM/OiBSZWFjdC5Db21wb25lbnRDbGFzcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBsYWluSXRlbSh7aXRlbSwgZGF0YSwgYXN9OiBQbGFpbkl0ZW1Qcm9wcykge1xuXHRjb25zdCBsaW5rUGFyYW1zID0gbGlua1BhcmFtZXRlcnMoaXRlbSwgZGF0YSk7XG5cblx0Y29uc3QgSXRlbVggPSBhcyB8fCBNZW51Lkl0ZW07XG5cblx0cmV0dXJuIChcblx0XHQ8SXRlbVggey4uLmxpbmtQYXJhbXN9PlxuXHRcdFx0e2dldEljb24oaXRlbSwgZGF0YSl9XG5cdFx0XHR7Z2V0VGV4dChpdGVtLCBkYXRhKX1cblx0XHQ8L0l0ZW1YPlxuXHQpO1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7SWNvbiwgTWVudX0gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHN0eWxlcyBmcm9tICcuL3N0eWxlcy5jc3MnO1xuXG5pbnRlcmZhY2UgU2Vjb25kYXJ5TWVudVRvZ2dsZUl0ZW1Qcm9wcyB7XG5cdG1lbnVPcGVuOiBib29sZWFuO1xuXHRzZXRNZW51T3BlbjogKG9wZW46IGJvb2xlYW4pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBTZWNvbmRhcnlNZW51VG9nZ2xlSXRlbSh7bWVudU9wZW4sIHNldE1lbnVPcGVufTogU2Vjb25kYXJ5TWVudVRvZ2dsZUl0ZW1Qcm9wcykge1xuXHRyZXR1cm4gKFxuXHRcdDxNZW51Lkl0ZW0+XG5cdFx0XHQ8SWNvblxuXHRcdFx0XHRjbGFzc05hbWU9e21lbnVPcGVuID8gc3R5bGVzLmljb25Sb3RhdGVkIDogc3R5bGVzLmljb259XG5cdFx0XHRcdG5hbWU9e21lbnVPcGVuID8gJ2Nsb3NlJyA6ICdzaWRlYmFyJ31cblx0XHRcdFx0b25DbGljaz17KCkgPT4ge1xuXHRcdFx0XHRcdHNldE1lbnVPcGVuKCFtZW51T3Blbik7XG5cdFx0XHRcdH19XG5cdFx0XHQvPlxuXHRcdDwvTWVudS5JdGVtPlxuXHQpO1xufVxuIiwiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCB7dXNlRWZmZWN0fSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3VzZURpc3BhdGNofSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQge3VzZU1lZGlhUXVlcnl9IGZyb20gJ3JlYWN0LXJlc3BvbnNpdmUnO1xuaW1wb3J0IHthY3Rpb25zLCB1c2VMYXlvdXRTdGF0ZX0gZnJvbSAnLi4vLi4vc3RhdGUnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5ob29rcy51c2VNb2JpbGVMYXlvdXQnKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHVzZU1vYmlsZUxheW91dCgpIHtcblx0Y29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuXHRjb25zdCB7aXNNb2JpbGV9ID0gdXNlTGF5b3V0U3RhdGUoKTtcblx0Y29uc3QgaXNNb2JpbGVYID0gdXNlTWVkaWFRdWVyeSh7cXVlcnk6ICcobWF4LXdpZHRoOiA5MDBweCknfSk7XG5cdHVzZUVmZmVjdCgoKSA9PiB7XG5cdFx0aWYgKGlzTW9iaWxlICE9PSBpc01vYmlsZVgpIHtcblx0XHRcdGQoYE1lZGlhIHF1ZXJ5IGNoYW5nZSBkZXRlY3RlZDogJHtpc01vYmlsZX0gLT4gJHtpc01vYmlsZVh9YCk7XG5cdFx0XHRkaXNwYXRjaChhY3Rpb25zLnNldE1vYmlsZShpc01vYmlsZVgpKTtcblx0XHR9XG5cdH0sIFtkaXNwYXRjaCwgaXNNb2JpbGUsIGlzTW9iaWxlWF0pO1xufVxuIiwiaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBncm91cEJ5IGZyb20gJ2xvZGFzaC9ncm91cEJ5JztcbmltcG9ydCB0eXBlIHtMYXlvdXRJdGVtfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7aXNEcm9wZG93bkxheW91dEl0ZW0sIGlzTWVudUxheW91dEl0ZW19IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC5tb3ZlSXRlbXMnKTtcblxuZnVuY3Rpb24gcHVsbEl0ZW1zKGl0ZW1zOiBMYXlvdXRJdGVtW10sIHB1bGxlZDogTGF5b3V0SXRlbVtdID0gW10pOiBMYXlvdXRJdGVtW10ge1xuXHRyZXR1cm4gaXRlbXMucmVkdWNlKChtZW1vLCBpdGVtKSA9PiB7XG5cdFx0aWYgKGlzRHJvcGRvd25MYXlvdXRJdGVtKGl0ZW0pKSB7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHQuLi5tZW1vLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Li4uaXRlbSxcblx0XHRcdFx0XHRkcm9wZG93bjogcHVsbEl0ZW1zKGl0ZW0uZHJvcGRvd24sIHB1bGxlZCksXG5cdFx0XHRcdH0sXG5cdFx0XHRdO1xuXHRcdH1cblxuXHRcdGlmIChpc01lbnVMYXlvdXRJdGVtKGl0ZW0pKSB7XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHQuLi5tZW1vLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Li4uaXRlbSxcblx0XHRcdFx0XHRtZW51OiBwdWxsSXRlbXMoaXRlbS5tZW51LCBwdWxsZWQpLFxuXHRcdFx0XHR9LFxuXHRcdFx0XTtcblx0XHR9XG5cblx0XHRpZiAoIWl0ZW0ubW92ZVRvS2V5KSB7XG5cdFx0XHRyZXR1cm4gWy4uLm1lbW8sIGl0ZW1dO1xuXHRcdH1cblxuXHRcdHB1bGxlZC5wdXNoKGl0ZW0pO1xuXHRcdHJldHVybiBtZW1vO1xuXHR9LCBbXSBhcyBMYXlvdXRJdGVtW10pO1xufVxuXG5mdW5jdGlvbiBhZGRJdGVtcyhpdGVtczogTGF5b3V0SXRlbVtdLCBwdWxsZWQ6IFJlY29yZDxzdHJpbmcsIExheW91dEl0ZW1bXT4pOiBMYXlvdXRJdGVtW10ge1xuXHRyZXR1cm4gaXRlbXMucmVkdWNlKChtZW1vLCBpdGVtKSA9PiB7XG5cdFx0aWYgKGlzRHJvcGRvd25MYXlvdXRJdGVtKGl0ZW0pKSB7XG5cdFx0XHRjb25zdCBuZXdJdGVtcyA9IGl0ZW0ua2V5ICYmIHB1bGxlZFtpdGVtLmtleV0gPyBwdWxsZWRbaXRlbS5rZXldIDogW107XG5cdFx0XHRyZXR1cm4gW1xuXHRcdFx0XHQuLi5tZW1vLFxuXHRcdFx0XHR7XG5cdFx0XHRcdFx0Li4uaXRlbSxcblx0XHRcdFx0XHRkcm9wZG93bjogWy4uLmFkZEl0ZW1zKGl0ZW0uZHJvcGRvd24sIHB1bGxlZCksIC4uLm5ld0l0ZW1zXSxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fVxuXG5cdFx0aWYgKGlzTWVudUxheW91dEl0ZW0oaXRlbSkgJiYgaXRlbS5rZXkpIHtcblx0XHRcdGNvbnN0IG5ld0l0ZW1zID0gaXRlbS5rZXkgJiYgcHVsbGVkW2l0ZW0ua2V5XSA/IHB1bGxlZFtpdGVtLmtleV0gOiBbXTtcblx0XHRcdHJldHVybiBbXG5cdFx0XHRcdC4uLm1lbW8sXG5cdFx0XHRcdHtcblx0XHRcdFx0XHQuLi5pdGVtLFxuXHRcdFx0XHRcdG1lbnU6IFsuLi5hZGRJdGVtcyhpdGVtLm1lbnUsIHB1bGxlZCksIC4uLm5ld0l0ZW1zXSxcblx0XHRcdFx0fSxcblx0XHRcdF07XG5cdFx0fVxuXHRcdHJldHVybiBbLi4ubWVtbywgaXRlbV07XG5cdH0sIFtdIGFzIExheW91dEl0ZW1bXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlSXRlbXMoaXRlbXM6IExheW91dEl0ZW1bXSkge1xuXHRjb25zdCBwdWxsZWQ6IExheW91dEl0ZW1bXSA9IFtdO1xuXHRjb25zdCBpdGVtc01pbnVzUHVsbGVkID0gcHVsbEl0ZW1zKGl0ZW1zLCBwdWxsZWQpO1xuXHRyZXR1cm4gYWRkSXRlbXMoaXRlbXNNaW51c1B1bGxlZCwgZ3JvdXBCeShwdWxsZWQsICdtb3ZlVG9LZXknKSk7XG59XG4iLCJpbXBvcnQgdHlwZSB7U2VtYW50aWNJQ09OU30gZnJvbSAnc2VtYW50aWMtdWktcmVhY3QnO1xuaW1wb3J0IHR5cGUge0hvcml6b250YWxQb3NpdGlvbmVkSXRlbSwgUm91dGVJdGVtLCBWaXNpYmlsaXR5SXRlbSwgV2VpZ2h0ZWRJdGVtfSBmcm9tICcuLi9jb21tb25JdGVtcyc7XG5pbXBvcnQgdHlwZSB7RGF0YUhvb2tJdGVtfSBmcm9tICcuLi9kYXRhaG9va3MvdHlwZXMnO1xuaW1wb3J0IHR5cGUge0RhdGEsIFBlcm1pc3Npb25TZWxlY3Rvckhvb2t9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBEZXNjcmliZXMgYSBiYXNpYyB3ZWlnaHRlZCwgcG9zc2libHkgdmlzaWJsZSBpdGVtXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzZUxheW91dEl0ZW0gZXh0ZW5kcyBXZWlnaHRlZEl0ZW0sIFZpc2liaWxpdHlJdGVtIHtcblx0dGV4dDogc3RyaW5nIHwgKChkYXRhOiBEYXRhKSA9PiBzdHJpbmcpO1xuXHRpY29uPzogU2VtYW50aWNJQ09OUyB8ICgoZGF0YTogRGF0YSkgPT4gU2VtYW50aWNJQ09OUyk7XG5cdG1vdmVUb0tleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21MYXlvdXRJdGVtIGV4dGVuZHMgV2VpZ2h0ZWRJdGVtLCBWaXNpYmlsaXR5SXRlbSB7XG5cdHJlbmRlcjogKGRhdGE6IERhdGEpID0+IEpTWC5FbGVtZW50IHwgbnVsbDtcblx0bW92ZVRvS2V5Pzogc3RyaW5nO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIG1lbnUgdGhhdCBkaXNwbGF5cyBhIGRyb3Bkb3duIGxpc3Qgb2YgaXRlbXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcm9wZG93bkxheW91dEl0ZW0gZXh0ZW5kcyBCYXNlTGF5b3V0SXRlbSB7XG5cdGRyb3Bkb3duOiAoKEJhc2VMYXlvdXRJdGVtICYgUm91dGVJdGVtPERhdGE+KSB8IEN1c3RvbUxheW91dEl0ZW0pW107XG5cdGtleT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBtZW51IHRoYXQgZGlzcGxheXMgYSBzdWIgbWVudSAobm90IGEgZHJvcGRvd24gbGlzdClcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW51TGF5b3V0SXRlbSBleHRlbmRzIEJhc2VMYXlvdXRJdGVtIHtcblx0bWVudTogKChCYXNlTGF5b3V0SXRlbSAmIFJvdXRlSXRlbTxEYXRhPikgfCBDdXN0b21MYXlvdXRJdGVtKVtdO1xuXHRrZXk/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgaG9yaXpvbnRhbCBtZW51IGl0ZW0gd2hpY2ggaXMgZWl0aGVyIGEgcm91dGUgaXRlbSBvciBkcm9wZG93biBtZW51XG4gKi9cbmV4cG9ydCB0eXBlIExheW91dEl0ZW0gPSAoQmFzZUxheW91dEl0ZW0gJiBSb3V0ZUl0ZW08RGF0YT4pIHwgRHJvcGRvd25MYXlvdXRJdGVtIHwgTWVudUxheW91dEl0ZW0gfCBDdXN0b21MYXlvdXRJdGVtO1xuXG5leHBvcnQgaW50ZXJmYWNlIExheW91dERhdGEge1xuXHRwZXJtaXNzaW9uU2VsZWN0b3JIb29rcz86IFBlcm1pc3Npb25TZWxlY3Rvckhvb2tbXTtcblx0ZGF0YUhvb2tzPzogRGF0YUhvb2tJdGVtW107XG5cdHByaW1hcnlNZW51PzogKExheW91dEl0ZW0gJiBIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW0pW107IC8vIHByaW1hcnkgbWVudVxuXHRzdGF0dXNiYXI/OiAoTGF5b3V0SXRlbSAmIEhvcml6b250YWxQb3NpdGlvbmVkSXRlbSlbXTtcblx0c2Vjb25kYXJ5TWVudT86IExheW91dEl0ZW1bXTsgLy8gc2Vjb25kYXJ5IG1lbnVcblx0Zm9vdGVyPzogKExheW91dEl0ZW0gJiBIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW0pW107IC8vIGZvb3RlclxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDdXN0b21MYXlvdXRJdGVtKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBDdXN0b21MYXlvdXRJdGVtIHtcblx0cmV0dXJuICEhKHZhbHVlIGFzIEN1c3RvbUxheW91dEl0ZW0pLnJlbmRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRHJvcGRvd25MYXlvdXRJdGVtKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEcm9wZG93bkxheW91dEl0ZW0ge1xuXHRyZXR1cm4gISEodmFsdWUgYXMgRHJvcGRvd25MYXlvdXRJdGVtKS5kcm9wZG93bjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTWVudUxheW91dEl0ZW0odmFsdWU6IGFueSk6IHZhbHVlIGlzIE1lbnVMYXlvdXRJdGVtIHtcblx0cmV0dXJuICEhKHZhbHVlIGFzIE1lbnVMYXlvdXRJdGVtKS5tZW51O1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7TGlua30gZnJvbSAncmVhY3Qtcm91dGVyLWRvbSc7XG5pbXBvcnQge0ljb24sIFNlbWFudGljSUNPTlN9IGZyb20gJ3NlbWFudGljLXVpLXJlYWN0JztcbmltcG9ydCB0eXBlIHtSb3V0ZUl0ZW19IGZyb20gJy4uL2NvbW1vbkl0ZW1zJztcbmltcG9ydCB7aXNIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW19IGZyb20gJy4uL2NvbW1vbkl0ZW1zJztcbmltcG9ydCB0eXBlIHtEYXRhfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7QmFzZUxheW91dEl0ZW0sIExheW91dEl0ZW19IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFNwbGl0cyBwb3NpdGlvbmVkIGl0ZW1zIGludG8gbGVmdCBhbmQgcmlnaHQgYXJyYXlzIChpZiBob3Jpem9udGFsKVxuICogQHBhcmFtIGl0ZW1zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzcGxpdFBvc2l0aW9uZWRJdGVtczxUIGV4dGVuZHMgTGF5b3V0SXRlbT4oaXRlbXM6IFRbXSkge1xuXHRyZXR1cm4gaXRlbXMucmVkdWNlKFxuXHRcdChtZW1vLCB2KSA9PiB7XG5cdFx0XHRpZiAoaXNIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW0odikgJiYgdi5wb3NpdGlvbiA9PT0gJ3JpZ2h0Jykge1xuXHRcdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRcdGxlZnRJdGVtczogbWVtby5sZWZ0SXRlbXMsXG5cdFx0XHRcdFx0cmlnaHRJdGVtczogWy4uLm1lbW8ucmlnaHRJdGVtcywgdl0sXG5cdFx0XHRcdH07XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRsZWZ0SXRlbXM6IFsuLi5tZW1vLmxlZnRJdGVtcywgdl0sXG5cdFx0XHRcdHJpZ2h0SXRlbXM6IG1lbW8ucmlnaHRJdGVtcyxcblx0XHRcdH07XG5cdFx0fSxcblx0XHR7bGVmdEl0ZW1zOiBbXSwgcmlnaHRJdGVtczogW119IGFzIHtsZWZ0SXRlbXM6IFRbXTsgcmlnaHRJdGVtczogVFtdfSxcblx0KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGxpbmtQYXJhbWV0ZXJzKGl0ZW06IEJhc2VMYXlvdXRJdGVtICYgUm91dGVJdGVtPERhdGE+LCBkYXRhOiBEYXRhKSB7XG5cdHJldHVybiBpdGVtLnRvXG5cdFx0PyB7XG5cdFx0XHRcdGFzOiBMaW5rLFxuXHRcdFx0XHRhY3RpdmU6IGRhdGEuYWN0aXZlLFxuXHRcdFx0XHR0bzogdHlwZW9mIGl0ZW0udG8gPT09ICdmdW5jdGlvbicgPyBpdGVtLnRvKGRhdGEpIDogaXRlbS50byxcblx0XHQgIH1cblx0XHQ6IHt9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGV4dChpdGVtOiBCYXNlTGF5b3V0SXRlbSwgZGF0YTogRGF0YSkge1xuXHRyZXR1cm4gdHlwZW9mIGl0ZW0udGV4dCA9PT0gJ2Z1bmN0aW9uJyA/IGl0ZW0udGV4dChkYXRhKSA6IGl0ZW0udGV4dDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEljb24oaXRlbTogQmFzZUxheW91dEl0ZW0sIGRhdGE6IERhdGEpIHtcblx0Ly8gR2VuZXJhdGUgdGhlIGljb24gY29tcG9uZW50LCBpZiBpdCBleGlzdHNcblx0bGV0IGljb25OYW1lOiBTZW1hbnRpY0lDT05TIHwgdW5kZWZpbmVkO1xuXHRpZiAoaXRlbS5pY29uKSB7XG5cdFx0aWNvbk5hbWUgPSB0eXBlb2YgaXRlbS5pY29uID09PSAnZnVuY3Rpb24nID8gaXRlbS5pY29uKGRhdGEpIDogaXRlbS5pY29uO1xuXHR9XG5cdHJldHVybiBpdGVtLmljb24gPyA8SWNvbiBuYW1lPXtpY29uTmFtZX0gLz4gOiBudWxsO1xufVxuIiwiaW1wb3J0IHR5cGUge0hvYywgSW1wZXJpdW1DbGllbnR9IGZyb20gJ0BpbXBlcml1bS9jbGllbnQnO1xuaW1wb3J0IGRlYnVnIGZyb20gJ2RlYnVnJztcbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7RGF0YUhvb2tzfSBmcm9tICcuLi9kYXRhaG9va3MvRGF0YUhvb2tzJztcbmltcG9ydCB7UGVybWlzc2lvbkhvb2tzfSBmcm9tICcuLi9kYXRhaG9va3MvUGVybWlzc2lvbkhvb2tzJztcbmltcG9ydCB7aXNJbXBlcml1bUxheW91dENsaWVudE1vZHVsZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4vY29tcG9uZW50cy9MYXlvdXQnO1xuaW1wb3J0IHR5cGUge0xheW91dERhdGF9IGZyb20gJy4vdHlwZXMnO1xuXG5jb25zdCBkID0gZGVidWcoJ2ltcGVyaXVtLmxheW91dC53aXRoTGF5b3V0Jyk7XG5cbmNvbnN0IGluaXRpYWxMYXlvdXRNb2R1bGVEYXRhOiBSZXF1aXJlZDxMYXlvdXREYXRhPiA9IHtcblx0ZGF0YUhvb2tzOiBbXSxcblx0cGVybWlzc2lvblNlbGVjdG9ySG9va3M6IFtdLFxuXHRwcmltYXJ5TWVudTogW10sXG5cdHN0YXR1c2JhcjogW10sXG5cdHNlY29uZGFyeU1lbnU6IFtdLFxuXHRmb290ZXI6IFtdLFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHdpdGhMYXlvdXQoY2xpZW50OiBJbXBlcml1bUNsaWVudCk6IEhvYyB7XG5cdGNvbnN0IGxheW91dE1vZHVsZURhdGEgPSBjbGllbnQubW9kdWxlcy5yZWR1Y2UoKG1lbW8sIG1vZHVsZSkgPT4ge1xuXHRcdGlmIChpc0ltcGVyaXVtTGF5b3V0Q2xpZW50TW9kdWxlKG1vZHVsZSkpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdGRhdGFIb29rczogWy4uLihtZW1vLmRhdGFIb29rcyB8fCBbXSksIC4uLihtb2R1bGUubGF5b3V0LmRhdGFIb29rcyB8fCBbXSldLFxuXHRcdFx0XHRwZXJtaXNzaW9uU2VsZWN0b3JIb29rczogWy4uLihtZW1vLnBlcm1pc3Npb25TZWxlY3Rvckhvb2tzIHx8IFtdKSwgLi4uKG1vZHVsZS5sYXlvdXQucGVybWlzc2lvblNlbGVjdG9ySG9va3MgfHwgW10pXSxcblx0XHRcdFx0cHJpbWFyeU1lbnU6IFsuLi4obWVtby5wcmltYXJ5TWVudSB8fCBbXSksIC4uLihtb2R1bGUubGF5b3V0LnByaW1hcnlNZW51IHx8IFtdKV0sXG5cdFx0XHRcdHN0YXR1c2JhcjogWy4uLihtZW1vLnN0YXR1c2JhciB8fCBbXSksIC4uLihtb2R1bGUubGF5b3V0LnN0YXR1c2JhciB8fCBbXSldLFxuXHRcdFx0XHRzZWNvbmRhcnlNZW51OiBbLi4uKG1lbW8uc2Vjb25kYXJ5TWVudSB8fCBbXSksIC4uLihtb2R1bGUubGF5b3V0LnNlY29uZGFyeU1lbnUgfHwgW10pXSxcblx0XHRcdFx0Zm9vdGVyOiBbLi4uKG1lbW8uZm9vdGVyIHx8IFtdKSwgLi4uKG1vZHVsZS5sYXlvdXQuZm9vdGVyIHx8IFtdKV0sXG5cdFx0XHR9IGFzIFJlcXVpcmVkPExheW91dERhdGE+O1xuXHRcdH1cblx0XHRyZXR1cm4gbWVtbztcblx0fSwgaW5pdGlhbExheW91dE1vZHVsZURhdGEpO1xuXHRkKCdMYXlvdXQgaXRlbXMgcHJvY2Vzc2VkJywgbGF5b3V0TW9kdWxlRGF0YSk7XG5cblx0Ly8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcblx0cmV0dXJuIGZ1bmN0aW9uIGxheW91dEhvYyhXcmFwcGVkOiBDb21wb25lbnRUeXBlPGFueT4pIHtcblx0XHRjb25zdCBkaXNwbGF5TmFtZSA9IFdyYXBwZWQuZGlzcGxheU5hbWUgfHwgV3JhcHBlZC5uYW1lIHx8ICcnO1xuXG5cdFx0ZnVuY3Rpb24gV2l0aExheW91dChwcm9wczogdW5rbm93bikge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0PD5cblx0XHRcdFx0XHQ8TGF5b3V0IHsuLi5sYXlvdXRNb2R1bGVEYXRhfT5cblx0XHRcdFx0XHRcdDxXcmFwcGVkIHsuLi5wcm9wc30gbGF5b3V0PXtsYXlvdXRNb2R1bGVEYXRhfSAvPlxuXHRcdFx0XHRcdDwvTGF5b3V0PlxuXHRcdFx0XHRcdDxEYXRhSG9va3MgZGF0YUhvb2tzPXtsYXlvdXRNb2R1bGVEYXRhLmRhdGFIb29rc30gLz5cblx0XHRcdFx0XHQ8UGVybWlzc2lvbkhvb2tzIHBlcm1pc3Npb25Ib29rcz17bGF5b3V0TW9kdWxlRGF0YS5wZXJtaXNzaW9uU2VsZWN0b3JIb29rc30gLz5cblx0XHRcdFx0PC8+XG5cdFx0XHQpO1xuXHRcdH1cblxuXHRcdFdpdGhMYXlvdXQuZGlzcGxheU5hbWUgPSBgd2l0aExheW91dCgke2Rpc3BsYXlOYW1lfSlgO1xuXG5cdFx0cmV0dXJuIFdpdGhMYXlvdXQ7XG5cdH07XG59XG4iLCIvKiBlc2xpbnQtZGlzYWJsZSBuby1wYXJhbS1yZWFzc2lnbiAqL1xuaW1wb3J0IHtjcmVhdGVTbGljZUhvb2t9IGZyb20gJ0BpbXBlcml1bS9zdGF0ZSc7XG5pbXBvcnQge2NyZWF0ZVNsaWNlLCBQYXlsb2FkQWN0aW9ufSBmcm9tICdAcmVkdXhqcy90b29sa2l0JztcblxuZXhwb3J0IGNvbnN0IHN0YXRlID0gY3JlYXRlU2xpY2Uoe1xuXHRuYW1lOiAnaW1wZXJpdW1MYXlvdXQnLFxuXHRpbml0aWFsU3RhdGU6IHtcblx0XHRpc01vYmlsZTogZmFsc2UsXG5cdFx0cGFyYW1zOiB7fSxcblx0XHRwZXJtaXNzaW9uczoge30gYXMgUmVjb3JkPHN0cmluZywgYm9vbGVhbj4sXG5cdH0sXG5cdHJlZHVjZXJzOiB7XG5cdFx0c2V0TW9iaWxlOiAoc3QsIGFjdGlvbjogUGF5bG9hZEFjdGlvbjxib29sZWFuPikgPT4gKHsuLi5zdCwgaXNNb2JpbGU6IGFjdGlvbi5wYXlsb2FkfSksXG5cdFx0c2V0UGFyYW1zOiAoc3QsIGFjdGlvbjogUGF5bG9hZEFjdGlvbjxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PikgPT4ge1xuXHRcdFx0c3QucGFyYW1zID0gYWN0aW9uLnBheWxvYWQ7XG5cdFx0fSxcblx0XHRzZXRQZXJtaXNzaW9uOiAoc3QsIGFjdGlvbjogUGF5bG9hZEFjdGlvbjx7cGVybWlzc2lvbjogc3RyaW5nOyByZXN1bHQ6IGJvb2xlYW59PikgPT4ge1xuXHRcdFx0c3QucGVybWlzc2lvbnNbYWN0aW9uLnBheWxvYWQucGVybWlzc2lvbl0gPSBhY3Rpb24ucGF5bG9hZC5yZXN1bHQ7XG5cdFx0fSxcblx0fSxcbn0pO1xuXG5leHBvcnQgY29uc3QgdXNlTGF5b3V0U3RhdGUgPSBjcmVhdGVTbGljZUhvb2soc3RhdGUpO1xuXG5leHBvcnQgY29uc3Qge2FjdGlvbnN9ID0gc3RhdGU7XG4iLCJpbXBvcnQgdHlwZSB7SW1wZXJpdW1DbGllbnRNb2R1bGV9IGZyb20gJ0BpbXBlcml1bS9jbGllbnQnO1xuaW1wb3J0IHR5cGUge0xvY2F0aW9ufSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHtMYXlvdXREYXRhfSBmcm9tICcuL2xheW91dC90eXBlcyc7XG5cbmV4cG9ydCB0eXBlIFN0YXRlID0gUmVjb3JkPHN0cmluZywgYW55Pjtcbi8qKlxuICogQSBob29rIHRoYXQgc2VsZWN0cyBmcm9tIHJlZHV4IHN0YXRlLlxuICovXG5leHBvcnQgdHlwZSBTdGF0ZVNlbGVjdG9ySG9vayA9ICgpID0+IFN0YXRlO1xuXG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uUmVzdWx0cyA9IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+O1xuXG5leHBvcnQgdHlwZSBQZXJtaXNzaW9uU2VsZWN0b3JIb29rID0gKGRhdGE6IERhdGEpID0+IFBlcm1pc3Npb25SZXN1bHRzO1xuXG4vKipcbiAqIFRoZSB2aXNpYmlsaXR5IHF1ZXJ5IGNhbiBlaXRoZXIgYmUgYSBtaW5nbyBxdWVyeSBvciBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhIGJvb2xlYW4uIFRoZSBkYXRhIGlzIGFuIG9iamVjdCB3aXRoIHRoZSByb3V0ZXIgcGF0aCBtZXJnZWQgd2l0aCBhbnkgc3RhdGUgc2VsZWN0b3IgaG9vayBkYXRhLlxuICovXG5leHBvcnQgdHlwZSBWaXNpYmlsaXR5UXVlcnlGbiA9IChkYXRhOiBEYXRhKSA9PiBib29sZWFuO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGEgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG5cdGxvYzogTG9jYXRpb247XG5cdHJvdXRlOiB7XG5cdFx0cGF0aDogc3RyaW5nW107XG5cdFx0aGFzaDogc3RyaW5nO1xuXHRcdHNlYXJjaDogUmVjb3JkPHN0cmluZywgYW55Pjtcblx0fTtcblx0c3RhdGU6IFN0YXRlO1xuXHRhY3RpdmU6IGJvb2xlYW47XG5cdHBlcm1pc3Npb25zOiBQZXJtaXNzaW9uUmVzdWx0cztcblx0aWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wZXJpdW1MYXlvdXRDbGllbnRNb2R1bGUgZXh0ZW5kcyBJbXBlcml1bUNsaWVudE1vZHVsZSB7XG5cdGxheW91dDogTGF5b3V0RGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSW1wZXJpdW1MYXlvdXRDbGllbnRNb2R1bGUobW9kdWxlOiBJbXBlcml1bUNsaWVudE1vZHVsZSk6IG1vZHVsZSBpcyBJbXBlcml1bUxheW91dENsaWVudE1vZHVsZSB7XG5cdGNvbnN0IGxheW91dE1vZHVsZSA9IG1vZHVsZSBhcyBJbXBlcml1bUxheW91dENsaWVudE1vZHVsZTtcblx0cmV0dXJuIGxheW91dE1vZHVsZS5sYXlvdXQgIT09IHVuZGVmaW5lZDtcbn1cbiIsImltcG9ydCBtZW1vaXplIGZyb20gJ2xvZGFzaC9tZW1vaXplJztcbmltcG9ydCBzb3J0QnkgZnJvbSAnbG9kYXNoL3NvcnRCeSc7XG5pbXBvcnQgdHlwZSB7V2VpZ2h0ZWRJdGVtfSBmcm9tICcuL2NvbW1vbkl0ZW1zJztcblxuLyoqXG4gKiBTb3J0cyB3ZWlnaHRlZCBpdGVtc1xuICovXG5leHBvcnQgY29uc3Qgc29ydFdlaWdodGVkSXRlbXMgPSBtZW1vaXplKGZ1bmN0aW9uIHNvcnRXZWlnaHRlZEl0ZW1zSW1wbDxUIGV4dGVuZHMgV2VpZ2h0ZWRJdGVtPihpdGVtczogVFtdKSB7XG5cdHJldHVybiBzb3J0QnkoaXRlbXMsIHYgPT4gdi53ZWlnaHQgfHwgMCk7XG59KTtcbiIsIlxuICAgICAgaW1wb3J0IEFQSSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luamVjdFN0eWxlc0ludG9TdHlsZVRhZy5qc1wiO1xuICAgICAgaW1wb3J0IGRvbUFQSSBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3N0eWxlRG9tQVBJLmpzXCI7XG4gICAgICBpbXBvcnQgaW5zZXJ0Rm4gZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRCeVNlbGVjdG9yLmpzXCI7XG4gICAgICBpbXBvcnQgc2V0QXR0cmlidXRlcyBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL3NldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcy5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydFN0eWxlRWxlbWVudCBmcm9tIFwiIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9zdHlsZS1sb2FkZXIvZGlzdC9ydW50aW1lL2luc2VydFN0eWxlRWxlbWVudC5qc1wiO1xuICAgICAgaW1wb3J0IHN0eWxlVGFnVHJhbnNmb3JtRm4gZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZVRhZ1RyYW5zZm9ybS5qc1wiO1xuICAgICAgaW1wb3J0IGNvbnRlbnQsICogYXMgbmFtZWRFeHBvcnQgZnJvbSBcIiEhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2Nzcy1sb2FkZXIvZGlzdC9janMuanM/P3J1bGVTZXRbMV0ucnVsZXNbMl0udXNlWzJdIS4vc3R5bGVzLmNzc1wiO1xuICAgICAgXG4gICAgICBcblxudmFyIG9wdGlvbnMgPSB7fTtcblxub3B0aW9ucy5zdHlsZVRhZ1RyYW5zZm9ybSA9IHN0eWxlVGFnVHJhbnNmb3JtRm47XG5vcHRpb25zLnNldEF0dHJpYnV0ZXMgPSBzZXRBdHRyaWJ1dGVzO1xuXG4gICAgICBvcHRpb25zLmluc2VydCA9IGluc2VydEZuLmJpbmQobnVsbCwgXCJoZWFkXCIpO1xuICAgIFxub3B0aW9ucy5kb21BUEkgPSBkb21BUEk7XG5vcHRpb25zLmluc2VydFN0eWxlRWxlbWVudCA9IGluc2VydFN0eWxlRWxlbWVudDtcblxudmFyIHVwZGF0ZSA9IEFQSShjb250ZW50LCBvcHRpb25zKTtcblxuXG5cbmV4cG9ydCAqIGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLnVzZVsyXSEuL3N0eWxlcy5jc3NcIjtcbiAgICAgICBleHBvcnQgZGVmYXVsdCBjb250ZW50ICYmIGNvbnRlbnQubG9jYWxzID8gY29udGVudC5sb2NhbHMgOiB1bmRlZmluZWQ7XG4iLCJcbiAgICAgIGltcG9ydCBBUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbmplY3RTdHlsZXNJbnRvU3R5bGVUYWcuanNcIjtcbiAgICAgIGltcG9ydCBkb21BUEkgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zdHlsZURvbUFQSS5qc1wiO1xuICAgICAgaW1wb3J0IGluc2VydEZuIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvaW5zZXJ0QnlTZWxlY3Rvci5qc1wiO1xuICAgICAgaW1wb3J0IHNldEF0dHJpYnV0ZXMgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9zZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXMuanNcIjtcbiAgICAgIGltcG9ydCBpbnNlcnRTdHlsZUVsZW1lbnQgZnJvbSBcIiEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvc3R5bGUtbG9hZGVyL2Rpc3QvcnVudGltZS9pbnNlcnRTdHlsZUVsZW1lbnQuanNcIjtcbiAgICAgIGltcG9ydCBzdHlsZVRhZ1RyYW5zZm9ybUZuIGZyb20gXCIhLi4vLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3N0eWxlLWxvYWRlci9kaXN0L3J1bnRpbWUvc3R5bGVUYWdUcmFuc2Zvcm0uanNcIjtcbiAgICAgIGltcG9ydCBjb250ZW50LCAqIGFzIG5hbWVkRXhwb3J0IGZyb20gXCIhIS4uLy4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9jc3MtbG9hZGVyL2Rpc3QvY2pzLmpzPz9ydWxlU2V0WzFdLnJ1bGVzWzJdLnVzZVsyXSEuL3N0eWxlcy5jc3NcIjtcbiAgICAgIFxuICAgICAgXG5cbnZhciBvcHRpb25zID0ge307XG5cbm9wdGlvbnMuc3R5bGVUYWdUcmFuc2Zvcm0gPSBzdHlsZVRhZ1RyYW5zZm9ybUZuO1xub3B0aW9ucy5zZXRBdHRyaWJ1dGVzID0gc2V0QXR0cmlidXRlcztcblxuICAgICAgb3B0aW9ucy5pbnNlcnQgPSBpbnNlcnRGbi5iaW5kKG51bGwsIFwiaGVhZFwiKTtcbiAgICBcbm9wdGlvbnMuZG9tQVBJID0gZG9tQVBJO1xub3B0aW9ucy5pbnNlcnRTdHlsZUVsZW1lbnQgPSBpbnNlcnRTdHlsZUVsZW1lbnQ7XG5cbnZhciB1cGRhdGUgPSBBUEkoY29udGVudCwgb3B0aW9ucyk7XG5cblxuXG5leHBvcnQgKiBmcm9tIFwiISEuLi8uLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvY3NzLWxvYWRlci9kaXN0L2Nqcy5qcz8/cnVsZVNldFsxXS5ydWxlc1syXS51c2VbMl0hLi9zdHlsZXMuY3NzXCI7XG4gICAgICAgZXhwb3J0IGRlZmF1bHQgY29udGVudCAmJiBjb250ZW50LmxvY2FscyA/IGNvbnRlbnQubG9jYWxzIDogdW5kZWZpbmVkO1xuIiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBzdHlsZXNJbkRPTSA9IFtdO1xuXG5mdW5jdGlvbiBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKSB7XG4gIHZhciByZXN1bHQgPSAtMTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IHN0eWxlc0luRE9NLmxlbmd0aDsgaSsrKSB7XG4gICAgaWYgKHN0eWxlc0luRE9NW2ldLmlkZW50aWZpZXIgPT09IGlkZW50aWZpZXIpIHtcbiAgICAgIHJlc3VsdCA9IGk7XG4gICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiBtb2R1bGVzVG9Eb20obGlzdCwgb3B0aW9ucykge1xuICB2YXIgaWRDb3VudE1hcCA9IHt9O1xuICB2YXIgaWRlbnRpZmllcnMgPSBbXTtcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcbiAgICB2YXIgaXRlbSA9IGxpc3RbaV07XG4gICAgdmFyIGlkID0gb3B0aW9ucy5iYXNlID8gaXRlbVswXSArIG9wdGlvbnMuYmFzZSA6IGl0ZW1bMF07XG4gICAgdmFyIGNvdW50ID0gaWRDb3VudE1hcFtpZF0gfHwgMDtcbiAgICB2YXIgaWRlbnRpZmllciA9IFwiXCIuY29uY2F0KGlkLCBcIiBcIikuY29uY2F0KGNvdW50KTtcbiAgICBpZENvdW50TWFwW2lkXSA9IGNvdW50ICsgMTtcbiAgICB2YXIgaW5kZXhCeUlkZW50aWZpZXIgPSBnZXRJbmRleEJ5SWRlbnRpZmllcihpZGVudGlmaWVyKTtcbiAgICB2YXIgb2JqID0ge1xuICAgICAgY3NzOiBpdGVtWzFdLFxuICAgICAgbWVkaWE6IGl0ZW1bMl0sXG4gICAgICBzb3VyY2VNYXA6IGl0ZW1bM10sXG4gICAgICBzdXBwb3J0czogaXRlbVs0XSxcbiAgICAgIGxheWVyOiBpdGVtWzVdXG4gICAgfTtcblxuICAgIGlmIChpbmRleEJ5SWRlbnRpZmllciAhPT0gLTEpIHtcbiAgICAgIHN0eWxlc0luRE9NW2luZGV4QnlJZGVudGlmaWVyXS5yZWZlcmVuY2VzKys7XG4gICAgICBzdHlsZXNJbkRPTVtpbmRleEJ5SWRlbnRpZmllcl0udXBkYXRlcihvYmopO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgdXBkYXRlciA9IGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpO1xuICAgICAgb3B0aW9ucy5ieUluZGV4ID0gaTtcbiAgICAgIHN0eWxlc0luRE9NLnNwbGljZShpLCAwLCB7XG4gICAgICAgIGlkZW50aWZpZXI6IGlkZW50aWZpZXIsXG4gICAgICAgIHVwZGF0ZXI6IHVwZGF0ZXIsXG4gICAgICAgIHJlZmVyZW5jZXM6IDFcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlkZW50aWZpZXJzLnB1c2goaWRlbnRpZmllcik7XG4gIH1cblxuICByZXR1cm4gaWRlbnRpZmllcnM7XG59XG5cbmZ1bmN0aW9uIGFkZEVsZW1lbnRTdHlsZShvYmosIG9wdGlvbnMpIHtcbiAgdmFyIGFwaSA9IG9wdGlvbnMuZG9tQVBJKG9wdGlvbnMpO1xuICBhcGkudXBkYXRlKG9iaik7XG5cbiAgdmFyIHVwZGF0ZXIgPSBmdW5jdGlvbiB1cGRhdGVyKG5ld09iaikge1xuICAgIGlmIChuZXdPYmopIHtcbiAgICAgIGlmIChuZXdPYmouY3NzID09PSBvYmouY3NzICYmIG5ld09iai5tZWRpYSA9PT0gb2JqLm1lZGlhICYmIG5ld09iai5zb3VyY2VNYXAgPT09IG9iai5zb3VyY2VNYXAgJiYgbmV3T2JqLnN1cHBvcnRzID09PSBvYmouc3VwcG9ydHMgJiYgbmV3T2JqLmxheWVyID09PSBvYmoubGF5ZXIpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBhcGkudXBkYXRlKG9iaiA9IG5ld09iaik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFwaS5yZW1vdmUoKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIHVwZGF0ZXI7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZnVuY3Rpb24gKGxpc3QsIG9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gIGxpc3QgPSBsaXN0IHx8IFtdO1xuICB2YXIgbGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKGxpc3QsIG9wdGlvbnMpO1xuICByZXR1cm4gZnVuY3Rpb24gdXBkYXRlKG5ld0xpc3QpIHtcbiAgICBuZXdMaXN0ID0gbmV3TGlzdCB8fCBbXTtcblxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGFzdElkZW50aWZpZXJzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIgaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tpXTtcbiAgICAgIHZhciBpbmRleCA9IGdldEluZGV4QnlJZGVudGlmaWVyKGlkZW50aWZpZXIpO1xuICAgICAgc3R5bGVzSW5ET01baW5kZXhdLnJlZmVyZW5jZXMtLTtcbiAgICB9XG5cbiAgICB2YXIgbmV3TGFzdElkZW50aWZpZXJzID0gbW9kdWxlc1RvRG9tKG5ld0xpc3QsIG9wdGlvbnMpO1xuXG4gICAgZm9yICh2YXIgX2kgPSAwOyBfaSA8IGxhc3RJZGVudGlmaWVycy5sZW5ndGg7IF9pKyspIHtcbiAgICAgIHZhciBfaWRlbnRpZmllciA9IGxhc3RJZGVudGlmaWVyc1tfaV07XG5cbiAgICAgIHZhciBfaW5kZXggPSBnZXRJbmRleEJ5SWRlbnRpZmllcihfaWRlbnRpZmllcik7XG5cbiAgICAgIGlmIChzdHlsZXNJbkRPTVtfaW5kZXhdLnJlZmVyZW5jZXMgPT09IDApIHtcbiAgICAgICAgc3R5bGVzSW5ET01bX2luZGV4XS51cGRhdGVyKCk7XG5cbiAgICAgICAgc3R5bGVzSW5ET00uc3BsaWNlKF9pbmRleCwgMSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGFzdElkZW50aWZpZXJzID0gbmV3TGFzdElkZW50aWZpZXJzO1xuICB9O1xufTsiLCJcInVzZSBzdHJpY3RcIjtcblxudmFyIG1lbW8gPSB7fTtcbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5mdW5jdGlvbiBnZXRUYXJnZXQodGFyZ2V0KSB7XG4gIGlmICh0eXBlb2YgbWVtb1t0YXJnZXRdID09PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgdmFyIHN0eWxlVGFyZ2V0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0YXJnZXQpOyAvLyBTcGVjaWFsIGNhc2UgdG8gcmV0dXJuIGhlYWQgb2YgaWZyYW1lIGluc3RlYWQgb2YgaWZyYW1lIGl0c2VsZlxuXG4gICAgaWYgKHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCAmJiBzdHlsZVRhcmdldCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MSUZyYW1lRWxlbWVudCkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyB3aWxsIHRocm93IGFuIGV4Y2VwdGlvbiBpZiBhY2Nlc3MgdG8gaWZyYW1lIGlzIGJsb2NrZWRcbiAgICAgICAgLy8gZHVlIHRvIGNyb3NzLW9yaWdpbiByZXN0cmljdGlvbnNcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBzdHlsZVRhcmdldC5jb250ZW50RG9jdW1lbnQuaGVhZDtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgLy8gaXN0YW5idWwgaWdub3JlIG5leHRcbiAgICAgICAgc3R5bGVUYXJnZXQgPSBudWxsO1xuICAgICAgfVxuICAgIH1cblxuICAgIG1lbW9bdGFyZ2V0XSA9IHN0eWxlVGFyZ2V0O1xuICB9XG5cbiAgcmV0dXJuIG1lbW9bdGFyZ2V0XTtcbn1cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuXG5cbmZ1bmN0aW9uIGluc2VydEJ5U2VsZWN0b3IoaW5zZXJ0LCBzdHlsZSkge1xuICB2YXIgdGFyZ2V0ID0gZ2V0VGFyZ2V0KGluc2VydCk7XG5cbiAgaWYgKCF0YXJnZXQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJDb3VsZG4ndCBmaW5kIGEgc3R5bGUgdGFyZ2V0LiBUaGlzIHByb2JhYmx5IG1lYW5zIHRoYXQgdGhlIHZhbHVlIGZvciB0aGUgJ2luc2VydCcgcGFyYW1ldGVyIGlzIGludmFsaWQuXCIpO1xuICB9XG5cbiAgdGFyZ2V0LmFwcGVuZENoaWxkKHN0eWxlKTtcbn1cblxubW9kdWxlLmV4cG9ydHMgPSBpbnNlcnRCeVNlbGVjdG9yOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIGluc2VydFN0eWxlRWxlbWVudChvcHRpb25zKSB7XG4gIHZhciBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcInN0eWxlXCIpO1xuICBvcHRpb25zLnNldEF0dHJpYnV0ZXMoZWxlbWVudCwgb3B0aW9ucy5hdHRyaWJ1dGVzKTtcbiAgb3B0aW9ucy5pbnNlcnQoZWxlbWVudCwgb3B0aW9ucy5vcHRpb25zKTtcbiAgcmV0dXJuIGVsZW1lbnQ7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gaW5zZXJ0U3R5bGVFbGVtZW50OyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHNldEF0dHJpYnV0ZXNXaXRob3V0QXR0cmlidXRlcyhzdHlsZUVsZW1lbnQpIHtcbiAgdmFyIG5vbmNlID0gdHlwZW9mIF9fd2VicGFja19ub25jZV9fICE9PSBcInVuZGVmaW5lZFwiID8gX193ZWJwYWNrX25vbmNlX18gOiBudWxsO1xuXG4gIGlmIChub25jZSkge1xuICAgIHN0eWxlRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJub25jZVwiLCBub25jZSk7XG4gIH1cbn1cblxubW9kdWxlLmV4cG9ydHMgPSBzZXRBdHRyaWJ1dGVzV2l0aG91dEF0dHJpYnV0ZXM7IiwiXCJ1c2Ugc3RyaWN0XCI7XG5cbi8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICAqL1xuZnVuY3Rpb24gYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopIHtcbiAgdmFyIGNzcyA9IFwiXCI7XG5cbiAgaWYgKG9iai5zdXBwb3J0cykge1xuICAgIGNzcyArPSBcIkBzdXBwb3J0cyAoXCIuY29uY2F0KG9iai5zdXBwb3J0cywgXCIpIHtcIik7XG4gIH1cblxuICBpZiAob2JqLm1lZGlhKSB7XG4gICAgY3NzICs9IFwiQG1lZGlhIFwiLmNvbmNhdChvYmoubWVkaWEsIFwiIHtcIik7XG4gIH1cblxuICB2YXIgbmVlZExheWVyID0gdHlwZW9mIG9iai5sYXllciAhPT0gXCJ1bmRlZmluZWRcIjtcblxuICBpZiAobmVlZExheWVyKSB7XG4gICAgY3NzICs9IFwiQGxheWVyXCIuY29uY2F0KG9iai5sYXllci5sZW5ndGggPiAwID8gXCIgXCIuY29uY2F0KG9iai5sYXllcikgOiBcIlwiLCBcIiB7XCIpO1xuICB9XG5cbiAgY3NzICs9IG9iai5jc3M7XG5cbiAgaWYgKG5lZWRMYXllcikge1xuICAgIGNzcyArPSBcIn1cIjtcbiAgfVxuXG4gIGlmIChvYmoubWVkaWEpIHtcbiAgICBjc3MgKz0gXCJ9XCI7XG4gIH1cblxuICBpZiAob2JqLnN1cHBvcnRzKSB7XG4gICAgY3NzICs9IFwifVwiO1xuICB9XG5cbiAgdmFyIHNvdXJjZU1hcCA9IG9iai5zb3VyY2VNYXA7XG5cbiAgaWYgKHNvdXJjZU1hcCAmJiB0eXBlb2YgYnRvYSAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIGNzcyArPSBcIlxcbi8qIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsXCIuY29uY2F0KGJ0b2EodW5lc2NhcGUoZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHNvdXJjZU1hcCkpKSksIFwiICovXCIpO1xuICB9IC8vIEZvciBvbGQgSUVcblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgICovXG5cblxuICBvcHRpb25zLnN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50LCBvcHRpb25zLm9wdGlvbnMpO1xufVxuXG5mdW5jdGlvbiByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KSB7XG4gIC8vIGlzdGFuYnVsIGlnbm9yZSBpZlxuICBpZiAoc3R5bGVFbGVtZW50LnBhcmVudE5vZGUgPT09IG51bGwpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzdHlsZUVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzdHlsZUVsZW1lbnQpO1xufVxuLyogaXN0YW5idWwgaWdub3JlIG5leHQgICovXG5cblxuZnVuY3Rpb24gZG9tQVBJKG9wdGlvbnMpIHtcbiAgdmFyIHN0eWxlRWxlbWVudCA9IG9wdGlvbnMuaW5zZXJ0U3R5bGVFbGVtZW50KG9wdGlvbnMpO1xuICByZXR1cm4ge1xuICAgIHVwZGF0ZTogZnVuY3Rpb24gdXBkYXRlKG9iaikge1xuICAgICAgYXBwbHkoc3R5bGVFbGVtZW50LCBvcHRpb25zLCBvYmopO1xuICAgIH0sXG4gICAgcmVtb3ZlOiBmdW5jdGlvbiByZW1vdmUoKSB7XG4gICAgICByZW1vdmVTdHlsZUVsZW1lbnQoc3R5bGVFbGVtZW50KTtcbiAgICB9XG4gIH07XG59XG5cbm1vZHVsZS5leHBvcnRzID0gZG9tQVBJOyIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAgKi9cbmZ1bmN0aW9uIHN0eWxlVGFnVHJhbnNmb3JtKGNzcywgc3R5bGVFbGVtZW50KSB7XG4gIGlmIChzdHlsZUVsZW1lbnQuc3R5bGVTaGVldCkge1xuICAgIHN0eWxlRWxlbWVudC5zdHlsZVNoZWV0LmNzc1RleHQgPSBjc3M7XG4gIH0gZWxzZSB7XG4gICAgd2hpbGUgKHN0eWxlRWxlbWVudC5maXJzdENoaWxkKSB7XG4gICAgICBzdHlsZUVsZW1lbnQucmVtb3ZlQ2hpbGQoc3R5bGVFbGVtZW50LmZpcnN0Q2hpbGQpO1xuICAgIH1cblxuICAgIHN0eWxlRWxlbWVudC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjc3MpKTtcbiAgfVxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IHN0eWxlVGFnVHJhbnNmb3JtOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9vYmplY3RXaXRob3V0UHJvcGVydGllc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b0NvbnN1bWFibGVBcnJheVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAaW1wZXJpdW0vYXV0aC1jbGllbnRcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQGltcGVyaXVtL3N0YXRlXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkByZWR1eGpzL3Rvb2xraXRcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQHRoeC9jb250cm9sc1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJkZWJ1Z1wiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJsb2Rhc2hcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibG9kYXNoL2NvbXBhY3RcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibG9kYXNoL2Zsb3dSaWdodFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJsb2Rhc2gvZnBcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibG9kYXNoL2dyb3VwQnlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibG9kYXNoL21lbW9pemVcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibG9kYXNoL21lcmdlXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcImxvZGFzaC9zb3J0QnlcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwibWluZ29cIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicXVlcnlzdHJpbmdcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3RcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtcmVkdXhcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3QtcmVzcG9uc2l2ZVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdC1yb3V0ZXJcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwicmVhY3Qtcm91dGVyLWRvbVwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJyZWFjdC9qc3gtZGV2LXJ1bnRpbWVcIik7IiwibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwic2VtYW50aWMtdWktcmVhY3RcIik7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHRpZDogbW9kdWxlSWQsXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImltcG9ydCB0eXBlIHtJbXBlcml1bVN0YXRlQ2xpZW50TW9kdWxlfSBmcm9tICdAaW1wZXJpdW0vc3RhdGUnO1xuaW1wb3J0IHt1c2VNb2JpbGVMYXlvdXR9IGZyb20gJy4vbGF5b3V0L2hvb2tzL3VzZU1vYmlsZUxheW91dCc7XG5pbXBvcnQge3dpdGhMYXlvdXR9IGZyb20gJy4vbGF5b3V0L3dpdGhMYXlvdXQnO1xuaW1wb3J0IHtzdGF0ZX0gZnJvbSAnLi9zdGF0ZSc7XG5pbXBvcnQgdHlwZSB7SW1wZXJpdW1MYXlvdXRDbGllbnRNb2R1bGV9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gbGF5b3V0Q2xpZW50TW9kdWxlKCk6IEltcGVyaXVtU3RhdGVDbGllbnRNb2R1bGUgJiBJbXBlcml1bUxheW91dENsaWVudE1vZHVsZSB7XG5cdHJldHVybiB7XG5cdFx0bmFtZTogJ0BpbXBlcml1bS9sYXlvdXQnLFxuXHRcdG9yZGVyOiAzMCxcblx0XHRob2NzOiBbd2l0aExheW91dF0sXG5cdFx0c3RhdGUsXG5cdFx0bGF5b3V0OiB7XG5cdFx0XHRkYXRhSG9va3M6IFt1c2VNb2JpbGVMYXlvdXRdLFxuXHRcdH0sXG5cdH07XG59XG5cbmV4cG9ydCB0eXBlIHtMYXlvdXREYXRhfSBmcm9tICcuL2xheW91dC90eXBlcyc7XG5leHBvcnQge3VzZUxheW91dFN0YXRlLCBhY3Rpb25zIGFzIGxheW91dEFjdGlvbnN9IGZyb20gJy4vc3RhdGUnO1xuZXhwb3J0IHtjcmVhdGVQYWdlc30gZnJvbSAnLi9jb250ZW50L2NyZWF0ZVBhZ2VzJztcbmV4cG9ydCB0eXBlIHtJbXBlcml1bUxheW91dENsaWVudE1vZHVsZX0gZnJvbSAnLi90eXBlcyc7XG5leHBvcnQge2RpdmlkZXJTaWRlYmFySXRlbX0gZnJvbSAnLi9jb250ZW50L2RpdmlkZXJTaWRlYmFySXRlbSc7XG4iXSwibmFtZXMiOlsiaXNIb3Jpem9udGFsUG9zaXRpb25lZEl0ZW0iLCJ2YWx1ZSIsInBvc2l0aW9uIiwic3RpY2tPbk1vYmlsZSIsImlzUm91dGVJdGVtIiwidG8iLCJleGFjdCIsInN0cmljdCIsInNlbnNpdGl2ZSIsInVzZVRGb3JtIiwiZGVidWciLCJSZWFjdCIsIkJ1dHRvbiIsIkZvcm0iLCJJY29uIiwiTWVzc2FnZSIsIlBvcHVwIiwiZCIsIkFjdGlvbkZvcm0iLCJpdGVtIiwiZGF0YSIsIm9uSGlkZUZvcm0iLCJpbml0aWFsVmFsdWVzIiwib25TdWJtaXQiLCJzdWJtaXRWYWx1ZXMiLCJlbmFibGVSZWluaXRpYWxpemUiLCJ2YWxpZGF0aW9uU2NoZW1hIiwiaGFzRXJyb3JzIiwiaGFzV2FybmluZ3MiLCJoYW5kbGVTdWJtaXQiLCJoYW5kbGVDaGFuZ2UiLCJ2YWx1ZXMiLCJyZXNldEZvcm0iLCJlcnJvcnMiLCJmaWVsZEVycm9yIiwic2F2ZUJ1dHRvbiIsIk9iamVjdCIsImZvcm0iLCJ1c2VTdGF0ZSIsImdldENvbG9yIiwiZ2V0SWNvbiIsImdldFRleHQiLCJBY3Rpb25Gb3JtU2lkZWJhckl0ZW1Db21wb25lbnQiLCJpc0VkaXQiLCJzZXRJc0VkaXQiLCJpY29uIiwidW5kZWZpbmVkIiwiQWN0aW9uU2lkZWJhckl0ZW1Db21wb25lbnQiLCJvbkNsaWNrIiwiaXNFcXVhbCIsInVzZUVmZmVjdCIsInVzZVJlZiIsInVzZURpc3BhdGNoIiwiRGF0YUhvb2tzIiwiYWN0aW9ucyIsInNvcnRXZWlnaHRlZEl0ZW1zIiwidXNlQnVpbGRDb250ZW50RGF0YSIsIkhlYWRlciIsIlNpZGViYXJJdGVtV3JhcHBlciIsInN0eWxlcyIsInVzZURlZXBDb21wYXJlTWVtb2l6ZSIsInJlZiIsImN1cnJlbnQiLCJ1c2VEZWVwQ29tcGFyZUVmZmVjdCIsImNhbGxiYWNrIiwiZGVwcyIsIm1hcCIsIkNvbnRlbnRDb21wb25lbnQiLCJwYWdlIiwicGFyYW1zIiwiZGlzcGF0Y2giLCJzdGF0ZVNlbGVjdG9ySG9vayIsInBlcm1pc3Npb25TZWxlY3Rvckhvb2siLCJzZXRQYXJhbXMiLCJjb250ZW50Iiwic2lkZWJhckl0ZW1zIiwic2lkZWJhciIsImxlbmd0aCIsImFjdGlvbnNIZWFkZXIiLCJzYiIsImluZGV4Iiwic2lkZWJhckl0ZW0iLCJwYXJlbnQiLCJ3cmFwcGVyIiwiaGVhZGVyIiwiZnVsbCIsImNvbnRlbnRGdWxsIiwiZGF0YUhvb2tzIiwiQ3VzdG9tU2lkZWJhckl0ZW1Db21wb25lbnQiLCJyZW5kZXIiLCJoZWFkZXJJbmZvIiwidGl0bGUiLCJMaW5rIiwiZ2V0Um91dGVUbyIsIlBsYWluU2lkZWJhckl0ZW0iLCJRdWVyeSIsIkRpdmlkZXIiLCJpc0FjdGlvbkZvcm1TaWRlYmFySXRlbSIsImlzQWN0aW9uU2lkZWJhckl0ZW0iLCJpc0N1c3RvbVNpZGViYXJJdGVtIiwiaXNEaXZpZGVyU2lkZWJhckl0ZW0iLCJwYXJlbnREYXRhIiwidmlzaWJsZSIsInEiLCJ0ZXN0IiwiaXNQYWdlIiwiY3JlYXRlUGFnZXMiLCJyb3V0ZXMiLCJwYWdlcyIsInJlbmRlclJvdXRlUHJvcHNPYmoiLCJrZXlzIiwidHlwZXMiLCJyZWR1Y2UiLCJtZW1vIiwia2V5IiwicGciLCJyZW5kZXJSb3V0ZVByb3BzIiwiZGl2aWRlclNpZGViYXJJdGVtIiwidGV4dCIsImRpdmlkZXIiLCJ1c2VCdWlsZERhdGEiLCJyb3V0ZUl0ZW0iLCJidWlsZERhdGEiLCJpY29uTmFtZSIsImNvbG9yIiwiY29tcG9zZSIsInVzZUxvY2F0aW9uIiwiRXhlY3V0ZURhdGFIb29rIiwicGF0aG5hbWUiLCJob29rIiwiZm4iLCJBcnJheSIsImlzQXJyYXkiLCJyb3V0ZU1hdGNoIiwicm91dGVQYXJhbXMiLCJkYXRhSG9vayIsImRoIiwiaW5kZXgyIiwiRXhlY3V0ZVBlcm1pc3Npb25Ib29rIiwicGVybWlzc2lvbkhvb2siLCJwZXJtcyIsImZvckVhY2giLCJwZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsInJlc3VsdCIsIlBlcm1pc3Npb25Ib29rcyIsInBlcm1pc3Npb25Ib29rcyIsInVzZUF1dGgiLCJjb21wYWN0IiwibWVyZ2UiLCJxdWVyeVN0cmluZyIsInVzZUxheW91dFN0YXRlIiwidXNlSXNBY3RpdmVSb3V0ZSIsInVzZVNlbGVjdFBlcm1pc3Npb24iLCJ1c2VTZWxlY3RTdGF0ZSIsImlkIiwicGVybWlzc2lvbnMiLCJzdGF0ZSIsImxvYyIsInJvdXRlIiwicGF0aCIsInNwbGl0IiwiaGFzaCIsInNlYXJjaCIsInBhcnNlIiwiYWN0aXZlIiwicGVybWlzc2lvbnNYIiwibmV3RGF0YSIsInVzZVJvdXRlTWF0Y2giLCJyb3V0ZU1hdGNoT2JqZWN0IiwiZmxvd1JpZ2h0IiwiZmluYWxTZWxlY3Rvckhvb2siLCJDdXN0b21MYXlvdXRJdGVtQ29tcG9uZW50IiwiQWNjb3JkaW9uIiwiRHJvcGRvd24iLCJNZW51IiwiRHJvcGRvd25JdGVtIiwidmVydGljYWwiLCJjaGlsZHJlbiIsIm9wZW4iLCJzZXRPcGVuIiwidmVydGljYWxEcm9wZG93blRpdGxlIiwiZXYiLCJzdG9wUHJvcGFnYXRpb24iLCJ2ZXJ0aWNhbERyb3Bkb3duSWNvblJvdGF0ZWQiLCJ2ZXJ0aWNhbERyb3Bkb3duSWNvbiIsInZlcnRpY2FsRHJvcGRvd25Db250ZW50IiwiU2VnbWVudCIsIm1vdmVJdGVtcyIsIkxheW91dEl0ZW1CYXIiLCJTZWNvbmRhcnlNZW51VG9nZ2xlSXRlbSIsIkxheW91dCIsImZvb3RlciIsInByaW1hcnlNZW51Iiwic3RhdHVzYmFyIiwic2Vjb25kYXJ5TWVudSIsImlzTW9iaWxlIiwibWVudU9wZW4iLCJzZXRNZW51T3BlbiIsInByaW1hcnlNZW51VG9nZ2xlIiwid2VpZ2h0IiwicHJpbWFyeU1lbnVJdGVtcyIsImZpbHRlciIsInYiLCJzZWNvbmRhcnlNZW51SXRlbXMiLCJtZW51Iiwic2Vjb25kYXJ5TWVudUNvbXAiLCJzZWNvbmRhcnlNZW51SGlkZGVuIiwiZm9vdGVySXRlbXMiLCJmb290ZXJDb21wIiwic3RhdHVzYmFySXRlbXMiLCJzdGF0dXNiYXJDb21wIiwibWVudWJhciIsImNvbnRlbnRXcmFwcGVyIiwic3BsaXRQb3NpdGlvbmVkSXRlbXMiLCJMYXlvdXRJdGVtV3JhcHBlciIsIml0ZW1zIiwicmVzdCIsImltcyIsImxlZnRJdGVtcyIsInJpZ2h0SXRlbXMiLCJpc0N1c3RvbUxheW91dEl0ZW0iLCJpc0Ryb3Bkb3duTGF5b3V0SXRlbSIsImlzTWVudUxheW91dEl0ZW0iLCJNZW51SXRlbSIsIlBsYWluSXRlbSIsImFzIiwiZHJvcGRvd24iLCJJdGVtIiwibGlua1BhcmFtZXRlcnMiLCJsaW5rUGFyYW1zIiwiSXRlbVgiLCJpY29uUm90YXRlZCIsInVzZU1lZGlhUXVlcnkiLCJ1c2VNb2JpbGVMYXlvdXQiLCJpc01vYmlsZVgiLCJxdWVyeSIsInNldE1vYmlsZSIsImdyb3VwQnkiLCJwdWxsSXRlbXMiLCJwdWxsZWQiLCJtb3ZlVG9LZXkiLCJwdXNoIiwiYWRkSXRlbXMiLCJuZXdJdGVtcyIsIml0ZW1zTWludXNQdWxsZWQiLCJpc0ltcGVyaXVtTGF5b3V0Q2xpZW50TW9kdWxlIiwiaW5pdGlhbExheW91dE1vZHVsZURhdGEiLCJwZXJtaXNzaW9uU2VsZWN0b3JIb29rcyIsIndpdGhMYXlvdXQiLCJjbGllbnQiLCJsYXlvdXRNb2R1bGVEYXRhIiwibW9kdWxlcyIsIm1vZHVsZSIsImxheW91dCIsImxheW91dEhvYyIsIldyYXBwZWQiLCJkaXNwbGF5TmFtZSIsIm5hbWUiLCJXaXRoTGF5b3V0IiwicHJvcHMiLCJjcmVhdGVTbGljZUhvb2siLCJjcmVhdGVTbGljZSIsImluaXRpYWxTdGF0ZSIsInJlZHVjZXJzIiwic3QiLCJhY3Rpb24iLCJwYXlsb2FkIiwibGF5b3V0TW9kdWxlIiwibWVtb2l6ZSIsInNvcnRCeSIsInNvcnRXZWlnaHRlZEl0ZW1zSW1wbCIsImxheW91dENsaWVudE1vZHVsZSIsIm9yZGVyIiwiaG9jcyIsImxheW91dEFjdGlvbnMiXSwic291cmNlUm9vdCI6IiJ9