@wavemaker/app-ng-runtime 11.5.0-next.141081 → 11.5.0-next.141082

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 (1161) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +1 -1
  2. app-ng-runtime/build-task/esm2020/prefab/prefab.build.mjs +2 -2
  3. app-ng-runtime/build-task/fesm2015/index.mjs +1 -1
  4. app-ng-runtime/build-task/fesm2015/index.mjs.map +1 -1
  5. app-ng-runtime/build-task/fesm2020/index.mjs +1 -1
  6. app-ng-runtime/build-task/fesm2020/index.mjs.map +1 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js +3 -2
  8. app-ng-runtime/components/base/esm2020/widgets/common/base/base.component.mjs +3 -2
  9. app-ng-runtime/components/base/esm2020/widgets/common/lazy-load/lazy-load.directive.mjs +2 -2
  10. app-ng-runtime/components/base/esm2020/widgets/common/partial-param/partial-param.directive.mjs +2 -2
  11. app-ng-runtime/components/base/fesm2015/index.mjs +3 -2
  12. app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
  13. app-ng-runtime/components/base/fesm2020/index.mjs +3 -2
  14. app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
  15. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +15 -10
  16. app-ng-runtime/components/containers/wizard/esm2020/wizard-step/wizard-step.directive.mjs +5 -3
  17. app-ng-runtime/components/containers/wizard/esm2020/wizard.module.mjs +8 -4
  18. app-ng-runtime/components/containers/wizard/fesm2015/index.mjs +12 -6
  19. app-ng-runtime/components/containers/wizard/fesm2015/index.mjs.map +1 -1
  20. app-ng-runtime/components/containers/wizard/fesm2020/index.mjs +12 -6
  21. app-ng-runtime/components/containers/wizard/fesm2020/index.mjs.map +1 -1
  22. app-ng-runtime/components/containers/wizard/wizard.module.d.ts +2 -1
  23. app-ng-runtime/locales/angular/global/af-na.js +3 -2
  24. app-ng-runtime/locales/angular/global/af.js +3 -2
  25. app-ng-runtime/locales/angular/global/agq.js +3 -1
  26. app-ng-runtime/locales/angular/global/ak.js +2 -1
  27. app-ng-runtime/locales/angular/global/am.js +3 -3
  28. app-ng-runtime/locales/angular/global/ar-ae.js +3 -2
  29. app-ng-runtime/locales/angular/global/ar-bh.js +3 -2
  30. app-ng-runtime/locales/angular/global/ar-dj.js +3 -2
  31. app-ng-runtime/locales/angular/global/ar-dz.js +3 -2
  32. app-ng-runtime/locales/angular/global/ar-eg.js +3 -2
  33. app-ng-runtime/locales/angular/global/ar-eh.js +3 -2
  34. app-ng-runtime/locales/angular/global/ar-er.js +3 -2
  35. app-ng-runtime/locales/angular/global/ar-il.js +3 -2
  36. app-ng-runtime/locales/angular/global/ar-iq.js +3 -2
  37. app-ng-runtime/locales/angular/global/ar-jo.js +3 -2
  38. app-ng-runtime/locales/angular/global/ar-km.js +3 -2
  39. app-ng-runtime/locales/angular/global/ar-kw.js +3 -2
  40. app-ng-runtime/locales/angular/global/ar-lb.js +3 -2
  41. app-ng-runtime/locales/angular/global/ar-ly.js +3 -2
  42. app-ng-runtime/locales/angular/global/ar-ma.js +3 -2
  43. app-ng-runtime/locales/angular/global/ar-mr.js +3 -2
  44. app-ng-runtime/locales/angular/global/ar-om.js +3 -2
  45. app-ng-runtime/locales/angular/global/ar-ps.js +3 -2
  46. app-ng-runtime/locales/angular/global/ar-qa.js +3 -2
  47. app-ng-runtime/locales/angular/global/ar-sa.js +3 -2
  48. app-ng-runtime/locales/angular/global/ar-sd.js +3 -2
  49. app-ng-runtime/locales/angular/global/ar-so.js +3 -2
  50. app-ng-runtime/locales/angular/global/ar-ss.js +3 -2
  51. app-ng-runtime/locales/angular/global/ar-sy.js +3 -2
  52. app-ng-runtime/locales/angular/global/ar-td.js +3 -2
  53. app-ng-runtime/locales/angular/global/ar-tn.js +3 -2
  54. app-ng-runtime/locales/angular/global/ar-ye.js +3 -2
  55. app-ng-runtime/locales/angular/global/ar.js +3 -2
  56. app-ng-runtime/locales/angular/global/as.js +3 -3
  57. app-ng-runtime/locales/angular/global/asa.js +2 -1
  58. app-ng-runtime/locales/angular/global/ast.js +3 -3
  59. app-ng-runtime/locales/angular/global/az-cyrl.js +3 -1
  60. app-ng-runtime/locales/angular/global/az-latn.js +3 -2
  61. app-ng-runtime/locales/angular/global/az.js +3 -2
  62. app-ng-runtime/locales/angular/global/bas.js +3 -1
  63. app-ng-runtime/locales/angular/global/be-tarask.js +28 -0
  64. app-ng-runtime/locales/angular/global/be.js +3 -2
  65. app-ng-runtime/locales/angular/global/bem.js +2 -1
  66. app-ng-runtime/locales/angular/global/bez.js +2 -1
  67. app-ng-runtime/locales/angular/global/bg.js +3 -2
  68. app-ng-runtime/locales/angular/global/bm.js +4 -2
  69. app-ng-runtime/locales/angular/global/bn-in.js +3 -3
  70. app-ng-runtime/locales/angular/global/bn.js +3 -3
  71. app-ng-runtime/locales/angular/global/bo-in.js +3 -1
  72. app-ng-runtime/locales/angular/global/bo.js +4 -2
  73. app-ng-runtime/locales/angular/global/br.js +3 -2
  74. app-ng-runtime/locales/angular/global/brx.js +3 -2
  75. app-ng-runtime/locales/angular/global/bs-cyrl.js +3 -1
  76. app-ng-runtime/locales/angular/global/bs-latn.js +3 -3
  77. app-ng-runtime/locales/angular/global/bs.js +3 -3
  78. app-ng-runtime/locales/angular/global/ca-ad.js +3 -3
  79. app-ng-runtime/locales/angular/global/ca-es-valencia.js +3 -3
  80. app-ng-runtime/locales/angular/global/ca-fr.js +3 -3
  81. app-ng-runtime/locales/angular/global/ca-it.js +3 -3
  82. app-ng-runtime/locales/angular/global/ca.js +3 -3
  83. app-ng-runtime/locales/angular/global/ccp-in.js +4 -2
  84. app-ng-runtime/locales/angular/global/ccp.js +4 -2
  85. app-ng-runtime/locales/angular/global/ce.js +3 -2
  86. app-ng-runtime/locales/angular/global/ceb.js +3 -3
  87. app-ng-runtime/locales/angular/global/cgg.js +2 -1
  88. app-ng-runtime/locales/angular/global/chr.js +3 -2
  89. app-ng-runtime/locales/angular/global/ckb-ir.js +2 -1
  90. app-ng-runtime/locales/angular/global/ckb.js +2 -1
  91. app-ng-runtime/locales/angular/global/cs.js +3 -3
  92. app-ng-runtime/locales/angular/global/cy.js +3 -2
  93. app-ng-runtime/locales/angular/global/da-gl.js +3 -3
  94. app-ng-runtime/locales/angular/global/da.js +3 -3
  95. app-ng-runtime/locales/angular/global/dav.js +3 -1
  96. app-ng-runtime/locales/angular/global/de-at.js +3 -3
  97. app-ng-runtime/locales/angular/global/de-be.js +3 -3
  98. app-ng-runtime/locales/angular/global/de-ch.js +3 -3
  99. app-ng-runtime/locales/angular/global/de-it.js +3 -3
  100. app-ng-runtime/locales/angular/global/de-li.js +3 -3
  101. app-ng-runtime/locales/angular/global/de-lu.js +3 -3
  102. app-ng-runtime/locales/angular/global/de.js +3 -3
  103. app-ng-runtime/locales/angular/global/dje.js +4 -2
  104. app-ng-runtime/locales/angular/global/doi.js +24 -0
  105. app-ng-runtime/locales/angular/global/dsb.js +3 -3
  106. app-ng-runtime/locales/angular/global/dua.js +3 -1
  107. app-ng-runtime/locales/angular/global/dyo.js +4 -2
  108. app-ng-runtime/locales/angular/global/dz.js +3 -1
  109. app-ng-runtime/locales/angular/global/ebu.js +3 -1
  110. app-ng-runtime/locales/angular/global/ee-tg.js +3 -2
  111. app-ng-runtime/locales/angular/global/ee.js +3 -2
  112. app-ng-runtime/locales/angular/global/el-cy.js +3 -2
  113. app-ng-runtime/locales/angular/global/el.js +3 -2
  114. app-ng-runtime/locales/angular/global/en-001.js +3 -3
  115. app-ng-runtime/locales/angular/global/en-150.js +3 -3
  116. app-ng-runtime/locales/angular/global/en-ae.js +3 -3
  117. app-ng-runtime/locales/angular/global/en-ag.js +3 -3
  118. app-ng-runtime/locales/angular/global/en-ai.js +3 -3
  119. app-ng-runtime/locales/angular/global/en-as.js +2 -2
  120. app-ng-runtime/locales/angular/global/en-at.js +3 -3
  121. app-ng-runtime/locales/angular/global/en-au.js +3 -3
  122. app-ng-runtime/locales/angular/global/en-bb.js +3 -3
  123. app-ng-runtime/locales/angular/global/en-be.js +3 -3
  124. app-ng-runtime/locales/angular/global/en-bi.js +2 -2
  125. app-ng-runtime/locales/angular/global/en-bm.js +3 -3
  126. app-ng-runtime/locales/angular/global/en-bs.js +3 -3
  127. app-ng-runtime/locales/angular/global/en-bw.js +3 -3
  128. app-ng-runtime/locales/angular/global/en-bz.js +3 -3
  129. app-ng-runtime/locales/angular/global/en-ca.js +3 -3
  130. app-ng-runtime/locales/angular/global/en-cc.js +3 -3
  131. app-ng-runtime/locales/angular/global/en-ch.js +3 -3
  132. app-ng-runtime/locales/angular/global/en-ck.js +3 -3
  133. app-ng-runtime/locales/angular/global/en-cm.js +3 -3
  134. app-ng-runtime/locales/angular/global/en-cx.js +3 -3
  135. app-ng-runtime/locales/angular/global/en-cy.js +3 -3
  136. app-ng-runtime/locales/angular/global/en-de.js +3 -3
  137. app-ng-runtime/locales/angular/global/en-dg.js +3 -3
  138. app-ng-runtime/locales/angular/global/en-dk.js +3 -3
  139. app-ng-runtime/locales/angular/global/en-dm.js +3 -3
  140. app-ng-runtime/locales/angular/global/en-er.js +3 -3
  141. app-ng-runtime/locales/angular/global/en-fi.js +3 -3
  142. app-ng-runtime/locales/angular/global/en-fj.js +3 -3
  143. app-ng-runtime/locales/angular/global/en-fk.js +3 -3
  144. app-ng-runtime/locales/angular/global/en-fm.js +3 -3
  145. app-ng-runtime/locales/angular/global/en-gb.js +3 -3
  146. app-ng-runtime/locales/angular/global/en-gd.js +3 -3
  147. app-ng-runtime/locales/angular/global/en-gg.js +3 -3
  148. app-ng-runtime/locales/angular/global/en-gh.js +3 -3
  149. app-ng-runtime/locales/angular/global/en-gi.js +3 -3
  150. app-ng-runtime/locales/angular/global/en-gm.js +3 -3
  151. app-ng-runtime/locales/angular/global/en-gu.js +2 -2
  152. app-ng-runtime/locales/angular/global/en-gy.js +3 -3
  153. app-ng-runtime/locales/angular/global/en-hk.js +3 -3
  154. app-ng-runtime/locales/angular/global/en-ie.js +3 -3
  155. app-ng-runtime/locales/angular/global/en-il.js +3 -3
  156. app-ng-runtime/locales/angular/global/en-im.js +3 -3
  157. app-ng-runtime/locales/angular/global/en-in.js +3 -3
  158. app-ng-runtime/locales/angular/global/en-io.js +3 -3
  159. app-ng-runtime/locales/angular/global/en-je.js +3 -3
  160. app-ng-runtime/locales/angular/global/en-jm.js +3 -3
  161. app-ng-runtime/locales/angular/global/en-ke.js +3 -3
  162. app-ng-runtime/locales/angular/global/en-ki.js +3 -3
  163. app-ng-runtime/locales/angular/global/en-kn.js +3 -3
  164. app-ng-runtime/locales/angular/global/en-ky.js +3 -3
  165. app-ng-runtime/locales/angular/global/en-lc.js +3 -3
  166. app-ng-runtime/locales/angular/global/en-lr.js +3 -3
  167. app-ng-runtime/locales/angular/global/en-ls.js +3 -3
  168. app-ng-runtime/locales/angular/global/en-mg.js +3 -3
  169. app-ng-runtime/locales/angular/global/en-mh.js +2 -2
  170. app-ng-runtime/locales/angular/global/en-mo.js +3 -3
  171. app-ng-runtime/locales/angular/global/en-mp.js +2 -2
  172. app-ng-runtime/locales/angular/global/en-ms.js +3 -3
  173. app-ng-runtime/locales/angular/global/en-mt.js +3 -3
  174. app-ng-runtime/locales/angular/global/en-mu.js +3 -3
  175. app-ng-runtime/locales/angular/global/en-mv.js +24 -0
  176. app-ng-runtime/locales/angular/global/en-mw.js +3 -3
  177. app-ng-runtime/locales/angular/global/en-my.js +3 -3
  178. app-ng-runtime/locales/angular/global/en-na.js +3 -3
  179. app-ng-runtime/locales/angular/global/en-nf.js +3 -3
  180. app-ng-runtime/locales/angular/global/en-ng.js +3 -3
  181. app-ng-runtime/locales/angular/global/en-nl.js +3 -3
  182. app-ng-runtime/locales/angular/global/en-nr.js +3 -3
  183. app-ng-runtime/locales/angular/global/en-nu.js +3 -3
  184. app-ng-runtime/locales/angular/global/en-nz.js +3 -3
  185. app-ng-runtime/locales/angular/global/en-pg.js +3 -3
  186. app-ng-runtime/locales/angular/global/en-ph.js +3 -3
  187. app-ng-runtime/locales/angular/global/en-pk.js +3 -3
  188. app-ng-runtime/locales/angular/global/en-pn.js +3 -3
  189. app-ng-runtime/locales/angular/global/en-pr.js +2 -2
  190. app-ng-runtime/locales/angular/global/en-pw.js +3 -3
  191. app-ng-runtime/locales/angular/global/en-rw.js +3 -3
  192. app-ng-runtime/locales/angular/global/en-sb.js +3 -3
  193. app-ng-runtime/locales/angular/global/en-sc.js +3 -3
  194. app-ng-runtime/locales/angular/global/en-sd.js +3 -3
  195. app-ng-runtime/locales/angular/global/en-se.js +3 -3
  196. app-ng-runtime/locales/angular/global/en-sg.js +3 -3
  197. app-ng-runtime/locales/angular/global/en-sh.js +3 -3
  198. app-ng-runtime/locales/angular/global/en-si.js +3 -3
  199. app-ng-runtime/locales/angular/global/en-sl.js +3 -3
  200. app-ng-runtime/locales/angular/global/en-ss.js +3 -3
  201. app-ng-runtime/locales/angular/global/en-sx.js +3 -3
  202. app-ng-runtime/locales/angular/global/en-sz.js +3 -3
  203. app-ng-runtime/locales/angular/global/en-tc.js +3 -3
  204. app-ng-runtime/locales/angular/global/en-tk.js +3 -3
  205. app-ng-runtime/locales/angular/global/en-to.js +3 -3
  206. app-ng-runtime/locales/angular/global/en-tt.js +3 -3
  207. app-ng-runtime/locales/angular/global/en-tv.js +3 -3
  208. app-ng-runtime/locales/angular/global/en-tz.js +3 -3
  209. app-ng-runtime/locales/angular/global/en-ug.js +3 -3
  210. app-ng-runtime/locales/angular/global/en-um.js +2 -2
  211. app-ng-runtime/locales/angular/global/en-vc.js +3 -3
  212. app-ng-runtime/locales/angular/global/en-vg.js +3 -3
  213. app-ng-runtime/locales/angular/global/en-vi.js +2 -2
  214. app-ng-runtime/locales/angular/global/en-vu.js +3 -3
  215. app-ng-runtime/locales/angular/global/en-ws.js +3 -3
  216. app-ng-runtime/locales/angular/global/en-za.js +3 -3
  217. app-ng-runtime/locales/angular/global/en-zm.js +3 -3
  218. app-ng-runtime/locales/angular/global/en-zw.js +3 -3
  219. app-ng-runtime/locales/angular/global/en.js +2 -2
  220. app-ng-runtime/locales/angular/global/eo.js +2 -1
  221. app-ng-runtime/locales/angular/global/es-419.js +5 -2
  222. app-ng-runtime/locales/angular/global/es-ar.js +5 -2
  223. app-ng-runtime/locales/angular/global/es-bo.js +5 -2
  224. app-ng-runtime/locales/angular/global/es-br.js +5 -2
  225. app-ng-runtime/locales/angular/global/es-bz.js +5 -2
  226. app-ng-runtime/locales/angular/global/es-cl.js +5 -2
  227. app-ng-runtime/locales/angular/global/es-co.js +5 -2
  228. app-ng-runtime/locales/angular/global/es-cr.js +5 -2
  229. app-ng-runtime/locales/angular/global/es-cu.js +5 -2
  230. app-ng-runtime/locales/angular/global/es-do.js +5 -2
  231. app-ng-runtime/locales/angular/global/es-ea.js +5 -2
  232. app-ng-runtime/locales/angular/global/es-ec.js +5 -2
  233. app-ng-runtime/locales/angular/global/es-gq.js +5 -2
  234. app-ng-runtime/locales/angular/global/es-gt.js +5 -2
  235. app-ng-runtime/locales/angular/global/es-hn.js +5 -2
  236. app-ng-runtime/locales/angular/global/es-ic.js +5 -2
  237. app-ng-runtime/locales/angular/global/es-mx.js +5 -2
  238. app-ng-runtime/locales/angular/global/es-ni.js +5 -2
  239. app-ng-runtime/locales/angular/global/es-pa.js +5 -2
  240. app-ng-runtime/locales/angular/global/es-pe.js +5 -2
  241. app-ng-runtime/locales/angular/global/es-ph.js +5 -2
  242. app-ng-runtime/locales/angular/global/es-pr.js +5 -2
  243. app-ng-runtime/locales/angular/global/es-py.js +5 -2
  244. app-ng-runtime/locales/angular/global/es-sv.js +5 -2
  245. app-ng-runtime/locales/angular/global/es-us.js +5 -2
  246. app-ng-runtime/locales/angular/global/es-uy.js +5 -2
  247. app-ng-runtime/locales/angular/global/es-ve.js +5 -2
  248. app-ng-runtime/locales/angular/global/es.js +5 -2
  249. app-ng-runtime/locales/angular/global/et.js +3 -3
  250. app-ng-runtime/locales/angular/global/eu.js +3 -2
  251. app-ng-runtime/locales/angular/global/ewo.js +3 -1
  252. app-ng-runtime/locales/angular/global/fa-af.js +3 -3
  253. app-ng-runtime/locales/angular/global/fa.js +3 -3
  254. app-ng-runtime/locales/angular/global/ff-adlm-bf.js +22 -0
  255. app-ng-runtime/locales/angular/global/ff-adlm-cm.js +22 -0
  256. app-ng-runtime/locales/angular/global/ff-adlm-gh.js +22 -0
  257. app-ng-runtime/locales/angular/global/ff-adlm-gm.js +22 -0
  258. app-ng-runtime/locales/angular/global/ff-adlm-gw.js +22 -0
  259. app-ng-runtime/locales/angular/global/ff-adlm-lr.js +22 -0
  260. app-ng-runtime/locales/angular/global/ff-adlm-mr.js +22 -0
  261. app-ng-runtime/locales/angular/global/ff-adlm-ne.js +22 -0
  262. app-ng-runtime/locales/angular/global/ff-adlm-ng.js +22 -0
  263. app-ng-runtime/locales/angular/global/ff-adlm-sl.js +22 -0
  264. app-ng-runtime/locales/angular/global/ff-adlm-sn.js +22 -0
  265. app-ng-runtime/locales/angular/global/ff-adlm.js +22 -0
  266. app-ng-runtime/locales/angular/global/ff-latn-bf.js +3 -3
  267. app-ng-runtime/locales/angular/global/ff-latn-cm.js +2 -2
  268. app-ng-runtime/locales/angular/global/ff-latn-gh.js +2 -2
  269. app-ng-runtime/locales/angular/global/ff-latn-gm.js +2 -2
  270. app-ng-runtime/locales/angular/global/ff-latn-gn.js +2 -2
  271. app-ng-runtime/locales/angular/global/ff-latn-gw.js +3 -3
  272. app-ng-runtime/locales/angular/global/ff-latn-lr.js +2 -2
  273. app-ng-runtime/locales/angular/global/ff-latn-mr.js +2 -2
  274. app-ng-runtime/locales/angular/global/ff-latn-ne.js +3 -3
  275. app-ng-runtime/locales/angular/global/ff-latn-ng.js +2 -2
  276. app-ng-runtime/locales/angular/global/ff-latn-sl.js +2 -2
  277. app-ng-runtime/locales/angular/global/ff-latn.js +3 -3
  278. app-ng-runtime/locales/angular/global/ff.js +3 -3
  279. app-ng-runtime/locales/angular/global/fi.js +3 -3
  280. app-ng-runtime/locales/angular/global/fil.js +3 -3
  281. app-ng-runtime/locales/angular/global/fo-dk.js +3 -2
  282. app-ng-runtime/locales/angular/global/fo.js +3 -2
  283. app-ng-runtime/locales/angular/global/fr-be.js +5 -3
  284. app-ng-runtime/locales/angular/global/fr-bf.js +5 -3
  285. app-ng-runtime/locales/angular/global/fr-bi.js +5 -3
  286. app-ng-runtime/locales/angular/global/fr-bj.js +5 -3
  287. app-ng-runtime/locales/angular/global/fr-bl.js +5 -3
  288. app-ng-runtime/locales/angular/global/fr-ca.js +5 -3
  289. app-ng-runtime/locales/angular/global/fr-cd.js +5 -3
  290. app-ng-runtime/locales/angular/global/fr-cf.js +5 -3
  291. app-ng-runtime/locales/angular/global/fr-cg.js +5 -3
  292. app-ng-runtime/locales/angular/global/fr-ch.js +5 -3
  293. app-ng-runtime/locales/angular/global/fr-ci.js +5 -3
  294. app-ng-runtime/locales/angular/global/fr-cm.js +5 -3
  295. app-ng-runtime/locales/angular/global/fr-dj.js +5 -3
  296. app-ng-runtime/locales/angular/global/fr-dz.js +5 -3
  297. app-ng-runtime/locales/angular/global/fr-ga.js +5 -3
  298. app-ng-runtime/locales/angular/global/fr-gf.js +5 -3
  299. app-ng-runtime/locales/angular/global/fr-gn.js +5 -3
  300. app-ng-runtime/locales/angular/global/fr-gp.js +5 -3
  301. app-ng-runtime/locales/angular/global/fr-gq.js +5 -3
  302. app-ng-runtime/locales/angular/global/fr-ht.js +5 -3
  303. app-ng-runtime/locales/angular/global/fr-km.js +5 -3
  304. app-ng-runtime/locales/angular/global/fr-lu.js +5 -3
  305. app-ng-runtime/locales/angular/global/fr-ma.js +5 -3
  306. app-ng-runtime/locales/angular/global/fr-mc.js +5 -3
  307. app-ng-runtime/locales/angular/global/fr-mf.js +5 -3
  308. app-ng-runtime/locales/angular/global/fr-mg.js +5 -3
  309. app-ng-runtime/locales/angular/global/fr-ml.js +5 -3
  310. app-ng-runtime/locales/angular/global/fr-mq.js +5 -3
  311. app-ng-runtime/locales/angular/global/fr-mr.js +5 -3
  312. app-ng-runtime/locales/angular/global/fr-mu.js +5 -3
  313. app-ng-runtime/locales/angular/global/fr-nc.js +5 -3
  314. app-ng-runtime/locales/angular/global/fr-ne.js +5 -3
  315. app-ng-runtime/locales/angular/global/fr-pf.js +5 -3
  316. app-ng-runtime/locales/angular/global/fr-pm.js +5 -3
  317. app-ng-runtime/locales/angular/global/fr-re.js +5 -3
  318. app-ng-runtime/locales/angular/global/fr-rw.js +5 -3
  319. app-ng-runtime/locales/angular/global/fr-sc.js +5 -3
  320. app-ng-runtime/locales/angular/global/fr-sn.js +5 -3
  321. app-ng-runtime/locales/angular/global/fr-sy.js +5 -3
  322. app-ng-runtime/locales/angular/global/fr-td.js +5 -3
  323. app-ng-runtime/locales/angular/global/fr-tg.js +5 -3
  324. app-ng-runtime/locales/angular/global/fr-tn.js +5 -3
  325. app-ng-runtime/locales/angular/global/fr-vu.js +5 -3
  326. app-ng-runtime/locales/angular/global/fr-wf.js +5 -3
  327. app-ng-runtime/locales/angular/global/fr-yt.js +5 -3
  328. app-ng-runtime/locales/angular/global/fr.js +5 -3
  329. app-ng-runtime/locales/angular/global/fur.js +2 -1
  330. app-ng-runtime/locales/angular/global/fy.js +2 -2
  331. app-ng-runtime/locales/angular/global/ga-gb.js +3 -2
  332. app-ng-runtime/locales/angular/global/ga.js +3 -2
  333. app-ng-runtime/locales/angular/global/gd.js +3 -2
  334. app-ng-runtime/locales/angular/global/gl.js +3 -3
  335. app-ng-runtime/locales/angular/global/gsw-fr.js +2 -1
  336. app-ng-runtime/locales/angular/global/gsw-li.js +2 -1
  337. app-ng-runtime/locales/angular/global/gsw.js +2 -1
  338. app-ng-runtime/locales/angular/global/gu.js +3 -3
  339. app-ng-runtime/locales/angular/global/guz.js +3 -1
  340. app-ng-runtime/locales/angular/global/gv.js +2 -2
  341. app-ng-runtime/locales/angular/global/ha-gh.js +3 -2
  342. app-ng-runtime/locales/angular/global/ha-ne.js +3 -2
  343. app-ng-runtime/locales/angular/global/ha.js +3 -2
  344. app-ng-runtime/locales/angular/global/haw.js +2 -1
  345. app-ng-runtime/locales/angular/global/he.js +3 -3
  346. app-ng-runtime/locales/angular/global/hi-latn.js +24 -0
  347. app-ng-runtime/locales/angular/global/hi.js +3 -3
  348. app-ng-runtime/locales/angular/global/hr-ba.js +3 -3
  349. app-ng-runtime/locales/angular/global/hr.js +3 -3
  350. app-ng-runtime/locales/angular/global/hsb.js +3 -3
  351. app-ng-runtime/locales/angular/global/hu.js +3 -2
  352. app-ng-runtime/locales/angular/global/hy.js +3 -3
  353. app-ng-runtime/locales/angular/global/ia.js +2 -2
  354. app-ng-runtime/locales/angular/global/id.js +4 -2
  355. app-ng-runtime/locales/angular/global/ig.js +4 -2
  356. app-ng-runtime/locales/angular/global/ii.js +4 -2
  357. app-ng-runtime/locales/angular/global/is.js +3 -3
  358. app-ng-runtime/locales/angular/global/it-ch.js +5 -3
  359. app-ng-runtime/locales/angular/global/it-sm.js +5 -3
  360. app-ng-runtime/locales/angular/global/it-va.js +5 -3
  361. app-ng-runtime/locales/angular/global/it.js +5 -3
  362. app-ng-runtime/locales/angular/global/ja.js +4 -2
  363. app-ng-runtime/locales/angular/global/jgo.js +2 -1
  364. app-ng-runtime/locales/angular/global/jmc.js +2 -1
  365. app-ng-runtime/locales/angular/global/jv.js +3 -1
  366. app-ng-runtime/locales/angular/global/ka.js +3 -2
  367. app-ng-runtime/locales/angular/global/kab.js +2 -2
  368. app-ng-runtime/locales/angular/global/kam.js +3 -1
  369. app-ng-runtime/locales/angular/global/kde.js +3 -1
  370. app-ng-runtime/locales/angular/global/kea.js +4 -2
  371. app-ng-runtime/locales/angular/global/kgp.js +22 -0
  372. app-ng-runtime/locales/angular/global/khq.js +4 -2
  373. app-ng-runtime/locales/angular/global/ki.js +3 -1
  374. app-ng-runtime/locales/angular/global/kk.js +3 -2
  375. app-ng-runtime/locales/angular/global/kkj.js +2 -1
  376. app-ng-runtime/locales/angular/global/kl.js +2 -1
  377. app-ng-runtime/locales/angular/global/kln.js +3 -1
  378. app-ng-runtime/locales/angular/global/km.js +4 -2
  379. app-ng-runtime/locales/angular/global/kn.js +3 -3
  380. app-ng-runtime/locales/angular/global/ko-kp.js +4 -2
  381. app-ng-runtime/locales/angular/global/ko.js +4 -2
  382. app-ng-runtime/locales/angular/global/kok.js +4 -2
  383. app-ng-runtime/locales/angular/global/ks-arab.js +3 -2
  384. app-ng-runtime/locales/angular/global/ks-deva.js +22 -0
  385. app-ng-runtime/locales/angular/global/ks.js +3 -2
  386. app-ng-runtime/locales/angular/global/ksb.js +2 -1
  387. app-ng-runtime/locales/angular/global/ksf.js +3 -1
  388. app-ng-runtime/locales/angular/global/ksh.js +2 -1
  389. app-ng-runtime/locales/angular/global/ku.js +2 -1
  390. app-ng-runtime/locales/angular/global/kw.js +2 -1
  391. app-ng-runtime/locales/angular/global/ky.js +3 -2
  392. app-ng-runtime/locales/angular/global/lag.js +2 -2
  393. app-ng-runtime/locales/angular/global/lb.js +3 -2
  394. app-ng-runtime/locales/angular/global/lg.js +2 -1
  395. app-ng-runtime/locales/angular/global/lkt.js +3 -1
  396. app-ng-runtime/locales/angular/global/ln-ao.js +2 -1
  397. app-ng-runtime/locales/angular/global/ln-cf.js +2 -1
  398. app-ng-runtime/locales/angular/global/ln-cg.js +2 -1
  399. app-ng-runtime/locales/angular/global/ln.js +2 -1
  400. app-ng-runtime/locales/angular/global/lo.js +4 -2
  401. app-ng-runtime/locales/angular/global/lrc-iq.js +3 -1
  402. app-ng-runtime/locales/angular/global/lrc.js +3 -1
  403. app-ng-runtime/locales/angular/global/lt.js +3 -3
  404. app-ng-runtime/locales/angular/global/lu.js +3 -1
  405. app-ng-runtime/locales/angular/global/luo.js +3 -1
  406. app-ng-runtime/locales/angular/global/luy.js +3 -1
  407. app-ng-runtime/locales/angular/global/lv.js +3 -3
  408. app-ng-runtime/locales/angular/global/mai.js +22 -0
  409. app-ng-runtime/locales/angular/global/mas-tz.js +2 -1
  410. app-ng-runtime/locales/angular/global/mas.js +2 -1
  411. app-ng-runtime/locales/angular/global/mer.js +3 -1
  412. app-ng-runtime/locales/angular/global/mfe.js +3 -1
  413. app-ng-runtime/locales/angular/global/mg.js +2 -1
  414. app-ng-runtime/locales/angular/global/mgh.js +3 -1
  415. app-ng-runtime/locales/angular/global/mgo.js +2 -1
  416. app-ng-runtime/locales/angular/global/mi.js +3 -1
  417. app-ng-runtime/locales/angular/global/mk.js +3 -3
  418. app-ng-runtime/locales/angular/global/ml.js +3 -2
  419. app-ng-runtime/locales/angular/global/mn.js +3 -2
  420. app-ng-runtime/locales/angular/global/mni-beng.js +22 -0
  421. app-ng-runtime/locales/angular/global/mni.js +22 -0
  422. app-ng-runtime/locales/angular/global/mr.js +3 -2
  423. app-ng-runtime/locales/angular/global/ms-bn.js +4 -2
  424. app-ng-runtime/locales/angular/global/ms-id.js +22 -0
  425. app-ng-runtime/locales/angular/global/ms-sg.js +4 -2
  426. app-ng-runtime/locales/angular/global/ms.js +4 -2
  427. app-ng-runtime/locales/angular/global/mt.js +3 -2
  428. app-ng-runtime/locales/angular/global/mua.js +3 -1
  429. app-ng-runtime/locales/angular/global/my.js +4 -2
  430. app-ng-runtime/locales/angular/global/mzn.js +4 -2
  431. app-ng-runtime/locales/angular/global/naq.js +2 -1
  432. app-ng-runtime/locales/angular/global/nb-sj.js +3 -2
  433. app-ng-runtime/locales/angular/global/nb.js +3 -2
  434. app-ng-runtime/locales/angular/global/nd.js +2 -1
  435. app-ng-runtime/locales/angular/global/nds-nl.js +3 -1
  436. app-ng-runtime/locales/angular/global/nds.js +3 -1
  437. app-ng-runtime/locales/angular/global/ne-in.js +3 -2
  438. app-ng-runtime/locales/angular/global/ne.js +3 -2
  439. app-ng-runtime/locales/angular/global/nl-aw.js +3 -3
  440. app-ng-runtime/locales/angular/global/nl-be.js +3 -3
  441. app-ng-runtime/locales/angular/global/nl-bq.js +3 -3
  442. app-ng-runtime/locales/angular/global/nl-cw.js +3 -3
  443. app-ng-runtime/locales/angular/global/nl-sr.js +3 -3
  444. app-ng-runtime/locales/angular/global/nl-sx.js +3 -3
  445. app-ng-runtime/locales/angular/global/nl.js +3 -3
  446. app-ng-runtime/locales/angular/global/nmg.js +3 -1
  447. app-ng-runtime/locales/angular/global/nn.js +3 -2
  448. app-ng-runtime/locales/angular/global/nnh.js +2 -1
  449. app-ng-runtime/locales/angular/global/no.js +24 -0
  450. app-ng-runtime/locales/angular/global/nus.js +3 -1
  451. app-ng-runtime/locales/angular/global/nyn.js +2 -1
  452. app-ng-runtime/locales/angular/global/om-ke.js +2 -1
  453. app-ng-runtime/locales/angular/global/om.js +2 -1
  454. app-ng-runtime/locales/angular/global/or.js +3 -2
  455. app-ng-runtime/locales/angular/global/os-ru.js +2 -1
  456. app-ng-runtime/locales/angular/global/os.js +2 -1
  457. app-ng-runtime/locales/angular/global/pa-arab.js +3 -1
  458. app-ng-runtime/locales/angular/global/pa-guru.js +3 -2
  459. app-ng-runtime/locales/angular/global/pa.js +3 -2
  460. app-ng-runtime/locales/angular/global/pcm.js +24 -0
  461. app-ng-runtime/locales/angular/global/pl.js +3 -3
  462. app-ng-runtime/locales/angular/global/ps-pk.js +3 -2
  463. app-ng-runtime/locales/angular/global/ps.js +3 -2
  464. app-ng-runtime/locales/angular/global/pt-ao.js +5 -3
  465. app-ng-runtime/locales/angular/global/pt-ch.js +5 -3
  466. app-ng-runtime/locales/angular/global/pt-cv.js +5 -3
  467. app-ng-runtime/locales/angular/global/pt-gq.js +5 -3
  468. app-ng-runtime/locales/angular/global/pt-gw.js +5 -3
  469. app-ng-runtime/locales/angular/global/pt-lu.js +5 -3
  470. app-ng-runtime/locales/angular/global/pt-mo.js +5 -3
  471. app-ng-runtime/locales/angular/global/pt-mz.js +5 -3
  472. app-ng-runtime/locales/angular/global/pt-pt.js +5 -3
  473. app-ng-runtime/locales/angular/global/pt-st.js +5 -3
  474. app-ng-runtime/locales/angular/global/pt-tl.js +5 -3
  475. app-ng-runtime/locales/angular/global/pt.js +5 -3
  476. app-ng-runtime/locales/angular/global/qu-bo.js +4 -2
  477. app-ng-runtime/locales/angular/global/qu-ec.js +4 -2
  478. app-ng-runtime/locales/angular/global/qu.js +4 -2
  479. app-ng-runtime/locales/angular/global/rm.js +3 -2
  480. app-ng-runtime/locales/angular/global/rn.js +3 -1
  481. app-ng-runtime/locales/angular/global/ro-md.js +3 -3
  482. app-ng-runtime/locales/angular/global/ro.js +3 -3
  483. app-ng-runtime/locales/angular/global/rof.js +2 -1
  484. app-ng-runtime/locales/angular/global/ru-by.js +3 -3
  485. app-ng-runtime/locales/angular/global/ru-kg.js +3 -3
  486. app-ng-runtime/locales/angular/global/ru-kz.js +3 -3
  487. app-ng-runtime/locales/angular/global/ru-md.js +3 -3
  488. app-ng-runtime/locales/angular/global/ru-ua.js +3 -3
  489. app-ng-runtime/locales/angular/global/ru.js +3 -3
  490. app-ng-runtime/locales/angular/global/rw.js +4 -2
  491. app-ng-runtime/locales/angular/global/rwk.js +2 -1
  492. app-ng-runtime/locales/angular/global/sa.js +22 -0
  493. app-ng-runtime/locales/angular/global/sah.js +3 -1
  494. app-ng-runtime/locales/angular/global/saq.js +2 -1
  495. app-ng-runtime/locales/angular/global/sat-olck.js +26 -0
  496. app-ng-runtime/locales/angular/global/sat.js +26 -0
  497. app-ng-runtime/locales/angular/global/sbp.js +3 -1
  498. app-ng-runtime/locales/angular/global/sc.js +24 -0
  499. app-ng-runtime/locales/angular/global/sd-arab.js +3 -2
  500. app-ng-runtime/locales/angular/global/sd-deva.js +22 -0
  501. app-ng-runtime/locales/angular/global/sd.js +3 -2
  502. app-ng-runtime/locales/angular/global/se-fi.js +2 -1
  503. app-ng-runtime/locales/angular/global/se-se.js +2 -1
  504. app-ng-runtime/locales/angular/global/se.js +2 -1
  505. app-ng-runtime/locales/angular/global/seh.js +2 -1
  506. app-ng-runtime/locales/angular/global/ses.js +4 -2
  507. app-ng-runtime/locales/angular/global/sg.js +3 -1
  508. app-ng-runtime/locales/angular/global/shi-latn.js +3 -1
  509. app-ng-runtime/locales/angular/global/shi-tfng.js +2 -2
  510. app-ng-runtime/locales/angular/global/shi.js +2 -2
  511. app-ng-runtime/locales/angular/global/si.js +3 -3
  512. app-ng-runtime/locales/angular/global/sk.js +3 -3
  513. app-ng-runtime/locales/angular/global/sl.js +3 -3
  514. app-ng-runtime/locales/angular/global/smn.js +2 -1
  515. app-ng-runtime/locales/angular/global/sn.js +2 -1
  516. app-ng-runtime/locales/angular/global/so-dj.js +3 -2
  517. app-ng-runtime/locales/angular/global/so-et.js +3 -2
  518. app-ng-runtime/locales/angular/global/so-ke.js +3 -2
  519. app-ng-runtime/locales/angular/global/so.js +3 -2
  520. app-ng-runtime/locales/angular/global/sq-mk.js +3 -2
  521. app-ng-runtime/locales/angular/global/sq-xk.js +3 -2
  522. app-ng-runtime/locales/angular/global/sq.js +3 -2
  523. app-ng-runtime/locales/angular/global/sr-cyrl-ba.js +3 -3
  524. app-ng-runtime/locales/angular/global/sr-cyrl-me.js +3 -3
  525. app-ng-runtime/locales/angular/global/sr-cyrl-xk.js +3 -3
  526. app-ng-runtime/locales/angular/global/sr-cyrl.js +3 -3
  527. app-ng-runtime/locales/angular/global/sr-latn-ba.js +4 -2
  528. app-ng-runtime/locales/angular/global/sr-latn-me.js +4 -2
  529. app-ng-runtime/locales/angular/global/sr-latn-xk.js +4 -2
  530. app-ng-runtime/locales/angular/global/sr-latn.js +4 -2
  531. app-ng-runtime/locales/angular/global/sr.js +3 -3
  532. app-ng-runtime/locales/angular/global/su-latn.js +22 -0
  533. app-ng-runtime/locales/angular/global/su.js +22 -0
  534. app-ng-runtime/locales/angular/global/sv-ax.js +3 -3
  535. app-ng-runtime/locales/angular/global/sv-fi.js +3 -3
  536. app-ng-runtime/locales/angular/global/sv.js +3 -3
  537. app-ng-runtime/locales/angular/global/sw-cd.js +3 -3
  538. app-ng-runtime/locales/angular/global/sw-ke.js +3 -3
  539. app-ng-runtime/locales/angular/global/sw-ug.js +3 -3
  540. app-ng-runtime/locales/angular/global/sw.js +3 -3
  541. app-ng-runtime/locales/angular/global/ta-lk.js +3 -2
  542. app-ng-runtime/locales/angular/global/ta-my.js +3 -2
  543. app-ng-runtime/locales/angular/global/ta-sg.js +3 -2
  544. app-ng-runtime/locales/angular/global/ta.js +3 -2
  545. app-ng-runtime/locales/angular/global/te.js +3 -2
  546. app-ng-runtime/locales/angular/global/teo-ke.js +2 -1
  547. app-ng-runtime/locales/angular/global/teo.js +2 -1
  548. app-ng-runtime/locales/angular/global/tg.js +4 -2
  549. app-ng-runtime/locales/angular/global/th.js +4 -2
  550. app-ng-runtime/locales/angular/global/ti-er.js +3 -2
  551. app-ng-runtime/locales/angular/global/ti.js +3 -2
  552. app-ng-runtime/locales/angular/global/tk.js +3 -2
  553. app-ng-runtime/locales/angular/global/to.js +3 -1
  554. app-ng-runtime/locales/angular/global/tr-cy.js +3 -2
  555. app-ng-runtime/locales/angular/global/tr.js +3 -2
  556. app-ng-runtime/locales/angular/global/tt.js +4 -2
  557. app-ng-runtime/locales/angular/global/twq.js +4 -2
  558. app-ng-runtime/locales/angular/global/tzm.js +2 -1
  559. app-ng-runtime/locales/angular/global/ug.js +3 -2
  560. app-ng-runtime/locales/angular/global/uk.js +3 -3
  561. app-ng-runtime/locales/angular/global/und.js +24 -0
  562. app-ng-runtime/locales/angular/global/ur-in.js +3 -3
  563. app-ng-runtime/locales/angular/global/ur.js +3 -3
  564. app-ng-runtime/locales/angular/global/uz-arab.js +3 -1
  565. app-ng-runtime/locales/angular/global/uz-cyrl.js +3 -1
  566. app-ng-runtime/locales/angular/global/uz-latn.js +3 -2
  567. app-ng-runtime/locales/angular/global/uz.js +3 -2
  568. app-ng-runtime/locales/angular/global/vai-latn.js +3 -1
  569. app-ng-runtime/locales/angular/global/vai-vaii.js +3 -1
  570. app-ng-runtime/locales/angular/global/vai.js +3 -1
  571. app-ng-runtime/locales/angular/global/vi.js +4 -2
  572. app-ng-runtime/locales/angular/global/vun.js +2 -1
  573. app-ng-runtime/locales/angular/global/wae.js +2 -1
  574. app-ng-runtime/locales/angular/global/wo.js +4 -2
  575. app-ng-runtime/locales/angular/global/xh.js +2 -1
  576. app-ng-runtime/locales/angular/global/xog.js +2 -1
  577. app-ng-runtime/locales/angular/global/yav.js +3 -1
  578. app-ng-runtime/locales/angular/global/yi.js +2 -2
  579. app-ng-runtime/locales/angular/global/yo-bj.js +4 -2
  580. app-ng-runtime/locales/angular/global/yo.js +4 -2
  581. app-ng-runtime/locales/angular/global/yrl-co.js +22 -0
  582. app-ng-runtime/locales/angular/global/yrl-ve.js +22 -0
  583. app-ng-runtime/locales/angular/global/yrl.js +22 -0
  584. app-ng-runtime/locales/angular/global/yue-hans.js +4 -2
  585. app-ng-runtime/locales/angular/global/yue-hant.js +4 -2
  586. app-ng-runtime/locales/angular/global/yue.js +4 -2
  587. app-ng-runtime/locales/angular/global/zgh.js +3 -1
  588. app-ng-runtime/locales/angular/global/zh-hans-hk.js +4 -2
  589. app-ng-runtime/locales/angular/global/zh-hans-mo.js +4 -2
  590. app-ng-runtime/locales/angular/global/zh-hans-sg.js +4 -2
  591. app-ng-runtime/locales/angular/global/zh-hans.js +4 -2
  592. app-ng-runtime/locales/angular/global/zh-hant-hk.js +4 -2
  593. app-ng-runtime/locales/angular/global/zh-hant-mo.js +4 -2
  594. app-ng-runtime/locales/angular/global/zh-hant.js +4 -2
  595. app-ng-runtime/locales/angular/global/zh.js +4 -2
  596. app-ng-runtime/locales/angular/global/zu.js +3 -3
  597. app-ng-runtime/locales/moment-timezone/moment-timezone-with-data.js +26 -25
  598. app-ng-runtime/package.json +1 -1
  599. app-ng-runtime/runtime/base/bundles/index.umd.js +72 -52
  600. app-ng-runtime/runtime/base/esm2020/components/base-page.component.mjs +11 -11
  601. app-ng-runtime/runtime/base/esm2020/components/base-partial.component.mjs +9 -9
  602. app-ng-runtime/runtime/base/esm2020/components/base-prefab.component.mjs +7 -8
  603. app-ng-runtime/runtime/base/esm2020/components/base-spa-page.component.mjs +12 -12
  604. app-ng-runtime/runtime/base/esm2020/runtime-base.module.mjs +35 -14
  605. app-ng-runtime/runtime/base/fesm2015/index.mjs +69 -49
  606. app-ng-runtime/runtime/base/fesm2015/index.mjs.map +1 -1
  607. app-ng-runtime/runtime/base/fesm2020/index.mjs +69 -49
  608. app-ng-runtime/runtime/base/fesm2020/index.mjs.map +1 -1
  609. app-ng-runtime/runtime/base/runtime-base.module.d.ts +5 -4
  610. app-ng-runtime/locales/angular/af-na.js +0 -28
  611. app-ng-runtime/locales/angular/af.js +0 -28
  612. app-ng-runtime/locales/angular/agq.js +0 -26
  613. app-ng-runtime/locales/angular/ak.js +0 -28
  614. app-ng-runtime/locales/angular/am.js +0 -29
  615. app-ng-runtime/locales/angular/ar-ae.js +0 -36
  616. app-ng-runtime/locales/angular/ar-bh.js +0 -36
  617. app-ng-runtime/locales/angular/ar-dj.js +0 -36
  618. app-ng-runtime/locales/angular/ar-dz.js +0 -36
  619. app-ng-runtime/locales/angular/ar-eg.js +0 -36
  620. app-ng-runtime/locales/angular/ar-eh.js +0 -36
  621. app-ng-runtime/locales/angular/ar-er.js +0 -36
  622. app-ng-runtime/locales/angular/ar-il.js +0 -36
  623. app-ng-runtime/locales/angular/ar-iq.js +0 -36
  624. app-ng-runtime/locales/angular/ar-jo.js +0 -36
  625. app-ng-runtime/locales/angular/ar-km.js +0 -36
  626. app-ng-runtime/locales/angular/ar-kw.js +0 -36
  627. app-ng-runtime/locales/angular/ar-lb.js +0 -36
  628. app-ng-runtime/locales/angular/ar-ly.js +0 -36
  629. app-ng-runtime/locales/angular/ar-ma.js +0 -36
  630. app-ng-runtime/locales/angular/ar-mr.js +0 -36
  631. app-ng-runtime/locales/angular/ar-om.js +0 -36
  632. app-ng-runtime/locales/angular/ar-ps.js +0 -36
  633. app-ng-runtime/locales/angular/ar-qa.js +0 -36
  634. app-ng-runtime/locales/angular/ar-sa.js +0 -36
  635. app-ng-runtime/locales/angular/ar-sd.js +0 -36
  636. app-ng-runtime/locales/angular/ar-so.js +0 -36
  637. app-ng-runtime/locales/angular/ar-ss.js +0 -36
  638. app-ng-runtime/locales/angular/ar-sy.js +0 -36
  639. app-ng-runtime/locales/angular/ar-td.js +0 -36
  640. app-ng-runtime/locales/angular/ar-tn.js +0 -36
  641. app-ng-runtime/locales/angular/ar-ye.js +0 -36
  642. app-ng-runtime/locales/angular/ar.js +0 -36
  643. app-ng-runtime/locales/angular/as.js +0 -29
  644. app-ng-runtime/locales/angular/asa.js +0 -28
  645. app-ng-runtime/locales/angular/ast.js +0 -29
  646. app-ng-runtime/locales/angular/az-cyrl.js +0 -26
  647. app-ng-runtime/locales/angular/az-latn.js +0 -28
  648. app-ng-runtime/locales/angular/az.js +0 -28
  649. app-ng-runtime/locales/angular/bas.js +0 -26
  650. app-ng-runtime/locales/angular/be.js +0 -32
  651. app-ng-runtime/locales/angular/bem.js +0 -28
  652. app-ng-runtime/locales/angular/bez.js +0 -28
  653. app-ng-runtime/locales/angular/bg.js +0 -28
  654. app-ng-runtime/locales/angular/bm.js +0 -26
  655. app-ng-runtime/locales/angular/bn-in.js +0 -29
  656. app-ng-runtime/locales/angular/bn.js +0 -29
  657. app-ng-runtime/locales/angular/bo-in.js +0 -26
  658. app-ng-runtime/locales/angular/bo.js +0 -26
  659. app-ng-runtime/locales/angular/br.js +0 -34
  660. app-ng-runtime/locales/angular/brx.js +0 -28
  661. app-ng-runtime/locales/angular/bs-cyrl.js +0 -26
  662. app-ng-runtime/locales/angular/bs-latn.js +0 -31
  663. app-ng-runtime/locales/angular/bs.js +0 -31
  664. app-ng-runtime/locales/angular/ca-ad.js +0 -29
  665. app-ng-runtime/locales/angular/ca-es-valencia.js +0 -29
  666. app-ng-runtime/locales/angular/ca-fr.js +0 -29
  667. app-ng-runtime/locales/angular/ca-it.js +0 -29
  668. app-ng-runtime/locales/angular/ca.js +0 -29
  669. app-ng-runtime/locales/angular/ccp-in.js +0 -26
  670. app-ng-runtime/locales/angular/ccp.js +0 -26
  671. app-ng-runtime/locales/angular/ce.js +0 -28
  672. app-ng-runtime/locales/angular/ceb.js +0 -29
  673. app-ng-runtime/locales/angular/cgg.js +0 -28
  674. app-ng-runtime/locales/angular/chr.js +0 -28
  675. app-ng-runtime/locales/angular/ckb-ir.js +0 -28
  676. app-ng-runtime/locales/angular/ckb.js +0 -28
  677. app-ng-runtime/locales/angular/cs.js +0 -33
  678. app-ng-runtime/locales/angular/cu.js +0 -26
  679. app-ng-runtime/locales/angular/cy.js +0 -36
  680. app-ng-runtime/locales/angular/da-gl.js +0 -29
  681. app-ng-runtime/locales/angular/da.js +0 -29
  682. app-ng-runtime/locales/angular/dav.js +0 -26
  683. app-ng-runtime/locales/angular/de-at.js +0 -29
  684. app-ng-runtime/locales/angular/de-be.js +0 -29
  685. app-ng-runtime/locales/angular/de-ch.js +0 -29
  686. app-ng-runtime/locales/angular/de-it.js +0 -29
  687. app-ng-runtime/locales/angular/de-li.js +0 -29
  688. app-ng-runtime/locales/angular/de-lu.js +0 -29
  689. app-ng-runtime/locales/angular/de.js +0 -29
  690. app-ng-runtime/locales/angular/dje.js +0 -26
  691. app-ng-runtime/locales/angular/dsb.js +0 -33
  692. app-ng-runtime/locales/angular/dua.js +0 -26
  693. app-ng-runtime/locales/angular/dyo.js +0 -26
  694. app-ng-runtime/locales/angular/dz.js +0 -26
  695. app-ng-runtime/locales/angular/ebu.js +0 -26
  696. app-ng-runtime/locales/angular/ee-tg.js +0 -28
  697. app-ng-runtime/locales/angular/ee.js +0 -28
  698. app-ng-runtime/locales/angular/el-cy.js +0 -28
  699. app-ng-runtime/locales/angular/el.js +0 -28
  700. app-ng-runtime/locales/angular/en-001.js +0 -29
  701. app-ng-runtime/locales/angular/en-150.js +0 -29
  702. app-ng-runtime/locales/angular/en-ae.js +0 -29
  703. app-ng-runtime/locales/angular/en-ag.js +0 -29
  704. app-ng-runtime/locales/angular/en-ai.js +0 -29
  705. app-ng-runtime/locales/angular/en-as.js +0 -29
  706. app-ng-runtime/locales/angular/en-at.js +0 -29
  707. app-ng-runtime/locales/angular/en-au.js +0 -29
  708. app-ng-runtime/locales/angular/en-bb.js +0 -29
  709. app-ng-runtime/locales/angular/en-be.js +0 -29
  710. app-ng-runtime/locales/angular/en-bi.js +0 -29
  711. app-ng-runtime/locales/angular/en-bm.js +0 -29
  712. app-ng-runtime/locales/angular/en-bs.js +0 -29
  713. app-ng-runtime/locales/angular/en-bw.js +0 -29
  714. app-ng-runtime/locales/angular/en-bz.js +0 -29
  715. app-ng-runtime/locales/angular/en-ca.js +0 -29
  716. app-ng-runtime/locales/angular/en-cc.js +0 -29
  717. app-ng-runtime/locales/angular/en-ch.js +0 -29
  718. app-ng-runtime/locales/angular/en-ck.js +0 -29
  719. app-ng-runtime/locales/angular/en-cm.js +0 -29
  720. app-ng-runtime/locales/angular/en-cx.js +0 -29
  721. app-ng-runtime/locales/angular/en-cy.js +0 -29
  722. app-ng-runtime/locales/angular/en-de.js +0 -29
  723. app-ng-runtime/locales/angular/en-dg.js +0 -29
  724. app-ng-runtime/locales/angular/en-dk.js +0 -29
  725. app-ng-runtime/locales/angular/en-dm.js +0 -29
  726. app-ng-runtime/locales/angular/en-er.js +0 -29
  727. app-ng-runtime/locales/angular/en-fi.js +0 -29
  728. app-ng-runtime/locales/angular/en-fj.js +0 -29
  729. app-ng-runtime/locales/angular/en-fk.js +0 -29
  730. app-ng-runtime/locales/angular/en-fm.js +0 -29
  731. app-ng-runtime/locales/angular/en-gb.js +0 -29
  732. app-ng-runtime/locales/angular/en-gd.js +0 -29
  733. app-ng-runtime/locales/angular/en-gg.js +0 -29
  734. app-ng-runtime/locales/angular/en-gh.js +0 -29
  735. app-ng-runtime/locales/angular/en-gi.js +0 -29
  736. app-ng-runtime/locales/angular/en-gm.js +0 -29
  737. app-ng-runtime/locales/angular/en-gu.js +0 -29
  738. app-ng-runtime/locales/angular/en-gy.js +0 -29
  739. app-ng-runtime/locales/angular/en-hk.js +0 -29
  740. app-ng-runtime/locales/angular/en-ie.js +0 -29
  741. app-ng-runtime/locales/angular/en-il.js +0 -29
  742. app-ng-runtime/locales/angular/en-im.js +0 -29
  743. app-ng-runtime/locales/angular/en-in.js +0 -29
  744. app-ng-runtime/locales/angular/en-io.js +0 -29
  745. app-ng-runtime/locales/angular/en-je.js +0 -29
  746. app-ng-runtime/locales/angular/en-jm.js +0 -29
  747. app-ng-runtime/locales/angular/en-ke.js +0 -29
  748. app-ng-runtime/locales/angular/en-ki.js +0 -29
  749. app-ng-runtime/locales/angular/en-kn.js +0 -29
  750. app-ng-runtime/locales/angular/en-ky.js +0 -29
  751. app-ng-runtime/locales/angular/en-lc.js +0 -29
  752. app-ng-runtime/locales/angular/en-lr.js +0 -29
  753. app-ng-runtime/locales/angular/en-ls.js +0 -29
  754. app-ng-runtime/locales/angular/en-mg.js +0 -29
  755. app-ng-runtime/locales/angular/en-mh.js +0 -29
  756. app-ng-runtime/locales/angular/en-mo.js +0 -29
  757. app-ng-runtime/locales/angular/en-mp.js +0 -29
  758. app-ng-runtime/locales/angular/en-ms.js +0 -29
  759. app-ng-runtime/locales/angular/en-mt.js +0 -29
  760. app-ng-runtime/locales/angular/en-mu.js +0 -29
  761. app-ng-runtime/locales/angular/en-mw.js +0 -29
  762. app-ng-runtime/locales/angular/en-my.js +0 -29
  763. app-ng-runtime/locales/angular/en-na.js +0 -29
  764. app-ng-runtime/locales/angular/en-nf.js +0 -29
  765. app-ng-runtime/locales/angular/en-ng.js +0 -29
  766. app-ng-runtime/locales/angular/en-nl.js +0 -29
  767. app-ng-runtime/locales/angular/en-nr.js +0 -29
  768. app-ng-runtime/locales/angular/en-nu.js +0 -29
  769. app-ng-runtime/locales/angular/en-nz.js +0 -29
  770. app-ng-runtime/locales/angular/en-pg.js +0 -29
  771. app-ng-runtime/locales/angular/en-ph.js +0 -29
  772. app-ng-runtime/locales/angular/en-pk.js +0 -29
  773. app-ng-runtime/locales/angular/en-pn.js +0 -29
  774. app-ng-runtime/locales/angular/en-pr.js +0 -29
  775. app-ng-runtime/locales/angular/en-pw.js +0 -29
  776. app-ng-runtime/locales/angular/en-rw.js +0 -29
  777. app-ng-runtime/locales/angular/en-sb.js +0 -29
  778. app-ng-runtime/locales/angular/en-sc.js +0 -29
  779. app-ng-runtime/locales/angular/en-sd.js +0 -29
  780. app-ng-runtime/locales/angular/en-se.js +0 -29
  781. app-ng-runtime/locales/angular/en-sg.js +0 -29
  782. app-ng-runtime/locales/angular/en-sh.js +0 -29
  783. app-ng-runtime/locales/angular/en-si.js +0 -29
  784. app-ng-runtime/locales/angular/en-sl.js +0 -29
  785. app-ng-runtime/locales/angular/en-ss.js +0 -29
  786. app-ng-runtime/locales/angular/en-sx.js +0 -29
  787. app-ng-runtime/locales/angular/en-sz.js +0 -29
  788. app-ng-runtime/locales/angular/en-tc.js +0 -29
  789. app-ng-runtime/locales/angular/en-tk.js +0 -29
  790. app-ng-runtime/locales/angular/en-to.js +0 -29
  791. app-ng-runtime/locales/angular/en-tt.js +0 -29
  792. app-ng-runtime/locales/angular/en-tv.js +0 -29
  793. app-ng-runtime/locales/angular/en-tz.js +0 -29
  794. app-ng-runtime/locales/angular/en-ug.js +0 -29
  795. app-ng-runtime/locales/angular/en-um.js +0 -29
  796. app-ng-runtime/locales/angular/en-us-posix.js +0 -29
  797. app-ng-runtime/locales/angular/en-vc.js +0 -29
  798. app-ng-runtime/locales/angular/en-vg.js +0 -29
  799. app-ng-runtime/locales/angular/en-vi.js +0 -29
  800. app-ng-runtime/locales/angular/en-vu.js +0 -29
  801. app-ng-runtime/locales/angular/en-ws.js +0 -29
  802. app-ng-runtime/locales/angular/en-za.js +0 -29
  803. app-ng-runtime/locales/angular/en-zm.js +0 -29
  804. app-ng-runtime/locales/angular/en-zw.js +0 -29
  805. app-ng-runtime/locales/angular/en.js +0 -29
  806. app-ng-runtime/locales/angular/eo.js +0 -28
  807. app-ng-runtime/locales/angular/es-419.js +0 -28
  808. app-ng-runtime/locales/angular/es-ar.js +0 -28
  809. app-ng-runtime/locales/angular/es-bo.js +0 -28
  810. app-ng-runtime/locales/angular/es-br.js +0 -28
  811. app-ng-runtime/locales/angular/es-bz.js +0 -28
  812. app-ng-runtime/locales/angular/es-cl.js +0 -28
  813. app-ng-runtime/locales/angular/es-co.js +0 -28
  814. app-ng-runtime/locales/angular/es-cr.js +0 -28
  815. app-ng-runtime/locales/angular/es-cu.js +0 -28
  816. app-ng-runtime/locales/angular/es-do.js +0 -28
  817. app-ng-runtime/locales/angular/es-ea.js +0 -28
  818. app-ng-runtime/locales/angular/es-ec.js +0 -28
  819. app-ng-runtime/locales/angular/es-gq.js +0 -28
  820. app-ng-runtime/locales/angular/es-gt.js +0 -28
  821. app-ng-runtime/locales/angular/es-hn.js +0 -28
  822. app-ng-runtime/locales/angular/es-ic.js +0 -28
  823. app-ng-runtime/locales/angular/es-mx.js +0 -28
  824. app-ng-runtime/locales/angular/es-ni.js +0 -28
  825. app-ng-runtime/locales/angular/es-pa.js +0 -28
  826. app-ng-runtime/locales/angular/es-pe.js +0 -28
  827. app-ng-runtime/locales/angular/es-ph.js +0 -28
  828. app-ng-runtime/locales/angular/es-pr.js +0 -28
  829. app-ng-runtime/locales/angular/es-py.js +0 -28
  830. app-ng-runtime/locales/angular/es-sv.js +0 -28
  831. app-ng-runtime/locales/angular/es-us.js +0 -28
  832. app-ng-runtime/locales/angular/es-uy.js +0 -28
  833. app-ng-runtime/locales/angular/es-ve.js +0 -28
  834. app-ng-runtime/locales/angular/es.js +0 -28
  835. app-ng-runtime/locales/angular/et.js +0 -29
  836. app-ng-runtime/locales/angular/eu.js +0 -28
  837. app-ng-runtime/locales/angular/ewo.js +0 -26
  838. app-ng-runtime/locales/angular/fa-af.js +0 -29
  839. app-ng-runtime/locales/angular/fa.js +0 -29
  840. app-ng-runtime/locales/angular/ff-cm.js +0 -56
  841. app-ng-runtime/locales/angular/ff-gn.js +0 -56
  842. app-ng-runtime/locales/angular/ff-latn-bf.js +0 -29
  843. app-ng-runtime/locales/angular/ff-latn-cm.js +0 -29
  844. app-ng-runtime/locales/angular/ff-latn-gh.js +0 -29
  845. app-ng-runtime/locales/angular/ff-latn-gm.js +0 -29
  846. app-ng-runtime/locales/angular/ff-latn-gn.js +0 -29
  847. app-ng-runtime/locales/angular/ff-latn-gw.js +0 -29
  848. app-ng-runtime/locales/angular/ff-latn-lr.js +0 -29
  849. app-ng-runtime/locales/angular/ff-latn-mr.js +0 -29
  850. app-ng-runtime/locales/angular/ff-latn-ne.js +0 -29
  851. app-ng-runtime/locales/angular/ff-latn-ng.js +0 -29
  852. app-ng-runtime/locales/angular/ff-latn-sl.js +0 -29
  853. app-ng-runtime/locales/angular/ff-latn.js +0 -29
  854. app-ng-runtime/locales/angular/ff-mr.js +0 -56
  855. app-ng-runtime/locales/angular/ff.js +0 -29
  856. app-ng-runtime/locales/angular/fi.js +0 -29
  857. app-ng-runtime/locales/angular/fil.js +0 -29
  858. app-ng-runtime/locales/angular/fo-dk.js +0 -28
  859. app-ng-runtime/locales/angular/fo.js +0 -28
  860. app-ng-runtime/locales/angular/fr-be.js +0 -29
  861. app-ng-runtime/locales/angular/fr-bf.js +0 -29
  862. app-ng-runtime/locales/angular/fr-bi.js +0 -29
  863. app-ng-runtime/locales/angular/fr-bj.js +0 -29
  864. app-ng-runtime/locales/angular/fr-bl.js +0 -29
  865. app-ng-runtime/locales/angular/fr-ca.js +0 -29
  866. app-ng-runtime/locales/angular/fr-cd.js +0 -29
  867. app-ng-runtime/locales/angular/fr-cf.js +0 -29
  868. app-ng-runtime/locales/angular/fr-cg.js +0 -29
  869. app-ng-runtime/locales/angular/fr-ch.js +0 -29
  870. app-ng-runtime/locales/angular/fr-ci.js +0 -29
  871. app-ng-runtime/locales/angular/fr-cm.js +0 -29
  872. app-ng-runtime/locales/angular/fr-dj.js +0 -29
  873. app-ng-runtime/locales/angular/fr-dz.js +0 -29
  874. app-ng-runtime/locales/angular/fr-ga.js +0 -29
  875. app-ng-runtime/locales/angular/fr-gf.js +0 -29
  876. app-ng-runtime/locales/angular/fr-gn.js +0 -29
  877. app-ng-runtime/locales/angular/fr-gp.js +0 -29
  878. app-ng-runtime/locales/angular/fr-gq.js +0 -29
  879. app-ng-runtime/locales/angular/fr-ht.js +0 -29
  880. app-ng-runtime/locales/angular/fr-km.js +0 -29
  881. app-ng-runtime/locales/angular/fr-lu.js +0 -29
  882. app-ng-runtime/locales/angular/fr-ma.js +0 -29
  883. app-ng-runtime/locales/angular/fr-mc.js +0 -29
  884. app-ng-runtime/locales/angular/fr-mf.js +0 -29
  885. app-ng-runtime/locales/angular/fr-mg.js +0 -29
  886. app-ng-runtime/locales/angular/fr-ml.js +0 -29
  887. app-ng-runtime/locales/angular/fr-mq.js +0 -29
  888. app-ng-runtime/locales/angular/fr-mr.js +0 -29
  889. app-ng-runtime/locales/angular/fr-mu.js +0 -29
  890. app-ng-runtime/locales/angular/fr-nc.js +0 -29
  891. app-ng-runtime/locales/angular/fr-ne.js +0 -29
  892. app-ng-runtime/locales/angular/fr-pf.js +0 -29
  893. app-ng-runtime/locales/angular/fr-pm.js +0 -29
  894. app-ng-runtime/locales/angular/fr-re.js +0 -29
  895. app-ng-runtime/locales/angular/fr-rw.js +0 -29
  896. app-ng-runtime/locales/angular/fr-sc.js +0 -29
  897. app-ng-runtime/locales/angular/fr-sn.js +0 -29
  898. app-ng-runtime/locales/angular/fr-sy.js +0 -29
  899. app-ng-runtime/locales/angular/fr-td.js +0 -29
  900. app-ng-runtime/locales/angular/fr-tg.js +0 -29
  901. app-ng-runtime/locales/angular/fr-tn.js +0 -29
  902. app-ng-runtime/locales/angular/fr-vu.js +0 -29
  903. app-ng-runtime/locales/angular/fr-wf.js +0 -29
  904. app-ng-runtime/locales/angular/fr-yt.js +0 -29
  905. app-ng-runtime/locales/angular/fr.js +0 -29
  906. app-ng-runtime/locales/angular/fur.js +0 -28
  907. app-ng-runtime/locales/angular/fy.js +0 -29
  908. app-ng-runtime/locales/angular/ga-gb.js +0 -34
  909. app-ng-runtime/locales/angular/ga.js +0 -34
  910. app-ng-runtime/locales/angular/gd.js +0 -32
  911. app-ng-runtime/locales/angular/gl.js +0 -29
  912. app-ng-runtime/locales/angular/global/cu.js +0 -20
  913. app-ng-runtime/locales/angular/global/en-us-posix.js +0 -24
  914. app-ng-runtime/locales/angular/global/prg.js +0 -26
  915. app-ng-runtime/locales/angular/global/root.js +0 -24
  916. app-ng-runtime/locales/angular/global/vo.js +0 -23
  917. app-ng-runtime/locales/angular/gsw-fr.js +0 -28
  918. app-ng-runtime/locales/angular/gsw-li.js +0 -28
  919. app-ng-runtime/locales/angular/gsw.js +0 -28
  920. app-ng-runtime/locales/angular/gu.js +0 -29
  921. app-ng-runtime/locales/angular/guz.js +0 -26
  922. app-ng-runtime/locales/angular/gv.js +0 -35
  923. app-ng-runtime/locales/angular/ha-gh.js +0 -28
  924. app-ng-runtime/locales/angular/ha-ne.js +0 -28
  925. app-ng-runtime/locales/angular/ha.js +0 -28
  926. app-ng-runtime/locales/angular/haw.js +0 -28
  927. app-ng-runtime/locales/angular/he.js +0 -33
  928. app-ng-runtime/locales/angular/hi.js +0 -29
  929. app-ng-runtime/locales/angular/hr-ba.js +0 -31
  930. app-ng-runtime/locales/angular/hr.js +0 -31
  931. app-ng-runtime/locales/angular/hsb.js +0 -33
  932. app-ng-runtime/locales/angular/hu.js +0 -28
  933. app-ng-runtime/locales/angular/hy.js +0 -29
  934. app-ng-runtime/locales/angular/ia.js +0 -29
  935. app-ng-runtime/locales/angular/id.js +0 -26
  936. app-ng-runtime/locales/angular/ig.js +0 -26
  937. app-ng-runtime/locales/angular/ii.js +0 -26
  938. app-ng-runtime/locales/angular/is.js +0 -29
  939. app-ng-runtime/locales/angular/it-ch.js +0 -29
  940. app-ng-runtime/locales/angular/it-sm.js +0 -29
  941. app-ng-runtime/locales/angular/it-va.js +0 -29
  942. app-ng-runtime/locales/angular/it.js +0 -29
  943. app-ng-runtime/locales/angular/ja.js +0 -26
  944. app-ng-runtime/locales/angular/jgo.js +0 -28
  945. app-ng-runtime/locales/angular/jmc.js +0 -28
  946. app-ng-runtime/locales/angular/jv.js +0 -26
  947. app-ng-runtime/locales/angular/ka.js +0 -28
  948. app-ng-runtime/locales/angular/kab.js +0 -29
  949. app-ng-runtime/locales/angular/kam.js +0 -26
  950. app-ng-runtime/locales/angular/kde.js +0 -26
  951. app-ng-runtime/locales/angular/kea.js +0 -26
  952. app-ng-runtime/locales/angular/khq.js +0 -26
  953. app-ng-runtime/locales/angular/ki.js +0 -26
  954. app-ng-runtime/locales/angular/kk.js +0 -28
  955. app-ng-runtime/locales/angular/kkj.js +0 -28
  956. app-ng-runtime/locales/angular/kl.js +0 -28
  957. app-ng-runtime/locales/angular/kln.js +0 -26
  958. app-ng-runtime/locales/angular/km.js +0 -26
  959. app-ng-runtime/locales/angular/kn.js +0 -29
  960. app-ng-runtime/locales/angular/ko-kp.js +0 -26
  961. app-ng-runtime/locales/angular/ko.js +0 -26
  962. app-ng-runtime/locales/angular/kok.js +0 -26
  963. app-ng-runtime/locales/angular/ks-arab.js +0 -28
  964. app-ng-runtime/locales/angular/ks.js +0 -28
  965. app-ng-runtime/locales/angular/ksb.js +0 -28
  966. app-ng-runtime/locales/angular/ksf.js +0 -26
  967. app-ng-runtime/locales/angular/ksh.js +0 -30
  968. app-ng-runtime/locales/angular/ku.js +0 -28
  969. app-ng-runtime/locales/angular/kw.js +0 -36
  970. app-ng-runtime/locales/angular/ky.js +0 -28
  971. app-ng-runtime/locales/angular/lag.js +0 -31
  972. app-ng-runtime/locales/angular/lb.js +0 -28
  973. app-ng-runtime/locales/angular/lg.js +0 -28
  974. app-ng-runtime/locales/angular/lkt.js +0 -26
  975. app-ng-runtime/locales/angular/ln-ao.js +0 -28
  976. app-ng-runtime/locales/angular/ln-cf.js +0 -28
  977. app-ng-runtime/locales/angular/ln-cg.js +0 -28
  978. app-ng-runtime/locales/angular/ln.js +0 -28
  979. app-ng-runtime/locales/angular/lo.js +0 -26
  980. app-ng-runtime/locales/angular/lrc-iq.js +0 -26
  981. app-ng-runtime/locales/angular/lrc.js +0 -26
  982. app-ng-runtime/locales/angular/lt.js +0 -33
  983. app-ng-runtime/locales/angular/lu.js +0 -26
  984. app-ng-runtime/locales/angular/luo.js +0 -26
  985. app-ng-runtime/locales/angular/luy.js +0 -26
  986. app-ng-runtime/locales/angular/lv.js +0 -31
  987. app-ng-runtime/locales/angular/mas-tz.js +0 -28
  988. app-ng-runtime/locales/angular/mas.js +0 -28
  989. app-ng-runtime/locales/angular/mer.js +0 -26
  990. app-ng-runtime/locales/angular/mfe.js +0 -26
  991. app-ng-runtime/locales/angular/mg.js +0 -28
  992. app-ng-runtime/locales/angular/mgh.js +0 -26
  993. app-ng-runtime/locales/angular/mgo.js +0 -28
  994. app-ng-runtime/locales/angular/mi.js +0 -26
  995. app-ng-runtime/locales/angular/mk.js +0 -29
  996. app-ng-runtime/locales/angular/ml.js +0 -28
  997. app-ng-runtime/locales/angular/mn.js +0 -28
  998. app-ng-runtime/locales/angular/mr.js +0 -28
  999. app-ng-runtime/locales/angular/ms-bn.js +0 -26
  1000. app-ng-runtime/locales/angular/ms-sg.js +0 -26
  1001. app-ng-runtime/locales/angular/ms.js +0 -26
  1002. app-ng-runtime/locales/angular/mt.js +0 -32
  1003. app-ng-runtime/locales/angular/mua.js +0 -26
  1004. app-ng-runtime/locales/angular/my.js +0 -26
  1005. app-ng-runtime/locales/angular/mzn.js +0 -26
  1006. app-ng-runtime/locales/angular/naq.js +0 -30
  1007. app-ng-runtime/locales/angular/nb-sj.js +0 -28
  1008. app-ng-runtime/locales/angular/nb.js +0 -28
  1009. app-ng-runtime/locales/angular/nd.js +0 -28
  1010. app-ng-runtime/locales/angular/nds-nl.js +0 -26
  1011. app-ng-runtime/locales/angular/nds.js +0 -26
  1012. app-ng-runtime/locales/angular/ne-in.js +0 -28
  1013. app-ng-runtime/locales/angular/ne.js +0 -28
  1014. app-ng-runtime/locales/angular/nl-aw.js +0 -29
  1015. app-ng-runtime/locales/angular/nl-be.js +0 -29
  1016. app-ng-runtime/locales/angular/nl-bq.js +0 -29
  1017. app-ng-runtime/locales/angular/nl-cw.js +0 -29
  1018. app-ng-runtime/locales/angular/nl-sr.js +0 -29
  1019. app-ng-runtime/locales/angular/nl-sx.js +0 -29
  1020. app-ng-runtime/locales/angular/nl.js +0 -29
  1021. app-ng-runtime/locales/angular/nmg.js +0 -26
  1022. app-ng-runtime/locales/angular/nn.js +0 -28
  1023. app-ng-runtime/locales/angular/nnh.js +0 -28
  1024. app-ng-runtime/locales/angular/nus.js +0 -26
  1025. app-ng-runtime/locales/angular/nyn.js +0 -28
  1026. app-ng-runtime/locales/angular/om-ke.js +0 -28
  1027. app-ng-runtime/locales/angular/om.js +0 -28
  1028. app-ng-runtime/locales/angular/or.js +0 -28
  1029. app-ng-runtime/locales/angular/os-ru.js +0 -28
  1030. app-ng-runtime/locales/angular/os.js +0 -28
  1031. app-ng-runtime/locales/angular/pa-arab.js +0 -26
  1032. app-ng-runtime/locales/angular/pa-guru.js +0 -28
  1033. app-ng-runtime/locales/angular/pa.js +0 -28
  1034. app-ng-runtime/locales/angular/pl.js +0 -33
  1035. app-ng-runtime/locales/angular/prg.js +0 -31
  1036. app-ng-runtime/locales/angular/ps-pk.js +0 -28
  1037. app-ng-runtime/locales/angular/ps.js +0 -28
  1038. app-ng-runtime/locales/angular/pt-ao.js +0 -29
  1039. app-ng-runtime/locales/angular/pt-ch.js +0 -29
  1040. app-ng-runtime/locales/angular/pt-cv.js +0 -29
  1041. app-ng-runtime/locales/angular/pt-gq.js +0 -29
  1042. app-ng-runtime/locales/angular/pt-gw.js +0 -29
  1043. app-ng-runtime/locales/angular/pt-lu.js +0 -29
  1044. app-ng-runtime/locales/angular/pt-mo.js +0 -29
  1045. app-ng-runtime/locales/angular/pt-mz.js +0 -29
  1046. app-ng-runtime/locales/angular/pt-pt.js +0 -29
  1047. app-ng-runtime/locales/angular/pt-st.js +0 -29
  1048. app-ng-runtime/locales/angular/pt-tl.js +0 -29
  1049. app-ng-runtime/locales/angular/pt.js +0 -29
  1050. app-ng-runtime/locales/angular/qu-bo.js +0 -26
  1051. app-ng-runtime/locales/angular/qu-ec.js +0 -26
  1052. app-ng-runtime/locales/angular/qu.js +0 -26
  1053. app-ng-runtime/locales/angular/rm.js +0 -28
  1054. app-ng-runtime/locales/angular/rn.js +0 -26
  1055. app-ng-runtime/locales/angular/ro-md.js +0 -31
  1056. app-ng-runtime/locales/angular/ro.js +0 -31
  1057. app-ng-runtime/locales/angular/rof.js +0 -28
  1058. app-ng-runtime/locales/angular/root.js +0 -29
  1059. app-ng-runtime/locales/angular/ru-by.js +0 -33
  1060. app-ng-runtime/locales/angular/ru-kg.js +0 -33
  1061. app-ng-runtime/locales/angular/ru-kz.js +0 -33
  1062. app-ng-runtime/locales/angular/ru-md.js +0 -33
  1063. app-ng-runtime/locales/angular/ru-ua.js +0 -33
  1064. app-ng-runtime/locales/angular/ru.js +0 -33
  1065. app-ng-runtime/locales/angular/rw.js +0 -26
  1066. app-ng-runtime/locales/angular/rwk.js +0 -28
  1067. app-ng-runtime/locales/angular/sah.js +0 -26
  1068. app-ng-runtime/locales/angular/saq.js +0 -28
  1069. app-ng-runtime/locales/angular/sbp.js +0 -26
  1070. app-ng-runtime/locales/angular/sd-arab.js +0 -28
  1071. app-ng-runtime/locales/angular/sd.js +0 -28
  1072. app-ng-runtime/locales/angular/se-fi.js +0 -30
  1073. app-ng-runtime/locales/angular/se-se.js +0 -30
  1074. app-ng-runtime/locales/angular/se.js +0 -30
  1075. app-ng-runtime/locales/angular/seh.js +0 -28
  1076. app-ng-runtime/locales/angular/ses.js +0 -26
  1077. app-ng-runtime/locales/angular/sg.js +0 -26
  1078. app-ng-runtime/locales/angular/shi-latn.js +0 -26
  1079. app-ng-runtime/locales/angular/shi-tfng.js +0 -31
  1080. app-ng-runtime/locales/angular/shi.js +0 -31
  1081. app-ng-runtime/locales/angular/si.js +0 -29
  1082. app-ng-runtime/locales/angular/sk.js +0 -33
  1083. app-ng-runtime/locales/angular/sl.js +0 -33
  1084. app-ng-runtime/locales/angular/smn.js +0 -30
  1085. app-ng-runtime/locales/angular/sn.js +0 -28
  1086. app-ng-runtime/locales/angular/so-dj.js +0 -28
  1087. app-ng-runtime/locales/angular/so-et.js +0 -28
  1088. app-ng-runtime/locales/angular/so-ke.js +0 -28
  1089. app-ng-runtime/locales/angular/so.js +0 -28
  1090. app-ng-runtime/locales/angular/sq-mk.js +0 -28
  1091. app-ng-runtime/locales/angular/sq-xk.js +0 -28
  1092. app-ng-runtime/locales/angular/sq.js +0 -28
  1093. app-ng-runtime/locales/angular/sr-cyrl-ba.js +0 -31
  1094. app-ng-runtime/locales/angular/sr-cyrl-me.js +0 -31
  1095. app-ng-runtime/locales/angular/sr-cyrl-xk.js +0 -31
  1096. app-ng-runtime/locales/angular/sr-cyrl.js +0 -31
  1097. app-ng-runtime/locales/angular/sr-latn-ba.js +0 -26
  1098. app-ng-runtime/locales/angular/sr-latn-me.js +0 -26
  1099. app-ng-runtime/locales/angular/sr-latn-xk.js +0 -26
  1100. app-ng-runtime/locales/angular/sr-latn.js +0 -26
  1101. app-ng-runtime/locales/angular/sr.js +0 -31
  1102. app-ng-runtime/locales/angular/sv-ax.js +0 -29
  1103. app-ng-runtime/locales/angular/sv-fi.js +0 -29
  1104. app-ng-runtime/locales/angular/sv.js +0 -29
  1105. app-ng-runtime/locales/angular/sw-cd.js +0 -29
  1106. app-ng-runtime/locales/angular/sw-ke.js +0 -29
  1107. app-ng-runtime/locales/angular/sw-ug.js +0 -29
  1108. app-ng-runtime/locales/angular/sw.js +0 -29
  1109. app-ng-runtime/locales/angular/ta-lk.js +0 -28
  1110. app-ng-runtime/locales/angular/ta-my.js +0 -28
  1111. app-ng-runtime/locales/angular/ta-sg.js +0 -28
  1112. app-ng-runtime/locales/angular/ta.js +0 -28
  1113. app-ng-runtime/locales/angular/te.js +0 -28
  1114. app-ng-runtime/locales/angular/teo-ke.js +0 -28
  1115. app-ng-runtime/locales/angular/teo.js +0 -28
  1116. app-ng-runtime/locales/angular/tg.js +0 -26
  1117. app-ng-runtime/locales/angular/th.js +0 -26
  1118. app-ng-runtime/locales/angular/ti-er.js +0 -28
  1119. app-ng-runtime/locales/angular/ti.js +0 -28
  1120. app-ng-runtime/locales/angular/tk.js +0 -28
  1121. app-ng-runtime/locales/angular/to.js +0 -26
  1122. app-ng-runtime/locales/angular/tr-cy.js +0 -28
  1123. app-ng-runtime/locales/angular/tr.js +0 -28
  1124. app-ng-runtime/locales/angular/tt.js +0 -26
  1125. app-ng-runtime/locales/angular/twq.js +0 -26
  1126. app-ng-runtime/locales/angular/tzm.js +0 -28
  1127. app-ng-runtime/locales/angular/ug.js +0 -28
  1128. app-ng-runtime/locales/angular/uk.js +0 -33
  1129. app-ng-runtime/locales/angular/ur-in.js +0 -29
  1130. app-ng-runtime/locales/angular/ur.js +0 -29
  1131. app-ng-runtime/locales/angular/uz-arab.js +0 -26
  1132. app-ng-runtime/locales/angular/uz-cyrl.js +0 -26
  1133. app-ng-runtime/locales/angular/uz-latn.js +0 -28
  1134. app-ng-runtime/locales/angular/uz.js +0 -28
  1135. app-ng-runtime/locales/angular/vai-latn.js +0 -26
  1136. app-ng-runtime/locales/angular/vai-vaii.js +0 -26
  1137. app-ng-runtime/locales/angular/vai.js +0 -26
  1138. app-ng-runtime/locales/angular/vi.js +0 -26
  1139. app-ng-runtime/locales/angular/vo.js +0 -28
  1140. app-ng-runtime/locales/angular/vun.js +0 -28
  1141. app-ng-runtime/locales/angular/wae.js +0 -28
  1142. app-ng-runtime/locales/angular/wo.js +0 -26
  1143. app-ng-runtime/locales/angular/xh.js +0 -28
  1144. app-ng-runtime/locales/angular/xog.js +0 -28
  1145. app-ng-runtime/locales/angular/yav.js +0 -26
  1146. app-ng-runtime/locales/angular/yi.js +0 -29
  1147. app-ng-runtime/locales/angular/yo-bj.js +0 -26
  1148. app-ng-runtime/locales/angular/yo.js +0 -26
  1149. app-ng-runtime/locales/angular/yue-hans.js +0 -26
  1150. app-ng-runtime/locales/angular/yue-hant.js +0 -26
  1151. app-ng-runtime/locales/angular/yue.js +0 -26
  1152. app-ng-runtime/locales/angular/zgh.js +0 -26
  1153. app-ng-runtime/locales/angular/zh-hans-hk.js +0 -26
  1154. app-ng-runtime/locales/angular/zh-hans-mo.js +0 -26
  1155. app-ng-runtime/locales/angular/zh-hans-sg.js +0 -26
  1156. app-ng-runtime/locales/angular/zh-hans.js +0 -26
  1157. app-ng-runtime/locales/angular/zh-hant-hk.js +0 -26
  1158. app-ng-runtime/locales/angular/zh-hant-mo.js +0 -26
  1159. app-ng-runtime/locales/angular/zh-hant.js +0 -26
  1160. app-ng-runtime/locales/angular/zh.js +0 -26
  1161. app-ng-runtime/locales/angular/zu.js +0 -29
