@vonage/vivid 5.19.0 → 5.20.0

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 (648) hide show
  1. package/accordion/definition.cjs +1 -1
  2. package/accordion/definition.js +1 -1
  3. package/accordion/index.cjs +2 -2
  4. package/accordion/index.js +2 -2
  5. package/accordion-item/definition.cjs +1 -1
  6. package/accordion-item/definition.js +1 -1
  7. package/action-group/definition.cjs +1 -1
  8. package/action-group/definition.js +1 -1
  9. package/action-group/index.cjs +2 -2
  10. package/action-group/index.js +2 -2
  11. package/alert/index.cjs +5 -5
  12. package/alert/index.js +8 -8
  13. package/audio-player/index.cjs +10 -10
  14. package/audio-player/index.js +28 -28
  15. package/avatar/index.cjs +7 -7
  16. package/avatar/index.js +14 -14
  17. package/banner/index.cjs +5 -5
  18. package/banner/index.js +9 -9
  19. package/breadcrumb/index.cjs +2 -2
  20. package/breadcrumb/index.js +3 -3
  21. package/breadcrumb-item/index.cjs +5 -5
  22. package/breadcrumb-item/index.js +1 -1
  23. package/bundled/affix.cjs +2 -2
  24. package/bundled/affix.js +11 -11
  25. package/bundled/anchored.cjs +1 -1
  26. package/bundled/anchored.js +6 -6
  27. package/bundled/aria-binding-directive.cjs +1 -1
  28. package/bundled/aria-binding-directive.js +88 -16
  29. package/bundled/base-color-picker.cjs +3 -3
  30. package/bundled/base-color-picker.js +5 -5
  31. package/bundled/base-progress.cjs +1 -1
  32. package/bundled/base-progress.js +3 -3
  33. package/bundled/breadcrumb-item.cjs +1 -1
  34. package/bundled/breadcrumb-item.js +3 -3
  35. package/bundled/button.cjs +1 -1
  36. package/bundled/button.js +3 -3
  37. package/bundled/calendar-event.cjs +1 -1
  38. package/bundled/calendar-event.js +4 -4
  39. package/bundled/calendar-picker.template.cjs +23 -24
  40. package/bundled/calendar-picker.template.js +35 -36
  41. package/bundled/char-count.cjs +2 -2
  42. package/bundled/char-count.js +8 -8
  43. package/bundled/children.cjs +1 -1
  44. package/bundled/children.js +11 -13
  45. package/bundled/definition.cjs +1 -1
  46. package/bundled/definition.js +2 -2
  47. package/bundled/definition10.cjs +3 -3
  48. package/bundled/definition10.js +5 -5
  49. package/bundled/definition11.cjs +2 -2
  50. package/bundled/definition11.js +7 -7
  51. package/bundled/definition12.cjs +15 -16
  52. package/bundled/definition12.js +22 -22
  53. package/bundled/definition13.cjs +3 -3
  54. package/bundled/definition13.js +5 -5
  55. package/bundled/definition14.cjs +2 -2
  56. package/bundled/definition14.js +2 -2
  57. package/bundled/definition15.cjs +7 -8
  58. package/bundled/definition15.js +14 -14
  59. package/bundled/definition16.cjs +3 -3
  60. package/bundled/definition16.js +8 -8
  61. package/bundled/definition17.cjs +7 -7
  62. package/bundled/definition17.js +13 -13
  63. package/bundled/definition18.cjs +18 -18
  64. package/bundled/definition18.js +36 -36
  65. package/bundled/definition19.cjs +2 -2
  66. package/bundled/definition19.js +1 -1
  67. package/bundled/definition2.cjs +10 -9
  68. package/bundled/definition2.js +24 -24
  69. package/bundled/definition20.cjs +19 -14
  70. package/bundled/definition20.js +51 -39
  71. package/bundled/definition21.cjs +6 -6
  72. package/bundled/definition21.js +18 -18
  73. package/bundled/definition22.cjs +3 -3
  74. package/bundled/definition22.js +7 -7
  75. package/bundled/definition23.cjs +4 -4
  76. package/bundled/definition23.js +8 -8
  77. package/bundled/definition24.cjs +8 -8
  78. package/bundled/definition24.js +17 -17
  79. package/bundled/definition3.cjs +1 -1
  80. package/bundled/definition3.js +5 -5
  81. package/bundled/definition4.cjs +9 -9
  82. package/bundled/definition4.js +16 -16
  83. package/bundled/definition5.cjs +4 -4
  84. package/bundled/definition5.js +5 -5
  85. package/bundled/definition6.cjs +6 -6
  86. package/bundled/definition6.js +21 -21
  87. package/bundled/definition7.cjs +2 -2
  88. package/bundled/definition7.js +4 -4
  89. package/bundled/definition8.cjs +4 -4
  90. package/bundled/definition8.js +7 -7
  91. package/bundled/definition9.cjs +10 -6
  92. package/bundled/definition9.js +48 -34
  93. package/bundled/delegates-aria.cjs +1 -1
  94. package/bundled/delegates-aria.js +20 -9
  95. package/bundled/divider.cjs +1 -1
  96. package/bundled/divider.js +3 -3
  97. package/bundled/form-associated.cjs +1 -1
  98. package/bundled/form-associated.js +6 -6
  99. package/bundled/form-element.cjs +1 -1
  100. package/bundled/form-element.js +1 -1
  101. package/bundled/host-semantics.cjs +1 -1
  102. package/bundled/host-semantics.js +2 -1
  103. package/bundled/kbd-shortcut.cjs +1 -0
  104. package/bundled/kbd-shortcut.js +14 -0
  105. package/bundled/linkable.cjs +2 -2
  106. package/bundled/linkable.js +5 -5
  107. package/bundled/listbox.cjs +1 -1
  108. package/bundled/listbox.js +4 -4
  109. package/bundled/localized.cjs +1 -1
  110. package/bundled/localized.js +3 -2
  111. package/bundled/mixins.cjs +16 -16
  112. package/bundled/mixins.js +39 -105
  113. package/bundled/picker-field.template.cjs +6 -6
  114. package/bundled/picker-field.template.js +15 -15
  115. package/bundled/platform.cjs +1 -0
  116. package/bundled/platform.js +9 -0
  117. package/bundled/ref.cjs +1 -1
  118. package/bundled/ref.js +2 -2
  119. package/bundled/render-in-light-dom.cjs +1 -0
  120. package/bundled/render-in-light-dom.js +57 -0
  121. package/bundled/repeat.cjs +1 -1
  122. package/bundled/repeat.js +117 -107
  123. package/bundled/slider.template.cjs +3 -3
  124. package/bundled/slider.template.js +1 -1
  125. package/bundled/slotted.cjs +1 -1
  126. package/bundled/slotted.js +2 -2
  127. package/bundled/time-selection-picker.template.cjs +4 -4
  128. package/bundled/time-selection-picker.template.js +18 -18
  129. package/bundled/vivid-element.cjs +3 -3
  130. package/bundled/vivid-element.js +626 -550
  131. package/bundled/when.cjs +1 -1
  132. package/bundled/when.js +2 -2
  133. package/bundled/with-contextual-help.cjs +1 -1
  134. package/bundled/with-contextual-help.js +1 -1
  135. package/bundled/with-error-text.cjs +1 -1
  136. package/bundled/with-error-text.js +1 -1
  137. package/bundled/with-success-text.cjs +1 -1
  138. package/bundled/with-success-text.js +1 -1
  139. package/calendar/index.cjs +8 -8
  140. package/calendar/index.js +9 -9
  141. package/calendar-event/index.cjs +4 -4
  142. package/calendar-event/index.js +1 -1
  143. package/card/index.cjs +24 -25
  144. package/card/index.js +29 -30
  145. package/color-picker/index.cjs +26 -26
  146. package/color-picker/index.js +90 -90
  147. package/combobox/index.cjs +13 -13
  148. package/combobox/index.js +22 -22
  149. package/country-group/index.cjs +4 -4
  150. package/country-group/index.js +3 -3
  151. package/custom-elements.json +940 -112
  152. package/data-grid/index.cjs +34 -34
  153. package/data-grid/index.js +37 -38
  154. package/date-picker/definition.cjs +1 -1
  155. package/date-picker/definition.js +1 -1
  156. package/date-picker/index.cjs +1 -1
  157. package/date-picker/index.js +2 -2
  158. package/date-range-picker/definition.cjs +1 -1
  159. package/date-range-picker/definition.js +1 -1
  160. package/date-range-picker/index.cjs +1 -1
  161. package/date-range-picker/index.js +4 -4
  162. package/date-time-picker/definition.cjs +1 -1
  163. package/date-time-picker/definition.js +1 -1
  164. package/date-time-picker/index.cjs +2 -2
  165. package/date-time-picker/index.js +6 -6
  166. package/dial-pad/definition.cjs +1 -1
  167. package/dial-pad/definition.js +1 -1
  168. package/dial-pad/index.cjs +8 -8
  169. package/dial-pad/index.js +15 -15
  170. package/dialog/definition.cjs +1 -1
  171. package/dialog/definition.js +1 -1
  172. package/dialog/index.cjs +16 -17
  173. package/dialog/index.js +29 -27
  174. package/divider/definition.cjs +1 -1
  175. package/divider/definition.js +1 -1
  176. package/empty-state/definition.cjs +1 -1
  177. package/empty-state/definition.js +1 -1
  178. package/empty-state/index.cjs +5 -5
  179. package/empty-state/index.js +9 -9
  180. package/fab/definition.cjs +1 -1
  181. package/fab/definition.js +1 -1
  182. package/fab/index.cjs +2 -2
  183. package/fab/index.js +6 -6
  184. package/file-picker/definition.cjs +1 -1
  185. package/file-picker/definition.js +1 -1
  186. package/file-picker/index.cjs +9 -10
  187. package/file-picker/index.js +21 -22
  188. package/flag/index.cjs +3 -3
  189. package/flag/index.js +7 -7
  190. package/header/definition.cjs +1 -1
  191. package/header/definition.js +1 -1
  192. package/header/index.cjs +2 -2
  193. package/header/index.js +8 -8
  194. package/icon/definition.cjs +1 -1
  195. package/icon/definition.js +1 -1
  196. package/index.cjs +184 -172
  197. package/index.js +52 -49
  198. package/kbd-key/definition.cjs +5 -0
  199. package/kbd-key/definition.js +2 -0
  200. package/kbd-key/index.cjs +5 -0
  201. package/kbd-key/index.js +65 -0
  202. package/kbd-shortcut/definition.cjs +5 -0
  203. package/kbd-shortcut/definition.js +2 -0
  204. package/kbd-shortcut/index.cjs +3 -0
  205. package/kbd-shortcut/index.js +27 -0
  206. package/layout/definition.cjs +1 -1
  207. package/layout/definition.js +1 -1
  208. package/layout/index.cjs +2 -2
  209. package/layout/index.js +2 -2
  210. package/lib/accordion-item/accordion-item.d.ts +18 -1
  211. package/lib/action-group/action-group.d.ts +18 -1
  212. package/lib/alert/alert.d.ts +36 -2
  213. package/lib/audio-player/audio-player.d.ts +18 -1
  214. package/lib/avatar/avatar.d.ts +18 -1
  215. package/lib/badge/badge.d.ts +18 -1
  216. package/lib/banner/banner.d.ts +54 -3
  217. package/lib/breadcrumb/breadcrumb.d.ts +18 -1
  218. package/lib/breadcrumb-item/breadcrumb-item.d.ts +18 -1
  219. package/lib/button/button.d.ts +54 -3
  220. package/lib/calendar-event/calendar-event.d.ts +18 -1
  221. package/lib/card/card.d.ts +18 -1
  222. package/lib/checkbox/checkbox.d.ts +107 -5
  223. package/lib/color-picker/color-picker.d.ts +126 -7
  224. package/lib/combobox/combobox.d.ts +124 -5
  225. package/lib/components.d.ts +4 -1
  226. package/lib/country-group/country-group.d.ts +36 -2
  227. package/lib/data-grid/data-grid-cell.d.ts +36 -2
  228. package/lib/data-grid/data-grid-row.d.ts +18 -1
  229. package/lib/date-picker/date-picker.d.ts +140 -4
  230. package/lib/date-range-picker/date-range-picker.d.ts +70 -2
  231. package/lib/date-time-picker/date-time-picker.d.ts +140 -4
  232. package/lib/dial-pad/dial-pad.d.ts +18 -1
  233. package/lib/dialog/dialog.d.ts +36 -2
  234. package/lib/divider/divider.d.ts +18 -1
  235. package/lib/fab/fab.d.ts +18 -1
  236. package/lib/file-picker/file-picker.d.ts +124 -5
  237. package/lib/header/header.d.ts +18 -1
  238. package/lib/icon/icon.template.d.ts +1 -2
  239. package/lib/kbd-key/definition.d.ts +4 -0
  240. package/lib/kbd-key/index.d.ts +1 -0
  241. package/lib/kbd-key/kbd-key.d.ts +18 -0
  242. package/lib/kbd-key/kbd-key.template.d.ts +4 -0
  243. package/lib/kbd-shortcut/definition.d.ts +3 -0
  244. package/lib/kbd-shortcut/index.d.ts +1 -0
  245. package/lib/kbd-shortcut/kbd-shortcut.d.ts +4 -0
  246. package/lib/kbd-shortcut/kbd-shortcut.template.d.ts +4 -0
  247. package/lib/menu/menu.d.ts +35 -1
  248. package/lib/menu-item/menu-item.d.ts +463 -2
  249. package/lib/nav/nav.d.ts +18 -1
  250. package/lib/nav-disclosure/nav-disclosure.d.ts +36 -2
  251. package/lib/nav-item/nav-item.d.ts +36 -2
  252. package/lib/note/note.d.ts +18 -1
  253. package/lib/number-field/number-field.d.ts +160 -7
  254. package/lib/option/option.d.ts +36 -2
  255. package/lib/pagination/pagination.d.ts +18 -1
  256. package/lib/platform-switch/definition.d.ts +3 -0
  257. package/lib/platform-switch/index.d.ts +1 -0
  258. package/lib/platform-switch/platform-switch.d.ts +4 -0
  259. package/lib/platform-switch/platform-switch.template.d.ts +4 -0
  260. package/lib/popover/popover.d.ts +36 -2
  261. package/lib/progress/progress.d.ts +18 -1
  262. package/lib/progress-ring/progress-ring.d.ts +18 -1
  263. package/lib/radio/radio.d.ts +53 -2
  264. package/lib/radio-group/radio-group.d.ts +18 -1
  265. package/lib/range-slider/range-slider.d.ts +52 -1
  266. package/lib/rich-text-editor/locale.d.ts +1 -0
  267. package/lib/rich-text-editor/popover.d.ts +1 -0
  268. package/lib/rich-text-editor/rich-text-editor.d.ts +17 -0
  269. package/lib/rich-text-editor/rte/utils/ui.d.ts +1 -0
  270. package/lib/searchable-select/option-tag.d.ts +18 -1
  271. package/lib/searchable-select/searchable-select.d.ts +160 -7
  272. package/lib/select/select.d.ts +160 -7
  273. package/lib/selectable-box/selectable-box.d.ts +18 -1
  274. package/lib/simple-color-picker/simple-color-picker.d.ts +35 -1
  275. package/lib/slider/slider.d.ts +53 -2
  276. package/lib/split-button/split-button.d.ts +54 -3
  277. package/lib/status/status.d.ts +18 -1
  278. package/lib/switch/switch.d.ts +36 -2
  279. package/lib/tab/tab.d.ts +54 -3
  280. package/lib/tab-panel/tab-panel.d.ts +18 -1
  281. package/lib/table/table-cell.d.ts +18 -1
  282. package/lib/table/table-header-cell.d.ts +18 -1
  283. package/lib/table/table-row.d.ts +18 -1
  284. package/lib/table/table-sorting-button.d.ts +18 -1
  285. package/lib/tag/tag.d.ts +54 -3
  286. package/lib/tag-group/tag-group.d.ts +18 -1
  287. package/lib/tag-name-map.d.ts +4 -1
  288. package/lib/text-area/text-area.d.ts +142 -6
  289. package/lib/text-field/text-field.d.ts +160 -7
  290. package/lib/time-picker/time-picker.d.ts +70 -2
  291. package/lib/toggletip/toggletip.d.ts +35 -1
  292. package/lib/tooltip/tooltip.d.ts +444 -0
  293. package/lib/tree-item/tree-item.d.ts +36 -2
  294. package/lib/tree-view/tree-view.d.ts +18 -1
  295. package/lib/video-player/video-player.d.ts +18 -1
  296. package/locales/de-DE.cjs +1 -0
  297. package/locales/de-DE.js +1 -0
  298. package/locales/en-GB.cjs +1 -0
  299. package/locales/en-GB.js +1 -0
  300. package/locales/en-US.cjs +1 -0
  301. package/locales/en-US.js +1 -0
  302. package/locales/ja-JP.cjs +1 -0
  303. package/locales/ja-JP.js +1 -0
  304. package/locales/zh-CN.cjs +1 -0
  305. package/locales/zh-CN.js +1 -0
  306. package/nav/definition.cjs +1 -1
  307. package/nav/definition.js +1 -1
  308. package/nav/index.cjs +2 -2
  309. package/nav/index.js +2 -2
  310. package/nav-disclosure/definition.cjs +1 -1
  311. package/nav-disclosure/definition.js +1 -1
  312. package/nav-disclosure/index.cjs +3 -4
  313. package/nav-disclosure/index.js +11 -11
  314. package/nav-item/definition.cjs +1 -1
  315. package/nav-item/definition.js +1 -1
  316. package/nav-item/index.cjs +2 -2
  317. package/nav-item/index.js +6 -6
  318. package/note/definition.cjs +1 -1
  319. package/note/definition.js +1 -1
  320. package/note/index.cjs +2 -2
  321. package/note/index.js +7 -7
  322. package/number-field/definition.cjs +1 -1
  323. package/number-field/definition.js +1 -1
  324. package/number-field/index.cjs +8 -9
  325. package/number-field/index.js +16 -17
  326. package/package.json +8 -8
  327. package/pagination/definition.cjs +1 -1
  328. package/pagination/definition.js +1 -1
  329. package/pagination/index.cjs +9 -9
  330. package/pagination/index.js +16 -16
  331. package/platform-switch/definition.cjs +5 -0
  332. package/platform-switch/definition.js +2 -0
  333. package/platform-switch/index.cjs +1 -0
  334. package/platform-switch/index.js +28 -0
  335. package/popover/definition.cjs +1 -1
  336. package/popover/definition.js +1 -1
  337. package/popover/index.cjs +6 -6
  338. package/popover/index.js +12 -12
  339. package/progress/definition.cjs +1 -1
  340. package/progress/definition.js +1 -1
  341. package/progress/index.cjs +4 -4
  342. package/progress/index.js +5 -5
  343. package/progress-ring/definition.cjs +1 -1
  344. package/progress-ring/definition.js +1 -1
  345. package/radio/definition.cjs +1 -1
  346. package/radio/definition.js +1 -1
  347. package/radio-group/definition.cjs +1 -1
  348. package/radio-group/definition.js +1 -1
  349. package/radio-group/index.cjs +5 -8
  350. package/radio-group/index.js +16 -16
  351. package/range-slider/definition.cjs +1 -1
  352. package/range-slider/definition.js +1 -1
  353. package/range-slider/index.cjs +5 -5
  354. package/range-slider/index.js +9 -9
  355. package/rich-text-editor/definition.cjs +1 -1
  356. package/rich-text-editor/definition.js +1 -1
  357. package/rich-text-editor/index.cjs +8 -6
  358. package/rich-text-editor/index.js +101 -78
  359. package/rich-text-view/definition.cjs +1 -1
  360. package/rich-text-view/definition.js +1 -1
  361. package/rich-text-view/index.cjs +1 -1
  362. package/rich-text-view/index.js +3 -3
  363. package/searchable-select/definition.cjs +1 -1
  364. package/searchable-select/definition.js +1 -1
  365. package/searchable-select/index.cjs +38 -40
  366. package/searchable-select/index.js +64 -64
  367. package/select/definition.cjs +1 -1
  368. package/select/definition.js +1 -1
  369. package/selectable-box/definition.cjs +1 -1
  370. package/selectable-box/definition.js +1 -1
  371. package/selectable-box/index.cjs +4 -4
  372. package/selectable-box/index.js +13 -13
  373. package/shared/aria/aria-binding-directive.d.ts +4 -4
  374. package/shared/aria/aria-mixin.d.ts +21 -3
  375. package/shared/aria/delegates-aria.d.ts +18 -1
  376. package/shared/aria/host-semantics.d.ts +18 -1
  377. package/shared/aria/idrefs-controller.d.ts +17 -0
  378. package/shared/color-picker/base-color-picker.d.ts +18 -1
  379. package/shared/feedback/feedback-message.d.ts +18 -1
  380. package/shared/feedback/mixins.d.ts +36 -2
  381. package/shared/foundation/button/button.d.ts +35 -1
  382. package/shared/foundation/form-associated/form-associated.d.ts +35 -1
  383. package/shared/foundation/vivid-element/vivid-element.d.ts +375 -0
  384. package/shared/framework/reactive-controller.d.ts +373 -0
  385. package/shared/patterns/affix.d.ts +36 -2
  386. package/shared/patterns/anchored.d.ts +34 -0
  387. package/shared/patterns/char-count/char-count.d.ts +18 -1
  388. package/shared/patterns/form-elements/form-element.d.ts +17 -0
  389. package/shared/patterns/form-elements/with-contextual-help.d.ts +18 -1
  390. package/shared/patterns/form-elements/with-error-text.d.ts +18 -1
  391. package/shared/patterns/form-elements/with-success-text.d.ts +18 -1
  392. package/shared/patterns/index.d.ts +1 -0
  393. package/shared/patterns/kbd-shortcut.d.ts +431 -0
  394. package/shared/patterns/linkable.d.ts +18 -1
  395. package/shared/patterns/localized.d.ts +35 -1
  396. package/shared/patterns/trapped-focus.d.ts +18 -1
  397. package/shared/picker-field/mixins/calendar-picker.d.ts +35 -1
  398. package/shared/picker-field/mixins/calendar-picker.template.d.ts +35 -1
  399. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +18 -1
  400. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +35 -1
  401. package/shared/picker-field/mixins/single-date-picker.d.ts +35 -1
  402. package/shared/picker-field/mixins/single-value-picker.d.ts +35 -1
  403. package/shared/picker-field/mixins/time-selection-picker.d.ts +35 -1
  404. package/shared/picker-field/mixins/time-selection-picker.template.d.ts +70 -2
  405. package/shared/picker-field/picker-field.d.ts +124 -5
  406. package/shared/templating/render-in-light-dom.d.ts +7 -20
  407. package/shared/utils/platform.d.ts +1 -0
  408. package/side-drawer/definition.cjs +1 -1
  409. package/side-drawer/definition.js +1 -1
  410. package/side-drawer/index.cjs +3 -3
  411. package/side-drawer/index.js +3 -3
  412. package/simple-color-picker/definition.cjs +1 -1
  413. package/simple-color-picker/definition.js +1 -1
  414. package/simple-color-picker/index.cjs +2 -2
  415. package/simple-color-picker/index.js +6 -6
  416. package/split-button/definition.cjs +1 -1
  417. package/split-button/definition.js +1 -1
  418. package/split-button/index.cjs +5 -6
  419. package/split-button/index.js +8 -8
  420. package/status/definition.cjs +1 -1
  421. package/status/definition.js +1 -1
  422. package/status/index.cjs +4 -4
  423. package/status/index.js +9 -9
  424. package/styles/core/all.css +24 -2
  425. package/styles/core/typography.css +24 -2
  426. package/styles/fonts/spezia-variable.css +6 -0
  427. package/styles/tokens/theme-dark.css +2 -0
  428. package/styles/tokens/theme-light.css +2 -0
  429. package/switch/definition.cjs +1 -1
  430. package/switch/definition.js +1 -1
  431. package/switch/index.cjs +3 -3
  432. package/switch/index.js +4 -4
  433. package/tab/definition.cjs +1 -1
  434. package/tab/definition.js +1 -1
  435. package/tab-panel/definition.cjs +1 -1
  436. package/tab-panel/definition.js +1 -1
  437. package/table/definition.cjs +1 -1
  438. package/table/definition.js +1 -1
  439. package/table/index.cjs +9 -9
  440. package/table/index.js +19 -19
  441. package/tabs/definition.cjs +1 -1
  442. package/tabs/definition.js +1 -1
  443. package/tabs/index.cjs +8 -8
  444. package/tabs/index.js +14 -14
  445. package/tag/definition.cjs +1 -1
  446. package/tag/definition.js +1 -1
  447. package/tag/index.cjs +8 -8
  448. package/tag/index.js +11 -11
  449. package/tag-group/definition.cjs +1 -1
  450. package/tag-group/definition.js +1 -1
  451. package/tag-group/index.cjs +2 -2
  452. package/tag-group/index.js +2 -2
  453. package/text-area/definition.cjs +1 -1
  454. package/text-area/definition.js +1 -1
  455. package/text-area/index.cjs +8 -9
  456. package/text-area/index.js +25 -26
  457. package/time-picker/definition.cjs +1 -1
  458. package/time-picker/definition.js +1 -1
  459. package/time-picker/index.cjs +1 -1
  460. package/time-picker/index.js +1 -1
  461. package/tree-item/definition.cjs +1 -1
  462. package/tree-item/definition.js +1 -1
  463. package/tree-view/definition.cjs +1 -1
  464. package/tree-view/definition.js +1 -1
  465. package/tree-view/index.cjs +4 -4
  466. package/tree-view/index.js +7 -7
  467. package/unbundled/affix.cjs +1 -1
  468. package/unbundled/affix.js +1 -1
  469. package/unbundled/aria-binding-directive.cjs +112 -2
  470. package/unbundled/aria-binding-directive.js +108 -4
  471. package/unbundled/calendar-picker.template.cjs +8 -10
  472. package/unbundled/calendar-picker.template.js +8 -10
  473. package/unbundled/char-count.cjs +1 -1
  474. package/unbundled/char-count.js +1 -1
  475. package/unbundled/definition.cjs +91 -17
  476. package/unbundled/definition.js +88 -14
  477. package/unbundled/definition10.js +1 -1
  478. package/unbundled/definition11.js +1 -1
  479. package/unbundled/definition12.cjs +15 -2
  480. package/unbundled/definition12.js +17 -4
  481. package/unbundled/definition13.js +1 -1
  482. package/unbundled/definition14.js +1 -1
  483. package/unbundled/definition15.cjs +1 -1
  484. package/unbundled/definition15.js +2 -2
  485. package/unbundled/definition16.cjs +1 -1
  486. package/unbundled/definition16.js +2 -2
  487. package/unbundled/definition17.cjs +1 -1
  488. package/unbundled/definition17.js +2 -2
  489. package/unbundled/definition18.cjs +1 -1
  490. package/unbundled/definition18.js +2 -2
  491. package/unbundled/definition19.js +1 -1
  492. package/unbundled/definition2.cjs +96 -77
  493. package/unbundled/definition2.js +94 -75
  494. package/unbundled/definition20.js +1 -1
  495. package/unbundled/definition21.js +1 -1
  496. package/unbundled/definition22.cjs +2 -3
  497. package/unbundled/definition22.js +3 -4
  498. package/unbundled/definition23.cjs +3 -3
  499. package/unbundled/definition23.js +5 -5
  500. package/unbundled/definition24.js +1 -1
  501. package/unbundled/definition25.cjs +1 -1
  502. package/unbundled/definition25.js +2 -2
  503. package/unbundled/definition26.cjs +8 -8
  504. package/unbundled/definition26.js +6 -6
  505. package/unbundled/definition27.cjs +26 -12
  506. package/unbundled/definition27.js +28 -14
  507. package/unbundled/definition28.cjs +1 -1
  508. package/unbundled/definition28.js +3 -3
  509. package/unbundled/definition29.cjs +1 -1
  510. package/unbundled/definition29.js +2 -2
  511. package/unbundled/definition3.cjs +154 -95
  512. package/unbundled/definition3.js +146 -93
  513. package/unbundled/definition30.cjs +1 -1
  514. package/unbundled/definition30.js +3 -3
  515. package/unbundled/definition31.cjs +1 -1
  516. package/unbundled/definition31.js +2 -2
  517. package/unbundled/definition32.js +1 -1
  518. package/unbundled/definition33.cjs +1 -1
  519. package/unbundled/definition33.js +2 -2
  520. package/unbundled/definition34.cjs +103 -65
  521. package/unbundled/definition34.js +102 -64
  522. package/unbundled/definition35.cjs +26 -326
  523. package/unbundled/definition35.js +24 -247
  524. package/unbundled/definition36.cjs +131 -25
  525. package/unbundled/definition36.js +124 -23
  526. package/unbundled/definition37.cjs +326 -51
  527. package/unbundled/definition37.js +324 -49
  528. package/unbundled/definition38.cjs +137 -317
  529. package/unbundled/definition38.js +135 -315
  530. package/unbundled/definition39.cjs +337 -173
  531. package/unbundled/definition39.js +334 -170
  532. package/unbundled/definition4.cjs +34 -159
  533. package/unbundled/definition4.js +25 -151
  534. package/unbundled/definition40.cjs +234 -339
  535. package/unbundled/definition40.js +230 -335
  536. package/unbundled/definition41.cjs +48 -271
  537. package/unbundled/definition41.js +44 -267
  538. package/unbundled/definition42.cjs +68 -49
  539. package/unbundled/definition42.js +65 -46
  540. package/unbundled/definition43.cjs +424 -56
  541. package/unbundled/definition43.js +422 -54
  542. package/unbundled/definition44.cjs +45 -428
  543. package/unbundled/definition44.js +42 -425
  544. package/unbundled/definition45.cjs +45 -54
  545. package/unbundled/definition45.js +42 -51
  546. package/unbundled/definition46.cjs +178 -30
  547. package/unbundled/definition46.js +175 -26
  548. package/unbundled/definition47.cjs +29 -94
  549. package/unbundled/definition47.js +25 -91
  550. package/unbundled/definition48.cjs +76 -36
  551. package/unbundled/definition48.js +73 -33
  552. package/unbundled/definition49.cjs +56 -23
  553. package/unbundled/definition49.js +54 -18
  554. package/unbundled/definition5.cjs +56 -38
  555. package/unbundled/definition5.js +52 -28
  556. package/unbundled/definition50.cjs +23 -40
  557. package/unbundled/definition50.js +18 -38
  558. package/unbundled/definition51.cjs +30 -338
  559. package/unbundled/definition51.js +30 -338
  560. package/unbundled/definition52.cjs +317 -187
  561. package/unbundled/definition52.js +314 -184
  562. package/unbundled/definition53.cjs +194 -289
  563. package/unbundled/definition53.js +189 -284
  564. package/unbundled/definition54.cjs +47 -54
  565. package/unbundled/definition54.js +44 -50
  566. package/unbundled/definition55.cjs +279 -133
  567. package/unbundled/definition55.js +277 -130
  568. package/unbundled/definition56.cjs +50 -262
  569. package/unbundled/definition56.js +48 -261
  570. package/unbundled/definition57.cjs +128 -460
  571. package/unbundled/definition57.js +126 -459
  572. package/unbundled/definition58.cjs +235 -3604
  573. package/unbundled/definition58.js +231 -3437
  574. package/unbundled/definition59.cjs +419 -729
  575. package/unbundled/definition59.js +417 -727
  576. package/unbundled/definition6.cjs +18 -64
  577. package/unbundled/definition6.js +15 -60
  578. package/unbundled/definition60.cjs +3666 -106
  579. package/unbundled/definition60.js +3498 -101
  580. package/unbundled/definition61.cjs +625 -878
  581. package/unbundled/definition61.js +619 -872
  582. package/unbundled/definition62.cjs +106 -108
  583. package/unbundled/definition62.js +103 -105
  584. package/unbundled/definition63.cjs +1045 -71
  585. package/unbundled/definition63.js +1041 -66
  586. package/unbundled/definition64.cjs +105 -173
  587. package/unbundled/definition64.js +102 -170
  588. package/unbundled/definition65.cjs +70 -113
  589. package/unbundled/definition65.js +66 -110
  590. package/unbundled/definition66.cjs +185 -54
  591. package/unbundled/definition66.js +182 -51
  592. package/unbundled/definition67.cjs +110 -77
  593. package/unbundled/definition67.js +111 -77
  594. package/unbundled/definition68.cjs +58 -21
  595. package/unbundled/definition68.js +56 -16
  596. package/unbundled/definition69.cjs +82 -75
  597. package/unbundled/definition69.js +81 -75
  598. package/unbundled/definition7.cjs +2 -2
  599. package/unbundled/definition7.js +3 -3
  600. package/unbundled/definition70.cjs +19 -349
  601. package/unbundled/definition70.js +15 -341
  602. package/unbundled/definition71.cjs +88 -26
  603. package/unbundled/definition71.js +86 -23
  604. package/unbundled/definition72.cjs +309 -119
  605. package/unbundled/definition72.js +234 -116
  606. package/unbundled/definition73.cjs +293 -229
  607. package/unbundled/definition73.js +287 -230
  608. package/unbundled/definition74.cjs +39 -30
  609. package/unbundled/definition74.js +29 -28
  610. package/unbundled/definition75.cjs +106 -121
  611. package/unbundled/definition75.js +104 -113
  612. package/unbundled/definition76.cjs +260 -179
  613. package/unbundled/definition76.js +258 -176
  614. package/unbundled/definition77.cjs +29 -514
  615. package/unbundled/definition77.js +27 -503
  616. package/unbundled/definition78.cjs +171 -0
  617. package/unbundled/definition78.js +147 -0
  618. package/unbundled/definition79.cjs +233 -0
  619. package/unbundled/definition79.js +214 -0
  620. package/unbundled/definition8.js +1 -1
  621. package/unbundled/definition80.cjs +533 -0
  622. package/unbundled/definition80.js +513 -0
  623. package/unbundled/definition9.cjs +1 -1
  624. package/unbundled/definition9.js +2 -2
  625. package/unbundled/delegates-aria.cjs +15 -1
  626. package/unbundled/delegates-aria.js +17 -3
  627. package/unbundled/host-semantics.cjs +2 -1
  628. package/unbundled/host-semantics.js +2 -1
  629. package/unbundled/kbd-shortcut.cjs +26 -0
  630. package/unbundled/kbd-shortcut.js +20 -0
  631. package/unbundled/mixins.cjs +7 -77
  632. package/unbundled/mixins.js +6 -64
  633. package/unbundled/platform.cjs +17 -0
  634. package/unbundled/platform.js +12 -0
  635. package/unbundled/randomId.cjs +47 -0
  636. package/unbundled/randomId.js +35 -0
  637. package/unbundled/time-selection-picker.template.js +1 -1
  638. package/unbundled/vivid-element.cjs +82 -9
  639. package/unbundled/vivid-element.js +63 -8
  640. package/video-player/definition.cjs +1 -1
  641. package/video-player/definition.js +1 -1
  642. package/video-player/index.cjs +3 -3
  643. package/video-player/index.js +5 -5
  644. package/visually-hidden/definition.cjs +1 -1
  645. package/visually-hidden/definition.js +1 -1
  646. package/vivid.api.json +604 -6
  647. package/bundled/normalize.cjs +0 -1
  648. package/bundled/normalize.js +0 -7
