@syncfusion/ej2-angular-charts 26.1.35 → 26.1.38-ngcc

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 (522) hide show
  1. package/@syncfusion/ej2-angular-charts.es5.js +5013 -0
  2. package/@syncfusion/ej2-angular-charts.es5.js.map +1 -0
  3. package/@syncfusion/ej2-angular-charts.js +4731 -0
  4. package/@syncfusion/ej2-angular-charts.js.map +1 -0
  5. package/dist/ej2-angular-charts.umd.js +5692 -0
  6. package/dist/ej2-angular-charts.umd.js.map +1 -0
  7. package/dist/ej2-angular-charts.umd.min.js +11 -0
  8. package/dist/ej2-angular-charts.umd.min.js.map +1 -0
  9. package/ej2-angular-charts.d.ts +13 -0
  10. package/ej2-angular-charts.metadata.json +1 -0
  11. package/license +10 -0
  12. package/package.json +13 -27
  13. package/schematics/collection.json +0 -140
  14. package/src/accumulation-chart/accumulationchart-all.module.d.ts +1 -6
  15. package/src/accumulation-chart/accumulationchart.component.d.ts +0 -3
  16. package/src/accumulation-chart/accumulationchart.module.d.ts +0 -8
  17. package/src/accumulation-chart/annotations.directive.d.ts +2 -7
  18. package/src/accumulation-chart/series.directive.d.ts +0 -5
  19. package/src/bullet-chart/bulletchart-all.module.d.ts +0 -6
  20. package/src/bullet-chart/bulletchart.component.d.ts +0 -3
  21. package/src/bullet-chart/bulletchart.module.d.ts +0 -7
  22. package/src/bullet-chart/ranges.directive.d.ts +0 -5
  23. package/src/chart/annotations.directive.d.ts +2 -7
  24. package/src/chart/axes.directive.d.ts +1 -6
  25. package/src/chart/categories.directive.d.ts +0 -5
  26. package/src/chart/chart-all.module.d.ts +0 -6
  27. package/src/chart/chart.component.d.ts +0 -3
  28. package/src/chart/chart.module.d.ts +0 -19
  29. package/src/chart/columns.directive.d.ts +0 -5
  30. package/src/chart/indicators.directive.d.ts +0 -5
  31. package/src/chart/multilevellabels.directive.d.ts +0 -5
  32. package/src/chart/rangecolorsettings.directive.d.ts +0 -5
  33. package/src/chart/rows.directive.d.ts +0 -5
  34. package/src/chart/segments.directive.d.ts +0 -5
  35. package/src/chart/selecteddataindexes.directive.d.ts +0 -5
  36. package/src/chart/series.directive.d.ts +0 -5
  37. package/src/chart/striplines.directive.d.ts +0 -5
  38. package/src/chart/trendlines.directive.d.ts +1 -6
  39. package/src/chart3d/axes.directive.d.ts +1 -6
  40. package/src/chart3d/chart3d-all.module.d.ts +0 -6
  41. package/src/chart3d/chart3d.component.d.ts +0 -3
  42. package/src/chart3d/chart3d.module.d.ts +0 -11
  43. package/src/chart3d/columns.directive.d.ts +0 -5
  44. package/src/chart3d/rows.directive.d.ts +0 -5
  45. package/src/chart3d/selecteddataindexes.directive.d.ts +0 -5
  46. package/src/chart3d/series.directive.d.ts +0 -5
  47. package/src/circularchart3d/circularchart3d-all.module.d.ts +0 -6
  48. package/src/circularchart3d/circularchart3d.component.d.ts +0 -3
  49. package/src/circularchart3d/circularchart3d.module.d.ts +0 -8
  50. package/src/circularchart3d/selecteddataindexes.directive.d.ts +0 -5
  51. package/src/circularchart3d/series.directive.d.ts +0 -5
  52. package/src/index.d.ts +1 -1
  53. package/src/range-navigator/rangenavigator-all.module.d.ts +0 -6
  54. package/src/range-navigator/rangenavigator.component.d.ts +0 -3
  55. package/src/range-navigator/rangenavigator.module.d.ts +0 -7
  56. package/src/range-navigator/series.directive.d.ts +0 -5
  57. package/src/smithchart/series.directive.d.ts +0 -5
  58. package/src/smithchart/smithchart-all.module.d.ts +0 -6
  59. package/src/smithchart/smithchart.component.d.ts +0 -3
  60. package/src/smithchart/smithchart.module.d.ts +0 -7
  61. package/src/sparkline/rangebandsettings.directive.d.ts +0 -5
  62. package/src/sparkline/sparkline-all.module.d.ts +0 -6
  63. package/src/sparkline/sparkline.component.d.ts +0 -3
  64. package/src/sparkline/sparkline.module.d.ts +0 -7
  65. package/src/stock-chart/annotations.directive.d.ts +0 -5
  66. package/src/stock-chart/axes.directive.d.ts +0 -5
  67. package/src/stock-chart/indicators.directive.d.ts +0 -5
  68. package/src/stock-chart/periods.directive.d.ts +0 -5
  69. package/src/stock-chart/rows.directive.d.ts +0 -5
  70. package/src/stock-chart/selecteddataindexes.directive.d.ts +0 -5
  71. package/src/stock-chart/series.directive.d.ts +0 -5
  72. package/src/stock-chart/stockchart-all.module.d.ts +0 -6
  73. package/src/stock-chart/stockchart.component.d.ts +0 -3
  74. package/src/stock-chart/stockchart.module.d.ts +0 -15
  75. package/src/stock-chart/stockevents.directive.d.ts +0 -5
  76. package/src/stock-chart/trendlines.directive.d.ts +1 -6
  77. package/CHANGELOG.md +0 -2973
  78. package/esm2020/public_api.mjs +0 -2
  79. package/esm2020/src/accumulation-chart/accumulationchart-all.module.mjs +0 -50
  80. package/esm2020/src/accumulation-chart/accumulationchart.component.mjs +0 -139
  81. package/esm2020/src/accumulation-chart/accumulationchart.module.mjs +0 -43
  82. package/esm2020/src/accumulation-chart/annotations.directive.mjs +0 -62
  83. package/esm2020/src/accumulation-chart/series.directive.mjs +0 -62
  84. package/esm2020/src/bullet-chart/bulletchart-all.module.mjs +0 -32
  85. package/esm2020/src/bullet-chart/bulletchart.component.mjs +0 -85
  86. package/esm2020/src/bullet-chart/bulletchart.module.mjs +0 -34
  87. package/esm2020/src/bullet-chart/ranges.directive.mjs +0 -54
  88. package/esm2020/src/chart/annotations.directive.mjs +0 -60
  89. package/esm2020/src/chart/axes.directive.mjs +0 -58
  90. package/esm2020/src/chart/categories.directive.mjs +0 -59
  91. package/esm2020/src/chart/chart-all.module.mjs +0 -203
  92. package/esm2020/src/chart/chart.component.mjs +0 -518
  93. package/esm2020/src/chart/chart.module.mjs +0 -142
  94. package/esm2020/src/chart/columns.directive.mjs +0 -52
  95. package/esm2020/src/chart/indicators.directive.mjs +0 -54
  96. package/esm2020/src/chart/multilevellabels.directive.mjs +0 -60
  97. package/esm2020/src/chart/rangecolorsettings.directive.mjs +0 -52
  98. package/esm2020/src/chart/rows.directive.mjs +0 -52
  99. package/esm2020/src/chart/segments.directive.mjs +0 -58
  100. package/esm2020/src/chart/selecteddataindexes.directive.mjs +0 -52
  101. package/esm2020/src/chart/series.directive.mjs +0 -68
  102. package/esm2020/src/chart/striplines.directive.mjs +0 -56
  103. package/esm2020/src/chart/trendlines.directive.mjs +0 -58
  104. package/esm2020/src/chart3d/axes.directive.mjs +0 -52
  105. package/esm2020/src/chart3d/chart3d-all.module.mjs +0 -68
  106. package/esm2020/src/chart3d/chart3d.component.mjs +0 -189
  107. package/esm2020/src/chart3d/chart3d.module.mjs +0 -70
  108. package/esm2020/src/chart3d/columns.directive.mjs +0 -52
  109. package/esm2020/src/chart3d/rows.directive.mjs +0 -52
  110. package/esm2020/src/chart3d/selecteddataindexes.directive.mjs +0 -52
  111. package/esm2020/src/chart3d/series.directive.mjs +0 -62
  112. package/esm2020/src/circularchart3d/circularchart3d-all.module.mjs +0 -47
  113. package/esm2020/src/circularchart3d/circularchart3d.component.mjs +0 -125
  114. package/esm2020/src/circularchart3d/circularchart3d.module.mjs +0 -43
  115. package/esm2020/src/circularchart3d/selecteddataindexes.directive.mjs +0 -52
  116. package/esm2020/src/circularchart3d/series.directive.mjs +0 -62
  117. package/esm2020/src/index.mjs +0 -64
  118. package/esm2020/src/range-navigator/rangenavigator-all.module.mjs +0 -32
  119. package/esm2020/src/range-navigator/rangenavigator.component.mjs +0 -127
  120. package/esm2020/src/range-navigator/rangenavigator.module.mjs +0 -34
  121. package/esm2020/src/range-navigator/series.directive.mjs +0 -54
  122. package/esm2020/src/smithchart/series.directive.mjs +0 -46
  123. package/esm2020/src/smithchart/smithchart-all.module.mjs +0 -32
  124. package/esm2020/src/smithchart/smithchart.component.mjs +0 -78
  125. package/esm2020/src/smithchart/smithchart.module.mjs +0 -34
  126. package/esm2020/src/sparkline/rangebandsettings.directive.mjs +0 -46
  127. package/esm2020/src/sparkline/sparkline-all.module.mjs +0 -29
  128. package/esm2020/src/sparkline/sparkline.component.mjs +0 -71
  129. package/esm2020/src/sparkline/sparkline.module.mjs +0 -34
  130. package/esm2020/src/stock-chart/annotations.directive.mjs +0 -60
  131. package/esm2020/src/stock-chart/axes.directive.mjs +0 -52
  132. package/esm2020/src/stock-chart/indicators.directive.mjs +0 -54
  133. package/esm2020/src/stock-chart/periods.directive.mjs +0 -54
  134. package/esm2020/src/stock-chart/rows.directive.mjs +0 -52
  135. package/esm2020/src/stock-chart/selecteddataindexes.directive.mjs +0 -52
  136. package/esm2020/src/stock-chart/series.directive.mjs +0 -58
  137. package/esm2020/src/stock-chart/stockchart-all.module.mjs +0 -29
  138. package/esm2020/src/stock-chart/stockchart.component.mjs +0 -330
  139. package/esm2020/src/stock-chart/stockchart.module.mjs +0 -106
  140. package/esm2020/src/stock-chart/stockevents.directive.mjs +0 -54
  141. package/esm2020/src/stock-chart/trendlines.directive.mjs +0 -59
  142. package/esm2020/syncfusion-ej2-angular-charts.mjs +0 -5
  143. package/fesm2015/syncfusion-ej2-angular-charts.mjs +0 -4349
  144. package/fesm2015/syncfusion-ej2-angular-charts.mjs.map +0 -1
  145. package/fesm2020/syncfusion-ej2-angular-charts.mjs +0 -4349
  146. package/fesm2020/syncfusion-ej2-angular-charts.mjs.map +0 -1
  147. package/schematics/generators/chart-axes-crossing/index.d.ts +0 -3
  148. package/schematics/generators/chart-axes-crossing/index.js +0 -8
  149. package/schematics/generators/chart-axes-crossing/index.ts +0 -8
  150. package/schematics/generators/chart-axes-crossing/sample-details.d.ts +0 -5
  151. package/schematics/generators/chart-axes-crossing/sample-details.js +0 -7
  152. package/schematics/generators/chart-axes-crossing/sample-details.ts +0 -5
  153. package/schematics/generators/chart-axes-crossing/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  154. package/schematics/generators/chart-axes-crossing/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -20
  155. package/schematics/generators/chart-axes-crossing/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -110
  156. package/schematics/generators/chart-axes-crossing/schema.d.ts +0 -3
  157. package/schematics/generators/chart-axes-crossing/schema.js +0 -2
  158. package/schematics/generators/chart-axes-crossing/schema.json +0 -125
  159. package/schematics/generators/chart-axes-crossing/schema.ts +0 -3
  160. package/schematics/generators/chart-crosshair/index.d.ts +0 -3
  161. package/schematics/generators/chart-crosshair/index.js +0 -8
  162. package/schematics/generators/chart-crosshair/index.ts +0 -8
  163. package/schematics/generators/chart-crosshair/sample-details.d.ts +0 -5
  164. package/schematics/generators/chart-crosshair/sample-details.js +0 -7
  165. package/schematics/generators/chart-crosshair/sample-details.ts +0 -5
  166. package/schematics/generators/chart-crosshair/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  167. package/schematics/generators/chart-crosshair/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -15
  168. package/schematics/generators/chart-crosshair/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -77
  169. package/schematics/generators/chart-crosshair/samples/__path__/__name@dasherize@if-flat__/assets/chart-data.service.ts +0 -128
  170. package/schematics/generators/chart-crosshair/samples/__path__/__name@dasherize@if-flat__/assets/financial-data.ts +0 -5436
  171. package/schematics/generators/chart-crosshair/schema.d.ts +0 -3
  172. package/schematics/generators/chart-crosshair/schema.js +0 -2
  173. package/schematics/generators/chart-crosshair/schema.json +0 -125
  174. package/schematics/generators/chart-crosshair/schema.ts +0 -3
  175. package/schematics/generators/chart-donut/index.d.ts +0 -3
  176. package/schematics/generators/chart-donut/index.js +0 -8
  177. package/schematics/generators/chart-donut/index.ts +0 -8
  178. package/schematics/generators/chart-donut/sample-details.d.ts +0 -5
  179. package/schematics/generators/chart-donut/sample-details.js +0 -7
  180. package/schematics/generators/chart-donut/sample-details.ts +0 -5
  181. package/schematics/generators/chart-donut/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  182. package/schematics/generators/chart-donut/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -16
  183. package/schematics/generators/chart-donut/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -46
  184. package/schematics/generators/chart-donut/schema.d.ts +0 -3
  185. package/schematics/generators/chart-donut/schema.js +0 -2
  186. package/schematics/generators/chart-donut/schema.json +0 -125
  187. package/schematics/generators/chart-donut/schema.ts +0 -3
  188. package/schematics/generators/chart-line/index.d.ts +0 -3
  189. package/schematics/generators/chart-line/index.js +0 -8
  190. package/schematics/generators/chart-line/index.ts +0 -8
  191. package/schematics/generators/chart-line/sample-details.d.ts +0 -5
  192. package/schematics/generators/chart-line/sample-details.js +0 -7
  193. package/schematics/generators/chart-line/sample-details.ts +0 -5
  194. package/schematics/generators/chart-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  195. package/schematics/generators/chart-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -12
  196. package/schematics/generators/chart-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -69
  197. package/schematics/generators/chart-line/schema.d.ts +0 -3
  198. package/schematics/generators/chart-line/schema.js +0 -2
  199. package/schematics/generators/chart-line/schema.json +0 -125
  200. package/schematics/generators/chart-line/schema.ts +0 -3
  201. package/schematics/generators/chart-multi-level-labels/index.d.ts +0 -3
  202. package/schematics/generators/chart-multi-level-labels/index.js +0 -8
  203. package/schematics/generators/chart-multi-level-labels/index.ts +0 -8
  204. package/schematics/generators/chart-multi-level-labels/sample-details.d.ts +0 -5
  205. package/schematics/generators/chart-multi-level-labels/sample-details.js +0 -7
  206. package/schematics/generators/chart-multi-level-labels/sample-details.ts +0 -5
  207. package/schematics/generators/chart-multi-level-labels/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -64
  208. package/schematics/generators/chart-multi-level-labels/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -128
  209. package/schematics/generators/chart-multi-level-labels/schema.d.ts +0 -3
  210. package/schematics/generators/chart-multi-level-labels/schema.js +0 -2
  211. package/schematics/generators/chart-multi-level-labels/schema.json +0 -125
  212. package/schematics/generators/chart-multi-level-labels/schema.ts +0 -3
  213. package/schematics/generators/chart-pie/index.d.ts +0 -3
  214. package/schematics/generators/chart-pie/index.js +0 -8
  215. package/schematics/generators/chart-pie/index.ts +0 -8
  216. package/schematics/generators/chart-pie/sample-details.d.ts +0 -5
  217. package/schematics/generators/chart-pie/sample-details.js +0 -7
  218. package/schematics/generators/chart-pie/sample-details.ts +0 -5
  219. package/schematics/generators/chart-pie/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  220. package/schematics/generators/chart-pie/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -16
  221. package/schematics/generators/chart-pie/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -90
  222. package/schematics/generators/chart-pie/schema.d.ts +0 -3
  223. package/schematics/generators/chart-pie/schema.js +0 -2
  224. package/schematics/generators/chart-pie/schema.json +0 -125
  225. package/schematics/generators/chart-pie/schema.ts +0 -3
  226. package/schematics/generators/chart-rangenavigator/index.d.ts +0 -3
  227. package/schematics/generators/chart-rangenavigator/index.js +0 -8
  228. package/schematics/generators/chart-rangenavigator/index.ts +0 -8
  229. package/schematics/generators/chart-rangenavigator/sample-details.d.ts +0 -5
  230. package/schematics/generators/chart-rangenavigator/sample-details.js +0 -7
  231. package/schematics/generators/chart-rangenavigator/sample-details.ts +0 -5
  232. package/schematics/generators/chart-rangenavigator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  233. package/schematics/generators/chart-rangenavigator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -66
  234. package/schematics/generators/chart-rangenavigator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -53
  235. package/schematics/generators/chart-rangenavigator/samples/__path__/__name@dasherize@if-flat__/assets/default-data.ts +0 -367
  236. package/schematics/generators/chart-rangenavigator/schema.d.ts +0 -3
  237. package/schematics/generators/chart-rangenavigator/schema.js +0 -2
  238. package/schematics/generators/chart-rangenavigator/schema.json +0 -125
  239. package/schematics/generators/chart-rangenavigator/schema.ts +0 -3
  240. package/schematics/generators/chart-remotedata/images/__path__/__name@dasherize__/Medium-36px-spin.gif +0 -0
  241. package/schematics/generators/chart-remotedata/index.d.ts +0 -3
  242. package/schematics/generators/chart-remotedata/index.js +0 -8
  243. package/schematics/generators/chart-remotedata/index.ts +0 -8
  244. package/schematics/generators/chart-remotedata/sample-details.d.ts +0 -5
  245. package/schematics/generators/chart-remotedata/sample-details.js +0 -7
  246. package/schematics/generators/chart-remotedata/sample-details.ts +0 -5
  247. package/schematics/generators/chart-remotedata/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -25
  248. package/schematics/generators/chart-remotedata/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -15
  249. package/schematics/generators/chart-remotedata/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -107
  250. package/schematics/generators/chart-remotedata/schema.d.ts +0 -3
  251. package/schematics/generators/chart-remotedata/schema.js +0 -2
  252. package/schematics/generators/chart-remotedata/schema.json +0 -125
  253. package/schematics/generators/chart-remotedata/schema.ts +0 -3
  254. package/schematics/generators/chart-technical-indicator/index.d.ts +0 -3
  255. package/schematics/generators/chart-technical-indicator/index.js +0 -8
  256. package/schematics/generators/chart-technical-indicator/index.ts +0 -8
  257. package/schematics/generators/chart-technical-indicator/sample-details.d.ts +0 -5
  258. package/schematics/generators/chart-technical-indicator/sample-details.js +0 -7
  259. package/schematics/generators/chart-technical-indicator/sample-details.ts +0 -5
  260. package/schematics/generators/chart-technical-indicator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  261. package/schematics/generators/chart-technical-indicator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -15
  262. package/schematics/generators/chart-technical-indicator/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -86
  263. package/schematics/generators/chart-technical-indicator/samples/__path__/__name@dasherize@if-flat__/assets/financial-data.ts +0 -5436
  264. package/schematics/generators/chart-technical-indicator/schema.d.ts +0 -3
  265. package/schematics/generators/chart-technical-indicator/schema.js +0 -2
  266. package/schematics/generators/chart-technical-indicator/schema.json +0 -125
  267. package/schematics/generators/chart-technical-indicator/schema.ts +0 -3
  268. package/schematics/generators/chart-trackball/index.d.ts +0 -3
  269. package/schematics/generators/chart-trackball/index.js +0 -8
  270. package/schematics/generators/chart-trackball/index.ts +0 -8
  271. package/schematics/generators/chart-trackball/sample-details.d.ts +0 -5
  272. package/schematics/generators/chart-trackball/sample-details.js +0 -7
  273. package/schematics/generators/chart-trackball/sample-details.ts +0 -5
  274. package/schematics/generators/chart-trackball/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  275. package/schematics/generators/chart-trackball/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -15
  276. package/schematics/generators/chart-trackball/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -80
  277. package/schematics/generators/chart-trackball/schema.d.ts +0 -3
  278. package/schematics/generators/chart-trackball/schema.js +0 -2
  279. package/schematics/generators/chart-trackball/schema.json +0 -125
  280. package/schematics/generators/chart-trackball/schema.ts +0 -3
  281. package/schematics/generators/chart-zooming/index.d.ts +0 -3
  282. package/schematics/generators/chart-zooming/index.js +0 -8
  283. package/schematics/generators/chart-zooming/index.ts +0 -8
  284. package/schematics/generators/chart-zooming/sample-details.d.ts +0 -5
  285. package/schematics/generators/chart-zooming/sample-details.js +0 -7
  286. package/schematics/generators/chart-zooming/sample-details.ts +0 -5
  287. package/schematics/generators/chart-zooming/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -3
  288. package/schematics/generators/chart-zooming/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -36
  289. package/schematics/generators/chart-zooming/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -61
  290. package/schematics/generators/chart-zooming/samples/__path__/__name@dasherize@if-flat__/assets/chart-data.service.ts +0 -128
  291. package/schematics/generators/chart-zooming/schema.d.ts +0 -3
  292. package/schematics/generators/chart-zooming/schema.js +0 -2
  293. package/schematics/generators/chart-zooming/schema.json +0 -125
  294. package/schematics/generators/chart-zooming/schema.ts +0 -3
  295. package/schematics/generators/smithchart-admittance-rendering/index.d.ts +0 -3
  296. package/schematics/generators/smithchart-admittance-rendering/index.js +0 -8
  297. package/schematics/generators/smithchart-admittance-rendering/index.ts +0 -8
  298. package/schematics/generators/smithchart-admittance-rendering/sample-details.d.ts +0 -5
  299. package/schematics/generators/smithchart-admittance-rendering/sample-details.js +0 -7
  300. package/schematics/generators/smithchart-admittance-rendering/sample-details.ts +0 -5
  301. package/schematics/generators/smithchart-admittance-rendering/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  302. package/schematics/generators/smithchart-admittance-rendering/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -7
  303. package/schematics/generators/smithchart-admittance-rendering/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -40
  304. package/schematics/generators/smithchart-admittance-rendering/schema.d.ts +0 -3
  305. package/schematics/generators/smithchart-admittance-rendering/schema.js +0 -2
  306. package/schematics/generators/smithchart-admittance-rendering/schema.json +0 -125
  307. package/schematics/generators/smithchart-admittance-rendering/schema.ts +0 -3
  308. package/schematics/generators/smithchart-animation/index.d.ts +0 -3
  309. package/schematics/generators/smithchart-animation/index.js +0 -8
  310. package/schematics/generators/smithchart-animation/index.ts +0 -8
  311. package/schematics/generators/smithchart-animation/sample-details.d.ts +0 -5
  312. package/schematics/generators/smithchart-animation/sample-details.js +0 -7
  313. package/schematics/generators/smithchart-animation/sample-details.ts +0 -5
  314. package/schematics/generators/smithchart-animation/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  315. package/schematics/generators/smithchart-animation/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -7
  316. package/schematics/generators/smithchart-animation/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -30
  317. package/schematics/generators/smithchart-animation/schema.d.ts +0 -3
  318. package/schematics/generators/smithchart-animation/schema.js +0 -2
  319. package/schematics/generators/smithchart-animation/schema.json +0 -125
  320. package/schematics/generators/smithchart-animation/schema.ts +0 -3
  321. package/schematics/generators/smithchart-default/index.d.ts +0 -3
  322. package/schematics/generators/smithchart-default/index.js +0 -8
  323. package/schematics/generators/smithchart-default/index.ts +0 -8
  324. package/schematics/generators/smithchart-default/sample-details.d.ts +0 -5
  325. package/schematics/generators/smithchart-default/sample-details.js +0 -7
  326. package/schematics/generators/smithchart-default/sample-details.ts +0 -5
  327. package/schematics/generators/smithchart-default/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  328. package/schematics/generators/smithchart-default/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  329. package/schematics/generators/smithchart-default/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -40
  330. package/schematics/generators/smithchart-default/schema.d.ts +0 -3
  331. package/schematics/generators/smithchart-default/schema.js +0 -2
  332. package/schematics/generators/smithchart-default/schema.json +0 -125
  333. package/schematics/generators/smithchart-default/schema.ts +0 -3
  334. package/schematics/generators/smithchart-label/index.d.ts +0 -3
  335. package/schematics/generators/smithchart-label/index.js +0 -8
  336. package/schematics/generators/smithchart-label/index.ts +0 -8
  337. package/schematics/generators/smithchart-label/sample-details.d.ts +0 -5
  338. package/schematics/generators/smithchart-label/sample-details.js +0 -7
  339. package/schematics/generators/smithchart-label/sample-details.ts +0 -5
  340. package/schematics/generators/smithchart-label/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  341. package/schematics/generators/smithchart-label/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -7
  342. package/schematics/generators/smithchart-label/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -40
  343. package/schematics/generators/smithchart-label/schema.d.ts +0 -3
  344. package/schematics/generators/smithchart-label/schema.js +0 -2
  345. package/schematics/generators/smithchart-label/schema.json +0 -125
  346. package/schematics/generators/smithchart-label/schema.ts +0 -3
  347. package/schematics/generators/smithchart-legend/index.d.ts +0 -3
  348. package/schematics/generators/smithchart-legend/index.js +0 -8
  349. package/schematics/generators/smithchart-legend/index.ts +0 -8
  350. package/schematics/generators/smithchart-legend/sample-details.d.ts +0 -5
  351. package/schematics/generators/smithchart-legend/sample-details.js +0 -7
  352. package/schematics/generators/smithchart-legend/sample-details.ts +0 -5
  353. package/schematics/generators/smithchart-legend/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  354. package/schematics/generators/smithchart-legend/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  355. package/schematics/generators/smithchart-legend/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -45
  356. package/schematics/generators/smithchart-legend/schema.d.ts +0 -3
  357. package/schematics/generators/smithchart-legend/schema.js +0 -2
  358. package/schematics/generators/smithchart-legend/schema.json +0 -125
  359. package/schematics/generators/smithchart-legend/schema.ts +0 -3
  360. package/schematics/generators/smithchart-marker/index.d.ts +0 -3
  361. package/schematics/generators/smithchart-marker/index.js +0 -8
  362. package/schematics/generators/smithchart-marker/index.ts +0 -8
  363. package/schematics/generators/smithchart-marker/sample-details.d.ts +0 -5
  364. package/schematics/generators/smithchart-marker/sample-details.js +0 -7
  365. package/schematics/generators/smithchart-marker/sample-details.ts +0 -5
  366. package/schematics/generators/smithchart-marker/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  367. package/schematics/generators/smithchart-marker/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  368. package/schematics/generators/smithchart-marker/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -47
  369. package/schematics/generators/smithchart-marker/schema.d.ts +0 -3
  370. package/schematics/generators/smithchart-marker/schema.js +0 -2
  371. package/schematics/generators/smithchart-marker/schema.json +0 -125
  372. package/schematics/generators/smithchart-marker/schema.ts +0 -3
  373. package/schematics/generators/smithchart-multiple-series/index.d.ts +0 -3
  374. package/schematics/generators/smithchart-multiple-series/index.js +0 -8
  375. package/schematics/generators/smithchart-multiple-series/index.ts +0 -8
  376. package/schematics/generators/smithchart-multiple-series/sample-details.d.ts +0 -5
  377. package/schematics/generators/smithchart-multiple-series/sample-details.js +0 -7
  378. package/schematics/generators/smithchart-multiple-series/sample-details.ts +0 -5
  379. package/schematics/generators/smithchart-multiple-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  380. package/schematics/generators/smithchart-multiple-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  381. package/schematics/generators/smithchart-multiple-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -40
  382. package/schematics/generators/smithchart-multiple-series/schema.d.ts +0 -3
  383. package/schematics/generators/smithchart-multiple-series/schema.js +0 -2
  384. package/schematics/generators/smithchart-multiple-series/schema.json +0 -125
  385. package/schematics/generators/smithchart-multiple-series/schema.ts +0 -3
  386. package/schematics/generators/smithchart-print/index.d.ts +0 -3
  387. package/schematics/generators/smithchart-print/index.js +0 -8
  388. package/schematics/generators/smithchart-print/index.ts +0 -8
  389. package/schematics/generators/smithchart-print/sample-details.d.ts +0 -5
  390. package/schematics/generators/smithchart-print/sample-details.js +0 -7
  391. package/schematics/generators/smithchart-print/sample-details.ts +0 -5
  392. package/schematics/generators/smithchart-print/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  393. package/schematics/generators/smithchart-print/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -25
  394. package/schematics/generators/smithchart-print/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -68
  395. package/schematics/generators/smithchart-print/schema.d.ts +0 -3
  396. package/schematics/generators/smithchart-print/schema.js +0 -2
  397. package/schematics/generators/smithchart-print/schema.json +0 -125
  398. package/schematics/generators/smithchart-print/schema.ts +0 -3
  399. package/schematics/generators/smithchart-radius/index.d.ts +0 -3
  400. package/schematics/generators/smithchart-radius/index.js +0 -8
  401. package/schematics/generators/smithchart-radius/index.ts +0 -8
  402. package/schematics/generators/smithchart-radius/sample-details.d.ts +0 -5
  403. package/schematics/generators/smithchart-radius/sample-details.js +0 -7
  404. package/schematics/generators/smithchart-radius/sample-details.ts +0 -5
  405. package/schematics/generators/smithchart-radius/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  406. package/schematics/generators/smithchart-radius/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  407. package/schematics/generators/smithchart-radius/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -41
  408. package/schematics/generators/smithchart-radius/schema.d.ts +0 -3
  409. package/schematics/generators/smithchart-radius/schema.js +0 -2
  410. package/schematics/generators/smithchart-radius/schema.json +0 -125
  411. package/schematics/generators/smithchart-radius/schema.ts +0 -3
  412. package/schematics/generators/smithchart-series/index.d.ts +0 -3
  413. package/schematics/generators/smithchart-series/index.js +0 -8
  414. package/schematics/generators/smithchart-series/index.ts +0 -8
  415. package/schematics/generators/smithchart-series/sample-details.d.ts +0 -5
  416. package/schematics/generators/smithchart-series/sample-details.js +0 -7
  417. package/schematics/generators/smithchart-series/sample-details.ts +0 -5
  418. package/schematics/generators/smithchart-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  419. package/schematics/generators/smithchart-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -7
  420. package/schematics/generators/smithchart-series/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -30
  421. package/schematics/generators/smithchart-series/schema.d.ts +0 -3
  422. package/schematics/generators/smithchart-series/schema.js +0 -2
  423. package/schematics/generators/smithchart-series/schema.json +0 -125
  424. package/schematics/generators/smithchart-series/schema.ts +0 -3
  425. package/schematics/generators/smithchart-tooltip/index.d.ts +0 -3
  426. package/schematics/generators/smithchart-tooltip/index.js +0 -8
  427. package/schematics/generators/smithchart-tooltip/index.ts +0 -8
  428. package/schematics/generators/smithchart-tooltip/sample-details.d.ts +0 -5
  429. package/schematics/generators/smithchart-tooltip/sample-details.js +0 -7
  430. package/schematics/generators/smithchart-tooltip/sample-details.ts +0 -5
  431. package/schematics/generators/smithchart-tooltip/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  432. package/schematics/generators/smithchart-tooltip/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -8
  433. package/schematics/generators/smithchart-tooltip/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -43
  434. package/schematics/generators/smithchart-tooltip/schema.d.ts +0 -3
  435. package/schematics/generators/smithchart-tooltip/schema.js +0 -2
  436. package/schematics/generators/smithchart-tooltip/schema.json +0 -125
  437. package/schematics/generators/smithchart-tooltip/schema.ts +0 -3
  438. package/schematics/generators/sparkline-area/index.d.ts +0 -3
  439. package/schematics/generators/sparkline-area/index.js +0 -8
  440. package/schematics/generators/sparkline-area/index.ts +0 -8
  441. package/schematics/generators/sparkline-area/sample-details.d.ts +0 -5
  442. package/schematics/generators/sparkline-area/sample-details.js +0 -7
  443. package/schematics/generators/sparkline-area/sample-details.ts +0 -5
  444. package/schematics/generators/sparkline-area/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  445. package/schematics/generators/sparkline-area/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  446. package/schematics/generators/sparkline-area/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -36
  447. package/schematics/generators/sparkline-area/schema.d.ts +0 -3
  448. package/schematics/generators/sparkline-area/schema.js +0 -2
  449. package/schematics/generators/sparkline-area/schema.json +0 -125
  450. package/schematics/generators/sparkline-area/schema.ts +0 -3
  451. package/schematics/generators/sparkline-column/index.d.ts +0 -3
  452. package/schematics/generators/sparkline-column/index.js +0 -8
  453. package/schematics/generators/sparkline-column/index.ts +0 -8
  454. package/schematics/generators/sparkline-column/sample-details.d.ts +0 -5
  455. package/schematics/generators/sparkline-column/sample-details.js +0 -7
  456. package/schematics/generators/sparkline-column/sample-details.ts +0 -5
  457. package/schematics/generators/sparkline-column/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  458. package/schematics/generators/sparkline-column/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  459. package/schematics/generators/sparkline-column/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -31
  460. package/schematics/generators/sparkline-column/schema.d.ts +0 -3
  461. package/schematics/generators/sparkline-column/schema.js +0 -2
  462. package/schematics/generators/sparkline-column/schema.json +0 -125
  463. package/schematics/generators/sparkline-column/schema.ts +0 -3
  464. package/schematics/generators/sparkline-line/index.d.ts +0 -3
  465. package/schematics/generators/sparkline-line/index.js +0 -8
  466. package/schematics/generators/sparkline-line/index.ts +0 -8
  467. package/schematics/generators/sparkline-line/sample-details.d.ts +0 -5
  468. package/schematics/generators/sparkline-line/sample-details.js +0 -7
  469. package/schematics/generators/sparkline-line/sample-details.ts +0 -5
  470. package/schematics/generators/sparkline-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  471. package/schematics/generators/sparkline-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  472. package/schematics/generators/sparkline-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -32
  473. package/schematics/generators/sparkline-line/schema.d.ts +0 -3
  474. package/schematics/generators/sparkline-line/schema.js +0 -2
  475. package/schematics/generators/sparkline-line/schema.json +0 -125
  476. package/schematics/generators/sparkline-line/schema.ts +0 -3
  477. package/schematics/generators/sparkline-range-band/index.d.ts +0 -3
  478. package/schematics/generators/sparkline-range-band/index.js +0 -8
  479. package/schematics/generators/sparkline-range-band/index.ts +0 -8
  480. package/schematics/generators/sparkline-range-band/sample-details.d.ts +0 -5
  481. package/schematics/generators/sparkline-range-band/sample-details.js +0 -7
  482. package/schematics/generators/sparkline-range-band/sample-details.ts +0 -5
  483. package/schematics/generators/sparkline-range-band/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  484. package/schematics/generators/sparkline-range-band/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  485. package/schematics/generators/sparkline-range-band/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -29
  486. package/schematics/generators/sparkline-range-band/schema.d.ts +0 -3
  487. package/schematics/generators/sparkline-range-band/schema.js +0 -2
  488. package/schematics/generators/sparkline-range-band/schema.json +0 -125
  489. package/schematics/generators/sparkline-range-band/schema.ts +0 -3
  490. package/schematics/generators/sparkline-track-line/index.d.ts +0 -3
  491. package/schematics/generators/sparkline-track-line/index.js +0 -8
  492. package/schematics/generators/sparkline-track-line/index.ts +0 -8
  493. package/schematics/generators/sparkline-track-line/sample-details.d.ts +0 -5
  494. package/schematics/generators/sparkline-track-line/sample-details.js +0 -7
  495. package/schematics/generators/sparkline-track-line/sample-details.ts +0 -5
  496. package/schematics/generators/sparkline-track-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  497. package/schematics/generators/sparkline-track-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  498. package/schematics/generators/sparkline-track-line/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -32
  499. package/schematics/generators/sparkline-track-line/schema.d.ts +0 -3
  500. package/schematics/generators/sparkline-track-line/schema.js +0 -2
  501. package/schematics/generators/sparkline-track-line/schema.json +0 -125
  502. package/schematics/generators/sparkline-track-line/schema.ts +0 -3
  503. package/schematics/generators/sparkline-win-loss/index.d.ts +0 -3
  504. package/schematics/generators/sparkline-win-loss/index.js +0 -8
  505. package/schematics/generators/sparkline-win-loss/index.ts +0 -8
  506. package/schematics/generators/sparkline-win-loss/sample-details.d.ts +0 -5
  507. package/schematics/generators/sparkline-win-loss/sample-details.js +0 -7
  508. package/schematics/generators/sparkline-win-loss/sample-details.ts +0 -5
  509. package/schematics/generators/sparkline-win-loss/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.css +0 -0
  510. package/schematics/generators/sparkline-win-loss/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.html +0 -4
  511. package/schematics/generators/sparkline-win-loss/samples/__path__/__name@dasherize@if-flat__/__name@dasherize__.component.ts +0 -31
  512. package/schematics/generators/sparkline-win-loss/schema.d.ts +0 -3
  513. package/schematics/generators/sparkline-win-loss/schema.js +0 -2
  514. package/schematics/generators/sparkline-win-loss/schema.json +0 -125
  515. package/schematics/generators/sparkline-win-loss/schema.ts +0 -3
  516. package/schematics/ng-add/index.d.ts +0 -3
  517. package/schematics/ng-add/index.js +0 -9
  518. package/schematics/ng-add/schema.d.ts +0 -13
  519. package/schematics/ng-add/schema.js +0 -2
  520. package/schematics/utils/lib-details.d.ts +0 -4
  521. package/schematics/utils/lib-details.js +0 -6
  522. package/syncfusion-ej2-angular-charts.d.ts +0 -5
