fabrikantencore 2.0.7 → 2.0.8

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 (942) hide show
  1. package/esm2020/fabrikantencore.mjs +5 -0
  2. package/esm2020/public_api.mjs +4 -0
  3. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.mjs +38 -0
  4. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.mjs +77 -0
  5. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.mjs +28 -0
  6. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.mjs +116 -0
  7. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.mjs +15 -0
  8. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.mjs +52 -0
  9. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.mjs +90 -0
  10. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.mjs +30 -0
  11. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.mjs +74 -0
  12. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.mjs +44 -0
  13. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.mjs +16 -0
  14. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.mjs +47 -0
  15. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.mjs +54 -0
  16. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.mjs +221 -0
  17. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.mjs +106 -0
  18. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.mjs +114 -0
  19. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.mjs +131 -0
  20. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.mjs +16 -0
  21. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.mjs +157 -0
  22. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.mjs +28 -0
  23. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.mjs +151 -0
  24. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.mjs +89 -0
  25. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.mjs +299 -0
  26. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.mjs +24 -0
  27. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.mjs +24 -0
  28. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.mjs +25 -0
  29. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.mjs +114 -0
  30. package/esm2020/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.mjs +15 -0
  31. package/esm2020/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.mjs +14 -0
  32. package/esm2020/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.mjs +59 -0
  33. package/esm2020/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.mjs +32 -0
  34. package/esm2020/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.mjs +42 -0
  35. package/esm2020/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.mjs +59 -0
  36. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.mjs +45 -0
  37. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.mjs +26 -0
  38. package/esm2020/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.mjs +32 -0
  39. package/esm2020/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.mjs +16 -0
  40. package/esm2020/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.mjs +40 -0
  41. package/esm2020/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.mjs +24 -0
  42. package/esm2020/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.mjs +15 -0
  43. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.mjs +66 -0
  44. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.mjs +30 -0
  45. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.mjs +21 -0
  46. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.mjs +41 -0
  47. package/esm2020/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.mjs +83 -0
  48. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.mjs +64 -0
  49. package/esm2020/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.mjs +40 -0
  50. package/esm2020/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.mjs +82 -0
  51. package/esm2020/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.mjs +28 -0
  52. package/esm2020/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.mjs +83 -0
  53. package/esm2020/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.mjs +89 -0
  54. package/esm2020/src/app/modules/fabrikantencore/fabrikantencore.module.mjs +372 -0
  55. package/esm2020/src/app/modules/fabrikantencore/helpers/auth.guard.mjs +29 -0
  56. package/esm2020/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.mjs +26 -0
  57. package/esm2020/src/app/modules/fabrikantencore/helpers/error.interceptor.mjs +27 -0
  58. package/esm2020/src/app/modules/fabrikantencore/services/authentication.service.mjs +47 -0
  59. package/esm2020/src/app/modules/fabrikantencore/services/bestek.service.mjs +106 -0
  60. package/esm2020/src/app/modules/fabrikantencore/services/fabrikanten.service.mjs +493 -0
  61. package/esm2020/src/app/modules/fabrikantencore/services/importsets.service.mjs +114 -0
  62. package/esm2020/src/app/modules/fabrikantencore/services/mobile.service.mjs +35 -0
  63. package/esm2020/src/app/modules/fabrikantencore/services/navigate.service.mjs +32 -0
  64. package/esm2020/src/app/modules/fabrikantencore/services/photo.service.mjs +98 -0
  65. package/esm2020/src/app/modules/fabrikantencore/services/products.service.mjs +231 -0
  66. package/esm2020/src/app/modules/fabrikantencore/services/projectsetting.service.mjs +77 -0
  67. package/esm2020/src/app/modules/fabrikantencore/services/svg.service.mjs +70 -0
  68. package/esm2020/src/app/modules/fabrikantencore/services/translate.service.mjs +268 -0
  69. package/esm2020/src/app/modules/fabrikantencore/services/webgl.service.mjs +60 -0
  70. package/esm2020/src/app/modules/fabrikantencore/swagger/SwaggerClient.mjs +8025 -0
  71. package/fesm2015/fabrikantencore.mjs +12802 -0
  72. package/fesm2015/fabrikantencore.mjs.map +1 -0
  73. package/fesm2020/fabrikantencore.mjs +12717 -0
  74. package/fesm2020/fabrikantencore.mjs.map +1 -0
  75. package/index.d.ts +5 -0
  76. package/package.json +23 -11
  77. package/{public_api.ts → public_api.d.ts} +3 -3
  78. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.d.ts +13 -0
  79. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.d.ts +22 -0
  80. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.d.ts +11 -0
  81. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.d.ts +22 -0
  82. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.d.ts +8 -0
  83. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.d.ts +17 -0
  84. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.d.ts +29 -0
  85. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.d.ts +14 -0
  86. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.d.ts +23 -0
  87. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.d.ts +21 -0
  88. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.d.ts +8 -0
  89. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.d.ts +19 -0
  90. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.d.ts +17 -0
  91. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.d.ts +38 -0
  92. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.d.ts +32 -0
  93. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.d.ts +31 -0
  94. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.d.ts +25 -0
  95. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.d.ts +10 -0
  96. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.d.ts +36 -0
  97. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.d.ts +14 -0
  98. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.d.ts +26 -0
  99. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.d.ts +23 -0
  100. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.d.ts +41 -0
  101. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.d.ts +12 -0
  102. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.d.ts +12 -0
  103. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.d.ts +11 -0
  104. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.d.ts +21 -0
  105. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.d.ts +8 -0
  106. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.d.ts +8 -0
  107. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.d.ts +21 -0
  108. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.d.ts +15 -0
  109. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.d.ts +20 -0
  110. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.d.ts +22 -0
  111. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.d.ts +21 -0
  112. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.d.ts +14 -0
  113. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.d.ts +12 -0
  114. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.d.ts +9 -0
  115. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.d.ts +17 -0
  116. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.d.ts +13 -0
  117. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.d.ts +8 -0
  118. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.d.ts +29 -0
  119. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.d.ts +13 -0
  120. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.d.ts +12 -0
  121. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.d.ts +17 -0
  122. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.d.ts +30 -0
  123. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.d.ts +25 -0
  124. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.d.ts +22 -0
  125. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.d.ts +23 -0
  126. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.d.ts +15 -0
  127. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.d.ts +29 -0
  128. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.d.ts +25 -0
  129. package/src/app/modules/fabrikantencore/fabrikantencore.module.d.ts +80 -0
  130. package/src/app/modules/fabrikantencore/helpers/auth.guard.d.ts +11 -0
  131. package/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.d.ts +11 -0
  132. package/src/app/modules/fabrikantencore/helpers/error.interceptor.d.ts +11 -0
  133. package/src/app/modules/fabrikantencore/services/authentication.service.d.ts +16 -0
  134. package/src/app/modules/fabrikantencore/services/bestek.service.d.ts +19 -0
  135. package/src/app/modules/fabrikantencore/services/fabrikanten.service.d.ts +59 -0
  136. package/src/app/modules/fabrikantencore/services/importsets.service.d.ts +22 -0
  137. package/src/app/modules/fabrikantencore/services/mobile.service.d.ts +15 -0
  138. package/src/app/modules/fabrikantencore/services/navigate.service.d.ts +13 -0
  139. package/src/app/modules/fabrikantencore/services/photo.service.d.ts +20 -0
  140. package/src/app/modules/fabrikantencore/services/products.service.d.ts +29 -0
  141. package/src/app/modules/fabrikantencore/services/projectsetting.service.d.ts +19 -0
  142. package/src/app/modules/fabrikantencore/services/svg.service.d.ts +22 -0
  143. package/src/app/modules/fabrikantencore/services/translate.service.d.ts +44 -0
  144. package/src/app/modules/fabrikantencore/services/webgl.service.d.ts +19 -0
  145. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.d.ts +2061 -0
  146. package/.browserslistrc +0 -16
  147. package/.editorconfig +0 -16
  148. package/.vscode/extensions.json +0 -4
  149. package/.vscode/launch.json +0 -20
  150. package/.vscode/tasks.json +0 -42
  151. package/angular.json +0 -112
  152. package/karma.conf.js +0 -44
  153. package/ng-package.json +0 -6
  154. package/src/app/app-routing.module.ts +0 -10
  155. package/src/app/app.component.html +0 -1
  156. package/src/app/app.component.scss +0 -8
  157. package/src/app/app.component.spec.ts +0 -35
  158. package/src/app/app.component.ts +0 -10
  159. package/src/app/app.module.ts +0 -22
  160. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.html +0 -44
  161. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.scss +0 -11
  162. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.spec.ts +0 -23
  163. package/src/app/modules/fabrikantencore/beheer/components/beheer-categories/beheer-categories.component.ts +0 -38
  164. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.html +0 -46
  165. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.scss +0 -0
  166. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.spec.ts +0 -23
  167. package/src/app/modules/fabrikantencore/beheer/components/beheer-connect-category-dialog/beheer-connect-category-dialog.component.ts +0 -79
  168. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.html +0 -11
  169. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.scss +0 -8
  170. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.spec.ts +0 -23
  171. package/src/app/modules/fabrikantencore/beheer/components/beheer-display-ebo/beheer-display-ebo.component.ts +0 -33
  172. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.html +0 -58
  173. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.scss +0 -18
  174. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.spec.ts +0 -23
  175. package/src/app/modules/fabrikantencore/beheer/components/beheer-ebo-koppel/beheer-ebo-koppel/beheer-ebo-koppel.component.ts +0 -127
  176. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.html +0 -1
  177. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.scss +0 -0
  178. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.spec.ts +0 -23
  179. package/src/app/modules/fabrikantencore/beheer/components/beheer-filters/beheer-filters.component.ts +0 -15
  180. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.html +0 -12
  181. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.scss +0 -0
  182. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.spec.ts +0 -23
  183. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-dialog/beheer-import-sets-dialog.component.ts +0 -48
  184. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.html +0 -33
  185. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.scss +0 -60
  186. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.spec.ts +0 -23
  187. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-ebo.component.ts +0 -99
  188. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.html +0 -20
  189. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.scss +0 -38
  190. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.spec.ts +0 -23
  191. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-ebo/beheer-import-sets-opbouw.component.ts +0 -0
  192. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.html +0 -8
  193. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.scss +0 -31
  194. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.spec.ts +0 -23
  195. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets-eigenschap/beheer-import-sets-eigenschap.component.ts +0 -33
  196. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.html +0 -92
  197. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.scss +0 -50
  198. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.spec.ts +0 -23
  199. package/src/app/modules/fabrikantencore/beheer/components/beheer-import-sets/beheer-import-sets.component.ts +0 -73
  200. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.html +0 -42
  201. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.scss +0 -44
  202. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.spec.ts +0 -23
  203. package/src/app/modules/fabrikantencore/beheer/components/beheer-inlog/beheer-inlog.component.ts +0 -43
  204. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.css +0 -0
  205. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.html +0 -1
  206. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.spec.ts +0 -25
  207. package/src/app/modules/fabrikantencore/beheer/components/beheer-main/beheer-main.component.ts +0 -17
  208. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.html +0 -41
  209. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.scss +0 -34
  210. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.spec.ts +0 -23
  211. package/src/app/modules/fabrikantencore/beheer/components/beheer-nav/beheer-nav.component.ts +0 -49
  212. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.html +0 -42
  213. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.scss +0 -41
  214. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.spec.ts +0 -23
  215. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-bcbproduct/beheer-products-bcbproduct.component.ts +0 -49
  216. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.html +0 -56
  217. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.scss +0 -29
  218. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.spec.ts +0 -23
  219. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-manyname-dialog/beheer-products-connect-manyname-dialog.component.ts +0 -253
  220. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.html +0 -44
  221. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.scss +0 -7
  222. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.spec.ts +0 -23
  223. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-connect-rangeinput/beheer-products-connect-rangeinput.component.ts +0 -114
  224. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.html +0 -41
  225. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.scss +0 -47
  226. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.spec.ts +0 -23
  227. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-ebo.component.ts +0 -131
  228. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.html +0 -16
  229. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.scss +0 -51
  230. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.spec.ts +0 -23
  231. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-ebo/beheer-products-opbouw.component.ts +0 -0
  232. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.html +0 -64
  233. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.scss +0 -41
  234. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.spec.ts +0 -23
  235. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap/beheer-products-eigenschap.component.ts +0 -147
  236. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.html +0 -5
  237. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.scss +0 -7
  238. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.spec.ts +0 -23
  239. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-eigenschap-bereik/beheer-products-eigenschap-bereik.component.ts +0 -18
  240. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.html +0 -97
  241. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.scss +0 -11
  242. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.spec.ts +0 -23
  243. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-koppel-filteroption-dailog/beheer-products-koppel-filteroption-dailog.component.ts +0 -187
  244. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.html +0 -26
  245. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.scss +0 -15
  246. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.spec.ts +0 -23
  247. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products-product/beheer-products-product.component.ts +0 -23
  248. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.html +0 -99
  249. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.scss +0 -85
  250. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.spec.ts +0 -23
  251. package/src/app/modules/fabrikantencore/beheer/components/beheer-products/beheer-products.component.ts +0 -172
  252. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.html +0 -45
  253. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.scss +0 -14
  254. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.spec.ts +0 -23
  255. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts-koppel-dialog/beheer-searchproducts-koppel-dialog.component.ts +0 -89
  256. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.html +0 -119
  257. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.scss +0 -69
  258. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.spec.ts +0 -23
  259. package/src/app/modules/fabrikantencore/beheer/components/beheer-searchproducts/beheer-searchproducts.component.ts +0 -346
  260. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.html +0 -38
  261. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.scss +0 -30
  262. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.spec.ts +0 -23
  263. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-options/beheer-settings-options.component.ts +0 -19
  264. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.html +0 -40
  265. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.scss +0 -30
  266. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.spec.ts +0 -23
  267. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings-string/beheer-settings-string.component.ts +0 -19
  268. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.html +0 -31
  269. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.scss +0 -30
  270. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.spec.ts +0 -23
  271. package/src/app/modules/fabrikantencore/beheer/components/beheer-settings/beheer-settings.component.ts +0 -17
  272. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.html +0 -142
  273. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.scss +0 -15
  274. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.spec.ts +0 -23
  275. package/src/app/modules/fabrikantencore/beheer/components/beheer-translate/beheer-translate.component.ts +0 -120
  276. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.html +0 -1
  277. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.scss +0 -0
  278. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.spec.ts +0 -23
  279. package/src/app/modules/fabrikantencore/beheer/components/beheer-users/beheer-users.component.ts +0 -15
  280. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.html +0 -1
  281. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.scss +0 -0
  282. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.spec.ts +0 -23
  283. package/src/app/modules/fabrikantencore/components/fab-bcb-product/fab-bcb-product.component.ts +0 -15
  284. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.html +0 -45
  285. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.scss +0 -64
  286. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.spec.ts +0 -23
  287. package/src/app/modules/fabrikantencore/components/fab-breadcrumb/fab-breadcrumb.component.ts +0 -60
  288. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.html +0 -5
  289. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.scss +0 -89
  290. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.spec.ts +0 -23
  291. package/src/app/modules/fabrikantencore/components/fab-button/fab-button.component.ts +0 -20
  292. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.html +0 -10
  293. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.scss +0 -16
  294. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.spec.ts +0 -23
  295. package/src/app/modules/fabrikantencore/components/fab-categories/fab-categories.component.ts +0 -30
  296. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.html +0 -10
  297. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.scss +0 -38
  298. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.spec.ts +0 -23
  299. package/src/app/modules/fabrikantencore/components/fab-category-tile/fab-category-tile.component.ts +0 -46
  300. package/src/app/modules/fabrikantencore/components/fab-category-tile/no-photo.png +0 -0
  301. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.html +0 -24
  302. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.scss +0 -57
  303. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.spec.ts +0 -23
  304. package/src/app/modules/fabrikantencore/components/fab-filter/fab-filter.component.ts +0 -63
  305. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.html +0 -23
  306. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.scss +0 -44
  307. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.spec.ts +0 -25
  308. package/src/app/modules/fabrikantencore/components/fab-filters/fab-filters.component.ts +0 -41
  309. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.html +0 -13
  310. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.scss +0 -16
  311. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.spec.ts +0 -23
  312. package/src/app/modules/fabrikantencore/components/fab-filters-input/fab-filters-input.component.ts +0 -23
  313. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.html +0 -4
  314. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.scss +0 -0
  315. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.spec.ts +0 -23
  316. package/src/app/modules/fabrikantencore/components/fab-filters-overview/fab-filters-overview.component.ts +0 -32
  317. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.html +0 -1
  318. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.scss +0 -2143
  319. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.spec.ts +0 -23
  320. package/src/app/modules/fabrikantencore/components/fab-flag/fab-flag.component.ts +0 -17
  321. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.html +0 -6
  322. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.scss +0 -13
  323. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.spec.ts +0 -23
  324. package/src/app/modules/fabrikantencore/components/fab-header/fab-header.component.ts +0 -38
  325. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.html +0 -5
  326. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.scss +0 -8
  327. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.spec.ts +0 -23
  328. package/src/app/modules/fabrikantencore/components/fab-language-select/fab-language-select.component.ts +0 -21
  329. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.html +0 -3
  330. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.scss +0 -7
  331. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.spec.ts +0 -23
  332. package/src/app/modules/fabrikantencore/components/fab-loader/fab-loader.component.ts +0 -15
  333. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.html +0 -68
  334. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.scss +0 -99
  335. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.spec.ts +0 -23
  336. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-bestek/fab-product-bestek.component.ts +0 -76
  337. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.html +0 -15
  338. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.scss +0 -24
  339. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.spec.ts +0 -23
  340. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo/fab-product-info-photo.component.ts +0 -26
  341. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.html +0 -15
  342. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.scss +0 -20
  343. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.spec.ts +0 -23
  344. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info-photo-dialog/fab-product-info-photo-dialog.component.ts +0 -17
  345. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.html +0 -17
  346. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.scss +0 -13
  347. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.spec.ts +0 -23
  348. package/src/app/modules/fabrikantencore/components/fab-product/fab-product-info/fab-product-info.component.ts +0 -40
  349. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.html +0 -54
  350. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.scss +0 -57
  351. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.spec.ts +0 -23
  352. package/src/app/modules/fabrikantencore/components/fab-product/fab-product.component.ts +0 -86
  353. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.html +0 -43
  354. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.scss +0 -65
  355. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.spec.ts +0 -23
  356. package/src/app/modules/fabrikantencore/components/fab-product-select/fab-product-select.component.ts +0 -63
  357. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.html +0 -7
  358. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.scss +0 -34
  359. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.spec.ts +0 -23
  360. package/src/app/modules/fabrikantencore/components/fab-product-tile/fab-product-tile.component.ts +0 -45
  361. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.html +0 -10
  362. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.scss +0 -3
  363. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.spec.ts +0 -23
  364. package/src/app/modules/fabrikantencore/components/fab-range-input/fab-range-input.component.ts +0 -95
  365. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.html +0 -7
  366. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.scss +0 -24
  367. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.spec.ts +0 -23
  368. package/src/app/modules/fabrikantencore/components/fab-start/fab-start.component.ts +0 -26
  369. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.html +0 -124
  370. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.scss +0 -92
  371. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.spec.ts +0 -23
  372. package/src/app/modules/fabrikantencore/components/fab-svg-viewer/fab-svg-viewer.component.ts +0 -86
  373. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.html +0 -108
  374. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.scss +0 -79
  375. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.spec.ts +0 -23
  376. package/src/app/modules/fabrikantencore/components/fab-webgl-viewer/fab-webgl-viewer.component.ts +0 -103
  377. package/src/app/modules/fabrikantencore/fabrikantencore.module.spec.ts +0 -13
  378. package/src/app/modules/fabrikantencore/fabrikantencore.module.ts +0 -260
  379. package/src/app/modules/fabrikantencore/helpers/auth.guard.ts +0 -28
  380. package/src/app/modules/fabrikantencore/helpers/basic-auth.interceptor.ts +0 -24
  381. package/src/app/modules/fabrikantencore/helpers/error.interceptor.ts +0 -24
  382. package/src/app/modules/fabrikantencore/services/authentication.service.ts +0 -55
  383. package/src/app/modules/fabrikantencore/services/bestek.service.ts +0 -126
  384. package/src/app/modules/fabrikantencore/services/fabrikanten.service.ts +0 -624
  385. package/src/app/modules/fabrikantencore/services/importsets.service.ts +0 -136
  386. package/src/app/modules/fabrikantencore/services/mobile.service.ts +0 -41
  387. package/src/app/modules/fabrikantencore/services/navigate.service.ts +0 -32
  388. package/src/app/modules/fabrikantencore/services/photo.service.ts +0 -121
  389. package/src/app/modules/fabrikantencore/services/products.service.ts +0 -276
  390. package/src/app/modules/fabrikantencore/services/projectsetting.service.ts +0 -90
  391. package/src/app/modules/fabrikantencore/services/svg.service.ts +0 -84
  392. package/src/app/modules/fabrikantencore/services/translate.service.ts +0 -331
  393. package/src/app/modules/fabrikantencore/services/webgl.service.ts +0 -72
  394. package/src/app/modules/fabrikantencore/swagger/SwaggerClient.ts +0 -9706
  395. package/src/assets/.gitkeep +0 -0
  396. package/src/assets/bouwconnect-achtergrond.png +0 -0
  397. package/src/assets/flags/1x1/ac.svg +0 -76
  398. package/src/assets/flags/1x1/ad.svg +0 -148
  399. package/src/assets/flags/1x1/ae.svg +0 -6
  400. package/src/assets/flags/1x1/af.svg +0 -81
  401. package/src/assets/flags/1x1/ag.svg +0 -14
  402. package/src/assets/flags/1x1/ai.svg +0 -758
  403. package/src/assets/flags/1x1/al.svg +0 -5
  404. package/src/assets/flags/1x1/am.svg +0 -5
  405. package/src/assets/flags/1x1/ao.svg +0 -13
  406. package/src/assets/flags/1x1/aq.svg +0 -5
  407. package/src/assets/flags/1x1/ar.svg +0 -32
  408. package/src/assets/flags/1x1/as.svg +0 -73
  409. package/src/assets/flags/1x1/at.svg +0 -6
  410. package/src/assets/flags/1x1/au.svg +0 -8
  411. package/src/assets/flags/1x1/aw.svg +0 -186
  412. package/src/assets/flags/1x1/ax.svg +0 -18
  413. package/src/assets/flags/1x1/az.svg +0 -8
  414. package/src/assets/flags/1x1/ba.svg +0 -12
  415. package/src/assets/flags/1x1/bb.svg +0 -6
  416. package/src/assets/flags/1x1/bd.svg +0 -4
  417. package/src/assets/flags/1x1/be.svg +0 -7
  418. package/src/assets/flags/1x1/bf.svg +0 -7
  419. package/src/assets/flags/1x1/bg.svg +0 -7
  420. package/src/assets/flags/1x1/bh.svg +0 -4
  421. package/src/assets/flags/1x1/bi.svg +0 -15
  422. package/src/assets/flags/1x1/bj.svg +0 -14
  423. package/src/assets/flags/1x1/bl.svg +0 -7
  424. package/src/assets/flags/1x1/bm.svg +0 -97
  425. package/src/assets/flags/1x1/bn.svg +0 -36
  426. package/src/assets/flags/1x1/bo.svg +0 -678
  427. package/src/assets/flags/1x1/bq.svg +0 -5
  428. package/src/assets/flags/1x1/br.svg +0 -45
  429. package/src/assets/flags/1x1/bs.svg +0 -13
  430. package/src/assets/flags/1x1/bt.svg +0 -89
  431. package/src/assets/flags/1x1/bv.svg +0 -13
  432. package/src/assets/flags/1x1/bw.svg +0 -7
  433. package/src/assets/flags/1x1/by.svg +0 -22
  434. package/src/assets/flags/1x1/bz.svg +0 -145
  435. package/src/assets/flags/1x1/ca.svg +0 -4
  436. package/src/assets/flags/1x1/cc.svg +0 -19
  437. package/src/assets/flags/1x1/cd.svg +0 -12
  438. package/src/assets/flags/1x1/cefta.svg +0 -13
  439. package/src/assets/flags/1x1/cf.svg +0 -15
  440. package/src/assets/flags/1x1/cg.svg +0 -12
  441. package/src/assets/flags/1x1/ch.svg +0 -9
  442. package/src/assets/flags/1x1/ci.svg +0 -7
  443. package/src/assets/flags/1x1/ck.svg +0 -9
  444. package/src/assets/flags/1x1/cl.svg +0 -13
  445. package/src/assets/flags/1x1/cm.svg +0 -15
  446. package/src/assets/flags/1x1/cn.svg +0 -11
  447. package/src/assets/flags/1x1/co.svg +0 -7
  448. package/src/assets/flags/1x1/cp.svg +0 -7
  449. package/src/assets/flags/1x1/cr.svg +0 -7
  450. package/src/assets/flags/1x1/cu.svg +0 -13
  451. package/src/assets/flags/1x1/cv.svg +0 -13
  452. package/src/assets/flags/1x1/cw.svg +0 -14
  453. package/src/assets/flags/1x1/cx.svg +0 -15
  454. package/src/assets/flags/1x1/cy.svg +0 -6
  455. package/src/assets/flags/1x1/cz.svg +0 -5
  456. package/src/assets/flags/1x1/de.svg +0 -5
  457. package/src/assets/flags/1x1/dg.svg +0 -129
  458. package/src/assets/flags/1x1/dj.svg +0 -13
  459. package/src/assets/flags/1x1/dk.svg +0 -5
  460. package/src/assets/flags/1x1/dm.svg +0 -152
  461. package/src/assets/flags/1x1/do.svg +0 -6745
  462. package/src/assets/flags/1x1/dz.svg +0 -5
  463. package/src/assets/flags/1x1/ea.svg +0 -547
  464. package/src/assets/flags/1x1/ec.svg +0 -138
  465. package/src/assets/flags/1x1/ee.svg +0 -7
  466. package/src/assets/flags/1x1/eg.svg +0 -38
  467. package/src/assets/flags/1x1/eh.svg +0 -11
  468. package/src/assets/flags/1x1/er.svg +0 -13
  469. package/src/assets/flags/1x1/es-ct.svg +0 -4
  470. package/src/assets/flags/1x1/es-ga.svg +0 -187
  471. package/src/assets/flags/1x1/es.svg +0 -547
  472. package/src/assets/flags/1x1/et.svg +0 -14
  473. package/src/assets/flags/1x1/eu.svg +0 -28
  474. package/src/assets/flags/1x1/fi.svg +0 -5
  475. package/src/assets/flags/1x1/fj.svg +0 -123
  476. package/src/assets/flags/1x1/fk.svg +0 -89
  477. package/src/assets/flags/1x1/fm.svg +0 -11
  478. package/src/assets/flags/1x1/fo.svg +0 -12
  479. package/src/assets/flags/1x1/fr.svg +0 -7
  480. package/src/assets/flags/1x1/ga.svg +0 -7
  481. package/src/assets/flags/1x1/gb-eng.svg +0 -5
  482. package/src/assets/flags/1x1/gb-nir.svg +0 -131
  483. package/src/assets/flags/1x1/gb-sct.svg +0 -4
  484. package/src/assets/flags/1x1/gb-wls.svg +0 -9
  485. package/src/assets/flags/1x1/gb.svg +0 -7
  486. package/src/assets/flags/1x1/gd.svg +0 -27
  487. package/src/assets/flags/1x1/ge.svg +0 -6
  488. package/src/assets/flags/1x1/gf.svg +0 -7
  489. package/src/assets/flags/1x1/gg.svg +0 -9
  490. package/src/assets/flags/1x1/gh.svg +0 -6
  491. package/src/assets/flags/1x1/gi.svg +0 -32
  492. package/src/assets/flags/1x1/gl.svg +0 -4
  493. package/src/assets/flags/1x1/gm.svg +0 -9
  494. package/src/assets/flags/1x1/gn.svg +0 -7
  495. package/src/assets/flags/1x1/gp.svg +0 -7
  496. package/src/assets/flags/1x1/gq.svg +0 -23
  497. package/src/assets/flags/1x1/gr.svg +0 -16
  498. package/src/assets/flags/1x1/gs.svg +0 -132
  499. package/src/assets/flags/1x1/gt.svg +0 -220
  500. package/src/assets/flags/1x1/gu.svg +0 -23
  501. package/src/assets/flags/1x1/gw.svg +0 -15
  502. package/src/assets/flags/1x1/gy.svg +0 -9
  503. package/src/assets/flags/1x1/hk.svg +0 -30
  504. package/src/assets/flags/1x1/hm.svg +0 -8
  505. package/src/assets/flags/1x1/hn.svg +0 -18
  506. package/src/assets/flags/1x1/hr.svg +0 -56
  507. package/src/assets/flags/1x1/ht.svg +0 -116
  508. package/src/assets/flags/1x1/hu.svg +0 -7
  509. package/src/assets/flags/1x1/ic.svg +0 -7
  510. package/src/assets/flags/1x1/id.svg +0 -4
  511. package/src/assets/flags/1x1/ie.svg +0 -7
  512. package/src/assets/flags/1x1/il.svg +0 -14
  513. package/src/assets/flags/1x1/im.svg +0 -36
  514. package/src/assets/flags/1x1/in.svg +0 -25
  515. package/src/assets/flags/1x1/io.svg +0 -129
  516. package/src/assets/flags/1x1/iq.svg +0 -10
  517. package/src/assets/flags/1x1/ir.svg +0 -219
  518. package/src/assets/flags/1x1/is.svg +0 -12
  519. package/src/assets/flags/1x1/it.svg +0 -7
  520. package/src/assets/flags/1x1/je.svg +0 -44
  521. package/src/assets/flags/1x1/jm.svg +0 -8
  522. package/src/assets/flags/1x1/jo.svg +0 -16
  523. package/src/assets/flags/1x1/jp.svg +0 -11
  524. package/src/assets/flags/1x1/ke.svg +0 -23
  525. package/src/assets/flags/1x1/kg.svg +0 -15
  526. package/src/assets/flags/1x1/kh.svg +0 -61
  527. package/src/assets/flags/1x1/ki.svg +0 -36
  528. package/src/assets/flags/1x1/km.svg +0 -16
  529. package/src/assets/flags/1x1/kn.svg +0 -14
  530. package/src/assets/flags/1x1/kp.svg +0 -15
  531. package/src/assets/flags/1x1/kr.svg +0 -17
  532. package/src/assets/flags/1x1/kw.svg +0 -13
  533. package/src/assets/flags/1x1/ky.svg +0 -109
  534. package/src/assets/flags/1x1/kz.svg +0 -23
  535. package/src/assets/flags/1x1/la.svg +0 -12
  536. package/src/assets/flags/1x1/lb.svg +0 -15
  537. package/src/assets/flags/1x1/lc.svg +0 -8
  538. package/src/assets/flags/1x1/li.svg +0 -43
  539. package/src/assets/flags/1x1/lk.svg +0 -22
  540. package/src/assets/flags/1x1/lr.svg +0 -14
  541. package/src/assets/flags/1x1/ls.svg +0 -8
  542. package/src/assets/flags/1x1/lt.svg +0 -7
  543. package/src/assets/flags/1x1/lu.svg +0 -5
  544. package/src/assets/flags/1x1/lv.svg +0 -6
  545. package/src/assets/flags/1x1/ly.svg +0 -13
  546. package/src/assets/flags/1x1/ma.svg +0 -4
  547. package/src/assets/flags/1x1/mc.svg +0 -6
  548. package/src/assets/flags/1x1/md.svg +0 -71
  549. package/src/assets/flags/1x1/me.svg +0 -118
  550. package/src/assets/flags/1x1/mf.svg +0 -7
  551. package/src/assets/flags/1x1/mg.svg +0 -7
  552. package/src/assets/flags/1x1/mh.svg +0 -8
  553. package/src/assets/flags/1x1/mk.svg +0 -5
  554. package/src/assets/flags/1x1/ml.svg +0 -7
  555. package/src/assets/flags/1x1/mm.svg +0 -10
  556. package/src/assets/flags/1x1/mn.svg +0 -14
  557. package/src/assets/flags/1x1/mo.svg +0 -9
  558. package/src/assets/flags/1x1/mp.svg +0 -86
  559. package/src/assets/flags/1x1/mq.svg +0 -7
  560. package/src/assets/flags/1x1/mr.svg +0 -6
  561. package/src/assets/flags/1x1/ms.svg +0 -25
  562. package/src/assets/flags/1x1/mt.svg +0 -50
  563. package/src/assets/flags/1x1/mu.svg +0 -8
  564. package/src/assets/flags/1x1/mv.svg +0 -6
  565. package/src/assets/flags/1x1/mw.svg +0 -15
  566. package/src/assets/flags/1x1/mx.svg +0 -378
  567. package/src/assets/flags/1x1/my.svg +0 -7
  568. package/src/assets/flags/1x1/mz.svg +0 -21
  569. package/src/assets/flags/1x1/na.svg +0 -16
  570. package/src/assets/flags/1x1/nc.svg +0 -12
  571. package/src/assets/flags/1x1/ne.svg +0 -6
  572. package/src/assets/flags/1x1/nf.svg +0 -11
  573. package/src/assets/flags/1x1/ng.svg +0 -6
  574. package/src/assets/flags/1x1/ni.svg +0 -129
  575. package/src/assets/flags/1x1/nl.svg +0 -5
  576. package/src/assets/flags/1x1/no.svg +0 -7
  577. package/src/assets/flags/1x1/np.svg +0 -19
  578. package/src/assets/flags/1x1/nr.svg +0 -12
  579. package/src/assets/flags/1x1/nu.svg +0 -10
  580. package/src/assets/flags/1x1/nz.svg +0 -36
  581. package/src/assets/flags/1x1/om.svg +0 -115
  582. package/src/assets/flags/1x1/pa.svg +0 -13
  583. package/src/assets/flags/1x1/pe.svg +0 -244
  584. package/src/assets/flags/1x1/pf.svg +0 -18
  585. package/src/assets/flags/1x1/pg.svg +0 -16
  586. package/src/assets/flags/1x1/ph.svg +0 -8
  587. package/src/assets/flags/1x1/pk.svg +0 -15
  588. package/src/assets/flags/1x1/pl.svg +0 -6
  589. package/src/assets/flags/1x1/pm.svg +0 -7
  590. package/src/assets/flags/1x1/pn.svg +0 -53
  591. package/src/assets/flags/1x1/pr.svg +0 -13
  592. package/src/assets/flags/1x1/ps.svg +0 -15
  593. package/src/assets/flags/1x1/pt.svg +0 -57
  594. package/src/assets/flags/1x1/pw.svg +0 -11
  595. package/src/assets/flags/1x1/py.svg +0 -156
  596. package/src/assets/flags/1x1/qa.svg +0 -4
  597. package/src/assets/flags/1x1/re.svg +0 -7
  598. package/src/assets/flags/1x1/ro.svg +0 -7
  599. package/src/assets/flags/1x1/rs.svg +0 -296
  600. package/src/assets/flags/1x1/ru.svg +0 -7
  601. package/src/assets/flags/1x1/rw.svg +0 -13
  602. package/src/assets/flags/1x1/sa.svg +0 -26
  603. package/src/assets/flags/1x1/sb.svg +0 -13
  604. package/src/assets/flags/1x1/sc.svg +0 -7
  605. package/src/assets/flags/1x1/sd.svg +0 -13
  606. package/src/assets/flags/1x1/se.svg +0 -4
  607. package/src/assets/flags/1x1/sg.svg +0 -13
  608. package/src/assets/flags/1x1/sh.svg +0 -76
  609. package/src/assets/flags/1x1/si.svg +0 -18
  610. package/src/assets/flags/1x1/sj.svg +0 -7
  611. package/src/assets/flags/1x1/sk.svg +0 -9
  612. package/src/assets/flags/1x1/sl.svg +0 -12
  613. package/src/assets/flags/1x1/sm.svg +0 -73
  614. package/src/assets/flags/1x1/sn.svg +0 -8
  615. package/src/assets/flags/1x1/so.svg +0 -11
  616. package/src/assets/flags/1x1/sr.svg +0 -6
  617. package/src/assets/flags/1x1/ss.svg +0 -8
  618. package/src/assets/flags/1x1/st.svg +0 -16
  619. package/src/assets/flags/1x1/sv.svg +0 -594
  620. package/src/assets/flags/1x1/sx.svg +0 -56
  621. package/src/assets/flags/1x1/sy.svg +0 -6
  622. package/src/assets/flags/1x1/sz.svg +0 -34
  623. package/src/assets/flags/1x1/ta.svg +0 -76
  624. package/src/assets/flags/1x1/tc.svg +0 -50
  625. package/src/assets/flags/1x1/td.svg +0 -7
  626. package/src/assets/flags/1x1/tf.svg +0 -15
  627. package/src/assets/flags/1x1/tg.svg +0 -14
  628. package/src/assets/flags/1x1/th.svg +0 -7
  629. package/src/assets/flags/1x1/tj.svg +0 -26
  630. package/src/assets/flags/1x1/tk.svg +0 -5
  631. package/src/assets/flags/1x1/tl.svg +0 -13
  632. package/src/assets/flags/1x1/tm.svg +0 -202
  633. package/src/assets/flags/1x1/tn.svg +0 -13
  634. package/src/assets/flags/1x1/to.svg +0 -10
  635. package/src/assets/flags/1x1/tr.svg +0 -8
  636. package/src/assets/flags/1x1/tt.svg +0 -7
  637. package/src/assets/flags/1x1/tv.svg +0 -9
  638. package/src/assets/flags/1x1/tw.svg +0 -32
  639. package/src/assets/flags/1x1/tz.svg +0 -15
  640. package/src/assets/flags/1x1/ua.svg +0 -6
  641. package/src/assets/flags/1x1/ug.svg +0 -30
  642. package/src/assets/flags/1x1/um.svg +0 -15
  643. package/src/assets/flags/1x1/un.svg +0 -16
  644. package/src/assets/flags/1x1/us.svg +0 -10
  645. package/src/assets/flags/1x1/uy.svg +0 -28
  646. package/src/assets/flags/1x1/uz.svg +0 -30
  647. package/src/assets/flags/1x1/va.svg +0 -479
  648. package/src/assets/flags/1x1/vc.svg +0 -8
  649. package/src/assets/flags/1x1/ve.svg +0 -26
  650. package/src/assets/flags/1x1/vg.svg +0 -63
  651. package/src/assets/flags/1x1/vi.svg +0 -28
  652. package/src/assets/flags/1x1/vn.svg +0 -11
  653. package/src/assets/flags/1x1/vu.svg +0 -21
  654. package/src/assets/flags/1x1/wf.svg +0 -7
  655. package/src/assets/flags/1x1/ws.svg +0 -7
  656. package/src/assets/flags/1x1/xk.svg +0 -8
  657. package/src/assets/flags/1x1/xx.svg +0 -4
  658. package/src/assets/flags/1x1/ye.svg +0 -7
  659. package/src/assets/flags/1x1/yt.svg +0 -7
  660. package/src/assets/flags/1x1/za.svg +0 -17
  661. package/src/assets/flags/1x1/zm.svg +0 -27
  662. package/src/assets/flags/1x1/zw.svg +0 -21
  663. package/src/assets/flags/4x3/ac.svg +0 -76
  664. package/src/assets/flags/4x3/ad.svg +0 -150
  665. package/src/assets/flags/4x3/ae.svg +0 -6
  666. package/src/assets/flags/4x3/af.svg +0 -81
  667. package/src/assets/flags/4x3/ag.svg +0 -14
  668. package/src/assets/flags/4x3/ai.svg +0 -758
  669. package/src/assets/flags/4x3/al.svg +0 -5
  670. package/src/assets/flags/4x3/am.svg +0 -5
  671. package/src/assets/flags/4x3/ao.svg +0 -13
  672. package/src/assets/flags/4x3/aq.svg +0 -5
  673. package/src/assets/flags/4x3/ar.svg +0 -32
  674. package/src/assets/flags/4x3/as.svg +0 -72
  675. package/src/assets/flags/4x3/at.svg +0 -6
  676. package/src/assets/flags/4x3/au.svg +0 -8
  677. package/src/assets/flags/4x3/aw.svg +0 -186
  678. package/src/assets/flags/4x3/ax.svg +0 -18
  679. package/src/assets/flags/4x3/az.svg +0 -8
  680. package/src/assets/flags/4x3/ba.svg +0 -12
  681. package/src/assets/flags/4x3/bb.svg +0 -6
  682. package/src/assets/flags/4x3/bd.svg +0 -4
  683. package/src/assets/flags/4x3/be.svg +0 -7
  684. package/src/assets/flags/4x3/bf.svg +0 -7
  685. package/src/assets/flags/4x3/bg.svg +0 -7
  686. package/src/assets/flags/4x3/bh.svg +0 -4
  687. package/src/assets/flags/4x3/bi.svg +0 -15
  688. package/src/assets/flags/4x3/bj.svg +0 -14
  689. package/src/assets/flags/4x3/bl.svg +0 -7
  690. package/src/assets/flags/4x3/bm.svg +0 -97
  691. package/src/assets/flags/4x3/bn.svg +0 -36
  692. package/src/assets/flags/4x3/bo.svg +0 -676
  693. package/src/assets/flags/4x3/bq.svg +0 -5
  694. package/src/assets/flags/4x3/br.svg +0 -45
  695. package/src/assets/flags/4x3/bs.svg +0 -13
  696. package/src/assets/flags/4x3/bt.svg +0 -89
  697. package/src/assets/flags/4x3/bv.svg +0 -13
  698. package/src/assets/flags/4x3/bw.svg +0 -7
  699. package/src/assets/flags/4x3/by.svg +0 -20
  700. package/src/assets/flags/4x3/bz.svg +0 -145
  701. package/src/assets/flags/4x3/ca.svg +0 -4
  702. package/src/assets/flags/4x3/cc.svg +0 -19
  703. package/src/assets/flags/4x3/cd.svg +0 -5
  704. package/src/assets/flags/4x3/cefta.svg +0 -13
  705. package/src/assets/flags/4x3/cf.svg +0 -15
  706. package/src/assets/flags/4x3/cg.svg +0 -12
  707. package/src/assets/flags/4x3/ch.svg +0 -9
  708. package/src/assets/flags/4x3/ci.svg +0 -7
  709. package/src/assets/flags/4x3/ck.svg +0 -9
  710. package/src/assets/flags/4x3/cl.svg +0 -13
  711. package/src/assets/flags/4x3/cm.svg +0 -15
  712. package/src/assets/flags/4x3/cn.svg +0 -11
  713. package/src/assets/flags/4x3/co.svg +0 -7
  714. package/src/assets/flags/4x3/cp.svg +0 -7
  715. package/src/assets/flags/4x3/cr.svg +0 -7
  716. package/src/assets/flags/4x3/cu.svg +0 -13
  717. package/src/assets/flags/4x3/cv.svg +0 -13
  718. package/src/assets/flags/4x3/cw.svg +0 -14
  719. package/src/assets/flags/4x3/cx.svg +0 -15
  720. package/src/assets/flags/4x3/cy.svg +0 -6
  721. package/src/assets/flags/4x3/cz.svg +0 -5
  722. package/src/assets/flags/4x3/de.svg +0 -5
  723. package/src/assets/flags/4x3/dg.svg +0 -129
  724. package/src/assets/flags/4x3/dj.svg +0 -13
  725. package/src/assets/flags/4x3/dk.svg +0 -5
  726. package/src/assets/flags/4x3/dm.svg +0 -152
  727. package/src/assets/flags/4x3/do.svg +0 -6745
  728. package/src/assets/flags/4x3/dz.svg +0 -5
  729. package/src/assets/flags/4x3/ea.svg +0 -544
  730. package/src/assets/flags/4x3/ec.svg +0 -138
  731. package/src/assets/flags/4x3/ee.svg +0 -7
  732. package/src/assets/flags/4x3/eg.svg +0 -38
  733. package/src/assets/flags/4x3/eh.svg +0 -16
  734. package/src/assets/flags/4x3/er.svg +0 -8
  735. package/src/assets/flags/4x3/es-ct.svg +0 -4
  736. package/src/assets/flags/4x3/es-ga.svg +0 -187
  737. package/src/assets/flags/4x3/es.svg +0 -544
  738. package/src/assets/flags/4x3/et.svg +0 -14
  739. package/src/assets/flags/4x3/eu.svg +0 -28
  740. package/src/assets/flags/4x3/fi.svg +0 -5
  741. package/src/assets/flags/4x3/fj.svg +0 -120
  742. package/src/assets/flags/4x3/fk.svg +0 -90
  743. package/src/assets/flags/4x3/fm.svg +0 -11
  744. package/src/assets/flags/4x3/fo.svg +0 -12
  745. package/src/assets/flags/4x3/fr.svg +0 -7
  746. package/src/assets/flags/4x3/ga.svg +0 -7
  747. package/src/assets/flags/4x3/gb-eng.svg +0 -5
  748. package/src/assets/flags/4x3/gb-nir.svg +0 -132
  749. package/src/assets/flags/4x3/gb-sct.svg +0 -4
  750. package/src/assets/flags/4x3/gb-wls.svg +0 -9
  751. package/src/assets/flags/4x3/gb.svg +0 -7
  752. package/src/assets/flags/4x3/gd.svg +0 -27
  753. package/src/assets/flags/4x3/ge.svg +0 -6
  754. package/src/assets/flags/4x3/gf.svg +0 -7
  755. package/src/assets/flags/4x3/gg.svg +0 -9
  756. package/src/assets/flags/4x3/gh.svg +0 -6
  757. package/src/assets/flags/4x3/gi.svg +0 -32
  758. package/src/assets/flags/4x3/gl.svg +0 -4
  759. package/src/assets/flags/4x3/gm.svg +0 -14
  760. package/src/assets/flags/4x3/gn.svg +0 -7
  761. package/src/assets/flags/4x3/gp.svg +0 -7
  762. package/src/assets/flags/4x3/gq.svg +0 -23
  763. package/src/assets/flags/4x3/gr.svg +0 -16
  764. package/src/assets/flags/4x3/gs.svg +0 -133
  765. package/src/assets/flags/4x3/gt.svg +0 -220
  766. package/src/assets/flags/4x3/gu.svg +0 -23
  767. package/src/assets/flags/4x3/gw.svg +0 -13
  768. package/src/assets/flags/4x3/gy.svg +0 -9
  769. package/src/assets/flags/4x3/hk.svg +0 -30
  770. package/src/assets/flags/4x3/hm.svg +0 -8
  771. package/src/assets/flags/4x3/hn.svg +0 -18
  772. package/src/assets/flags/4x3/hr.svg +0 -58
  773. package/src/assets/flags/4x3/ht.svg +0 -116
  774. package/src/assets/flags/4x3/hu.svg +0 -7
  775. package/src/assets/flags/4x3/ic.svg +0 -7
  776. package/src/assets/flags/4x3/id.svg +0 -4
  777. package/src/assets/flags/4x3/ie.svg +0 -7
  778. package/src/assets/flags/4x3/il.svg +0 -14
  779. package/src/assets/flags/4x3/im.svg +0 -36
  780. package/src/assets/flags/4x3/in.svg +0 -25
  781. package/src/assets/flags/4x3/io.svg +0 -129
  782. package/src/assets/flags/4x3/iq.svg +0 -10
  783. package/src/assets/flags/4x3/ir.svg +0 -219
  784. package/src/assets/flags/4x3/is.svg +0 -12
  785. package/src/assets/flags/4x3/it.svg +0 -7
  786. package/src/assets/flags/4x3/je.svg +0 -45
  787. package/src/assets/flags/4x3/jm.svg +0 -8
  788. package/src/assets/flags/4x3/jo.svg +0 -16
  789. package/src/assets/flags/4x3/jp.svg +0 -11
  790. package/src/assets/flags/4x3/ke.svg +0 -23
  791. package/src/assets/flags/4x3/kg.svg +0 -15
  792. package/src/assets/flags/4x3/kh.svg +0 -61
  793. package/src/assets/flags/4x3/ki.svg +0 -36
  794. package/src/assets/flags/4x3/km.svg +0 -16
  795. package/src/assets/flags/4x3/kn.svg +0 -14
  796. package/src/assets/flags/4x3/kp.svg +0 -15
  797. package/src/assets/flags/4x3/kr.svg +0 -24
  798. package/src/assets/flags/4x3/kw.svg +0 -13
  799. package/src/assets/flags/4x3/ky.svg +0 -109
  800. package/src/assets/flags/4x3/kz.svg +0 -23
  801. package/src/assets/flags/4x3/la.svg +0 -12
  802. package/src/assets/flags/4x3/lb.svg +0 -15
  803. package/src/assets/flags/4x3/lc.svg +0 -8
  804. package/src/assets/flags/4x3/li.svg +0 -43
  805. package/src/assets/flags/4x3/lk.svg +0 -22
  806. package/src/assets/flags/4x3/lr.svg +0 -14
  807. package/src/assets/flags/4x3/ls.svg +0 -8
  808. package/src/assets/flags/4x3/lt.svg +0 -7
  809. package/src/assets/flags/4x3/lu.svg +0 -5
  810. package/src/assets/flags/4x3/lv.svg +0 -6
  811. package/src/assets/flags/4x3/ly.svg +0 -13
  812. package/src/assets/flags/4x3/ma.svg +0 -4
  813. package/src/assets/flags/4x3/mc.svg +0 -6
  814. package/src/assets/flags/4x3/md.svg +0 -70
  815. package/src/assets/flags/4x3/me.svg +0 -116
  816. package/src/assets/flags/4x3/mf.svg +0 -7
  817. package/src/assets/flags/4x3/mg.svg +0 -7
  818. package/src/assets/flags/4x3/mh.svg +0 -7
  819. package/src/assets/flags/4x3/mk.svg +0 -5
  820. package/src/assets/flags/4x3/ml.svg +0 -7
  821. package/src/assets/flags/4x3/mm.svg +0 -12
  822. package/src/assets/flags/4x3/mn.svg +0 -14
  823. package/src/assets/flags/4x3/mo.svg +0 -9
  824. package/src/assets/flags/4x3/mp.svg +0 -86
  825. package/src/assets/flags/4x3/mq.svg +0 -7
  826. package/src/assets/flags/4x3/mr.svg +0 -6
  827. package/src/assets/flags/4x3/ms.svg +0 -33
  828. package/src/assets/flags/4x3/mt.svg +0 -49
  829. package/src/assets/flags/4x3/mu.svg +0 -8
  830. package/src/assets/flags/4x3/mv.svg +0 -6
  831. package/src/assets/flags/4x3/mw.svg +0 -10
  832. package/src/assets/flags/4x3/mx.svg +0 -382
  833. package/src/assets/flags/4x3/my.svg +0 -7
  834. package/src/assets/flags/4x3/mz.svg +0 -21
  835. package/src/assets/flags/4x3/na.svg +0 -16
  836. package/src/assets/flags/4x3/nc.svg +0 -13
  837. package/src/assets/flags/4x3/ne.svg +0 -6
  838. package/src/assets/flags/4x3/nf.svg +0 -9
  839. package/src/assets/flags/4x3/ng.svg +0 -6
  840. package/src/assets/flags/4x3/ni.svg +0 -129
  841. package/src/assets/flags/4x3/nl.svg +0 -5
  842. package/src/assets/flags/4x3/no.svg +0 -7
  843. package/src/assets/flags/4x3/np.svg +0 -14
  844. package/src/assets/flags/4x3/nr.svg +0 -12
  845. package/src/assets/flags/4x3/nu.svg +0 -10
  846. package/src/assets/flags/4x3/nz.svg +0 -36
  847. package/src/assets/flags/4x3/om.svg +0 -115
  848. package/src/assets/flags/4x3/pa.svg +0 -14
  849. package/src/assets/flags/4x3/pe.svg +0 -244
  850. package/src/assets/flags/4x3/pf.svg +0 -19
  851. package/src/assets/flags/4x3/pg.svg +0 -9
  852. package/src/assets/flags/4x3/ph.svg +0 -6
  853. package/src/assets/flags/4x3/pk.svg +0 -15
  854. package/src/assets/flags/4x3/pl.svg +0 -6
  855. package/src/assets/flags/4x3/pm.svg +0 -7
  856. package/src/assets/flags/4x3/pn.svg +0 -53
  857. package/src/assets/flags/4x3/pr.svg +0 -13
  858. package/src/assets/flags/4x3/ps.svg +0 -15
  859. package/src/assets/flags/4x3/pt.svg +0 -57
  860. package/src/assets/flags/4x3/pw.svg +0 -11
  861. package/src/assets/flags/4x3/py.svg +0 -157
  862. package/src/assets/flags/4x3/qa.svg +0 -4
  863. package/src/assets/flags/4x3/re.svg +0 -7
  864. package/src/assets/flags/4x3/ro.svg +0 -7
  865. package/src/assets/flags/4x3/rs.svg +0 -292
  866. package/src/assets/flags/4x3/ru.svg +0 -7
  867. package/src/assets/flags/4x3/rw.svg +0 -13
  868. package/src/assets/flags/4x3/sa.svg +0 -26
  869. package/src/assets/flags/4x3/sb.svg +0 -13
  870. package/src/assets/flags/4x3/sc.svg +0 -7
  871. package/src/assets/flags/4x3/sd.svg +0 -13
  872. package/src/assets/flags/4x3/se.svg +0 -4
  873. package/src/assets/flags/4x3/sg.svg +0 -13
  874. package/src/assets/flags/4x3/sh.svg +0 -76
  875. package/src/assets/flags/4x3/si.svg +0 -18
  876. package/src/assets/flags/4x3/sj.svg +0 -7
  877. package/src/assets/flags/4x3/sk.svg +0 -9
  878. package/src/assets/flags/4x3/sl.svg +0 -7
  879. package/src/assets/flags/4x3/sm.svg +0 -75
  880. package/src/assets/flags/4x3/sn.svg +0 -8
  881. package/src/assets/flags/4x3/so.svg +0 -11
  882. package/src/assets/flags/4x3/sr.svg +0 -6
  883. package/src/assets/flags/4x3/ss.svg +0 -8
  884. package/src/assets/flags/4x3/st.svg +0 -16
  885. package/src/assets/flags/4x3/sv.svg +0 -594
  886. package/src/assets/flags/4x3/sx.svg +0 -56
  887. package/src/assets/flags/4x3/sy.svg +0 -6
  888. package/src/assets/flags/4x3/sz.svg +0 -34
  889. package/src/assets/flags/4x3/ta.svg +0 -76
  890. package/src/assets/flags/4x3/tc.svg +0 -50
  891. package/src/assets/flags/4x3/td.svg +0 -7
  892. package/src/assets/flags/4x3/tf.svg +0 -15
  893. package/src/assets/flags/4x3/tg.svg +0 -14
  894. package/src/assets/flags/4x3/th.svg +0 -7
  895. package/src/assets/flags/4x3/tj.svg +0 -22
  896. package/src/assets/flags/4x3/tk.svg +0 -5
  897. package/src/assets/flags/4x3/tl.svg +0 -13
  898. package/src/assets/flags/4x3/tm.svg +0 -205
  899. package/src/assets/flags/4x3/tn.svg +0 -13
  900. package/src/assets/flags/4x3/to.svg +0 -10
  901. package/src/assets/flags/4x3/tr.svg +0 -8
  902. package/src/assets/flags/4x3/tt.svg +0 -5
  903. package/src/assets/flags/4x3/tv.svg +0 -9
  904. package/src/assets/flags/4x3/tw.svg +0 -34
  905. package/src/assets/flags/4x3/tz.svg +0 -13
  906. package/src/assets/flags/4x3/ua.svg +0 -6
  907. package/src/assets/flags/4x3/ug.svg +0 -30
  908. package/src/assets/flags/4x3/um.svg +0 -15
  909. package/src/assets/flags/4x3/un.svg +0 -16
  910. package/src/assets/flags/4x3/us.svg +0 -10
  911. package/src/assets/flags/4x3/uy.svg +0 -28
  912. package/src/assets/flags/4x3/uz.svg +0 -30
  913. package/src/assets/flags/4x3/va.svg +0 -479
  914. package/src/assets/flags/4x3/vc.svg +0 -8
  915. package/src/assets/flags/4x3/ve.svg +0 -26
  916. package/src/assets/flags/4x3/vg.svg +0 -63
  917. package/src/assets/flags/4x3/vi.svg +0 -28
  918. package/src/assets/flags/4x3/vn.svg +0 -11
  919. package/src/assets/flags/4x3/vu.svg +0 -21
  920. package/src/assets/flags/4x3/wf.svg +0 -7
  921. package/src/assets/flags/4x3/ws.svg +0 -7
  922. package/src/assets/flags/4x3/xk.svg +0 -8
  923. package/src/assets/flags/4x3/xx.svg +0 -4
  924. package/src/assets/flags/4x3/ye.svg +0 -7
  925. package/src/assets/flags/4x3/yt.svg +0 -7
  926. package/src/assets/flags/4x3/za.svg +0 -17
  927. package/src/assets/flags/4x3/zm.svg +0 -27
  928. package/src/assets/flags/4x3/zw.svg +0 -21
  929. package/src/environments/environment.prod.ts +0 -3
  930. package/src/environments/environment.ts +0 -16
  931. package/src/favicon.ico +0 -0
  932. package/src/index.html +0 -16
  933. package/src/main.ts +0 -12
  934. package/src/polyfills.ts +0 -53
  935. package/src/styles.scss +0 -39
  936. package/src/test.ts +0 -26
  937. package/src/webgl/WebGLQuery.min.js +0 -6
  938. package/src/webgl/WebGLViewerLight.min.js +0 -89
  939. package/src/webgl/gl-matrix.min.js +0 -47
  940. package/tsconfig.app.json +0 -15
  941. package/tsconfig.json +0 -33
  942. package/tsconfig.spec.json +0 -18