@@ -205,7 +205,7 @@ ${Id(e.uri)}
205
205
  ${af(e)}`),t.map&&!t.map.bytes&&(this.logger_(`going to request init segment.`),this.appendInitSegment_={video:!0,audio:!0}),e.abortRequests=Cd({xhr:this.vhs_.xhr,xhrOptions:this.xhrOptions_,decryptionWorker:this.decrypter_,segment:t,abortFn:this.handleAbort_.bind(this,e),progressFn:this.handleProgress_.bind(this),trackInfoFn:this.handleTrackInfo_.bind(this),timingInfoFn:this.handleTimingInfo_.bind(this),videoSegmentTimingInfoFn:this.handleSegmentTimingInfo_.bind(this,`video`,e.requestId),audioSegmentTimingInfoFn:this.handleSegmentTimingInfo_.bind(this,`audio`,e.requestId),captionsFn:this.handleCaptions_.bind(this),isEndOfTimeline:a,endedTimelineFn:()=>{this.logger_(`received endedtimeline callback`)},id3Fn:this.handleId3_.bind(this),dataFn:this.handleData_.bind(this),doneFn:this.segmentRequestFinished_.bind(this),onTransmuxerLog:({message:t,level:n,stream:r})=>{this.logger_(`${af(e)} logged from transmuxer stream ${r} as a ${n}: ${t}`)},triggerSegmentEventFn:({type:e,segment:t,keyInfo:n,trackInfo:r,timingInfo:i})=>{let a={segmentInfo:hf({segment:t})};n&&(a.keyInfo=n),r&&(a.trackInfo=r),i&&(a.timingInfo=i),this.trigger({type:e,metadata:a})}})}trimBackBuffer_(e){let t=rf(this.seekable_(),this.currentTime_(),this.playlist_.targetDuration||10);t>0&&this.remove(0,t)}createSimplifiedSegmentObj_(e){let t=e.segment,n=e.part,r=e.segment.key||e.segment.map&&e.segment.map.key,i=e.segment.map&&!e.segment.map.bytes,a={resolvedUri:n?n.resolvedUri:t.resolvedUri,byterange:n?n.byterange:t.byterange,requestId:e.requestId,transmuxer:e.transmuxer,audioAppendStart:e.audioAppendStart,gopsToAlignWith:e.gopsToAlignWith,part:e.part,type:this.loaderType_,start:e.startOfSegment,duration:e.duration,isEncrypted:r,isMediaInitialization:i},o=e.playlist.segments[e.mediaIndex-1];if(o&&o.timeline===t.timeline&&(o.videoTimingInfo?a.baseStartTime=o.videoTimingInfo.transmuxedDecodeEnd:o.audioTimingInfo&&(a.baseStartTime=o.audioTimingInfo.transmuxedDecodeEnd)),t.key){let n=t.key.iv||new Uint32Array([0,0,0,e.mediaIndex+e.playlist.mediaSequence]);a.key=this.segmentKey(t.key),a.key.iv=n}return t.map&&(a.map=this.initSegmentForMap(t.map)),a}saveTransferStats_(e){this.mediaRequests+=1,e&&(this.mediaBytesTransferred+=e.bytesReceived,this.mediaTransferDuration+=e.roundTripTime)}saveBandwidthRelatedStats_(e,t){if(this.pendingSegment_.byteLength=t.bytesReceived,e<tf){this.logger_(`Ignoring segment's bandwidth because its duration of ${e} is less than the min to record ${tf}`);return}let n={bandwidthInfo:{from:this.bandwidth,to:t.bandwidth}};this.trigger({type:`bandwidthupdated`,metadata:n}),this.bandwidth=t.bandwidth,this.roundTrip=t.roundTripTime}handleTimeout_(){this.mediaRequestsTimedout+=1,this.bandwidth=1,this.roundTrip=NaN,this.trigger(`bandwidthupdate`),this.trigger(`timeout`)}segmentRequestFinished_(e,t,n){if(this.callQueue_.length){this.callQueue_.push(this.segmentRequestFinished_.bind(this,e,t,n));return}if(this.saveTransferStats_(t.stats),!this.pendingSegment_||t.requestId!==this.pendingSegment_.requestId)return;if(e){if(this.pendingSegment_=null,this.state=`READY`,e.code===id.ABORTED)return;if(this.pause(),e.code===id.TIMEOUT){this.handleTimeout_();return}this.mediaRequestsErrored+=1,this.error(e),this.trigger(`error`);return}let r=this.pendingSegment_;this.saveBandwidthRelatedStats_(r.duration,t.stats),r.endOfAllRequests=t.endOfAllRequests,n.gopInfo&&(this.gopBuffer_=Jd(this.gopBuffer_,n.gopInfo,this.safeAppend_)),this.state=`APPENDING`,this.trigger(`appending`),this.waitForAppendsToComplete_(r)}setTimeMapping_(e){let t=this.syncController_.mappingForTimeline(e);t!==null&&(this.timeMapping_=t)}updateMediaSecondsLoaded_(e){typeof e.start==`number`&&typeof e.end==`number`?this.mediaSecondsLoaded+=e.end-e.start:this.mediaSecondsLoaded+=e.duration}shouldUpdateTransmuxerTimestampOffset_(e){return e===null?!1:this.loaderType_===`main`&&e!==this.sourceUpdater_.videoTimestampOffset()||!this.audioDisabled_&&e!==this.sourceUpdater_.audioTimestampOffset()}trueSegmentStart_({currentStart:e,playlist:t,mediaIndex:n,firstVideoFrameTimeForData:r,currentVideoTimestampOffset:i,useVideoTimingInfo:a,videoTimingInfo:o,audioTimingInfo:s}){if(e!==void 0)return e;if(!a)return s.start;let c=t.segments[n-1];return n===0||!c||c.start===void 0||c.end!==r+i?r:o.start}waitForAppendsToComplete_(e){let t=this.getCurrentMediaInfo_(e);if(!t){this.error({message:`No starting media returned, likely due to an unsupported media format.`,playlistExclusionDuration:1/0}),this.trigger(`error`);return}let{hasAudio:n,hasVideo:r,isMuxed:i}=t,a=this.loaderType_===`main`&&r,o=!this.audioDisabled_&&n&&!i;if(e.waitingOnAppends=0,!e.hasAppendedData_){!e.timingInfo&&typeof e.timestampOffset==`number`&&(this.isPendingTimestampOffset_=!0),e.timingInfo={start:0},e.waitingOnAppends++,this.isPendingTimestampOffset_||(this.updateSourceBufferTimestampOffset_(e),this.processMetadataQueue_()),this.checkAppendsDone_(e);return}a&&e.waitingOnAppends++,o&&e.waitingOnAppends++,a&&this.sourceUpdater_.videoQueueCallback(this.checkAppendsDone_.bind(this,e)),o&&this.sourceUpdater_.audioQueueCallback(this.checkAppendsDone_.bind(this,e))}checkAppendsDone_(e){this.checkForAbort_(e.requestId)||(e.waitingOnAppends--,e.waitingOnAppends===0&&this.handleAppendsDone_())}checkForIllegalMediaSwitch(e){let t=nf(this.loaderType_,this.getCurrentMediaInfo_(),e);return t?(this.error({message:t,playlistExclusionDuration:1/0}),this.trigger(`error`),!0):!1}updateSourceBufferTimestampOffset_(e){if(e.timestampOffset===null||typeof e.timingInfo.start!=`number`||e.changedTimestampOffset||this.loaderType_!==`main`)return;let t=!1;e.timestampOffset-=this.getSegmentStartTimeForTimestampOffsetCalculation_({videoTimingInfo:e.segment.videoTimingInfo,audioTimingInfo:e.segment.audioTimingInfo,timingInfo:e.timingInfo}),e.changedTimestampOffset=!0,e.timestampOffset!==this.sourceUpdater_.videoTimestampOffset()&&(this.sourceUpdater_.videoTimestampOffset(e.timestampOffset),t=!0),e.timestampOffset!==this.sourceUpdater_.audioTimestampOffset()&&(this.sourceUpdater_.audioTimestampOffset(e.timestampOffset),t=!0),t&&this.trigger(`timestampoffset`)}getSegmentStartTimeForTimestampOffsetCalculation_({videoTimingInfo:e,audioTimingInfo:t,timingInfo:n}){return this.useDtsForTimestampOffset_?e&&typeof e.transmuxedDecodeStart==`number`?e.transmuxedDecodeStart:t&&typeof t.transmuxedDecodeStart==`number`?t.transmuxedDecodeStart:n.start:n.start}updateTimingInfoEnd_(e){e.timingInfo=e.timingInfo||{};let t=this.getMediaInfo_(),n=this.loaderType_===`main`&&t&&t.hasVideo&&e.videoTimingInfo?e.videoTimingInfo:e.audioTimingInfo;n&&(e.timingInfo.end=typeof n.end==`number`?n.end:n.start+e.duration)}handleAppendsDone_(){if(this.pendingSegment_){let e={segmentInfo:hf({type:this.loaderType_,segment:this.pendingSegment_})};this.trigger({type:`appendsdone`,metadata:e})}if(!this.pendingSegment_){this.state=`READY`,this.paused()||this.monitorBuffer_();return}let e=this.pendingSegment_;e.part&&e.part.syncInfo?e.part.syncInfo.markAppended():e.segment.syncInfo&&e.segment.syncInfo.markAppended(),this.updateTimingInfoEnd_(e),this.shouldSaveSegmentTimingInfo_&&this.syncController_.saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:this.loaderType_===`main`});let t=mf(e,this.sourceType_);if(t&&(t.severity===`warn`?Z.log.warn(t.message):this.logger_(t.message)),this.recordThroughput_(e),this.pendingSegment_=null,this.state=`READY`,e.isSyncRequest&&(this.trigger(`syncinfoupdate`),!e.hasAppendedData_)){this.logger_(`Throwing away un-appended sync request ${af(e)}`);return}this.logger_(`Appended ${af(e)}`),this.addSegmentMetadataCue_(e),this.fetchAtBuffer_=!0,this.currentTimeline_!==e.timeline&&(this.timelineChangeController_.lastTimelineChange({type:this.loaderType_,from:this.currentTimeline_,to:e.timeline}),this.loaderType_===`main`&&!this.audioDisabled_&&this.timelineChangeController_.lastTimelineChange({type:`audio`,from:this.currentTimeline_,to:e.timeline})),this.currentTimeline_=e.timeline,this.trigger(`syncinfoupdate`);let n=e.segment,r=e.part,i=n.end&&this.currentTime_()-n.end>e.playlist.targetDuration*3,a=r&&r.end&&this.currentTime_()-r.end>e.playlist.partTargetDuration*3;if(i||a){this.logger_(`bad ${i?`segment`:`part`} ${af(e)}`),this.resetEverything();return}this.mediaIndex!==null&&this.trigger(`bandwidthupdate`),this.trigger(`progress`),this.mediaIndex=e.mediaIndex,this.partIndex=e.partIndex,this.isEndOfStream_(e.mediaIndex,e.playlist,e.partIndex)&&this.endOfStream(),this.trigger(`appended`),e.hasAppendedData_&&this.mediaAppends++,this.paused()||this.monitorBuffer_()}recordThroughput_(e){if(e.duration<tf){this.logger_(`Ignoring segment's throughput because its duration of ${e.duration} is less than the min to record ${tf}`);return}let t=this.throughput.rate,n=Date.now()-e.endOfAllRequests+1,r=Math.floor(e.byteLength/n*8*1e3);this.throughput.rate+=(r-t)/++this.throughput.count}addSegmentMetadataCue_(e){if(!this.segmentMetadataTrack_)return;let t=e.segment,n=t.start,r=t.end;if(!ef(n)||!ef(r))return;Gd(n,r,this.segmentMetadataTrack_);let i=b.default.WebKitDataCue||b.default.VTTCue,a={custom:t.custom,dateTimeObject:t.dateTimeObject,dateTimeString:t.dateTimeString,programDateTime:t.programDateTime,bandwidth:e.playlist.attributes.BANDWIDTH,resolution:e.playlist.attributes.RESOLUTION,codecs:e.playlist.attributes.CODECS,byteLength:e.byteLength,uri:e.uri,timeline:e.timeline,playlist:e.playlist.id,start:n,end:r},o=new i(n,r,JSON.stringify(a));o.value=a,this.segmentMetadataTrack_.addCue(o)}};function _f(){}var vf=function(e){return typeof e==`string`?e.replace(/./,e=>e.toUpperCase()):e},yf=[`video`,`audio`],bf=(e,t)=>{let n=t[`${e}Buffer`];return n&&n.updating||t.queuePending[e]},xf=(e,t)=>{for(let n=0;n<t.length;n++){let r=t[n];if(r.type===`mediaSource`)return null;if(r.type===e)return n}return null},Sf=(e,t)=>{if(t.queue.length===0)return;let n=0,r=t.queue[n];if(r.type===`mediaSource`){!t.updating()&&t.mediaSource.readyState!==`closed`&&(t.queue.shift(),r.action(t),r.doneFn&&r.doneFn(),Sf(`audio`,t),Sf(`video`,t));return}if(e!==`mediaSource`&&!(!t.ready()||t.mediaSource.readyState===`closed`||bf(e,t))){if(r.type!==e){if(n=xf(e,t.queue),n===null)return;r=t.queue[n]}if(t.queue.splice(n,1),t.queuePending[e]=r,r.action(e,t),!r.doneFn){t.queuePending[e]=null,Sf(e,t);return}}},Cf=(e,t)=>{let n=t[`${e}Buffer`],r=vf(e);n&&(n.removeEventListener(`updateend`,t[`on${r}UpdateEnd_`]),n.removeEventListener(`error`,t[`on${r}Error_`]),t.codecs[e]=null,t[`${e}Buffer`]=null)},wf=(e,t)=>e&&t&&Array.prototype.indexOf.call(e.sourceBuffers,t)!==-1,Tf={appendBuffer:(e,t,n)=>(r,i)=>{let a=i[`${r}Buffer`];if(wf(i.mediaSource,a)){i.logger_(`Appending segment ${t.mediaIndex}'s ${e.length} bytes to ${r}Buffer`);try{a.appendBuffer(e)}catch(e){i.logger_(`Error with code ${e.code} `+(e.code===Ll?`(QUOTA_EXCEEDED_ERR) `:``)+`when appending segment ${t.mediaIndex} to ${r}Buffer`),i.queuePending[r]=null,n(e)}}},remove:(e,t)=>(n,r)=>{let i=r[`${n}Buffer`];if(wf(r.mediaSource,i)){r.logger_(`Removing ${e} to ${t} from ${n}Buffer`);try{i.remove(e,t)}catch{r.logger_(`Remove ${e} to ${t} from ${n}Buffer failed`)}}},timestampOffset:e=>(t,n)=>{let r=n[`${t}Buffer`];wf(n.mediaSource,r)&&(n.logger_(`Setting ${t}timestampOffset to ${e}`),r.timestampOffset=e)},callback:e=>(t,n)=>{e()},endOfStream:e=>t=>{if(t.mediaSource.readyState===`open`){t.logger_(`Calling mediaSource endOfStream(${e||``})`);try{t.mediaSource.endOfStream(e)}catch(e){Z.log.warn(`Failed to call media source endOfStream`,e)}}},duration:e=>t=>{t.logger_(`Setting mediaSource duration to ${e}`);try{t.mediaSource.duration=e}catch(e){Z.log.warn(`Failed to set media source duration`,e)}},abort:()=>(e,t)=>{if(t.mediaSource.readyState!==`open`)return;let n=t[`${e}Buffer`];if(wf(t.mediaSource,n)){t.logger_(`calling abort on ${e}Buffer`);try{n.abort()}catch(t){Z.log.warn(`Failed to abort on ${e}Buffer`,t)}}},addSourceBuffer:(e,t)=>n=>{let r=vf(e),i=_e(t);n.logger_(`Adding ${e}Buffer with codec ${t} to mediaSource`);let a=n.mediaSource.addSourceBuffer(i);a.addEventListener(`updateend`,n[`on${r}UpdateEnd_`]),a.addEventListener(`error`,n[`on${r}Error_`]),n.codecs[e]=t,n[`${e}Buffer`]=a},removeSourceBuffer:e=>t=>{let n=t[`${e}Buffer`];if(Cf(e,t),wf(t.mediaSource,n)){t.logger_(`Removing ${e}Buffer with codec ${t.codecs[e]} from mediaSource`);try{t.mediaSource.removeSourceBuffer(n)}catch(t){Z.log.warn(`Failed to removeSourceBuffer ${e}Buffer`,t)}}},changeType:e=>(t,n)=>{let r=n[`${t}Buffer`],i=_e(e);if(!wf(n.mediaSource,r))return;let a=e.substring(0,e.indexOf(`.`)),o=n.codecs[t];if(o.substring(0,o.indexOf(`.`))===a)return;let s={codecsChangeInfo:{from:o,to:e}};n.trigger({type:`codecschange`,metadata:s}),n.logger_(`changing ${t}Buffer codec from ${o} to ${e}`);try{r.changeType(i),n.codecs[t]=e}catch(e){s.errorType=Z.Error.StreamingCodecsChangeError,s.error=e,e.metadata=s,n.error_=e,n.trigger(`error`),Z.log.warn(`Failed to changeType on ${t}Buffer`,e)}}},Ef=({type:e,sourceUpdater:t,action:n,doneFn:r,name:i})=>{t.queue.push({type:e,action:n,doneFn:r,name:i}),Sf(e,t)},Df=(e,t)=>n=>{let r=Vc(t[`${e}Buffered`]());if(t.logger_(`received "updateend" event for ${e} Source Buffer: `,r),t.queuePending[e]){let n=t.queuePending[e].doneFn;t.queuePending[e]=null,n&&n(t[`${e}Error_`])}Sf(e,t)},Of=class extends Z.EventTarget{constructor(e){super(),this.mediaSource=e,this.sourceopenListener_=()=>Sf(`mediaSource`,this),this.mediaSource.addEventListener(`sourceopen`,this.sourceopenListener_),this.logger_=zc(`SourceUpdater`),this.audioTimestampOffset_=0,this.videoTimestampOffset_=0,this.queue=[],this.queuePending={audio:null,video:null},this.delayedAudioAppendQueue_=[],this.videoAppendQueued_=!1,this.codecs={},this.onVideoUpdateEnd_=Df(`video`,this),this.onAudioUpdateEnd_=Df(`audio`,this),this.onVideoError_=e=>{this.videoError_=e},this.onAudioError_=e=>{this.audioError_=e},this.createdSourceBuffers_=!1,this.initializedEme_=!1,this.triggeredReady_=!1}initializedEme(){this.initializedEme_=!0,this.triggerReady()}hasCreatedSourceBuffers(){return this.createdSourceBuffers_}hasInitializedAnyEme(){return this.initializedEme_}ready(){return this.hasCreatedSourceBuffers()&&this.hasInitializedAnyEme()}createSourceBuffers(e){this.hasCreatedSourceBuffers()||(this.addOrChangeSourceBuffers(e),this.createdSourceBuffers_=!0,this.trigger(`createdsourcebuffers`),this.triggerReady())}triggerReady(){this.ready()&&!this.triggeredReady_&&(this.triggeredReady_=!0,this.trigger(`ready`))}addSourceBuffer(e,t){Ef({type:`mediaSource`,sourceUpdater:this,action:Tf.addSourceBuffer(e,t),name:`addSourceBuffer`})}abort(e){Ef({type:e,sourceUpdater:this,action:Tf.abort(e),name:`abort`})}removeSourceBuffer(e){if(!this.canRemoveSourceBuffer()){Z.log.error(`removeSourceBuffer is not supported!`);return}Ef({type:`mediaSource`,sourceUpdater:this,action:Tf.removeSourceBuffer(e),name:`removeSourceBuffer`})}canRemoveSourceBuffer(){return!Z.browser.IS_FIREFOX&&b.default.MediaSource&&b.default.MediaSource.prototype&&typeof b.default.MediaSource.prototype.removeSourceBuffer==`function`}static canChangeType(){return b.default.SourceBuffer&&b.default.SourceBuffer.prototype&&typeof b.default.SourceBuffer.prototype.changeType==`function`}canChangeType(){return this.constructor.canChangeType()}changeType(e,t){if(!this.canChangeType()){Z.log.error(`changeType is not supported!`);return}Ef({type:e,sourceUpdater:this,action:Tf.changeType(t),name:`changeType`})}addOrChangeSourceBuffers(e){if(!e||typeof e!=`object`||Object.keys(e).length===0)throw Error(`Cannot addOrChangeSourceBuffers to undefined codecs`);Object.keys(e).forEach(t=>{let n=e[t];if(!this.hasCreatedSourceBuffers())return this.addSourceBuffer(t,n);this.canChangeType()&&this.changeType(t,n)})}appendBuffer(e,t){let{segmentInfo:n,type:r,bytes:i}=e;if(this.processedAppend_=!0,r===`audio`&&this.videoBuffer&&!this.videoAppendQueued_){this.delayedAudioAppendQueue_.push([e,t]),this.logger_(`delayed audio append of ${i.length} until video append`);return}let a=t;if(Ef({type:r,sourceUpdater:this,action:Tf.appendBuffer(i,n||{mediaIndex:-1},a),doneFn:t,name:`appendBuffer`}),r===`video`){if(this.videoAppendQueued_=!0,!this.delayedAudioAppendQueue_.length)return;let e=this.delayedAudioAppendQueue_.slice();this.logger_(`queuing delayed audio ${e.length} appendBuffers`),this.delayedAudioAppendQueue_.length=0,e.forEach(e=>{this.appendBuffer.apply(this,e)})}}audioBuffered(){return wf(this.mediaSource,this.audioBuffer)&&this.audioBuffer.buffered?this.audioBuffer.buffered:Bc()}videoBuffered(){return wf(this.mediaSource,this.videoBuffer)&&this.videoBuffer.buffered?this.videoBuffer.buffered:Bc()}buffered(){let e=wf(this.mediaSource,this.videoBuffer)?this.videoBuffer:null,t=wf(this.mediaSource,this.audioBuffer)?this.audioBuffer:null;return t&&!e?this.audioBuffered():e&&!t?this.videoBuffered():Jc(this.audioBuffered(),this.videoBuffered())}setDuration(e,t=_f){Ef({type:`mediaSource`,sourceUpdater:this,action:Tf.duration(e),name:`duration`,doneFn:t})}endOfStream(e=null,t=_f){typeof e!=`string`&&(e=void 0),Ef({type:`mediaSource`,sourceUpdater:this,action:Tf.endOfStream(e),name:`endOfStream`,doneFn:t})}removeAudio(e,t,n=_f){if(!this.audioBuffered().length||this.audioBuffered().end(0)===0){n();return}Ef({type:`audio`,sourceUpdater:this,action:Tf.remove(e,t),doneFn:n,name:`remove`})}removeVideo(e,t,n=_f){if(!this.videoBuffered().length||this.videoBuffered().end(0)===0){n();return}Ef({type:`video`,sourceUpdater:this,action:Tf.remove(e,t),doneFn:n,name:`remove`})}updating(){return!!(bf(`audio`,this)||bf(`video`,this))}audioTimestampOffset(e){return e!==void 0&&this.audioBuffer&&this.audioTimestampOffset_!==e&&(Ef({type:`audio`,sourceUpdater:this,action:Tf.timestampOffset(e),name:`timestampOffset`}),this.audioTimestampOffset_=e),this.audioTimestampOffset_}videoTimestampOffset(e){return e!==void 0&&this.videoBuffer&&this.videoTimestampOffset_!==e&&(Ef({type:`video`,sourceUpdater:this,action:Tf.timestampOffset(e),name:`timestampOffset`}),this.videoTimestampOffset_=e),this.videoTimestampOffset_}audioQueueCallback(e){this.audioBuffer&&Ef({type:`audio`,sourceUpdater:this,action:Tf.callback(e),name:`callback`})}videoQueueCallback(e){this.videoBuffer&&Ef({type:`video`,sourceUpdater:this,action:Tf.callback(e),name:`callback`})}dispose(){this.trigger(`dispose`),yf.forEach(e=>{this.abort(e),this.canRemoveSourceBuffer()?this.removeSourceBuffer(e):this[`${e}QueueCallback`](()=>Cf(e,this))}),this.videoAppendQueued_=!1,this.delayedAudioAppendQueue_.length=0,this.sourceopenListener_&&this.mediaSource.removeEventListener(`sourceopen`,this.sourceopenListener_),this.off()}},kf=e=>decodeURIComponent(escape(String.fromCharCode.apply(null,e))),Af=e=>{let t=new Uint8Array(e);return Array.from(t).map(e=>e.toString(16).padStart(2,`0`)).join(``)},jf=new Uint8Array(`
206
206
 
207
207
  `.split(``).map(e=>e.charCodeAt(0))),Mf=class extends Error{constructor(){super(`Trying to parse received VTT cues, but there is no WebVTT. Make sure vtt.js is loaded.`)}},Nf=class extends gf{constructor(e,t={}){super(e,t),this.mediaSource_=null,this.subtitlesTrack_=null,this.featuresNativeTextTracks_=e.featuresNativeTextTracks,this.loadVttJs=e.loadVttJs,this.shouldSaveSegmentTimingInfo_=!1}buffered_(){if(!this.subtitlesTrack_||!this.subtitlesTrack_.cues||!this.subtitlesTrack_.cues.length)return Bc();let e=this.subtitlesTrack_.cues,t=e[0].startTime,n=e[e.length-1].startTime;return Bc([[t,n]])}initSegmentForMap(e,t=!1){if(!e)return null;let n=pu(e),r=this.initSegments_[n];if(t&&!r&&e.bytes){let t=jf.byteLength+e.bytes.byteLength,i=new Uint8Array(t);i.set(e.bytes),i.set(jf,e.bytes.byteLength),this.initSegments_[n]=r={resolvedUri:e.resolvedUri,byterange:e.byterange,bytes:i}}return r||e}couldBeginLoading_(){return this.playlist_&&this.subtitlesTrack_&&!this.paused()}init_(){return this.state=`READY`,this.resetEverything(),this.monitorBuffer_()}track(e){return e===void 0?this.subtitlesTrack_:(this.subtitlesTrack_=e,this.state===`INIT`&&this.couldBeginLoading_()&&this.init_(),this.subtitlesTrack_)}remove(e,t){Gd(e,t,this.subtitlesTrack_)}fillBuffer_(){let e=this.chooseNextRequest_();if(e){if(this.syncController_.timestampOffsetForTimeline(e.timeline)===null){this.syncController_.one(`timestampoffset`,()=>{this.state=`READY`,this.paused()||this.monitorBuffer_()}),this.state=`WAITING_ON_TIMELINE`;return}this.loadSegment_(e)}}timestampOffsetForSegment_(){return null}chooseNextRequest_(){return this.skipEmptySegments_(super.chooseNextRequest_())}skipEmptySegments_(e){for(;e&&e.segment.empty;){if(e.mediaIndex+1>=e.playlist.segments.length){e=null;break}e=this.generateSegmentInfo_({playlist:e.playlist,mediaIndex:e.mediaIndex+1,startOfSegment:e.startOfSegment+e.duration,isSyncRequest:e.isSyncRequest})}return e}stopForError(e){this.error(e),this.state=`READY`,this.pause(),this.trigger(`error`)}segmentRequestFinished_(e,t,n){if(!this.subtitlesTrack_){this.state=`READY`;return}if(this.saveTransferStats_(t.stats),!this.pendingSegment_){this.state=`READY`,this.mediaRequestsAborted+=1;return}if(e){e.code===id.TIMEOUT&&this.handleTimeout_(),e.code===id.ABORTED?this.mediaRequestsAborted+=1:this.mediaRequestsErrored+=1,this.stopForError(e);return}let r=this.pendingSegment_,i=n.mp4VttCues&&n.mp4VttCues.length;i&&(r.mp4VttCues=n.mp4VttCues),this.saveBandwidthRelatedStats_(r.duration,t.stats),t.key&&this.segmentKey(t.key,!0),this.state=`APPENDING`,this.trigger(`appending`);let a=r.segment;if(a.map&&(a.map.bytes=t.map.bytes),r.bytes=t.bytes,typeof b.default.WebVTT!=`function`&&typeof this.loadVttJs==`function`){this.state=`WAITING_ON_VTTJS`,this.loadVttJs().then(()=>this.segmentRequestFinished_(e,t,n),()=>this.stopForError({message:`Error loading vtt.js`}));return}a.requested=!0;try{this.parseVTTCues_(r)}catch(e){this.stopForError({message:e.message,metadata:{errorType:Z.Error.StreamingVttParserError,error:e}});return}if(i||this.updateTimeMapping_(r,this.syncController_.timelines[r.timeline],this.playlist_),r.cues.length?r.timingInfo={start:r.cues[0].startTime,end:r.cues[r.cues.length-1].endTime}:r.timingInfo={start:r.startOfSegment,end:r.startOfSegment+r.duration},r.isSyncRequest){this.trigger(`syncinfoupdate`),this.pendingSegment_=null,this.state=`READY`;return}r.byteLength=r.bytes.byteLength,this.mediaSecondsLoaded+=a.duration,r.cues.forEach(e=>{this.subtitlesTrack_.addCue(this.featuresNativeTextTracks_?new b.default.VTTCue(e.startTime,e.endTime,e.text):e)}),Kd(this.subtitlesTrack_),this.handleAppendsDone_()}handleData_(e,t){let n=e&&e.type===`vtt`,r=t&&t.type===`text`;n&&r&&super.handleData_(e,t)}updateTimingInfoEnd_(){}parseMp4VttCues_(e){let t=this.sourceUpdater_.videoTimestampOffset()===null?this.sourceUpdater_.audioTimestampOffset():this.sourceUpdater_.videoTimestampOffset();e.mp4VttCues.forEach(n=>{let r=n.start+t,i=n.end+t,a=new b.default.VTTCue(r,i,n.cueText);n.settings&&n.settings.split(` `).forEach(e=>{let t=e.split(`:`),n=t[0],r=t[1];a[n]=isNaN(r)?r:Number(r)}),e.cues.push(a)})}parseVTTCues_(e){let t,n=!1;if(typeof b.default.WebVTT!=`function`)throw new Mf;if(e.cues=[],e.timestampmap={MPEGTS:0,LOCAL:0},e.mp4VttCues){this.parseMp4VttCues_(e);return}typeof b.default.TextDecoder==`function`?t=new b.default.TextDecoder(`utf8`):(t=b.default.WebVTT.StringDecoder(),n=!0);let r=new b.default.WebVTT.Parser(b.default,b.default.vttjs,t);if(r.oncue=e.cues.push.bind(e.cues),r.ontimestampmap=t=>{e.timestampmap=t},r.onparsingerror=e=>{Z.log.warn(`Error encountered when parsing cues: `+e.message)},e.segment.map){let t=e.segment.map.bytes;n&&(t=kf(t)),r.parse(t)}let i=e.bytes;n&&(i=kf(i)),r.parse(i),r.flush()}updateTimeMapping_(e,t,n){let r=e.segment;if(!t)return;if(!e.cues.length){r.empty=!0;return}let{MPEGTS:i,LOCAL:a}=e.timestampmap,o=i/Fn.ONE_SECOND_IN_TS-a+t.mapping;if(e.cues.forEach(e=>{let n=e.endTime-e.startTime,r=this.handleRollover_(e.startTime+o,t.time);e.startTime=Math.max(r,0),e.endTime=Math.max(r+n,0)}),!n.syncInfo){let t=e.cues[0].startTime,i=e.cues[e.cues.length-1].startTime;n.syncInfo={mediaSequence:n.mediaSequence+e.mediaIndex,time:Math.min(t,i-r.duration)}}}handleRollover_(e,t){if(t===null)return e;let n=e*Fn.ONE_SECOND_IN_TS,r=t*Fn.ONE_SECOND_IN_TS,i;for(i=r<n?-8589934592:8589934592;Math.abs(n-r)>4294967296;)n+=i;return n/Fn.ONE_SECOND_IN_TS}},Pf=function(e,t){let n=e.cues;for(let e=0;e<n.length;e++){let r=n[e];if(t>=r.adStartTime&&t<=r.adEndTime)return r}return null},Ff=function(e,t,n=0){if(!e.segments)return;let r=n,i;for(let n=0;n<e.segments.length;n++){let a=e.segments[n];if(i||=Pf(t,r+a.duration/2),i){if(`cueIn`in a){i.endTime=r,i.adEndTime=r,r+=a.duration,i=null;continue}if(r<i.endTime){r+=a.duration;continue}i.endTime+=a.duration}else if(`cueOut`in a&&(i=new b.default.VTTCue(r,r+a.duration,a.cueOut),i.adStartTime=r,i.adEndTime=r+parseFloat(a.cueOut),t.addCue(i)),`cueOutCont`in a){let[e,n]=a.cueOutCont.split(`/`).map(parseFloat);i=new b.default.VTTCue(r,r+a.duration,``),i.adStartTime=r-e,i.adEndTime=i.adStartTime+n,t.addCue(i)}r+=a.duration}},If=class{constructor({start:e,end:t,segmentIndex:n,partIndex:r=null,appended:i=!1}){this.start_=e,this.end_=t,this.segmentIndex_=n,this.partIndex_=r,this.appended_=i}isInRange(e){return e>=this.start&&e<this.end}markAppended(){this.appended_=!0}resetAppendedStatus(){this.appended_=!1}get isAppended(){return this.appended_}get start(){return this.start_}get end(){return this.end_}get segmentIndex(){return this.segmentIndex_}get partIndex(){return this.partIndex_}},Lf=class{constructor(e,t=[]){this.segmentSyncInfo_=e,this.partsSyncInfo_=t}get segmentSyncInfo(){return this.segmentSyncInfo_}get partsSyncInfo(){return this.partsSyncInfo_}get hasPartsSyncInfo(){return this.partsSyncInfo_.length>0}resetAppendStatus(){this.segmentSyncInfo_.resetAppendedStatus(),this.partsSyncInfo_.forEach(e=>e.resetAppendedStatus())}},Rf=class{constructor(){this.storage_=new Map,this.diagnostics_=``,this.isReliable_=!1,this.start_=-1/0,this.end_=1/0}get start(){return this.start_}get end(){return this.end_}get diagnostics(){return this.diagnostics_}get isReliable(){return this.isReliable_}resetAppendedStatus(){this.storage_.forEach(e=>e.resetAppendStatus())}update(e,t){let{mediaSequence:n,segments:r}=e;if(this.isReliable_=this.isReliablePlaylist_(n,r),this.isReliable_)return this.updateStorage_(r,n,this.calculateBaseTime_(n,r,t))}getSyncInfoForTime(e){for(let{segmentSyncInfo:t,partsSyncInfo:n}of this.storage_.values())if(n.length){for(let t of n)if(t.isInRange(e))return t}else if(t.isInRange(e))return t;return null}getSyncInfoForMediaSequence(e){return this.storage_.get(e)}updateStorage_(e,t,n){let r=new Map,i=`