@@ -1,518 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Component, ContentChild } from '@angular/core';
3
- import { ComponentBase, ComponentMixins, setValue } from '@syncfusion/ej2-angular-base';
4
- import { Chart } from '@syncfusion/ej2-charts';
5
- import { Template } from '@syncfusion/ej2-angular-base';
6
- import { SeriesCollectionDirective } from './series.directive';
7
- import { AxesDirective } from './axes.directive';
8
- import { RowsDirective } from './rows.directive';
9
- import { ColumnsDirective } from './columns.directive';
10
- import { RangeColorSettingsDirective } from './rangecolorsettings.directive';
11
- import { AnnotationsDirective } from './annotations.directive';
12
- import { SelectedDataIndexesDirective } from './selecteddataindexes.directive';
13
- import { IndicatorsDirective } from './indicators.directive';
14
- import * as i0 from "@angular/core";
15
- export const inputs = ['allowExport', 'allowMultiSelection', 'annotations', 'axes', 'background', 'backgroundImage', 'border', 'chartArea', 'columns', 'crosshair', 'currencyCode', 'dataSource', 'description', 'enableAnimation', 'enableAutoIntervalOnBothAxis', 'enableCanvas', 'enableExport', 'enablePersistence', 'enableRtl', 'enableSideBySidePlacement', 'height', 'highlightColor', 'highlightMode', 'highlightPattern', 'indicators', 'isMultiSelect', 'isTransposed', 'legendSettings', 'locale', 'margin', 'palettes', 'primaryXAxis', 'primaryYAxis', 'rangeColorSettings', 'rows', 'selectedDataIndexes', 'selectionMode', 'selectionPattern', 'series', 'subTitle', 'subTitleStyle', 'tabIndex', 'theme', 'title', 'titleStyle', 'tooltip', 'useGroupingSeparator', 'width', 'zoomSettings'];
16
- export const outputs = ['afterExport', 'animationComplete', 'annotationRender', 'axisLabelClick', 'axisLabelRender', 'axisMultiLabelRender', 'axisRangeCalculated', 'beforeExport', 'beforePrint', 'beforeResize', 'chartDoubleClick', 'chartMouseClick', 'chartMouseDown', 'chartMouseLeave', 'chartMouseMove', 'chartMouseUp', 'drag', 'dragComplete', 'dragEnd', 'dragStart', 'legendClick', 'legendRender', 'load', 'loaded', 'multiLevelLabelClick', 'onZooming', 'pointClick', 'pointDoubleClick', 'pointMove', 'pointRender', 'resized', 'scrollChanged', 'scrollEnd', 'scrollStart', 'selectionComplete', 'seriesRender', 'sharedTooltipRender', 'textRender', 'tooltipRender', 'zoomComplete', 'dataSourceChange'];
17
- export const twoWays = ['dataSource'];
18
- /**
19
- * Chart Component
20
- * ```html
21
- * <ejschart></ejschart>
22
- * ```
23
- */
24
- let ChartComponent = class ChartComponent extends Chart {
25
- constructor(ngEle, srenderer, viewContainerRef, injector) {
26
- super();
27
- this.ngEle = ngEle;
28
- this.srenderer = srenderer;
29
- this.viewContainerRef = viewContainerRef;
30
- this.injector = injector;
31
- this.tags = ['series', 'axes', 'rows', 'columns', 'rangeColorSettings', 'annotations', 'selectedDataIndexes', 'indicators'];
32
- this.element = this.ngEle.nativeElement;
33
- this.injectedModules = this.injectedModules || [];
34
- try {
35
- let mod = this.injector.get('ChartsLineSeries');
36
- if (this.injectedModules.indexOf(mod) === -1) {
37
- this.injectedModules.push(mod);
38
- }
39
- }
40
- catch { }
41
- try {
42
- let mod = this.injector.get('ChartsScatterSeries');
43
- if (this.injectedModules.indexOf(mod) === -1) {
44
- this.injectedModules.push(mod);
45
- }
46
- }
47
- catch { }
48
- try {
49
- let mod = this.injector.get('ChartsColumnSeries');
50
- if (this.injectedModules.indexOf(mod) === -1) {
51
- this.injectedModules.push(mod);
52
- }
53
- }
54
- catch { }
55
- try {
56
- let mod = this.injector.get('ChartsSplineSeries');
57
- if (this.injectedModules.indexOf(mod) === -1) {
58
- this.injectedModules.push(mod);
59
- }
60
- }
61
- catch { }
62
- try {
63
- let mod = this.injector.get('ChartsSplineAreaSeries');
64
- if (this.injectedModules.indexOf(mod) === -1) {
65
- this.injectedModules.push(mod);
66
- }
67
- }
68
- catch { }
69
- try {
70
- let mod = this.injector.get('ChartsStripLine');
71
- if (this.injectedModules.indexOf(mod) === -1) {
72
- this.injectedModules.push(mod);
73
- }
74
- }
75
- catch { }
76
- try {
77
- let mod = this.injector.get('ChartsAreaSeries');
78
- if (this.injectedModules.indexOf(mod) === -1) {
79
- this.injectedModules.push(mod);
80
- }
81
- }
82
- catch { }
83
- try {
84
- let mod = this.injector.get('ChartsScrollBar');
85
- if (this.injectedModules.indexOf(mod) === -1) {
86
- this.injectedModules.push(mod);
87
- }
88
- }
89
- catch { }
90
- try {
91
- let mod = this.injector.get('ChartsStepLineSeries');
92
- if (this.injectedModules.indexOf(mod) === -1) {
93
- this.injectedModules.push(mod);
94
- }
95
- }
96
- catch { }
97
- try {
98
- let mod = this.injector.get('ChartsStepAreaSeries');
99
- if (this.injectedModules.indexOf(mod) === -1) {
100
- this.injectedModules.push(mod);
101
- }
102
- }
103
- catch { }
104
- try {
105
- let mod = this.injector.get('ChartsStackingColumnSeries');
106
- if (this.injectedModules.indexOf(mod) === -1) {
107
- this.injectedModules.push(mod);
108
- }
109
- }
110
- catch { }
111
- try {
112
- let mod = this.injector.get('ChartsStackingLineSeries');
113
- if (this.injectedModules.indexOf(mod) === -1) {
114
- this.injectedModules.push(mod);
115
- }
116
- }
117
- catch { }
118
- try {
119
- let mod = this.injector.get('ChartsStackingAreaSeries');
120
- if (this.injectedModules.indexOf(mod) === -1) {
121
- this.injectedModules.push(mod);
122
- }
123
- }
124
- catch { }
125
- try {
126
- let mod = this.injector.get('ChartsStackingStepAreaSeries');
127
- if (this.injectedModules.indexOf(mod) === -1) {
128
- this.injectedModules.push(mod);
129
- }
130
- }
131
- catch { }
132
- try {
133
- let mod = this.injector.get('ChartsBarSeries');
134
- if (this.injectedModules.indexOf(mod) === -1) {
135
- this.injectedModules.push(mod);
136
- }
137
- }
138
- catch { }
139
- try {
140
- let mod = this.injector.get('ChartsStackingBarSeries');
141
- if (this.injectedModules.indexOf(mod) === -1) {
142
- this.injectedModules.push(mod);
143
- }
144
- }
145
- catch { }
146
- try {
147
- let mod = this.injector.get('ChartsRangeColumnSeries');
148
- if (this.injectedModules.indexOf(mod) === -1) {
149
- this.injectedModules.push(mod);
150
- }
151
- }
152
- catch { }
153
- try {
154
- let mod = this.injector.get('ChartsBubbleSeries');
155
- if (this.injectedModules.indexOf(mod) === -1) {
156
- this.injectedModules.push(mod);
157
- }
158
- }
159
- catch { }
160
- try {
161
- let mod = this.injector.get('ChartsTooltip');
162
- if (this.injectedModules.indexOf(mod) === -1) {
163
- this.injectedModules.push(mod);
164
- }
165
- }
166
- catch { }
167
- try {
168
- let mod = this.injector.get('ChartsCrosshair');
169
- if (this.injectedModules.indexOf(mod) === -1) {
170
- this.injectedModules.push(mod);
171
- }
172
- }
173
- catch { }
174
- try {
175
- let mod = this.injector.get('ChartsCategory');
176
- if (this.injectedModules.indexOf(mod) === -1) {
177
- this.injectedModules.push(mod);
178
- }
179
- }
180
- catch { }
181
- try {
182
- let mod = this.injector.get('ChartsDateTime');
183
- if (this.injectedModules.indexOf(mod) === -1) {
184
- this.injectedModules.push(mod);
185
- }
186
- }
187
- catch { }
188
- try {
189
- let mod = this.injector.get('ChartsLogarithmic');
190
- if (this.injectedModules.indexOf(mod) === -1) {
191
- this.injectedModules.push(mod);
192
- }
193
- }
194
- catch { }
195
- try {
196
- let mod = this.injector.get('ChartsLegend');
197
- if (this.injectedModules.indexOf(mod) === -1) {
198
- this.injectedModules.push(mod);
199
- }
200
- }
201
- catch { }
202
- try {
203
- let mod = this.injector.get('ChartsZoom');
204
- if (this.injectedModules.indexOf(mod) === -1) {
205
- this.injectedModules.push(mod);
206
- }
207
- }
208
- catch { }
209
- try {
210
- let mod = this.injector.get('ChartsDataLabel');
211
- if (this.injectedModules.indexOf(mod) === -1) {
212
- this.injectedModules.push(mod);
213
- }
214
- }
215
- catch { }
216
- try {
217
- let mod = this.injector.get('ChartsSelection');
218
- if (this.injectedModules.indexOf(mod) === -1) {
219
- this.injectedModules.push(mod);
220
- }
221
- }
222
- catch { }
223
- try {
224
- let mod = this.injector.get('ChartsChartAnnotation');
225
- if (this.injectedModules.indexOf(mod) === -1) {
226
- this.injectedModules.push(mod);
227
- }
228
- }
229
- catch { }
230
- try {
231
- let mod = this.injector.get('ChartsHiloSeries');
232
- if (this.injectedModules.indexOf(mod) === -1) {
233
- this.injectedModules.push(mod);
234
- }
235
- }
236
- catch { }
237
- try {
238
- let mod = this.injector.get('ChartsHiloOpenCloseSeries');
239
- if (this.injectedModules.indexOf(mod) === -1) {
240
- this.injectedModules.push(mod);
241
- }
242
- }
243
- catch { }
244
- try {
245
- let mod = this.injector.get('ChartsWaterfallSeries');
246
- if (this.injectedModules.indexOf(mod) === -1) {
247
- this.injectedModules.push(mod);
248
- }
249
- }
250
- catch { }
251
- try {
252
- let mod = this.injector.get('ChartsRangeAreaSeries');
253
- if (this.injectedModules.indexOf(mod) === -1) {
254
- this.injectedModules.push(mod);
255
- }
256
- }
257
- catch { }
258
- try {
259
- let mod = this.injector.get('ChartsRangeStepAreaSeries');
260
- if (this.injectedModules.indexOf(mod) === -1) {
261
- this.injectedModules.push(mod);
262
- }
263
- }
264
- catch { }
265
- try {
266
- let mod = this.injector.get('ChartsSplineRangeAreaSeries');
267
- if (this.injectedModules.indexOf(mod) === -1) {
268
- this.injectedModules.push(mod);
269
- }
270
- }
271
- catch { }
272
- try {
273
- let mod = this.injector.get('ChartsCandleSeries');
274
- if (this.injectedModules.indexOf(mod) === -1) {
275
- this.injectedModules.push(mod);
276
- }
277
- }
278
- catch { }
279
- try {
280
- let mod = this.injector.get('ChartsPolarSeries');
281
- if (this.injectedModules.indexOf(mod) === -1) {
282
- this.injectedModules.push(mod);
283
- }
284
- }
285
- catch { }
286
- try {
287
- let mod = this.injector.get('ChartsRadarSeries');
288
- if (this.injectedModules.indexOf(mod) === -1) {
289
- this.injectedModules.push(mod);
290
- }
291
- }
292
- catch { }
293
- try {
294
- let mod = this.injector.get('ChartsSmaIndicator');
295
- if (this.injectedModules.indexOf(mod) === -1) {
296
- this.injectedModules.push(mod);
297
- }
298
- }
299
- catch { }
300
- try {
301
- let mod = this.injector.get('ChartsTmaIndicator');
302
- if (this.injectedModules.indexOf(mod) === -1) {
303
- this.injectedModules.push(mod);
304
- }
305
- }
306
- catch { }
307
- try {
308
- let mod = this.injector.get('ChartsEmaIndicator');
309
- if (this.injectedModules.indexOf(mod) === -1) {
310
- this.injectedModules.push(mod);
311
- }
312
- }
313
- catch { }
314
- try {
315
- let mod = this.injector.get('ChartsAccumulationDistributionIndicator');
316
- if (this.injectedModules.indexOf(mod) === -1) {
317
- this.injectedModules.push(mod);
318
- }
319
- }
320
- catch { }
321
- try {
322
- let mod = this.injector.get('ChartsMacdIndicator');
323
- if (this.injectedModules.indexOf(mod) === -1) {
324
- this.injectedModules.push(mod);
325
- }
326
- }
327
- catch { }
328
- try {
329
- let mod = this.injector.get('ChartsAtrIndicator');
330
- if (this.injectedModules.indexOf(mod) === -1) {
331
- this.injectedModules.push(mod);
332
- }
333
- }
334
- catch { }
335
- try {
336
- let mod = this.injector.get('ChartsRsiIndicator');
337
- if (this.injectedModules.indexOf(mod) === -1) {
338
- this.injectedModules.push(mod);
339
- }
340
- }
341
- catch { }
342
- try {
343
- let mod = this.injector.get('ChartsMomentumIndicator');
344
- if (this.injectedModules.indexOf(mod) === -1) {
345
- this.injectedModules.push(mod);
346
- }
347
- }
348
- catch { }
349
- try {
350
- let mod = this.injector.get('ChartsStochasticIndicator');
351
- if (this.injectedModules.indexOf(mod) === -1) {
352
- this.injectedModules.push(mod);
353
- }
354
- }
355
- catch { }
356
- try {
357
- let mod = this.injector.get('ChartsBollingerBands');
358
- if (this.injectedModules.indexOf(mod) === -1) {
359
- this.injectedModules.push(mod);
360
- }
361
- }
362
- catch { }
363
- try {
364
- let mod = this.injector.get('ChartsBoxAndWhiskerSeries');
365
- if (this.injectedModules.indexOf(mod) === -1) {
366
- this.injectedModules.push(mod);
367
- }
368
- }
369
- catch { }
370
- try {
371
- let mod = this.injector.get('ChartsHistogramSeries');
372
- if (this.injectedModules.indexOf(mod) === -1) {
373
- this.injectedModules.push(mod);
374
- }
375
- }
376
- catch { }
377
- try {
378
- let mod = this.injector.get('ChartsErrorBar');
379
- if (this.injectedModules.indexOf(mod) === -1) {
380
- this.injectedModules.push(mod);
381
- }
382
- }
383
- catch { }
384
- try {
385
- let mod = this.injector.get('ChartsTrendlines');
386
- if (this.injectedModules.indexOf(mod) === -1) {
387
- this.injectedModules.push(mod);
388
- }
389
- }
390
- catch { }
391
- try {
392
- let mod = this.injector.get('ChartsDateTimeCategory');
393
- if (this.injectedModules.indexOf(mod) === -1) {
394
- this.injectedModules.push(mod);
395
- }
396
- }
397
- catch { }
398
- try {
399
- let mod = this.injector.get('ChartsMultiColoredLineSeries');
400
- if (this.injectedModules.indexOf(mod) === -1) {
401
- this.injectedModules.push(mod);
402
- }
403
- }
404
- catch { }
405
- try {
406
- let mod = this.injector.get('ChartsMultiColoredAreaSeries');
407
- if (this.injectedModules.indexOf(mod) === -1) {
408
- this.injectedModules.push(mod);
409
- }
410
- }
411
- catch { }
412
- try {
413
- let mod = this.injector.get('ChartsMultiLevelLabel');
414
- if (this.injectedModules.indexOf(mod) === -1) {
415
- this.injectedModules.push(mod);
416
- }
417
- }
418
- catch { }
419
- try {
420
- let mod = this.injector.get('ChartsParetoSeries');
421
- if (this.injectedModules.indexOf(mod) === -1) {
422
- this.injectedModules.push(mod);
423
- }
424
- }
425
- catch { }
426
- try {
427
- let mod = this.injector.get('ChartsExport');
428
- if (this.injectedModules.indexOf(mod) === -1) {
429
- this.injectedModules.push(mod);
430
- }
431
- }
432
- catch { }
433
- try {
434
- let mod = this.injector.get('ChartsDataEditing');
435
- if (this.injectedModules.indexOf(mod) === -1) {
436
- this.injectedModules.push(mod);
437
- }
438
- }
439
- catch { }
440
- try {
441
- let mod = this.injector.get('ChartsHighlight');
442
- if (this.injectedModules.indexOf(mod) === -1) {
443
- this.injectedModules.push(mod);
444
- }
445
- }
446
- catch { }
447
- this.registerEvents(outputs);
448
- this.addTwoWay.call(this, twoWays);
449
- setValue('currentInstance', this, this.viewContainerRef);
450
- this.context = new ComponentBase();
451
- }
452
- ngOnInit() {
453
- this.context.ngOnInit(this);
454
- }
455
- ngAfterViewInit() {
456
- this.context.ngAfterViewInit(this);
457
- }
458
- ngOnDestroy() {
459
- this.context.ngOnDestroy(this);
460
- }
461
- ngAfterContentChecked() {
462
- this.tagObjects[0].instance = this.childSeries;
463
- if (this.childAxes) {
464
- this.tagObjects[1].instance = this.childAxes;
465
- }
466
- if (this.childRows) {
467
- this.tagObjects[2].instance = this.childRows;
468
- }
469
- if (this.childColumns) {
470
- this.tagObjects[3].instance = this.childColumns;
471
- }
472
- if (this.childRangeColorSettings) {
473
- this.tagObjects[4].instance = this.childRangeColorSettings;
474
- }
475
- if (this.childAnnotations) {
476
- this.tagObjects[5].instance = this.childAnnotations;
477
- }
478
- if (this.childSelectedDataIndexes) {
479
- this.tagObjects[6].instance = this.childSelectedDataIndexes;
480
- }
481
- if (this.childIndicators) {
482
- this.tagObjects[7].instance = this.childIndicators;
483
- }
484
- this.context.ngAfterContentChecked(this);
485
- }
486
- };
487
- ChartComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ChartComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ViewContainerRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
488
- ChartComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: ChartComponent, selector: "ejs-chart", inputs: { allowExport: "allowExport", allowMultiSelection: "allowMultiSelection", annotations: "annotations", axes: "axes", background: "background", backgroundImage: "backgroundImage", border: "border", chartArea: "chartArea", columns: "columns", crosshair: "crosshair", currencyCode: "currencyCode", dataSource: "dataSource", description: "description", enableAnimation: "enableAnimation", enableAutoIntervalOnBothAxis: "enableAutoIntervalOnBothAxis", enableCanvas: "enableCanvas", enableExport: "enableExport", enablePersistence: "enablePersistence", enableRtl: "enableRtl", enableSideBySidePlacement: "enableSideBySidePlacement", height: "height", highlightColor: "highlightColor", highlightMode: "highlightMode", highlightPattern: "highlightPattern", indicators: "indicators", isMultiSelect: "isMultiSelect", isTransposed: "isTransposed", legendSettings: "legendSettings", locale: "locale", margin: "margin", palettes: "palettes", primaryXAxis: "primaryXAxis", primaryYAxis: "primaryYAxis", rangeColorSettings: "rangeColorSettings", rows: "rows", selectedDataIndexes: "selectedDataIndexes", selectionMode: "selectionMode", selectionPattern: "selectionPattern", series: "series", subTitle: "subTitle", subTitleStyle: "subTitleStyle", tabIndex: "tabIndex", theme: "theme", title: "title", titleStyle: "titleStyle", tooltip: "tooltip", useGroupingSeparator: "useGroupingSeparator", width: "width", zoomSettings: "zoomSettings" }, outputs: { afterExport: "afterExport", animationComplete: "animationComplete", annotationRender: "annotationRender", axisLabelClick: "axisLabelClick", axisLabelRender: "axisLabelRender", axisMultiLabelRender: "axisMultiLabelRender", axisRangeCalculated: "axisRangeCalculated", beforeExport: "beforeExport", beforePrint: "beforePrint", beforeResize: "beforeResize", chartDoubleClick: "chartDoubleClick", chartMouseClick: "chartMouseClick", chartMouseDown: "chartMouseDown", chartMouseLeave: "chartMouseLeave", chartMouseMove: "chartMouseMove", chartMouseUp: "chartMouseUp", drag: "drag", dragComplete: "dragComplete", dragEnd: "dragEnd", dragStart: "dragStart", legendClick: "legendClick", legendRender: "legendRender", load: "load", loaded: "loaded", multiLevelLabelClick: "multiLevelLabelClick", onZooming: "onZooming", pointClick: "pointClick", pointDoubleClick: "pointDoubleClick", pointMove: "pointMove", pointRender: "pointRender", resized: "resized", scrollChanged: "scrollChanged", scrollEnd: "scrollEnd", scrollStart: "scrollStart", selectionComplete: "selectionComplete", seriesRender: "seriesRender", sharedTooltipRender: "sharedTooltipRender", textRender: "textRender", tooltipRender: "tooltipRender", zoomComplete: "zoomComplete", dataSourceChange: "dataSourceChange" }, queries: [{ propertyName: "tooltip_template", first: true, predicate: ["tooltipTemplate"], descendants: true }, { propertyName: "childSeries", first: true, predicate: SeriesCollectionDirective, descendants: true }, { propertyName: "childAxes", first: true, predicate: AxesDirective, descendants: true }, { propertyName: "childRows", first: true, predicate: RowsDirective, descendants: true }, { propertyName: "childColumns", first: true, predicate: ColumnsDirective, descendants: true }, { propertyName: "childRangeColorSettings", first: true, predicate: RangeColorSettingsDirective, descendants: true }, { propertyName: "childAnnotations", first: true, predicate: AnnotationsDirective, descendants: true }, { propertyName: "childSelectedDataIndexes", first: true, predicate: SelectedDataIndexesDirective, descendants: true }, { propertyName: "childIndicators", first: true, predicate: IndicatorsDirective, descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
489
- __decorate([
490
- Template()
491
- ], ChartComponent.prototype, "tooltip_template", void 0);
492
- ChartComponent = __decorate([
493
- ComponentMixins([ComponentBase])
494
- ], ChartComponent);
495
- export { ChartComponent };
496
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ChartComponent, decorators: [{
497
- type: Component,
498
- args: [{
499
- selector: 'ejs-chart',
500
- inputs: inputs,
501
- outputs: outputs,
502
- template: '',
503
- queries: {
504
- childSeries: new ContentChild(SeriesCollectionDirective),
505
- childAxes: new ContentChild(AxesDirective),
506
- childRows: new ContentChild(RowsDirective),
507
- childColumns: new ContentChild(ColumnsDirective),
508
- childRangeColorSettings: new ContentChild(RangeColorSettingsDirective),
509
- childAnnotations: new ContentChild(AnnotationsDirective),
510
- childSelectedDataIndexes: new ContentChild(SelectedDataIndexesDirective),
511
- childIndicators: new ContentChild(IndicatorsDirective)
512
- }
513
- }]
514
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i0.Injector }]; }, propDecorators: { tooltip_template: [{
515
- type: ContentChild,
516
- args: ['tooltipTemplate']
517
- }] } });
518
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NoYXJ0L2NoYXJ0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBd0csWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlKLE9BQU8sRUFBRSxhQUFhLEVBQStCLGVBQWUsRUFBMEIsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0ksT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUU3RCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQWEsQ0FBQyxhQUFhLEVBQUMscUJBQXFCLEVBQUMsYUFBYSxFQUFDLE1BQU0sRUFBQyxZQUFZLEVBQUMsaUJBQWlCLEVBQUMsUUFBUSxFQUFDLFdBQVcsRUFBQyxTQUFTLEVBQUMsV0FBVyxFQUFDLGNBQWMsRUFBQyxZQUFZLEVBQUMsYUFBYSxFQUFDLGlCQUFpQixFQUFDLDhCQUE4QixFQUFDLGNBQWMsRUFBQyxjQUFjLEVBQUMsbUJBQW1CLEVBQUMsV0FBVyxFQUFDLDJCQUEyQixFQUFDLFFBQVEsRUFBQyxnQkFBZ0IsRUFBQyxlQUFlLEVBQUMsa0JBQWtCLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxjQUFjLEVBQUMsZ0JBQWdCLEVBQUMsUUFBUSxFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsY0FBYyxFQUFDLGNBQWMsRUFBQyxvQkFBb0IsRUFBQyxNQUFNLEVBQUMscUJBQXFCLEVBQUMsZUFBZSxFQUFDLGtCQUFrQixFQUFDLFFBQVEsRUFBQyxVQUFVLEVBQUMsZUFBZSxFQUFDLFVBQVUsRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFDLFlBQVksRUFBQyxTQUFTLEVBQUMsc0JBQXNCLEVBQUMsT0FBTyxFQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3h1QixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQWEsQ0FBQyxhQUFhLEVBQUMsbUJBQW1CLEVBQUMsa0JBQWtCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsc0JBQXNCLEVBQUMscUJBQXFCLEVBQUMsY0FBYyxFQUFDLGFBQWEsRUFBQyxjQUFjLEVBQUMsa0JBQWtCLEVBQUMsaUJBQWlCLEVBQUMsZ0JBQWdCLEVBQUMsaUJBQWlCLEVBQUMsZ0JBQWdCLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxjQUFjLEVBQUMsU0FBUyxFQUFDLFdBQVcsRUFBQyxhQUFhLEVBQUMsY0FBYyxFQUFDLE1BQU0sRUFBQyxRQUFRLEVBQUMsc0JBQXNCLEVBQUMsV0FBVyxFQUFDLFlBQVksRUFBQyxrQkFBa0IsRUFBQyxXQUFXLEVBQUMsYUFBYSxFQUFDLFNBQVMsRUFBQyxlQUFlLEVBQUMsV0FBVyxFQUFDLGFBQWEsRUFBQyxtQkFBbUIsRUFBQyxjQUFjLEVBQUMscUJBQXFCLEVBQUMsWUFBWSxFQUFDLGVBQWUsRUFBQyxjQUFjLEVBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUM5cEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7QUFFaEQ7Ozs7O0dBS0c7SUFrQlUsY0FBYyxTQUFkLGNBQWUsU0FBUSxLQUFLO0lBeURyQyxZQUFvQixLQUFpQixFQUFVLFNBQW9CLEVBQVUsZ0JBQWlDLEVBQVUsUUFBa0I7UUFDdEksS0FBSyxFQUFFLENBQUM7UUFEUSxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBaUI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBTG5JLFNBQUksR0FBYSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFPcEksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztRQUN4QyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUNuRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUN0RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ2hELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUM7WUFDcEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3BELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsNEJBQTRCLENBQUMsQ0FBQztZQUMxRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7WUFDeEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1lBQ3hELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUM1RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1lBQ3ZELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUN2RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzlDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM1QyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzFDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMvQyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNoRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztZQUNyRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1lBQzNELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDakQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1lBQ2pELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDbEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMseUNBQXlDLENBQUMsQ0FBQztZQUN2RSxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDbkQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQ2xELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDdkQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsQ0FBQyxDQUFDO1lBQ3pELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUNwRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDLENBQUM7WUFDekQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUM5QyxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1lBQ3RELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztZQUM1RCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDhCQUE4QixDQUFDLENBQUM7WUFDNUQsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUk7WUFDSSxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1lBQ3JELElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUNsRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzVDLElBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO2FBQ2pDO1NBQ0o7UUFBQyxNQUFNLEdBQUc7UUFFZixJQUFJO1lBQ0ksSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNqRCxJQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO2dCQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTthQUNqQztTQUNKO1FBQUMsTUFBTSxHQUFHO1FBRWYsSUFBSTtZQUNJLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDL0MsSUFBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtnQkFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7YUFDakM7U0FDSjtRQUFDLE1BQU0sR0FBRztRQUVmLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sR0FBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0scUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFbEQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztTQUNoRDtRQUVKLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7U0FDaEQ7UUFFSixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDaEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztTQUNuRDtRQUVKLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFO1lBQzNCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztTQUM5RDtRQUVKLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztTQUN2RDtRQUVKLElBQUksSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztTQUMvRDtRQUVKLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0NBSUosQ0FBQTsyR0EvZ0JZLGNBQWM7K0ZBQWQsY0FBYywyMUZBWFcseUJBQXlCLDRFQUMzQixhQUFhLDRFQUNiLGFBQWEsK0VBQ1YsZ0JBQWdCLDBGQUNMLDJCQUEyQixtRkFDbEMsb0JBQW9CLDJGQUNaLDRCQUE0QixrRkFDckMsbUJBQW1CLHVFQVQvQyxFQUFFO0FBb0VaO0lBREMsUUFBUSxFQUFFO3dEQUNrQjtBQXZEcEIsY0FBYztJQUQxQixlQUFlLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQztHQUNwQixjQUFjLENBK2dCMUI7U0EvZ0JZLGNBQWM7MkZBQWQsY0FBYztrQkFqQjFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLFdBQVc7b0JBQ3JCLE1BQU0sRUFBRSxNQUFNO29CQUNkLE9BQU8sRUFBRSxPQUFPO29CQUNoQixRQUFRLEVBQUUsRUFBRTtvQkFDWixPQUFPLEVBQUU7d0JBQ0wsV0FBVyxFQUFFLElBQUksWUFBWSxDQUFDLHlCQUF5QixDQUFDO3dCQUN4RCxTQUFTLEVBQUUsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDO3dCQUMxQyxTQUFTLEVBQUUsSUFBSSxZQUFZLENBQUMsYUFBYSxDQUFDO3dCQUMxQyxZQUFZLEVBQUUsSUFBSSxZQUFZLENBQUMsZ0JBQWdCLENBQUM7d0JBQ2hELHVCQUF1QixFQUFFLElBQUksWUFBWSxDQUFDLDJCQUEyQixDQUFDO3dCQUN0RSxnQkFBZ0IsRUFBRSxJQUFJLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDeEQsd0JBQXdCLEVBQUUsSUFBSSxZQUFZLENBQUMsNEJBQTRCLENBQUM7d0JBQ3hFLGVBQWUsRUFBRSxJQUFJLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztxQkFDekQ7aUJBQ0o7K0tBeURVLGdCQUFnQjtzQkFGdEIsWUFBWTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIFZpZXdDb250YWluZXJSZWYsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBRdWVyeUxpc3QsIFJlbmRlcmVyMiwgSW5qZWN0b3IsIFZhbHVlUHJvdmlkZXIsIENvbnRlbnRDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50QmFzZSwgSUNvbXBvbmVudEJhc2UsIGFwcGx5TWl4aW5zLCBDb21wb25lbnRNaXhpbnMsIFByb3BlcnR5Q29sbGVjdGlvbkluZm8sIHNldFZhbHVlIH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItYmFzZSc7XG5pbXBvcnQgeyBDaGFydCB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1jaGFydHMnO1xuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItYW5ndWxhci1iYXNlJztcbmltcG9ydCB7IFNlcmllc0NvbGxlY3Rpb25EaXJlY3RpdmUgfSBmcm9tICcuL3Nlcmllcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQXhlc0RpcmVjdGl2ZSB9IGZyb20gJy4vYXhlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm93c0RpcmVjdGl2ZSB9IGZyb20gJy4vcm93cy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQ29sdW1uc0RpcmVjdGl2ZSB9IGZyb20gJy4vY29sdW1ucy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmFuZ2VDb2xvclNldHRpbmdzRGlyZWN0aXZlIH0gZnJvbSAnLi9yYW5nZWNvbG9yc2V0dGluZ3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFubm90YXRpb25zRGlyZWN0aXZlIH0gZnJvbSAnLi9hbm5vdGF0aW9ucy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0ZWREYXRhSW5kZXhlc0RpcmVjdGl2ZSB9IGZyb20gJy4vc2VsZWN0ZWRkYXRhaW5kZXhlcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSW5kaWNhdG9yc0RpcmVjdGl2ZSB9IGZyb20gJy4vaW5kaWNhdG9ycy5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgaW5wdXRzOiBzdHJpbmdbXSA9IFsnYWxsb3dFeHBvcnQnLCdhbGxvd011bHRpU2VsZWN0aW9uJywnYW5ub3RhdGlvbnMnLCdheGVzJywnYmFja2dyb3VuZCcsJ2JhY2tncm91bmRJbWFnZScsJ2JvcmRlcicsJ2NoYXJ0QXJlYScsJ2NvbHVtbnMnLCdjcm9zc2hhaXInLCdjdXJyZW5jeUNvZGUnLCdkYXRhU291cmNlJywnZGVzY3JpcHRpb24nLCdlbmFibGVBbmltYXRpb24nLCdlbmFibGVBdXRvSW50ZXJ2YWxPbkJvdGhBeGlzJywnZW5hYmxlQ2FudmFzJywnZW5hYmxlRXhwb3J0JywnZW5hYmxlUGVyc2lzdGVuY2UnLCdlbmFibGVSdGwnLCdlbmFibGVTaWRlQnlTaWRlUGxhY2VtZW50JywnaGVpZ2h0JywnaGlnaGxpZ2h0Q29sb3InLCdoaWdobGlnaHRNb2RlJywnaGlnaGxpZ2h0UGF0dGVybicsJ2luZGljYXRvcnMnLCdpc011bHRpU2VsZWN0JywnaXNUcmFuc3Bvc2VkJywnbGVnZW5kU2V0dGluZ3MnLCdsb2NhbGUnLCdtYXJnaW4nLCdwYWxldHRlcycsJ3ByaW1hcnlYQXhpcycsJ3ByaW1hcnlZQXhpcycsJ3JhbmdlQ29sb3JTZXR0aW5ncycsJ3Jvd3MnLCdzZWxlY3RlZERhdGFJbmRleGVzJywnc2VsZWN0aW9uTW9kZScsJ3NlbGVjdGlvblBhdHRlcm4nLCdzZXJpZXMnLCdzdWJUaXRsZScsJ3N1YlRpdGxlU3R5bGUnLCd0YWJJbmRleCcsJ3RoZW1lJywndGl0bGUnLCd0aXRsZVN0eWxlJywndG9vbHRpcCcsJ3VzZUdyb3VwaW5nU2VwYXJhdG9yJywnd2lkdGgnLCd6b29tU2V0dGluZ3MnXTtcbmV4cG9ydCBjb25zdCBvdXRwdXRzOiBzdHJpbmdbXSA9IFsnYWZ0ZXJFeHBvcnQnLCdhbmltYXRpb25Db21wbGV0ZScsJ2Fubm90YXRpb25SZW5kZXInLCdheGlzTGFiZWxDbGljaycsJ2F4aXNMYWJlbFJlbmRlcicsJ2F4aXNNdWx0aUxhYmVsUmVuZGVyJywnYXhpc1JhbmdlQ2FsY3VsYXRlZCcsJ2JlZm9yZUV4cG9ydCcsJ2JlZm9yZVByaW50JywnYmVmb3JlUmVzaXplJywnY2hhcnREb3VibGVDbGljaycsJ2NoYXJ0TW91c2VDbGljaycsJ2NoYXJ0TW91c2VEb3duJywnY2hhcnRNb3VzZUxlYXZlJywnY2hhcnRNb3VzZU1vdmUnLCdjaGFydE1vdXNlVXAnLCdkcmFnJywnZHJhZ0NvbXBsZXRlJywnZHJhZ0VuZCcsJ2RyYWdTdGFydCcsJ2xlZ2VuZENsaWNrJywnbGVnZW5kUmVuZGVyJywnbG9hZCcsJ2xvYWRlZCcsJ211bHRpTGV2ZWxMYWJlbENsaWNrJywnb25ab29taW5nJywncG9pbnRDbGljaycsJ3BvaW50RG91YmxlQ2xpY2snLCdwb2ludE1vdmUnLCdwb2ludFJlbmRlcicsJ3Jlc2l6ZWQnLCdzY3JvbGxDaGFuZ2VkJywnc2Nyb2xsRW5kJywnc2Nyb2xsU3RhcnQnLCdzZWxlY3Rpb25Db21wbGV0ZScsJ3Nlcmllc1JlbmRlcicsJ3NoYXJlZFRvb2x0aXBSZW5kZXInLCd0ZXh0UmVuZGVyJywndG9vbHRpcFJlbmRlcicsJ3pvb21Db21wbGV0ZScsJ2RhdGFTb3VyY2VDaGFuZ2UnXTtcbmV4cG9ydCBjb25zdCB0d29XYXlzOiBzdHJpbmdbXSA9IFsnZGF0YVNvdXJjZSddO1xuXG4vKipcbiAqIENoYXJ0IENvbXBvbmVudFxuICogYGBgaHRtbFxuICogPGVqc2NoYXJ0PjwvZWpzY2hhcnQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdlanMtY2hhcnQnLFxuICAgIGlucHV0czogaW5wdXRzLFxuICAgIG91dHB1dHM6IG91dHB1dHMsXG4gICAgdGVtcGxhdGU6ICcnLFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgICAgY2hpbGRTZXJpZXM6IG5ldyBDb250ZW50Q2hpbGQoU2VyaWVzQ29sbGVjdGlvbkRpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZEF4ZXM6IG5ldyBDb250ZW50Q2hpbGQoQXhlc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZFJvd3M6IG5ldyBDb250ZW50Q2hpbGQoUm93c0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZENvbHVtbnM6IG5ldyBDb250ZW50Q2hpbGQoQ29sdW1uc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZFJhbmdlQ29sb3JTZXR0aW5nczogbmV3IENvbnRlbnRDaGlsZChSYW5nZUNvbG9yU2V0dGluZ3NEaXJlY3RpdmUpLCBcbiAgICAgICAgY2hpbGRBbm5vdGF0aW9uczogbmV3IENvbnRlbnRDaGlsZChBbm5vdGF0aW9uc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZFNlbGVjdGVkRGF0YUluZGV4ZXM6IG5ldyBDb250ZW50Q2hpbGQoU2VsZWN0ZWREYXRhSW5kZXhlc0RpcmVjdGl2ZSksIFxuICAgICAgICBjaGlsZEluZGljYXRvcnM6IG5ldyBDb250ZW50Q2hpbGQoSW5kaWNhdG9yc0RpcmVjdGl2ZSlcbiAgICB9XG59KVxuQENvbXBvbmVudE1peGlucyhbQ29tcG9uZW50QmFzZV0pXG5leHBvcnQgY2xhc3MgQ2hhcnRDb21wb25lbnQgZXh0ZW5kcyBDaGFydCBpbXBsZW1lbnRzIElDb21wb25lbnRCYXNlIHtcbiAgICBwdWJsaWMgY29udGV4dCA6IGFueTtcbiAgICBwdWJsaWMgdGFnT2JqZWN0czogYW55O1xuXHRhZnRlckV4cG9ydDogYW55O1xuXHRhbmltYXRpb25Db21wbGV0ZTogYW55O1xuXHRhbm5vdGF0aW9uUmVuZGVyOiBhbnk7XG5cdGF4aXNMYWJlbENsaWNrOiBhbnk7XG5cdGF4aXNMYWJlbFJlbmRlcjogYW55O1xuXHRheGlzTXVsdGlMYWJlbFJlbmRlcjogYW55O1xuXHRheGlzUmFuZ2VDYWxjdWxhdGVkOiBhbnk7XG5cdGJlZm9yZUV4cG9ydDogYW55O1xuXHRiZWZvcmVQcmludDogYW55O1xuXHRiZWZvcmVSZXNpemU6IGFueTtcblx0Y2hhcnREb3VibGVDbGljazogYW55O1xuXHRjaGFydE1vdXNlQ2xpY2s6IGFueTtcblx0Y2hhcnRNb3VzZURvd246IGFueTtcblx0Y2hhcnRNb3VzZUxlYXZlOiBhbnk7XG5cdGNoYXJ0TW91c2VNb3ZlOiBhbnk7XG5cdGNoYXJ0TW91c2VVcDogYW55O1xuXHRkcmFnOiBhbnk7XG5cdGRyYWdDb21wbGV0ZTogYW55O1xuXHRkcmFnRW5kOiBhbnk7XG5cdGRyYWdTdGFydDogYW55O1xuXHRsZWdlbmRDbGljazogYW55O1xuXHRsZWdlbmRSZW5kZXI6IGFueTtcblx0bG9hZDogYW55O1xuXHRsb2FkZWQ6IGFueTtcblx0bXVsdGlMZXZlbExhYmVsQ2xpY2s6IGFueTtcblx0b25ab29taW5nOiBhbnk7XG5cdHBvaW50Q2xpY2s6IGFueTtcblx0cG9pbnREb3VibGVDbGljazogYW55O1xuXHRwb2ludE1vdmU6IGFueTtcblx0cG9pbnRSZW5kZXI6IGFueTtcblx0cmVzaXplZDogYW55O1xuXHRzY3JvbGxDaGFuZ2VkOiBhbnk7XG5cdHNjcm9sbEVuZDogYW55O1xuXHRzY3JvbGxTdGFydDogYW55O1xuXHRzZWxlY3Rpb25Db21wbGV0ZTogYW55O1xuXHRzZXJpZXNSZW5kZXI6IGFueTtcblx0c2hhcmVkVG9vbHRpcFJlbmRlcjogYW55O1xuXHR0ZXh0UmVuZGVyOiBhbnk7XG5cdHRvb2x0aXBSZW5kZXI6IGFueTtcblx0em9vbUNvbXBsZXRlOiBhbnk7XG5cdHB1YmxpYyBkYXRhU291cmNlQ2hhbmdlOiBhbnk7XG4gICAgcHVibGljIGNoaWxkU2VyaWVzOiBRdWVyeUxpc3Q8U2VyaWVzQ29sbGVjdGlvbkRpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkQXhlczogUXVlcnlMaXN0PEF4ZXNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyBjaGlsZFJvd3M6IFF1ZXJ5TGlzdDxSb3dzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRDb2x1bW5zOiBRdWVyeUxpc3Q8Q29sdW1uc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkUmFuZ2VDb2xvclNldHRpbmdzOiBRdWVyeUxpc3Q8UmFuZ2VDb2xvclNldHRpbmdzRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRBbm5vdGF0aW9uczogUXVlcnlMaXN0PEFubm90YXRpb25zRGlyZWN0aXZlPjtcbiAgICBwdWJsaWMgY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzOiBRdWVyeUxpc3Q8U2VsZWN0ZWREYXRhSW5kZXhlc0RpcmVjdGl2ZT47XG4gICAgcHVibGljIGNoaWxkSW5kaWNhdG9yczogUXVlcnlMaXN0PEluZGljYXRvcnNEaXJlY3RpdmU+O1xuICAgIHB1YmxpYyB0YWdzOiBzdHJpbmdbXSA9IFsnc2VyaWVzJywgJ2F4ZXMnLCAncm93cycsICdjb2x1bW5zJywgJ3JhbmdlQ29sb3JTZXR0aW5ncycsICdhbm5vdGF0aW9ucycsICdzZWxlY3RlZERhdGFJbmRleGVzJywgJ2luZGljYXRvcnMnXTtcbiAgICBAQ29udGVudENoaWxkKCd0b29sdGlwVGVtcGxhdGUnKVxuICAgIEBUZW1wbGF0ZSgpXG4gICAgcHVibGljIHRvb2x0aXBfdGVtcGxhdGU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgbmdFbGU6IEVsZW1lbnRSZWYsIHByaXZhdGUgc3JlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjpWaWV3Q29udGFpbmVyUmVmLCBwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLmVsZW1lbnQgPSB0aGlzLm5nRWxlLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzID0gdGhpcy5pbmplY3RlZE1vZHVsZXMgfHwgW107XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNMaW5lU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTY2F0dGVyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDb2x1bW5TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1NwbGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3BsaW5lQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RyaXBMaW5lJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTY3JvbGxCYXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0ZXBMaW5lU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGVwQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RhY2tpbmdDb2x1bW5TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzU3RhY2tpbmdBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdGFja2luZ1N0ZXBBcmVhU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNCYXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1N0YWNraW5nQmFyU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNSYW5nZUNvbHVtblNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQnViYmxlU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNUb29sdGlwJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNDcm9zc2hhaXInKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0NhdGVnb3J5Jyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNEYXRlVGltZScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTG9nYXJpdGhtaWMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0xlZ2VuZCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzWm9vbScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRGF0YUxhYmVsJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTZWxlY3Rpb24nKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0NoYXJ0QW5ub3RhdGlvbicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzSGlsb1NlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzSGlsb09wZW5DbG9zZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzV2F0ZXJmYWxsU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNSYW5nZUFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1JhbmdlU3RlcEFyZWFTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1NwbGluZVJhbmdlQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQ2FuZGxlU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNQb2xhclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzUmFkYXJTZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c1NtYUluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzVG1hSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNFbWFJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0FjY3VtdWxhdGlvbkRpc3RyaWJ1dGlvbkluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTWFjZEluZGljYXRvcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQXRySW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNSc2lJbmRpY2F0b3InKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c01vbWVudHVtSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNTdG9jaGFzdGljSW5kaWNhdG9yJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNCb2xsaW5nZXJCYW5kcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzQm94QW5kV2hpc2tlclNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzSGlzdG9ncmFtU2VyaWVzJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNFcnJvckJhcicpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzVHJlbmRsaW5lcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRGF0ZVRpbWVDYXRlZ29yeScpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTXVsdGlDb2xvcmVkTGluZVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTXVsdGlDb2xvcmVkQXJlYVNlcmllcycpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzTXVsdGlMZXZlbExhYmVsJyk7XG4gICAgICAgICAgICAgICAgaWYodGhpcy5pbmplY3RlZE1vZHVsZXMuaW5kZXhPZihtb2QpID09PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdGVkTW9kdWxlcy5wdXNoKG1vZClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIHsgfVxuXHIgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbGV0IG1vZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KCdDaGFydHNQYXJldG9TZXJpZXMnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0V4cG9ydCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxldCBtb2QgPSB0aGlzLmluamVjdG9yLmdldCgnQ2hhcnRzRGF0YUVkaXRpbmcnKTtcbiAgICAgICAgICAgICAgICBpZih0aGlzLmluamVjdGVkTW9kdWxlcy5pbmRleE9mKG1vZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0ZWRNb2R1bGVzLnB1c2gobW9kKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggeyB9XG5cciAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgbW9kID0gdGhpcy5pbmplY3Rvci5nZXQoJ0NoYXJ0c0hpZ2hsaWdodCcpO1xuICAgICAgICAgICAgICAgIGlmKHRoaXMuaW5qZWN0ZWRNb2R1bGVzLmluZGV4T2YobW9kKSA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RlZE1vZHVsZXMucHVzaChtb2QpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCB7IH1cblxyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJFdmVudHMob3V0cHV0cyk7XG4gICAgICAgIHRoaXMuYWRkVHdvV2F5LmNhbGwodGhpcywgdHdvV2F5cyk7XG4gICAgICAgIHNldFZhbHVlKCdjdXJyZW50SW5zdGFuY2UnLCB0aGlzLCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICB0aGlzLmNvbnRleHQgID0gbmV3IENvbXBvbmVudEJhc2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuY29udGV4dC5uZ09uSW5pdCh0aGlzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbnRleHQubmdBZnRlclZpZXdJbml0KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb250ZXh0Lm5nT25EZXN0cm95KHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGFnT2JqZWN0c1swXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRTZXJpZXM7XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRBeGVzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbMV0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkQXhlcztcbiAgICAgICAgfVxuICAgICAgICBcblx0ICAgIGlmICh0aGlzLmNoaWxkUm93cykge1xuICAgICAgICAgICAgdGhpcy50YWdPYmplY3RzWzJdLmluc3RhbmNlID0gdGhpcy5jaGlsZFJvd3M7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZENvbHVtbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1szXS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRDb2x1bW5zO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRSYW5nZUNvbG9yU2V0dGluZ3MpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1s0XS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRSYW5nZUNvbG9yU2V0dGluZ3M7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZEFubm90YXRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbNV0uaW5zdGFuY2UgPSB0aGlzLmNoaWxkQW5ub3RhdGlvbnM7XG4gICAgICAgIH1cbiAgICAgICAgXG5cdCAgICBpZiAodGhpcy5jaGlsZFNlbGVjdGVkRGF0YUluZGV4ZXMpIHtcbiAgICAgICAgICAgIHRoaXMudGFnT2JqZWN0c1s2XS5pbnN0YW5jZSA9IHRoaXMuY2hpbGRTZWxlY3RlZERhdGFJbmRleGVzO1xuICAgICAgICB9XG4gICAgICAgIFxuXHQgICAgaWYgKHRoaXMuY2hpbGRJbmRpY2F0b3JzKSB7XG4gICAgICAgICAgICB0aGlzLnRhZ09iamVjdHNbN10uaW5zdGFuY2UgPSB0aGlzLmNoaWxkSW5kaWNhdG9ycztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHQubmdBZnRlckNvbnRlbnRDaGVja2VkKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckV2ZW50czogKGV2ZW50TGlzdDogc3RyaW5nW10pID0+IHZvaWQ7XG4gICAgcHVibGljIGFkZFR3b1dheTogKHByb3BMaXN0OiBzdHJpbmdbXSkgPT4gdm9pZDtcbn1cblxuIl19