@angular/common 18.2.5 → 18.2.7

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 (3010) hide show
  1. package/LICENSE +21 -0
  2. package/esm2022/http/index.mjs +2 -2
  3. package/esm2022/http/public_api.mjs +2 -2
  4. package/esm2022/http/src/backend.mjs +2 -2
  5. package/esm2022/http/src/client.mjs +5 -5
  6. package/esm2022/http/src/context.mjs +2 -2
  7. package/esm2022/http/src/errors.mjs +2 -2
  8. package/esm2022/http/src/fetch.mjs +5 -5
  9. package/esm2022/http/src/headers.mjs +2 -2
  10. package/esm2022/http/src/interceptor.mjs +5 -5
  11. package/esm2022/http/src/jsonp.mjs +10 -8
  12. package/esm2022/http/src/module.mjs +14 -14
  13. package/esm2022/http/src/params.mjs +2 -2
  14. package/esm2022/http/src/private_export.mjs +2 -2
  15. package/esm2022/http/src/provider.mjs +2 -2
  16. package/esm2022/http/src/request.mjs +2 -2
  17. package/esm2022/http/src/response.mjs +2 -2
  18. package/esm2022/http/src/transfer_cache.mjs +2 -2
  19. package/esm2022/http/src/xhr.mjs +5 -5
  20. package/esm2022/http/src/xsrf.mjs +8 -8
  21. package/esm2022/http/testing/index.mjs +2 -2
  22. package/esm2022/http/testing/public_api.mjs +2 -2
  23. package/esm2022/http/testing/src/api.mjs +2 -2
  24. package/esm2022/http/testing/src/backend.mjs +5 -5
  25. package/esm2022/http/testing/src/module.mjs +6 -6
  26. package/esm2022/http/testing/src/provider.mjs +2 -2
  27. package/esm2022/http/testing/src/request.mjs +2 -2
  28. package/esm2022/index.mjs +2 -2
  29. package/esm2022/public_api.mjs +2 -2
  30. package/esm2022/src/common.mjs +2 -2
  31. package/esm2022/src/common_module.mjs +6 -6
  32. package/esm2022/src/cookie.mjs +2 -2
  33. package/esm2022/src/directives/index.mjs +2 -2
  34. package/esm2022/src/directives/ng_class.mjs +5 -5
  35. package/esm2022/src/directives/ng_component_outlet.mjs +5 -5
  36. package/esm2022/src/directives/ng_for_of.mjs +5 -5
  37. package/esm2022/src/directives/ng_if.mjs +5 -5
  38. package/esm2022/src/directives/ng_optimized_image/asserts.mjs +2 -2
  39. package/esm2022/src/directives/ng_optimized_image/error_helper.mjs +2 -2
  40. package/esm2022/src/directives/ng_optimized_image/image_loaders/cloudflare_loader.mjs +2 -2
  41. package/esm2022/src/directives/ng_optimized_image/image_loaders/cloudinary_loader.mjs +2 -2
  42. package/esm2022/src/directives/ng_optimized_image/image_loaders/constants.mjs +2 -2
  43. package/esm2022/src/directives/ng_optimized_image/image_loaders/image_loader.mjs +2 -2
  44. package/esm2022/src/directives/ng_optimized_image/image_loaders/imagekit_loader.mjs +2 -2
  45. package/esm2022/src/directives/ng_optimized_image/image_loaders/imgix_loader.mjs +2 -2
  46. package/esm2022/src/directives/ng_optimized_image/image_loaders/netlify_loader.mjs +2 -2
  47. package/esm2022/src/directives/ng_optimized_image/index.mjs +2 -2
  48. package/esm2022/src/directives/ng_optimized_image/lcp_image_observer.mjs +5 -5
  49. package/esm2022/src/directives/ng_optimized_image/ng_optimized_image.mjs +29 -9
  50. package/esm2022/src/directives/ng_optimized_image/preconnect_link_checker.mjs +5 -5
  51. package/esm2022/src/directives/ng_optimized_image/preload-link-creator.mjs +5 -5
  52. package/esm2022/src/directives/ng_optimized_image/tokens.mjs +2 -2
  53. package/esm2022/src/directives/ng_optimized_image/url.mjs +2 -2
  54. package/esm2022/src/directives/ng_plural.mjs +8 -8
  55. package/esm2022/src/directives/ng_style.mjs +5 -5
  56. package/esm2022/src/directives/ng_switch.mjs +11 -11
  57. package/esm2022/src/directives/ng_template_outlet.mjs +5 -5
  58. package/esm2022/src/dom_adapter.mjs +2 -2
  59. package/esm2022/src/dom_tokens.mjs +2 -2
  60. package/esm2022/src/errors.mjs +2 -2
  61. package/esm2022/src/i18n/currencies.mjs +2 -2
  62. package/esm2022/src/i18n/format_date.mjs +2 -2
  63. package/esm2022/src/i18n/format_number.mjs +2 -2
  64. package/esm2022/src/i18n/locale_data.mjs +2 -2
  65. package/esm2022/src/i18n/locale_data_api.mjs +2 -2
  66. package/esm2022/src/i18n/localization.mjs +8 -8
  67. package/esm2022/src/location/hash_location_strategy.mjs +5 -5
  68. package/esm2022/src/location/index.mjs +2 -2
  69. package/esm2022/src/location/location.mjs +5 -5
  70. package/esm2022/src/location/location_strategy.mjs +9 -9
  71. package/esm2022/src/location/platform_location.mjs +8 -8
  72. package/esm2022/src/location/util.mjs +2 -2
  73. package/esm2022/src/navigation/navigation_types.mjs +2 -2
  74. package/esm2022/src/navigation/platform_navigation.mjs +5 -5
  75. package/esm2022/src/pipes/async_pipe.mjs +5 -5
  76. package/esm2022/src/pipes/case_conversion_pipes.mjs +11 -11
  77. package/esm2022/src/pipes/date_pipe.mjs +5 -5
  78. package/esm2022/src/pipes/date_pipe_config.mjs +2 -2
  79. package/esm2022/src/pipes/i18n_plural_pipe.mjs +5 -5
  80. package/esm2022/src/pipes/i18n_select_pipe.mjs +5 -5
  81. package/esm2022/src/pipes/index.mjs +2 -2
  82. package/esm2022/src/pipes/invalid_pipe_argument_error.mjs +2 -2
  83. package/esm2022/src/pipes/json_pipe.mjs +5 -5
  84. package/esm2022/src/pipes/keyvalue_pipe.mjs +5 -5
  85. package/esm2022/src/pipes/number_pipe.mjs +11 -11
  86. package/esm2022/src/pipes/slice_pipe.mjs +5 -5
  87. package/esm2022/src/platform_id.mjs +2 -2
  88. package/esm2022/src/private_export.mjs +2 -2
  89. package/esm2022/src/version.mjs +3 -3
  90. package/esm2022/src/viewport_scroller.mjs +2 -2
  91. package/esm2022/src/xhr.mjs +2 -2
  92. package/esm2022/testing/index.mjs +2 -2
  93. package/esm2022/testing/public_api.mjs +2 -2
  94. package/esm2022/testing/src/location_mock.mjs +5 -5
  95. package/esm2022/testing/src/mock_location_strategy.mjs +5 -5
  96. package/esm2022/testing/src/mock_platform_location.mjs +8 -8
  97. package/esm2022/testing/src/navigation/fake_navigation.mjs +2 -2
  98. package/esm2022/testing/src/navigation/navigation_types.mjs +2 -2
  99. package/esm2022/testing/src/navigation/provide_fake_platform_navigation.mjs +2 -2
  100. package/esm2022/testing/src/private_export.mjs +2 -2
  101. package/esm2022/testing/src/provide_location_mocks.mjs +2 -2
  102. package/esm2022/testing/src/testing.mjs +2 -2
  103. package/esm2022/upgrade/index.mjs +2 -2
  104. package/esm2022/upgrade/public_api.mjs +2 -2
  105. package/esm2022/upgrade/src/index.mjs +2 -2
  106. package/esm2022/upgrade/src/location_shim.mjs +2 -2
  107. package/esm2022/upgrade/src/location_upgrade_module.mjs +6 -6
  108. package/esm2022/upgrade/src/params.mjs +2 -2
  109. package/esm2022/upgrade/src/utils.mjs +2 -2
  110. package/fesm2022/common.mjs +142 -122
  111. package/fesm2022/common.mjs.map +1 -1
  112. package/fesm2022/http/testing.mjs +8 -8
  113. package/fesm2022/http/testing.mjs.map +1 -1
  114. package/fesm2022/http.mjs +39 -37
  115. package/fesm2022/http.mjs.map +1 -1
  116. package/fesm2022/testing.mjs +16 -16
  117. package/fesm2022/testing.mjs.map +1 -1
  118. package/fesm2022/upgrade.mjs +5 -5
  119. package/fesm2022/upgrade.mjs.map +1 -1
  120. package/http/index.d.ts +1 -1
  121. package/http/testing/index.d.ts +1 -1
  122. package/index.d.ts +2 -2
  123. package/locales/af-NA.d.ts +1 -1
  124. package/locales/af-NA.mjs +2 -2
  125. package/locales/af.d.ts +1 -1
  126. package/locales/af.mjs +2 -2
  127. package/locales/agq.d.ts +1 -1
  128. package/locales/agq.mjs +2 -2
  129. package/locales/ak.d.ts +1 -1
  130. package/locales/ak.mjs +2 -2
  131. package/locales/am.d.ts +1 -1
  132. package/locales/am.mjs +2 -2
  133. package/locales/ar-AE.d.ts +1 -1
  134. package/locales/ar-AE.mjs +2 -2
  135. package/locales/ar-BH.d.ts +1 -1
  136. package/locales/ar-BH.mjs +2 -2
  137. package/locales/ar-DJ.d.ts +1 -1
  138. package/locales/ar-DJ.mjs +2 -2
  139. package/locales/ar-DZ.d.ts +1 -1
  140. package/locales/ar-DZ.mjs +2 -2
  141. package/locales/ar-EG.d.ts +1 -1
  142. package/locales/ar-EG.mjs +2 -2
  143. package/locales/ar-EH.d.ts +1 -1
  144. package/locales/ar-EH.mjs +2 -2
  145. package/locales/ar-ER.d.ts +1 -1
  146. package/locales/ar-ER.mjs +2 -2
  147. package/locales/ar-IL.d.ts +1 -1
  148. package/locales/ar-IL.mjs +2 -2
  149. package/locales/ar-IQ.d.ts +1 -1
  150. package/locales/ar-IQ.mjs +2 -2
  151. package/locales/ar-JO.d.ts +1 -1
  152. package/locales/ar-JO.mjs +2 -2
  153. package/locales/ar-KM.d.ts +1 -1
  154. package/locales/ar-KM.mjs +2 -2
  155. package/locales/ar-KW.d.ts +1 -1
  156. package/locales/ar-KW.mjs +2 -2
  157. package/locales/ar-LB.d.ts +1 -1
  158. package/locales/ar-LB.mjs +2 -2
  159. package/locales/ar-LY.d.ts +1 -1
  160. package/locales/ar-LY.mjs +2 -2
  161. package/locales/ar-MA.d.ts +1 -1
  162. package/locales/ar-MA.mjs +2 -2
  163. package/locales/ar-MR.d.ts +1 -1
  164. package/locales/ar-MR.mjs +2 -2
  165. package/locales/ar-OM.d.ts +1 -1
  166. package/locales/ar-OM.mjs +2 -2
  167. package/locales/ar-PS.d.ts +1 -1
  168. package/locales/ar-PS.mjs +2 -2
  169. package/locales/ar-QA.d.ts +1 -1
  170. package/locales/ar-QA.mjs +2 -2
  171. package/locales/ar-SA.d.ts +1 -1
  172. package/locales/ar-SA.mjs +2 -2
  173. package/locales/ar-SD.d.ts +1 -1
  174. package/locales/ar-SD.mjs +2 -2
  175. package/locales/ar-SO.d.ts +1 -1
  176. package/locales/ar-SO.mjs +2 -2
  177. package/locales/ar-SS.d.ts +1 -1
  178. package/locales/ar-SS.mjs +2 -2
  179. package/locales/ar-SY.d.ts +1 -1
  180. package/locales/ar-SY.mjs +2 -2
  181. package/locales/ar-TD.d.ts +1 -1
  182. package/locales/ar-TD.mjs +2 -2
  183. package/locales/ar-TN.d.ts +1 -1
  184. package/locales/ar-TN.mjs +2 -2
  185. package/locales/ar-YE.d.ts +1 -1
  186. package/locales/ar-YE.mjs +2 -2
  187. package/locales/ar.d.ts +1 -1
  188. package/locales/ar.mjs +2 -2
  189. package/locales/as.d.ts +1 -1
  190. package/locales/as.mjs +2 -2
  191. package/locales/asa.d.ts +1 -1
  192. package/locales/asa.mjs +2 -2
  193. package/locales/ast.d.ts +1 -1
  194. package/locales/ast.mjs +2 -2
  195. package/locales/az-Cyrl.d.ts +1 -1
  196. package/locales/az-Cyrl.mjs +2 -2
  197. package/locales/az-Latn.d.ts +1 -1
  198. package/locales/az-Latn.mjs +2 -2
  199. package/locales/az.d.ts +1 -1
  200. package/locales/az.mjs +2 -2
  201. package/locales/bas.d.ts +1 -1
  202. package/locales/bas.mjs +2 -2
  203. package/locales/be-tarask.d.ts +1 -1
  204. package/locales/be-tarask.mjs +2 -2
  205. package/locales/be.d.ts +1 -1
  206. package/locales/be.mjs +2 -2
  207. package/locales/bem.d.ts +1 -1
  208. package/locales/bem.mjs +2 -2
  209. package/locales/bez.d.ts +1 -1
  210. package/locales/bez.mjs +2 -2
  211. package/locales/bg.d.ts +1 -1
  212. package/locales/bg.mjs +2 -2
  213. package/locales/bm.d.ts +1 -1
  214. package/locales/bm.mjs +2 -2
  215. package/locales/bn-IN.d.ts +1 -1
  216. package/locales/bn-IN.mjs +2 -2
  217. package/locales/bn.d.ts +1 -1
  218. package/locales/bn.mjs +2 -2
  219. package/locales/bo-IN.d.ts +1 -1
  220. package/locales/bo-IN.mjs +2 -2
  221. package/locales/bo.d.ts +1 -1
  222. package/locales/bo.mjs +2 -2
  223. package/locales/br.d.ts +1 -1
  224. package/locales/br.mjs +2 -2
  225. package/locales/brx.d.ts +1 -1
  226. package/locales/brx.mjs +2 -2
  227. package/locales/bs-Cyrl.d.ts +1 -1
  228. package/locales/bs-Cyrl.mjs +2 -2
  229. package/locales/bs-Latn.d.ts +1 -1
  230. package/locales/bs-Latn.mjs +2 -2
  231. package/locales/bs.d.ts +1 -1
  232. package/locales/bs.mjs +2 -2
  233. package/locales/ca-AD.d.ts +1 -1
  234. package/locales/ca-AD.mjs +2 -2
  235. package/locales/ca-ES-valencia.d.ts +1 -1
  236. package/locales/ca-ES-valencia.mjs +2 -2
  237. package/locales/ca-FR.d.ts +1 -1
  238. package/locales/ca-FR.mjs +2 -2
  239. package/locales/ca-IT.d.ts +1 -1
  240. package/locales/ca-IT.mjs +2 -2
  241. package/locales/ca.d.ts +1 -1
  242. package/locales/ca.mjs +2 -2
  243. package/locales/ccp-IN.d.ts +1 -1
  244. package/locales/ccp-IN.mjs +2 -2
  245. package/locales/ccp.d.ts +1 -1
  246. package/locales/ccp.mjs +2 -2
  247. package/locales/ce.d.ts +1 -1
  248. package/locales/ce.mjs +2 -2
  249. package/locales/ceb.d.ts +1 -1
  250. package/locales/ceb.mjs +2 -2
  251. package/locales/cgg.d.ts +1 -1
  252. package/locales/cgg.mjs +2 -2
  253. package/locales/chr.d.ts +1 -1
  254. package/locales/chr.mjs +2 -2
  255. package/locales/ckb-IR.d.ts +1 -1
  256. package/locales/ckb-IR.mjs +2 -2
  257. package/locales/ckb.d.ts +1 -1
  258. package/locales/ckb.mjs +2 -2
  259. package/locales/cs.d.ts +1 -1
  260. package/locales/cs.mjs +2 -2
  261. package/locales/cy.d.ts +1 -1
  262. package/locales/cy.mjs +2 -2
  263. package/locales/da-GL.d.ts +1 -1
  264. package/locales/da-GL.mjs +2 -2
  265. package/locales/da.d.ts +1 -1
  266. package/locales/da.mjs +2 -2
  267. package/locales/dav.d.ts +1 -1
  268. package/locales/dav.mjs +2 -2
  269. package/locales/de-AT.d.ts +1 -1
  270. package/locales/de-AT.mjs +2 -2
  271. package/locales/de-BE.d.ts +1 -1
  272. package/locales/de-BE.mjs +2 -2
  273. package/locales/de-CH.d.ts +1 -1
  274. package/locales/de-CH.mjs +2 -2
  275. package/locales/de-IT.d.ts +1 -1
  276. package/locales/de-IT.mjs +2 -2
  277. package/locales/de-LI.d.ts +1 -1
  278. package/locales/de-LI.mjs +2 -2
  279. package/locales/de-LU.d.ts +1 -1
  280. package/locales/de-LU.mjs +2 -2
  281. package/locales/de.d.ts +1 -1
  282. package/locales/de.mjs +2 -2
  283. package/locales/dje.d.ts +1 -1
  284. package/locales/dje.mjs +2 -2
  285. package/locales/doi.d.ts +1 -1
  286. package/locales/doi.mjs +2 -2
  287. package/locales/dsb.d.ts +1 -1
  288. package/locales/dsb.mjs +2 -2
  289. package/locales/dua.d.ts +1 -1
  290. package/locales/dua.mjs +2 -2
  291. package/locales/dyo.d.ts +1 -1
  292. package/locales/dyo.mjs +2 -2
  293. package/locales/dz.d.ts +1 -1
  294. package/locales/dz.mjs +2 -2
  295. package/locales/ebu.d.ts +1 -1
  296. package/locales/ebu.mjs +2 -2
  297. package/locales/ee-TG.d.ts +1 -1
  298. package/locales/ee-TG.mjs +2 -2
  299. package/locales/ee.d.ts +1 -1
  300. package/locales/ee.mjs +2 -2
  301. package/locales/el-CY.d.ts +1 -1
  302. package/locales/el-CY.mjs +2 -2
  303. package/locales/el.d.ts +1 -1
  304. package/locales/el.mjs +2 -2
  305. package/locales/en-001.d.ts +1 -1
  306. package/locales/en-001.mjs +2 -2
  307. package/locales/en-150.d.ts +1 -1
  308. package/locales/en-150.mjs +2 -2
  309. package/locales/en-AE.d.ts +1 -1
  310. package/locales/en-AE.mjs +2 -2
  311. package/locales/en-AG.d.ts +1 -1
  312. package/locales/en-AG.mjs +2 -2
  313. package/locales/en-AI.d.ts +1 -1
  314. package/locales/en-AI.mjs +2 -2
  315. package/locales/en-AS.d.ts +1 -1
  316. package/locales/en-AS.mjs +2 -2
  317. package/locales/en-AT.d.ts +1 -1
  318. package/locales/en-AT.mjs +2 -2
  319. package/locales/en-AU.d.ts +1 -1
  320. package/locales/en-AU.mjs +2 -2
  321. package/locales/en-BB.d.ts +1 -1
  322. package/locales/en-BB.mjs +2 -2
  323. package/locales/en-BE.d.ts +1 -1
  324. package/locales/en-BE.mjs +2 -2
  325. package/locales/en-BI.d.ts +1 -1
  326. package/locales/en-BI.mjs +2 -2
  327. package/locales/en-BM.d.ts +1 -1
  328. package/locales/en-BM.mjs +2 -2
  329. package/locales/en-BS.d.ts +1 -1
  330. package/locales/en-BS.mjs +2 -2
  331. package/locales/en-BW.d.ts +1 -1
  332. package/locales/en-BW.mjs +2 -2
  333. package/locales/en-BZ.d.ts +1 -1
  334. package/locales/en-BZ.mjs +2 -2
  335. package/locales/en-CA.d.ts +1 -1
  336. package/locales/en-CA.mjs +2 -2
  337. package/locales/en-CC.d.ts +1 -1
  338. package/locales/en-CC.mjs +2 -2
  339. package/locales/en-CH.d.ts +1 -1
  340. package/locales/en-CH.mjs +2 -2
  341. package/locales/en-CK.d.ts +1 -1
  342. package/locales/en-CK.mjs +2 -2
  343. package/locales/en-CM.d.ts +1 -1
  344. package/locales/en-CM.mjs +2 -2
  345. package/locales/en-CX.d.ts +1 -1
  346. package/locales/en-CX.mjs +2 -2
  347. package/locales/en-CY.d.ts +1 -1
  348. package/locales/en-CY.mjs +2 -2
  349. package/locales/en-DE.d.ts +1 -1
  350. package/locales/en-DE.mjs +2 -2
  351. package/locales/en-DG.d.ts +1 -1
  352. package/locales/en-DG.mjs +2 -2
  353. package/locales/en-DK.d.ts +1 -1
  354. package/locales/en-DK.mjs +2 -2
  355. package/locales/en-DM.d.ts +1 -1
  356. package/locales/en-DM.mjs +2 -2
  357. package/locales/en-ER.d.ts +1 -1
  358. package/locales/en-ER.mjs +2 -2
  359. package/locales/en-FI.d.ts +1 -1
  360. package/locales/en-FI.mjs +2 -2
  361. package/locales/en-FJ.d.ts +1 -1
  362. package/locales/en-FJ.mjs +2 -2
  363. package/locales/en-FK.d.ts +1 -1
  364. package/locales/en-FK.mjs +2 -2
  365. package/locales/en-FM.d.ts +1 -1
  366. package/locales/en-FM.mjs +2 -2
  367. package/locales/en-GB.d.ts +1 -1
  368. package/locales/en-GB.mjs +2 -2
  369. package/locales/en-GD.d.ts +1 -1
  370. package/locales/en-GD.mjs +2 -2
  371. package/locales/en-GG.d.ts +1 -1
  372. package/locales/en-GG.mjs +2 -2
  373. package/locales/en-GH.d.ts +1 -1
  374. package/locales/en-GH.mjs +2 -2
  375. package/locales/en-GI.d.ts +1 -1
  376. package/locales/en-GI.mjs +2 -2
  377. package/locales/en-GM.d.ts +1 -1
  378. package/locales/en-GM.mjs +2 -2
  379. package/locales/en-GU.d.ts +1 -1
  380. package/locales/en-GU.mjs +2 -2
  381. package/locales/en-GY.d.ts +1 -1
  382. package/locales/en-GY.mjs +2 -2
  383. package/locales/en-HK.d.ts +1 -1
  384. package/locales/en-HK.mjs +2 -2
  385. package/locales/en-IE.d.ts +1 -1
  386. package/locales/en-IE.mjs +2 -2
  387. package/locales/en-IL.d.ts +1 -1
  388. package/locales/en-IL.mjs +2 -2
  389. package/locales/en-IM.d.ts +1 -1
  390. package/locales/en-IM.mjs +2 -2
  391. package/locales/en-IN.d.ts +1 -1
  392. package/locales/en-IN.mjs +2 -2
  393. package/locales/en-IO.d.ts +1 -1
  394. package/locales/en-IO.mjs +2 -2
  395. package/locales/en-JE.d.ts +1 -1
  396. package/locales/en-JE.mjs +2 -2
  397. package/locales/en-JM.d.ts +1 -1
  398. package/locales/en-JM.mjs +2 -2
  399. package/locales/en-KE.d.ts +1 -1
  400. package/locales/en-KE.mjs +2 -2
  401. package/locales/en-KI.d.ts +1 -1
  402. package/locales/en-KI.mjs +2 -2
  403. package/locales/en-KN.d.ts +1 -1
  404. package/locales/en-KN.mjs +2 -2
  405. package/locales/en-KY.d.ts +1 -1
  406. package/locales/en-KY.mjs +2 -2
  407. package/locales/en-LC.d.ts +1 -1
  408. package/locales/en-LC.mjs +2 -2
  409. package/locales/en-LR.d.ts +1 -1
  410. package/locales/en-LR.mjs +2 -2
  411. package/locales/en-LS.d.ts +1 -1
  412. package/locales/en-LS.mjs +2 -2
  413. package/locales/en-MG.d.ts +1 -1
  414. package/locales/en-MG.mjs +2 -2
  415. package/locales/en-MH.d.ts +1 -1
  416. package/locales/en-MH.mjs +2 -2
  417. package/locales/en-MO.d.ts +1 -1
  418. package/locales/en-MO.mjs +2 -2
  419. package/locales/en-MP.d.ts +1 -1
  420. package/locales/en-MP.mjs +2 -2
  421. package/locales/en-MS.d.ts +1 -1
  422. package/locales/en-MS.mjs +2 -2
  423. package/locales/en-MT.d.ts +1 -1
  424. package/locales/en-MT.mjs +2 -2
  425. package/locales/en-MU.d.ts +1 -1
  426. package/locales/en-MU.mjs +2 -2
  427. package/locales/en-MV.d.ts +1 -1
  428. package/locales/en-MV.mjs +2 -2
  429. package/locales/en-MW.d.ts +1 -1
  430. package/locales/en-MW.mjs +2 -2
  431. package/locales/en-MY.d.ts +1 -1
  432. package/locales/en-MY.mjs +2 -2
  433. package/locales/en-NA.d.ts +1 -1
  434. package/locales/en-NA.mjs +2 -2
  435. package/locales/en-NF.d.ts +1 -1
  436. package/locales/en-NF.mjs +2 -2
  437. package/locales/en-NG.d.ts +1 -1
  438. package/locales/en-NG.mjs +2 -2
  439. package/locales/en-NL.d.ts +1 -1
  440. package/locales/en-NL.mjs +2 -2
  441. package/locales/en-NR.d.ts +1 -1
  442. package/locales/en-NR.mjs +2 -2
  443. package/locales/en-NU.d.ts +1 -1
  444. package/locales/en-NU.mjs +2 -2
  445. package/locales/en-NZ.d.ts +1 -1
  446. package/locales/en-NZ.mjs +2 -2
  447. package/locales/en-PG.d.ts +1 -1
  448. package/locales/en-PG.mjs +2 -2
  449. package/locales/en-PH.d.ts +1 -1
  450. package/locales/en-PH.mjs +2 -2
  451. package/locales/en-PK.d.ts +1 -1
  452. package/locales/en-PK.mjs +2 -2
  453. package/locales/en-PN.d.ts +1 -1
  454. package/locales/en-PN.mjs +2 -2
  455. package/locales/en-PR.d.ts +1 -1
  456. package/locales/en-PR.mjs +2 -2
  457. package/locales/en-PW.d.ts +1 -1
  458. package/locales/en-PW.mjs +2 -2
  459. package/locales/en-RW.d.ts +1 -1
  460. package/locales/en-RW.mjs +2 -2
  461. package/locales/en-SB.d.ts +1 -1
  462. package/locales/en-SB.mjs +2 -2
  463. package/locales/en-SC.d.ts +1 -1
  464. package/locales/en-SC.mjs +2 -2
  465. package/locales/en-SD.d.ts +1 -1
  466. package/locales/en-SD.mjs +2 -2
  467. package/locales/en-SE.d.ts +1 -1
  468. package/locales/en-SE.mjs +2 -2
  469. package/locales/en-SG.d.ts +1 -1
  470. package/locales/en-SG.mjs +2 -2
  471. package/locales/en-SH.d.ts +1 -1
  472. package/locales/en-SH.mjs +2 -2
  473. package/locales/en-SI.d.ts +1 -1
  474. package/locales/en-SI.mjs +2 -2
  475. package/locales/en-SL.d.ts +1 -1
  476. package/locales/en-SL.mjs +2 -2
  477. package/locales/en-SS.d.ts +1 -1
  478. package/locales/en-SS.mjs +2 -2
  479. package/locales/en-SX.d.ts +1 -1
  480. package/locales/en-SX.mjs +2 -2
  481. package/locales/en-SZ.d.ts +1 -1
  482. package/locales/en-SZ.mjs +2 -2
  483. package/locales/en-TC.d.ts +1 -1
  484. package/locales/en-TC.mjs +2 -2
  485. package/locales/en-TK.d.ts +1 -1
  486. package/locales/en-TK.mjs +2 -2
  487. package/locales/en-TO.d.ts +1 -1
  488. package/locales/en-TO.mjs +2 -2
  489. package/locales/en-TT.d.ts +1 -1
  490. package/locales/en-TT.mjs +2 -2
  491. package/locales/en-TV.d.ts +1 -1
  492. package/locales/en-TV.mjs +2 -2
  493. package/locales/en-TZ.d.ts +1 -1
  494. package/locales/en-TZ.mjs +2 -2
  495. package/locales/en-UG.d.ts +1 -1
  496. package/locales/en-UG.mjs +2 -2
  497. package/locales/en-UM.d.ts +1 -1
  498. package/locales/en-UM.mjs +2 -2
  499. package/locales/en-VC.d.ts +1 -1
  500. package/locales/en-VC.mjs +2 -2
  501. package/locales/en-VG.d.ts +1 -1
  502. package/locales/en-VG.mjs +2 -2
  503. package/locales/en-VI.d.ts +1 -1
  504. package/locales/en-VI.mjs +2 -2
  505. package/locales/en-VU.d.ts +1 -1
  506. package/locales/en-VU.mjs +2 -2
  507. package/locales/en-WS.d.ts +1 -1
  508. package/locales/en-WS.mjs +2 -2
  509. package/locales/en-ZA.d.ts +1 -1
  510. package/locales/en-ZA.mjs +2 -2
  511. package/locales/en-ZM.d.ts +1 -1
  512. package/locales/en-ZM.mjs +2 -2
  513. package/locales/en-ZW.d.ts +1 -1
  514. package/locales/en-ZW.mjs +2 -2
  515. package/locales/en.d.ts +1 -1
  516. package/locales/en.mjs +2 -2
  517. package/locales/eo.d.ts +1 -1
  518. package/locales/eo.mjs +2 -2
  519. package/locales/es-419.d.ts +1 -1
  520. package/locales/es-419.mjs +2 -2
  521. package/locales/es-AR.d.ts +1 -1
  522. package/locales/es-AR.mjs +2 -2
  523. package/locales/es-BO.d.ts +1 -1
  524. package/locales/es-BO.mjs +2 -2
  525. package/locales/es-BR.d.ts +1 -1
  526. package/locales/es-BR.mjs +2 -2
  527. package/locales/es-BZ.d.ts +1 -1
  528. package/locales/es-BZ.mjs +2 -2
  529. package/locales/es-CL.d.ts +1 -1
  530. package/locales/es-CL.mjs +2 -2
  531. package/locales/es-CO.d.ts +1 -1
  532. package/locales/es-CO.mjs +2 -2
  533. package/locales/es-CR.d.ts +1 -1
  534. package/locales/es-CR.mjs +2 -2
  535. package/locales/es-CU.d.ts +1 -1
  536. package/locales/es-CU.mjs +2 -2
  537. package/locales/es-DO.d.ts +1 -1
  538. package/locales/es-DO.mjs +2 -2
  539. package/locales/es-EA.d.ts +1 -1
  540. package/locales/es-EA.mjs +2 -2
  541. package/locales/es-EC.d.ts +1 -1
  542. package/locales/es-EC.mjs +2 -2
  543. package/locales/es-GQ.d.ts +1 -1
  544. package/locales/es-GQ.mjs +2 -2
  545. package/locales/es-GT.d.ts +1 -1
  546. package/locales/es-GT.mjs +2 -2
  547. package/locales/es-HN.d.ts +1 -1
  548. package/locales/es-HN.mjs +2 -2
  549. package/locales/es-IC.d.ts +1 -1
  550. package/locales/es-IC.mjs +2 -2
  551. package/locales/es-MX.d.ts +1 -1
  552. package/locales/es-MX.mjs +2 -2
  553. package/locales/es-NI.d.ts +1 -1
  554. package/locales/es-NI.mjs +2 -2
  555. package/locales/es-PA.d.ts +1 -1
  556. package/locales/es-PA.mjs +2 -2
  557. package/locales/es-PE.d.ts +1 -1
  558. package/locales/es-PE.mjs +2 -2
  559. package/locales/es-PH.d.ts +1 -1
  560. package/locales/es-PH.mjs +2 -2
  561. package/locales/es-PR.d.ts +1 -1
  562. package/locales/es-PR.mjs +2 -2
  563. package/locales/es-PY.d.ts +1 -1
  564. package/locales/es-PY.mjs +2 -2
  565. package/locales/es-SV.d.ts +1 -1
  566. package/locales/es-SV.mjs +2 -2
  567. package/locales/es-US.d.ts +1 -1
  568. package/locales/es-US.mjs +2 -2
  569. package/locales/es-UY.d.ts +1 -1
  570. package/locales/es-UY.mjs +2 -2
  571. package/locales/es-VE.d.ts +1 -1
  572. package/locales/es-VE.mjs +2 -2
  573. package/locales/es.d.ts +1 -1
  574. package/locales/es.mjs +2 -2
  575. package/locales/et.d.ts +1 -1
  576. package/locales/et.mjs +2 -2
  577. package/locales/eu.d.ts +1 -1
  578. package/locales/eu.mjs +2 -2
  579. package/locales/ewo.d.ts +1 -1
  580. package/locales/ewo.mjs +2 -2
  581. package/locales/extra/af-NA.d.ts +1 -1
  582. package/locales/extra/af-NA.mjs +2 -2
  583. package/locales/extra/af.d.ts +1 -1
  584. package/locales/extra/af.mjs +2 -2
  585. package/locales/extra/agq.d.ts +1 -1
  586. package/locales/extra/agq.mjs +2 -2
  587. package/locales/extra/ak.d.ts +1 -1
  588. package/locales/extra/ak.mjs +2 -2
  589. package/locales/extra/am.d.ts +1 -1
  590. package/locales/extra/am.mjs +2 -2
  591. package/locales/extra/ar-AE.d.ts +1 -1
  592. package/locales/extra/ar-AE.mjs +2 -2
  593. package/locales/extra/ar-BH.d.ts +1 -1
  594. package/locales/extra/ar-BH.mjs +2 -2
  595. package/locales/extra/ar-DJ.d.ts +1 -1
  596. package/locales/extra/ar-DJ.mjs +2 -2
  597. package/locales/extra/ar-DZ.d.ts +1 -1
  598. package/locales/extra/ar-DZ.mjs +2 -2
  599. package/locales/extra/ar-EG.d.ts +1 -1
  600. package/locales/extra/ar-EG.mjs +2 -2
  601. package/locales/extra/ar-EH.d.ts +1 -1
  602. package/locales/extra/ar-EH.mjs +2 -2
  603. package/locales/extra/ar-ER.d.ts +1 -1
  604. package/locales/extra/ar-ER.mjs +2 -2
  605. package/locales/extra/ar-IL.d.ts +1 -1
  606. package/locales/extra/ar-IL.mjs +2 -2
  607. package/locales/extra/ar-IQ.d.ts +1 -1
  608. package/locales/extra/ar-IQ.mjs +2 -2
  609. package/locales/extra/ar-JO.d.ts +1 -1
  610. package/locales/extra/ar-JO.mjs +2 -2
  611. package/locales/extra/ar-KM.d.ts +1 -1
  612. package/locales/extra/ar-KM.mjs +2 -2
  613. package/locales/extra/ar-KW.d.ts +1 -1
  614. package/locales/extra/ar-KW.mjs +2 -2
  615. package/locales/extra/ar-LB.d.ts +1 -1
  616. package/locales/extra/ar-LB.mjs +2 -2
  617. package/locales/extra/ar-LY.d.ts +1 -1
  618. package/locales/extra/ar-LY.mjs +2 -2
  619. package/locales/extra/ar-MA.d.ts +1 -1
  620. package/locales/extra/ar-MA.mjs +2 -2
  621. package/locales/extra/ar-MR.d.ts +1 -1
  622. package/locales/extra/ar-MR.mjs +2 -2
  623. package/locales/extra/ar-OM.d.ts +1 -1
  624. package/locales/extra/ar-OM.mjs +2 -2
  625. package/locales/extra/ar-PS.d.ts +1 -1
  626. package/locales/extra/ar-PS.mjs +2 -2
  627. package/locales/extra/ar-QA.d.ts +1 -1
  628. package/locales/extra/ar-QA.mjs +2 -2
  629. package/locales/extra/ar-SA.d.ts +1 -1
  630. package/locales/extra/ar-SA.mjs +2 -2
  631. package/locales/extra/ar-SD.d.ts +1 -1
  632. package/locales/extra/ar-SD.mjs +2 -2
  633. package/locales/extra/ar-SO.d.ts +1 -1
  634. package/locales/extra/ar-SO.mjs +2 -2
  635. package/locales/extra/ar-SS.d.ts +1 -1
  636. package/locales/extra/ar-SS.mjs +2 -2
  637. package/locales/extra/ar-SY.d.ts +1 -1
  638. package/locales/extra/ar-SY.mjs +2 -2
  639. package/locales/extra/ar-TD.d.ts +1 -1
  640. package/locales/extra/ar-TD.mjs +2 -2
  641. package/locales/extra/ar-TN.d.ts +1 -1
  642. package/locales/extra/ar-TN.mjs +2 -2
  643. package/locales/extra/ar-YE.d.ts +1 -1
  644. package/locales/extra/ar-YE.mjs +2 -2
  645. package/locales/extra/ar.d.ts +1 -1
  646. package/locales/extra/ar.mjs +2 -2
  647. package/locales/extra/as.d.ts +1 -1
  648. package/locales/extra/as.mjs +2 -2
  649. package/locales/extra/asa.d.ts +1 -1
  650. package/locales/extra/asa.mjs +2 -2
  651. package/locales/extra/ast.d.ts +1 -1
  652. package/locales/extra/ast.mjs +2 -2
  653. package/locales/extra/az-Cyrl.d.ts +1 -1
  654. package/locales/extra/az-Cyrl.mjs +2 -2
  655. package/locales/extra/az-Latn.d.ts +1 -1
  656. package/locales/extra/az-Latn.mjs +2 -2
  657. package/locales/extra/az.d.ts +1 -1
  658. package/locales/extra/az.mjs +2 -2
  659. package/locales/extra/bas.d.ts +1 -1
  660. package/locales/extra/bas.mjs +2 -2
  661. package/locales/extra/be-tarask.d.ts +1 -1
  662. package/locales/extra/be-tarask.mjs +2 -2
  663. package/locales/extra/be.d.ts +1 -1
  664. package/locales/extra/be.mjs +2 -2
  665. package/locales/extra/bem.d.ts +1 -1
  666. package/locales/extra/bem.mjs +2 -2
  667. package/locales/extra/bez.d.ts +1 -1
  668. package/locales/extra/bez.mjs +2 -2
  669. package/locales/extra/bg.d.ts +1 -1
  670. package/locales/extra/bg.mjs +2 -2
  671. package/locales/extra/bm.d.ts +1 -1
  672. package/locales/extra/bm.mjs +2 -2
  673. package/locales/extra/bn-IN.d.ts +1 -1
  674. package/locales/extra/bn-IN.mjs +2 -2
  675. package/locales/extra/bn.d.ts +1 -1
  676. package/locales/extra/bn.mjs +2 -2
  677. package/locales/extra/bo-IN.d.ts +1 -1
  678. package/locales/extra/bo-IN.mjs +2 -2
  679. package/locales/extra/bo.d.ts +1 -1
  680. package/locales/extra/bo.mjs +2 -2
  681. package/locales/extra/br.d.ts +1 -1
  682. package/locales/extra/br.mjs +2 -2
  683. package/locales/extra/brx.d.ts +1 -1
  684. package/locales/extra/brx.mjs +2 -2
  685. package/locales/extra/bs-Cyrl.d.ts +1 -1
  686. package/locales/extra/bs-Cyrl.mjs +2 -2
  687. package/locales/extra/bs-Latn.d.ts +1 -1
  688. package/locales/extra/bs-Latn.mjs +2 -2
  689. package/locales/extra/bs.d.ts +1 -1
  690. package/locales/extra/bs.mjs +2 -2
  691. package/locales/extra/ca-AD.d.ts +1 -1
  692. package/locales/extra/ca-AD.mjs +2 -2
  693. package/locales/extra/ca-ES-valencia.d.ts +1 -1
  694. package/locales/extra/ca-ES-valencia.mjs +2 -2
  695. package/locales/extra/ca-FR.d.ts +1 -1
  696. package/locales/extra/ca-FR.mjs +2 -2
  697. package/locales/extra/ca-IT.d.ts +1 -1
  698. package/locales/extra/ca-IT.mjs +2 -2
  699. package/locales/extra/ca.d.ts +1 -1
  700. package/locales/extra/ca.mjs +2 -2
  701. package/locales/extra/ccp-IN.d.ts +1 -1
  702. package/locales/extra/ccp-IN.mjs +2 -2
  703. package/locales/extra/ccp.d.ts +1 -1
  704. package/locales/extra/ccp.mjs +2 -2
  705. package/locales/extra/ce.d.ts +1 -1
  706. package/locales/extra/ce.mjs +2 -2
  707. package/locales/extra/ceb.d.ts +1 -1
  708. package/locales/extra/ceb.mjs +2 -2
  709. package/locales/extra/cgg.d.ts +1 -1
  710. package/locales/extra/cgg.mjs +2 -2
  711. package/locales/extra/chr.d.ts +1 -1
  712. package/locales/extra/chr.mjs +2 -2
  713. package/locales/extra/ckb-IR.d.ts +1 -1
  714. package/locales/extra/ckb-IR.mjs +2 -2
  715. package/locales/extra/ckb.d.ts +1 -1
  716. package/locales/extra/ckb.mjs +2 -2
  717. package/locales/extra/cs.d.ts +1 -1
  718. package/locales/extra/cs.mjs +2 -2
  719. package/locales/extra/cy.d.ts +1 -1
  720. package/locales/extra/cy.mjs +2 -2
  721. package/locales/extra/da-GL.d.ts +1 -1
  722. package/locales/extra/da-GL.mjs +2 -2
  723. package/locales/extra/da.d.ts +1 -1
  724. package/locales/extra/da.mjs +2 -2
  725. package/locales/extra/dav.d.ts +1 -1
  726. package/locales/extra/dav.mjs +2 -2
  727. package/locales/extra/de-AT.d.ts +1 -1
  728. package/locales/extra/de-AT.mjs +2 -2
  729. package/locales/extra/de-BE.d.ts +1 -1
  730. package/locales/extra/de-BE.mjs +2 -2
  731. package/locales/extra/de-CH.d.ts +1 -1
  732. package/locales/extra/de-CH.mjs +2 -2
  733. package/locales/extra/de-IT.d.ts +1 -1
  734. package/locales/extra/de-IT.mjs +2 -2
  735. package/locales/extra/de-LI.d.ts +1 -1
  736. package/locales/extra/de-LI.mjs +2 -2
  737. package/locales/extra/de-LU.d.ts +1 -1
  738. package/locales/extra/de-LU.mjs +2 -2
  739. package/locales/extra/de.d.ts +1 -1
  740. package/locales/extra/de.mjs +2 -2
  741. package/locales/extra/dje.d.ts +1 -1
  742. package/locales/extra/dje.mjs +2 -2
  743. package/locales/extra/doi.d.ts +1 -1
  744. package/locales/extra/doi.mjs +2 -2
  745. package/locales/extra/dsb.d.ts +1 -1
  746. package/locales/extra/dsb.mjs +2 -2
  747. package/locales/extra/dua.d.ts +1 -1
  748. package/locales/extra/dua.mjs +2 -2
  749. package/locales/extra/dyo.d.ts +1 -1
  750. package/locales/extra/dyo.mjs +2 -2
  751. package/locales/extra/dz.d.ts +1 -1
  752. package/locales/extra/dz.mjs +2 -2
  753. package/locales/extra/ebu.d.ts +1 -1
  754. package/locales/extra/ebu.mjs +2 -2
  755. package/locales/extra/ee-TG.d.ts +1 -1
  756. package/locales/extra/ee-TG.mjs +2 -2
  757. package/locales/extra/ee.d.ts +1 -1
  758. package/locales/extra/ee.mjs +2 -2
  759. package/locales/extra/el-CY.d.ts +1 -1
  760. package/locales/extra/el-CY.mjs +2 -2
  761. package/locales/extra/el.d.ts +1 -1
  762. package/locales/extra/el.mjs +2 -2
  763. package/locales/extra/en-001.d.ts +1 -1
  764. package/locales/extra/en-001.mjs +2 -2
  765. package/locales/extra/en-150.d.ts +1 -1
  766. package/locales/extra/en-150.mjs +2 -2
  767. package/locales/extra/en-AE.d.ts +1 -1
  768. package/locales/extra/en-AE.mjs +2 -2
  769. package/locales/extra/en-AG.d.ts +1 -1
  770. package/locales/extra/en-AG.mjs +2 -2
  771. package/locales/extra/en-AI.d.ts +1 -1
  772. package/locales/extra/en-AI.mjs +2 -2
  773. package/locales/extra/en-AS.d.ts +1 -1
  774. package/locales/extra/en-AS.mjs +2 -2
  775. package/locales/extra/en-AT.d.ts +1 -1
  776. package/locales/extra/en-AT.mjs +2 -2
  777. package/locales/extra/en-AU.d.ts +1 -1
  778. package/locales/extra/en-AU.mjs +2 -2
  779. package/locales/extra/en-BB.d.ts +1 -1
  780. package/locales/extra/en-BB.mjs +2 -2
  781. package/locales/extra/en-BE.d.ts +1 -1
  782. package/locales/extra/en-BE.mjs +2 -2
  783. package/locales/extra/en-BI.d.ts +1 -1
  784. package/locales/extra/en-BI.mjs +2 -2
  785. package/locales/extra/en-BM.d.ts +1 -1
  786. package/locales/extra/en-BM.mjs +2 -2
  787. package/locales/extra/en-BS.d.ts +1 -1
  788. package/locales/extra/en-BS.mjs +2 -2
  789. package/locales/extra/en-BW.d.ts +1 -1
  790. package/locales/extra/en-BW.mjs +2 -2
  791. package/locales/extra/en-BZ.d.ts +1 -1
  792. package/locales/extra/en-BZ.mjs +2 -2
  793. package/locales/extra/en-CA.d.ts +1 -1
  794. package/locales/extra/en-CA.mjs +2 -2
  795. package/locales/extra/en-CC.d.ts +1 -1
  796. package/locales/extra/en-CC.mjs +2 -2
  797. package/locales/extra/en-CH.d.ts +1 -1
  798. package/locales/extra/en-CH.mjs +2 -2
  799. package/locales/extra/en-CK.d.ts +1 -1
  800. package/locales/extra/en-CK.mjs +2 -2
  801. package/locales/extra/en-CM.d.ts +1 -1
  802. package/locales/extra/en-CM.mjs +2 -2
  803. package/locales/extra/en-CX.d.ts +1 -1
  804. package/locales/extra/en-CX.mjs +2 -2
  805. package/locales/extra/en-CY.d.ts +1 -1
  806. package/locales/extra/en-CY.mjs +2 -2
  807. package/locales/extra/en-DE.d.ts +1 -1
  808. package/locales/extra/en-DE.mjs +2 -2
  809. package/locales/extra/en-DG.d.ts +1 -1
  810. package/locales/extra/en-DG.mjs +2 -2
  811. package/locales/extra/en-DK.d.ts +1 -1
  812. package/locales/extra/en-DK.mjs +2 -2
  813. package/locales/extra/en-DM.d.ts +1 -1
  814. package/locales/extra/en-DM.mjs +2 -2
  815. package/locales/extra/en-ER.d.ts +1 -1
  816. package/locales/extra/en-ER.mjs +2 -2
  817. package/locales/extra/en-FI.d.ts +1 -1
  818. package/locales/extra/en-FI.mjs +2 -2
  819. package/locales/extra/en-FJ.d.ts +1 -1
  820. package/locales/extra/en-FJ.mjs +2 -2
  821. package/locales/extra/en-FK.d.ts +1 -1
  822. package/locales/extra/en-FK.mjs +2 -2
  823. package/locales/extra/en-FM.d.ts +1 -1
  824. package/locales/extra/en-FM.mjs +2 -2
  825. package/locales/extra/en-GB.d.ts +1 -1
  826. package/locales/extra/en-GB.mjs +2 -2
  827. package/locales/extra/en-GD.d.ts +1 -1
  828. package/locales/extra/en-GD.mjs +2 -2
  829. package/locales/extra/en-GG.d.ts +1 -1
  830. package/locales/extra/en-GG.mjs +2 -2
  831. package/locales/extra/en-GH.d.ts +1 -1
  832. package/locales/extra/en-GH.mjs +2 -2
  833. package/locales/extra/en-GI.d.ts +1 -1
  834. package/locales/extra/en-GI.mjs +2 -2
  835. package/locales/extra/en-GM.d.ts +1 -1
  836. package/locales/extra/en-GM.mjs +2 -2
  837. package/locales/extra/en-GU.d.ts +1 -1
  838. package/locales/extra/en-GU.mjs +2 -2
  839. package/locales/extra/en-GY.d.ts +1 -1
  840. package/locales/extra/en-GY.mjs +2 -2
  841. package/locales/extra/en-HK.d.ts +1 -1
  842. package/locales/extra/en-HK.mjs +2 -2
  843. package/locales/extra/en-IE.d.ts +1 -1
  844. package/locales/extra/en-IE.mjs +2 -2
  845. package/locales/extra/en-IL.d.ts +1 -1
  846. package/locales/extra/en-IL.mjs +2 -2
  847. package/locales/extra/en-IM.d.ts +1 -1
  848. package/locales/extra/en-IM.mjs +2 -2
  849. package/locales/extra/en-IN.d.ts +1 -1
  850. package/locales/extra/en-IN.mjs +2 -2
  851. package/locales/extra/en-IO.d.ts +1 -1
  852. package/locales/extra/en-IO.mjs +2 -2
  853. package/locales/extra/en-JE.d.ts +1 -1
  854. package/locales/extra/en-JE.mjs +2 -2
  855. package/locales/extra/en-JM.d.ts +1 -1
  856. package/locales/extra/en-JM.mjs +2 -2
  857. package/locales/extra/en-KE.d.ts +1 -1
  858. package/locales/extra/en-KE.mjs +2 -2
  859. package/locales/extra/en-KI.d.ts +1 -1
  860. package/locales/extra/en-KI.mjs +2 -2
  861. package/locales/extra/en-KN.d.ts +1 -1
  862. package/locales/extra/en-KN.mjs +2 -2
  863. package/locales/extra/en-KY.d.ts +1 -1
  864. package/locales/extra/en-KY.mjs +2 -2
  865. package/locales/extra/en-LC.d.ts +1 -1
  866. package/locales/extra/en-LC.mjs +2 -2
  867. package/locales/extra/en-LR.d.ts +1 -1
  868. package/locales/extra/en-LR.mjs +2 -2
  869. package/locales/extra/en-LS.d.ts +1 -1
  870. package/locales/extra/en-LS.mjs +2 -2
  871. package/locales/extra/en-MG.d.ts +1 -1
  872. package/locales/extra/en-MG.mjs +2 -2
  873. package/locales/extra/en-MH.d.ts +1 -1
  874. package/locales/extra/en-MH.mjs +2 -2
  875. package/locales/extra/en-MO.d.ts +1 -1
  876. package/locales/extra/en-MO.mjs +2 -2
  877. package/locales/extra/en-MP.d.ts +1 -1
  878. package/locales/extra/en-MP.mjs +2 -2
  879. package/locales/extra/en-MS.d.ts +1 -1
  880. package/locales/extra/en-MS.mjs +2 -2
  881. package/locales/extra/en-MT.d.ts +1 -1
  882. package/locales/extra/en-MT.mjs +2 -2
  883. package/locales/extra/en-MU.d.ts +1 -1
  884. package/locales/extra/en-MU.mjs +2 -2
  885. package/locales/extra/en-MV.d.ts +1 -1
  886. package/locales/extra/en-MV.mjs +2 -2
  887. package/locales/extra/en-MW.d.ts +1 -1
  888. package/locales/extra/en-MW.mjs +2 -2
  889. package/locales/extra/en-MY.d.ts +1 -1
  890. package/locales/extra/en-MY.mjs +2 -2
  891. package/locales/extra/en-NA.d.ts +1 -1
  892. package/locales/extra/en-NA.mjs +2 -2
  893. package/locales/extra/en-NF.d.ts +1 -1
  894. package/locales/extra/en-NF.mjs +2 -2
  895. package/locales/extra/en-NG.d.ts +1 -1
  896. package/locales/extra/en-NG.mjs +2 -2
  897. package/locales/extra/en-NL.d.ts +1 -1
  898. package/locales/extra/en-NL.mjs +2 -2
  899. package/locales/extra/en-NR.d.ts +1 -1
  900. package/locales/extra/en-NR.mjs +2 -2
  901. package/locales/extra/en-NU.d.ts +1 -1
  902. package/locales/extra/en-NU.mjs +2 -2
  903. package/locales/extra/en-NZ.d.ts +1 -1
  904. package/locales/extra/en-NZ.mjs +2 -2
  905. package/locales/extra/en-PG.d.ts +1 -1
  906. package/locales/extra/en-PG.mjs +2 -2
  907. package/locales/extra/en-PH.d.ts +1 -1
  908. package/locales/extra/en-PH.mjs +2 -2
  909. package/locales/extra/en-PK.d.ts +1 -1
  910. package/locales/extra/en-PK.mjs +2 -2
  911. package/locales/extra/en-PN.d.ts +1 -1
  912. package/locales/extra/en-PN.mjs +2 -2
  913. package/locales/extra/en-PR.d.ts +1 -1
  914. package/locales/extra/en-PR.mjs +2 -2
  915. package/locales/extra/en-PW.d.ts +1 -1
  916. package/locales/extra/en-PW.mjs +2 -2
  917. package/locales/extra/en-RW.d.ts +1 -1
  918. package/locales/extra/en-RW.mjs +2 -2
  919. package/locales/extra/en-SB.d.ts +1 -1
  920. package/locales/extra/en-SB.mjs +2 -2
  921. package/locales/extra/en-SC.d.ts +1 -1
  922. package/locales/extra/en-SC.mjs +2 -2
  923. package/locales/extra/en-SD.d.ts +1 -1
  924. package/locales/extra/en-SD.mjs +2 -2
  925. package/locales/extra/en-SE.d.ts +1 -1
  926. package/locales/extra/en-SE.mjs +2 -2
  927. package/locales/extra/en-SG.d.ts +1 -1
  928. package/locales/extra/en-SG.mjs +2 -2
  929. package/locales/extra/en-SH.d.ts +1 -1
  930. package/locales/extra/en-SH.mjs +2 -2
  931. package/locales/extra/en-SI.d.ts +1 -1
  932. package/locales/extra/en-SI.mjs +2 -2
  933. package/locales/extra/en-SL.d.ts +1 -1
  934. package/locales/extra/en-SL.mjs +2 -2
  935. package/locales/extra/en-SS.d.ts +1 -1
  936. package/locales/extra/en-SS.mjs +2 -2
  937. package/locales/extra/en-SX.d.ts +1 -1
  938. package/locales/extra/en-SX.mjs +2 -2
  939. package/locales/extra/en-SZ.d.ts +1 -1
  940. package/locales/extra/en-SZ.mjs +2 -2
  941. package/locales/extra/en-TC.d.ts +1 -1
  942. package/locales/extra/en-TC.mjs +2 -2
  943. package/locales/extra/en-TK.d.ts +1 -1
  944. package/locales/extra/en-TK.mjs +2 -2
  945. package/locales/extra/en-TO.d.ts +1 -1
  946. package/locales/extra/en-TO.mjs +2 -2
  947. package/locales/extra/en-TT.d.ts +1 -1
  948. package/locales/extra/en-TT.mjs +2 -2
  949. package/locales/extra/en-TV.d.ts +1 -1
  950. package/locales/extra/en-TV.mjs +2 -2
  951. package/locales/extra/en-TZ.d.ts +1 -1
  952. package/locales/extra/en-TZ.mjs +2 -2
  953. package/locales/extra/en-UG.d.ts +1 -1
  954. package/locales/extra/en-UG.mjs +2 -2
  955. package/locales/extra/en-UM.d.ts +1 -1
  956. package/locales/extra/en-UM.mjs +2 -2
  957. package/locales/extra/en-VC.d.ts +1 -1
  958. package/locales/extra/en-VC.mjs +2 -2
  959. package/locales/extra/en-VG.d.ts +1 -1
  960. package/locales/extra/en-VG.mjs +2 -2
  961. package/locales/extra/en-VI.d.ts +1 -1
  962. package/locales/extra/en-VI.mjs +2 -2
  963. package/locales/extra/en-VU.d.ts +1 -1
  964. package/locales/extra/en-VU.mjs +2 -2
  965. package/locales/extra/en-WS.d.ts +1 -1
  966. package/locales/extra/en-WS.mjs +2 -2
  967. package/locales/extra/en-ZA.d.ts +1 -1
  968. package/locales/extra/en-ZA.mjs +2 -2
  969. package/locales/extra/en-ZM.d.ts +1 -1
  970. package/locales/extra/en-ZM.mjs +2 -2
  971. package/locales/extra/en-ZW.d.ts +1 -1
  972. package/locales/extra/en-ZW.mjs +2 -2
  973. package/locales/extra/en.d.ts +1 -1
  974. package/locales/extra/en.mjs +2 -2
  975. package/locales/extra/eo.d.ts +1 -1
  976. package/locales/extra/eo.mjs +2 -2
  977. package/locales/extra/es-419.d.ts +1 -1
  978. package/locales/extra/es-419.mjs +2 -2
  979. package/locales/extra/es-AR.d.ts +1 -1
  980. package/locales/extra/es-AR.mjs +2 -2
  981. package/locales/extra/es-BO.d.ts +1 -1
  982. package/locales/extra/es-BO.mjs +2 -2
  983. package/locales/extra/es-BR.d.ts +1 -1
  984. package/locales/extra/es-BR.mjs +2 -2
  985. package/locales/extra/es-BZ.d.ts +1 -1
  986. package/locales/extra/es-BZ.mjs +2 -2
  987. package/locales/extra/es-CL.d.ts +1 -1
  988. package/locales/extra/es-CL.mjs +2 -2
  989. package/locales/extra/es-CO.d.ts +1 -1
  990. package/locales/extra/es-CO.mjs +2 -2
  991. package/locales/extra/es-CR.d.ts +1 -1
  992. package/locales/extra/es-CR.mjs +2 -2
  993. package/locales/extra/es-CU.d.ts +1 -1
  994. package/locales/extra/es-CU.mjs +2 -2
  995. package/locales/extra/es-DO.d.ts +1 -1
  996. package/locales/extra/es-DO.mjs +2 -2
  997. package/locales/extra/es-EA.d.ts +1 -1
  998. package/locales/extra/es-EA.mjs +2 -2
  999. package/locales/extra/es-EC.d.ts +1 -1
  1000. package/locales/extra/es-EC.mjs +2 -2
  1001. package/locales/extra/es-GQ.d.ts +1 -1
  1002. package/locales/extra/es-GQ.mjs +2 -2
  1003. package/locales/extra/es-GT.d.ts +1 -1
  1004. package/locales/extra/es-GT.mjs +2 -2
  1005. package/locales/extra/es-HN.d.ts +1 -1
  1006. package/locales/extra/es-HN.mjs +2 -2
  1007. package/locales/extra/es-IC.d.ts +1 -1
  1008. package/locales/extra/es-IC.mjs +2 -2
  1009. package/locales/extra/es-MX.d.ts +1 -1
  1010. package/locales/extra/es-MX.mjs +2 -2
  1011. package/locales/extra/es-NI.d.ts +1 -1
  1012. package/locales/extra/es-NI.mjs +2 -2
  1013. package/locales/extra/es-PA.d.ts +1 -1
  1014. package/locales/extra/es-PA.mjs +2 -2
  1015. package/locales/extra/es-PE.d.ts +1 -1
  1016. package/locales/extra/es-PE.mjs +2 -2
  1017. package/locales/extra/es-PH.d.ts +1 -1
  1018. package/locales/extra/es-PH.mjs +2 -2
  1019. package/locales/extra/es-PR.d.ts +1 -1
  1020. package/locales/extra/es-PR.mjs +2 -2
  1021. package/locales/extra/es-PY.d.ts +1 -1
  1022. package/locales/extra/es-PY.mjs +2 -2
  1023. package/locales/extra/es-SV.d.ts +1 -1
  1024. package/locales/extra/es-SV.mjs +2 -2
  1025. package/locales/extra/es-US.d.ts +1 -1
  1026. package/locales/extra/es-US.mjs +2 -2
  1027. package/locales/extra/es-UY.d.ts +1 -1
  1028. package/locales/extra/es-UY.mjs +2 -2
  1029. package/locales/extra/es-VE.d.ts +1 -1
  1030. package/locales/extra/es-VE.mjs +2 -2
  1031. package/locales/extra/es.d.ts +1 -1
  1032. package/locales/extra/es.mjs +2 -2
  1033. package/locales/extra/et.d.ts +1 -1
  1034. package/locales/extra/et.mjs +2 -2
  1035. package/locales/extra/eu.d.ts +1 -1
  1036. package/locales/extra/eu.mjs +2 -2
  1037. package/locales/extra/ewo.d.ts +1 -1
  1038. package/locales/extra/ewo.mjs +2 -2
  1039. package/locales/extra/fa-AF.d.ts +1 -1
  1040. package/locales/extra/fa-AF.mjs +2 -2
  1041. package/locales/extra/fa.d.ts +1 -1
  1042. package/locales/extra/fa.mjs +2 -2
  1043. package/locales/extra/ff-Adlm-BF.d.ts +1 -1
  1044. package/locales/extra/ff-Adlm-BF.mjs +2 -2
  1045. package/locales/extra/ff-Adlm-CM.d.ts +1 -1
  1046. package/locales/extra/ff-Adlm-CM.mjs +2 -2
  1047. package/locales/extra/ff-Adlm-GH.d.ts +1 -1
  1048. package/locales/extra/ff-Adlm-GH.mjs +2 -2
  1049. package/locales/extra/ff-Adlm-GM.d.ts +1 -1
  1050. package/locales/extra/ff-Adlm-GM.mjs +2 -2
  1051. package/locales/extra/ff-Adlm-GW.d.ts +1 -1
  1052. package/locales/extra/ff-Adlm-GW.mjs +2 -2
  1053. package/locales/extra/ff-Adlm-LR.d.ts +1 -1
  1054. package/locales/extra/ff-Adlm-LR.mjs +2 -2
  1055. package/locales/extra/ff-Adlm-MR.d.ts +1 -1
  1056. package/locales/extra/ff-Adlm-MR.mjs +2 -2
  1057. package/locales/extra/ff-Adlm-NE.d.ts +1 -1
  1058. package/locales/extra/ff-Adlm-NE.mjs +2 -2
  1059. package/locales/extra/ff-Adlm-NG.d.ts +1 -1
  1060. package/locales/extra/ff-Adlm-NG.mjs +2 -2
  1061. package/locales/extra/ff-Adlm-SL.d.ts +1 -1
  1062. package/locales/extra/ff-Adlm-SL.mjs +2 -2
  1063. package/locales/extra/ff-Adlm-SN.d.ts +1 -1
  1064. package/locales/extra/ff-Adlm-SN.mjs +2 -2
  1065. package/locales/extra/ff-Adlm.d.ts +1 -1
  1066. package/locales/extra/ff-Adlm.mjs +2 -2
  1067. package/locales/extra/ff-CM.d.ts +1 -1
  1068. package/locales/extra/ff-CM.mjs +2 -2
  1069. package/locales/extra/ff-GN.d.ts +1 -1
  1070. package/locales/extra/ff-GN.mjs +2 -2
  1071. package/locales/extra/ff-Latn-BF.d.ts +1 -1
  1072. package/locales/extra/ff-Latn-BF.mjs +2 -2
  1073. package/locales/extra/ff-Latn-CM.d.ts +1 -1
  1074. package/locales/extra/ff-Latn-CM.mjs +2 -2
  1075. package/locales/extra/ff-Latn-GH.d.ts +1 -1
  1076. package/locales/extra/ff-Latn-GH.mjs +2 -2
  1077. package/locales/extra/ff-Latn-GM.d.ts +1 -1
  1078. package/locales/extra/ff-Latn-GM.mjs +2 -2
  1079. package/locales/extra/ff-Latn-GN.d.ts +1 -1
  1080. package/locales/extra/ff-Latn-GN.mjs +2 -2
  1081. package/locales/extra/ff-Latn-GW.d.ts +1 -1
  1082. package/locales/extra/ff-Latn-GW.mjs +2 -2
  1083. package/locales/extra/ff-Latn-LR.d.ts +1 -1
  1084. package/locales/extra/ff-Latn-LR.mjs +2 -2
  1085. package/locales/extra/ff-Latn-MR.d.ts +1 -1
  1086. package/locales/extra/ff-Latn-MR.mjs +2 -2
  1087. package/locales/extra/ff-Latn-NE.d.ts +1 -1
  1088. package/locales/extra/ff-Latn-NE.mjs +2 -2
  1089. package/locales/extra/ff-Latn-NG.d.ts +1 -1
  1090. package/locales/extra/ff-Latn-NG.mjs +2 -2
  1091. package/locales/extra/ff-Latn-SL.d.ts +1 -1
  1092. package/locales/extra/ff-Latn-SL.mjs +2 -2
  1093. package/locales/extra/ff-Latn.d.ts +1 -1
  1094. package/locales/extra/ff-Latn.mjs +2 -2
  1095. package/locales/extra/ff-MR.d.ts +1 -1
  1096. package/locales/extra/ff-MR.mjs +2 -2
  1097. package/locales/extra/ff.d.ts +1 -1
  1098. package/locales/extra/ff.mjs +2 -2
  1099. package/locales/extra/fi.d.ts +1 -1
  1100. package/locales/extra/fi.mjs +2 -2
  1101. package/locales/extra/fil.d.ts +1 -1
  1102. package/locales/extra/fil.mjs +2 -2
  1103. package/locales/extra/fo-DK.d.ts +1 -1
  1104. package/locales/extra/fo-DK.mjs +2 -2
  1105. package/locales/extra/fo.d.ts +1 -1
  1106. package/locales/extra/fo.mjs +2 -2
  1107. package/locales/extra/fr-BE.d.ts +1 -1
  1108. package/locales/extra/fr-BE.mjs +2 -2
  1109. package/locales/extra/fr-BF.d.ts +1 -1
  1110. package/locales/extra/fr-BF.mjs +2 -2
  1111. package/locales/extra/fr-BI.d.ts +1 -1
  1112. package/locales/extra/fr-BI.mjs +2 -2
  1113. package/locales/extra/fr-BJ.d.ts +1 -1
  1114. package/locales/extra/fr-BJ.mjs +2 -2
  1115. package/locales/extra/fr-BL.d.ts +1 -1
  1116. package/locales/extra/fr-BL.mjs +2 -2
  1117. package/locales/extra/fr-CA.d.ts +1 -1
  1118. package/locales/extra/fr-CA.mjs +2 -2
  1119. package/locales/extra/fr-CD.d.ts +1 -1
  1120. package/locales/extra/fr-CD.mjs +2 -2
  1121. package/locales/extra/fr-CF.d.ts +1 -1
  1122. package/locales/extra/fr-CF.mjs +2 -2
  1123. package/locales/extra/fr-CG.d.ts +1 -1
  1124. package/locales/extra/fr-CG.mjs +2 -2
  1125. package/locales/extra/fr-CH.d.ts +1 -1
  1126. package/locales/extra/fr-CH.mjs +2 -2
  1127. package/locales/extra/fr-CI.d.ts +1 -1
  1128. package/locales/extra/fr-CI.mjs +2 -2
  1129. package/locales/extra/fr-CM.d.ts +1 -1
  1130. package/locales/extra/fr-CM.mjs +2 -2
  1131. package/locales/extra/fr-DJ.d.ts +1 -1
  1132. package/locales/extra/fr-DJ.mjs +2 -2
  1133. package/locales/extra/fr-DZ.d.ts +1 -1
  1134. package/locales/extra/fr-DZ.mjs +2 -2
  1135. package/locales/extra/fr-GA.d.ts +1 -1
  1136. package/locales/extra/fr-GA.mjs +2 -2
  1137. package/locales/extra/fr-GF.d.ts +1 -1
  1138. package/locales/extra/fr-GF.mjs +2 -2
  1139. package/locales/extra/fr-GN.d.ts +1 -1
  1140. package/locales/extra/fr-GN.mjs +2 -2
  1141. package/locales/extra/fr-GP.d.ts +1 -1
  1142. package/locales/extra/fr-GP.mjs +2 -2
  1143. package/locales/extra/fr-GQ.d.ts +1 -1
  1144. package/locales/extra/fr-GQ.mjs +2 -2
  1145. package/locales/extra/fr-HT.d.ts +1 -1
  1146. package/locales/extra/fr-HT.mjs +2 -2
  1147. package/locales/extra/fr-KM.d.ts +1 -1
  1148. package/locales/extra/fr-KM.mjs +2 -2
  1149. package/locales/extra/fr-LU.d.ts +1 -1
  1150. package/locales/extra/fr-LU.mjs +2 -2
  1151. package/locales/extra/fr-MA.d.ts +1 -1
  1152. package/locales/extra/fr-MA.mjs +2 -2
  1153. package/locales/extra/fr-MC.d.ts +1 -1
  1154. package/locales/extra/fr-MC.mjs +2 -2
  1155. package/locales/extra/fr-MF.d.ts +1 -1
  1156. package/locales/extra/fr-MF.mjs +2 -2
  1157. package/locales/extra/fr-MG.d.ts +1 -1
  1158. package/locales/extra/fr-MG.mjs +2 -2
  1159. package/locales/extra/fr-ML.d.ts +1 -1
  1160. package/locales/extra/fr-ML.mjs +2 -2
  1161. package/locales/extra/fr-MQ.d.ts +1 -1
  1162. package/locales/extra/fr-MQ.mjs +2 -2
  1163. package/locales/extra/fr-MR.d.ts +1 -1
  1164. package/locales/extra/fr-MR.mjs +2 -2
  1165. package/locales/extra/fr-MU.d.ts +1 -1
  1166. package/locales/extra/fr-MU.mjs +2 -2
  1167. package/locales/extra/fr-NC.d.ts +1 -1
  1168. package/locales/extra/fr-NC.mjs +2 -2
  1169. package/locales/extra/fr-NE.d.ts +1 -1
  1170. package/locales/extra/fr-NE.mjs +2 -2
  1171. package/locales/extra/fr-PF.d.ts +1 -1
  1172. package/locales/extra/fr-PF.mjs +2 -2
  1173. package/locales/extra/fr-PM.d.ts +1 -1
  1174. package/locales/extra/fr-PM.mjs +2 -2
  1175. package/locales/extra/fr-RE.d.ts +1 -1
  1176. package/locales/extra/fr-RE.mjs +2 -2
  1177. package/locales/extra/fr-RW.d.ts +1 -1
  1178. package/locales/extra/fr-RW.mjs +2 -2
  1179. package/locales/extra/fr-SC.d.ts +1 -1
  1180. package/locales/extra/fr-SC.mjs +2 -2
  1181. package/locales/extra/fr-SN.d.ts +1 -1
  1182. package/locales/extra/fr-SN.mjs +2 -2
  1183. package/locales/extra/fr-SY.d.ts +1 -1
  1184. package/locales/extra/fr-SY.mjs +2 -2
  1185. package/locales/extra/fr-TD.d.ts +1 -1
  1186. package/locales/extra/fr-TD.mjs +2 -2
  1187. package/locales/extra/fr-TG.d.ts +1 -1
  1188. package/locales/extra/fr-TG.mjs +2 -2
  1189. package/locales/extra/fr-TN.d.ts +1 -1
  1190. package/locales/extra/fr-TN.mjs +2 -2
  1191. package/locales/extra/fr-VU.d.ts +1 -1
  1192. package/locales/extra/fr-VU.mjs +2 -2
  1193. package/locales/extra/fr-WF.d.ts +1 -1
  1194. package/locales/extra/fr-WF.mjs +2 -2
  1195. package/locales/extra/fr-YT.d.ts +1 -1
  1196. package/locales/extra/fr-YT.mjs +2 -2
  1197. package/locales/extra/fr.d.ts +1 -1
  1198. package/locales/extra/fr.mjs +2 -2
  1199. package/locales/extra/fur.d.ts +1 -1
  1200. package/locales/extra/fur.mjs +2 -2
  1201. package/locales/extra/fy.d.ts +1 -1
  1202. package/locales/extra/fy.mjs +2 -2
  1203. package/locales/extra/ga-GB.d.ts +1 -1
  1204. package/locales/extra/ga-GB.mjs +2 -2
  1205. package/locales/extra/ga.d.ts +1 -1
  1206. package/locales/extra/ga.mjs +2 -2
  1207. package/locales/extra/gd.d.ts +1 -1
  1208. package/locales/extra/gd.mjs +2 -2
  1209. package/locales/extra/gl.d.ts +1 -1
  1210. package/locales/extra/gl.mjs +2 -2
  1211. package/locales/extra/gsw-FR.d.ts +1 -1
  1212. package/locales/extra/gsw-FR.mjs +2 -2
  1213. package/locales/extra/gsw-LI.d.ts +1 -1
  1214. package/locales/extra/gsw-LI.mjs +2 -2
  1215. package/locales/extra/gsw.d.ts +1 -1
  1216. package/locales/extra/gsw.mjs +2 -2
  1217. package/locales/extra/gu.d.ts +1 -1
  1218. package/locales/extra/gu.mjs +2 -2
  1219. package/locales/extra/guz.d.ts +1 -1
  1220. package/locales/extra/guz.mjs +2 -2
  1221. package/locales/extra/gv.d.ts +1 -1
  1222. package/locales/extra/gv.mjs +2 -2
  1223. package/locales/extra/ha-GH.d.ts +1 -1
  1224. package/locales/extra/ha-GH.mjs +2 -2
  1225. package/locales/extra/ha-NE.d.ts +1 -1
  1226. package/locales/extra/ha-NE.mjs +2 -2
  1227. package/locales/extra/ha.d.ts +1 -1
  1228. package/locales/extra/ha.mjs +2 -2
  1229. package/locales/extra/haw.d.ts +1 -1
  1230. package/locales/extra/haw.mjs +2 -2
  1231. package/locales/extra/he.d.ts +1 -1
  1232. package/locales/extra/he.mjs +2 -2
  1233. package/locales/extra/hi-Latn.d.ts +1 -1
  1234. package/locales/extra/hi-Latn.mjs +2 -2
  1235. package/locales/extra/hi.d.ts +1 -1
  1236. package/locales/extra/hi.mjs +2 -2
  1237. package/locales/extra/hr-BA.d.ts +1 -1
  1238. package/locales/extra/hr-BA.mjs +2 -2
  1239. package/locales/extra/hr.d.ts +1 -1
  1240. package/locales/extra/hr.mjs +2 -2
  1241. package/locales/extra/hsb.d.ts +1 -1
  1242. package/locales/extra/hsb.mjs +2 -2
  1243. package/locales/extra/hu.d.ts +1 -1
  1244. package/locales/extra/hu.mjs +2 -2
  1245. package/locales/extra/hy.d.ts +1 -1
  1246. package/locales/extra/hy.mjs +2 -2
  1247. package/locales/extra/ia.d.ts +1 -1
  1248. package/locales/extra/ia.mjs +2 -2
  1249. package/locales/extra/id.d.ts +1 -1
  1250. package/locales/extra/id.mjs +2 -2
  1251. package/locales/extra/ig.d.ts +1 -1
  1252. package/locales/extra/ig.mjs +2 -2
  1253. package/locales/extra/ii.d.ts +1 -1
  1254. package/locales/extra/ii.mjs +2 -2
  1255. package/locales/extra/is.d.ts +1 -1
  1256. package/locales/extra/is.mjs +2 -2
  1257. package/locales/extra/it-CH.d.ts +1 -1
  1258. package/locales/extra/it-CH.mjs +2 -2
  1259. package/locales/extra/it-SM.d.ts +1 -1
  1260. package/locales/extra/it-SM.mjs +2 -2
  1261. package/locales/extra/it-VA.d.ts +1 -1
  1262. package/locales/extra/it-VA.mjs +2 -2
  1263. package/locales/extra/it.d.ts +1 -1
  1264. package/locales/extra/it.mjs +2 -2
  1265. package/locales/extra/ja.d.ts +1 -1
  1266. package/locales/extra/ja.mjs +2 -2
  1267. package/locales/extra/jgo.d.ts +1 -1
  1268. package/locales/extra/jgo.mjs +2 -2
  1269. package/locales/extra/jmc.d.ts +1 -1
  1270. package/locales/extra/jmc.mjs +2 -2
  1271. package/locales/extra/jv.d.ts +1 -1
  1272. package/locales/extra/jv.mjs +2 -2
  1273. package/locales/extra/ka.d.ts +1 -1
  1274. package/locales/extra/ka.mjs +2 -2
  1275. package/locales/extra/kab.d.ts +1 -1
  1276. package/locales/extra/kab.mjs +2 -2
  1277. package/locales/extra/kam.d.ts +1 -1
  1278. package/locales/extra/kam.mjs +2 -2
  1279. package/locales/extra/kde.d.ts +1 -1
  1280. package/locales/extra/kde.mjs +2 -2
  1281. package/locales/extra/kea.d.ts +1 -1
  1282. package/locales/extra/kea.mjs +2 -2
  1283. package/locales/extra/kgp.d.ts +1 -1
  1284. package/locales/extra/kgp.mjs +2 -2
  1285. package/locales/extra/khq.d.ts +1 -1
  1286. package/locales/extra/khq.mjs +2 -2
  1287. package/locales/extra/ki.d.ts +1 -1
  1288. package/locales/extra/ki.mjs +2 -2
  1289. package/locales/extra/kk.d.ts +1 -1
  1290. package/locales/extra/kk.mjs +2 -2
  1291. package/locales/extra/kkj.d.ts +1 -1
  1292. package/locales/extra/kkj.mjs +2 -2
  1293. package/locales/extra/kl.d.ts +1 -1
  1294. package/locales/extra/kl.mjs +2 -2
  1295. package/locales/extra/kln.d.ts +1 -1
  1296. package/locales/extra/kln.mjs +2 -2
  1297. package/locales/extra/km.d.ts +1 -1
  1298. package/locales/extra/km.mjs +2 -2
  1299. package/locales/extra/kn.d.ts +1 -1
  1300. package/locales/extra/kn.mjs +2 -2
  1301. package/locales/extra/ko-KP.d.ts +1 -1
  1302. package/locales/extra/ko-KP.mjs +2 -2
  1303. package/locales/extra/ko.d.ts +1 -1
  1304. package/locales/extra/ko.mjs +2 -2
  1305. package/locales/extra/kok.d.ts +1 -1
  1306. package/locales/extra/kok.mjs +2 -2
  1307. package/locales/extra/ks-Arab.d.ts +1 -1
  1308. package/locales/extra/ks-Arab.mjs +2 -2
  1309. package/locales/extra/ks-Deva.d.ts +1 -1
  1310. package/locales/extra/ks-Deva.mjs +2 -2
  1311. package/locales/extra/ks.d.ts +1 -1
  1312. package/locales/extra/ks.mjs +2 -2
  1313. package/locales/extra/ksb.d.ts +1 -1
  1314. package/locales/extra/ksb.mjs +2 -2
  1315. package/locales/extra/ksf.d.ts +1 -1
  1316. package/locales/extra/ksf.mjs +2 -2
  1317. package/locales/extra/ksh.d.ts +1 -1
  1318. package/locales/extra/ksh.mjs +2 -2
  1319. package/locales/extra/ku.d.ts +1 -1
  1320. package/locales/extra/ku.mjs +2 -2
  1321. package/locales/extra/kw.d.ts +1 -1
  1322. package/locales/extra/kw.mjs +2 -2
  1323. package/locales/extra/ky.d.ts +1 -1
  1324. package/locales/extra/ky.mjs +2 -2
  1325. package/locales/extra/lag.d.ts +1 -1
  1326. package/locales/extra/lag.mjs +2 -2
  1327. package/locales/extra/lb.d.ts +1 -1
  1328. package/locales/extra/lb.mjs +2 -2
  1329. package/locales/extra/lg.d.ts +1 -1
  1330. package/locales/extra/lg.mjs +2 -2
  1331. package/locales/extra/lkt.d.ts +1 -1
  1332. package/locales/extra/lkt.mjs +2 -2
  1333. package/locales/extra/ln-AO.d.ts +1 -1
  1334. package/locales/extra/ln-AO.mjs +2 -2
  1335. package/locales/extra/ln-CF.d.ts +1 -1
  1336. package/locales/extra/ln-CF.mjs +2 -2
  1337. package/locales/extra/ln-CG.d.ts +1 -1
  1338. package/locales/extra/ln-CG.mjs +2 -2
  1339. package/locales/extra/ln.d.ts +1 -1
  1340. package/locales/extra/ln.mjs +2 -2
  1341. package/locales/extra/lo.d.ts +1 -1
  1342. package/locales/extra/lo.mjs +2 -2
  1343. package/locales/extra/lrc-IQ.d.ts +1 -1
  1344. package/locales/extra/lrc-IQ.mjs +2 -2
  1345. package/locales/extra/lrc.d.ts +1 -1
  1346. package/locales/extra/lrc.mjs +2 -2
  1347. package/locales/extra/lt.d.ts +1 -1
  1348. package/locales/extra/lt.mjs +2 -2
  1349. package/locales/extra/lu.d.ts +1 -1
  1350. package/locales/extra/lu.mjs +2 -2
  1351. package/locales/extra/luo.d.ts +1 -1
  1352. package/locales/extra/luo.mjs +2 -2
  1353. package/locales/extra/luy.d.ts +1 -1
  1354. package/locales/extra/luy.mjs +2 -2
  1355. package/locales/extra/lv.d.ts +1 -1
  1356. package/locales/extra/lv.mjs +2 -2
  1357. package/locales/extra/mai.d.ts +1 -1
  1358. package/locales/extra/mai.mjs +2 -2
  1359. package/locales/extra/mas-TZ.d.ts +1 -1
  1360. package/locales/extra/mas-TZ.mjs +2 -2
  1361. package/locales/extra/mas.d.ts +1 -1
  1362. package/locales/extra/mas.mjs +2 -2
  1363. package/locales/extra/mer.d.ts +1 -1
  1364. package/locales/extra/mer.mjs +2 -2
  1365. package/locales/extra/mfe.d.ts +1 -1
  1366. package/locales/extra/mfe.mjs +2 -2
  1367. package/locales/extra/mg.d.ts +1 -1
  1368. package/locales/extra/mg.mjs +2 -2
  1369. package/locales/extra/mgh.d.ts +1 -1
  1370. package/locales/extra/mgh.mjs +2 -2
  1371. package/locales/extra/mgo.d.ts +1 -1
  1372. package/locales/extra/mgo.mjs +2 -2
  1373. package/locales/extra/mi.d.ts +1 -1
  1374. package/locales/extra/mi.mjs +2 -2
  1375. package/locales/extra/mk.d.ts +1 -1
  1376. package/locales/extra/mk.mjs +2 -2
  1377. package/locales/extra/ml.d.ts +1 -1
  1378. package/locales/extra/ml.mjs +2 -2
  1379. package/locales/extra/mn.d.ts +1 -1
  1380. package/locales/extra/mn.mjs +2 -2
  1381. package/locales/extra/mni-Beng.d.ts +1 -1
  1382. package/locales/extra/mni-Beng.mjs +2 -2
  1383. package/locales/extra/mni.d.ts +1 -1
  1384. package/locales/extra/mni.mjs +2 -2
  1385. package/locales/extra/mr.d.ts +1 -1
  1386. package/locales/extra/mr.mjs +2 -2
  1387. package/locales/extra/ms-BN.d.ts +1 -1
  1388. package/locales/extra/ms-BN.mjs +2 -2
  1389. package/locales/extra/ms-ID.d.ts +1 -1
  1390. package/locales/extra/ms-ID.mjs +2 -2
  1391. package/locales/extra/ms-SG.d.ts +1 -1
  1392. package/locales/extra/ms-SG.mjs +2 -2
  1393. package/locales/extra/ms.d.ts +1 -1
  1394. package/locales/extra/ms.mjs +2 -2
  1395. package/locales/extra/mt.d.ts +1 -1
  1396. package/locales/extra/mt.mjs +2 -2
  1397. package/locales/extra/mua.d.ts +1 -1
  1398. package/locales/extra/mua.mjs +2 -2
  1399. package/locales/extra/my.d.ts +1 -1
  1400. package/locales/extra/my.mjs +2 -2
  1401. package/locales/extra/mzn.d.ts +1 -1
  1402. package/locales/extra/mzn.mjs +2 -2
  1403. package/locales/extra/naq.d.ts +1 -1
  1404. package/locales/extra/naq.mjs +2 -2
  1405. package/locales/extra/nb-SJ.d.ts +1 -1
  1406. package/locales/extra/nb-SJ.mjs +2 -2
  1407. package/locales/extra/nb.d.ts +1 -1
  1408. package/locales/extra/nb.mjs +2 -2
  1409. package/locales/extra/nd.d.ts +1 -1
  1410. package/locales/extra/nd.mjs +2 -2
  1411. package/locales/extra/nds-NL.d.ts +1 -1
  1412. package/locales/extra/nds-NL.mjs +2 -2
  1413. package/locales/extra/nds.d.ts +1 -1
  1414. package/locales/extra/nds.mjs +2 -2
  1415. package/locales/extra/ne-IN.d.ts +1 -1
  1416. package/locales/extra/ne-IN.mjs +2 -2
  1417. package/locales/extra/ne.d.ts +1 -1
  1418. package/locales/extra/ne.mjs +2 -2
  1419. package/locales/extra/nl-AW.d.ts +1 -1
  1420. package/locales/extra/nl-AW.mjs +2 -2
  1421. package/locales/extra/nl-BE.d.ts +1 -1
  1422. package/locales/extra/nl-BE.mjs +2 -2
  1423. package/locales/extra/nl-BQ.d.ts +1 -1
  1424. package/locales/extra/nl-BQ.mjs +2 -2
  1425. package/locales/extra/nl-CW.d.ts +1 -1
  1426. package/locales/extra/nl-CW.mjs +2 -2
  1427. package/locales/extra/nl-SR.d.ts +1 -1
  1428. package/locales/extra/nl-SR.mjs +2 -2
  1429. package/locales/extra/nl-SX.d.ts +1 -1
  1430. package/locales/extra/nl-SX.mjs +2 -2
  1431. package/locales/extra/nl.d.ts +1 -1
  1432. package/locales/extra/nl.mjs +2 -2
  1433. package/locales/extra/nmg.d.ts +1 -1
  1434. package/locales/extra/nmg.mjs +2 -2
  1435. package/locales/extra/nn.d.ts +1 -1
  1436. package/locales/extra/nn.mjs +2 -2
  1437. package/locales/extra/nnh.d.ts +1 -1
  1438. package/locales/extra/nnh.mjs +2 -2
  1439. package/locales/extra/no.d.ts +1 -1
  1440. package/locales/extra/no.mjs +2 -2
  1441. package/locales/extra/nus.d.ts +1 -1
  1442. package/locales/extra/nus.mjs +2 -2
  1443. package/locales/extra/nyn.d.ts +1 -1
  1444. package/locales/extra/nyn.mjs +2 -2
  1445. package/locales/extra/om-KE.d.ts +1 -1
  1446. package/locales/extra/om-KE.mjs +2 -2
  1447. package/locales/extra/om.d.ts +1 -1
  1448. package/locales/extra/om.mjs +2 -2
  1449. package/locales/extra/or.d.ts +1 -1
  1450. package/locales/extra/or.mjs +2 -2
  1451. package/locales/extra/os-RU.d.ts +1 -1
  1452. package/locales/extra/os-RU.mjs +2 -2
  1453. package/locales/extra/os.d.ts +1 -1
  1454. package/locales/extra/os.mjs +2 -2
  1455. package/locales/extra/pa-Arab.d.ts +1 -1
  1456. package/locales/extra/pa-Arab.mjs +2 -2
  1457. package/locales/extra/pa-Guru.d.ts +1 -1
  1458. package/locales/extra/pa-Guru.mjs +2 -2
  1459. package/locales/extra/pa.d.ts +1 -1
  1460. package/locales/extra/pa.mjs +2 -2
  1461. package/locales/extra/pcm.d.ts +1 -1
  1462. package/locales/extra/pcm.mjs +2 -2
  1463. package/locales/extra/pl.d.ts +1 -1
  1464. package/locales/extra/pl.mjs +2 -2
  1465. package/locales/extra/ps-PK.d.ts +1 -1
  1466. package/locales/extra/ps-PK.mjs +2 -2
  1467. package/locales/extra/ps.d.ts +1 -1
  1468. package/locales/extra/ps.mjs +2 -2
  1469. package/locales/extra/pt-AO.d.ts +1 -1
  1470. package/locales/extra/pt-AO.mjs +2 -2
  1471. package/locales/extra/pt-CH.d.ts +1 -1
  1472. package/locales/extra/pt-CH.mjs +2 -2
  1473. package/locales/extra/pt-CV.d.ts +1 -1
  1474. package/locales/extra/pt-CV.mjs +2 -2
  1475. package/locales/extra/pt-GQ.d.ts +1 -1
  1476. package/locales/extra/pt-GQ.mjs +2 -2
  1477. package/locales/extra/pt-GW.d.ts +1 -1
  1478. package/locales/extra/pt-GW.mjs +2 -2
  1479. package/locales/extra/pt-LU.d.ts +1 -1
  1480. package/locales/extra/pt-LU.mjs +2 -2
  1481. package/locales/extra/pt-MO.d.ts +1 -1
  1482. package/locales/extra/pt-MO.mjs +2 -2
  1483. package/locales/extra/pt-MZ.d.ts +1 -1
  1484. package/locales/extra/pt-MZ.mjs +2 -2
  1485. package/locales/extra/pt-PT.d.ts +1 -1
  1486. package/locales/extra/pt-PT.mjs +2 -2
  1487. package/locales/extra/pt-ST.d.ts +1 -1
  1488. package/locales/extra/pt-ST.mjs +2 -2
  1489. package/locales/extra/pt-TL.d.ts +1 -1
  1490. package/locales/extra/pt-TL.mjs +2 -2
  1491. package/locales/extra/pt.d.ts +1 -1
  1492. package/locales/extra/pt.mjs +2 -2
  1493. package/locales/extra/qu-BO.d.ts +1 -1
  1494. package/locales/extra/qu-BO.mjs +2 -2
  1495. package/locales/extra/qu-EC.d.ts +1 -1
  1496. package/locales/extra/qu-EC.mjs +2 -2
  1497. package/locales/extra/qu.d.ts +1 -1
  1498. package/locales/extra/qu.mjs +2 -2
  1499. package/locales/extra/rm.d.ts +1 -1
  1500. package/locales/extra/rm.mjs +2 -2
  1501. package/locales/extra/rn.d.ts +1 -1
  1502. package/locales/extra/rn.mjs +2 -2
  1503. package/locales/extra/ro-MD.d.ts +1 -1
  1504. package/locales/extra/ro-MD.mjs +2 -2
  1505. package/locales/extra/ro.d.ts +1 -1
  1506. package/locales/extra/ro.mjs +2 -2
  1507. package/locales/extra/rof.d.ts +1 -1
  1508. package/locales/extra/rof.mjs +2 -2
  1509. package/locales/extra/ru-BY.d.ts +1 -1
  1510. package/locales/extra/ru-BY.mjs +2 -2
  1511. package/locales/extra/ru-KG.d.ts +1 -1
  1512. package/locales/extra/ru-KG.mjs +2 -2
  1513. package/locales/extra/ru-KZ.d.ts +1 -1
  1514. package/locales/extra/ru-KZ.mjs +2 -2
  1515. package/locales/extra/ru-MD.d.ts +1 -1
  1516. package/locales/extra/ru-MD.mjs +2 -2
  1517. package/locales/extra/ru-UA.d.ts +1 -1
  1518. package/locales/extra/ru-UA.mjs +2 -2
  1519. package/locales/extra/ru.d.ts +1 -1
  1520. package/locales/extra/ru.mjs +2 -2
  1521. package/locales/extra/rw.d.ts +1 -1
  1522. package/locales/extra/rw.mjs +2 -2
  1523. package/locales/extra/rwk.d.ts +1 -1
  1524. package/locales/extra/rwk.mjs +2 -2
  1525. package/locales/extra/sa.d.ts +1 -1
  1526. package/locales/extra/sa.mjs +2 -2
  1527. package/locales/extra/sah.d.ts +1 -1
  1528. package/locales/extra/sah.mjs +2 -2
  1529. package/locales/extra/saq.d.ts +1 -1
  1530. package/locales/extra/saq.mjs +2 -2
  1531. package/locales/extra/sat-Olck.d.ts +1 -1
  1532. package/locales/extra/sat-Olck.mjs +2 -2
  1533. package/locales/extra/sat.d.ts +1 -1
  1534. package/locales/extra/sat.mjs +2 -2
  1535. package/locales/extra/sbp.d.ts +1 -1
  1536. package/locales/extra/sbp.mjs +2 -2
  1537. package/locales/extra/sc.d.ts +1 -1
  1538. package/locales/extra/sc.mjs +2 -2
  1539. package/locales/extra/sd-Arab.d.ts +1 -1
  1540. package/locales/extra/sd-Arab.mjs +2 -2
  1541. package/locales/extra/sd-Deva.d.ts +1 -1
  1542. package/locales/extra/sd-Deva.mjs +2 -2
  1543. package/locales/extra/sd.d.ts +1 -1
  1544. package/locales/extra/sd.mjs +2 -2
  1545. package/locales/extra/se-FI.d.ts +1 -1
  1546. package/locales/extra/se-FI.mjs +2 -2
  1547. package/locales/extra/se-SE.d.ts +1 -1
  1548. package/locales/extra/se-SE.mjs +2 -2
  1549. package/locales/extra/se.d.ts +1 -1
  1550. package/locales/extra/se.mjs +2 -2
  1551. package/locales/extra/seh.d.ts +1 -1
  1552. package/locales/extra/seh.mjs +2 -2
  1553. package/locales/extra/ses.d.ts +1 -1
  1554. package/locales/extra/ses.mjs +2 -2
  1555. package/locales/extra/sg.d.ts +1 -1
  1556. package/locales/extra/sg.mjs +2 -2
  1557. package/locales/extra/shi-Latn.d.ts +1 -1
  1558. package/locales/extra/shi-Latn.mjs +2 -2
  1559. package/locales/extra/shi-Tfng.d.ts +1 -1
  1560. package/locales/extra/shi-Tfng.mjs +2 -2
  1561. package/locales/extra/shi.d.ts +1 -1
  1562. package/locales/extra/shi.mjs +2 -2
  1563. package/locales/extra/si.d.ts +1 -1
  1564. package/locales/extra/si.mjs +2 -2
  1565. package/locales/extra/sk.d.ts +1 -1
  1566. package/locales/extra/sk.mjs +2 -2
  1567. package/locales/extra/sl.d.ts +1 -1
  1568. package/locales/extra/sl.mjs +2 -2
  1569. package/locales/extra/smn.d.ts +1 -1
  1570. package/locales/extra/smn.mjs +2 -2
  1571. package/locales/extra/sn.d.ts +1 -1
  1572. package/locales/extra/sn.mjs +2 -2
  1573. package/locales/extra/so-DJ.d.ts +1 -1
  1574. package/locales/extra/so-DJ.mjs +2 -2
  1575. package/locales/extra/so-ET.d.ts +1 -1
  1576. package/locales/extra/so-ET.mjs +2 -2
  1577. package/locales/extra/so-KE.d.ts +1 -1
  1578. package/locales/extra/so-KE.mjs +2 -2
  1579. package/locales/extra/so.d.ts +1 -1
  1580. package/locales/extra/so.mjs +2 -2
  1581. package/locales/extra/sq-MK.d.ts +1 -1
  1582. package/locales/extra/sq-MK.mjs +2 -2
  1583. package/locales/extra/sq-XK.d.ts +1 -1
  1584. package/locales/extra/sq-XK.mjs +2 -2
  1585. package/locales/extra/sq.d.ts +1 -1
  1586. package/locales/extra/sq.mjs +2 -2
  1587. package/locales/extra/sr-Cyrl-BA.d.ts +1 -1
  1588. package/locales/extra/sr-Cyrl-BA.mjs +2 -2
  1589. package/locales/extra/sr-Cyrl-ME.d.ts +1 -1
  1590. package/locales/extra/sr-Cyrl-ME.mjs +2 -2
  1591. package/locales/extra/sr-Cyrl-XK.d.ts +1 -1
  1592. package/locales/extra/sr-Cyrl-XK.mjs +2 -2
  1593. package/locales/extra/sr-Cyrl.d.ts +1 -1
  1594. package/locales/extra/sr-Cyrl.mjs +2 -2
  1595. package/locales/extra/sr-Latn-BA.d.ts +1 -1
  1596. package/locales/extra/sr-Latn-BA.mjs +2 -2
  1597. package/locales/extra/sr-Latn-ME.d.ts +1 -1
  1598. package/locales/extra/sr-Latn-ME.mjs +2 -2
  1599. package/locales/extra/sr-Latn-XK.d.ts +1 -1
  1600. package/locales/extra/sr-Latn-XK.mjs +2 -2
  1601. package/locales/extra/sr-Latn.d.ts +1 -1
  1602. package/locales/extra/sr-Latn.mjs +2 -2
  1603. package/locales/extra/sr.d.ts +1 -1
  1604. package/locales/extra/sr.mjs +2 -2
  1605. package/locales/extra/su-Latn.d.ts +1 -1
  1606. package/locales/extra/su-Latn.mjs +2 -2
  1607. package/locales/extra/su.d.ts +1 -1
  1608. package/locales/extra/su.mjs +2 -2
  1609. package/locales/extra/sv-AX.d.ts +1 -1
  1610. package/locales/extra/sv-AX.mjs +2 -2
  1611. package/locales/extra/sv-FI.d.ts +1 -1
  1612. package/locales/extra/sv-FI.mjs +2 -2
  1613. package/locales/extra/sv.d.ts +1 -1
  1614. package/locales/extra/sv.mjs +2 -2
  1615. package/locales/extra/sw-CD.d.ts +1 -1
  1616. package/locales/extra/sw-CD.mjs +2 -2
  1617. package/locales/extra/sw-KE.d.ts +1 -1
  1618. package/locales/extra/sw-KE.mjs +2 -2
  1619. package/locales/extra/sw-UG.d.ts +1 -1
  1620. package/locales/extra/sw-UG.mjs +2 -2
  1621. package/locales/extra/sw.d.ts +1 -1
  1622. package/locales/extra/sw.mjs +2 -2
  1623. package/locales/extra/ta-LK.d.ts +1 -1
  1624. package/locales/extra/ta-LK.mjs +2 -2
  1625. package/locales/extra/ta-MY.d.ts +1 -1
  1626. package/locales/extra/ta-MY.mjs +2 -2
  1627. package/locales/extra/ta-SG.d.ts +1 -1
  1628. package/locales/extra/ta-SG.mjs +2 -2
  1629. package/locales/extra/ta.d.ts +1 -1
  1630. package/locales/extra/ta.mjs +2 -2
  1631. package/locales/extra/te.d.ts +1 -1
  1632. package/locales/extra/te.mjs +2 -2
  1633. package/locales/extra/teo-KE.d.ts +1 -1
  1634. package/locales/extra/teo-KE.mjs +2 -2
  1635. package/locales/extra/teo.d.ts +1 -1
  1636. package/locales/extra/teo.mjs +2 -2
  1637. package/locales/extra/tg.d.ts +1 -1
  1638. package/locales/extra/tg.mjs +2 -2
  1639. package/locales/extra/th.d.ts +1 -1
  1640. package/locales/extra/th.mjs +2 -2
  1641. package/locales/extra/ti-ER.d.ts +1 -1
  1642. package/locales/extra/ti-ER.mjs +2 -2
  1643. package/locales/extra/ti.d.ts +1 -1
  1644. package/locales/extra/ti.mjs +2 -2
  1645. package/locales/extra/tk.d.ts +1 -1
  1646. package/locales/extra/tk.mjs +2 -2
  1647. package/locales/extra/to.d.ts +1 -1
  1648. package/locales/extra/to.mjs +2 -2
  1649. package/locales/extra/tr-CY.d.ts +1 -1
  1650. package/locales/extra/tr-CY.mjs +2 -2
  1651. package/locales/extra/tr.d.ts +1 -1
  1652. package/locales/extra/tr.mjs +2 -2
  1653. package/locales/extra/tt.d.ts +1 -1
  1654. package/locales/extra/tt.mjs +2 -2
  1655. package/locales/extra/twq.d.ts +1 -1
  1656. package/locales/extra/twq.mjs +2 -2
  1657. package/locales/extra/tzm.d.ts +1 -1
  1658. package/locales/extra/tzm.mjs +2 -2
  1659. package/locales/extra/ug.d.ts +1 -1
  1660. package/locales/extra/ug.mjs +2 -2
  1661. package/locales/extra/uk.d.ts +1 -1
  1662. package/locales/extra/uk.mjs +2 -2
  1663. package/locales/extra/und.d.ts +1 -1
  1664. package/locales/extra/und.mjs +2 -2
  1665. package/locales/extra/ur-IN.d.ts +1 -1
  1666. package/locales/extra/ur-IN.mjs +2 -2
  1667. package/locales/extra/ur.d.ts +1 -1
  1668. package/locales/extra/ur.mjs +2 -2
  1669. package/locales/extra/uz-Arab.d.ts +1 -1
  1670. package/locales/extra/uz-Arab.mjs +2 -2
  1671. package/locales/extra/uz-Cyrl.d.ts +1 -1
  1672. package/locales/extra/uz-Cyrl.mjs +2 -2
  1673. package/locales/extra/uz-Latn.d.ts +1 -1
  1674. package/locales/extra/uz-Latn.mjs +2 -2
  1675. package/locales/extra/uz.d.ts +1 -1
  1676. package/locales/extra/uz.mjs +2 -2
  1677. package/locales/extra/vai-Latn.d.ts +1 -1
  1678. package/locales/extra/vai-Latn.mjs +2 -2
  1679. package/locales/extra/vai-Vaii.d.ts +1 -1
  1680. package/locales/extra/vai-Vaii.mjs +2 -2
  1681. package/locales/extra/vai.d.ts +1 -1
  1682. package/locales/extra/vai.mjs +2 -2
  1683. package/locales/extra/vi.d.ts +1 -1
  1684. package/locales/extra/vi.mjs +2 -2
  1685. package/locales/extra/vun.d.ts +1 -1
  1686. package/locales/extra/vun.mjs +2 -2
  1687. package/locales/extra/wae.d.ts +1 -1
  1688. package/locales/extra/wae.mjs +2 -2
  1689. package/locales/extra/wo.d.ts +1 -1
  1690. package/locales/extra/wo.mjs +2 -2
  1691. package/locales/extra/xh.d.ts +1 -1
  1692. package/locales/extra/xh.mjs +2 -2
  1693. package/locales/extra/xog.d.ts +1 -1
  1694. package/locales/extra/xog.mjs +2 -2
  1695. package/locales/extra/yav.d.ts +1 -1
  1696. package/locales/extra/yav.mjs +2 -2
  1697. package/locales/extra/yi.d.ts +1 -1
  1698. package/locales/extra/yi.mjs +2 -2
  1699. package/locales/extra/yo-BJ.d.ts +1 -1
  1700. package/locales/extra/yo-BJ.mjs +2 -2
  1701. package/locales/extra/yo.d.ts +1 -1
  1702. package/locales/extra/yo.mjs +2 -2
  1703. package/locales/extra/yrl-CO.d.ts +1 -1
  1704. package/locales/extra/yrl-CO.mjs +2 -2
  1705. package/locales/extra/yrl-VE.d.ts +1 -1
  1706. package/locales/extra/yrl-VE.mjs +2 -2
  1707. package/locales/extra/yrl.d.ts +1 -1
  1708. package/locales/extra/yrl.mjs +2 -2
  1709. package/locales/extra/yue-Hans.d.ts +1 -1
  1710. package/locales/extra/yue-Hans.mjs +2 -2
  1711. package/locales/extra/yue-Hant.d.ts +1 -1
  1712. package/locales/extra/yue-Hant.mjs +2 -2
  1713. package/locales/extra/yue.d.ts +1 -1
  1714. package/locales/extra/yue.mjs +2 -2
  1715. package/locales/extra/zgh.d.ts +1 -1
  1716. package/locales/extra/zgh.mjs +2 -2
  1717. package/locales/extra/zh-Hans-HK.d.ts +1 -1
  1718. package/locales/extra/zh-Hans-HK.mjs +2 -2
  1719. package/locales/extra/zh-Hans-MO.d.ts +1 -1
  1720. package/locales/extra/zh-Hans-MO.mjs +2 -2
  1721. package/locales/extra/zh-Hans-SG.d.ts +1 -1
  1722. package/locales/extra/zh-Hans-SG.mjs +2 -2
  1723. package/locales/extra/zh-Hans.d.ts +1 -1
  1724. package/locales/extra/zh-Hans.mjs +2 -2
  1725. package/locales/extra/zh-Hant-HK.d.ts +1 -1
  1726. package/locales/extra/zh-Hant-HK.mjs +2 -2
  1727. package/locales/extra/zh-Hant-MO.d.ts +1 -1
  1728. package/locales/extra/zh-Hant-MO.mjs +2 -2
  1729. package/locales/extra/zh-Hant.d.ts +1 -1
  1730. package/locales/extra/zh-Hant.mjs +2 -2
  1731. package/locales/extra/zh.d.ts +1 -1
  1732. package/locales/extra/zh.mjs +2 -2
  1733. package/locales/extra/zu.d.ts +1 -1
  1734. package/locales/extra/zu.mjs +2 -2
  1735. package/locales/fa-AF.d.ts +1 -1
  1736. package/locales/fa-AF.mjs +2 -2
  1737. package/locales/fa.d.ts +1 -1
  1738. package/locales/fa.mjs +2 -2
  1739. package/locales/ff-Adlm-BF.d.ts +1 -1
  1740. package/locales/ff-Adlm-BF.mjs +2 -2
  1741. package/locales/ff-Adlm-CM.d.ts +1 -1
  1742. package/locales/ff-Adlm-CM.mjs +2 -2
  1743. package/locales/ff-Adlm-GH.d.ts +1 -1
  1744. package/locales/ff-Adlm-GH.mjs +2 -2
  1745. package/locales/ff-Adlm-GM.d.ts +1 -1
  1746. package/locales/ff-Adlm-GM.mjs +2 -2
  1747. package/locales/ff-Adlm-GW.d.ts +1 -1
  1748. package/locales/ff-Adlm-GW.mjs +2 -2
  1749. package/locales/ff-Adlm-LR.d.ts +1 -1
  1750. package/locales/ff-Adlm-LR.mjs +2 -2
  1751. package/locales/ff-Adlm-MR.d.ts +1 -1
  1752. package/locales/ff-Adlm-MR.mjs +2 -2
  1753. package/locales/ff-Adlm-NE.d.ts +1 -1
  1754. package/locales/ff-Adlm-NE.mjs +2 -2
  1755. package/locales/ff-Adlm-NG.d.ts +1 -1
  1756. package/locales/ff-Adlm-NG.mjs +2 -2
  1757. package/locales/ff-Adlm-SL.d.ts +1 -1
  1758. package/locales/ff-Adlm-SL.mjs +2 -2
  1759. package/locales/ff-Adlm-SN.d.ts +1 -1
  1760. package/locales/ff-Adlm-SN.mjs +2 -2
  1761. package/locales/ff-Adlm.d.ts +1 -1
  1762. package/locales/ff-Adlm.mjs +2 -2
  1763. package/locales/ff-CM.d.ts +1 -1
  1764. package/locales/ff-CM.mjs +2 -2
  1765. package/locales/ff-GN.d.ts +1 -1
  1766. package/locales/ff-GN.mjs +2 -2
  1767. package/locales/ff-Latn-BF.d.ts +1 -1
  1768. package/locales/ff-Latn-BF.mjs +2 -2
  1769. package/locales/ff-Latn-CM.d.ts +1 -1
  1770. package/locales/ff-Latn-CM.mjs +2 -2
  1771. package/locales/ff-Latn-GH.d.ts +1 -1
  1772. package/locales/ff-Latn-GH.mjs +2 -2
  1773. package/locales/ff-Latn-GM.d.ts +1 -1
  1774. package/locales/ff-Latn-GM.mjs +2 -2
  1775. package/locales/ff-Latn-GN.d.ts +1 -1
  1776. package/locales/ff-Latn-GN.mjs +2 -2
  1777. package/locales/ff-Latn-GW.d.ts +1 -1
  1778. package/locales/ff-Latn-GW.mjs +2 -2
  1779. package/locales/ff-Latn-LR.d.ts +1 -1
  1780. package/locales/ff-Latn-LR.mjs +2 -2
  1781. package/locales/ff-Latn-MR.d.ts +1 -1
  1782. package/locales/ff-Latn-MR.mjs +2 -2
  1783. package/locales/ff-Latn-NE.d.ts +1 -1
  1784. package/locales/ff-Latn-NE.mjs +2 -2
  1785. package/locales/ff-Latn-NG.d.ts +1 -1
  1786. package/locales/ff-Latn-NG.mjs +2 -2
  1787. package/locales/ff-Latn-SL.d.ts +1 -1
  1788. package/locales/ff-Latn-SL.mjs +2 -2
  1789. package/locales/ff-Latn.d.ts +1 -1
  1790. package/locales/ff-Latn.mjs +2 -2
  1791. package/locales/ff-MR.d.ts +1 -1
  1792. package/locales/ff-MR.mjs +2 -2
  1793. package/locales/ff.d.ts +1 -1
  1794. package/locales/ff.mjs +2 -2
  1795. package/locales/fi.d.ts +1 -1
  1796. package/locales/fi.mjs +2 -2
  1797. package/locales/fil.d.ts +1 -1
  1798. package/locales/fil.mjs +2 -2
  1799. package/locales/fo-DK.d.ts +1 -1
  1800. package/locales/fo-DK.mjs +2 -2
  1801. package/locales/fo.d.ts +1 -1
  1802. package/locales/fo.mjs +2 -2
  1803. package/locales/fr-BE.d.ts +1 -1
  1804. package/locales/fr-BE.mjs +2 -2
  1805. package/locales/fr-BF.d.ts +1 -1
  1806. package/locales/fr-BF.mjs +2 -2
  1807. package/locales/fr-BI.d.ts +1 -1
  1808. package/locales/fr-BI.mjs +2 -2
  1809. package/locales/fr-BJ.d.ts +1 -1
  1810. package/locales/fr-BJ.mjs +2 -2
  1811. package/locales/fr-BL.d.ts +1 -1
  1812. package/locales/fr-BL.mjs +2 -2
  1813. package/locales/fr-CA.d.ts +1 -1
  1814. package/locales/fr-CA.mjs +2 -2
  1815. package/locales/fr-CD.d.ts +1 -1
  1816. package/locales/fr-CD.mjs +2 -2
  1817. package/locales/fr-CF.d.ts +1 -1
  1818. package/locales/fr-CF.mjs +2 -2
  1819. package/locales/fr-CG.d.ts +1 -1
  1820. package/locales/fr-CG.mjs +2 -2
  1821. package/locales/fr-CH.d.ts +1 -1
  1822. package/locales/fr-CH.mjs +2 -2
  1823. package/locales/fr-CI.d.ts +1 -1
  1824. package/locales/fr-CI.mjs +2 -2
  1825. package/locales/fr-CM.d.ts +1 -1
  1826. package/locales/fr-CM.mjs +2 -2
  1827. package/locales/fr-DJ.d.ts +1 -1
  1828. package/locales/fr-DJ.mjs +2 -2
  1829. package/locales/fr-DZ.d.ts +1 -1
  1830. package/locales/fr-DZ.mjs +2 -2
  1831. package/locales/fr-GA.d.ts +1 -1
  1832. package/locales/fr-GA.mjs +2 -2
  1833. package/locales/fr-GF.d.ts +1 -1
  1834. package/locales/fr-GF.mjs +2 -2
  1835. package/locales/fr-GN.d.ts +1 -1
  1836. package/locales/fr-GN.mjs +2 -2
  1837. package/locales/fr-GP.d.ts +1 -1
  1838. package/locales/fr-GP.mjs +2 -2
  1839. package/locales/fr-GQ.d.ts +1 -1
  1840. package/locales/fr-GQ.mjs +2 -2
  1841. package/locales/fr-HT.d.ts +1 -1
  1842. package/locales/fr-HT.mjs +2 -2
  1843. package/locales/fr-KM.d.ts +1 -1
  1844. package/locales/fr-KM.mjs +2 -2
  1845. package/locales/fr-LU.d.ts +1 -1
  1846. package/locales/fr-LU.mjs +2 -2
  1847. package/locales/fr-MA.d.ts +1 -1
  1848. package/locales/fr-MA.mjs +2 -2
  1849. package/locales/fr-MC.d.ts +1 -1
  1850. package/locales/fr-MC.mjs +2 -2
  1851. package/locales/fr-MF.d.ts +1 -1
  1852. package/locales/fr-MF.mjs +2 -2
  1853. package/locales/fr-MG.d.ts +1 -1
  1854. package/locales/fr-MG.mjs +2 -2
  1855. package/locales/fr-ML.d.ts +1 -1
  1856. package/locales/fr-ML.mjs +2 -2
  1857. package/locales/fr-MQ.d.ts +1 -1
  1858. package/locales/fr-MQ.mjs +2 -2
  1859. package/locales/fr-MR.d.ts +1 -1
  1860. package/locales/fr-MR.mjs +2 -2
  1861. package/locales/fr-MU.d.ts +1 -1
  1862. package/locales/fr-MU.mjs +2 -2
  1863. package/locales/fr-NC.d.ts +1 -1
  1864. package/locales/fr-NC.mjs +2 -2
  1865. package/locales/fr-NE.d.ts +1 -1
  1866. package/locales/fr-NE.mjs +2 -2
  1867. package/locales/fr-PF.d.ts +1 -1
  1868. package/locales/fr-PF.mjs +2 -2
  1869. package/locales/fr-PM.d.ts +1 -1
  1870. package/locales/fr-PM.mjs +2 -2
  1871. package/locales/fr-RE.d.ts +1 -1
  1872. package/locales/fr-RE.mjs +2 -2
  1873. package/locales/fr-RW.d.ts +1 -1
  1874. package/locales/fr-RW.mjs +2 -2
  1875. package/locales/fr-SC.d.ts +1 -1
  1876. package/locales/fr-SC.mjs +2 -2
  1877. package/locales/fr-SN.d.ts +1 -1
  1878. package/locales/fr-SN.mjs +2 -2
  1879. package/locales/fr-SY.d.ts +1 -1
  1880. package/locales/fr-SY.mjs +2 -2
  1881. package/locales/fr-TD.d.ts +1 -1
  1882. package/locales/fr-TD.mjs +2 -2
  1883. package/locales/fr-TG.d.ts +1 -1
  1884. package/locales/fr-TG.mjs +2 -2
  1885. package/locales/fr-TN.d.ts +1 -1
  1886. package/locales/fr-TN.mjs +2 -2
  1887. package/locales/fr-VU.d.ts +1 -1
  1888. package/locales/fr-VU.mjs +2 -2
  1889. package/locales/fr-WF.d.ts +1 -1
  1890. package/locales/fr-WF.mjs +2 -2
  1891. package/locales/fr-YT.d.ts +1 -1
  1892. package/locales/fr-YT.mjs +2 -2
  1893. package/locales/fr.d.ts +1 -1
  1894. package/locales/fr.mjs +2 -2
  1895. package/locales/fur.d.ts +1 -1
  1896. package/locales/fur.mjs +2 -2
  1897. package/locales/fy.d.ts +1 -1
  1898. package/locales/fy.mjs +2 -2
  1899. package/locales/ga-GB.d.ts +1 -1
  1900. package/locales/ga-GB.mjs +2 -2
  1901. package/locales/ga.d.ts +1 -1
  1902. package/locales/ga.mjs +2 -2
  1903. package/locales/gd.d.ts +1 -1
  1904. package/locales/gd.mjs +2 -2
  1905. package/locales/gl.d.ts +1 -1
  1906. package/locales/gl.mjs +2 -2
  1907. package/locales/global/af-NA.js +1 -1
  1908. package/locales/global/af.js +1 -1
  1909. package/locales/global/agq.js +1 -1
  1910. package/locales/global/ak.js +1 -1
  1911. package/locales/global/am.js +1 -1
  1912. package/locales/global/ar-AE.js +1 -1
  1913. package/locales/global/ar-BH.js +1 -1
  1914. package/locales/global/ar-DJ.js +1 -1
  1915. package/locales/global/ar-DZ.js +1 -1
  1916. package/locales/global/ar-EG.js +1 -1
  1917. package/locales/global/ar-EH.js +1 -1
  1918. package/locales/global/ar-ER.js +1 -1
  1919. package/locales/global/ar-IL.js +1 -1
  1920. package/locales/global/ar-IQ.js +1 -1
  1921. package/locales/global/ar-JO.js +1 -1
  1922. package/locales/global/ar-KM.js +1 -1
  1923. package/locales/global/ar-KW.js +1 -1
  1924. package/locales/global/ar-LB.js +1 -1
  1925. package/locales/global/ar-LY.js +1 -1
  1926. package/locales/global/ar-MA.js +1 -1
  1927. package/locales/global/ar-MR.js +1 -1
  1928. package/locales/global/ar-OM.js +1 -1
  1929. package/locales/global/ar-PS.js +1 -1
  1930. package/locales/global/ar-QA.js +1 -1
  1931. package/locales/global/ar-SA.js +1 -1
  1932. package/locales/global/ar-SD.js +1 -1
  1933. package/locales/global/ar-SO.js +1 -1
  1934. package/locales/global/ar-SS.js +1 -1
  1935. package/locales/global/ar-SY.js +1 -1
  1936. package/locales/global/ar-TD.js +1 -1
  1937. package/locales/global/ar-TN.js +1 -1
  1938. package/locales/global/ar-YE.js +1 -1
  1939. package/locales/global/ar.js +1 -1
  1940. package/locales/global/as.js +1 -1
  1941. package/locales/global/asa.js +1 -1
  1942. package/locales/global/ast.js +1 -1
  1943. package/locales/global/az-Cyrl.js +1 -1
  1944. package/locales/global/az-Latn.js +1 -1
  1945. package/locales/global/az.js +1 -1
  1946. package/locales/global/bas.js +1 -1
  1947. package/locales/global/be-tarask.js +1 -1
  1948. package/locales/global/be.js +1 -1
  1949. package/locales/global/bem.js +1 -1
  1950. package/locales/global/bez.js +1 -1
  1951. package/locales/global/bg.js +1 -1
  1952. package/locales/global/bm.js +1 -1
  1953. package/locales/global/bn-IN.js +1 -1
  1954. package/locales/global/bn.js +1 -1
  1955. package/locales/global/bo-IN.js +1 -1
  1956. package/locales/global/bo.js +1 -1
  1957. package/locales/global/br.js +1 -1
  1958. package/locales/global/brx.js +1 -1
  1959. package/locales/global/bs-Cyrl.js +1 -1
  1960. package/locales/global/bs-Latn.js +1 -1
  1961. package/locales/global/bs.js +1 -1
  1962. package/locales/global/ca-AD.js +1 -1
  1963. package/locales/global/ca-ES-valencia.js +1 -1
  1964. package/locales/global/ca-FR.js +1 -1
  1965. package/locales/global/ca-IT.js +1 -1
  1966. package/locales/global/ca.js +1 -1
  1967. package/locales/global/ccp-IN.js +1 -1
  1968. package/locales/global/ccp.js +1 -1
  1969. package/locales/global/ce.js +1 -1
  1970. package/locales/global/ceb.js +1 -1
  1971. package/locales/global/cgg.js +1 -1
  1972. package/locales/global/chr.js +1 -1
  1973. package/locales/global/ckb-IR.js +1 -1
  1974. package/locales/global/ckb.js +1 -1
  1975. package/locales/global/cs.js +1 -1
  1976. package/locales/global/cy.js +1 -1
  1977. package/locales/global/da-GL.js +1 -1
  1978. package/locales/global/da.js +1 -1
  1979. package/locales/global/dav.js +1 -1
  1980. package/locales/global/de-AT.js +1 -1
  1981. package/locales/global/de-BE.js +1 -1
  1982. package/locales/global/de-CH.js +1 -1
  1983. package/locales/global/de-IT.js +1 -1
  1984. package/locales/global/de-LI.js +1 -1
  1985. package/locales/global/de-LU.js +1 -1
  1986. package/locales/global/de.js +1 -1
  1987. package/locales/global/dje.js +1 -1
  1988. package/locales/global/doi.js +1 -1
  1989. package/locales/global/dsb.js +1 -1
  1990. package/locales/global/dua.js +1 -1
  1991. package/locales/global/dyo.js +1 -1
  1992. package/locales/global/dz.js +1 -1
  1993. package/locales/global/ebu.js +1 -1
  1994. package/locales/global/ee-TG.js +1 -1
  1995. package/locales/global/ee.js +1 -1
  1996. package/locales/global/el-CY.js +1 -1
  1997. package/locales/global/el.js +1 -1
  1998. package/locales/global/en-001.js +1 -1
  1999. package/locales/global/en-150.js +1 -1
  2000. package/locales/global/en-AE.js +1 -1
  2001. package/locales/global/en-AG.js +1 -1
  2002. package/locales/global/en-AI.js +1 -1
  2003. package/locales/global/en-AS.js +1 -1
  2004. package/locales/global/en-AT.js +1 -1
  2005. package/locales/global/en-AU.js +1 -1
  2006. package/locales/global/en-BB.js +1 -1
  2007. package/locales/global/en-BE.js +1 -1
  2008. package/locales/global/en-BI.js +1 -1
  2009. package/locales/global/en-BM.js +1 -1
  2010. package/locales/global/en-BS.js +1 -1
  2011. package/locales/global/en-BW.js +1 -1
  2012. package/locales/global/en-BZ.js +1 -1
  2013. package/locales/global/en-CA.js +1 -1
  2014. package/locales/global/en-CC.js +1 -1
  2015. package/locales/global/en-CH.js +1 -1
  2016. package/locales/global/en-CK.js +1 -1
  2017. package/locales/global/en-CM.js +1 -1
  2018. package/locales/global/en-CX.js +1 -1
  2019. package/locales/global/en-CY.js +1 -1
  2020. package/locales/global/en-DE.js +1 -1
  2021. package/locales/global/en-DG.js +1 -1
  2022. package/locales/global/en-DK.js +1 -1
  2023. package/locales/global/en-DM.js +1 -1
  2024. package/locales/global/en-ER.js +1 -1
  2025. package/locales/global/en-FI.js +1 -1
  2026. package/locales/global/en-FJ.js +1 -1
  2027. package/locales/global/en-FK.js +1 -1
  2028. package/locales/global/en-FM.js +1 -1
  2029. package/locales/global/en-GB.js +1 -1
  2030. package/locales/global/en-GD.js +1 -1
  2031. package/locales/global/en-GG.js +1 -1
  2032. package/locales/global/en-GH.js +1 -1
  2033. package/locales/global/en-GI.js +1 -1
  2034. package/locales/global/en-GM.js +1 -1
  2035. package/locales/global/en-GU.js +1 -1
  2036. package/locales/global/en-GY.js +1 -1
  2037. package/locales/global/en-HK.js +1 -1
  2038. package/locales/global/en-IE.js +1 -1
  2039. package/locales/global/en-IL.js +1 -1
  2040. package/locales/global/en-IM.js +1 -1
  2041. package/locales/global/en-IN.js +1 -1
  2042. package/locales/global/en-IO.js +1 -1
  2043. package/locales/global/en-JE.js +1 -1
  2044. package/locales/global/en-JM.js +1 -1
  2045. package/locales/global/en-KE.js +1 -1
  2046. package/locales/global/en-KI.js +1 -1
  2047. package/locales/global/en-KN.js +1 -1
  2048. package/locales/global/en-KY.js +1 -1
  2049. package/locales/global/en-LC.js +1 -1
  2050. package/locales/global/en-LR.js +1 -1
  2051. package/locales/global/en-LS.js +1 -1
  2052. package/locales/global/en-MG.js +1 -1
  2053. package/locales/global/en-MH.js +1 -1
  2054. package/locales/global/en-MO.js +1 -1
  2055. package/locales/global/en-MP.js +1 -1
  2056. package/locales/global/en-MS.js +1 -1
  2057. package/locales/global/en-MT.js +1 -1
  2058. package/locales/global/en-MU.js +1 -1
  2059. package/locales/global/en-MV.js +1 -1
  2060. package/locales/global/en-MW.js +1 -1
  2061. package/locales/global/en-MY.js +1 -1
  2062. package/locales/global/en-NA.js +1 -1
  2063. package/locales/global/en-NF.js +1 -1
  2064. package/locales/global/en-NG.js +1 -1
  2065. package/locales/global/en-NL.js +1 -1
  2066. package/locales/global/en-NR.js +1 -1
  2067. package/locales/global/en-NU.js +1 -1
  2068. package/locales/global/en-NZ.js +1 -1
  2069. package/locales/global/en-PG.js +1 -1
  2070. package/locales/global/en-PH.js +1 -1
  2071. package/locales/global/en-PK.js +1 -1
  2072. package/locales/global/en-PN.js +1 -1
  2073. package/locales/global/en-PR.js +1 -1
  2074. package/locales/global/en-PW.js +1 -1
  2075. package/locales/global/en-RW.js +1 -1
  2076. package/locales/global/en-SB.js +1 -1
  2077. package/locales/global/en-SC.js +1 -1
  2078. package/locales/global/en-SD.js +1 -1
  2079. package/locales/global/en-SE.js +1 -1
  2080. package/locales/global/en-SG.js +1 -1
  2081. package/locales/global/en-SH.js +1 -1
  2082. package/locales/global/en-SI.js +1 -1
  2083. package/locales/global/en-SL.js +1 -1
  2084. package/locales/global/en-SS.js +1 -1
  2085. package/locales/global/en-SX.js +1 -1
  2086. package/locales/global/en-SZ.js +1 -1
  2087. package/locales/global/en-TC.js +1 -1
  2088. package/locales/global/en-TK.js +1 -1
  2089. package/locales/global/en-TO.js +1 -1
  2090. package/locales/global/en-TT.js +1 -1
  2091. package/locales/global/en-TV.js +1 -1
  2092. package/locales/global/en-TZ.js +1 -1
  2093. package/locales/global/en-UG.js +1 -1
  2094. package/locales/global/en-UM.js +1 -1
  2095. package/locales/global/en-VC.js +1 -1
  2096. package/locales/global/en-VG.js +1 -1
  2097. package/locales/global/en-VI.js +1 -1
  2098. package/locales/global/en-VU.js +1 -1
  2099. package/locales/global/en-WS.js +1 -1
  2100. package/locales/global/en-ZA.js +1 -1
  2101. package/locales/global/en-ZM.js +1 -1
  2102. package/locales/global/en-ZW.js +1 -1
  2103. package/locales/global/en.js +1 -1
  2104. package/locales/global/eo.js +1 -1
  2105. package/locales/global/es-419.js +1 -1
  2106. package/locales/global/es-AR.js +1 -1
  2107. package/locales/global/es-BO.js +1 -1
  2108. package/locales/global/es-BR.js +1 -1
  2109. package/locales/global/es-BZ.js +1 -1
  2110. package/locales/global/es-CL.js +1 -1
  2111. package/locales/global/es-CO.js +1 -1
  2112. package/locales/global/es-CR.js +1 -1
  2113. package/locales/global/es-CU.js +1 -1
  2114. package/locales/global/es-DO.js +1 -1
  2115. package/locales/global/es-EA.js +1 -1
  2116. package/locales/global/es-EC.js +1 -1
  2117. package/locales/global/es-GQ.js +1 -1
  2118. package/locales/global/es-GT.js +1 -1
  2119. package/locales/global/es-HN.js +1 -1
  2120. package/locales/global/es-IC.js +1 -1
  2121. package/locales/global/es-MX.js +1 -1
  2122. package/locales/global/es-NI.js +1 -1
  2123. package/locales/global/es-PA.js +1 -1
  2124. package/locales/global/es-PE.js +1 -1
  2125. package/locales/global/es-PH.js +1 -1
  2126. package/locales/global/es-PR.js +1 -1
  2127. package/locales/global/es-PY.js +1 -1
  2128. package/locales/global/es-SV.js +1 -1
  2129. package/locales/global/es-US.js +1 -1
  2130. package/locales/global/es-UY.js +1 -1
  2131. package/locales/global/es-VE.js +1 -1
  2132. package/locales/global/es.js +1 -1
  2133. package/locales/global/et.js +1 -1
  2134. package/locales/global/eu.js +1 -1
  2135. package/locales/global/ewo.js +1 -1
  2136. package/locales/global/fa-AF.js +1 -1
  2137. package/locales/global/fa.js +1 -1
  2138. package/locales/global/ff-Adlm-BF.js +1 -1
  2139. package/locales/global/ff-Adlm-CM.js +1 -1
  2140. package/locales/global/ff-Adlm-GH.js +1 -1
  2141. package/locales/global/ff-Adlm-GM.js +1 -1
  2142. package/locales/global/ff-Adlm-GW.js +1 -1
  2143. package/locales/global/ff-Adlm-LR.js +1 -1
  2144. package/locales/global/ff-Adlm-MR.js +1 -1
  2145. package/locales/global/ff-Adlm-NE.js +1 -1
  2146. package/locales/global/ff-Adlm-NG.js +1 -1
  2147. package/locales/global/ff-Adlm-SL.js +1 -1
  2148. package/locales/global/ff-Adlm-SN.js +1 -1
  2149. package/locales/global/ff-Adlm.js +1 -1
  2150. package/locales/global/ff-CM.js +1 -1
  2151. package/locales/global/ff-GN.js +1 -1
  2152. package/locales/global/ff-Latn-BF.js +1 -1
  2153. package/locales/global/ff-Latn-CM.js +1 -1
  2154. package/locales/global/ff-Latn-GH.js +1 -1
  2155. package/locales/global/ff-Latn-GM.js +1 -1
  2156. package/locales/global/ff-Latn-GN.js +1 -1
  2157. package/locales/global/ff-Latn-GW.js +1 -1
  2158. package/locales/global/ff-Latn-LR.js +1 -1
  2159. package/locales/global/ff-Latn-MR.js +1 -1
  2160. package/locales/global/ff-Latn-NE.js +1 -1
  2161. package/locales/global/ff-Latn-NG.js +1 -1
  2162. package/locales/global/ff-Latn-SL.js +1 -1
  2163. package/locales/global/ff-Latn.js +1 -1
  2164. package/locales/global/ff-MR.js +1 -1
  2165. package/locales/global/ff.js +1 -1
  2166. package/locales/global/fi.js +1 -1
  2167. package/locales/global/fil.js +1 -1
  2168. package/locales/global/fo-DK.js +1 -1
  2169. package/locales/global/fo.js +1 -1
  2170. package/locales/global/fr-BE.js +1 -1
  2171. package/locales/global/fr-BF.js +1 -1
  2172. package/locales/global/fr-BI.js +1 -1
  2173. package/locales/global/fr-BJ.js +1 -1
  2174. package/locales/global/fr-BL.js +1 -1
  2175. package/locales/global/fr-CA.js +1 -1
  2176. package/locales/global/fr-CD.js +1 -1
  2177. package/locales/global/fr-CF.js +1 -1
  2178. package/locales/global/fr-CG.js +1 -1
  2179. package/locales/global/fr-CH.js +1 -1
  2180. package/locales/global/fr-CI.js +1 -1
  2181. package/locales/global/fr-CM.js +1 -1
  2182. package/locales/global/fr-DJ.js +1 -1
  2183. package/locales/global/fr-DZ.js +1 -1
  2184. package/locales/global/fr-GA.js +1 -1
  2185. package/locales/global/fr-GF.js +1 -1
  2186. package/locales/global/fr-GN.js +1 -1
  2187. package/locales/global/fr-GP.js +1 -1
  2188. package/locales/global/fr-GQ.js +1 -1
  2189. package/locales/global/fr-HT.js +1 -1
  2190. package/locales/global/fr-KM.js +1 -1
  2191. package/locales/global/fr-LU.js +1 -1
  2192. package/locales/global/fr-MA.js +1 -1
  2193. package/locales/global/fr-MC.js +1 -1
  2194. package/locales/global/fr-MF.js +1 -1
  2195. package/locales/global/fr-MG.js +1 -1
  2196. package/locales/global/fr-ML.js +1 -1
  2197. package/locales/global/fr-MQ.js +1 -1
  2198. package/locales/global/fr-MR.js +1 -1
  2199. package/locales/global/fr-MU.js +1 -1
  2200. package/locales/global/fr-NC.js +1 -1
  2201. package/locales/global/fr-NE.js +1 -1
  2202. package/locales/global/fr-PF.js +1 -1
  2203. package/locales/global/fr-PM.js +1 -1
  2204. package/locales/global/fr-RE.js +1 -1
  2205. package/locales/global/fr-RW.js +1 -1
  2206. package/locales/global/fr-SC.js +1 -1
  2207. package/locales/global/fr-SN.js +1 -1
  2208. package/locales/global/fr-SY.js +1 -1
  2209. package/locales/global/fr-TD.js +1 -1
  2210. package/locales/global/fr-TG.js +1 -1
  2211. package/locales/global/fr-TN.js +1 -1
  2212. package/locales/global/fr-VU.js +1 -1
  2213. package/locales/global/fr-WF.js +1 -1
  2214. package/locales/global/fr-YT.js +1 -1
  2215. package/locales/global/fr.js +1 -1
  2216. package/locales/global/fur.js +1 -1
  2217. package/locales/global/fy.js +1 -1
  2218. package/locales/global/ga-GB.js +1 -1
  2219. package/locales/global/ga.js +1 -1
  2220. package/locales/global/gd.js +1 -1
  2221. package/locales/global/gl.js +1 -1
  2222. package/locales/global/gsw-FR.js +1 -1
  2223. package/locales/global/gsw-LI.js +1 -1
  2224. package/locales/global/gsw.js +1 -1
  2225. package/locales/global/gu.js +1 -1
  2226. package/locales/global/guz.js +1 -1
  2227. package/locales/global/gv.js +1 -1
  2228. package/locales/global/ha-GH.js +1 -1
  2229. package/locales/global/ha-NE.js +1 -1
  2230. package/locales/global/ha.js +1 -1
  2231. package/locales/global/haw.js +1 -1
  2232. package/locales/global/he.js +1 -1
  2233. package/locales/global/hi-Latn.js +1 -1
  2234. package/locales/global/hi.js +1 -1
  2235. package/locales/global/hr-BA.js +1 -1
  2236. package/locales/global/hr.js +1 -1
  2237. package/locales/global/hsb.js +1 -1
  2238. package/locales/global/hu.js +1 -1
  2239. package/locales/global/hy.js +1 -1
  2240. package/locales/global/ia.js +1 -1
  2241. package/locales/global/id.js +1 -1
  2242. package/locales/global/ig.js +1 -1
  2243. package/locales/global/ii.js +1 -1
  2244. package/locales/global/is.js +1 -1
  2245. package/locales/global/it-CH.js +1 -1
  2246. package/locales/global/it-SM.js +1 -1
  2247. package/locales/global/it-VA.js +1 -1
  2248. package/locales/global/it.js +1 -1
  2249. package/locales/global/ja.js +1 -1
  2250. package/locales/global/jgo.js +1 -1
  2251. package/locales/global/jmc.js +1 -1
  2252. package/locales/global/jv.js +1 -1
  2253. package/locales/global/ka.js +1 -1
  2254. package/locales/global/kab.js +1 -1
  2255. package/locales/global/kam.js +1 -1
  2256. package/locales/global/kde.js +1 -1
  2257. package/locales/global/kea.js +1 -1
  2258. package/locales/global/kgp.js +1 -1
  2259. package/locales/global/khq.js +1 -1
  2260. package/locales/global/ki.js +1 -1
  2261. package/locales/global/kk.js +1 -1
  2262. package/locales/global/kkj.js +1 -1
  2263. package/locales/global/kl.js +1 -1
  2264. package/locales/global/kln.js +1 -1
  2265. package/locales/global/km.js +1 -1
  2266. package/locales/global/kn.js +1 -1
  2267. package/locales/global/ko-KP.js +1 -1
  2268. package/locales/global/ko.js +1 -1
  2269. package/locales/global/kok.js +1 -1
  2270. package/locales/global/ks-Arab.js +1 -1
  2271. package/locales/global/ks-Deva.js +1 -1
  2272. package/locales/global/ks.js +1 -1
  2273. package/locales/global/ksb.js +1 -1
  2274. package/locales/global/ksf.js +1 -1
  2275. package/locales/global/ksh.js +1 -1
  2276. package/locales/global/ku.js +1 -1
  2277. package/locales/global/kw.js +1 -1
  2278. package/locales/global/ky.js +1 -1
  2279. package/locales/global/lag.js +1 -1
  2280. package/locales/global/lb.js +1 -1
  2281. package/locales/global/lg.js +1 -1
  2282. package/locales/global/lkt.js +1 -1
  2283. package/locales/global/ln-AO.js +1 -1
  2284. package/locales/global/ln-CF.js +1 -1
  2285. package/locales/global/ln-CG.js +1 -1
  2286. package/locales/global/ln.js +1 -1
  2287. package/locales/global/lo.js +1 -1
  2288. package/locales/global/lrc-IQ.js +1 -1
  2289. package/locales/global/lrc.js +1 -1
  2290. package/locales/global/lt.js +1 -1
  2291. package/locales/global/lu.js +1 -1
  2292. package/locales/global/luo.js +1 -1
  2293. package/locales/global/luy.js +1 -1
  2294. package/locales/global/lv.js +1 -1
  2295. package/locales/global/mai.js +1 -1
  2296. package/locales/global/mas-TZ.js +1 -1
  2297. package/locales/global/mas.js +1 -1
  2298. package/locales/global/mer.js +1 -1
  2299. package/locales/global/mfe.js +1 -1
  2300. package/locales/global/mg.js +1 -1
  2301. package/locales/global/mgh.js +1 -1
  2302. package/locales/global/mgo.js +1 -1
  2303. package/locales/global/mi.js +1 -1
  2304. package/locales/global/mk.js +1 -1
  2305. package/locales/global/ml.js +1 -1
  2306. package/locales/global/mn.js +1 -1
  2307. package/locales/global/mni-Beng.js +1 -1
  2308. package/locales/global/mni.js +1 -1
  2309. package/locales/global/mr.js +1 -1
  2310. package/locales/global/ms-BN.js +1 -1
  2311. package/locales/global/ms-ID.js +1 -1
  2312. package/locales/global/ms-SG.js +1 -1
  2313. package/locales/global/ms.js +1 -1
  2314. package/locales/global/mt.js +1 -1
  2315. package/locales/global/mua.js +1 -1
  2316. package/locales/global/my.js +1 -1
  2317. package/locales/global/mzn.js +1 -1
  2318. package/locales/global/naq.js +1 -1
  2319. package/locales/global/nb-SJ.js +1 -1
  2320. package/locales/global/nb.js +1 -1
  2321. package/locales/global/nd.js +1 -1
  2322. package/locales/global/nds-NL.js +1 -1
  2323. package/locales/global/nds.js +1 -1
  2324. package/locales/global/ne-IN.js +1 -1
  2325. package/locales/global/ne.js +1 -1
  2326. package/locales/global/nl-AW.js +1 -1
  2327. package/locales/global/nl-BE.js +1 -1
  2328. package/locales/global/nl-BQ.js +1 -1
  2329. package/locales/global/nl-CW.js +1 -1
  2330. package/locales/global/nl-SR.js +1 -1
  2331. package/locales/global/nl-SX.js +1 -1
  2332. package/locales/global/nl.js +1 -1
  2333. package/locales/global/nmg.js +1 -1
  2334. package/locales/global/nn.js +1 -1
  2335. package/locales/global/nnh.js +1 -1
  2336. package/locales/global/no.js +1 -1
  2337. package/locales/global/nus.js +1 -1
  2338. package/locales/global/nyn.js +1 -1
  2339. package/locales/global/om-KE.js +1 -1
  2340. package/locales/global/om.js +1 -1
  2341. package/locales/global/or.js +1 -1
  2342. package/locales/global/os-RU.js +1 -1
  2343. package/locales/global/os.js +1 -1
  2344. package/locales/global/pa-Arab.js +1 -1
  2345. package/locales/global/pa-Guru.js +1 -1
  2346. package/locales/global/pa.js +1 -1
  2347. package/locales/global/pcm.js +1 -1
  2348. package/locales/global/pl.js +1 -1
  2349. package/locales/global/ps-PK.js +1 -1
  2350. package/locales/global/ps.js +1 -1
  2351. package/locales/global/pt-AO.js +1 -1
  2352. package/locales/global/pt-CH.js +1 -1
  2353. package/locales/global/pt-CV.js +1 -1
  2354. package/locales/global/pt-GQ.js +1 -1
  2355. package/locales/global/pt-GW.js +1 -1
  2356. package/locales/global/pt-LU.js +1 -1
  2357. package/locales/global/pt-MO.js +1 -1
  2358. package/locales/global/pt-MZ.js +1 -1
  2359. package/locales/global/pt-PT.js +1 -1
  2360. package/locales/global/pt-ST.js +1 -1
  2361. package/locales/global/pt-TL.js +1 -1
  2362. package/locales/global/pt.js +1 -1
  2363. package/locales/global/qu-BO.js +1 -1
  2364. package/locales/global/qu-EC.js +1 -1
  2365. package/locales/global/qu.js +1 -1
  2366. package/locales/global/rm.js +1 -1
  2367. package/locales/global/rn.js +1 -1
  2368. package/locales/global/ro-MD.js +1 -1
  2369. package/locales/global/ro.js +1 -1
  2370. package/locales/global/rof.js +1 -1
  2371. package/locales/global/ru-BY.js +1 -1
  2372. package/locales/global/ru-KG.js +1 -1
  2373. package/locales/global/ru-KZ.js +1 -1
  2374. package/locales/global/ru-MD.js +1 -1
  2375. package/locales/global/ru-UA.js +1 -1
  2376. package/locales/global/ru.js +1 -1
  2377. package/locales/global/rw.js +1 -1
  2378. package/locales/global/rwk.js +1 -1
  2379. package/locales/global/sa.js +1 -1
  2380. package/locales/global/sah.js +1 -1
  2381. package/locales/global/saq.js +1 -1
  2382. package/locales/global/sat-Olck.js +1 -1
  2383. package/locales/global/sat.js +1 -1
  2384. package/locales/global/sbp.js +1 -1
  2385. package/locales/global/sc.js +1 -1
  2386. package/locales/global/sd-Arab.js +1 -1
  2387. package/locales/global/sd-Deva.js +1 -1
  2388. package/locales/global/sd.js +1 -1
  2389. package/locales/global/se-FI.js +1 -1
  2390. package/locales/global/se-SE.js +1 -1
  2391. package/locales/global/se.js +1 -1
  2392. package/locales/global/seh.js +1 -1
  2393. package/locales/global/ses.js +1 -1
  2394. package/locales/global/sg.js +1 -1
  2395. package/locales/global/shi-Latn.js +1 -1
  2396. package/locales/global/shi-Tfng.js +1 -1
  2397. package/locales/global/shi.js +1 -1
  2398. package/locales/global/si.js +1 -1
  2399. package/locales/global/sk.js +1 -1
  2400. package/locales/global/sl.js +1 -1
  2401. package/locales/global/smn.js +1 -1
  2402. package/locales/global/sn.js +1 -1
  2403. package/locales/global/so-DJ.js +1 -1
  2404. package/locales/global/so-ET.js +1 -1
  2405. package/locales/global/so-KE.js +1 -1
  2406. package/locales/global/so.js +1 -1
  2407. package/locales/global/sq-MK.js +1 -1
  2408. package/locales/global/sq-XK.js +1 -1
  2409. package/locales/global/sq.js +1 -1
  2410. package/locales/global/sr-Cyrl-BA.js +1 -1
  2411. package/locales/global/sr-Cyrl-ME.js +1 -1
  2412. package/locales/global/sr-Cyrl-XK.js +1 -1
  2413. package/locales/global/sr-Cyrl.js +1 -1
  2414. package/locales/global/sr-Latn-BA.js +1 -1
  2415. package/locales/global/sr-Latn-ME.js +1 -1
  2416. package/locales/global/sr-Latn-XK.js +1 -1
  2417. package/locales/global/sr-Latn.js +1 -1
  2418. package/locales/global/sr.js +1 -1
  2419. package/locales/global/su-Latn.js +1 -1
  2420. package/locales/global/su.js +1 -1
  2421. package/locales/global/sv-AX.js +1 -1
  2422. package/locales/global/sv-FI.js +1 -1
  2423. package/locales/global/sv.js +1 -1
  2424. package/locales/global/sw-CD.js +1 -1
  2425. package/locales/global/sw-KE.js +1 -1
  2426. package/locales/global/sw-UG.js +1 -1
  2427. package/locales/global/sw.js +1 -1
  2428. package/locales/global/ta-LK.js +1 -1
  2429. package/locales/global/ta-MY.js +1 -1
  2430. package/locales/global/ta-SG.js +1 -1
  2431. package/locales/global/ta.js +1 -1
  2432. package/locales/global/te.js +1 -1
  2433. package/locales/global/teo-KE.js +1 -1
  2434. package/locales/global/teo.js +1 -1
  2435. package/locales/global/tg.js +1 -1
  2436. package/locales/global/th.js +1 -1
  2437. package/locales/global/ti-ER.js +1 -1
  2438. package/locales/global/ti.js +1 -1
  2439. package/locales/global/tk.js +1 -1
  2440. package/locales/global/to.js +1 -1
  2441. package/locales/global/tr-CY.js +1 -1
  2442. package/locales/global/tr.js +1 -1
  2443. package/locales/global/tt.js +1 -1
  2444. package/locales/global/twq.js +1 -1
  2445. package/locales/global/tzm.js +1 -1
  2446. package/locales/global/ug.js +1 -1
  2447. package/locales/global/uk.js +1 -1
  2448. package/locales/global/und.js +1 -1
  2449. package/locales/global/ur-IN.js +1 -1
  2450. package/locales/global/ur.js +1 -1
  2451. package/locales/global/uz-Arab.js +1 -1
  2452. package/locales/global/uz-Cyrl.js +1 -1
  2453. package/locales/global/uz-Latn.js +1 -1
  2454. package/locales/global/uz.js +1 -1
  2455. package/locales/global/vai-Latn.js +1 -1
  2456. package/locales/global/vai-Vaii.js +1 -1
  2457. package/locales/global/vai.js +1 -1
  2458. package/locales/global/vi.js +1 -1
  2459. package/locales/global/vun.js +1 -1
  2460. package/locales/global/wae.js +1 -1
  2461. package/locales/global/wo.js +1 -1
  2462. package/locales/global/xh.js +1 -1
  2463. package/locales/global/xog.js +1 -1
  2464. package/locales/global/yav.js +1 -1
  2465. package/locales/global/yi.js +1 -1
  2466. package/locales/global/yo-BJ.js +1 -1
  2467. package/locales/global/yo.js +1 -1
  2468. package/locales/global/yrl-CO.js +1 -1
  2469. package/locales/global/yrl-VE.js +1 -1
  2470. package/locales/global/yrl.js +1 -1
  2471. package/locales/global/yue-Hans.js +1 -1
  2472. package/locales/global/yue-Hant.js +1 -1
  2473. package/locales/global/yue.js +1 -1
  2474. package/locales/global/zgh.js +1 -1
  2475. package/locales/global/zh-Hans-HK.js +1 -1
  2476. package/locales/global/zh-Hans-MO.js +1 -1
  2477. package/locales/global/zh-Hans-SG.js +1 -1
  2478. package/locales/global/zh-Hans.js +1 -1
  2479. package/locales/global/zh-Hant-HK.js +1 -1
  2480. package/locales/global/zh-Hant-MO.js +1 -1
  2481. package/locales/global/zh-Hant.js +1 -1
  2482. package/locales/global/zh.js +1 -1
  2483. package/locales/global/zu.js +1 -1
  2484. package/locales/gsw-FR.d.ts +1 -1
  2485. package/locales/gsw-FR.mjs +2 -2
  2486. package/locales/gsw-LI.d.ts +1 -1
  2487. package/locales/gsw-LI.mjs +2 -2
  2488. package/locales/gsw.d.ts +1 -1
  2489. package/locales/gsw.mjs +2 -2
  2490. package/locales/gu.d.ts +1 -1
  2491. package/locales/gu.mjs +2 -2
  2492. package/locales/guz.d.ts +1 -1
  2493. package/locales/guz.mjs +2 -2
  2494. package/locales/gv.d.ts +1 -1
  2495. package/locales/gv.mjs +2 -2
  2496. package/locales/ha-GH.d.ts +1 -1
  2497. package/locales/ha-GH.mjs +2 -2
  2498. package/locales/ha-NE.d.ts +1 -1
  2499. package/locales/ha-NE.mjs +2 -2
  2500. package/locales/ha.d.ts +1 -1
  2501. package/locales/ha.mjs +2 -2
  2502. package/locales/haw.d.ts +1 -1
  2503. package/locales/haw.mjs +2 -2
  2504. package/locales/he.d.ts +1 -1
  2505. package/locales/he.mjs +2 -2
  2506. package/locales/hi-Latn.d.ts +1 -1
  2507. package/locales/hi-Latn.mjs +2 -2
  2508. package/locales/hi.d.ts +1 -1
  2509. package/locales/hi.mjs +2 -2
  2510. package/locales/hr-BA.d.ts +1 -1
  2511. package/locales/hr-BA.mjs +2 -2
  2512. package/locales/hr.d.ts +1 -1
  2513. package/locales/hr.mjs +2 -2
  2514. package/locales/hsb.d.ts +1 -1
  2515. package/locales/hsb.mjs +2 -2
  2516. package/locales/hu.d.ts +1 -1
  2517. package/locales/hu.mjs +2 -2
  2518. package/locales/hy.d.ts +1 -1
  2519. package/locales/hy.mjs +2 -2
  2520. package/locales/ia.d.ts +1 -1
  2521. package/locales/ia.mjs +2 -2
  2522. package/locales/id.d.ts +1 -1
  2523. package/locales/id.mjs +2 -2
  2524. package/locales/ig.d.ts +1 -1
  2525. package/locales/ig.mjs +2 -2
  2526. package/locales/ii.d.ts +1 -1
  2527. package/locales/ii.mjs +2 -2
  2528. package/locales/is.d.ts +1 -1
  2529. package/locales/is.mjs +2 -2
  2530. package/locales/it-CH.d.ts +1 -1
  2531. package/locales/it-CH.mjs +2 -2
  2532. package/locales/it-SM.d.ts +1 -1
  2533. package/locales/it-SM.mjs +2 -2
  2534. package/locales/it-VA.d.ts +1 -1
  2535. package/locales/it-VA.mjs +2 -2
  2536. package/locales/it.d.ts +1 -1
  2537. package/locales/it.mjs +2 -2
  2538. package/locales/ja.d.ts +1 -1
  2539. package/locales/ja.mjs +2 -2
  2540. package/locales/jgo.d.ts +1 -1
  2541. package/locales/jgo.mjs +2 -2
  2542. package/locales/jmc.d.ts +1 -1
  2543. package/locales/jmc.mjs +2 -2
  2544. package/locales/jv.d.ts +1 -1
  2545. package/locales/jv.mjs +2 -2
  2546. package/locales/ka.d.ts +1 -1
  2547. package/locales/ka.mjs +2 -2
  2548. package/locales/kab.d.ts +1 -1
  2549. package/locales/kab.mjs +2 -2
  2550. package/locales/kam.d.ts +1 -1
  2551. package/locales/kam.mjs +2 -2
  2552. package/locales/kde.d.ts +1 -1
  2553. package/locales/kde.mjs +2 -2
  2554. package/locales/kea.d.ts +1 -1
  2555. package/locales/kea.mjs +2 -2
  2556. package/locales/kgp.d.ts +1 -1
  2557. package/locales/kgp.mjs +2 -2
  2558. package/locales/khq.d.ts +1 -1
  2559. package/locales/khq.mjs +2 -2
  2560. package/locales/ki.d.ts +1 -1
  2561. package/locales/ki.mjs +2 -2
  2562. package/locales/kk.d.ts +1 -1
  2563. package/locales/kk.mjs +2 -2
  2564. package/locales/kkj.d.ts +1 -1
  2565. package/locales/kkj.mjs +2 -2
  2566. package/locales/kl.d.ts +1 -1
  2567. package/locales/kl.mjs +2 -2
  2568. package/locales/kln.d.ts +1 -1
  2569. package/locales/kln.mjs +2 -2
  2570. package/locales/km.d.ts +1 -1
  2571. package/locales/km.mjs +2 -2
  2572. package/locales/kn.d.ts +1 -1
  2573. package/locales/kn.mjs +2 -2
  2574. package/locales/ko-KP.d.ts +1 -1
  2575. package/locales/ko-KP.mjs +2 -2
  2576. package/locales/ko.d.ts +1 -1
  2577. package/locales/ko.mjs +2 -2
  2578. package/locales/kok.d.ts +1 -1
  2579. package/locales/kok.mjs +2 -2
  2580. package/locales/ks-Arab.d.ts +1 -1
  2581. package/locales/ks-Arab.mjs +2 -2
  2582. package/locales/ks-Deva.d.ts +1 -1
  2583. package/locales/ks-Deva.mjs +2 -2
  2584. package/locales/ks.d.ts +1 -1
  2585. package/locales/ks.mjs +2 -2
  2586. package/locales/ksb.d.ts +1 -1
  2587. package/locales/ksb.mjs +2 -2
  2588. package/locales/ksf.d.ts +1 -1
  2589. package/locales/ksf.mjs +2 -2
  2590. package/locales/ksh.d.ts +1 -1
  2591. package/locales/ksh.mjs +2 -2
  2592. package/locales/ku.d.ts +1 -1
  2593. package/locales/ku.mjs +2 -2
  2594. package/locales/kw.d.ts +1 -1
  2595. package/locales/kw.mjs +2 -2
  2596. package/locales/ky.d.ts +1 -1
  2597. package/locales/ky.mjs +2 -2
  2598. package/locales/lag.d.ts +1 -1
  2599. package/locales/lag.mjs +2 -2
  2600. package/locales/lb.d.ts +1 -1
  2601. package/locales/lb.mjs +2 -2
  2602. package/locales/lg.d.ts +1 -1
  2603. package/locales/lg.mjs +2 -2
  2604. package/locales/lkt.d.ts +1 -1
  2605. package/locales/lkt.mjs +2 -2
  2606. package/locales/ln-AO.d.ts +1 -1
  2607. package/locales/ln-AO.mjs +2 -2
  2608. package/locales/ln-CF.d.ts +1 -1
  2609. package/locales/ln-CF.mjs +2 -2
  2610. package/locales/ln-CG.d.ts +1 -1
  2611. package/locales/ln-CG.mjs +2 -2
  2612. package/locales/ln.d.ts +1 -1
  2613. package/locales/ln.mjs +2 -2
  2614. package/locales/lo.d.ts +1 -1
  2615. package/locales/lo.mjs +2 -2
  2616. package/locales/lrc-IQ.d.ts +1 -1
  2617. package/locales/lrc-IQ.mjs +2 -2
  2618. package/locales/lrc.d.ts +1 -1
  2619. package/locales/lrc.mjs +2 -2
  2620. package/locales/lt.d.ts +1 -1
  2621. package/locales/lt.mjs +2 -2
  2622. package/locales/lu.d.ts +1 -1
  2623. package/locales/lu.mjs +2 -2
  2624. package/locales/luo.d.ts +1 -1
  2625. package/locales/luo.mjs +2 -2
  2626. package/locales/luy.d.ts +1 -1
  2627. package/locales/luy.mjs +2 -2
  2628. package/locales/lv.d.ts +1 -1
  2629. package/locales/lv.mjs +2 -2
  2630. package/locales/mai.d.ts +1 -1
  2631. package/locales/mai.mjs +2 -2
  2632. package/locales/mas-TZ.d.ts +1 -1
  2633. package/locales/mas-TZ.mjs +2 -2
  2634. package/locales/mas.d.ts +1 -1
  2635. package/locales/mas.mjs +2 -2
  2636. package/locales/mer.d.ts +1 -1
  2637. package/locales/mer.mjs +2 -2
  2638. package/locales/mfe.d.ts +1 -1
  2639. package/locales/mfe.mjs +2 -2
  2640. package/locales/mg.d.ts +1 -1
  2641. package/locales/mg.mjs +2 -2
  2642. package/locales/mgh.d.ts +1 -1
  2643. package/locales/mgh.mjs +2 -2
  2644. package/locales/mgo.d.ts +1 -1
  2645. package/locales/mgo.mjs +2 -2
  2646. package/locales/mi.d.ts +1 -1
  2647. package/locales/mi.mjs +2 -2
  2648. package/locales/mk.d.ts +1 -1
  2649. package/locales/mk.mjs +2 -2
  2650. package/locales/ml.d.ts +1 -1
  2651. package/locales/ml.mjs +2 -2
  2652. package/locales/mn.d.ts +1 -1
  2653. package/locales/mn.mjs +2 -2
  2654. package/locales/mni-Beng.d.ts +1 -1
  2655. package/locales/mni-Beng.mjs +2 -2
  2656. package/locales/mni.d.ts +1 -1
  2657. package/locales/mni.mjs +2 -2
  2658. package/locales/mr.d.ts +1 -1
  2659. package/locales/mr.mjs +2 -2
  2660. package/locales/ms-BN.d.ts +1 -1
  2661. package/locales/ms-BN.mjs +2 -2
  2662. package/locales/ms-ID.d.ts +1 -1
  2663. package/locales/ms-ID.mjs +2 -2
  2664. package/locales/ms-SG.d.ts +1 -1
  2665. package/locales/ms-SG.mjs +2 -2
  2666. package/locales/ms.d.ts +1 -1
  2667. package/locales/ms.mjs +2 -2
  2668. package/locales/mt.d.ts +1 -1
  2669. package/locales/mt.mjs +2 -2
  2670. package/locales/mua.d.ts +1 -1
  2671. package/locales/mua.mjs +2 -2
  2672. package/locales/my.d.ts +1 -1
  2673. package/locales/my.mjs +2 -2
  2674. package/locales/mzn.d.ts +1 -1
  2675. package/locales/mzn.mjs +2 -2
  2676. package/locales/naq.d.ts +1 -1
  2677. package/locales/naq.mjs +2 -2
  2678. package/locales/nb-SJ.d.ts +1 -1
  2679. package/locales/nb-SJ.mjs +2 -2
  2680. package/locales/nb.d.ts +1 -1
  2681. package/locales/nb.mjs +2 -2
  2682. package/locales/nd.d.ts +1 -1
  2683. package/locales/nd.mjs +2 -2
  2684. package/locales/nds-NL.d.ts +1 -1
  2685. package/locales/nds-NL.mjs +2 -2
  2686. package/locales/nds.d.ts +1 -1
  2687. package/locales/nds.mjs +2 -2
  2688. package/locales/ne-IN.d.ts +1 -1
  2689. package/locales/ne-IN.mjs +2 -2
  2690. package/locales/ne.d.ts +1 -1
  2691. package/locales/ne.mjs +2 -2
  2692. package/locales/nl-AW.d.ts +1 -1
  2693. package/locales/nl-AW.mjs +2 -2
  2694. package/locales/nl-BE.d.ts +1 -1
  2695. package/locales/nl-BE.mjs +2 -2
  2696. package/locales/nl-BQ.d.ts +1 -1
  2697. package/locales/nl-BQ.mjs +2 -2
  2698. package/locales/nl-CW.d.ts +1 -1
  2699. package/locales/nl-CW.mjs +2 -2
  2700. package/locales/nl-SR.d.ts +1 -1
  2701. package/locales/nl-SR.mjs +2 -2
  2702. package/locales/nl-SX.d.ts +1 -1
  2703. package/locales/nl-SX.mjs +2 -2
  2704. package/locales/nl.d.ts +1 -1
  2705. package/locales/nl.mjs +2 -2
  2706. package/locales/nmg.d.ts +1 -1
  2707. package/locales/nmg.mjs +2 -2
  2708. package/locales/nn.d.ts +1 -1
  2709. package/locales/nn.mjs +2 -2
  2710. package/locales/nnh.d.ts +1 -1
  2711. package/locales/nnh.mjs +2 -2
  2712. package/locales/no.d.ts +1 -1
  2713. package/locales/no.mjs +2 -2
  2714. package/locales/nus.d.ts +1 -1
  2715. package/locales/nus.mjs +2 -2
  2716. package/locales/nyn.d.ts +1 -1
  2717. package/locales/nyn.mjs +2 -2
  2718. package/locales/om-KE.d.ts +1 -1
  2719. package/locales/om-KE.mjs +2 -2
  2720. package/locales/om.d.ts +1 -1
  2721. package/locales/om.mjs +2 -2
  2722. package/locales/or.d.ts +1 -1
  2723. package/locales/or.mjs +2 -2
  2724. package/locales/os-RU.d.ts +1 -1
  2725. package/locales/os-RU.mjs +2 -2
  2726. package/locales/os.d.ts +1 -1
  2727. package/locales/os.mjs +2 -2
  2728. package/locales/pa-Arab.d.ts +1 -1
  2729. package/locales/pa-Arab.mjs +2 -2
  2730. package/locales/pa-Guru.d.ts +1 -1
  2731. package/locales/pa-Guru.mjs +2 -2
  2732. package/locales/pa.d.ts +1 -1
  2733. package/locales/pa.mjs +2 -2
  2734. package/locales/pcm.d.ts +1 -1
  2735. package/locales/pcm.mjs +2 -2
  2736. package/locales/pl.d.ts +1 -1
  2737. package/locales/pl.mjs +2 -2
  2738. package/locales/ps-PK.d.ts +1 -1
  2739. package/locales/ps-PK.mjs +2 -2
  2740. package/locales/ps.d.ts +1 -1
  2741. package/locales/ps.mjs +2 -2
  2742. package/locales/pt-AO.d.ts +1 -1
  2743. package/locales/pt-AO.mjs +2 -2
  2744. package/locales/pt-CH.d.ts +1 -1
  2745. package/locales/pt-CH.mjs +2 -2
  2746. package/locales/pt-CV.d.ts +1 -1
  2747. package/locales/pt-CV.mjs +2 -2
  2748. package/locales/pt-GQ.d.ts +1 -1
  2749. package/locales/pt-GQ.mjs +2 -2
  2750. package/locales/pt-GW.d.ts +1 -1
  2751. package/locales/pt-GW.mjs +2 -2
  2752. package/locales/pt-LU.d.ts +1 -1
  2753. package/locales/pt-LU.mjs +2 -2
  2754. package/locales/pt-MO.d.ts +1 -1
  2755. package/locales/pt-MO.mjs +2 -2
  2756. package/locales/pt-MZ.d.ts +1 -1
  2757. package/locales/pt-MZ.mjs +2 -2
  2758. package/locales/pt-PT.d.ts +1 -1
  2759. package/locales/pt-PT.mjs +2 -2
  2760. package/locales/pt-ST.d.ts +1 -1
  2761. package/locales/pt-ST.mjs +2 -2
  2762. package/locales/pt-TL.d.ts +1 -1
  2763. package/locales/pt-TL.mjs +2 -2
  2764. package/locales/pt.d.ts +1 -1
  2765. package/locales/pt.mjs +2 -2
  2766. package/locales/qu-BO.d.ts +1 -1
  2767. package/locales/qu-BO.mjs +2 -2
  2768. package/locales/qu-EC.d.ts +1 -1
  2769. package/locales/qu-EC.mjs +2 -2
  2770. package/locales/qu.d.ts +1 -1
  2771. package/locales/qu.mjs +2 -2
  2772. package/locales/rm.d.ts +1 -1
  2773. package/locales/rm.mjs +2 -2
  2774. package/locales/rn.d.ts +1 -1
  2775. package/locales/rn.mjs +2 -2
  2776. package/locales/ro-MD.d.ts +1 -1
  2777. package/locales/ro-MD.mjs +2 -2
  2778. package/locales/ro.d.ts +1 -1
  2779. package/locales/ro.mjs +2 -2
  2780. package/locales/rof.d.ts +1 -1
  2781. package/locales/rof.mjs +2 -2
  2782. package/locales/ru-BY.d.ts +1 -1
  2783. package/locales/ru-BY.mjs +2 -2
  2784. package/locales/ru-KG.d.ts +1 -1
  2785. package/locales/ru-KG.mjs +2 -2
  2786. package/locales/ru-KZ.d.ts +1 -1
  2787. package/locales/ru-KZ.mjs +2 -2
  2788. package/locales/ru-MD.d.ts +1 -1
  2789. package/locales/ru-MD.mjs +2 -2
  2790. package/locales/ru-UA.d.ts +1 -1
  2791. package/locales/ru-UA.mjs +2 -2
  2792. package/locales/ru.d.ts +1 -1
  2793. package/locales/ru.mjs +2 -2
  2794. package/locales/rw.d.ts +1 -1
  2795. package/locales/rw.mjs +2 -2
  2796. package/locales/rwk.d.ts +1 -1
  2797. package/locales/rwk.mjs +2 -2
  2798. package/locales/sa.d.ts +1 -1
  2799. package/locales/sa.mjs +2 -2
  2800. package/locales/sah.d.ts +1 -1
  2801. package/locales/sah.mjs +2 -2
  2802. package/locales/saq.d.ts +1 -1
  2803. package/locales/saq.mjs +2 -2
  2804. package/locales/sat-Olck.d.ts +1 -1
  2805. package/locales/sat-Olck.mjs +2 -2
  2806. package/locales/sat.d.ts +1 -1
  2807. package/locales/sat.mjs +2 -2
  2808. package/locales/sbp.d.ts +1 -1
  2809. package/locales/sbp.mjs +2 -2
  2810. package/locales/sc.d.ts +1 -1
  2811. package/locales/sc.mjs +2 -2
  2812. package/locales/sd-Arab.d.ts +1 -1
  2813. package/locales/sd-Arab.mjs +2 -2
  2814. package/locales/sd-Deva.d.ts +1 -1
  2815. package/locales/sd-Deva.mjs +2 -2
  2816. package/locales/sd.d.ts +1 -1
  2817. package/locales/sd.mjs +2 -2
  2818. package/locales/se-FI.d.ts +1 -1
  2819. package/locales/se-FI.mjs +2 -2
  2820. package/locales/se-SE.d.ts +1 -1
  2821. package/locales/se-SE.mjs +2 -2
  2822. package/locales/se.d.ts +1 -1
  2823. package/locales/se.mjs +2 -2
  2824. package/locales/seh.d.ts +1 -1
  2825. package/locales/seh.mjs +2 -2
  2826. package/locales/ses.d.ts +1 -1
  2827. package/locales/ses.mjs +2 -2
  2828. package/locales/sg.d.ts +1 -1
  2829. package/locales/sg.mjs +2 -2
  2830. package/locales/shi-Latn.d.ts +1 -1
  2831. package/locales/shi-Latn.mjs +2 -2
  2832. package/locales/shi-Tfng.d.ts +1 -1
  2833. package/locales/shi-Tfng.mjs +2 -2
  2834. package/locales/shi.d.ts +1 -1
  2835. package/locales/shi.mjs +2 -2
  2836. package/locales/si.d.ts +1 -1
  2837. package/locales/si.mjs +2 -2
  2838. package/locales/sk.d.ts +1 -1
  2839. package/locales/sk.mjs +2 -2
  2840. package/locales/sl.d.ts +1 -1
  2841. package/locales/sl.mjs +2 -2
  2842. package/locales/smn.d.ts +1 -1
  2843. package/locales/smn.mjs +2 -2
  2844. package/locales/sn.d.ts +1 -1
  2845. package/locales/sn.mjs +2 -2
  2846. package/locales/so-DJ.d.ts +1 -1
  2847. package/locales/so-DJ.mjs +2 -2
  2848. package/locales/so-ET.d.ts +1 -1
  2849. package/locales/so-ET.mjs +2 -2
  2850. package/locales/so-KE.d.ts +1 -1
  2851. package/locales/so-KE.mjs +2 -2
  2852. package/locales/so.d.ts +1 -1
  2853. package/locales/so.mjs +2 -2
  2854. package/locales/sq-MK.d.ts +1 -1
  2855. package/locales/sq-MK.mjs +2 -2
  2856. package/locales/sq-XK.d.ts +1 -1
  2857. package/locales/sq-XK.mjs +2 -2
  2858. package/locales/sq.d.ts +1 -1
  2859. package/locales/sq.mjs +2 -2
  2860. package/locales/sr-Cyrl-BA.d.ts +1 -1
  2861. package/locales/sr-Cyrl-BA.mjs +2 -2
  2862. package/locales/sr-Cyrl-ME.d.ts +1 -1
  2863. package/locales/sr-Cyrl-ME.mjs +2 -2
  2864. package/locales/sr-Cyrl-XK.d.ts +1 -1
  2865. package/locales/sr-Cyrl-XK.mjs +2 -2
  2866. package/locales/sr-Cyrl.d.ts +1 -1
  2867. package/locales/sr-Cyrl.mjs +2 -2
  2868. package/locales/sr-Latn-BA.d.ts +1 -1
  2869. package/locales/sr-Latn-BA.mjs +2 -2
  2870. package/locales/sr-Latn-ME.d.ts +1 -1
  2871. package/locales/sr-Latn-ME.mjs +2 -2
  2872. package/locales/sr-Latn-XK.d.ts +1 -1
  2873. package/locales/sr-Latn-XK.mjs +2 -2
  2874. package/locales/sr-Latn.d.ts +1 -1
  2875. package/locales/sr-Latn.mjs +2 -2
  2876. package/locales/sr.d.ts +1 -1
  2877. package/locales/sr.mjs +2 -2
  2878. package/locales/su-Latn.d.ts +1 -1
  2879. package/locales/su-Latn.mjs +2 -2
  2880. package/locales/su.d.ts +1 -1
  2881. package/locales/su.mjs +2 -2
  2882. package/locales/sv-AX.d.ts +1 -1
  2883. package/locales/sv-AX.mjs +2 -2
  2884. package/locales/sv-FI.d.ts +1 -1
  2885. package/locales/sv-FI.mjs +2 -2
  2886. package/locales/sv.d.ts +1 -1
  2887. package/locales/sv.mjs +2 -2
  2888. package/locales/sw-CD.d.ts +1 -1
  2889. package/locales/sw-CD.mjs +2 -2
  2890. package/locales/sw-KE.d.ts +1 -1
  2891. package/locales/sw-KE.mjs +2 -2
  2892. package/locales/sw-UG.d.ts +1 -1
  2893. package/locales/sw-UG.mjs +2 -2
  2894. package/locales/sw.d.ts +1 -1
  2895. package/locales/sw.mjs +2 -2
  2896. package/locales/ta-LK.d.ts +1 -1
  2897. package/locales/ta-LK.mjs +2 -2
  2898. package/locales/ta-MY.d.ts +1 -1
  2899. package/locales/ta-MY.mjs +2 -2
  2900. package/locales/ta-SG.d.ts +1 -1
  2901. package/locales/ta-SG.mjs +2 -2
  2902. package/locales/ta.d.ts +1 -1
  2903. package/locales/ta.mjs +2 -2
  2904. package/locales/te.d.ts +1 -1
  2905. package/locales/te.mjs +2 -2
  2906. package/locales/teo-KE.d.ts +1 -1
  2907. package/locales/teo-KE.mjs +2 -2
  2908. package/locales/teo.d.ts +1 -1
  2909. package/locales/teo.mjs +2 -2
  2910. package/locales/tg.d.ts +1 -1
  2911. package/locales/tg.mjs +2 -2
  2912. package/locales/th.d.ts +1 -1
  2913. package/locales/th.mjs +2 -2
  2914. package/locales/ti-ER.d.ts +1 -1
  2915. package/locales/ti-ER.mjs +2 -2
  2916. package/locales/ti.d.ts +1 -1
  2917. package/locales/ti.mjs +2 -2
  2918. package/locales/tk.d.ts +1 -1
  2919. package/locales/tk.mjs +2 -2
  2920. package/locales/to.d.ts +1 -1
  2921. package/locales/to.mjs +2 -2
  2922. package/locales/tr-CY.d.ts +1 -1
  2923. package/locales/tr-CY.mjs +2 -2
  2924. package/locales/tr.d.ts +1 -1
  2925. package/locales/tr.mjs +2 -2
  2926. package/locales/tt.d.ts +1 -1
  2927. package/locales/tt.mjs +2 -2
  2928. package/locales/twq.d.ts +1 -1
  2929. package/locales/twq.mjs +2 -2
  2930. package/locales/tzm.d.ts +1 -1
  2931. package/locales/tzm.mjs +2 -2
  2932. package/locales/ug.d.ts +1 -1
  2933. package/locales/ug.mjs +2 -2
  2934. package/locales/uk.d.ts +1 -1
  2935. package/locales/uk.mjs +2 -2
  2936. package/locales/und.d.ts +1 -1
  2937. package/locales/und.mjs +2 -2
  2938. package/locales/ur-IN.d.ts +1 -1
  2939. package/locales/ur-IN.mjs +2 -2
  2940. package/locales/ur.d.ts +1 -1
  2941. package/locales/ur.mjs +2 -2
  2942. package/locales/uz-Arab.d.ts +1 -1
  2943. package/locales/uz-Arab.mjs +2 -2
  2944. package/locales/uz-Cyrl.d.ts +1 -1
  2945. package/locales/uz-Cyrl.mjs +2 -2
  2946. package/locales/uz-Latn.d.ts +1 -1
  2947. package/locales/uz-Latn.mjs +2 -2
  2948. package/locales/uz.d.ts +1 -1
  2949. package/locales/uz.mjs +2 -2
  2950. package/locales/vai-Latn.d.ts +1 -1
  2951. package/locales/vai-Latn.mjs +2 -2
  2952. package/locales/vai-Vaii.d.ts +1 -1
  2953. package/locales/vai-Vaii.mjs +2 -2
  2954. package/locales/vai.d.ts +1 -1
  2955. package/locales/vai.mjs +2 -2
  2956. package/locales/vi.d.ts +1 -1
  2957. package/locales/vi.mjs +2 -2
  2958. package/locales/vun.d.ts +1 -1
  2959. package/locales/vun.mjs +2 -2
  2960. package/locales/wae.d.ts +1 -1
  2961. package/locales/wae.mjs +2 -2
  2962. package/locales/wo.d.ts +1 -1
  2963. package/locales/wo.mjs +2 -2
  2964. package/locales/xh.d.ts +1 -1
  2965. package/locales/xh.mjs +2 -2
  2966. package/locales/xog.d.ts +1 -1
  2967. package/locales/xog.mjs +2 -2
  2968. package/locales/yav.d.ts +1 -1
  2969. package/locales/yav.mjs +2 -2
  2970. package/locales/yi.d.ts +1 -1
  2971. package/locales/yi.mjs +2 -2
  2972. package/locales/yo-BJ.d.ts +1 -1
  2973. package/locales/yo-BJ.mjs +2 -2
  2974. package/locales/yo.d.ts +1 -1
  2975. package/locales/yo.mjs +2 -2
  2976. package/locales/yrl-CO.d.ts +1 -1
  2977. package/locales/yrl-CO.mjs +2 -2
  2978. package/locales/yrl-VE.d.ts +1 -1
  2979. package/locales/yrl-VE.mjs +2 -2
  2980. package/locales/yrl.d.ts +1 -1
  2981. package/locales/yrl.mjs +2 -2
  2982. package/locales/yue-Hans.d.ts +1 -1
  2983. package/locales/yue-Hans.mjs +2 -2
  2984. package/locales/yue-Hant.d.ts +1 -1
  2985. package/locales/yue-Hant.mjs +2 -2
  2986. package/locales/yue.d.ts +1 -1
  2987. package/locales/yue.mjs +2 -2
  2988. package/locales/zgh.d.ts +1 -1
  2989. package/locales/zgh.mjs +2 -2
  2990. package/locales/zh-Hans-HK.d.ts +1 -1
  2991. package/locales/zh-Hans-HK.mjs +2 -2
  2992. package/locales/zh-Hans-MO.d.ts +1 -1
  2993. package/locales/zh-Hans-MO.mjs +2 -2
  2994. package/locales/zh-Hans-SG.d.ts +1 -1
  2995. package/locales/zh-Hans-SG.mjs +2 -2
  2996. package/locales/zh-Hans.d.ts +1 -1
  2997. package/locales/zh-Hans.mjs +2 -2
  2998. package/locales/zh-Hant-HK.d.ts +1 -1
  2999. package/locales/zh-Hant-HK.mjs +2 -2
  3000. package/locales/zh-Hant-MO.d.ts +1 -1
  3001. package/locales/zh-Hant-MO.mjs +2 -2
  3002. package/locales/zh-Hant.d.ts +1 -1
  3003. package/locales/zh-Hant.mjs +2 -2
  3004. package/locales/zh.d.ts +1 -1
  3005. package/locales/zh.mjs +2 -2
  3006. package/locales/zu.d.ts +1 -1
  3007. package/locales/zu.mjs +2 -2
  3008. package/package.json +2 -2
  3009. package/testing/index.d.ts +1 -1
  3010. package/upgrade/index.d.ts +1 -1
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { getLocaleNumberFormat, getLocaleNumberSymbol, getNumberOfCurrencyDigits, NumberFormatStyle, NumberSymbol, } from './locale_data_api';
9
9
  export const NUMBER_FORMAT_REGEXP = /^(\d+)?\.((\d+)(-(\d+))?)?$/;
@@ -393,4 +393,4 @@ export function parseIntAutoRadix(text) {
393
393
  }
394
394
  return result;
395
395
  }
396
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X251bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvaTE4bi9mb3JtYXRfbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFDTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQ3hCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQzFCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUV6Qjs7R0FFRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLEtBQWEsRUFDYixPQUEyQixFQUMzQixNQUFjLEVBQ2QsV0FBeUIsRUFDekIsYUFBMkIsRUFDM0IsVUFBbUIsRUFDbkIsU0FBUyxHQUFHLEtBQUs7SUFFakIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckIsYUFBYSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsS0FB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RUFBRSxDQUFDLENBQUMsU0FBUztRQUMxQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsOEVBQThFO1lBQzlFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0lBQ2hELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sTUFBTSxHQUFXLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0LFxuICBnZXRMb2NhbGVOdW1iZXJTeW1ib2wsXG4gIGdldE51bWJlck9mQ3VycmVuY3lEaWdpdHMsXG4gIE51bWJlckZvcm1hdFN0eWxlLFxuICBOdW1iZXJTeW1ib2wsXG59IGZyb20gJy4vbG9jYWxlX2RhdGFfYXBpJztcblxuZXhwb3J0IGNvbnN0IE5VTUJFUl9GT1JNQVRfUkVHRVhQID0gL14oXFxkKyk/XFwuKChcXGQrKSgtKFxcZCspKT8pPyQvO1xuY29uc3QgTUFYX0RJR0lUUyA9IDIyO1xuY29uc3QgREVDSU1BTF9TRVAgPSAnLic7XG5jb25zdCBaRVJPX0NIQVIgPSAnMCc7XG5jb25zdCBQQVRURVJOX1NFUCA9ICc7JztcbmNvbnN0IEdST1VQX1NFUCA9ICcsJztcbmNvbnN0IERJR0lUX0NIQVIgPSAnIyc7XG5jb25zdCBDVVJSRU5DWV9DSEFSID0gJ8KkJztcbmNvbnN0IFBFUkNFTlRfQ0hBUiA9ICclJztcblxuLyoqXG4gKiBUcmFuc2Zvcm1zIGEgbnVtYmVyIHRvIGEgbG9jYWxlIHN0cmluZyBiYXNlZCBvbiBhIHN0eWxlIGFuZCBhIGZvcm1hdC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0TnVtYmVyVG9Mb2NhbGVTdHJpbmcoXG4gIHZhbHVlOiBudW1iZXIsXG4gIHBhdHRlcm46IFBhcnNlZE51bWJlckZvcm1hdCxcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGdyb3VwU3ltYm9sOiBOdW1iZXJTeW1ib2wsXG4gIGRlY2ltYWxTeW1ib2w6IE51bWJlclN5bWJvbCxcbiAgZGlnaXRzSW5mbz86IHN0cmluZyxcbiAgaXNQZXJjZW50ID0gZmFsc2UsXG4pOiBzdHJpbmcge1xuICBsZXQgZm9ybWF0dGVkVGV4dCA9ICcnO1xuICBsZXQgaXNaZXJvID0gZmFsc2U7XG5cbiAgaWYgKCFpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICBmb3JtYXR0ZWRUZXh0ID0gZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLkluZmluaXR5KTtcbiAgfSBlbHNlIHtcbiAgICBsZXQgcGFyc2VkTnVtYmVyID0gcGFyc2VOdW1iZXIodmFsdWUpO1xuXG4gICAgaWYgKGlzUGVyY2VudCkge1xuICAgICAgcGFyc2VkTnVtYmVyID0gdG9QZXJjZW50KHBhcnNlZE51bWJlcik7XG4gICAgfVxuXG4gICAgbGV0IG1pbkludCA9IHBhdHRlcm4ubWluSW50O1xuICAgIGxldCBtaW5GcmFjdGlvbiA9IHBhdHRlcm4ubWluRnJhYztcbiAgICBsZXQgbWF4RnJhY3Rpb24gPSBwYXR0ZXJuLm1heEZyYWM7XG5cbiAgICBpZiAoZGlnaXRzSW5mbykge1xuICAgICAgY29uc3QgcGFydHMgPSBkaWdpdHNJbmZvLm1hdGNoKE5VTUJFUl9GT1JNQVRfUkVHRVhQKTtcbiAgICAgIGlmIChwYXJ0cyA9PT0gbnVsbCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7ZGlnaXRzSW5mb30gaXMgbm90IGEgdmFsaWQgZGlnaXQgaW5mb2ApO1xuICAgICAgfVxuICAgICAgY29uc3QgbWluSW50UGFydCA9IHBhcnRzWzFdO1xuICAgICAgY29uc3QgbWluRnJhY3Rpb25QYXJ0ID0gcGFydHNbM107XG4gICAgICBjb25zdCBtYXhGcmFjdGlvblBhcnQgPSBwYXJ0c1s1XTtcbiAgICAgIGlmIChtaW5JbnRQYXJ0ICE9IG51bGwpIHtcbiAgICAgICAgbWluSW50ID0gcGFyc2VJbnRBdXRvUmFkaXgobWluSW50UGFydCk7XG4gICAgICB9XG4gICAgICBpZiAobWluRnJhY3Rpb25QYXJ0ICE9IG51bGwpIHtcbiAgICAgICAgbWluRnJhY3Rpb24gPSBwYXJzZUludEF1dG9SYWRpeChtaW5GcmFjdGlvblBhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKG1heEZyYWN0aW9uUGFydCAhPSBudWxsKSB7XG4gICAgICAgIG1heEZyYWN0aW9uID0gcGFyc2VJbnRBdXRvUmFkaXgobWF4RnJhY3Rpb25QYXJ0KTtcbiAgICAgIH0gZWxzZSBpZiAobWluRnJhY3Rpb25QYXJ0ICE9IG51bGwgJiYgbWluRnJhY3Rpb24gPiBtYXhGcmFjdGlvbikge1xuICAgICAgICBtYXhGcmFjdGlvbiA9IG1pbkZyYWN0aW9uO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJvdW5kTnVtYmVyKHBhcnNlZE51bWJlciwgbWluRnJhY3Rpb24sIG1heEZyYWN0aW9uKTtcblxuICAgIGxldCBkaWdpdHMgPSBwYXJzZWROdW1iZXIuZGlnaXRzO1xuICAgIGxldCBpbnRlZ2VyTGVuID0gcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gICAgY29uc3QgZXhwb25lbnQgPSBwYXJzZWROdW1iZXIuZXhwb25lbnQ7XG4gICAgbGV0IGRlY2ltYWxzID0gW107XG4gICAgaXNaZXJvID0gZGlnaXRzLmV2ZXJ5KChkKSA9PiAhZCk7XG5cbiAgICAvLyBwYWQgemVyb3MgZm9yIHNtYWxsIG51bWJlcnNcbiAgICBmb3IgKDsgaW50ZWdlckxlbiA8IG1pbkludDsgaW50ZWdlckxlbisrKSB7XG4gICAgICBkaWdpdHMudW5zaGlmdCgwKTtcbiAgICB9XG5cbiAgICAvLyBwYWQgemVyb3MgZm9yIHNtYWxsIG51bWJlcnNcbiAgICBmb3IgKDsgaW50ZWdlckxlbiA8IDA7IGludGVnZXJMZW4rKykge1xuICAgICAgZGlnaXRzLnVuc2hpZnQoMCk7XG4gICAgfVxuXG4gICAgLy8gZXh0cmFjdCBkZWNpbWFscyBkaWdpdHNcbiAgICBpZiAoaW50ZWdlckxlbiA+IDApIHtcbiAgICAgIGRlY2ltYWxzID0gZGlnaXRzLnNwbGljZShpbnRlZ2VyTGVuLCBkaWdpdHMubGVuZ3RoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZGVjaW1hbHMgPSBkaWdpdHM7XG4gICAgICBkaWdpdHMgPSBbMF07XG4gICAgfVxuXG4gICAgLy8gZm9ybWF0IHRoZSBpbnRlZ2VyIGRpZ2l0cyB3aXRoIGdyb3VwaW5nIHNlcGFyYXRvcnNcbiAgICBjb25zdCBncm91cHMgPSBbXTtcbiAgICBpZiAoZGlnaXRzLmxlbmd0aCA+PSBwYXR0ZXJuLmxnU2l6ZSkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLnNwbGljZSgtcGF0dGVybi5sZ1NpemUsIGRpZ2l0cy5sZW5ndGgpLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICB3aGlsZSAoZGlnaXRzLmxlbmd0aCA+IHBhdHRlcm4uZ1NpemUpIHtcbiAgICAgIGdyb3Vwcy51bnNoaWZ0KGRpZ2l0cy5zcGxpY2UoLXBhdHRlcm4uZ1NpemUsIGRpZ2l0cy5sZW5ndGgpLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICBpZiAoZGlnaXRzLmxlbmd0aCkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRUZXh0ID0gZ3JvdXBzLmpvaW4oZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgZ3JvdXBTeW1ib2wpKTtcblxuICAgIC8vIGFwcGVuZCB0aGUgZGVjaW1hbCBkaWdpdHNcbiAgICBpZiAoZGVjaW1hbHMubGVuZ3RoKSB7XG4gICAgICBmb3JtYXR0ZWRUZXh0ICs9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIGRlY2ltYWxTeW1ib2wpICsgZGVjaW1hbHMuam9pbignJyk7XG4gICAgfVxuXG4gICAgaWYgKGV4cG9uZW50KSB7XG4gICAgICBmb3JtYXR0ZWRUZXh0ICs9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5FeHBvbmVudGlhbCkgKyAnKycgKyBleHBvbmVudDtcbiAgICB9XG4gIH1cblxuICBpZiAodmFsdWUgPCAwICYmICFpc1plcm8pIHtcbiAgICBmb3JtYXR0ZWRUZXh0ID0gcGF0dGVybi5uZWdQcmUgKyBmb3JtYXR0ZWRUZXh0ICsgcGF0dGVybi5uZWdTdWY7XG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0dGVkVGV4dCA9IHBhdHRlcm4ucG9zUHJlICsgZm9ybWF0dGVkVGV4dCArIHBhdHRlcm4ucG9zU3VmO1xuICB9XG5cbiAgcmV0dXJuIGZvcm1hdHRlZFRleHQ7XG59XG5cbi8qKlxuICogQG5nTW9kdWxlIENvbW1vbk1vZHVsZVxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogRm9ybWF0cyBhIG51bWJlciBhcyBjdXJyZW5jeSB1c2luZyBsb2NhbGUgcnVsZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBudW1iZXIgdG8gZm9ybWF0LlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gY3VycmVuY3kgQSBzdHJpbmcgY29udGFpbmluZyB0aGUgY3VycmVuY3kgc3ltYm9sIG9yIGl0cyBuYW1lLFxuICogc3VjaCBhcyBcIiRcIiBvciBcIkNhbmFkaWFuIERvbGxhclwiLiBVc2VkIGluIG91dHB1dCBzdHJpbmcsIGJ1dCBkb2VzIG5vdCBhZmZlY3QgdGhlIG9wZXJhdGlvblxuICogb2YgdGhlIGZ1bmN0aW9uLlxuICogQHBhcmFtIGN1cnJlbmN5Q29kZSBUaGUgW0lTTyA0MjE3XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9JU09fNDIxNylcbiAqIGN1cnJlbmN5IGNvZGUsIHN1Y2ggYXMgYFVTRGAgZm9yIHRoZSBVUyBkb2xsYXIgYW5kIGBFVVJgIGZvciB0aGUgZXVyby5cbiAqIFVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGlnaXRzIGluIHRoZSBkZWNpbWFsIHBhcnQuXG4gKiBAcGFyYW0gZGlnaXRzSW5mbyBEZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9wdGlvbnMsIHNwZWNpZmllZCBieSBhIHN0cmluZyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAqIGB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9YC4gU2VlIGBEZWNpbWFsUGlwZWAgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIGN1cnJlbmN5IHZhbHVlLlxuICpcbiAqIEBzZWUge0BsaW5rIGZvcm1hdE51bWJlcn1cbiAqIEBzZWUge0BsaW5rIERlY2ltYWxQaXBlfVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEN1cnJlbmN5KFxuICB2YWx1ZTogbnVtYmVyLFxuICBsb2NhbGU6IHN0cmluZyxcbiAgY3VycmVuY3k6IHN0cmluZyxcbiAgY3VycmVuY3lDb2RlPzogc3RyaW5nLFxuICBkaWdpdHNJbmZvPzogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgY29uc3QgZm9ybWF0ID0gZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KGxvY2FsZSwgTnVtYmVyRm9ybWF0U3R5bGUuQ3VycmVuY3kpO1xuICBjb25zdCBwYXR0ZXJuID0gcGFyc2VOdW1iZXJGb3JtYXQoZm9ybWF0LCBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuTWludXNTaWduKSk7XG5cbiAgcGF0dGVybi5taW5GcmFjID0gZ2V0TnVtYmVyT2ZDdXJyZW5jeURpZ2l0cyhjdXJyZW5jeUNvZGUhKTtcbiAgcGF0dGVybi5tYXhGcmFjID0gcGF0dGVybi5taW5GcmFjO1xuXG4gIGNvbnN0IHJlcyA9IGZvcm1hdE51bWJlclRvTG9jYWxlU3RyaW5nKFxuICAgIHZhbHVlLFxuICAgIHBhdHRlcm4sXG4gICAgbG9jYWxlLFxuICAgIE51bWJlclN5bWJvbC5DdXJyZW5jeUdyb3VwLFxuICAgIE51bWJlclN5bWJvbC5DdXJyZW5jeURlY2ltYWwsXG4gICAgZGlnaXRzSW5mbyxcbiAgKTtcbiAgcmV0dXJuIChcbiAgICByZXNcbiAgICAgIC5yZXBsYWNlKENVUlJFTkNZX0NIQVIsIGN1cnJlbmN5KVxuICAgICAgLy8gaWYgd2UgaGF2ZSAyIHRpbWUgdGhlIGN1cnJlbmN5IGNoYXJhY3RlciwgdGhlIHNlY29uZCBvbmUgaXMgaWdub3JlZFxuICAgICAgLnJlcGxhY2UoQ1VSUkVOQ1lfQ0hBUiwgJycpXG4gICAgICAvLyBJZiB0aGVyZSBpcyBhIHNwYWNpbmcgYmV0d2VlbiBjdXJyZW5jeSBjaGFyYWN0ZXIgYW5kIHRoZSB2YWx1ZSBhbmRcbiAgICAgIC8vIHRoZSBjdXJyZW5jeSBjaGFyYWN0ZXIgaXMgc3VwcHJlc3NlZCBieSBwYXNzaW5nIGFuIGVtcHR5IHN0cmluZywgdGhlXG4gICAgICAvLyBzcGFjaW5nIGNoYXJhY3RlciB3b3VsZCByZW1haW4gYXMgcGFydCBvZiB0aGUgc3RyaW5nLiBUaGVuIHdlXG4gICAgICAvLyBzaG91bGQgcmVtb3ZlIGl0LlxuICAgICAgLnRyaW0oKVxuICApO1xufVxuXG4vKipcbiAqIEBuZ01vZHVsZSBDb21tb25Nb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEZvcm1hdHMgYSBudW1iZXIgYXMgYSBwZXJjZW50YWdlIGFjY29yZGluZyB0byBsb2NhbGUgcnVsZXMuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBudW1iZXIgdG8gZm9ybWF0LlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gZGlnaXRzSW5mbyBEZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9wdGlvbnMsIHNwZWNpZmllZCBieSBhIHN0cmluZyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAqIGB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9YC4gU2VlIGBEZWNpbWFsUGlwZWAgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHBlcmNlbnRhZ2UgdmFsdWUuXG4gKlxuICogQHNlZSB7QGxpbmsgZm9ybWF0TnVtYmVyfVxuICogQHNlZSB7QGxpbmsgRGVjaW1hbFBpcGV9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKiBAcHVibGljQXBpXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0UGVyY2VudCh2YWx1ZTogbnVtYmVyLCBsb2NhbGU6IHN0cmluZywgZGlnaXRzSW5mbz86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGZvcm1hdCA9IGdldExvY2FsZU51bWJlckZvcm1hdChsb2NhbGUsIE51bWJlckZvcm1hdFN0eWxlLlBlcmNlbnQpO1xuICBjb25zdCBwYXR0ZXJuID0gcGFyc2VOdW1iZXJGb3JtYXQoZm9ybWF0LCBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuTWludXNTaWduKSk7XG4gIGNvbnN0IHJlcyA9IGZvcm1hdE51bWJlclRvTG9jYWxlU3RyaW5nKFxuICAgIHZhbHVlLFxuICAgIHBhdHRlcm4sXG4gICAgbG9jYWxlLFxuICAgIE51bWJlclN5bWJvbC5Hcm91cCxcbiAgICBOdW1iZXJTeW1ib2wuRGVjaW1hbCxcbiAgICBkaWdpdHNJbmZvLFxuICAgIHRydWUsXG4gICk7XG4gIHJldHVybiByZXMucmVwbGFjZShcbiAgICBuZXcgUmVnRXhwKFBFUkNFTlRfQ0hBUiwgJ2cnKSxcbiAgICBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuUGVyY2VudFNpZ24pLFxuICApO1xufVxuXG4vKipcbiAqIEBuZ01vZHVsZSBDb21tb25Nb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEZvcm1hdHMgYSBudW1iZXIgYXMgdGV4dCwgd2l0aCBncm91cCBzaXppbmcsIHNlcGFyYXRvciwgYW5kIG90aGVyXG4gKiBwYXJhbWV0ZXJzIGJhc2VkIG9uIHRoZSBsb2NhbGUuXG4gKlxuICogQHBhcmFtIHZhbHVlIFRoZSBudW1iZXIgdG8gZm9ybWF0LlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gZGlnaXRzSW5mbyBEZWNpbWFsIHJlcHJlc2VudGF0aW9uIG9wdGlvbnMsIHNwZWNpZmllZCBieSBhIHN0cmluZyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDpcbiAqIGB7bWluSW50ZWdlckRpZ2l0c30ue21pbkZyYWN0aW9uRGlnaXRzfS17bWF4RnJhY3Rpb25EaWdpdHN9YC4gU2VlIGBEZWNpbWFsUGlwZWAgZm9yIG1vcmUgZGV0YWlscy5cbiAqXG4gKiBAcmV0dXJucyBUaGUgZm9ybWF0dGVkIHRleHQgc3RyaW5nLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdE51bWJlcih2YWx1ZTogbnVtYmVyLCBsb2NhbGU6IHN0cmluZywgZGlnaXRzSW5mbz86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGZvcm1hdCA9IGdldExvY2FsZU51bWJlckZvcm1hdChsb2NhbGUsIE51bWJlckZvcm1hdFN0eWxlLkRlY2ltYWwpO1xuICBjb25zdCBwYXR0ZXJuID0gcGFyc2VOdW1iZXJGb3JtYXQoZm9ybWF0LCBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuTWludXNTaWduKSk7XG4gIHJldHVybiBmb3JtYXROdW1iZXJUb0xvY2FsZVN0cmluZyhcbiAgICB2YWx1ZSxcbiAgICBwYXR0ZXJuLFxuICAgIGxvY2FsZSxcbiAgICBOdW1iZXJTeW1ib2wuR3JvdXAsXG4gICAgTnVtYmVyU3ltYm9sLkRlY2ltYWwsXG4gICAgZGlnaXRzSW5mbyxcbiAgKTtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZE51bWJlckZvcm1hdCB7XG4gIG1pbkludDogbnVtYmVyO1xuICAvLyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWluRnJhYzogbnVtYmVyO1xuICAvLyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWF4RnJhYzogbnVtYmVyO1xuICAvLyB0aGUgcHJlZml4IGZvciBhIHBvc2l0aXZlIG51bWJlclxuICBwb3NQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBwb3NpdGl2ZSBudW1iZXJcbiAgcG9zU3VmOiBzdHJpbmc7XG4gIC8vIHRoZSBwcmVmaXggZm9yIGEgbmVnYXRpdmUgbnVtYmVyIChlLmcuIGAtYCBvciBgKGApKVxuICBuZWdQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBuZWdhdGl2ZSBudW1iZXIgKGUuZy4gYClgKVxuICBuZWdTdWY6IHN0cmluZztcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiBlYWNoIGdyb3VwIG9mIHNlcGFyYXRlZCBkaWdpdHNcbiAgZ1NpemU6IG51bWJlcjtcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbGFzdCBncm91cCBvZiBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHNlcGFyYXRvclxuICBsZ1NpemU6IG51bWJlcjtcbn1cblxuZnVuY3Rpb24gcGFyc2VOdW1iZXJGb3JtYXQoZm9ybWF0OiBzdHJpbmcsIG1pbnVzU2lnbiA9ICctJyk6IFBhcnNlZE51bWJlckZvcm1hdCB7XG4gIGNvbnN0IHAgPSB7XG4gICAgbWluSW50OiAxLFxuICAgIG1pbkZyYWM6IDAsXG4gICAgbWF4RnJhYzogMCxcbiAgICBwb3NQcmU6ICcnLFxuICAgIHBvc1N1ZjogJycsXG4gICAgbmVnUHJlOiAnJyxcbiAgICBuZWdTdWY6ICcnLFxuICAgIGdTaXplOiAwLFxuICAgIGxnU2l6ZTogMCxcbiAgfTtcblxuICBjb25zdCBwYXR0ZXJuUGFydHMgPSBmb3JtYXQuc3BsaXQoUEFUVEVSTl9TRVApO1xuICBjb25zdCBwb3NpdGl2ZSA9IHBhdHRlcm5QYXJ0c1swXTtcbiAgY29uc3QgbmVnYXRpdmUgPSBwYXR0ZXJuUGFydHNbMV07XG5cbiAgY29uc3QgcG9zaXRpdmVQYXJ0cyA9XG4gICAgICBwb3NpdGl2ZS5pbmRleE9mKERFQ0lNQUxfU0VQKSAhPT0gLTFcbiAgICAgICAgPyBwb3NpdGl2ZS5zcGxpdChERUNJTUFMX1NFUClcbiAgICAgICAgOiBbXG4gICAgICAgICAgICBwb3NpdGl2ZS5zdWJzdHJpbmcoMCwgcG9zaXRpdmUubGFzdEluZGV4T2YoWkVST19DSEFSKSArIDEpLFxuICAgICAgICAgICAgcG9zaXRpdmUuc3Vic3RyaW5nKHBvc2l0aXZlLmxhc3RJbmRleE9mKFpFUk9fQ0hBUikgKyAxKSxcbiAgICAgICAgICBdLFxuICAgIGludGVnZXIgPSBwb3NpdGl2ZVBhcnRzWzBdLFxuICAgIGZyYWN0aW9uID0gcG9zaXRpdmVQYXJ0c1sxXSB8fCAnJztcblxuICBwLnBvc1ByZSA9IGludGVnZXIuc3Vic3RyaW5nKDAsIGludGVnZXIuaW5kZXhPZihESUdJVF9DSEFSKSk7XG5cbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBmcmFjdGlvbi5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGNoID0gZnJhY3Rpb24uY2hhckF0KGkpO1xuICAgIGlmIChjaCA9PT0gWkVST19DSEFSKSB7XG4gICAgICBwLm1pbkZyYWMgPSBwLm1heEZyYWMgPSBpICsgMTtcbiAgICB9IGVsc2UgaWYgKGNoID09PSBESUdJVF9DSEFSKSB7XG4gICAgICBwLm1heEZyYWMgPSBpICsgMTtcbiAgICB9IGVsc2Uge1xuICAgICAgcC5wb3NTdWYgKz0gY2g7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZ3JvdXBzID0gaW50ZWdlci5zcGxpdChHUk9VUF9TRVApO1xuICBwLmdTaXplID0gZ3JvdXBzWzFdID8gZ3JvdXBzWzFdLmxlbmd0aCA6IDA7XG4gIHAubGdTaXplID0gZ3JvdXBzWzJdIHx8IGdyb3Vwc1sxXSA/IChncm91cHNbMl0gfHwgZ3JvdXBzWzFdKS5sZW5ndGggOiAwO1xuXG4gIGlmIChuZWdhdGl2ZSkge1xuICAgIGNvbnN0IHRydW5rTGVuID0gcG9zaXRpdmUubGVuZ3RoIC0gcC5wb3NQcmUubGVuZ3RoIC0gcC5wb3NTdWYubGVuZ3RoLFxuICAgICAgcG9zID0gbmVnYXRpdmUuaW5kZXhPZihESUdJVF9DSEFSKTtcblxuICAgIHAubmVnUHJlID0gbmVnYXRpdmUuc3Vic3RyaW5nKDAsIHBvcykucmVwbGFjZSgvJy9nLCAnJyk7XG4gICAgcC5uZWdTdWYgPSBuZWdhdGl2ZS5zbGljZShwb3MgKyB0cnVua0xlbikucmVwbGFjZSgvJy9nLCAnJyk7XG4gIH0gZWxzZSB7XG4gICAgcC5uZWdQcmUgPSBtaW51c1NpZ24gKyBwLnBvc1ByZTtcbiAgICBwLm5lZ1N1ZiA9IHAucG9zU3VmO1xuICB9XG5cbiAgcmV0dXJuIHA7XG59XG5cbmludGVyZmFjZSBQYXJzZWROdW1iZXIge1xuICAvLyBhbiBhcnJheSBvZiBkaWdpdHMgY29udGFpbmluZyBsZWFkaW5nIHplcm9zIGFzIG5lY2Vzc2FyeVxuICBkaWdpdHM6IG51bWJlcltdO1xuICAvLyB0aGUgZXhwb25lbnQgZm9yIG51bWJlcnMgdGhhdCB3b3VsZCBuZWVkIG1vcmUgdGhhbiBgTUFYX0RJR0lUU2AgZGlnaXRzIGluIGBkYFxuICBleHBvbmVudDogbnVtYmVyO1xuICAvLyB0aGUgbnVtYmVyIG9mIHRoZSBkaWdpdHMgaW4gYGRgIHRoYXQgYXJlIHRvIHRoZSBsZWZ0IG9mIHRoZSBkZWNpbWFsIHBvaW50XG4gIGludGVnZXJMZW46IG51bWJlcjtcbn1cblxuLy8gVHJhbnNmb3JtcyBhIHBhcnNlZCBudW1iZXIgaW50byBhIHBlcmNlbnRhZ2UgYnkgbXVsdGlwbHlpbmcgaXQgYnkgMTAwXG5mdW5jdGlvbiB0b1BlcmNlbnQocGFyc2VkTnVtYmVyOiBQYXJzZWROdW1iZXIpOiBQYXJzZWROdW1iZXIge1xuICAvLyBpZiB0aGUgbnVtYmVyIGlzIDAsIGRvbid0IGRvIGFueXRoaW5nXG4gIGlmIChwYXJzZWROdW1iZXIuZGlnaXRzWzBdID09PSAwKSB7XG4gICAgcmV0dXJuIHBhcnNlZE51bWJlcjtcbiAgfVxuXG4gIC8vIEdldHRpbmcgdGhlIGN1cnJlbnQgbnVtYmVyIG9mIGRlY2ltYWxzXG4gIGNvbnN0IGZyYWN0aW9uTGVuID0gcGFyc2VkTnVtYmVyLmRpZ2l0cy5sZW5ndGggLSBwYXJzZWROdW1iZXIuaW50ZWdlckxlbjtcbiAgaWYgKHBhcnNlZE51bWJlci5leHBvbmVudCkge1xuICAgIHBhcnNlZE51bWJlci5leHBvbmVudCArPSAyO1xuICB9IGVsc2Uge1xuICAgIGlmIChmcmFjdGlvbkxlbiA9PT0gMCkge1xuICAgICAgcGFyc2VkTnVtYmVyLmRpZ2l0cy5wdXNoKDAsIDApO1xuICAgIH0gZWxzZSBpZiAoZnJhY3Rpb25MZW4gPT09IDEpIHtcbiAgICAgIHBhcnNlZE51bWJlci5kaWdpdHMucHVzaCgwKTtcbiAgICB9XG4gICAgcGFyc2VkTnVtYmVyLmludGVnZXJMZW4gKz0gMjtcbiAgfVxuXG4gIHJldHVybiBwYXJzZWROdW1iZXI7XG59XG5cbi8qKlxuICogUGFyc2VzIGEgbnVtYmVyLlxuICogU2lnbmlmaWNhbnQgYml0cyBvZiB0aGlzIHBhcnNlIGFsZ29yaXRobSBjYW1lIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL01pa2VNY2wvYmlnLmpzL1xuICovXG5mdW5jdGlvbiBwYXJzZU51bWJlcihudW06IG51bWJlcik6IFBhcnNlZE51bWJlciB7XG4gIGxldCBudW1TdHIgPSBNYXRoLmFicyhudW0pICsgJyc7XG4gIGxldCBleHBvbmVudCA9IDAsXG4gICAgZGlnaXRzLFxuICAgIGludGVnZXJMZW47XG4gIGxldCBpLCBqLCB6ZXJvcztcblxuICAvLyBEZWNpbWFsIHBvaW50P1xuICBpZiAoKGludGVnZXJMZW4gPSBudW1TdHIuaW5kZXhPZihERUNJTUFMX1NFUCkpID4gLTEpIHtcbiAgICBudW1TdHIgPSBudW1TdHIucmVwbGFjZShERUNJTUFMX1NFUCwgJycpO1xuICB9XG5cbiAgLy8gRXhwb25lbnRpYWwgZm9ybT9cbiAgaWYgKChpID0gbnVtU3RyLnNlYXJjaCgvZS9pKSkgPiAwKSB7XG4gICAgLy8gV29yayBvdXQgdGhlIGV4cG9uZW50LlxuICAgIGlmIChpbnRlZ2VyTGVuIDwgMCkgaW50ZWdlckxlbiA9IGk7XG4gICAgaW50ZWdlckxlbiArPSArbnVtU3RyLnNsaWNlKGkgKyAxKTtcbiAgICBudW1TdHIgPSBudW1TdHIuc3Vic3RyaW5nKDAsIGkpO1xuICB9IGVsc2UgaWYgKGludGVnZXJMZW4gPCAwKSB7XG4gICAgLy8gVGhlcmUgd2FzIG5vIGRlY2ltYWwgcG9pbnQgb3IgZXhwb25lbnQgc28gaXQgaXMgYW4gaW50ZWdlci5cbiAgICBpbnRlZ2VyTGVuID0gbnVtU3RyLmxlbmd0aDtcbiAgfVxuXG4gIC8vIENvdW50IHRoZSBudW1iZXIgb2YgbGVhZGluZyB6ZXJvcy5cbiAgZm9yIChpID0gMDsgbnVtU3RyLmNoYXJBdChpKSA9PT0gWkVST19DSEFSOyBpKyspIHtcbiAgICAvKiBlbXB0eSAqL1xuICB9XG5cbiAgaWYgKGkgPT09ICh6ZXJvcyA9IG51bVN0ci5sZW5ndGgpKSB7XG4gICAgLy8gVGhlIGRpZ2l0cyBhcmUgYWxsIHplcm8uXG4gICAgZGlnaXRzID0gWzBdO1xuICAgIGludGVnZXJMZW4gPSAxO1xuICB9IGVsc2Uge1xuICAgIC8vIENvdW50IHRoZSBudW1iZXIgb2YgdHJhaWxpbmcgemVyb3NcbiAgICB6ZXJvcy0tO1xuICAgIHdoaWxlIChudW1TdHIuY2hhckF0KHplcm9zKSA9PT0gWkVST19DSEFSKSB6ZXJvcy0tO1xuXG4gICAgLy8gVHJhaWxpbmcgemVyb3MgYXJlIGluc2lnbmlmaWNhbnQgc28gaWdub3JlIHRoZW1cbiAgICBpbnRlZ2VyTGVuIC09IGk7XG4gICAgZGlnaXRzID0gW107XG4gICAgLy8gQ29udmVydCBzdHJpbmcgdG8gYXJyYXkgb2YgZGlnaXRzIHdpdGhvdXQgbGVhZGluZy90cmFpbGluZyB6ZXJvcy5cbiAgICBmb3IgKGogPSAwOyBpIDw9IHplcm9zOyBpKyssIGorKykge1xuICAgICAgZGlnaXRzW2pdID0gTnVtYmVyKG51bVN0ci5jaGFyQXQoaSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZSBudW1iZXIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGlnaXRzIHRoZW4gdXNlIGFuIGV4cG9uZW50LlxuICBpZiAoaW50ZWdlckxlbiA+IE1BWF9ESUdJVFMpIHtcbiAgICBkaWdpdHMgPSBkaWdpdHMuc3BsaWNlKDAsIE1BWF9ESUdJVFMgLSAxKTtcbiAgICBleHBvbmVudCA9IGludGVnZXJMZW4gLSAxO1xuICAgIGludGVnZXJMZW4gPSAxO1xuICB9XG5cbiAgcmV0dXJuIHtkaWdpdHMsIGV4cG9uZW50LCBpbnRlZ2VyTGVufTtcbn1cblxuLyoqXG4gKiBSb3VuZCB0aGUgcGFyc2VkIG51bWJlciB0byB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiBkZWNpbWFsIHBsYWNlc1xuICogVGhpcyBmdW5jdGlvbiBjaGFuZ2VzIHRoZSBwYXJzZWROdW1iZXIgaW4tcGxhY2VcbiAqL1xuZnVuY3Rpb24gcm91bmROdW1iZXIocGFyc2VkTnVtYmVyOiBQYXJzZWROdW1iZXIsIG1pbkZyYWM6IG51bWJlciwgbWF4RnJhYzogbnVtYmVyKSB7XG4gIGlmIChtaW5GcmFjID4gbWF4RnJhYykge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBUaGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIGFmdGVyIGZyYWN0aW9uICgke21pbkZyYWN9KSBpcyBoaWdoZXIgdGhhbiB0aGUgbWF4aW11bSAoJHttYXhGcmFjfSkuYCxcbiAgICApO1xuICB9XG5cbiAgbGV0IGRpZ2l0cyA9IHBhcnNlZE51bWJlci5kaWdpdHM7XG4gIGxldCBmcmFjdGlvbkxlbiA9IGRpZ2l0cy5sZW5ndGggLSBwYXJzZWROdW1iZXIuaW50ZWdlckxlbjtcbiAgY29uc3QgZnJhY3Rpb25TaXplID0gTWF0aC5taW4oTWF0aC5tYXgobWluRnJhYywgZnJhY3Rpb25MZW4pLCBtYXhGcmFjKTtcblxuICAvLyBUaGUgaW5kZXggb2YgdGhlIGRpZ2l0IHRvIHdoZXJlIHJvdW5kaW5nIGlzIHRvIG9jY3VyXG4gIGxldCByb3VuZEF0ID0gZnJhY3Rpb25TaXplICsgcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gIGxldCBkaWdpdCA9IGRpZ2l0c1tyb3VuZEF0XTtcblxuICBpZiAocm91bmRBdCA+IDApIHtcbiAgICAvLyBEcm9wIGZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGBcbiAgICBkaWdpdHMuc3BsaWNlKE1hdGgubWF4KHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuLCByb3VuZEF0KSk7XG5cbiAgICAvLyBTZXQgbm9uLWZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGAgdG8gMFxuICAgIGZvciAobGV0IGogPSByb3VuZEF0OyBqIDwgZGlnaXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICBkaWdpdHNbal0gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBXZSByb3VuZGVkIHRvIHplcm8gc28gcmVzZXQgdGhlIHBhcnNlZE51bWJlclxuICAgIGZyYWN0aW9uTGVuID0gTWF0aC5tYXgoMCwgZnJhY3Rpb25MZW4pO1xuICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuID0gMTtcbiAgICBkaWdpdHMubGVuZ3RoID0gTWF0aC5tYXgoMSwgKHJvdW5kQXQgPSBmcmFjdGlvblNpemUgKyAxKSk7XG4gICAgZGlnaXRzWzBdID0gMDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvdW5kQXQ7IGkrKykgZGlnaXRzW2ldID0gMDtcbiAgfVxuXG4gIGlmIChkaWdpdCA+PSA1KSB7XG4gICAgaWYgKHJvdW5kQXQgLSAxIDwgMCkge1xuICAgICAgZm9yIChsZXQgayA9IDA7IGsgPiByb3VuZEF0OyBrLS0pIHtcbiAgICAgICAgZGlnaXRzLnVuc2hpZnQoMCk7XG4gICAgICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuKys7XG4gICAgICB9XG4gICAgICBkaWdpdHMudW5zaGlmdCgxKTtcbiAgICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuKys7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRpZ2l0c1tyb3VuZEF0IC0gMV0rKztcbiAgICB9XG4gIH1cblxuICAvLyBQYWQgb3V0IHdpdGggemVyb3MgdG8gZ2V0IHRoZSByZXF1aXJlZCBmcmFjdGlvbiBsZW5ndGhcbiAgZm9yICg7IGZyYWN0aW9uTGVuIDwgTWF0aC5tYXgoMCwgZnJhY3Rpb25TaXplKTsgZnJhY3Rpb25MZW4rKykgZGlnaXRzLnB1c2goMCk7XG5cbiAgbGV0IGRyb3BUcmFpbGluZ1plcm9zID0gZnJhY3Rpb25TaXplICE9PSAwO1xuICAvLyBNaW5pbWFsIGxlbmd0aCA9IG5iIG9mIGRlY2ltYWxzIHJlcXVpcmVkICsgY3VycmVudCBuYiBvZiBpbnRlZ2Vyc1xuICAvLyBBbnkgbnVtYmVyIGJlc2lkZXMgdGhhdCBpcyBvcHRpb25hbCBhbmQgY2FuIGJlIHJlbW92ZWQgaWYgaXQncyBhIHRyYWlsaW5nIDBcbiAgY29uc3QgbWluTGVuID0gbWluRnJhYyArIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICAvLyBEbyBhbnkgY2FycnlpbmcsIGUuZy4gYSBkaWdpdCB3YXMgcm91bmRlZCB1cCB0byAxMFxuICBjb25zdCBjYXJyeSA9IGRpZ2l0cy5yZWR1Y2VSaWdodChmdW5jdGlvbiAoY2FycnksIGQsIGksIGRpZ2l0cykge1xuICAgIGQgPSBkICsgY2Fycnk7XG4gICAgZGlnaXRzW2ldID0gZCA8IDEwID8gZCA6IGQgLSAxMDsgLy8gZCAlIDEwXG4gICAgaWYgKGRyb3BUcmFpbGluZ1plcm9zKSB7XG4gICAgICAvLyBEbyBub3Qga2VlcCBtZWFuaW5nbGVzcyBmcmFjdGlvbmFsIHRyYWlsaW5nIHplcm9zIChlLmcuIDE1LjUyMDAwIC0tPiAxNS41MilcbiAgICAgIGlmIChkaWdpdHNbaV0gPT09IDAgJiYgaSA+PSBtaW5MZW4pIHtcbiAgICAgICAgZGlnaXRzLnBvcCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZHJvcFRyYWlsaW5nWmVyb3MgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGQgPj0gMTAgPyAxIDogMDsgLy8gTWF0aC5mbG9vcihkIC8gMTApO1xuICB9LCAwKTtcbiAgaWYgKGNhcnJ5KSB7XG4gICAgZGlnaXRzLnVuc2hpZnQoY2FycnkpO1xuICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuKys7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlSW50QXV0b1JhZGl4KHRleHQ6IHN0cmluZyk6IG51bWJlciB7XG4gIGNvbnN0IHJlc3VsdDogbnVtYmVyID0gcGFyc2VJbnQodGV4dCk7XG4gIGlmIChpc05hTihyZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIGludGVnZXIgbGl0ZXJhbCB3aGVuIHBhcnNpbmcgJyArIHRleHQpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=
396
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0X251bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvaTE4bi9mb3JtYXRfbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFDTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLHlCQUF5QixFQUN6QixpQkFBaUIsRUFDakIsWUFBWSxHQUNiLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsNkJBQTZCLENBQUM7QUFDbEUsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sV0FBVyxHQUFHLEdBQUcsQ0FBQztBQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUM7QUFDdEIsTUFBTSxXQUFXLEdBQUcsR0FBRyxDQUFDO0FBQ3hCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztBQUN0QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUM7QUFDdkIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDO0FBQzFCLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUV6Qjs7R0FFRztBQUNILFNBQVMsMEJBQTBCLENBQ2pDLEtBQWEsRUFDYixPQUEyQixFQUMzQixNQUFjLEVBQ2QsV0FBeUIsRUFDekIsYUFBMkIsRUFDM0IsVUFBbUIsRUFDbkIsU0FBUyxHQUFHLEtBQUs7SUFFakIsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksTUFBTSxHQUFHLEtBQUssQ0FBQztJQUVuQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckIsYUFBYSxHQUFHLHFCQUFxQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkUsQ0FBQztTQUFNLENBQUM7UUFDTixJQUFJLFlBQVksR0FBRyxXQUFXLENBQUMsS0FB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RUFBRSxDQUFDLENBQUMsU0FBUztRQUMxQyxJQUFJLGlCQUFpQixFQUFFLENBQUM7WUFDdEIsOEVBQThFO1lBQzlFLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNmLENBQUM7aUJBQU0sQ0FBQztnQkFDTixpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCO0lBQ2hELENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNOLElBQUksS0FBSyxFQUFFLENBQUM7UUFDVixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLFlBQVksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxJQUFZO0lBQzVDLE1BQU0sTUFBTSxHQUFXLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2xCLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIGdldExvY2FsZU51bWJlckZvcm1hdCxcbiAgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sLFxuICBnZXROdW1iZXJPZkN1cnJlbmN5RGlnaXRzLFxuICBOdW1iZXJGb3JtYXRTdHlsZSxcbiAgTnVtYmVyU3ltYm9sLFxufSBmcm9tICcuL2xvY2FsZV9kYXRhX2FwaSc7XG5cbmV4cG9ydCBjb25zdCBOVU1CRVJfRk9STUFUX1JFR0VYUCA9IC9eKFxcZCspP1xcLigoXFxkKykoLShcXGQrKSk/KT8kLztcbmNvbnN0IE1BWF9ESUdJVFMgPSAyMjtcbmNvbnN0IERFQ0lNQUxfU0VQID0gJy4nO1xuY29uc3QgWkVST19DSEFSID0gJzAnO1xuY29uc3QgUEFUVEVSTl9TRVAgPSAnOyc7XG5jb25zdCBHUk9VUF9TRVAgPSAnLCc7XG5jb25zdCBESUdJVF9DSEFSID0gJyMnO1xuY29uc3QgQ1VSUkVOQ1lfQ0hBUiA9ICfCpCc7XG5jb25zdCBQRVJDRU5UX0NIQVIgPSAnJSc7XG5cbi8qKlxuICogVHJhbnNmb3JtcyBhIG51bWJlciB0byBhIGxvY2FsZSBzdHJpbmcgYmFzZWQgb24gYSBzdHlsZSBhbmQgYSBmb3JtYXQuXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdE51bWJlclRvTG9jYWxlU3RyaW5nKFxuICB2YWx1ZTogbnVtYmVyLFxuICBwYXR0ZXJuOiBQYXJzZWROdW1iZXJGb3JtYXQsXG4gIGxvY2FsZTogc3RyaW5nLFxuICBncm91cFN5bWJvbDogTnVtYmVyU3ltYm9sLFxuICBkZWNpbWFsU3ltYm9sOiBOdW1iZXJTeW1ib2wsXG4gIGRpZ2l0c0luZm8/OiBzdHJpbmcsXG4gIGlzUGVyY2VudCA9IGZhbHNlLFxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdHRlZFRleHQgPSAnJztcbiAgbGV0IGlzWmVybyA9IGZhbHNlO1xuXG4gIGlmICghaXNGaW5pdGUodmFsdWUpKSB7XG4gICAgZm9ybWF0dGVkVGV4dCA9IGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIE51bWJlclN5bWJvbC5JbmZpbml0eSk7XG4gIH0gZWxzZSB7XG4gICAgbGV0IHBhcnNlZE51bWJlciA9IHBhcnNlTnVtYmVyKHZhbHVlKTtcblxuICAgIGlmIChpc1BlcmNlbnQpIHtcbiAgICAgIHBhcnNlZE51bWJlciA9IHRvUGVyY2VudChwYXJzZWROdW1iZXIpO1xuICAgIH1cblxuICAgIGxldCBtaW5JbnQgPSBwYXR0ZXJuLm1pbkludDtcbiAgICBsZXQgbWluRnJhY3Rpb24gPSBwYXR0ZXJuLm1pbkZyYWM7XG4gICAgbGV0IG1heEZyYWN0aW9uID0gcGF0dGVybi5tYXhGcmFjO1xuXG4gICAgaWYgKGRpZ2l0c0luZm8pIHtcbiAgICAgIGNvbnN0IHBhcnRzID0gZGlnaXRzSW5mby5tYXRjaChOVU1CRVJfRk9STUFUX1JFR0VYUCk7XG4gICAgICBpZiAocGFydHMgPT09IG51bGwpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGAke2RpZ2l0c0luZm99IGlzIG5vdCBhIHZhbGlkIGRpZ2l0IGluZm9gKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IG1pbkludFBhcnQgPSBwYXJ0c1sxXTtcbiAgICAgIGNvbnN0IG1pbkZyYWN0aW9uUGFydCA9IHBhcnRzWzNdO1xuICAgICAgY29uc3QgbWF4RnJhY3Rpb25QYXJ0ID0gcGFydHNbNV07XG4gICAgICBpZiAobWluSW50UGFydCAhPSBudWxsKSB7XG4gICAgICAgIG1pbkludCA9IHBhcnNlSW50QXV0b1JhZGl4KG1pbkludFBhcnQpO1xuICAgICAgfVxuICAgICAgaWYgKG1pbkZyYWN0aW9uUGFydCAhPSBudWxsKSB7XG4gICAgICAgIG1pbkZyYWN0aW9uID0gcGFyc2VJbnRBdXRvUmFkaXgobWluRnJhY3Rpb25QYXJ0KTtcbiAgICAgIH1cbiAgICAgIGlmIChtYXhGcmFjdGlvblBhcnQgIT0gbnVsbCkge1xuICAgICAgICBtYXhGcmFjdGlvbiA9IHBhcnNlSW50QXV0b1JhZGl4KG1heEZyYWN0aW9uUGFydCk7XG4gICAgICB9IGVsc2UgaWYgKG1pbkZyYWN0aW9uUGFydCAhPSBudWxsICYmIG1pbkZyYWN0aW9uID4gbWF4RnJhY3Rpb24pIHtcbiAgICAgICAgbWF4RnJhY3Rpb24gPSBtaW5GcmFjdGlvbjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByb3VuZE51bWJlcihwYXJzZWROdW1iZXIsIG1pbkZyYWN0aW9uLCBtYXhGcmFjdGlvbik7XG5cbiAgICBsZXQgZGlnaXRzID0gcGFyc2VkTnVtYmVyLmRpZ2l0cztcbiAgICBsZXQgaW50ZWdlckxlbiA9IHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICAgIGNvbnN0IGV4cG9uZW50ID0gcGFyc2VkTnVtYmVyLmV4cG9uZW50O1xuICAgIGxldCBkZWNpbWFscyA9IFtdO1xuICAgIGlzWmVybyA9IGRpZ2l0cy5ldmVyeSgoZCkgPT4gIWQpO1xuXG4gICAgLy8gcGFkIHplcm9zIGZvciBzbWFsbCBudW1iZXJzXG4gICAgZm9yICg7IGludGVnZXJMZW4gPCBtaW5JbnQ7IGludGVnZXJMZW4rKykge1xuICAgICAgZGlnaXRzLnVuc2hpZnQoMCk7XG4gICAgfVxuXG4gICAgLy8gcGFkIHplcm9zIGZvciBzbWFsbCBudW1iZXJzXG4gICAgZm9yICg7IGludGVnZXJMZW4gPCAwOyBpbnRlZ2VyTGVuKyspIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgIH1cblxuICAgIC8vIGV4dHJhY3QgZGVjaW1hbHMgZGlnaXRzXG4gICAgaWYgKGludGVnZXJMZW4gPiAwKSB7XG4gICAgICBkZWNpbWFscyA9IGRpZ2l0cy5zcGxpY2UoaW50ZWdlckxlbiwgZGlnaXRzLmxlbmd0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGRlY2ltYWxzID0gZGlnaXRzO1xuICAgICAgZGlnaXRzID0gWzBdO1xuICAgIH1cblxuICAgIC8vIGZvcm1hdCB0aGUgaW50ZWdlciBkaWdpdHMgd2l0aCBncm91cGluZyBzZXBhcmF0b3JzXG4gICAgY29uc3QgZ3JvdXBzID0gW107XG4gICAgaWYgKGRpZ2l0cy5sZW5ndGggPj0gcGF0dGVybi5sZ1NpemUpIHtcbiAgICAgIGdyb3Vwcy51bnNoaWZ0KGRpZ2l0cy5zcGxpY2UoLXBhdHRlcm4ubGdTaXplLCBkaWdpdHMubGVuZ3RoKS5qb2luKCcnKSk7XG4gICAgfVxuXG4gICAgd2hpbGUgKGRpZ2l0cy5sZW5ndGggPiBwYXR0ZXJuLmdTaXplKSB7XG4gICAgICBncm91cHMudW5zaGlmdChkaWdpdHMuc3BsaWNlKC1wYXR0ZXJuLmdTaXplLCBkaWdpdHMubGVuZ3RoKS5qb2luKCcnKSk7XG4gICAgfVxuXG4gICAgaWYgKGRpZ2l0cy5sZW5ndGgpIHtcbiAgICAgIGdyb3Vwcy51bnNoaWZ0KGRpZ2l0cy5qb2luKCcnKSk7XG4gICAgfVxuXG4gICAgZm9ybWF0dGVkVGV4dCA9IGdyb3Vwcy5qb2luKGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGUsIGdyb3VwU3ltYm9sKSk7XG5cbiAgICAvLyBhcHBlbmQgdGhlIGRlY2ltYWwgZGlnaXRzXG4gICAgaWYgKGRlY2ltYWxzLmxlbmd0aCkge1xuICAgICAgZm9ybWF0dGVkVGV4dCArPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBkZWNpbWFsU3ltYm9sKSArIGRlY2ltYWxzLmpvaW4oJycpO1xuICAgIH1cblxuICAgIGlmIChleHBvbmVudCkge1xuICAgICAgZm9ybWF0dGVkVGV4dCArPSBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlLCBOdW1iZXJTeW1ib2wuRXhwb25lbnRpYWwpICsgJysnICsgZXhwb25lbnQ7XG4gICAgfVxuICB9XG5cbiAgaWYgKHZhbHVlIDwgMCAmJiAhaXNaZXJvKSB7XG4gICAgZm9ybWF0dGVkVGV4dCA9IHBhdHRlcm4ubmVnUHJlICsgZm9ybWF0dGVkVGV4dCArIHBhdHRlcm4ubmVnU3VmO1xuICB9IGVsc2Uge1xuICAgIGZvcm1hdHRlZFRleHQgPSBwYXR0ZXJuLnBvc1ByZSArIGZvcm1hdHRlZFRleHQgKyBwYXR0ZXJuLnBvc1N1ZjtcbiAgfVxuXG4gIHJldHVybiBmb3JtYXR0ZWRUZXh0O1xufVxuXG4vKipcbiAqIEBuZ01vZHVsZSBDb21tb25Nb2R1bGVcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEZvcm1hdHMgYSBudW1iZXIgYXMgY3VycmVuY3kgdXNpbmcgbG9jYWxlIHJ1bGVzLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGN1cnJlbmN5IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGN1cnJlbmN5IHN5bWJvbCBvciBpdHMgbmFtZSxcbiAqIHN1Y2ggYXMgXCIkXCIgb3IgXCJDYW5hZGlhbiBEb2xsYXJcIi4gVXNlZCBpbiBvdXRwdXQgc3RyaW5nLCBidXQgZG9lcyBub3QgYWZmZWN0IHRoZSBvcGVyYXRpb25cbiAqIG9mIHRoZSBmdW5jdGlvbi5cbiAqIEBwYXJhbSBjdXJyZW5jeUNvZGUgVGhlIFtJU08gNDIxN10oaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPXzQyMTcpXG4gKiBjdXJyZW5jeSBjb2RlLCBzdWNoIGFzIGBVU0RgIGZvciB0aGUgVVMgZG9sbGFyIGFuZCBgRVVSYCBmb3IgdGhlIGV1cm8uXG4gKiBVc2VkIHRvIGRldGVybWluZSB0aGUgbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgZGVjaW1hbCBwYXJ0LlxuICogQHBhcmFtIGRpZ2l0c0luZm8gRGVjaW1hbCByZXByZXNlbnRhdGlvbiBvcHRpb25zLCBzcGVjaWZpZWQgYnkgYSBzdHJpbmcgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gKiBge21pbkludGVnZXJEaWdpdHN9LnttaW5GcmFjdGlvbkRpZ2l0c30te21heEZyYWN0aW9uRGlnaXRzfWAuIFNlZSBgRGVjaW1hbFBpcGVgIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBjdXJyZW5jeSB2YWx1ZS5cbiAqXG4gKiBAc2VlIHtAbGluayBmb3JtYXROdW1iZXJ9XG4gKiBAc2VlIHtAbGluayBEZWNpbWFsUGlwZX1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRDdXJyZW5jeShcbiAgdmFsdWU6IG51bWJlcixcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGN1cnJlbmN5OiBzdHJpbmcsXG4gIGN1cnJlbmN5Q29kZT86IHN0cmluZyxcbiAgZGlnaXRzSW5mbz86IHN0cmluZyxcbik6IHN0cmluZyB7XG4gIGNvbnN0IGZvcm1hdCA9IGdldExvY2FsZU51bWJlckZvcm1hdChsb2NhbGUsIE51bWJlckZvcm1hdFN0eWxlLkN1cnJlbmN5KTtcbiAgY29uc3QgcGF0dGVybiA9IHBhcnNlTnVtYmVyRm9ybWF0KGZvcm1hdCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLk1pbnVzU2lnbikpO1xuXG4gIHBhdHRlcm4ubWluRnJhYyA9IGdldE51bWJlck9mQ3VycmVuY3lEaWdpdHMoY3VycmVuY3lDb2RlISk7XG4gIHBhdHRlcm4ubWF4RnJhYyA9IHBhdHRlcm4ubWluRnJhYztcblxuICBjb25zdCByZXMgPSBmb3JtYXROdW1iZXJUb0xvY2FsZVN0cmluZyhcbiAgICB2YWx1ZSxcbiAgICBwYXR0ZXJuLFxuICAgIGxvY2FsZSxcbiAgICBOdW1iZXJTeW1ib2wuQ3VycmVuY3lHcm91cCxcbiAgICBOdW1iZXJTeW1ib2wuQ3VycmVuY3lEZWNpbWFsLFxuICAgIGRpZ2l0c0luZm8sXG4gICk7XG4gIHJldHVybiAoXG4gICAgcmVzXG4gICAgICAucmVwbGFjZShDVVJSRU5DWV9DSEFSLCBjdXJyZW5jeSlcbiAgICAgIC8vIGlmIHdlIGhhdmUgMiB0aW1lIHRoZSBjdXJyZW5jeSBjaGFyYWN0ZXIsIHRoZSBzZWNvbmQgb25lIGlzIGlnbm9yZWRcbiAgICAgIC5yZXBsYWNlKENVUlJFTkNZX0NIQVIsICcnKVxuICAgICAgLy8gSWYgdGhlcmUgaXMgYSBzcGFjaW5nIGJldHdlZW4gY3VycmVuY3kgY2hhcmFjdGVyIGFuZCB0aGUgdmFsdWUgYW5kXG4gICAgICAvLyB0aGUgY3VycmVuY3kgY2hhcmFjdGVyIGlzIHN1cHByZXNzZWQgYnkgcGFzc2luZyBhbiBlbXB0eSBzdHJpbmcsIHRoZVxuICAgICAgLy8gc3BhY2luZyBjaGFyYWN0ZXIgd291bGQgcmVtYWluIGFzIHBhcnQgb2YgdGhlIHN0cmluZy4gVGhlbiB3ZVxuICAgICAgLy8gc2hvdWxkIHJlbW92ZSBpdC5cbiAgICAgIC50cmltKClcbiAgKTtcbn1cblxuLyoqXG4gKiBAbmdNb2R1bGUgQ29tbW9uTW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBGb3JtYXRzIGEgbnVtYmVyIGFzIGEgcGVyY2VudGFnZSBhY2NvcmRpbmcgdG8gbG9jYWxlIHJ1bGVzLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGRpZ2l0c0luZm8gRGVjaW1hbCByZXByZXNlbnRhdGlvbiBvcHRpb25zLCBzcGVjaWZpZWQgYnkgYSBzdHJpbmcgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gKiBge21pbkludGVnZXJEaWdpdHN9LnttaW5GcmFjdGlvbkRpZ2l0c30te21heEZyYWN0aW9uRGlnaXRzfWAuIFNlZSBgRGVjaW1hbFBpcGVgIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCBwZXJjZW50YWdlIHZhbHVlLlxuICpcbiAqIEBzZWUge0BsaW5rIGZvcm1hdE51bWJlcn1cbiAqIEBzZWUge0BsaW5rIERlY2ltYWxQaXBlfVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICogQHB1YmxpY0FwaVxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdFBlcmNlbnQodmFsdWU6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcsIGRpZ2l0c0luZm8/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmb3JtYXQgPSBnZXRMb2NhbGVOdW1iZXJGb3JtYXQobG9jYWxlLCBOdW1iZXJGb3JtYXRTdHlsZS5QZXJjZW50KTtcbiAgY29uc3QgcGF0dGVybiA9IHBhcnNlTnVtYmVyRm9ybWF0KGZvcm1hdCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLk1pbnVzU2lnbikpO1xuICBjb25zdCByZXMgPSBmb3JtYXROdW1iZXJUb0xvY2FsZVN0cmluZyhcbiAgICB2YWx1ZSxcbiAgICBwYXR0ZXJuLFxuICAgIGxvY2FsZSxcbiAgICBOdW1iZXJTeW1ib2wuR3JvdXAsXG4gICAgTnVtYmVyU3ltYm9sLkRlY2ltYWwsXG4gICAgZGlnaXRzSW5mbyxcbiAgICB0cnVlLFxuICApO1xuICByZXR1cm4gcmVzLnJlcGxhY2UoXG4gICAgbmV3IFJlZ0V4cChQRVJDRU5UX0NIQVIsICdnJyksXG4gICAgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLlBlcmNlbnRTaWduKSxcbiAgKTtcbn1cblxuLyoqXG4gKiBAbmdNb2R1bGUgQ29tbW9uTW9kdWxlXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBGb3JtYXRzIGEgbnVtYmVyIGFzIHRleHQsIHdpdGggZ3JvdXAgc2l6aW5nLCBzZXBhcmF0b3IsIGFuZCBvdGhlclxuICogcGFyYW1ldGVycyBiYXNlZCBvbiB0aGUgbG9jYWxlLlxuICpcbiAqIEBwYXJhbSB2YWx1ZSBUaGUgbnVtYmVyIHRvIGZvcm1hdC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGRpZ2l0c0luZm8gRGVjaW1hbCByZXByZXNlbnRhdGlvbiBvcHRpb25zLCBzcGVjaWZpZWQgYnkgYSBzdHJpbmcgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6XG4gKiBge21pbkludGVnZXJEaWdpdHN9LnttaW5GcmFjdGlvbkRpZ2l0c30te21heEZyYWN0aW9uRGlnaXRzfWAuIFNlZSBgRGVjaW1hbFBpcGVgIGZvciBtb3JlIGRldGFpbHMuXG4gKlxuICogQHJldHVybnMgVGhlIGZvcm1hdHRlZCB0ZXh0IHN0cmluZy5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciwgbG9jYWxlOiBzdHJpbmcsIGRpZ2l0c0luZm8/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBmb3JtYXQgPSBnZXRMb2NhbGVOdW1iZXJGb3JtYXQobG9jYWxlLCBOdW1iZXJGb3JtYXRTdHlsZS5EZWNpbWFsKTtcbiAgY29uc3QgcGF0dGVybiA9IHBhcnNlTnVtYmVyRm9ybWF0KGZvcm1hdCwgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sKGxvY2FsZSwgTnVtYmVyU3ltYm9sLk1pbnVzU2lnbikpO1xuICByZXR1cm4gZm9ybWF0TnVtYmVyVG9Mb2NhbGVTdHJpbmcoXG4gICAgdmFsdWUsXG4gICAgcGF0dGVybixcbiAgICBsb2NhbGUsXG4gICAgTnVtYmVyU3ltYm9sLkdyb3VwLFxuICAgIE51bWJlclN5bWJvbC5EZWNpbWFsLFxuICAgIGRpZ2l0c0luZm8sXG4gICk7XG59XG5cbmludGVyZmFjZSBQYXJzZWROdW1iZXJGb3JtYXQge1xuICBtaW5JbnQ6IG51bWJlcjtcbiAgLy8gdGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyByZXF1aXJlZCBpbiB0aGUgZnJhY3Rpb24gcGFydCBvZiB0aGUgbnVtYmVyXG4gIG1pbkZyYWM6IG51bWJlcjtcbiAgLy8gdGhlIG1heGltdW0gbnVtYmVyIG9mIGRpZ2l0cyByZXF1aXJlZCBpbiB0aGUgZnJhY3Rpb24gcGFydCBvZiB0aGUgbnVtYmVyXG4gIG1heEZyYWM6IG51bWJlcjtcbiAgLy8gdGhlIHByZWZpeCBmb3IgYSBwb3NpdGl2ZSBudW1iZXJcbiAgcG9zUHJlOiBzdHJpbmc7XG4gIC8vIHRoZSBzdWZmaXggZm9yIGEgcG9zaXRpdmUgbnVtYmVyXG4gIHBvc1N1Zjogc3RyaW5nO1xuICAvLyB0aGUgcHJlZml4IGZvciBhIG5lZ2F0aXZlIG51bWJlciAoZS5nLiBgLWAgb3IgYChgKSlcbiAgbmVnUHJlOiBzdHJpbmc7XG4gIC8vIHRoZSBzdWZmaXggZm9yIGEgbmVnYXRpdmUgbnVtYmVyIChlLmcuIGApYClcbiAgbmVnU3VmOiBzdHJpbmc7XG4gIC8vIG51bWJlciBvZiBkaWdpdHMgaW4gZWFjaCBncm91cCBvZiBzZXBhcmF0ZWQgZGlnaXRzXG4gIGdTaXplOiBudW1iZXI7XG4gIC8vIG51bWJlciBvZiBkaWdpdHMgaW4gdGhlIGxhc3QgZ3JvdXAgb2YgZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbCBzZXBhcmF0b3JcbiAgbGdTaXplOiBudW1iZXI7XG59XG5cbmZ1bmN0aW9uIHBhcnNlTnVtYmVyRm9ybWF0KGZvcm1hdDogc3RyaW5nLCBtaW51c1NpZ24gPSAnLScpOiBQYXJzZWROdW1iZXJGb3JtYXQge1xuICBjb25zdCBwID0ge1xuICAgIG1pbkludDogMSxcbiAgICBtaW5GcmFjOiAwLFxuICAgIG1heEZyYWM6IDAsXG4gICAgcG9zUHJlOiAnJyxcbiAgICBwb3NTdWY6ICcnLFxuICAgIG5lZ1ByZTogJycsXG4gICAgbmVnU3VmOiAnJyxcbiAgICBnU2l6ZTogMCxcbiAgICBsZ1NpemU6IDAsXG4gIH07XG5cbiAgY29uc3QgcGF0dGVyblBhcnRzID0gZm9ybWF0LnNwbGl0KFBBVFRFUk5fU0VQKTtcbiAgY29uc3QgcG9zaXRpdmUgPSBwYXR0ZXJuUGFydHNbMF07XG4gIGNvbnN0IG5lZ2F0aXZlID0gcGF0dGVyblBhcnRzWzFdO1xuXG4gIGNvbnN0IHBvc2l0aXZlUGFydHMgPVxuICAgICAgcG9zaXRpdmUuaW5kZXhPZihERUNJTUFMX1NFUCkgIT09IC0xXG4gICAgICAgID8gcG9zaXRpdmUuc3BsaXQoREVDSU1BTF9TRVApXG4gICAgICAgIDogW1xuICAgICAgICAgICAgcG9zaXRpdmUuc3Vic3RyaW5nKDAsIHBvc2l0aXZlLmxhc3RJbmRleE9mKFpFUk9fQ0hBUikgKyAxKSxcbiAgICAgICAgICAgIHBvc2l0aXZlLnN1YnN0cmluZyhwb3NpdGl2ZS5sYXN0SW5kZXhPZihaRVJPX0NIQVIpICsgMSksXG4gICAgICAgICAgXSxcbiAgICBpbnRlZ2VyID0gcG9zaXRpdmVQYXJ0c1swXSxcbiAgICBmcmFjdGlvbiA9IHBvc2l0aXZlUGFydHNbMV0gfHwgJyc7XG5cbiAgcC5wb3NQcmUgPSBpbnRlZ2VyLnN1YnN0cmluZygwLCBpbnRlZ2VyLmluZGV4T2YoRElHSVRfQ0hBUikpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgZnJhY3Rpb24ubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBjaCA9IGZyYWN0aW9uLmNoYXJBdChpKTtcbiAgICBpZiAoY2ggPT09IFpFUk9fQ0hBUikge1xuICAgICAgcC5taW5GcmFjID0gcC5tYXhGcmFjID0gaSArIDE7XG4gICAgfSBlbHNlIGlmIChjaCA9PT0gRElHSVRfQ0hBUikge1xuICAgICAgcC5tYXhGcmFjID0gaSArIDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHAucG9zU3VmICs9IGNoO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGdyb3VwcyA9IGludGVnZXIuc3BsaXQoR1JPVVBfU0VQKTtcbiAgcC5nU2l6ZSA9IGdyb3Vwc1sxXSA/IGdyb3Vwc1sxXS5sZW5ndGggOiAwO1xuICBwLmxnU2l6ZSA9IGdyb3Vwc1syXSB8fCBncm91cHNbMV0gPyAoZ3JvdXBzWzJdIHx8IGdyb3Vwc1sxXSkubGVuZ3RoIDogMDtcblxuICBpZiAobmVnYXRpdmUpIHtcbiAgICBjb25zdCB0cnVua0xlbiA9IHBvc2l0aXZlLmxlbmd0aCAtIHAucG9zUHJlLmxlbmd0aCAtIHAucG9zU3VmLmxlbmd0aCxcbiAgICAgIHBvcyA9IG5lZ2F0aXZlLmluZGV4T2YoRElHSVRfQ0hBUik7XG5cbiAgICBwLm5lZ1ByZSA9IG5lZ2F0aXZlLnN1YnN0cmluZygwLCBwb3MpLnJlcGxhY2UoLycvZywgJycpO1xuICAgIHAubmVnU3VmID0gbmVnYXRpdmUuc2xpY2UocG9zICsgdHJ1bmtMZW4pLnJlcGxhY2UoLycvZywgJycpO1xuICB9IGVsc2Uge1xuICAgIHAubmVnUHJlID0gbWludXNTaWduICsgcC5wb3NQcmU7XG4gICAgcC5uZWdTdWYgPSBwLnBvc1N1ZjtcbiAgfVxuXG4gIHJldHVybiBwO1xufVxuXG5pbnRlcmZhY2UgUGFyc2VkTnVtYmVyIHtcbiAgLy8gYW4gYXJyYXkgb2YgZGlnaXRzIGNvbnRhaW5pbmcgbGVhZGluZyB6ZXJvcyBhcyBuZWNlc3NhcnlcbiAgZGlnaXRzOiBudW1iZXJbXTtcbiAgLy8gdGhlIGV4cG9uZW50IGZvciBudW1iZXJzIHRoYXQgd291bGQgbmVlZCBtb3JlIHRoYW4gYE1BWF9ESUdJVFNgIGRpZ2l0cyBpbiBgZGBcbiAgZXhwb25lbnQ6IG51bWJlcjtcbiAgLy8gdGhlIG51bWJlciBvZiB0aGUgZGlnaXRzIGluIGBkYCB0aGF0IGFyZSB0byB0aGUgbGVmdCBvZiB0aGUgZGVjaW1hbCBwb2ludFxuICBpbnRlZ2VyTGVuOiBudW1iZXI7XG59XG5cbi8vIFRyYW5zZm9ybXMgYSBwYXJzZWQgbnVtYmVyIGludG8gYSBwZXJjZW50YWdlIGJ5IG11bHRpcGx5aW5nIGl0IGJ5IDEwMFxuZnVuY3Rpb24gdG9QZXJjZW50KHBhcnNlZE51bWJlcjogUGFyc2VkTnVtYmVyKTogUGFyc2VkTnVtYmVyIHtcbiAgLy8gaWYgdGhlIG51bWJlciBpcyAwLCBkb24ndCBkbyBhbnl0aGluZ1xuICBpZiAocGFyc2VkTnVtYmVyLmRpZ2l0c1swXSA9PT0gMCkge1xuICAgIHJldHVybiBwYXJzZWROdW1iZXI7XG4gIH1cblxuICAvLyBHZXR0aW5nIHRoZSBjdXJyZW50IG51bWJlciBvZiBkZWNpbWFsc1xuICBjb25zdCBmcmFjdGlvbkxlbiA9IHBhcnNlZE51bWJlci5kaWdpdHMubGVuZ3RoIC0gcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gIGlmIChwYXJzZWROdW1iZXIuZXhwb25lbnQpIHtcbiAgICBwYXJzZWROdW1iZXIuZXhwb25lbnQgKz0gMjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoZnJhY3Rpb25MZW4gPT09IDApIHtcbiAgICAgIHBhcnNlZE51bWJlci5kaWdpdHMucHVzaCgwLCAwKTtcbiAgICB9IGVsc2UgaWYgKGZyYWN0aW9uTGVuID09PSAxKSB7XG4gICAgICBwYXJzZWROdW1iZXIuZGlnaXRzLnB1c2goMCk7XG4gICAgfVxuICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuICs9IDI7XG4gIH1cblxuICByZXR1cm4gcGFyc2VkTnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIG51bWJlci5cbiAqIFNpZ25pZmljYW50IGJpdHMgb2YgdGhpcyBwYXJzZSBhbGdvcml0aG0gY2FtZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWtlTWNsL2JpZy5qcy9cbiAqL1xuZnVuY3Rpb24gcGFyc2VOdW1iZXIobnVtOiBudW1iZXIpOiBQYXJzZWROdW1iZXIge1xuICBsZXQgbnVtU3RyID0gTWF0aC5hYnMobnVtKSArICcnO1xuICBsZXQgZXhwb25lbnQgPSAwLFxuICAgIGRpZ2l0cyxcbiAgICBpbnRlZ2VyTGVuO1xuICBsZXQgaSwgaiwgemVyb3M7XG5cbiAgLy8gRGVjaW1hbCBwb2ludD9cbiAgaWYgKChpbnRlZ2VyTGVuID0gbnVtU3RyLmluZGV4T2YoREVDSU1BTF9TRVApKSA+IC0xKSB7XG4gICAgbnVtU3RyID0gbnVtU3RyLnJlcGxhY2UoREVDSU1BTF9TRVAsICcnKTtcbiAgfVxuXG4gIC8vIEV4cG9uZW50aWFsIGZvcm0/XG4gIGlmICgoaSA9IG51bVN0ci5zZWFyY2goL2UvaSkpID4gMCkge1xuICAgIC8vIFdvcmsgb3V0IHRoZSBleHBvbmVudC5cbiAgICBpZiAoaW50ZWdlckxlbiA8IDApIGludGVnZXJMZW4gPSBpO1xuICAgIGludGVnZXJMZW4gKz0gK251bVN0ci5zbGljZShpICsgMSk7XG4gICAgbnVtU3RyID0gbnVtU3RyLnN1YnN0cmluZygwLCBpKTtcbiAgfSBlbHNlIGlmIChpbnRlZ2VyTGVuIDwgMCkge1xuICAgIC8vIFRoZXJlIHdhcyBubyBkZWNpbWFsIHBvaW50IG9yIGV4cG9uZW50IHNvIGl0IGlzIGFuIGludGVnZXIuXG4gICAgaW50ZWdlckxlbiA9IG51bVN0ci5sZW5ndGg7XG4gIH1cblxuICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIGxlYWRpbmcgemVyb3MuXG4gIGZvciAoaSA9IDA7IG51bVN0ci5jaGFyQXQoaSkgPT09IFpFUk9fQ0hBUjsgaSsrKSB7XG4gICAgLyogZW1wdHkgKi9cbiAgfVxuXG4gIGlmIChpID09PSAoemVyb3MgPSBudW1TdHIubGVuZ3RoKSkge1xuICAgIC8vIFRoZSBkaWdpdHMgYXJlIGFsbCB6ZXJvLlxuICAgIGRpZ2l0cyA9IFswXTtcbiAgICBpbnRlZ2VyTGVuID0gMTtcbiAgfSBlbHNlIHtcbiAgICAvLyBDb3VudCB0aGUgbnVtYmVyIG9mIHRyYWlsaW5nIHplcm9zXG4gICAgemVyb3MtLTtcbiAgICB3aGlsZSAobnVtU3RyLmNoYXJBdCh6ZXJvcykgPT09IFpFUk9fQ0hBUikgemVyb3MtLTtcblxuICAgIC8vIFRyYWlsaW5nIHplcm9zIGFyZSBpbnNpZ25pZmljYW50IHNvIGlnbm9yZSB0aGVtXG4gICAgaW50ZWdlckxlbiAtPSBpO1xuICAgIGRpZ2l0cyA9IFtdO1xuICAgIC8vIENvbnZlcnQgc3RyaW5nIHRvIGFycmF5IG9mIGRpZ2l0cyB3aXRob3V0IGxlYWRpbmcvdHJhaWxpbmcgemVyb3MuXG4gICAgZm9yIChqID0gMDsgaSA8PSB6ZXJvczsgaSsrLCBqKyspIHtcbiAgICAgIGRpZ2l0c1tqXSA9IE51bWJlcihudW1TdHIuY2hhckF0KGkpKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiB0aGUgbnVtYmVyIG92ZXJmbG93cyB0aGUgbWF4aW11bSBhbGxvd2VkIGRpZ2l0cyB0aGVuIHVzZSBhbiBleHBvbmVudC5cbiAgaWYgKGludGVnZXJMZW4gPiBNQVhfRElHSVRTKSB7XG4gICAgZGlnaXRzID0gZGlnaXRzLnNwbGljZSgwLCBNQVhfRElHSVRTIC0gMSk7XG4gICAgZXhwb25lbnQgPSBpbnRlZ2VyTGVuIC0gMTtcbiAgICBpbnRlZ2VyTGVuID0gMTtcbiAgfVxuXG4gIHJldHVybiB7ZGlnaXRzLCBleHBvbmVudCwgaW50ZWdlckxlbn07XG59XG5cbi8qKlxuICogUm91bmQgdGhlIHBhcnNlZCBudW1iZXIgdG8gdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgZGVjaW1hbCBwbGFjZXNcbiAqIFRoaXMgZnVuY3Rpb24gY2hhbmdlcyB0aGUgcGFyc2VkTnVtYmVyIGluLXBsYWNlXG4gKi9cbmZ1bmN0aW9uIHJvdW5kTnVtYmVyKHBhcnNlZE51bWJlcjogUGFyc2VkTnVtYmVyLCBtaW5GcmFjOiBudW1iZXIsIG1heEZyYWM6IG51bWJlcikge1xuICBpZiAobWluRnJhYyA+IG1heEZyYWMpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVGhlIG1pbmltdW0gbnVtYmVyIG9mIGRpZ2l0cyBhZnRlciBmcmFjdGlvbiAoJHttaW5GcmFjfSkgaXMgaGlnaGVyIHRoYW4gdGhlIG1heGltdW0gKCR7bWF4RnJhY30pLmAsXG4gICAgKTtcbiAgfVxuXG4gIGxldCBkaWdpdHMgPSBwYXJzZWROdW1iZXIuZGlnaXRzO1xuICBsZXQgZnJhY3Rpb25MZW4gPSBkaWdpdHMubGVuZ3RoIC0gcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gIGNvbnN0IGZyYWN0aW9uU2l6ZSA9IE1hdGgubWluKE1hdGgubWF4KG1pbkZyYWMsIGZyYWN0aW9uTGVuKSwgbWF4RnJhYyk7XG5cbiAgLy8gVGhlIGluZGV4IG9mIHRoZSBkaWdpdCB0byB3aGVyZSByb3VuZGluZyBpcyB0byBvY2N1clxuICBsZXQgcm91bmRBdCA9IGZyYWN0aW9uU2l6ZSArIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICBsZXQgZGlnaXQgPSBkaWdpdHNbcm91bmRBdF07XG5cbiAgaWYgKHJvdW5kQXQgPiAwKSB7XG4gICAgLy8gRHJvcCBmcmFjdGlvbmFsIGRpZ2l0cyBiZXlvbmQgYHJvdW5kQXRgXG4gICAgZGlnaXRzLnNwbGljZShNYXRoLm1heChwYXJzZWROdW1iZXIuaW50ZWdlckxlbiwgcm91bmRBdCkpO1xuXG4gICAgLy8gU2V0IG5vbi1mcmFjdGlvbmFsIGRpZ2l0cyBiZXlvbmQgYHJvdW5kQXRgIHRvIDBcbiAgICBmb3IgKGxldCBqID0gcm91bmRBdDsgaiA8IGRpZ2l0cy5sZW5ndGg7IGorKykge1xuICAgICAgZGlnaXRzW2pdID0gMDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLy8gV2Ugcm91bmRlZCB0byB6ZXJvIHNvIHJlc2V0IHRoZSBwYXJzZWROdW1iZXJcbiAgICBmcmFjdGlvbkxlbiA9IE1hdGgubWF4KDAsIGZyYWN0aW9uTGVuKTtcbiAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbiA9IDE7XG4gICAgZGlnaXRzLmxlbmd0aCA9IE1hdGgubWF4KDEsIChyb3VuZEF0ID0gZnJhY3Rpb25TaXplICsgMSkpO1xuICAgIGRpZ2l0c1swXSA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDE7IGkgPCByb3VuZEF0OyBpKyspIGRpZ2l0c1tpXSA9IDA7XG4gIH1cblxuICBpZiAoZGlnaXQgPj0gNSkge1xuICAgIGlmIChyb3VuZEF0IC0gMSA8IDApIHtcbiAgICAgIGZvciAobGV0IGsgPSAwOyBrID4gcm91bmRBdDsgay0tKSB7XG4gICAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgICAgfVxuICAgICAgZGlnaXRzLnVuc2hpZnQoMSk7XG4gICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWdpdHNbcm91bmRBdCAtIDFdKys7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFkIG91dCB3aXRoIHplcm9zIHRvIGdldCB0aGUgcmVxdWlyZWQgZnJhY3Rpb24gbGVuZ3RoXG4gIGZvciAoOyBmcmFjdGlvbkxlbiA8IE1hdGgubWF4KDAsIGZyYWN0aW9uU2l6ZSk7IGZyYWN0aW9uTGVuKyspIGRpZ2l0cy5wdXNoKDApO1xuXG4gIGxldCBkcm9wVHJhaWxpbmdaZXJvcyA9IGZyYWN0aW9uU2l6ZSAhPT0gMDtcbiAgLy8gTWluaW1hbCBsZW5ndGggPSBuYiBvZiBkZWNpbWFscyByZXF1aXJlZCArIGN1cnJlbnQgbmIgb2YgaW50ZWdlcnNcbiAgLy8gQW55IG51bWJlciBiZXNpZGVzIHRoYXQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZW1vdmVkIGlmIGl0J3MgYSB0cmFpbGluZyAwXG4gIGNvbnN0IG1pbkxlbiA9IG1pbkZyYWMgKyBwYXJzZWROdW1iZXIuaW50ZWdlckxlbjtcbiAgLy8gRG8gYW55IGNhcnJ5aW5nLCBlLmcuIGEgZGlnaXQgd2FzIHJvdW5kZWQgdXAgdG8gMTBcbiAgY29uc3QgY2FycnkgPSBkaWdpdHMucmVkdWNlUmlnaHQoZnVuY3Rpb24gKGNhcnJ5LCBkLCBpLCBkaWdpdHMpIHtcbiAgICBkID0gZCArIGNhcnJ5O1xuICAgIGRpZ2l0c1tpXSA9IGQgPCAxMCA/IGQgOiBkIC0gMTA7IC8vIGQgJSAxMFxuICAgIGlmIChkcm9wVHJhaWxpbmdaZXJvcykge1xuICAgICAgLy8gRG8gbm90IGtlZXAgbWVhbmluZ2xlc3MgZnJhY3Rpb25hbCB0cmFpbGluZyB6ZXJvcyAoZS5nLiAxNS41MjAwMCAtLT4gMTUuNTIpXG4gICAgICBpZiAoZGlnaXRzW2ldID09PSAwICYmIGkgPj0gbWluTGVuKSB7XG4gICAgICAgIGRpZ2l0cy5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRyb3BUcmFpbGluZ1plcm9zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkID49IDEwID8gMSA6IDA7IC8vIE1hdGguZmxvb3IoZCAvIDEwKTtcbiAgfSwgMCk7XG4gIGlmIChjYXJyeSkge1xuICAgIGRpZ2l0cy51bnNoaWZ0KGNhcnJ5KTtcbiAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUludEF1dG9SYWRpeCh0ZXh0OiBzdHJpbmcpOiBudW1iZXIge1xuICBjb25zdCByZXN1bHQ6IG51bWJlciA9IHBhcnNlSW50KHRleHQpO1xuICBpZiAoaXNOYU4ocmVzdWx0KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBpbnRlZ2VyIGxpdGVyYWwgd2hlbiBwYXJzaW5nICcgKyB0ZXh0KTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuIl19
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { ɵregisterLocaleData } from '@angular/core';
9
9
  /**
@@ -18,4 +18,4 @@ import { ɵregisterLocaleData } from '@angular/core';
18
18
  export function registerLocaleData(data, localeId, extraData) {
19
19
  return ɵregisterLocaleData(data, localeId, extraData);
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlX2RhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2kxOG4vbG9jYWxlX2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVMsRUFBRSxRQUF1QixFQUFFLFNBQWU7SUFDcEYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHvJtXJlZ2lzdGVyTG9jYWxlRGF0YX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogUmVnaXN0ZXIgZ2xvYmFsIGRhdGEgdG8gYmUgdXNlZCBpbnRlcm5hbGx5IGJ5IEFuZ3VsYXIuIFNlZSB0aGVcbiAqIFtcIkkxOG4gZ3VpZGVcIl0oZ3VpZGUvaTE4bi9mb3JtYXQtZGF0YS1sb2NhbGUpIHRvIGtub3cgaG93IHRvIGltcG9ydCBhZGRpdGlvbmFsIGxvY2FsZVxuICogZGF0YS5cbiAqXG4gKiBUaGUgc2lnbmF0dXJlIHJlZ2lzdGVyTG9jYWxlRGF0YShkYXRhOiBhbnksIGV4dHJhRGF0YT86IGFueSkgaXMgZGVwcmVjYXRlZCBzaW5jZSB2NS4xXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJMb2NhbGVEYXRhKGRhdGE6IGFueSwgbG9jYWxlSWQ/OiBzdHJpbmcgfCBhbnksIGV4dHJhRGF0YT86IGFueSk6IHZvaWQge1xuICByZXR1cm4gybVyZWdpc3RlckxvY2FsZURhdGEoZGF0YSwgbG9jYWxlSWQsIGV4dHJhRGF0YSk7XG59XG4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlX2RhdGEuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2kxOG4vbG9jYWxlX2RhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLElBQVMsRUFBRSxRQUF1QixFQUFFLFNBQWU7SUFDcEYsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7ybVyZWdpc3RlckxvY2FsZURhdGF9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIFJlZ2lzdGVyIGdsb2JhbCBkYXRhIHRvIGJlIHVzZWQgaW50ZXJuYWxseSBieSBBbmd1bGFyLiBTZWUgdGhlXG4gKiBbXCJJMThuIGd1aWRlXCJdKGd1aWRlL2kxOG4vZm9ybWF0LWRhdGEtbG9jYWxlKSB0byBrbm93IGhvdyB0byBpbXBvcnQgYWRkaXRpb25hbCBsb2NhbGVcbiAqIGRhdGEuXG4gKlxuICogVGhlIHNpZ25hdHVyZSByZWdpc3RlckxvY2FsZURhdGEoZGF0YTogYW55LCBleHRyYURhdGE/OiBhbnkpIGlzIGRlcHJlY2F0ZWQgc2luY2UgdjUuMVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyTG9jYWxlRGF0YShkYXRhOiBhbnksIGxvY2FsZUlkPzogc3RyaW5nIHwgYW55LCBleHRyYURhdGE/OiBhbnkpOiB2b2lkIHtcbiAgcmV0dXJuIMm1cmVnaXN0ZXJMb2NhbGVEYXRhKGRhdGEsIGxvY2FsZUlkLCBleHRyYURhdGEpO1xufVxuIl19
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { ɵfindLocaleData, ɵgetLocaleCurrencyCode, ɵgetLocalePluralCase, ɵLocaleDataIndex, } from '@angular/core';
9
9
  import { CURRENCIES_EN } from './currencies';
@@ -719,4 +719,4 @@ export function getNumberOfCurrencyDigits(code) {
719
719
  }
720
720
  return typeof digits === 'number' ? digits : DEFAULT_NB_OF_CURRENCY_DIGITS;
721
721
  }
722
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlX2RhdGFfYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pMThuL2xvY2FsZV9kYXRhX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBR0wsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxhQUFhLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBRTlEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQiwrREFBTyxDQUFBO0lBQ1AsK0RBQU8sQ0FBQTtJQUNQLGlFQUFRLENBQUE7SUFDUixxRUFBVSxDQUFBO0FBQ1osQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFOLElBQVksTUFPWDtBQVBELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsaUNBQU8sQ0FBQTtJQUNQLGlDQUFPLENBQUE7SUFDUCxpQ0FBTyxDQUFBO0lBQ1AsbUNBQVEsQ0FBQTtJQUNSLHFDQUFTLENBQUE7QUFDWCxDQUFDLEVBUFcsTUFBTSxLQUFOLE1BQU0sUUFPakI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQiw2Q0FBTSxDQUFBO0lBQ04scURBQVUsQ0FBQTtBQUNaLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUMxQixnREFBZ0Q7SUFDaEQsMkRBQU0sQ0FBQTtJQUNOLG1EQUFtRDtJQUNuRCxxRUFBVyxDQUFBO0lBQ1gscURBQXFEO0lBQ3JELHVEQUFJLENBQUE7SUFDSixrREFBa0Q7SUFDbEQseURBQUssQ0FBQTtBQUNQLENBQUMsRUFUVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBUzNCO0FBRUQ7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFOLElBQVksV0FxQlg7QUFyQkQsV0FBWSxXQUFXO0lBQ3JCOzs7T0FHRztJQUNILCtDQUFLLENBQUE7SUFDTDs7O09BR0c7SUFDSCxpREFBTSxDQUFBO0lBQ047OztPQUdHO0lBQ0gsNkNBQUksQ0FBQTtJQUNKOzs7T0FHRztJQUNILDZDQUFJLENBQUE7QUFDTixDQUFDLEVBckJXLFdBQVcsS0FBWCxXQUFXLFFBcUJ0QjtBQUVELG1GQUFtRjtBQUNuRiwrREFBK0Q7QUFDL0Q7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCOzs7O09BSUc7SUFDSCxPQUFPLEVBQUUsQ0FBQztJQUNWOzs7O09BSUc7SUFDSCxLQUFLLEVBQUUsQ0FBQztJQUNSOzs7T0FHRztJQUNILElBQUksRUFBRSxDQUFDO0lBQ1A7OztPQUdHO0lBQ0gsV0FBVyxFQUFFLENBQUM7SUFDZDs7O09BR0c7SUFDSCxRQUFRLEVBQUUsQ0FBQztJQUNYOzs7T0FHRztJQUNILFNBQVMsRUFBRSxDQUFDO0lBQ1o7OztPQUdHO0lBQ0gsV0FBVyxFQUFFLENBQUM7SUFDZDs7O09BR0c7SUFDSCxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pCOzs7T0FHRztJQUNILFFBQVEsRUFBRSxDQUFDO0lBQ1g7OztPQUdHO0lBQ0gsUUFBUSxFQUFFLENBQUM7SUFDWDs7O09BR0c7SUFDSCxHQUFHLEVBQUUsRUFBRTtJQUNQOzs7T0FHRztJQUNILGFBQWEsRUFBRSxFQUFFO0lBQ2pCOzs7T0FHRztJQUNILGVBQWUsRUFBRSxFQUFFO0lBQ25COzs7T0FHRztJQUNILGFBQWEsRUFBRSxFQUFFO0NBQ1QsQ0FBQztBQUlYOzs7Ozs7R0FNRztBQUNILE1BQU0sQ0FBTixJQUFZLE9BUVg7QUFSRCxXQUFZLE9BQU87SUFDakIseUNBQVUsQ0FBQTtJQUNWLHlDQUFNLENBQUE7SUFDTiwyQ0FBTyxDQUFBO0lBQ1AsK0NBQVMsQ0FBQTtJQUNULDZDQUFRLENBQUE7SUFDUix5Q0FBTSxDQUFBO0lBQ04sNkNBQVEsQ0FBQTtBQUNWLENBQUMsRUFSVyxPQUFPLEtBQVAsT0FBTyxRQVFsQjtBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxNQUFjO0lBQ3hDLE9BQU8sZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxNQUFjLEVBQ2QsU0FBb0IsRUFDcEIsS0FBdUI7SUFFdkIsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUF5QjtRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUM7UUFDdkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixDQUFDO0tBQzVDLENBQUM7SUFDRixNQUFNLElBQUksR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEQsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDMUMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixNQUFjLEVBQ2QsU0FBb0IsRUFDcEIsS0FBdUI7SUFFdkIsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sUUFBUSxHQUFpQjtRQUM3QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUM7S0FDdEMsQ0FBQztJQUNGLE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN0RCxPQUFPLG1CQUFtQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUMxQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQ2pDLE1BQWMsRUFDZCxTQUFvQixFQUNwQixLQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxVQUFVLEdBQWlCO1FBQy9CLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO0tBQ3hDLENBQUM7SUFDRixNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUQsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDSCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLE1BQWMsRUFDZCxLQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsTUFBTSxRQUFRLEdBQXVCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxPQUFPLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFjO0lBQ2xELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsS0FBa0I7SUFDcEUsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sbUJBQW1CLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsTUFBYyxFQUFFLEtBQWtCO0lBQ3BFLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUN2RSxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7R0FhRztBQUNILE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxNQUFjLEVBQUUsS0FBa0I7SUFDeEUsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sa0JBQWtCLEdBQWEsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzNFLE9BQU8sbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDeEQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsTUFBb0I7SUFDeEUsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN6RCxJQUFJLE9BQU8sR0FBRyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQy9CLElBQUksTUFBTSxLQUFLLFlBQVksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEUsQ0FBQzthQUFNLElBQUksTUFBTSxLQUFLLFlBQVksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNqRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEUsQ0FBQztJQUNILENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFDRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFjLEVBQUUsSUFBdUI7SUFDM0UsTUFBTSxJQUFJLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3JDLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3BELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsTUFBYztJQUNwRCxNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsY0FBYyxDQUFDLElBQUksSUFBSSxDQUFDO0FBQ3ZELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFjO0lBQ2xELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDckQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxNQUFjO0lBQ2xELE9BQU8sc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxtQkFBbUIsQ0FBQyxNQUFjO0lBQ3pDLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FDOUIsb0JBQW9CLENBQUM7QUFFdkIsU0FBUyxhQUFhLENBQUMsSUFBUztJQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7UUFDdEMsTUFBTSxJQUFJLEtBQUssQ0FDYiw2Q0FDRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUNoQyxnR0FBZ0csQ0FDakcsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXdCRztBQUNILE1BQU0sVUFBVSw0QkFBNEIsQ0FBQyxNQUFjO0lBQ3pELE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxvREFBNEMsSUFBSSxFQUFFLENBQUM7SUFDakcsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBK0IsRUFBRSxFQUFFO1FBQ25ELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsQ0FBQztRQUNELE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQkc7QUFDSCxNQUFNLFVBQVUsd0JBQXdCLENBQ3RDLE1BQWMsRUFDZCxTQUFvQixFQUNwQixLQUF1QjtJQUV2QixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDckMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BCLE1BQU0sY0FBYyxHQUFpQjtRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLHFEQUE2QztRQUM3RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLHdEQUFnRDtLQUNqRixDQUFDO0lBQ0YsTUFBTSxVQUFVLEdBQUcsbUJBQW1CLENBQUMsY0FBYyxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4RSxPQUFPLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDdEQsQ0FBQztBQUVEOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxNQUFjO0lBQy9DLE1BQU0sSUFBSSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNyQyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxTQUFTLG1CQUFtQixDQUFJLElBQVMsRUFBRSxLQUFhO0lBQ3RELEtBQUssSUFBSSxDQUFDLEdBQUcsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxFQUFFLENBQUM7WUFDbkMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7QUFDNUQsQ0FBQztBQWNEOztHQUVHO0FBQ0gsU0FBUyxXQUFXLENBQUMsSUFBWTtJQUMvQixNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsT0FBTyxFQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUMsQ0FBQztBQUNsQyxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVksRUFBRSxNQUF5QixFQUFFLE1BQU0sR0FBRyxJQUFJO0lBQ3RGLE1BQU0sUUFBUSxHQUFHLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEYsTUFBTSxZQUFZLEdBQUcsUUFBUSxxQ0FBNkIsQ0FBQztJQUUzRCxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxZQUFZLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDNUQsT0FBTyxZQUFZLENBQUM7SUFDdEIsQ0FBQztJQUVELE9BQU8sUUFBUSwrQkFBdUIsSUFBSSxJQUFJLENBQUM7QUFDakQsQ0FBQztBQUVELDBEQUEwRDtBQUMxRCxNQUFNLDZCQUE2QixHQUFHLENBQUMsQ0FBQztBQUV4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsSUFBWTtJQUNwRCxJQUFJLE1BQU0sQ0FBQztJQUNYLE1BQU0sUUFBUSxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQ2IsTUFBTSxHQUFHLFFBQVEsbUNBQTJCLENBQUM7SUFDL0MsQ0FBQztJQUNELE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgybVDdXJyZW5jeUluZGV4LFxuICDJtUV4dHJhTG9jYWxlRGF0YUluZGV4LFxuICDJtWZpbmRMb2NhbGVEYXRhLFxuICDJtWdldExvY2FsZUN1cnJlbmN5Q29kZSxcbiAgybVnZXRMb2NhbGVQbHVyYWxDYXNlLFxuICDJtUxvY2FsZURhdGFJbmRleCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Q1VSUkVOQ0lFU19FTiwgQ3VycmVuY2llc1N5bWJvbHN9IGZyb20gJy4vY3VycmVuY2llcyc7XG5cbi8qKlxuICogRm9ybWF0IHN0eWxlcyB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBudW1iZXJzLlxuICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0fVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBgZ2V0TG9jYWxlTnVtYmVyRm9ybWF0YCBpcyBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBlbnVtIE51bWJlckZvcm1hdFN0eWxlIHtcbiAgRGVjaW1hbCxcbiAgUGVyY2VudCxcbiAgQ3VycmVuY3ksXG4gIFNjaWVudGlmaWMsXG59XG5cbi8qKlxuICogUGx1cmFsaXR5IGNhc2VzIHVzZWQgZm9yIHRyYW5zbGF0aW5nIHBsdXJhbHMgdG8gZGlmZmVyZW50IGxhbmd1YWdlcy5cbiAqXG4gKiBAc2VlIHtAbGluayBOZ1BsdXJhbH1cbiAqIEBzZWUge0BsaW5rIE5nUGx1cmFsQ2FzZX1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgYGdldExvY2FsZVBsdXJhbENhc2VgIGlzIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGVudW0gUGx1cmFsIHtcbiAgWmVybyA9IDAsXG4gIE9uZSA9IDEsXG4gIFR3byA9IDIsXG4gIEZldyA9IDMsXG4gIE1hbnkgPSA0LFxuICBPdGhlciA9IDUsXG59XG5cbi8qKlxuICogQ29udGV4dC1kZXBlbmRhbnQgdHJhbnNsYXRpb24gZm9ybXMgZm9yIHN0cmluZ3MuXG4gKiBUeXBpY2FsbHkgdGhlIHN0YW5kYWxvbmUgdmVyc2lvbiBpcyBmb3IgdGhlIG5vbWluYXRpdmUgZm9ybSBvZiB0aGUgd29yZCxcbiAqIGFuZCB0aGUgZm9ybWF0IHZlcnNpb24gaXMgdXNlZCBmb3IgdGhlIGdlbml0aXZlIGNhc2UuXG4gKiBAc2VlIFtDTERSIHdlYnNpdGVdKGh0dHA6Ly9jbGRyLnVuaWNvZGUub3JnL3RyYW5zbGF0aW9uL2RhdGUtdGltZS0xL2RhdGUtdGltZSNUT0MtU3RhbmRhbG9uZS12cy4tRm9ybWF0LVN0eWxlcylcbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgbG9jYWxlIGRhdGEgZ2V0dGVycyBhcmUgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZW51bSBGb3JtU3R5bGUge1xuICBGb3JtYXQsXG4gIFN0YW5kYWxvbmUsXG59XG5cbi8qKlxuICogU3RyaW5nIHdpZHRocyBhdmFpbGFibGUgZm9yIHRyYW5zbGF0aW9ucy5cbiAqIFRoZSBzcGVjaWZpYyBjaGFyYWN0ZXIgd2lkdGhzIGFyZSBsb2NhbGUtc3BlY2lmaWMuXG4gKiBFeGFtcGxlcyBhcmUgZ2l2ZW4gZm9yIHRoZSB3b3JkIFwiU3VuZGF5XCIgaW4gRW5nbGlzaC5cbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgbG9jYWxlIGRhdGEgZ2V0dGVycyBhcmUgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZW51bSBUcmFuc2xhdGlvbldpZHRoIHtcbiAgLyoqIDEgY2hhcmFjdGVyIGZvciBgZW4tVVNgLiBGb3IgZXhhbXBsZTogJ1MnICovXG4gIE5hcnJvdyxcbiAgLyoqIDMgY2hhcmFjdGVycyBmb3IgYGVuLVVTYC4gRm9yIGV4YW1wbGU6ICdTdW4nICovXG4gIEFiYnJldmlhdGVkLFxuICAvKiogRnVsbCBsZW5ndGggZm9yIGBlbi1VU2AuIEZvciBleGFtcGxlOiBcIlN1bmRheVwiICovXG4gIFdpZGUsXG4gIC8qKiAyIGNoYXJhY3RlcnMgZm9yIGBlbi1VU2AsIEZvciBleGFtcGxlOiBcIlN1XCIgKi9cbiAgU2hvcnQsXG59XG5cbi8qKlxuICogU3RyaW5nIHdpZHRocyBhdmFpbGFibGUgZm9yIGRhdGUtdGltZSBmb3JtYXRzLlxuICogVGhlIHNwZWNpZmljIGNoYXJhY3RlciB3aWR0aHMgYXJlIGxvY2FsZS1zcGVjaWZpYy5cbiAqIEV4YW1wbGVzIGFyZSBnaXZlbiBmb3IgYGVuLVVTYC5cbiAqXG4gKiBAc2VlIHtAbGluayBnZXRMb2NhbGVEYXRlRm9ybWF0fVxuICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlVGltZUZvcm1hdH1cbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZURhdGVUaW1lRm9ybWF0fVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIERhdGUgbG9jYWxlIGRhdGEgZ2V0dGVycyBhcmUgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZW51bSBGb3JtYXRXaWR0aCB7XG4gIC8qKlxuICAgKiBGb3IgYGVuLVVTYCwgYCdNL2QveXksIGg6bW0gYSdgXG4gICAqIChFeGFtcGxlOiBgNi8xNS8xNSwgOTowMyBBTWApXG4gICAqL1xuICBTaG9ydCxcbiAgLyoqXG4gICAqIEZvciBgZW4tVVNgLCBgJ01NTSBkLCB5LCBoOm1tOnNzIGEnYFxuICAgKiAoRXhhbXBsZTogYEp1biAxNSwgMjAxNSwgOTowMzowMSBBTWApXG4gICAqL1xuICBNZWRpdW0sXG4gIC8qKlxuICAgKiBGb3IgYGVuLVVTYCwgYCdNTU1NIGQsIHksIGg6bW06c3MgYSB6J2BcbiAgICogKEV4YW1wbGU6IGBKdW5lIDE1LCAyMDE1IGF0IDk6MDM6MDEgQU0gR01UKzFgKVxuICAgKi9cbiAgTG9uZyxcbiAgLyoqXG4gICAqIEZvciBgZW4tVVNgLCBgJ0VFRUUsIE1NTU0gZCwgeSwgaDptbTpzcyBhIHp6enonYFxuICAgKiAoRXhhbXBsZTogYE1vbmRheSwgSnVuZSAxNSwgMjAxNSBhdCA5OjAzOjAxIEFNIEdNVCswMTowMGApXG4gICAqL1xuICBGdWxsLFxufVxuXG4vLyBUaGlzIG5lZWRzIHRvIGJlIGFuIG9iamVjdCBsaXRlcmFsLCByYXRoZXIgdGhhbiBhbiBlbnVtLCBiZWNhdXNlIFR5cGVTY3JpcHQgNS40K1xuLy8gZG9lc24ndCBhbGxvdyBudW1lcmljIGtleXMgYW5kIHdlIGhhdmUgYEluZmluaXR5YCBhbmQgYE5hTmAuXG4vKipcbiAqIFN5bWJvbHMgdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHBsYWNlaG9sZGVycyBpbiBudW1iZXIgcGF0dGVybnMuXG4gKiBFeGFtcGxlcyBhcmUgYmFzZWQgb24gYGVuLVVTYCB2YWx1ZXMuXG4gKlxuICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sfVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBgZ2V0TG9jYWxlTnVtYmVyU3ltYm9sYCBpcyBkZXByZWNhdGVkXG4gKlxuICogQG9iamVjdC1saXRlcmFsLWFzLWVudW1cbiAqL1xuZXhwb3J0IGNvbnN0IE51bWJlclN5bWJvbCA9IHtcbiAgLyoqXG4gICAqIERlY2ltYWwgc2VwYXJhdG9yLlxuICAgKiBGb3IgYGVuLVVTYCwgdGhlIGRvdCBjaGFyYWN0ZXIuXG4gICAqIEV4YW1wbGU6IDIsMzQ1YC5gNjdcbiAgICovXG4gIERlY2ltYWw6IDAsXG4gIC8qKlxuICAgKiBHcm91cGluZyBzZXBhcmF0b3IsIHR5cGljYWxseSBmb3IgdGhvdXNhbmRzLlxuICAgKiBGb3IgYGVuLVVTYCwgdGhlIGNvbW1hIGNoYXJhY3Rlci5cbiAgICogRXhhbXBsZTogMmAsYDM0NS42N1xuICAgKi9cbiAgR3JvdXA6IDEsXG4gIC8qKlxuICAgKiBMaXN0LWl0ZW0gc2VwYXJhdG9yLlxuICAgKiBFeGFtcGxlOiBcIm9uZSwgdHdvLCBhbmQgdGhyZWVcIlxuICAgKi9cbiAgTGlzdDogMixcbiAgLyoqXG4gICAqIFNpZ24gZm9yIHBlcmNlbnRhZ2UgKG91dCBvZiAxMDApLlxuICAgKiBFeGFtcGxlOiAyMy40JVxuICAgKi9cbiAgUGVyY2VudFNpZ246IDMsXG4gIC8qKlxuICAgKiBTaWduIGZvciBwb3NpdGl2ZSBudW1iZXJzLlxuICAgKiBFeGFtcGxlOiArMjNcbiAgICovXG4gIFBsdXNTaWduOiA0LFxuICAvKipcbiAgICogU2lnbiBmb3IgbmVnYXRpdmUgbnVtYmVycy5cbiAgICogRXhhbXBsZTogLTIzXG4gICAqL1xuICBNaW51c1NpZ246IDUsXG4gIC8qKlxuICAgKiBDb21wdXRlciBub3RhdGlvbiBmb3IgZXhwb25lbnRpYWwgdmFsdWUgKG4gdGltZXMgYSBwb3dlciBvZiAxMCkuXG4gICAqIEV4YW1wbGU6IDEuMkUzXG4gICAqL1xuICBFeHBvbmVudGlhbDogNixcbiAgLyoqXG4gICAqIEh1bWFuLXJlYWRhYmxlIGZvcm1hdCBvZiBleHBvbmVudGlhbC5cbiAgICogRXhhbXBsZTogMS4yeDEwM1xuICAgKi9cbiAgU3VwZXJzY3JpcHRpbmdFeHBvbmVudDogNyxcbiAgLyoqXG4gICAqIFNpZ24gZm9yIHBlcm1pbGxlIChvdXQgb2YgMTAwMCkuXG4gICAqIEV4YW1wbGU6IDIzLjTigLBcbiAgICovXG4gIFBlck1pbGxlOiA4LFxuICAvKipcbiAgICogSW5maW5pdHksIGNhbiBiZSB1c2VkIHdpdGggcGx1cyBhbmQgbWludXMuXG4gICAqIEV4YW1wbGU6IOKIniwgK+KIniwgLeKInlxuICAgKi9cbiAgSW5maW5pdHk6IDksXG4gIC8qKlxuICAgKiBOb3QgYSBudW1iZXIuXG4gICAqIEV4YW1wbGU6IE5hTlxuICAgKi9cbiAgTmFOOiAxMCxcbiAgLyoqXG4gICAqIFN5bWJvbCB1c2VkIGJldHdlZW4gdGltZSB1bml0cy5cbiAgICogRXhhbXBsZTogMTA6NTJcbiAgICovXG4gIFRpbWVTZXBhcmF0b3I6IDExLFxuICAvKipcbiAgICogRGVjaW1hbCBzZXBhcmF0b3IgZm9yIGN1cnJlbmN5IHZhbHVlcyAoZmFsbGJhY2sgdG8gYERlY2ltYWxgKS5cbiAgICogRXhhbXBsZTogJDIsMzQ1LjY3XG4gICAqL1xuICBDdXJyZW5jeURlY2ltYWw6IDEyLFxuICAvKipcbiAgICogR3JvdXAgc2VwYXJhdG9yIGZvciBjdXJyZW5jeSB2YWx1ZXMgKGZhbGxiYWNrIHRvIGBHcm91cGApLlxuICAgKiBFeGFtcGxlOiAkMiwzNDUuNjdcbiAgICovXG4gIEN1cnJlbmN5R3JvdXA6IDEzLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgTnVtYmVyU3ltYm9sID0gKHR5cGVvZiBOdW1iZXJTeW1ib2wpW2tleW9mIHR5cGVvZiBOdW1iZXJTeW1ib2xdO1xuXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgZWFjaCBkYXkgb2YgdGhlIHdlZWssIGJhc2VkIG9uIHRoZSBgZW4tVVNgIGxvY2FsZVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBXZWVrIGxvY2FsZSBnZXR0ZXJzIGFyZSBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBlbnVtIFdlZWtEYXkge1xuICBTdW5kYXkgPSAwLFxuICBNb25kYXksXG4gIFR1ZXNkYXksXG4gIFdlZG5lc2RheSxcbiAgVGh1cnNkYXksXG4gIEZyaWRheSxcbiAgU2F0dXJkYXksXG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsb2NhbGUgSUQgZnJvbSB0aGUgY3VycmVudGx5IGxvYWRlZCBsb2NhbGUuXG4gKiBUaGUgbG9hZGVkIGxvY2FsZSBjb3VsZCBiZSwgZm9yIGV4YW1wbGUsIGEgZ2xvYmFsIG9uZSByYXRoZXIgdGhhbiBhIHJlZ2lvbmFsIG9uZS5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSwgc3VjaCBhcyBgZnItRlJgLlxuICogQHJldHVybnMgVGhlIGxvY2FsZSBjb2RlLiBGb3IgZXhhbXBsZSwgYGZyYC5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBUaGlzIGZ1bmN0aW9uIHNlcnZlcyBubyBwdXJwb3NlIHdoZW4gcmVseWluZyBvbiB0aGUgYEludGxgIEFQSS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUlkKGxvY2FsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIMm1ZmluZExvY2FsZURhdGEobG9jYWxlKVvJtUxvY2FsZURhdGFJbmRleC5Mb2NhbGVJZF07XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGRheSBwZXJpb2Qgc3RyaW5ncyBmb3IgdGhlIGdpdmVuIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSBmb3JtU3R5bGUgVGhlIHJlcXVpcmVkIGdyYW1tYXRpY2FsIGZvcm0uXG4gKiBAcGFyYW0gd2lkdGggVGhlIHJlcXVpcmVkIGNoYXJhY3RlciB3aWR0aC5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxvY2FsaXplZCBwZXJpb2Qgc3RyaW5ncy4gRm9yIGV4YW1wbGUsIGBbQU0sIFBNXWAgZm9yIGBlbi1VU2AuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBmb3IgZGF0ZSBmb3JtYXRpbmcgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZURheVBlcmlvZHMoXG4gIGxvY2FsZTogc3RyaW5nLFxuICBmb3JtU3R5bGU6IEZvcm1TdHlsZSxcbiAgd2lkdGg6IFRyYW5zbGF0aW9uV2lkdGgsXG4pOiBSZWFkb25seTxbc3RyaW5nLCBzdHJpbmddPiB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIGNvbnN0IGFtUG1EYXRhID0gPFtzdHJpbmcsIHN0cmluZ11bXVtdPltcbiAgICBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkRheVBlcmlvZHNGb3JtYXRdLFxuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRGF5UGVyaW9kc1N0YW5kYWxvbmVdLFxuICBdO1xuICBjb25zdCBhbVBtID0gZ2V0TGFzdERlZmluZWRWYWx1ZShhbVBtRGF0YSwgZm9ybVN0eWxlKTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUoYW1QbSwgd2lkdGgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBkYXlzIG9mIHRoZSB3ZWVrIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLCB1c2luZyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGZvcm1TdHlsZSBUaGUgcmVxdWlyZWQgZ3JhbW1hdGljYWwgZm9ybS5cbiAqIEBwYXJhbSB3aWR0aCBUaGUgcmVxdWlyZWQgY2hhcmFjdGVyIHdpZHRoLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgbG9jYWxpemVkIG5hbWUgc3RyaW5ncy5cbiAqIEZvciBleGFtcGxlLGBbU3VuZGF5LCBNb25kYXksIC4uLiBTYXR1cmRheV1gIGZvciBgZW4tVVNgLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5EYXRlVGltZUZvcm1hdGAgZm9yIGRhdGUgZm9ybWF0aW5nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEYXlOYW1lcyhcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGZvcm1TdHlsZTogRm9ybVN0eWxlLFxuICB3aWR0aDogVHJhbnNsYXRpb25XaWR0aCxcbik6IFJlYWRvbmx5QXJyYXk8c3RyaW5nPiB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIGNvbnN0IGRheXNEYXRhID0gPHN0cmluZ1tdW11bXT5bXG4gICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5EYXlzRm9ybWF0XSxcbiAgICBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkRheXNTdGFuZGFsb25lXSxcbiAgXTtcbiAgY29uc3QgZGF5cyA9IGdldExhc3REZWZpbmVkVmFsdWUoZGF5c0RhdGEsIGZvcm1TdHlsZSk7XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKGRheXMsIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgbW9udGhzIG9mIHRoZSB5ZWFyIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLCB1c2luZyB0aGUgR3JlZ29yaWFuIGNhbGVuZGFyLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGZvcm1TdHlsZSBUaGUgcmVxdWlyZWQgZ3JhbW1hdGljYWwgZm9ybS5cbiAqIEBwYXJhbSB3aWR0aCBUaGUgcmVxdWlyZWQgY2hhcmFjdGVyIHdpZHRoLlxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgbG9jYWxpemVkIG5hbWUgc3RyaW5ncy5cbiAqIEZvciBleGFtcGxlLCAgYFtKYW51YXJ5LCBGZWJydWFyeSwgLi4uXWAgZm9yIGBlbi1VU2AuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBmb3IgZGF0ZSBmb3JtYXRpbmcgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZU1vbnRoTmFtZXMoXG4gIGxvY2FsZTogc3RyaW5nLFxuICBmb3JtU3R5bGU6IEZvcm1TdHlsZSxcbiAgd2lkdGg6IFRyYW5zbGF0aW9uV2lkdGgsXG4pOiBSZWFkb25seUFycmF5PHN0cmluZz4ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjb25zdCBtb250aHNEYXRhID0gPHN0cmluZ1tdW11bXT5bXG4gICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5Nb250aHNGb3JtYXRdLFxuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguTW9udGhzU3RhbmRhbG9uZV0sXG4gIF07XG4gIGNvbnN0IG1vbnRocyA9IGdldExhc3REZWZpbmVkVmFsdWUobW9udGhzRGF0YSwgZm9ybVN0eWxlKTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUobW9udGhzLCB3aWR0aCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIEdyZWdvcmlhbi1jYWxlbmRhciBlcmFzIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gd2lkdGggVGhlIHJlcXVpcmVkIGNoYXJhY3RlciB3aWR0aC5cblxuICogQHJldHVybnMgQW4gYXJyYXkgb2YgbG9jYWxpemVkIGVyYSBzdHJpbmdzLlxuICogRm9yIGV4YW1wbGUsIGBbQUQsIEJDXWAgZm9yIGBlbi1VU2AuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBmb3IgZGF0ZSBmb3JtYXRpbmcgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUVyYU5hbWVzKFxuICBsb2NhbGU6IHN0cmluZyxcbiAgd2lkdGg6IFRyYW5zbGF0aW9uV2lkdGgsXG4pOiBSZWFkb25seTxbc3RyaW5nLCBzdHJpbmddPiB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIGNvbnN0IGVyYXNEYXRhID0gPFtzdHJpbmcsIHN0cmluZ11bXT5kYXRhW8m1TG9jYWxlRGF0YUluZGV4LkVyYXNdO1xuICByZXR1cm4gZ2V0TGFzdERlZmluZWRWYWx1ZShlcmFzRGF0YSwgd2lkdGgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHJldHVybnMgQSBkYXkgaW5kZXggbnVtYmVyLCB1c2luZyB0aGUgMC1iYXNlZCB3ZWVrLWRheSBpbmRleCBmb3IgYGVuLVVTYFxuICogKFN1bmRheSA9IDAsIE1vbmRheSA9IDEsIC4uLikuXG4gKiBGb3IgZXhhbXBsZSwgZm9yIGBmci1GUmAsIHJldHVybnMgMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBmaXJzdCBkYXkgaXMgTW9uZGF5LlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIEludGwncyBbYGdldFdlZWtJbmZvYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9Mb2NhbGUvZ2V0V2Vla0luZm8pIGhhcyBwYXJ0aWFsIHN1cHBvcnQgKENocm9taXVtIE05OSAmIFNhZmFyaSAxNykuXG4gKiBZb3UgbWF5IHdhbnQgdG8gcmVseSBvbiB0aGUgZm9sbG93aW5nIGFsdGVybmF0aXZlczpcbiAqIC0gTGlicmFyaWVzIGxpa2UgW2BMdXhvbmBdKGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jLykgcmVseSBvbiBgSW50bGAgYnV0IGZhbGxiYWNrIG9uIHRoZSBJU08gODYwMSBkZWZpbml0aW9uIChtb25kYXkpIGlmIGBnZXRXZWVrSW5mb2AgaXMgbm90IHN1cHBvcnRlZC5cbiAqIC0gT3RoZXIgbGlicmFpcmllcyBsaWtlIFtgZGF0ZS1mbnNgXShodHRwczovL2RhdGUtZm5zLm9yZy8pLCBbYGRheS5qc2BdKGh0dHBzOi8vZGF5LmpzLm9yZy9lbi8pIG9yIFtgd2Vla3N0YXJ0YF0oaHR0cHM6Ly93d3cubnBtanMuY29tL3BhY2thZ2Uvd2Vla3N0YXJ0KSBsaWJyYXJ5IHByb3ZpZGUgdGhlaXIgb3duIGxvY2FsZSBiYXNlZCBkYXRhIGZvciB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRmlyc3REYXlPZldlZWsobG9jYWxlOiBzdHJpbmcpOiBXZWVrRGF5IHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRmlyc3REYXlPZldlZWtdO1xufVxuXG4vKipcbiAqIFJhbmdlIG9mIHdlZWsgZGF5cyB0aGF0IGFyZSBjb25zaWRlcmVkIHRoZSB3ZWVrLWVuZCBmb3IgdGhlIGdpdmVuIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSByYW5nZSBvZiBkYXkgdmFsdWVzLCBgW3N0YXJ0RGF5LCBlbmREYXldYC5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBJbnRsJ3MgW2BnZXRXZWVrSW5mb2BdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTG9jYWxlL2dldFdlZWtJbmZvKSBoYXMgcGFydGlhbCBzdXBwb3J0IChDaHJvbWl1bSBNOTkgJiBTYWZhcmkgMTcpLlxuICogTGlicmFyaWVzIGxpa2UgW2BMdXhvbmBdKGh0dHBzOi8vbW9tZW50LmdpdGh1Yi5pby9sdXhvbi8jLykgcmVseSBvbiBgSW50bGAgYnV0IGZhbGxiYWNrIG9uIHRoZSBJU08gODYwMSBkZWZpbml0aW9uIChTYXR1cmRheStTdW5kYXkpIGlmIGBnZXRXZWVrSW5mb2AgaXMgbm90IHN1cHBvcnRlZCAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVXZWVrRW5kUmFuZ2UobG9jYWxlOiBzdHJpbmcpOiBbV2Vla0RheSwgV2Vla0RheV0ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5XZWVrZW5kUmFuZ2VdO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIGxvY2FsaXplZCBkYXRlLXZhbHVlIGZvcm1hdHRpbmcgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIHdpZHRoIFRoZSBmb3JtYXQgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgZm9ybWF0dGluZyBzdHJpbmcuXG4gKiBAc2VlIHtAbGluayBGb3JtYXRXaWR0aH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBVc2UgYEludGwuRGF0ZVRpbWVGb3JtYXRgIGZvciBkYXRlIGZvcm1hdGluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRGF0ZUZvcm1hdChsb2NhbGU6IHN0cmluZywgd2lkdGg6IEZvcm1hdFdpZHRoKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUoZGF0YVvJtUxvY2FsZURhdGFJbmRleC5EYXRlRm9ybWF0XSwgd2lkdGgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIGxvY2FsaXplZCB0aW1lLXZhbHVlIGZvcm1hdHRpbmcgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIHdpZHRoIFRoZSBmb3JtYXQgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgZm9ybWF0dGluZyBzdHJpbmcuXG4gKiBAc2VlIHtAbGluayBGb3JtYXRXaWR0aH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcblxuICogQHB1YmxpY0FwaVxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBVc2UgYEludGwuRGF0ZVRpbWVGb3JtYXRgIGZvciBkYXRlIGZvcm1hdGluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlVGltZUZvcm1hdChsb2NhbGU6IHN0cmluZywgd2lkdGg6IEZvcm1hdFdpZHRoKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUoZGF0YVvJtUxvY2FsZURhdGFJbmRleC5UaW1lRm9ybWF0XSwgd2lkdGgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIGxvY2FsaXplZCBkYXRlLXRpbWUgZm9ybWF0dGluZyBzdHJpbmcuXG4gKlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gd2lkdGggVGhlIGZvcm1hdCB0eXBlLlxuICogQHJldHVybnMgVGhlIGxvY2FsaXplZCBmb3JtYXR0aW5nIHN0cmluZy5cbiAqIEBzZWUge0BsaW5rIEZvcm1hdFdpZHRofVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5EYXRlVGltZUZvcm1hdGAgZm9yIGRhdGUgZm9ybWF0aW5nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEYXRlVGltZUZvcm1hdChsb2NhbGU6IHN0cmluZywgd2lkdGg6IEZvcm1hdFdpZHRoKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgY29uc3QgZGF0ZVRpbWVGb3JtYXREYXRhID0gPHN0cmluZ1tdPmRhdGFbybVMb2NhbGVEYXRhSW5kZXguRGF0ZVRpbWVGb3JtYXRdO1xuICByZXR1cm4gZ2V0TGFzdERlZmluZWRWYWx1ZShkYXRlVGltZUZvcm1hdERhdGEsIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBsb2NhbGl6ZWQgbnVtYmVyIHN5bWJvbCB0aGF0IGNhbiBiZSB1c2VkIHRvIHJlcGxhY2UgcGxhY2Vob2xkZXJzIGluIG51bWJlciBmb3JtYXRzLlxuICogQHBhcmFtIGxvY2FsZSBUaGUgbG9jYWxlIGNvZGUuXG4gKiBAcGFyYW0gc3ltYm9sIFRoZSBzeW1ib2wgdG8gbG9jYWxpemUuIE11c3QgYmUgb25lIG9mIGBOdW1iZXJTeW1ib2xgLlxuICogQHJldHVybnMgVGhlIGNoYXJhY3RlciBmb3IgdGhlIGxvY2FsaXplZCBzeW1ib2wuXG4gKiBAc2VlIHtAbGluayBOdW1iZXJTeW1ib2x9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLk51bWJlckZvcm1hdGAgdG8gZm9ybWF0IG51bWJlcnMgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZU51bWJlclN5bWJvbChsb2NhbGU6IHN0cmluZywgc3ltYm9sOiBOdW1iZXJTeW1ib2wpOiBzdHJpbmcge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjb25zdCByZXMgPSBkYXRhW8m1TG9jYWxlRGF0YUluZGV4Lk51bWJlclN5bWJvbHNdW3N5bWJvbF07XG4gIGlmICh0eXBlb2YgcmVzID09PSAndW5kZWZpbmVkJykge1xuICAgIGlmIChzeW1ib2wgPT09IE51bWJlclN5bWJvbC5DdXJyZW5jeURlY2ltYWwpIHtcbiAgICAgIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4Lk51bWJlclN5bWJvbHNdW051bWJlclN5bWJvbC5EZWNpbWFsXTtcbiAgICB9IGVsc2UgaWYgKHN5bWJvbCA9PT0gTnVtYmVyU3ltYm9sLkN1cnJlbmN5R3JvdXApIHtcbiAgICAgIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4Lk51bWJlclN5bWJvbHNdW051bWJlclN5bWJvbC5Hcm91cF07XG4gICAgfVxuICB9XG4gIHJldHVybiByZXM7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgbnVtYmVyIGZvcm1hdCBmb3IgYSBnaXZlbiBsb2NhbGUuXG4gKlxuICogTnVtYmVycyBhcmUgZm9ybWF0dGVkIHVzaW5nIHBhdHRlcm5zLCBsaWtlIGAjLCMjIy4wMGAuIEZvciBleGFtcGxlLCB0aGUgcGF0dGVybiBgIywjIyMuMDBgXG4gKiB3aGVuIHVzZWQgdG8gZm9ybWF0IHRoZSBudW1iZXIgMTIzNDUuNjc4IGNvdWxkIHJlc3VsdCBpbiBcIjEyJzM0NSw2NzhcIi4gVGhhdCB3b3VsZCBoYXBwZW4gaWYgdGhlXG4gKiBncm91cGluZyBzZXBhcmF0b3IgZm9yIHlvdXIgbGFuZ3VhZ2UgaXMgYW4gYXBvc3Ryb3BoZSwgYW5kIHRoZSBkZWNpbWFsIHNlcGFyYXRvciBpcyBhIGNvbW1hLlxuICpcbiAqIDxiPkltcG9ydGFudDo8L2I+IFRoZSBjaGFyYWN0ZXJzIGAuYCBgLGAgYDBgIGAjYCAoYW5kIG90aGVycyBiZWxvdykgYXJlIHNwZWNpYWwgcGxhY2Vob2xkZXJzXG4gKiB0aGF0IHN0YW5kIGZvciB0aGUgZGVjaW1hbCBzZXBhcmF0b3IsIGFuZCBzbyBvbiwgYW5kIGFyZSBOT1QgcmVhbCBjaGFyYWN0ZXJzLlxuICogWW91IG11c3QgTk9UIFwidHJhbnNsYXRlXCIgdGhlIHBsYWNlaG9sZGVycy4gRm9yIGV4YW1wbGUsIGRvbid0IGNoYW5nZSBgLmAgdG8gYCxgIGV2ZW4gdGhvdWdoIGluXG4gKiB5b3VyIGxhbmd1YWdlIHRoZSBkZWNpbWFsIHBvaW50IGlzIHdyaXR0ZW4gd2l0aCBhIGNvbW1hLiBUaGUgc3ltYm9scyBzaG91bGQgYmUgcmVwbGFjZWQgYnkgdGhlXG4gKiBsb2NhbCBlcXVpdmFsZW50cywgdXNpbmcgdGhlIGFwcHJvcHJpYXRlIGBOdW1iZXJTeW1ib2xgIGZvciB5b3VyIGxhbmd1YWdlLlxuICpcbiAqIEhlcmUgYXJlIHRoZSBzcGVjaWFsIGNoYXJhY3RlcnMgdXNlZCBpbiBudW1iZXIgcGF0dGVybnM6XG4gKlxuICogfCBTeW1ib2wgfCBNZWFuaW5nIHxcbiAqIHwtLS0tLS0tLXwtLS0tLS0tLS18XG4gKiB8IC4gfCBSZXBsYWNlZCBhdXRvbWF0aWNhbGx5IGJ5IHRoZSBjaGFyYWN0ZXIgdXNlZCBmb3IgdGhlIGRlY2ltYWwgcG9pbnQuIHxcbiAqIHwgLCB8IFJlcGxhY2VkIGJ5IHRoZSBcImdyb3VwaW5nXCIgKHRob3VzYW5kcykgc2VwYXJhdG9yLiB8XG4gKiB8IDAgfCBSZXBsYWNlZCBieSBhIGRpZ2l0IChvciB6ZXJvIGlmIHRoZXJlIGFyZW4ndCBlbm91Z2ggZGlnaXRzKS4gfFxuICogfCAjIHwgUmVwbGFjZWQgYnkgYSBkaWdpdCAob3Igbm90aGluZyBpZiB0aGVyZSBhcmVuJ3QgZW5vdWdoKS4gfFxuICogfCDCpCB8IFJlcGxhY2VkIGJ5IGEgY3VycmVuY3kgc3ltYm9sLCBzdWNoIGFzICQgb3IgVVNELiB8XG4gKiB8ICUgfCBNYXJrcyBhIHBlcmNlbnQgZm9ybWF0LiBUaGUgJSBzeW1ib2wgbWF5IGNoYW5nZSBwb3NpdGlvbiwgYnV0IG11c3QgYmUgcmV0YWluZWQuIHxcbiAqIHwgRSB8IE1hcmtzIGEgc2NpZW50aWZpYyBmb3JtYXQuIFRoZSBFIHN5bWJvbCBtYXkgY2hhbmdlIHBvc2l0aW9uLCBidXQgbXVzdCBiZSByZXRhaW5lZC4gfFxuICogfCAnIHwgU3BlY2lhbCBjaGFyYWN0ZXJzIHVzZWQgYXMgbGl0ZXJhbCBjaGFyYWN0ZXJzIGFyZSBxdW90ZWQgd2l0aCBBU0NJSSBzaW5nbGUgcXVvdGVzLiB8XG4gKlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gdHlwZSBUaGUgdHlwZSBvZiBudW1lcmljIHZhbHVlIHRvIGJlIGZvcm1hdHRlZCAoc3VjaCBhcyBgRGVjaW1hbGAgb3IgYEN1cnJlbmN5YC4pXG4gKiBAcmV0dXJucyBUaGUgbG9jYWxpemVkIGZvcm1hdCBzdHJpbmcuXG4gKiBAc2VlIHtAbGluayBOdW1iZXJGb3JtYXRTdHlsZX1cbiAqIEBzZWUgW0NMRFIgd2Vic2l0ZV0oaHR0cDovL2NsZHIudW5pY29kZS5vcmcvdHJhbnNsYXRpb24vbnVtYmVyLXBhdHRlcm5zKVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIExldCBgSW50bC5OdW1iZXJGb3JtYXRgIGRldGVybWluZSB0aGUgbnVtYmVyIGZvcm1hdCBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVOdW1iZXJGb3JtYXQobG9jYWxlOiBzdHJpbmcsIHR5cGU6IE51bWJlckZvcm1hdFN0eWxlKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguTnVtYmVyRm9ybWF0c11bdHlwZV07XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBzeW1ib2wgdXNlZCB0byByZXByZXNlbnQgdGhlIGN1cnJlbmN5IGZvciB0aGUgbWFpbiBjb3VudHJ5XG4gKiBjb3JyZXNwb25kaW5nIHRvIGEgZ2l2ZW4gbG9jYWxlLiBGb3IgZXhhbXBsZSwgJyQnIGZvciBgZW4tVVNgLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGxvY2FsaXplZCBzeW1ib2wgY2hhcmFjdGVyLFxuICogb3IgYG51bGxgIGlmIHRoZSBtYWluIGNvdW50cnkgY2Fubm90IGJlIGRldGVybWluZWQuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIFVzZSB0aGUgYEludGxgIEFQSSB0byBmb3JtYXQgYSBjdXJyZW5jeSB3aXRoIGZyb20gY3VycmVuY3kgY29kZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlQ3VycmVuY3lTeW1ib2wobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguQ3VycmVuY3lTeW1ib2xdIHx8IG51bGw7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW5jeSBmb3IgdGhlIG1haW4gY291bnRyeSBjb3JyZXNwb25kaW5nXG4gKiB0byBhIGdpdmVuIGxvY2FsZS4gRm9yIGV4YW1wbGUsICdVUyBEb2xsYXInIGZvciBgZW4tVVNgLlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgY3VycmVuY3kgbmFtZSxcbiAqIG9yIGBudWxsYCBpZiB0aGUgbWFpbiBjb3VudHJ5IGNhbm5vdCBiZSBkZXRlcm1pbmVkLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGBJbnRsYCBBUEkgdG8gZm9ybWF0IGEgY3VycmVuY3kgd2l0aCBmcm9tIGN1cnJlbmN5IGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUN1cnJlbmN5TmFtZShsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5DdXJyZW5jeU5hbWVdIHx8IG51bGw7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBkZWZhdWx0IGN1cnJlbmN5IGNvZGUgZm9yIHRoZSBnaXZlbiBsb2NhbGUuXG4gKlxuICogVGhlIGRlZmF1bHQgaXMgZGVmaW5lZCBhcyB0aGUgZmlyc3QgY3VycmVuY3kgd2hpY2ggaXMgc3RpbGwgaW4gdXNlLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgVGhlIGNvZGUgb2YgdGhlIGxvY2FsZSB3aG9zZSBjdXJyZW5jeSBjb2RlIHdlIHdhbnQuXG4gKiBAcmV0dXJucyBUaGUgY29kZSBvZiB0aGUgZGVmYXVsdCBjdXJyZW5jeSBmb3IgdGhlIGdpdmVuIGxvY2FsZS5cbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgV2UgcmVjb21tZW5kIHlvdSBjcmVhdGUgYSBtYXAgb2YgbG9jYWxlIHRvIElTTyA0MjE3IGN1cnJlbmN5IGNvZGVzLlxuICogVGltZSByZWxhdGl2ZSBjdXJyZW5jeSBkYXRhIGlzIHByb3ZpZGVkIGJ5IHRoZSBDTERSIHByb2plY3QuIFNlZSBodHRwczovL3d3dy51bmljb2RlLm9yZy9jbGRyL2NoYXJ0cy80NC9zdXBwbGVtZW50YWwvZGV0YWlsZWRfdGVycml0b3J5X2N1cnJlbmN5X2luZm9ybWF0aW9uLmh0bWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUN1cnJlbmN5Q29kZShsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gybVnZXRMb2NhbGVDdXJyZW5jeUNvZGUobG9jYWxlKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbmN5IHZhbHVlcyBmb3IgYSBnaXZlbiBsb2NhbGUuXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBjdXJyZW5jeSB2YWx1ZXMuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKi9cbmZ1bmN0aW9uIGdldExvY2FsZUN1cnJlbmNpZXMobG9jYWxlOiBzdHJpbmcpOiB7W2NvZGU6IHN0cmluZ106IEN1cnJlbmNpZXNTeW1ib2xzfSB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkN1cnJlbmNpZXNdO1xufVxuXG4vKipcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5QbHVyYWxSdWxlc2AgaW5zdGVhZFxuICovXG5leHBvcnQgY29uc3QgZ2V0TG9jYWxlUGx1cmFsQ2FzZTogKGxvY2FsZTogc3RyaW5nKSA9PiAodmFsdWU6IG51bWJlcikgPT4gUGx1cmFsID1cbiAgybVnZXRMb2NhbGVQbHVyYWxDYXNlO1xuXG5mdW5jdGlvbiBjaGVja0Z1bGxEYXRhKGRhdGE6IGFueSkge1xuICBpZiAoIWRhdGFbybVMb2NhbGVEYXRhSW5kZXguRXh0cmFEYXRhXSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNaXNzaW5nIGV4dHJhIGxvY2FsZSBkYXRhIGZvciB0aGUgbG9jYWxlIFwiJHtcbiAgICAgICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5Mb2NhbGVJZF1cbiAgICAgIH1cIi4gVXNlIFwicmVnaXN0ZXJMb2NhbGVEYXRhXCIgdG8gbG9hZCBuZXcgZGF0YS4gU2VlIHRoZSBcIkkxOG4gZ3VpZGVcIiBvbiBhbmd1bGFyLmlvIHRvIGtub3cgbW9yZS5gLFxuICAgICk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgbG9jYWxlLXNwZWNpZmljIHJ1bGVzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIGRheSBwZXJpb2QgdG8gdXNlXG4gKiB3aGVuIG1vcmUgdGhhbiBvbmUgcGVyaW9kIGlzIGRlZmluZWQgZm9yIGEgbG9jYWxlLlxuICpcbiAqIFRoZXJlIGlzIGEgcnVsZSBmb3IgZWFjaCBkZWZpbmVkIGRheSBwZXJpb2QuIFRoZVxuICogZmlyc3QgcnVsZSBpcyBhcHBsaWVkIHRvIHRoZSBmaXJzdCBkYXkgcGVyaW9kIGFuZCBzbyBvbi5cbiAqIEZhbGwgYmFjayB0byBBTS9QTSB3aGVuIG5vIHJ1bGVzIGFyZSBhdmFpbGFibGUuXG4gKlxuICogQSBydWxlIGNhbiBzcGVjaWZ5IGEgcGVyaW9kIGFzIHRpbWUgcmFuZ2UsIG9yIGFzIGEgc2luZ2xlIHRpbWUgdmFsdWUuXG4gKlxuICogVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4geW91IGhhdmUgbG9hZGVkIHRoZSBmdWxsIGxvY2FsZSBkYXRhLlxuICogU2VlIHRoZSBbXCJJMThuIGd1aWRlXCJdKGd1aWRlL2kxOG4vZm9ybWF0LWRhdGEtbG9jYWxlKS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBydWxlcyBmb3IgdGhlIGxvY2FsZSwgYSBzaW5nbGUgdGltZSB2YWx1ZSBvciBhcnJheSBvZiAqZnJvbS10aW1lLCB0by10aW1lKixcbiAqIG9yIG51bGwgaWYgbm8gcGVyaW9kcyBhcmUgYXZhaWxhYmxlLlxuICpcbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZUV4dHJhRGF5UGVyaW9kc31cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBMZXQgYEludGwuRGF0ZVRpbWVGb3JtYXRgIGRldGVybWluZSB0aGUgZGF5IHBlcmlvZCBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRXh0cmFEYXlQZXJpb2RSdWxlcyhsb2NhbGU6IHN0cmluZyk6IChUaW1lIHwgW1RpbWUsIFRpbWVdKVtdIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgY2hlY2tGdWxsRGF0YShkYXRhKTtcbiAgY29uc3QgcnVsZXMgPSBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkV4dHJhRGF0YV1bybVFeHRyYUxvY2FsZURhdGFJbmRleC5FeHRyYURheVBlcmlvZHNSdWxlc10gfHwgW107XG4gIHJldHVybiBydWxlcy5tYXAoKHJ1bGU6IHN0cmluZyB8IFtzdHJpbmcsIHN0cmluZ10pID0+IHtcbiAgICBpZiAodHlwZW9mIHJ1bGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZXh0cmFjdFRpbWUocnVsZSk7XG4gICAgfVxuICAgIHJldHVybiBbZXh0cmFjdFRpbWUocnVsZVswXSksIGV4dHJhY3RUaW1lKHJ1bGVbMV0pXTtcbiAgfSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGxvY2FsZS1zcGVjaWZpYyBkYXkgcGVyaW9kcywgd2hpY2ggaW5kaWNhdGUgcm91Z2hseSBob3cgYSBkYXkgaXMgYnJva2VuIHVwXG4gKiBpbiBkaWZmZXJlbnQgbGFuZ3VhZ2VzLlxuICogRm9yIGV4YW1wbGUsIGZvciBgZW4tVVNgLCBwZXJpb2RzIGFyZSBtb3JuaW5nLCBub29uLCBhZnRlcm5vb24sIGV2ZW5pbmcsIGFuZCBtaWRuaWdodC5cbiAqXG4gKiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgb25seSBhdmFpbGFibGUgd2hlbiB5b3UgaGF2ZSBsb2FkZWQgdGhlIGZ1bGwgbG9jYWxlIGRhdGEuXG4gKiBTZWUgdGhlIFtcIkkxOG4gZ3VpZGVcIl0oZ3VpZGUvaTE4bi9mb3JtYXQtZGF0YS1sb2NhbGUpLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIGZvcm1TdHlsZSBUaGUgcmVxdWlyZWQgZ3JhbW1hdGljYWwgZm9ybS5cbiAqIEBwYXJhbSB3aWR0aCBUaGUgcmVxdWlyZWQgY2hhcmFjdGVyIHdpZHRoLlxuICogQHJldHVybnMgVGhlIHRyYW5zbGF0ZWQgZGF5LXBlcmlvZCBzdHJpbmdzLlxuICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlRXh0cmFEYXlQZXJpb2RSdWxlc31cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBUbyBleHRyYWN0IGEgZGF5IHBlcmlvZCB1c2UgYEludGwuRGF0ZVRpbWVGb3JtYXRgIHdpdGggdGhlIGBkYXlQZXJpb2RgIG9wdGlvbiBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRXh0cmFEYXlQZXJpb2RzKFxuICBsb2NhbGU6IHN0cmluZyxcbiAgZm9ybVN0eWxlOiBGb3JtU3R5bGUsXG4gIHdpZHRoOiBUcmFuc2xhdGlvbldpZHRoLFxuKTogc3RyaW5nW10ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjaGVja0Z1bGxEYXRhKGRhdGEpO1xuICBjb25zdCBkYXlQZXJpb2RzRGF0YSA9IDxzdHJpbmdbXVtdW10+W1xuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRXh0cmFEYXRhXVvJtUV4dHJhTG9jYWxlRGF0YUluZGV4LkV4dHJhRGF5UGVyaW9kRm9ybWF0c10sXG4gICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5FeHRyYURhdGFdW8m1RXh0cmFMb2NhbGVEYXRhSW5kZXguRXh0cmFEYXlQZXJpb2RTdGFuZGFsb25lXSxcbiAgXTtcbiAgY29uc3QgZGF5UGVyaW9kcyA9IGdldExhc3REZWZpbmVkVmFsdWUoZGF5UGVyaW9kc0RhdGEsIGZvcm1TdHlsZSkgfHwgW107XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKGRheVBlcmlvZHMsIHdpZHRoKSB8fCBbXTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIHdyaXRpbmcgZGlyZWN0aW9uIG9mIGEgc3BlY2lmaWVkIGxvY2FsZVxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcHVibGljQXBpXG4gKiBAcmV0dXJucyAncnRsJyBvciAnbHRyJ1xuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogRm9yIGRhdGVzIGFuZCBudW1iZXJzLCBsZXQgYEludGwuRGF0ZVRpbWVGb3JtYXQoKWAgYW5kIGBJbnRsLk51bWJlckZvcm1hdCgpYCBkZXRlcm1pbmUgdGhlIHdyaXRpbmcgZGlyZWN0aW9uLlxuICogVGhlIGBJbnRsYCBhbHRlcm5hdGl2ZSBbYGdldFRleHRJbmZvYF0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSmF2YVNjcmlwdC9SZWZlcmVuY2UvR2xvYmFsX09iamVjdHMvSW50bC9Mb2NhbGUvZ2V0VGV4dEluZm8pLlxuICogaGFzIG9ubHkgcGFydGlhbCBzdXBwb3J0IChDaHJvbWl1bSBNOTkgJiBTYWZhcmkgMTcpLlxuICogM3JkIHBhcnR5IGFsdGVybmF0aXZlcyBsaWtlIFtgcnRsLWRldGVjdGBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3J0bC1kZXRlY3QpIGNhbiB3b3JrIGFyb3VuZCB0aGlzIGlzc3VlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRGlyZWN0aW9uKGxvY2FsZTogc3RyaW5nKTogJ2x0cicgfCAncnRsJyB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkRpcmVjdGlvbmFsaXR5XTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZpcnN0IHZhbHVlIHRoYXQgaXMgZGVmaW5lZCBpbiBhbiBhcnJheSwgZ29pbmcgYmFja3dhcmRzIGZyb20gYW4gaW5kZXggcG9zaXRpb24uXG4gKlxuICogVG8gYXZvaWQgcmVwZWF0aW5nIHRoZSBzYW1lIGRhdGEgKGFzIHdoZW4gdGhlIFwiZm9ybWF0XCIgYW5kIFwic3RhbmRhbG9uZVwiIGZvcm1zIGFyZSB0aGUgc2FtZSlcbiAqIGFkZCB0aGUgZmlyc3QgdmFsdWUgdG8gdGhlIGxvY2FsZSBkYXRhIGFycmF5cywgYW5kIGFkZCBvdGhlciB2YWx1ZXMgb25seSBpZiB0aGV5IGFyZSBkaWZmZXJlbnQuXG4gKlxuICogQHBhcmFtIGRhdGEgVGhlIGRhdGEgYXJyYXkgdG8gcmV0cmlldmUgZnJvbS5cbiAqIEBwYXJhbSBpbmRleCBBIDAtYmFzZWQgaW5kZXggaW50byB0aGUgYXJyYXkgdG8gc3RhcnQgZnJvbS5cbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBpbW1lZGlhdGVseSBiZWZvcmUgdGhlIGdpdmVuIGluZGV4IHBvc2l0aW9uLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqL1xuZnVuY3Rpb24gZ2V0TGFzdERlZmluZWRWYWx1ZTxUPihkYXRhOiBUW10sIGluZGV4OiBudW1iZXIpOiBUIHtcbiAgZm9yIChsZXQgaSA9IGluZGV4OyBpID4gLTE7IGktLSkge1xuICAgIGlmICh0eXBlb2YgZGF0YVtpXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybiBkYXRhW2ldO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsZSBkYXRhIEFQSTogbG9jYWxlIGRhdGEgdW5kZWZpbmVkJyk7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIHRpbWUgdmFsdWUgd2l0aCBob3VycyBhbmQgbWludXRlcy5cbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgTG9jYWxlIGRhdGUgZ2V0dGVycyBhcmUgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgdHlwZSBUaW1lID0ge1xuICBob3VyczogbnVtYmVyO1xuICBtaW51dGVzOiBudW1iZXI7XG59O1xuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBob3VycyBhbmQgbWludXRlcyBmcm9tIGEgc3RyaW5nIGxpa2UgXCIxNTo0NVwiXG4gKi9cbmZ1bmN0aW9uIGV4dHJhY3RUaW1lKHRpbWU6IHN0cmluZyk6IFRpbWUge1xuICBjb25zdCBbaCwgbV0gPSB0aW1lLnNwbGl0KCc6Jyk7XG4gIHJldHVybiB7aG91cnM6ICtoLCBtaW51dGVzOiArbX07XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjdXJyZW5jeSBzeW1ib2wgZm9yIGEgZ2l2ZW4gY3VycmVuY3kgY29kZS5cbiAqXG4gKiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBkZWZhdWx0IGBlbi1VU2AgbG9jYWxlLCB0aGUgY29kZSBgVVNEYCBjYW5cbiAqIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSBuYXJyb3cgc3ltYm9sIGAkYCBvciB0aGUgd2lkZSBzeW1ib2wgYFVTJGAuXG4gKlxuICogQHBhcmFtIGNvZGUgVGhlIGN1cnJlbmN5IGNvZGUuXG4gKiBAcGFyYW0gZm9ybWF0IFRoZSBmb3JtYXQsIGB3aWRlYCBvciBgbmFycm93YC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICpcbiAqIEByZXR1cm5zIFRoZSBzeW1ib2wsIG9yIHRoZSBjdXJyZW5jeSBjb2RlIGlmIG5vIHN5bWJvbCBpcyBhdmFpbGFibGUuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogWW91IGNhbiB1c2UgYEludGwuTnVtYmVyRm9ybWF0KCkuZm9ybWF0VG9QYXJ0cygpYCB0byBleHRyYWN0IHRoZSBjdXJyZW5jeSBzeW1ib2wuXG4gKiBGb3IgZXhhbXBsZTogYEludGwuTnVtYmVyRm9ybWF0KCdlbicsIHtzdHlsZTonY3VycmVuY3knLCBjdXJyZW5jeTogJ1VTRCd9KS5mb3JtYXRUb1BhcnRzKCkuZmluZChwYXJ0ID0+IHBhcnQudHlwZSA9PT0gJ2N1cnJlbmN5JykudmFsdWVgXG4gKiByZXR1cm5zIGAkYCBmb3IgVVNEIGN1cnJlbmN5IGNvZGUgaW4gdGhlIGBlbmAgbG9jYWxlLlxuICogTm90ZTogYFVTJGAgaXMgYSBjdXJyZW5jeSBzeW1ib2wgZm9yIHRoZSBgZW4tY2FgIGxvY2FsZSBidXQgbm90IHRoZSBgZW4tdXNgIGxvY2FsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbmN5U3ltYm9sKGNvZGU6IHN0cmluZywgZm9ybWF0OiAnd2lkZScgfCAnbmFycm93JywgbG9jYWxlID0gJ2VuJyk6IHN0cmluZyB7XG4gIGNvbnN0IGN1cnJlbmN5ID0gZ2V0TG9jYWxlQ3VycmVuY2llcyhsb2NhbGUpW2NvZGVdIHx8IENVUlJFTkNJRVNfRU5bY29kZV0gfHwgW107XG4gIGNvbnN0IHN5bWJvbE5hcnJvdyA9IGN1cnJlbmN5W8m1Q3VycmVuY3lJbmRleC5TeW1ib2xOYXJyb3ddO1xuXG4gIGlmIChmb3JtYXQgPT09ICduYXJyb3cnICYmIHR5cGVvZiBzeW1ib2xOYXJyb3cgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIHN5bWJvbE5hcnJvdztcbiAgfVxuXG4gIHJldHVybiBjdXJyZW5jeVvJtUN1cnJlbmN5SW5kZXguU3ltYm9sXSB8fCBjb2RlO1xufVxuXG4vLyBNb3N0IGN1cnJlbmNpZXMgaGF2ZSBjZW50cywgdGhhdCdzIHdoeSB0aGUgZGVmYXVsdCBpcyAyXG5jb25zdCBERUZBVUxUX05CX09GX0NVUlJFTkNZX0RJR0lUUyA9IDI7XG5cbi8qKlxuICogUmVwb3J0cyB0aGUgbnVtYmVyIG9mIGRlY2ltYWwgZGlnaXRzIGZvciBhIGdpdmVuIGN1cnJlbmN5LlxuICogVGhlIHZhbHVlIGRlcGVuZHMgdXBvbiB0aGUgcHJlc2VuY2Ugb2YgY2VudHMgaW4gdGhhdCBwYXJ0aWN1bGFyIGN1cnJlbmN5LlxuICpcbiAqIEBwYXJhbSBjb2RlIFRoZSBjdXJyZW5jeSBjb2RlLlxuICogQHJldHVybnMgVGhlIG51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cywgdHlwaWNhbGx5IDAgb3IgMi5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBUaGlzIGZ1bmN0aW9uIHNob3VsZCBub3QgYmUgdXNlZCBhbnltb3JlLiBMZXQgYEludGwuTnVtYmVyRm9ybWF0YCBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBkaWdpdHMgdG8gZGlzcGxheSBmb3IgdGhlIGN1cnJlbmN5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROdW1iZXJPZkN1cnJlbmN5RGlnaXRzKGNvZGU6IHN0cmluZyk6IG51bWJlciB7XG4gIGxldCBkaWdpdHM7XG4gIGNvbnN0IGN1cnJlbmN5ID0gQ1VSUkVOQ0lFU19FTltjb2RlXTtcbiAgaWYgKGN1cnJlbmN5KSB7XG4gICAgZGlnaXRzID0gY3VycmVuY3lbybVDdXJyZW5jeUluZGV4Lk5iT2ZEaWdpdHNdO1xuICB9XG4gIHJldHVybiB0eXBlb2YgZGlnaXRzID09PSAnbnVtYmVyJyA/IGRpZ2l0cyA6IERFRkFVTFRfTkJfT0ZfQ1VSUkVOQ1lfRElHSVRTO1xufVxuIl19
722
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxlX2RhdGFfYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pMThuL2xvY2FsZV9kYXRhX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBR0wsZUFBZSxFQUNmLHNCQUFzQixFQUN0QixvQkFBb0IsRUFDcEIsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxhQUFhLEVBQW9CLE1BQU0sY0FBYyxDQUFDO0FBRTlEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksaUJBS1g7QUFMRCxXQUFZLGlCQUFpQjtJQUMzQiwrREFBTyxDQUFBO0lBQ1AsK0RBQU8sQ0FBQTtJQUNQLGlFQUFRLENBQUE7SUFDUixxRUFBVSxDQUFBO0FBQ1osQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFOLElBQVksTUFPWDtBQVBELFdBQVksTUFBTTtJQUNoQixtQ0FBUSxDQUFBO0lBQ1IsaUNBQU8sQ0FBQTtJQUNQLGlDQUFPLENBQUE7SUFDUCxpQ0FBTyxDQUFBO0lBQ1AsbUNBQVEsQ0FBQTtJQUNSLHFDQUFTLENBQUE7QUFDWCxDQUFDLEVBUFcsTUFBTSxLQUFOLE1BQU0sUUFPakI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQiw2Q0FBTSxDQUFBO0lBQ04scURBQVUsQ0FBQTtBQUNaLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQjtBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxDQUFOLElBQVksZ0JBU1g7QUFURCxXQUFZLGdCQUFnQjtJQUMxQixnREFBZ0Q7SUFDaEQsMkRBQU0sQ0FBQTtJQUNOLG1EQUFtRDtJQUNuRCxxRUFBVyxDQUFB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QUMsQ0FBQyxDQUFDLDZCQUE2QixDQUFDO0FBQzdFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIMm1Q3VycmVuY3lJbmRleCxcbiAgybVFeHRyYUxvY2FsZURhdGFJbmRleCxcbiAgybVmaW5kTG9jYWxlRGF0YSxcbiAgybVnZXRMb2NhbGVDdXJyZW5jeUNvZGUsXG4gIMm1Z2V0TG9jYWxlUGx1cmFsQ2FzZSxcbiAgybVMb2NhbGVEYXRhSW5kZXgsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0NVUlJFTkNJRVNfRU4sIEN1cnJlbmNpZXNTeW1ib2xzfSBmcm9tICcuL2N1cnJlbmNpZXMnO1xuXG4vKipcbiAqIEZvcm1hdCBzdHlsZXMgdGhhdCBjYW4gYmUgdXNlZCB0byByZXByZXNlbnQgbnVtYmVycy5cbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZU51bWJlckZvcm1hdH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgYGdldExvY2FsZU51bWJlckZvcm1hdGAgaXMgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZW51bSBOdW1iZXJGb3JtYXRTdHlsZSB7XG4gIERlY2ltYWwsXG4gIFBlcmNlbnQsXG4gIEN1cnJlbmN5LFxuICBTY2llbnRpZmljLFxufVxuXG4vKipcbiAqIFBsdXJhbGl0eSBjYXNlcyB1c2VkIGZvciB0cmFuc2xhdGluZyBwbHVyYWxzIHRvIGRpZmZlcmVudCBsYW5ndWFnZXMuXG4gKlxuICogQHNlZSB7QGxpbmsgTmdQbHVyYWx9XG4gKiBAc2VlIHtAbGluayBOZ1BsdXJhbENhc2V9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIGBnZXRMb2NhbGVQbHVyYWxDYXNlYCBpcyBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCBlbnVtIFBsdXJhbCB7XG4gIFplcm8gPSAwLFxuICBPbmUgPSAxLFxuICBUd28gPSAyLFxuICBGZXcgPSAzLFxuICBNYW55ID0gNCxcbiAgT3RoZXIgPSA1LFxufVxuXG4vKipcbiAqIENvbnRleHQtZGVwZW5kYW50IHRyYW5zbGF0aW9uIGZvcm1zIGZvciBzdHJpbmdzLlxuICogVHlwaWNhbGx5IHRoZSBzdGFuZGFsb25lIHZlcnNpb24gaXMgZm9yIHRoZSBub21pbmF0aXZlIGZvcm0gb2YgdGhlIHdvcmQsXG4gKiBhbmQgdGhlIGZvcm1hdCB2ZXJzaW9uIGlzIHVzZWQgZm9yIHRoZSBnZW5pdGl2ZSBjYXNlLlxuICogQHNlZSBbQ0xEUiB3ZWJzaXRlXShodHRwOi8vY2xkci51bmljb2RlLm9yZy90cmFuc2xhdGlvbi9kYXRlLXRpbWUtMS9kYXRlLXRpbWUjVE9DLVN0YW5kYWxvbmUtdnMuLUZvcm1hdC1TdHlsZXMpXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIGxvY2FsZSBkYXRhIGdldHRlcnMgYXJlIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGVudW0gRm9ybVN0eWxlIHtcbiAgRm9ybWF0LFxuICBTdGFuZGFsb25lLFxufVxuXG4vKipcbiAqIFN0cmluZyB3aWR0aHMgYXZhaWxhYmxlIGZvciB0cmFuc2xhdGlvbnMuXG4gKiBUaGUgc3BlY2lmaWMgY2hhcmFjdGVyIHdpZHRocyBhcmUgbG9jYWxlLXNwZWNpZmljLlxuICogRXhhbXBsZXMgYXJlIGdpdmVuIGZvciB0aGUgd29yZCBcIlN1bmRheVwiIGluIEVuZ2xpc2guXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIGxvY2FsZSBkYXRhIGdldHRlcnMgYXJlIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGVudW0gVHJhbnNsYXRpb25XaWR0aCB7XG4gIC8qKiAxIGNoYXJhY3RlciBmb3IgYGVuLVVTYC4gRm9yIGV4YW1wbGU6ICdTJyAqL1xuICBOYXJyb3csXG4gIC8qKiAzIGNoYXJhY3RlcnMgZm9yIGBlbi1VU2AuIEZvciBleGFtcGxlOiAnU3VuJyAqL1xuICBBYmJyZXZpYXRlZCxcbiAgLyoqIEZ1bGwgbGVuZ3RoIGZvciBgZW4tVVNgLiBGb3IgZXhhbXBsZTogXCJTdW5kYXlcIiAqL1xuICBXaWRlLFxuICAvKiogMiBjaGFyYWN0ZXJzIGZvciBgZW4tVVNgLCBGb3IgZXhhbXBsZTogXCJTdVwiICovXG4gIFNob3J0LFxufVxuXG4vKipcbiAqIFN0cmluZyB3aWR0aHMgYXZhaWxhYmxlIGZvciBkYXRlLXRpbWUgZm9ybWF0cy5cbiAqIFRoZSBzcGVjaWZpYyBjaGFyYWN0ZXIgd2lkdGhzIGFyZSBsb2NhbGUtc3BlY2lmaWMuXG4gKiBFeGFtcGxlcyBhcmUgZ2l2ZW4gZm9yIGBlbi1VU2AuXG4gKlxuICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlRGF0ZUZvcm1hdH1cbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZVRpbWVGb3JtYXR9XG4gKiBAc2VlIHtAbGluayBnZXRMb2NhbGVEYXRlVGltZUZvcm1hdH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBEYXRlIGxvY2FsZSBkYXRhIGdldHRlcnMgYXJlIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IGVudW0gRm9ybWF0V2lkdGgge1xuICAvKipcbiAgICogRm9yIGBlbi1VU2AsIGAnTS9kL3l5LCBoOm1tIGEnYFxuICAgKiAoRXhhbXBsZTogYDYvMTUvMTUsIDk6MDMgQU1gKVxuICAgKi9cbiAgU2hvcnQsXG4gIC8qKlxuICAgKiBGb3IgYGVuLVVTYCwgYCdNTU0gZCwgeSwgaDptbTpzcyBhJ2BcbiAgICogKEV4YW1wbGU6IGBKdW4gMTUsIDIwMTUsIDk6MDM6MDEgQU1gKVxuICAgKi9cbiAgTWVkaXVtLFxuICAvKipcbiAgICogRm9yIGBlbi1VU2AsIGAnTU1NTSBkLCB5LCBoOm1tOnNzIGEgeidgXG4gICAqIChFeGFtcGxlOiBgSnVuZSAxNSwgMjAxNSBhdCA5OjAzOjAxIEFNIEdNVCsxYClcbiAgICovXG4gIExvbmcsXG4gIC8qKlxuICAgKiBGb3IgYGVuLVVTYCwgYCdFRUVFLCBNTU1NIGQsIHksIGg6bW06c3MgYSB6enp6J2BcbiAgICogKEV4YW1wbGU6IGBNb25kYXksIEp1bmUgMTUsIDIwMTUgYXQgOTowMzowMSBBTSBHTVQrMDE6MDBgKVxuICAgKi9cbiAgRnVsbCxcbn1cblxuLy8gVGhpcyBuZWVkcyB0byBiZSBhbiBvYmplY3QgbGl0ZXJhbCwgcmF0aGVyIHRoYW4gYW4gZW51bSwgYmVjYXVzZSBUeXBlU2NyaXB0IDUuNCtcbi8vIGRvZXNuJ3QgYWxsb3cgbnVtZXJpYyBrZXlzIGFuZCB3ZSBoYXZlIGBJbmZpbml0eWAgYW5kIGBOYU5gLlxuLyoqXG4gKiBTeW1ib2xzIHRoYXQgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgaW4gbnVtYmVyIHBhdHRlcm5zLlxuICogRXhhbXBsZXMgYXJlIGJhc2VkIG9uIGBlbi1VU2AgdmFsdWVzLlxuICpcbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZU51bWJlclN5bWJvbH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgYGdldExvY2FsZU51bWJlclN5bWJvbGAgaXMgZGVwcmVjYXRlZFxuICpcbiAqIEBvYmplY3QtbGl0ZXJhbC1hcy1lbnVtXG4gKi9cbmV4cG9ydCBjb25zdCBOdW1iZXJTeW1ib2wgPSB7XG4gIC8qKlxuICAgKiBEZWNpbWFsIHNlcGFyYXRvci5cbiAgICogRm9yIGBlbi1VU2AsIHRoZSBkb3QgY2hhcmFjdGVyLlxuICAgKiBFeGFtcGxlOiAyLDM0NWAuYDY3XG4gICAqL1xuICBEZWNpbWFsOiAwLFxuICAvKipcbiAgICogR3JvdXBpbmcgc2VwYXJhdG9yLCB0eXBpY2FsbHkgZm9yIHRob3VzYW5kcy5cbiAgICogRm9yIGBlbi1VU2AsIHRoZSBjb21tYSBjaGFyYWN0ZXIuXG4gICAqIEV4YW1wbGU6IDJgLGAzNDUuNjdcbiAgICovXG4gIEdyb3VwOiAxLFxuICAvKipcbiAgICogTGlzdC1pdGVtIHNlcGFyYXRvci5cbiAgICogRXhhbXBsZTogXCJvbmUsIHR3bywgYW5kIHRocmVlXCJcbiAgICovXG4gIExpc3Q6IDIsXG4gIC8qKlxuICAgKiBTaWduIGZvciBwZXJjZW50YWdlIChvdXQgb2YgMTAwKS5cbiAgICogRXhhbXBsZTogMjMuNCVcbiAgICovXG4gIFBlcmNlbnRTaWduOiAzLFxuICAvKipcbiAgICogU2lnbiBmb3IgcG9zaXRpdmUgbnVtYmVycy5cbiAgICogRXhhbXBsZTogKzIzXG4gICAqL1xuICBQbHVzU2lnbjogNCxcbiAgLyoqXG4gICAqIFNpZ24gZm9yIG5lZ2F0aXZlIG51bWJlcnMuXG4gICAqIEV4YW1wbGU6IC0yM1xuICAgKi9cbiAgTWludXNTaWduOiA1LFxuICAvKipcbiAgICogQ29tcHV0ZXIgbm90YXRpb24gZm9yIGV4cG9uZW50aWFsIHZhbHVlIChuIHRpbWVzIGEgcG93ZXIgb2YgMTApLlxuICAgKiBFeGFtcGxlOiAxLjJFM1xuICAgKi9cbiAgRXhwb25lbnRpYWw6IDYsXG4gIC8qKlxuICAgKiBIdW1hbi1yZWFkYWJsZSBmb3JtYXQgb2YgZXhwb25lbnRpYWwuXG4gICAqIEV4YW1wbGU6IDEuMngxMDNcbiAgICovXG4gIFN1cGVyc2NyaXB0aW5nRXhwb25lbnQ6IDcsXG4gIC8qKlxuICAgKiBTaWduIGZvciBwZXJtaWxsZSAob3V0IG9mIDEwMDApLlxuICAgKiBFeGFtcGxlOiAyMy404oCwXG4gICAqL1xuICBQZXJNaWxsZTogOCxcbiAgLyoqXG4gICAqIEluZmluaXR5LCBjYW4gYmUgdXNlZCB3aXRoIHBsdXMgYW5kIG1pbnVzLlxuICAgKiBFeGFtcGxlOiDiiJ4sICviiJ4sIC3iiJ5cbiAgICovXG4gIEluZmluaXR5OiA5LFxuICAvKipcbiAgICogTm90IGEgbnVtYmVyLlxuICAgKiBFeGFtcGxlOiBOYU5cbiAgICovXG4gIE5hTjogMTAsXG4gIC8qKlxuICAgKiBTeW1ib2wgdXNlZCBiZXR3ZWVuIHRpbWUgdW5pdHMuXG4gICAqIEV4YW1wbGU6IDEwOjUyXG4gICAqL1xuICBUaW1lU2VwYXJhdG9yOiAxMSxcbiAgLyoqXG4gICAqIERlY2ltYWwgc2VwYXJhdG9yIGZvciBjdXJyZW5jeSB2YWx1ZXMgKGZhbGxiYWNrIHRvIGBEZWNpbWFsYCkuXG4gICAqIEV4YW1wbGU6ICQyLDM0NS42N1xuICAgKi9cbiAgQ3VycmVuY3lEZWNpbWFsOiAxMixcbiAgLyoqXG4gICAqIEdyb3VwIHNlcGFyYXRvciBmb3IgY3VycmVuY3kgdmFsdWVzIChmYWxsYmFjayB0byBgR3JvdXBgKS5cbiAgICogRXhhbXBsZTogJDIsMzQ1LjY3XG4gICAqL1xuICBDdXJyZW5jeUdyb3VwOiAxMyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIE51bWJlclN5bWJvbCA9ICh0eXBlb2YgTnVtYmVyU3ltYm9sKVtrZXlvZiB0eXBlb2YgTnVtYmVyU3ltYm9sXTtcblxuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIGVhY2ggZGF5IG9mIHRoZSB3ZWVrLCBiYXNlZCBvbiB0aGUgYGVuLVVTYCBsb2NhbGVcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgV2VlayBsb2NhbGUgZ2V0dGVycyBhcmUgZGVwcmVjYXRlZFxuICovXG5leHBvcnQgZW51bSBXZWVrRGF5IHtcbiAgU3VuZGF5ID0gMCxcbiAgTW9uZGF5LFxuICBUdWVzZGF5LFxuICBXZWRuZXNkYXksXG4gIFRodXJzZGF5LFxuICBGcmlkYXksXG4gIFNhdHVyZGF5LFxufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbG9jYWxlIElEIGZyb20gdGhlIGN1cnJlbnRseSBsb2FkZWQgbG9jYWxlLlxuICogVGhlIGxvYWRlZCBsb2NhbGUgY291bGQgYmUsIGZvciBleGFtcGxlLCBhIGdsb2JhbCBvbmUgcmF0aGVyIHRoYW4gYSByZWdpb25hbCBvbmUuXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUsIHN1Y2ggYXMgYGZyLUZSYC5cbiAqIEByZXR1cm5zIFRoZSBsb2NhbGUgY29kZS4gRm9yIGV4YW1wbGUsIGBmcmAuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVGhpcyBmdW5jdGlvbiBzZXJ2ZXMgbm8gcHVycG9zZSB3aGVuIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVJZChsb2NhbGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSlbybVMb2NhbGVEYXRhSW5kZXguTG9jYWxlSWRdO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBkYXkgcGVyaW9kIHN0cmluZ3MgZm9yIHRoZSBnaXZlbiBsb2NhbGUuXG4gKlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcGFyYW0gZm9ybVN0eWxlIFRoZSByZXF1aXJlZCBncmFtbWF0aWNhbCBmb3JtLlxuICogQHBhcmFtIHdpZHRoIFRoZSByZXF1aXJlZCBjaGFyYWN0ZXIgd2lkdGguXG4gKiBAcmV0dXJucyBBbiBhcnJheSBvZiBsb2NhbGl6ZWQgcGVyaW9kIHN0cmluZ3MuIEZvciBleGFtcGxlLCBgW0FNLCBQTV1gIGZvciBgZW4tVVNgLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5EYXRlVGltZUZvcm1hdGAgZm9yIGRhdGUgZm9ybWF0aW5nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVEYXlQZXJpb2RzKFxuICBsb2NhbGU6IHN0cmluZyxcbiAgZm9ybVN0eWxlOiBGb3JtU3R5bGUsXG4gIHdpZHRoOiBUcmFuc2xhdGlvbldpZHRoLFxuKTogUmVhZG9ubHk8W3N0cmluZywgc3RyaW5nXT4ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjb25zdCBhbVBtRGF0YSA9IDxbc3RyaW5nLCBzdHJpbmddW11bXT5bXG4gICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5EYXlQZXJpb2RzRm9ybWF0XSxcbiAgICBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkRheVBlcmlvZHNTdGFuZGFsb25lXSxcbiAgXTtcbiAgY29uc3QgYW1QbSA9IGdldExhc3REZWZpbmVkVmFsdWUoYW1QbURhdGEsIGZvcm1TdHlsZSk7XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKGFtUG0sIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgZGF5cyBvZiB0aGUgd2VlayBmb3IgdGhlIGdpdmVuIGxvY2FsZSwgdXNpbmcgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSBmb3JtU3R5bGUgVGhlIHJlcXVpcmVkIGdyYW1tYXRpY2FsIGZvcm0uXG4gKiBAcGFyYW0gd2lkdGggVGhlIHJlcXVpcmVkIGNoYXJhY3RlciB3aWR0aC5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxvY2FsaXplZCBuYW1lIHN0cmluZ3MuXG4gKiBGb3IgZXhhbXBsZSxgW1N1bmRheSwgTW9uZGF5LCAuLi4gU2F0dXJkYXldYCBmb3IgYGVuLVVTYC5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBVc2UgYEludGwuRGF0ZVRpbWVGb3JtYXRgIGZvciBkYXRlIGZvcm1hdGluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRGF5TmFtZXMoXG4gIGxvY2FsZTogc3RyaW5nLFxuICBmb3JtU3R5bGU6IEZvcm1TdHlsZSxcbiAgd2lkdGg6IFRyYW5zbGF0aW9uV2lkdGgsXG4pOiBSZWFkb25seUFycmF5PHN0cmluZz4ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjb25zdCBkYXlzRGF0YSA9IDxzdHJpbmdbXVtdW10+W1xuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRGF5c0Zvcm1hdF0sXG4gICAgZGF0YVvJtUxvY2FsZURhdGFJbmRleC5EYXlzU3RhbmRhbG9uZV0sXG4gIF07XG4gIGNvbnN0IGRheXMgPSBnZXRMYXN0RGVmaW5lZFZhbHVlKGRheXNEYXRhLCBmb3JtU3R5bGUpO1xuICByZXR1cm4gZ2V0TGFzdERlZmluZWRWYWx1ZShkYXlzLCB3aWR0aCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIG1vbnRocyBvZiB0aGUgeWVhciBmb3IgdGhlIGdpdmVuIGxvY2FsZSwgdXNpbmcgdGhlIEdyZWdvcmlhbiBjYWxlbmRhci5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSBmb3JtU3R5bGUgVGhlIHJlcXVpcmVkIGdyYW1tYXRpY2FsIGZvcm0uXG4gKiBAcGFyYW0gd2lkdGggVGhlIHJlcXVpcmVkIGNoYXJhY3RlciB3aWR0aC5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxvY2FsaXplZCBuYW1lIHN0cmluZ3MuXG4gKiBGb3IgZXhhbXBsZSwgIGBbSmFudWFyeSwgRmVicnVhcnksIC4uLl1gIGZvciBgZW4tVVNgLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5EYXRlVGltZUZvcm1hdGAgZm9yIGRhdGUgZm9ybWF0aW5nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVNb250aE5hbWVzKFxuICBsb2NhbGU6IHN0cmluZyxcbiAgZm9ybVN0eWxlOiBGb3JtU3R5bGUsXG4gIHdpZHRoOiBUcmFuc2xhdGlvbldpZHRoLFxuKTogUmVhZG9ubHlBcnJheTxzdHJpbmc+IHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgY29uc3QgbW9udGhzRGF0YSA9IDxzdHJpbmdbXVtdW10+W1xuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguTW9udGhzRm9ybWF0XSxcbiAgICBkYXRhW8m1TG9jYWxlRGF0YUluZGV4Lk1vbnRoc1N0YW5kYWxvbmVdLFxuICBdO1xuICBjb25zdCBtb250aHMgPSBnZXRMYXN0RGVmaW5lZFZhbHVlKG1vbnRoc0RhdGEsIGZvcm1TdHlsZSk7XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKG1vbnRocywgd2lkdGgpO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBHcmVnb3JpYW4tY2FsZW5kYXIgZXJhcyBmb3IgdGhlIGdpdmVuIGxvY2FsZS5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIHdpZHRoIFRoZSByZXF1aXJlZCBjaGFyYWN0ZXIgd2lkdGguXG5cbiAqIEByZXR1cm5zIEFuIGFycmF5IG9mIGxvY2FsaXplZCBlcmEgc3RyaW5ncy5cbiAqIEZvciBleGFtcGxlLCBgW0FELCBCQ11gIGZvciBgZW4tVVNgLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5EYXRlVGltZUZvcm1hdGAgZm9yIGRhdGUgZm9ybWF0aW5nIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVFcmFOYW1lcyhcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIHdpZHRoOiBUcmFuc2xhdGlvbldpZHRoLFxuKTogUmVhZG9ubHk8W3N0cmluZywgc3RyaW5nXT4ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICBjb25zdCBlcmFzRGF0YSA9IDxbc3RyaW5nLCBzdHJpbmddW10+ZGF0YVvJtUxvY2FsZURhdGFJbmRleC5FcmFzXTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUoZXJhc0RhdGEsIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2VlayBmb3IgdGhlIGdpdmVuIGxvY2FsZS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEByZXR1cm5zIEEgZGF5IGluZGV4IG51bWJlciwgdXNpbmcgdGhlIDAtYmFzZWQgd2Vlay1kYXkgaW5kZXggZm9yIGBlbi1VU2BcbiAqIChTdW5kYXkgPSAwLCBNb25kYXkgPSAxLCAuLi4pLlxuICogRm9yIGV4YW1wbGUsIGZvciBgZnItRlJgLCByZXR1cm5zIDEgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZmlyc3QgZGF5IGlzIE1vbmRheS5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBJbnRsJ3MgW2BnZXRXZWVrSW5mb2BdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTG9jYWxlL2dldFdlZWtJbmZvKSBoYXMgcGFydGlhbCBzdXBwb3J0IChDaHJvbWl1bSBNOTkgJiBTYWZhcmkgMTcpLlxuICogWW91IG1heSB3YW50IHRvIHJlbHkgb24gdGhlIGZvbGxvd2luZyBhbHRlcm5hdGl2ZXM6XG4gKiAtIExpYnJhcmllcyBsaWtlIFtgTHV4b25gXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy8pIHJlbHkgb24gYEludGxgIGJ1dCBmYWxsYmFjayBvbiB0aGUgSVNPIDg2MDEgZGVmaW5pdGlvbiAobW9uZGF5KSBpZiBgZ2V0V2Vla0luZm9gIGlzIG5vdCBzdXBwb3J0ZWQuXG4gKiAtIE90aGVyIGxpYnJhaXJpZXMgbGlrZSBbYGRhdGUtZm5zYF0oaHR0cHM6Ly9kYXRlLWZucy5vcmcvKSwgW2BkYXkuanNgXShodHRwczovL2RheS5qcy5vcmcvZW4vKSBvciBbYHdlZWtzdGFydGBdKGh0dHBzOi8vd3d3Lm5wbWpzLmNvbS9wYWNrYWdlL3dlZWtzdGFydCkgbGlicmFyeSBwcm92aWRlIHRoZWlyIG93biBsb2NhbGUgYmFzZWQgZGF0YSBmb3IgdGhlIGZpcnN0IGRheSBvZiB0aGUgd2Vlay5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKGxvY2FsZTogc3RyaW5nKTogV2Vla0RheSB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkZpcnN0RGF5T2ZXZWVrXTtcbn1cblxuLyoqXG4gKiBSYW5nZSBvZiB3ZWVrIGRheXMgdGhhdCBhcmUgY29uc2lkZXJlZCB0aGUgd2Vlay1lbmQgZm9yIHRoZSBnaXZlbiBsb2NhbGUuXG4gKlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgcmFuZ2Ugb2YgZGF5IHZhbHVlcywgYFtzdGFydERheSwgZW5kRGF5XWAuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogSW50bCdzIFtgZ2V0V2Vla0luZm9gXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9JbnRsL0xvY2FsZS9nZXRXZWVrSW5mbykgaGFzIHBhcnRpYWwgc3VwcG9ydCAoQ2hyb21pdW0gTTk5ICYgU2FmYXJpIDE3KS5cbiAqIExpYnJhcmllcyBsaWtlIFtgTHV4b25gXShodHRwczovL21vbWVudC5naXRodWIuaW8vbHV4b24vIy8pIHJlbHkgb24gYEludGxgIGJ1dCBmYWxsYmFjayBvbiB0aGUgSVNPIDg2MDEgZGVmaW5pdGlvbiAoU2F0dXJkYXkrU3VuZGF5KSBpZiBgZ2V0V2Vla0luZm9gIGlzIG5vdCBzdXBwb3J0ZWQgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlV2Vla0VuZFJhbmdlKGxvY2FsZTogc3RyaW5nKTogW1dlZWtEYXksIFdlZWtEYXldIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguV2Vla2VuZFJhbmdlXTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBsb2NhbGl6ZWQgZGF0ZS12YWx1ZSBmb3JtYXR0aW5nIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSB3aWR0aCBUaGUgZm9ybWF0IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgbG9jYWxpemVkIGZvcm1hdHRpbmcgc3RyaW5nLlxuICogQHNlZSB7QGxpbmsgRm9ybWF0V2lkdGh9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBmb3IgZGF0ZSBmb3JtYXRpbmcgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZURhdGVGb3JtYXQobG9jYWxlOiBzdHJpbmcsIHdpZHRoOiBGb3JtYXRXaWR0aCk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRGF0ZUZvcm1hdF0sIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBsb2NhbGl6ZWQgdGltZS12YWx1ZSBmb3JtYXR0aW5nIHN0cmluZy5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSB3aWR0aCBUaGUgZm9ybWF0IHR5cGUuXG4gKiBAcmV0dXJucyBUaGUgbG9jYWxpemVkIGZvcm1hdHRpbmcgc3RyaW5nLlxuICogQHNlZSB7QGxpbmsgRm9ybWF0V2lkdGh9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG5cbiAqIEBwdWJsaWNBcGlcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBmb3IgZGF0ZSBmb3JtYXRpbmcgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZVRpbWVGb3JtYXQobG9jYWxlOiBzdHJpbmcsIHdpZHRoOiBGb3JtYXRXaWR0aCk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBnZXRMYXN0RGVmaW5lZFZhbHVlKGRhdGFbybVMb2NhbGVEYXRhSW5kZXguVGltZUZvcm1hdF0sIHdpZHRoKTtcbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBsb2NhbGl6ZWQgZGF0ZS10aW1lIGZvcm1hdHRpbmcgc3RyaW5nLlxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIHdpZHRoIFRoZSBmb3JtYXQgdHlwZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgZm9ybWF0dGluZyBzdHJpbmcuXG4gKiBAc2VlIHtAbGluayBGb3JtYXRXaWR0aH1cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBVc2UgYEludGwuRGF0ZVRpbWVGb3JtYXRgIGZvciBkYXRlIGZvcm1hdGluZyBpbnN0ZWFkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlRGF0ZVRpbWVGb3JtYXQobG9jYWxlOiBzdHJpbmcsIHdpZHRoOiBGb3JtYXRXaWR0aCk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIGNvbnN0IGRhdGVUaW1lRm9ybWF0RGF0YSA9IDxzdHJpbmdbXT5kYXRhW8m1TG9jYWxlRGF0YUluZGV4LkRhdGVUaW1lRm9ybWF0XTtcbiAgcmV0dXJuIGdldExhc3REZWZpbmVkVmFsdWUoZGF0ZVRpbWVGb3JtYXREYXRhLCB3aWR0aCk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGEgbG9jYWxpemVkIG51bWJlciBzeW1ib2wgdGhhdCBjYW4gYmUgdXNlZCB0byByZXBsYWNlIHBsYWNlaG9sZGVycyBpbiBudW1iZXIgZm9ybWF0cy5cbiAqIEBwYXJhbSBsb2NhbGUgVGhlIGxvY2FsZSBjb2RlLlxuICogQHBhcmFtIHN5bWJvbCBUaGUgc3ltYm9sIHRvIGxvY2FsaXplLiBNdXN0IGJlIG9uZSBvZiBgTnVtYmVyU3ltYm9sYC5cbiAqIEByZXR1cm5zIFRoZSBjaGFyYWN0ZXIgZm9yIHRoZSBsb2NhbGl6ZWQgc3ltYm9sLlxuICogQHNlZSB7QGxpbmsgTnVtYmVyU3ltYm9sfVxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFVzZSBgSW50bC5OdW1iZXJGb3JtYXRgIHRvIGZvcm1hdCBudW1iZXJzIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVOdW1iZXJTeW1ib2wobG9jYWxlOiBzdHJpbmcsIHN5bWJvbDogTnVtYmVyU3ltYm9sKTogc3RyaW5nIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgY29uc3QgcmVzID0gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5OdW1iZXJTeW1ib2xzXVtzeW1ib2xdO1xuICBpZiAodHlwZW9mIHJlcyA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICBpZiAoc3ltYm9sID09PSBOdW1iZXJTeW1ib2wuQ3VycmVuY3lEZWNpbWFsKSB7XG4gICAgICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5OdW1iZXJTeW1ib2xzXVtOdW1iZXJTeW1ib2wuRGVjaW1hbF07XG4gICAgfSBlbHNlIGlmIChzeW1ib2wgPT09IE51bWJlclN5bWJvbC5DdXJyZW5jeUdyb3VwKSB7XG4gICAgICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5OdW1iZXJTeW1ib2xzXVtOdW1iZXJTeW1ib2wuR3JvdXBdO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcmVzO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBhIG51bWJlciBmb3JtYXQgZm9yIGEgZ2l2ZW4gbG9jYWxlLlxuICpcbiAqIE51bWJlcnMgYXJlIGZvcm1hdHRlZCB1c2luZyBwYXR0ZXJucywgbGlrZSBgIywjIyMuMDBgLiBGb3IgZXhhbXBsZSwgdGhlIHBhdHRlcm4gYCMsIyMjLjAwYFxuICogd2hlbiB1c2VkIHRvIGZvcm1hdCB0aGUgbnVtYmVyIDEyMzQ1LjY3OCBjb3VsZCByZXN1bHQgaW4gXCIxMiczNDUsNjc4XCIuIFRoYXQgd291bGQgaGFwcGVuIGlmIHRoZVxuICogZ3JvdXBpbmcgc2VwYXJhdG9yIGZvciB5b3VyIGxhbmd1YWdlIGlzIGFuIGFwb3N0cm9waGUsIGFuZCB0aGUgZGVjaW1hbCBzZXBhcmF0b3IgaXMgYSBjb21tYS5cbiAqXG4gKiA8Yj5JbXBvcnRhbnQ6PC9iPiBUaGUgY2hhcmFjdGVycyBgLmAgYCxgIGAwYCBgI2AgKGFuZCBvdGhlcnMgYmVsb3cpIGFyZSBzcGVjaWFsIHBsYWNlaG9sZGVyc1xuICogdGhhdCBzdGFuZCBmb3IgdGhlIGRlY2ltYWwgc2VwYXJhdG9yLCBhbmQgc28gb24sIGFuZCBhcmUgTk9UIHJlYWwgY2hhcmFjdGVycy5cbiAqIFlvdSBtdXN0IE5PVCBcInRyYW5zbGF0ZVwiIHRoZSBwbGFjZWhvbGRlcnMuIEZvciBleGFtcGxlLCBkb24ndCBjaGFuZ2UgYC5gIHRvIGAsYCBldmVuIHRob3VnaCBpblxuICogeW91ciBsYW5ndWFnZSB0aGUgZGVjaW1hbCBwb2ludCBpcyB3cml0dGVuIHdpdGggYSBjb21tYS4gVGhlIHN5bWJvbHMgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IHRoZVxuICogbG9jYWwgZXF1aXZhbGVudHMsIHVzaW5nIHRoZSBhcHByb3ByaWF0ZSBgTnVtYmVyU3ltYm9sYCBmb3IgeW91ciBsYW5ndWFnZS5cbiAqXG4gKiBIZXJlIGFyZSB0aGUgc3BlY2lhbCBjaGFyYWN0ZXJzIHVzZWQgaW4gbnVtYmVyIHBhdHRlcm5zOlxuICpcbiAqIHwgU3ltYm9sIHwgTWVhbmluZyB8XG4gKiB8LS0tLS0tLS18LS0tLS0tLS0tfFxuICogfCAuIHwgUmVwbGFjZWQgYXV0b21hdGljYWxseSBieSB0aGUgY2hhcmFjdGVyIHVzZWQgZm9yIHRoZSBkZWNpbWFsIHBvaW50LiB8XG4gKiB8ICwgfCBSZXBsYWNlZCBieSB0aGUgXCJncm91cGluZ1wiICh0aG91c2FuZHMpIHNlcGFyYXRvci4gfFxuICogfCAwIHwgUmVwbGFjZWQgYnkgYSBkaWdpdCAob3IgemVybyBpZiB0aGVyZSBhcmVuJ3QgZW5vdWdoIGRpZ2l0cykuIHxcbiAqIHwgIyB8IFJlcGxhY2VkIGJ5IGEgZGlnaXQgKG9yIG5vdGhpbmcgaWYgdGhlcmUgYXJlbid0IGVub3VnaCkuIHxcbiAqIHwgwqQgfCBSZXBsYWNlZCBieSBhIGN1cnJlbmN5IHN5bWJvbCwgc3VjaCBhcyAkIG9yIFVTRC4gfFxuICogfCAlIHwgTWFya3MgYSBwZXJjZW50IGZvcm1hdC4gVGhlICUgc3ltYm9sIG1heSBjaGFuZ2UgcG9zaXRpb24sIGJ1dCBtdXN0IGJlIHJldGFpbmVkLiB8XG4gKiB8IEUgfCBNYXJrcyBhIHNjaWVudGlmaWMgZm9ybWF0LiBUaGUgRSBzeW1ib2wgbWF5IGNoYW5nZSBwb3NpdGlvbiwgYnV0IG11c3QgYmUgcmV0YWluZWQuIHxcbiAqIHwgJyB8IFNwZWNpYWwgY2hhcmFjdGVycyB1c2VkIGFzIGxpdGVyYWwgY2hhcmFjdGVycyBhcmUgcXVvdGVkIHdpdGggQVNDSUkgc2luZ2xlIHF1b3Rlcy4gfFxuICpcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHBhcmFtIHR5cGUgVGhlIHR5cGUgb2YgbnVtZXJpYyB2YWx1ZSB0byBiZSBmb3JtYXR0ZWQgKHN1Y2ggYXMgYERlY2ltYWxgIG9yIGBDdXJyZW5jeWAuKVxuICogQHJldHVybnMgVGhlIGxvY2FsaXplZCBmb3JtYXQgc3RyaW5nLlxuICogQHNlZSB7QGxpbmsgTnVtYmVyRm9ybWF0U3R5bGV9XG4gKiBAc2VlIFtDTERSIHdlYnNpdGVdKGh0dHA6Ly9jbGRyLnVuaWNvZGUub3JnL3RyYW5zbGF0aW9uL251bWJlci1wYXR0ZXJucylcbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBMZXQgYEludGwuTnVtYmVyRm9ybWF0YCBkZXRlcm1pbmUgdGhlIG51bWJlciBmb3JtYXQgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlTnVtYmVyRm9ybWF0KGxvY2FsZTogc3RyaW5nLCB0eXBlOiBOdW1iZXJGb3JtYXRTdHlsZSk6IHN0cmluZyB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4Lk51bWJlckZvcm1hdHNdW3R5cGVdO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgc3ltYm9sIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBjdXJyZW5jeSBmb3IgdGhlIG1haW4gY291bnRyeVxuICogY29ycmVzcG9uZGluZyB0byBhIGdpdmVuIGxvY2FsZS4gRm9yIGV4YW1wbGUsICckJyBmb3IgYGVuLVVTYC5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEByZXR1cm5zIFRoZSBsb2NhbGl6ZWQgc3ltYm9sIGNoYXJhY3RlcixcbiAqIG9yIGBudWxsYCBpZiB0aGUgbWFpbiBjb3VudHJ5IGNhbm5vdCBiZSBkZXRlcm1pbmVkLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBVc2UgdGhlIGBJbnRsYCBBUEkgdG8gZm9ybWF0IGEgY3VycmVuY3kgd2l0aCBmcm9tIGN1cnJlbmN5IGNvZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUN1cnJlbmN5U3ltYm9sKGxvY2FsZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIHJldHVybiBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkN1cnJlbmN5U3ltYm9sXSB8fCBudWxsO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbmFtZSBvZiB0aGUgY3VycmVuY3kgZm9yIHRoZSBtYWluIGNvdW50cnkgY29ycmVzcG9uZGluZ1xuICogdG8gYSBnaXZlbiBsb2NhbGUuIEZvciBleGFtcGxlLCAnVVMgRG9sbGFyJyBmb3IgYGVuLVVTYC5cbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHJldHVybnMgVGhlIGN1cnJlbmN5IG5hbWUsXG4gKiBvciBgbnVsbGAgaWYgdGhlIG1haW4gY291bnRyeSBjYW5ub3QgYmUgZGV0ZXJtaW5lZC5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBgSW50bGAgQVBJIHRvIGZvcm1hdCBhIGN1cnJlbmN5IHdpdGggZnJvbSBjdXJyZW5jeSBjb2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVDdXJyZW5jeU5hbWUobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgcmV0dXJuIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguQ3VycmVuY3lOYW1lXSB8fCBudWxsO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgZGVmYXVsdCBjdXJyZW5jeSBjb2RlIGZvciB0aGUgZ2l2ZW4gbG9jYWxlLlxuICpcbiAqIFRoZSBkZWZhdWx0IGlzIGRlZmluZWQgYXMgdGhlIGZpcnN0IGN1cnJlbmN5IHdoaWNoIGlzIHN0aWxsIGluIHVzZS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIFRoZSBjb2RlIG9mIHRoZSBsb2NhbGUgd2hvc2UgY3VycmVuY3kgY29kZSB3ZSB3YW50LlxuICogQHJldHVybnMgVGhlIGNvZGUgb2YgdGhlIGRlZmF1bHQgY3VycmVuY3kgZm9yIHRoZSBnaXZlbiBsb2NhbGUuXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIFdlIHJlY29tbWVuZCB5b3UgY3JlYXRlIGEgbWFwIG9mIGxvY2FsZSB0byBJU08gNDIxNyBjdXJyZW5jeSBjb2Rlcy5cbiAqIFRpbWUgcmVsYXRpdmUgY3VycmVuY3kgZGF0YSBpcyBwcm92aWRlZCBieSB0aGUgQ0xEUiBwcm9qZWN0LiBTZWUgaHR0cHM6Ly93d3cudW5pY29kZS5vcmcvY2xkci9jaGFydHMvNDQvc3VwcGxlbWVudGFsL2RldGFpbGVkX3RlcnJpdG9yeV9jdXJyZW5jeV9pbmZvcm1hdGlvbi5odG1sXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGVDdXJyZW5jeUNvZGUobG9jYWxlOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgcmV0dXJuIMm1Z2V0TG9jYWxlQ3VycmVuY3lDb2RlKGxvY2FsZSk7XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjdXJyZW5jeSB2YWx1ZXMgZm9yIGEgZ2l2ZW4gbG9jYWxlLlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgY3VycmVuY3kgdmFsdWVzLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICovXG5mdW5jdGlvbiBnZXRMb2NhbGVDdXJyZW5jaWVzKGxvY2FsZTogc3RyaW5nKToge1tjb2RlOiBzdHJpbmddOiBDdXJyZW5jaWVzU3ltYm9sc30ge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5DdXJyZW5jaWVzXTtcbn1cblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKlxuICogQGRlcHJlY2F0ZWQgQW5ndWxhciByZWNvbW1lbmRzIHJlbHlpbmcgb24gdGhlIGBJbnRsYCBBUEkgZm9yIGkxOG4uXG4gKiBVc2UgYEludGwuUGx1cmFsUnVsZXNgIGluc3RlYWRcbiAqL1xuZXhwb3J0IGNvbnN0IGdldExvY2FsZVBsdXJhbENhc2U6IChsb2NhbGU6IHN0cmluZykgPT4gKHZhbHVlOiBudW1iZXIpID0+IFBsdXJhbCA9XG4gIMm1Z2V0TG9jYWxlUGx1cmFsQ2FzZTtcblxuZnVuY3Rpb24gY2hlY2tGdWxsRGF0YShkYXRhOiBhbnkpIHtcbiAgaWYgKCFkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkV4dHJhRGF0YV0pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgTWlzc2luZyBleHRyYSBsb2NhbGUgZGF0YSBmb3IgdGhlIGxvY2FsZSBcIiR7XG4gICAgICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguTG9jYWxlSWRdXG4gICAgICB9XCIuIFVzZSBcInJlZ2lzdGVyTG9jYWxlRGF0YVwiIHRvIGxvYWQgbmV3IGRhdGEuIFNlZSB0aGUgXCJJMThuIGd1aWRlXCIgb24gYW5ndWxhci5pbyB0byBrbm93IG1vcmUuYCxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUmV0cmlldmVzIGxvY2FsZS1zcGVjaWZpYyBydWxlcyB1c2VkIHRvIGRldGVybWluZSB3aGljaCBkYXkgcGVyaW9kIHRvIHVzZVxuICogd2hlbiBtb3JlIHRoYW4gb25lIHBlcmlvZCBpcyBkZWZpbmVkIGZvciBhIGxvY2FsZS5cbiAqXG4gKiBUaGVyZSBpcyBhIHJ1bGUgZm9yIGVhY2ggZGVmaW5lZCBkYXkgcGVyaW9kLiBUaGVcbiAqIGZpcnN0IHJ1bGUgaXMgYXBwbGllZCB0byB0aGUgZmlyc3QgZGF5IHBlcmlvZCBhbmQgc28gb24uXG4gKiBGYWxsIGJhY2sgdG8gQU0vUE0gd2hlbiBubyBydWxlcyBhcmUgYXZhaWxhYmxlLlxuICpcbiAqIEEgcnVsZSBjYW4gc3BlY2lmeSBhIHBlcmlvZCBhcyB0aW1lIHJhbmdlLCBvciBhcyBhIHNpbmdsZSB0aW1lIHZhbHVlLlxuICpcbiAqIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBvbmx5IGF2YWlsYWJsZSB3aGVuIHlvdSBoYXZlIGxvYWRlZCB0aGUgZnVsbCBsb2NhbGUgZGF0YS5cbiAqIFNlZSB0aGUgW1wiSTE4biBndWlkZVwiXShndWlkZS9pMThuL2Zvcm1hdC1kYXRhLWxvY2FsZSkuXG4gKlxuICogQHBhcmFtIGxvY2FsZSBBIGxvY2FsZSBjb2RlIGZvciB0aGUgbG9jYWxlIGZvcm1hdCBydWxlcyB0byB1c2UuXG4gKiBAcmV0dXJucyBUaGUgcnVsZXMgZm9yIHRoZSBsb2NhbGUsIGEgc2luZ2xlIHRpbWUgdmFsdWUgb3IgYXJyYXkgb2YgKmZyb20tdGltZSwgdG8tdGltZSosXG4gKiBvciBudWxsIGlmIG5vIHBlcmlvZHMgYXJlIGF2YWlsYWJsZS5cbiAqXG4gKiBAc2VlIHtAbGluayBnZXRMb2NhbGVFeHRyYURheVBlcmlvZHN9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogTGV0IGBJbnRsLkRhdGVUaW1lRm9ybWF0YCBkZXRlcm1pbmUgdGhlIGRheSBwZXJpb2QgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUV4dHJhRGF5UGVyaW9kUnVsZXMobG9jYWxlOiBzdHJpbmcpOiAoVGltZSB8IFtUaW1lLCBUaW1lXSlbXSB7XG4gIGNvbnN0IGRhdGEgPSDJtWZpbmRMb2NhbGVEYXRhKGxvY2FsZSk7XG4gIGNoZWNrRnVsbERhdGEoZGF0YSk7XG4gIGNvbnN0IHJ1bGVzID0gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5FeHRyYURhdGFdW8m1RXh0cmFMb2NhbGVEYXRhSW5kZXguRXh0cmFEYXlQZXJpb2RzUnVsZXNdIHx8IFtdO1xuICByZXR1cm4gcnVsZXMubWFwKChydWxlOiBzdHJpbmcgfCBbc3RyaW5nLCBzdHJpbmddKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBydWxlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGV4dHJhY3RUaW1lKHJ1bGUpO1xuICAgIH1cbiAgICByZXR1cm4gW2V4dHJhY3RUaW1lKHJ1bGVbMF0pLCBleHRyYWN0VGltZShydWxlWzFdKV07XG4gIH0pO1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyBsb2NhbGUtc3BlY2lmaWMgZGF5IHBlcmlvZHMsIHdoaWNoIGluZGljYXRlIHJvdWdobHkgaG93IGEgZGF5IGlzIGJyb2tlbiB1cFxuICogaW4gZGlmZmVyZW50IGxhbmd1YWdlcy5cbiAqIEZvciBleGFtcGxlLCBmb3IgYGVuLVVTYCwgcGVyaW9kcyBhcmUgbW9ybmluZywgbm9vbiwgYWZ0ZXJub29uLCBldmVuaW5nLCBhbmQgbWlkbmlnaHQuXG4gKlxuICogVGhpcyBmdW5jdGlvbmFsaXR5IGlzIG9ubHkgYXZhaWxhYmxlIHdoZW4geW91IGhhdmUgbG9hZGVkIHRoZSBmdWxsIGxvY2FsZSBkYXRhLlxuICogU2VlIHRoZSBbXCJJMThuIGd1aWRlXCJdKGd1aWRlL2kxOG4vZm9ybWF0LWRhdGEtbG9jYWxlKS5cbiAqXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqIEBwYXJhbSBmb3JtU3R5bGUgVGhlIHJlcXVpcmVkIGdyYW1tYXRpY2FsIGZvcm0uXG4gKiBAcGFyYW0gd2lkdGggVGhlIHJlcXVpcmVkIGNoYXJhY3RlciB3aWR0aC5cbiAqIEByZXR1cm5zIFRoZSB0cmFuc2xhdGVkIGRheS1wZXJpb2Qgc3RyaW5ncy5cbiAqIEBzZWUge0BsaW5rIGdldExvY2FsZUV4dHJhRGF5UGVyaW9kUnVsZXN9XG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVG8gZXh0cmFjdCBhIGRheSBwZXJpb2QgdXNlIGBJbnRsLkRhdGVUaW1lRm9ybWF0YCB3aXRoIHRoZSBgZGF5UGVyaW9kYCBvcHRpb24gaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZUV4dHJhRGF5UGVyaW9kcyhcbiAgbG9jYWxlOiBzdHJpbmcsXG4gIGZvcm1TdHlsZTogRm9ybVN0eWxlLFxuICB3aWR0aDogVHJhbnNsYXRpb25XaWR0aCxcbik6IHN0cmluZ1tdIHtcbiAgY29uc3QgZGF0YSA9IMm1ZmluZExvY2FsZURhdGEobG9jYWxlKTtcbiAgY2hlY2tGdWxsRGF0YShkYXRhKTtcbiAgY29uc3QgZGF5UGVyaW9kc0RhdGEgPSA8c3RyaW5nW11bXVtdPltcbiAgICBkYXRhW8m1TG9jYWxlRGF0YUluZGV4LkV4dHJhRGF0YV1bybVFeHRyYUxvY2FsZURhdGFJbmRleC5FeHRyYURheVBlcmlvZEZvcm1hdHNdLFxuICAgIGRhdGFbybVMb2NhbGVEYXRhSW5kZXguRXh0cmFEYXRhXVvJtUV4dHJhTG9jYWxlRGF0YUluZGV4LkV4dHJhRGF5UGVyaW9kU3RhbmRhbG9uZV0sXG4gIF07XG4gIGNvbnN0IGRheVBlcmlvZHMgPSBnZXRMYXN0RGVmaW5lZFZhbHVlKGRheVBlcmlvZHNEYXRhLCBmb3JtU3R5bGUpIHx8IFtdO1xuICByZXR1cm4gZ2V0TGFzdERlZmluZWRWYWx1ZShkYXlQZXJpb2RzLCB3aWR0aCkgfHwgW107XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSB3cml0aW5nIGRpcmVjdGlvbiBvZiBhIHNwZWNpZmllZCBsb2NhbGVcbiAqIEBwYXJhbSBsb2NhbGUgQSBsb2NhbGUgY29kZSBmb3IgdGhlIGxvY2FsZSBmb3JtYXQgcnVsZXMgdG8gdXNlLlxuICogQHB1YmxpY0FwaVxuICogQHJldHVybnMgJ3J0bCcgb3IgJ2x0cidcbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIEZvciBkYXRlcyBhbmQgbnVtYmVycywgbGV0IGBJbnRsLkRhdGVUaW1lRm9ybWF0KClgIGFuZCBgSW50bC5OdW1iZXJGb3JtYXQoKWAgZGV0ZXJtaW5lIHRoZSB3cml0aW5nIGRpcmVjdGlvbi5cbiAqIFRoZSBgSW50bGAgYWx0ZXJuYXRpdmUgW2BnZXRUZXh0SW5mb2BdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0phdmFTY3JpcHQvUmVmZXJlbmNlL0dsb2JhbF9PYmplY3RzL0ludGwvTG9jYWxlL2dldFRleHRJbmZvKS5cbiAqIGhhcyBvbmx5IHBhcnRpYWwgc3VwcG9ydCAoQ2hyb21pdW0gTTk5ICYgU2FmYXJpIDE3KS5cbiAqIDNyZCBwYXJ0eSBhbHRlcm5hdGl2ZXMgbGlrZSBbYHJ0bC1kZXRlY3RgXShodHRwczovL3d3dy5ucG1qcy5jb20vcGFja2FnZS9ydGwtZGV0ZWN0KSBjYW4gd29yayBhcm91bmQgdGhpcyBpc3N1ZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldExvY2FsZURpcmVjdGlvbihsb2NhbGU6IHN0cmluZyk6ICdsdHInIHwgJ3J0bCcge1xuICBjb25zdCBkYXRhID0gybVmaW5kTG9jYWxlRGF0YShsb2NhbGUpO1xuICByZXR1cm4gZGF0YVvJtUxvY2FsZURhdGFJbmRleC5EaXJlY3Rpb25hbGl0eV07XG59XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBmaXJzdCB2YWx1ZSB0aGF0IGlzIGRlZmluZWQgaW4gYW4gYXJyYXksIGdvaW5nIGJhY2t3YXJkcyBmcm9tIGFuIGluZGV4IHBvc2l0aW9uLlxuICpcbiAqIFRvIGF2b2lkIHJlcGVhdGluZyB0aGUgc2FtZSBkYXRhIChhcyB3aGVuIHRoZSBcImZvcm1hdFwiIGFuZCBcInN0YW5kYWxvbmVcIiBmb3JtcyBhcmUgdGhlIHNhbWUpXG4gKiBhZGQgdGhlIGZpcnN0IHZhbHVlIHRvIHRoZSBsb2NhbGUgZGF0YSBhcnJheXMsIGFuZCBhZGQgb3RoZXIgdmFsdWVzIG9ubHkgaWYgdGhleSBhcmUgZGlmZmVyZW50LlxuICpcbiAqIEBwYXJhbSBkYXRhIFRoZSBkYXRhIGFycmF5IHRvIHJldHJpZXZlIGZyb20uXG4gKiBAcGFyYW0gaW5kZXggQSAwLWJhc2VkIGluZGV4IGludG8gdGhlIGFycmF5IHRvIHN0YXJ0IGZyb20uXG4gKiBAcmV0dXJucyBUaGUgdmFsdWUgaW1tZWRpYXRlbHkgYmVmb3JlIHRoZSBnaXZlbiBpbmRleCBwb3NpdGlvbi5cbiAqIEBzZWUgW0ludGVybmF0aW9uYWxpemF0aW9uIChpMThuKSBHdWlkZV0oZ3VpZGUvaTE4bilcbiAqXG4gKi9cbmZ1bmN0aW9uIGdldExhc3REZWZpbmVkVmFsdWU8VD4oZGF0YTogVFtdLCBpbmRleDogbnVtYmVyKTogVCB7XG4gIGZvciAobGV0IGkgPSBpbmRleDsgaSA+IC0xOyBpLS0pIHtcbiAgICBpZiAodHlwZW9mIGRhdGFbaV0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm4gZGF0YVtpXTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdMb2NhbGUgZGF0YSBBUEk6IGxvY2FsZSBkYXRhIHVuZGVmaW5lZCcpO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSB0aW1lIHZhbHVlIHdpdGggaG91cnMgYW5kIG1pbnV0ZXMuXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIExvY2FsZSBkYXRlIGdldHRlcnMgYXJlIGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgVGltZSA9IHtcbiAgaG91cnM6IG51bWJlcjtcbiAgbWludXRlczogbnVtYmVyO1xufTtcblxuLyoqXG4gKiBFeHRyYWN0cyB0aGUgaG91cnMgYW5kIG1pbnV0ZXMgZnJvbSBhIHN0cmluZyBsaWtlIFwiMTU6NDVcIlxuICovXG5mdW5jdGlvbiBleHRyYWN0VGltZSh0aW1lOiBzdHJpbmcpOiBUaW1lIHtcbiAgY29uc3QgW2gsIG1dID0gdGltZS5zcGxpdCgnOicpO1xuICByZXR1cm4ge2hvdXJzOiAraCwgbWludXRlczogK219O1xufVxuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgY3VycmVuY3kgc3ltYm9sIGZvciBhIGdpdmVuIGN1cnJlbmN5IGNvZGUuXG4gKlxuICogRm9yIGV4YW1wbGUsIGZvciB0aGUgZGVmYXVsdCBgZW4tVVNgIGxvY2FsZSwgdGhlIGNvZGUgYFVTRGAgY2FuXG4gKiBiZSByZXByZXNlbnRlZCBieSB0aGUgbmFycm93IHN5bWJvbCBgJGAgb3IgdGhlIHdpZGUgc3ltYm9sIGBVUyRgLlxuICpcbiAqIEBwYXJhbSBjb2RlIFRoZSBjdXJyZW5jeSBjb2RlLlxuICogQHBhcmFtIGZvcm1hdCBUaGUgZm9ybWF0LCBgd2lkZWAgb3IgYG5hcnJvd2AuXG4gKiBAcGFyYW0gbG9jYWxlIEEgbG9jYWxlIGNvZGUgZm9yIHRoZSBsb2NhbGUgZm9ybWF0IHJ1bGVzIHRvIHVzZS5cbiAqXG4gKiBAcmV0dXJucyBUaGUgc3ltYm9sLCBvciB0aGUgY3VycmVuY3kgY29kZSBpZiBubyBzeW1ib2wgaXMgYXZhaWxhYmxlLlxuICogQHNlZSBbSW50ZXJuYXRpb25hbGl6YXRpb24gKGkxOG4pIEd1aWRlXShndWlkZS9pMThuKVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqXG4gKiBAZGVwcmVjYXRlZCBBbmd1bGFyIHJlY29tbWVuZHMgcmVseWluZyBvbiB0aGUgYEludGxgIEFQSSBmb3IgaTE4bi5cbiAqIFlvdSBjYW4gdXNlIGBJbnRsLk51bWJlckZvcm1hdCgpLmZvcm1hdFRvUGFydHMoKWAgdG8gZXh0cmFjdCB0aGUgY3VycmVuY3kgc3ltYm9sLlxuICogRm9yIGV4YW1wbGU6IGBJbnRsLk51bWJlckZvcm1hdCgnZW4nLCB7c3R5bGU6J2N1cnJlbmN5JywgY3VycmVuY3k6ICdVU0QnfSkuZm9ybWF0VG9QYXJ0cygpLmZpbmQocGFydCA9PiBwYXJ0LnR5cGUgPT09ICdjdXJyZW5jeScpLnZhbHVlYFxuICogcmV0dXJucyBgJGAgZm9yIFVTRCBjdXJyZW5jeSBjb2RlIGluIHRoZSBgZW5gIGxvY2FsZS5cbiAqIE5vdGU6IGBVUyRgIGlzIGEgY3VycmVuY3kgc3ltYm9sIGZvciB0aGUgYGVuLWNhYCBsb2NhbGUgYnV0IG5vdCB0aGUgYGVuLXVzYCBsb2NhbGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDdXJyZW5jeVN5bWJvbChjb2RlOiBzdHJpbmcsIGZvcm1hdDogJ3dpZGUnIHwgJ25hcnJvdycsIGxvY2FsZSA9ICdlbicpOiBzdHJpbmcge1xuICBjb25zdCBjdXJyZW5jeSA9IGdldExvY2FsZUN1cnJlbmNpZXMobG9jYWxlKVtjb2RlXSB8fCBDVVJSRU5DSUVTX0VOW2NvZGVdIHx8IFtdO1xuICBjb25zdCBzeW1ib2xOYXJyb3cgPSBjdXJyZW5jeVvJtUN1cnJlbmN5SW5kZXguU3ltYm9sTmFycm93XTtcblxuICBpZiAoZm9ybWF0ID09PSAnbmFycm93JyAmJiB0eXBlb2Ygc3ltYm9sTmFycm93ID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBzeW1ib2xOYXJyb3c7XG4gIH1cblxuICByZXR1cm4gY3VycmVuY3lbybVDdXJyZW5jeUluZGV4LlN5bWJvbF0gfHwgY29kZTtcbn1cblxuLy8gTW9zdCBjdXJyZW5jaWVzIGhhdmUgY2VudHMsIHRoYXQncyB3aHkgdGhlIGRlZmF1bHQgaXMgMlxuY29uc3QgREVGQVVMVF9OQl9PRl9DVVJSRU5DWV9ESUdJVFMgPSAyO1xuXG4vKipcbiAqIFJlcG9ydHMgdGhlIG51bWJlciBvZiBkZWNpbWFsIGRpZ2l0cyBmb3IgYSBnaXZlbiBjdXJyZW5jeS5cbiAqIFRoZSB2YWx1ZSBkZXBlbmRzIHVwb24gdGhlIHByZXNlbmNlIG9mIGNlbnRzIGluIHRoYXQgcGFydGljdWxhciBjdXJyZW5jeS5cbiAqXG4gKiBAcGFyYW0gY29kZSBUaGUgY3VycmVuY3kgY29kZS5cbiAqIEByZXR1cm5zIFRoZSBudW1iZXIgb2YgZGVjaW1hbCBkaWdpdHMsIHR5cGljYWxseSAwIG9yIDIuXG4gKiBAc2VlIFtJbnRlcm5hdGlvbmFsaXphdGlvbiAoaTE4bikgR3VpZGVdKGd1aWRlL2kxOG4pXG4gKlxuICogQHB1YmxpY0FwaVxuICpcbiAqIEBkZXByZWNhdGVkIEFuZ3VsYXIgcmVjb21tZW5kcyByZWx5aW5nIG9uIHRoZSBgSW50bGAgQVBJIGZvciBpMThuLlxuICogVGhpcyBmdW5jdGlvbiBzaG91bGQgbm90IGJlIHVzZWQgYW55bW9yZS4gTGV0IGBJbnRsLk51bWJlckZvcm1hdGAgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgZGlnaXRzIHRvIGRpc3BsYXkgZm9yIHRoZSBjdXJyZW5jeVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TnVtYmVyT2ZDdXJyZW5jeURpZ2l0cyhjb2RlOiBzdHJpbmcpOiBudW1iZXIge1xuICBsZXQgZGlnaXRzO1xuICBjb25zdCBjdXJyZW5jeSA9IENVUlJFTkNJRVNfRU5bY29kZV07XG4gIGlmIChjdXJyZW5jeSkge1xuICAgIGRpZ2l0cyA9IGN1cnJlbmN5W8m1Q3VycmVuY3lJbmRleC5OYk9mRGlnaXRzXTtcbiAgfVxuICByZXR1cm4gdHlwZW9mIGRpZ2l0cyA9PT0gJ251bWJlcicgPyBkaWdpdHMgOiBERUZBVUxUX05CX09GX0NVUlJFTkNZX0RJR0lUUztcbn1cbiJdfQ==
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Inject, Injectable, LOCALE_ID } from '@angular/core';
9
9
  import { getLocalePluralCase, Plural } from './locale_data_api';
@@ -12,10 +12,10 @@ import * as i0 from "@angular/core";
12
12
  * @publicApi
13
13
  */
14
14
  export class NgLocalization {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocalization, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocalization, providedIn: 'root', useFactory: (locale) => new NgLocaleLocalization(locale), deps: [{ token: LOCALE_ID }] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocalization, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocalization, decorators: [{
19
19
  type: Injectable,
20
20
  args: [{
21
21
  providedIn: 'root',
@@ -69,13 +69,13 @@ export class NgLocaleLocalization extends NgLocalization {
69
69
  return 'other';
70
70
  }
71
71
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
73
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocaleLocalization }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocaleLocalization, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
73
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocaleLocalization }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: NgLocaleLocalization, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: NgLocaleLocalization, decorators: [{
76
76
  type: Injectable
77
77
  }], ctorParameters: () => [{ type: undefined, decorators: [{
78
78
  type: Inject,
79
79
  args: [LOCALE_ID]
80
80
  }] }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pMThuL2xvY2FsaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLE1BQU0sRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUU5RDs7R0FFRztBQU1ILE1BQU0sT0FBZ0IsY0FBYzt5SEFBZCxjQUFjOzZIQUFkLGNBQWMsY0FKdEIsTUFBTSxjQUNOLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxrQkFDekQsU0FBUzs7c0dBRUksY0FBYztrQkFMbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztvQkFDaEUsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNsQjs7QUFLRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFhLEVBQ2IsS0FBZSxFQUNmLGNBQThCLEVBQzlCLE1BQWU7SUFFZixJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRXRCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEdBQUcsR0FBRyxjQUFjLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXRELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQsWUFBeUMsTUFBYztRQUNyRCxLQUFLLEVBQUUsQ0FBQztRQUQrQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXZELENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLE1BQU0sQ0FBQyxJQUFJO2dCQUNkLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDLEdBQUc7Z0JBQ2IsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE1BQU0sQ0FBQyxHQUFHO2dCQUNiLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxNQUFNLENBQUMsR0FBRztnQkFDYixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssTUFBTSxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7eUhBdEJVLG9CQUFvQixrQkFDWCxTQUFTOzZIQURsQixvQkFBb0I7O3NHQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5pbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgTE9DQUxFX0lEfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtnZXRMb2NhbGVQbHVyYWxDYXNlLCBQbHVyYWx9IGZyb20gJy4vbG9jYWxlX2RhdGFfYXBpJztcblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxuICB1c2VGYWN0b3J5OiAobG9jYWxlOiBzdHJpbmcpID0+IG5ldyBOZ0xvY2FsZUxvY2FsaXphdGlvbihsb2NhbGUpLFxuICBkZXBzOiBbTE9DQUxFX0lEXSxcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmdMb2NhbGl6YXRpb24ge1xuICBhYnN0cmFjdCBnZXRQbHVyYWxDYXRlZ29yeSh2YWx1ZTogYW55LCBsb2NhbGU/OiBzdHJpbmcpOiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGx1cmFsIGNhdGVnb3J5IGZvciBhIGdpdmVuIHZhbHVlLlxuICogLSBcIj12YWx1ZVwiIHdoZW4gdGhlIGNhc2UgZXhpc3RzLFxuICogLSB0aGUgcGx1cmFsIGNhdGVnb3J5IG90aGVyd2lzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1cmFsQ2F0ZWdvcnkoXG4gIHZhbHVlOiBudW1iZXIsXG4gIGNhc2VzOiBzdHJpbmdbXSxcbiAgbmdMb2NhbGl6YXRpb246IE5nTG9jYWxpemF0aW9uLFxuICBsb2NhbGU/OiBzdHJpbmcsXG4pOiBzdHJpbmcge1xuICBsZXQga2V5ID0gYD0ke3ZhbHVlfWA7XG5cbiAgaWYgKGNhc2VzLmluZGV4T2Yoa2V5KSA+IC0xKSB7XG4gICAgcmV0dXJuIGtleTtcbiAgfVxuXG4gIGtleSA9IG5nTG9jYWxpemF0aW9uLmdldFBsdXJhbENhdGVnb3J5KHZhbHVlLCBsb2NhbGUpO1xuXG4gIGlmIChjYXNlcy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBpZiAoY2FzZXMuaW5kZXhPZignb3RoZXInKSA+IC0xKSB7XG4gICAgcmV0dXJuICdvdGhlcic7XG4gIH1cblxuICB0aHJvdyBuZXcgRXJyb3IoYE5vIHBsdXJhbCBtZXNzYWdlIGZvdW5kIGZvciB2YWx1ZSBcIiR7dmFsdWV9XCJgKTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBwbHVyYWwgY2FzZSBiYXNlZCBvbiB0aGUgbG9jYWxlXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTmdMb2NhbGVMb2NhbGl6YXRpb24gZXh0ZW5kcyBOZ0xvY2FsaXphdGlvbiB7XG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0lEKSBwcm90ZWN0ZWQgbG9jYWxlOiBzdHJpbmcpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0UGx1cmFsQ2F0ZWdvcnkodmFsdWU6IGFueSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwbHVyYWwgPSBnZXRMb2NhbGVQbHVyYWxDYXNlKGxvY2FsZSB8fCB0aGlzLmxvY2FsZSkodmFsdWUpO1xuXG4gICAgc3dpdGNoIChwbHVyYWwpIHtcbiAgICAgIGNhc2UgUGx1cmFsLlplcm86XG4gICAgICAgIHJldHVybiAnemVybyc7XG4gICAgICBjYXNlIFBsdXJhbC5PbmU6XG4gICAgICAgIHJldHVybiAnb25lJztcbiAgICAgIGNhc2UgUGx1cmFsLlR3bzpcbiAgICAgICAgcmV0dXJuICd0d28nO1xuICAgICAgY2FzZSBQbHVyYWwuRmV3OlxuICAgICAgICByZXR1cm4gJ2Zldyc7XG4gICAgICBjYXNlIFBsdXJhbC5NYW55OlxuICAgICAgICByZXR1cm4gJ21hbnknO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdvdGhlcic7XG4gICAgfVxuICB9XG59XG4iXX0=
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9pMThuL2xvY2FsaXphdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFNUQsT0FBTyxFQUFDLG1CQUFtQixFQUFFLE1BQU0sRUFBQyxNQUFNLG1CQUFtQixDQUFDOztBQUU5RDs7R0FFRztBQU1ILE1BQU0sT0FBZ0IsY0FBYzt5SEFBZCxjQUFjOzZIQUFkLGNBQWMsY0FKdEIsTUFBTSxjQUNOLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxrQkFDekQsU0FBUzs7c0dBRUksY0FBYztrQkFMbkMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsVUFBVSxFQUFFLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sQ0FBQztvQkFDaEUsSUFBSSxFQUFFLENBQUMsU0FBUyxDQUFDO2lCQUNsQjs7QUFLRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUMvQixLQUFhLEVBQ2IsS0FBZSxFQUNmLGNBQThCLEVBQzlCLE1BQWU7SUFFZixJQUFJLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBRXRCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEdBQUcsR0FBRyxjQUFjLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBRXRELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVCLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ2hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0FBQ2xFLENBQUM7QUFFRDs7OztHQUlHO0FBRUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGNBQWM7SUFDdEQsWUFBeUMsTUFBYztRQUNyRCxLQUFLLEVBQUUsQ0FBQztRQUQrQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRXZELENBQUM7SUFFUSxpQkFBaUIsQ0FBQyxLQUFVLEVBQUUsTUFBZTtRQUNwRCxNQUFNLE1BQU0sR0FBRyxtQkFBbUIsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWpFLFFBQVEsTUFBTSxFQUFFLENBQUM7WUFDZixLQUFLLE1BQU0sQ0FBQyxJQUFJO2dCQUNkLE9BQU8sTUFBTSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxDQUFDLEdBQUc7Z0JBQ2IsT0FBTyxLQUFLLENBQUM7WUFDZixLQUFLLE1BQU0sQ0FBQyxHQUFHO2dCQUNiLE9BQU8sS0FBSyxDQUFDO1lBQ2YsS0FBSyxNQUFNLENBQUMsR0FBRztnQkFDYixPQUFPLEtBQUssQ0FBQztZQUNmLEtBQUssTUFBTSxDQUFDLElBQUk7Z0JBQ2QsT0FBTyxNQUFNLENBQUM7WUFDaEI7Z0JBQ0UsT0FBTyxPQUFPLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7eUhBdEJVLG9CQUFvQixrQkFDWCxTQUFTOzZIQURsQixvQkFBb0I7O3NHQUFwQixvQkFBb0I7a0JBRGhDLFVBQVU7OzBCQUVJLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIExPQ0FMRV9JRH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7Z2V0TG9jYWxlUGx1cmFsQ2FzZSwgUGx1cmFsfSBmcm9tICcuL2xvY2FsZV9kYXRhX2FwaSc7XG5cbi8qKlxuICogQHB1YmxpY0FwaVxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgdXNlRmFjdG9yeTogKGxvY2FsZTogc3RyaW5nKSA9PiBuZXcgTmdMb2NhbGVMb2NhbGl6YXRpb24obG9jYWxlKSxcbiAgZGVwczogW0xPQ0FMRV9JRF0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5nTG9jYWxpemF0aW9uIHtcbiAgYWJzdHJhY3QgZ2V0UGx1cmFsQ2F0ZWdvcnkodmFsdWU6IGFueSwgbG9jYWxlPzogc3RyaW5nKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIHBsdXJhbCBjYXRlZ29yeSBmb3IgYSBnaXZlbiB2YWx1ZS5cbiAqIC0gXCI9dmFsdWVcIiB3aGVuIHRoZSBjYXNlIGV4aXN0cyxcbiAqIC0gdGhlIHBsdXJhbCBjYXRlZ29yeSBvdGhlcndpc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFBsdXJhbENhdGVnb3J5KFxuICB2YWx1ZTogbnVtYmVyLFxuICBjYXNlczogc3RyaW5nW10sXG4gIG5nTG9jYWxpemF0aW9uOiBOZ0xvY2FsaXphdGlvbixcbiAgbG9jYWxlPzogc3RyaW5nLFxuKTogc3RyaW5nIHtcbiAgbGV0IGtleSA9IGA9JHt2YWx1ZX1gO1xuXG4gIGlmIChjYXNlcy5pbmRleE9mKGtleSkgPiAtMSkge1xuICAgIHJldHVybiBrZXk7XG4gIH1cblxuICBrZXkgPSBuZ0xvY2FsaXphdGlvbi5nZXRQbHVyYWxDYXRlZ29yeSh2YWx1ZSwgbG9jYWxlKTtcblxuICBpZiAoY2FzZXMuaW5kZXhPZihrZXkpID4gLTEpIHtcbiAgICByZXR1cm4ga2V5O1xuICB9XG5cbiAgaWYgKGNhc2VzLmluZGV4T2YoJ290aGVyJykgPiAtMSkge1xuICAgIHJldHVybiAnb3RoZXInO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBObyBwbHVyYWwgbWVzc2FnZSBmb3VuZCBmb3IgdmFsdWUgXCIke3ZhbHVlfVwiYCk7XG59XG5cbi8qKlxuICogUmV0dXJucyB0aGUgcGx1cmFsIGNhc2UgYmFzZWQgb24gdGhlIGxvY2FsZVxuICpcbiAqIEBwdWJsaWNBcGlcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5nTG9jYWxlTG9jYWxpemF0aW9uIGV4dGVuZHMgTmdMb2NhbGl6YXRpb24ge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KExPQ0FMRV9JRCkgcHJvdGVjdGVkIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldFBsdXJhbENhdGVnb3J5KHZhbHVlOiBhbnksIGxvY2FsZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcGx1cmFsID0gZ2V0TG9jYWxlUGx1cmFsQ2FzZShsb2NhbGUgfHwgdGhpcy5sb2NhbGUpKHZhbHVlKTtcblxuICAgIHN3aXRjaCAocGx1cmFsKSB7XG4gICAgICBjYXNlIFBsdXJhbC5aZXJvOlxuICAgICAgICByZXR1cm4gJ3plcm8nO1xuICAgICAgY2FzZSBQbHVyYWwuT25lOlxuICAgICAgICByZXR1cm4gJ29uZSc7XG4gICAgICBjYXNlIFBsdXJhbC5Ud286XG4gICAgICAgIHJldHVybiAndHdvJztcbiAgICAgIGNhc2UgUGx1cmFsLkZldzpcbiAgICAgICAgcmV0dXJuICdmZXcnO1xuICAgICAgY2FzZSBQbHVyYWwuTWFueTpcbiAgICAgICAgcmV0dXJuICdtYW55JztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnb3RoZXInO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -3,7 +3,7 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  import { Inject, Injectable, Optional } from '@angular/core';
9
9
  import { APP_BASE_HREF, LocationStrategy } from './location_strategy';
@@ -87,10 +87,10 @@ export class HashLocationStrategy extends LocationStrategy {
87
87
  historyGo(relativePosition = 0) {
88
88
  this._platformLocation.historyGo?.(relativePosition);
89
89
  }
90
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: HashLocationStrategy, deps: [{ token: i1.PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: HashLocationStrategy }); }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: HashLocationStrategy, deps: [{ token: i1.PlatformLocation }, { token: APP_BASE_HREF, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: HashLocationStrategy }); }
92
92
  }
93
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: HashLocationStrategy, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: HashLocationStrategy, decorators: [{
94
94
  type: Injectable
95
95
  }], ctorParameters: () => [{ type: i1.PlatformLocation }, { type: undefined, decorators: [{
96
96
  type: Optional
@@ -98,4 +98,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
98
98
  type: Inject,
99
99
  args: [APP_BASE_HREF]
100
100
  }] }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaF9sb2NhdGlvbl9zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbG9jYXRpb24vaGFzaF9sb2NhdGlvbl9zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUl4RCxZQUNVLGlCQUFtQyxFQUNSLFNBQWtCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSEEsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUpyQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFPOUMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRVEsVUFBVSxDQUFDLEVBQTBCO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVRLElBQUksQ0FBQyxjQUF1QixLQUFLO1FBQ3hDLCtDQUErQztRQUMvQyw2Q0FBNkM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFUSxrQkFBa0IsQ0FBQyxRQUFnQjtRQUMxQyxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQUVRLFNBQVMsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLElBQVksRUFBRSxXQUFtQjtRQUM3RSxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUSxZQUFZLENBQUMsS0FBVSxFQUFFLEtBQWEsRUFBRSxJQUFZLEVBQUUsV0FBbUI7UUFDaEYsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUSxPQUFPO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUSxJQUFJO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFUSxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVRLFNBQVMsQ0FBQyxtQkFBMkIsQ0FBQztRQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO3lIQTNFVSxvQkFBb0Isa0RBTVQsYUFBYTs2SEFOeEIsb0JBQW9COztzR0FBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFPTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0FQUF9CQVNFX0hSRUYsIExvY2F0aW9uU3RyYXRlZ3l9IGZyb20gJy4vbG9jYXRpb25fc3RyYXRlZ3knO1xuaW1wb3J0IHtMb2NhdGlvbkNoYW5nZUxpc3RlbmVyLCBQbGF0Zm9ybUxvY2F0aW9ufSBmcm9tICcuL3BsYXRmb3JtX2xvY2F0aW9uJztcbmltcG9ydCB7am9pbldpdGhTbGFzaCwgbm9ybWFsaXplUXVlcnlQYXJhbXN9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBBIHtAbGluayBMb2NhdGlvblN0cmF0ZWd5fSB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUge0BsaW5rIExvY2F0aW9ufSBzZXJ2aWNlIHRvXG4gKiByZXByZXNlbnQgaXRzIHN0YXRlIGluIHRoZVxuICogW2hhc2ggZnJhZ21lbnRdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1VuaWZvcm1fUmVzb3VyY2VfTG9jYXRvciNTeW50YXgpXG4gKiBvZiB0aGUgYnJvd3NlcidzIFVSTC5cbiAqXG4gKiBGb3IgaW5zdGFuY2UsIGlmIHlvdSBjYWxsIGBsb2NhdGlvbi5nbygnL2ZvbycpYCwgdGhlIGJyb3dzZXIncyBVUkwgd2lsbCBiZWNvbWVcbiAqIGBleGFtcGxlLmNvbSMvZm9vYC5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqICMjIyBFeGFtcGxlXG4gKlxuICoge0BleGFtcGxlIGNvbW1vbi9sb2NhdGlvbi90cy9oYXNoX2xvY2F0aW9uX2NvbXBvbmVudC50cyByZWdpb249J0xvY2F0aW9uQ29tcG9uZW50J31cbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIYXNoTG9jYXRpb25TdHJhdGVneSBleHRlbmRzIExvY2F0aW9uU3RyYXRlZ3kgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9iYXNlSHJlZjogc3RyaW5nID0gJyc7XG4gIHByaXZhdGUgX3JlbW92ZUxpc3RlbmVyRm5zOiAoKCkgPT4gdm9pZClbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3BsYXRmb3JtTG9jYXRpb246IFBsYXRmb3JtTG9jYXRpb24sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfQkFTRV9IUkVGKSBfYmFzZUhyZWY/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgaWYgKF9iYXNlSHJlZiAhPSBudWxsKSB7XG4gICAgICB0aGlzLl9iYXNlSHJlZiA9IF9iYXNlSHJlZjtcbiAgICB9XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHdoaWxlICh0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuX3JlbW92ZUxpc3RlbmVyRm5zLnBvcCgpISgpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIG9uUG9wU3RhdGUoZm46IExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wdXNoKFxuICAgICAgdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5vblBvcFN0YXRlKGZuKSxcbiAgICAgIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25IYXNoQ2hhbmdlKGZuKSxcbiAgICApO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0QmFzZUhyZWYoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZUhyZWY7XG4gIH1cblxuICBvdmVycmlkZSBwYXRoKGluY2x1ZGVIYXNoOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIC8vIHRoZSBoYXNoIHZhbHVlIGlzIGFsd2F5cyBwcmVmaXhlZCB3aXRoIGEgYCNgXG4gICAgLy8gYW5kIGlmIGl0IGlzIGVtcHR5IHRoZW4gaXQgd2lsbCBzdGF5IGVtcHR5XG4gICAgY29uc3QgcGF0aCA9IHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uaGFzaCA/PyAnIyc7XG5cbiAgICByZXR1cm4gcGF0aC5sZW5ndGggPiAwID8gcGF0aC5zdWJzdHJpbmcoMSkgOiBwYXRoO1xuICB9XG5cbiAgb3ZlcnJpZGUgcHJlcGFyZUV4dGVybmFsVXJsKGludGVybmFsOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHVybCA9IGpvaW5XaXRoU2xhc2godGhpcy5fYmFzZUhyZWYsIGludGVybmFsKTtcbiAgICByZXR1cm4gdXJsLmxlbmd0aCA+IDAgPyAnIycgKyB1cmwgOiB1cmw7XG4gIH1cblxuICBvdmVycmlkZSBwdXNoU3RhdGUoc3RhdGU6IGFueSwgdGl0bGU6IHN0cmluZywgcGF0aDogc3RyaW5nLCBxdWVyeVBhcmFtczogc3RyaW5nKSB7XG4gICAgbGV0IHVybDogc3RyaW5nIHwgbnVsbCA9IHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHBhdGggKyBub3JtYWxpemVRdWVyeVBhcmFtcyhxdWVyeVBhcmFtcykpO1xuICAgIGlmICh1cmwubGVuZ3RoID09IDApIHtcbiAgICAgIHVybCA9IHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWU7XG4gICAgfVxuICAgIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucHVzaFN0YXRlKHN0YXRlLCB0aXRsZSwgdXJsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlcGxhY2VTdGF0ZShzdGF0ZTogYW55LCB0aXRsZTogc3RyaW5nLCBwYXRoOiBzdHJpbmcsIHF1ZXJ5UGFyYW1zOiBzdHJpbmcpIHtcbiAgICBsZXQgdXJsID0gdGhpcy5wcmVwYXJlRXh0ZXJuYWxVcmwocGF0aCArIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW1zKSk7XG4gICAgaWYgKHVybC5sZW5ndGggPT0gMCkge1xuICAgICAgdXJsID0gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5wYXRobmFtZTtcbiAgICB9XG4gICAgdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5yZXBsYWNlU3RhdGUoc3RhdGUsIHRpdGxlLCB1cmwpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZm9yd2FyZCgpOiB2b2lkIHtcbiAgICB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmZvcndhcmQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5iYWNrKCk7XG4gIH1cblxuICBvdmVycmlkZSBnZXRTdGF0ZSgpOiB1bmtub3duIHtcbiAgICByZXR1cm4gdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgaGlzdG9yeUdvKHJlbGF0aXZlUG9zaXRpb246IG51bWJlciA9IDApOiB2b2lkIHtcbiAgICB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhpc3RvcnlHbz8uKHJlbGF0aXZlUG9zaXRpb24pO1xuICB9XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaF9sb2NhdGlvbl9zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvbG9jYXRpb24vaGFzaF9sb2NhdGlvbl9zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBYSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLGFBQWEsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BFLE9BQU8sRUFBeUIsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RSxPQUFPLEVBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sUUFBUSxDQUFDOzs7QUFFM0Q7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBRUgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGdCQUFnQjtJQUl4RCxZQUNVLGlCQUFtQyxFQUNSLFNBQWtCO1FBRXJELEtBQUssRUFBRSxDQUFDO1FBSEEsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUpyQyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBQ3ZCLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFPOUMsSUFBSSxTQUFTLElBQUksSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLEVBQUcsRUFBRSxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDO0lBRVEsVUFBVSxDQUFDLEVBQTBCO1FBQzVDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQ3JDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQ3hDLENBQUM7SUFDSixDQUFDO0lBRVEsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVRLElBQUksQ0FBQyxjQUF1QixLQUFLO1FBQ3hDLCtDQUErQztRQUMvQyw2Q0FBNkM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksSUFBSSxHQUFHLENBQUM7UUFFaEQsT0FBTyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3BELENBQUM7SUFFUSxrQkFBa0IsQ0FBQyxRQUFnQjtRQUMxQyxNQUFNLEdBQUcsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNwRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDMUMsQ0FBQztJQUVRLFNBQVMsQ0FBQyxLQUFVLEVBQUUsS0FBYSxFQUFFLElBQVksRUFBRSxXQUFtQjtRQUM3RSxJQUFJLEdBQUcsR0FBa0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzNGLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFUSxZQUFZLENBQUMsS0FBVSxFQUFFLEtBQWEsRUFBRSxJQUFZLEVBQUUsV0FBbUI7UUFDaEYsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksR0FBRyxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUNwQixHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUSxPQUFPO1FBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFUSxJQUFJO1FBQ1gsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFUSxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVRLFNBQVMsQ0FBQyxtQkFBMkIsQ0FBQztRQUM3QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN2RCxDQUFDO3lIQTNFVSxvQkFBb0Isa0RBTVQsYUFBYTs2SEFOeEIsb0JBQW9COztzR0FBcEIsb0JBQW9CO2tCQURoQyxVQUFVOzswQkFPTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtBUFBfQkFTRV9IUkVGLCBMb2NhdGlvblN0cmF0ZWd5fSBmcm9tICcuL2xvY2F0aW9uX3N0cmF0ZWd5JztcbmltcG9ydCB7TG9jYXRpb25DaGFuZ2VMaXN0ZW5lciwgUGxhdGZvcm1Mb2NhdGlvbn0gZnJvbSAnLi9wbGF0Zm9ybV9sb2NhdGlvbic7XG5pbXBvcnQge2pvaW5XaXRoU2xhc2gsIG5vcm1hbGl6ZVF1ZXJ5UGFyYW1zfSBmcm9tICcuL3V0aWwnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogQSB7QGxpbmsgTG9jYXRpb25TdHJhdGVneX0gdXNlZCB0byBjb25maWd1cmUgdGhlIHtAbGluayBMb2NhdGlvbn0gc2VydmljZSB0b1xuICogcmVwcmVzZW50IGl0cyBzdGF0ZSBpbiB0aGVcbiAqIFtoYXNoIGZyYWdtZW50XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Vbmlmb3JtX1Jlc291cmNlX0xvY2F0b3IjU3ludGF4KVxuICogb2YgdGhlIGJyb3dzZXIncyBVUkwuXG4gKlxuICogRm9yIGluc3RhbmNlLCBpZiB5b3UgY2FsbCBgbG9jYXRpb24uZ28oJy9mb28nKWAsIHRoZSBicm93c2VyJ3MgVVJMIHdpbGwgYmVjb21lXG4gKiBgZXhhbXBsZS5jb20jL2Zvb2AuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiAjIyMgRXhhbXBsZVxuICpcbiAqIHtAZXhhbXBsZSBjb21tb24vbG9jYXRpb24vdHMvaGFzaF9sb2NhdGlvbl9jb21wb25lbnQudHMgcmVnaW9uPSdMb2NhdGlvbkNvbXBvbmVudCd9XG4gKlxuICogQHB1YmxpY0FwaVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSGFzaExvY2F0aW9uU3RyYXRlZ3kgZXh0ZW5kcyBMb2NhdGlvblN0cmF0ZWd5IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBfYmFzZUhyZWY6IHN0cmluZyA9ICcnO1xuICBwcml2YXRlIF9yZW1vdmVMaXN0ZW5lckZuczogKCgpID0+IHZvaWQpW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9wbGF0Zm9ybUxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX0JBU0VfSFJFRikgX2Jhc2VIcmVmPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIGlmIChfYmFzZUhyZWYgIT0gbnVsbCkge1xuICAgICAgdGhpcy5fYmFzZUhyZWYgPSBfYmFzZUhyZWY7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB3aGlsZSAodGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLl9yZW1vdmVMaXN0ZW5lckZucy5wb3AoKSEoKTtcbiAgICB9XG4gIH1cblxuICBvdmVycmlkZSBvblBvcFN0YXRlKGZuOiBMb2NhdGlvbkNoYW5nZUxpc3RlbmVyKTogdm9pZCB7XG4gICAgdGhpcy5fcmVtb3ZlTGlzdGVuZXJGbnMucHVzaChcbiAgICAgIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ub25Qb3BTdGF0ZShmbiksXG4gICAgICB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLm9uSGFzaENoYW5nZShmbiksXG4gICAgKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGdldEJhc2VIcmVmKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2Jhc2VIcmVmO1xuICB9XG5cbiAgb3ZlcnJpZGUgcGF0aChpbmNsdWRlSGFzaDogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nIHtcbiAgICAvLyB0aGUgaGFzaCB2YWx1ZSBpcyBhbHdheXMgcHJlZml4ZWQgd2l0aCBhIGAjYFxuICAgIC8vIGFuZCBpZiBpdCBpcyBlbXB0eSB0aGVuIGl0IHdpbGwgc3RheSBlbXB0eVxuICAgIGNvbnN0IHBhdGggPSB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLmhhc2ggPz8gJyMnO1xuXG4gICAgcmV0dXJuIHBhdGgubGVuZ3RoID4gMCA/IHBhdGguc3Vic3RyaW5nKDEpIDogcGF0aDtcbiAgfVxuXG4gIG92ZXJyaWRlIHByZXBhcmVFeHRlcm5hbFVybChpbnRlcm5hbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSBqb2luV2l0aFNsYXNoKHRoaXMuX2Jhc2VIcmVmLCBpbnRlcm5hbCk7XG4gICAgcmV0dXJuIHVybC5sZW5ndGggPiAwID8gJyMnICsgdXJsIDogdXJsO1xuICB9XG5cbiAgb3ZlcnJpZGUgcHVzaFN0YXRlKHN0YXRlOiBhbnksIHRpdGxlOiBzdHJpbmcsIHBhdGg6IHN0cmluZywgcXVlcnlQYXJhbXM6IHN0cmluZykge1xuICAgIGxldCB1cmw6IHN0cmluZyB8IG51bGwgPSB0aGlzLnByZXBhcmVFeHRlcm5hbFVybChwYXRoICsgbm9ybWFsaXplUXVlcnlQYXJhbXMocXVlcnlQYXJhbXMpKTtcbiAgICBpZiAodXJsLmxlbmd0aCA9PSAwKSB7XG4gICAgICB1cmwgPSB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnBhdGhuYW1lO1xuICAgIH1cbiAgICB0aGlzLl9wbGF0Zm9ybUxvY2F0aW9uLnB1c2hTdGF0ZShzdGF0ZSwgdGl0bGUsIHVybCk7XG4gIH1cblxuICBvdmVycmlkZSByZXBsYWNlU3RhdGUoc3RhdGU6IGFueSwgdGl0bGU6IHN0cmluZywgcGF0aDogc3RyaW5nLCBxdWVyeVBhcmFtczogc3RyaW5nKSB7XG4gICAgbGV0IHVybCA9IHRoaXMucHJlcGFyZUV4dGVybmFsVXJsKHBhdGggKyBub3JtYWxpemVRdWVyeVBhcmFtcyhxdWVyeVBhcmFtcykpO1xuICAgIGlmICh1cmwubGVuZ3RoID09IDApIHtcbiAgICAgIHVybCA9IHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucGF0aG5hbWU7XG4gICAgfVxuICAgIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24ucmVwbGFjZVN0YXRlKHN0YXRlLCB0aXRsZSwgdXJsKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvcndhcmQoKTogdm9pZCB7XG4gICAgdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5mb3J3YXJkKCk7XG4gIH1cblxuICBvdmVycmlkZSBiYWNrKCk6IHZvaWQge1xuICAgIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uYmFjaygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgZ2V0U3RhdGUoKTogdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX3BsYXRmb3JtTG9jYXRpb24uZ2V0U3RhdGUoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGhpc3RvcnlHbyhyZWxhdGl2ZVBvc2l0aW9uOiBudW1iZXIgPSAwKTogdm9pZCB7XG4gICAgdGhpcy5fcGxhdGZvcm1Mb2NhdGlvbi5oaXN0b3J5R28/LihyZWxhdGl2ZVBvc2l0aW9uKTtcbiAgfVxufVxuIl19
@@ -3,10 +3,10 @@
3
3
  * Copyright Google LLC All Rights Reserved.
4
4
  *
5
5
  * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
6
+ * found in the LICENSE file at https://angular.dev/license
7
7
  */
8
8
  export { HashLocationStrategy } from './hash_location_strategy';
9
9
  export { Location } from './location';
10
10
  export { APP_BASE_HREF, LocationStrategy, PathLocationStrategy } from './location_strategy';
11
11
  export { BrowserPlatformLocation, LOCATION_INITIALIZED, PlatformLocation, } from './platform_location';
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xvY2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUdwQixnQkFBZ0IsR0FDakIsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQge0hhc2hMb2NhdGlvblN0cmF0ZWd5fSBmcm9tICcuL2hhc2hfbG9jYXRpb25fc3RyYXRlZ3knO1xuZXhwb3J0IHtMb2NhdGlvbiwgUG9wU3RhdGVFdmVudH0gZnJvbSAnLi9sb2NhdGlvbic7XG5leHBvcnQge0FQUF9CQVNFX0hSRUYsIExvY2F0aW9uU3RyYXRlZ3ksIFBhdGhMb2NhdGlvblN0cmF0ZWd5fSBmcm9tICcuL2xvY2F0aW9uX3N0cmF0ZWd5JztcbmV4cG9ydCB7XG4gIEJyb3dzZXJQbGF0Zm9ybUxvY2F0aW9uLFxuICBMT0NBVElPTl9JTklUSUFMSVpFRCxcbiAgTG9jYXRpb25DaGFuZ2VFdmVudCxcbiAgTG9jYXRpb25DaGFuZ2VMaXN0ZW5lcixcbiAgUGxhdGZvcm1Mb2NhdGlvbixcbn0gZnJvbSAnLi9wbGF0Zm9ybV9sb2NhdGlvbic7XG4iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2xvY2F0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQWdCLE1BQU0sWUFBWSxDQUFDO0FBQ25ELE9BQU8sRUFBQyxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUdwQixnQkFBZ0IsR0FDakIsTUFBTSxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmRldi9saWNlbnNlXG4gKi9cblxuZXhwb3J0IHtIYXNoTG9jYXRpb25TdHJhdGVneX0gZnJvbSAnLi9oYXNoX2xvY2F0aW9uX3N0cmF0ZWd5JztcbmV4cG9ydCB7TG9jYXRpb24sIFBvcFN0YXRlRXZlbnR9IGZyb20gJy4vbG9jYXRpb24nO1xuZXhwb3J0IHtBUFBfQkFTRV9IUkVGLCBMb2NhdGlvblN0cmF0ZWd5LCBQYXRoTG9jYXRpb25TdHJhdGVneX0gZnJvbSAnLi9sb2NhdGlvbl9zdHJhdGVneSc7XG5leHBvcnQge1xuICBCcm93c2VyUGxhdGZvcm1Mb2NhdGlvbixcbiAgTE9DQVRJT05fSU5JVElBTElaRUQsXG4gIExvY2F0aW9uQ2hhbmdlRXZlbnQsXG4gIExvY2F0aW9uQ2hhbmdlTGlzdGVuZXIsXG4gIFBsYXRmb3JtTG9jYXRpb24sXG59IGZyb20gJy4vcGxhdGZvcm1fbG9jYXRpb24nO1xuIl19