@@ -961,7 +961,8 @@
961
961
  this.isMuted = false;
962
962
  const elementRef = inj.get(i0.ElementRef);
963
963
  this.nativeElement = elementRef.nativeElement;
964
- this.viewParentApp = i0.inject(i1.App);
964
+ //making the code compatible in both the JIT and AOT modes
965
+ this.viewParentApp = inj ? inj.get(i1.App) : i0.inject(i1.App);
965
966
  this.widgetType = config.widgetType;
966
967
  this.widgetSubType = config.widgetSubType || config.widgetType;
967
968
  this.viewContainerRef = inj.get(i0.ViewContainerRef);
@@ -1727,7 +1728,7 @@
1727
1728
  constructor(inj, templateRef, viewContainer) {
1728
1729
  this.templateRef = templateRef;
1729
1730
  this.viewContainer = viewContainer;
1730
- let viewParentApp = i0.inject(i1.App);
1731
+ let viewParentApp = inj ? inj.get(i1.App) : i0.inject(i1.App);
1731
1732
  let lView = inj._lView;
1732
1733
  const getParentlView = (lView) => {
1733
1734
  let parentlView = lView[3];
@@ -73,7 +73,8 @@ export class BaseComponent {
73
73
  this.isMuted = false;
74
74
  const elementRef = inj.get(ElementRef);
75
75
  this.nativeElement = elementRef.nativeElement;
76
- this.viewParentApp = inject(App);
76
+ //making the code compatible in both the JIT and AOT modes
77
+ this.viewParentApp = inj ? inj.get(App) : inject(App);
77
78
  this.widgetType = config.widgetType;
78
79
  this.widgetSubType = config.widgetSubType || config.widgetType;
79
80
  this.viewContainerRef = inj.get(ViewContainerRef);
@@ -606,4 +607,4 @@ BaseComponent.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: BaseCompon
606
607
  type: Inject,
607
608
  args: [WidgetConfig]
608
609
  }] }, { type: Promise }]; }, null); })();
