@sd-angular/core 1.3.150 → 1.3.152

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 (659) hide show
  1. package/api/sd-angular-core-api.metadata.json +1 -1
  2. package/api/src/lib/api.service.d.ts +1 -5
  3. package/assets/img/file-types/eps/001-file.eps +143 -143
  4. package/assets/img/file-types/eps/002-file-1.eps +136 -136
  5. package/assets/img/file-types/eps/003-file-2.eps +130 -130
  6. package/assets/img/file-types/eps/004-file-3.eps +127 -127
  7. package/assets/img/file-types/eps/005-file-4.eps +120 -120
  8. package/assets/img/file-types/eps/006-file-5.eps +133 -133
  9. package/assets/img/file-types/eps/007-file-6.eps +133 -133
  10. package/assets/img/file-types/eps/008-file-7.eps +144 -144
  11. package/assets/img/file-types/eps/009-file-8.eps +150 -150
  12. package/assets/img/file-types/eps/010-file-9.eps +155 -155
  13. package/assets/img/file-types/eps/011-file-10.eps +124 -124
  14. package/assets/img/file-types/eps/012-file-11.eps +147 -147
  15. package/assets/img/file-types/eps/013-file-12.eps +125 -125
  16. package/assets/img/file-types/eps/014-file-13.eps +129 -129
  17. package/assets/img/file-types/eps/015-file-14.eps +143 -143
  18. package/assets/img/file-types/eps/016-file-15.eps +130 -130
  19. package/assets/img/file-types/eps/017-file-16.eps +197 -197
  20. package/assets/img/file-types/eps/018-file-17.eps +146 -146
  21. package/assets/img/file-types/eps/019-file-18.eps +131 -131
  22. package/assets/img/file-types/eps/020-file-19.eps +137 -137
  23. package/assets/img/file-types/eps/021-file-20.eps +134 -134
  24. package/assets/img/file-types/eps/022-file-21.eps +130 -130
  25. package/assets/img/file-types/eps/023-file-22.eps +161 -161
  26. package/assets/img/file-types/eps/024-file-23.eps +144 -144
  27. package/assets/img/file-types/eps/025-file-24.eps +164 -164
  28. package/assets/img/file-types/eps/026-file-25.eps +135 -135
  29. package/assets/img/file-types/eps/027-file-26.eps +124 -124
  30. package/assets/img/file-types/eps/028-file-27.eps +120 -120
  31. package/assets/img/file-types/eps/029-file-28.eps +141 -141
  32. package/assets/img/file-types/eps/030-file-29.eps +130 -130
  33. package/assets/img/file-types/eps/031-file-30.eps +157 -157
  34. package/assets/img/file-types/eps/032-file-31.eps +139 -139
  35. package/assets/img/file-types/eps/033-file-32.eps +139 -139
  36. package/assets/img/file-types/eps/034-file-33.eps +189 -189
  37. package/assets/img/file-types/eps/035-file-34.eps +162 -162
  38. package/assets/img/file-types/eps/036-file-35.eps +142 -142
  39. package/assets/img/file-types/eps/037-file-36.eps +123 -123
  40. package/assets/img/file-types/eps/038-file-37.eps +127 -127
  41. package/assets/img/file-types/eps/039-file-38.eps +146 -146
  42. package/assets/img/file-types/eps/040-file-39.eps +126 -126
  43. package/assets/img/file-types/eps/041-file-40.eps +117 -117
  44. package/assets/img/file-types/eps/042-file-41.eps +156 -156
  45. package/assets/img/file-types/eps/043-file-42.eps +118 -118
  46. package/assets/img/file-types/eps/044-file-43.eps +172 -172
  47. package/assets/img/file-types/eps/045-file-44.eps +201 -201
  48. package/assets/img/file-types/eps/046-file-45.eps +94 -94
  49. package/assets/img/file-types/eps/047-file-46.eps +176 -176
  50. package/assets/img/file-types/eps/048-file-47.eps +238 -238
  51. package/assets/img/file-types/eps/049-file-48.eps +187 -187
  52. package/assets/img/file-types/eps/050-file-49.eps +137 -137
  53. package/bundles/sd-angular-core-api.umd.js +27 -59
  54. package/bundles/sd-angular-core-api.umd.js.map +1 -1
  55. package/bundles/sd-angular-core-api.umd.min.js +1 -1
  56. package/bundles/sd-angular-core-api.umd.min.js.map +1 -1
  57. package/bundles/sd-angular-core-common.umd.js +92 -0
  58. package/bundles/sd-angular-core-common.umd.js.map +1 -1
  59. package/bundles/sd-angular-core-common.umd.min.js +1 -1
  60. package/bundles/sd-angular-core-common.umd.min.js.map +1 -1
  61. package/bundles/sd-angular-core-input-dropdown.umd.js +9 -12
  62. package/bundles/sd-angular-core-input-dropdown.umd.js.map +1 -1
  63. package/bundles/sd-angular-core-input-dropdown.umd.min.js +2 -2
  64. package/bundles/sd-angular-core-input-dropdown.umd.min.js.map +1 -1
  65. package/bundles/sd-angular-core-table.umd.js +588 -990
  66. package/bundles/sd-angular-core-table.umd.js.map +1 -1
  67. package/bundles/sd-angular-core-table.umd.min.js +1 -1
  68. package/bundles/sd-angular-core-table.umd.min.js.map +1 -1
  69. package/bundles/sd-angular-core-utility.umd.js +10 -56
  70. package/bundles/sd-angular-core-utility.umd.js.map +1 -1
  71. package/bundles/sd-angular-core-utility.umd.min.js +1 -1
  72. package/bundles/sd-angular-core-utility.umd.min.js.map +1 -1
  73. package/common/sd-angular-core-common.d.ts +1 -0
  74. package/common/sd-angular-core-common.metadata.json +1 -1
  75. package/common/src/lib/directives/sd-for.directive.d.ts +16 -0
  76. package/common/src/lib/typings/array.extension.d.ts +1 -1
  77. package/esm2015/api/index.js +1 -1
  78. package/esm2015/api/sd-angular-core-api.js +1 -1
  79. package/esm2015/api/src/lib/api.model.js +1 -1
  80. package/esm2015/api/src/lib/api.module.js +1 -1
  81. package/esm2015/api/src/lib/api.service.js +3 -36
  82. package/esm2015/api/src/lib/http.interceptor.js +1 -1
  83. package/esm2015/api/src/lib/http.service.js +1 -1
  84. package/esm2015/api/src/lib/token.service.js +1 -1
  85. package/esm2015/api/src/public-api.js +1 -1
  86. package/esm2015/autocomplete/index.js +1 -1
  87. package/esm2015/autocomplete/sd-angular-core-autocomplete.js +1 -1
  88. package/esm2015/autocomplete/src/lib/autocomplete-display-def.directive.js +1 -1
  89. package/esm2015/autocomplete/src/lib/autocomplete.component.js +1 -1
  90. package/esm2015/autocomplete/src/lib/autocomplete.module.js +1 -1
  91. package/esm2015/autocomplete/src/public-api.js +1 -1
  92. package/esm2015/badge/index.js +1 -1
  93. package/esm2015/badge/sd-angular-core-badge.js +1 -1
  94. package/esm2015/badge/src/lib/badge.component.js +1 -1
  95. package/esm2015/badge/src/lib/badge.module.js +1 -1
  96. package/esm2015/badge/src/public-api.js +1 -1
  97. package/esm2015/button/index.js +1 -1
  98. package/esm2015/button/sd-angular-core-button.js +1 -1
  99. package/esm2015/button/src/lib/button.component.js +1 -1
  100. package/esm2015/button/src/lib/button.module.js +1 -1
  101. package/esm2015/button/src/public-api.js +1 -1
  102. package/esm2015/cache/index.js +1 -1
  103. package/esm2015/cache/sd-angular-core-cache.js +1 -1
  104. package/esm2015/cache/src/lib/cache.model.js +1 -1
  105. package/esm2015/cache/src/lib/cache.service.js +1 -1
  106. package/esm2015/cache/src/public-api.js +1 -1
  107. package/esm2015/chart/index.js +1 -1
  108. package/esm2015/chart/sd-angular-core-chart.js +1 -1
  109. package/esm2015/chart/src/lib/chart.component.js +1 -1
  110. package/esm2015/chart/src/lib/chart.model.js +1 -1
  111. package/esm2015/chart/src/lib/chart.module.js +1 -1
  112. package/esm2015/chart/src/public-api.js +1 -1
  113. package/esm2015/checkbox/index.js +1 -1
  114. package/esm2015/checkbox/sd-angular-core-checkbox.js +1 -1
  115. package/esm2015/checkbox/src/lib/checkbox.component.js +1 -1
  116. package/esm2015/checkbox/src/lib/checkbox.module.js +1 -1
  117. package/esm2015/checkbox/src/public-api.js +1 -1
  118. package/esm2015/chip/index.js +1 -1
  119. package/esm2015/chip/sd-angular-core-chip.js +1 -1
  120. package/esm2015/chip/src/lib/chip.component.js +1 -1
  121. package/esm2015/chip/src/lib/chip.model.js +1 -1
  122. package/esm2015/chip/src/lib/chip.module.js +1 -1
  123. package/esm2015/chip/src/lib/directives/sd-chip-display-def.directive.js +1 -1
  124. package/esm2015/chip/src/lib/pipes/removable-chip.pipe.js +1 -1
  125. package/esm2015/chip/src/public-api.js +1 -1
  126. package/esm2015/comment/index.js +1 -1
  127. package/esm2015/comment/sd-angular-core-comment.js +1 -1
  128. package/esm2015/comment/src/lib/comment.component.js +1 -1
  129. package/esm2015/comment/src/lib/comment.model.js +1 -1
  130. package/esm2015/comment/src/lib/comment.module.js +1 -1
  131. package/esm2015/comment/src/public-api.js +1 -1
  132. package/esm2015/common/index.js +1 -1
  133. package/esm2015/common/sd-angular-core-common.js +2 -1
  134. package/esm2015/common/src/lib/common.module.js +4 -1
  135. package/esm2015/common/src/lib/configurations/firebase.configuration.js +1 -1
  136. package/esm2015/common/src/lib/configurations/form.configuration.js +1 -1
  137. package/esm2015/common/src/lib/directives/sd-for.directive.js +82 -0
  138. package/esm2015/common/src/lib/directives/sd-lable.directive.js +1 -1
  139. package/esm2015/common/src/lib/directives/sd-let.directive.js +1 -1
  140. package/esm2015/common/src/lib/directives/sd-scroll.directive.js +1 -1
  141. package/esm2015/common/src/lib/directives/sd-suffix.directive.js +1 -1
  142. package/esm2015/common/src/lib/directives/view-def.directive.js +1 -1
  143. package/esm2015/common/src/lib/models/sd-form-control.js +1 -1
  144. package/esm2015/common/src/lib/others/detectIncognito.js +1 -1
  145. package/esm2015/common/src/lib/services/browser.service.js +1 -1
  146. package/esm2015/common/src/lib/typings/array.extension.js +1 -1
  147. package/esm2015/common/src/lib/typings/date.extension.js +1 -1
  148. package/esm2015/common/src/lib/typings/index.js +1 -1
  149. package/esm2015/common/src/lib/typings/number.extension.js +1 -1
  150. package/esm2015/common/src/lib/typings/string.extension.js +1 -1
  151. package/esm2015/common/src/lib/typings/utility.extension.js +1 -1
  152. package/esm2015/common/src/public-api.js +1 -1
  153. package/esm2015/confirm/index.js +1 -1
  154. package/esm2015/confirm/sd-angular-core-confirm.js +1 -1
  155. package/esm2015/confirm/src/lib/components/dialog-confirm/dialog-confirm.component.js +1 -1
  156. package/esm2015/confirm/src/lib/confirm.module.js +1 -1
  157. package/esm2015/confirm/src/lib/confirm.service.js +1 -1
  158. package/esm2015/confirm/src/public-api.js +1 -1
  159. package/esm2015/date-month/index.js +1 -1
  160. package/esm2015/date-month/sd-angular-core-date-month.js +1 -1
  161. package/esm2015/date-month/src/lib/date-month.component.js +1 -1
  162. package/esm2015/date-month/src/lib/date-month.module.js +1 -1
  163. package/esm2015/date-month/src/public-api.js +1 -1
  164. package/esm2015/date-range/index.js +1 -1
  165. package/esm2015/date-range/sd-angular-core-date-range.js +1 -1
  166. package/esm2015/date-range/src/lib/date-range.component.js +1 -1
  167. package/esm2015/date-range/src/lib/date-range.module.js +1 -1
  168. package/esm2015/date-range/src/public-api.js +1 -1
  169. package/esm2015/date-time/index.js +1 -1
  170. package/esm2015/date-time/sd-angular-core-date-time.js +1 -1
  171. package/esm2015/date-time/src/lib/date-time.component.js +1 -1
  172. package/esm2015/date-time/src/lib/date-time.module.js +1 -1
  173. package/esm2015/date-time/src/public-api.js +1 -1
  174. package/esm2015/db/index.js +1 -1
  175. package/esm2015/db/sd-angular-core-db.js +1 -1
  176. package/esm2015/db/src/lib/db.model.js +1 -1
  177. package/esm2015/db/src/lib/db.service.js +1 -1
  178. package/esm2015/db/src/public-api.js +1 -1
  179. package/esm2015/dynamic-report/index.js +1 -1
  180. package/esm2015/dynamic-report/sd-angular-core-dynamic-report.js +1 -1
  181. package/esm2015/dynamic-report/src/lib/dynamic-report.component.js +1 -1
  182. package/esm2015/dynamic-report/src/lib/dynamic-report.module.js +1 -1
  183. package/esm2015/dynamic-report/src/public-api.js +1 -1
  184. package/esm2015/editor/index.js +1 -1
  185. package/esm2015/editor/sd-angular-core-editor.js +1 -1
  186. package/esm2015/editor/src/lib/constant.js +1 -1
  187. package/esm2015/editor/src/lib/editor.component.js +1 -1
  188. package/esm2015/editor/src/lib/editor.model.js +1 -1
  189. package/esm2015/editor/src/lib/editor.module.js +1 -1
  190. package/esm2015/editor/src/public-api.js +1 -1
  191. package/esm2015/export/index.js +1 -1
  192. package/esm2015/export/sd-angular-core-export.js +1 -1
  193. package/esm2015/export/src/lib/excel.model.js +1 -1
  194. package/esm2015/export/src/lib/export.model.js +1 -1
  195. package/esm2015/export/src/lib/export.service.js +1 -1
  196. package/esm2015/export/src/public-api.js +1 -1
  197. package/esm2015/filter/index.js +1 -1
  198. package/esm2015/filter/sd-angular-core-filter.js +1 -1
  199. package/esm2015/filter/src/lib/directives/sd-filter-def.directive.js +1 -1
  200. package/esm2015/filter/src/lib/filter.component.js +1 -1
  201. package/esm2015/filter/src/lib/filter.model.js +1 -1
  202. package/esm2015/filter/src/lib/filter.module.js +1 -1
  203. package/esm2015/filter/src/lib/filter.service.js +1 -1
  204. package/esm2015/filter/src/lib/pipes/values-local.pipe.js +1 -1
  205. package/esm2015/filter/src/lib/pipes/values-server.pipe.js +1 -1
  206. package/esm2015/filter/src/public-api.js +1 -1
  207. package/esm2015/form/index.js +1 -1
  208. package/esm2015/form/sd-angular-core-form.js +1 -1
  209. package/esm2015/form/src/lib/form.module.js +1 -1
  210. package/esm2015/form/src/public-api.js +1 -1
  211. package/esm2015/grid/index.js +1 -1
  212. package/esm2015/grid/sd-angular-core-grid.js +1 -1
  213. package/esm2015/grid/src/lib/components/grid-config/grid-config.component.js +1 -1
  214. package/esm2015/grid/src/lib/components/grid-config/grid-config.model.js +1 -1
  215. package/esm2015/grid/src/lib/components/grid-desktop-column-children-view/grid-desktop-column-children-view.component.js +1 -1
  216. package/esm2015/grid/src/lib/components/grid-desktop-column-edit/grid-desktop-column-edit.component.js +1 -1
  217. package/esm2015/grid/src/lib/components/grid-desktop-column-view/grid-desktop-column-view.component.js +1 -1
  218. package/esm2015/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.js +1 -1
  219. package/esm2015/grid/src/lib/components/grid-import-excel/grid-import-excel.component.js +1 -1
  220. package/esm2015/grid/src/lib/components/grid-mobile-item-view/grid-mobile-item-view.component.js +1 -1
  221. package/esm2015/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.js +1 -1
  222. package/esm2015/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.component.js +1 -1
  223. package/esm2015/grid/src/lib/components/grid-popup-export-excel/grid-popup-export-excel.model.js +1 -1
  224. package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.js +1 -1
  225. package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.model.js +1 -1
  226. package/esm2015/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.js +1 -1
  227. package/esm2015/grid/src/lib/components/grid-sub-information/grid-sub-information.component.js +1 -1
  228. package/esm2015/grid/src/lib/directives/cell-def.directive.js +1 -1
  229. package/esm2015/grid/src/lib/directives/cell-editor-def.directive.js +1 -1
  230. package/esm2015/grid/src/lib/directives/cell-footer-def.directive.js +1 -1
  231. package/esm2015/grid/src/lib/directives/sub-information-header-def.directive.js +1 -1
  232. package/esm2015/grid/src/lib/grid.component.js +1 -1
  233. package/esm2015/grid/src/lib/grid.model.js +1 -1
  234. package/esm2015/grid/src/lib/grid.module.js +1 -1
  235. package/esm2015/grid/src/lib/models/filter-info.model.js +1 -1
  236. package/esm2015/grid/src/lib/models/grid-configuration.model.js +1 -1
  237. package/esm2015/grid/src/lib/models/handler-dotnet.js +1 -1
  238. package/esm2015/grid/src/lib/models/handler-local.js +1 -1
  239. package/esm2015/grid/src/lib/models/handler.js +1 -1
  240. package/esm2015/grid/src/lib/pipes/cell-desktop-class-name.pipe.js +1 -1
  241. package/esm2015/grid/src/lib/pipes/cell-mobile-class-name.pipe.js +1 -1
  242. package/esm2015/grid/src/lib/pipes/column-command-filter.pipe.js +1 -1
  243. package/esm2015/grid/src/lib/pipes/column-html-template.pipe.js +1 -1
  244. package/esm2015/grid/src/lib/pipes/column-title.pipe.js +1 -1
  245. package/esm2015/grid/src/lib/pipes/column-values.pipe.js +1 -1
  246. package/esm2015/grid/src/lib/pipes/command-disabled.pipe.js +1 -1
  247. package/esm2015/grid/src/lib/pipes/command-filter.pipe.js +1 -1
  248. package/esm2015/grid/src/lib/pipes/command-hidden.pipe.js +1 -1
  249. package/esm2015/grid/src/lib/pipes/command-icon.pipe.js +1 -1
  250. package/esm2015/grid/src/lib/pipes/command-title.pipe.js +1 -1
  251. package/esm2015/grid/src/lib/pipes/dynamic-items.pipe.js +1 -1
  252. package/esm2015/grid/src/lib/pipes/editor-dynamic-item.pipe.js +1 -1
  253. package/esm2015/grid/src/lib/pipes/editor-handler.pipe.js +1 -1
  254. package/esm2015/grid/src/lib/pipes/editor-popup-visible.pipe.js +1 -1
  255. package/esm2015/grid/src/lib/pipes/editor-sub-information-handler.pipe.js +1 -1
  256. package/esm2015/grid/src/lib/pipes/editor-validate.pipe.js +1 -1
  257. package/esm2015/grid/src/lib/pipes/filter-mobile.pipe.js +1 -1
  258. package/esm2015/grid/src/lib/pipes/mobile-command-filter.js +1 -1
  259. package/esm2015/grid/src/lib/pipes/mobile-view-html-template.pipe.js +1 -1
  260. package/esm2015/grid/src/lib/pipes/value-transform.pipe.js +1 -1
  261. package/esm2015/grid/src/public-api.js +1 -1
  262. package/esm2015/grid-material/index.js +1 -1
  263. package/esm2015/grid-material/sd-angular-core-grid-material.js +1 -1
  264. package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +1 -1
  265. package/esm2015/grid-material/src/lib/components/desktop-cell/desktop-cell.component.js +1 -1
  266. package/esm2015/grid-material/src/lib/components/desktop-cell-children-view/desktop-cell-children-view.component.js +1 -1
  267. package/esm2015/grid-material/src/lib/components/desktop-cell-editor/desktop-cell-editor.component.js +1 -1
  268. package/esm2015/grid-material/src/lib/components/desktop-cell-view/desktop-cell-view.component.js +1 -1
  269. package/esm2015/grid-material/src/lib/components/desktop-command/desktop-command.component.js +1 -1
  270. package/esm2015/grid-material/src/lib/components/desktop-editor-validation/desktop-editor-validation.component.js +1 -1
  271. package/esm2015/grid-material/src/lib/components/dynamic-column/dynamic-column.component.js +1 -1
  272. package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +1 -1
  273. package/esm2015/grid-material/src/lib/components/popup-export/popup-export.component.js +1 -1
  274. package/esm2015/grid-material/src/lib/components/popup-filter/popup-filter.component.js +1 -1
  275. package/esm2015/grid-material/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.js +1 -1
  276. package/esm2015/grid-material/src/lib/components/quick-action/quick-action.component.js +1 -1
  277. package/esm2015/grid-material/src/lib/directives/sd-material-cell-def.directive.js +1 -1
  278. package/esm2015/grid-material/src/lib/directives/sd-material-empty-data-def.directive.js +1 -1
  279. package/esm2015/grid-material/src/lib/directives/sd-material-filter-def.directive.js +1 -1
  280. package/esm2015/grid-material/src/lib/directives/sd-material-footer-def.directive.js +1 -1
  281. package/esm2015/grid-material/src/lib/directives/sd-material-sub-information-def.directive.js +1 -1
  282. package/esm2015/grid-material/src/lib/functions/calculate-sd-id.js +1 -1
  283. package/esm2015/grid-material/src/lib/grid-material.component.js +1 -1
  284. package/esm2015/grid-material/src/lib/grid-material.module.js +1 -1
  285. package/esm2015/grid-material/src/lib/models/grid-action.model.js +1 -1
  286. package/esm2015/grid-material/src/lib/models/grid-cell.model.js +1 -1
  287. package/esm2015/grid-material/src/lib/models/grid-column.model.js +1 -1
  288. package/esm2015/grid-material/src/lib/models/grid-command.model.js +1 -1
  289. package/esm2015/grid-material/src/lib/models/grid-config.model.js +1 -1
  290. package/esm2015/grid-material/src/lib/models/grid-configuration.model.js +1 -1
  291. package/esm2015/grid-material/src/lib/models/grid-editor.model.js +1 -1
  292. package/esm2015/grid-material/src/lib/models/grid-export.model.js +1 -1
  293. package/esm2015/grid-material/src/lib/models/grid-group.model.js +1 -1
  294. package/esm2015/grid-material/src/lib/models/grid-option.model.js +1 -1
  295. package/esm2015/grid-material/src/lib/models/grid-reload.model.js +1 -1
  296. package/esm2015/grid-material/src/lib/models/grid-selection.model.js +1 -1
  297. package/esm2015/grid-material/src/lib/models/grid-style.model.js +1 -1
  298. package/esm2015/grid-material/src/lib/models/grid-sub-information.model.js +1 -1
  299. package/esm2015/grid-material/src/lib/models/grid.model.js +1 -1
  300. package/esm2015/grid-material/src/lib/pipes/cell-view.pipe.js +1 -1
  301. package/esm2015/grid-material/src/lib/pipes/column-badge.pipe.js +1 -1
  302. package/esm2015/grid-material/src/lib/pipes/column-children-filter.pipe.js +1 -1
  303. package/esm2015/grid-material/src/lib/pipes/column-html-template.pipe.js +1 -1
  304. package/esm2015/grid-material/src/lib/pipes/column-title.pipe.js +1 -1
  305. package/esm2015/grid-material/src/lib/pipes/column-tooltip.pipe.js +1 -1
  306. package/esm2015/grid-material/src/lib/pipes/column-transform.pipe.js +1 -1
  307. package/esm2015/grid-material/src/lib/pipes/column-values.pipe.js +1 -1
  308. package/esm2015/grid-material/src/lib/pipes/command-disable.pipe.js +1 -1
  309. package/esm2015/grid-material/src/lib/pipes/command-filter.pipe.js +1 -1
  310. package/esm2015/grid-material/src/lib/pipes/command-icon.pipe.js +1 -1
  311. package/esm2015/grid-material/src/lib/pipes/command-title.pipe.js +1 -1
  312. package/esm2015/grid-material/src/lib/pipes/editor-handler-column.pipe.js +1 -1
  313. package/esm2015/grid-material/src/lib/pipes/editor-handler-row.pipe.js +1 -1
  314. package/esm2015/grid-material/src/lib/pipes/editor-validate.pipe.js +1 -1
  315. package/esm2015/grid-material/src/lib/pipes/filter-column.pipe.js +1 -1
  316. package/esm2015/grid-material/src/lib/pipes/filter-external.pipe.js +1 -1
  317. package/esm2015/grid-material/src/lib/pipes/grid-configuration-result.pipe.js +1 -1
  318. package/esm2015/grid-material/src/lib/pipes/sd-group.pipe.js +1 -1
  319. package/esm2015/grid-material/src/lib/pipes/selection-action-filter.pipe.js +1 -1
  320. package/esm2015/grid-material/src/lib/pipes/selection-disable.pipe.js +1 -1
  321. package/esm2015/grid-material/src/lib/pipes/selection-visible-select-all.pipe.js +1 -1
  322. package/esm2015/grid-material/src/lib/pipes/selection-visible.pipe.js +1 -1
  323. package/esm2015/grid-material/src/lib/pipes/style-row-css.pipe.js +1 -1
  324. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.model.js +1 -1
  325. package/esm2015/grid-material/src/lib/services/generated-column/generated-column.service.js +1 -1
  326. package/esm2015/grid-material/src/lib/services/grid-configuration.service.js +1 -1
  327. package/esm2015/grid-material/src/lib/services/grid-filter/grid-filter.model.js +1 -1
  328. package/esm2015/grid-material/src/lib/services/grid-filter/grid-filter.service.js +1 -1
  329. package/esm2015/grid-material/src/public-api.js +1 -1
  330. package/esm2015/group/index.js +1 -1
  331. package/esm2015/group/sd-angular-core-group.js +1 -1
  332. package/esm2015/group/src/lib/group.component.js +1 -1
  333. package/esm2015/group/src/lib/group.module.js +1 -1
  334. package/esm2015/group/src/public-api.js +1 -1
  335. package/esm2015/header-title/index.js +1 -1
  336. package/esm2015/header-title/sd-angular-core-header-title.js +1 -1
  337. package/esm2015/header-title/src/lib/header-title.component.js +1 -1
  338. package/esm2015/header-title/src/lib/header-title.module.js +1 -1
  339. package/esm2015/header-title/src/public-api.js +1 -1
  340. package/esm2015/image-preview/index.js +1 -1
  341. package/esm2015/image-preview/sd-angular-core-image-preview.js +1 -1
  342. package/esm2015/image-preview/src/lib/directives/image-preview.directive.js +1 -1
  343. package/esm2015/image-preview/src/lib/image-preview/image-preview-sdmodal.component.js +1 -1
  344. package/esm2015/image-preview/src/lib/image-preview/image-preview.component.js +1 -1
  345. package/esm2015/image-preview/src/lib/image-preview/image-preview.module.js +1 -1
  346. package/esm2015/image-preview/src/lib/models/image-preview.model.js +1 -1
  347. package/esm2015/image-preview/src/public-api.js +1 -1
  348. package/esm2015/input/index.js +1 -1
  349. package/esm2015/input/sd-angular-core-input.js +1 -1
  350. package/esm2015/input/src/lib/directives/input-suffix.directive.js +1 -1
  351. package/esm2015/input/src/lib/directives/touch.directive.js +1 -1
  352. package/esm2015/input/src/lib/input-tooltip.pipe.js +1 -1
  353. package/esm2015/input/src/lib/input.component.js +1 -1
  354. package/esm2015/input/src/lib/input.module.js +1 -1
  355. package/esm2015/input/src/public-api.js +1 -1
  356. package/esm2015/input-currency/index.js +1 -1
  357. package/esm2015/input-currency/sd-angular-core-input-currency.js +1 -1
  358. package/esm2015/input-currency/src/lib/input-currency-tooltip.pipe.js +1 -1
  359. package/esm2015/input-currency/src/lib/input-currency.component.js +1 -1
  360. package/esm2015/input-currency/src/lib/input-currency.module.js +1 -1
  361. package/esm2015/input-currency/src/public-api.js +1 -1
  362. package/esm2015/input-dropdown/index.js +1 -1
  363. package/esm2015/input-dropdown/sd-angular-core-input-dropdown.js +1 -1
  364. package/esm2015/input-dropdown/src/lib/input-tooltip.pipe.js +1 -1
  365. package/esm2015/input-dropdown/src/lib/input.component.js +3 -3
  366. package/esm2015/input-dropdown/src/lib/input.module.js +1 -1
  367. package/esm2015/input-dropdown/src/public-api.js +1 -1
  368. package/esm2015/input-number/index.js +1 -1
  369. package/esm2015/input-number/sd-angular-core-input-number.js +1 -1
  370. package/esm2015/input-number/src/lib/input-number.component.js +1 -1
  371. package/esm2015/input-number/src/lib/input-number.module.js +1 -1
  372. package/esm2015/input-number/src/public-api.js +1 -1
  373. package/esm2015/input-upload-file/index.js +1 -1
  374. package/esm2015/input-upload-file/sd-angular-core-input-upload-file.js +1 -1
  375. package/esm2015/input-upload-file/src/lib/input-upload-file.component.js +1 -1
  376. package/esm2015/input-upload-file/src/lib/input-upload-file.module.js +1 -1
  377. package/esm2015/input-upload-file/src/public-api.js +1 -1
  378. package/esm2015/json-editor/index.js +1 -1
  379. package/esm2015/json-editor/sd-angular-core-json-editor.js +1 -1
  380. package/esm2015/json-editor/src/lib/json-editor.component.js +1 -1
  381. package/esm2015/json-editor/src/lib/json-editor.module.js +1 -1
  382. package/esm2015/json-editor/src/public-api.js +1 -1
  383. package/esm2015/konva/index.js +1 -1
  384. package/esm2015/konva/sd-angular-core-konva.js +1 -1
  385. package/esm2015/konva/src/lib/konva.module.js +1 -1
  386. package/esm2015/konva/src/lib/merge-images/merge-images.component.js +1 -1
  387. package/esm2015/konva/src/public-api.js +1 -1
  388. package/esm2015/label/index.js +1 -1
  389. package/esm2015/label/sd-angular-core-label.js +1 -1
  390. package/esm2015/label/src/lib/label.component.js +1 -1
  391. package/esm2015/label/src/lib/label.module.js +1 -1
  392. package/esm2015/label/src/public-api.js +1 -1
  393. package/esm2015/lib/core.module.js +1 -1
  394. package/esm2015/lib/material.module.js +1 -1
  395. package/esm2015/loading/index.js +1 -1
  396. package/esm2015/loading/sd-angular-core-loading.js +1 -1
  397. package/esm2015/loading/src/lib/loading.service.js +1 -1
  398. package/esm2015/loading/src/public-api.js +1 -1
  399. package/esm2015/modal/index.js +1 -1
  400. package/esm2015/modal/sd-angular-core-modal.js +1 -1
  401. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-body/bottom-sheet-body.component.js +1 -1
  402. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-footer/bottom-sheet-footer.component.js +1 -1
  403. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet-header/bottom-sheet-header.component.js +1 -1
  404. package/esm2015/modal/src/lib/bottom-sheet/bottom-sheet.component.js +1 -1
  405. package/esm2015/modal/src/lib/modal/modal-body/modal-body.component.js +1 -1
  406. package/esm2015/modal/src/lib/modal/modal-footer/modal-footer.component.js +1 -1
  407. package/esm2015/modal/src/lib/modal/modal-header/modal-header.component.js +1 -1
  408. package/esm2015/modal/src/lib/modal/modal.component.js +1 -1
  409. package/esm2015/modal/src/lib/modal.module.js +1 -1
  410. package/esm2015/modal/src/public-api.js +1 -1
  411. package/esm2015/modal-resizable/index.js +1 -1
  412. package/esm2015/modal-resizable/sd-angular-core-modal-resizable.js +1 -1
  413. package/esm2015/modal-resizable/src/lib/modal-resizable/modal-resizable.component.js +1 -1
  414. package/esm2015/modal-resizable/src/lib/modal-resizable.module.js +1 -1
  415. package/esm2015/modal-resizable/src/public-api.js +1 -1
  416. package/esm2015/notify/index.js +1 -1
  417. package/esm2015/notify/sd-angular-core-notify.js +1 -1
  418. package/esm2015/notify/src/lib/components/dialog-confirm/dialog-confirm.component.js +1 -1
  419. package/esm2015/notify/src/lib/configurations/notify.configuration.js +1 -1
  420. package/esm2015/notify/src/lib/notify.module.js +1 -1
  421. package/esm2015/notify/src/lib/notify.service.js +1 -1
  422. package/esm2015/notify/src/public-api.js +1 -1
  423. package/esm2015/pdf/index.js +1 -1
  424. package/esm2015/pdf/sd-angular-core-pdf.js +1 -1
  425. package/esm2015/pdf/src/lib/pdf.module.js +1 -1
  426. package/esm2015/pdf/src/lib/pdf.service.js +1 -1
  427. package/esm2015/pdf/src/public-api.js +1 -1
  428. package/esm2015/popover/index.js +1 -1
  429. package/esm2015/popover/sd-angular-core-popover.js +1 -1
  430. package/esm2015/popover/src/lib/directives/popover-content.directive.js +1 -1
  431. package/esm2015/popover/src/lib/directives/popover-trigger.directive.js +1 -1
  432. package/esm2015/popover/src/lib/popover/popover.component.js +1 -1
  433. package/esm2015/popover/src/lib/popover.model.js +1 -1
  434. package/esm2015/popover/src/lib/popover.module.js +1 -1
  435. package/esm2015/popover/src/public-api.js +1 -1
  436. package/esm2015/print/index.js +1 -1
  437. package/esm2015/print/sd-angular-core-print.js +1 -1
  438. package/esm2015/print/src/lib/fonts/times/bold-italic.js +1 -1
  439. package/esm2015/print/src/lib/fonts/times/bold.js +1 -1
  440. package/esm2015/print/src/lib/fonts/times/italic.js +1 -1
  441. package/esm2015/print/src/lib/fonts/times/normal.js +1 -1
  442. package/esm2015/print/src/lib/print.component.js +1 -1
  443. package/esm2015/print/src/lib/print.module.js +1 -1
  444. package/esm2015/print/src/public-api.js +1 -1
  445. package/esm2015/public-api.js +1 -1
  446. package/esm2015/quick-action/index.js +1 -1
  447. package/esm2015/quick-action/sd-angular-core-quick-action.js +1 -1
  448. package/esm2015/quick-action/src/lib/quick-action.component.js +1 -1
  449. package/esm2015/quick-action/src/lib/quick-action.module.js +1 -1
  450. package/esm2015/quick-action/src/public-api.js +1 -1
  451. package/esm2015/radio/index.js +1 -1
  452. package/esm2015/radio/sd-angular-core-radio.js +1 -1
  453. package/esm2015/radio/src/lib/radio.component.js +1 -1
  454. package/esm2015/radio/src/lib/radio.module.js +1 -1
  455. package/esm2015/radio/src/public-api.js +1 -1
  456. package/esm2015/sd-angular-core.js +1 -1
  457. package/esm2015/select/index.js +1 -1
  458. package/esm2015/select/sd-angular-core-select.js +1 -1
  459. package/esm2015/select/src/lib/select-display-def.directive.js +1 -1
  460. package/esm2015/select/src/lib/select.component.js +1 -1
  461. package/esm2015/select/src/lib/select.module.js +1 -1
  462. package/esm2015/select/src/public-api.js +1 -1
  463. package/esm2015/select-badge/index.js +1 -1
  464. package/esm2015/select-badge/sd-angular-core-select-badge.js +1 -1
  465. package/esm2015/select-badge/src/lib/select-badge-display-def.directive.js +1 -1
  466. package/esm2015/select-badge/src/lib/select-badge.component.js +1 -1
  467. package/esm2015/select-badge/src/lib/select-badge.module.js +1 -1
  468. package/esm2015/select-badge/src/public-api.js +1 -1
  469. package/esm2015/select-editor/index.js +1 -1
  470. package/esm2015/select-editor/sd-angular-core-select-editor.js +1 -1
  471. package/esm2015/select-editor/src/lib/select-editor.component.js +1 -1
  472. package/esm2015/select-editor/src/lib/select-editor.module.js +1 -1
  473. package/esm2015/select-editor/src/public-api.js +1 -1
  474. package/esm2015/service/index.js +1 -1
  475. package/esm2015/service/sd-angular-core-service.js +1 -1
  476. package/esm2015/service/src/lib/service.module.js +1 -1
  477. package/esm2015/service/src/public-api.js +1 -1
  478. package/esm2015/setting/index.js +1 -1
  479. package/esm2015/setting/sd-angular-core-setting.js +1 -1
  480. package/esm2015/setting/src/lib/setting.model.js +1 -1
  481. package/esm2015/setting/src/lib/setting.service.js +1 -1
  482. package/esm2015/setting/src/public-api.js +1 -1
  483. package/esm2015/side-drawer/index.js +1 -1
  484. package/esm2015/side-drawer/sd-angular-core-side-drawer.js +1 -1
  485. package/esm2015/side-drawer/src/lib/side-drawer/side-drawer.component.js +1 -1
  486. package/esm2015/side-drawer/src/lib/side-drawer.module.js +1 -1
  487. package/esm2015/side-drawer/src/public-api.js +1 -1
  488. package/esm2015/switch/index.js +1 -1
  489. package/esm2015/switch/sd-angular-core-switch.js +1 -1
  490. package/esm2015/switch/src/lib/switch.component.js +1 -1
  491. package/esm2015/switch/src/lib/switch.module.js +1 -1
  492. package/esm2015/switch/src/public-api.js +1 -1
  493. package/esm2015/tab-router/index.js +1 -1
  494. package/esm2015/tab-router/sd-angular-core-tab-router.js +1 -1
  495. package/esm2015/tab-router/src/lib/actions/tab-router.action.js +1 -1
  496. package/esm2015/tab-router/src/lib/components/tab-router-item/tab-router-item.component.js +1 -1
  497. package/esm2015/tab-router/src/lib/components/tab-router-nav/tab-router-nav.component.js +1 -1
  498. package/esm2015/tab-router/src/lib/components/tab-router-outlet/tab-router-outlet.component.js +1 -1
  499. package/esm2015/tab-router/src/lib/decorators/tab.decorator.js +1 -1
  500. package/esm2015/tab-router/src/lib/directives/router-link-mouse-down.directive.js +1 -1
  501. package/esm2015/tab-router/src/lib/events/tab-router.event.js +1 -1
  502. package/esm2015/tab-router/src/lib/models/tab-router.model.js +1 -1
  503. package/esm2015/tab-router/src/lib/pipes/tab-info.pipe.js +1 -1
  504. package/esm2015/tab-router/src/lib/services/tab-decorator.service.js +1 -1
  505. package/esm2015/tab-router/src/lib/services/tab-router.service.js +1 -1
  506. package/esm2015/tab-router/src/lib/tab-router.module.js +1 -1
  507. package/esm2015/tab-router/src/public-api.js +1 -1
  508. package/esm2015/table/index.js +1 -1
  509. package/esm2015/table/sd-angular-core-table.js +24 -31
  510. package/esm2015/table/src/lib/components/column-inline-filter/column-inline-filter.component.js +17 -4
  511. package/esm2015/table/src/lib/components/desktop-cell/desktop-cell.component.js +1 -1
  512. package/esm2015/table/src/lib/components/desktop-cell-view/desktop-cell-view.component.js +2 -2
  513. package/esm2015/table/src/lib/components/desktop-command/desktop-command.component.js +1 -1
  514. package/esm2015/table/src/lib/components/popup-configuration/popup-configuration.component.js +69 -0
  515. package/esm2015/table/src/lib/components/popup-filter/popup-filter.component.js +2 -2
  516. package/esm2015/table/src/lib/components/quick-action/quick-action.component.js +6 -6
  517. package/esm2015/table/src/lib/components/table-filter/table-filter.component.js +99 -0
  518. package/esm2015/table/src/lib/directives/sd-material-cell-def.directive.js +1 -1
  519. package/esm2015/table/src/lib/directives/sd-material-empty-data-def.directive.js +1 -1
  520. package/esm2015/table/src/lib/directives/sd-material-filter-def.directive.js +1 -1
  521. package/esm2015/table/src/lib/directives/sd-material-footer-def.directive.js +1 -1
  522. package/esm2015/table/src/lib/directives/sd-material-sub-information-def.directive.js +1 -1
  523. package/esm2015/table/src/lib/models/index.js +1 -1
  524. package/esm2015/table/src/lib/models/table-column.model.js +7 -7
  525. package/esm2015/table/src/lib/models/table-command.model.js +1 -1
  526. package/esm2015/table/src/lib/models/table-configuration.model.js +1 -1
  527. package/esm2015/table/src/lib/models/table-item.model.js +3 -3
  528. package/esm2015/table/src/lib/models/table-option-config.model.js +1 -1
  529. package/esm2015/table/src/lib/models/table-option-expand.model.js +1 -1
  530. package/esm2015/table/src/lib/models/table-option-export.model.js +1 -1
  531. package/esm2015/table/src/lib/models/table-option-group.model.js +1 -1
  532. package/esm2015/table/src/lib/models/table-option-paginate.model.js +1 -1
  533. package/esm2015/table/src/lib/models/table-option-reload.model.js +1 -1
  534. package/esm2015/table/src/lib/models/table-option-selector.model.js +1 -1
  535. package/esm2015/table/src/lib/models/table-option-sort.model.js +1 -1
  536. package/esm2015/table/src/lib/models/table-option-style.model.js +1 -1
  537. package/esm2015/table/src/lib/models/table-option.model.js +1 -1
  538. package/esm2015/table/src/lib/pipes/column-tooltip.pipe.js +1 -1
  539. package/esm2015/table/src/lib/pipes/command-disable.pipe.js +1 -1
  540. package/esm2015/table/src/lib/pipes/command-filter.pipe.js +1 -1
  541. package/esm2015/table/src/lib/pipes/command-icon.pipe.js +1 -1
  542. package/esm2015/table/src/lib/pipes/command-title.pipe.js +1 -1
  543. package/esm2015/table/src/lib/pipes/filter-column.pipe.js +1 -1
  544. package/esm2015/table/src/lib/pipes/filter-external.pipe.js +1 -1
  545. package/esm2015/table/src/lib/pipes/sd-group.pipe.js +1 -1
  546. package/esm2015/table/src/lib/pipes/selection-action-filter.pipe.js +1 -1
  547. package/esm2015/table/src/lib/pipes/selection-disable.pipe.js +1 -1
  548. package/esm2015/table/src/lib/pipes/selection-visible-select-all.pipe.js +1 -1
  549. package/esm2015/table/src/lib/pipes/selection-visible.pipe.js +1 -1
  550. package/esm2015/table/src/lib/services/table-configuration.service.js +37 -207
  551. package/esm2015/table/src/lib/services/table-filter/table-filter.model.js +1 -1
  552. package/esm2015/table/src/lib/services/table-filter/table-filter.service.js +1 -1
  553. package/esm2015/table/src/lib/table.component.js +201 -86
  554. package/esm2015/table/src/lib/table.module.js +7 -22
  555. package/esm2015/table/src/public-api.js +1 -1
  556. package/esm2015/textarea/index.js +1 -1
  557. package/esm2015/textarea/sd-angular-core-textarea.js +1 -1
  558. package/esm2015/textarea/src/lib/textarea.component.js +1 -1
  559. package/esm2015/textarea/src/lib/textarea.module.js +1 -1
  560. package/esm2015/textarea/src/public-api.js +1 -1
  561. package/esm2015/time/index.js +1 -1
  562. package/esm2015/time/sd-angular-core-time.js +1 -1
  563. package/esm2015/time/src/lib/time.component.js +1 -1
  564. package/esm2015/time/src/lib/time.module.js +1 -1
  565. package/esm2015/time/src/public-api.js +1 -1
  566. package/esm2015/timeline/index.js +1 -1
  567. package/esm2015/timeline/sd-angular-core-timeline.js +1 -1
  568. package/esm2015/timeline/src/lib/components/timeline.component.js +1 -1
  569. package/esm2015/timeline/src/lib/directives/timeline-def.directive.js +1 -1
  570. package/esm2015/timeline/src/lib/timeline.module.js +1 -1
  571. package/esm2015/timeline/src/public-api.js +1 -1
  572. package/esm2015/translate/index.js +1 -1
  573. package/esm2015/translate/sd-angular-core-translate.js +1 -1
  574. package/esm2015/translate/src/lib/translate.model.js +1 -1
  575. package/esm2015/translate/src/lib/translate.module.js +1 -1
  576. package/esm2015/translate/src/lib/translate.pipe.js +1 -1
  577. package/esm2015/translate/src/lib/translate.service.js +1 -1
  578. package/esm2015/upload-excel/index.js +1 -1
  579. package/esm2015/upload-excel/sd-angular-core-upload-excel.js +1 -1
  580. package/esm2015/upload-excel/src/lib/pipes/columm-hidden.pipe.js +1 -1
  581. package/esm2015/upload-excel/src/lib/pipes/column-transform.pipe.js +1 -1
  582. package/esm2015/upload-excel/src/lib/upload-excel.component.js +1 -1
  583. package/esm2015/upload-excel/src/lib/upload-excel.model.js +1 -1
  584. package/esm2015/upload-excel/src/lib/upload-excel.module.js +1 -1
  585. package/esm2015/upload-excel/src/public-api.js +1 -1
  586. package/esm2015/upload-file/index.js +1 -1
  587. package/esm2015/upload-file/sd-angular-core-upload-file.js +1 -1
  588. package/esm2015/upload-file/src/lib/upload-file.component.js +1 -1
  589. package/esm2015/upload-file/src/lib/upload-file.module.js +1 -1
  590. package/esm2015/upload-file/src/public-api.js +1 -1
  591. package/esm2015/utility/index.js +1 -1
  592. package/esm2015/utility/sd-angular-core-utility.js +1 -1
  593. package/esm2015/utility/src/lib/directives/desktop.directive.js +1 -1
  594. package/esm2015/utility/src/lib/directives/mobile-tablet.directive.js +1 -1
  595. package/esm2015/utility/src/lib/directives/mobile.directive.js +1 -1
  596. package/esm2015/utility/src/lib/directives/tablet.directive.js +1 -1
  597. package/esm2015/utility/src/lib/pipes/currency.pipe.js +1 -1
  598. package/esm2015/utility/src/lib/pipes/safe-html.pipe.js +1 -1
  599. package/esm2015/utility/src/lib/pipes/time-different.pipe.js +1 -1
  600. package/esm2015/utility/src/lib/utility.module.js +1 -3
  601. package/esm2015/utility/src/lib/utility.service.js +7 -54
  602. package/esm2015/utility/src/public-api.js +1 -1
  603. package/esm2015/view/index.js +1 -1
  604. package/esm2015/view/sd-angular-core-view.js +1 -1
  605. package/esm2015/view/src/lib/view.module.js +1 -1
  606. package/esm2015/view/src/public-api.js +1 -1
  607. package/esm2015/zip/index.js +1 -1
  608. package/esm2015/zip/sd-angular-core-zip.js +1 -1
  609. package/esm2015/zip/src/lib/zip.module.js +1 -1
  610. package/esm2015/zip/src/lib/zip.service.js +1 -1
  611. package/esm2015/zip/src/public-api.js +1 -1
  612. package/fesm2015/sd-angular-core-api.js +2 -35
  613. package/fesm2015/sd-angular-core-api.js.map +1 -1
  614. package/fesm2015/sd-angular-core-common.js +85 -2
  615. package/fesm2015/sd-angular-core-common.js.map +1 -1
  616. package/fesm2015/sd-angular-core-input-dropdown.js +2 -2
  617. package/fesm2015/sd-angular-core-input-dropdown.js.map +1 -1
  618. package/fesm2015/sd-angular-core-table.js +352 -803
  619. package/fesm2015/sd-angular-core-table.js.map +1 -1
  620. package/fesm2015/sd-angular-core-utility.js +7 -54
  621. package/fesm2015/sd-angular-core-utility.js.map +1 -1
  622. package/input-dropdown/sd-angular-core-input-dropdown.metadata.json +1 -1
  623. package/package.json +1 -1
  624. package/{sd-angular-core-1.3.150.tgz → sd-angular-core-1.3.152.tgz} +0 -0
  625. package/table/sd-angular-core-table.d.ts +23 -30
  626. package/table/sd-angular-core-table.metadata.json +1 -1
  627. package/table/src/lib/components/column-inline-filter/column-inline-filter.component.d.ts +2 -0
  628. package/table/src/lib/components/{popup-grid-configuration/popup-grid-configuration.component.d.ts → popup-configuration/popup-configuration.component.d.ts} +5 -10
  629. package/table/src/lib/components/popup-filter/popup-filter.component.d.ts +2 -2
  630. package/table/src/lib/components/quick-action/quick-action.component.d.ts +1 -1
  631. package/table/src/lib/components/{grid-filter/grid-filter.component.d.ts → table-filter/table-filter.component.d.ts} +5 -5
  632. package/table/src/lib/models/table-column.model.d.ts +15 -48
  633. package/table/src/lib/models/table-item.model.d.ts +15 -2
  634. package/table/src/lib/models/table-option-config.model.d.ts +2 -11
  635. package/table/src/lib/models/table-option.model.d.ts +0 -4
  636. package/table/src/lib/services/table-configuration.service.d.ts +5 -5
  637. package/table/src/lib/services/table-filter/table-filter.model.d.ts +1 -2
  638. package/table/src/lib/services/table-filter/table-filter.service.d.ts +2 -2
  639. package/table/src/lib/table.component.d.ts +12 -13
  640. package/utility/sd-angular-core-utility.metadata.json +1 -1
  641. package/utility/src/lib/utility.service.d.ts +2 -4
  642. package/esm2015/table/src/lib/components/grid-filter/grid-filter.component.js +0 -99
  643. package/esm2015/table/src/lib/components/popup-grid-configuration/popup-grid-configuration.component.js +0 -96
  644. package/esm2015/table/src/lib/models/grid-cell.model.js +0 -2
  645. package/esm2015/table/src/lib/pipes/cell-view.pipe.js +0 -180
  646. package/esm2015/table/src/lib/pipes/column-badge.pipe.js +0 -43
  647. package/esm2015/table/src/lib/pipes/column-children-filter.pipe.js +0 -31
  648. package/esm2015/table/src/lib/pipes/column-html-template.pipe.js +0 -23
  649. package/esm2015/table/src/lib/pipes/column-transform.pipe.js +0 -35
  650. package/esm2015/table/src/lib/pipes/column-values.pipe.js +0 -63
  651. package/esm2015/table/src/lib/pipes/grid-configuration-result.pipe.js +0 -21
  652. package/table/src/lib/models/grid-cell.model.d.ts +0 -16
  653. package/table/src/lib/pipes/cell-view.pipe.d.ts +0 -15
  654. package/table/src/lib/pipes/column-badge.pipe.d.ts +0 -11
  655. package/table/src/lib/pipes/column-children-filter.pipe.d.ts +0 -8
  656. package/table/src/lib/pipes/column-html-template.pipe.d.ts +0 -8
  657. package/table/src/lib/pipes/column-transform.pipe.d.ts +0 -8
  658. package/table/src/lib/pipes/column-values.pipe.d.ts +0 -6
  659. package/table/src/lib/pipes/grid-configuration-result.pipe.d.ts +0 -10