208
- `,a=n,o=t;this.start_=a,e.forEach((e,t)=>{let n=this.storage_.get(o),s=a,c=s+e.duration,l=!!(n&&n.segmentSyncInfo&&n.segmentSyncInfo.isAppended),u=new If({start:s,end:c,appended:l,segmentIndex:t});e.syncInfo=u;let d=a,f=(e.parts||[]).map((e,r)=>{let a=d,s=d+e.duration,c=!!(n&&n.partsSyncInfo&&n.partsSyncInfo[r]&&n.partsSyncInfo[r].isAppended),l=new If({start:a,end:s,appended:c,segmentIndex:t,partIndex:r});return d=s,i+=`Media Sequence: ${o}.${r} | Range: ${a} --> ${s} | Appended: ${c}\n`,e.syncInfo=l,l});r.set(o,new Lf(u,f)),i+=`${Id(e.resolvedUri)} | Media Sequence: ${o} | Range: ${s} --> ${c} | Appended: ${l}\n`,o++,a=c}),this.end_=a,this.storage_=r,this.diagnostics_=i}calculateBaseTime_(e,t,n){if(!this.storage_.size)return 0;if(this.storage_.has(e))return this.storage_.get(e).segmentSyncInfo.start;let r=Math.min(...this.storage_.keys());if(e<r){let n=r-e,i=this.storage_.get(r).segmentSyncInfo.start;for(let e=0;e<n;e++){let n=t[e];i-=n.duration}return i}return n}isReliablePlaylist_(e,t){return e!=null&&Array.isArray(t)&&t.length}},zf=class extends Rf{constructor(e){super(),this.parent_=e}calculateBaseTime_(e,t,n){if(!this.storage_.size){let t=this.parent_.getSyncInfoForMediaSequence(e);return t?t.segmentSyncInfo.start:0}return super.calculateBaseTime_(e,t,n)}},Bf=86400,Vf=[{name:`VOD`,run:(e,t,n,r,i)=>n===1/0?null:{time:0,segmentIndex:0,partIndex:null}},{name:`MediaSequence`,run:(e,t,n,r,i,a)=>{let o=e.getMediaSequenceSync(a);if(!o||!o.isReliable)return null;let s=o.getSyncInfoForTime(i);return s?{time:s.start,partIndex:s.partIndex,segmentIndex:s.segmentIndex}:null}},{name:`ProgramDateTime`,run:(e,t,n,r,i)=>{if(!Object.keys(e.timelineToDatetimeMappings).length)return null;let a=null,o=null,s=nl(t);i||=0;for(let n=0;n<s.length;n++){let r=s[t.endList||i===0?n:s.length-(n+1)],c=r.segment,l=e.timelineToDatetimeMappings[c.timeline];if(!l||!c.dateTimeObject)continue;let u=c.dateTimeObject.getTime()/1e3+l;if(c.parts&&typeof r.partIndex==`number`)for(let e=0;e<r.partIndex;e++)u+=c.parts[e].duration;let d=Math.abs(i-u);if(o!==null&&(d===0||o<d))break;o=d,a={time:u,segmentIndex:r.segmentIndex,partIndex:r.partIndex}}return a}},{name:`Segment`,run:(e,t,n,r,i)=>{let a=null,o=null;i||=0;let s=nl(t);for(let e=0;e<s.length;e++){let n=s[t.endList||i===0?e:s.length-(e+1)],c=n.segment,l=n.part&&n.part.start||c&&c.start;if(c.timeline===r&&l!==void 0){let e=Math.abs(i-l);if(o!==null&&o<e)break;(!a||o===null||o>=e)&&(o=e,a={time:l,segmentIndex:n.segmentIndex,partIndex:n.partIndex})}}return a}},{name:`Discontinuity`,run:(e,t,n,r,i)=>{let a=null;if(i||=0,t.discontinuityStarts&&t.discontinuityStarts.length){let n=null;for(let r=0;r<t.discontinuityStarts.length;r++){let o=t.discontinuityStarts[r],s=t.discontinuitySequence+r+1,c=e.discontinuities[s];if(c){let e=Math.abs(i-c.time);if(n!==null&&n<e)break;(!a||n===null||n>=e)&&(n=e,a={time:c.time,segmentIndex:o,partIndex:null})}}}return a}},{name:`Playlist`,run:(e,t,n,r,i)=>t.syncInfo?{time:t.syncInfo.time,segmentIndex:t.syncInfo.mediaSequence-t.mediaSequence,partIndex:null}:null}],Hf=class extends Z.EventTarget{constructor(e={}){super(),this.timelines=[],this.discontinuities=[],this.timelineToDatetimeMappings={};let t=new Rf,n=new zf(t),r=new zf(t);this.mediaSequenceStorage_={main:t,audio:n,vtt:r},this.logger_=zc(`SyncController`)}getMediaSequenceSync(e){return this.mediaSequenceStorage_[e]||null}getSyncPoint(e,t,n,r,i){if(t!==1/0)return Vf.find(({name:e})=>e===`VOD`).run(this,e,t);let a=this.runStrategies_(e,t,n,r,i);if(!a.length)return null;for(let t of a){let{syncPoint:n,strategy:i}=t,{segmentIndex:a,time:o}=n;if(a<0)continue;let s=e.segments[a],c=o,l=c+s.duration;if(this.logger_(`Strategy: ${i}. Current time: ${r}. selected segment: ${a}. Time: [${c} -> ${l}]}`),r>=c&&r<l)return this.logger_(`Found sync point with exact match: `,n),n}return this.selectSyncPoint_(a,{key:`time`,value:r})}getExpiredTime(e,t){if(!e||!e.segments)return null;let n=this.runStrategies_(e,t,e.discontinuitySequence,0);if(!n.length)return null;let r=this.selectSyncPoint_(n,{key:`segmentIndex`,value:0});return r.segmentIndex>0&&(r.time*=-1),Math.abs(r.time+ul({defaultDuration:e.targetDuration,durationList:e.segments,startIndex:r.segmentIndex,endIndex:0}))}runStrategies_(e,t,n,r,i){let a=[];for(let o=0;o<Vf.length;o++){let s=Vf[o],c=s.run(this,e,t,n,r,i);c&&(c.strategy=s.name,a.push({strategy:s.name,syncPoint:c}))}return a}selectSyncPoint_(e,t){let n=e[0].syncPoint,r=Math.abs(e[0].syncPoint[t.key]-t.value),i=e[0].strategy;for(let a=1;a<e.length;a++){let o=Math.abs(e[a].syncPoint[t.key]-t.value);o<r&&(r=o,n=e[a].syncPoint,i=e[a].strategy)}return this.logger_(`syncPoint for [${t.key}: ${t.value}] chosen with strategy [${i}]: [time:${n.time}, segmentIndex:${n.segmentIndex}`+(typeof n.partIndex==`number`?`,partIndex:${n.partIndex}`:``)+`]`),n}saveExpiredSegmentInfo(e,t){let n=t.mediaSequence-e.mediaSequence;if(n>Bf){Z.log.warn(`Not saving expired segment info. Media sequence gap ${n} is too large.`);return}for(let r=n-1;r>=0;r--){let n=e.segments[r];if(n&&n.start!==void 0){t.syncInfo={mediaSequence:e.mediaSequence+r,time:n.start},this.logger_(`playlist refresh sync: [time:${t.syncInfo.time}, mediaSequence: ${t.syncInfo.mediaSequence}]`),this.trigger(`syncinfoupdate`);break}}}setDateTimeMappingForStart(e){if(this.timelineToDatetimeMappings={},e.segments&&e.segments.length&&e.segments[0].dateTimeObject){let t=e.segments[0],n=t.dateTimeObject.getTime()/1e3;this.timelineToDatetimeMappings[t.timeline]=-n}}saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:t}){let n=this.calculateSegmentTimeMapping_(e,e.timingInfo,t),r=e.segment;n&&(this.saveDiscontinuitySyncInfo_(e),e.playlist.syncInfo||(e.playlist.syncInfo={mediaSequence:e.playlist.mediaSequence+e.mediaIndex,time:r.start}));let i=r.dateTimeObject;r.discontinuity&&t&&i&&(this.timelineToDatetimeMappings[r.timeline]=-(i.getTime()/1e3))}timestampOffsetForTimeline(e){return this.timelines[e]===void 0?null:this.timelines[e].time}mappingForTimeline(e){return this.timelines[e]===void 0?null:this.timelines[e].mapping}calculateSegmentTimeMapping_(e,t,n){let r=e.segment,i=e.part,a=this.timelines[e.timeline],o,s;if(typeof e.timestampOffset==`number`)a={time:e.startOfSegment,mapping:e.startOfSegment-t.start},n&&(this.timelines[e.timeline]=a,this.trigger(`timestampoffset`),this.logger_(`time mapping for timeline ${e.timeline}: [time: ${a.time}] [mapping: ${a.mapping}]`)),o=e.startOfSegment,s=t.end+a.mapping;else if(a)o=t.start+a.mapping,s=t.end+a.mapping;else return!1;return i&&(i.start=o,i.end=s),(!r.start||o<r.start)&&(r.start=o),r.end=s,!0}saveDiscontinuitySyncInfo_(e){let t=e.playlist,n=e.segment;if(n.discontinuity)this.discontinuities[n.timeline]={time:n.start,accuracy:0};else if(t.discontinuityStarts&&t.discontinuityStarts.length)for(let r=0;r<t.discontinuityStarts.length;r++){let i=t.discontinuityStarts[r],a=t.discontinuitySequence+r+1,o=i-e.mediaIndex,s=Math.abs(o);if(!this.discontinuities[a]||this.discontinuities[a].accuracy>s){let r;r=o<0?n.start-ul({defaultDuration:t.targetDuration,durationList:t.segments,startIndex:e.mediaIndex,endIndex:i}):n.end+ul({defaultDuration:t.targetDuration,durationList:t.segments,startIndex:e.mediaIndex+1,endIndex:i}),this.discontinuities[a]={time:r,accuracy:s}}}}dispose(){this.trigger(`dispose`),this.off()}},Uf=class extends Z.EventTarget{constructor(){super(),this.pendingTimelineChanges_={},this.lastTimelineChanges_={}}clearPendingTimelineChange(e){this.pendingTimelineChanges_[e]=null,this.trigger(`pendingtimelinechange`)}pendingTimelineChange({type:e,from:t,to:n}){return typeof t==`number`&&typeof n==`number`&&(this.pendingTimelineChanges_[e]={type:e,from:t,to:n},this.trigger(`pendingtimelinechange`)),this.pendingTimelineChanges_[e]}lastTimelineChange({type:e,from:t,to:n}){if(typeof t==`number`&&typeof n==`number`){this.lastTimelineChanges_[e]={type:e,from:t,to:n},delete this.pendingTimelineChanges_[e];let r={timelineChangeInfo:{from:t,to:n}};this.trigger({type:`timelinechange`,metadata:r})}return this.lastTimelineChanges_[e]}dispose(){this.trigger(`dispose`),this.pendingTimelineChanges_={},this.lastTimelineChanges_={},this.off()}},Wf=Hu(Uu(Wu(function(){var e=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){if(!this.listeners[e])return!1;var n=this.listeners[e].indexOf(t);return this.listeners[e]=this.listeners[e].slice(0),this.listeners[e].splice(n,1),n>-1},t.trigger=function(e){var t=this.listeners[e];if(t)if(arguments.length===2)for(var n=t.length,r=0;r<n;++r)t[r].call(this,arguments[1]);else for(var i=Array.prototype.slice.call(arguments,1),a=t.length,o=0;o<a;++o)t[o].apply(this,i)},t.dispose=function(){this.listeners={}},t.pipe=function(e){this.on(`data`,function(t){e.push(t)})},e}();function t(e){return e.subarray(0,e.byteLength-e[e.byteLength-1])}let n=function(){let e=[[[],[],[],[],[]],[[],[],[],[],[]]],t=e[0],n=e[1],r=t[4],i=n[4],a,o,s,c=[],l=[],u,d,f,p,m,h;for(a=0;a<256;a++)l[(c[a]=a<<1^(a>>7)*283)^a]=a;for(o=s=0;!r[o];o^=u||1,s=l[s]||1)for(p=s^s<<1^s<<2^s<<3^s<<4,p=p>>8^p&255^99,r[o]=p,i[p]=o,f=c[d=c[u=c[o]]],h=f*16843009^d*65537^u*257^o*16843008,m=c[p]*257^p*16843008,a=0;a<4;a++)t[a][o]=m=m<<24^m>>>8,n[a][p]=h=h<<24^h>>>8;for(a=0;a<5;a++)t[a]=t[a].slice(0),n[a]=n[a].slice(0);return e},r=null;class i{constructor(e){r||=n(),this._tables=[[r[0][0].slice(),r[0][1].slice(),r[0][2].slice(),r[0][3].slice(),r[0][4].slice()],[r[1][0].slice(),r[1][1].slice(),r[1][2].slice(),r[1][3].slice(),r[1][4].slice()]];let t,i,a,o=this._tables[0][4],s=this._tables[1],c=e.length,l=1;if(c!==4&&c!==6&&c!==8)throw Error(`Invalid aes key size`);let u=e.slice(0),d=[];for(this._key=[u,d],t=c;t<4*c+28;t++)a=u[t-1],(t%c===0||c===8&&t%c===4)&&(a=o[a>>>24]<<24^o[a>>16&255]<<16^o[a>>8&255]<<8^o[a&255],t%c===0&&(a=a<<8^a>>>24^l<<24,l=l<<1^(l>>7)*283)),u[t]=u[t-c]^a;for(i=0;t;i++,t--)a=u[i&3?t:t-4],t<=4||i<4?d[i]=a:d[i]=s[0][o[a>>>24]]^s[1][o[a>>16&255]]^s[2][o[a>>8&255]]^s[3][o[a&255]]}decrypt(e,t,n,r,i,a){let o=this._key[1],s=e^o[0],c=r^o[1],l=n^o[2],u=t^o[3],d,f,p,m=o.length/4-2,h,g=4,_=this._tables[1],v=_[0],y=_[1],b=_[2],x=_[3],S=_[4];for(h=0;h<m;h++)d=v[s>>>24]^y[c>>16&255]^b[l>>8&255]^x[u&255]^o[g],f=v[c>>>24]^y[l>>16&255]^b[u>>8&255]^x[s&255]^o[g+1],p=v[l>>>24]^y[u>>16&255]^b[s>>8&255]^x[c&255]^o[g+2],u=v[u>>>24]^y[s>>16&255]^b[c>>8&255]^x[l&255]^o[g+3],g+=4,s=d,c=f,l=p;for(h=0;h<4;h++)i[(3&-h)+a]=S[s>>>24]<<24^S[c>>16&255]<<16^S[l>>8&255]<<8^S[u&255]^o[g++],d=s,s=c,c=l,l=u,u=d}}class a extends e{constructor(){super(e),this.jobs=[],this.delay=1,this.timeout_=null}processJob_(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null}push(e){this.jobs.push(e),this.timeout_||=setTimeout(this.processJob_.bind(this),this.delay)}}let o=function(e){return e<<24|(e&65280)<<8|(e&16711680)>>8|e>>>24},s=function(e,t,n){let r=new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),a=new i(Array.prototype.slice.call(t)),s=new Uint8Array(e.byteLength),c=new Int32Array(s.buffer),l,u,d,f,p,m,h,g,_;for(l=n[0],u=n[1],d=n[2],f=n[3],_=0;_<r.length;_+=4)p=o(r[_]),m=o(r[_+1]),h=o(r[_+2]),g=o(r[_+3]),a.decrypt(p,m,h,g,c,_),c[_]=o(c[_]^l),c[_+1]=o(c[_+1]^u),c[_+2]=o(c[_+2]^d),c[_+3]=o(c[_+3]^f),l=p,u=m,d=h,f=g;return s};class c{constructor(e,n,r,i){let s=c.STEP,l=new Int32Array(e.buffer),u=new Uint8Array(e.byteLength),d=0;for(this.asyncStream_=new a,this.asyncStream_.push(this.decryptChunk_(l.subarray(d,d+s),n,r,u)),d=s;d<l.length;d+=s)r=new Uint32Array([o(l[d-4]),o(l[d-3]),o(l[d-2]),o(l[d-1])]),this.asyncStream_.push(this.decryptChunk_(l.subarray(d,d+s),n,r,u));this.asyncStream_.push(function(){i(null,t(u))})}static get STEP(){return 32e3}decryptChunk_(e,t,n,r){return function(){let i=s(e,t,n);r.set(i,e.byteOffset)}}}var l=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},u=typeof window<`u`?window:l===void 0?typeof self<`u`?self:{}:l,d=function(e){return ArrayBuffer.isView===`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},f=u.BigInt||Number;f(`0x1`),f(`0x100`),f(`0x10000`),f(`0x1000000`),f(`0x100000000`),f(`0x10000000000`),f(`0x1000000000000`),f(`0x100000000000000`),f(`0x10000000000000000`),(function(){var e=new Uint16Array([65484]),t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);return t[0]===255?`big`:t[0]===204?`little`:`unknown`})();let p=function(e){let t={};return Object.keys(e).forEach(n=>{let r=e[n];d(r)?t[n]={bytes:r.buffer,byteOffset:r.byteOffset,byteLength:r.byteLength}:t[n]=r}),t};self.onmessage=function(e){let t=e.data;new c(new Uint8Array(t.encrypted.bytes,t.encrypted.byteOffset,t.encrypted.byteLength),new Uint32Array(t.key.bytes,t.key.byteOffset,t.key.byteLength/4),new Uint32Array(t.iv.bytes,t.iv.byteOffset,t.iv.byteLength/4),function(e,n){self.postMessage(p({source:t.source,decrypted:n}),[n.buffer])})}}))),Gf=e=>{let t=e.default?`main`:`alternative`;return e.characteristics&&e.characteristics.indexOf(`public.accessibility.describes-video`)>=0&&(t=`main-desc`),t},Kf=(e,t)=>{e.abort(),e.pause(),t&&t.activePlaylistLoader&&(t.activePlaylistLoader.pause(),t.activePlaylistLoader=null)},qf=(e,t)=>{t.activePlaylistLoader=e,e.load()},Jf=(e,t)=>()=>{let{segmentLoaders:{[e]:n,main:r},mediaTypes:{[e]:i}}=t,a=i.activeTrack(),o=i.getActiveGroup(),s=i.activePlaylistLoader,c=i.lastGroup_;if(!(o&&c&&o.id===c.id)&&(i.lastGroup_=o,i.lastTrack_=a,Kf(n,i),!(!o||o.isMainPlaylist))){if(!o.playlistLoader){s&&r.resetEverything();return}n.resyncLoader(),qf(o.playlistLoader,i)}},Yf=(e,t)=>()=>{let{segmentLoaders:{[e]:n},mediaTypes:{[e]:r}}=t;r.lastGroup_=null,n.abort(),n.pause()},Xf=(e,t)=>()=>{let{mainPlaylistLoader:n,segmentLoaders:{[e]:r,main:i},mediaTypes:{[e]:a}}=t,o=a.activeTrack(),s=a.getActiveGroup(),c=a.activePlaylistLoader,l=a.lastTrack_;if(!(l&&o&&l.id===o.id)&&(a.lastGroup_=s,a.lastTrack_=o,Kf(r,a),s)){if(s.isMainPlaylist){if(!o||!l||o.id===l.id)return;let e=t.vhs.playlistController_,r=e.selectPlaylist();if(e.media()===r)return;a.logger_(`track change. Switching main audio from ${l.id} to ${o.id}`),n.pause(),i.resetEverything(),e.fastQualityChange_(r);return}if(e===`AUDIO`){if(!s.playlistLoader){i.setAudio(!0),i.resetEverything();return}r.setAudio(!0),i.setAudio(!1)}if(c===s.playlistLoader){qf(s.playlistLoader,a);return}r.track&&r.track(o),r.resetEverything(),qf(s.playlistLoader,a)}},Zf={AUDIO:(e,t)=>()=>{let{mediaTypes:{[e]:n},excludePlaylist:r}=t,i=n.activeTrack(),a=n.activeGroup(),o=(a.filter(e=>e.default)[0]||a[0]).id,s=n.tracks[o];if(i===s){r({error:{message:`Problem encountered loading the default audio track.`}});return}Z.log.warn(`Problem encountered loading the alternate audio track.Switching back to default.`);for(let e in n.tracks)n.tracks[e].enabled=n.tracks[e]===s;n.onTrackChanged()},SUBTITLES:(e,t)=>()=>{let{mediaTypes:{[e]:n}}=t;Z.log.warn(`Problem encountered loading the subtitle track.Disabling subtitle track.`);let r=n.activeTrack();r&&(r.mode=`disabled`),n.onTrackChanged()}},Qf={AUDIO:(e,t,n)=>{if(!t)return;let{tech:r,requestOptions:i,segmentLoaders:{[e]:a}}=n;t.on(`loadedmetadata`,()=>{let e=t.media();a.playlist(e,i),(!r.paused()||e.endList&&r.preload()!==`none`)&&a.load()}),t.on(`loadedplaylist`,()=>{a.playlist(t.media(),i),r.paused()||a.load()}),t.on(`error`,Zf[e](e,n))},SUBTITLES:(e,t,n)=>{let{tech:r,requestOptions:i,segmentLoaders:{[e]:a},mediaTypes:{[e]:o}}=n;t.on(`loadedmetadata`,()=>{let e=t.media();a.playlist(e,i),a.track(o.activeTrack()),(!r.paused()||e.endList&&r.preload()!==`none`)&&a.load()}),t.on(`loadedplaylist`,()=>{a.playlist(t.media(),i),r.paused()||a.load()}),t.on(`error`,Zf[e](e,n))}},$f={AUDIO:(e,t)=>{let{vhs:n,sourceType:r,segmentLoaders:{[e]:i},requestOptions:a,main:{mediaGroups:o},mediaTypes:{[e]:{groups:s,tracks:c,logger_:l}},mainPlaylistLoader:u}=t,d=wl(u.main);(!o[e]||Object.keys(o[e]).length===0)&&(o[e]={main:{default:{default:!0}}},d&&(o[e].main.default.playlists=u.main.playlists));for(let i in o[e]){s[i]||(s[i]=[]);for(let f in o[e][i]){let p=o[e][i][f],m;d?(l(`AUDIO group '${i}' label '${f}' is a main playlist`),p.isMainPlaylist=!0,m=null):m=r===`vhs-json`&&p.playlists?new nu(p.playlists[0],n,a):p.resolvedUri?new nu(p.resolvedUri,n,a):p.playlists&&r===`dash`?new Lu(p.playlists[0],n,a,u):null,p=Q({id:f,playlistLoader:m},p),Qf[e](e,p.playlistLoader,t),s[i].push(p),c[f]===void 0&&(c[f]=new Z.AudioTrack({id:f,kind:Gf(p),enabled:!1,language:p.language,default:p.default,label:f}))}}i.on(`error`,Zf[e](e,t))},SUBTITLES:(e,t)=>{let{tech:n,vhs:r,sourceType:i,segmentLoaders:{[e]:a},requestOptions:o,main:{mediaGroups:s},mediaTypes:{[e]:{groups:c,tracks:l}},mainPlaylistLoader:u}=t;for(let a in s[e]){c[a]||(c[a]=[]);for(let d in s[e][a]){if(!r.options_.useForcedSubtitles&&s[e][a][d].forced)continue;let f=s[e][a][d],p;if(i===`hls`)p=new nu(f.resolvedUri,r,o);else if(i===`dash`){if(!f.playlists.filter(e=>e.excludeUntil!==1/0).length)return;p=new Lu(f.playlists[0],r,o,u)}else i===`vhs-json`&&(p=new nu(f.playlists?f.playlists[0]:f.resolvedUri,r,o));f=Q({id:d,playlistLoader:p},f),Qf[e](e,f.playlistLoader,t),c[a].push(f),l[d]===void 0&&(l[d]=n.addRemoteTextTrack({id:d,kind:`subtitles`,default:f.default&&f.autoselect,language:f.language,label:d},!1).track)}}a.on(`error`,Zf[e](e,t))},"CLOSED-CAPTIONS":(e,t)=>{let{tech:n,main:{mediaGroups:r},mediaTypes:{[e]:{groups:i,tracks:a}}}=t;for(let t in r[e]){i[t]||(i[t]=[]);for(let o in r[e][t]){let s=r[e][t][o];if(!/^(?:CC|SERVICE)/.test(s.instreamId))continue;let c=n.options_.vhs&&n.options_.vhs.captionServices||{},l={label:o,language:s.language,instreamId:s.instreamId,default:s.default&&s.autoselect};c[l.instreamId]&&(l=Q(l,c[l.instreamId])),l.default===void 0&&delete l.default,i[t].push(Q({id:o},s)),a[o]===void 0&&(a[o]=n.addRemoteTextTrack({id:l.instreamId,kind:`captions`,default:l.default,language:l.language,label:l.label},!1).track)}}}},ep=(e,t)=>{for(let n=0;n<e.length;n++)if(Sl(t,e[n])||e[n].playlists&&ep(e[n].playlists,t))return!0;return!1},tp=(e,t)=>n=>{let{mainPlaylistLoader:r,mediaTypes:{[e]:{groups:i}}}=t,a=r.media();if(!a)return null;let o=null;a.attributes[e]&&(o=i[a.attributes[e]]);let s=Object.keys(i);if(!o)if(e===`AUDIO`&&s.length>1&&wl(t.main))for(let e=0;e<s.length;e++){let t=i[s[e]];if(ep(t,a)){o=t;break}}else i.main?o=i.main:s.length===1&&(o=i[s[0]]);return n===void 0?o:n===null||!o?null:o.filter(e=>e.id===n.id)[0]||null},np={AUDIO:(e,t)=>()=>{let{mediaTypes:{[e]:{tracks:n}}}=t;for(let e in n)if(n[e].enabled)return n[e];return null},SUBTITLES:(e,t)=>()=>{let{mediaTypes:{[e]:{tracks:n}}}=t;for(let e in n)if(n[e].mode===`showing`||n[e].mode===`hidden`)return n[e];return null}},rp=(e,{mediaTypes:t})=>()=>{let n=t[e].activeTrack();return n?t[e].activeGroup(n):null},ip=e=>{[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(t=>{$f[t](t,e)});let{mediaTypes:t,mainPlaylistLoader:n,tech:r,vhs:i,segmentLoaders:{AUDIO:a,main:o}}=e;[`AUDIO`,`SUBTITLES`].forEach(n=>{t[n].activeGroup=tp(n,e),t[n].activeTrack=np[n](n,e),t[n].onGroupChanged=Jf(n,e),t[n].onGroupChanging=Yf(n,e),t[n].onTrackChanged=Xf(n,e),t[n].getActiveGroup=rp(n,e)});let s=t.AUDIO.activeGroup();if(s){let e=(s.filter(e=>e.default)[0]||s[0]).id;t.AUDIO.tracks[e].enabled=!0,t.AUDIO.onGroupChanged(),t.AUDIO.onTrackChanged(),t.AUDIO.getActiveGroup().playlistLoader?(o.setAudio(!1),a.setAudio(!0)):o.setAudio(!0)}n.on(`mediachange`,()=>{[`AUDIO`,`SUBTITLES`].forEach(e=>t[e].onGroupChanged())}),n.on(`mediachanging`,()=>{[`AUDIO`,`SUBTITLES`].forEach(e=>t[e].onGroupChanging())});let c=()=>{t.AUDIO.onTrackChanged(),r.trigger({type:`usage`,name:`vhs-audio-change`})};r.audioTracks().addEventListener(`change`,c),r.remoteTextTracks().addEventListener(`change`,t.SUBTITLES.onTrackChanged),i.on(`dispose`,()=>{r.audioTracks().removeEventListener(`change`,c),r.remoteTextTracks().removeEventListener(`change`,t.SUBTITLES.onTrackChanged)}),r.clearTracks(`audio`);for(let e in t.AUDIO.tracks)r.audioTracks().addTrack(t.AUDIO.tracks[e])},ap=()=>{let e={};return[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(t=>{e[t]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:_f,activeTrack:_f,getActiveGroup:_f,onGroupChanged:_f,onTrackChanged:_f,lastTrack_:null,logger_:zc(`MediaGroups[${t}]`)}}),e},op=class{constructor(){this.priority_=[],this.pathwayClones_=new Map}set version(e){e===1&&(this.version_=e)}set ttl(e){this.ttl_=e||300}set reloadUri(e){e&&(this.reloadUri_=Lc(this.reloadUri_,e))}set priority(e){e&&e.length&&(this.priority_=e)}set pathwayClones(e){e&&e.length&&(this.pathwayClones_=new Map(e.map(e=>[e.ID,e])))}get version(){return this.version_}get ttl(){return this.ttl_}get reloadUri(){return this.reloadUri_}get priority(){return this.priority_}get pathwayClones(){return this.pathwayClones_}},sp=class extends Z.EventTarget{constructor(e,t){super(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=!1,this.availablePathways_=new Set,this.steeringManifest=new op,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.currentPathwayClones=new Map,this.nextPathwayClones=new Map,this.excludedSteeringManifestURLs=new Set,this.logger_=zc(`Content Steering`),this.xhr_=e,this.getBandwidth_=t}assignTagProperties(e,t){this.manifestType_=t.serverUri?`HLS`:`DASH`;let n=t.serverUri||t.serverURL;if(!n){this.logger_(`steering manifest URL is ${n}, cannot request steering manifest.`),this.trigger(`error`);return}if(n.startsWith(`data:`)){this.decodeDataUriManifest_(n.substring(n.indexOf(`,`)+1));return}this.steeringManifest.reloadUri=Lc(e,n),this.defaultPathway=t.pathwayId||t.defaultServiceLocation,this.queryBeforeStart=t.queryBeforeStart,this.proxyServerUrl_=t.proxyServerURL,this.defaultPathway&&!this.queryBeforeStart&&this.trigger(`content-steering`)}requestSteeringManifest(e){let t=this.steeringManifest.reloadUri;if(!t)return;let n=e?t:this.getRequestURI(t);if(!n){this.logger_(`No valid content steering manifest URIs. Stopping content steering.`),this.trigger(`error`),this.dispose();return}let r={contentSteeringInfo:{uri:n}};this.trigger({type:`contentsteeringloadstart`,metadata:r}),this.request_=this.xhr_({uri:n,requestType:`content-steering-manifest`},(e,t)=>{if(e){if(t.status===410){this.logger_(`manifest request 410 ${e}.`),this.logger_(`There will be no more content steering requests to ${n} this session.`),this.excludedSteeringManifestURLs.add(n);return}if(t.status===429){let n=t.responseHeaders[`retry-after`];this.logger_(`manifest request 429 ${e}.`),this.logger_(`content steering will retry in ${n} seconds.`),this.startTTLTimeout_(parseInt(n,10));return}this.logger_(`manifest failed to load ${e}.`),this.startTTLTimeout_();return}this.trigger({type:`contentsteeringloadcomplete`,metadata:r});let i;try{i=JSON.parse(this.request_.responseText)}catch(e){let t={errorType:Z.Error.StreamingContentSteeringParserError,error:e};this.trigger({type:`error`,metadata:t})}this.assignSteeringProperties_(i);let a={contentSteeringInfo:r.contentSteeringInfo,contentSteeringManifest:{version:this.steeringManifest.version,reloadUri:this.steeringManifest.reloadUri,priority:this.steeringManifest.priority}};this.trigger({type:`contentsteeringparsed`,metadata:a}),this.startTTLTimeout_()})}setProxyServerUrl_(e){let t=new b.default.URL(e),n=new b.default.URL(this.proxyServerUrl_);return n.searchParams.set(`url`,encodeURI(t.toString())),this.setSteeringParams_(n.toString())}decodeDataUriManifest_(e){let t=JSON.parse(b.default.atob(e));this.assignSteeringProperties_(t)}setSteeringParams_(e){let t=new b.default.URL(e),n=this.getPathway(),r=this.getBandwidth_();if(n){let e=`_${this.manifestType_}_pathway`;t.searchParams.set(e,n)}if(r){let e=`_${this.manifestType_}_throughput`;t.searchParams.set(e,r)}return t.toString()}assignSteeringProperties_(e){if(this.steeringManifest.version=e.VERSION,!this.steeringManifest.version){this.logger_(`manifest version is ${e.VERSION}, which is not supported.`),this.trigger(`error`);return}this.steeringManifest.ttl=e.TTL,this.steeringManifest.reloadUri=e[`RELOAD-URI`],this.steeringManifest.priority=e[`PATHWAY-PRIORITY`]||e[`SERVICE-LOCATION-PRIORITY`],this.steeringManifest.pathwayClones=e[`PATHWAY-CLONES`],this.nextPathwayClones=this.steeringManifest.pathwayClones,this.availablePathways_.size||(this.logger_(`There are no available pathways for content steering. Ending content steering.`),this.trigger(`error`),this.dispose());let t=(e=>{for(let t of e)if(this.availablePathways_.has(t))return t;return[...this.availablePathways_][0]})(this.steeringManifest.priority);this.currentPathway!==t&&(this.currentPathway=t,this.trigger(`content-steering`))}getPathway(){return this.currentPathway||this.defaultPathway}getRequestURI(e){if(!e)return null;let t=e=>this.excludedSteeringManifestURLs.has(e);if(this.proxyServerUrl_){let n=this.setProxyServerUrl_(e);if(!t(n))return n}let n=this.setSteeringParams_(e);return t(n)?null:n}startTTLTimeout_(e=this.steeringManifest.ttl){let t=e*1e3;this.ttlTimeout_=b.default.setTimeout(()=>{this.requestSteeringManifest()},t)}clearTTLTimeout_(){b.default.clearTimeout(this.ttlTimeout_),this.ttlTimeout_=null}abort(){this.request_&&this.request_.abort(),this.request_=null}dispose(){this.off(`content-steering`),this.off(`error`),this.abort(),this.clearTTLTimeout_(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=null,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.excludedSteeringManifestURLs=new Set,this.availablePathways_=new Set,this.steeringManifest=new op}addAvailablePathway(e){e&&this.availablePathways_.add(e)}clearAvailablePathways(){this.availablePathways_.clear()}excludePathway(e){return this.availablePathways_.delete(e)}didDASHTagChange(e,t){return!t&&this.steeringManifest.reloadUri||t&&(Lc(e,t.serverURL)!==this.steeringManifest.reloadUri||t.defaultServiceLocation!==this.defaultPathway||t.queryBeforeStart!==this.queryBeforeStart||t.proxyServerURL!==this.proxyServerUrl_)}getAvailablePathways(){return this.availablePathways_}},cp=(e,t)=>{let n=null;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e.apply(null,r)},t)}},lp=10,up,dp=[`mediaRequests`,`mediaRequestsAborted`,`mediaRequestsTimedout`,`mediaRequestsErrored`,`mediaTransferDuration`,`mediaBytesTransferred`,`mediaAppends`],fp=function(e){return this.audioSegmentLoader_[e]+this.mainSegmentLoader_[e]},pp=function({currentPlaylist:e,buffered:t,currentTime:n,nextPlaylist:r,bufferLowWaterLine:i,bufferHighWaterLine:a,duration:o,bufferBasedABR:s,log:c}){if(!r)return Z.log.warn(`We received no playlist to switch to. Please check your stream.`),!1;let l=`allowing switch ${e&&e.id||`null`} -> ${r.id}`;if(!e)return c(`${l} as current playlist is not set`),!0;if(r.id===e.id)return!1;let u=!!Gc(t,n).length;if(!e.endList)return!u&&typeof e.partTargetDuration==`number`?(c(`not ${l} as current playlist is live llhls, but currentTime isn't in buffered.`),!1):(c(`${l} as current playlist is live`),!0);let d=el(t,n),f=s?Ru.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:Ru.MAX_BUFFER_LOW_WATER_LINE;if(o<f)return c(`${l} as duration < max low water line (${o} < ${f})`),!0;let p=r.attributes.BANDWIDTH,m=e.attributes.BANDWIDTH;if(p<m&&(!s||d<a)){let e=`${l} as next bandwidth < current bandwidth (${p} < ${m})`;return s&&(e+=` and forwardBuffer < bufferHighWaterLine (${d} < ${a})`),c(e),!0}if((!s||p>m)&&d>=i){let e=`${l} as forwardBuffer >= bufferLowWaterLine (${d} >= ${i})`;return s&&(e+=` and next bandwidth > current bandwidth (${p} > ${m})`),c(e),!0}return c(`not ${l} as no switching criteria met`),!1},mp=class extends Z.EventTarget{constructor(e){super(),this.fastQualityChange_=cp(this.fastQualityChange_.bind(this),100);let{src:t,withCredentials:n,tech:r,bandwidth:i,externVhs:a,useCueTags:o,playlistExclusionDuration:s,enableLowInitialPlaylist:c,sourceType:l,cacheEncryptionKeys:u,bufferBasedABR:d,leastPixelDiffSelector:f,captionServices:p,experimentalUseMMS:m}=e;if(!t)throw Error(`A non-empty playlist URL or JSON manifest string is required`);let{maxPlaylistRetries:h}=e;h??=1/0,up=a,this.bufferBasedABR=!!d,this.leastPixelDiffSelector=!!f,this.withCredentials=n,this.tech_=r,this.vhs_=r.vhs,this.player_=e.player_,this.sourceType_=l,this.useCueTags_=o,this.playlistExclusionDuration=s,this.maxPlaylistRetries=h,this.enableLowInitialPlaylist=c,this.usingManagedMediaSource_=!1,this.useCueTags_&&(this.cueTagsTrack_=this.tech_.addTextTrack(`metadata`,`ad-cues`),this.cueTagsTrack_.inBandMetadataTrackDispatchType=``),this.requestOptions_={withCredentials:n,maxPlaylistRetries:h,timeout:null},this.on(`error`,this.pauseLoading),this.mediaTypes_=ap(),m&&b.default.ManagedMediaSource?(this.tech_.el_.disableRemotePlayback=!0,this.mediaSource=new b.default.ManagedMediaSource,this.usingManagedMediaSource_=!0,Z.log(`Using ManagedMediaSource`)):b.default.MediaSource&&(this.mediaSource=new b.default.MediaSource),this.handleDurationChange_=this.handleDurationChange_.bind(this),this.handleSourceOpen_=this.handleSourceOpen_.bind(this),this.handleSourceEnded_=this.handleSourceEnded_.bind(this),this.load=this.load.bind(this),this.pause=this.pause.bind(this),this.mediaSource.addEventListener(`durationchange`,this.handleDurationChange_),this.mediaSource.addEventListener(`sourceopen`,this.handleSourceOpen_),this.mediaSource.addEventListener(`sourceended`,this.handleSourceEnded_),this.mediaSource.addEventListener(`startstreaming`,this.load),this.mediaSource.addEventListener(`endstreaming`,this.pause),this.seekable_=Bc(),this.hasPlayed_=!1,this.syncController_=new Hf(e),this.segmentMetadataTrack_=r.addRemoteTextTrack({kind:`metadata`,label:`segment-metadata`},!1).track,this.segmentMetadataTrack_.mode=`hidden`,this.decrypter_=new Wf,this.sourceUpdater_=new Of(this.mediaSource),this.inbandTextTracks_={},this.timelineChangeController_=new Uf,this.keyStatusMap_=new Map;let g={vhs:this.vhs_,parse708captions:e.parse708captions,useDtsForTimestampOffset:e.useDtsForTimestampOffset,captionServices:p,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:()=>this.seekable(),seeking:()=>this.tech_.seeking(),duration:()=>this.duration(),hasPlayed:()=>this.hasPlayed_,goalBufferLength:()=>this.goalBufferLength(),bandwidth:i,syncController:this.syncController_,decrypter:this.decrypter_,sourceType:this.sourceType_,inbandTextTracks:this.inbandTextTracks_,cacheEncryptionKeys:u,sourceUpdater:this.sourceUpdater_,timelineChangeController:this.timelineChangeController_,exactManifestTimings:e.exactManifestTimings,addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)};this.mainPlaylistLoader_=this.sourceType_===`dash`?new Lu(t,this.vhs_,Q(this.requestOptions_,{addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)})):new nu(t,this.vhs_,Q(this.requestOptions_,{addDateRangesToTextTrack:this.addDateRangesToTextTrack_.bind(this)})),this.setupMainPlaylistLoaderListeners_(),this.mainSegmentLoader_=new gf(Q(g,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:`main`}),e),this.audioSegmentLoader_=new gf(Q(g,{loaderType:`audio`}),e),this.subtitleSegmentLoader_=new Nf(Q(g,{loaderType:`vtt`,featuresNativeTextTracks:this.tech_.featuresNativeTextTracks,loadVttJs:()=>new Promise((e,t)=>{function n(){r.off(`vttjserror`,i),e()}function i(){r.off(`vttjsloaded`,n),t()}r.one(`vttjsloaded`,n),r.one(`vttjserror`,i),r.addWebVttScript_()})}),e);let _=()=>this.mainSegmentLoader_.bandwidth;this.contentSteeringController_=new sp(this.vhs_.xhr,_),this.setupSegmentLoaderListeners_(),this.bufferBasedABR&&(this.mainPlaylistLoader_.one(`loadedplaylist`,()=>this.startABRTimer_()),this.tech_.on(`pause`,()=>this.stopABRTimer_()),this.tech_.on(`play`,()=>this.startABRTimer_())),dp.forEach(e=>{this[e+`_`]=fp.bind(this,e)}),this.logger_=zc(`pc`),this.triggeredFmp4Usage=!1,this.tech_.preload()===`none`?(this.loadOnPlay_=()=>{this.loadOnPlay_=null,this.mainPlaylistLoader_.load()},this.tech_.one(`play`,this.loadOnPlay_)):this.mainPlaylistLoader_.load(),this.timeToLoadedData__=-1,this.mainAppendsToLoadedData__=-1,this.audioAppendsToLoadedData__=-1;let v=this.tech_.preload()===`none`?`play`:`loadstart`;this.tech_.one(v,()=>{let e=Date.now();this.tech_.one(`loadeddata`,()=>{this.timeToLoadedData__=Date.now()-e,this.mainAppendsToLoadedData__=this.mainSegmentLoader_.mediaAppends,this.audioAppendsToLoadedData__=this.audioSegmentLoader_.mediaAppends})})}mainAppendsToLoadedData_(){return this.mainAppendsToLoadedData__}audioAppendsToLoadedData_(){return this.audioAppendsToLoadedData__}appendsToLoadedData_(){let e=this.mainAppendsToLoadedData_(),t=this.audioAppendsToLoadedData_();return e===-1||t===-1?-1:e+t}timeToLoadedData_(){return this.timeToLoadedData__}checkABR_(e=`abr`){let t=this.selectPlaylist();t&&this.shouldSwitchToMedia_(t)&&this.switchMedia_(t,e)}switchMedia_(e,t,n){let r=this.media(),i=r&&(r.id||r.uri),a=e&&(e.id||e.uri);if(i&&i!==a){this.logger_(`switch media ${i} -> ${a} from ${t}`);let n={renditionInfo:{id:a,bandwidth:e.attributes.BANDWIDTH,resolution:e.attributes.RESOLUTION,codecs:e.attributes.CODECS},cause:t};this.trigger({type:`renditionselected`,metadata:n}),this.tech_.trigger({type:`usage`,name:`vhs-rendition-change-${t}`})}this.mainPlaylistLoader_.media(e,n)}switchMediaForDASHContentSteering_(){[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(e=>{let t=this.mediaTypes_[e],n=t?t.activeGroup():null,r=this.contentSteeringController_.getPathway();if(n&&r){let t=(n.length?n[0].playlists:n.playlists).filter(e=>e.attributes.serviceLocation===r);t.length&&this.mediaTypes_[e].activePlaylistLoader.media(t[0])}})}startABRTimer_(){this.stopABRTimer_(),this.abrTimer_=b.default.setInterval(()=>this.checkABR_(),250)}stopABRTimer_(){this.tech_.scrubbing&&this.tech_.scrubbing()||(b.default.clearInterval(this.abrTimer_),this.abrTimer_=null)}getAudioTrackPlaylists_(){let e=this.main(),t=e&&e.playlists||[];if(!e||!e.mediaGroups||!e.mediaGroups.AUDIO)return t;let n=e.mediaGroups.AUDIO,r=Object.keys(n),i;if(Object.keys(this.mediaTypes_.AUDIO.groups).length)i=this.mediaTypes_.AUDIO.activeTrack();else{let e=n.main||r.length&&n[r[0]];for(let t in e)if(e[t].default){i={label:t};break}}if(!i)return t;let a=[];for(let t in n)if(n[t][i.label]){let r=n[t][i.label];if(r.playlists&&r.playlists.length)a.push.apply(a,r.playlists);else if(r.uri)a.push(r);else if(e.playlists.length)for(let n=0;n<e.playlists.length;n++){let r=e.playlists[n];r.attributes&&r.attributes.AUDIO&&r.attributes.AUDIO===t&&a.push(r)}}return a.length?a:t}setupMainPlaylistLoaderListeners_(){this.mainPlaylistLoader_.on(`loadedmetadata`,()=>{let e=this.mainPlaylistLoader_.media(),t=e.targetDuration*1.5*1e3;xl(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,e.endList&&this.tech_.preload()!==`none`&&(this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.mainSegmentLoader_.load()),ip({sourceType:this.sourceType_,segmentLoaders:{AUDIO:this.audioSegmentLoader_,SUBTITLES:this.subtitleSegmentLoader_,main:this.mainSegmentLoader_},tech:this.tech_,requestOptions:this.requestOptions_,mainPlaylistLoader:this.mainPlaylistLoader_,vhs:this.vhs_,main:this.main(),mediaTypes:this.mediaTypes_,excludePlaylist:this.excludePlaylist.bind(this)}),this.triggerPresenceUsage_(this.main(),e),this.setupFirstPlay(),!this.mediaTypes_.AUDIO.activePlaylistLoader||this.mediaTypes_.AUDIO.activePlaylistLoader.media()?this.trigger(`selectedinitialmedia`):this.mediaTypes_.AUDIO.activePlaylistLoader.one(`loadedmetadata`,()=>{this.trigger(`selectedinitialmedia`)})}),this.mainPlaylistLoader_.on(`loadedplaylist`,()=>{this.loadOnPlay_&&this.tech_.off(`play`,this.loadOnPlay_);let e=this.mainPlaylistLoader_.media();if(!e){this.attachContentSteeringListeners_(),this.initContentSteeringController_(),this.excludeUnsupportedVariants_();let t;if(this.enableLowInitialPlaylist&&(t=this.selectInitialPlaylist()),t||=this.selectPlaylist(),!t||!this.shouldSwitchToMedia_(t)||(this.initialMedia_=t,this.switchMedia_(this.initialMedia_,`initial`),!(this.sourceType_===`vhs-json`&&this.initialMedia_.segments)))return;e=this.initialMedia_}this.handleUpdatedMediaPlaylist(e)}),this.mainPlaylistLoader_.on(`error`,()=>{let e=this.mainPlaylistLoader_.error;this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainPlaylistLoader_.on(`mediachanging`,()=>{this.mainSegmentLoader_.abort(),this.mainSegmentLoader_.pause()}),this.mainPlaylistLoader_.on(`mediachange`,()=>{let e=this.mainPlaylistLoader_.media(),t=e.targetDuration*1.5*1e3;xl(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,this.sourceType_===`dash`&&this.mainPlaylistLoader_.isPaused&&this.mainPlaylistLoader_.load(),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_?this.runFastQualitySwitch_():this.mainSegmentLoader_.load(),this.tech_.trigger({type:`mediachange`,bubbles:!0})}),this.mainPlaylistLoader_.on(`playlistunchanged`,()=>{let e=this.mainPlaylistLoader_.media();e.lastExcludeReason_!==`playlist-unchanged`&&this.stuckAtPlaylistEnd_(e)&&(this.excludePlaylist({error:{message:`Playlist no longer updating.`,reason:`playlist-unchanged`}}),this.tech_.trigger(`playliststuck`))}),this.mainPlaylistLoader_.on(`renditiondisabled`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-rendition-disabled`})}),this.mainPlaylistLoader_.on(`renditionenabled`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-rendition-enabled`})}),[`manifestrequeststart`,`manifestrequestcomplete`,`manifestparsestart`,`manifestparsecomplete`,`playlistrequeststart`,`playlistrequestcomplete`,`playlistparsestart`,`playlistparsecomplete`,`renditiondisabled`,`renditionenabled`].forEach(e=>{this.mainPlaylistLoader_.on(e,e=>{this.player_.trigger(C({},e))})})}handleUpdatedMediaPlaylist(e){this.useCueTags_&&this.updateAdCues_(e),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_&&this.runFastQualitySwitch_(),this.updateDuration(!e.endList),this.tech_.paused()||(this.mainSegmentLoader_.load(),this.audioSegmentLoader_&&this.audioSegmentLoader_.load())}triggerPresenceUsage_(e,t){let n=e.mediaGroups||{},r=!0,i=Object.keys(n.AUDIO);for(let e in n.AUDIO)for(let t in n.AUDIO[e])n.AUDIO[e][t].uri||(r=!1);r&&this.tech_.trigger({type:`usage`,name:`vhs-demuxed`}),Object.keys(n.SUBTITLES).length&&this.tech_.trigger({type:`usage`,name:`vhs-webvtt`}),up.Playlist.isAes(t)&&this.tech_.trigger({type:`usage`,name:`vhs-aes`}),i.length&&Object.keys(n.AUDIO[i[0]]).length>1&&this.tech_.trigger({type:`usage`,name:`vhs-alternate-audio`}),this.useCueTags_&&this.tech_.trigger({type:`usage`,name:`vhs-playlist-cue-tags`})}shouldSwitchToMedia_(e){let t=this.mainPlaylistLoader_.media()||this.mainPlaylistLoader_.pendingMedia_,n=this.tech_.currentTime(),r=this.bufferLowWaterLine(),i=this.bufferHighWaterLine();return pp({buffered:this.tech_.buffered(),currentTime:n,currentPlaylist:t,nextPlaylist:e,bufferLowWaterLine:r,bufferHighWaterLine:i,duration:this.duration(),bufferBasedABR:this.bufferBasedABR,log:this.logger_})}setupSegmentLoaderListeners_(){this.mainSegmentLoader_.on(`bandwidthupdate`,()=>{this.checkABR_(`bandwidthupdate`),this.tech_.trigger(`bandwidthupdate`)}),this.mainSegmentLoader_.on(`timeout`,()=>{this.bufferBasedABR&&this.mainSegmentLoader_.load()}),this.bufferBasedABR||this.mainSegmentLoader_.on(`progress`,()=>{this.trigger(`progress`)}),this.mainSegmentLoader_.on(`error`,()=>{let e=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainSegmentLoader_.on(`appenderror`,()=>{this.error=this.mainSegmentLoader_.error_,this.trigger(`error`)}),this.mainSegmentLoader_.on(`syncinfoupdate`,()=>{this.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on(`timestampoffset`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-timestamp-offset`})}),this.audioSegmentLoader_.on(`syncinfoupdate`,()=>{this.onSyncInfoUpdate_()}),this.audioSegmentLoader_.on(`appenderror`,()=>{this.error=this.audioSegmentLoader_.error_,this.trigger(`error`)}),this.mainSegmentLoader_.on(`ended`,()=>{this.logger_(`main segment loader ended`),this.onEndOfStream()}),this.timelineChangeController_.on(`audioTimelineBehind`,()=>{let e=this.audioSegmentLoader_.pendingSegment_;if(!e||!e.segment||!e.segment.syncInfo)return;let t=e.segment.syncInfo.end+.01;this.tech_.setCurrentTime(t)}),this.timelineChangeController_.on(`fixBadTimelineChange`,()=>{this.logger_(`Fix bad timeline change. Restarting al segment loaders...`),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}),this.mainSegmentLoader_.on(`earlyabort`,e=>{this.bufferBasedABR||(this.delegateLoaders_(`all`,[`abort`]),this.excludePlaylist({error:{message:`Aborted early because there isn't enough bandwidth to complete the request without rebuffering.`},playlistExclusionDuration:lp}))});let e=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers())return this.tryToCreateSourceBuffers_();let e=this.getCodecsOrExclude_();e&&this.sourceUpdater_.addOrChangeSourceBuffers(e)};this.mainSegmentLoader_.on(`trackinfo`,e),this.audioSegmentLoader_.on(`trackinfo`,e),this.mainSegmentLoader_.on(`fmp4`,()=>{this.triggeredFmp4Usage||=(this.tech_.trigger({type:`usage`,name:`vhs-fmp4`}),!0)}),this.audioSegmentLoader_.on(`fmp4`,()=>{this.triggeredFmp4Usage||=(this.tech_.trigger({type:`usage`,name:`vhs-fmp4`}),!0)}),this.audioSegmentLoader_.on(`ended`,()=>{this.logger_(`audioSegmentLoader ended`),this.onEndOfStream()}),[`segmentselected`,`segmentloadstart`,`segmentloaded`,`segmentkeyloadstart`,`segmentkeyloadcomplete`,`segmentdecryptionstart`,`segmentdecryptioncomplete`,`segmenttransmuxingstart`,`segmenttransmuxingcomplete`,`segmenttransmuxingtrackinfoavailable`,`segmenttransmuxingtiminginfoavailable`,`segmentappendstart`,`appendsdone`,`bandwidthupdated`,`timelinechange`,`codecschange`].forEach(e=>{this.mainSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))}),this.audioSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))}),this.subtitleSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))})})}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}load(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}pause(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()}fastQualityChange_(e=this.selectPlaylist()){if(e&&e===this.mainPlaylistLoader_.media()){this.logger_(`skipping fastQualityChange because new media is same as old`);return}this.switchMedia_(e,`fast-quality`),this.waitingForFastQualityPlaylistReceived_=!0}runFastQualitySwitch_(){this.waitingForFastQualityPlaylistReceived_=!1,this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}play(){if(this.setupFirstPlay())return;this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_&&this.load();let e=this.tech_.seekable();if(this.tech_.duration()===1/0&&this.tech_.currentTime()<e.start(0))return this.tech_.setCurrentTime(e.end(e.length-1))}setupFirstPlay(){let e=this.mainPlaylistLoader_.media();if(!e||this.tech_.paused()||this.hasPlayed_)return!1;if(!e.endList||e.start){let t=this.seekable();if(!t.length)return!1;let n=t.end(0),r=n;if(e.start){let i=e.start.timeOffset;if(i<0){let a=this.mainPlaylistLoader_.main,o=n+up.Playlist.liveEdgeDelay(a,e);r=Math.max(Math.min(o+i,n),t.start(0))}else r=Math.min(n,i)}this.trigger(`firstplay`),this.tech_.setCurrentTime(r)}return this.hasPlayed_=!0,this.load(),!0}handleSourceOpen_(){if(this.tryToCreateSourceBuffers_(),this.tech_.autoplay()){let e=this.tech_.play();e!==void 0&&typeof e.then==`function`&&e.then(null,e=>{})}this.trigger(`sourceopen`)}handleSourceEnded_(){if(!this.inbandTextTracks_.metadataTrack_)return;let e=this.inbandTextTracks_.metadataTrack_.cues;if(!e||!e.length)return;let t=this.duration();e[e.length-1].endTime=isNaN(t)||Math.abs(t)===1/0?Number.MAX_VALUE:t}handleDurationChange_(){this.tech_.trigger(`durationchange`)}onEndOfStream(){let e=this.mainSegmentLoader_.ended_;if(this.mediaTypes_.AUDIO.activePlaylistLoader){let t=this.mainSegmentLoader_.getCurrentMediaInfo_();!t||t.hasVideo?e&&=this.audioSegmentLoader_.ended_:e=this.audioSegmentLoader_.ended_}e&&(this.stopABRTimer_(),this.sourceUpdater_.endOfStream())}stuckAtPlaylistEnd_(e){if(!this.seekable().length)return!1;let t=this.syncController_.getExpiredTime(e,this.duration());if(t===null)return!1;let n=up.Playlist.playlistEnd(e,t),r=this.tech_.currentTime(),i=this.tech_.buffered();if(!i.length)return n-r<=Uc;let a=i.end(i.length-1);return a-r<=Uc&&n-a<=Uc}excludePlaylist({playlistToExclude:e=this.mainPlaylistLoader_.media(),error:t={},playlistExclusionDuration:n}){if(e||=this.mainPlaylistLoader_.media(),n=n||t.playlistExclusionDuration||this.playlistExclusionDuration,!e){this.error=t,this.mediaSource.readyState===`open`?this.sourceUpdater_.endOfStream(`network`):this.trigger(`error`);return}e.playlistErrors_++;let r=this.mainPlaylistLoader_.main.playlists,i=r.filter(gl),a=i.length===1&&i[0]===e;if(r.length===1&&n!==1/0)return Z.log.warn(`Problem encountered with playlist ${e.id}. Trying again since it is the only playlist.`),this.tech_.trigger(`retryplaylist`),this.mainPlaylistLoader_.load(a);if(a){if(this.main().contentSteering){let t=this.pathwayAttribute_(e),n=this.contentSteeringController_.steeringManifest.ttl*1e3;this.contentSteeringController_.excludePathway(t),this.excludeThenChangePathway_(),setTimeout(()=>{this.contentSteeringController_.addAvailablePathway(t)},n);return}let t=!1;r.forEach(n=>{if(n===e)return;let r=n.excludeUntil;r!==void 0&&r!==1/0&&(t=!0,delete n.excludeUntil)}),t&&(Z.log.warn(`Removing other playlists from the exclusion list because the last rendition is about to be excluded.`),this.tech_.trigger(`retryplaylist`))}let o;o=e.playlistErrors_>this.maxPlaylistRetries?1/0:Date.now()+n*1e3,e.excludeUntil=o,t.reason&&(e.lastExcludeReason_=t.reason),this.tech_.trigger(`excludeplaylist`),this.tech_.trigger({type:`usage`,name:`vhs-rendition-excluded`});let s=this.selectPlaylist();if(!s){this.error=`Playback cannot continue. No available working or supported playlists.`,this.trigger(`error`);return}let c=t.internal?this.logger_:Z.log.warn,l=t.message?` `+t.message:``;c(`${t.internal?`Internal problem`:`Problem`} encountered with playlist ${e.id}.${l} Switching to playlist ${s.id}.`),s.attributes.AUDIO!==e.attributes.AUDIO&&this.delegateLoaders_(`audio`,[`abort`,`pause`]),s.attributes.SUBTITLES!==e.attributes.SUBTITLES&&this.delegateLoaders_(`subtitle`,[`abort`,`pause`]),this.delegateLoaders_(`main`,[`abort`,`pause`]);let u=s.targetDuration/2*1e3||5*1e3,d=typeof s.lastRequest==`number`&&Date.now()-s.lastRequest<=u;return this.switchMedia_(s,`exclude`,a||d)}pauseLoading(){this.delegateLoaders_(`all`,[`abort`,`pause`]),this.stopABRTimer_()}delegateLoaders_(e,t){let n=[],r=e===`all`;(r||e===`main`)&&n.push(this.mainPlaylistLoader_);let i=[];(r||e===`audio`)&&i.push(`AUDIO`),(r||e===`subtitle`)&&(i.push(`CLOSED-CAPTIONS`),i.push(`SUBTITLES`)),i.forEach(e=>{let t=this.mediaTypes_[e]&&this.mediaTypes_[e].activePlaylistLoader;t&&n.push(t)}),[`main`,`audio`,`subtitle`].forEach(t=>{let r=this[`${t}SegmentLoader_`];r&&(e===t||e===`all`)&&n.push(r)}),n.forEach(e=>t.forEach(t=>{typeof e[t]==`function`&&e[t]()}))}setCurrentTime(e){let t=Gc(this.tech_.buffered(),e);if(!(this.mainPlaylistLoader_&&this.mainPlaylistLoader_.media())||!this.mainPlaylistLoader_.media().segments)return 0;if(t&&t.length)return e;this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}duration(){if(!this.mainPlaylistLoader_)return 0;let e=this.mainPlaylistLoader_.media();return e?e.endList?this.mediaSource?this.mediaSource.duration:up.Playlist.duration(e):1/0:0}seekable(){return this.seekable_}getSeekableRange_(e,t){let n=e.media();if(!n)return null;let r=this.syncController_.getMediaSequenceSync(t);if(r&&r.isReliable){let e=r.start,t=r.end;if(!isFinite(e)||!isFinite(t))return null;let i=up.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,n);return Bc([[e,Math.max(e,t-i)]])}let i=this.syncController_.getExpiredTime(n,this.duration());if(i===null)return null;let a=up.Playlist.seekable(n,i,up.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,n));return a.length?a:null}computeFinalSeekable_(e,t){if(!t)return e;let n=e.start(0),r=e.end(0),i=t.start(0),a=t.end(0);return i>r||n>a?e:Bc([[Math.max(n,i),Math.min(r,a)]])}onSyncInfoUpdate_(){if(!this.mainPlaylistLoader_)return;let e=this.getSeekableRange_(this.mainPlaylistLoader_,`main`);if(!e)return;let t;if(this.mediaTypes_.AUDIO.activePlaylistLoader&&(t=this.getSeekableRange_(this.mediaTypes_.AUDIO.activePlaylistLoader,`audio`),!t))return;let n=this.seekable_;if(this.seekable_=this.computeFinalSeekable_(e,t),!this.seekable_||n&&n.length&&this.seekable_.length&&n.start(0)===this.seekable_.start(0)&&n.end(0)===this.seekable_.end(0))return;this.logger_(`seekable updated [${Yc(this.seekable_)}]`);let r={seekableRanges:this.seekable_};this.trigger({type:`seekablerangeschanged`,metadata:r}),this.tech_.trigger(`seekablechanged`)}updateDuration(e){if(this.updateDuration_&&=(this.mediaSource.removeEventListener(`sourceopen`,this.updateDuration_),null),this.mediaSource.readyState!==`open`){this.updateDuration_=this.updateDuration.bind(this,e),this.mediaSource.addEventListener(`sourceopen`,this.updateDuration_);return}if(e){let e=this.seekable();if(!e.length)return;(isNaN(this.mediaSource.duration)||this.mediaSource.duration<e.end(e.length-1))&&this.sourceUpdater_.setDuration(e.end(e.length-1));return}let t=this.tech_.buffered(),n=up.Playlist.duration(this.mainPlaylistLoader_.media());t.length>0&&(n=Math.max(n,t.end(t.length-1))),this.mediaSource.duration!==n&&this.sourceUpdater_.setDuration(n)}dispose(){this.trigger(`dispose`),this.decrypter_.terminate(),this.mainPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),this.contentSteeringController_.dispose(),this.keyStatusMap_.clear(),this.loadOnPlay_&&this.tech_.off(`play`,this.loadOnPlay_),[`AUDIO`,`SUBTITLES`].forEach(e=>{let t=this.mediaTypes_[e].groups;for(let e in t)t[e].forEach(e=>{e.playlistLoader&&e.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose(),this.sourceUpdater_.dispose(),this.timelineChangeController_.dispose(),this.stopABRTimer_(),this.updateDuration_&&this.mediaSource.removeEventListener(`sourceopen`,this.updateDuration_),this.mediaSource.removeEventListener(`durationchange`,this.handleDurationChange_),this.mediaSource.removeEventListener(`sourceopen`,this.handleSourceOpen_),this.mediaSource.removeEventListener(`sourceended`,this.handleSourceEnded_),this.off()}main(){return this.mainPlaylistLoader_.main}media(){return this.mainPlaylistLoader_.media()||this.initialMedia_}areMediaTypesKnown_(){let e=!!this.mediaTypes_.AUDIO.activePlaylistLoader,t=!!this.mainSegmentLoader_.getCurrentMediaInfo_(),n=e?!!this.audioSegmentLoader_.getCurrentMediaInfo_():!0;return!(!t||!n)}getCodecsOrExclude_(){let e={main:this.mainSegmentLoader_.getCurrentMediaInfo_()||{},audio:this.audioSegmentLoader_.getCurrentMediaInfo_()||{}},t=this.mainSegmentLoader_.getPendingSegmentPlaylist()||this.media();e.video=e.main;let n=Gl(this.main(),t),r={},i=!!this.mediaTypes_.AUDIO.activePlaylistLoader;if(e.main.hasVideo&&(r.video=n.video||e.main.videoCodec||`avc1.4d400d`),e.main.isMuxed&&(r.video+=`,${n.audio||e.main.audioCodec||`mp4a.40.2`}`),(e.main.hasAudio&&!e.main.isMuxed||e.audio.hasAudio||i)&&(r.audio=n.audio||e.main.audioCodec||e.audio.audioCodec||`mp4a.40.2`,e.audio.isFmp4=e.main.hasAudio&&!e.main.isMuxed?e.main.isFmp4:e.audio.isFmp4),!r.audio&&!r.video){this.excludePlaylist({playlistToExclude:t,error:{message:`Could not determine codecs for playlist.`},playlistExclusionDuration:1/0});return}let a=(e,t)=>e?ve(t,this.usingManagedMediaSource_):M(t),o={},s;if([`video`,`audio`].forEach(function(t){if(r.hasOwnProperty(t)&&!a(e[t].isFmp4,r[t])){let n=e[t].isFmp4?`browser`:`muxer`;o[n]=o[n]||[],o[n].push(r[t]),t===`audio`&&(s=n)}}),i&&s&&t.attributes.AUDIO){let e=t.attributes.AUDIO;this.main().playlists.forEach(n=>{(n.attributes&&n.attributes.AUDIO)===e&&n!==t&&(n.excludeUntil=1/0)}),this.logger_(`excluding audio group ${e} as ${s} does not support codec(s): "${r.audio}"`)}if(Object.keys(o).length){let e=Object.keys(o).reduce((e,t)=>(e&&(e+=`, `),e+=`${t} does not support codec(s): "${o[t].join(`,`)}"`,e),``)+`.`;this.excludePlaylist({playlistToExclude:t,error:{internal:!0,message:e},playlistExclusionDuration:1/0});return}if(this.sourceUpdater_.hasCreatedSourceBuffers()&&!this.sourceUpdater_.canChangeType()){let e=[];if([`video`,`audio`].forEach(t=>{let n=(pe(this.sourceUpdater_.codecs[t]||``)[0]||{}).type,i=(pe(r[t]||``)[0]||{}).type;n&&i&&n.toLowerCase()!==i.toLowerCase()&&e.push(`"${this.sourceUpdater_.codecs[t]}" -> "${r[t]}"`)}),e.length){this.excludePlaylist({playlistToExclude:t,error:{message:`Codec switching not supported: ${e.join(`, `)}.`,internal:!0},playlistExclusionDuration:1/0});return}}return r}tryToCreateSourceBuffers_(){if(this.mediaSource.readyState!==`open`||this.sourceUpdater_.hasCreatedSourceBuffers()||!this.areMediaTypesKnown_())return;let e=this.getCodecsOrExclude_();if(!e)return;this.sourceUpdater_.createSourceBuffers(e);let t=[e.video,e.audio].filter(Boolean).join(`,`);this.excludeIncompatibleVariants_(t)}excludeUnsupportedVariants_(){let e=this.main().playlists,t=[];Object.keys(e).forEach(n=>{let r=e[n];if(t.indexOf(r.id)!==-1)return;t.push(r.id);let i=Gl(this.main,r),a=[];i.audio&&!M(i.audio)&&!ve(i.audio,this.usingManagedMediaSource_)&&a.push(`audio codec ${i.audio}`),i.video&&!M(i.video)&&!ve(i.video,this.usingManagedMediaSource_)&&a.push(`video codec ${i.video}`),i.text&&i.text===`stpp.ttml.im1t`&&a.push(`text codec ${i.text}`),a.length&&(r.excludeUntil=1/0,this.logger_(`excluding ${r.id} for unsupported: ${a.join(`, `)}`))})}excludeIncompatibleVariants_(e){let t=[],n=this.main().playlists,r=Ul(pe(e)),i=Wl(r),a=r.video&&pe(r.video)[0]||null,o=r.audio&&pe(r.audio)[0]||null;Object.keys(n).forEach(e=>{let r=n[e];if(t.indexOf(r.id)!==-1||r.excludeUntil===1/0)return;t.push(r.id);let s=[],c=Gl(this.mainPlaylistLoader_.main,r),l=Wl(c);if(!(!c.audio&&!c.video)){if(l!==i&&s.push(`codec count "${l}" !== "${i}"`),!this.sourceUpdater_.canChangeType()){let e=c.video&&pe(c.video)[0]||null,t=c.audio&&pe(c.audio)[0]||null;e&&a&&e.type.toLowerCase()!==a.type.toLowerCase()&&s.push(`video codec "${e.type}" !== "${a.type}"`),t&&o&&t.type.toLowerCase()!==o.type.toLowerCase()&&s.push(`audio codec "${t.type}" !== "${o.type}"`)}s.length&&(r.excludeUntil=1/0,this.logger_(`excluding ${r.id}: ${s.join(` && `)}`))}})}updateAdCues_(e){let t=0,n=this.seekable();n.length&&(t=n.start(0)),Ff(e,this.cueTagsTrack_,t)}goalBufferLength(){let e=this.tech_.currentTime(),t=Ru.GOAL_BUFFER_LENGTH,n=Ru.GOAL_BUFFER_LENGTH_RATE,r=Math.max(t,Ru.MAX_GOAL_BUFFER_LENGTH);return Math.min(t+e*n,r)}bufferLowWaterLine(){let e=this.tech_.currentTime(),t=Ru.BUFFER_LOW_WATER_LINE,n=Ru.BUFFER_LOW_WATER_LINE_RATE,r=Math.max(t,Ru.MAX_BUFFER_LOW_WATER_LINE),i=Math.max(t,Ru.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE);return Math.min(t+e*n,this.bufferBasedABR?i:r)}bufferHighWaterLine(){return Ru.BUFFER_HIGH_WATER_LINE}addDateRangesToTextTrack_(e){Wd(this.inbandTextTracks_,`com.apple.streaming`,this.tech_),Ud({inbandTextTracks:this.inbandTextTracks_,dateRanges:e})}addMetadataToTextTrack(e,t,n){let r=this.sourceUpdater_.videoBuffer?this.sourceUpdater_.videoTimestampOffset():this.sourceUpdater_.audioTimestampOffset();Wd(this.inbandTextTracks_,e,this.tech_),Bd({inbandTextTracks:this.inbandTextTracks_,metadataArray:t,timestampOffset:r,videoDuration:n})}pathwayAttribute_(e){return e.attributes[`PATHWAY-ID`]||e.attributes.serviceLocation}initContentSteeringController_(){let e=this.main();if(e.contentSteering){for(let t of e.playlists)this.contentSteeringController_.addAvailablePathway(this.pathwayAttribute_(t));if(this.contentSteeringController_.assignTagProperties(e.uri,e.contentSteering),this.contentSteeringController_.queryBeforeStart){this.contentSteeringController_.requestSteeringManifest(!0);return}this.tech_.one(`canplay`,()=>{this.contentSteeringController_.requestSteeringManifest()})}}resetContentSteeringController_(){this.contentSteeringController_.clearAvailablePathways(),this.contentSteeringController_.dispose(),this.initContentSteeringController_()}attachContentSteeringListeners_(){this.contentSteeringController_.on(`content-steering`,this.excludeThenChangePathway_.bind(this)),[`contentsteeringloadstart`,`contentsteeringloadcomplete`,`contentsteeringparsed`].forEach(e=>{this.contentSteeringController_.on(e,e=>{this.trigger(C({},e))})}),this.sourceType_===`dash`&&this.mainPlaylistLoader_.on(`loadedplaylist`,()=>{let e=this.main();(this.contentSteeringController_.didDASHTagChange(e.uri,e.contentSteering)||(()=>{let t=this.contentSteeringController_.getAvailablePathways(),n=[];for(let r of e.playlists){let e=r.attributes.serviceLocation;if(e&&(n.push(e),!t.has(e)))return!0}return!!(!n.length&&t.size)})())&&this.resetContentSteeringController_()})}excludeThenChangePathway_(){let e=this.contentSteeringController_.getPathway();if(!e)return;this.handlePathwayClones_();let t=this.main().playlists,n=new Set,r=!1;Object.keys(t).forEach(i=>{let a=t[i],o=this.pathwayAttribute_(a),s=o&&e!==o;a.excludeUntil===1/0&&a.lastExcludeReason_===`content-steering`&&!s&&(delete a.excludeUntil,delete a.lastExcludeReason_,r=!0);let c=!a.excludeUntil&&a.excludeUntil!==1/0;!n.has(a.id)&&s&&c&&(n.add(a.id),a.excludeUntil=1/0,a.lastExcludeReason_=`content-steering`,this.logger_(`excluding ${a.id} for ${a.lastExcludeReason_}`))}),this.contentSteeringController_.manifestType_===`DASH`&&Object.keys(this.mediaTypes_).forEach(t=>{let n=this.mediaTypes_[t];if(n.activePlaylistLoader){let t=n.activePlaylistLoader.media_;t&&t.attributes.serviceLocation!==e&&(r=!0)}}),r&&this.changeSegmentPathway_()}handlePathwayClones_(){let e=this.main().playlists,t=this.contentSteeringController_.currentPathwayClones,n=this.contentSteeringController_.nextPathwayClones;if(t&&t.size||n&&n.size){for(let[e,r]of t.entries())n.get(e)||(this.mainPlaylistLoader_.updateOrDeleteClone(r),this.contentSteeringController_.excludePathway(e));for(let[r,i]of n.entries()){let n=t.get(r);if(!n){e.filter(e=>e.attributes[`PATHWAY-ID`]===i[`BASE-ID`]).forEach(e=>{this.mainPlaylistLoader_.addClonePathway(i,e)}),this.contentSteeringController_.addAvailablePathway(r);continue}this.equalPathwayClones_(n,i)||(this.mainPlaylistLoader_.updateOrDeleteClone(i,!0),this.contentSteeringController_.addAvailablePathway(r))}this.contentSteeringController_.currentPathwayClones=new Map(JSON.parse(JSON.stringify([...n])))}}equalPathwayClones_(e,t){if(e[`BASE-ID`]!==t[`BASE-ID`]||e.ID!==t.ID||e[`URI-REPLACEMENT`].HOST!==t[`URI-REPLACEMENT`].HOST)return!1;let n=e[`URI-REPLACEMENT`].PARAMS,r=t[`URI-REPLACEMENT`].PARAMS;for(let e in n)if(n[e]!==r[e])return!1;for(let e in r)if(n[e]!==r[e])return!1;return!0}changeSegmentPathway_(){let e=this.selectPlaylist();this.pauseLoading(),this.contentSteeringController_.manifestType_===`DASH`&&this.switchMediaForDASHContentSteering_(),this.switchMedia_(e,`content-steering`)}excludeNonUsablePlaylistsByKeyId_(){if(!this.mainPlaylistLoader_||!this.mainPlaylistLoader_.main)return;let e=0,t=`non-usable`;this.mainPlaylistLoader_.main.playlists.forEach(n=>{let r=this.mainPlaylistLoader_.getKeyIdSet(n);!r||!r.size||r.forEach(r=>{let i=`usable`,a=this.keyStatusMap_.has(r)&&this.keyStatusMap_.get(r)===i,o=n.lastExcludeReason_===t&&n.excludeUntil===1/0;a?a&&o&&(delete n.excludeUntil,delete n.lastExcludeReason_,this.logger_(`enabling playlist ${n.id} because key ID ${r} is ${i}`)):(n.excludeUntil!==1/0&&n.lastExcludeReason_!==t&&(n.excludeUntil=1/0,n.lastExcludeReason_=t,this.logger_(`excluding playlist ${n.id} because the key ID ${r} doesn't exist in the keyStatusMap or is not ${i}`)),e++)})}),e>=this.mainPlaylistLoader_.main.playlists.length&&this.mainPlaylistLoader_.main.playlists.forEach(e=>{let n=e&&e.attributes&&e.attributes.RESOLUTION&&e.attributes.RESOLUTION.height<720,r=e.excludeUntil===1/0&&e.lastExcludeReason_===t;n&&r&&(delete e.excludeUntil,Z.log.warn(`enabling non-HD playlist ${e.id} because all playlists were excluded due to ${t} key IDs`))})}addKeyStatus_(e,t){let n=(typeof e==`string`?e:Af(e)).slice(0,32).toLowerCase();this.logger_(`KeyStatus '${t}' with key ID ${n} added to the keyStatusMap`),this.keyStatusMap_.set(n,t)}updatePlaylistByKeyStatus(e,t){this.addKeyStatus_(e,t),this.waitingForFastQualityPlaylistReceived_||this.excludeNonUsableThenChangePlaylist_(),this.mainPlaylistLoader_.off(`loadedplaylist`,this.excludeNonUsableThenChangePlaylist_.bind(this)),this.mainPlaylistLoader_.on(`loadedplaylist`,this.excludeNonUsableThenChangePlaylist_.bind(this))}excludeNonUsableThenChangePlaylist_(){this.excludeNonUsablePlaylistsByKeyId_(),this.fastQualityChange_()}},hp=(e,t,n)=>r=>{let i=e.main.playlists[t],a=hl(i),o=gl(i);if(r===void 0)return o;r?delete i.disabled:i.disabled=!0;let s={renditionInfo:{id:t,bandwidth:i.attributes.BANDWIDTH,resolution:i.attributes.RESOLUTION,codecs:i.attributes.CODECS},cause:`fast-quality`};return r!==o&&!a&&(r?(n(i),e.trigger({type:`renditionenabled`,metadata:s})):e.trigger({type:`renditiondisabled`,metadata:s})),r},gp=class{constructor(e,t,n){let{playlistController_:r}=e,i=r.fastQualityChange_.bind(r);if(t.attributes){let e=t.attributes.RESOLUTION;this.width=e&&e.width,this.height=e&&e.height,this.bandwidth=t.attributes.BANDWIDTH,this.frameRate=t.attributes[`FRAME-RATE`]}this.codecs=Gl(r.main(),t),this.playlist=t,this.id=n,this.enabled=hp(e.playlists,t.id,i)}},_p=function(e){e.representations=()=>{let t=e.playlistController_.main(),n=wl(t)?e.playlistController_.getAudioTrackPlaylists_():t.playlists;return n?n.filter(e=>!hl(e)).map((t,n)=>new gp(e,t,t.id)):[]}},vp=[`seeking`,`seeked`,`pause`,`playing`,`error`],yp=class extends Z.EventTarget{constructor(e){super(),this.playlistController_=e.playlistController,this.tech_=e.tech,this.seekable=e.seekable,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.liveRangeSafeTimeDelta=e.liveRangeSafeTimeDelta,this.media=e.media,this.playedRanges_=[],this.consecutiveUpdates=0,this.lastRecordedTime=null,this.checkCurrentTimeTimeout_=null,this.logger_=zc(`PlaybackWatcher`),this.logger_(`initialize`);let t=()=>this.monitorCurrentTime_(),n=()=>this.monitorCurrentTime_(),r=()=>this.techWaiting_(),i=()=>this.resetTimeUpdate_(),a=this.playlistController_,o=[`main`,`subtitle`,`audio`],s={};o.forEach(e=>{s[e]={reset:()=>this.resetSegmentDownloads_(e),updateend:()=>this.checkSegmentDownloads_(e)},a[`${e}SegmentLoader_`].on(`appendsdone`,s[e].updateend),a[`${e}SegmentLoader_`].on(`playlistupdate`,s[e].reset),this.tech_.on([`seeked`,`seeking`],s[e].reset)});let c=e=>{[`main`,`audio`].forEach(t=>{a[`${t}SegmentLoader_`][e](`appended`,this.seekingAppendCheck_)})};this.seekingAppendCheck_=()=>{this.fixesBadSeeks_()&&(this.consecutiveUpdates=0,this.lastRecordedTime=this.tech_.currentTime(),c(`off`))},this.clearSeekingAppendCheck_=()=>c(`off`),this.watchForBadSeeking_=()=>{this.clearSeekingAppendCheck_(),c(`on`)},this.tech_.on(`seeked`,this.clearSeekingAppendCheck_),this.tech_.on(`seeking`,this.watchForBadSeeking_),this.tech_.on(`waiting`,r),this.tech_.on(vp,i),this.tech_.on(`canplay`,n),this.tech_.one(`play`,t),this.dispose=()=>{this.clearSeekingAppendCheck_(),this.logger_(`dispose`),this.tech_.off(`waiting`,r),this.tech_.off(vp,i),this.tech_.off(`canplay`,n),this.tech_.off(`play`,t),this.tech_.off(`seeking`,this.watchForBadSeeking_),this.tech_.off(`seeked`,this.clearSeekingAppendCheck_),o.forEach(e=>{a[`${e}SegmentLoader_`].off(`appendsdone`,s[e].updateend),a[`${e}SegmentLoader_`].off(`playlistupdate`,s[e].reset),this.tech_.off([`seeked`,`seeking`],s[e].reset)}),this.checkCurrentTimeTimeout_&&b.default.clearTimeout(this.checkCurrentTimeTimeout_),this.resetTimeUpdate_()}}monitorCurrentTime_(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&b.default.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=b.default.setTimeout(this.monitorCurrentTime_.bind(this),250)}resetSegmentDownloads_(e){let t=this.playlistController_[`${e}SegmentLoader_`];this[`${e}StalledDownloads_`]>0&&this.logger_(`resetting possible stalled download count for ${e} loader`),this[`${e}StalledDownloads_`]=0,this[`${e}Buffered_`]=t.buffered_()}checkSegmentDownloads_(e){let t=this.playlistController_,n=t[`${e}SegmentLoader_`],r=n.buffered_(),i=Qc(this[`${e}Buffered_`],r);if(this[`${e}Buffered_`]=r,i){let n={bufferedRanges:r};t.trigger({type:`bufferedrangeschanged`,metadata:n}),this.resetSegmentDownloads_(e);return}this[`${e}StalledDownloads_`]++,this.logger_(`found #${this[`${e}StalledDownloads_`]} ${e} appends that did not increase buffer (possible stalled download)`,{playlistId:n.playlist_&&n.playlist_.id,buffered:Zc(r)}),!(this[`${e}StalledDownloads_`]<10)&&(this.logger_(`${e} loader stalled download exclusion`),this.resetSegmentDownloads_(e),this.tech_.trigger({type:`usage`,name:`vhs-${e}-download-exclusion`}),e!==`subtitle`&&t.excludePlaylist({error:{message:`Excessive ${e} segment downloading detected.`},playlistExclusionDuration:1/0}))}checkCurrentTime_(){if(this.tech_.paused()||this.tech_.seeking())return;let e=this.tech_.currentTime(),t=this.tech_.buffered();if(this.lastRecordedTime===e&&(!t.length||e+Uc>=t.end(t.length-1)))return this.techWaiting_();if(this.consecutiveUpdates>=5&&e===this.lastRecordedTime)this.consecutiveUpdates++,this.waiting_();else if(e===this.lastRecordedTime)this.consecutiveUpdates++;else{this.playedRanges_.push(Bc([this.lastRecordedTime,e]));let t={playedRanges:this.playedRanges_};this.playlistController_.trigger({type:`playedrangeschanged`,metadata:t}),this.consecutiveUpdates=0,this.lastRecordedTime=e}}resetTimeUpdate_(){this.consecutiveUpdates=0}fixesBadSeeks_(){if(!this.tech_.seeking())return!1;let e=this.seekable(),t=this.tech_.currentTime(),n=this.afterSeekableWindow_(e,t,this.media(),this.allowSeeksWithinUnsafeLiveWindow),r;if(n&&(r=e.end(e.length-1)),this.beforeSeekableWindow_(e,t)){let t=e.start(0);r=t+(t===e.end(0)?0:Uc)}if(r!==void 0)return this.logger_(`Trying to seek outside of seekable at time ${t} with seekable range ${Yc(e)}. Seeking to ${r}.`),this.tech_.setCurrentTime(r),!0;let i=this.playlistController_.sourceUpdater_,a=this.tech_.buffered(),o=i.audioBuffer?i.audioBuffered():null,s=i.videoBuffer?i.videoBuffered():null,c=this.media(),l=c.partTargetDuration?c.partTargetDuration:(c.targetDuration-Hc)*2,u=[o,s];for(let e=0;e<u.length;e++)if(u[e]&&el(u[e],t)<l)return!1;let d=Kc(a,t);return d.length===0?!1:(r=d.start(0)+Uc,this.logger_(`Buffered region starts (${d.start(0)}) just beyond seek point (${t}). Seeking to ${r}.`),this.tech_.setCurrentTime(r),!0)}waiting_(){if(this.techWaiting_())return;let e=this.tech_.currentTime(),t=Gc(this.tech_.buffered(),e);if(t.length&&e+3<=t.end(0)){this.resetTimeUpdate_(),this.tech_.setCurrentTime(e),this.logger_(`Stopped at ${e} while inside a buffered region [${t.start(0)} -> ${t.end(0)}]. Attempting to resume playback by seeking to the current time.`),this.tech_.trigger({type:`usage`,name:`vhs-unknown-waiting`});return}}techWaiting_(){let e=this.seekable(),t=this.tech_.currentTime();if(this.tech_.seeking())return!0;if(this.beforeSeekableWindow_(e,t)){let n=e.end(e.length-1);return this.logger_(`Fell out of live window at time ${t}. Seeking to live point (seekable end) ${n}`),this.resetTimeUpdate_(),this.tech_.setCurrentTime(n),this.tech_.trigger({type:`usage`,name:`vhs-live-resync`}),!0}let n=this.tech_.vhs.playlistController_.sourceUpdater_,r=this.tech_.buffered();if(this.videoUnderflow_({audioBuffered:n.audioBuffered(),videoBuffered:n.videoBuffered(),currentTime:t}))return this.resetTimeUpdate_(),this.tech_.setCurrentTime(t),this.tech_.trigger({type:`usage`,name:`vhs-video-underflow`}),!0;let i=Kc(r,t);return i.length>0?(this.logger_(`Stopped at ${t} and seeking to ${i.start(0)}`),this.resetTimeUpdate_(),this.skipTheGap_(t),!0):!1}afterSeekableWindow_(e,t,n,r=!1){if(!e.length)return!1;let i=e.end(e.length-1)+Uc,a=!n.endList,o=typeof n.partTargetDuration==`number`;return a&&(o||r)&&(i=e.end(e.length-1)+n.targetDuration*3),t>i}beforeSeekableWindow_(e,t){return!!(e.length&&e.start(0)>0&&t<e.start(0)-this.liveRangeSafeTimeDelta)}videoUnderflow_({videoBuffered:e,audioBuffered:t,currentTime:n}){if(!e)return;let r;if(e.length&&t.length){let i=Gc(e,n-3),a=Gc(e,n),o=Gc(t,n);o.length&&!a.length&&i.length&&(r={start:i.end(0),end:o.end(0)})}else Kc(e,n).length||(r=this.gapFromVideoUnderflow_(e,n));return r?(this.logger_(`Encountered a gap in video from ${r.start} to ${r.end}. Seeking to current time ${n}`),!0):!1}skipTheGap_(e){let t=this.tech_.buffered(),n=this.tech_.currentTime(),r=Kc(t,n);if(this.resetTimeUpdate_(),r.length===0||n!==e)return;this.logger_(`skipTheGap_:`,`currentTime:`,n,`scheduled currentTime:`,e,`nextRange start:`,r.start(0)),this.tech_.setCurrentTime(r.start(0)+Hc);let i={gapInfo:{from:n,to:r.start(0)}};this.playlistController_.trigger({type:`gapjumped`,metadata:i}),this.tech_.trigger({type:`usage`,name:`vhs-gap-skip`})}gapFromVideoUnderflow_(e,t){let n=qc(e);for(let e=0;e<n.length;e++){let r=n.start(e),i=n.end(e);if(t-r<4&&t-r>2)return{start:r,end:i}}return null}},bp={errorInterval:30,getSource(e){return e(this.tech({IWillNotUseThisInPlugins:!0}).currentSource_||this.currentSource())}},xp=function(e,t){let n=0,r=0,i=Q(bp,t);e.ready(()=>{e.trigger({type:`usage`,name:`vhs-error-reload-initialized`})});let a=function(){r&&e.currentTime(r)},o=function(t){t!=null&&(r=e.duration()!==1/0&&e.currentTime()||0,e.one(`loadedmetadata`,a),e.src(t),e.trigger({type:`usage`,name:`vhs-error-reload`}),e.play())},s=function(){if(Date.now()-n<i.errorInterval*1e3){e.trigger({type:`usage`,name:`vhs-error-reload-canceled`});return}if(!i.getSource||typeof i.getSource!=`function`){Z.log.error(`ERROR: reloadSourceOnError - The option getSource must be a function!`);return}return n=Date.now(),i.getSource.call(e,o)},c=function(){e.off(`loadedmetadata`,a),e.off(`error`,s),e.off(`dispose`,c)};e.on(`error`,s),e.on(`dispose`,c),e.reloadSourceOnError=function(t){c(),xp(e,t)}},Sp=function(e){xp(this,e)},Cp=`3.17.3`,wp=`7.1.0`,Tp=`1.3.1`,Ep=`7.2.0`,Dp=`4.0.2`,$={PlaylistLoader:nu,Playlist:Tl,utils:gu,STANDARD_PLAYLIST_SELECTOR:jd,INITIAL_PLAYLIST_SELECTOR:Pd,lastBandwidthSelector:jd,movingAverageBandwidthSelector:Md,comparePlaylistBandwidth:Od,comparePlaylistResolution:kd,xhr:ou()};Object.keys(Ru).forEach(e=>{Object.defineProperty($,e,{get(){return Z.log.warn(`using Vhs.${e} is UNSAFE be sure you know what you are doing`),Ru[e]},set(t){if(Z.log.warn(`using Vhs.${e} is UNSAFE be sure you know what you are doing`),typeof t!=`number`||t<0){Z.log.warn(`value of Vhs.${e} must be greater than or equal to 0`);return}Ru[e]=t}})});var Op=`videojs-vhs`,kp=function(e,t){let n=t.media(),r=-1;for(let t=0;t<e.length;t++)if(e[t].id===n.id){r=t;break}e.selectedIndex_=r,e.trigger({selectedIndex:r,type:`change`})},Ap=function(e,t){t.representations().forEach(t=>{e.addQualityLevel(t)}),kp(e,t.playlists)};$.canPlaySource=function(){return Z.log.warn(`VHS is no longer a tech. Please remove it from your player's techOrder.`)};var jp=(e,t,n)=>{if(!e)return e;let r={};t&&t.attributes&&t.attributes.CODECS&&(r=Ul(pe(t.attributes.CODECS))),n&&n.attributes&&n.attributes.CODECS&&(r.audio=n.attributes.CODECS);let i=_e(r.video),a=_e(r.audio),o={};for(let n in e)o[n]={},a&&(o[n].audioContentType=a),i&&(o[n].videoContentType=i),t.contentProtection&&t.contentProtection[n]&&t.contentProtection[n].pssh&&(o[n].pssh=t.contentProtection[n].pssh),typeof e[n]==`string`&&(o[n].url=e[n]);return Q(e,o)},Mp=(e,t)=>e.reduce((e,n)=>{if(!n.contentProtection)return e;let r=t.reduce((e,t)=>{let r=n.contentProtection[t];return r&&r.pssh&&(e[t]={pssh:r.pssh}),e},{});return Object.keys(r).length&&e.push(r),e},[]),Np=({player:e,sourceKeySystems:t,audioMedia:n,mainPlaylists:r})=>{if(!e.eme.initializeMediaKeys)return Promise.resolve();let i=Mp(n?r.concat([n]):r,Object.keys(t)),a=[],o=[];return i.forEach(t=>{o.push(new Promise((t,n)=>{e.tech_.one(`keysessioncreated`,t)})),a.push(new Promise((n,r)=>{e.eme.initializeMediaKeys({keySystems:t},e=>{if(e){r(e);return}n()})}))}),Promise.race([Promise.all(a),Promise.race(o)])},Pp=({player:e,sourceKeySystems:t,media:n,audioMedia:r})=>{let i=jp(t,n,r);return i?(e.currentSource().keySystems=i,i&&!e.eme?(Z.log.warn(`DRM encrypted source cannot be decrypted without a DRM plugin`),!1):!0):!1},Fp=()=>{if(!b.default.localStorage)return null;let e=b.default.localStorage.getItem(Op);if(!e)return null;try{return JSON.parse(e)}catch{return null}},Ip=e=>{if(!b.default.localStorage)return!1;let t=Fp();t=t?Q(t,e):e;try{b.default.localStorage.setItem(Op,JSON.stringify(t))}catch{return!1}return t},Lp=e=>e.toLowerCase().indexOf(`data:application/vnd.videojs.vhs+json,`)===0?JSON.parse(e.substring(e.indexOf(`,`)+1)):e,Rp=(e,t)=>{e._requestCallbackSet||=new Set,e._requestCallbackSet.add(t)},zp=(e,t)=>{e._responseCallbackSet||=new Set,e._responseCallbackSet.add(t)},Bp=(e,t)=>{e._requestCallbackSet&&(e._requestCallbackSet.delete(t),e._requestCallbackSet.size||delete e._requestCallbackSet)},Vp=(e,t)=>{e._responseCallbackSet&&(e._responseCallbackSet.delete(t),e._responseCallbackSet.size||delete e._responseCallbackSet)};$.supportsNativeHls=function(){if(!x.default||!x.default.createElement)return!1;let e=x.default.createElement(`video`);return Z.getTech(`Html5`).isSupported()?[`application/vnd.apple.mpegurl`,`audio/mpegurl`,`audio/x-mpegurl`,`application/x-mpegurl`,`video/x-mpegurl`,`video/mpegurl`,`application/mpegurl`].some(function(t){return/maybe|probably/i.test(e.canPlayType(t))}):!1}(),$.supportsNativeDash=function(){return!x.default||!x.default.createElement||!Z.getTech(`Html5`).isSupported()?!1:/maybe|probably/i.test(x.default.createElement(`video`).canPlayType(`application/dash+xml`))}(),$.supportsTypeNatively=e=>e===`hls`?$.supportsNativeHls:e===`dash`?$.supportsNativeDash:!1,$.isSupported=function(){return Z.log.warn(`VHS is no longer a tech. Please remove it from your player's techOrder.`)},$.xhr.onRequest=function(e){Rp($.xhr,e)},$.xhr.onResponse=function(e){zp($.xhr,e)},$.xhr.offRequest=function(e){Bp($.xhr,e)},$.xhr.offResponse=function(e){Vp($.xhr,e)};var Hp=Z.getComponent(`Component`),Up=class extends Hp{constructor(e,t,n){if(super(t,n.vhs),typeof n.initialBandwidth==`number`&&(this.options_.bandwidth=n.initialBandwidth),this.logger_=zc(`VhsHandler`),t.options_&&t.options_.playerId){let e=Z.getPlayer(t.options_.playerId);this.player_=e}if(this.tech_=t,this.source_=e,this.stats={},this.ignoreNextSeekingEvent_=!1,this.setOptions_(),this.options_.overrideNative&&t.overrideNativeAudioTracks&&t.overrideNativeVideoTracks)t.overrideNativeAudioTracks(!0),t.overrideNativeVideoTracks(!0);else if(this.options_.overrideNative&&(t.featuresNativeVideoTracks||t.featuresNativeAudioTracks))throw Error(`Overriding native VHS requires emulated tracks. See https://git.io/vMpjB`);this.on(x.default,[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],e=>{let t=x.default.fullscreenElement||x.default.webkitFullscreenElement||x.default.mozFullScreenElement||x.default.msFullscreenElement;t&&t.contains(this.tech_.el())?this.playlistController_.fastQualityChange_():this.playlistController_.checkABR_()}),this.on(this.tech_,`seeking`,function(){if(this.ignoreNextSeekingEvent_){this.ignoreNextSeekingEvent_=!1;return}this.setCurrentTime(this.tech_.currentTime())}),this.on(this.tech_,`error`,function(){this.tech_.error()&&this.playlistController_&&this.playlistController_.pauseLoading()}),this.on(this.tech_,`play`,this.play)}setOptions_(e={}){if(this.options_=Q(this.options_,e),this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions!==!1,this.options_.useDevicePixelRatio=this.options_.useDevicePixelRatio||!1,this.options_.usePlayerObjectFit=this.options_.usePlayerObjectFit||!1,this.options_.useBandwidthFromLocalStorage=this.source_.useBandwidthFromLocalStorage===void 0?this.options_.useBandwidthFromLocalStorage||!1:this.source_.useBandwidthFromLocalStorage,this.options_.useForcedSubtitles=this.options_.useForcedSubtitles||!1,this.options_.useNetworkInformationApi=this.options_.useNetworkInformationApi===void 0?!0:this.options_.useNetworkInformationApi,this.options_.useDtsForTimestampOffset=this.options_.useDtsForTimestampOffset||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,this.options_.llhls=this.options_.llhls!==!1,this.options_.bufferBasedABR=this.options_.bufferBasedABR||!1,typeof this.options_.playlistExclusionDuration!=`number`&&(this.options_.playlistExclusionDuration=60),typeof this.options_.bandwidth!=`number`&&this.options_.useBandwidthFromLocalStorage){let e=Fp();e&&e.bandwidth&&(this.options_.bandwidth=e.bandwidth,this.tech_.trigger({type:`usage`,name:`vhs-bandwidth-from-local-storage`})),e&&e.throughput&&(this.options_.throughput=e.throughput,this.tech_.trigger({type:`usage`,name:`vhs-throughput-from-local-storage`}))}typeof this.options_.bandwidth!=`number`&&(this.options_.bandwidth=Ru.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===Ru.INITIAL_BANDWIDTH,[`withCredentials`,`useDevicePixelRatio`,`usePlayerObjectFit`,`customPixelRatio`,`limitRenditionByPlayerDimensions`,`bandwidth`,`customTagParsers`,`customTagMappers`,`cacheEncryptionKeys`,`playlistSelector`,`initialPlaylistSelector`,`bufferBasedABR`,`liveRangeSafeTimeDelta`,`llhls`,`useForcedSubtitles`,`useNetworkInformationApi`,`useDtsForTimestampOffset`,`exactManifestTimings`,`leastPixelDiffSelector`].forEach(e=>{this.source_[e]!==void 0&&(this.options_[e]=this.source_[e])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions,this.useDevicePixelRatio=this.options_.useDevicePixelRatio,this.usePlayerObjectFit=this.options_.usePlayerObjectFit;let t=this.options_.customPixelRatio;typeof t==`number`&&t>=0&&(this.customPixelRatio=t)}setOptions(e={}){this.setOptions_(e)}src(e,t){if(!e)return;this.setOptions_(),this.options_.src=Lp(this.source_.src),this.options_.tech=this.tech_,this.options_.externVhs=$,this.options_.sourceType=xe(t),this.options_.seekTo=e=>{this.tech_.setCurrentTime(e)},this.options_.player_=this.player_,this.playlistController_=new mp(this.options_);let n=Q({liveRangeSafeTimeDelta:Uc},this.options_,{seekable:()=>this.seekable(),media:()=>this.playlistController_.media(),playlistController:this.playlistController_});this.playbackWatcher_=new yp(n),this.attachStreamingEventListeners_(),this.playlistController_.on(`error`,()=>{let e=Z.players[this.tech_.options_.playerId],t=this.playlistController_.error;typeof t==`object`&&!t.code?t.code=3:typeof t==`string`&&(t={message:t,code:3}),e.error(t)});let r=this.options_.bufferBasedABR?$.movingAverageBandwidthSelector(.55):$.STANDARD_PLAYLIST_SELECTOR;this.playlistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):r.bind(this),this.playlistController_.selectInitialPlaylist=$.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.playlistController_.mainPlaylistLoader_,this.mediaSource=this.playlistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get(){return this.playlistController_.selectPlaylist},set(e){this.playlistController_.selectPlaylist=e.bind(this)}},throughput:{get(){return this.playlistController_.mainSegmentLoader_.throughput.rate},set(e){this.playlistController_.mainSegmentLoader_.throughput.rate=e,this.playlistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get(){let e=this.playlistController_.mainSegmentLoader_.bandwidth,t=b.default.navigator.connection||b.default.navigator.mozConnection||b.default.navigator.webkitConnection,n=1e7;if(this.options_.useNetworkInformationApi&&t){let r=t.downlink*1e3*1e3;e=r>=n&&e>=n?Math.max(e,r):r}return e},set(e){this.playlistController_.mainSegmentLoader_.bandwidth=e,this.playlistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get(){let e=1/(this.bandwidth||1),t;return t=this.throughput>0?1/this.throughput:0,Math.floor(1/(e+t))},set(){Z.log.error(`The "systemBandwidth" property is read-only`)}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:()=>this.bandwidth||0,enumerable:!0},mediaRequests:{get:()=>this.playlistController_.mediaRequests_()||0,enumerable:!0},mediaRequestsAborted:{get:()=>this.playlistController_.mediaRequestsAborted_()||0,enumerable:!0},mediaRequestsTimedout:{get:()=>this.playlistController_.mediaRequestsTimedout_()||0,enumerable:!0},mediaRequestsErrored:{get:()=>this.playlistController_.mediaRequestsErrored_()||0,enumerable:!0},mediaTransferDuration:{get:()=>this.playlistController_.mediaTransferDuration_()||0,enumerable:!0},mediaBytesTransferred:{get:()=>this.playlistController_.mediaBytesTransferred_()||0,enumerable:!0},mediaSecondsLoaded:{get:()=>this.playlistController_.mediaSecondsLoaded_()||0,enumerable:!0},mediaAppends:{get:()=>this.playlistController_.mediaAppends_()||0,enumerable:!0},mainAppendsToLoadedData:{get:()=>this.playlistController_.mainAppendsToLoadedData_()||0,enumerable:!0},audioAppendsToLoadedData:{get:()=>this.playlistController_.audioAppendsToLoadedData_()||0,enumerable:!0},appendsToLoadedData:{get:()=>this.playlistController_.appendsToLoadedData_()||0,enumerable:!0},timeToLoadedData:{get:()=>this.playlistController_.timeToLoadedData_()||0,enumerable:!0},buffered:{get:()=>Zc(this.tech_.buffered()),enumerable:!0},currentTime:{get:()=>this.tech_.currentTime(),enumerable:!0},currentSource:{get:()=>this.tech_.currentSource_,enumerable:!0},currentTech:{get:()=>this.tech_.name_,enumerable:!0},duration:{get:()=>this.tech_.duration(),enumerable:!0},main:{get:()=>this.playlists.main,enumerable:!0},playerDimensions:{get:()=>this.tech_.currentDimensions(),enumerable:!0},seekable:{get:()=>Zc(this.tech_.seekable()),enumerable:!0},timestamp:{get:()=>Date.now(),enumerable:!0},videoPlaybackQuality:{get:()=>this.tech_.getVideoPlaybackQuality(),enumerable:!0}}),this.tech_.one(`canplay`,this.playlistController_.setupFirstPlay.bind(this.playlistController_)),this.tech_.on(`bandwidthupdate`,()=>{this.options_.useBandwidthFromLocalStorage&&Ip({bandwidth:this.bandwidth,throughput:Math.round(this.throughput)})}),this.playlistController_.on(`selectedinitialmedia`,()=>{_p(this)}),this.playlistController_.sourceUpdater_.on(`createdsourcebuffers`,()=>{this.setupEme_()}),this.on(this.playlistController_,`progress`,function(){this.tech_.trigger(`progress`)}),this.on(this.playlistController_,`firstplay`,function(){this.ignoreNextSeekingEvent_=!0}),this.setupQualityLevels_(),this.tech_.el()&&(this.mediaSourceUrl_=b.default.URL.createObjectURL(this.playlistController_.mediaSource),(Z.browser.IS_ANY_SAFARI||Z.browser.IS_IOS)&&this.options_.overrideNative&&this.options_.sourceType===`hls`&&typeof this.tech_.addSourceElement==`function`?(this.tech_.addSourceElement(this.mediaSourceUrl_),this.tech_.addSourceElement(this.source_.src)):this.tech_.src(this.mediaSourceUrl_))}createKeySessions_(){let e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;this.logger_(`waiting for EME key session creation`),Np({player:this.player_,sourceKeySystems:this.source_.keySystems,audioMedia:e&&e.media(),mainPlaylists:this.playlists.main.playlists}).then(()=>{this.logger_(`created EME key session`),this.playlistController_.sourceUpdater_.initializedEme()}).catch(e=>{this.logger_(`error while creating EME key session`,e),this.player_.error({message:`Failed to initialize media keys for EME`,code:3})})}handleWaitingForKey_(){this.logger_(`waitingforkey fired, attempting to create any new key sessions`),this.createKeySessions_()}setupEme_(){let e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader,t=Pp({player:this.player_,sourceKeySystems:this.source_.keySystems,media:this.playlists.media(),audioMedia:e&&e.media()});if(this.player_.tech_.on(`keystatuschange`,e=>{this.playlistController_.updatePlaylistByKeyStatus(e.keyId,e.status)}),this.handleWaitingForKey_=this.handleWaitingForKey_.bind(this),this.player_.tech_.on(`waitingforkey`,this.handleWaitingForKey_),!t){this.playlistController_.sourceUpdater_.initializedEme();return}this.createKeySessions_()}setupQualityLevels_(){let e=Z.players[this.tech_.options_.playerId];!e||!e.qualityLevels||this.qualityLevels_||(this.qualityLevels_=e.qualityLevels(),this.playlistController_.on(`selectedinitialmedia`,()=>{Ap(this.qualityLevels_,this)}),this.playlists.on(`mediachange`,()=>{kp(this.qualityLevels_,this.playlists)}))}static version(){return{"@videojs/http-streaming":Cp,"mux.js":wp,"mpd-parser":Tp,"m3u8-parser":Ep,"aes-decrypter":Dp}}version(){return this.constructor.version()}canChangeType(){return Of.canChangeType()}play(){this.playlistController_.play()}setCurrentTime(e){this.playlistController_.setCurrentTime(e)}duration(){return this.playlistController_.duration()}seekable(){return this.playlistController_.seekable()}dispose(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.playlistController_&&this.playlistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.tech_&&this.tech_.vhs&&delete this.tech_.vhs,this.mediaSourceUrl_&&b.default.URL.revokeObjectURL&&(b.default.URL.revokeObjectURL(this.mediaSourceUrl_),this.mediaSourceUrl_=null),this.tech_&&this.tech_.off(`waitingforkey`,this.handleWaitingForKey_),super.dispose()}convertToProgramTime(e,t){return wu({playlist:this.playlistController_.media(),time:e,callback:t})}seekToProgramTime(e,t,n=!0,r=2){return Tu({programTime:e,playlist:this.playlistController_.media(),retryCount:r,pauseAfterSeek:n,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:t})}setupXhrHooks_(){this.xhr.onRequest=e=>{Rp(this.xhr,e)},this.xhr.onResponse=e=>{zp(this.xhr,e)},this.xhr.offRequest=e=>{Bp(this.xhr,e)},this.xhr.offResponse=e=>{Vp(this.xhr,e)},this.player_.trigger(`xhr-hooks-ready`)}attachStreamingEventListeners_(){[`seekablerangeschanged`,`bufferedrangeschanged`,`contentsteeringloadstart`,`contentsteeringloadcomplete`,`contentsteeringparsed`].forEach(e=>{this.playlistController_.on(e,e=>{this.player_.trigger(C({},e))})}),[`gapjumped`,`playedrangeschanged`].forEach(e=>{this.playbackWatcher_.on(e,e=>{this.player_.trigger(C({},e))})})}},Wp={name:`videojs-http-streaming`,VERSION:Cp,canHandleSource(e,t={}){let n=Q(Z.options,t);return!n.vhs.experimentalUseMMS&&!ve(`avc1.4d400d,mp4a.40.2`,!1)?!1:Wp.canPlayType(e.type,n)},handleSource(e,t,n={}){return t.vhs=new Up(e,t,Q(Z.options,n)),t.vhs.xhr=ou(),t.vhs.setupXhrHooks_(),t.vhs.src(e.src,e.type),t.vhs},canPlayType(e,t){let n=xe(e);if(!n)return``;let r=Wp.getOverrideNative(t);return!$.supportsTypeNatively(n)||r?`maybe`:``},getOverrideNative(e={}){let{vhs:t={}}=e,n=!(Z.browser.IS_ANY_SAFARI||Z.browser.IS_IOS),{overrideNative:r=n}=t;return r}};ve(`avc1.4d400d,mp4a.40.2`,!0)&&Z.getTech(`Html5`).registerSourceHandler(Wp,0),Z.VhsHandler=Up,Z.VhsSourceHandler=Wp,Z.Vhs=$,Z.use||Z.registerComponent(`Vhs`,$),Z.options.vhs=Z.options.vhs||{},(!Z.getPlugin||!Z.getPlugin(`reloadSourceOnError`))&&Z.registerPlugin(`reloadSourceOnError`,Sp);var Gp=`0.5, 1, 1.5, 2`;function Kp(e){let t=e.getChild(`ControlBar`),n=t.getChild(`CurrentTimeDisplay`),r=t.getChild(`ProgressControl`),i=t.getChild(`DurationDisplay`),a=t.getChild(`TimeDivider`);t.removeChild(r),t.removeChild(n),t.removeChild(a),t.removeChild(i),t.addChild(n,{},0),t.addChild(r,{},1),t.addChild(i,{},2)}var qp=class extends e.t(t.t){constructor(...e){super(...e),this.autoplay=!1,this.loop=!1,this.playbackRates=Gp,this.skipBy=n.r.Ten}srcChanged(){this.#u()}autoplayChanged(){this._player&&this.#u()}skipByChanged(){this._player&&this.#u()}#e;connectedCallback(){super.connectedCallback(),this.#u()}disconnectedCallback(){super.connectedCallback(),this.#i()}#t(){let e=this.querySelectorAll(`source`);if(!(e.length===0&&!this.src))return this.src?[{src:this.src}]:Array.from(e).map(e=>({src:e.getAttribute(`src`),type:e.getAttribute(`type`)}))}#n(){let e=this.#t(),t=parseInt(this.skipBy);return{languages:{current:this.locale.videoPlayer},sources:e,poster:this.poster,muted:this.autoplay,playbackRates:a.t(this.playbackRates),controlBar:{skipButtons:{forward:t,backward:t},remainingTimeDisplay:{displayNegative:!1},volumePanel:{inline:!1}},textTrackSettings:!1,experimentalSvgIcons:!0,language:`current`,fluid:!0,controls:!0,preload:`auto`}}get#r(){return this.shadowRoot.getElementById(`no-sources`)}#i(){this._player&&this._player.dispose()}#a(){this.#e=document.createElement(`video`);let e=this.querySelectorAll(`track`);for(let t=0;t<e.length;t++)this.#e.appendChild(e[t]);this.#e.setAttribute(`crossorigin`,`anonymous`),this.#e.toggleAttribute(`playsinline`,!0),this.loop&&this.#e.setAttribute(`loop`,``),this.autoplay&&this.#e.setAttribute(`autoplay`,``),this.#o.appendChild(this.#e)}get#o(){return this.shadowRoot.querySelector(`.control`)}#s(e=!0){this.#r?.classList.toggle(`vjs-hidden`,e)}#c(e){this._player=Z(this.#e,e),this.shadowRoot.querySelector(`[lang]`).removeAttribute(`lang`)}#l(){this._player.on(`play`,()=>this.$emit(`play`)),this._player.on(`pause`,()=>this.$emit(`pause`)),this._player.on(`ended`,()=>this.$emit(`ended`))}#u(){this.#i();let e=this.#n();e.sources&&this.#o&&this.#r?(this.#s(),this.#a(),this.#c(e),Kp(this._player),this.#l()):this.#s(!1)}};r.t([t.u],qp.prototype,`poster`,void 0),r.t([t.u],qp.prototype,`src`,void 0),r.t([t.u({mode:`boolean`})],qp.prototype,`autoplay`,void 0),r.t([t.u({mode:`boolean`})],qp.prototype,`loop`,void 0),r.t([t.u({attribute:`playback-rates`,mode:`fromView`})],qp.prototype,`playbackRates`,void 0),r.t([t.u({attribute:`skip-by`,mode:`fromView`})],qp.prototype,`skipBy`,void 0);function Jp(){return t.f`
208
+ `,a=n,o=t;this.start_=a,e.forEach((e,t)=>{let n=this.storage_.get(o),s=a,c=s+e.duration,l=!!(n&&n.segmentSyncInfo&&n.segmentSyncInfo.isAppended),u=new If({start:s,end:c,appended:l,segmentIndex:t});e.syncInfo=u;let d=a,f=(e.parts||[]).map((e,r)=>{let a=d,s=d+e.duration,c=!!(n&&n.partsSyncInfo&&n.partsSyncInfo[r]&&n.partsSyncInfo[r].isAppended),l=new If({start:a,end:s,appended:c,segmentIndex:t,partIndex:r});return d=s,i+=`Media Sequence: ${o}.${r} | Range: ${a} --> ${s} | Appended: ${c}\n`,e.syncInfo=l,l});r.set(o,new Lf(u,f)),i+=`${Id(e.resolvedUri)} | Media Sequence: ${o} | Range: ${s} --> ${c} | Appended: ${l}\n`,o++,a=c}),this.end_=a,this.storage_=r,this.diagnostics_=i}calculateBaseTime_(e,t,n){if(!this.storage_.size)return 0;if(this.storage_.has(e))return this.storage_.get(e).segmentSyncInfo.start;let r=Math.min(...this.storage_.keys());if(e<r){let n=r-e,i=this.storage_.get(r).segmentSyncInfo.start;for(let e=0;e<n;e++){let n=t[e];i-=n.duration}return i}return n}isReliablePlaylist_(e,t){return e!=null&&Array.isArray(t)&&t.length}},zf=class extends Rf{constructor(e){super(),this.parent_=e}calculateBaseTime_(e,t,n){if(!this.storage_.size){let t=this.parent_.getSyncInfoForMediaSequence(e);return t?t.segmentSyncInfo.start:0}return super.calculateBaseTime_(e,t,n)}},Bf=86400,Vf=[{name:`VOD`,run:(e,t,n,r,i)=>n===1/0?null:{time:0,segmentIndex:0,partIndex:null}},{name:`MediaSequence`,run:(e,t,n,r,i,a)=>{let o=e.getMediaSequenceSync(a);if(!o||!o.isReliable)return null;let s=o.getSyncInfoForTime(i);return s?{time:s.start,partIndex:s.partIndex,segmentIndex:s.segmentIndex}:null}},{name:`ProgramDateTime`,run:(e,t,n,r,i)=>{if(!Object.keys(e.timelineToDatetimeMappings).length)return null;let a=null,o=null,s=nl(t);i||=0;for(let n=0;n<s.length;n++){let r=s[t.endList||i===0?n:s.length-(n+1)],c=r.segment,l=e.timelineToDatetimeMappings[c.timeline];if(!l||!c.dateTimeObject)continue;let u=c.dateTimeObject.getTime()/1e3+l;if(c.parts&&typeof r.partIndex==`number`)for(let e=0;e<r.partIndex;e++)u+=c.parts[e].duration;let d=Math.abs(i-u);if(o!==null&&(d===0||o<d))break;o=d,a={time:u,segmentIndex:r.segmentIndex,partIndex:r.partIndex}}return a}},{name:`Segment`,run:(e,t,n,r,i)=>{let a=null,o=null;i||=0;let s=nl(t);for(let e=0;e<s.length;e++){let n=s[t.endList||i===0?e:s.length-(e+1)],c=n.segment,l=n.part&&n.part.start||c&&c.start;if(c.timeline===r&&l!==void 0){let e=Math.abs(i-l);if(o!==null&&o<e)break;(!a||o===null||o>=e)&&(o=e,a={time:l,segmentIndex:n.segmentIndex,partIndex:n.partIndex})}}return a}},{name:`Discontinuity`,run:(e,t,n,r,i)=>{let a=null;if(i||=0,t.discontinuityStarts&&t.discontinuityStarts.length){let n=null;for(let r=0;r<t.discontinuityStarts.length;r++){let o=t.discontinuityStarts[r],s=t.discontinuitySequence+r+1,c=e.discontinuities[s];if(c){let e=Math.abs(i-c.time);if(n!==null&&n<e)break;(!a||n===null||n>=e)&&(n=e,a={time:c.time,segmentIndex:o,partIndex:null})}}}return a}},{name:`Playlist`,run:(e,t,n,r,i)=>t.syncInfo?{time:t.syncInfo.time,segmentIndex:t.syncInfo.mediaSequence-t.mediaSequence,partIndex:null}:null}],Hf=class extends Z.EventTarget{constructor(e={}){super(),this.timelines=[],this.discontinuities=[],this.timelineToDatetimeMappings={};let t=new Rf,n=new zf(t),r=new zf(t);this.mediaSequenceStorage_={main:t,audio:n,vtt:r},this.logger_=zc(`SyncController`)}getMediaSequenceSync(e){return this.mediaSequenceStorage_[e]||null}getSyncPoint(e,t,n,r,i){if(t!==1/0)return Vf.find(({name:e})=>e===`VOD`).run(this,e,t);let a=this.runStrategies_(e,t,n,r,i);if(!a.length)return null;for(let t of a){let{syncPoint:n,strategy:i}=t,{segmentIndex:a,time:o}=n;if(a<0)continue;let s=e.segments[a],c=o,l=c+s.duration;if(this.logger_(`Strategy: ${i}. Current time: ${r}. selected segment: ${a}. Time: [${c} -> ${l}]}`),r>=c&&r<l)return this.logger_(`Found sync point with exact match: `,n),n}return this.selectSyncPoint_(a,{key:`time`,value:r})}getExpiredTime(e,t){if(!e||!e.segments)return null;let n=this.runStrategies_(e,t,e.discontinuitySequence,0);if(!n.length)return null;let r=this.selectSyncPoint_(n,{key:`segmentIndex`,value:0});return r.segmentIndex>0&&(r.time*=-1),Math.abs(r.time+ul({defaultDuration:e.targetDuration,durationList:e.segments,startIndex:r.segmentIndex,endIndex:0}))}runStrategies_(e,t,n,r,i){let a=[];for(let o=0;o<Vf.length;o++){let s=Vf[o],c=s.run(this,e,t,n,r,i);c&&(c.strategy=s.name,a.push({strategy:s.name,syncPoint:c}))}return a}selectSyncPoint_(e,t){let n=e[0].syncPoint,r=Math.abs(e[0].syncPoint[t.key]-t.value),i=e[0].strategy;for(let a=1;a<e.length;a++){let o=Math.abs(e[a].syncPoint[t.key]-t.value);o<r&&(r=o,n=e[a].syncPoint,i=e[a].strategy)}return this.logger_(`syncPoint for [${t.key}: ${t.value}] chosen with strategy [${i}]: [time:${n.time}, segmentIndex:${n.segmentIndex}`+(typeof n.partIndex==`number`?`,partIndex:${n.partIndex}`:``)+`]`),n}saveExpiredSegmentInfo(e,t){let n=t.mediaSequence-e.mediaSequence;if(n>Bf){Z.log.warn(`Not saving expired segment info. Media sequence gap ${n} is too large.`);return}for(let r=n-1;r>=0;r--){let n=e.segments[r];if(n&&n.start!==void 0){t.syncInfo={mediaSequence:e.mediaSequence+r,time:n.start},this.logger_(`playlist refresh sync: [time:${t.syncInfo.time}, mediaSequence: ${t.syncInfo.mediaSequence}]`),this.trigger(`syncinfoupdate`);break}}}setDateTimeMappingForStart(e){if(this.timelineToDatetimeMappings={},e.segments&&e.segments.length&&e.segments[0].dateTimeObject){let t=e.segments[0],n=t.dateTimeObject.getTime()/1e3;this.timelineToDatetimeMappings[t.timeline]=-n}}saveSegmentTimingInfo({segmentInfo:e,shouldSaveTimelineMapping:t}){let n=this.calculateSegmentTimeMapping_(e,e.timingInfo,t),r=e.segment;n&&(this.saveDiscontinuitySyncInfo_(e),e.playlist.syncInfo||(e.playlist.syncInfo={mediaSequence:e.playlist.mediaSequence+e.mediaIndex,time:r.start}));let i=r.dateTimeObject;r.discontinuity&&t&&i&&(this.timelineToDatetimeMappings[r.timeline]=-(i.getTime()/1e3))}timestampOffsetForTimeline(e){return this.timelines[e]===void 0?null:this.timelines[e].time}mappingForTimeline(e){return this.timelines[e]===void 0?null:this.timelines[e].mapping}calculateSegmentTimeMapping_(e,t,n){let r=e.segment,i=e.part,a=this.timelines[e.timeline],o,s;if(typeof e.timestampOffset==`number`)a={time:e.startOfSegment,mapping:e.startOfSegment-t.start},n&&(this.timelines[e.timeline]=a,this.trigger(`timestampoffset`),this.logger_(`time mapping for timeline ${e.timeline}: [time: ${a.time}] [mapping: ${a.mapping}]`)),o=e.startOfSegment,s=t.end+a.mapping;else if(a)o=t.start+a.mapping,s=t.end+a.mapping;else return!1;return i&&(i.start=o,i.end=s),(!r.start||o<r.start)&&(r.start=o),r.end=s,!0}saveDiscontinuitySyncInfo_(e){let t=e.playlist,n=e.segment;if(n.discontinuity)this.discontinuities[n.timeline]={time:n.start,accuracy:0};else if(t.discontinuityStarts&&t.discontinuityStarts.length)for(let r=0;r<t.discontinuityStarts.length;r++){let i=t.discontinuityStarts[r],a=t.discontinuitySequence+r+1,o=i-e.mediaIndex,s=Math.abs(o);if(!this.discontinuities[a]||this.discontinuities[a].accuracy>s){let r;r=o<0?n.start-ul({defaultDuration:t.targetDuration,durationList:t.segments,startIndex:e.mediaIndex,endIndex:i}):n.end+ul({defaultDuration:t.targetDuration,durationList:t.segments,startIndex:e.mediaIndex+1,endIndex:i}),this.discontinuities[a]={time:r,accuracy:s}}}}dispose(){this.trigger(`dispose`),this.off()}},Uf=class extends Z.EventTarget{constructor(){super(),this.pendingTimelineChanges_={},this.lastTimelineChanges_={}}clearPendingTimelineChange(e){this.pendingTimelineChanges_[e]=null,this.trigger(`pendingtimelinechange`)}pendingTimelineChange({type:e,from:t,to:n}){return typeof t==`number`&&typeof n==`number`&&(this.pendingTimelineChanges_[e]={type:e,from:t,to:n},this.trigger(`pendingtimelinechange`)),this.pendingTimelineChanges_[e]}lastTimelineChange({type:e,from:t,to:n}){if(typeof t==`number`&&typeof n==`number`){this.lastTimelineChanges_[e]={type:e,from:t,to:n},delete this.pendingTimelineChanges_[e];let r={timelineChangeInfo:{from:t,to:n}};this.trigger({type:`timelinechange`,metadata:r})}return this.lastTimelineChanges_[e]}dispose(){this.trigger(`dispose`),this.pendingTimelineChanges_={},this.lastTimelineChanges_={},this.off()}},Wf=Hu(Uu(Wu(function(){var e=function(){function e(){this.listeners={}}var t=e.prototype;return t.on=function(e,t){this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push(t)},t.off=function(e,t){if(!this.listeners[e])return!1;var n=this.listeners[e].indexOf(t);return this.listeners[e]=this.listeners[e].slice(0),this.listeners[e].splice(n,1),n>-1},t.trigger=function(e){var t=this.listeners[e];if(t)if(arguments.length===2)for(var n=t.length,r=0;r<n;++r)t[r].call(this,arguments[1]);else for(var i=Array.prototype.slice.call(arguments,1),a=t.length,o=0;o<a;++o)t[o].apply(this,i)},t.dispose=function(){this.listeners={}},t.pipe=function(e){this.on(`data`,function(t){e.push(t)})},e}();function t(e){return e.subarray(0,e.byteLength-e[e.byteLength-1])}let n=function(){let e=[[[],[],[],[],[]],[[],[],[],[],[]]],t=e[0],n=e[1],r=t[4],i=n[4],a,o,s,c=[],l=[],u,d,f,p,m,h;for(a=0;a<256;a++)l[(c[a]=a<<1^(a>>7)*283)^a]=a;for(o=s=0;!r[o];o^=u||1,s=l[s]||1)for(p=s^s<<1^s<<2^s<<3^s<<4,p=p>>8^p&255^99,r[o]=p,i[p]=o,f=c[d=c[u=c[o]]],h=f*16843009^d*65537^u*257^o*16843008,m=c[p]*257^p*16843008,a=0;a<4;a++)t[a][o]=m=m<<24^m>>>8,n[a][p]=h=h<<24^h>>>8;for(a=0;a<5;a++)t[a]=t[a].slice(0),n[a]=n[a].slice(0);return e},r=null;class i{constructor(e){r||=n(),this._tables=[[r[0][0].slice(),r[0][1].slice(),r[0][2].slice(),r[0][3].slice(),r[0][4].slice()],[r[1][0].slice(),r[1][1].slice(),r[1][2].slice(),r[1][3].slice(),r[1][4].slice()]];let t,i,a,o=this._tables[0][4],s=this._tables[1],c=e.length,l=1;if(c!==4&&c!==6&&c!==8)throw Error(`Invalid aes key size`);let u=e.slice(0),d=[];for(this._key=[u,d],t=c;t<4*c+28;t++)a=u[t-1],(t%c===0||c===8&&t%c===4)&&(a=o[a>>>24]<<24^o[a>>16&255]<<16^o[a>>8&255]<<8^o[a&255],t%c===0&&(a=a<<8^a>>>24^l<<24,l=l<<1^(l>>7)*283)),u[t]=u[t-c]^a;for(i=0;t;i++,t--)a=u[i&3?t:t-4],t<=4||i<4?d[i]=a:d[i]=s[0][o[a>>>24]]^s[1][o[a>>16&255]]^s[2][o[a>>8&255]]^s[3][o[a&255]]}decrypt(e,t,n,r,i,a){let o=this._key[1],s=e^o[0],c=r^o[1],l=n^o[2],u=t^o[3],d,f,p,m=o.length/4-2,h,g=4,_=this._tables[1],v=_[0],y=_[1],b=_[2],x=_[3],S=_[4];for(h=0;h<m;h++)d=v[s>>>24]^y[c>>16&255]^b[l>>8&255]^x[u&255]^o[g],f=v[c>>>24]^y[l>>16&255]^b[u>>8&255]^x[s&255]^o[g+1],p=v[l>>>24]^y[u>>16&255]^b[s>>8&255]^x[c&255]^o[g+2],u=v[u>>>24]^y[s>>16&255]^b[c>>8&255]^x[l&255]^o[g+3],g+=4,s=d,c=f,l=p;for(h=0;h<4;h++)i[(3&-h)+a]=S[s>>>24]<<24^S[c>>16&255]<<16^S[l>>8&255]<<8^S[u&255]^o[g++],d=s,s=c,c=l,l=u,u=d}}class a extends e{constructor(){super(e),this.jobs=[],this.delay=1,this.timeout_=null}processJob_(){this.jobs.shift()(),this.jobs.length?this.timeout_=setTimeout(this.processJob_.bind(this),this.delay):this.timeout_=null}push(e){this.jobs.push(e),this.timeout_||=setTimeout(this.processJob_.bind(this),this.delay)}}let o=function(e){return e<<24|(e&65280)<<8|(e&16711680)>>8|e>>>24},s=function(e,t,n){let r=new Int32Array(e.buffer,e.byteOffset,e.byteLength>>2),a=new i(Array.prototype.slice.call(t)),s=new Uint8Array(e.byteLength),c=new Int32Array(s.buffer),l,u,d,f,p,m,h,g,_;for(l=n[0],u=n[1],d=n[2],f=n[3],_=0;_<r.length;_+=4)p=o(r[_]),m=o(r[_+1]),h=o(r[_+2]),g=o(r[_+3]),a.decrypt(p,m,h,g,c,_),c[_]=o(c[_]^l),c[_+1]=o(c[_+1]^u),c[_+2]=o(c[_+2]^d),c[_+3]=o(c[_+3]^f),l=p,u=m,d=h,f=g;return s};class c{constructor(e,n,r,i){let s=c.STEP,l=new Int32Array(e.buffer),u=new Uint8Array(e.byteLength),d=0;for(this.asyncStream_=new a,this.asyncStream_.push(this.decryptChunk_(l.subarray(d,d+s),n,r,u)),d=s;d<l.length;d+=s)r=new Uint32Array([o(l[d-4]),o(l[d-3]),o(l[d-2]),o(l[d-1])]),this.asyncStream_.push(this.decryptChunk_(l.subarray(d,d+s),n,r,u));this.asyncStream_.push(function(){i(null,t(u))})}static get STEP(){return 32e3}decryptChunk_(e,t,n,r){return function(){let i=s(e,t,n);r.set(i,e.byteOffset)}}}var l=typeof globalThis<`u`?globalThis:typeof window<`u`?window:typeof global<`u`?global:typeof self<`u`?self:{},u=typeof window<`u`?window:l===void 0?typeof self<`u`?self:{}:l,d=function(e){return ArrayBuffer.isView===`function`?ArrayBuffer.isView(e):e&&e.buffer instanceof ArrayBuffer},f=u.BigInt||Number;f(`0x1`),f(`0x100`),f(`0x10000`),f(`0x1000000`),f(`0x100000000`),f(`0x10000000000`),f(`0x1000000000000`),f(`0x100000000000000`),f(`0x10000000000000000`),(function(){var e=new Uint16Array([65484]),t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength);return t[0]===255?`big`:t[0]===204?`little`:`unknown`})();let p=function(e){let t={};return Object.keys(e).forEach(n=>{let r=e[n];d(r)?t[n]={bytes:r.buffer,byteOffset:r.byteOffset,byteLength:r.byteLength}:t[n]=r}),t};self.onmessage=function(e){let t=e.data;new c(new Uint8Array(t.encrypted.bytes,t.encrypted.byteOffset,t.encrypted.byteLength),new Uint32Array(t.key.bytes,t.key.byteOffset,t.key.byteLength/4),new Uint32Array(t.iv.bytes,t.iv.byteOffset,t.iv.byteLength/4),function(e,n){self.postMessage(p({source:t.source,decrypted:n}),[n.buffer])})}}))),Gf=e=>{let t=e.default?`main`:`alternative`;return e.characteristics&&e.characteristics.indexOf(`public.accessibility.describes-video`)>=0&&(t=`main-desc`),t},Kf=(e,t)=>{e.abort(),e.pause(),t&&t.activePlaylistLoader&&(t.activePlaylistLoader.pause(),t.activePlaylistLoader=null)},qf=(e,t)=>{t.activePlaylistLoader=e,e.load()},Jf=(e,t)=>()=>{let{segmentLoaders:{[e]:n,main:r},mediaTypes:{[e]:i}}=t,a=i.activeTrack(),o=i.getActiveGroup(),s=i.activePlaylistLoader,c=i.lastGroup_;if(!(o&&c&&o.id===c.id)&&(i.lastGroup_=o,i.lastTrack_=a,Kf(n,i),!(!o||o.isMainPlaylist))){if(!o.playlistLoader){s&&r.resetEverything();return}n.resyncLoader(),qf(o.playlistLoader,i)}},Yf=(e,t)=>()=>{let{segmentLoaders:{[e]:n},mediaTypes:{[e]:r}}=t;r.lastGroup_=null,n.abort(),n.pause()},Xf=(e,t)=>()=>{let{mainPlaylistLoader:n,segmentLoaders:{[e]:r,main:i},mediaTypes:{[e]:a}}=t,o=a.activeTrack(),s=a.getActiveGroup(),c=a.activePlaylistLoader,l=a.lastTrack_;if(!(l&&o&&l.id===o.id)&&(a.lastGroup_=s,a.lastTrack_=o,Kf(r,a),s)){if(s.isMainPlaylist){if(!o||!l||o.id===l.id)return;let e=t.vhs.playlistController_,r=e.selectPlaylist();if(e.media()===r)return;a.logger_(`track change. Switching main audio from ${l.id} to ${o.id}`),n.pause(),i.resetEverything(),e.fastQualityChange_(r);return}if(e===`AUDIO`){if(!s.playlistLoader){i.setAudio(!0),i.resetEverything();return}r.setAudio(!0),i.setAudio(!1)}if(c===s.playlistLoader){qf(s.playlistLoader,a);return}r.track&&r.track(o),r.resetEverything(),qf(s.playlistLoader,a)}},Zf={AUDIO:(e,t)=>()=>{let{mediaTypes:{[e]:n},excludePlaylist:r}=t,i=n.activeTrack(),a=n.activeGroup(),o=(a.filter(e=>e.default)[0]||a[0]).id,s=n.tracks[o];if(i===s){r({error:{message:`Problem encountered loading the default audio track.`}});return}Z.log.warn(`Problem encountered loading the alternate audio track.Switching back to default.`);for(let e in n.tracks)n.tracks[e].enabled=n.tracks[e]===s;n.onTrackChanged()},SUBTITLES:(e,t)=>()=>{let{mediaTypes:{[e]:n}}=t;Z.log.warn(`Problem encountered loading the subtitle track.Disabling subtitle track.`);let r=n.activeTrack();r&&(r.mode=`disabled`),n.onTrackChanged()}},Qf={AUDIO:(e,t,n)=>{if(!t)return;let{tech:r,requestOptions:i,segmentLoaders:{[e]:a}}=n;t.on(`loadedmetadata`,()=>{let e=t.media();a.playlist(e,i),(!r.paused()||e.endList&&r.preload()!==`none`)&&a.load()}),t.on(`loadedplaylist`,()=>{a.playlist(t.media(),i),r.paused()||a.load()}),t.on(`error`,Zf[e](e,n))},SUBTITLES:(e,t,n)=>{let{tech:r,requestOptions:i,segmentLoaders:{[e]:a},mediaTypes:{[e]:o}}=n;t.on(`loadedmetadata`,()=>{let e=t.media();a.playlist(e,i),a.track(o.activeTrack()),(!r.paused()||e.endList&&r.preload()!==`none`)&&a.load()}),t.on(`loadedplaylist`,()=>{a.playlist(t.media(),i),r.paused()||a.load()}),t.on(`error`,Zf[e](e,n))}},$f={AUDIO:(e,t)=>{let{vhs:n,sourceType:r,segmentLoaders:{[e]:i},requestOptions:a,main:{mediaGroups:o},mediaTypes:{[e]:{groups:s,tracks:c,logger_:l}},mainPlaylistLoader:u}=t,d=wl(u.main);(!o[e]||Object.keys(o[e]).length===0)&&(o[e]={main:{default:{default:!0}}},d&&(o[e].main.default.playlists=u.main.playlists));for(let i in o[e]){s[i]||(s[i]=[]);for(let f in o[e][i]){let p=o[e][i][f],m;d?(l(`AUDIO group '${i}' label '${f}' is a main playlist`),p.isMainPlaylist=!0,m=null):m=r===`vhs-json`&&p.playlists?new nu(p.playlists[0],n,a):p.resolvedUri?new nu(p.resolvedUri,n,a):p.playlists&&r===`dash`?new Lu(p.playlists[0],n,a,u):null,p=Q({id:f,playlistLoader:m},p),Qf[e](e,p.playlistLoader,t),s[i].push(p),c[f]===void 0&&(c[f]=new Z.AudioTrack({id:f,kind:Gf(p),enabled:!1,language:p.language,default:p.default,label:f}))}}i.on(`error`,Zf[e](e,t))},SUBTITLES:(e,t)=>{let{tech:n,vhs:r,sourceType:i,segmentLoaders:{[e]:a},requestOptions:o,main:{mediaGroups:s},mediaTypes:{[e]:{groups:c,tracks:l}},mainPlaylistLoader:u}=t;for(let a in s[e]){c[a]||(c[a]=[]);for(let d in s[e][a]){if(!r.options_.useForcedSubtitles&&s[e][a][d].forced)continue;let f=s[e][a][d],p;if(i===`hls`)p=new nu(f.resolvedUri,r,o);else if(i===`dash`){if(!f.playlists.filter(e=>e.excludeUntil!==1/0).length)return;p=new Lu(f.playlists[0],r,o,u)}else i===`vhs-json`&&(p=new nu(f.playlists?f.playlists[0]:f.resolvedUri,r,o));f=Q({id:d,playlistLoader:p},f),Qf[e](e,f.playlistLoader,t),c[a].push(f),l[d]===void 0&&(l[d]=n.addRemoteTextTrack({id:d,kind:`subtitles`,default:f.default&&f.autoselect,language:f.language,label:d},!1).track)}}a.on(`error`,Zf[e](e,t))},"CLOSED-CAPTIONS":(e,t)=>{let{tech:n,main:{mediaGroups:r},mediaTypes:{[e]:{groups:i,tracks:a}}}=t;for(let t in r[e]){i[t]||(i[t]=[]);for(let o in r[e][t]){let s=r[e][t][o];if(!/^(?:CC|SERVICE)/.test(s.instreamId))continue;let c=n.options_.vhs&&n.options_.vhs.captionServices||{},l={label:o,language:s.language,instreamId:s.instreamId,default:s.default&&s.autoselect};c[l.instreamId]&&(l=Q(l,c[l.instreamId])),l.default===void 0&&delete l.default,i[t].push(Q({id:o},s)),a[o]===void 0&&(a[o]=n.addRemoteTextTrack({id:l.instreamId,kind:`captions`,default:l.default,language:l.language,label:l.label},!1).track)}}}},ep=(e,t)=>{for(let n=0;n<e.length;n++)if(Sl(t,e[n])||e[n].playlists&&ep(e[n].playlists,t))return!0;return!1},tp=(e,t)=>n=>{let{mainPlaylistLoader:r,mediaTypes:{[e]:{groups:i}}}=t,a=r.media();if(!a)return null;let o=null;a.attributes[e]&&(o=i[a.attributes[e]]);let s=Object.keys(i);if(!o)if(e===`AUDIO`&&s.length>1&&wl(t.main))for(let e=0;e<s.length;e++){let t=i[s[e]];if(ep(t,a)){o=t;break}}else i.main?o=i.main:s.length===1&&(o=i[s[0]]);return n===void 0?o:n===null||!o?null:o.filter(e=>e.id===n.id)[0]||null},np={AUDIO:(e,t)=>()=>{let{mediaTypes:{[e]:{tracks:n}}}=t;for(let e in n)if(n[e].enabled)return n[e];return null},SUBTITLES:(e,t)=>()=>{let{mediaTypes:{[e]:{tracks:n}}}=t;for(let e in n)if(n[e].mode===`showing`||n[e].mode===`hidden`)return n[e];return null}},rp=(e,{mediaTypes:t})=>()=>{let n=t[e].activeTrack();return n?t[e].activeGroup(n):null},ip=e=>{[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(t=>{$f[t](t,e)});let{mediaTypes:t,mainPlaylistLoader:n,tech:r,vhs:i,segmentLoaders:{AUDIO:a,main:o}}=e;[`AUDIO`,`SUBTITLES`].forEach(n=>{t[n].activeGroup=tp(n,e),t[n].activeTrack=np[n](n,e),t[n].onGroupChanged=Jf(n,e),t[n].onGroupChanging=Yf(n,e),t[n].onTrackChanged=Xf(n,e),t[n].getActiveGroup=rp(n,e)});let s=t.AUDIO.activeGroup();if(s){let e=(s.filter(e=>e.default)[0]||s[0]).id;t.AUDIO.tracks[e].enabled=!0,t.AUDIO.onGroupChanged(),t.AUDIO.onTrackChanged(),t.AUDIO.getActiveGroup().playlistLoader?(o.setAudio(!1),a.setAudio(!0)):o.setAudio(!0)}n.on(`mediachange`,()=>{[`AUDIO`,`SUBTITLES`].forEach(e=>t[e].onGroupChanged())}),n.on(`mediachanging`,()=>{[`AUDIO`,`SUBTITLES`].forEach(e=>t[e].onGroupChanging())});let c=()=>{t.AUDIO.onTrackChanged(),r.trigger({type:`usage`,name:`vhs-audio-change`})};r.audioTracks().addEventListener(`change`,c),r.remoteTextTracks().addEventListener(`change`,t.SUBTITLES.onTrackChanged),i.on(`dispose`,()=>{r.audioTracks().removeEventListener(`change`,c),r.remoteTextTracks().removeEventListener(`change`,t.SUBTITLES.onTrackChanged)}),r.clearTracks(`audio`);for(let e in t.AUDIO.tracks)r.audioTracks().addTrack(t.AUDIO.tracks[e])},ap=()=>{let e={};return[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(t=>{e[t]={groups:{},tracks:{},activePlaylistLoader:null,activeGroup:_f,activeTrack:_f,getActiveGroup:_f,onGroupChanged:_f,onTrackChanged:_f,lastTrack_:null,logger_:zc(`MediaGroups[${t}]`)}}),e},op=class{constructor(){this.priority_=[],this.pathwayClones_=new Map}set version(e){e===1&&(this.version_=e)}set ttl(e){this.ttl_=e||300}set reloadUri(e){e&&(this.reloadUri_=Lc(this.reloadUri_,e))}set priority(e){e&&e.length&&(this.priority_=e)}set pathwayClones(e){e&&e.length&&(this.pathwayClones_=new Map(e.map(e=>[e.ID,e])))}get version(){return this.version_}get ttl(){return this.ttl_}get reloadUri(){return this.reloadUri_}get priority(){return this.priority_}get pathwayClones(){return this.pathwayClones_}},sp=class extends Z.EventTarget{constructor(e,t){super(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=!1,this.availablePathways_=new Set,this.steeringManifest=new op,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.currentPathwayClones=new Map,this.nextPathwayClones=new Map,this.excludedSteeringManifestURLs=new Set,this.logger_=zc(`Content Steering`),this.xhr_=e,this.getBandwidth_=t}assignTagProperties(e,t){this.manifestType_=t.serverUri?`HLS`:`DASH`;let n=t.serverUri||t.serverURL;if(!n){this.logger_(`steering manifest URL is ${n}, cannot request steering manifest.`),this.trigger(`error`);return}if(n.startsWith(`data:`)){this.decodeDataUriManifest_(n.substring(n.indexOf(`,`)+1));return}this.steeringManifest.reloadUri=Lc(e,n),this.defaultPathway=t.pathwayId||t.defaultServiceLocation,this.queryBeforeStart=t.queryBeforeStart,this.proxyServerUrl_=t.proxyServerURL,this.defaultPathway&&!this.queryBeforeStart&&this.trigger(`content-steering`)}requestSteeringManifest(e){let t=this.steeringManifest.reloadUri;if(!t)return;let n=e?t:this.getRequestURI(t);if(!n){this.logger_(`No valid content steering manifest URIs. Stopping content steering.`),this.trigger(`error`),this.dispose();return}let r={contentSteeringInfo:{uri:n}};this.trigger({type:`contentsteeringloadstart`,metadata:r}),this.request_=this.xhr_({uri:n,requestType:`content-steering-manifest`},(e,t)=>{if(e){if(t.status===410){this.logger_(`manifest request 410 ${e}.`),this.logger_(`There will be no more content steering requests to ${n} this session.`),this.excludedSteeringManifestURLs.add(n);return}if(t.status===429){let n=t.responseHeaders[`retry-after`];this.logger_(`manifest request 429 ${e}.`),this.logger_(`content steering will retry in ${n} seconds.`),this.startTTLTimeout_(parseInt(n,10));return}this.logger_(`manifest failed to load ${e}.`),this.startTTLTimeout_();return}this.trigger({type:`contentsteeringloadcomplete`,metadata:r});let i;try{i=JSON.parse(this.request_.responseText)}catch(e){let t={errorType:Z.Error.StreamingContentSteeringParserError,error:e};this.trigger({type:`error`,metadata:t})}this.assignSteeringProperties_(i);let a={contentSteeringInfo:r.contentSteeringInfo,contentSteeringManifest:{version:this.steeringManifest.version,reloadUri:this.steeringManifest.reloadUri,priority:this.steeringManifest.priority}};this.trigger({type:`contentsteeringparsed`,metadata:a}),this.startTTLTimeout_()})}setProxyServerUrl_(e){let t=new b.default.URL(e),n=new b.default.URL(this.proxyServerUrl_);return n.searchParams.set(`url`,encodeURI(t.toString())),this.setSteeringParams_(n.toString())}decodeDataUriManifest_(e){let t=JSON.parse(b.default.atob(e));this.assignSteeringProperties_(t)}setSteeringParams_(e){let t=new b.default.URL(e),n=this.getPathway(),r=this.getBandwidth_();if(n){let e=`_${this.manifestType_}_pathway`;t.searchParams.set(e,n)}if(r){let e=`_${this.manifestType_}_throughput`;t.searchParams.set(e,r)}return t.toString()}assignSteeringProperties_(e){if(this.steeringManifest.version=e.VERSION,!this.steeringManifest.version){this.logger_(`manifest version is ${e.VERSION}, which is not supported.`),this.trigger(`error`);return}this.steeringManifest.ttl=e.TTL,this.steeringManifest.reloadUri=e[`RELOAD-URI`],this.steeringManifest.priority=e[`PATHWAY-PRIORITY`]||e[`SERVICE-LOCATION-PRIORITY`],this.steeringManifest.pathwayClones=e[`PATHWAY-CLONES`],this.nextPathwayClones=this.steeringManifest.pathwayClones,this.availablePathways_.size||(this.logger_(`There are no available pathways for content steering. Ending content steering.`),this.trigger(`error`),this.dispose());let t=(e=>{for(let t of e)if(this.availablePathways_.has(t))return t;return[...this.availablePathways_][0]})(this.steeringManifest.priority);this.currentPathway!==t&&(this.currentPathway=t,this.trigger(`content-steering`))}getPathway(){return this.currentPathway||this.defaultPathway}getRequestURI(e){if(!e)return null;let t=e=>this.excludedSteeringManifestURLs.has(e);if(this.proxyServerUrl_){let n=this.setProxyServerUrl_(e);if(!t(n))return n}let n=this.setSteeringParams_(e);return t(n)?null:n}startTTLTimeout_(e=this.steeringManifest.ttl){let t=e*1e3;this.ttlTimeout_=b.default.setTimeout(()=>{this.requestSteeringManifest()},t)}clearTTLTimeout_(){b.default.clearTimeout(this.ttlTimeout_),this.ttlTimeout_=null}abort(){this.request_&&this.request_.abort(),this.request_=null}dispose(){this.off(`content-steering`),this.off(`error`),this.abort(),this.clearTTLTimeout_(),this.currentPathway=null,this.defaultPathway=null,this.queryBeforeStart=null,this.proxyServerUrl_=null,this.manifestType_=null,this.ttlTimeout_=null,this.request_=null,this.excludedSteeringManifestURLs=new Set,this.availablePathways_=new Set,this.steeringManifest=new op}addAvailablePathway(e){e&&this.availablePathways_.add(e)}clearAvailablePathways(){this.availablePathways_.clear()}excludePathway(e){return this.availablePathways_.delete(e)}didDASHTagChange(e,t){return!t&&this.steeringManifest.reloadUri||t&&(Lc(e,t.serverURL)!==this.steeringManifest.reloadUri||t.defaultServiceLocation!==this.defaultPathway||t.queryBeforeStart!==this.queryBeforeStart||t.proxyServerURL!==this.proxyServerUrl_)}getAvailablePathways(){return this.availablePathways_}},cp=(e,t)=>{let n=null;return(...r)=>{clearTimeout(n),n=setTimeout(()=>{e.apply(null,r)},t)}},lp=10,up,dp=[`mediaRequests`,`mediaRequestsAborted`,`mediaRequestsTimedout`,`mediaRequestsErrored`,`mediaTransferDuration`,`mediaBytesTransferred`,`mediaAppends`],fp=function(e){return this.audioSegmentLoader_[e]+this.mainSegmentLoader_[e]},pp=function({currentPlaylist:e,buffered:t,currentTime:n,nextPlaylist:r,bufferLowWaterLine:i,bufferHighWaterLine:a,duration:o,bufferBasedABR:s,log:c}){if(!r)return Z.log.warn(`We received no playlist to switch to. Please check your stream.`),!1;let l=`allowing switch ${e&&e.id||`null`} -> ${r.id}`;if(!e)return c(`${l} as current playlist is not set`),!0;if(r.id===e.id)return!1;let u=!!Gc(t,n).length;if(!e.endList)return!u&&typeof e.partTargetDuration==`number`?(c(`not ${l} as current playlist is live llhls, but currentTime isn't in buffered.`),!1):(c(`${l} as current playlist is live`),!0);let d=el(t,n),f=s?Ru.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE:Ru.MAX_BUFFER_LOW_WATER_LINE;if(o<f)return c(`${l} as duration < max low water line (${o} < ${f})`),!0;let p=r.attributes.BANDWIDTH,m=e.attributes.BANDWIDTH;if(p<m&&(!s||d<a)){let e=`${l} as next bandwidth < current bandwidth (${p} < ${m})`;return s&&(e+=` and forwardBuffer < bufferHighWaterLine (${d} < ${a})`),c(e),!0}if((!s||p>m)&&d>=i){let e=`${l} as forwardBuffer >= bufferLowWaterLine (${d} >= ${i})`;return s&&(e+=` and next bandwidth > current bandwidth (${p} > ${m})`),c(e),!0}return c(`not ${l} as no switching criteria met`),!1},mp=class extends Z.EventTarget{constructor(e){super(),this.fastQualityChange_=cp(this.fastQualityChange_.bind(this),100);let{src:t,withCredentials:n,tech:r,bandwidth:i,externVhs:a,useCueTags:o,playlistExclusionDuration:s,enableLowInitialPlaylist:c,sourceType:l,cacheEncryptionKeys:u,bufferBasedABR:d,leastPixelDiffSelector:f,captionServices:p,experimentalUseMMS:m}=e;if(!t)throw Error(`A non-empty playlist URL or JSON manifest string is required`);let{maxPlaylistRetries:h}=e;h??=1/0,up=a,this.bufferBasedABR=!!d,this.leastPixelDiffSelector=!!f,this.withCredentials=n,this.tech_=r,this.vhs_=r.vhs,this.player_=e.player_,this.sourceType_=l,this.useCueTags_=o,this.playlistExclusionDuration=s,this.maxPlaylistRetries=h,this.enableLowInitialPlaylist=c,this.usingManagedMediaSource_=!1,this.useCueTags_&&(this.cueTagsTrack_=this.tech_.addTextTrack(`metadata`,`ad-cues`),this.cueTagsTrack_.inBandMetadataTrackDispatchType=``),this.requestOptions_={withCredentials:n,maxPlaylistRetries:h,timeout:null},this.on(`error`,this.pauseLoading),this.mediaTypes_=ap(),m&&b.default.ManagedMediaSource?(this.tech_.el_.disableRemotePlayback=!0,this.mediaSource=new b.default.ManagedMediaSource,this.usingManagedMediaSource_=!0,Z.log(`Using ManagedMediaSource`)):b.default.MediaSource&&(this.mediaSource=new b.default.MediaSource),this.handleDurationChange_=this.handleDurationChange_.bind(this),this.handleSourceOpen_=this.handleSourceOpen_.bind(this),this.handleSourceEnded_=this.handleSourceEnded_.bind(this),this.load=this.load.bind(this),this.pause=this.pause.bind(this),this.mediaSource.addEventListener(`durationchange`,this.handleDurationChange_),this.mediaSource.addEventListener(`sourceopen`,this.handleSourceOpen_),this.mediaSource.addEventListener(`sourceended`,this.handleSourceEnded_),this.mediaSource.addEventListener(`startstreaming`,this.load),this.mediaSource.addEventListener(`endstreaming`,this.pause),this.seekable_=Bc(),this.hasPlayed_=!1,this.syncController_=new Hf(e),this.segmentMetadataTrack_=r.addRemoteTextTrack({kind:`metadata`,label:`segment-metadata`},!1).track,this.segmentMetadataTrack_.mode=`hidden`,this.decrypter_=new Wf,this.sourceUpdater_=new Of(this.mediaSource),this.inbandTextTracks_={},this.timelineChangeController_=new Uf,this.keyStatusMap_=new Map;let g={vhs:this.vhs_,parse708captions:e.parse708captions,useDtsForTimestampOffset:e.useDtsForTimestampOffset,captionServices:p,mediaSource:this.mediaSource,currentTime:this.tech_.currentTime.bind(this.tech_),seekable:()=>this.seekable(),seeking:()=>this.tech_.seeking(),duration:()=>this.duration(),hasPlayed:()=>this.hasPlayed_,goalBufferLength:()=>this.goalBufferLength(),bandwidth:i,syncController:this.syncController_,decrypter:this.decrypter_,sourceType:this.sourceType_,inbandTextTracks:this.inbandTextTracks_,cacheEncryptionKeys:u,sourceUpdater:this.sourceUpdater_,timelineChangeController:this.timelineChangeController_,exactManifestTimings:e.exactManifestTimings,addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)};this.mainPlaylistLoader_=this.sourceType_===`dash`?new Lu(t,this.vhs_,Q(this.requestOptions_,{addMetadataToTextTrack:this.addMetadataToTextTrack.bind(this)})):new nu(t,this.vhs_,Q(this.requestOptions_,{addDateRangesToTextTrack:this.addDateRangesToTextTrack_.bind(this)})),this.setupMainPlaylistLoaderListeners_(),this.mainSegmentLoader_=new gf(Q(g,{segmentMetadataTrack:this.segmentMetadataTrack_,loaderType:`main`}),e),this.audioSegmentLoader_=new gf(Q(g,{loaderType:`audio`}),e),this.subtitleSegmentLoader_=new Nf(Q(g,{loaderType:`vtt`,featuresNativeTextTracks:this.tech_.featuresNativeTextTracks,loadVttJs:()=>new Promise((e,t)=>{function n(){r.off(`vttjserror`,i),e()}function i(){r.off(`vttjsloaded`,n),t()}r.one(`vttjsloaded`,n),r.one(`vttjserror`,i),r.addWebVttScript_()})}),e);let _=()=>this.mainSegmentLoader_.bandwidth;this.contentSteeringController_=new sp(this.vhs_.xhr,_),this.setupSegmentLoaderListeners_(),this.bufferBasedABR&&(this.mainPlaylistLoader_.one(`loadedplaylist`,()=>this.startABRTimer_()),this.tech_.on(`pause`,()=>this.stopABRTimer_()),this.tech_.on(`play`,()=>this.startABRTimer_())),dp.forEach(e=>{this[e+`_`]=fp.bind(this,e)}),this.logger_=zc(`pc`),this.triggeredFmp4Usage=!1,this.tech_.preload()===`none`?(this.loadOnPlay_=()=>{this.loadOnPlay_=null,this.mainPlaylistLoader_.load()},this.tech_.one(`play`,this.loadOnPlay_)):this.mainPlaylistLoader_.load(),this.timeToLoadedData__=-1,this.mainAppendsToLoadedData__=-1,this.audioAppendsToLoadedData__=-1;let v=this.tech_.preload()===`none`?`play`:`loadstart`;this.tech_.one(v,()=>{let e=Date.now();this.tech_.one(`loadeddata`,()=>{this.timeToLoadedData__=Date.now()-e,this.mainAppendsToLoadedData__=this.mainSegmentLoader_.mediaAppends,this.audioAppendsToLoadedData__=this.audioSegmentLoader_.mediaAppends})})}mainAppendsToLoadedData_(){return this.mainAppendsToLoadedData__}audioAppendsToLoadedData_(){return this.audioAppendsToLoadedData__}appendsToLoadedData_(){let e=this.mainAppendsToLoadedData_(),t=this.audioAppendsToLoadedData_();return e===-1||t===-1?-1:e+t}timeToLoadedData_(){return this.timeToLoadedData__}checkABR_(e=`abr`){let t=this.selectPlaylist();t&&this.shouldSwitchToMedia_(t)&&this.switchMedia_(t,e)}switchMedia_(e,t,n){let r=this.media(),i=r&&(r.id||r.uri),a=e&&(e.id||e.uri);if(i&&i!==a){this.logger_(`switch media ${i} -> ${a} from ${t}`);let n={renditionInfo:{id:a,bandwidth:e.attributes.BANDWIDTH,resolution:e.attributes.RESOLUTION,codecs:e.attributes.CODECS},cause:t};this.trigger({type:`renditionselected`,metadata:n}),this.tech_.trigger({type:`usage`,name:`vhs-rendition-change-${t}`})}this.mainPlaylistLoader_.media(e,n)}switchMediaForDASHContentSteering_(){[`AUDIO`,`SUBTITLES`,`CLOSED-CAPTIONS`].forEach(e=>{let t=this.mediaTypes_[e],n=t?t.activeGroup():null,r=this.contentSteeringController_.getPathway();if(n&&r){let t=(n.length?n[0].playlists:n.playlists).filter(e=>e.attributes.serviceLocation===r);t.length&&this.mediaTypes_[e].activePlaylistLoader.media(t[0])}})}startABRTimer_(){this.stopABRTimer_(),this.abrTimer_=b.default.setInterval(()=>this.checkABR_(),250)}stopABRTimer_(){this.tech_.scrubbing&&this.tech_.scrubbing()||(b.default.clearInterval(this.abrTimer_),this.abrTimer_=null)}getAudioTrackPlaylists_(){let e=this.main(),t=e&&e.playlists||[];if(!e||!e.mediaGroups||!e.mediaGroups.AUDIO)return t;let n=e.mediaGroups.AUDIO,r=Object.keys(n),i;if(Object.keys(this.mediaTypes_.AUDIO.groups).length)i=this.mediaTypes_.AUDIO.activeTrack();else{let e=n.main||r.length&&n[r[0]];for(let t in e)if(e[t].default){i={label:t};break}}if(!i)return t;let a=[];for(let t in n)if(n[t][i.label]){let r=n[t][i.label];if(r.playlists&&r.playlists.length)a.push.apply(a,r.playlists);else if(r.uri)a.push(r);else if(e.playlists.length)for(let n=0;n<e.playlists.length;n++){let r=e.playlists[n];r.attributes&&r.attributes.AUDIO&&r.attributes.AUDIO===t&&a.push(r)}}return a.length?a:t}setupMainPlaylistLoaderListeners_(){this.mainPlaylistLoader_.on(`loadedmetadata`,()=>{let e=this.mainPlaylistLoader_.media(),t=e.targetDuration*1.5*1e3;xl(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,e.endList&&this.tech_.preload()!==`none`&&(this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.mainSegmentLoader_.load()),ip({sourceType:this.sourceType_,segmentLoaders:{AUDIO:this.audioSegmentLoader_,SUBTITLES:this.subtitleSegmentLoader_,main:this.mainSegmentLoader_},tech:this.tech_,requestOptions:this.requestOptions_,mainPlaylistLoader:this.mainPlaylistLoader_,vhs:this.vhs_,main:this.main(),mediaTypes:this.mediaTypes_,excludePlaylist:this.excludePlaylist.bind(this)}),this.triggerPresenceUsage_(this.main(),e),this.setupFirstPlay(),!this.mediaTypes_.AUDIO.activePlaylistLoader||this.mediaTypes_.AUDIO.activePlaylistLoader.media()?this.trigger(`selectedinitialmedia`):this.mediaTypes_.AUDIO.activePlaylistLoader.one(`loadedmetadata`,()=>{this.trigger(`selectedinitialmedia`)})}),this.mainPlaylistLoader_.on(`loadedplaylist`,()=>{this.loadOnPlay_&&this.tech_.off(`play`,this.loadOnPlay_);let e=this.mainPlaylistLoader_.media();if(!e){this.attachContentSteeringListeners_(),this.initContentSteeringController_(),this.excludeUnsupportedVariants_();let t;if(this.enableLowInitialPlaylist&&(t=this.selectInitialPlaylist()),t||=this.selectPlaylist(),!t||!this.shouldSwitchToMedia_(t)||(this.initialMedia_=t,this.switchMedia_(this.initialMedia_,`initial`),!(this.sourceType_===`vhs-json`&&this.initialMedia_.segments)))return;e=this.initialMedia_}this.handleUpdatedMediaPlaylist(e)}),this.mainPlaylistLoader_.on(`error`,()=>{let e=this.mainPlaylistLoader_.error;this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainPlaylistLoader_.on(`mediachanging`,()=>{this.mainSegmentLoader_.abort(),this.mainSegmentLoader_.pause()}),this.mainPlaylistLoader_.on(`mediachange`,()=>{let e=this.mainPlaylistLoader_.media(),t=e.targetDuration*1.5*1e3;xl(this.mainPlaylistLoader_.main,this.mainPlaylistLoader_.media())?this.requestOptions_.timeout=0:this.requestOptions_.timeout=t,this.sourceType_===`dash`&&this.mainPlaylistLoader_.isPaused&&this.mainPlaylistLoader_.load(),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_?this.runFastQualitySwitch_():this.mainSegmentLoader_.load(),this.tech_.trigger({type:`mediachange`,bubbles:!0})}),this.mainPlaylistLoader_.on(`playlistunchanged`,()=>{let e=this.mainPlaylistLoader_.media();e.lastExcludeReason_!==`playlist-unchanged`&&this.stuckAtPlaylistEnd_(e)&&(this.excludePlaylist({error:{message:`Playlist no longer updating.`,reason:`playlist-unchanged`}}),this.tech_.trigger(`playliststuck`))}),this.mainPlaylistLoader_.on(`renditiondisabled`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-rendition-disabled`})}),this.mainPlaylistLoader_.on(`renditionenabled`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-rendition-enabled`})}),[`manifestrequeststart`,`manifestrequestcomplete`,`manifestparsestart`,`manifestparsecomplete`,`playlistrequeststart`,`playlistrequestcomplete`,`playlistparsestart`,`playlistparsecomplete`,`renditiondisabled`,`renditionenabled`].forEach(e=>{this.mainPlaylistLoader_.on(e,e=>{this.player_.trigger(C({},e))})})}handleUpdatedMediaPlaylist(e){this.useCueTags_&&this.updateAdCues_(e),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.playlist(e,this.requestOptions_),this.waitingForFastQualityPlaylistReceived_&&this.runFastQualitySwitch_(),this.updateDuration(!e.endList),this.tech_.paused()||(this.mainSegmentLoader_.load(),this.audioSegmentLoader_&&this.audioSegmentLoader_.load())}triggerPresenceUsage_(e,t){let n=e.mediaGroups||{},r=!0,i=Object.keys(n.AUDIO);for(let e in n.AUDIO)for(let t in n.AUDIO[e])n.AUDIO[e][t].uri||(r=!1);r&&this.tech_.trigger({type:`usage`,name:`vhs-demuxed`}),Object.keys(n.SUBTITLES).length&&this.tech_.trigger({type:`usage`,name:`vhs-webvtt`}),up.Playlist.isAes(t)&&this.tech_.trigger({type:`usage`,name:`vhs-aes`}),i.length&&Object.keys(n.AUDIO[i[0]]).length>1&&this.tech_.trigger({type:`usage`,name:`vhs-alternate-audio`}),this.useCueTags_&&this.tech_.trigger({type:`usage`,name:`vhs-playlist-cue-tags`})}shouldSwitchToMedia_(e){let t=this.mainPlaylistLoader_.media()||this.mainPlaylistLoader_.pendingMedia_,n=this.tech_.currentTime(),r=this.bufferLowWaterLine(),i=this.bufferHighWaterLine();return pp({buffered:this.tech_.buffered(),currentTime:n,currentPlaylist:t,nextPlaylist:e,bufferLowWaterLine:r,bufferHighWaterLine:i,duration:this.duration(),bufferBasedABR:this.bufferBasedABR,log:this.logger_})}setupSegmentLoaderListeners_(){this.mainSegmentLoader_.on(`bandwidthupdate`,()=>{this.checkABR_(`bandwidthupdate`),this.tech_.trigger(`bandwidthupdate`)}),this.mainSegmentLoader_.on(`timeout`,()=>{this.bufferBasedABR&&this.mainSegmentLoader_.load()}),this.bufferBasedABR||this.mainSegmentLoader_.on(`progress`,()=>{this.trigger(`progress`)}),this.mainSegmentLoader_.on(`error`,()=>{let e=this.mainSegmentLoader_.error();this.excludePlaylist({playlistToExclude:e.playlist,error:e})}),this.mainSegmentLoader_.on(`appenderror`,()=>{this.error=this.mainSegmentLoader_.error_,this.trigger(`error`)}),this.mainSegmentLoader_.on(`syncinfoupdate`,()=>{this.onSyncInfoUpdate_()}),this.mainSegmentLoader_.on(`timestampoffset`,()=>{this.tech_.trigger({type:`usage`,name:`vhs-timestamp-offset`})}),this.audioSegmentLoader_.on(`syncinfoupdate`,()=>{this.onSyncInfoUpdate_()}),this.audioSegmentLoader_.on(`appenderror`,()=>{this.error=this.audioSegmentLoader_.error_,this.trigger(`error`)}),this.mainSegmentLoader_.on(`ended`,()=>{this.logger_(`main segment loader ended`),this.onEndOfStream()}),this.timelineChangeController_.on(`audioTimelineBehind`,()=>{let e=this.audioSegmentLoader_.pendingSegment_;if(!e||!e.segment||!e.segment.syncInfo)return;let t=e.segment.syncInfo.end+.01;this.tech_.setCurrentTime(t)}),this.timelineChangeController_.on(`fixBadTimelineChange`,()=>{this.logger_(`Fix bad timeline change. Restarting al segment loaders...`),this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}),this.mainSegmentLoader_.on(`earlyabort`,e=>{this.bufferBasedABR||(this.delegateLoaders_(`all`,[`abort`]),this.excludePlaylist({error:{message:`Aborted early because there isn't enough bandwidth to complete the request without rebuffering.`},playlistExclusionDuration:lp}))});let e=()=>{if(!this.sourceUpdater_.hasCreatedSourceBuffers())return this.tryToCreateSourceBuffers_();let e=this.getCodecsOrExclude_();e&&this.sourceUpdater_.addOrChangeSourceBuffers(e)};this.mainSegmentLoader_.on(`trackinfo`,e),this.audioSegmentLoader_.on(`trackinfo`,e),this.mainSegmentLoader_.on(`fmp4`,()=>{this.triggeredFmp4Usage||=(this.tech_.trigger({type:`usage`,name:`vhs-fmp4`}),!0)}),this.audioSegmentLoader_.on(`fmp4`,()=>{this.triggeredFmp4Usage||=(this.tech_.trigger({type:`usage`,name:`vhs-fmp4`}),!0)}),this.audioSegmentLoader_.on(`ended`,()=>{this.logger_(`audioSegmentLoader ended`),this.onEndOfStream()}),[`segmentselected`,`segmentloadstart`,`segmentloaded`,`segmentkeyloadstart`,`segmentkeyloadcomplete`,`segmentdecryptionstart`,`segmentdecryptioncomplete`,`segmenttransmuxingstart`,`segmenttransmuxingcomplete`,`segmenttransmuxingtrackinfoavailable`,`segmenttransmuxingtiminginfoavailable`,`segmentappendstart`,`appendsdone`,`bandwidthupdated`,`timelinechange`,`codecschange`].forEach(e=>{this.mainSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))}),this.audioSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))}),this.subtitleSegmentLoader_.on(e,e=>{this.player_.trigger(C({},e))})})}mediaSecondsLoaded_(){return Math.max(this.audioSegmentLoader_.mediaSecondsLoaded+this.mainSegmentLoader_.mediaSecondsLoaded)}load(){this.mainSegmentLoader_.load(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.load(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.load()}pause(){this.mainSegmentLoader_.pause(),this.mediaTypes_.AUDIO.activePlaylistLoader&&this.audioSegmentLoader_.pause(),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&this.subtitleSegmentLoader_.pause()}fastQualityChange_(e=this.selectPlaylist()){if(e&&e===this.mainPlaylistLoader_.media()){this.logger_(`skipping fastQualityChange because new media is same as old`);return}this.switchMedia_(e,`fast-quality`),this.waitingForFastQualityPlaylistReceived_=!0}runFastQualitySwitch_(){this.waitingForFastQualityPlaylistReceived_=!1,this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}play(){if(this.setupFirstPlay())return;this.tech_.ended()&&this.tech_.setCurrentTime(0),this.hasPlayed_&&this.load();let e=this.tech_.seekable();if(this.tech_.duration()===1/0&&this.tech_.currentTime()<e.start(0))return this.tech_.setCurrentTime(e.end(e.length-1))}setupFirstPlay(){let e=this.mainPlaylistLoader_.media();if(!e||this.tech_.paused()||this.hasPlayed_)return!1;if(!e.endList||e.start){let t=this.seekable();if(!t.length)return!1;let n=t.end(0),r=n;if(e.start){let i=e.start.timeOffset;if(i<0){let a=this.mainPlaylistLoader_.main,o=n+up.Playlist.liveEdgeDelay(a,e);r=Math.max(Math.min(o+i,n),t.start(0))}else r=Math.min(n,i)}this.trigger(`firstplay`),this.tech_.setCurrentTime(r)}return this.hasPlayed_=!0,this.load(),!0}handleSourceOpen_(){if(this.tryToCreateSourceBuffers_(),this.tech_.autoplay()){let e=this.tech_.play();e!==void 0&&typeof e.then==`function`&&e.then(null,e=>{})}this.trigger(`sourceopen`)}handleSourceEnded_(){if(!this.inbandTextTracks_.metadataTrack_)return;let e=this.inbandTextTracks_.metadataTrack_.cues;if(!e||!e.length)return;let t=this.duration();e[e.length-1].endTime=isNaN(t)||Math.abs(t)===1/0?Number.MAX_VALUE:t}handleDurationChange_(){this.tech_.trigger(`durationchange`)}onEndOfStream(){let e=this.mainSegmentLoader_.ended_;if(this.mediaTypes_.AUDIO.activePlaylistLoader){let t=this.mainSegmentLoader_.getCurrentMediaInfo_();!t||t.hasVideo?e&&=this.audioSegmentLoader_.ended_:e=this.audioSegmentLoader_.ended_}e&&(this.stopABRTimer_(),this.sourceUpdater_.endOfStream())}stuckAtPlaylistEnd_(e){if(!this.seekable().length)return!1;let t=this.syncController_.getExpiredTime(e,this.duration());if(t===null)return!1;let n=up.Playlist.playlistEnd(e,t),r=this.tech_.currentTime(),i=this.tech_.buffered();if(!i.length)return n-r<=Uc;let a=i.end(i.length-1);return a-r<=Uc&&n-a<=Uc}excludePlaylist({playlistToExclude:e=this.mainPlaylistLoader_.media(),error:t={},playlistExclusionDuration:n}){if(e||=this.mainPlaylistLoader_.media(),n=n||t.playlistExclusionDuration||this.playlistExclusionDuration,!e){this.error=t,this.mediaSource.readyState===`open`?this.sourceUpdater_.endOfStream(`network`):this.trigger(`error`);return}e.playlistErrors_++;let r=this.mainPlaylistLoader_.main.playlists,i=r.filter(gl),a=i.length===1&&i[0]===e;if(r.length===1&&n!==1/0)return Z.log.warn(`Problem encountered with playlist ${e.id}. Trying again since it is the only playlist.`),this.tech_.trigger(`retryplaylist`),this.mainPlaylistLoader_.load(a);if(a){if(this.main().contentSteering){let t=this.pathwayAttribute_(e),n=this.contentSteeringController_.steeringManifest.ttl*1e3;this.contentSteeringController_.excludePathway(t),this.excludeThenChangePathway_(),setTimeout(()=>{this.contentSteeringController_.addAvailablePathway(t)},n);return}let t=!1;r.forEach(n=>{if(n===e)return;let r=n.excludeUntil;r!==void 0&&r!==1/0&&(t=!0,delete n.excludeUntil)}),t&&(Z.log.warn(`Removing other playlists from the exclusion list because the last rendition is about to be excluded.`),this.tech_.trigger(`retryplaylist`))}let o;o=e.playlistErrors_>this.maxPlaylistRetries?1/0:Date.now()+n*1e3,e.excludeUntil=o,t.reason&&(e.lastExcludeReason_=t.reason),this.tech_.trigger(`excludeplaylist`),this.tech_.trigger({type:`usage`,name:`vhs-rendition-excluded`});let s=this.selectPlaylist();if(!s){this.error=`Playback cannot continue. No available working or supported playlists.`,this.trigger(`error`);return}let c=t.internal?this.logger_:Z.log.warn,l=t.message?` `+t.message:``;c(`${t.internal?`Internal problem`:`Problem`} encountered with playlist ${e.id}.${l} Switching to playlist ${s.id}.`),s.attributes.AUDIO!==e.attributes.AUDIO&&this.delegateLoaders_(`audio`,[`abort`,`pause`]),s.attributes.SUBTITLES!==e.attributes.SUBTITLES&&this.delegateLoaders_(`subtitle`,[`abort`,`pause`]),this.delegateLoaders_(`main`,[`abort`,`pause`]);let u=s.targetDuration/2*1e3||5*1e3,d=typeof s.lastRequest==`number`&&Date.now()-s.lastRequest<=u;return this.switchMedia_(s,`exclude`,a||d)}pauseLoading(){this.delegateLoaders_(`all`,[`abort`,`pause`]),this.stopABRTimer_()}delegateLoaders_(e,t){let n=[],r=e===`all`;(r||e===`main`)&&n.push(this.mainPlaylistLoader_);let i=[];(r||e===`audio`)&&i.push(`AUDIO`),(r||e===`subtitle`)&&(i.push(`CLOSED-CAPTIONS`),i.push(`SUBTITLES`)),i.forEach(e=>{let t=this.mediaTypes_[e]&&this.mediaTypes_[e].activePlaylistLoader;t&&n.push(t)}),[`main`,`audio`,`subtitle`].forEach(t=>{let r=this[`${t}SegmentLoader_`];r&&(e===t||e===`all`)&&n.push(r)}),n.forEach(e=>t.forEach(t=>{typeof e[t]==`function`&&e[t]()}))}setCurrentTime(e){let t=Gc(this.tech_.buffered(),e);if(!(this.mainPlaylistLoader_&&this.mainPlaylistLoader_.media())||!this.mainPlaylistLoader_.media().segments)return 0;if(t&&t.length)return e;this.mainSegmentLoader_.pause(),this.mainSegmentLoader_.resetEverything(),this.mediaTypes_.AUDIO.activePlaylistLoader&&(this.audioSegmentLoader_.pause(),this.audioSegmentLoader_.resetEverything()),this.mediaTypes_.SUBTITLES.activePlaylistLoader&&(this.subtitleSegmentLoader_.pause(),this.subtitleSegmentLoader_.resetEverything()),this.load()}duration(){if(!this.mainPlaylistLoader_)return 0;let e=this.mainPlaylistLoader_.media();return e?e.endList?this.mediaSource?this.mediaSource.duration:up.Playlist.duration(e):1/0:0}seekable(){return this.seekable_}getSeekableRange_(e,t){let n=e.media();if(!n)return null;let r=this.syncController_.getMediaSequenceSync(t);if(r&&r.isReliable){let e=r.start,t=r.end;if(!isFinite(e)||!isFinite(t))return null;let i=up.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,n);return Bc([[e,Math.max(e,t-i)]])}let i=this.syncController_.getExpiredTime(n,this.duration());if(i===null)return null;let a=up.Playlist.seekable(n,i,up.Playlist.liveEdgeDelay(this.mainPlaylistLoader_.main,n));return a.length?a:null}computeFinalSeekable_(e,t){if(!t)return e;let n=e.start(0),r=e.end(0),i=t.start(0),a=t.end(0);return i>r||n>a?e:Bc([[Math.max(n,i),Math.min(r,a)]])}onSyncInfoUpdate_(){if(!this.mainPlaylistLoader_)return;let e=this.getSeekableRange_(this.mainPlaylistLoader_,`main`);if(!e)return;let t;if(this.mediaTypes_.AUDIO.activePlaylistLoader&&(t=this.getSeekableRange_(this.mediaTypes_.AUDIO.activePlaylistLoader,`audio`),!t))return;let n=this.seekable_;if(this.seekable_=this.computeFinalSeekable_(e,t),!this.seekable_||n&&n.length&&this.seekable_.length&&n.start(0)===this.seekable_.start(0)&&n.end(0)===this.seekable_.end(0))return;this.logger_(`seekable updated [${Yc(this.seekable_)}]`);let r={seekableRanges:this.seekable_};this.trigger({type:`seekablerangeschanged`,metadata:r}),this.tech_.trigger(`seekablechanged`)}updateDuration(e){if(this.updateDuration_&&=(this.mediaSource.removeEventListener(`sourceopen`,this.updateDuration_),null),this.mediaSource.readyState!==`open`){this.updateDuration_=this.updateDuration.bind(this,e),this.mediaSource.addEventListener(`sourceopen`,this.updateDuration_);return}if(e){let e=this.seekable();if(!e.length)return;(isNaN(this.mediaSource.duration)||this.mediaSource.duration<e.end(e.length-1))&&this.sourceUpdater_.setDuration(e.end(e.length-1));return}let t=this.tech_.buffered(),n=up.Playlist.duration(this.mainPlaylistLoader_.media());t.length>0&&(n=Math.max(n,t.end(t.length-1))),this.mediaSource.duration!==n&&this.sourceUpdater_.setDuration(n)}dispose(){this.trigger(`dispose`),this.decrypter_.terminate(),this.mainPlaylistLoader_.dispose(),this.mainSegmentLoader_.dispose(),this.contentSteeringController_.dispose(),this.keyStatusMap_.clear(),this.loadOnPlay_&&this.tech_.off(`play`,this.loadOnPlay_),[`AUDIO`,`SUBTITLES`].forEach(e=>{let t=this.mediaTypes_[e].groups;for(let e in t)t[e].forEach(e=>{e.playlistLoader&&e.playlistLoader.dispose()})}),this.audioSegmentLoader_.dispose(),this.subtitleSegmentLoader_.dispose(),this.sourceUpdater_.dispose(),this.timelineChangeController_.dispose(),this.stopABRTimer_(),this.updateDuration_&&this.mediaSource.removeEventListener(`sourceopen`,this.updateDuration_),this.mediaSource.removeEventListener(`durationchange`,this.handleDurationChange_),this.mediaSource.removeEventListener(`sourceopen`,this.handleSourceOpen_),this.mediaSource.removeEventListener(`sourceended`,this.handleSourceEnded_),this.off()}main(){return this.mainPlaylistLoader_.main}media(){return this.mainPlaylistLoader_.media()||this.initialMedia_}areMediaTypesKnown_(){let e=!!this.mediaTypes_.AUDIO.activePlaylistLoader,t=!!this.mainSegmentLoader_.getCurrentMediaInfo_(),n=e?!!this.audioSegmentLoader_.getCurrentMediaInfo_():!0;return!(!t||!n)}getCodecsOrExclude_(){let e={main:this.mainSegmentLoader_.getCurrentMediaInfo_()||{},audio:this.audioSegmentLoader_.getCurrentMediaInfo_()||{}},t=this.mainSegmentLoader_.getPendingSegmentPlaylist()||this.media();e.video=e.main;let n=Gl(this.main(),t),r={},i=!!this.mediaTypes_.AUDIO.activePlaylistLoader;if(e.main.hasVideo&&(r.video=n.video||e.main.videoCodec||`avc1.4d400d`),e.main.isMuxed&&(r.video+=`,${n.audio||e.main.audioCodec||`mp4a.40.2`}`),(e.main.hasAudio&&!e.main.isMuxed||e.audio.hasAudio||i)&&(r.audio=n.audio||e.main.audioCodec||e.audio.audioCodec||`mp4a.40.2`,e.audio.isFmp4=e.main.hasAudio&&!e.main.isMuxed?e.main.isFmp4:e.audio.isFmp4),!r.audio&&!r.video){this.excludePlaylist({playlistToExclude:t,error:{message:`Could not determine codecs for playlist.`},playlistExclusionDuration:1/0});return}let a=(e,t)=>e?ve(t,this.usingManagedMediaSource_):M(t),o={},s;if([`video`,`audio`].forEach(function(t){if(r.hasOwnProperty(t)&&!a(e[t].isFmp4,r[t])){let n=e[t].isFmp4?`browser`:`muxer`;o[n]=o[n]||[],o[n].push(r[t]),t===`audio`&&(s=n)}}),i&&s&&t.attributes.AUDIO){let e=t.attributes.AUDIO;this.main().playlists.forEach(n=>{(n.attributes&&n.attributes.AUDIO)===e&&n!==t&&(n.excludeUntil=1/0)}),this.logger_(`excluding audio group ${e} as ${s} does not support codec(s): "${r.audio}"`)}if(Object.keys(o).length){let e=Object.keys(o).reduce((e,t)=>(e&&(e+=`, `),e+=`${t} does not support codec(s): "${o[t].join(`,`)}"`,e),``)+`.`;this.excludePlaylist({playlistToExclude:t,error:{internal:!0,message:e},playlistExclusionDuration:1/0});return}if(this.sourceUpdater_.hasCreatedSourceBuffers()&&!this.sourceUpdater_.canChangeType()){let e=[];if([`video`,`audio`].forEach(t=>{let n=(pe(this.sourceUpdater_.codecs[t]||``)[0]||{}).type,i=(pe(r[t]||``)[0]||{}).type;n&&i&&n.toLowerCase()!==i.toLowerCase()&&e.push(`"${this.sourceUpdater_.codecs[t]}" -> "${r[t]}"`)}),e.length){this.excludePlaylist({playlistToExclude:t,error:{message:`Codec switching not supported: ${e.join(`, `)}.`,internal:!0},playlistExclusionDuration:1/0});return}}return r}tryToCreateSourceBuffers_(){if(this.mediaSource.readyState!==`open`||this.sourceUpdater_.hasCreatedSourceBuffers()||!this.areMediaTypesKnown_())return;let e=this.getCodecsOrExclude_();if(!e)return;this.sourceUpdater_.createSourceBuffers(e);let t=[e.video,e.audio].filter(Boolean).join(`,`);this.excludeIncompatibleVariants_(t)}excludeUnsupportedVariants_(){let e=this.main().playlists,t=[];Object.keys(e).forEach(n=>{let r=e[n];if(t.indexOf(r.id)!==-1)return;t.push(r.id);let i=Gl(this.main,r),a=[];i.audio&&!M(i.audio)&&!ve(i.audio,this.usingManagedMediaSource_)&&a.push(`audio codec ${i.audio}`),i.video&&!M(i.video)&&!ve(i.video,this.usingManagedMediaSource_)&&a.push(`video codec ${i.video}`),i.text&&i.text===`stpp.ttml.im1t`&&a.push(`text codec ${i.text}`),a.length&&(r.excludeUntil=1/0,this.logger_(`excluding ${r.id} for unsupported: ${a.join(`, `)}`))})}excludeIncompatibleVariants_(e){let t=[],n=this.main().playlists,r=Ul(pe(e)),i=Wl(r),a=r.video&&pe(r.video)[0]||null,o=r.audio&&pe(r.audio)[0]||null;Object.keys(n).forEach(e=>{let r=n[e];if(t.indexOf(r.id)!==-1||r.excludeUntil===1/0)return;t.push(r.id);let s=[],c=Gl(this.mainPlaylistLoader_.main,r),l=Wl(c);if(!(!c.audio&&!c.video)){if(l!==i&&s.push(`codec count "${l}" !== "${i}"`),!this.sourceUpdater_.canChangeType()){let e=c.video&&pe(c.video)[0]||null,t=c.audio&&pe(c.audio)[0]||null;e&&a&&e.type.toLowerCase()!==a.type.toLowerCase()&&s.push(`video codec "${e.type}" !== "${a.type}"`),t&&o&&t.type.toLowerCase()!==o.type.toLowerCase()&&s.push(`audio codec "${t.type}" !== "${o.type}"`)}s.length&&(r.excludeUntil=1/0,this.logger_(`excluding ${r.id}: ${s.join(` && `)}`))}})}updateAdCues_(e){let t=0,n=this.seekable();n.length&&(t=n.start(0)),Ff(e,this.cueTagsTrack_,t)}goalBufferLength(){let e=this.tech_.currentTime(),t=Ru.GOAL_BUFFER_LENGTH,n=Ru.GOAL_BUFFER_LENGTH_RATE,r=Math.max(t,Ru.MAX_GOAL_BUFFER_LENGTH);return Math.min(t+e*n,r)}bufferLowWaterLine(){let e=this.tech_.currentTime(),t=Ru.BUFFER_LOW_WATER_LINE,n=Ru.BUFFER_LOW_WATER_LINE_RATE,r=Math.max(t,Ru.MAX_BUFFER_LOW_WATER_LINE),i=Math.max(t,Ru.EXPERIMENTAL_MAX_BUFFER_LOW_WATER_LINE);return Math.min(t+e*n,this.bufferBasedABR?i:r)}bufferHighWaterLine(){return Ru.BUFFER_HIGH_WATER_LINE}addDateRangesToTextTrack_(e){Wd(this.inbandTextTracks_,`com.apple.streaming`,this.tech_),Ud({inbandTextTracks:this.inbandTextTracks_,dateRanges:e})}addMetadataToTextTrack(e,t,n){let r=this.sourceUpdater_.videoBuffer?this.sourceUpdater_.videoTimestampOffset():this.sourceUpdater_.audioTimestampOffset();Wd(this.inbandTextTracks_,e,this.tech_),Bd({inbandTextTracks:this.inbandTextTracks_,metadataArray:t,timestampOffset:r,videoDuration:n})}pathwayAttribute_(e){return e.attributes[`PATHWAY-ID`]||e.attributes.serviceLocation}initContentSteeringController_(){let e=this.main();if(e.contentSteering){for(let t of e.playlists)this.contentSteeringController_.addAvailablePathway(this.pathwayAttribute_(t));if(this.contentSteeringController_.assignTagProperties(e.uri,e.contentSteering),this.contentSteeringController_.queryBeforeStart){this.contentSteeringController_.requestSteeringManifest(!0);return}this.tech_.one(`canplay`,()=>{this.contentSteeringController_.requestSteeringManifest()})}}resetContentSteeringController_(){this.contentSteeringController_.clearAvailablePathways(),this.contentSteeringController_.dispose(),this.initContentSteeringController_()}attachContentSteeringListeners_(){this.contentSteeringController_.on(`content-steering`,this.excludeThenChangePathway_.bind(this)),[`contentsteeringloadstart`,`contentsteeringloadcomplete`,`contentsteeringparsed`].forEach(e=>{this.contentSteeringController_.on(e,e=>{this.trigger(C({},e))})}),this.sourceType_===`dash`&&this.mainPlaylistLoader_.on(`loadedplaylist`,()=>{let e=this.main();(this.contentSteeringController_.didDASHTagChange(e.uri,e.contentSteering)||(()=>{let t=this.contentSteeringController_.getAvailablePathways(),n=[];for(let r of e.playlists){let e=r.attributes.serviceLocation;if(e&&(n.push(e),!t.has(e)))return!0}return!!(!n.length&&t.size)})())&&this.resetContentSteeringController_()})}excludeThenChangePathway_(){let e=this.contentSteeringController_.getPathway();if(!e)return;this.handlePathwayClones_();let t=this.main().playlists,n=new Set,r=!1;Object.keys(t).forEach(i=>{let a=t[i],o=this.pathwayAttribute_(a),s=o&&e!==o;a.excludeUntil===1/0&&a.lastExcludeReason_===`content-steering`&&!s&&(delete a.excludeUntil,delete a.lastExcludeReason_,r=!0);let c=!a.excludeUntil&&a.excludeUntil!==1/0;!n.has(a.id)&&s&&c&&(n.add(a.id),a.excludeUntil=1/0,a.lastExcludeReason_=`content-steering`,this.logger_(`excluding ${a.id} for ${a.lastExcludeReason_}`))}),this.contentSteeringController_.manifestType_===`DASH`&&Object.keys(this.mediaTypes_).forEach(t=>{let n=this.mediaTypes_[t];if(n.activePlaylistLoader){let t=n.activePlaylistLoader.media_;t&&t.attributes.serviceLocation!==e&&(r=!0)}}),r&&this.changeSegmentPathway_()}handlePathwayClones_(){let e=this.main().playlists,t=this.contentSteeringController_.currentPathwayClones,n=this.contentSteeringController_.nextPathwayClones;if(t&&t.size||n&&n.size){for(let[e,r]of t.entries())n.get(e)||(this.mainPlaylistLoader_.updateOrDeleteClone(r),this.contentSteeringController_.excludePathway(e));for(let[r,i]of n.entries()){let n=t.get(r);if(!n){e.filter(e=>e.attributes[`PATHWAY-ID`]===i[`BASE-ID`]).forEach(e=>{this.mainPlaylistLoader_.addClonePathway(i,e)}),this.contentSteeringController_.addAvailablePathway(r);continue}this.equalPathwayClones_(n,i)||(this.mainPlaylistLoader_.updateOrDeleteClone(i,!0),this.contentSteeringController_.addAvailablePathway(r))}this.contentSteeringController_.currentPathwayClones=new Map(JSON.parse(JSON.stringify([...n])))}}equalPathwayClones_(e,t){if(e[`BASE-ID`]!==t[`BASE-ID`]||e.ID!==t.ID||e[`URI-REPLACEMENT`].HOST!==t[`URI-REPLACEMENT`].HOST)return!1;let n=e[`URI-REPLACEMENT`].PARAMS,r=t[`URI-REPLACEMENT`].PARAMS;for(let e in n)if(n[e]!==r[e])return!1;for(let e in r)if(n[e]!==r[e])return!1;return!0}changeSegmentPathway_(){let e=this.selectPlaylist();this.pauseLoading(),this.contentSteeringController_.manifestType_===`DASH`&&this.switchMediaForDASHContentSteering_(),this.switchMedia_(e,`content-steering`)}excludeNonUsablePlaylistsByKeyId_(){if(!this.mainPlaylistLoader_||!this.mainPlaylistLoader_.main)return;let e=0,t=`non-usable`;this.mainPlaylistLoader_.main.playlists.forEach(n=>{let r=this.mainPlaylistLoader_.getKeyIdSet(n);!r||!r.size||r.forEach(r=>{let i=`usable`,a=this.keyStatusMap_.has(r)&&this.keyStatusMap_.get(r)===i,o=n.lastExcludeReason_===t&&n.excludeUntil===1/0;a?a&&o&&(delete n.excludeUntil,delete n.lastExcludeReason_,this.logger_(`enabling playlist ${n.id} because key ID ${r} is ${i}`)):(n.excludeUntil!==1/0&&n.lastExcludeReason_!==t&&(n.excludeUntil=1/0,n.lastExcludeReason_=t,this.logger_(`excluding playlist ${n.id} because the key ID ${r} doesn't exist in the keyStatusMap or is not ${i}`)),e++)})}),e>=this.mainPlaylistLoader_.main.playlists.length&&this.mainPlaylistLoader_.main.playlists.forEach(e=>{let n=e&&e.attributes&&e.attributes.RESOLUTION&&e.attributes.RESOLUTION.height<720,r=e.excludeUntil===1/0&&e.lastExcludeReason_===t;n&&r&&(delete e.excludeUntil,Z.log.warn(`enabling non-HD playlist ${e.id} because all playlists were excluded due to ${t} key IDs`))})}addKeyStatus_(e,t){let n=(typeof e==`string`?e:Af(e)).slice(0,32).toLowerCase();this.logger_(`KeyStatus '${t}' with key ID ${n} added to the keyStatusMap`),this.keyStatusMap_.set(n,t)}updatePlaylistByKeyStatus(e,t){this.addKeyStatus_(e,t),this.waitingForFastQualityPlaylistReceived_||this.excludeNonUsableThenChangePlaylist_(),this.mainPlaylistLoader_.off(`loadedplaylist`,this.excludeNonUsableThenChangePlaylist_.bind(this)),this.mainPlaylistLoader_.on(`loadedplaylist`,this.excludeNonUsableThenChangePlaylist_.bind(this))}excludeNonUsableThenChangePlaylist_(){this.excludeNonUsablePlaylistsByKeyId_(),this.fastQualityChange_()}},hp=(e,t,n)=>r=>{let i=e.main.playlists[t],a=hl(i),o=gl(i);if(r===void 0)return o;r?delete i.disabled:i.disabled=!0;let s={renditionInfo:{id:t,bandwidth:i.attributes.BANDWIDTH,resolution:i.attributes.RESOLUTION,codecs:i.attributes.CODECS},cause:`fast-quality`};return r!==o&&!a&&(r?(n(i),e.trigger({type:`renditionenabled`,metadata:s})):e.trigger({type:`renditiondisabled`,metadata:s})),r},gp=class{constructor(e,t,n){let{playlistController_:r}=e,i=r.fastQualityChange_.bind(r);if(t.attributes){let e=t.attributes.RESOLUTION;this.width=e&&e.width,this.height=e&&e.height,this.bandwidth=t.attributes.BANDWIDTH,this.frameRate=t.attributes[`FRAME-RATE`]}this.codecs=Gl(r.main(),t),this.playlist=t,this.id=n,this.enabled=hp(e.playlists,t.id,i)}},_p=function(e){e.representations=()=>{let t=e.playlistController_.main(),n=wl(t)?e.playlistController_.getAudioTrackPlaylists_():t.playlists;return n?n.filter(e=>!hl(e)).map((t,n)=>new gp(e,t,t.id)):[]}},vp=[`seeking`,`seeked`,`pause`,`playing`,`error`],yp=class extends Z.EventTarget{constructor(e){super(),this.playlistController_=e.playlistController,this.tech_=e.tech,this.seekable=e.seekable,this.allowSeeksWithinUnsafeLiveWindow=e.allowSeeksWithinUnsafeLiveWindow,this.liveRangeSafeTimeDelta=e.liveRangeSafeTimeDelta,this.media=e.media,this.playedRanges_=[],this.consecutiveUpdates=0,this.lastRecordedTime=null,this.checkCurrentTimeTimeout_=null,this.logger_=zc(`PlaybackWatcher`),this.logger_(`initialize`);let t=()=>this.monitorCurrentTime_(),n=()=>this.monitorCurrentTime_(),r=()=>this.techWaiting_(),i=()=>this.resetTimeUpdate_(),a=this.playlistController_,o=[`main`,`subtitle`,`audio`],s={};o.forEach(e=>{s[e]={reset:()=>this.resetSegmentDownloads_(e),updateend:()=>this.checkSegmentDownloads_(e)},a[`${e}SegmentLoader_`].on(`appendsdone`,s[e].updateend),a[`${e}SegmentLoader_`].on(`playlistupdate`,s[e].reset),this.tech_.on([`seeked`,`seeking`],s[e].reset)});let c=e=>{[`main`,`audio`].forEach(t=>{a[`${t}SegmentLoader_`][e](`appended`,this.seekingAppendCheck_)})};this.seekingAppendCheck_=()=>{this.fixesBadSeeks_()&&(this.consecutiveUpdates=0,this.lastRecordedTime=this.tech_.currentTime(),c(`off`))},this.clearSeekingAppendCheck_=()=>c(`off`),this.watchForBadSeeking_=()=>{this.clearSeekingAppendCheck_(),c(`on`)},this.tech_.on(`seeked`,this.clearSeekingAppendCheck_),this.tech_.on(`seeking`,this.watchForBadSeeking_),this.tech_.on(`waiting`,r),this.tech_.on(vp,i),this.tech_.on(`canplay`,n),this.tech_.one(`play`,t),this.dispose=()=>{this.clearSeekingAppendCheck_(),this.logger_(`dispose`),this.tech_.off(`waiting`,r),this.tech_.off(vp,i),this.tech_.off(`canplay`,n),this.tech_.off(`play`,t),this.tech_.off(`seeking`,this.watchForBadSeeking_),this.tech_.off(`seeked`,this.clearSeekingAppendCheck_),o.forEach(e=>{a[`${e}SegmentLoader_`].off(`appendsdone`,s[e].updateend),a[`${e}SegmentLoader_`].off(`playlistupdate`,s[e].reset),this.tech_.off([`seeked`,`seeking`],s[e].reset)}),this.checkCurrentTimeTimeout_&&b.default.clearTimeout(this.checkCurrentTimeTimeout_),this.resetTimeUpdate_()}}monitorCurrentTime_(){this.checkCurrentTime_(),this.checkCurrentTimeTimeout_&&b.default.clearTimeout(this.checkCurrentTimeTimeout_),this.checkCurrentTimeTimeout_=b.default.setTimeout(this.monitorCurrentTime_.bind(this),250)}resetSegmentDownloads_(e){let t=this.playlistController_[`${e}SegmentLoader_`];this[`${e}StalledDownloads_`]>0&&this.logger_(`resetting possible stalled download count for ${e} loader`),this[`${e}StalledDownloads_`]=0,this[`${e}Buffered_`]=t.buffered_()}checkSegmentDownloads_(e){let t=this.playlistController_,n=t[`${e}SegmentLoader_`],r=n.buffered_(),i=Qc(this[`${e}Buffered_`],r);if(this[`${e}Buffered_`]=r,i){let n={bufferedRanges:r};t.trigger({type:`bufferedrangeschanged`,metadata:n}),this.resetSegmentDownloads_(e);return}this[`${e}StalledDownloads_`]++,this.logger_(`found #${this[`${e}StalledDownloads_`]} ${e} appends that did not increase buffer (possible stalled download)`,{playlistId:n.playlist_&&n.playlist_.id,buffered:Zc(r)}),!(this[`${e}StalledDownloads_`]<10)&&(this.logger_(`${e} loader stalled download exclusion`),this.resetSegmentDownloads_(e),this.tech_.trigger({type:`usage`,name:`vhs-${e}-download-exclusion`}),e!==`subtitle`&&t.excludePlaylist({error:{message:`Excessive ${e} segment downloading detected.`},playlistExclusionDuration:1/0}))}checkCurrentTime_(){if(this.tech_.paused()||this.tech_.seeking())return;let e=this.tech_.currentTime(),t=this.tech_.buffered();if(this.lastRecordedTime===e&&(!t.length||e+Uc>=t.end(t.length-1)))return this.techWaiting_();if(this.consecutiveUpdates>=5&&e===this.lastRecordedTime)this.consecutiveUpdates++,this.waiting_();else if(e===this.lastRecordedTime)this.consecutiveUpdates++;else{this.playedRanges_.push(Bc([this.lastRecordedTime,e]));let t={playedRanges:this.playedRanges_};this.playlistController_.trigger({type:`playedrangeschanged`,metadata:t}),this.consecutiveUpdates=0,this.lastRecordedTime=e}}resetTimeUpdate_(){this.consecutiveUpdates=0}fixesBadSeeks_(){if(!this.tech_.seeking())return!1;let e=this.seekable(),t=this.tech_.currentTime(),n=this.afterSeekableWindow_(e,t,this.media(),this.allowSeeksWithinUnsafeLiveWindow),r;if(n&&(r=e.end(e.length-1)),this.beforeSeekableWindow_(e,t)){let t=e.start(0);r=t+(t===e.end(0)?0:Uc)}if(r!==void 0)return this.logger_(`Trying to seek outside of seekable at time ${t} with seekable range ${Yc(e)}. Seeking to ${r}.`),this.tech_.setCurrentTime(r),!0;let i=this.playlistController_.sourceUpdater_,a=this.tech_.buffered(),o=i.audioBuffer?i.audioBuffered():null,s=i.videoBuffer?i.videoBuffered():null,c=this.media(),l=c.partTargetDuration?c.partTargetDuration:(c.targetDuration-Hc)*2,u=[o,s];for(let e=0;e<u.length;e++)if(u[e]&&el(u[e],t)<l)return!1;let d=Kc(a,t);return d.length===0?!1:(r=d.start(0)+Uc,this.logger_(`Buffered region starts (${d.start(0)}) just beyond seek point (${t}). Seeking to ${r}.`),this.tech_.setCurrentTime(r),!0)}waiting_(){if(this.techWaiting_())return;let e=this.tech_.currentTime(),t=Gc(this.tech_.buffered(),e);if(t.length&&e+3<=t.end(0)){this.resetTimeUpdate_(),this.tech_.setCurrentTime(e),this.logger_(`Stopped at ${e} while inside a buffered region [${t.start(0)} -> ${t.end(0)}]. Attempting to resume playback by seeking to the current time.`),this.tech_.trigger({type:`usage`,name:`vhs-unknown-waiting`});return}}techWaiting_(){let e=this.seekable(),t=this.tech_.currentTime();if(this.tech_.seeking())return!0;if(this.beforeSeekableWindow_(e,t)){let n=e.end(e.length-1);return this.logger_(`Fell out of live window at time ${t}. Seeking to live point (seekable end) ${n}`),this.resetTimeUpdate_(),this.tech_.setCurrentTime(n),this.tech_.trigger({type:`usage`,name:`vhs-live-resync`}),!0}let n=this.tech_.vhs.playlistController_.sourceUpdater_,r=this.tech_.buffered();if(this.videoUnderflow_({audioBuffered:n.audioBuffered(),videoBuffered:n.videoBuffered(),currentTime:t}))return this.resetTimeUpdate_(),this.tech_.setCurrentTime(t),this.tech_.trigger({type:`usage`,name:`vhs-video-underflow`}),!0;let i=Kc(r,t);return i.length>0?(this.logger_(`Stopped at ${t} and seeking to ${i.start(0)}`),this.resetTimeUpdate_(),this.skipTheGap_(t),!0):!1}afterSeekableWindow_(e,t,n,r=!1){if(!e.length)return!1;let i=e.end(e.length-1)+Uc,a=!n.endList,o=typeof n.partTargetDuration==`number`;return a&&(o||r)&&(i=e.end(e.length-1)+n.targetDuration*3),t>i}beforeSeekableWindow_(e,t){return!!(e.length&&e.start(0)>0&&t<e.start(0)-this.liveRangeSafeTimeDelta)}videoUnderflow_({videoBuffered:e,audioBuffered:t,currentTime:n}){if(!e)return;let r;if(e.length&&t.length){let i=Gc(e,n-3),a=Gc(e,n),o=Gc(t,n);o.length&&!a.length&&i.length&&(r={start:i.end(0),end:o.end(0)})}else Kc(e,n).length||(r=this.gapFromVideoUnderflow_(e,n));return r?(this.logger_(`Encountered a gap in video from ${r.start} to ${r.end}. Seeking to current time ${n}`),!0):!1}skipTheGap_(e){let t=this.tech_.buffered(),n=this.tech_.currentTime(),r=Kc(t,n);if(this.resetTimeUpdate_(),r.length===0||n!==e)return;this.logger_(`skipTheGap_:`,`currentTime:`,n,`scheduled currentTime:`,e,`nextRange start:`,r.start(0)),this.tech_.setCurrentTime(r.start(0)+Hc);let i={gapInfo:{from:n,to:r.start(0)}};this.playlistController_.trigger({type:`gapjumped`,metadata:i}),this.tech_.trigger({type:`usage`,name:`vhs-gap-skip`})}gapFromVideoUnderflow_(e,t){let n=qc(e);for(let e=0;e<n.length;e++){let r=n.start(e),i=n.end(e);if(t-r<4&&t-r>2)return{start:r,end:i}}return null}},bp={errorInterval:30,getSource(e){return e(this.tech({IWillNotUseThisInPlugins:!0}).currentSource_||this.currentSource())}},xp=function(e,t){let n=0,r=0,i=Q(bp,t);e.ready(()=>{e.trigger({type:`usage`,name:`vhs-error-reload-initialized`})});let a=function(){r&&e.currentTime(r)},o=function(t){t!=null&&(r=e.duration()!==1/0&&e.currentTime()||0,e.one(`loadedmetadata`,a),e.src(t),e.trigger({type:`usage`,name:`vhs-error-reload`}),e.play())},s=function(){if(Date.now()-n<i.errorInterval*1e3){e.trigger({type:`usage`,name:`vhs-error-reload-canceled`});return}if(!i.getSource||typeof i.getSource!=`function`){Z.log.error(`ERROR: reloadSourceOnError - The option getSource must be a function!`);return}return n=Date.now(),i.getSource.call(e,o)},c=function(){e.off(`loadedmetadata`,a),e.off(`error`,s),e.off(`dispose`,c)};e.on(`error`,s),e.on(`dispose`,c),e.reloadSourceOnError=function(t){c(),xp(e,t)}},Sp=function(e){xp(this,e)},Cp=`3.17.3`,wp=`7.1.0`,Tp=`1.3.1`,Ep=`7.2.0`,Dp=`4.0.2`,$={PlaylistLoader:nu,Playlist:Tl,utils:gu,STANDARD_PLAYLIST_SELECTOR:jd,INITIAL_PLAYLIST_SELECTOR:Pd,lastBandwidthSelector:jd,movingAverageBandwidthSelector:Md,comparePlaylistBandwidth:Od,comparePlaylistResolution:kd,xhr:ou()};Object.keys(Ru).forEach(e=>{Object.defineProperty($,e,{get(){return Z.log.warn(`using Vhs.${e} is UNSAFE be sure you know what you are doing`),Ru[e]},set(t){if(Z.log.warn(`using Vhs.${e} is UNSAFE be sure you know what you are doing`),typeof t!=`number`||t<0){Z.log.warn(`value of Vhs.${e} must be greater than or equal to 0`);return}Ru[e]=t}})});var Op=`videojs-vhs`,kp=function(e,t){let n=t.media(),r=-1;for(let t=0;t<e.length;t++)if(e[t].id===n.id){r=t;break}e.selectedIndex_=r,e.trigger({selectedIndex:r,type:`change`})},Ap=function(e,t){t.representations().forEach(t=>{e.addQualityLevel(t)}),kp(e,t.playlists)};$.canPlaySource=function(){return Z.log.warn(`VHS is no longer a tech. Please remove it from your player's techOrder.`)};var jp=(e,t,n)=>{if(!e)return e;let r={};t&&t.attributes&&t.attributes.CODECS&&(r=Ul(pe(t.attributes.CODECS))),n&&n.attributes&&n.attributes.CODECS&&(r.audio=n.attributes.CODECS);let i=_e(r.video),a=_e(r.audio),o={};for(let n in e)o[n]={},a&&(o[n].audioContentType=a),i&&(o[n].videoContentType=i),t.contentProtection&&t.contentProtection[n]&&t.contentProtection[n].pssh&&(o[n].pssh=t.contentProtection[n].pssh),typeof e[n]==`string`&&(o[n].url=e[n]);return Q(e,o)},Mp=(e,t)=>e.reduce((e,n)=>{if(!n.contentProtection)return e;let r=t.reduce((e,t)=>{let r=n.contentProtection[t];return r&&r.pssh&&(e[t]={pssh:r.pssh}),e},{});return Object.keys(r).length&&e.push(r),e},[]),Np=({player:e,sourceKeySystems:t,audioMedia:n,mainPlaylists:r})=>{if(!e.eme.initializeMediaKeys)return Promise.resolve();let i=Mp(n?r.concat([n]):r,Object.keys(t)),a=[],o=[];return i.forEach(t=>{o.push(new Promise((t,n)=>{e.tech_.one(`keysessioncreated`,t)})),a.push(new Promise((n,r)=>{e.eme.initializeMediaKeys({keySystems:t},e=>{if(e){r(e);return}n()})}))}),Promise.race([Promise.all(a),Promise.race(o)])},Pp=({player:e,sourceKeySystems:t,media:n,audioMedia:r})=>{let i=jp(t,n,r);return i?(e.currentSource().keySystems=i,i&&!e.eme?(Z.log.warn(`DRM encrypted source cannot be decrypted without a DRM plugin`),!1):!0):!1},Fp=()=>{if(!b.default.localStorage)return null;let e=b.default.localStorage.getItem(Op);if(!e)return null;try{return JSON.parse(e)}catch{return null}},Ip=e=>{if(!b.default.localStorage)return!1;let t=Fp();t=t?Q(t,e):e;try{b.default.localStorage.setItem(Op,JSON.stringify(t))}catch{return!1}return t},Lp=e=>e.toLowerCase().indexOf(`data:application/vnd.videojs.vhs+json,`)===0?JSON.parse(e.substring(e.indexOf(`,`)+1)):e,Rp=(e,t)=>{e._requestCallbackSet||=new Set,e._requestCallbackSet.add(t)},zp=(e,t)=>{e._responseCallbackSet||=new Set,e._responseCallbackSet.add(t)},Bp=(e,t)=>{e._requestCallbackSet&&(e._requestCallbackSet.delete(t),e._requestCallbackSet.size||delete e._requestCallbackSet)},Vp=(e,t)=>{e._responseCallbackSet&&(e._responseCallbackSet.delete(t),e._responseCallbackSet.size||delete e._responseCallbackSet)};$.supportsNativeHls=function(){if(!x.default||!x.default.createElement)return!1;let e=x.default.createElement(`video`);return Z.getTech(`Html5`).isSupported()?[`application/vnd.apple.mpegurl`,`audio/mpegurl`,`audio/x-mpegurl`,`application/x-mpegurl`,`video/x-mpegurl`,`video/mpegurl`,`application/mpegurl`].some(function(t){return/maybe|probably/i.test(e.canPlayType(t))}):!1}(),$.supportsNativeDash=function(){return!x.default||!x.default.createElement||!Z.getTech(`Html5`).isSupported()?!1:/maybe|probably/i.test(x.default.createElement(`video`).canPlayType(`application/dash+xml`))}(),$.supportsTypeNatively=e=>e===`hls`?$.supportsNativeHls:e===`dash`?$.supportsNativeDash:!1,$.isSupported=function(){return Z.log.warn(`VHS is no longer a tech. Please remove it from your player's techOrder.`)},$.xhr.onRequest=function(e){Rp($.xhr,e)},$.xhr.onResponse=function(e){zp($.xhr,e)},$.xhr.offRequest=function(e){Bp($.xhr,e)},$.xhr.offResponse=function(e){Vp($.xhr,e)};var Hp=Z.getComponent(`Component`),Up=class extends Hp{constructor(e,t,n){if(super(t,n.vhs),typeof n.initialBandwidth==`number`&&(this.options_.bandwidth=n.initialBandwidth),this.logger_=zc(`VhsHandler`),t.options_&&t.options_.playerId){let e=Z.getPlayer(t.options_.playerId);this.player_=e}if(this.tech_=t,this.source_=e,this.stats={},this.ignoreNextSeekingEvent_=!1,this.setOptions_(),this.options_.overrideNative&&t.overrideNativeAudioTracks&&t.overrideNativeVideoTracks)t.overrideNativeAudioTracks(!0),t.overrideNativeVideoTracks(!0);else if(this.options_.overrideNative&&(t.featuresNativeVideoTracks||t.featuresNativeAudioTracks))throw Error(`Overriding native VHS requires emulated tracks. See https://git.io/vMpjB`);this.on(x.default,[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`],e=>{let t=x.default.fullscreenElement||x.default.webkitFullscreenElement||x.default.mozFullScreenElement||x.default.msFullscreenElement;t&&t.contains(this.tech_.el())?this.playlistController_.fastQualityChange_():this.playlistController_.checkABR_()}),this.on(this.tech_,`seeking`,function(){if(this.ignoreNextSeekingEvent_){this.ignoreNextSeekingEvent_=!1;return}this.setCurrentTime(this.tech_.currentTime())}),this.on(this.tech_,`error`,function(){this.tech_.error()&&this.playlistController_&&this.playlistController_.pauseLoading()}),this.on(this.tech_,`play`,this.play)}setOptions_(e={}){if(this.options_=Q(this.options_,e),this.options_.withCredentials=this.options_.withCredentials||!1,this.options_.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions!==!1,this.options_.useDevicePixelRatio=this.options_.useDevicePixelRatio||!1,this.options_.usePlayerObjectFit=this.options_.usePlayerObjectFit||!1,this.options_.useBandwidthFromLocalStorage=this.source_.useBandwidthFromLocalStorage===void 0?this.options_.useBandwidthFromLocalStorage||!1:this.source_.useBandwidthFromLocalStorage,this.options_.useForcedSubtitles=this.options_.useForcedSubtitles||!1,this.options_.useNetworkInformationApi=this.options_.useNetworkInformationApi===void 0?!0:this.options_.useNetworkInformationApi,this.options_.useDtsForTimestampOffset=this.options_.useDtsForTimestampOffset||!1,this.options_.customTagParsers=this.options_.customTagParsers||[],this.options_.customTagMappers=this.options_.customTagMappers||[],this.options_.cacheEncryptionKeys=this.options_.cacheEncryptionKeys||!1,this.options_.llhls=this.options_.llhls!==!1,this.options_.bufferBasedABR=this.options_.bufferBasedABR||!1,typeof this.options_.playlistExclusionDuration!=`number`&&(this.options_.playlistExclusionDuration=60),typeof this.options_.bandwidth!=`number`&&this.options_.useBandwidthFromLocalStorage){let e=Fp();e&&e.bandwidth&&(this.options_.bandwidth=e.bandwidth,this.tech_.trigger({type:`usage`,name:`vhs-bandwidth-from-local-storage`})),e&&e.throughput&&(this.options_.throughput=e.throughput,this.tech_.trigger({type:`usage`,name:`vhs-throughput-from-local-storage`}))}typeof this.options_.bandwidth!=`number`&&(this.options_.bandwidth=Ru.INITIAL_BANDWIDTH),this.options_.enableLowInitialPlaylist=this.options_.enableLowInitialPlaylist&&this.options_.bandwidth===Ru.INITIAL_BANDWIDTH,[`withCredentials`,`useDevicePixelRatio`,`usePlayerObjectFit`,`customPixelRatio`,`limitRenditionByPlayerDimensions`,`bandwidth`,`customTagParsers`,`customTagMappers`,`cacheEncryptionKeys`,`playlistSelector`,`initialPlaylistSelector`,`bufferBasedABR`,`liveRangeSafeTimeDelta`,`llhls`,`useForcedSubtitles`,`useNetworkInformationApi`,`useDtsForTimestampOffset`,`exactManifestTimings`,`leastPixelDiffSelector`].forEach(e=>{this.source_[e]!==void 0&&(this.options_[e]=this.source_[e])}),this.limitRenditionByPlayerDimensions=this.options_.limitRenditionByPlayerDimensions,this.useDevicePixelRatio=this.options_.useDevicePixelRatio,this.usePlayerObjectFit=this.options_.usePlayerObjectFit;let t=this.options_.customPixelRatio;typeof t==`number`&&t>=0&&(this.customPixelRatio=t)}setOptions(e={}){this.setOptions_(e)}src(e,t){if(!e)return;this.setOptions_(),this.options_.src=Lp(this.source_.src),this.options_.tech=this.tech_,this.options_.externVhs=$,this.options_.sourceType=xe(t),this.options_.seekTo=e=>{this.tech_.setCurrentTime(e)},this.options_.player_=this.player_,this.playlistController_=new mp(this.options_);let n=Q({liveRangeSafeTimeDelta:Uc},this.options_,{seekable:()=>this.seekable(),media:()=>this.playlistController_.media(),playlistController:this.playlistController_});this.playbackWatcher_=new yp(n),this.attachStreamingEventListeners_(),this.playlistController_.on(`error`,()=>{let e=Z.players[this.tech_.options_.playerId],t=this.playlistController_.error;typeof t==`object`&&!t.code?t.code=3:typeof t==`string`&&(t={message:t,code:3}),e.error(t)});let r=this.options_.bufferBasedABR?$.movingAverageBandwidthSelector(.55):$.STANDARD_PLAYLIST_SELECTOR;this.playlistController_.selectPlaylist=this.selectPlaylist?this.selectPlaylist.bind(this):r.bind(this),this.playlistController_.selectInitialPlaylist=$.INITIAL_PLAYLIST_SELECTOR.bind(this),this.playlists=this.playlistController_.mainPlaylistLoader_,this.mediaSource=this.playlistController_.mediaSource,Object.defineProperties(this,{selectPlaylist:{get(){return this.playlistController_.selectPlaylist},set(e){this.playlistController_.selectPlaylist=e.bind(this)}},throughput:{get(){return this.playlistController_.mainSegmentLoader_.throughput.rate},set(e){this.playlistController_.mainSegmentLoader_.throughput.rate=e,this.playlistController_.mainSegmentLoader_.throughput.count=1}},bandwidth:{get(){let e=this.playlistController_.mainSegmentLoader_.bandwidth,t=b.default.navigator.connection||b.default.navigator.mozConnection||b.default.navigator.webkitConnection,n=1e7;if(this.options_.useNetworkInformationApi&&t){let r=t.downlink*1e3*1e3;e=r>=n&&e>=n?Math.max(e,r):r}return e},set(e){this.playlistController_.mainSegmentLoader_.bandwidth=e,this.playlistController_.mainSegmentLoader_.throughput={rate:0,count:0}}},systemBandwidth:{get(){let e=1/(this.bandwidth||1),t;return t=this.throughput>0?1/this.throughput:0,Math.floor(1/(e+t))},set(){Z.log.error(`The "systemBandwidth" property is read-only`)}}}),this.options_.bandwidth&&(this.bandwidth=this.options_.bandwidth),this.options_.throughput&&(this.throughput=this.options_.throughput),Object.defineProperties(this.stats,{bandwidth:{get:()=>this.bandwidth||0,enumerable:!0},mediaRequests:{get:()=>this.playlistController_.mediaRequests_()||0,enumerable:!0},mediaRequestsAborted:{get:()=>this.playlistController_.mediaRequestsAborted_()||0,enumerable:!0},mediaRequestsTimedout:{get:()=>this.playlistController_.mediaRequestsTimedout_()||0,enumerable:!0},mediaRequestsErrored:{get:()=>this.playlistController_.mediaRequestsErrored_()||0,enumerable:!0},mediaTransferDuration:{get:()=>this.playlistController_.mediaTransferDuration_()||0,enumerable:!0},mediaBytesTransferred:{get:()=>this.playlistController_.mediaBytesTransferred_()||0,enumerable:!0},mediaSecondsLoaded:{get:()=>this.playlistController_.mediaSecondsLoaded_()||0,enumerable:!0},mediaAppends:{get:()=>this.playlistController_.mediaAppends_()||0,enumerable:!0},mainAppendsToLoadedData:{get:()=>this.playlistController_.mainAppendsToLoadedData_()||0,enumerable:!0},audioAppendsToLoadedData:{get:()=>this.playlistController_.audioAppendsToLoadedData_()||0,enumerable:!0},appendsToLoadedData:{get:()=>this.playlistController_.appendsToLoadedData_()||0,enumerable:!0},timeToLoadedData:{get:()=>this.playlistController_.timeToLoadedData_()||0,enumerable:!0},buffered:{get:()=>Zc(this.tech_.buffered()),enumerable:!0},currentTime:{get:()=>this.tech_.currentTime(),enumerable:!0},currentSource:{get:()=>this.tech_.currentSource_,enumerable:!0},currentTech:{get:()=>this.tech_.name_,enumerable:!0},duration:{get:()=>this.tech_.duration(),enumerable:!0},main:{get:()=>this.playlists.main,enumerable:!0},playerDimensions:{get:()=>this.tech_.currentDimensions(),enumerable:!0},seekable:{get:()=>Zc(this.tech_.seekable()),enumerable:!0},timestamp:{get:()=>Date.now(),enumerable:!0},videoPlaybackQuality:{get:()=>this.tech_.getVideoPlaybackQuality(),enumerable:!0}}),this.tech_.one(`canplay`,this.playlistController_.setupFirstPlay.bind(this.playlistController_)),this.tech_.on(`bandwidthupdate`,()=>{this.options_.useBandwidthFromLocalStorage&&Ip({bandwidth:this.bandwidth,throughput:Math.round(this.throughput)})}),this.playlistController_.on(`selectedinitialmedia`,()=>{_p(this)}),this.playlistController_.sourceUpdater_.on(`createdsourcebuffers`,()=>{this.setupEme_()}),this.on(this.playlistController_,`progress`,function(){this.tech_.trigger(`progress`)}),this.on(this.playlistController_,`firstplay`,function(){this.ignoreNextSeekingEvent_=!0}),this.setupQualityLevels_(),this.tech_.el()&&(this.mediaSourceUrl_=b.default.URL.createObjectURL(this.playlistController_.mediaSource),(Z.browser.IS_ANY_SAFARI||Z.browser.IS_IOS)&&this.options_.overrideNative&&this.options_.sourceType===`hls`&&typeof this.tech_.addSourceElement==`function`?(this.tech_.addSourceElement(this.mediaSourceUrl_),this.tech_.addSourceElement(this.source_.src)):this.tech_.src(this.mediaSourceUrl_))}createKeySessions_(){let e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader;this.logger_(`waiting for EME key session creation`),Np({player:this.player_,sourceKeySystems:this.source_.keySystems,audioMedia:e&&e.media(),mainPlaylists:this.playlists.main.playlists}).then(()=>{this.logger_(`created EME key session`),this.playlistController_.sourceUpdater_.initializedEme()}).catch(e=>{this.logger_(`error while creating EME key session`,e),this.player_.error({message:`Failed to initialize media keys for EME`,code:3})})}handleWaitingForKey_(){this.logger_(`waitingforkey fired, attempting to create any new key sessions`),this.createKeySessions_()}setupEme_(){let e=this.playlistController_.mediaTypes_.AUDIO.activePlaylistLoader,t=Pp({player:this.player_,sourceKeySystems:this.source_.keySystems,media:this.playlists.media(),audioMedia:e&&e.media()});if(this.player_.tech_.on(`keystatuschange`,e=>{this.playlistController_.updatePlaylistByKeyStatus(e.keyId,e.status)}),this.handleWaitingForKey_=this.handleWaitingForKey_.bind(this),this.player_.tech_.on(`waitingforkey`,this.handleWaitingForKey_),!t){this.playlistController_.sourceUpdater_.initializedEme();return}this.createKeySessions_()}setupQualityLevels_(){let e=Z.players[this.tech_.options_.playerId];!e||!e.qualityLevels||this.qualityLevels_||(this.qualityLevels_=e.qualityLevels(),this.playlistController_.on(`selectedinitialmedia`,()=>{Ap(this.qualityLevels_,this)}),this.playlists.on(`mediachange`,()=>{kp(this.qualityLevels_,this.playlists)}))}static version(){return{"@videojs/http-streaming":Cp,"mux.js":wp,"mpd-parser":Tp,"m3u8-parser":Ep,"aes-decrypter":Dp}}version(){return this.constructor.version()}canChangeType(){return Of.canChangeType()}play(){this.playlistController_.play()}setCurrentTime(e){this.playlistController_.setCurrentTime(e)}duration(){return this.playlistController_.duration()}seekable(){return this.playlistController_.seekable()}dispose(){this.playbackWatcher_&&this.playbackWatcher_.dispose(),this.playlistController_&&this.playlistController_.dispose(),this.qualityLevels_&&this.qualityLevels_.dispose(),this.tech_&&this.tech_.vhs&&delete this.tech_.vhs,this.mediaSourceUrl_&&b.default.URL.revokeObjectURL&&(b.default.URL.revokeObjectURL(this.mediaSourceUrl_),this.mediaSourceUrl_=null),this.tech_&&this.tech_.off(`waitingforkey`,this.handleWaitingForKey_),super.dispose()}convertToProgramTime(e,t){return wu({playlist:this.playlistController_.media(),time:e,callback:t})}seekToProgramTime(e,t,n=!0,r=2){return Tu({programTime:e,playlist:this.playlistController_.media(),retryCount:r,pauseAfterSeek:n,seekTo:this.options_.seekTo,tech:this.options_.tech,callback:t})}setupXhrHooks_(){this.xhr.onRequest=e=>{Rp(this.xhr,e)},this.xhr.onResponse=e=>{zp(this.xhr,e)},this.xhr.offRequest=e=>{Bp(this.xhr,e)},this.xhr.offResponse=e=>{Vp(this.xhr,e)},this.player_.trigger(`xhr-hooks-ready`)}attachStreamingEventListeners_(){[`seekablerangeschanged`,`bufferedrangeschanged`,`contentsteeringloadstart`,`contentsteeringloadcomplete`,`contentsteeringparsed`].forEach(e=>{this.playlistController_.on(e,e=>{this.player_.trigger(C({},e))})}),[`gapjumped`,`playedrangeschanged`].forEach(e=>{this.playbackWatcher_.on(e,e=>{this.player_.trigger(C({},e))})})}},Wp={name:`videojs-http-streaming`,VERSION:Cp,canHandleSource(e,t={}){let n=Q(Z.options,t);return!n.vhs.experimentalUseMMS&&!ve(`avc1.4d400d,mp4a.40.2`,!1)?!1:Wp.canPlayType(e.type,n)},handleSource(e,t,n={}){return t.vhs=new Up(e,t,Q(Z.options,n)),t.vhs.xhr=ou(),t.vhs.setupXhrHooks_(),t.vhs.src(e.src,e.type),t.vhs},canPlayType(e,t){let n=xe(e);if(!n)return``;let r=Wp.getOverrideNative(t);return!$.supportsTypeNatively(n)||r?`maybe`:``},getOverrideNative(e={}){let{vhs:t={}}=e,n=!(Z.browser.IS_ANY_SAFARI||Z.browser.IS_IOS),{overrideNative:r=n}=t;return r}};ve(`avc1.4d400d,mp4a.40.2`,!0)&&Z.getTech(`Html5`).registerSourceHandler(Wp,0),Z.VhsHandler=Up,Z.VhsSourceHandler=Wp,Z.Vhs=$,Z.use||Z.registerComponent(`Vhs`,$),Z.options.vhs=Z.options.vhs||{},(!Z.getPlugin||!Z.getPlugin(`reloadSourceOnError`))&&Z.registerPlugin(`reloadSourceOnError`,Sp);var Gp=`0.5, 1, 1.5, 2`;function Kp(e){let t=e.getChild(`ControlBar`),n=t.getChild(`CurrentTimeDisplay`),r=t.getChild(`ProgressControl`),i=t.getChild(`DurationDisplay`),a=t.getChild(`TimeDivider`);t.removeChild(r),t.removeChild(n),t.removeChild(a),t.removeChild(i),t.addChild(n,{},0),t.addChild(r,{},1),t.addChild(i,{},2)}var qp=class extends e.t(t.t){constructor(...e){super(...e),this.autoplay=!1,this.loop=!1,this.playbackRates=Gp,this.skipBy=n.r.Ten}srcChanged(){this.#u()}autoplayChanged(){this._player&&this.#u()}skipByChanged(){this._player&&this.#u()}#e;connectedCallback(){super.connectedCallback(),this.#u()}disconnectedCallback(){super.connectedCallback(),this.#i()}#t(){let e=this.querySelectorAll(`source`);if(!(e.length===0&&!this.src))return this.src?[{src:this.src}]:Array.from(e).map(e=>({src:e.getAttribute(`src`),type:e.getAttribute(`type`)}))}#n(){let e=this.#t(),t=parseInt(this.skipBy);return{languages:{current:this.locale.videoPlayer},sources:e,poster:this.poster,muted:this.autoplay,playbackRates:a.t(this.playbackRates),controlBar:{skipButtons:{forward:t,backward:t},remainingTimeDisplay:{displayNegative:!1},volumePanel:{inline:!1}},textTrackSettings:!1,experimentalSvgIcons:!0,language:`current`,fluid:!0,controls:!0,preload:`auto`}}get#r(){return this.shadowRoot.getElementById(`no-sources`)}#i(){this._player&&this._player.dispose()}#a(){this.#e=document.createElement(`video`);let e=this.querySelectorAll(`track`);for(let t=0;t<e.length;t++)this.#e.appendChild(e[t]);this.#e.setAttribute(`crossorigin`,`anonymous`),this.#e.toggleAttribute(`playsinline`,!0),this.loop&&this.#e.setAttribute(`loop`,``),this.autoplay&&this.#e.setAttribute(`autoplay`,``),this.#o.appendChild(this.#e)}get#o(){return this.shadowRoot.querySelector(`.control`)}#s(e=!0){this.#r?.classList.toggle(`vjs-hidden`,e)}#c(e){this._player=Z(this.#e,e),this.shadowRoot.querySelector(`[lang]`).removeAttribute(`lang`)}#l(){this._player.on(`play`,()=>this.$emit(`play`)),this._player.on(`pause`,()=>this.$emit(`pause`)),this._player.on(`ended`,()=>this.$emit(`ended`))}#u(){this.#i();let e=this.#n();e.sources&&this.#o&&this.#r?(this.#s(),this.#a(),this.#c(e),Kp(this._player),this.#l()):this.#s(!1)}};r.t([t.m],qp.prototype,`poster`,void 0),r.t([t.m],qp.prototype,`src`,void 0),r.t([t.m({mode:`boolean`})],qp.prototype,`autoplay`,void 0),r.t([t.m({mode:`boolean`})],qp.prototype,`loop`,void 0),r.t([t.m({attribute:`playback-rates`,mode:`fromView`})],qp.prototype,`playbackRates`,void 0),r.t([t.m({attribute:`skip-by`,mode:`fromView`})],qp.prototype,`skipBy`,void 0);function Jp(){return t.p`
209
209
  <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
210
210
  <defs>
211
211
  <symbol viewBox="0 0 24 24" id="vjs-icon-play">
@@ -512,7 +512,7 @@ ${af(e)}`),t.map&&!t.map.bytes&&(this.logger_(`going to request init segment.`),
512
512
  </symbol>
513
513
  </defs>
514
514
  </svg>
515
- `}var Yp=t.f`
515
+ `}var Yp=t.p`
516
516
  <div
517
517
  class="${e=>i.t(`control`)} video-js vjs-16-9 vjs-working-hover vjs-theme-vivid"
518
518
  >
@@ -524,4 +524,4 @@ ${af(e)}`),t.map&&!t.map.bytes&&(this.logger_(`going to request init segment.`),
524
524
  <slot></slot>
525
525
  ${Jp()}
526
526
  </div>
527
- `,Xp=t.s(`video-player`,qp,Yp,[],{styles:o});t.c(Xp)();
527
+ `,Xp=t.u(`video-player`,qp,Yp,[],{styles:o});t.d(Xp)();
@@ -1,5 +1,5 @@
1
1
  import { i as e, r as t, t as n } from "../bundled/localized.js";
2
- import { c as r, f as i, s as a, t as o, u as s } from "../bundled/vivid-element.js";
2
+ import { d as r, m as i, p as a, t as o, u as s } from "../bundled/vivid-element.js";
3
3
  import { r as c } from "../bundled/enums.js";
4
4
  import { t as l } from "../bundled/decorate.js";
5
5
  import { t as u } from "../bundled/class-names.js";
@@ -23712,17 +23712,17 @@ var Qp = class extends n(o) {
23712
23712
  e.sources && this.#o && this.#r ? (this.#s(), this.#a(), this.#c(e), Zp(this._player), this.#l()) : this.#s(!1);
23713
23713
  }
23714
23714
  };
23715
- l([s], Qp.prototype, "poster", void 0), l([s], Qp.prototype, "src", void 0), l([s({ mode: "boolean" })], Qp.prototype, "autoplay", void 0), l([s({ mode: "boolean" })], Qp.prototype, "loop", void 0), l([s({
23715
+ l([i], Qp.prototype, "poster", void 0), l([i], Qp.prototype, "src", void 0), l([i({ mode: "boolean" })], Qp.prototype, "autoplay", void 0), l([i({ mode: "boolean" })], Qp.prototype, "loop", void 0), l([i({
23716
23716
  attribute: "playback-rates",
23717
23717
  mode: "fromView"
23718
- })], Qp.prototype, "playbackRates", void 0), l([s({
23718
+ })], Qp.prototype, "playbackRates", void 0), l([i({
23719
23719
  attribute: "skip-by",
23720
23720
  mode: "fromView"
23721
23721
  })], Qp.prototype, "skipBy", void 0);
23722
23722
  //#endregion
23723
23723
  //#region src/lib/video-player/vivid-video-svg.ts
23724
23724
  function $p() {
23725
- return i`
23725
+ return a`
23726
23726
  <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
23727
23727
  <defs>
23728
23728
  <symbol viewBox="0 0 24 24" id="vjs-icon-play">
@@ -24033,7 +24033,7 @@ function $p() {
24033
24033
  }
24034
24034
  //#endregion
24035
24035
  //#region src/lib/video-player/index.ts
24036
- r(a("video-player", Qp, i`
24036
+ r(s("video-player", Qp, a`
24037
24037
  <div
24038
24038
  class="${(e) => u("control")} video-js vjs-16-9 vjs-working-hover vjs-theme-vivid"
24039
24039
  >
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_definition = require("../unbundled/definition.cjs");
2
+ const require_definition = require("../unbundled/definition6.cjs");
3
3
  exports.VwcVisuallyHiddenElement = require_definition.VisuallyHidden;
4
4
  exports.registerVisuallyHidden = require_definition.registerVisuallyHidden;
5
5
  exports.visuallyHiddenDefinition = require_definition.visuallyHiddenDefinition;
@@ -1,2 +1,2 @@
1
- import { n as visuallyHiddenDefinition, r as VisuallyHidden, t as registerVisuallyHidden } from "../unbundled/definition.js";
1
+ import { n as visuallyHiddenDefinition, r as VisuallyHidden, t as registerVisuallyHidden } from "../unbundled/definition6.js";
2
2
  export { VisuallyHidden as VwcVisuallyHiddenElement, registerVisuallyHidden, visuallyHiddenDefinition };