609
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFHTixnQkFBZ0IsRUFFaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDZCxNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQWlCLE9BQU8sRUFBaUIsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsa0JBQWtC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Q1gsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFO1lBQ2xDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUN4QyxFQUFFLEVBQUUsQ0FBQzthQUNSO1NBQ0o7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLEtBQUksQ0FBQztJQUV2QixXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OzBFQTdzQmlCLGFBQWEsd0NBMkhuQixZQUFZO21FQTNITixhQUFhLFdBQWIsYUFBYTt1RkFBYixhQUFhO2NBRGxDLFVBQVU7O3NCQTRIRixNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPcHRpb25hbCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2ZW50TWFuYWdlcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7UmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgJGludm9rZVdhdGNoZXJzLFxuICAgICRwYXJzZUV2ZW50LFxuICAgICR1bndhdGNoLFxuICAgICR3YXRjaCxcbiAgICBhZGRDbGFzcyxcbiAgICBBcHAsXG4gICAgaXNEZWZpbmVkLFxuICAgIGlzTW9iaWxlQXBwLFxuICAgIHJlbW92ZUF0dHIsXG4gICAgcmVtb3ZlQ2xhc3MsXG4gICAgc2V0QXR0cixcbiAgICBzZXRDU1MsXG4gICAgc2V0Q1NTRnJvbU9iaixcbiAgICBzd2l0Y2hDbGFzc1xufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7Z2V0V2lkZ2V0UHJvcHNCeVR5cGV9IGZyb20gJy4uLy4uL2ZyYW1ld29yay93aWRnZXQtcHJvcHMnO1xuaW1wb3J0IHtpc1N0eWxlfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvc3R5bGVyJztcbmltcG9ydCB7cmVnaXN0ZXIsIHJlbmFtZVdpZGdldH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL3dpZGdldC1yZWdpc3RyeSc7XG5pbXBvcnQge0NoYW5nZUxpc3RlbmVyLCBDb250ZXh0LCBJV2lkZ2V0Q29uZmlnLCBXaWRnZXRDb25maWd9IGZyb20gJy4uLy4uL2ZyYW1ld29yay90eXBlcyc7XG5pbXBvcnQge3dpZGdldElkR2VuZXJhdG9yfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvd2lkZ2V0LWlkLWdlbmVyYXRvcic7XG5pbXBvcnQge0RJU1BMQVlfVFlQRSwgRVZFTlRTX01BUH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2NvbnN0YW50cyc7XG5pbXBvcnQge1dpZGdldFByb3h5UHJvdmlkZXJ9IGZyb20gJy4uLy4uL2ZyYW1ld29yay93aWRnZXQtcHJveHktcHJvdmlkZXInO1xuaW1wb3J0IHtnZXRXYXRjaElkZW50aWZpZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3dpZGdldC11dGlscyc7XG5cbmRlY2xhcmUgY29uc3QgJCwgXztcblxuLy8gR2V0cyBsaXN0IG9mIGNsYXNzZXMgdG8gYWRkIGFuZCByZW1vdmUgYW5kIGFwcGxpZXMgb24gdGhlICRlbFxuY29uc3QgdXBkYXRlQ2xhc3NlcyA9ICh0b0FkZCwgdG9SZW1vdmUsIGVsKSA9PiB7XG4gICAgaWYgKHRvUmVtb3ZlICYmIHRvUmVtb3ZlLmxlbmd0aCkge1xuICAgICAgICByZW1vdmVDbGFzcyhlbCwgXy5qb2luKHRvUmVtb3ZlLCAnICcpKTtcbiAgICB9XG4gICAgaWYgKHRvQWRkICYmIHRvQWRkLmxlbmd0aCkge1xuICAgICAgICBhZGRDbGFzcyhlbCwgXy5qb2luKHRvQWRkLCAnICcpKTtcbiAgICB9XG59O1xuXG4vLyBUbyBhZGQgYW5kIHJlbW92ZSBzdHlsZXMgb24gdGhlICRlbFxuY29uc3QgdXBkYXRlU3R5bGVzID0gKG52LCBvdiwgZWwpID0+IHtcbiAgICBpZiAob3YgJiYgXy5pc09iamVjdChvdikpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG92IHx8IHt9KTtcbiAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgc2V0Q1NTKGVsLCBrZXksICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChudiAmJiBfLmlzT2JqZWN0KG52KSkge1xuICAgICAgICBzZXRDU1NGcm9tT2JqKGVsLCBudik7XG4gICAgfVxuXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICAgIC8qKlxuICAgICAqIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgd2lkZ2V0XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdpZGdldElkOiBhbnk7XG5cbiAgICBwdWJsaWMgaXNEZXN0cm95ZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgaXNBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogalF1ZXJ5IG5hdGl2ZUVsZW1lbnQgcmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgcm9vdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgJGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiAkKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRE9NIG5vZGUgcmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgcm9vdFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIFR5cGUgb2YgdGhlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB3aWRnZXRUeXBlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNb3N0IG9mIHRoZSBjYXNlcyBpdCBpcyBzYW1lIGFzIHdpZGdldFR5cGVcbiAgICAgKiBmb3Igc3BlY2lmaWMgd2lkZ2V0cyBsaWtlIGNoYXJ0cyB3aWRnZXRUeXBlIGNhbiBiZSB3bS1jaGFydCB3aGVyZSBhcyB0aGUgc3VidHlwZSBjYW4gYmUgd20tYmFyLWNoYXJ0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpZGdldFN1YlR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3h5IGZvciB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aWRnZXQ6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFZpZXcgcGFyZW50IGNvbXBvbmVudFxuICAgICAqIGVnLCBQYWdlLCBQYXJ0aWFsLCBQcmVmYWJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld1BhcmVudDogYW55O1xuXG4gICAgLyoqXG4gICAgICogRXZlbnRNYW5nZXIgdG8gYWRkL3JlbW92ZSBldmVudHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXI7XG5cbiAgICAvKipcbiAgICAgKiBBcHAgTG9jYWxlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcExvY2FsZTogYW55O1xuXG4gICAgLyoqXG4gICAgICogU3R5bGUgY2hhbmdlIHN1YmplY3QgYW5kIG9ic2VydmFibGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlQ2hhbmdlID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGNoYW5nZSBzdWJqZWN0IGFuZCBvYnNlcnZhYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eUNoYW5nZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBPbiBSZWFkeSBTdGF0ZSBjaGFuZ2Ugc3ViamVjdCBhbmQgb2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlTdGF0ZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wb25lbnQgZGVzdHJveSBzdWJqZWN0IGFuZCBvYnNlcnZhYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIE1hcCBvZiBldmVudCBoYW5kbGVyIGNhbGxiYWNrc1xuICAgICAqL1xuICAgIHByaXZhdGUgZXZlbnRIYW5kbGVycyA9IG5ldyBNYXA8c3RyaW5nLCB7Y2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueX0+KCk7XG5cbiAgICAvKipcbiAgICAgKiBjb250ZXh0IG9mIHRoZSB3aWRnZXRcbiAgICAgKiB3aGVuIHRoZSB3aWRnZXQgaXMgcHJlc2V0IGluc2lkZSBhIHJlcGVhdGVyIHRoaXMgY29udGV4dCB3aWxsIGhhdmUgdGhlIHJlcGVhdGVyIHJlbGF0ZWQgcHJvcGVydGllc1xuICAgICAqL1xuICAgIHB1YmxpYyBjb250ZXh0OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHN0YXRlIG9mIHRoZSB3aWRnZXQuXG4gICAgICogV2lsbCBiZSB1bmRlZmluZWQgb25jZSB0aGUgaW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBzZXQgb24gdG8gdGhlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdFN0YXRlOiBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgZmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB0byB3YWl0IGZvciB0aGUgd2lkZ2V0IGluaXRpYWxpemF0aW9uIG9yIG5vdFxuICAgICAqIElmIHRoZSBpbml0UHJvbWlzZSBpcyBwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0aW9uIHdhaXQgdGlsbCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxuICAgICAqIElmIHRoZSBpbml0UHJvbWlzZSBpcyBub3QgcHJvdmlkZWQgcHJvY2VlZCB3aXRoIHRoZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWxheWVkSW5pdDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgdHlwZSBvZiB0aGUgY29tcG9uZW50LiBlZywgYmxvY2soRGVmYXVsdCksIGlubGluZS1ibG9jaywgaW5saW5lIGV0Y1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIHRoZSBldmVudCByZWdpc3RyYXRpb24gZnVuY3Rpb25zLlxuICAgICAqIHRoZXNlIGZ1bmN0aW9ucyBuZWVkcyB0byBiZSBleGVjdXRlZCBhZnRlciBvblZpZXdJbml0XG4gICAgICovXG4gICAgcHJpdmF0ZSB0b0JlU2V0dXBFdmVudHNRdWV1ZTogQXJyYXk8RnVuY3Rpb24+ID0gW107XG5cbiAgICBwdWJsaWMgX19jbG9uZWFibGVfXyA9IGZhbHNlO1xuXG4gICAgcHVibGljIHdpZGdldFByb3BzOiBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgcHJpdmF0ZSAkYXR0cnMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBpc011dGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbiAgICBwdWJsaWMgdmlld1BhcmVudEFwcDogQXBwO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgaW5pdFByb21pc2U/OiBQcm9taXNlPGFueT4gLy8gUHJvbWlzZSBvbiB3aGljaCB0aGUgaW5pdGlhbGl6YXRpb24gaGFzIHRvIHdhaXRcbiAgICApIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZiA9IGluai5nZXQoRWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy52aWV3UGFyZW50QXBwID0gaW5qZWN0KEFwcCk7XG4gICAgICAgIHRoaXMud2lkZ2V0VHlwZSA9IGNvbmZpZy53aWRnZXRUeXBlO1xuICAgICAgICB0aGlzLndpZGdldFN1YlR5cGUgPSBjb25maWcud2lkZ2V0U3ViVHlwZSB8fCBjb25maWcud2lkZ2V0VHlwZTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmID0gaW5qLmdldChWaWV3Q29udGFpbmVyUmVmKTtcbiAgICAgICAgLy8gdGhpcy52aWV3UGFyZW50ID0gKGluaiBhcyBhbnkpLnZpZXcuY29tcG9uZW50O1xuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSBfdmlld1BhcmVudCB8fCAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvbWFpbi9wYWNrYWdlcy9jb3JlL3NyYy9yZW5kZXIzL2ludGVyZmFjZXMvdmlldy50c1xuXG4gICAgICAgIGxldCBsVmlldyA9ICh0aGlzLmluaiBhcyBhbnkpLl9sVmlldztcbiAgICAgICAgY29uc3QgZ2V0UGFyZW50bFZpZXcgPSAobFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgLy9jb25zb2xlLmxvZyhcIi0tLSoqKioqKioqKioqKiotLXdpZGdldFR5cGUtLSoqKioqKioqKioqKiotLS1cIiwgdGhpcy53aWRnZXRUeXBlKTtcbiAgICAgICAgICAgIGxldCBwYXJlbnRsVmlldyA9IGxWaWV3WzNdO1xuICAgICAgICAgICAgaWYodHlwZW9mIGxWaWV3WzFdID09PSBcImJvb2xlYW5cIikgeyAvLyB0aGlzIGlzIGxDb250YWluZXIsIG5vdCBsVmlldyBpZiB0aGlzIGlzIGJvb2xlYW5cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UGFyZW50bFZpZXcocGFyZW50bFZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGNvbXBvbmVudFR5cGUgPSBsVmlld1sxXVtcInR5cGVcIl07XG4gICAgICAgICAgICBpZihjb21wb25lbnRUeXBlID09PSAwIHx8IGNvbXBvbmVudFR5cGUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbFZpZXdbOF07XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyB3aGVuIGNvbXBvbmVudFR5cGUgPT0gMiwgdGhlbiBmZXRjaCBwYXJlbnQgYWdhaW5cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UGFyZW50bFZpZXcocGFyZW50bFZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld1BhcmVudCA9IGdldFBhcmVudGxWaWV3KGxWaWV3KSB8fCB0aGlzLnZpZXdQYXJlbnRBcHA7XG4gICAgICAgIC8vY29uc29sZS5sb2coXCItLS0qKioqKioqKioqKioqLS1jb250ZXh0LS0qKioqKioqKioqKioqLS0tXCIsIGxWaWV3WzhdKTtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gKHRoaXMuaW5qIGFzIGFueSkuX2xWaWV3WzhdO1xuXG4gICAgICAgIHRoaXMuZGlzcGxheVR5cGUgPSBjb25maWcuZGlzcGxheVR5cGUgfHwgRElTUExBWV9UWVBFLkJMT0NLO1xuICAgICAgICAvLyB0aGlzLmNvbnRleHQgPSAoaW5qIGFzIGFueSkudmlldy5jb250ZXh0O1xuICAgICAgICAvLyB0aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlldy5kZWJ1Zy5jb250ZXh0O1xuICAgICAgICAvLyBsZXQgaGFzSW1wbGljaXRDb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLl9ob3N0TFZpZXcuZmluZCh0ID0+IHQgJiYgISF0LiRpbXBsaWNpdCk7XG4gICAgICAgIC8vIHdoZW4gJGltcGxpY2l0IGlzIG5vdCBhdmFpbGFibGUsIHRoaXMgb2JqZWN0IGNvbnRhaW5zIHNvbWUgbmdGb3IgY29udGV4dCBvciBsaXN0aXRlbSBjb250ZXh0IG9mIHRoZSB3aWRnZXQgdGhlblxuICAgICAgICAvLyB3ZSB1c2UgdGhlIGRpcmVjdCBwYXJlbnQgZm9yIGV4YW1wbGU6IG5hdiBjb21wb25lbnQgaXMgdGhlIHBhcmVudCBmb3IgYW5jaG9yID0+IGFuY2hvciBnZXRzIHZpZXdQYXJlbnQgYXMgTmF2XG4gICAgICAgIC8vIEluIG90aGVyIGNhc2UsIHdoZXJlIHdlIGhhdmUgaW1wbGljaXRDb250ZXh0IHRoZXJlIHdlIGNhbiBtYWtlIHVzZSBvZiBwYWdlL2FwcCBsZXZlbCBjb250ZXh0IGhlbmNlIHZpZXdQYXJlbnQudmlld1BhcmVudCB0byBnZXQgcGFnZSBsZXZlbCBjb250ZXh0XG4gICAgICAgIC8qaWYgKGhhc0ltcGxpY2l0Q29udGV4dCAmJiB0aGlzLnZpZXdQYXJlbnQudmlld1BhcmVudCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudmlld1BhcmVudC53aWRnZXRUeXBlICE9PSAnd20tY2FyZCcgJiYgdGhpcy52aWV3UGFyZW50LndpZGdldFR5cGUgIT09ICd3bS1pZnJhbWVkaWFsb2cnXG4gICAgICAgICAgICAgICAgJiYgdGhpcy52aWV3UGFyZW50LndpZGdldFR5cGUgIT09ICd3bS1wYXJ0aWFsZGlhbG9nJykge1xuICAgICAgICAgICAgICAgIHRoaXMudmlld1BhcmVudCA9IHRoaXMudmlld1BhcmVudC52aWV3UGFyZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICghaGFzSW1wbGljaXRDb250ZXh0IHx8ICghdGhpcy52aWV3UGFyZW50LndpZGdldFR5cGUpKSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlldy5maW5kKHQgPT4gdCAmJiAhIXQuJGltcGxpY2l0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5wYXJlbnRJbmplY3Rvci5fbFZpZXdbOF07XG4gICAgICAgIH0qL1xuXG4gICAgICAgIC8qaWYoX3ZpZXdQYXJlbnQgJiYgIWhhc0ltcGxpY2l0Q29udGV4dCkge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLl9ob3N0TFZpZXdbOF07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSBoYXNJbXBsaWNpdENvbnRleHQ7XG4gICAgICAgIH0qL1xuICAgICAgICAvLyBpZiAoWyd3bS1saXN0JywgJ3dtLW5hdiddLmluY2x1ZGVzKHRoaXMudmlld1BhcmVudC53aWRnZXRUeXBlKSB8fCBbJ3dtLWNhcm91c2VsLXRlbXBsYXRlJywgJ3dtLWNhcmQnXS5pbmNsdWRlcyh0aGlzLndpZGdldFR5cGUpKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlldy5kZWJ1Zy5jb250ZXh0O1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLnBhcmVudEluamVjdG9yLl9sVmlld1s4XTtcbiAgICAgICAgLy8gfVxuICAgICAgICB0aGlzLndpZGdldCA9IHRoaXMuY3JlYXRlUHJveHkoKTtcbiAgICAgICAgdGhpcy5ldmVudE1hbmFnZXIgPSBpbmouZ2V0KEV2ZW50TWFuYWdlcik7XG4gICAgICAgICh0aGlzLm5hdGl2ZUVsZW1lbnQgYXMgYW55KS53aWRnZXQgPSB0aGlzLndpZGdldDtcblxuICAgICAgICB0aGlzLmFwcExvY2FsZSA9IGluai5nZXQoQXBwKS5hcHBMb2NhbGUgfHwge307XG5cbiAgICAgICAgdGhpcy5pbml0Q29udGV4dCgpO1xuXG4gICAgICAgIGlmIChjb25maWcuaG9zdENsYXNzKSB7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGNvbmZpZy5ob3N0Q2xhc3MpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy53aWRnZXRJZCA9IHRoaXMuZ2VuZXJhdGVXaWRnZXRJZCgpO1xuICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ3dpZGdldC1pZCcsIHRoaXMud2lkZ2V0SWQsIHRydWUpO1xuXG4gICAgICAgIC8vIHJlZ2lzdGVyIGRlZmF1bHQgcHJvcGVydHkgY2hhbmdlIGhhbmRsZXIgYW5kIHN0eWxlIGNoYW5nZSBoYW5kbGVyXG4gICAgICAgIHRoaXMucmVnaXN0ZXJTdHlsZUNoYW5nZUxpc3RlbmVyKHRoaXMub25TdHlsZUNoYW5nZSwgdGhpcyk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJQcm9wZXJ0eUNoYW5nZUxpc3RlbmVyKHRoaXMub25Qcm9wZXJ0eUNoYW5nZSwgdGhpcyk7XG5cbiAgICAgICAgLy8gaWYgdGhlIGluaXRQcm9taXNlIGlzIHByb3ZpZGVkLCB3YWl0IHRpbGwgdGhlIHByb21pc2UgaXMgcmVzb2x2ZWQgdG8gcHJvY2VlZCB3aXRoIHRoZSB3aWRnZXQgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgaWYgKCFpbml0UHJvbWlzZSkge1xuICAgICAgICAgICAgdGhpcy5pbml0V2lkZ2V0KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlbGF5ZWRJbml0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGluaXRQcm9taXNlLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFdpZGdldCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0SW5pdFByb3BzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXROYXRpdmVFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0V2lkZ2V0VHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXRUeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRXaWRnZXRTdWJUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFN1YlR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdpZGdldCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy53aWRnZXQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldFByb3BlcnR5KHByb3BOYW1lLCBwcm9wVmFsdWUpIHtcbiAgICAgICAgdGhpcy53aWRnZXRbcHJvcE5hbWVdID0gcHJvcFZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRWaWV3UGFyZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpZXdQYXJlbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIG5vdGlmeVN0eWxlQ2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdjogYW55KSB7XG4gICAgICAgIHRoaXMuc3R5bGVDaGFuZ2UubmV4dCh7a2V5LCBudiwgb3Z9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5UHJvcGVydHlDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92OiBhbnkpIHtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eUNoYW5nZS5uZXh0KHtrZXksIG52LCBvdn0pO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlclN0eWxlQ2hhbmdlTGlzdGVuZXIoZm46IENoYW5nZUxpc3RlbmVyLCBjdHg/OiBhbnkpIHtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zdHlsZUNoYW5nZS5zdWJzY3JpYmUoKHtrZXksIG52LCBvdn0pID0+IGZuKGtleSwgbnYsIG92KSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyUmVhZHlTdGF0ZUxpc3RlbmVyKGZuOiBGdW5jdGlvbiwgY3R4PzogYW55KSB7XG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICAgIGZuID0gZm4uYmluZChjdHgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUuaXNTdG9wcGVkKSB7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZS5zdWJzY3JpYmUoKCkgPT4gZm4oKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyUHJvcGVydHlDaGFuZ2VMaXN0ZW5lcihmbjogQ2hhbmdlTGlzdGVuZXIsIGN0eD86IGFueSkge1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgICBmbiA9IGZuLmJpbmQoY3R4KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByb3BlcnR5Q2hhbmdlLnN1YnNjcmliZSgoe2tleSwgbnYsIG92fSkgPT4gZm4oa2V5LCBudiwgb3YpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoZm46IEZ1bmN0aW9uLCBjdHg/OiBhbnkpIHtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kZXN0cm95LnN1YnNjcmliZSgoKSA9PiB7fSwgKCkgPT4ge30sICgpID0+IGZuKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXREaXNwbGF5VHlwZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5kaXNwbGF5VHlwZTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY3JlYXRlUHJveHkoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIFdpZGdldFByb3h5UHJvdmlkZXIuY3JlYXRlKHRoaXMsIHRoaXMud2lkZ2V0U3ViVHlwZSwgZ2V0V2lkZ2V0UHJvcHNCeVR5cGUodGhpcy53aWRnZXRTdWJUeXBlKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGluaXRDb250ZXh0KCkge1xuICAgICAgICAvLyBjb25zdCBjb250ZXh0ID0gKHRoaXMuaW5qIGFzIGFueSkudmlldy5jb250ZXh0O1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5jb250ZXh0IHx8IHt9O1xuXG4gICAgICAgIGNvbnN0IHBhcmVudENvbnRleHRzID0gdGhpcy5pbmouZ2V0KENvbnRleHQsIHt9KTtcblxuICAgICAgICAvLyBhc3NpZ24gdGhlIGNvbnRleHQgcHJvcGVydHkgYWNjb3JkaW5nbHlcbiAgICAgICAgLy8gaWYgKHRoaXMudmlld1BhcmVudCAhPT0gY29udGV4dCkge1xuICAgICAgICAvLyAgICAgdGhpcy5jb250ZXh0ID0gY29udGV4dDtcbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICAgIHRoaXMuY29udGV4dCA9IHt9O1xuICAgICAgICAvLyB9XG5cbiAgICAgICAgaWYgKHBhcmVudENvbnRleHRzKSB7XG4gICAgICAgICAgICBsZXQgcGFyZW50Q29udGV4dE9iaiA9IHt9O1xuICAgICAgICAgICAgaWYgKF8uaXNBcnJheShwYXJlbnRDb250ZXh0cykpIHtcbiAgICAgICAgICAgICAgICBfLmZvckVhY2gocGFyZW50Q29udGV4dHMsIChjb250ZXh0T2JqKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5hc3NpZ24ocGFyZW50Q29udGV4dE9iaiwgY29udGV4dE9iaik7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHBhcmVudENvbnRleHRPYmogPSBwYXJlbnRDb250ZXh0cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IE9iamVjdC5hc3NpZ24oe30sIHBhcmVudENvbnRleHRPYmosIHRoaXMuY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBzZXQgdGhlIHZhbHVlIG9uIHRoZSBwcm94eSBvYmplY3QgaWUsIHdpZGdldFxuICAgICAqIHNldHRpbmcgdGhlIHByb3BlcnR5IG9uIHRoZSBwcm94eSB3aWxsIGludm9rZSB0aGUgY2hhbmdlIGxpc3RlbmVyc1xuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0V2lkZ2V0UHJvcGVydHkoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgdGhpcy53aWRnZXRba2V5XSA9IHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRBdHRyKGF0dHJOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy4kYXR0cnMuZ2V0KGF0dHJOYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiByZXR1cm5zIGFwcCBpbnN0YW5jZVxuICAgICAqIEByZXR1cm5zIHtBcHB9XG4gICAgICovXG4gICAgcHVibGljIGdldEFwcEluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbmouZ2V0KEFwcCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2VuZXJhdGVzIGEgdW5pcXVlIGlkXG4gICAgICogRGVmYXVsdCBwYXR0ZXJuIGlzIGB3aWRnZXQtaWQtJHtpZH1gXG4gICAgICogQ29tcG9uZW50cyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gZ2VuZXJhdGUgYSBkaWZmZXJlbnQgaWQgZWcsIGJhci1jaGFydC0xXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdlbmVyYXRlV2lkZ2V0SWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHdpZGdldElkR2VuZXJhdG9yLm5leHRVaWQoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIHRoZSBjb21tb24gZnVuY3Rpb25hbGl0eSBhY3Jvc3MgdGhlIGNvbXBvbmVudHNcbiAgICAgKiBlZyxcbiAgICAgKiAgMS4gdmFsdWUgb2YgdGhlIGNsYXNzIHByb3BlcnR5IHdpbGwgYmUgYXBwbGllZCBvbiB0aGUgaG9zdCBlbGVtZW50XG4gICAgICogIDIuIGJhc2VkIG9uIHRoZSB2YWx1ZSBvZiBzaG93IHByb3BlcnR5IGNvbXBvbmVudCBpcyBzaG93bi9oaWRkZW5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAgICAgKiBAcGFyYW0gbnZcbiAgICAgKiBAcGFyYW0gb3ZcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25Qcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHtcbiAgICAgICAgaWYgKGtleSA9PT0gJ3Nob3cnKSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gIW52O1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hpbnQnKSB7XG4gICAgICAgICAgICBpZiAoIWlzTW9iaWxlQXBwKCkpIHtcbiAgICAgICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ3RpdGxlJywgbnYpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBudiwgb3YpO1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IG52Lm1hdGNoKC8oXFxXfF4pKGgoWzAtNl0pKSg/PVxcc3wkKS8pO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAncm9sZScsICdoZWFkaW5nJyk7XG4gICAgICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdhcmlhLWxldmVsJywgcmVzdWx0WzNdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICduYW1lJyB8fCBrZXkgPT09ICd0YWJpbmRleCcpIHtcbiAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBrZXksIG52KTtcbiAgICAgICAgICAgIGlmIChrZXkgPT09ICduYW1lJyAmJiBudikge1xuICAgICAgICAgICAgICAgIHJlbmFtZVdpZGdldCh0aGlzLnZpZXdQYXJlbnQsIHRoaXMud2lkZ2V0LCBudiwgb3YpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NvbmRpdGlvbmFsY2xhc3MnKSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgY2xhc3NlcyBpZiBvbGQgYW5kIG52IHZhbHVlIGFyZSBkaWZmZXJlbnRcbiAgICAgICAgICAgIHVwZGF0ZUNsYXNzZXMobnYudG9BZGQsIG52LnRvUmVtb3ZlLCB0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgIGlmIChrZXkgPT09ICdhdXRvcGxheScpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhZ05hbWUgPSB0aGlzLndpZGdldFR5cGUgPT09ICd3bS1hdWRpbycgPyAnYXVkaW8nIDogJ3ZpZGVvJztcbiAgICAgICAgICAgIC8vIFRyaWdnZXIgbWVkaWEoYXVkaW8vdmlkZW8pIGVsZW1lbnQgbG9hZCBtZXRob2QgYWZ0ZXIgY2hhbmdpbmcgYXV0b3BsYXkgcHJvcGVydHlcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKHRhZ05hbWUpLmxvYWQoKTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdjb25kaXRpb25hbHN0eWxlJykge1xuICAgICAgICAgICAgLy8gdXBkYXRlIHN0eWxlcyBpZiBvbGQgYW5kIG52IHZhbHVlIGFyZSBkaWZmZXJlbnRcbiAgICAgICAgICAgIHVwZGF0ZVN0eWxlcyhudiwgb3YsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnYW5pbWF0aW9uJykge1xuICAgICAgICAgICAgLy8gdXBkYXRlIHN0eWxlcyBpZiBvbGQgYW5kIG52IHZhbHVlIGFyZSBkaWZmZXJlbnRcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgXCJhbmltYXRlZCBcIiArIG52KTtcbiAgICAgICAgfSAgZWxzZSBpZiAoa2V5ID09PSAnZGlzYWJsZWQnKSB7XG4gICAgICAgICAgICAvLyBXTVMtMTkzMjE6IEluIElFLCB3aWRnZXQgaXMgaW4gZGlzYWJsZWQgc3RhdGUgd2hlbiBkaXNhYmxlZD1cImZhbHNlXCIgYXR0cmlidXRlIGlzIHByZXNlbnRcbiAgICAgICAgICAgIChudiA9PT0gdHJ1ZSkgPyBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgJ3RydWUnLCB0cnVlKSA6IHJlbW92ZUF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCB0cnVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmF1bHQgc3R5bGUgY2hhbmdlIGhhbmRsZXJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25TdHlsZUNoYW5nZShrOiBzdHJpbmcsIG52OiBhbnksIG92PzogYW55KSB7fVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdGhlIHdpZGdldCB3aXRoIHRoZSB3aWRnZXRSZWdpc3RyeVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWdpc3RlcldpZGdldCh3aWRnZXROYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcihyZWdpc3Rlcih0aGlzLndpZGdldCwgdGhpcy52aWV3UGFyZW50LCB0aGlzLndpZGdldElkLCB3aWRnZXROYW1lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogb3ZlcnJpZGUgdGhlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldE1hcHBlZEV2ZW50TmFtZShldmVudE5hbWUpIHtcbiAgICAgICAgcmV0dXJuIEVWRU5UU19NQVAuZ2V0KGV2ZW50TmFtZSkgfHwgZXZlbnROYW1lO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIGludm9rZSB0aGUgZXZlbnQgaGFuZGxlclxuICAgICAqIENvbXBvbmVudHMgY2FuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGV4ZWN1dGUgY3VzdG9tIGxvZ2ljIGJlZm9yZSBpbnZva2luZyB0aGUgdXNlciBjYWxsYmFja1xuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYW5kbGVFdmVudChub2RlOiBIVE1MRWxlbWVudCwgZXZlbnROYW1lOiBzdHJpbmcsIGV2ZW50Q2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueSwgbWV0YT86IHN0cmluZykge1xuICAgICAgICB0aGlzLmV2ZW50TWFuYWdlci5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICAgbm9kZSxcbiAgICAgICAgICAgIGV2ZW50TmFtZSxcbiAgICAgICAgICAgIGUgPT4ge1xuICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBlO1xuICAgICAgICAgICAgICAgIGlmIChtZXRhID09PSAnZGVsYXllZCcpIHtcbiAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IGV2ZW50Q2FsbGJhY2soKSwgMTUwKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnRDYWxsYmFjaygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBwYXJzZSB0aGUgZXZlbnQgZXhwcmVzc2lvbiBhbmQgc2F2ZSByZWZlcmVuY2UgdG8gdGhlIGZ1bmN0aW9uIGluc2lkZSBldmVudEhhbmRsZXJzIG1hcFxuICAgICAqIElmIHRoZSBjb21wb25lbnQgcHJvdmlkZXMgYSBvdmVycmlkZSBmb3IgYW4gZXZlbnQgdGhyb3VnaCBARXZlbnQgZGVjb3JhdG9yIGludm9rZSB0aGF0XG4gICAgICogZWxzZSBpbnZva2UgdGhlIHJlc29sdmVkIGZ1bmN0aW9uXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV4cHJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0V2ZW50QXR0cihldmVudE5hbWU6IHN0cmluZywgZXhwcjogc3RyaW5nLCBtZXRhPzogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGZuID0gJHBhcnNlRXZlbnQoZXhwcik7XG4gICAgICAgIGNvbnN0IGxvY2FscyA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgbG9jYWxzLndpZGdldCA9IHRoaXMud2lkZ2V0O1xuICAgICAgICBjb25zdCBib3VuZEZuID0gZm4uYmluZCh1bmRlZmluZWQsIHRoaXMudmlld1BhcmVudCwgbG9jYWxzKTtcblxuICAgICAgICBjb25zdCBldmVudENhbGxiYWNrID0gKCkgPT4ge1xuICAgICAgICAgICAgbGV0IGJvdW5kRm5WYWw7XG4gICAgICAgICAgICAkaW52b2tlV2F0Y2hlcnModHJ1ZSk7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIGxvY2Fscy4kZXZlbnQgPSBsb2NhbHMuJGV2ZW50IHx8IG5ldyB3aW5kb3cuQ3VzdG9tRXZlbnQoZXZlbnROYW1lKTtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZXZlbnQgaXMgYm91bmQgZGlyZWN0bHkgdG8gdGhlIHZhcmlhYmxlIHRoZW4gd2UgbmVlZCB0byBpbnRlcm5hbGx5IGhhbmRsZVxuICAgICAgICAgICAgICAgIC8vIHRoZSBwcm9taXNlIHJldHVybmVkIGJ5IHRoZSB2YXJpYWJsZSBjYWxsLlxuICAgICAgICAgICAgICAgIGJvdW5kRm5WYWwgPSBib3VuZEZuKCk7XG4gICAgICAgICAgICAgICAgaWYgKGJvdW5kRm5WYWwgaW5zdGFuY2VvZiBQcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGJvdW5kRm5WYWwudGhlbiggcmVzcG9uc2UgPT4gcmVzcG9uc2UsIGVyciA9PiBlcnIpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBib3VuZEZuVmFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMuZXZlbnRIYW5kbGVycy5zZXQodGhpcy5nZXRNYXBwZWRFdmVudE5hbWUoZXZlbnROYW1lKSwge2NhbGxiYWNrOiBldmVudENhbGxiYWNrLCBsb2NhbHN9KTtcbiAgICAgICAgLy8gcHJlcGVuZCBldmVudE5hbWUgd2l0aCBvbiBhbmQgY29udmVydCBpdCB0byBjYW1lbGNhc2UuXG4gICAgICAgIC8vIGVnLCBcImNsaWNrXCIgLS0tPiBvbkNsaWNrXG4gICAgICAgIGNvbnN0IG9uRXZlbnROYW1lID0gIF8uY2FtZWxDYXNlKGBvbi0ke2V2ZW50TmFtZX1gKTtcbiAgICAgICAgLy8gc2F2ZSB0aGUgZXZlbnRDYWxsYmFjayBpbiB3aWRnZXRTY29wZS5cbiAgICAgICAgdGhpc1tvbkV2ZW50TmFtZV0gPSBldmVudENhbGxiYWNrO1xuXG4gICAgICAgIC8vIGV2ZW50cyBuZWVkcyB0byBiZSBzZXR1cCBhZnRlciB2aWV3SW5pdFxuICAgICAgICB0aGlzLnRvQmVTZXR1cEV2ZW50c1F1ZXVlLnB1c2goKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5oYW5kbGVFdmVudCh0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMuZ2V0TWFwcGVkRXZlbnROYW1lKGV2ZW50TmFtZSksIGV2ZW50Q2FsbGJhY2ssIGxvY2FscywgbWV0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGJvdW5kIHByb3BlcnR5XG4gICAgICogUmVnaXN0ZXIgYSB3YXRjaCBvbiB0aGUgYm91bmQgZXhwcmVzc2lvblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwcm9jZXNzQmluZEF0dHIocHJvcE5hbWU6IHN0cmluZywgZXhwcjogc3RyaW5nKSB7XG5cbiAgICAgICAgdGhpcy5pbml0U3RhdGUuZGVsZXRlKHByb3BOYW1lKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgJHdhdGNoKFxuICAgICAgICAgICAgICAgIGV4cHIsXG4gICAgICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LFxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dCxcbiAgICAgICAgICAgICAgICBudiA9PiB0aGlzLndpZGdldFtwcm9wTmFtZV0gPSBudixcbiAgICAgICAgICAgICAgICBnZXRXYXRjaElkZW50aWZpZXIodGhpcy53aWRnZXRJZCwgcHJvcE5hbWUpLFxuICAgICAgICAgICAgICAgIHByb3BOYW1lID09PSAnZGF0YXNvdXJjZScsXG4gICAgICAgICAgICAgICAgdGhpcy53aWRnZXRQcm9wcy5nZXQocHJvcE5hbWUpLFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMuaXNNdXRlZFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZSB3YXRjaCBvbiB0aGUgYm91bmQgcHJvcGVydHlcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVtb3ZlUHJvcGVydHlCaW5kaW5nKHByb3BOYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgJHVud2F0Y2goZ2V0V2F0Y2hJZGVudGlmaWVyKHRoaXMud2lkZ2V0SWQsIHByb3BOYW1lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW52b2tlIHRoZSBldmVudCBjYWxsYmFjayBtZXRob2RcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICAgICogQHBhcmFtIGV4dHJhTG9jYWxzXG4gICAgICovXG4gICAgcHVibGljIGludm9rZUV2ZW50Q2FsbGJhY2soZXZlbnROYW1lOiBzdHJpbmcsIGV4dHJhTG9jYWxzPzogYW55KSB7XG4gICAgICAgIGNvbnN0IGNhbGxiYWNrSW5mbyA9IHRoaXMuZXZlbnRIYW5kbGVycy5nZXQoZXZlbnROYW1lKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrSW5mbykge1xuICAgICAgICAgICAgY29uc3QgZm4gPSBjYWxsYmFja0luZm8uY2FsbGJhY2s7XG4gICAgICAgICAgICBjb25zdCBsb2NhbHMgPSBjYWxsYmFja0luZm8ubG9jYWxzIHx8IHt9O1xuXG4gICAgICAgICAgICBpZiAoZm4pIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm4oT2JqZWN0LmFzc2lnbihsb2NhbHMsIGV4dHJhTG9jYWxzKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzIHRoZSBhdHRyaWJ1dGVcbiAgICAgKiBJZiB0aGUgYXR0cmlidXRlIGlzIGFuIGV2ZW50IGV4cHJlc3Npb24sIGdlbmVyYXRlIGEgZnVuY3Rpb25hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgZXhwcmVzc2lvblxuICAgICAqICAgICAgYW5kIGtlZXAgaW4gZXZlbnRIYW5kbGVyc1xuICAgICAqIElmIHRoZSBhdHRyaWJ1dGUgaXMgYSBib3VuZCBleHByZXNzaW9uLCByZWdpc3RlciBhIHdhdGNoIG9uIHRoZSBleHByZXNzaW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHByb2Nlc3NBdHRyKGF0dHJOYW1lOiBzdHJpbmcsIGF0dHJWYWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHswOiBwcm9wTmFtZSwgMTogdHlwZSwgMjogbWV0YSwgbGVuZ3RofSA9IGF0dHJOYW1lLnNwbGl0KCcuJyk7XG4gICAgICAgIGlmICh0eXBlID09PSAnYmluZCcpIHtcbiAgICAgICAgICAgIC8vIGlmIHRoZSBzaG93IHByb3BlcnR5IGlzIGJvdW5kLCBzZXQgdGhlIGluaXRpYWwgdmFsdWUgdG8gZmFsc2VcbiAgICAgICAgICAgIGlmIChwcm9wTmFtZSA9PT0gJ3Nob3cnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NCaW5kQXR0cihwcm9wTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnZXZlbnQnKSB7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NFdmVudEF0dHIocHJvcE5hbWUsIGF0dHJWYWx1ZSwgbWV0YSk7XG4gICAgICAgIH0gZWxzZSBpZiAobGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAvLyByZW1vdmUgY2xhc3MgYW5kIG5hbWUgYXR0cmlidXRlcy4gQ29tcG9uZW50IHdpbGwgc2V0IHRoZW0gb24gdGhlIHByb3BlciBub2RlXG4gICAgICAgICAgICBpZiAoYXR0ck5hbWUgPT09ICdjbGFzcycpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGF0dHJWYWx1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGF0dHJOYW1lID09PSAndGFiaW5kZXgnIHx8IGF0dHJOYW1lID09PSAnbmFtZScpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgYXR0ck5hbWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmluaXRTdGF0ZS5zZXQocHJvcE5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBjdXN0b20gYXR0cmlidXRlcyBwcm92aWRlZCBvbiBlbERlZjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoaXMgaXMgcmVxdWlyZWQgYXMgdGhlIG5hdGl2ZSBlbGVtZW50IGF0dHJpYnV0ZXMgYXJlIGNhc2UgaW5zZW5zaXRpdmUoY2FtZWxjYXNlKSBsaWtlIGN1c3RvbUV4cHJlc3Npb25zIGJlY29tZXMgY3VzdG9tZXhwcmVzc2lvblxuICAgICAqIGFuZCBvdXIgbG9naWMgdG8gY2hlY2sgbGlrZSB0aGVzZSBjaGFuZ2VzIHdpbGwgZmFpbC4gQmVmb3JlIElWWSBjaGFuZ2VzLCBhbmd1bGFyIG1haW50YWlucyBhIHNlcGFyYXRlIG9iamVjdCB3aXRoIHRoZXNlIGF0dHJpYnV0ZXNcbiAgICAgKiBhcyBpdCBpcyBsaWtlIGluIHRoZSBjYW1lbGNhc2UuIFdpdGggSVZZIGFsbCB0aG9zZSBhcmUgZ29uZS4gU28gbmVlZCB0byBtYWludGFpbiBhIHNlcGFyYXRlIGxpc3Qgd2l0aCB0aGUgY2FtZWxjYXNpbmcgb2YgYXR0cmlidXRlc1xuICAgICAqIEBwcml2YXRlXG4gICAgICovXG4gICAgcHJpdmF0ZSBnZXRBdHRyaWJ1dGVzKCkge1xuICAgICAgICBsZXQgX3ROb2RlQXR0cnMgPSAodGhpcy5pbmogYXMgYW55KS5fdE5vZGUuYXR0cnMsIGFjdHVhbEF0dHJzID0gQXJyYXkuZnJvbSh0aGlzLm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcykubWFwKGF0dHIgPT4gYXR0ci5uYW1lKTtcbiAgICAgICAgaWYoX3ROb2RlQXR0cnMgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhY3R1YWxBdHRycztcbiAgICAgICAgfVxuICAgICAgICBfdE5vZGVBdHRycy5maWx0ZXIoYXR0ciA9PiB7XG4gICAgICAgICAgICBpZih0eXBlb2YgYXR0ciA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICBsZXQgbG93ZXJDYXNlQXR0ciA9IGF0dHIudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgICAgICBpZiAoYWN0dWFsQXR0cnMuaW5jbHVkZXMobG93ZXJDYXNlQXR0cikpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gYWN0dWFsQXR0cnMuaW5kZXhPZihsb3dlckNhc2VBdHRyKVxuICAgICAgICAgICAgICAgICAgICBhY3R1YWxBdHRyc1tpbmRleF0gPSBhdHRyO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhY3R1YWxBdHRycztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBQcm9jZXNzIHRoZSBhdHRyaWJ1dGVzXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcm9jZXNzQXR0cnMoKSB7XG4gICAgICAgIGNvbnN0IGF0dHJzID0gdGhpcy5nZXRBdHRyaWJ1dGVzKCk7XG4gICAgICAgIGxldCBpID0gMDtcbiAgICAgICAgXy5tYXAoYXR0cnMsIChhdHRyTmFtZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBsZXQgYXR0clZhbHVlID0gdGhpcy5uYXRpdmVFbGVtZW50LmF0dHJpYnV0ZXNbYXR0ck5hbWVdLnZhbHVlXG4gICAgICAgICAgICB0aGlzLiRhdHRycy5zZXQoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NBdHRyKGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIGluaXRTdGF0ZSB3aXRoIHRoZSBkZWZhdWx0IHByb3BlcnR5IHZhbHVlcyBhbmQgdGhlIHZhbHVlcyBwcm92aWRlZCBpbiB0aGUgbWFya3VwXG4gICAgICogUHJvY2VzcyB0aGUgYXR0cmlidXRlc1xuICAgICAqIFJlZ2lzdGVyIHRoZSB3aWRnZXRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaW5pdFdpZGdldCgpIHtcbiAgICAgICAgdGhpcy5pbml0U3RhdGUgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xuXG4gICAgICAgIC8vIGdldCB0aGUgd2lkZ2V0IHByb3BlcnRpZXNcbiAgICAgICAgY29uc3Qgd2lkZ2V0UHJvcHM6IE1hcDxzdHJpbmcsIGFueT4gPSBnZXRXaWRnZXRQcm9wc0J5VHlwZSh0aGlzLndpZGdldFN1YlR5cGUpO1xuICAgICAgICB3aWRnZXRQcm9wcy5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXNEZWZpbmVkKHYudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0U3RhdGUuc2V0KGssIHYudmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLndpZGdldFByb3BzID0gd2lkZ2V0UHJvcHM7XG5cbiAgICAgICAgdGhpcy5wcm9jZXNzQXR0cnMoKTtcblxuICAgICAgICB0aGlzLnJlZ2lzdGVyV2lkZ2V0KHRoaXMuaW5pdFN0YXRlLmdldCgnbmFtZScpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVcGRhdGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcyBhbmQgdGhlIHByb3BlcnRpZXMgcHJvdmlkZWQgaW4gdGhlIG1hcmt1cCBpbiBjb21wb25lbnRcbiAgICAgKiBJbnZva2luZyB0aGlzIG1ldGhvZCB3aWxsIHJlc3VsdCBpbiBpbnZvY2F0aW9uIG9mIHByb3BlcnR5Q2hhbmdlIGhhbmRsZXJzIG9uIHRoZSBjb21wb25lbnQgZm9yIHRoZSBmaXJzdCB0aW1lXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHNldEluaXRQcm9wcygpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5pdFN0YXRlLmdldCgnbmFtZScpKSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldC5uYW1lID0gdGhpcy5pbml0U3RhdGUuZ2V0KCduYW1lJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pbml0U3RhdGUuZm9yRWFjaCgodiwgaykgPT4ge1xuICAgICAgICAgICAgLy8gbmFtZSBpcyBhbHJlYWR5IHNldCwgaWdub3JlIG5hbWVcbiAgICAgICAgICAgIC8vIGlmIHRoZSBrZXkgaXMgcGFydCBvZiB0byBiZSBpZ25vcmVkIGF0dHJpYnV0ZXMgbGlzdCBkbyBub3Qgc2V0IGl0IG9uIHRoZSBjb21wb25lbnQgaW5zdGFuY2VcbiAgICAgICAgICAgIGlmICgodGhpcy53aWRnZXRQcm9wcy5nZXQoaykgfHwgaXNTdHlsZShrKSkgJiYgayAhPT0gJ25hbWUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy53aWRnZXRba10gPSB2O1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5pbml0U3RhdGUuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5pbml0U3RhdGUgPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlLm5leHQobnVsbCk7XG4gICAgICAgIHRoaXMucmVhZHlTdGF0ZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdHJ1ZSwgaWYgYSBsaXN0ZW5lciByZWdpc3RlcmVkIGZvciB0aGUgZ2l2ZW4gZXZlbnQgb24gdGhpcyB3aWRnZXQgbWFya3VwLlxuICAgICAqIEBwYXJhbSBldmVudE5hbWVcbiAgICAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaGFzRXZlbnRDYWxsYmFjayhldmVudE5hbWUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRIYW5kbGVycy5oYXMoZXZlbnROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgd2lkZ2V0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICAvKipcbiAgICAgICAgICogQ2hlY2sgZm9yIHRoZSBub2RlcyBoYXZpbmcgZm9jdXMtdGFyZ2V0IGF0dHJpYnV0ZSBpbnNpZGUgdGhlIGVsZW1lbnRcbiAgICAgICAgICogSWYgZm91bmQsIGZvY3VzIHRoZSBmaXJzdCBub2RlIChlZywgZGF0ZSB3aWRnZXQpXG4gICAgICAgICAqIGVsc2UsIGZvY3VzIHRoZSBlbGVtZW50IChlZywgdGV4dCB3aWRnZXQpXG4gICAgICAgICAqL1xuICAgICAgICBsZXQgJHRhcmdldCA9IHRoaXMuJGVsZW1lbnRbMF0ucXVlcnlTZWxlY3RvcignW2ZvY3VzLXRhcmdldF0nKTtcbiAgICAgICAgaWYgKCEkdGFyZ2V0KSB7XG4gICAgICAgICAgICAkdGFyZ2V0ID0gdGhpcy4kZWxlbWVudFswXTtcbiAgICAgICAgfVxuICAgICAgICAkdGFyZ2V0LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLy8gRGVmaW5pbmcgdGhlIGV4ZWN1dGUgbWV0aG9kIG9uIEJhc2VDb21wb25lbnQuIElmIGRhdGFzZXQgaXMgYmluZGVkIHRvIHdpZGdldHMgb3VwdHV0IHRoZW4gZGF0YXNvdXJjZS5leGVjdXRlIHdpbGwgYmUgZGVmaW5lZFxuICAgIHByb3RlY3RlZCBleGVjdXRlKG9wZXJhdGlvbiwgb3B0aW9ucyk6IGFueSB7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgbXV0ZSgpIHtcbiAgICAgICAgdGhpcy5pc011dGVkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdW5tdXRlKCkge1xuICAgICAgICB0aGlzLmlzTXV0ZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZnRlciB0aGUgaG9zdCBwYWdlIGlzIGF0dGFjaGVkIGZyb20gY2FjaGUsIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uQXR0YWNoKCkge1xuICAgICAgICB0aGlzLmlzQXR0YWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEJlZm9yZSB0aGUgaG9zdCBwYWdlIGlzIGRldGFjaGVkIGZyb20gZG9tIGFuZCBzdG9yZWQgaW4gY2FjaGUsICB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZC5cbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRldGFjaCgpIHtcbiAgICAgICAgdGhpcy5pc0F0dGFjaGVkID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbmF0aXZlRWxlbWVudCB3aWxsIGJlIGF2YWlsYWJsZSBieSB0aGlzIHRpbWVcbiAgICAgKiBpZiB0aGUgZGVsYXlJbml0IGlzIGZhbHNlLCBwcm9wZXJ0aWVzIG1ldGEgd2lsbCBiZSBhdmFpbGFibGUgYnkgdGhpcyB0aW1lXG4gICAgICogSW52b2tlIHRoZSBzZXRJbml0UHJvcHMgaWYgdGhlIGRlbGF5SW5pdCBpcyBmYWxzZVxuICAgICAqL1xuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZGVsYXllZEluaXQpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW5pdFByb3BzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgZXZlbnRzXG4gICAgICovXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy50b0JlU2V0dXBFdmVudHNRdWV1ZS5sZW5ndGgpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZm4gb2YgdGhpcy50b0JlU2V0dXBFdmVudHNRdWV1ZSkge1xuICAgICAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50b0JlU2V0dXBFdmVudHNRdWV1ZS5sZW5ndGggPSAwO1xuICAgICAgICB0aGlzLmlzQXR0YWNoZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHt9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5pc0Rlc3Ryb3llZCA9IHRydWU7XG4gICAgICAgIHRoaXMud2lkZ2V0ID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbiAgICAgICAgdGhpcy5zdHlsZUNoYW5nZS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnByb3BlcnR5Q2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZGVzdHJveS5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmlzQXR0YWNoZWQgPSBmYWxzZTtcbiAgICB9XG59XG4iXX0=
610
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFVBQVUsRUFDVixVQUFVLEVBQ1YsUUFBUSxFQUNSLE1BQU0sRUFHTixnQkFBZ0IsRUFFaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUV2RCxPQUFPLEVBQUMsYUFBYSxFQUFFLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUU1QyxPQUFPLEVBQ0gsZUFBZSxFQUNmLFdBQVcsRUFDWCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFFBQVEsRUFDUixHQUFHLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBQ1YsV0FBVyxFQUNYLE9BQU8sRUFDUCxNQUFNLEVBQ04sYUFBYSxFQUNiLFdBQVcsRUFDZCxNQUFNLFVBQVUsQ0FBQztBQUVsQixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxPQUFPLEVBQWlCLE9BQU8sRUFBaUIsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDM0YsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0scUNBQXFDLENBQUM7QUFDdEUsT0FBTyxFQUFDLFlBQVksRUFBRSxVQUFVLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsa0JBQWtC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QVcsRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDdkI7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxFQUFFO1lBQ2xDLEtBQUssTUFBTSxFQUFFLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFO2dCQUN4QyxFQUFFLEVBQUUsQ0FBQzthQUNSO1NBQ0o7UUFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsa0JBQWtCLEtBQUksQ0FBQztJQUV2QixXQUFXO1FBQ1AsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OzBFQTlzQmlCLGFBQWEsd0NBMkhuQixZQUFZO21FQTNITixhQUFhLFdBQWIsYUFBYTt1RkFBYixhQUFhO2NBRGxDLFVBQVU7O3NCQTRIRixNQUFNO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgVmlld0NvbnRhaW5lclJlZixcbiAgICBPcHRpb25hbCxcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0V2ZW50TWFuYWdlcn0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5cbmltcG9ydCB7UmVwbGF5U3ViamVjdCwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gICAgJGludm9rZVdhdGNoZXJzLFxuICAgICRwYXJzZUV2ZW50LFxuICAgICR1bndhdGNoLFxuICAgICR3YXRjaCxcbiAgICBhZGRDbGFzcyxcbiAgICBBcHAsXG4gICAgaXNEZWZpbmVkLFxuICAgIGlzTW9iaWxlQXBwLFxuICAgIHJlbW92ZUF0dHIsXG4gICAgcmVtb3ZlQ2xhc3MsXG4gICAgc2V0QXR0cixcbiAgICBzZXRDU1MsXG4gICAgc2V0Q1NTRnJvbU9iaixcbiAgICBzd2l0Y2hDbGFzc1xufSBmcm9tICdAd20vY29yZSc7XG5cbmltcG9ydCB7Z2V0V2lkZ2V0UHJvcHNCeVR5cGV9IGZyb20gJy4uLy4uL2ZyYW1ld29yay93aWRnZXQtcHJvcHMnO1xuaW1wb3J0IHtpc1N0eWxlfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvc3R5bGVyJztcbmltcG9ydCB7cmVnaXN0ZXIsIHJlbmFtZVdpZGdldH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL3dpZGdldC1yZWdpc3RyeSc7XG5pbXBvcnQge0NoYW5nZUxpc3RlbmVyLCBDb250ZXh0LCBJV2lkZ2V0Q29uZmlnLCBXaWRnZXRDb25maWd9IGZyb20gJy4uLy4uL2ZyYW1ld29yay90eXBlcyc7XG5pbXBvcnQge3dpZGdldElkR2VuZXJhdG9yfSBmcm9tICcuLi8uLi9mcmFtZXdvcmsvd2lkZ2V0LWlkLWdlbmVyYXRvcic7XG5pbXBvcnQge0RJU1BMQVlfVFlQRSwgRVZFTlRTX01BUH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL2NvbnN0YW50cyc7XG5pbXBvcnQge1dpZGdldFByb3h5UHJvdmlkZXJ9IGZyb20gJy4uLy4uL2ZyYW1ld29yay93aWRnZXQtcHJveHktcHJvdmlkZXInO1xuaW1wb3J0IHtnZXRXYXRjaElkZW50aWZpZXJ9IGZyb20gJy4uLy4uLy4uL3V0aWxzL3dpZGdldC11dGlscyc7XG5cbmRlY2xhcmUgY29uc3QgJCwgXztcblxuLy8gR2V0cyBsaXN0IG9mIGNsYXNzZXMgdG8gYWRkIGFuZCByZW1vdmUgYW5kIGFwcGxpZXMgb24gdGhlICRlbFxuY29uc3QgdXBkYXRlQ2xhc3NlcyA9ICh0b0FkZCwgdG9SZW1vdmUsIGVsKSA9PiB7XG4gICAgaWYgKHRvUmVtb3ZlICYmIHRvUmVtb3ZlLmxlbmd0aCkge1xuICAgICAgICByZW1vdmVDbGFzcyhlbCwgXy5qb2luKHRvUmVtb3ZlLCAnICcpKTtcbiAgICB9XG4gICAgaWYgKHRvQWRkICYmIHRvQWRkLmxlbmd0aCkge1xuICAgICAgICBhZGRDbGFzcyhlbCwgXy5qb2luKHRvQWRkLCAnICcpKTtcbiAgICB9XG59O1xuXG4vLyBUbyBhZGQgYW5kIHJlbW92ZSBzdHlsZXMgb24gdGhlICRlbFxuY29uc3QgdXBkYXRlU3R5bGVzID0gKG52LCBvdiwgZWwpID0+IHtcbiAgICBpZiAob3YgJiYgXy5pc09iamVjdChvdikpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKG92IHx8IHt9KTtcbiAgICAgICAga2V5cy5mb3JFYWNoKGZ1bmN0aW9uKGtleSkge1xuICAgICAgICAgICAgc2V0Q1NTKGVsLCBrZXksICcnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChudiAmJiBfLmlzT2JqZWN0KG52KSkge1xuICAgICAgICBzZXRDU1NGcm9tT2JqKGVsLCBudik7XG4gICAgfVxuXG59O1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0IHtcblxuICAgIC8qKlxuICAgICAqIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgd2lkZ2V0XG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHdpZGdldElkOiBhbnk7XG5cbiAgICBwdWJsaWMgaXNEZXN0cm95ZWQ6IGJvb2xlYW47XG5cbiAgICBwdWJsaWMgaXNBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogalF1ZXJ5IG5hdGl2ZUVsZW1lbnQgcmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgcm9vdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgJGVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiAkKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRE9NIG5vZGUgcmVmZXJlbmNlIG9mIHRoZSBjb21wb25lbnQgcm9vdFxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBuYXRpdmVFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKlxuICAgICAqIFR5cGUgb2YgdGhlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSB3aWRnZXRUeXBlOiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBNb3N0IG9mIHRoZSBjYXNlcyBpdCBpcyBzYW1lIGFzIHdpZGdldFR5cGVcbiAgICAgKiBmb3Igc3BlY2lmaWMgd2lkZ2V0cyBsaWtlIGNoYXJ0cyB3aWRnZXRUeXBlIGNhbiBiZSB3bS1jaGFydCB3aGVyZSBhcyB0aGUgc3VidHlwZSBjYW4gYmUgd20tYmFyLWNoYXJ0XG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHdpZGdldFN1YlR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFByb3h5IGZvciB0aGUgY29tcG9uZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCB3aWRnZXQ6IGFueTtcblxuICAgIC8qKlxuICAgICAqIFZpZXcgcGFyZW50IGNvbXBvbmVudFxuICAgICAqIGVnLCBQYWdlLCBQYXJ0aWFsLCBQcmVmYWJcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdmlld1BhcmVudDogYW55O1xuXG4gICAgLyoqXG4gICAgICogRXZlbnRNYW5nZXIgdG8gYWRkL3JlbW92ZSBldmVudHNcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZXZlbnRNYW5hZ2VyOiBFdmVudE1hbmFnZXI7XG5cbiAgICAvKipcbiAgICAgKiBBcHAgTG9jYWxlXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGFwcExvY2FsZTogYW55O1xuXG4gICAgLyoqXG4gICAgICogU3R5bGUgY2hhbmdlIHN1YmplY3QgYW5kIG9ic2VydmFibGVcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0eWxlQ2hhbmdlID0gbmV3IFJlcGxheVN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIFByb3BlcnR5IGNoYW5nZSBzdWJqZWN0IGFuZCBvYnNlcnZhYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9wZXJ0eUNoYW5nZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBPbiBSZWFkeSBTdGF0ZSBjaGFuZ2Ugc3ViamVjdCBhbmQgb2JzZXJ2YWJsZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlTdGF0ZSA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICAvKipcbiAgICAgKiBDb21wb25lbnQgZGVzdHJveSBzdWJqZWN0IGFuZCBvYnNlcnZhYmxlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8qKlxuICAgICAqIE1hcCBvZiBldmVudCBoYW5kbGVyIGNhbGxiYWNrc1xuICAgICAqL1xuICAgIHByaXZhdGUgZXZlbnRIYW5kbGVycyA9IG5ldyBNYXA8c3RyaW5nLCB7Y2FsbGJhY2s6IEZ1bmN0aW9uLCBsb2NhbHM6IGFueX0+KCk7XG5cbiAgICAvKipcbiAgICAgKiBjb250ZXh0IG9mIHRoZSB3aWRnZXRcbiAgICAgKiB3aGVuIHRoZSB3aWRnZXQgaXMgcHJlc2V0IGluc2lkZSBhIHJlcGVhdGVyIHRoaXMgY29udGV4dCB3aWxsIGhhdmUgdGhlIHJlcGVhdGVyIHJlbGF0ZWQgcHJvcGVydGllc1xuICAgICAqL1xuICAgIHB1YmxpYyBjb250ZXh0OiBhbnk7XG5cbiAgICAvKipcbiAgICAgKiBJbml0aWFsIHN0YXRlIG9mIHRoZSB3aWRnZXQuXG4gICAgICogV2lsbCBiZSB1bmRlZmluZWQgb25jZSB0aGUgaW5pdGlhbCBwcm9wZXJ0aWVzIGFyZSBzZXQgb24gdG8gdGhlIGNvbXBvbmVudFxuICAgICAqL1xuICAgIHByaXZhdGUgaW5pdFN0YXRlOiBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgLyoqXG4gICAgICogSW50ZXJuYWwgZmxhZyB0byBkZXRlcm1pbmUgd2hldGhlciB0byB3YWl0IGZvciB0aGUgd2lkZ2V0IGluaXRpYWxpemF0aW9uIG9yIG5vdFxuICAgICAqIElmIHRoZSBpbml0UHJvbWlzZSBpcyBwcm92aWRlZCBpbiB0aGUgY29uc3RydWN0aW9uIHdhaXQgdGlsbCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxuICAgICAqIElmIHRoZSBpbml0UHJvbWlzZSBpcyBub3QgcHJvdmlkZWQgcHJvY2VlZCB3aXRoIHRoZSBpbml0aWFsaXphdGlvbiwgd2hpY2ggaXMgdGhlIGRlZmF1bHQgYmVoYXZpb3IuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZWxheWVkSW5pdDogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIERpc3BsYXkgdHlwZSBvZiB0aGUgY29tcG9uZW50LiBlZywgYmxvY2soRGVmYXVsdCksIGlubGluZS1ibG9jaywgaW5saW5lIGV0Y1xuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzcGxheVR5cGU6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEhvbGRzIHRoZSBldmVudCByZWdpc3RyYXRpb24gZnVuY3Rpb25zLlxuICAgICAqIHRoZXNlIGZ1bmN0aW9ucyBuZWVkcyB0byBiZSBleGVjdXRlZCBhZnRlciBvblZpZXdJbml0XG4gICAgICovXG4gICAgcHJpdmF0ZSB0b0JlU2V0dXBFdmVudHNRdWV1ZTogQXJyYXk8RnVuY3Rpb24+ID0gW107XG5cbiAgICBwdWJsaWMgX19jbG9uZWFibGVfXyA9IGZhbHNlO1xuXG4gICAgcHVibGljIHdpZGdldFByb3BzOiBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgcHJpdmF0ZSAkYXR0cnMgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuXG4gICAgcHJpdmF0ZSBpc011dGVkID0gZmFsc2U7XG5cbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZjtcbiAgICBwdWJsaWMgdmlld1BhcmVudEFwcDogQXBwO1xuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcm90ZWN0ZWQgaW5qOiBJbmplY3RvcixcbiAgICAgICAgQEluamVjdChXaWRnZXRDb25maWcpIGNvbmZpZzogSVdpZGdldENvbmZpZyxcbiAgICAgICAgaW5pdFByb21pc2U/OiBQcm9taXNlPGFueT4gLy8gUHJvbWlzZSBvbiB3aGljaCB0aGUgaW5pdGlhbGl6YXRpb24gaGFzIHRvIHdhaXRcbiAgICApIHtcbiAgICAgICAgY29uc3QgZWxlbWVudFJlZiA9IGluai5nZXQoRWxlbWVudFJlZik7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgLy9tYWtpbmcgdGhlIGNvZGUgY29tcGF0aWJsZSBpbiBib3RoIHRoZSBKSVQgYW5kIEFPVCBtb2Rlc1xuICAgICAgICB0aGlzLnZpZXdQYXJlbnRBcHAgPSBpbmogPyBpbmouZ2V0KEFwcCkgOiBpbmplY3QoQXBwKTtcbiAgICAgICAgdGhpcy53aWRnZXRUeXBlID0gY29uZmlnLndpZGdldFR5cGU7XG4gICAgICAgIHRoaXMud2lkZ2V0U3ViVHlwZSA9IGNvbmZpZy53aWRnZXRTdWJUeXBlIHx8IGNvbmZpZy53aWRnZXRUeXBlO1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXJSZWYgPSBpbmouZ2V0KFZpZXdDb250YWluZXJSZWYpO1xuICAgICAgICAvLyB0aGlzLnZpZXdQYXJlbnQgPSAoaW5qIGFzIGFueSkudmlldy5jb21wb25lbnQ7XG4gICAgICAgIC8vIHRoaXMudmlld1BhcmVudCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5wYXJlbnRJbmplY3Rvci5fbFZpZXdbOF07XG4gICAgICAgIC8vIHRoaXMudmlld1BhcmVudCA9IF92aWV3UGFyZW50IHx8ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5wYXJlbnRJbmplY3Rvci5fbFZpZXdbOF07XG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi9tYWluL3BhY2thZ2VzL2NvcmUvc3JjL3JlbmRlcjMvaW50ZXJmYWNlcy92aWV3LnRzXG5cbiAgICAgICAgbGV0IGxWaWV3ID0gKHRoaXMuaW5qIGFzIGFueSkuX2xWaWV3O1xuICAgICAgICBjb25zdCBnZXRQYXJlbnRsVmlldyA9IChsVmlldzogYW55KSA9PiB7XG4gICAgICAgICAgICAvL2NvbnNvbGUubG9nKFwiLS0tKioqKioqKioqKioqKi0td2lkZ2V0VHlwZS0tKioqKioqKioqKioqKi0tLVwiLCB0aGlzLndpZGdldFR5cGUpO1xuICAgICAgICAgICAgbGV0IHBhcmVudGxWaWV3ID0gbFZpZXdbM107XG4gICAgICAgICAgICBpZih0eXBlb2YgbFZpZXdbMV0gPT09IFwiYm9vbGVhblwiKSB7IC8vIHRoaXMgaXMgbENvbnRhaW5lciwgbm90IGxWaWV3IGlmIHRoaXMgaXMgYm9vbGVhblxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRQYXJlbnRsVmlldyhwYXJlbnRsVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY29tcG9uZW50VHlwZSA9IGxWaWV3WzFdW1widHlwZVwiXTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudFR5cGUgPT09IDAgfHwgY29tcG9uZW50VHlwZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsVmlld1s4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIHdoZW4gY29tcG9uZW50VHlwZSA9PSAyLCB0aGVuIGZldGNoIHBhcmVudCBhZ2FpblxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRQYXJlbnRsVmlldyhwYXJlbnRsVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aWV3UGFyZW50ID0gZ2V0UGFyZW50bFZpZXcobFZpZXcpIHx8IHRoaXMudmlld1BhcmVudEFwcDtcbiAgICAgICAgLy9jb25zb2xlLmxvZyhcIi0tLSoqKioqKioqKioqKiotLWNvbnRleHQtLSoqKioqKioqKioqKiotLS1cIiwgbFZpZXdbOF0pO1xuICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy5pbmogYXMgYW55KS5fbFZpZXdbOF07XG5cbiAgICAgICAgdGhpcy5kaXNwbGF5VHlwZSA9IGNvbmZpZy5kaXNwbGF5VHlwZSB8fCBESVNQTEFZX1RZUEUuQkxPQ0s7XG4gICAgICAgIC8vIHRoaXMuY29udGV4dCA9IChpbmogYXMgYW55KS52aWV3LmNvbnRleHQ7XG4gICAgICAgIC8vIHRoaXMuY29udGV4dCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5faG9zdExWaWV3LmRlYnVnLmNvbnRleHQ7XG4gICAgICAgIC8vIGxldCBoYXNJbXBsaWNpdENvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlldy5maW5kKHQgPT4gdCAmJiAhIXQuJGltcGxpY2l0KTtcbiAgICAgICAgLy8gd2hlbiAkaW1wbGljaXQgaXMgbm90IGF2YWlsYWJsZSwgdGhpcyBvYmplY3QgY29udGFpbnMgc29tZSBuZ0ZvciBjb250ZXh0IG9yIGxpc3RpdGVtIGNvbnRleHQgb2YgdGhlIHdpZGdldCB0aGVuXG4gICAgICAgIC8vIHdlIHVzZSB0aGUgZGlyZWN0IHBhcmVudCBmb3IgZXhhbXBsZTogbmF2IGNvbXBvbmVudCBpcyB0aGUgcGFyZW50IGZvciBhbmNob3IgPT4gYW5jaG9yIGdldHMgdmlld1BhcmVudCBhcyBOYXZcbiAgICAgICAgLy8gSW4gb3RoZXIgY2FzZSwgd2hlcmUgd2UgaGF2ZSBpbXBsaWNpdENvbnRleHQgdGhlcmUgd2UgY2FuIG1ha2UgdXNlIG9mIHBhZ2UvYXBwIGxldmVsIGNvbnRleHQgaGVuY2Ugdmlld1BhcmVudC52aWV3UGFyZW50IHRvIGdldCBwYWdlIGxldmVsIGNvbnRleHRcbiAgICAgICAgLyppZiAoaGFzSW1wbGljaXRDb250ZXh0ICYmIHRoaXMudmlld1BhcmVudC52aWV3UGFyZW50KSB7XG4gICAgICAgICAgICBpZiAodGhpcy52aWV3UGFyZW50LndpZGdldFR5cGUgIT09ICd3bS1jYXJkJyAmJiB0aGlzLnZpZXdQYXJlbnQud2lkZ2V0VHlwZSAhPT0gJ3dtLWlmcmFtZWRpYWxvZydcbiAgICAgICAgICAgICAgICAmJiB0aGlzLnZpZXdQYXJlbnQud2lkZ2V0VHlwZSAhPT0gJ3dtLXBhcnRpYWxkaWFsb2cnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50ID0gdGhpcy52aWV3UGFyZW50LnZpZXdQYXJlbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFoYXNJbXBsaWNpdENvbnRleHQgfHwgKCF0aGlzLnZpZXdQYXJlbnQud2lkZ2V0VHlwZSkpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5faG9zdExWaWV3LmZpbmQodCA9PiB0ICYmICEhdC4kaW1wbGljaXQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gKHRoaXMudmlld0NvbnRhaW5lclJlZiBhcyBhbnkpLnBhcmVudEluamVjdG9yLl9sVmlld1s4XTtcbiAgICAgICAgfSovXG5cbiAgICAgICAgLyppZihfdmlld1BhcmVudCAmJiAhaGFzSW1wbGljaXRDb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkuX2hvc3RMVmlld1s4XTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCA9IGhhc0ltcGxpY2l0Q29udGV4dDtcbiAgICAgICAgfSovXG4gICAgICAgIC8vIGlmIChbJ3dtLWxpc3QnLCAnd20tbmF2J10uaW5jbHVkZXModGhpcy52aWV3UGFyZW50LndpZGdldFR5cGUpIHx8IFsnd20tY2Fyb3VzZWwtdGVtcGxhdGUnLCAnd20tY2FyZCddLmluY2x1ZGVzKHRoaXMud2lkZ2V0VHlwZSkpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuY29udGV4dCA9ICh0aGlzLnZpZXdDb250YWluZXJSZWYgYXMgYW55KS5faG9zdExWaWV3LmRlYnVnLmNvbnRleHQ7XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgICB0aGlzLmNvbnRleHQgPSAodGhpcy52aWV3Q29udGFpbmVyUmVmIGFzIGFueSkucGFyZW50SW5qZWN0b3IuX2xWaWV3WzhdO1xuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMud2lkZ2V0ID0gdGhpcy5jcmVhdGVQcm94eSgpO1xuICAgICAgICB0aGlzLmV2ZW50TWFuYWdlciA9IGluai5nZXQoRXZlbnRNYW5hZ2VyKTtcbiAgICAgICAgKHRoaXMubmF0aXZlRWxlbWVudCBhcyBhbnkpLndpZGdldCA9IHRoaXMud2lkZ2V0O1xuXG4gICAgICAgIHRoaXMuYXBwTG9jYWxlID0gaW5qLmdldChBcHApLmFwcExvY2FsZSB8fCB7fTtcblxuICAgICAgICB0aGlzLmluaXRDb250ZXh0KCk7XG5cbiAgICAgICAgaWYgKGNvbmZpZy5ob3N0Q2xhc3MpIHtcbiAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgY29uZmlnLmhvc3RDbGFzcyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLndpZGdldElkID0gdGhpcy5nZW5lcmF0ZVdpZGdldElkKCk7XG4gICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnd2lkZ2V0LWlkJywgdGhpcy53aWRnZXRJZCwgdHJ1ZSk7XG5cbiAgICAgICAgLy8gcmVnaXN0ZXIgZGVmYXVsdCBwcm9wZXJ0eSBjaGFuZ2UgaGFuZGxlciBhbmQgc3R5bGUgY2hhbmdlIGhhbmRsZXJcbiAgICAgICAgdGhpcy5yZWdpc3RlclN0eWxlQ2hhbmdlTGlzdGVuZXIodGhpcy5vblN0eWxlQ2hhbmdlLCB0aGlzKTtcbiAgICAgICAgdGhpcy5yZWdpc3RlclByb3BlcnR5Q2hhbmdlTGlzdGVuZXIodGhpcy5vblByb3BlcnR5Q2hhbmdlLCB0aGlzKTtcblxuICAgICAgICAvLyBpZiB0aGUgaW5pdFByb21pc2UgaXMgcHJvdmlkZWQsIHdhaXQgdGlsbCB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZCB0byBwcm9jZWVkIHdpdGggdGhlIHdpZGdldCBpbml0aWFsaXphdGlvblxuICAgICAgICBpZiAoIWluaXRQcm9taXNlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRXaWRnZXQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGVsYXllZEluaXQgPSB0cnVlO1xuICAgICAgICAgICAgaW5pdFByb21pc2UudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0V2lkZ2V0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRJbml0UHJvcHMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldE5hdGl2ZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRXaWRnZXRUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFdpZGdldFN1YlR5cGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud2lkZ2V0U3ViVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0V2lkZ2V0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLndpZGdldDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0UHJvcGVydHkocHJvcE5hbWUsIHByb3BWYWx1ZSkge1xuICAgICAgICB0aGlzLndpZGdldFtwcm9wTmFtZV0gPSBwcm9wVmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldFZpZXdQYXJlbnQoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld1BhcmVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgbm90aWZ5U3R5bGVDaGFuZ2Uoa2V5OiBzdHJpbmcsIG52OiBhbnksIG92OiBhbnkpIHtcbiAgICAgICAgdGhpcy5zdHlsZUNoYW5nZS5uZXh0KHtrZXksIG52LCBvdn0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBub3RpZnlQcm9wZXJ0eUNoYW5nZShrZXk6IHN0cmluZywgbnY6IGFueSwgb3Y6IGFueSkge1xuICAgICAgICB0aGlzLnByb3BlcnR5Q2hhbmdlLm5leHQoe2tleSwgbnYsIG92fSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyU3R5bGVDaGFuZ2VMaXN0ZW5lcihmbjogQ2hhbmdlTGlzdGVuZXIsIGN0eD86IGFueSkge1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgICBmbiA9IGZuLmJpbmQoY3R4KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0eWxlQ2hhbmdlLnN1YnNjcmliZSgoe2tleSwgbnYsIG92fSkgPT4gZm4oa2V5LCBudiwgb3YpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJSZWFkeVN0YXRlTGlzdGVuZXIoZm46IEZ1bmN0aW9uLCBjdHg/OiBhbnkpIHtcbiAgICAgICAgaWYgKGN0eCkge1xuICAgICAgICAgICAgZm4gPSBmbi5iaW5kKGN0eCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMucmVhZHlTdGF0ZS5pc1N0b3BwZWQpIHtcbiAgICAgICAgICAgIGZuKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlLnN1YnNjcmliZSgoKSA9PiBmbigpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVnaXN0ZXJQcm9wZXJ0eUNoYW5nZUxpc3RlbmVyKGZuOiBDaGFuZ2VMaXN0ZW5lciwgY3R4PzogYW55KSB7XG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICAgIGZuID0gZm4uYmluZChjdHgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcGVydHlDaGFuZ2Uuc3Vic2NyaWJlKCh7a2V5LCBudiwgb3Z9KSA9PiBmbihrZXksIG52LCBvdikpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcihmbjogRnVuY3Rpb24sIGN0eD86IGFueSkge1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgICBmbiA9IGZuLmJpbmQoY3R4KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRlc3Ryb3kuc3Vic2NyaWJlKCgpID0+IHt9LCAoKSA9PiB7fSwgKCkgPT4gZm4oKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldERpc3BsYXlUeXBlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc3BsYXlUeXBlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjcmVhdGVQcm94eSgpOiBhbnkge1xuICAgICAgICByZXR1cm4gV2lkZ2V0UHJveHlQcm92aWRlci5jcmVhdGUodGhpcywgdGhpcy53aWRnZXRTdWJUeXBlLCBnZXRXaWRnZXRQcm9wc0J5VHlwZSh0aGlzLndpZGdldFN1YlR5cGUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaW5pdENvbnRleHQoKSB7XG4gICAgICAgIC8vIGNvbnN0IGNvbnRleHQgPSAodGhpcy5pbmogYXMgYW55KS52aWV3LmNvbnRleHQ7XG4gICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQgfHwge307XG5cbiAgICAgICAgY29uc3QgcGFyZW50Q29udGV4dHMgPSB0aGlzLmluai5nZXQoQ29udGV4dCwge30pO1xuXG4gICAgICAgIC8vIGFzc2lnbiB0aGUgY29udGV4dCBwcm9wZXJ0eSBhY2NvcmRpbmdseVxuICAgICAgICAvLyBpZiAodGhpcy52aWV3UGFyZW50ICE9PSBjb250ZXh0KSB7XG4gICAgICAgIC8vICAgICB0aGlzLmNvbnRleHQgPSBjb250ZXh0O1xuICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAvLyAgICAgdGhpcy5jb250ZXh0ID0ge307XG4gICAgICAgIC8vIH1cblxuICAgICAgICBpZiAocGFyZW50Q29udGV4dHMpIHtcbiAgICAgICAgICAgIGxldCBwYXJlbnRDb250ZXh0T2JqID0ge307XG4gICAgICAgICAgICBpZiAoXy5pc0FycmF5KHBhcmVudENvbnRleHRzKSkge1xuICAgICAgICAgICAgICAgIF8uZm9yRWFjaChwYXJlbnRDb250ZXh0cywgKGNvbnRleHRPYmopID0+IHtcbiAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihwYXJlbnRDb250ZXh0T2JqLCBjb250ZXh0T2JqKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcGFyZW50Q29udGV4dE9iaiA9IHBhcmVudENvbnRleHRzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jb250ZXh0ID0gT2JqZWN0LmFzc2lnbih7fSwgcGFyZW50Q29udGV4dE9iaiwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNldCB0aGUgdmFsdWUgb24gdGhlIHByb3h5IG9iamVjdCBpZSwgd2lkZ2V0XG4gICAgICogc2V0dGluZyB0aGUgcHJvcGVydHkgb24gdGhlIHByb3h5IHdpbGwgaW52b2tlIHRoZSBjaGFuZ2UgbGlzdGVuZXJzXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgICAqIEBwYXJhbSB2YWx1ZVxuICAgICAqL1xuICAgIHB1YmxpYyBzZXRXaWRnZXRQcm9wZXJ0eShrZXk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgICAgICB0aGlzLndpZGdldFtrZXldID0gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEF0dHIoYXR0ck5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLiRhdHRycy5nZXQoYXR0ck5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHJldHVybnMgYXBwIGluc3RhbmNlXG4gICAgICogQHJldHVybnMge0FwcH1cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0QXBwSW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluai5nZXQoQXBwKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZW5lcmF0ZXMgYSB1bmlxdWUgaWRcbiAgICAgKiBEZWZhdWx0IHBhdHRlcm4gaXMgYHdpZGdldC1pZC0ke2lkfWBcbiAgICAgKiBDb21wb25lbnRzIGNhbiBvdmVycmlkZSB0aGlzIG1ldGhvZCB0byBnZW5lcmF0ZSBhIGRpZmZlcmVudCBpZCBlZywgYmFyLWNoYXJ0LTFcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2VuZXJhdGVXaWRnZXRJZCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gd2lkZ2V0SWRHZW5lcmF0b3IubmV4dFVpZCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgdGhlIGNvbW1vbiBmdW5jdGlvbmFsaXR5IGFjcm9zcyB0aGUgY29tcG9uZW50c1xuICAgICAqIGVnLFxuICAgICAqICAxLiB2YWx1ZSBvZiB0aGUgY2xhc3MgcHJvcGVydHkgd2lsbCBiZSBhcHBsaWVkIG9uIHRoZSBob3N0IGVsZW1lbnRcbiAgICAgKiAgMi4gYmFzZWQgb24gdGhlIHZhbHVlIG9mIHNob3cgcHJvcGVydHkgY29tcG9uZW50IGlzIHNob3duL2hpZGRlblxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleVxuICAgICAqIEBwYXJhbSBudlxuICAgICAqIEBwYXJhbSBvdlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAnc2hvdycpIHtcbiAgICAgICAgICAgIHRoaXMubmF0aXZlRWxlbWVudC5oaWRkZW4gPSAhbnY7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaGludCcpIHtcbiAgICAgICAgICAgIGlmICghaXNNb2JpbGVBcHAoKSkge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAndGl0bGUnLCBudik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnY2xhc3MnKSB7XG4gICAgICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIG52LCBvdik7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gbnYubWF0Y2goLyhcXFd8XikoaChbMC02XSkpKD89XFxzfCQpLyk7XG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdyb2xlJywgJ2hlYWRpbmcnKTtcbiAgICAgICAgICAgICAgICBzZXRBdHRyKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FyaWEtbGV2ZWwnLCByZXN1bHRbM10pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ25hbWUnIHx8IGtleSA9PT0gJ3RhYmluZGV4Jykge1xuICAgICAgICAgICAgc2V0QXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsIGtleSwgbnYpO1xuICAgICAgICAgICAgaWYgKGtleSA9PT0gJ25hbWUnICYmIG52KSB7XG4gICAgICAgICAgICAgICAgcmVuYW1lV2lkZ2V0KHRoaXMudmlld1BhcmVudCwgdGhpcy53aWRnZXQsIG52LCBvdik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnY29uZGl0aW9uYWxjbGFzcycpIHtcbiAgICAgICAgICAgIC8vIHVwZGF0ZSBjbGFzc2VzIGlmIG9sZCBhbmQgbnYgdmFsdWUgYXJlIGRpZmZlcmVudFxuICAgICAgICAgICAgdXBkYXRlQ2xhc3Nlcyhudi50b0FkZCwgbnYudG9SZW1vdmUsIHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSAgaWYgKGtleSA9PT0gJ2F1dG9wbGF5Jykge1xuICAgICAgICAgICAgY29uc3QgdGFnTmFtZSA9IHRoaXMud2lkZ2V0VHlwZSA9PT0gJ3dtLWF1ZGlvJyA/ICdhdWRpbycgOiAndmlkZW8nO1xuICAgICAgICAgICAgLy8gVHJpZ2dlciBtZWRpYShhdWRpby92aWRlbykgZWxlbWVudCBsb2FkIG1ldGhvZCBhZnRlciBjaGFuZ2luZyBhdXRvcGxheSBwcm9wZXJ0eVxuICAgICAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IodGFnTmFtZSkubG9hZCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2NvbmRpdGlvbmFsc3R5bGUnKSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgc3R5bGVzIGlmIG9sZCBhbmQgbnYgdmFsdWUgYXJlIGRpZmZlcmVudFxuICAgICAgICAgICAgdXBkYXRlU3R5bGVzKG52LCBvdiwgdGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT09ICdhbmltYXRpb24nKSB7XG4gICAgICAgICAgICAvLyB1cGRhdGUgc3R5bGVzIGlmIG9sZCBhbmQgbnYgdmFsdWUgYXJlIGRpZmZlcmVudFxuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBcImFuaW1hdGVkIFwiICsgbnYpO1xuICAgICAgICB9ICBlbHNlIGlmIChrZXkgPT09ICdkaXNhYmxlZCcpIHtcbiAgICAgICAgICAgIC8vIFdNUy0xOTMyMTogSW4gSUUsIHdpZGdldCBpcyBpbiBkaXNhYmxlZCBzdGF0ZSB3aGVuIGRpc2FibGVkPVwiZmFsc2VcIiBhdHRyaWJ1dGUgaXMgcHJlc2VudFxuICAgICAgICAgICAgKG52ID09PSB0cnVlKSA/IHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCAnZGlzYWJsZWQnLCAndHJ1ZScsIHRydWUpIDogcmVtb3ZlQXR0cih0aGlzLm5hdGl2ZUVsZW1lbnQsICdkaXNhYmxlZCcsIHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVmYXVsdCBzdHlsZSBjaGFuZ2UgaGFuZGxlclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblN0eWxlQ2hhbmdlKGs6IHN0cmluZywgbnY6IGFueSwgb3Y/OiBhbnkpIHt9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgd2lkZ2V0IHdpdGggdGhlIHdpZGdldFJlZ2lzdHJ5XG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlZ2lzdGVyV2lkZ2V0KHdpZGdldE5hbWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKHJlZ2lzdGVyKHRoaXMud2lkZ2V0LCB0aGlzLnZpZXdQYXJlbnQsIHRoaXMud2lkZ2V0SWQsIHdpZGdldE5hbWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBvdmVycmlkZSB0aGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0TWFwcGVkRXZlbnROYW1lKGV2ZW50TmFtZSkge1xuICAgICAgICByZXR1cm4gRVZFTlRTX01BUC5nZXQoZXZlbnROYW1lKSB8fCBldmVudE5hbWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogaW52b2tlIHRoZSBldmVudCBoYW5kbGVyXG4gICAgICogQ29tcG9uZW50cyBjYW4gb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gZXhlY3V0ZSBjdXN0b20gbG9naWMgYmVmb3JlIGludm9raW5nIHRoZSB1c2VyIGNhbGxiYWNrXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGhhbmRsZUV2ZW50KG5vZGU6IEhUTUxFbGVtZW50LCBldmVudE5hbWU6IHN0cmluZywgZXZlbnRDYWxsYmFjazogRnVuY3Rpb24sIGxvY2FsczogYW55LCBtZXRhPzogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZXZlbnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoXG4gICAgICAgICAgICBub2RlLFxuICAgICAgICAgICAgZXZlbnROYW1lLFxuICAgICAgICAgICAgZSA9PiB7XG4gICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGU7XG4gICAgICAgICAgICAgICAgaWYgKG1ldGEgPT09ICdkZWxheWVkJykge1xuICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gZXZlbnRDYWxsYmFjaygpLCAxNTApO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudENhbGxiYWNrKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHBhcnNlIHRoZSBldmVudCBleHByZXNzaW9uIGFuZCBzYXZlIHJlZmVyZW5jZSB0byB0aGUgZnVuY3Rpb24gaW5zaWRlIGV2ZW50SGFuZGxlcnMgbWFwXG4gICAgICogSWYgdGhlIGNvbXBvbmVudCBwcm92aWRlcyBhIG92ZXJyaWRlIGZvciBhbiBldmVudCB0aHJvdWdoIEBFdmVudCBkZWNvcmF0b3IgaW52b2tlIHRoYXRcbiAgICAgKiBlbHNlIGludm9rZSB0aGUgcmVzb2x2ZWQgZnVuY3Rpb25cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gZXhwclxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwcm9jZXNzRXZlbnRBdHRyKGV2ZW50TmFtZTogc3RyaW5nLCBleHByOiBzdHJpbmcsIG1ldGE/OiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgZm4gPSAkcGFyc2VFdmVudChleHByKTtcbiAgICAgICAgY29uc3QgbG9jYWxzID0gdGhpcy5jb250ZXh0O1xuICAgICAgICBsb2NhbHMud2lkZ2V0ID0gdGhpcy53aWRnZXQ7XG4gICAgICAgIGNvbnN0IGJvdW5kRm4gPSBmbi5iaW5kKHVuZGVmaW5lZCwgdGhpcy52aWV3UGFyZW50LCBsb2NhbHMpO1xuXG4gICAgICAgIGNvbnN0IGV2ZW50Q2FsbGJhY2sgPSAoKSA9PiB7XG4gICAgICAgICAgICBsZXQgYm91bmRGblZhbDtcbiAgICAgICAgICAgICRpbnZva2VXYXRjaGVycyh0cnVlKTtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgbG9jYWxzLiRldmVudCA9IGxvY2Fscy4kZXZlbnQgfHwgbmV3IHdpbmRvdy5DdXN0b21FdmVudChldmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIC8vIElmIHRoZSBldmVudCBpcyBib3VuZCBkaXJlY3RseSB0byB0aGUgdmFyaWFibGUgdGhlbiB3ZSBuZWVkIHRvIGludGVybmFsbHkgaGFuZGxlXG4gICAgICAgICAgICAgICAgLy8gdGhlIHByb21pc2UgcmV0dXJuZWQgYnkgdGhlIHZhcmlhYmxlIGNhbGwuXG4gICAgICAgICAgICAgICAgYm91bmRGblZhbCA9IGJvdW5kRm4oKTtcbiAgICAgICAgICAgICAgICBpZiAoYm91bmRGblZhbCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgYm91bmRGblZhbC50aGVuKCByZXNwb25zZSA9PiByZXNwb25zZSwgZXJyID0+IGVycik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJvdW5kRm5WYWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ldmVudEhhbmRsZXJzLnNldCh0aGlzLmdldE1hcHBlZEV2ZW50TmFtZShldmVudE5hbWUpLCB7Y2FsbGJhY2s6IGV2ZW50Q2FsbGJhY2ssIGxvY2Fsc30pO1xuICAgICAgICAvLyBwcmVwZW5kIGV2ZW50TmFtZSB3aXRoIG9uIGFuZCBjb252ZXJ0IGl0IHRvIGNhbWVsY2FzZS5cbiAgICAgICAgLy8gZWcsIFwiY2xpY2tcIiAtLS0+IG9uQ2xpY2tcbiAgICAgICAgY29uc3Qgb25FdmVudE5hbWUgPSAgXy5jYW1lbENhc2UoYG9uLSR7ZXZlbnROYW1lfWApO1xuICAgICAgICAvLyBzYXZlIHRoZSBldmVudENhbGxiYWNrIGluIHdpZGdldFNjb3BlLlxuICAgICAgICB0aGlzW29uRXZlbnROYW1lXSA9IGV2ZW50Q2FsbGJhY2s7XG5cbiAgICAgICAgLy8gZXZlbnRzIG5lZWRzIHRvIGJlIHNldHVwIGFmdGVyIHZpZXdJbml0XG4gICAgICAgIHRoaXMudG9CZVNldHVwRXZlbnRzUXVldWUucHVzaCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZUV2ZW50KHRoaXMubmF0aXZlRWxlbWVudCwgdGhpcy5nZXRNYXBwZWRFdmVudE5hbWUoZXZlbnROYW1lKSwgZXZlbnRDYWxsYmFjaywgbG9jYWxzLCBtZXRhKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUHJvY2VzcyB0aGUgYm91bmQgcHJvcGVydHlcbiAgICAgKiBSZWdpc3RlciBhIHdhdGNoIG9uIHRoZSBib3VuZCBleHByZXNzaW9uXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHByb2Nlc3NCaW5kQXR0cihwcm9wTmFtZTogc3RyaW5nLCBleHByOiBzdHJpbmcpIHtcblxuICAgICAgICB0aGlzLmluaXRTdGF0ZS5kZWxldGUocHJvcE5hbWUpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoXG4gICAgICAgICAgICAkd2F0Y2goXG4gICAgICAgICAgICAgICAgZXhwcixcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQsXG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgICAgIG52ID0+IHRoaXMud2lkZ2V0W3Byb3BOYW1lXSA9IG52LFxuICAgICAgICAgICAgICAgIGdldFdhdGNoSWRlbnRpZmllcih0aGlzLndpZGdldElkLCBwcm9wTmFtZSksXG4gICAgICAgICAgICAgICAgcHJvcE5hbWUgPT09ICdkYXRhc291cmNlJyxcbiAgICAgICAgICAgICAgICB0aGlzLndpZGdldFByb3BzLmdldChwcm9wTmFtZSksXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5pc011dGVkXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlIHdhdGNoIG9uIHRoZSBib3VuZCBwcm9wZXJ0eVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZW1vdmVQcm9wZXJ0eUJpbmRpbmcocHJvcE5hbWU6IHN0cmluZykge1xuICAgICAgICAkdW53YXRjaChnZXRXYXRjaElkZW50aWZpZXIodGhpcy53aWRnZXRJZCwgcHJvcE5hbWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBpbnZva2UgdGhlIGV2ZW50IGNhbGxiYWNrIG1ldGhvZFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudE5hbWVcbiAgICAgKiBAcGFyYW0gZXh0cmFMb2NhbHNcbiAgICAgKi9cbiAgICBwdWJsaWMgaW52b2tlRXZlbnRDYWxsYmFjayhldmVudE5hbWU6IHN0cmluZywgZXh0cmFMb2NhbHM/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgY2FsbGJhY2tJbmZvID0gdGhpcy5ldmVudEhhbmRsZXJzLmdldChldmVudE5hbWUpO1xuICAgICAgICBpZiAoY2FsbGJhY2tJbmZvKSB7XG4gICAgICAgICAgICBjb25zdCBmbiA9IGNhbGxiYWNrSW5mby5jYWxsYmFjaztcbiAgICAgICAgICAgIGNvbnN0IGxvY2FscyA9IGNhbGxiYWNrSW5mby5sb2NhbHMgfHwge307XG5cbiAgICAgICAgICAgIGlmIChmbikge1xuICAgICAgICAgICAgICAgIHJldHVybiBmbihPYmplY3QuYXNzaWduKGxvY2FscywgZXh0cmFMb2NhbHMpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGF0dHJpYnV0ZVxuICAgICAqIElmIHRoZSBhdHRyaWJ1dGUgaXMgYW4gZXZlbnQgZXhwcmVzc2lvbiwgZ2VuZXJhdGUgYSBmdW5jdGlvbmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBleHByZXNzaW9uXG4gICAgICogICAgICBhbmQga2VlcCBpbiBldmVudEhhbmRsZXJzXG4gICAgICogSWYgdGhlIGF0dHJpYnV0ZSBpcyBhIGJvdW5kIGV4cHJlc3Npb24sIHJlZ2lzdGVyIGEgd2F0Y2ggb24gdGhlIGV4cHJlc3Npb25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcHJvY2Vzc0F0dHIoYXR0ck5hbWU6IHN0cmluZywgYXR0clZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgezA6IHByb3BOYW1lLCAxOiB0eXBlLCAyOiBtZXRhLCBsZW5ndGh9ID0gYXR0ck5hbWUuc3BsaXQoJy4nKTtcbiAgICAgICAgaWYgKHR5cGUgPT09ICdiaW5kJykge1xuICAgICAgICAgICAgLy8gaWYgdGhlIHNob3cgcHJvcGVydHkgaXMgYm91bmQsIHNldCB0aGUgaW5pdGlhbCB2YWx1ZSB0byBmYWxzZVxuICAgICAgICAgICAgaWYgKHByb3BOYW1lID09PSAnc2hvdycpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0JpbmRBdHRyKHByb3BOYW1lLCBhdHRyVmFsdWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0V2ZW50QXR0cihwcm9wTmFtZSwgYXR0clZhbHVlLCBtZXRhKTtcbiAgICAgICAgfSBlbHNlIGlmIChsZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIC8vIHJlbW92ZSBjbGFzcyBhbmQgbmFtZSBhdHRyaWJ1dGVzLiBDb21wb25lbnQgd2lsbCBzZXQgdGhlbSBvbiB0aGUgcHJvcGVyIG5vZGVcbiAgICAgICAgICAgIGlmIChhdHRyTmFtZSA9PT0gJ2NsYXNzJykge1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgYXR0clZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0ck5hbWUgPT09ICd0YWJpbmRleCcgfHwgYXR0ck5hbWUgPT09ICduYW1lJykge1xuICAgICAgICAgICAgICAgIHJlbW92ZUF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBhdHRyTmFtZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuaW5pdFN0YXRlLnNldChwcm9wTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIGN1c3RvbSBhdHRyaWJ1dGVzIHByb3ZpZGVkIG9uIGVsRGVmO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhpcyBpcyByZXF1aXJlZCBhcyB0aGUgbmF0aXZlIGVsZW1lbnQgYXR0cmlidXRlcyBhcmUgY2FzZSBpbnNlbnNpdGl2ZShjYW1lbGNhc2UpIGxpa2UgY3VzdG9tRXhwcmVzc2lvbnMgYmVjb21lcyBjdXN0b21leHByZXNzaW9uXG4gICAgICogYW5kIG91ciBsb2dpYyB0byBjaGVjayBsaWtlIHRoZXNlIGNoYW5nZXMgd2lsbCBmYWlsLiBCZWZvcmUgSVZZIGNoYW5nZXMsIGFuZ3VsYXIgbWFpbnRhaW5zIGEgc2VwYXJhdGUgb2JqZWN0IHdpdGggdGhlc2UgYXR0cmlidXRlc1xuICAgICAqIGFzIGl0IGlzIGxpa2UgaW4gdGhlIGNhbWVsY2FzZS4gV2l0aCBJVlkgYWxsIHRob3NlIGFyZSBnb25lLiBTbyBuZWVkIHRvIG1haW50YWluIGEgc2VwYXJhdGUgbGlzdCB3aXRoIHRoZSBjYW1lbGNhc2luZyBvZiBhdHRyaWJ1dGVzXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldEF0dHJpYnV0ZXMoKSB7XG4gICAgICAgIGxldCBfdE5vZGVBdHRycyA9ICh0aGlzLmluaiBhcyBhbnkpLl90Tm9kZS5hdHRycywgYWN0dWFsQXR0cnMgPSBBcnJheS5mcm9tKHRoaXMubmF0aXZlRWxlbWVudC5hdHRyaWJ1dGVzKS5tYXAoYXR0ciA9PiBhdHRyLm5hbWUpO1xuICAgICAgICBpZihfdE5vZGVBdHRycyA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGFjdHVhbEF0dHJzO1xuICAgICAgICB9XG4gICAgICAgIF90Tm9kZUF0dHJzLmZpbHRlcihhdHRyID0+IHtcbiAgICAgICAgICAgIGlmKHR5cGVvZiBhdHRyID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGxldCBsb3dlckNhc2VBdHRyID0gYXR0ci50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgICAgIGlmIChhY3R1YWxBdHRycy5pbmNsdWRlcyhsb3dlckNhc2VBdHRyKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSBhY3R1YWxBdHRycy5pbmRleE9mKGxvd2VyQ2FzZUF0dHIpXG4gICAgICAgICAgICAgICAgICAgIGFjdHVhbEF0dHJzW2luZGV4XSA9IGF0dHI7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGFjdHVhbEF0dHJzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb2Nlc3MgdGhlIGF0dHJpYnV0ZXNcbiAgICAgKi9cbiAgICBwcml2YXRlIHByb2Nlc3NBdHRycygpIHtcbiAgICAgICAgY29uc3QgYXR0cnMgPSB0aGlzLmdldEF0dHJpYnV0ZXMoKTtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICBfLm1hcChhdHRycywgKGF0dHJOYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIGxldCBhdHRyVmFsdWUgPSB0aGlzLm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlc1thdHRyTmFtZV0udmFsdWVcbiAgICAgICAgICAgIHRoaXMuJGF0dHJzLnNldChhdHRyTmFtZSwgYXR0clZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0F0dHIoYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgaW5pdFN0YXRlIHdpdGggdGhlIGRlZmF1bHQgcHJvcGVydHkgdmFsdWVzIGFuZCB0aGUgdmFsdWVzIHByb3ZpZGVkIGluIHRoZSBtYXJrdXBcbiAgICAgKiBQcm9jZXNzIHRoZSBhdHRyaWJ1dGVzXG4gICAgICogUmVnaXN0ZXIgdGhlIHdpZGdldFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBpbml0V2lkZ2V0KCkge1xuICAgICAgICB0aGlzLmluaXRTdGF0ZSA9IG5ldyBNYXA8c3RyaW5nLCBhbnk+KCk7XG5cbiAgICAgICAgLy8gZ2V0IHRoZSB3aWRnZXQgcHJvcGVydGllc1xuICAgICAgICBjb25zdCB3aWRnZXRQcm9wczogTWFwPHN0cmluZywgYW55PiA9IGdldFdpZGdldFByb3BzQnlUeXBlKHRoaXMud2lkZ2V0U3ViVHlwZSk7XG4gICAgICAgIHdpZGdldFByb3BzLmZvckVhY2goKHYsIGspID0+IHtcbiAgICAgICAgICAgIGlmIChpc0RlZmluZWQodi52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmluaXRTdGF0ZS5zZXQoaywgdi52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMud2lkZ2V0UHJvcHMgPSB3aWRnZXRQcm9wcztcblxuICAgICAgICB0aGlzLnByb2Nlc3NBdHRycygpO1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJXaWRnZXQodGhpcy5pbml0U3RhdGUuZ2V0KCduYW1lJykpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGFuZCB0aGUgcHJvcGVydGllcyBwcm92aWRlZCBpbiB0aGUgbWFya3VwIGluIGNvbXBvbmVudFxuICAgICAqIEludm9raW5nIHRoaXMgbWV0aG9kIHdpbGwgcmVzdWx0IGluIGludm9jYXRpb24gb2YgcHJvcGVydHlDaGFuZ2UgaGFuZGxlcnMgb24gdGhlIGNvbXBvbmVudCBmb3IgdGhlIGZpcnN0IHRpbWVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgc2V0SW5pdFByb3BzKCkge1xuICAgICAgICBpZiAodGhpcy5pbml0U3RhdGUuZ2V0KCduYW1lJykpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0Lm5hbWUgPSB0aGlzLmluaXRTdGF0ZS5nZXQoJ25hbWUnKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmluaXRTdGF0ZS5mb3JFYWNoKCh2LCBrKSA9PiB7XG4gICAgICAgICAgICAvLyBuYW1lIGlzIGFscmVhZHkgc2V0LCBpZ25vcmUgbmFtZVxuICAgICAgICAgICAgLy8gaWYgdGhlIGtleSBpcyBwYXJ0IG9mIHRvIGJlIGlnbm9yZWQgYXR0cmlidXRlcyBsaXN0IGRvIG5vdCBzZXQgaXQgb24gdGhlIGNvbXBvbmVudCBpbnN0YW5jZVxuICAgICAgICAgICAgaWYgKCh0aGlzLndpZGdldFByb3BzLmdldChrKSB8fCBpc1N0eWxlKGspKSAmJiBrICE9PSAnbmFtZScpIHtcbiAgICAgICAgICAgICAgICB0aGlzLndpZGdldFtrXSA9IHY7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmluaXRTdGF0ZS5jbGVhcigpO1xuICAgICAgICB0aGlzLmluaXRTdGF0ZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICB0aGlzLnJlYWR5U3RhdGUubmV4dChudWxsKTtcbiAgICAgICAgdGhpcy5yZWFkeVN0YXRlLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyB0cnVlLCBpZiBhIGxpc3RlbmVyIHJlZ2lzdGVyZWQgZm9yIHRoZSBnaXZlbiBldmVudCBvbiB0aGlzIHdpZGdldCBtYXJrdXAuXG4gICAgICogQHBhcmFtIGV2ZW50TmFtZVxuICAgICAqIEByZXR1cm5zIHtib29sZWFufVxuICAgICAqL1xuICAgIHByb3RlY3RlZCBoYXNFdmVudENhbGxiYWNrKGV2ZW50TmFtZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudEhhbmRsZXJzLmhhcyhldmVudE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZvY3VzIG9uIHRoZSB3aWRnZXRcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBDaGVjayBmb3IgdGhlIG5vZGVzIGhhdmluZyBmb2N1cy10YXJnZXQgYXR0cmlidXRlIGluc2lkZSB0aGUgZWxlbWVudFxuICAgICAgICAgKiBJZiBmb3VuZCwgZm9jdXMgdGhlIGZpcnN0IG5vZGUgKGVnLCBkYXRlIHdpZGdldClcbiAgICAgICAgICogZWxzZSwgZm9jdXMgdGhlIGVsZW1lbnQgKGVnLCB0ZXh0IHdpZGdldClcbiAgICAgICAgICovXG4gICAgICAgIGxldCAkdGFyZ2V0ID0gdGhpcy4kZWxlbWVudFswXS5xdWVyeVNlbGVjdG9yKCdbZm9jdXMtdGFyZ2V0XScpO1xuICAgICAgICBpZiAoISR0YXJnZXQpIHtcbiAgICAgICAgICAgICR0YXJnZXQgPSB0aGlzLiRlbGVtZW50WzBdO1xuICAgICAgICB9XG4gICAgICAgICR0YXJnZXQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvLyBEZWZpbmluZyB0aGUgZXhlY3V0ZSBtZXRob2Qgb24gQmFzZUNvbXBvbmVudC4gSWYgZGF0YXNldCBpcyBiaW5kZWQgdG8gd2lkZ2V0cyBvdXB0dXQgdGhlbiBkYXRhc291cmNlLmV4ZWN1dGUgd2lsbCBiZSBkZWZpbmVkXG4gICAgcHJvdGVjdGVkIGV4ZWN1dGUob3BlcmF0aW9uLCBvcHRpb25zKTogYW55IHtcblxuICAgIH1cblxuICAgIHB1YmxpYyBtdXRlKCkge1xuICAgICAgICB0aGlzLmlzTXV0ZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIHB1YmxpYyB1bm11dGUoKSB7XG4gICAgICAgIHRoaXMuaXNNdXRlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFmdGVyIHRoZSBob3N0IHBhZ2UgaXMgYXR0YWNoZWQgZnJvbSBjYWNoZSwgdGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQuXG4gICAgICovXG4gICAgcHVibGljIG5nT25BdHRhY2goKSB7XG4gICAgICAgIHRoaXMuaXNBdHRhY2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmVmb3JlIHRoZSBob3N0IHBhZ2UgaXMgZGV0YWNoZWQgZnJvbSBkb20gYW5kIHN0b3JlZCBpbiBjYWNoZSwgIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkLlxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGV0YWNoKCkge1xuICAgICAgICB0aGlzLmlzQXR0YWNoZWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBuYXRpdmVFbGVtZW50IHdpbGwgYmUgYXZhaWxhYmxlIGJ5IHRoaXMgdGltZVxuICAgICAqIGlmIHRoZSBkZWxheUluaXQgaXMgZmFsc2UsIHByb3BlcnRpZXMgbWV0YSB3aWxsIGJlIGF2YWlsYWJsZSBieSB0aGlzIHRpbWVcbiAgICAgKiBJbnZva2UgdGhlIHNldEluaXRQcm9wcyBpZiB0aGUgZGVsYXlJbml0IGlzIGZhbHNlXG4gICAgICovXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5kZWxheWVkSW5pdCkge1xuICAgICAgICAgICAgdGhpcy5zZXRJbml0UHJvcHMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIHRoZSBldmVudHNcbiAgICAgKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLnRvQmVTZXR1cEV2ZW50c1F1ZXVlLmxlbmd0aCkge1xuICAgICAgICAgICAgZm9yIChjb25zdCBmbiBvZiB0aGlzLnRvQmVTZXR1cEV2ZW50c1F1ZXVlKSB7XG4gICAgICAgICAgICAgICAgZm4oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRvQmVTZXR1cEV2ZW50c1F1ZXVlLmxlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuaXNBdHRhY2hlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge31cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmlzRGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy53aWRnZXQgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuICAgICAgICB0aGlzLnN0eWxlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMucHJvcGVydHlDaGFuZ2UuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuaXNBdHRhY2hlZCA9IGZhbHNlO1xuICAgIH1cbn1cbiJdfQ==
@@ -5,7 +5,7 @@ export class LazyLoadDirective {
5
5
  constructor(inj, templateRef, viewContainer) {
6
6
  this.templateRef = templateRef;
7
7
  this.viewContainer = viewContainer;
8
- let viewParentApp = inject(App);
8
+ let viewParentApp = inj ? inj.get(App) : inject(App);
9
9
  let lView = inj._lView;
10
10
  const getParentlView = (lView) => {
11
11
  let parentlView = lView[3];
@@ -46,4 +46,4 @@ LazyLoadDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LazyLoadD
46
46
  }], function () { return [{ type: i0.Injector }, { type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, { lazyLoad: [{
47
47
  type: Input
48
48
  }] }); })();
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvd2lkZ2V0cy9jb21tb24vbGF6eS1sb2FkL2xhenktbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU9yQyxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLFlBQ0ksR0FBYSxFQUNMLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFFdkMsSUFBSSxhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksS0FBSyxHQUFJLEdBQVcsQ0FBQyxNQUFNLENBQUM7UUFDaEMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRTtZQUNsQyxJQUFJLFdBQVcsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBRyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxTQUFTLEVBQUUsRUFBRSxtREFBbUQ7Z0JBQ25GLE9BQU8sY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxhQUFhLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3JDLElBQUcsYUFBYSxLQUFLLENBQUMsSUFBSSxhQUFhLEtBQUssQ0FBQyxFQUFFO2dCQUMzQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNuQjtpQkFBTSxFQUFFLG1EQUFtRDtnQkFDeEQsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdEM7UUFDTCxDQUFDLENBQUE7UUFDRCxJQUFJLENBQUMsVUFBVSxHQUFHLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxhQUFhLENBQUM7UUFDekQsMkNBQTJDO1FBQzNDLElBQUksQ0FBQyxPQUFPLEdBQUksR0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFDSSxRQUFRLENBQUMsSUFBSTtRQUNiLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUN2QixJQUFJLEVBQ0osSUFBSSxDQUFDLFVBQVUsRUFDZixJQUFJLENBQUMsT0FBTyxFQUNaLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxHQUFHLEVBQUU7Z0JBQzNCLElBQUksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2FBQ3hCO1FBQ0wsQ0FBQyxDQUNKLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDOztrRkEvQ1EsaUJBQWlCO29FQUFqQixpQkFBaUI7dUZBQWpCLGlCQUFpQjtjQUg3QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFlBQVk7YUFDekI7b0hBZ0NPLFFBQVE7a0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBpbmplY3QsIEluamVjdG9yLCBJbnB1dCwgT25EZXN0cm95LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyR3YXRjaCwgQXBwfSBmcm9tICdAd20vY29yZSc7XG5cbmRlY2xhcmUgY29uc3QgXztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbbGF6eUxvYWRdJ1xufSlcbmV4cG9ydCBjbGFzcyBMYXp5TG9hZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSB2aWV3UGFyZW50OiBhbnk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0O1xuICAgIHByaXZhdGUgZW1iZWRkZWRWaWV3O1xuICAgIHByaXZhdGUgdW5TdWJzY3JpYmVGbjogRnVuY3Rpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmXG4gICAgKSB7XG4gICAgICAgIGxldCB2aWV3UGFyZW50QXBwID0gaW5qZWN0KEFwcCk7XG4gICAgICAgIGxldCBsVmlldyA9IChpbmogYXMgYW55KS5fbFZpZXc7XG4gICAgICAgIGNvbnN0IGdldFBhcmVudGxWaWV3ID0gKGxWaWV3OiBhbnkpID0+IHtcbiAgICAgICAgICAgIGxldCBwYXJlbnRsVmlldyA9IGxWaWV3WzNdO1xuICAgICAgICAgICAgaWYodHlwZW9mIGxWaWV3WzFdID09PSBcImJvb2xlYW5cIikgeyAvLyB0aGlzIGlzIGxDb250YWluZXIsIG5vdCBsVmlldyBpZiB0aGlzIGlzIGJvb2xlYW5cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UGFyZW50bFZpZXcocGFyZW50bFZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGNvbXBvbmVudFR5cGUgPSBsVmlld1sxXVtcInR5cGVcIl07XG4gICAgICAgICAgICBpZihjb21wb25lbnRUeXBlID09PSAwIHx8IGNvbXBvbmVudFR5cGUgPT09IDEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbFZpZXdbOF07XG4gICAgICAgICAgICB9IGVsc2UgeyAvLyB3aGVuIGNvbXBvbmVudFR5cGUgPT0gMiwgdGhlbiBmZXRjaCBwYXJlbnQgYWdhaW5cbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0UGFyZW50bFZpZXcocGFyZW50bFZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld1BhcmVudCA9IGdldFBhcmVudGxWaWV3KGxWaWV3KSB8fCB2aWV3UGFyZW50QXBwO1xuICAgICAgICAvL3RoaXMuY29udGV4dCA9IChpbmogYXMgYW55KS52aWV3LmNvbnRleHQ7XG4gICAgICAgIHRoaXMuY29udGV4dCA9IChpbmogYXMgYW55KS5fbFZpZXdbOF07XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBzZXQgbGF6eUxvYWQoZXhwcikge1xuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlRm4gPSAkd2F0Y2goXG4gICAgICAgICAgICBleHByLFxuICAgICAgICAgICAgdGhpcy52aWV3UGFyZW50LFxuICAgICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICAgICAgKHZhbCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbWJlZGRlZFZpZXcgJiYgdmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZW1iZWRkZWRWaWV3ICA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZiwgdGhpcy5jb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51blN1YnNjcmliZUZuKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLnVuU3Vic2NyaWJlRm4oKTtcbiAgICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF6eS1sb2FkLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvYmFzZS9zcmMvd2lkZ2V0cy9jb21tb24vbGF6eS1sb2FkL2xhenktbG9hZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBdUIsV0FBVyxFQUFFLGdCQUFnQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFDLE1BQU0sVUFBVSxDQUFDOztBQU9yQyxNQUFNLE9BQU8saUJBQWlCO0lBTTFCLFlBQ0ksR0FBYSxFQUNMLFdBQTZCLEVBQzdCLGFBQStCO1FBRC9CLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtRQUM3QixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFFdkMsSUFBSSxhQUFhLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEdBQUksR0FBVyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2xDLElBQUksV0FBVyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFHLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsRUFBRSxFQUFFLG1EQUFtRDtnQkFDbkYsT0FBTyxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDdEM7WUFDRCxJQUFJLGFBQWEsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDckMsSUFBRyxhQUFhLEtBQUssQ0FBQyxJQUFJLGFBQWEsS0FBSyxDQUFDLEVBQUU7Z0JBQzNDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ25CO2lCQUFNLEVBQUUsbURBQW1EO2dCQUN4RCxPQUFPLGNBQWMsQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN0QztRQUNMLENBQUMsQ0FBQTtRQUNELElBQUksQ0FBQyxVQUFVLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQztRQUN6RCwyQ0FBMkM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBSSxHQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUNJLFFBQVEsQ0FBQyxJQUFJO1FBQ2IsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQ3ZCLElBQUksRUFDSixJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxPQUFPLEVBQ1osQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNKLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLEdBQUcsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBSSxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDeEI7UUFDTCxDQUFDLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3pCLENBQUM7O2tGQS9DUSxpQkFBaUI7b0VBQWpCLGlCQUFpQjt1RkFBakIsaUJBQWlCO2NBSDdCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsWUFBWTthQUN6QjtvSEFnQ08sUUFBUTtrQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIGluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBUZW1wbGF0ZVJlZiwgVmlld0NvbnRhaW5lclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7JHdhdGNoLCBBcHB9IGZyb20gJ0B3bS9jb3JlJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tsYXp5TG9hZF0nXG59KVxuZXhwb3J0IGNsYXNzIExhenlMb2FkRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdQYXJlbnQ6IGFueTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRleHQ7XG4gICAgcHJpdmF0ZSBlbWJlZGRlZFZpZXc7XG4gICAgcHJpdmF0ZSB1blN1YnNjcmliZUZuOiBGdW5jdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBpbmo6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWZcbiAgICApIHtcbiAgICAgICAgbGV0IHZpZXdQYXJlbnRBcHAgPSBpbmogPyBpbmouZ2V0KEFwcCkgOiBpbmplY3QoQXBwKTtcbiAgICAgICAgbGV0IGxWaWV3ID0gKGluaiBhcyBhbnkpLl9sVmlldztcbiAgICAgICAgY29uc3QgZ2V0UGFyZW50bFZpZXcgPSAobFZpZXc6IGFueSkgPT4ge1xuICAgICAgICAgICAgbGV0IHBhcmVudGxWaWV3ID0gbFZpZXdbM107XG4gICAgICAgICAgICBpZih0eXBlb2YgbFZpZXdbMV0gPT09IFwiYm9vbGVhblwiKSB7IC8vIHRoaXMgaXMgbENvbnRhaW5lciwgbm90IGxWaWV3IGlmIHRoaXMgaXMgYm9vbGVhblxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRQYXJlbnRsVmlldyhwYXJlbnRsVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgY29tcG9uZW50VHlwZSA9IGxWaWV3WzFdW1widHlwZVwiXTtcbiAgICAgICAgICAgIGlmKGNvbXBvbmVudFR5cGUgPT09IDAgfHwgY29tcG9uZW50VHlwZSA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsVmlld1s4XTtcbiAgICAgICAgICAgIH0gZWxzZSB7IC8vIHdoZW4gY29tcG9uZW50VHlwZSA9PSAyLCB0aGVuIGZldGNoIHBhcmVudCBhZ2FpblxuICAgICAgICAgICAgICAgIHJldHVybiBnZXRQYXJlbnRsVmlldyhwYXJlbnRsVmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52aWV3UGFyZW50ID0gZ2V0UGFyZW50bFZpZXcobFZpZXcpIHx8IHZpZXdQYXJlbnRBcHA7XG4gICAgICAgIC8vdGhpcy5jb250ZXh0ID0gKGluaiBhcyBhbnkpLnZpZXcuY29udGV4dDtcbiAgICAgICAgdGhpcy5jb250ZXh0ID0gKGluaiBhcyBhbnkpLl9sVmlld1s4XTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCBsYXp5TG9hZChleHByKSB7XG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVGbiA9ICR3YXRjaChcbiAgICAgICAgICAgIGV4cHIsXG4gICAgICAgICAgICB0aGlzLnZpZXdQYXJlbnQsXG4gICAgICAgICAgICB0aGlzLmNvbnRleHQsXG4gICAgICAgICAgICAodmFsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmVtYmVkZGVkVmlldyAmJiB2YWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbWJlZGRlZFZpZXcgID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLnRlbXBsYXRlUmVmLCB0aGlzLmNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnVuU3Vic2NyaWJlRm4oKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMudW5TdWJzY3JpYmVGbigpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { Attribute, Directive, Inject, Self, Input } from '@angular/core';
2
2
  import { Subject } from 'rxjs';
3
3
  import { $watch } from '@wm/core';
4
- import { WidgetRef } from '../../../widgets/framework/types';
4
+ import { WidgetRef } from '../../framework/types';
5
5
  import * as i0 from "@angular/core";
6
6
  export class PartialParamHandlerDirective {
7
7
  constructor(widgetRef) {
@@ -67,4 +67,4 @@ PartialParamDirective.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: Parti
67
67
  }], value: [{
68
68
  type: Input
69
69
  }] }); })();
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1wYXJhbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL3BhcnRpYWwtcGFyYW0vcGFydGlhbC1wYXJhbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFPN0QsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxZQUFnRCxTQUFTO1FBQVQsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxJQUFZO1FBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QjtZQUNsQyxvREFBb0Q7WUFDcEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUV4QyxvREFBb0Q7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakM7SUFFTCxDQUFDOzt3R0F2QlEsNEJBQTRCLHVCQUNSLFNBQVM7K0VBRDdCLDRCQUE0Qjt1RkFBNUIsNEJBQTRCO2NBSHhDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2FBQ2pDOztzQkFFaUIsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxTQUFTOztBQTRCMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNvQyxTQUFTLEVBQ2YsSUFBSSxFQUN0QixxQkFBbUQ7UUFGM0IsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNmLFNBQUksR0FBSixJQUFJLENBQUE7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtJQUUvRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OzBGQWRRLHFCQUFxQix1QkFNZixZQUFZLHdCQUNaLE1BQU07d0VBUFoscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FIakMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2FBQ3hCOztzQkFPUSxTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLE1BQU07Z0VBTFosSUFBSTtrQkFBWixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBEaXJlY3RpdmUsIEluamVjdCwgU2VsZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7ICR3YXRjaCB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSAnLi4vLi4vLi4vd2lkZ2V0cy9mcmFtZXdvcmsvdHlwZXMnO1xuXG5kZWNsYXJlIGNvbnN0IF87XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3BhcnRpYWxDb250YWluZXJdJyxcbn0pXG5leHBvcnQgY2xhc3MgUGFydGlhbFBhcmFtSGFuZGxlckRpcmVjdGl2ZSB7XG4gICAgY29uc3RydWN0b3IgKEBTZWxmKCkgQEluamVjdChXaWRnZXRSZWYpIHByaXZhdGUgd2lkZ2V0UmVmKSB7XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXMgPSB7fTtcbiAgICAgICAgdGhpcy53aWRnZXRSZWYucGFnZVBhcmFtcyA9IHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXM7XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQgPSBuZXcgU3ViamVjdCgpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyUGFyYW1zKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgYmluZEV4cHI6IHN0cmluZywgdHlwZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcnRpYWxQYXJhbXNbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgaWYgKCF2YWx1ZSAmJiBiaW5kRXhwcikge1xuICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgLy9bVG9kby1DU1BdOiBleHByIGZuIHNob3VsZCBiZSBnZW5lcmF0ZWQgYmUgZGVmYXVsdFxuICAgICAgICAgICAgICAgICR3YXRjaChiaW5kRXhwciwgdGhpcy53aWRnZXRSZWYuZ2V0Vmlld1BhcmVudCgpLCBfLmdldCh0aGlzLndpZGdldFJlZiwgJ2NvbnRleHQnKSwgbnYgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zW25hbWVdID0gbnY7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gbm90aWZ5IHRoZSBwYXJ0aWFsIGNvbnRhaW5lciBvZiB0aGUgcGFyYW0gY2hhbmdlc1xuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJhbXMkLm5leHQoKTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhcmFtcyQubmV4dCgpO1xuICAgICAgICB9XG5cbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtUGFyYW1dJyxcbn0pXG5leHBvcnQgY2xhc3MgUGFydGlhbFBhcmFtRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgICBASW5wdXQoKSB2YWx1ZTogYW55O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBBdHRyaWJ1dGUoJ3ZhbHVlLmJpbmQnKSBwdWJsaWMgYmluZFZhbHVlLFxuICAgICAgICBAQXR0cmlidXRlKCd0eXBlJykgcHVibGljIHR5cGUsXG4gICAgICAgIHByaXZhdGUgcGFydGlhbFBhcmFtc1Byb3ZpZGVyOiBQYXJ0aWFsUGFyYW1IYW5kbGVyRGlyZWN0aXZlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMucGFydGlhbFBhcmFtc1Byb3ZpZGVyLnJlZ2lzdGVyUGFyYW1zKHRoaXMubmFtZSwgdGhpcy52YWx1ZSwgdGhpcy5iaW5kVmFsdWUsIHRoaXMudHlwZSk7XG4gICAgfVxufVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydGlhbC1wYXJhbS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL2Jhc2Uvc3JjL3dpZGdldHMvY29tbW9uL3BhcnRpYWwtcGFyYW0vcGFydGlhbC1wYXJhbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxZQUFnRCxTQUFTO1FBQVQsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUM7UUFDekQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsY0FBYyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsUUFBZ0IsRUFBRSxJQUFZO1FBQ3RFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxJQUFJLFFBQVEsRUFBRTtZQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QjtZQUNsQyxvREFBb0Q7WUFDcEQsTUFBTSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRTtnQkFDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUV4QyxvREFBb0Q7Z0JBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLENBQUMsQ0FBQyxDQUNMLENBQUM7U0FDTDthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDakM7SUFFTCxDQUFDOzt3R0F2QlEsNEJBQTRCLHVCQUNSLFNBQVM7K0VBRDdCLDRCQUE0Qjt1RkFBNUIsNEJBQTRCO2NBSHhDLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsb0JBQW9CO2FBQ2pDOztzQkFFaUIsSUFBSTs7c0JBQUksTUFBTTt1QkFBQyxTQUFTOztBQTRCMUMsTUFBTSxPQUFPLHFCQUFxQjtJQUs5QixZQUNvQyxTQUFTLEVBQ2YsSUFBSSxFQUN0QixxQkFBbUQ7UUFGM0IsY0FBUyxHQUFULFNBQVMsQ0FBQTtRQUNmLFNBQUksR0FBSixJQUFJLENBQUE7UUFDdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUE4QjtJQUUvRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hHLENBQUM7OzBGQWRRLHFCQUFxQix1QkFNZixZQUFZLHdCQUNaLE1BQU07d0VBUFoscUJBQXFCO3VGQUFyQixxQkFBcUI7Y0FIakMsU0FBUztlQUFDO2dCQUNQLFFBQVEsRUFBRSxXQUFXO2FBQ3hCOztzQkFPUSxTQUFTO3VCQUFDLFlBQVk7O3NCQUN0QixTQUFTO3VCQUFDLE1BQU07Z0VBTFosSUFBSTtrQkFBWixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXR0cmlidXRlLCBEaXJlY3RpdmUsIEluamVjdCwgU2VsZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7ICR3YXRjaCB9IGZyb20gJ0B3bS9jb3JlJztcblxuaW1wb3J0IHsgV2lkZ2V0UmVmIH0gZnJvbSAnLi4vLi4vZnJhbWV3b3JrL3R5cGVzJztcblxuZGVjbGFyZSBjb25zdCBfO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1twYXJ0aWFsQ29udGFpbmVyXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpYWxQYXJhbUhhbmRsZXJEaXJlY3RpdmUge1xuICAgIGNvbnN0cnVjdG9yIChAU2VsZigpIEBJbmplY3QoV2lkZ2V0UmVmKSBwcml2YXRlIHdpZGdldFJlZikge1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zID0ge307XG4gICAgICAgIHRoaXMud2lkZ2V0UmVmLnBhZ2VQYXJhbXMgPSB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zO1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJhbXMkID0gbmV3IFN1YmplY3QoKTtcbiAgICB9XG5cbiAgICByZWdpc3RlclBhcmFtcyhuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGJpbmRFeHByOiBzdHJpbmcsIHR5cGU6IHN0cmluZykge1xuICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJ0aWFsUGFyYW1zW25hbWVdID0gdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUgJiYgYmluZEV4cHIpIHtcbiAgICAgICAgICAgIHRoaXMud2lkZ2V0UmVmLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKFxuICAgICAgICAgICAgICAgIC8vW1RvZG8tQ1NQXTogZXhwciBmbiBzaG91bGQgYmUgZ2VuZXJhdGVkIGJlIGRlZmF1bHRcbiAgICAgICAgICAgICAgICAkd2F0Y2goYmluZEV4cHIsIHRoaXMud2lkZ2V0UmVmLmdldFZpZXdQYXJlbnQoKSwgXy5nZXQodGhpcy53aWRnZXRSZWYsICdjb250ZXh0JyksIG52ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucGFydGlhbFBhcmFtc1tuYW1lXSA9IG52O1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIG5vdGlmeSB0aGUgcGFydGlhbCBjb250YWluZXIgb2YgdGhlIHBhcmFtIGNoYW5nZXNcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53aWRnZXRSZWYucGFyYW1zJC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLndpZGdldFJlZi5wYXJhbXMkLm5leHQoKTtcbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1t3bVBhcmFtXScsXG59KVxuZXhwb3J0IGNsYXNzIFBhcnRpYWxQYXJhbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdmFsdWU6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBAQXR0cmlidXRlKCd2YWx1ZS5iaW5kJykgcHVibGljIGJpbmRWYWx1ZSxcbiAgICAgICAgQEF0dHJpYnV0ZSgndHlwZScpIHB1YmxpYyB0eXBlLFxuICAgICAgICBwcml2YXRlIHBhcnRpYWxQYXJhbXNQcm92aWRlcjogUGFydGlhbFBhcmFtSGFuZGxlckRpcmVjdGl2ZVxuICAgICkge1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnBhcnRpYWxQYXJhbXNQcm92aWRlci5yZWdpc3RlclBhcmFtcyh0aGlzLm5hbWUsIHRoaXMudmFsdWUsIHRoaXMuYmluZFZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
@@ -953,7 +953,8 @@ class BaseComponent {
953
953
  this.isMuted = false;
954
954
  const elementRef = inj.get(ElementRef);
955
955
  this.nativeElement = elementRef.nativeElement;
956
- this.viewParentApp = inject(App);
956
+ //making the code compatible in both the JIT and AOT modes
957
+ this.viewParentApp = inj ? inj.get(App) : inject(App);
957
958
  this.widgetType = config.widgetType;
958
959
  this.widgetSubType = config.widgetSubType || config.widgetType;
959
960
  this.viewContainerRef = inj.get(ViewContainerRef);
@@ -1722,7 +1723,7 @@ class LazyLoadDirective {
1722
1723
  constructor(inj, templateRef, viewContainer) {
1723
1724
  this.templateRef = templateRef;
1724
1725
  this.viewContainer = viewContainer;
1725
- let viewParentApp = inject(App);
1726
+ let viewParentApp = inj ? inj.get(App) : inject(App);
1726
1727
  let lView = inj._lView;
1727
1728
  const getParentlView = (lView) => {
1728
1729
  let parentlView = lView[3];