@@ -0,0 +1,493 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { SelectProductRequest, SelectFilterOptionRequest, SelectCategoryRequest, SetRangeInputRequest, ResetFilterRequest, ResetAllFiltersRequest, ResetCategoryLayerRequest, RemoveProductSelectionRequest, FabrikantenRequestModel, ResetAllCategoriesRequest, BCBLinkRequestModel, FabrikantenFileRequestModel } from '../swagger/SwaggerClient';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../swagger/SwaggerClient";
5
+ import * as i2 from "./bestek.service";
6
+ import * as i3 from "./translate.service";
7
+ import * as i4 from "./webgl.service";
8
+ import * as i5 from "./svg.service";
9
+ import * as i6 from "./navigate.service";
10
+ export class FabrikantenService {
11
+ constructor(FabrikantenApiClient, BestekService, TranslateService, WebGLService, SVGService, NavigateService) {
12
+ this.FabrikantenApiClient = FabrikantenApiClient;
13
+ this.BestekService = BestekService;
14
+ this.TranslateService = TranslateService;
15
+ this.WebGLService = WebGLService;
16
+ this.SVGService = SVGService;
17
+ this.NavigateService = NavigateService;
18
+ this.Init = false;
19
+ this.Loading = true;
20
+ this.DownloadARKEYAdomiLoading = false;
21
+ this.DownloadIFCLoading = false;
22
+ this.DownloadRevitPluginLoading = false;
23
+ this.Download3DAutoCADDwgLoading = false;
24
+ this.Download3DDxfLoading = false;
25
+ this.Download2DAutoCADDwgLoading = false;
26
+ this.Download2DDxfLoading = false;
27
+ this.DownloadRFALoading = false;
28
+ this.SelectedPhoto = 0;
29
+ this.SelectedTab = "Informatie";
30
+ this.NavigateService.FabrikantenService = this;
31
+ this.SVGService.FabrikantenService = this;
32
+ }
33
+ ResetAllFilters(ChangeDetectorRef) {
34
+ this.Loading = true;
35
+ ChangeDetectorRef.detectChanges();
36
+ var request = new ResetAllFiltersRequest();
37
+ request.sessionId = this.FabrikantenViewModel.sessionId;
38
+ this.FabrikantenApiClient.resetAllFilters(request).subscribe(() => {
39
+ this.ReloadModel(ChangeDetectorRef);
40
+ }, (error) => {
41
+ if (error.status == 400)
42
+ console.log(error.json());
43
+ else {
44
+ console.log('An unexpected error occured');
45
+ console.log(error);
46
+ }
47
+ this.Loading = false;
48
+ ChangeDetectorRef.detectChanges();
49
+ });
50
+ }
51
+ SelectOption(filterid, filteroptionid, ChangeDetectorRef) {
52
+ this.Loading = true;
53
+ ChangeDetectorRef.detectChanges();
54
+ var request = new SelectFilterOptionRequest();
55
+ request.sessionId = this.FabrikantenViewModel.sessionId;
56
+ request.filterOptionId = filteroptionid;
57
+ request.filterId = filterid;
58
+ this.FabrikantenApiClient.selectFilterOption(request).subscribe(() => {
59
+ this.ReloadModel(ChangeDetectorRef);
60
+ }, (error) => {
61
+ if (error.status == 400)
62
+ console.log(error.json());
63
+ else {
64
+ console.log('An unexpected error occured');
65
+ console.log(error);
66
+ }
67
+ this.Loading = false;
68
+ ChangeDetectorRef.detectChanges();
69
+ });
70
+ }
71
+ SetRangeInput(rangeinputid, value, ChangeDetectorRef) {
72
+ this.Loading = true;
73
+ ChangeDetectorRef.detectChanges();
74
+ var request = new SetRangeInputRequest();
75
+ request.sessionId = this.FabrikantenViewModel.sessionId;
76
+ request.rangeInputId = rangeinputid;
77
+ request.value = value;
78
+ this.FabrikantenApiClient.setRangeInput(request).subscribe(() => {
79
+ this.ReloadModel(ChangeDetectorRef);
80
+ }, (error) => {
81
+ if (error.status == 400)
82
+ console.log(error.json());
83
+ else {
84
+ console.log('An unexpected error occured');
85
+ console.log(error);
86
+ }
87
+ this.Loading = false;
88
+ ChangeDetectorRef.detectChanges();
89
+ });
90
+ }
91
+ SelectCategory(category, ChangeDetectorRef) {
92
+ this.Loading = true;
93
+ ChangeDetectorRef.detectChanges();
94
+ var request = new SelectCategoryRequest();
95
+ request.sessionId = this.FabrikantenViewModel.sessionId;
96
+ request.categoryId = category.id;
97
+ request.categoryLayer = category.layer;
98
+ this.FabrikantenApiClient.selectCategory(request).subscribe(() => {
99
+ this.ReloadModel(ChangeDetectorRef);
100
+ }, (error) => {
101
+ if (error.status == 400)
102
+ console.log(error.json());
103
+ else {
104
+ console.log('An unexpected error occured');
105
+ console.log(error);
106
+ }
107
+ this.Loading = false;
108
+ ChangeDetectorRef.detectChanges();
109
+ });
110
+ }
111
+ SelectProduct(product, ChangeDetectorRef) {
112
+ this.Loading = true;
113
+ ChangeDetectorRef.detectChanges();
114
+ var request = new SelectProductRequest();
115
+ request.sessionId = this.FabrikantenViewModel.sessionId;
116
+ request.productId = product.id;
117
+ this.FabrikantenApiClient.selectProduct(request).subscribe(() => {
118
+ this.ReloadModel(ChangeDetectorRef);
119
+ }, (error) => {
120
+ if (error.status == 400)
121
+ console.log(error.json());
122
+ else {
123
+ console.log('An unexpected error occured');
124
+ console.log(error);
125
+ }
126
+ this.Loading = false;
127
+ ChangeDetectorRef.detectChanges();
128
+ });
129
+ }
130
+ ResetSelectionFilter(filter, ChangeDetectorRef) {
131
+ this.Loading = true;
132
+ ChangeDetectorRef.detectChanges();
133
+ var request = new ResetFilterRequest();
134
+ request.filterId = filter.id;
135
+ request.sessionId = this.FabrikantenViewModel.sessionId;
136
+ this.FabrikantenApiClient.resetFilterSelection(request).subscribe(() => {
137
+ this.ReloadModel(ChangeDetectorRef);
138
+ }, (error) => {
139
+ if (error.status == 400)
140
+ console.log(error.json());
141
+ else {
142
+ console.log('An unexpected error occured');
143
+ console.log(error);
144
+ }
145
+ this.Loading = false;
146
+ ChangeDetectorRef.detectChanges();
147
+ });
148
+ }
149
+ ResetAllCategories(ChangeDetectorRef) {
150
+ if (this.FabrikantenViewModel != null) {
151
+ this.Loading = true;
152
+ var request = new ResetAllCategoriesRequest();
153
+ request.sessionId = this.FabrikantenViewModel.sessionId;
154
+ this.FabrikantenApiClient.resetAllCategories(request).subscribe(() => {
155
+ this.ReloadModel(ChangeDetectorRef);
156
+ }, (error) => {
157
+ if (error.status == 400)
158
+ console.log(error.json());
159
+ else {
160
+ console.log('An unexpected error occured');
161
+ console.log(error);
162
+ }
163
+ this.Loading = false;
164
+ ChangeDetectorRef.detectChanges();
165
+ });
166
+ }
167
+ }
168
+ ResetSelectionCategory(categorylayer, ChangeDetectorRef) {
169
+ this.Loading = true;
170
+ ChangeDetectorRef.detectChanges();
171
+ var request = new ResetCategoryLayerRequest();
172
+ request.categoryLayer = categorylayer.layer;
173
+ request.sessionId = this.FabrikantenViewModel.sessionId;
174
+ this.FabrikantenApiClient.resetCategoryLayerSelection(request).subscribe(() => {
175
+ this.ResetAllFilters(ChangeDetectorRef);
176
+ }, (error) => {
177
+ if (error.status == 400)
178
+ console.log(error.json());
179
+ else {
180
+ console.log('An unexpected error occured');
181
+ console.log(error);
182
+ }
183
+ this.Loading = false;
184
+ ChangeDetectorRef.detectChanges();
185
+ });
186
+ }
187
+ RemoveProductSelection(ChangeDetectorRef) {
188
+ if (this.FabrikantenViewModel != null) {
189
+ this.Loading = true;
190
+ var request = new RemoveProductSelectionRequest();
191
+ request.sessionId = this.FabrikantenViewModel.sessionId;
192
+ this.FabrikantenApiClient.removeProductSelection(request).subscribe(() => {
193
+ this.ReloadModel(ChangeDetectorRef);
194
+ }, (error) => {
195
+ if (error.status == 400)
196
+ console.log(error.json());
197
+ else {
198
+ console.log('An unexpected error occured');
199
+ console.log(error);
200
+ }
201
+ this.Loading = false;
202
+ ChangeDetectorRef.detectChanges();
203
+ });
204
+ }
205
+ }
206
+ TabSelectionChanged(tab, ChangeDetectorRef) {
207
+ this.SelectedTab = tab;
208
+ this.TriggerReloads(ChangeDetectorRef);
209
+ }
210
+ GetFirstOpenCategoryLayer() {
211
+ var arraylayers = this.FabrikantenViewModel?.categoryLayers;
212
+ if (arraylayers != null) {
213
+ for (var i = 0; i < arraylayers.length; i++) {
214
+ if (arraylayers[i].selectedOption == 0) {
215
+ return arraylayers[i];
216
+ }
217
+ }
218
+ }
219
+ return null;
220
+ }
221
+ ShowCategories() {
222
+ return this.GetFirstOpenCategoryLayer() != null;
223
+ }
224
+ ShowVariants() {
225
+ var bcbproducts = this.FabrikantenViewModel?.selectedProduct?.fabrikantenBCBProductViewModels;
226
+ if (bcbproducts != null && bcbproducts.length > 1) {
227
+ return true;
228
+ }
229
+ return false;
230
+ }
231
+ OpenBCBLink(wuid) {
232
+ this.Loading = true;
233
+ var request = new BCBLinkRequestModel();
234
+ request.wuid = wuid;
235
+ this.FabrikantenApiClient.getBCBLink(request).subscribe((model) => {
236
+ window.open(model.url, '_blank');
237
+ this.Loading = false;
238
+ }, (error) => {
239
+ if (error.status == 400)
240
+ console.log(error.json());
241
+ else {
242
+ console.log('An unexpected error occured');
243
+ console.log(error);
244
+ }
245
+ this.Loading = false;
246
+ });
247
+ }
248
+ ReloadModel(ChangeDetectorRef) {
249
+ this.Init = false;
250
+ this.LoadFabrikantenViewModel(ChangeDetectorRef);
251
+ }
252
+ LoadFabrikantenViewModel(ChangeDetectorRef) {
253
+ if (!this.Init) {
254
+ this.Init = true;
255
+ this.Loading = true;
256
+ ChangeDetectorRef.detectChanges();
257
+ var request = new FabrikantenRequestModel();
258
+ if (this.FabrikantenViewModel != null) {
259
+ request.sessionId = this.FabrikantenViewModel.sessionId;
260
+ }
261
+ else {
262
+ request.sessionId = "";
263
+ }
264
+ this.FabrikantenApiClient.getFabrikantenViewModel(request).subscribe((model) => {
265
+ this.FabrikantenViewModel = model;
266
+ this.SelectedPhoto = 0;
267
+ this.Loading = false;
268
+ ChangeDetectorRef.detectChanges();
269
+ this.TriggerReloads(ChangeDetectorRef);
270
+ this.NavigateService.RefreshPage();
271
+ }, (error) => {
272
+ if (error.status == 400)
273
+ console.log(error.json());
274
+ else {
275
+ console.log('An unexpected error occured');
276
+ console.log(error);
277
+ }
278
+ this.Loading = false;
279
+ ChangeDetectorRef.detectChanges();
280
+ });
281
+ }
282
+ }
283
+ // Downloads
284
+ DownloadARKEYAdomi() {
285
+ this.DownloadARKEYAdomiLoading = true;
286
+ var request = new FabrikantenFileRequestModel();
287
+ request.sessionId = this.FabrikantenViewModel.sessionId;
288
+ request.fileType = "dhg";
289
+ request.model3D = true;
290
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
291
+ this.StartDownload(model.data, ".dhg");
292
+ this.DownloadARKEYAdomiLoading = false;
293
+ }, (error) => {
294
+ if (error.status == 400)
295
+ console.log(error.json());
296
+ else {
297
+ console.log('An unexpected error occured');
298
+ console.log(error);
299
+ }
300
+ });
301
+ }
302
+ DownloadIFC() {
303
+ this.DownloadIFCLoading = true;
304
+ var request = new FabrikantenFileRequestModel();
305
+ request.sessionId = this.FabrikantenViewModel.sessionId;
306
+ request.fileType = "ifc";
307
+ request.model3D = true;
308
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
309
+ this.StartDownload(model.data, ".ifc");
310
+ this.DownloadIFCLoading = false;
311
+ }, (error) => {
312
+ if (error.status == 400)
313
+ console.log(error.json());
314
+ else {
315
+ console.log('An unexpected error occured');
316
+ console.log(error);
317
+ }
318
+ });
319
+ }
320
+ DownloadRevitPlugin() {
321
+ this.DownloadRevitPluginLoading = false;
322
+ var request = new FabrikantenFileRequestModel();
323
+ request.sessionId = this.FabrikantenViewModel.sessionId;
324
+ request.fileType = "hdhRevit";
325
+ request.model3D = true;
326
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
327
+ this.StartDownload(model.data, ".hdhRevit");
328
+ this.DownloadRevitPluginLoading = false;
329
+ }, (error) => {
330
+ if (error.status == 400)
331
+ console.log(error.json());
332
+ else {
333
+ console.log('An unexpected error occured');
334
+ console.log(error);
335
+ }
336
+ });
337
+ }
338
+ Download3DAutoCADDwg() {
339
+ this.Download3DAutoCADDwgLoading = true;
340
+ var request = new FabrikantenFileRequestModel();
341
+ request.sessionId = this.FabrikantenViewModel.sessionId;
342
+ request.fileType = "dwg";
343
+ request.model3D = true;
344
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
345
+ this.StartDownload(model.data, ".dwg");
346
+ this.Download3DAutoCADDwgLoading = false;
347
+ }, (error) => {
348
+ if (error.status == 400)
349
+ console.log(error.json());
350
+ else {
351
+ console.log('An unexpected error occured');
352
+ console.log(error);
353
+ }
354
+ });
355
+ }
356
+ Download3DDxf() {
357
+ this.Download3DDxfLoading = true;
358
+ var request = new FabrikantenFileRequestModel();
359
+ request.sessionId = this.FabrikantenViewModel.sessionId;
360
+ request.fileType = "dxf";
361
+ request.model3D = true;
362
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
363
+ this.StartDownload(model.data, ".dxf");
364
+ this.Download3DDxfLoading = false;
365
+ }, (error) => {
366
+ if (error.status == 400)
367
+ console.log(error.json());
368
+ else {
369
+ console.log('An unexpected error occured');
370
+ console.log(error);
371
+ }
372
+ });
373
+ }
374
+ Download2DAutoCADDwg() {
375
+ this.Download2DAutoCADDwgLoading = true;
376
+ var request = new FabrikantenFileRequestModel();
377
+ request.sessionId = this.FabrikantenViewModel.sessionId;
378
+ request.fileType = "dwg";
379
+ request.model3D = false;
380
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
381
+ this.StartDownload(model.data, ".dwg");
382
+ this.Download2DAutoCADDwgLoading = false;
383
+ }, (error) => {
384
+ if (error.status == 400)
385
+ console.log(error.json());
386
+ else {
387
+ console.log('An unexpected error occured');
388
+ console.log(error);
389
+ }
390
+ });
391
+ }
392
+ Download2DDxf() {
393
+ this.Download2DDxfLoading = true;
394
+ var request = new FabrikantenFileRequestModel();
395
+ request.sessionId = this.FabrikantenViewModel.sessionId;
396
+ request.fileType = "dxf";
397
+ request.model3D = false;
398
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
399
+ this.StartDownload(model.data, ".dxf");
400
+ this.Download2DDxfLoading = false;
401
+ }, (error) => {
402
+ if (error.status == 400)
403
+ console.log(error.json());
404
+ else {
405
+ console.log('An unexpected error occured');
406
+ console.log(error);
407
+ }
408
+ });
409
+ }
410
+ DownloadRFA() {
411
+ this.DownloadRFALoading = true;
412
+ var request = new FabrikantenFileRequestModel();
413
+ request.sessionId = this.FabrikantenViewModel.sessionId;
414
+ request.fileType = "rfa";
415
+ request.model3D = false;
416
+ this.FabrikantenApiClient.getFabrikantenFileViewModel(request).subscribe((model) => {
417
+ this.StartDownload(model.data, ".rfa");
418
+ this.DownloadRFALoading = false;
419
+ }, (error) => {
420
+ if (error.status == 400)
421
+ console.log(error.json());
422
+ else {
423
+ console.log('An unexpected error occured');
424
+ console.log(error);
425
+ }
426
+ });
427
+ }
428
+ StartDownload(data, extension) {
429
+ if (this.FabrikantenViewModel?.selectedProduct?.id != null) {
430
+ var id = this.FabrikantenViewModel?.selectedProduct?.id;
431
+ var arr = data;
432
+ var byteArray = new Uint8Array(arr);
433
+ var a = window.document.createElement('a');
434
+ var filename = this.TranslateService.GetActiveValueProduct(id);
435
+ filename = filename.replace(/[^a-z0-9]/gi, '_') + extension;
436
+ a.href = window.URL.createObjectURL(new Blob([byteArray], { type: 'application/octet-stream' }));
437
+ a.download = filename;
438
+ // Append anchor to body.
439
+ document.body.appendChild(a);
440
+ a.click();
441
+ // Remove anchor from body
442
+ document.body.removeChild(a);
443
+ }
444
+ else {
445
+ alert('error: no product selected');
446
+ }
447
+ }
448
+ // Reloads
449
+ TriggerReloads(ChangeDetectorRef) {
450
+ var array = this.FabrikantenViewModel.selectedProduct?.fabrikantenBCBProductViewModels;
451
+ if (array != null && array.length == 1) {
452
+ if (this.SelectedTab == "Bestek") {
453
+ this.BestekService.LoadFabrikantenBestekViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
454
+ }
455
+ else if (this.SelectedTab == "3D") {
456
+ this.WebGLService.LoadFabrikanten3DViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
457
+ }
458
+ else if (this.SelectedTab == "2D") {
459
+ this.SVGService.LoadFabrikantenSVGViewModel(this.FabrikantenViewModel.sessionId, ChangeDetectorRef);
460
+ }
461
+ }
462
+ }
463
+ // Breadcrumb
464
+ GetSteps() {
465
+ var returnarray = new Array();
466
+ var array = this.FabrikantenViewModel?.categoryLayers;
467
+ if (array != null) {
468
+ for (var i = 0; i < array.length; i++) {
469
+ if (array[i].selectedOption != 0) {
470
+ var options = array[i].categories;
471
+ if (options != null) {
472
+ for (var j = 0; j < options.length; j++) {
473
+ if (options[j].id === array[i].selectedOption) {
474
+ returnarray.push(options[j]);
475
+ }
476
+ }
477
+ }
478
+ }
479
+ else {
480
+ break;
481
+ }
482
+ }
483
+ }
484
+ return returnarray;
485
+ }
486
+ }
487
+ FabrikantenService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, deps: [{ token: i1.FabrikantenApiClient }, { token: i2.BestekService }, { token: i3.TranslateService }, { token: i4.WebGLService }, { token: i5.SVGService }, { token: i6.NavigateService }], target: i0.ɵɵFactoryTarget.Injectable });
488
+ FabrikantenService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, providedIn: 'root' });
489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: FabrikantenService, decorators: [{
490
+ type: Injectable,
491
+ args: [{ providedIn: 'root' }]
492
+ }], ctorParameters: function () { return [{ type: i1.FabrikantenApiClient }, { type: i2.BestekService }, { type: i3.TranslateService }, { type: i4.WebGLService }, { type: i5.SVGService }, { type: i6.NavigateService }]; } });
493
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFicmlrYW50ZW4uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9mYWJyaWthbnRlbmNvcmUvc2VydmljZXMvZmFicmlrYW50ZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RCxPQUFPLEVBSUwsb0JBQW9CLEVBQ3BCLHlCQUF5QixFQUN6QixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdEIseUJBQXlCLEVBQ3pCLDZCQUE2QixFQUc3Qix1QkFBdUIsRUFFdkIseUJBQXlCLEVBQ3pCLG1CQUFtQixFQUVuQiwyQkFBMkIsRUFFNUIsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7Ozs7QUFRbEMsTUFBTSxPQUFPLGtCQUFrQjtJQW1CN0IsWUFDVSxvQkFBMEMsRUFDMUMsYUFBNEIsRUFDNUIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLFVBQXNCLEVBQ3RCLGVBQWdDO1FBTGhDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXhCbEMsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUV2QixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3hCLDhCQUF5QixHQUFZLEtBQUssQ0FBQztRQUMzQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFDcEMsK0JBQTBCLEdBQVksS0FBSyxDQUFDO1FBQzVDLGdDQUEyQixHQUFZLEtBQUssQ0FBQztRQUM3Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsZ0NBQTJCLEdBQVksS0FBSyxDQUFDO1FBQzdDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0Qyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJcEMsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFFekIsZ0JBQVcsR0FBVyxZQUFZLENBQUM7UUFTekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7UUFDL0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7SUFDNUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxpQkFBb0M7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFbEMsSUFBSSxPQUFPLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDO1FBRTNDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUV4RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDaEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN2QjtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7WUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsUUFBZ0IsRUFBRSxjQUFzQixFQUFFLGlCQUFvQztRQUNoRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7UUFFOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3hDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBRTVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ25FLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLFlBQW9CLEVBQUUsS0FBYSxFQUFFLGlCQUFvQztRQUM1RixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7UUFFekMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ3BDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGNBQWMsQ0FBQyxRQUFzQyxFQUFFLGlCQUFvQztRQUNoRyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLHFCQUFxQixFQUFFLENBQUM7UUFFMUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUNqQyxPQUFPLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUM7UUFFdkMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQy9ELElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLE9BQW9DLEVBQUUsaUJBQW9DO1FBQzdGLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWxDLElBQUksT0FBTyxHQUFHLElBQUksb0JBQW9CLEVBQUUsQ0FBQztRQUV6QyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7UUFDeEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBRS9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtZQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWtDLEVBQUUsaUJBQW9DO1FBQ2xHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWxDLElBQUksT0FBTyxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUN2QyxPQUFPLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDN0IsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBRXhELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ3JFLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN0QyxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsaUJBQW9DO1FBQzVELElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVwQixJQUFJLE9BQU8sR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7WUFFOUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1lBRXhELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNuRSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO29CQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUN2QjtvQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BCO2dCQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGFBQTJDLEVBQUUsaUJBQW9DO1FBQzdHLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWxDLElBQUksT0FBTyxHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQztRQUM5QyxPQUFPLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUM7UUFDNUMsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBRXhELElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzVFLElBQUksQ0FBQyxlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMxQyxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1lBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sc0JBQXNCLENBQUMsaUJBQW9DO1FBQ2hFLElBQUksSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksRUFBRTtZQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUVwQixJQUFJLE9BQU8sR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUM7WUFFbEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1lBRXhELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN2RSxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO29CQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUN2QjtvQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BCO2dCQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVNLG1CQUFtQixDQUFDLEdBQVcsRUFBRSxpQkFBb0M7UUFDMUUsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUM7UUFFdkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSx5QkFBeUI7UUFDOUIsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGNBQWMsQ0FBQztRQUU1RCxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDdkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQzNDLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxDQUFDLEVBQUU7b0JBQ3RDLE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN2QjthQUNGO1NBQ0Y7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixFQUFFLElBQUksSUFBSSxDQUFDO0lBQ2xELENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsK0JBQStCLENBQUM7UUFFOUYsSUFBSSxXQUFXLElBQUksSUFBSSxJQUFJLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pELE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBWTtRQUM3QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUVwQixJQUFJLE9BQU8sR0FBRyxJQUFJLG1CQUFtQixFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFcEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUEyQixFQUFFLEVBQUU7WUFDdEYsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBRWpDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN2QjtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7WUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsaUJBQW9DO1FBQ3JELElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxpQkFBb0M7UUFDbEUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUVsQyxJQUFJLE9BQU8sR0FBRyxJQUFJLHVCQUF1QixFQUFFLENBQUM7WUFFNUMsSUFBSSxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFO2dCQUNyQyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7YUFDekQ7aUJBQ0k7Z0JBQ0gsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDeEI7WUFFRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBMkIsRUFBRSxFQUFFO2dCQUNuRyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBRXJCLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNsQyxJQUFJLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBRXZDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7Z0JBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO29CQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO3FCQUN2QjtvQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7b0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BCO2dCQUVELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixpQkFBaUIsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNwQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVELFlBQVk7SUFFTCxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUV0QyxJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUMvQixJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBRXZCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG1CQUFtQjtRQUN4QixJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO1FBQ3hDLElBQUksT0FBTyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQztRQUVoRCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUM7UUFDeEQsT0FBTyxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFFdkIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQStCLEVBQUUsRUFBRTtZQUMzRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEtBQUssQ0FBQztRQUMxQyxDQUFDLEVBQUUsQ0FBQyxLQUFlLEVBQUUsRUFBRTtZQUNyQixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksR0FBRztnQkFDckIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztpQkFDdkI7Z0JBQ0gsT0FBTyxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0JBQW9CO1FBQ3pCLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUM7UUFDeEMsSUFBSSxPQUFPLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBRWhELE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUN4RCxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBK0IsRUFBRSxFQUFFO1lBQzNHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsS0FBSyxDQUFDO1FBQzNDLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN2QjtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxhQUFhO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUM7UUFFakMsSUFBSSxPQUFPLEdBQUcsSUFBSSwyQkFBMkIsRUFBRSxDQUFDO1FBRWhELE9BQU8sQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQztRQUN4RCxPQUFPLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN6QixPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUV2QixJQUFJLENBQUMsb0JBQW9CLENBQUMsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBK0IsRUFBRSxFQUFFO1lBQzNHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUMsRUFBRSxDQUFDLEtBQWUsRUFBRSxFQUFFO1lBQ3JCLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHO2dCQUNyQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO2lCQUN2QjtnQkFDSCxPQUFPLENBQUMsR0FBRyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQzNDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDcEI7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQztRQUN4QyxJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxLQUFLLENBQUM7UUFDM0MsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztRQUVqQyxJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDcEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUUvQixJQUFJLE9BQU8sR0FBRyxJQUFJLDJCQUEyQixFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDO1FBQ3hELE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXhCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxLQUErQixFQUFFLEVBQUU7WUFDM0csSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDbEMsQ0FBQyxFQUFFLENBQUMsS0FBZSxFQUFFLEVBQUU7WUFDckIsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUc7Z0JBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQ3ZCO2dCQUNILE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLENBQUMsQ0FBQztnQkFDM0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNwQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFTLEVBQUUsU0FBaUI7UUFDL0MsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDMUQsSUFBSSxFQUFFLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFFeEQsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDO1lBQ2YsSUFBSSxTQUFTLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFM0MsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELFFBQVEsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7WUFFNUQsQ0FBQyxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLDBCQUEwQixFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBRXRCLHlCQUF5QjtZQUN6QixRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUM1QixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7WUFHViwwQkFBMEI7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDN0I7YUFDSTtZQUNILEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELFVBQVU7SUFFRixjQUFjLENBQUMsaUJBQW9DO1FBQ3pELElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxlQUFlLEVBQUUsK0JBQStCLENBQUM7UUFFdkYsSUFBSSxLQUFLLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxhQUFhLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQW1CLEVBQUUsaUJBQWlCLENBQUMsQ0FBQzthQUNySDtpQkFDSSxJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFO2dCQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxTQUFtQixFQUFFLGlCQUFpQixDQUFDLENBQUM7YUFDaEg7aUJBQ0ksSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRTtnQkFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBbUIsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO2FBQy9HO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQUVOLFFBQVE7UUFDYixJQUFJLFdBQVcsR0FBRyxJQUFJLEtBQUssRUFBZ0MsQ0FBQztRQUU1RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsY0FBYyxDQUFDO1FBRXRELElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNqQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDckMsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsY0FBYyxJQUFJLENBQUMsRUFBRTtvQkFDaEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQztvQkFFbEMsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO3dCQUNuQixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTs0QkFDdkMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUU7Z0NBQzdDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7NkJBQzlCO3lCQUNGO3FCQUNGO2lCQUNGO3FCQUNJO29CQUNILE1BQU07aUJBQ1A7YUFDRjtTQUNGO1FBRUQsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQzs7K0dBL2tCVSxrQkFBa0I7bUhBQWxCLGtCQUFrQixjQURMLE1BQU07MkZBQ25CLGtCQUFrQjtrQkFEOUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBGYWJyaWthbnRlbkFwaUNsaWVudCxcclxuICBGYWJyaWthbnRlbkZpbHRlclZpZXdNb2RlbCxcclxuICBGYWJyaWthbnRlblZpZXdNb2RlbCxcclxuICBTZWxlY3RQcm9kdWN0UmVxdWVzdCxcclxuICBTZWxlY3RGaWx0ZXJPcHRpb25SZXF1ZXN0LFxyXG4gIFNlbGVjdENhdGVnb3J5UmVxdWVzdCxcclxuICBTZXRSYW5nZUlucHV0UmVxdWVzdCxcclxuICBSZXNldEZpbHRlclJlcXVlc3QsXHJcbiAgUmVzZXRBbGxGaWx0ZXJzUmVxdWVzdCxcclxuICBSZXNldENhdGVnb3J5TGF5ZXJSZXF1ZXN0LFxyXG4gIFJlbW92ZVByb2R1Y3RTZWxlY3Rpb25SZXF1ZXN0LFxyXG4gIEZhYnJpa2FudGVuUHJvZHVjdFZpZXdNb2RlbCxcclxuICBGYWJyaWthbnRlbkNhdGVnb3J5TGF5ZXJWaWV3TW9kZWwsXHJcbiAgRmFicmlrYW50ZW5SZXF1ZXN0TW9kZWwsXHJcbiAgRmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbCxcclxuICBSZXNldEFsbENhdGVnb3JpZXNSZXF1ZXN0LFxyXG4gIEJDQkxpbmtSZXF1ZXN0TW9kZWwsXHJcbiAgQkNCTGlua1Jlc3BvbnNlTW9kZWwsXHJcbiAgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsLFxyXG4gIEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbFxyXG59IGZyb20gJy4uL3N3YWdnZXIvU3dhZ2dlckNsaWVudCc7XHJcbmltcG9ydCB7IEJlc3Rla1NlcnZpY2UgfSBmcm9tICcuL2Jlc3Rlay5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTmF2aWdhdGVTZXJ2aWNlIH0gZnJvbSAnLi9uYXZpZ2F0ZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU1ZHU2VydmljZSB9IGZyb20gJy4vc3ZnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi90cmFuc2xhdGUuc2VydmljZSc7XHJcbmltcG9ydCB7IFdlYkdMU2VydmljZSB9IGZyb20gJy4vd2ViZ2wuc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgRmFicmlrYW50ZW5TZXJ2aWNlIHtcclxuICBwcml2YXRlIEluaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHVibGljIExvYWRpbmc6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBEb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkSUZDTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBEb3dubG9hZFJldml0UGx1Z2luTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBEb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRG93bmxvYWQzRER4ZkxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgRG93bmxvYWQyREF1dG9DQUREd2dMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkMkREeGZMb2FkaW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIERvd25sb2FkUkZBTG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgRmFicmlrYW50ZW5WaWV3TW9kZWw6IEZhYnJpa2FudGVuVmlld01vZGVsO1xyXG5cclxuICBwdWJsaWMgU2VsZWN0ZWRQaG90bzogbnVtYmVyID0gMDtcclxuXHJcbiAgcHJpdmF0ZSBTZWxlY3RlZFRhYjogc3RyaW5nID0gXCJJbmZvcm1hdGllXCI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBGYWJyaWthbnRlbkFwaUNsaWVudDogRmFicmlrYW50ZW5BcGlDbGllbnQsXHJcbiAgICBwcml2YXRlIEJlc3Rla1NlcnZpY2U6IEJlc3Rla1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIFRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIFdlYkdMU2VydmljZTogV2ViR0xTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBTVkdTZXJ2aWNlOiBTVkdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBOYXZpZ2F0ZVNlcnZpY2U6IE5hdmlnYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy5OYXZpZ2F0ZVNlcnZpY2UuRmFicmlrYW50ZW5TZXJ2aWNlID0gdGhpcztcclxuICAgIHRoaXMuU1ZHU2VydmljZS5GYWJyaWthbnRlblNlcnZpY2UgPSB0aGlzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0QWxsRmlsdGVycyhDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVzZXRBbGxGaWx0ZXJzUmVxdWVzdCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldEFsbEZpbHRlcnMocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTZWxlY3RPcHRpb24oZmlsdGVyaWQ6IG51bWJlciwgZmlsdGVyb3B0aW9uaWQ6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFNlbGVjdEZpbHRlck9wdGlvblJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJPcHRpb25JZCA9IGZpbHRlcm9wdGlvbmlkO1xyXG4gICAgcmVxdWVzdC5maWx0ZXJJZCA9IGZpbHRlcmlkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2VsZWN0RmlsdGVyT3B0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuUmVsb2FkTW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2V0UmFuZ2VJbnB1dChyYW5nZWlucHV0aWQ6IG51bWJlciwgdmFsdWU6IG51bWJlciwgQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IFNldFJhbmdlSW5wdXRSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QucmFuZ2VJbnB1dElkID0gcmFuZ2VpbnB1dGlkO1xyXG4gICAgcmVxdWVzdC52YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2V0UmFuZ2VJbnB1dChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdENhdGVnb3J5KGNhdGVnb3J5OiBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgU2VsZWN0Q2F0ZWdvcnlSZXF1ZXN0KCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuY2F0ZWdvcnlJZCA9IGNhdGVnb3J5LmlkO1xyXG4gICAgcmVxdWVzdC5jYXRlZ29yeUxheWVyID0gY2F0ZWdvcnkubGF5ZXI7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5zZWxlY3RDYXRlZ29yeShyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFNlbGVjdFByb2R1Y3QocHJvZHVjdDogRmFicmlrYW50ZW5Qcm9kdWN0Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgU2VsZWN0UHJvZHVjdFJlcXVlc3QoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5wcm9kdWN0SWQgPSBwcm9kdWN0LmlkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuc2VsZWN0UHJvZHVjdChyZXF1ZXN0KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIFJlc2V0U2VsZWN0aW9uRmlsdGVyKGZpbHRlcjogRmFicmlrYW50ZW5GaWx0ZXJWaWV3TW9kZWwsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXNldEZpbHRlclJlcXVlc3QoKTtcclxuICAgIHJlcXVlc3QuZmlsdGVySWQgPSBmaWx0ZXIuaWQ7XHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQucmVzZXRGaWx0ZXJTZWxlY3Rpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBSZXNldEFsbENhdGVnb3JpZXMoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbCAhPSBudWxsKSB7XHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBSZXNldEFsbENhdGVnb3JpZXNSZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldEFsbENhdGVnb3JpZXMocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLlJlbG9hZE1vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVzZXRTZWxlY3Rpb25DYXRlZ29yeShjYXRlZ29yeWxheWVyOiBGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsLCBDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHRoaXMuTG9hZGluZyA9IHRydWU7XHJcbiAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgUmVzZXRDYXRlZ29yeUxheWVyUmVxdWVzdCgpO1xyXG4gICAgcmVxdWVzdC5jYXRlZ29yeUxheWVyID0gY2F0ZWdvcnlsYXllci5sYXllcjtcclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZXNldENhdGVnb3J5TGF5ZXJTZWxlY3Rpb24ocmVxdWVzdCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5SZXNldEFsbEZpbHRlcnMoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgQ2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVtb3ZlUHJvZHVjdFNlbGVjdGlvbihDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsICE9IG51bGwpIHtcclxuICAgICAgdGhpcy5Mb2FkaW5nID0gdHJ1ZTtcclxuXHJcbiAgICAgIHZhciByZXF1ZXN0ID0gbmV3IFJlbW92ZVByb2R1Y3RTZWxlY3Rpb25SZXF1ZXN0KCk7XHJcblxyXG4gICAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG5cclxuICAgICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5yZW1vdmVQcm9kdWN0U2VsZWN0aW9uKHJlcXVlc3QpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5SZWxvYWRNb2RlbChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLkxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIFRhYlNlbGVjdGlvbkNoYW5nZWQodGFiOiBzdHJpbmcsIENoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZik6IHZvaWQge1xyXG4gICAgdGhpcy5TZWxlY3RlZFRhYiA9IHRhYjtcclxuXHJcbiAgICB0aGlzLlRyaWdnZXJSZWxvYWRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBHZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCk6IEZhYnJpa2FudGVuQ2F0ZWdvcnlMYXllclZpZXdNb2RlbCB8IG51bGwge1xyXG4gICAgdmFyIGFycmF5bGF5ZXJzID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbD8uY2F0ZWdvcnlMYXllcnM7XHJcblxyXG4gICAgaWYgKGFycmF5bGF5ZXJzICE9IG51bGwpIHtcclxuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhcnJheWxheWVycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChhcnJheWxheWVyc1tpXS5zZWxlY3RlZE9wdGlvbiA9PSAwKSB7XHJcbiAgICAgICAgICByZXR1cm4gYXJyYXlsYXllcnNbaV07XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgU2hvd0NhdGVnb3JpZXMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5HZXRGaXJzdE9wZW5DYXRlZ29yeUxheWVyKCkgIT0gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTaG93VmFyaWFudHMoKTogYm9vbGVhbiB7XHJcbiAgICB2YXIgYmNicHJvZHVjdHMgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmZhYnJpa2FudGVuQkNCUHJvZHVjdFZpZXdNb2RlbHM7XHJcblxyXG4gICAgaWYgKGJjYnByb2R1Y3RzICE9IG51bGwgJiYgYmNicHJvZHVjdHMubGVuZ3RoID4gMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgT3BlbkJDQkxpbmsod3VpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEJDQkxpbmtSZXF1ZXN0TW9kZWwoKTtcclxuICAgIHJlcXVlc3Qud3VpZCA9IHd1aWQ7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRCQ0JMaW5rKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEJDQkxpbmtSZXNwb25zZU1vZGVsKSA9PiB7XHJcbiAgICAgIHdpbmRvdy5vcGVuKG1vZGVsLnVybCwgJ19ibGFuaycpO1xyXG5cclxuICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgUmVsb2FkTW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICB0aGlzLkluaXQgPSBmYWxzZTtcclxuICAgIHRoaXMuTG9hZEZhYnJpa2FudGVuVmlld01vZGVsKENoYW5nZURldGVjdG9yUmVmKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBMb2FkRmFicmlrYW50ZW5WaWV3TW9kZWwoQ2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuSW5pdCkge1xyXG4gICAgICB0aGlzLkluaXQgPSB0cnVlO1xyXG4gICAgICB0aGlzLkxvYWRpbmcgPSB0cnVlO1xyXG4gICAgICBDaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlblJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwgIT0gbnVsbCkge1xyXG4gICAgICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgcmVxdWVzdC5zZXNzaW9uSWQgPSBcIlwiO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuVmlld01vZGVsKSA9PiB7XHJcbiAgICAgICAgdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbCA9IG1vZGVsO1xyXG4gICAgICAgIHRoaXMuU2VsZWN0ZWRQaG90byA9IDA7XHJcbiAgICAgICAgdGhpcy5Mb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICB0aGlzLlRyaWdnZXJSZWxvYWRzKENoYW5nZURldGVjdG9yUmVmKTtcclxuXHJcbiAgICAgICAgdGhpcy5OYXZpZ2F0ZVNlcnZpY2UuUmVmcmVzaFBhZ2UoKTtcclxuICAgICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIENoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBEb3dubG9hZHNcclxuXHJcbiAgcHVibGljIERvd25sb2FkQVJLRVlBZG9taSgpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWRBUktFWUFkb21pTG9hZGluZyA9IHRydWU7XHJcblxyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImRoZ1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmRoZ1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZEFSS0VZQWRvbWlMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkSUZDKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZElGQ0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImlmY1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmlmY1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZElGQ0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWRSZXZpdFBsdWdpbigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWRSZXZpdFBsdWdpbkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJoZGhSZXZpdFwiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmhkaFJldml0XCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkUmV2aXRQbHVnaW5Mb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkM0RBdXRvQ0FERHdnKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmcgPSB0cnVlO1xyXG4gICAgdmFyIHJlcXVlc3QgPSBuZXcgRmFicmlrYW50ZW5GaWxlUmVxdWVzdE1vZGVsKCk7XHJcblxyXG4gICAgcmVxdWVzdC5zZXNzaW9uSWQgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsLnNlc3Npb25JZDtcclxuICAgIHJlcXVlc3QuZmlsZVR5cGUgPSBcImR3Z1wiO1xyXG4gICAgcmVxdWVzdC5tb2RlbDNEID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmR3Z1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZDNEQXV0b0NBRER3Z0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQzRER4ZigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWQzRER4ZkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJkeGZcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IHRydWU7XHJcblxyXG4gICAgdGhpcy5GYWJyaWthbnRlbkFwaUNsaWVudC5nZXRGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwocmVxdWVzdCkuc3Vic2NyaWJlKChtb2RlbDogRmFicmlrYW50ZW5GaWxlVmlld01vZGVsKSA9PiB7XHJcbiAgICAgIHRoaXMuU3RhcnREb3dubG9hZChtb2RlbC5kYXRhLCBcIi5keGZcIik7XHJcbiAgICAgIHRoaXMuRG93bmxvYWQzRER4ZkxvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQyREF1dG9DQUREd2coKTogdm9pZCB7XHJcbiAgICB0aGlzLkRvd25sb2FkMkRBdXRvQ0FERHdnTG9hZGluZyA9IHRydWU7XHJcbiAgICB2YXIgcmVxdWVzdCA9IG5ldyBGYWJyaWthbnRlbkZpbGVSZXF1ZXN0TW9kZWwoKTtcclxuXHJcbiAgICByZXF1ZXN0LnNlc3Npb25JZCA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkO1xyXG4gICAgcmVxdWVzdC5maWxlVHlwZSA9IFwiZHdnXCI7XHJcbiAgICByZXF1ZXN0Lm1vZGVsM0QgPSBmYWxzZTtcclxuXHJcbiAgICB0aGlzLkZhYnJpa2FudGVuQXBpQ2xpZW50LmdldEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbChyZXF1ZXN0KS5zdWJzY3JpYmUoKG1vZGVsOiBGYWJyaWthbnRlbkZpbGVWaWV3TW9kZWwpID0+IHtcclxuICAgICAgdGhpcy5TdGFydERvd25sb2FkKG1vZGVsLmRhdGEsIFwiLmR3Z1wiKTtcclxuICAgICAgdGhpcy5Eb3dubG9hZDJEQXV0b0NBRER3Z0xvYWRpbmcgPSBmYWxzZTtcclxuICAgIH0sIChlcnJvcjogUmVzcG9uc2UpID0+IHtcclxuICAgICAgaWYgKGVycm9yLnN0YXR1cyA9PSA0MDApXHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IuanNvbigpKTtcclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCcpO1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgRG93bmxvYWQyRER4ZigpOiB2b2lkIHtcclxuICAgIHRoaXMuRG93bmxvYWQyRER4ZkxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJkeGZcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5GaWxlVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLlN0YXJ0RG93bmxvYWQobW9kZWwuZGF0YSwgXCIuZHhmXCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkMkREeGZMb2FkaW5nID0gZmFsc2U7XHJcbiAgICB9LCAoZXJyb3I6IFJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmIChlcnJvci5zdGF0dXMgPT0gNDAwKVxyXG4gICAgICAgIGNvbnNvbGUubG9nKGVycm9yLmpzb24oKSk7XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdBbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VyZWQnKTtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIERvd25sb2FkUkZBKCk6IHZvaWQge1xyXG4gICAgdGhpcy5Eb3dubG9hZFJGQUxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHZhciByZXF1ZXN0ID0gbmV3IEZhYnJpa2FudGVuRmlsZVJlcXVlc3RNb2RlbCgpO1xyXG5cclxuICAgIHJlcXVlc3Quc2Vzc2lvbklkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQ7XHJcbiAgICByZXF1ZXN0LmZpbGVUeXBlID0gXCJyZmFcIjtcclxuICAgIHJlcXVlc3QubW9kZWwzRCA9IGZhbHNlO1xyXG5cclxuICAgIHRoaXMuRmFicmlrYW50ZW5BcGlDbGllbnQuZ2V0RmFicmlrYW50ZW5GaWxlVmlld01vZGVsKHJlcXVlc3QpLnN1YnNjcmliZSgobW9kZWw6IEZhYnJpa2FudGVuRmlsZVZpZXdNb2RlbCkgPT4ge1xyXG4gICAgICB0aGlzLlN0YXJ0RG93bmxvYWQobW9kZWwuZGF0YSwgXCIucmZhXCIpO1xyXG4gICAgICB0aGlzLkRvd25sb2FkUkZBTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgfSwgKGVycm9yOiBSZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoZXJyb3Iuc3RhdHVzID09IDQwMClcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvci5qc29uKCkpO1xyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnQW4gdW5leHBlY3RlZCBlcnJvciBvY2N1cmVkJyk7XHJcbiAgICAgICAgY29uc29sZS5sb2coZXJyb3IpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBTdGFydERvd25sb2FkKGRhdGE6IGFueSwgZXh0ZW5zaW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5zZWxlY3RlZFByb2R1Y3Q/LmlkICE9IG51bGwpIHtcclxuICAgICAgdmFyIGlkID0gdGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbD8uc2VsZWN0ZWRQcm9kdWN0Py5pZDtcclxuXHJcbiAgICAgIHZhciBhcnIgPSBkYXRhO1xyXG4gICAgICB2YXIgYnl0ZUFycmF5ID0gbmV3IFVpbnQ4QXJyYXkoYXJyKTtcclxuICAgICAgdmFyIGEgPSB3aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG5cclxuICAgICAgdmFyIGZpbGVuYW1lID0gdGhpcy5UcmFuc2xhdGVTZXJ2aWNlLkdldEFjdGl2ZVZhbHVlUHJvZHVjdChpZCk7XHJcbiAgICAgIGZpbGVuYW1lID0gZmlsZW5hbWUucmVwbGFjZSgvW15hLXowLTldL2dpLCAnXycpICsgZXh0ZW5zaW9uO1xyXG5cclxuICAgICAgYS5ocmVmID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwobmV3IEJsb2IoW2J5dGVBcnJheV0sIHsgdHlwZTogJ2FwcGxpY2F0aW9uL29jdGV0LXN0cmVhbScgfSkpO1xyXG4gICAgICBhLmRvd25sb2FkID0gZmlsZW5hbWU7XHJcblxyXG4gICAgICAvLyBBcHBlbmQgYW5jaG9yIHRvIGJvZHkuXHJcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSlcclxuICAgICAgYS5jbGljaygpO1xyXG5cclxuXHJcbiAgICAgIC8vIFJlbW92ZSBhbmNob3IgZnJvbSBib2R5XHJcbiAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSlcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhbGVydCgnZXJyb3I6IG5vIHByb2R1Y3Qgc2VsZWN0ZWQnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIFJlbG9hZHNcclxuXHJcbiAgcHJpdmF0ZSBUcmlnZ2VyUmVsb2FkcyhDaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpOiB2b2lkIHtcclxuICAgIHZhciBhcnJheSA9IHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2VsZWN0ZWRQcm9kdWN0Py5mYWJyaWthbnRlbkJDQlByb2R1Y3RWaWV3TW9kZWxzO1xyXG5cclxuICAgIGlmIChhcnJheSAhPSBudWxsICYmIGFycmF5Lmxlbmd0aCA9PSAxKSB7XHJcbiAgICAgIGlmICh0aGlzLlNlbGVjdGVkVGFiID09IFwiQmVzdGVrXCIpIHtcclxuICAgICAgICB0aGlzLkJlc3Rla1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuQmVzdGVrVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkIGFzIHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHRoaXMuU2VsZWN0ZWRUYWIgPT0gXCIzRFwiKSB7XHJcbiAgICAgICAgdGhpcy5XZWJHTFNlcnZpY2UuTG9hZEZhYnJpa2FudGVuM0RWaWV3TW9kZWwodGhpcy5GYWJyaWthbnRlblZpZXdNb2RlbC5zZXNzaW9uSWQgYXMgc3RyaW5nLCBDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAodGhpcy5TZWxlY3RlZFRhYiA9PSBcIjJEXCIpIHtcclxuICAgICAgICB0aGlzLlNWR1NlcnZpY2UuTG9hZEZhYnJpa2FudGVuU1ZHVmlld01vZGVsKHRoaXMuRmFicmlrYW50ZW5WaWV3TW9kZWwuc2Vzc2lvbklkIGFzIHN0cmluZywgQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBCcmVhZGNydW1iXHJcblxyXG4gIHB1YmxpYyBHZXRTdGVwcygpOiBBcnJheTxGYWJyaWthbnRlbkNhdGVnb3J5Vmlld01vZGVsPiB7XHJcbiAgICB2YXIgcmV0dXJuYXJyYXkgPSBuZXcgQXJyYXk8RmFicmlrYW50ZW5DYXRlZ29yeVZpZXdNb2RlbD4oKTtcclxuXHJcbiAgICB2YXIgYXJyYXkgPSB0aGlzLkZhYnJpa2FudGVuVmlld01vZGVsPy5jYXRlZ29yeUxheWVycztcclxuXHJcbiAgICBpZiAoYXJyYXkgIT0gbnVsbCkge1xyXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFycmF5Lmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgaWYgKGFycmF5W2ldLnNlbGVjdGVkT3B0aW9uICE9IDApIHtcclxuICAgICAgICAgIHZhciBvcHRpb25zID0gYXJyYXlbaV0uY2F0ZWdvcmllcztcclxuXHJcbiAgICAgICAgICBpZiAob3B0aW9ucyAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgb3B0aW9ucy5sZW5ndGg7IGorKykge1xyXG4gICAgICAgICAgICAgIGlmIChvcHRpb25zW2pdLmlkID09PSBhcnJheVtpXS5zZWxlY3RlZE9wdGlvbikge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuYXJyYXkucHVzaChvcHRpb25zW2pdKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmV0dXJuYXJyYXk7XHJcbiAgfVxyXG59XHJcbiJdfQ==