@@ -1,224 +1,35 @@
1
- var _COLUMNS, _cache, _getKey, _default, _load, _get, _set, _remove;
2
- import { __awaiter, __classPrivateFieldGet } from "tslib";
1
+ var _COLUMNS, _prefix, _getSetting, _default;
2
+ import { __classPrivateFieldGet } from "tslib";
3
3
  import { Inject, Injectable, Optional } from '@angular/core';
4
- import hash from 'object-hash';
5
4
  import { SdSettingService } from '@sd-angular/core/setting';
6
- import { Subject } from 'rxjs';
7
5
  import { TABLE_CONFIG } from '../models/table-configuration.model';
8
6
  export class SdTableConfigurationService {
9
7
  constructor(settingService, gridMaterialConfiguration) {
10
8
  this.settingService = settingService;
11
9
  this.gridMaterialConfiguration = gridMaterialConfiguration;
12
10
  _COLUMNS.set(this, {
13
- EDITORVALIDATION: 'sdEditorValidation',
14
- EDITOR: 'sdEditor',
15
11
  SUBINFORMATION: 'sdSubInformationAction',
16
12
  COMMAND: 'sdCommand',
17
13
  SELECTION: 'sdSelection',
18
14
  GROUP: 'sdGroup',
19
15
  });
20
- _cache.set(this, {});
21
- this.init = (key, gridOption) => {
22
- if (!__classPrivateFieldGet(this, _cache)[key]) {
23
- const subject = new Subject();
24
- __classPrivateFieldGet(this, _cache)[key] = {
25
- load: __classPrivateFieldGet(this, _load).call(this, gridOption, subject),
26
- get: __classPrivateFieldGet(this, _get).call(this, gridOption),
27
- set: (configuration) => {
28
- configuration = __classPrivateFieldGet(this, _set).call(this, gridOption, configuration);
29
- subject.next(Object.assign({}, configuration));
30
- return configuration;
31
- },
32
- remove: () => {
33
- __classPrivateFieldGet(this, _remove).call(this, gridOption)();
34
- subject.next(__classPrivateFieldGet(this, _default).call(this, gridOption));
35
- },
36
- observer: subject,
37
- };
16
+ _prefix.set(this, 'bd364e28-fe67-48b9-a537-1a306f7d195c');
17
+ _getSetting.set(this, (gridOption) => {
18
+ if (gridOption === null || gridOption === void 0 ? void 0 : gridOption.key) {
19
+ throw new Error('Invalid key');
38
20
  }
39
- return __classPrivateFieldGet(this, _cache)[key];
40
- };
41
- _getKey.set(this, (gridOption) => {
42
- var _a, _b;
43
- const prefix = 'c9e94836-6ace-4aeb-b148-4f0be63589ee';
44
- if (!((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.key) && !(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key)) {
45
- return null;
46
- }
47
- return hash({
48
- prefix,
49
- key: ((_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.key) || !(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key),
50
- });
51
- });
52
- _default.set(this, (gridOption) => {
53
- var _a;
54
- const columns = ((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.columns) === null || _a === void 0 ? void 0 : _a.filter(e => !e.hidden).map(e => ({
55
- origin: {
56
- field: e.field,
57
- title: e.title,
58
- width: e.width,
59
- invisible: e.invisible,
60
- },
61
- invisible: e.invisible,
62
- fixed: false,
63
- }))) || [];
64
- return {
65
- columns,
66
- };
67
- });
68
- _load.set(this, (gridOption, subject) => {
69
- return () => __awaiter(this, void 0, void 0, function* () {
70
- const get = __classPrivateFieldGet(this, _get).call(this, gridOption);
71
- const configuration = yield get();
72
- subject.next(Object.assign({}, configuration));
73
- });
74
- });
75
- _get.set(this, (gridOption) => {
76
- return () => __awaiter(this, void 0, void 0, function* () {
77
- const key = __classPrivateFieldGet(this, _getKey).call(this, gridOption);
78
- if (!key) {
79
- return __classPrivateFieldGet(this, _default).call(this, gridOption);
80
- }
81
- const { columns, config } = gridOption;
82
- let configuration;
83
- if ((config === null || config === void 0 ? void 0 : config.storage) === 'server') {
84
- const { get, remove } = this.settingService.createServer(key, {
85
- args: config === null || config === void 0 ? void 0 : config.args,
86
- });
87
- configuration = yield get().catch(() => undefined);
88
- if (!(configuration === null || configuration === void 0 ? void 0 : configuration.columns)) {
89
- remove().catch(console.error);
90
- return __classPrivateFieldGet(this, _default).call(this, gridOption);
91
- }
92
- }
93
- else {
94
- const { get, remove } = this.settingService.create(key, {
95
- type: config === null || config === void 0 ? void 0 : config.storage,
96
- args: config === null || config === void 0 ? void 0 : config.args,
97
- });
98
- configuration = get();
99
- if (!(configuration === null || configuration === void 0 ? void 0 : configuration.columns)) {
100
- remove();
101
- return __classPrivateFieldGet(this, _default).call(this, gridOption);
102
- }
103
- }
104
- configuration.columns = configuration.columns.filter(column => columns.some(e => !e.hidden && e.field === column.origin.field));
105
- // Thêm những column mới vào storage nếu có
106
- columns.forEach(column => {
107
- const col = configuration.columns.find(e => { var _a; return ((_a = e.origin) === null || _a === void 0 ? void 0 : _a.field) === column.field; });
108
- if (!col) {
109
- configuration.columns.push({
110
- origin: {
111
- field: column.field,
112
- title: column.title,
113
- width: column.width,
114
- invisible: column.invisible,
115
- },
116
- invisible: column.invisible,
117
- fixed: false,
118
- });
119
- }
120
- else {
121
- col.origin = {
122
- field: column.field,
123
- title: column.title,
124
- width: column.width,
125
- invisible: column.invisible,
126
- };
127
- }
128
- });
129
- return configuration;
21
+ return this.settingService.create({ prefix: __classPrivateFieldGet(this, _prefix), key: gridOption.key }, {
22
+ default: __classPrivateFieldGet(this, _default).call(this, gridOption),
130
23
  });
131
24
  });
132
- _set.set(this, (gridOption, configuration) => {
133
- var _a, _b, _c, _d;
134
- const key = __classPrivateFieldGet(this, _getKey).call(this, gridOption);
135
- if (key) {
136
- if (((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.storage) === 'server') {
137
- const { set } = this.settingService.createServer(key, {
138
- args: (_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.args,
139
- });
140
- set(configuration);
141
- }
142
- else {
143
- const { set } = this.settingService.create(key, {
144
- type: (_c = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _c === void 0 ? void 0 : _c.storage,
145
- args: (_d = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _d === void 0 ? void 0 : _d.args,
146
- });
147
- set(configuration);
148
- }
25
+ this.loadConfiguration = (gridOption) => {
26
+ if (!(gridOption === null || gridOption === void 0 ? void 0 : gridOption.key)) {
27
+ return __classPrivateFieldGet(this, _default).call(this, gridOption);
149
28
  }
150
- return JSON.parse(JSON.stringify(configuration));
151
- });
152
- _remove.set(this, (gridOption) => {
153
- return () => {
154
- var _a, _b, _c, _d;
155
- const key = __classPrivateFieldGet(this, _getKey).call(this, gridOption);
156
- if (key) {
157
- if (((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _a === void 0 ? void 0 : _a.storage) === 'server') {
158
- const { remove } = this.settingService.createServer(key, {
159
- args: (_b = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _b === void 0 ? void 0 : _b.args,
160
- });
161
- remove();
162
- }
163
- else {
164
- const { remove } = this.settingService.create(key, {
165
- type: (_c = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _c === void 0 ? void 0 : _c.storage,
166
- args: (_d = gridOption === null || gridOption === void 0 ? void 0 : gridOption.config) === null || _d === void 0 ? void 0 : _d.args,
167
- });
168
- remove();
169
- }
170
- }
171
- };
172
- });
173
- // get = async (gridOption: SdGridMaterialOption): Promise<SdGridConfiguration> => {
174
- // if (!gridOption?.key) {
175
- // return this.#getDefaultConfiguration(gridOption);
176
- // }
177
- // const { key, columns } = gridOption;
178
- // const configuration: SdGridConfiguration = await this.settingService.get(this.#getKey(key)).catch(() => undefined);
179
- // if (!configuration?.columns) {
180
- // this.settingService.remove(this.#getKey(key)).catch(console.error);
181
- // return this.#getDefaultConfiguration(gridOption);
182
- // }
183
- // configuration.columns = configuration.columns
184
- // .filter(column => columns.some(e => !e.hidden && e.field === column.origin.field));
185
- // // Thêm những column mới vào storage nếu có
186
- // columns.forEach(column => {
187
- // const col = configuration.columns.find(e => e.origin?.field === column.field);
188
- // if (!col) {
189
- // configuration.columns.push({
190
- // origin: {
191
- // field: column.field,
192
- // title: column.title,
193
- // width: column.width,
194
- // invisible: column.invisible,
195
- // },
196
- // invisible: column.invisible,
197
- // fixed: false
198
- // });
199
- // } else {
200
- // col.origin = {
201
- // field: column.field,
202
- // title: column.title,
203
- // width: column.width,
204
- // invisible: column.invisible
205
- // };
206
- // }
207
- // });
208
- // return configuration;
209
- // }
210
- // set = async (key: string, configuration: SdGridConfiguration): Promise<SdGridConfiguration> => {
211
- // if (key) {
212
- // this.settingService.set(this.#getKey(key), configuration);
213
- // }
214
- // return configuration;
215
- // }
216
- // remove = (key: string) => {
217
- // if (key) {
218
- // this.settingService.remove(this.#getKey(key));
219
- // }
220
- // }
221
- this.generateConfigurationResult = (configuration, gridOption, sdSubInformation) => {
29
+ const setting = __classPrivateFieldGet(this, _getSetting).call(this, gridOption);
30
+ return setting.get();
31
+ };
32
+ this.loadConfigurationResult = (gridOption, configuration) => {
222
33
  var _a, _b;
223
34
  const result = {
224
35
  column: {},
@@ -270,7 +81,7 @@ export class SdTableConfigurationService {
270
81
  }
271
82
  }
272
83
  });
273
- if (sdSubInformation === null || sdSubInformation === void 0 ? void 0 : sdSubInformation.templateRef) {
84
+ if (gridOption.expand) {
274
85
  result.firstHeaders.push(__classPrivateFieldGet(this, _COLUMNS).SUBINFORMATION);
275
86
  result.displayedColumns.push(__classPrivateFieldGet(this, _COLUMNS).SUBINFORMATION);
276
87
  }
@@ -279,9 +90,28 @@ export class SdTableConfigurationService {
279
90
  result.displayedFooters = result.displayedColumns.filter(val => val !== __classPrivateFieldGet(this, _COLUMNS).SUBINFORMATION);
280
91
  return result;
281
92
  };
93
+ this.init = (gridOption) => {
94
+ return __classPrivateFieldGet(this, _getSetting).call(this, gridOption);
95
+ };
96
+ _default.set(this, (gridOption) => {
97
+ var _a;
98
+ const columns = ((_a = gridOption === null || gridOption === void 0 ? void 0 : gridOption.columns) === null || _a === void 0 ? void 0 : _a.filter(e => !e.hidden).map(e => ({
99
+ origin: {
100
+ field: e.field,
101
+ title: e.title,
102
+ width: e.width,
103
+ invisible: e.invisible,
104
+ },
105
+ invisible: e.invisible,
106
+ fixed: false,
107
+ }))) || [];
108
+ return {
109
+ columns,
110
+ };
111
+ });
282
112
  }
283
113
  }
284
- _COLUMNS = new WeakMap(), _cache = new WeakMap(), _getKey = new WeakMap(), _default = new WeakMap(), _load = new WeakMap(), _get = new WeakMap(), _set = new WeakMap(), _remove = new WeakMap();
114
+ _COLUMNS = new WeakMap(), _prefix = new WeakMap(), _getSetting = new WeakMap(), _default = new WeakMap();
285
115
  SdTableConfigurationService.decorators = [
286
116
  { type: Injectable }
287
117
  ];
@@ -289,4 +119,4 @@ SdTableConfigurationService.ctorParameters = () => [
289
119
  { type: SdSettingService },
290
120
  { type: undefined, decorators: [{ type: Inject, args: [TABLE_CONFIG,] }, { type: Optional }] }
291
121
  ];
292
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWJsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VydmljZXMvdGFibGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSxZQUFZLEVBQXlCLE1BQU0scUNBQXFDLENBQUM7QUFHMUYsTUFBTSxPQUFPLDJCQUEyQjtJQVl0QyxZQUNVLGNBQWdDLEVBQ0MseUJBQWdEO1FBRGpGLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNDLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBdUI7UUFiM0YsbUJBQVc7WUFDVCxnQkFBZ0IsRUFBRSxvQkFBb0I7WUFDdEMsTUFBTSxFQUFFLFVBQVU7WUFDbEIsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxPQUFPLEVBQUUsV0FBVztZQUNwQixTQUFTLEVBQUUsYUFBYTtZQUN4QixLQUFLLEVBQUUsU0FBUztTQUNqQixFQUFDO1FBQ0YsaUJBRUksRUFBRSxFQUFDO1FBTVAsU0FBSSxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQXlCLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMscUNBQVksR0FBRyxDQUFDLEVBQUU7Z0JBQ3JCLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO2dCQUNuRCxxQ0FBWSxHQUFHLENBQUMsR0FBRztvQkFDakIsSUFB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O1lBQ0QsTUFBTSxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDeEQscUNBQXFDO1lBQ3JDLE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLHVDQUFjLGNBQWMsQ0FBQyxDQUFDO1lBQ3RHLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztJQXBSQyxDQUFDOzs7O1lBaEJMLFVBQVU7OztZQWJGLGdCQUFnQjs0Q0E0QnBCLE1BQU0sU0FBQyxZQUFZLGNBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHsgU2RUYWJsZU9wdGlvbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1vcHRpb24ubW9kZWwnO1xyXG5pbXBvcnQge1xyXG4gIFNkQ29sdW1uQ29uZmlndXJhdGlvbixcclxuICBTZEdyaWRDb25maWd1cmF0aW9uLFxyXG4gIFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZSxcclxuICBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0LFxyXG59IGZyb20gJy4uL21vZGVscy90YWJsZS1vcHRpb24tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbFN1YkluZm9ybWF0aW9uRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9zZC1tYXRlcmlhbC1zdWItaW5mb3JtYXRpb24tZGVmLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RUYWJsZUNvbHVtbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5pbXBvcnQgeyBUQUJMRV9DT05GSUcsIElTZFRhYmxlQ29uZmlndXJhdGlvbiB9IGZyb20gJy4uL21vZGVscy90YWJsZS1jb25maWd1cmF0aW9uLm1vZGVsJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNkVGFibGVDb25maWd1cmF0aW9uU2VydmljZSB7XHJcbiAgI0NPTFVNTlMgPSB7XHJcbiAgICBFRElUT1JWQUxJREFUSU9OOiAnc2RFZGl0b3JWYWxpZGF0aW9uJyxcclxuICAgIEVESVRPUjogJ3NkRWRpdG9yJyxcclxuICAgIFNVQklORk9STUFUSU9OOiAnc2RTdWJJbmZvcm1hdGlvbkFjdGlvbicsXHJcbiAgICBDT01NQU5EOiAnc2RDb21tYW5kJyxcclxuICAgIFNFTEVDVElPTjogJ3NkU2VsZWN0aW9uJyxcclxuICAgIEdST1VQOiAnc2RHcm91cCcsXHJcbiAgfTtcclxuICAjY2FjaGU6IHtcclxuICAgIFtrZXk6IHN0cmluZ106IFNkR3JpZENvbmZpZ3VyYXRpb25DYWNoZTtcclxuICB9ID0ge307XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZFNldHRpbmdTZXJ2aWNlLFxyXG4gICAgQEluamVjdChUQUJMRV9DT05GSUcpIEBPcHRpb25hbCgpIHB1YmxpYyBncmlkTWF0ZXJpYWxDb25maWd1cmF0aW9uOiBJU2RUYWJsZUNvbmZpZ3VyYXRpb25cclxuICApIHt9XHJcblxyXG4gIGluaXQgPSAoa2V5OiBzdHJpbmcsIGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24pID0+IHtcclxuICAgIGlmICghdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICBjb25zdCBzdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2RHcmlkQ29uZmlndXJhdGlvbj4oKTtcclxuICAgICAgdGhpcy4jY2FjaGVba2V5XSA9IHtcclxuICAgICAgICBsb2FkOiB0aGlzLiNsb2FkKGdyaWRPcHRpb24sIHN1YmplY3QpLFxyXG4gICAgICAgIGdldDogdGhpcy4jZ2V0KGdyaWRPcHRpb24pLFxyXG4gICAgICAgIHNldDogKGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24gPSB0aGlzLiNzZXQoZ3JpZE9wdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgICBzdWJqZWN0Lm5leHQoeyAuLi5jb25maWd1cmF0aW9uIH0pO1xyXG4gICAgICAgICAgcmV0dXJuIGNvbmZpZ3VyYXRpb247XHJcbiAgICAgICAgfSxcclxuICAgICAgICByZW1vdmU6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuI3JlbW92ZShncmlkT3B0aW9uKSgpO1xyXG4gICAgICAgICAgc3ViamVjdC5uZXh0KHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbikpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgb2JzZXJ2ZXI6IHN1YmplY3QsXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVba2V5XTtcclxuICB9O1xyXG5cclxuICAjZ2V0S2V5ID0gKGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24pID0+IHtcclxuICAgIGNvbnN0IHByZWZpeCA9ICdjOWU5NDgzNi02YWNlLTRhZWItYjE0OC00ZjBiZTYzNTg5ZWUnO1xyXG4gICAgaWYgKCFncmlkT3B0aW9uPy5jb25maWc/LmtleSAmJiAhZ3JpZE9wdGlvbj8ua2V5KSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGhhc2goe1xyXG4gICAgICBwcmVmaXgsXHJcbiAgICAgIGtleTogZ3JpZE9wdGlvbj8uY29uZmlnPy5rZXkgfHwgIWdyaWRPcHRpb24/LmtleSxcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gICNkZWZhdWx0ID0gKGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24pOiBTZEdyaWRDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbnM6IFNkQ29sdW1uQ29uZmlndXJhdGlvbltdID1cclxuICAgICAgZ3JpZE9wdGlvbj8uY29sdW1uc1xyXG4gICAgICAgID8uZmlsdGVyKGUgPT4gIWUuaGlkZGVuKVxyXG4gICAgICAgIC5tYXAoZSA9PiAoe1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBlLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogZS50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGUud2lkdGgsXHJcbiAgICAgICAgICAgIGludmlzaWJsZTogZS5pbnZpc2libGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgaW52aXNpYmxlOiBlLmludmlzaWJsZSxcclxuICAgICAgICAgIGZpeGVkOiBmYWxzZSxcclxuICAgICAgICB9KSkgfHwgW107XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAjbG9hZCA9IChncmlkT3B0aW9uOiBTZFRhYmxlT3B0aW9uLCBzdWJqZWN0OiBTdWJqZWN0PFNkR3JpZENvbmZpZ3VyYXRpb24+KSA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBnZXQgPSB0aGlzLiNnZXQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKTtcclxuICAgICAgc3ViamVjdC5uZXh0KHsgLi4uY29uZmlndXJhdGlvbiB9KTtcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgI2dldCA9IChncmlkT3B0aW9uOiBTZFRhYmxlT3B0aW9uKSA9PiB7XHJcbiAgICByZXR1cm4gYXN5bmMgKCkgPT4ge1xyXG4gICAgICBjb25zdCBrZXkgPSB0aGlzLiNnZXRLZXkoZ3JpZE9wdGlvbik7XHJcbiAgICAgIGlmICgha2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuI2RlZmF1bHQoZ3JpZE9wdGlvbik7XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgeyBjb2x1bW5zLCBjb25maWcgfSA9IGdyaWRPcHRpb247XHJcbiAgICAgIGxldCBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uO1xyXG4gICAgICBpZiAoY29uZmlnPy5zdG9yYWdlID09PSAnc2VydmVyJykge1xyXG4gICAgICAgIGNvbnN0IHsgZ2V0LCByZW1vdmUgfSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlU2VydmVyPFNkR3JpZENvbmZpZ3VyYXRpb24+KGtleSwge1xyXG4gICAgICAgICAgYXJnczogY29uZmlnPy5hcmdzLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBnZXQoKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xyXG4gICAgICAgIGlmICghY29uZmlndXJhdGlvbj8uY29sdW1ucykge1xyXG4gICAgICAgICAgcmVtb3ZlKCkuY2F0Y2goY29uc29sZS5lcnJvcik7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgeyBnZXQsIHJlbW92ZSB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgICB0eXBlOiBjb25maWc/LnN0b3JhZ2UsXHJcbiAgICAgICAgICBhcmdzOiBjb25maWc/LmFyZ3MsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbiA9IGdldCgpO1xyXG4gICAgICAgIGlmICghY29uZmlndXJhdGlvbj8uY29sdW1ucykge1xyXG4gICAgICAgICAgcmVtb3ZlKCk7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucyA9IGNvbmZpZ3VyYXRpb24uY29sdW1ucy5maWx0ZXIoY29sdW1uID0+IGNvbHVtbnMuc29tZShlID0+ICFlLmhpZGRlbiAmJiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luLmZpZWxkKSk7XHJcbiAgICAgIC8vIFRow6ptIG5o4buvbmcgY29sdW1uIG3hu5tpIHbDoG8gc3RvcmFnZSBu4bq/dSBjw7NcclxuICAgICAgY29sdW1ucy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sID0gY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLm9yaWdpbj8uZmllbGQgPT09IGNvbHVtbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKCFjb2wpIHtcclxuICAgICAgICAgIGNvbmZpZ3VyYXRpb24uY29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAgICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlLFxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgICAgICAgICAgIGZpeGVkOiBmYWxzZSxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBjb2wub3JpZ2luID0ge1xyXG4gICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogY29sdW1uLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHJldHVybiBjb25maWd1cmF0aW9uO1xyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAjc2V0ID0gKGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24sIGNvbmZpZ3VyYXRpb246IFNkR3JpZENvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShncmlkT3B0aW9uKTtcclxuICAgIGlmIChrZXkpIHtcclxuICAgICAgaWYgKGdyaWRPcHRpb24/LmNvbmZpZz8uc3RvcmFnZSA9PT0gJ3NlcnZlcicpIHtcclxuICAgICAgICBjb25zdCB7IHNldCB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGVTZXJ2ZXI8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgICBhcmdzOiBncmlkT3B0aW9uPy5jb25maWc/LmFyZ3MsXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgc2V0KGNvbmZpZ3VyYXRpb24pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnN0IHsgc2V0IH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICAgIHR5cGU6IGdyaWRPcHRpb24/LmNvbmZpZz8uc3RvcmFnZSxcclxuICAgICAgICAgIGFyZ3M6IGdyaWRPcHRpb24/LmNvbmZpZz8uYXJncyxcclxuICAgICAgICB9KTtcclxuICAgICAgICBzZXQoY29uZmlndXJhdGlvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGNvbmZpZ3VyYXRpb24pKTtcclxuICB9O1xyXG5cclxuICAjcmVtb3ZlID0gKGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24pID0+IHtcclxuICAgIHJldHVybiAoKSA9PiB7XHJcbiAgICAgIGNvbnN0IGtleSA9IHRoaXMuI2dldEtleShncmlkT3B0aW9uKTtcclxuICAgICAgaWYgKGtleSkge1xyXG4gICAgICAgIGlmIChncmlkT3B0aW9uPy5jb25maWc/LnN0b3JhZ2UgPT09ICdzZXJ2ZXInKSB7XHJcbiAgICAgICAgICBjb25zdCB7IHJlbW92ZSB9ID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGVTZXJ2ZXI8U2RHcmlkQ29uZmlndXJhdGlvbj4oa2V5LCB7XHJcbiAgICAgICAgICAgIGFyZ3M6IGdyaWRPcHRpb24/LmNvbmZpZz8uYXJncyxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVtb3ZlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHsgcmVtb3ZlIH0gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEdyaWRDb25maWd1cmF0aW9uPihrZXksIHtcclxuICAgICAgICAgICAgdHlwZTogZ3JpZE9wdGlvbj8uY29uZmlnPy5zdG9yYWdlLFxyXG4gICAgICAgICAgICBhcmdzOiBncmlkT3B0aW9uPy5jb25maWc/LmFyZ3MsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlbW92ZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAvLyBnZXQgPSBhc3luYyAoZ3JpZE9wdGlvbjogU2RHcmlkTWF0ZXJpYWxPcHRpb24pOiBQcm9taXNlPFNkR3JpZENvbmZpZ3VyYXRpb24+ID0+IHtcclxuICAvLyAgIGlmICghZ3JpZE9wdGlvbj8ua2V5KSB7XHJcbiAgLy8gICAgIHJldHVybiB0aGlzLiNnZXREZWZhdWx0Q29uZmlndXJhdGlvbihncmlkT3B0aW9uKTtcclxuICAvLyAgIH1cclxuICAvLyAgIGNvbnN0IHsga2V5LCBjb2x1bW5zIH0gPSBncmlkT3B0aW9uO1xyXG4gIC8vICAgY29uc3QgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbiA9IGF3YWl0IHRoaXMuc2V0dGluZ1NlcnZpY2UuZ2V0KHRoaXMuI2dldEtleShrZXkpKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xyXG4gIC8vICAgaWYgKCFjb25maWd1cmF0aW9uPy5jb2x1bW5zKSB7XHJcbiAgLy8gICAgIHRoaXMuc2V0dGluZ1NlcnZpY2UucmVtb3ZlKHRoaXMuI2dldEtleShrZXkpKS5jYXRjaChjb25zb2xlLmVycm9yKTtcclxuICAvLyAgICAgcmV0dXJuIHRoaXMuI2dldERlZmF1bHRDb25maWd1cmF0aW9uKGdyaWRPcHRpb24pO1xyXG4gIC8vICAgfVxyXG4gIC8vICAgY29uZmlndXJhdGlvbi5jb2x1bW5zID0gY29uZmlndXJhdGlvbi5jb2x1bW5zXHJcbiAgLy8gICAgIC5maWx0ZXIoY29sdW1uID0+IGNvbHVtbnMuc29tZShlID0+ICFlLmhpZGRlbiAmJiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luLmZpZWxkKSk7XHJcbiAgLy8gICAvLyBUaMOqbSBuaOG7r25nIGNvbHVtbiBt4bubaSB2w6BvIHN0b3JhZ2UgbuG6v3UgY8OzXHJcbiAgLy8gICBjb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAvLyAgICAgY29uc3QgY29sID0gY29uZmlndXJhdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLm9yaWdpbj8uZmllbGQgPT09IGNvbHVtbi5maWVsZCk7XHJcbiAgLy8gICAgIGlmICghY29sKSB7XHJcbiAgLy8gICAgICAgY29uZmlndXJhdGlvbi5jb2x1bW5zLnB1c2goe1xyXG4gIC8vICAgICAgICAgb3JpZ2luOiB7XHJcbiAgLy8gICAgICAgICAgIGZpZWxkOiBjb2x1bW4uZmllbGQsXHJcbiAgLy8gICAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgLy8gICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgLy8gICAgICAgICAgIGludmlzaWJsZTogY29sdW1uLmludmlzaWJsZSxcclxuICAvLyAgICAgICAgIH0sXHJcbiAgLy8gICAgICAgICBpbnZpc2libGU6IGNvbHVtbi5pbnZpc2libGUsXHJcbiAgLy8gICAgICAgICBmaXhlZDogZmFsc2VcclxuICAvLyAgICAgICB9KTtcclxuICAvLyAgICAgfSBlbHNlIHtcclxuICAvLyAgICAgICBjb2wub3JpZ2luID0ge1xyXG4gIC8vICAgICAgICAgZmllbGQ6IGNvbHVtbi5maWVsZCxcclxuICAvLyAgICAgICAgIHRpdGxlOiBjb2x1bW4udGl0bGUsXHJcbiAgLy8gICAgICAgICB3aWR0aDogY29sdW1uLndpZHRoLFxyXG4gIC8vICAgICAgICAgaW52aXNpYmxlOiBjb2x1bW4uaW52aXNpYmxlXHJcbiAgLy8gICAgICAgfTtcclxuICAvLyAgICAgfVxyXG4gIC8vICAgfSk7XHJcbiAgLy8gICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHNldCA9IGFzeW5jIChrZXk6IHN0cmluZywgY29uZmlndXJhdGlvbjogU2RHcmlkQ29uZmlndXJhdGlvbik6IFByb21pc2U8U2RHcmlkQ29uZmlndXJhdGlvbj4gPT4ge1xyXG4gIC8vICAgaWYgKGtleSkge1xyXG4gIC8vICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnNldCh0aGlzLiNnZXRLZXkoa2V5KSwgY29uZmlndXJhdGlvbik7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gY29uZmlndXJhdGlvbjtcclxuICAvLyB9XHJcblxyXG4gIC8vIHJlbW92ZSA9IChrZXk6IHN0cmluZykgPT4ge1xyXG4gIC8vICAgaWYgKGtleSkge1xyXG4gIC8vICAgICB0aGlzLnNldHRpbmdTZXJ2aWNlLnJlbW92ZSh0aGlzLiNnZXRLZXkoa2V5KSk7XHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICBnZW5lcmF0ZUNvbmZpZ3VyYXRpb25SZXN1bHQgPSAoXHJcbiAgICBjb25maWd1cmF0aW9uOiBTZEdyaWRDb25maWd1cmF0aW9uLFxyXG4gICAgZ3JpZE9wdGlvbjogU2RUYWJsZU9wdGlvbixcclxuICAgIHNkU3ViSW5mb3JtYXRpb246IFNkTWF0ZXJpYWxTdWJJbmZvcm1hdGlvbkRlZkRpcmVjdGl2ZVxyXG4gICkgPT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBTZEdyaWRDb25maWd1cmF0aW9uUmVzdWx0ID0ge1xyXG4gICAgICBjb2x1bW46IHt9LFxyXG4gICAgICBmaXhlZENvbHVtbjoge30sXHJcbiAgICAgIGZpcnN0Q29sdW1uczogW10sXHJcbiAgICAgIHNlY29uZENvbHVtbnM6IFtdLFxyXG4gICAgICBmaXJzdEhlYWRlcnM6IFtdLFxyXG4gICAgICBzZWNvbmRIZWFkZXJzOiBbXSxcclxuICAgICAgZGlzcGxheWVkQ29sdW1uczogW10sXHJcbiAgICAgIGRpc3BsYXllZEZvb3RlcnM6IFtdLFxyXG4gICAgICBtdWx0aXBsZUhlYWRlcjogZmFsc2UsXHJcbiAgICB9O1xyXG4gICAgY29uc3QgeyBzZWxlY3RvciwgY29tbWFuZHMsIGdyb3VwIH0gPSBncmlkT3B0aW9uIHx8IHt9O1xyXG4gICAgaWYgKHNlbGVjdG9yPy52aXNpYmxlKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLlNFTEVDVElPTik7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5TRUxFQ1RJT04pO1xyXG4gICAgfVxyXG4gICAgaWYgKGNvbW1hbmRzPy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuQ09NTUFORCk7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5DT01NQU5EKTtcclxuICAgIH1cclxuICAgIGlmIChncm91cD8uZmllbGRzPy5sZW5ndGgpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuR1JPVVApO1xyXG4gICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKHRoaXMuI0NPTFVNTlMuR1JPVVApO1xyXG4gICAgfVxyXG4gICAgY29uZmlndXJhdGlvbj8uY29sdW1uc1xyXG4gICAgICA/LmZpbHRlcihjb2wgPT4gIWNvbC5pbnZpc2libGUpXHJcbiAgICAgIC5mb3JFYWNoKGNvbCA9PiB7XHJcbiAgICAgICAgY29uc3QgY29sdW1uID0gZ3JpZE9wdGlvbj8uY29sdW1ucy5maW5kKGUgPT4gZS5maWVsZCA9PT0gY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgaWYgKGNvbHVtbikge1xyXG4gICAgICAgICAgcmVzdWx0LmNvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgaWYgKGNvbC5maXhlZCkge1xyXG4gICAgICAgICAgICByZXN1bHQuZml4ZWRDb2x1bW5bY29sLm9yaWdpbi5maWVsZF0gPSB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJlc3VsdC5maXJzdENvbHVtbnMucHVzaCh7XHJcbiAgICAgICAgICAgIC4uLmNvbHVtbixcclxuICAgICAgICAgICAgdGl0bGU6IGNvbC50aXRsZSB8fCBjb2wub3JpZ2luLnRpdGxlLFxyXG4gICAgICAgICAgICB3aWR0aDogY29sLndpZHRoIHx8IGNvbC5vcmlnaW4ud2lkdGgsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY29sLm9yaWdpbi5maWVsZCk7XHJcbiAgICAgICAgICBpZiAoY29sdW1uLnR5cGUgPT09ICdjaGlsZHJlbicpIHtcclxuICAgICAgICAgICAgY29sdW1uLmNoaWxkcmVuPy5mb3JFYWNoKGNoaWxkQ29sdW1uID0+IHtcclxuICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kQ29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uKTtcclxuICAgICAgICAgICAgICByZXN1bHQuc2Vjb25kSGVhZGVycy5wdXNoKGNoaWxkQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgICAgICByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5wdXNoKGNoaWxkQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIGlmIChzZFN1YkluZm9ybWF0aW9uPy50ZW1wbGF0ZVJlZikge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICB9XHJcbiAgICByZXN1bHQubXVsdGlwbGVIZWFkZXIgPSByZXN1bHQuc2Vjb25kSGVhZGVycy5sZW5ndGggPiAwO1xyXG4gICAgLy8gU3ViIGluZm9tYXRpb24ga2jDtG5nIHRo4buDIGPDsyBmb290ZXJcclxuICAgIHJlc3VsdC5kaXNwbGF5ZWRGb290ZXJzID0gcmVzdWx0LmRpc3BsYXllZENvbHVtbnMuZmlsdGVyKHZhbCA9PiB2YWwgIT09IHRoaXMuI0NPTFVNTlMuU1VCSU5GT1JNQVRJT04pO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9O1xyXG59XHJcbiJdfQ==
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlndXJhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFibGUvIiwic291cmNlcyI6WyJzcmMvbGliL3NlcnZpY2VzL3RhYmxlLWNvbmZpZ3VyYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQWEsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU92RSxPQUFPLEVBQUUsWUFBWSxFQUF5QixNQUFNLHFDQUFxQyxDQUFDO0FBRzFGLE1BQU0sT0FBTywyQkFBMkI7SUFRdEMsWUFDVSxjQUFnQyxFQUNDLHlCQUFnRDtRQURqRixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDQyw4QkFBeUIsR0FBekIseUJBQXlCLENBQXVCO1FBVDNGLG1CQUFXO1lBQ1QsY0FBYyxFQUFFLHdCQUF3QjtZQUN4QyxPQUFPLEVBQUUsV0FBVztZQUNwQixTQUFTLEVBQUUsYUFBYTtZQUN4QixLQUFLLEVBQUUsU0FBUztTQUNqQixFQUFDO1FBQ0Ysa0JBQVUsc0NBQXNDLEVBQUM7UUFNakQsc0JBQWMsQ0FBQyxVQUF5QixFQUFtQyxFQUFFO1lBQzNFLElBQUksVUFBVSxhQUFWLFVBQVUsdUJBQVYsVUFBVSxDQUFFLEdBQUcsRUFBRTtnQkFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNoQztZQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQy9CLEVBQUUsTUFBTSx1Q0FBYyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQzdDO2dCQUNFLE9BQU8sRUFBRSw0Q0FBQSxJQUFJLEVBQVUsVUFBVSxDQUFDO2FBQ25DLENBQ0YsQ0FBQztRQUNK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cm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZFNldHRpbmcsIFNkU2V0dGluZ1NlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL3NldHRpbmcnO1xyXG5pbXBvcnQgeyBTZFRhYmxlT3B0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3RhYmxlLW9wdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7XHJcbiAgU2RDb2x1bW5Db25maWd1cmF0aW9uLFxyXG4gIFNkVGFibGVDb25maWd1cmF0aW9uLFxyXG4gIFNkVGFibGVDb25maWd1cmF0aW9uUmVzdWx0LFxyXG59IGZyb20gJy4uL21vZGVscy90YWJsZS1vcHRpb24tY29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgVEFCTEVfQ09ORklHLCBJU2RUYWJsZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9tb2RlbHMvdGFibGUtY29uZmlndXJhdGlvbi5tb2RlbCc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTZFRhYmxlQ29uZmlndXJhdGlvblNlcnZpY2Uge1xyXG4gICNDT0xVTU5TID0ge1xyXG4gICAgU1VCSU5GT1JNQVRJT046ICdzZFN1YkluZm9ybWF0aW9uQWN0aW9uJyxcclxuICAgIENPTU1BTkQ6ICdzZENvbW1hbmQnLFxyXG4gICAgU0VMRUNUSU9OOiAnc2RTZWxlY3Rpb24nLFxyXG4gICAgR1JPVVA6ICdzZEdyb3VwJyxcclxuICB9O1xyXG4gICNwcmVmaXggPSAnYmQzNjRlMjgtZmU2Ny00OGI5LWE1MzctMWEzMDZmN2QxOTVjJztcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBASW5qZWN0KFRBQkxFX0NPTkZJRykgQE9wdGlvbmFsKCkgcHVibGljIGdyaWRNYXRlcmlhbENvbmZpZ3VyYXRpb246IElTZFRhYmxlQ29uZmlndXJhdGlvblxyXG4gICkgeyB9XHJcblxyXG4gICNnZXRTZXR0aW5nID0gKGdyaWRPcHRpb246IFNkVGFibGVPcHRpb24pOiBTZFNldHRpbmc8U2RUYWJsZUNvbmZpZ3VyYXRpb24+ID0+IHtcclxuICAgIGlmIChncmlkT3B0aW9uPy5rZXkpIHtcclxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGtleScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkVGFibGVDb25maWd1cmF0aW9uPihcclxuICAgICAgeyBwcmVmaXg6IHRoaXMuI3ByZWZpeCwga2V5OiBncmlkT3B0aW9uLmtleSB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgZGVmYXVsdDogdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKSxcclxuICAgICAgfVxyXG4gICAgKTtcclxuICB9O1xyXG5cclxuICBsb2FkQ29uZmlndXJhdGlvbiA9IChncmlkT3B0aW9uOiBTZFRhYmxlT3B0aW9uKSA9PiB7XHJcbiAgICBpZiAoIWdyaWRPcHRpb24/LmtleSkge1xyXG4gICAgICByZXR1cm4gdGhpcy4jZGVmYXVsdChncmlkT3B0aW9uKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHNldHRpbmcgPSB0aGlzLiNnZXRTZXR0aW5nKGdyaWRPcHRpb24pO1xyXG4gICAgcmV0dXJuIHNldHRpbmcuZ2V0KCk7XHJcbiAgfTtcclxuXHJcbiAgbG9hZENvbmZpZ3VyYXRpb25SZXN1bHQgPSAoZ3JpZE9wdGlvbjogU2RUYWJsZU9wdGlvbiwgY29uZmlndXJhdGlvbjogU2RUYWJsZUNvbmZpZ3VyYXRpb24pID0+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogU2RUYWJsZUNvbmZpZ3VyYXRpb25SZXN1bHQgPSB7XHJcbiAgICAgIGNvbHVtbjoge30sXHJcbiAgICAgIGZpeGVkQ29sdW1uOiB7fSxcclxuICAgICAgZmlyc3RDb2x1bW5zOiBbXSxcclxuICAgICAgc2Vjb25kQ29sdW1uczogW10sXHJcbiAgICAgIGZpcnN0SGVhZGVyczogW10sXHJcbiAgICAgIHNlY29uZEhlYWRlcnM6IFtdLFxyXG4gICAgICBkaXNwbGF5ZWRDb2x1bW5zOiBbXSxcclxuICAgICAgZGlzcGxheWVkRm9vdGVyczogW10sXHJcbiAgICAgIG11bHRpcGxlSGVhZGVyOiBmYWxzZSxcclxuICAgIH07XHJcbiAgICBjb25zdCB7IHNlbGVjdG9yLCBjb21tYW5kcywgZ3JvdXAgfSA9IGdyaWRPcHRpb24gfHwge307XHJcbiAgICBpZiAoc2VsZWN0b3I/LnZpc2libGUpIHtcclxuICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKHRoaXMuI0NPTFVNTlMuU0VMRUNUSU9OKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLlNFTEVDVElPTik7XHJcbiAgICB9XHJcbiAgICBpZiAoY29tbWFuZHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5DT01NQU5EKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLkNPTU1BTkQpO1xyXG4gICAgfVxyXG4gICAgaWYgKGdyb3VwPy5maWVsZHM/Lmxlbmd0aCkge1xyXG4gICAgICByZXN1bHQuZmlyc3RIZWFkZXJzLnB1c2godGhpcy4jQ09MVU1OUy5HUk9VUCk7XHJcbiAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2godGhpcy4jQ09MVU1OUy5HUk9VUCk7XHJcbiAgICB9XHJcbiAgICBjb25maWd1cmF0aW9uPy5jb2x1bW5zXHJcbiAgICAgID8uZmlsdGVyKGNvbCA9PiAhY29sLmludmlzaWJsZSlcclxuICAgICAgLmZvckVhY2goY29sID0+IHtcclxuICAgICAgICBjb25zdCBjb2x1bW4gPSBncmlkT3B0aW9uPy5jb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICBpZiAoY29sdW1uKSB7XHJcbiAgICAgICAgICByZXN1bHQuY29sdW1uW2NvbC5vcmlnaW4uZmllbGRdID0ge1xyXG4gICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBpZiAoY29sLmZpeGVkKSB7XHJcbiAgICAgICAgICAgIHJlc3VsdC5maXhlZENvbHVtbltjb2wub3JpZ2luLmZpZWxkXSA9IHtcclxuICAgICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgICAgd2lkdGg6IGNvbC53aWR0aCB8fCBjb2wub3JpZ2luLndpZHRoLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgcmVzdWx0LmZpcnN0Q29sdW1ucy5wdXNoKHtcclxuICAgICAgICAgICAgLi4uY29sdW1uLFxyXG4gICAgICAgICAgICB0aXRsZTogY29sLnRpdGxlIHx8IGNvbC5vcmlnaW4udGl0bGUsXHJcbiAgICAgICAgICAgIHdpZHRoOiBjb2wud2lkdGggfHwgY29sLm9yaWdpbi53aWR0aCxcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgcmVzdWx0LmZpcnN0SGVhZGVycy5wdXNoKGNvbC5vcmlnaW4uZmllbGQpO1xyXG4gICAgICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaChjb2wub3JpZ2luLmZpZWxkKTtcclxuICAgICAgICAgIGlmIChjb2x1bW4udHlwZSA9PT0gJ2NoaWxkcmVuJykge1xyXG4gICAgICAgICAgICBjb2x1bW4uY2hpbGRyZW4/LmZvckVhY2goY2hpbGRDb2x1bW4gPT4ge1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5zZWNvbmRDb2x1bW5zLnB1c2goY2hpbGRDb2x1bW4pO1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5zZWNvbmRIZWFkZXJzLnB1c2goY2hpbGRDb2x1bW4uZmllbGQpO1xyXG4gICAgICAgICAgICAgIHJlc3VsdC5kaXNwbGF5ZWRDb2x1bW5zLnB1c2goY2hpbGRDb2x1bW4uZmllbGQpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgaWYgKGdyaWRPcHRpb24uZXhwYW5kKSB7XHJcbiAgICAgIHJlc3VsdC5maXJzdEhlYWRlcnMucHVzaCh0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgICAgcmVzdWx0LmRpc3BsYXllZENvbHVtbnMucHVzaCh0aGlzLiNDT0xVTU5TLlNVQklORk9STUFUSU9OKTtcclxuICAgIH1cclxuICAgIHJlc3VsdC5tdWx0aXBsZUhlYWRlciA9IHJlc3VsdC5zZWNvbmRIZWFkZXJzLmxlbmd0aCA+IDA7XHJcbiAgICAvLyBTdWIgaW5mb21hdGlvbiBraMO0bmcgdGjhu4MgY8OzIGZvb3RlclxyXG4gICAgcmVzdWx0LmRpc3BsYXllZEZvb3RlcnMgPSByZXN1bHQuZGlzcGxheWVkQ29sdW1ucy5maWx0ZXIodmFsID0+IHZhbCAhPT0gdGhpcy4jQ09MVU1OUy5TVUJJTkZPUk1BVElPTik7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH07XHJcblxyXG4gIGluaXQgPSAoZ3JpZE9wdGlvbjogU2RUYWJsZU9wdGlvbikgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuI2dldFNldHRpbmcoZ3JpZE9wdGlvbik7XHJcbiAgfTtcclxuXHJcbiAgI2RlZmF1bHQgPSAoZ3JpZE9wdGlvbjogU2RUYWJsZU9wdGlvbik6IFNkVGFibGVDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbnM6IFNkQ29sdW1uQ29uZmlndXJhdGlvbltdID1cclxuICAgICAgZ3JpZE9wdGlvbj8uY29sdW1uc1xyXG4gICAgICAgID8uZmlsdGVyKGUgPT4gIWUuaGlkZGVuKVxyXG4gICAgICAgIC5tYXAoZSA9PiAoe1xyXG4gICAgICAgICAgb3JpZ2luOiB7XHJcbiAgICAgICAgICAgIGZpZWxkOiBlLmZpZWxkLFxyXG4gICAgICAgICAgICB0aXRsZTogZS50aXRsZSxcclxuICAgICAgICAgICAgd2lkdGg6IGUud2lkdGgsXHJcbiAgICAgICAgICAgIGludmlzaWJsZTogZS5pbnZpc2libGUsXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgaW52aXNpYmxlOiBlLmludmlzaWJsZSxcclxuICAgICAgICAgIGZpeGVkOiBmYWxzZSxcclxuICAgICAgICB9KSkgfHwgW107XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgfTtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export class SdTableQuickFilter {
2
2
  }
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWJsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VydmljZXMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLE9BQU8sa0JBQWtCO0NBVzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTZEZpbHRlck9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3RhYmxlLWNvbHVtbi5tb2RlbCc7XHJcblxyXG5leHBvcnQgY2xhc3MgU2RUYWJsZVF1aWNrRmlsdGVyIHtcclxuICBjb2RlOiBzdHJpbmc7XHJcbiAgY29sdW1uRmlsdGVyOiB7XHJcbiAgICBbZmllbGQ6IHN0cmluZ106IGFueTtcclxuICB9O1xyXG4gIGV4dGVybmFsRmlsdGVyOiB7XHJcbiAgICBbZmllbGQ6IHN0cmluZ106IGFueTtcclxuICB9O1xyXG4gIGZpbHRlckRlZjoge1xyXG4gICAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XHJcbiAgfTtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvbiB7XHJcbiAgLy8gc2VsZWN0ZWRRdWlja0ZpbHRlcjogc3RyaW5nO1xyXG4gIC8vIHF1aWNrRmlsdGVyczogU2RHcmlkTWF0ZXJpYWxRdWlja0ZpbHRlcltdO1xyXG5cclxuICBpbmxpbmVDb2x1bW46IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyAvLyDhuqhuIGhp4buHbiBmaWx0ZXIgY29sdW1uXHJcbiAgLy8gY29sdW1uRmlsdGVyPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgY29sdW1uXHJcblxyXG4gIGlubGluZUV4dGVybmFsOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgLy8g4bqobiBoaeG7h24gZmlsdGVyIGV4dGVybmFsXHJcbiAgLy8gZXh0ZXJuYWxGaWx0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBHacOhIHRy4buLIGZpbHRlciBleHRlcm5hbFxyXG5cclxuICBpbmxpbmVGaWx0ZXJEZWY6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+OyAvLyDhuqhuIGhp4buHbiBmaWx0ZXIgZGVmXHJcbiAgLy8gZmlsdGVyRGVmPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgZGVmXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RUYWJsZUZpbHRlclZhbHVlIHtcclxuICBjb2x1bW5PcGVyYXRvcj86IFJlY29yZDxzdHJpbmcsIFNkRmlsdGVyT3BlcmF0b3I+O1xyXG5cclxuICBjb2x1bW5GaWx0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBHacOhIHRy4buLIGZpbHRlciBjb2x1bW5cclxuXHJcbiAgZXh0ZXJuYWxGaWx0ZXI/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBHacOhIHRy4buLIGZpbHRlciBleHRlcm5hbFxyXG5cclxuICBmaWx0ZXJEZWY/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+OyAvLyBHacOhIHRy4buLIGZpbHRlciBkZWZcclxuXHJcbiAgbm90UmVsb2FkPzogYm9vbGVhbjsgLy8gxJDhu4Mgbmjhuq1uIGJp4bq/dCBsw6AgY2jhu4kgc2V0IGdpw6EgdHLhu4ssIGtow7RuZyB0cmlnZ2VyIGNoYW5nZVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkVGFibGVGaWx0ZXJSZXF1ZXN0IHtcclxuICBjb2x1bW5PcGVyYXRvcjogUmVjb3JkPHN0cmluZywgU2RGaWx0ZXJPcGVyYXRvcj47XHJcbiAgcmF3Q29sdW1uRmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIHJhd0V4dGVybmFsRmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG4gIHJhd0ZpbHRlckRlZjogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICBwYWdlTnVtYmVyOiBudW1iZXI7XHJcbiAgcGFnZVNpemU6IG51bWJlcjtcclxuICBvcmRlckJ5OiBzdHJpbmc7XHJcbiAgb3JkZXJEaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIHwgJyc7XHJcbiAgaXNFeHBvcnRlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RUYWJsZU9wdGlvbkZpbHRlciB7XHJcbiAga2V5Pzogc3RyaW5nO1xyXG4gIGNhY2hlRmlsdGVyPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgZXh0ZXJuYWxGaWx0ZXJzPzogU2RUYWJsZUV4dGVybmFsRmlsdGVyW107XHJcbiAgaW5saW5lQ29sdW1uPzogYm9vbGVhbjtcclxuICBzb3J0cz86IHN0cmluZ1tdO1xyXG4gIGVuYWJsZUNvbGxhcHNlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGRlY2xhcmUgdHlwZSBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXIgPVxyXG4gIHwgVGV4dEZpbHRlclxyXG4gIHwgRGF0ZUZpbHRlclxyXG4gIHwgRGF0ZVRpbWVGaWx0ZXJcclxuICB8IERhdGVSYW5nZUZpbHRlclxyXG4gIHwgTnVtYmVyRmlsdGVyXHJcbiAgfCBWYWx1ZXNGaWx0ZXJcclxuICB8IEJvb2xGaWx0ZXI7XHJcblxyXG5pbnRlcmZhY2UgQmFzZUZpbHRlciB7XHJcbiAgZmllbGQ6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG4gIGRlZmF1bHRTaG93aW5nPzogYm9vbGVhbjtcclxuICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmludGVyZmFjZSBUZXh0RmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ3N0cmluZyc7XHJcbiAgZGVmYXVsdD86IHN0cmluZztcclxufVxyXG5cclxuaW50ZXJmYWNlIERhdGVGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnZGF0ZSc7XHJcbiAgZGVmYXVsdD86IERhdGUgfCBzdHJpbmc7XHJcbiAgbWluRGF0ZT86IHN0cmluZyB8IERhdGU7XHJcbiAgbWF4RGF0ZT86IHN0cmluZyB8IERhdGU7XHJcbn1cclxuXHJcbmludGVyZmFjZSBEYXRlVGltZUZpbHRlciBleHRlbmRzIEJhc2VGaWx0ZXIge1xyXG4gIHR5cGU6ICdkYXRldGltZSc7XHJcbiAgZGVmYXVsdD86IERhdGUgfCBzdHJpbmc7XHJcbiAgbWluRGF0ZT86IHN0cmluZyB8IERhdGU7XHJcbiAgbWF4RGF0ZT86IHN0cmluZyB8IERhdGU7XHJcbn1cclxuXHJcbmludGVyZmFjZSBEYXRlUmFuZ2VGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnZGF0ZXJhbmdlJztcclxuICBlbmFibGVUaW1lPzogYm9vbGVhbjtcclxuICBtaW5EYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxuICBtYXhEYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxuICBkZWZhdWx0Pzoge1xyXG4gICAgZnJvbT86IERhdGUgfCBzdHJpbmc7XHJcbiAgICB0bz86IERhdGUgfCBzdHJpbmc7XHJcbiAgfTtcclxufVxyXG5cclxuaW50ZXJmYWNlIE51bWJlckZpbHRlciBleHRlbmRzIEJhc2VGaWx0ZXIge1xyXG4gIHR5cGU6ICdudW1iZXInO1xyXG4gIGRlZmF1bHQ/OiBudW1iZXI7XHJcbn1cclxuXHJcbmludGVyZmFjZSBWYWx1ZXNGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAndmFsdWVzJztcclxuICBvcHRpb24/OiB7XHJcbiAgICBpdGVtczogYW55W10gfCAoKHNlYXJjaFRleHQ/OiBzdHJpbmcpID0+IFByb21pc2U8YW55W10+KTtcclxuICAgIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICAgIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gICAgc2VsZWN0aW9uPzogJ0FVVE9DT01QTEVURScgfCAnTVVMVElQTEUnIHwgJ01VTFRJUExFQVVUT0NPTVBMRVRFJztcclxuICAgIHNlbGVjdEFsbD86IGJvb2xlYW47XHJcbiAgfTtcclxuICBkZWZhdWx0Pzogc3RyaW5nIHwgc3RyaW5nW107XHJcbn1cclxuXHJcbmludGVyZmFjZSBCb29sRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ2Jvb2wnO1xyXG4gIG9wdGlvbj86IHtcclxuICAgIGRpc3BsYXlPblRydWU/OiBzdHJpbmc7XHJcbiAgICBkaXNwbGF5T25GYWxzZT86IHN0cmluZztcclxuICB9O1xyXG4gIGRlZmF1bHQ/OiBib29sZWFuO1xyXG59XHJcblxyXG4vLyBleHBvcnQgaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsRmlsdGVyUmVnaXN0ZXIge1xyXG4vLyAgIGdldDogKCkgPT4gU2RHcmlkTWF0ZXJpYWxGaWx0ZXJDb25maWd1cmF0aW9uO1xyXG4vLyAgIHNldDogKGNvbmZpZ3VyYXRpb246IFBhcnRpYWw8U2RHcmlkTWF0ZXJpYWxGaWx0ZXJDb25maWd1cmF0aW9uPikgPT4gU2RHcmlkTWF0ZXJpYWxGaWx0ZXJDb25maWd1cmF0aW9uO1xyXG4vLyAgIHJlbW92ZTogKCkgPT4gdm9pZDtcclxuLy8gICBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8U2RHcmlkTWF0ZXJpYWxGaWx0ZXJDb25maWd1cmF0aW9uPjtcclxuLy8gICBvYnNlcnZlcjogT2JzZXJ2YWJsZTxTZEdyaWRNYXRlcmlhbEZpbHRlckNvbmZpZ3VyYXRpb24+O1xyXG4vLyB9XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkR3JpZE1hdGVyaWFsRmlsdGVyUmVnaXN0ZXIge1xyXG4gIGNvbmZpZ3VyYXRpb246IHtcclxuICAgIGdldDogKCkgPT4gU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb247XHJcbiAgICBzZXQ6IChjb25maWd1cmF0aW9uOiBQYXJ0aWFsPFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uPikgPT4gU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb247XHJcbiAgICByZW1vdmU6ICgpID0+IHZvaWQ7XHJcbiAgICBvYnNlcnZlcjogT2JzZXJ2YWJsZTxTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvbj47XHJcbiAgfTtcclxuICB2YWx1ZToge1xyXG4gICAgZ2V0OiAoKSA9PiBTZFRhYmxlRmlsdGVyVmFsdWU7XHJcbiAgICBzZXQ6ICh2YWx1ZTogUGFydGlhbDxTZFRhYmxlRmlsdGVyVmFsdWU+KSA9PiBTZFRhYmxlRmlsdGVyVmFsdWU7XHJcbiAgICByZW1vdmU6ICgpID0+IHZvaWQ7XHJcbiAgICBvYnNlcnZlcjogT2JzZXJ2YWJsZTxTZFRhYmxlRmlsdGVyVmFsdWU+O1xyXG4gIH07XHJcbn1cclxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL3VzZXIvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvdGFibGUvIiwic291cmNlcyI6WyJzcmMvbGliL3NlcnZpY2VzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLGtCQUFrQjtDQVc5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU2RGaWx0ZXJPcGVyYXRvciB9IGZyb20gJy4uLy4uL21vZGVscy90YWJsZS1jb2x1bW4ubW9kZWwnO1xyXG5cclxuZXhwb3J0IGNsYXNzIFNkVGFibGVRdWlja0ZpbHRlciB7XHJcbiAgY29kZTogc3RyaW5nO1xyXG4gIGNvbHVtbkZpbHRlcjoge1xyXG4gICAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XHJcbiAgfTtcclxuICBleHRlcm5hbEZpbHRlcjoge1xyXG4gICAgW2ZpZWxkOiBzdHJpbmddOiBhbnk7XHJcbiAgfTtcclxuICBmaWx0ZXJEZWY6IHtcclxuICAgIFtmaWVsZDogc3RyaW5nXTogYW55O1xyXG4gIH07XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24ge1xyXG4gIC8vIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IHN0cmluZztcclxuICAvLyBxdWlja0ZpbHRlcnM6IFNkR3JpZE1hdGVyaWFsUXVpY2tGaWx0ZXJbXTtcclxuXHJcbiAgaW5saW5lQ29sdW1uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgLy8g4bqobiBoaeG7h24gZmlsdGVyIGNvbHVtblxyXG4gIC8vIGNvbHVtbkZpbHRlcj86IFJlY29yZDxzdHJpbmcsIGFueT47IC8vIEdpw6EgdHLhu4sgZmlsdGVyIGNvbHVtblxyXG5cclxuICBpbmxpbmVFeHRlcm5hbDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj47IC8vIOG6qG4gaGnhu4duIGZpbHRlciBleHRlcm5hbFxyXG4gIC8vIGV4dGVybmFsRmlsdGVyPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgZXh0ZXJuYWxcclxuXHJcbiAgaW5saW5lRmlsdGVyRGVmOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjsgLy8g4bqobiBoaeG7h24gZmlsdGVyIGRlZlxyXG4gIC8vIGZpbHRlckRlZj86IFJlY29yZDxzdHJpbmcsIGFueT47IC8vIEdpw6EgdHLhu4sgZmlsdGVyIGRlZlxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkVGFibGVGaWx0ZXJWYWx1ZSB7XHJcbiAgY29sdW1uT3BlcmF0b3I/OiBSZWNvcmQ8c3RyaW5nLCBTZEZpbHRlck9wZXJhdG9yPjtcclxuXHJcbiAgY29sdW1uRmlsdGVyPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgY29sdW1uXHJcblxyXG4gIGV4dGVybmFsRmlsdGVyPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgZXh0ZXJuYWxcclxuXHJcbiAgZmlsdGVyRGVmPzogUmVjb3JkPHN0cmluZywgYW55PjsgLy8gR2nDoSB0cuG7iyBmaWx0ZXIgZGVmXHJcblxyXG4gIG5vdFJlbG9hZD86IGJvb2xlYW47IC8vIMSQ4buDIG5o4bqtbiBiaeG6v3QgbMOgIGNo4buJIHNldCBnacOhIHRy4buLLCBraMO0bmcgdHJpZ2dlciBjaGFuZ2VcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBTZFRhYmxlRmlsdGVyUmVxdWVzdCB7XHJcbiAgY29sdW1uT3BlcmF0b3I6IFJlY29yZDxzdHJpbmcsIFNkRmlsdGVyT3BlcmF0b3I+O1xyXG4gIHJhd0NvbHVtbkZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICByYXdFeHRlcm5hbEZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PjtcclxuICByYXdGaWx0ZXJEZWY6IFJlY29yZDxzdHJpbmcsIGFueT47XHJcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xyXG4gIHBhZ2VTaXplOiBudW1iZXI7XHJcbiAgb3JkZXJCeTogc3RyaW5nO1xyXG4gIG9yZGVyRGlyZWN0aW9uOiAnYXNjJyB8ICdkZXNjJyB8ICcnO1xyXG4gIGlzRXhwb3J0ZWQ/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNkVGFibGVPcHRpb25GaWx0ZXIge1xyXG4gIGtleT86IHN0cmluZztcclxuICBjYWNoZUZpbHRlcj86IGJvb2xlYW47XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIGV4dGVybmFsRmlsdGVycz86IFNkVGFibGVFeHRlcm5hbEZpbHRlcltdO1xyXG4gIHNvcnRzPzogc3RyaW5nW107XHJcbiAgZW5hYmxlQ29sbGFwc2U/OiBib29sZWFuO1xyXG59XHJcblxyXG5leHBvcnQgZGVjbGFyZSB0eXBlIFNkVGFibGVFeHRlcm5hbEZpbHRlciA9XHJcbiAgfCBUZXh0RmlsdGVyXHJcbiAgfCBEYXRlRmlsdGVyXHJcbiAgfCBEYXRlVGltZUZpbHRlclxyXG4gIHwgRGF0ZVJhbmdlRmlsdGVyXHJcbiAgfCBOdW1iZXJGaWx0ZXJcclxuICB8IFZhbHVlc0ZpbHRlclxyXG4gIHwgQm9vbEZpbHRlcjtcclxuXHJcbmludGVyZmFjZSBCYXNlRmlsdGVyIHtcclxuICBmaWVsZDogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgZGVmYXVsdFNob3dpbmc/OiBib29sZWFuO1xyXG4gIGRpc2FibGVkPzogYm9vbGVhbjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFRleHRGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnc3RyaW5nJztcclxuICBkZWZhdWx0Pzogc3RyaW5nO1xyXG59XHJcblxyXG5pbnRlcmZhY2UgRGF0ZUZpbHRlciBleHRlbmRzIEJhc2VGaWx0ZXIge1xyXG4gIHR5cGU6ICdkYXRlJztcclxuICBkZWZhdWx0PzogRGF0ZSB8IHN0cmluZztcclxuICBtaW5EYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxuICBtYXhEYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIERhdGVUaW1lRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ2RhdGV0aW1lJztcclxuICBkZWZhdWx0PzogRGF0ZSB8IHN0cmluZztcclxuICBtaW5EYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxuICBtYXhEYXRlPzogc3RyaW5nIHwgRGF0ZTtcclxufVxyXG5cclxuaW50ZXJmYWNlIERhdGVSYW5nZUZpbHRlciBleHRlbmRzIEJhc2VGaWx0ZXIge1xyXG4gIHR5cGU6ICdkYXRlcmFuZ2UnO1xyXG4gIGVuYWJsZVRpbWU/OiBib29sZWFuO1xyXG4gIG1pbkRhdGU/OiBzdHJpbmcgfCBEYXRlO1xyXG4gIG1heERhdGU/OiBzdHJpbmcgfCBEYXRlO1xyXG4gIGRlZmF1bHQ/OiB7XHJcbiAgICBmcm9tPzogRGF0ZSB8IHN0cmluZztcclxuICAgIHRvPzogRGF0ZSB8IHN0cmluZztcclxuICB9O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgTnVtYmVyRmlsdGVyIGV4dGVuZHMgQmFzZUZpbHRlciB7XHJcbiAgdHlwZTogJ251bWJlcic7XHJcbiAgZGVmYXVsdD86IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIFZhbHVlc0ZpbHRlciBleHRlbmRzIEJhc2VGaWx0ZXIge1xyXG4gIHR5cGU6ICd2YWx1ZXMnO1xyXG4gIG9wdGlvbj86IHtcclxuICAgIGl0ZW1zOiBhbnlbXSB8ICgoc2VhcmNoVGV4dD86IHN0cmluZykgPT4gUHJvbWlzZTxhbnlbXT4pO1xyXG4gICAgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gICAgZGlzcGxheUZpZWxkOiBzdHJpbmc7XHJcbiAgICBzZWxlY3Rpb24/OiAnQVVUT0NPTVBMRVRFJyB8ICdNVUxUSVBMRScgfCAnTVVMVElQTEVBVVRPQ09NUExFVEUnO1xyXG4gICAgc2VsZWN0QWxsPzogYm9vbGVhbjtcclxuICB9O1xyXG4gIGRlZmF1bHQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxufVxyXG5cclxuaW50ZXJmYWNlIEJvb2xGaWx0ZXIgZXh0ZW5kcyBCYXNlRmlsdGVyIHtcclxuICB0eXBlOiAnYm9vbCc7XHJcbiAgb3B0aW9uPzoge1xyXG4gICAgZGlzcGxheU9uVHJ1ZT86IHN0cmluZztcclxuICAgIGRpc3BsYXlPbkZhbHNlPzogc3RyaW5nO1xyXG4gIH07XHJcbiAgZGVmYXVsdD86IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2RUYWJsZUZpbHRlclJlZ2lzdGVyIHtcclxuICBjb25maWd1cmF0aW9uOiB7XHJcbiAgICBnZXQ6ICgpID0+IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uO1xyXG4gICAgc2V0OiAoY29uZmlndXJhdGlvbjogUGFydGlhbDxTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvbj4pID0+IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uO1xyXG4gICAgcmVtb3ZlOiAoKSA9PiB2b2lkO1xyXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmFibGU8U2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24+O1xyXG4gIH07XHJcbiAgdmFsdWU6IHtcclxuICAgIGdldDogKCkgPT4gU2RUYWJsZUZpbHRlclZhbHVlO1xyXG4gICAgc2V0OiAodmFsdWU6IFBhcnRpYWw8U2RUYWJsZUZpbHRlclZhbHVlPikgPT4gU2RUYWJsZUZpbHRlclZhbHVlO1xyXG4gICAgcmVtb3ZlOiAoKSA9PiB2b2lkO1xyXG4gICAgb2JzZXJ2ZXI6IE9ic2VydmFibGU8U2RUYWJsZUZpbHRlclZhbHVlPjtcclxuICB9O1xyXG59XHJcbiJdfQ==
@@ -226,4 +226,4 @@ SdTableFilterService.decorators = [
226
226
  SdTableFilterService.ctorParameters = () => [
227
227
  { type: SdSettingService }
228
228
  ];
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvbmdoaWF0dDE1X29uZW1vdW50L0RvY3VtZW50cy9saWItY29yZS11aS9wcm9qZWN0cy9zZC1jb3JlL3RhYmxlLyIsInNvdXJjZXMiOlsic3JjL2xpYi9zZXJ2aWNlcy90YWJsZS1maWx0ZXIvdGFibGUtZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUMvQixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQVU1RCxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2hELE1BQU0sT0FBTyxvQkFBb0I7SUFJL0IsWUFBb0IsY0FBZ0M7UUFBaEMsbUJBQWMsR0FBZCxjQUFjLENBQWtCO1FBSHBELCtCQUF1QiwyQkFBMkIsRUFBQztRQUNuRCx1QkFBZSxtQkFBbUIsRUFBQztRQUNuQyxpQkFBdUQsRUFBRSxFQUFDO1FBRTFELGFBQVEsR0FBRyxDQUNULE1BQTJCLEVBQzNCLElBS0MsRUFDRCxFQUFFO1lBQ0YsSUFBSSxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBRXpCLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxHQUFHLElBQUksQ0FBQztZQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLEVBQUU7Z0JBQ0YsT0FBTyxFQUFFLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssTUFBSyxFQUFFO2dCQUNsRSxlQUFlLEVBQUUsQ0FBQSxl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LENBQUMsS0FBSywyQ0FBRyxJQUFJLHlDQUFJLElBQUksQ0FBQyxPQUFPLDBDQUFFLElBQUk7d0JBQ3JFLEVBQUUsb0JBQUUsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsMENBQUcsSUFBSSxDQUFDLEtBQUssMkNBQUcsRUFBRSx5Q0FBSSxJQUFJLENBQUMsT0FBTywwQ0FBRSxFQUFFO3FCQUNoRSxDQUFDO2lCQUNIO3FCQUFNO29CQUNMLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLGNBQWMsMENBQUcsSUFBSSxDQUFDLEtBQUssb0NBQUssSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE9BQU8sQ0FBQztpQkFDbkY7YUFDRjtZQUNELGFBQWE7WUFDYixLQUFLLE1BQU0sSUFBSSxJQUFJLFVBQVUsSUFBSSxFQUFFLEVBQUU7Z0JBQ25DLFNBQVMsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsU0FBUywwQ0FBRyxJQUFJLENBQUMsbUJBQW1CLG9DQUFLLFNBQVMsQ0FBQzthQUNqRztZQUNELE9BQU87Z0JBQ0wsZ0JBQWdCO2dCQUNoQixZQUFZO2dCQUNaLGtCQUFrQjtnQkFDbEIsY0FBYztnQkFDZCxhQUFhO2dCQUNiLFNBQVM7YUFDVixDQUFDO1FBQ0osQ0FBQyxFQUFDO0lBdlBxRCxDQUFDOzs7O1lBTHpELFVBQVU7OztZQVpGLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGhhc2ggZnJvbSAnb2JqZWN0LWhhc2gnO1xyXG5pbXBvcnQgeyBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHtcclxuICBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXIsXHJcbiAgU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24sXHJcbiAgU2RUYWJsZU9wdGlvbkZpbHRlcixcclxuICBTZEdyaWRNYXRlcmlhbEZpbHRlclJlZ2lzdGVyLFxyXG4gIFNkVGFibGVGaWx0ZXJWYWx1ZSxcclxufSBmcm9tICcuL3RhYmxlLWZpbHRlci5tb2RlbCc7XHJcbmltcG9ydCB7IFNkVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtY29sdW1uLm1vZGVsJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2QtbWF0ZXJpYWwtZmlsdGVyLWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNkVGFibGVGaWx0ZXJTZXJ2aWNlIHtcclxuICAjZmlsdGVyQ29uZmlndXJhdGlvbiA9ICdHUklELUZJTFRFUi1DT05GSUdVUkFUSU9OJztcclxuICAjZmlsdGVyVmFsdWUgPSAnR1JJRC1GSUxURVItVkFMVUUnO1xyXG4gICNjYWNoZTogUmVjb3JkPHN0cmluZywgU2RHcmlkTWF0ZXJpYWxGaWx0ZXJSZWdpc3Rlcj4gPSB7fTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZFNldHRpbmdTZXJ2aWNlKSB7fVxyXG4gIHJlZ2lzdGVyID0gKFxyXG4gICAgZmlsdGVyOiBTZFRhYmxlT3B0aW9uRmlsdGVyLFxyXG4gICAgYXJnczoge1xyXG4gICAgICBpZDogc3RyaW5nO1xyXG4gICAgICBjb2x1bW5zOiBTZFRhYmxlQ29sdW1uW107XHJcbiAgICAgIGV4dGVybmFsRmlsdGVyczogU2RUYWJsZUV4dGVybmFsRmlsdGVyW107XHJcbiAgICAgIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXTtcclxuICAgIH1cclxuICApID0+IHtcclxuICAgIGxldCBjYWNoZVNlc3Npb24gPSBmYWxzZTtcclxuICAgIFxyXG4gICAgY29uc3QgeyBpZCwgY29sdW1ucywgZXh0ZXJuYWxGaWx0ZXJzIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgdGVtcEtleSA9IGhhc2goe1xyXG4gICAgICBpZCxcclxuICAgICAgY29sdW1uczogY29sdW1ucz8ubWFwKGUgPT4gZS5maWVsZCkuZmlsdGVyKGZpZWxkID0+ICEhZmllbGQpIHx8IFtdLFxyXG4gICAgICBleHRlcm5hbEZpbHRlcnM6IGV4dGVybmFsRmlsdGVycz8ubWFwKGUgPT4gZS5maWVsZCkuZmlsdGVyKGZpZWxkID0+ICEhZmllbGQpIHx8IFtdLFxyXG4gICAgfSk7XHJcbiAgICBjb25zdCBrZXkgPSBmaWx0ZXI/LmtleSB8fCB0ZW1wS2V5O1xyXG4gICAgaWYgKCFmaWx0ZXI/LmtleSkge1xyXG4gICAgICBjYWNoZVNlc3Npb24gPSB0cnVlOyAvLyBO4bq/dSBraMO0bmcgY8OzIGtleSB0aMOsIGNo4buJIGzGsHUgdGhlbyBzZXNzaW9uXHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMuI2NhY2hlW2tleV0pIHtcclxuICAgICAgLy8gU2V0dGluZyBj4bunYSBmaWx0ZXIgY29uZmlndXJhdGlvblxyXG4gICAgICBjb25zdCBmaWx0ZXJDb25maWd1cmF0aW9uID0gdGhpcy5zZXR0aW5nU2VydmljZS5jcmVhdGU8U2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24+KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByZWZpeDogdGhpcy4jZmlsdGVyQ29uZmlndXJhdGlvbixcclxuICAgICAgICAgIGtleSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRlZmF1bHQ6IHRoaXMuI2RlZmF1bHRDb25maWd1cmF0aW9uKGFyZ3MpLFxyXG4gICAgICAgICAgdHlwZTogY2FjaGVTZXNzaW9uID8gJ3Nlc3Npb24nIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgLy8gTOG6pXkgZ2nDoSB0cuG7iyBjb25maWd1cmF0aW9uIG1lcmdlIHbhu5tpIGdpw6EgdHLhu4sgZGVmYXVsdFNob3dpbmcgY+G7p2EgYXJncyBu4bq/dSBuaMawIGFyZ3MgY8OzIHRoYXkgxJHhu5VpXHJcbiAgICAgIGZpbHRlckNvbmZpZ3VyYXRpb24uc2V0KHRoaXMuI2luaXRDb25maWd1cmF0aW9uKGFyZ3MsIGZpbHRlckNvbmZpZ3VyYXRpb24uZ2V0KCkpKTtcclxuICAgICAgLy8gU2V0dGluZyBj4bunYSBmaWx0ZXIgdmFsdWVcclxuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZFRhYmxlRmlsdGVyVmFsdWU+KFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByZWZpeDogdGhpcy4jZmlsdGVyVmFsdWUsXHJcbiAgICAgICAgICBrZXk6ICFmaWx0ZXI/LmNhY2hlRmlsdGVyID8gdGVtcEtleSA6IGtleSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIGRlZmF1bHQ6IHRoaXMuI2RlZmF1bHRWYWx1ZShhcmdzKSxcclxuICAgICAgICAgIHR5cGU6IGNhY2hlU2Vzc2lvbiB8fCAhZmlsdGVyPy5jYWNoZUZpbHRlciA/ICdzZXNzaW9uJyA6IHVuZGVmaW5lZCxcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICAgIC8vIEzhuqV5IGdpw6EgdHLhu4sgdmFsdWUgbWVyZ2UgduG7m2kgZ2nDoSB0cuG7iyBkZWZhdWx0IGPhu6dhIGFyZ3MgbuG6v3UgbmjGsCBhcmdzIGPDsyB0aGF5IMSR4buVaVxyXG4gICAgICBmaWx0ZXJWYWx1ZS5zZXQodGhpcy4jaW5pdFZhbHVlKGFyZ3MsIGZpbHRlclZhbHVlLmdldCgpKSk7XHJcbiAgICAgIHRoaXMuI2NhY2hlW2tleV0gPSB7XHJcbiAgICAgICAgY29uZmlndXJhdGlvbjoge1xyXG4gICAgICAgICAgZ2V0OiAoKTogU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24gPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyQ29uZmlndXJhdGlvbi5nZXQoKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzZXQ6IChjb25maWd1cmF0aW9uOiBQYXJ0aWFsPFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uPik6IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uID0+IHtcclxuICAgICAgICAgICAgY29uc3QgeyBpbmxpbmVDb2x1bW4sIGlubGluZUV4dGVybmFsLCBpbmxpbmVGaWx0ZXJEZWYgfSA9IGNvbmZpZ3VyYXRpb247XHJcbiAgICAgICAgICAgIGZpbHRlckNvbmZpZ3VyYXRpb24uc2V0KHtcclxuICAgICAgICAgICAgICBpbmxpbmVDb2x1bW4sXHJcbiAgICAgICAgICAgICAgaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgICAgICAgICAgaW5saW5lRmlsdGVyRGVmLFxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICBpbmxpbmVDb2x1bW4sXHJcbiAgICAgICAgICAgICAgaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgICAgICAgICAgaW5saW5lRmlsdGVyRGVmLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHJlbW92ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICBmaWx0ZXJDb25maWd1cmF0aW9uLnNldCh0aGlzLiNkZWZhdWx0Q29uZmlndXJhdGlvbihhcmdzKSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb2JzZXJ2ZXI6IGZpbHRlckNvbmZpZ3VyYXRpb24ub2JzZXJ2ZXIucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKGZpbHRlckNvbmZpZ3VyYXRpb24uZ2V0KCkpLFxyXG4gICAgICAgICAgICAvLyBT4butIGThu6VuZyBt4bq3YyDEkeG7i25oIG7hur91IGLhu4sgcmVzZXRcclxuICAgICAgICAgICAgbWFwKGNvbmZpZ3VyYXRpb24gPT4gY29uZmlndXJhdGlvbiB8fCB0aGlzLiNkZWZhdWx0Q29uZmlndXJhdGlvbihhcmdzKSlcclxuICAgICAgICAgICksXHJcbiAgICAgICAgfSxcclxuICAgICAgICB2YWx1ZToge1xyXG4gICAgICAgICAgZ2V0OiAoKTogU2RUYWJsZUZpbHRlclZhbHVlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIGZpbHRlclZhbHVlLmdldCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNldDogKHZhbHVlOiBQYXJ0aWFsPFNkVGFibGVGaWx0ZXJWYWx1ZT4pOiBTZFRhYmxlRmlsdGVyVmFsdWUgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModmFsdWUgfHwge30pO1xyXG4gICAgICAgICAgICBjb25zdCBjdXJyZW50ID0gZmlsdGVyVmFsdWUuZ2V0KCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHsgY29sdW1uT3BlcmF0b3IsIGNvbHVtbkZpbHRlciwgZXh0ZXJuYWxGaWx0ZXIsIGZpbHRlckRlZiwgbm90UmVsb2FkIH0gPSBjdXJyZW50O1xyXG4gICAgICAgICAgICBjb25zdCB1cGRhdGVkRmlsdGVyID0ge1xyXG4gICAgICAgICAgICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgICAgICAgICAgICBjb2x1bW5PcGVyYXRvcjoga2V5cy5pbmNsdWRlcygnY29sdW1uT3BlcmF0b3InKSA/IHZhbHVlPy5jb2x1bW5PcGVyYXRvciB8fCB7fSA6IGNvbHVtbk9wZXJhdG9yLFxyXG4gICAgICAgICAgICAgIGNvbHVtbkZpbHRlcjoga2V5cy5pbmNsdWRlcygnY29sdW1uRmlsdGVyJykgPyB2YWx1ZT8uY29sdW1uRmlsdGVyIHx8IHt9IDogY29sdW1uRmlsdGVyLFxyXG4gICAgICAgICAgICAgIC8vIEZpbHRlciBleHRlcm5hbFxyXG4gICAgICAgICAgICAgIGV4dGVybmFsRmlsdGVyOiBrZXlzLmluY2x1ZGVzKCdleHRlcm5hbEZpbHRlcicpID8gdmFsdWU/LmV4dGVybmFsRmlsdGVyIHx8IHt9IDogZXh0ZXJuYWxGaWx0ZXIsXHJcbiAgICAgICAgICAgICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgICAgICAgICAgIGZpbHRlckRlZjoga2V5cy5pbmNsdWRlcygnZmlsdGVyRGVmJykgPyB2YWx1ZT8uZmlsdGVyRGVmIHx8IHt9IDogZmlsdGVyRGVmLFxyXG4gICAgICAgICAgICAgIC8vIEZvcmNlXHJcbiAgICAgICAgICAgICAgbm90UmVsb2FkOiAhIW5vdFJlbG9hZCxcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZmlsdGVyVmFsdWUuc2V0KHVwZGF0ZWRGaWx0ZXIpO1xyXG4gICAgICAgICAgICByZXR1cm4gdXBkYXRlZEZpbHRlcjtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICByZW1vdmU6ICgpID0+IHtcclxuICAgICAgICAgICAgZmlsdGVyVmFsdWUuc2V0KHRoaXMuI2RlZmF1bHRWYWx1ZShhcmdzKSk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgb2JzZXJ2ZXI6IGZpbHRlclZhbHVlLm9ic2VydmVyLnBpcGUoXHJcbiAgICAgICAgICAgIHN0YXJ0V2l0aChmaWx0ZXJWYWx1ZS5nZXQoKSksXHJcbiAgICAgICAgICAgIC8vIFPhu60gZOG7pW5nIG3hurdjIMSR4buLbmggbuG6v3UgYuG7iyByZXNldFxyXG4gICAgICAgICAgICBtYXAodmFsdWUgPT4gdmFsdWUgfHwgdGhpcy4jZGVmYXVsdFZhbHVlKGFyZ3MpKVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuI2NhY2hlW2tleV07XHJcbiAgfTtcclxuXHJcbiAgI2RlZmF1bHRDb25maWd1cmF0aW9uID0gKGFyZ3M6IHtcclxuICAgIGNvbHVtbnM6IFNkVGFibGVDb2x1bW5bXTtcclxuICAgIGV4dGVybmFsRmlsdGVyczogU2RUYWJsZUV4dGVybmFsRmlsdGVyW107XHJcbiAgICBmaWx0ZXJEZWZzOiBTZE1hdGVyaWFsRmlsdGVyRGVmRGlyZWN0aXZlW107XHJcbiAgfSk6IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IHsgY29sdW1ucywgZXh0ZXJuYWxGaWx0ZXJzLCBmaWx0ZXJEZWZzIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgaW5saW5lQ29sdW1uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gICAgY29uc3QgaW5saW5lRXh0ZXJuYWw6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICBjb25zdCBpbmxpbmVGaWx0ZXJEZWY6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1ucyB8fCBbXSkge1xyXG4gICAgICBpbmxpbmVDb2x1bW5baXRlbS5maWVsZF0gPSBpdGVtPy5maWx0ZXI/LmRlZmF1bHRTaG93aW5nO1xyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXh0ZXJuYWxGaWx0ZXJzIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUV4dGVybmFsW2l0ZW0uZmllbGRdID0gaXRlbT8uZGVmYXVsdFNob3dpbmc7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZmlsdGVyRGVmcyB8fCBbXSkge1xyXG4gICAgICBpbmxpbmVGaWx0ZXJEZWZbaXRlbS5zZE1hdGVyaWFsRmlsdGVyRGVmXSA9IGl0ZW0/LmRlZmF1bHRTaG93aW5nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLy8gRmlsdGVyIGNvbHVtblxyXG4gICAgICBpbmxpbmVDb2x1bW4sXHJcbiAgICAgIC8vIEZpbHRlciBleHRlcm5hbFxyXG4gICAgICBpbmxpbmVFeHRlcm5hbCxcclxuICAgICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgICBpbmxpbmVGaWx0ZXJEZWYsXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gICNkZWZhdWx0VmFsdWUgPSAoYXJnczoge1xyXG4gICAgY29sdW1uczogU2RUYWJsZUNvbHVtbltdO1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzOiBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXJbXTtcclxuICAgIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXTtcclxuICB9KTogU2RUYWJsZUZpbHRlclZhbHVlID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbkZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgZXh0ZXJuYWxGaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgIGNvbnN0IGZpbHRlckRlZjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBleHRlcm5hbEZpbHRlcnMsIGZpbHRlckRlZnMgfSA9IGFyZ3M7XHJcbiAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1ucyB8fCBbXSkge1xyXG4gICAgICBjb2x1bW5GaWx0ZXJbaXRlbS5maWVsZF0gPSBpdGVtPy5maWx0ZXI/LmRlZmF1bHQ7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBleHRlcm5hbEZpbHRlcnMgfHwgW10pIHtcclxuICAgICAgZXh0ZXJuYWxGaWx0ZXJbaXRlbS5maWVsZF0gPSBpdGVtPy5kZWZhdWx0O1xyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGZpbHRlckRlZnMgfHwgW10pIHtcclxuICAgICAgZmlsdGVyRGVmW2l0ZW0uc2RNYXRlcmlhbEZpbHRlckRlZl0gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICAgIGNvbHVtbkZpbHRlcixcclxuICAgICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICAgIGV4dGVybmFsRmlsdGVyLFxyXG4gICAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICAgIGZpbHRlckRlZixcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgI2luaXRDb25maWd1cmF0aW9uID0gKFxyXG4gICAgYXJnczoge1xyXG4gICAgICBjb2x1bW5zOiBTZFRhYmxlQ29sdW1uW107XHJcbiAgICAgIGV4dGVybmFsRmlsdGVyczogU2RUYWJsZUV4dGVybmFsRmlsdGVyW107XHJcbiAgICAgIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXTtcclxuICAgIH0sXHJcbiAgICBjb25maWd1cmF0aW9uOiBTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvblxyXG4gICk6IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uID0+IHtcclxuICAgIGNvbnN0IHsgY29sdW1ucywgZXh0ZXJuYWxGaWx0ZXJzLCBmaWx0ZXJEZWZzIH0gPSBhcmdzO1xyXG4gICAgY29uc3QgaW5saW5lQ29sdW1uOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPiA9IHt9O1xyXG4gICAgY29uc3QgaW5saW5lRXh0ZXJuYWw6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICBjb25zdCBpbmxpbmVGaWx0ZXJEZWY6IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1ucyB8fCBbXSkge1xyXG4gICAgICBpbmxpbmVDb2x1bW5baXRlbS5maWVsZF0gPSBjb25maWd1cmF0aW9uPy5pbmxpbmVDb2x1bW4/LltpdGVtLmZpZWxkXSA/PyBpdGVtPy5maWx0ZXI/LmRlZmF1bHRTaG93aW5nO1xyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXh0ZXJuYWxGaWx0ZXJzIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUV4dGVybmFsW2l0ZW0uZmllbGRdID0gY29uZmlndXJhdGlvbj8uaW5saW5lRXh0ZXJuYWw/LltpdGVtLmZpZWxkXSA/PyBpdGVtPy5kZWZhdWx0U2hvd2luZztcclxuICAgIH1cclxuICAgIC8vIEZpbHRlciBkZWZcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBmaWx0ZXJEZWZzIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUZpbHRlckRlZltpdGVtLnNkTWF0ZXJpYWxGaWx0ZXJEZWZdID0gY29uZmlndXJhdGlvbj8uaW5saW5lRmlsdGVyRGVmPy5baXRlbS5zZE1hdGVyaWFsRmlsdGVyRGVmXSA/PyBpdGVtPy5kZWZhdWx0U2hvd2luZztcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgICAgaW5saW5lQ29sdW1uLFxyXG4gICAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgICAgaW5saW5lRXh0ZXJuYWwsXHJcbiAgICAgIC8vIEZpbHRlciBkZWZcclxuICAgICAgaW5saW5lRmlsdGVyRGVmLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAjaW5pdFZhbHVlID0gKFxyXG4gICAgYXJnczoge1xyXG4gICAgICBjb2x1bW5zOiBTZFRhYmxlQ29sdW1uW107XHJcbiAgICAgIGV4dGVybmFsRmlsdGVyczogU2RUYWJsZUV4dGVybmFsRmlsdGVyW107XHJcbiAgICAgIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXTtcclxuICAgIH0sXHJcbiAgICB2YWx1ZTogU2RUYWJsZUZpbHRlclZhbHVlXHJcbiAgKTogU2RUYWJsZUZpbHRlclZhbHVlID0+IHtcclxuICAgIGNvbnN0IGNvbHVtbkZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgZXh0ZXJuYWxGaWx0ZXI6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fTtcclxuICAgIGNvbnN0IGZpbHRlckRlZjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBleHRlcm5hbEZpbHRlcnMsIGZpbHRlckRlZnMgfSA9IGFyZ3M7XHJcbiAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29sdW1ucyB8fCBbXSkge1xyXG4gICAgICBjb2x1bW5GaWx0ZXJbaXRlbS5maWVsZF0gPSB2YWx1ZT8uY29sdW1uRmlsdGVyPy5baXRlbS5maWVsZF0gPz8gaXRlbT8uZmlsdGVyPy5kZWZhdWx0O1xyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXh0ZXJuYWxGaWx0ZXJzIHx8IFtdKSB7XHJcbiAgICAgIGlmIChpdGVtLnR5cGUgPT09ICdkYXRlcmFuZ2UnKSB7XHJcbiAgICAgICAgZXh0ZXJuYWxGaWx0ZXJbaXRlbS5maWVsZF0gPSB7XHJcbiAgICAgICAgICBmcm9tOiB2YWx1ZT8uZXh0ZXJuYWxGaWx0ZXI/LltpdGVtLmZpZWxkXT8uZnJvbSA/PyBpdGVtLmRlZmF1bHQ/LmZyb20sXHJcbiAgICAgICAgICB0bzogdmFsdWU/LmV4dGVybmFsRmlsdGVyPy5baXRlbS5maWVsZF0/LnRvID8/IGl0ZW0uZGVmYXVsdD8udG8sXHJcbiAgICAgICAgfTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltpdGVtLmZpZWxkXSA9IHZhbHVlPy5leHRlcm5hbEZpbHRlcj8uW2l0ZW0uZmllbGRdID8/IGl0ZW0/LmRlZmF1bHQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIC8vIEZpbHRlciBkZWZcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBmaWx0ZXJEZWZzIHx8IFtdKSB7XHJcbiAgICAgIGZpbHRlckRlZltpdGVtLnNkTWF0ZXJpYWxGaWx0ZXJEZWZdID0gdmFsdWU/LmZpbHRlckRlZj8uW2l0ZW0uc2RNYXRlcmlhbEZpbHRlckRlZl0gPz8gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLy8gRmlsdGVyIGNvbHVtblxyXG4gICAgICBjb2x1bW5GaWx0ZXIsXHJcbiAgICAgIC8vIEZpbHRlciBleHRlcm5hbFxyXG4gICAgICBleHRlcm5hbEZpbHRlcixcclxuICAgICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgICBmaWx0ZXJEZWYsXHJcbiAgICB9O1xyXG4gIH07XHJcbn1cclxuIl19
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiQzovVXNlcnMvdXNlci9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS90YWJsZS8iLCJzb3VyY2VzIjpbInNyYy9saWIvc2VydmljZXMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLElBQUksTUFBTSxhQUFhLENBQUM7QUFDL0IsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFVNUQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdoRCxNQUFNLE9BQU8sb0JBQW9CO0lBSS9CLFlBQW9CLGNBQWdDO1FBQWhDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUhwRCwrQkFBdUIsMkJBQTJCLEVBQUM7UUFDbkQsdUJBQWUsbUJBQW1CLEVBQUM7UUFDbkMsaUJBQWdELEVBQUUsRUFBQztRQUVuRCxhQUFRLEdBQUcsQ0FDVCxNQUEyQixFQUMzQixJQUtDLEVBQ0QsRUFBRTtZQUNGLElBQUksWUFBWSxHQUFHLEtBQUssQ0FBQztZQUV6QixNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDO2dCQUNuQixFQUFFO2dCQUNGLE9BQU8sRUFBRSxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLE1BQUssRUFBRTtnQkFDbEUsZUFBZSxFQUFFLENBQUEsZUFBZSxhQUFmLGVBQWUs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QUcsSUFBSSx5Q0FBSSxJQUFJLENBQUMsT0FBTywwQ0FBRSxJQUFJO3dCQUNyRSxFQUFFLG9CQUFFLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxjQUFjLDBDQUFHLElBQUksQ0FBQyxLQUFLLDJDQUFHLEVBQUUseUNBQUksSUFBSSxDQUFDLE9BQU8sMENBQUUsRUFBRTtxQkFDaEUsQ0FBQztpQkFDSDtxQkFBTTtvQkFDTCxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxjQUFjLDBDQUFHLElBQUksQ0FBQyxLQUFLLG9DQUFLLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxPQUFPLENBQUM7aUJBQ25GO2FBQ0Y7WUFDRCxhQUFhO1lBQ2IsS0FBSyxNQUFNLElBQUksSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFO2dCQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQUcsS0FBSyxhQUFMLEtBQUssdUJBQUwsS0FBSyxDQUFFLFNBQVMsMENBQUcsSUFBSSxDQUFDLG1CQUFtQixvQ0FBSyxTQUFTLENBQUM7YUFDakc7WUFDRCxPQUFPO2dCQUNMLGdCQUFnQjtnQkFDaEIsWUFBWTtnQkFDWixrQkFBa0I7Z0JBQ2xCLGNBQWM7Z0JBQ2QsYUFBYTtnQkFDYixTQUFTO2FBQ1YsQ0FBQztRQUNKLENBQUMsRUFBQztJQXZQcUQsQ0FBQzs7OztZQUx6RCxVQUFVOzs7WUFaRixnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nU2VydmljZSB9IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7XHJcbiAgU2RUYWJsZUV4dGVybmFsRmlsdGVyLFxyXG4gIFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uLFxyXG4gIFNkVGFibGVPcHRpb25GaWx0ZXIsXHJcbiAgU2RUYWJsZUZpbHRlclJlZ2lzdGVyLFxyXG4gIFNkVGFibGVGaWx0ZXJWYWx1ZSxcclxufSBmcm9tICcuL3RhYmxlLWZpbHRlci5tb2RlbCc7XHJcbmltcG9ydCB7IFNkVGFibGVDb2x1bW4gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGFibGUtY29sdW1uLm1vZGVsJztcclxuaW1wb3J0IHsgU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2QtbWF0ZXJpYWwtZmlsdGVyLWRlZi5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFNkVGFibGVGaWx0ZXJTZXJ2aWNlIHtcclxuICAjZmlsdGVyQ29uZmlndXJhdGlvbiA9ICdHUklELUZJTFRFUi1DT05GSUdVUkFUSU9OJztcclxuICAjZmlsdGVyVmFsdWUgPSAnR1JJRC1GSUxURVItVkFMVUUnO1xyXG4gICNjYWNoZTogUmVjb3JkPHN0cmluZywgU2RUYWJsZUZpbHRlclJlZ2lzdGVyPiA9IHt9O1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UpIHt9XHJcbiAgcmVnaXN0ZXIgPSAoXHJcbiAgICBmaWx0ZXI6IFNkVGFibGVPcHRpb25GaWx0ZXIsXHJcbiAgICBhcmdzOiB7XHJcbiAgICAgIGlkOiBzdHJpbmc7XHJcbiAgICAgIGNvbHVtbnM6IFNkVGFibGVDb2x1bW5bXTtcclxuICAgICAgZXh0ZXJuYWxGaWx0ZXJzOiBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXJbXTtcclxuICAgICAgZmlsdGVyRGVmczogU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZVtdO1xyXG4gICAgfVxyXG4gICkgPT4ge1xyXG4gICAgbGV0IGNhY2hlU2Vzc2lvbiA9IGZhbHNlO1xyXG4gICAgXHJcbiAgICBjb25zdCB7IGlkLCBjb2x1bW5zLCBleHRlcm5hbEZpbHRlcnMgfSA9IGFyZ3M7XHJcbiAgICBjb25zdCB0ZW1wS2V5ID0gaGFzaCh7XHJcbiAgICAgIGlkLFxyXG4gICAgICBjb2x1bW5zOiBjb2x1bW5zPy5tYXAoZSA9PiBlLmZpZWxkKS5maWx0ZXIoZmllbGQgPT4gISFmaWVsZCkgfHwgW10sXHJcbiAgICAgIGV4dGVybmFsRmlsdGVyczogZXh0ZXJuYWxGaWx0ZXJzPy5tYXAoZSA9PiBlLmZpZWxkKS5maWx0ZXIoZmllbGQgPT4gISFmaWVsZCkgfHwgW10sXHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGtleSA9IGZpbHRlcj8ua2V5IHx8IHRlbXBLZXk7XHJcbiAgICBpZiAoIWZpbHRlcj8ua2V5KSB7XHJcbiAgICAgIGNhY2hlU2Vzc2lvbiA9IHRydWU7IC8vIE7hur91IGtow7RuZyBjw7Mga2V5IHRow6wgY2jhu4kgbMawdSB0aGVvIHNlc3Npb25cclxuICAgIH1cclxuICAgIGlmICghdGhpcy4jY2FjaGVba2V5XSkge1xyXG4gICAgICAvLyBTZXR0aW5nIGPhu6dhIGZpbHRlciBjb25maWd1cmF0aW9uXHJcbiAgICAgIGNvbnN0IGZpbHRlckNvbmZpZ3VyYXRpb24gPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvbj4oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJlZml4OiB0aGlzLiNmaWx0ZXJDb25maWd1cmF0aW9uLFxyXG4gICAgICAgICAga2V5LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZGVmYXVsdDogdGhpcy4jZGVmYXVsdENvbmZpZ3VyYXRpb24oYXJncyksXHJcbiAgICAgICAgICB0eXBlOiBjYWNoZVNlc3Npb24gPyAnc2Vzc2lvbicgOiB1bmRlZmluZWQsXHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgICAvLyBM4bqleSBnacOhIHRy4buLIGNvbmZpZ3VyYXRpb24gbWVyZ2UgduG7m2kgZ2nDoSB0cuG7iyBkZWZhdWx0U2hvd2luZyBj4bunYSBhcmdzIG7hur91IG5oxrAgYXJncyBjw7MgdGhheSDEkeG7lWlcclxuICAgICAgZmlsdGVyQ29uZmlndXJhdGlvbi5zZXQodGhpcy4jaW5pdENvbmZpZ3VyYXRpb24oYXJncywgZmlsdGVyQ29uZmlndXJhdGlvbi5nZXQoKSkpO1xyXG4gICAgICAvLyBTZXR0aW5nIGPhu6dhIGZpbHRlciB2YWx1ZVxyXG4gICAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkVGFibGVGaWx0ZXJWYWx1ZT4oXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJlZml4OiB0aGlzLiNmaWx0ZXJWYWx1ZSxcclxuICAgICAgICAgIGtleTogIWZpbHRlcj8uY2FjaGVGaWx0ZXIgPyB0ZW1wS2V5IDoga2V5LFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgZGVmYXVsdDogdGhpcy4jZGVmYXVsdFZhbHVlKGFyZ3MpLFxyXG4gICAgICAgICAgdHlwZTogY2FjaGVTZXNzaW9uIHx8ICFmaWx0ZXI/LmNhY2hlRmlsdGVyID8gJ3Nlc3Npb24nIDogdW5kZWZpbmVkLFxyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgICAgLy8gTOG6pXkgZ2nDoSB0cuG7iyB2YWx1ZSBtZXJnZSB24bubaSBnacOhIHRy4buLIGRlZmF1bHQgY+G7p2EgYXJncyBu4bq/dSBuaMawIGFyZ3MgY8OzIHRoYXkgxJHhu5VpXHJcbiAgICAgIGZpbHRlclZhbHVlLnNldCh0aGlzLiNpbml0VmFsdWUoYXJncywgZmlsdGVyVmFsdWUuZ2V0KCkpKTtcclxuICAgICAgdGhpcy4jY2FjaGVba2V5XSA9IHtcclxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XHJcbiAgICAgICAgICBnZXQ6ICgpOiBTZFRhYmxlRmlsdGVyQ29uZmlndXJhdGlvbiA9PiB7XHJcbiAgICAgICAgICAgIHJldHVybiBmaWx0ZXJDb25maWd1cmF0aW9uLmdldCgpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHNldDogKGNvbmZpZ3VyYXRpb246IFBhcnRpYWw8U2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24+KTogU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24gPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB7IGlubGluZUNvbHVtbiwgaW5saW5lRXh0ZXJuYWwsIGlubGluZUZpbHRlckRlZiB9ID0gY29uZmlndXJhdGlvbjtcclxuICAgICAgICAgICAgZmlsdGVyQ29uZmlndXJhdGlvbi5zZXQoe1xyXG4gICAgICAgICAgICAgIGlubGluZUNvbHVtbixcclxuICAgICAgICAgICAgICBpbmxpbmVFeHRlcm5hbCxcclxuICAgICAgICAgICAgICBpbmxpbmVGaWx0ZXJEZWYsXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgIGlubGluZUNvbHVtbixcclxuICAgICAgICAgICAgICBpbmxpbmVFeHRlcm5hbCxcclxuICAgICAgICAgICAgICBpbmxpbmVGaWx0ZXJEZWYsXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcmVtb3ZlOiAoKSA9PiB7XHJcbiAgICAgICAgICAgIGZpbHRlckNvbmZpZ3VyYXRpb24uc2V0KHRoaXMuI2RlZmF1bHRDb25maWd1cmF0aW9uKGFyZ3MpKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvYnNlcnZlcjogZmlsdGVyQ29uZmlndXJhdGlvbi5vYnNlcnZlci5waXBlKFxyXG4gICAgICAgICAgICBzdGFydFdpdGgoZmlsdGVyQ29uZmlndXJhdGlvbi5nZXQoKSksXHJcbiAgICAgICAgICAgIC8vIFPhu60gZOG7pW5nIG3hurdjIMSR4buLbmggbuG6v3UgYuG7iyByZXNldFxyXG4gICAgICAgICAgICBtYXAoY29uZmlndXJhdGlvbiA9PiBjb25maWd1cmF0aW9uIHx8IHRoaXMuI2RlZmF1bHRDb25maWd1cmF0aW9uKGFyZ3MpKVxyXG4gICAgICAgICAgKSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHZhbHVlOiB7XHJcbiAgICAgICAgICBnZXQ6ICgpOiBTZFRhYmxlRmlsdGVyVmFsdWUgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gZmlsdGVyVmFsdWUuZ2V0KCk7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgc2V0OiAodmFsdWU6IFBhcnRpYWw8U2RUYWJsZUZpbHRlclZhbHVlPik6IFNkVGFibGVGaWx0ZXJWYWx1ZSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyh2YWx1ZSB8fCB7fSk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnQgPSBmaWx0ZXJWYWx1ZS5nZXQoKTtcclxuICAgICAgICAgICAgY29uc3QgeyBjb2x1bW5PcGVyYXRvciwgY29sdW1uRmlsdGVyLCBleHRlcm5hbEZpbHRlciwgZmlsdGVyRGVmLCBub3RSZWxvYWQgfSA9IGN1cnJlbnQ7XHJcbiAgICAgICAgICAgIGNvbnN0IHVwZGF0ZWRGaWx0ZXIgPSB7XHJcbiAgICAgICAgICAgICAgLy8gRmlsdGVyIGNvbHVtblxyXG4gICAgICAgICAgICAgIGNvbHVtbk9wZXJhdG9yOiBrZXlzLmluY2x1ZGVzKCdjb2x1bW5PcGVyYXRvcicpID8gdmFsdWU/LmNvbHVtbk9wZXJhdG9yIHx8IHt9IDogY29sdW1uT3BlcmF0b3IsXHJcbiAgICAgICAgICAgICAgY29sdW1uRmlsdGVyOiBrZXlzLmluY2x1ZGVzKCdjb2x1bW5GaWx0ZXInKSA/IHZhbHVlPy5jb2x1bW5GaWx0ZXIgfHwge30gOiBjb2x1bW5GaWx0ZXIsXHJcbiAgICAgICAgICAgICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICAgICAgICAgICAgZXh0ZXJuYWxGaWx0ZXI6IGtleXMuaW5jbHVkZXMoJ2V4dGVybmFsRmlsdGVyJykgPyB2YWx1ZT8uZXh0ZXJuYWxGaWx0ZXIgfHwge30gOiBleHRlcm5hbEZpbHRlcixcclxuICAgICAgICAgICAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICAgICAgICAgICAgZmlsdGVyRGVmOiBrZXlzLmluY2x1ZGVzKCdmaWx0ZXJEZWYnKSA/IHZhbHVlPy5maWx0ZXJEZWYgfHwge30gOiBmaWx0ZXJEZWYsXHJcbiAgICAgICAgICAgICAgLy8gRm9yY2VcclxuICAgICAgICAgICAgICBub3RSZWxvYWQ6ICEhbm90UmVsb2FkLFxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZS5zZXQodXBkYXRlZEZpbHRlcik7XHJcbiAgICAgICAgICAgIHJldHVybiB1cGRhdGVkRmlsdGVyO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHJlbW92ZTogKCkgPT4ge1xyXG4gICAgICAgICAgICBmaWx0ZXJWYWx1ZS5zZXQodGhpcy4jZGVmYXVsdFZhbHVlKGFyZ3MpKTtcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBvYnNlcnZlcjogZmlsdGVyVmFsdWUub2JzZXJ2ZXIucGlwZShcclxuICAgICAgICAgICAgc3RhcnRXaXRoKGZpbHRlclZhbHVlLmdldCgpKSxcclxuICAgICAgICAgICAgLy8gU+G7rSBk4bulbmcgbeG6t2MgxJHhu4tuaCBu4bq/dSBi4buLIHJlc2V0XHJcbiAgICAgICAgICAgIG1hcCh2YWx1ZSA9PiB2YWx1ZSB8fCB0aGlzLiNkZWZhdWx0VmFsdWUoYXJncykpXHJcbiAgICAgICAgICApLFxyXG4gICAgICAgIH0sXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy4jY2FjaGVba2V5XTtcclxuICB9O1xyXG5cclxuICAjZGVmYXVsdENvbmZpZ3VyYXRpb24gPSAoYXJnczoge1xyXG4gICAgY29sdW1uczogU2RUYWJsZUNvbHVtbltdO1xyXG4gICAgZXh0ZXJuYWxGaWx0ZXJzOiBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXJbXTtcclxuICAgIGZpbHRlckRlZnM6IFNkTWF0ZXJpYWxGaWx0ZXJEZWZEaXJlY3RpdmVbXTtcclxuICB9KTogU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24gPT4ge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBleHRlcm5hbEZpbHRlcnMsIGZpbHRlckRlZnMgfSA9IGFyZ3M7XHJcbiAgICBjb25zdCBpbmxpbmVDb2x1bW46IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICBjb25zdCBpbmxpbmVFeHRlcm5hbDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICAgIGNvbnN0IGlubGluZUZpbHRlckRlZjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb2x1bW5zIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUNvbHVtbltpdGVtLmZpZWxkXSA9IGl0ZW0/LmZpbHRlcj8uZGVmYXVsdFNob3dpbmc7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBleHRlcm5hbEZpbHRlcnMgfHwgW10pIHtcclxuICAgICAgaW5saW5lRXh0ZXJuYWxbaXRlbS5maWVsZF0gPSBpdGVtPy5kZWZhdWx0U2hvd2luZztcclxuICAgIH1cclxuICAgIC8vIEZpbHRlciBkZWZcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBmaWx0ZXJEZWZzIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUZpbHRlckRlZltpdGVtLnNkTWF0ZXJpYWxGaWx0ZXJEZWZdID0gaXRlbT8uZGVmYXVsdFNob3dpbmc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICAgIGlubGluZUNvbHVtbixcclxuICAgICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICAgIGlubGluZUV4dGVybmFsLFxyXG4gICAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICAgIGlubGluZUZpbHRlckRlZixcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgI2RlZmF1bHRWYWx1ZSA9IChhcmdzOiB7XHJcbiAgICBjb2x1bW5zOiBTZFRhYmxlQ29sdW1uW107XHJcbiAgICBleHRlcm5hbEZpbHRlcnM6IFNkVGFibGVFeHRlcm5hbEZpbHRlcltdO1xyXG4gICAgZmlsdGVyRGVmczogU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZVtdO1xyXG4gIH0pOiBTZFRhYmxlRmlsdGVyVmFsdWUgPT4ge1xyXG4gICAgY29uc3QgY29sdW1uRmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBjb25zdCBleHRlcm5hbEZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgZmlsdGVyRGVmOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIGV4dGVybmFsRmlsdGVycywgZmlsdGVyRGVmcyB9ID0gYXJncztcclxuICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb2x1bW5zIHx8IFtdKSB7XHJcbiAgICAgIGNvbHVtbkZpbHRlcltpdGVtLmZpZWxkXSA9IGl0ZW0/LmZpbHRlcj8uZGVmYXVsdDtcclxuICAgIH1cclxuICAgIC8vIEZpbHRlciBleHRlcm5hbFxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGV4dGVybmFsRmlsdGVycyB8fCBbXSkge1xyXG4gICAgICBleHRlcm5hbEZpbHRlcltpdGVtLmZpZWxkXSA9IGl0ZW0/LmRlZmF1bHQ7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZmlsdGVyRGVmcyB8fCBbXSkge1xyXG4gICAgICBmaWx0ZXJEZWZbaXRlbS5zZE1hdGVyaWFsRmlsdGVyRGVmXSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHJldHVybiB7XHJcbiAgICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgICAgY29sdW1uRmlsdGVyLFxyXG4gICAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgICAgZXh0ZXJuYWxGaWx0ZXIsXHJcbiAgICAgIC8vIEZpbHRlciBkZWZcclxuICAgICAgZmlsdGVyRGVmLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICAjaW5pdENvbmZpZ3VyYXRpb24gPSAoXHJcbiAgICBhcmdzOiB7XHJcbiAgICAgIGNvbHVtbnM6IFNkVGFibGVDb2x1bW5bXTtcclxuICAgICAgZXh0ZXJuYWxGaWx0ZXJzOiBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXJbXTtcclxuICAgICAgZmlsdGVyRGVmczogU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZVtdO1xyXG4gICAgfSxcclxuICAgIGNvbmZpZ3VyYXRpb246IFNkVGFibGVGaWx0ZXJDb25maWd1cmF0aW9uXHJcbiAgKTogU2RUYWJsZUZpbHRlckNvbmZpZ3VyYXRpb24gPT4ge1xyXG4gICAgY29uc3QgeyBjb2x1bW5zLCBleHRlcm5hbEZpbHRlcnMsIGZpbHRlckRlZnMgfSA9IGFyZ3M7XHJcbiAgICBjb25zdCBpbmxpbmVDb2x1bW46IFJlY29yZDxzdHJpbmcsIGJvb2xlYW4+ID0ge307XHJcbiAgICBjb25zdCBpbmxpbmVFeHRlcm5hbDogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICAgIGNvbnN0IGlubGluZUZpbHRlckRlZjogUmVjb3JkPHN0cmluZywgYm9vbGVhbj4gPSB7fTtcclxuICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb2x1bW5zIHx8IFtdKSB7XHJcbiAgICAgIGlubGluZUNvbHVtbltpdGVtLmZpZWxkXSA9IGNvbmZpZ3VyYXRpb24/LmlubGluZUNvbHVtbj8uW2l0ZW0uZmllbGRdID8/IGl0ZW0/LmZpbHRlcj8uZGVmYXVsdFNob3dpbmc7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBleHRlcm5hbEZpbHRlcnMgfHwgW10pIHtcclxuICAgICAgaW5saW5lRXh0ZXJuYWxbaXRlbS5maWVsZF0gPSBjb25maWd1cmF0aW9uPy5pbmxpbmVFeHRlcm5hbD8uW2l0ZW0uZmllbGRdID8/IGl0ZW0/LmRlZmF1bHRTaG93aW5nO1xyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGZpbHRlckRlZnMgfHwgW10pIHtcclxuICAgICAgaW5saW5lRmlsdGVyRGVmW2l0ZW0uc2RNYXRlcmlhbEZpbHRlckRlZl0gPSBjb25maWd1cmF0aW9uPy5pbmxpbmVGaWx0ZXJEZWY/LltpdGVtLnNkTWF0ZXJpYWxGaWx0ZXJEZWZdID8/IGl0ZW0/LmRlZmF1bHRTaG93aW5nO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLy8gRmlsdGVyIGNvbHVtblxyXG4gICAgICBpbmxpbmVDb2x1bW4sXHJcbiAgICAgIC8vIEZpbHRlciBleHRlcm5hbFxyXG4gICAgICBpbmxpbmVFeHRlcm5hbCxcclxuICAgICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgICBpbmxpbmVGaWx0ZXJEZWYsXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gICNpbml0VmFsdWUgPSAoXHJcbiAgICBhcmdzOiB7XHJcbiAgICAgIGNvbHVtbnM6IFNkVGFibGVDb2x1bW5bXTtcclxuICAgICAgZXh0ZXJuYWxGaWx0ZXJzOiBTZFRhYmxlRXh0ZXJuYWxGaWx0ZXJbXTtcclxuICAgICAgZmlsdGVyRGVmczogU2RNYXRlcmlhbEZpbHRlckRlZkRpcmVjdGl2ZVtdO1xyXG4gICAgfSxcclxuICAgIHZhbHVlOiBTZFRhYmxlRmlsdGVyVmFsdWVcclxuICApOiBTZFRhYmxlRmlsdGVyVmFsdWUgPT4ge1xyXG4gICAgY29uc3QgY29sdW1uRmlsdGVyOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBjb25zdCBleHRlcm5hbEZpbHRlcjogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xyXG4gICAgY29uc3QgZmlsdGVyRGVmOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgICBjb25zdCB7IGNvbHVtbnMsIGV4dGVybmFsRmlsdGVycywgZmlsdGVyRGVmcyB9ID0gYXJncztcclxuICAgIC8vIEZpbHRlciBjb2x1bW5cclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb2x1bW5zIHx8IFtdKSB7XHJcbiAgICAgIGNvbHVtbkZpbHRlcltpdGVtLmZpZWxkXSA9IHZhbHVlPy5jb2x1bW5GaWx0ZXI/LltpdGVtLmZpZWxkXSA/PyBpdGVtPy5maWx0ZXI/LmRlZmF1bHQ7XHJcbiAgICB9XHJcbiAgICAvLyBGaWx0ZXIgZXh0ZXJuYWxcclxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBleHRlcm5hbEZpbHRlcnMgfHwgW10pIHtcclxuICAgICAgaWYgKGl0ZW0udHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgICBleHRlcm5hbEZpbHRlcltpdGVtLmZpZWxkXSA9IHtcclxuICAgICAgICAgIGZyb206IHZhbHVlPy5leHRlcm5hbEZpbHRlcj8uW2l0ZW0uZmllbGRdPy5mcm9tID8/IGl0ZW0uZGVmYXVsdD8uZnJvbSxcclxuICAgICAgICAgIHRvOiB2YWx1ZT8uZXh0ZXJuYWxGaWx0ZXI/LltpdGVtLmZpZWxkXT8udG8gPz8gaXRlbS5kZWZhdWx0Py50byxcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGV4dGVybmFsRmlsdGVyW2l0ZW0uZmllbGRdID0gdmFsdWU/LmV4dGVybmFsRmlsdGVyPy5baXRlbS5maWVsZF0gPz8gaXRlbT8uZGVmYXVsdDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgLy8gRmlsdGVyIGRlZlxyXG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGZpbHRlckRlZnMgfHwgW10pIHtcclxuICAgICAgZmlsdGVyRGVmW2l0ZW0uc2RNYXRlcmlhbEZpbHRlckRlZl0gPSB2YWx1ZT8uZmlsdGVyRGVmPy5baXRlbS5zZE1hdGVyaWFsRmlsdGVyRGVmXSA/PyB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICAvLyBGaWx0ZXIgY29sdW1uXHJcbiAgICAgIGNvbHVtbkZpbHRlcixcclxuICAgICAgLy8gRmlsdGVyIGV4dGVybmFsXHJcbiAgICAgIGV4dGVybmFsRmlsdGVyLFxyXG4gICAgICAvLyBGaWx0ZXIgZGVmXHJcbiAgICAgIGZpbHRlckRlZixcclxuICAgIH07XHJcbiAgfTtcclxufVxyXG4iXX0=