@das-fed/ui 7.0.7-hot.2 → 7.0.7-hot.20

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 (458) hide show
  1. package/esm-map.json +2 -2
  2. package/package.json +6 -5
  3. package/packages/business-components/ai-panel/index-8yffh0Id.js.gz +0 -0
  4. package/packages/business-components/ai-panel/index-IzGl26KU.js.gz +0 -0
  5. package/packages/business-components/ai-panel/index-OwRrV6K8.js.gz +0 -0
  6. package/packages/business-components/ai-panel/style.css.gz +0 -0
  7. package/packages/business-components/app-container/index.js.gz +0 -0
  8. package/packages/business-components/app-container/style.css +1 -1
  9. package/packages/business-components/app-container/style.css.gz +0 -0
  10. package/packages/business-components/area-phone-select/index.d.ts +23 -23
  11. package/packages/business-components/area-phone-select/index.js.gz +0 -0
  12. package/packages/business-components/area-phone-select/src/Index.vue.d.ts +2 -2
  13. package/packages/business-components/area-phone-select/src/area-popover/index.vue.d.ts +2 -2
  14. package/packages/business-components/area-phone-select/style.css.gz +0 -0
  15. package/packages/business-components/change-enterprises/index.js.gz +0 -0
  16. package/packages/business-components/change-enterprises/style.css.gz +0 -0
  17. package/packages/business-components/change-pwd/index.js.gz +0 -0
  18. package/packages/business-components/currency-page/index.js.gz +0 -0
  19. package/packages/business-components/device-panel/index.js.gz +0 -0
  20. package/packages/business-components/device-panel/style.css.gz +0 -0
  21. package/packages/business-components/echarts/index.js.gz +0 -0
  22. package/packages/business-components/export-button/index.js.gz +0 -0
  23. package/packages/business-components/import-button/index.js +76 -74
  24. package/packages/business-components/import-button/index.js.gz +0 -0
  25. package/packages/business-components/import-button/src/type.d.ts +4 -0
  26. package/packages/business-components/import-button/style.css +1 -1
  27. package/packages/business-components/layout-breadcrumb/index.js.gz +0 -0
  28. package/packages/business-components/model-table-dialog/index.js.gz +0 -0
  29. package/packages/business-components/model-table-dialog/style.css.gz +0 -0
  30. package/packages/business-components/payment/api.d.ts +8 -0
  31. package/packages/business-components/payment/index.d.ts +9 -11
  32. package/packages/business-components/payment/index.js +153 -147
  33. package/packages/business-components/payment/index.js.gz +0 -0
  34. package/packages/business-components/payment/style.css +1 -1
  35. package/packages/business-components/payment/type.d.ts +2 -0
  36. package/packages/business-components/process-configuration/index.js +3 -3
  37. package/packages/business-components/process-configuration/index.js.gz +0 -0
  38. package/packages/business-components/process-configuration/style.css +1 -1
  39. package/packages/business-components/process-configuration/style.css.gz +0 -0
  40. package/packages/business-components/process-form/index.js +1124 -1117
  41. package/packages/business-components/process-form/index.js.gz +0 -0
  42. package/packages/business-components/process-form/src/hooks/useSpaceTree.d.ts +3 -3
  43. package/packages/business-components/process-form/style.css +1 -1
  44. package/packages/business-components/process-log/index.js.gz +0 -0
  45. package/packages/business-components/process-log/style.css.gz +0 -0
  46. package/packages/business-components/process-search-form/index.js +54 -54
  47. package/packages/business-components/process-search-form/index.js.gz +0 -0
  48. package/packages/business-components/process-table/index.js.gz +0 -0
  49. package/packages/business-components/upload-file/index.js.gz +0 -0
  50. package/packages/business-components/urgent-panel/index.js.gz +0 -0
  51. package/packages/business-components/urgent-panel/style.css.gz +0 -0
  52. package/packages/business-components/user-org-dialog/index.js.gz +0 -0
  53. package/packages/business-components/user-org-dialog/style.css.gz +0 -0
  54. package/packages/business-components/video-dialog/index.d.ts +10 -0
  55. package/packages/business-components/video-dialog/index.js +375 -356
  56. package/packages/business-components/video-dialog/index.js.gz +0 -0
  57. package/packages/business-components/video-dialog/src/api.d.ts +1 -0
  58. package/packages/business-components/video-dialog/src/component/Player/index.vue.d.ts +2 -0
  59. package/packages/business-components/video-dialog/src/hooks/use-video/PlayerProvider.d.ts +6 -0
  60. package/packages/business-components/video-dialog/src/index.vue.d.ts +2 -0
  61. package/packages/business-components/video-dialog/src/type.d.ts +7 -1
  62. package/packages/business-components/video-dialog/style.css +1 -1
  63. package/packages/business-components/video-dialog/style.css.gz +0 -0
  64. package/packages/components/alert/index.js.gz +0 -0
  65. package/packages/components/alert/style.css.gz +0 -0
  66. package/packages/components/audio-video/index.js.gz +0 -0
  67. package/packages/components/autocomplete/index.d.ts +15 -15
  68. package/packages/components/autocomplete/index.js.gz +0 -0
  69. package/packages/components/autocomplete/src/index.vue.d.ts +2 -2
  70. package/packages/components/autocomplete/style.css.gz +0 -0
  71. package/packages/components/breadcrumb/index.js.gz +0 -0
  72. package/packages/components/breadcrumb/style.css.gz +0 -0
  73. package/packages/components/button/index.js.gz +0 -0
  74. package/packages/components/button/style.css.gz +0 -0
  75. package/packages/components/calendar/index.js.gz +0 -0
  76. package/packages/components/calendar/style.css.gz +0 -0
  77. package/packages/components/cascader/index.js.gz +0 -0
  78. package/packages/components/cascader/style.css.gz +0 -0
  79. package/packages/components/checkbox/index.d.ts +15 -15
  80. package/packages/components/checkbox/index.js.gz +0 -0
  81. package/packages/components/checkbox/src/Index.vue.d.ts +2 -2
  82. package/packages/components/checkbox/style.css.gz +0 -0
  83. package/packages/components/collapse-panel/index.js.gz +0 -0
  84. package/packages/components/collapse-panel/style.css.gz +0 -0
  85. package/packages/components/collapse-transition/index.js.gz +0 -0
  86. package/packages/components/collaspe/index.js.gz +0 -0
  87. package/packages/components/color-picker/index.d.ts +8 -8
  88. package/packages/components/color-picker/index.js.gz +0 -0
  89. package/packages/components/color-picker/src/Index.vue.d.ts +2 -2
  90. package/packages/components/color-picker/style.css.gz +0 -0
  91. package/packages/components/custom-search-item/index.d.ts +15 -15
  92. package/packages/components/custom-search-item/index.js.gz +0 -0
  93. package/packages/components/custom-search-item/src/Index.vue.d.ts +2 -2
  94. package/packages/components/date-picker/index.js.gz +0 -0
  95. package/packages/components/date-picker/style.css.gz +0 -0
  96. package/packages/components/dialog/index.js.gz +0 -0
  97. package/packages/components/dialog/style.css.gz +0 -0
  98. package/packages/components/dimple-layout/index.js.gz +0 -0
  99. package/packages/components/dimple-layout/style.css.gz +0 -0
  100. package/packages/components/drawer/index.js.gz +0 -0
  101. package/packages/components/dropdown/index.js.gz +0 -0
  102. package/packages/components/dropdown/style.css.gz +0 -0
  103. package/packages/components/edit-table/index.js.gz +0 -0
  104. package/packages/components/edit-table/style.css.gz +0 -0
  105. package/packages/components/empty/index.js.gz +0 -0
  106. package/packages/components/error-overlay-model/index.js.gz +0 -0
  107. package/packages/components/form/index.js.gz +0 -0
  108. package/packages/components/form-item/index.js.gz +0 -0
  109. package/packages/components/form-item/style.css.gz +0 -0
  110. package/packages/components/hls-player/index.js +488 -484
  111. package/packages/components/hls-player/index.js.gz +0 -0
  112. package/packages/components/hls-player/src/type.d.ts +3 -0
  113. package/packages/components/hls-player/style.css +1 -1
  114. package/packages/components/hls-player/style.css.gz +0 -0
  115. package/packages/components/icon/index.js.gz +0 -0
  116. package/packages/components/image-preview/index.js.gz +0 -0
  117. package/packages/components/image-upload/index.js.gz +0 -0
  118. package/packages/components/image-upload/style.css.gz +0 -0
  119. package/packages/components/image-viewer/index.js.gz +0 -0
  120. package/packages/components/image-viewer/style.css.gz +0 -0
  121. package/packages/components/input/index.d.ts +5 -5
  122. package/packages/components/input/index.js.gz +0 -0
  123. package/packages/components/input/src/index.vue.d.ts +2 -2
  124. package/packages/components/input/style.css.gz +0 -0
  125. package/packages/components/input-dialog-select/index.d.ts +2 -2
  126. package/packages/components/input-dialog-select/index.js.gz +0 -0
  127. package/packages/components/input-dialog-select/src/Index.vue.d.ts +2 -2
  128. package/packages/components/input-dialog-select/style.css.gz +0 -0
  129. package/packages/components/input-number/index.d.ts +8 -8
  130. package/packages/components/input-number/index.js.gz +0 -0
  131. package/packages/components/input-number/src/App.vue.d.ts +2 -2
  132. package/packages/components/input-number/style.css.gz +0 -0
  133. package/packages/components/live-player/index.d.ts +2 -0
  134. package/packages/components/live-player/index.js +822 -814
  135. package/packages/components/live-player/index.js.gz +0 -0
  136. package/packages/components/live-player/src/type.d.ts +3 -0
  137. package/packages/components/live-player/style.css +1 -1
  138. package/packages/components/loading/index.js.gz +0 -0
  139. package/packages/components/loading/style.css.gz +0 -0
  140. package/packages/components/map/index.js.gz +0 -0
  141. package/packages/components/menu-aside/index.js.gz +0 -0
  142. package/packages/components/menu-aside/style.css.gz +0 -0
  143. package/packages/components/menu-header/index.js.gz +0 -0
  144. package/packages/components/menu-header/style.css.gz +0 -0
  145. package/packages/components/message/index.js.gz +0 -0
  146. package/packages/components/message/style.css.gz +0 -0
  147. package/packages/components/notification/index.js.gz +0 -0
  148. package/packages/components/notification/style.css.gz +0 -0
  149. package/packages/components/overlay/index.js.gz +0 -0
  150. package/packages/components/pagination/index.js.gz +0 -0
  151. package/packages/components/pagination/style.css.gz +0 -0
  152. package/packages/components/popover/index.js.gz +0 -0
  153. package/packages/components/popover/style.css.gz +0 -0
  154. package/packages/components/popup-mask/index.js.gz +0 -0
  155. package/packages/components/preview/index.js.gz +0 -0
  156. package/packages/components/progress/index.js.gz +0 -0
  157. package/packages/components/progress/style.css.gz +0 -0
  158. package/packages/components/radio/index.d.ts +15 -15
  159. package/packages/components/radio/index.js.gz +0 -0
  160. package/packages/components/radio/src/Index.vue.d.ts +2 -2
  161. package/packages/components/radio/style.css.gz +0 -0
  162. package/packages/components/radio-tabs/index.js.gz +0 -0
  163. package/packages/components/radio-tabs/style.css.gz +0 -0
  164. package/packages/components/rich-editor/index.d.ts +8 -8
  165. package/packages/components/rich-editor/index.js +15506 -14971
  166. package/packages/components/rich-editor/index.js.gz +0 -0
  167. package/packages/components/rich-editor/src/Index.vue.d.ts +2 -2
  168. package/packages/components/rich-editor/style.css.gz +0 -0
  169. package/packages/components/scrollbar/index.js.gz +0 -0
  170. package/packages/components/scrollbar/style.css.gz +0 -0
  171. package/packages/components/search/index.d.ts +2 -2
  172. package/packages/components/search/index.js.gz +0 -0
  173. package/packages/components/search/src/Index.vue.d.ts +2 -2
  174. package/packages/components/search/style.css.gz +0 -0
  175. package/packages/components/search-form/index.js +175 -174
  176. package/packages/components/search-form/index.js.gz +0 -0
  177. package/packages/components/search-form/style.css +1 -1
  178. package/packages/components/search-form/style.css.gz +0 -0
  179. package/packages/components/select/index.js.gz +0 -0
  180. package/packages/components/select/style.css.gz +0 -0
  181. package/packages/components/select-input/index.js.gz +0 -0
  182. package/packages/components/select-input/style.css.gz +0 -0
  183. package/packages/components/select-list/index.js.gz +0 -0
  184. package/packages/components/select-list/style.css.gz +0 -0
  185. package/packages/components/special-range-picker-month/index.d.ts +2 -2
  186. package/packages/components/special-range-picker-month/index.js.gz +0 -0
  187. package/packages/components/special-range-picker-month/src/Index.vue.d.ts +2 -2
  188. package/packages/components/special-range-picker-month/style.css.gz +0 -0
  189. package/packages/components/special-range-picker-year/index.d.ts +2 -2
  190. package/packages/components/special-range-picker-year/index.js.gz +0 -0
  191. package/packages/components/special-range-picker-year/src/Index.vue.d.ts +2 -2
  192. package/packages/components/special-range-picker-year/style.css.gz +0 -0
  193. package/packages/components/spin/index.js.gz +0 -0
  194. package/packages/components/spin/style.css.gz +0 -0
  195. package/packages/components/split-panel/index.js.gz +0 -0
  196. package/packages/components/split-panel/style.css.gz +0 -0
  197. package/packages/components/step/index.js.gz +0 -0
  198. package/packages/components/steps/style.css.gz +0 -0
  199. package/packages/components/switch/index.js.gz +0 -0
  200. package/packages/components/switch/style.css.gz +0 -0
  201. package/packages/components/table/index.js.gz +0 -0
  202. package/packages/components/table/style.css.gz +0 -0
  203. package/packages/components/tabs/index.js.gz +0 -0
  204. package/packages/components/tabs/style.css.gz +0 -0
  205. package/packages/components/tag/index.js.gz +0 -0
  206. package/packages/components/tag/style.css.gz +0 -0
  207. package/packages/components/text-tooltip/index.js.gz +0 -0
  208. package/packages/components/text-tooltip/style.css.gz +0 -0
  209. package/packages/components/time-line/index.js.gz +0 -0
  210. package/packages/components/time-line/style.css.gz +0 -0
  211. package/packages/components/tooltip/index.js.gz +0 -0
  212. package/packages/components/tooltip/style.css.gz +0 -0
  213. package/packages/components/tree/index.js.gz +0 -0
  214. package/packages/components/tree/style.css.gz +0 -0
  215. package/packages/components/tree-select/index.js.gz +0 -0
  216. package/packages/components/tree-select/src/App.vue.d.ts +2 -2
  217. package/packages/components/tree-select/style.css.gz +0 -0
  218. package/packages/components/tree-table/index.js.gz +0 -0
  219. package/packages/components/tree-table/style.css.gz +0 -0
  220. package/packages/components/tree-v2/index.js.gz +0 -0
  221. package/packages/components/tree-v2/style.css.gz +0 -0
  222. package/packages/components/upload/index.js.gz +0 -0
  223. package/packages/components/upload/style.css.gz +0 -0
  224. package/packages/components/virtual-tree/index.js.gz +0 -0
  225. package/packages/components/virtual-tree/style.css.gz +0 -0
  226. package/packages/global/theme/index.js.gz +0 -0
  227. package/packages/icons/1-grids/index.js.gz +0 -0
  228. package/packages/icons/4-grids/index.js.gz +0 -0
  229. package/packages/icons/9-grids/index.js.gz +0 -0
  230. package/packages/icons/add/index.js.gz +0 -0
  231. package/packages/icons/add-item/index.js.gz +0 -0
  232. package/packages/icons/addto/index.js.gz +0 -0
  233. package/packages/icons/alarm/index.js.gz +0 -0
  234. package/packages/icons/arrow-first/index.js.gz +0 -0
  235. package/packages/icons/arrow-last/index.js.gz +0 -0
  236. package/packages/icons/audioing/index.js.gz +0 -0
  237. package/packages/icons/back/index.js.gz +0 -0
  238. package/packages/icons/bianjigongzuotai/index.js.gz +0 -0
  239. package/packages/icons/biaochi/index.js.gz +0 -0
  240. package/packages/icons/bim/index.js.gz +0 -0
  241. package/packages/icons/bobaoguanbi/index.js.gz +0 -0
  242. package/packages/icons/bobaokaiqi/index.js.gz +0 -0
  243. package/packages/icons/bold/index.js.gz +0 -0
  244. package/packages/icons/camera/index.js.gz +0 -0
  245. package/packages/icons/camera-2/index.js.gz +0 -0
  246. package/packages/icons/camera-3/index.js.gz +0 -0
  247. package/packages/icons/cancel-full-screen/index.js.gz +0 -0
  248. package/packages/icons/cankaoneirong/index.js.gz +0 -0
  249. package/packages/icons/card/index.js.gz +0 -0
  250. package/packages/icons/card-view/index.js.gz +0 -0
  251. package/packages/icons/caret-bottom/index.js.gz +0 -0
  252. package/packages/icons/caret-right/index.js.gz +0 -0
  253. package/packages/icons/chakancelve/index.js.gz +0 -0
  254. package/packages/icons/change/index.js.gz +0 -0
  255. package/packages/icons/change-2/index.js.gz +0 -0
  256. package/packages/icons/change-3/index.js.gz +0 -0
  257. package/packages/icons/changetenant/index.js.gz +0 -0
  258. package/packages/icons/chart/index.js.gz +0 -0
  259. package/packages/icons/chaxunxiangqing/index.js.gz +0 -0
  260. package/packages/icons/check/index.js.gz +0 -0
  261. package/packages/icons/chuanglianjiang/index.js.gz +0 -0
  262. package/packages/icons/chuangliansheng/index.js.gz +0 -0
  263. package/packages/icons/chuanglianting/index.js.gz +0 -0
  264. package/packages/icons/chuizhiduiqi/index.js.gz +0 -0
  265. package/packages/icons/chuizhijunfen/index.js.gz +0 -0
  266. package/packages/icons/close/index.js.gz +0 -0
  267. package/packages/icons/close-2/index.js.gz +0 -0
  268. package/packages/icons/closeaudio/index.js.gz +0 -0
  269. package/packages/icons/color/index.js.gz +0 -0
  270. package/packages/icons/copy/index.js.gz +0 -0
  271. package/packages/icons/custom/index.js.gz +0 -0
  272. package/packages/icons/daochu/index.js.gz +0 -0
  273. package/packages/icons/date/index.js.gz +0 -0
  274. package/packages/icons/decline/index.js.gz +0 -0
  275. package/packages/icons/default-btn/index.js.gz +0 -0
  276. package/packages/icons/default-point/index.js.gz +0 -0
  277. package/packages/icons/delete/index.js.gz +0 -0
  278. package/packages/icons/delete-2/index.js.gz +0 -0
  279. package/packages/icons/dengdai/index.js.gz +0 -0
  280. package/packages/icons/dianzan/index.js.gz +0 -0
  281. package/packages/icons/dianzan-2/index.js.gz +0 -0
  282. package/packages/icons/direction-control/index.js.gz +0 -0
  283. package/packages/icons/ditu/index.js.gz +0 -0
  284. package/packages/icons/dizhixuanze/index.js.gz +0 -0
  285. package/packages/icons/double-arrow-left/index.js.gz +0 -0
  286. package/packages/icons/double-arrow-right/index.js.gz +0 -0
  287. package/packages/icons/down/index.js.gz +0 -0
  288. package/packages/icons/download/index.js.gz +0 -0
  289. package/packages/icons/drag/index.js.gz +0 -0
  290. package/packages/icons/drawing/index.js.gz +0 -0
  291. package/packages/icons/edit/index.js.gz +0 -0
  292. package/packages/icons/edit-1/index.js.gz +0 -0
  293. package/packages/icons/edit-3/index.js.gz +0 -0
  294. package/packages/icons/empty/index.js.gz +0 -0
  295. package/packages/icons/enlarge/index.js.gz +0 -0
  296. package/packages/icons/entry/index.js.gz +0 -0
  297. package/packages/icons/exit/index.js.gz +0 -0
  298. package/packages/icons/fabu/index.js.gz +0 -0
  299. package/packages/icons/fanhui/index.js.gz +0 -0
  300. package/packages/icons/fasong/index.js.gz +0 -0
  301. package/packages/icons/filter-3/index.js.gz +0 -0
  302. package/packages/icons/finish/index.js.gz +0 -0
  303. package/packages/icons/fold/index.js.gz +0 -0
  304. package/packages/icons/folder-quest/index.js.gz +0 -0
  305. package/packages/icons/form-tips/index.js.gz +0 -0
  306. package/packages/icons/fresh/index.js.gz +0 -0
  307. package/packages/icons/full/index.js.gz +0 -0
  308. package/packages/icons/full-screen/index.js.gz +0 -0
  309. package/packages/icons/fullscreen-2/index.js.gz +0 -0
  310. package/packages/icons/fuzhi/index.js.gz +0 -0
  311. package/packages/icons/fuzhineirong/index.js.gz +0 -0
  312. package/packages/icons/gaojin/index.js.gz +0 -0
  313. package/packages/icons/global/index.js.gz +0 -0
  314. package/packages/icons/gongzuotaiguanli/index.js.gz +0 -0
  315. package/packages/icons/header-seach/index.js.gz +0 -0
  316. package/packages/icons/header-setting/index.js.gz +0 -0
  317. package/packages/icons/headersettings/index.js.gz +0 -0
  318. package/packages/icons/hide/index.js.gz +0 -0
  319. package/packages/icons/huabufuwei/index.js.gz +0 -0
  320. package/packages/icons/huaxian/index.js.gz +0 -0
  321. package/packages/icons/huida/index.js.gz +0 -0
  322. package/packages/icons/huidaodibu/index.js.gz +0 -0
  323. package/packages/icons/huifuchuchangshezhi/index.js.gz +0 -0
  324. package/packages/icons/hyperlinks/index.js.gz +0 -0
  325. package/packages/icons/img/index.js.gz +0 -0
  326. package/packages/icons/input-close/index.js.gz +0 -0
  327. package/packages/icons/input-select/index.js.gz +0 -0
  328. package/packages/icons/intnet/index.js.gz +0 -0
  329. package/packages/icons/italic/index.js.gz +0 -0
  330. package/packages/icons/jia-1/index.js.gz +0 -0
  331. package/packages/icons/jinggao/index.js.gz +0 -0
  332. package/packages/icons/jushangduiqi/index.js.gz +0 -0
  333. package/packages/icons/juxiaduiqi/index.js.gz +0 -0
  334. package/packages/icons/juxinghuizhi/index.js.gz +0 -0
  335. package/packages/icons/juyouduiqi/index.js.gz +0 -0
  336. package/packages/icons/juzuoduiqi/index.js.gz +0 -0
  337. package/packages/icons/kaiguan/index.js.gz +0 -0
  338. package/packages/icons/kaimen/index.js.gz +0 -0
  339. package/packages/icons/know/index.js.gz +0 -0
  340. package/packages/icons/knowed/index.js.gz +0 -0
  341. package/packages/icons/knowopen/index.js.gz +0 -0
  342. package/packages/icons/layout-refresh/index.js.gz +0 -0
  343. package/packages/icons/lianjie/index.js.gz +0 -0
  344. package/packages/icons/link/index.js.gz +0 -0
  345. package/packages/icons/lishihuihua/index.js.gz +0 -0
  346. package/packages/icons/list/index.js.gz +0 -0
  347. package/packages/icons/list-view/index.js.gz +0 -0
  348. package/packages/icons/load/index.js.gz +0 -0
  349. package/packages/icons/lock/index.js.gz +0 -0
  350. package/packages/icons/me/index.js.gz +0 -0
  351. package/packages/icons/more/index.js.gz +0 -0
  352. package/packages/icons/more-btn/index.js.gz +0 -0
  353. package/packages/icons/muted/index.js.gz +0 -0
  354. package/packages/icons/notification-face/index.js.gz +0 -0
  355. package/packages/icons/paiban/index.js.gz +0 -0
  356. package/packages/icons/password-lock/index.js.gz +0 -0
  357. package/packages/icons/password-lock2/index.js.gz +0 -0
  358. package/packages/icons/pause/index.js.gz +0 -0
  359. package/packages/icons/phone/index.js.gz +0 -0
  360. package/packages/icons/pinglun/index.js.gz +0 -0
  361. package/packages/icons/plan/index.js.gz +0 -0
  362. package/packages/icons/play/index.js.gz +0 -0
  363. package/packages/icons/preview/index.js.gz +0 -0
  364. package/packages/icons/preview-eye/index.js.gz +0 -0
  365. package/packages/icons/project-list/index.js.gz +0 -0
  366. package/packages/icons/project-tree/index.js.gz +0 -0
  367. package/packages/icons/promptinformation-l/index.js.gz +0 -0
  368. package/packages/icons/qiehuangongzuotai/index.js.gz +0 -0
  369. package/packages/icons/qingkong/index.js.gz +0 -0
  370. package/packages/icons/quanping/index.js.gz +0 -0
  371. package/packages/icons/rate-all/index.js.gz +0 -0
  372. package/packages/icons/rate-half/index.js.gz +0 -0
  373. package/packages/icons/rate-none/index.js.gz +0 -0
  374. package/packages/icons/recover/index.js.gz +0 -0
  375. package/packages/icons/refresh/index.js.gz +0 -0
  376. package/packages/icons/reload/index.js.gz +0 -0
  377. package/packages/icons/reset/index.js.gz +0 -0
  378. package/packages/icons/right-3/index.js.gz +0 -0
  379. package/packages/icons/riqixuanze/index.js.gz +0 -0
  380. package/packages/icons/rise/index.js.gz +0 -0
  381. package/packages/icons/save/index.js.gz +0 -0
  382. package/packages/icons/screenshot/index.js.gz +0 -0
  383. package/packages/icons/search/index.js.gz +0 -0
  384. package/packages/icons/select-confirm/index.js.gz +0 -0
  385. package/packages/icons/set-up/index.js.gz +0 -0
  386. package/packages/icons/setting/index.js.gz +0 -0
  387. package/packages/icons/shangchuan/index.js.gz +0 -0
  388. package/packages/icons/shebei/index.js.gz +0 -0
  389. package/packages/icons/shebeiqunzu/index.js.gz +0 -0
  390. package/packages/icons/shendusikao/index.js.gz +0 -0
  391. package/packages/icons/sheweimoren/index.js.gz +0 -0
  392. package/packages/icons/shisuan/index.js.gz +0 -0
  393. package/packages/icons/shitu-kapian/index.js.gz +0 -0
  394. package/packages/icons/shitu-map/index.js.gz +0 -0
  395. package/packages/icons/shortcut-keys/index.js.gz +0 -0
  396. package/packages/icons/shoudongzhihang/index.js.gz +0 -0
  397. package/packages/icons/shouqiyoucemianban/index.js.gz +0 -0
  398. package/packages/icons/shouqiyoucemianban-1/index.js.gz +0 -0
  399. package/packages/icons/shouqizuocemianban/index.js.gz +0 -0
  400. package/packages/icons/shouqizuocemianban-1/index.js.gz +0 -0
  401. package/packages/icons/shouquan/index.js.gz +0 -0
  402. package/packages/icons/show/index.js.gz +0 -0
  403. package/packages/icons/shrink/index.js.gz +0 -0
  404. package/packages/icons/shuaxin/index.js.gz +0 -0
  405. package/packages/icons/shuipingduiqi/index.js.gz +0 -0
  406. package/packages/icons/shuipingjunfen/index.js.gz +0 -0
  407. package/packages/icons/shuyoufanye/index.js.gz +0 -0
  408. package/packages/icons/shuzuofanye/index.js.gz +0 -0
  409. package/packages/icons/solid-filter/index.js.gz +0 -0
  410. package/packages/icons/start/index.js.gz +0 -0
  411. package/packages/icons/stop/index.js.gz +0 -0
  412. package/packages/icons/structural-diagram/index.js.gz +0 -0
  413. package/packages/icons/system/index.js.gz +0 -0
  414. package/packages/icons/table-header-search/index.js.gz +0 -0
  415. package/packages/icons/text/index.js.gz +0 -0
  416. package/packages/icons/tianjiaxinhuati/index.js.gz +0 -0
  417. package/packages/icons/tick/index.js.gz +0 -0
  418. package/packages/icons/tishixinxi/index.js.gz +0 -0
  419. package/packages/icons/tongguo/index.js.gz +0 -0
  420. package/packages/icons/tongzhi/index.js.gz +0 -0
  421. package/packages/icons/tubiaoku/index.js.gz +0 -0
  422. package/packages/icons/tucao/index.js.gz +0 -0
  423. package/packages/icons/tucao-2/index.js.gz +0 -0
  424. package/packages/icons/tuichuquanping/index.js.gz +0 -0
  425. package/packages/icons/tuozhuai/index.js.gz +0 -0
  426. package/packages/icons/underline/index.js.gz +0 -0
  427. package/packages/icons/unflod/index.js.gz +0 -0
  428. package/packages/icons/unlock/index.js.gz +0 -0
  429. package/packages/icons/up/index.js.gz +0 -0
  430. package/packages/icons/up-2/index.js.gz +0 -0
  431. package/packages/icons/vauth/index.js.gz +0 -0
  432. package/packages/icons/view/index.js.gz +0 -0
  433. package/packages/icons/view-2/index.js.gz +0 -0
  434. package/packages/icons/volume/index.js.gz +0 -0
  435. package/packages/icons/wangge/index.js.gz +0 -0
  436. package/packages/icons/wangge-1/index.js.gz +0 -0
  437. package/packages/icons/warning/index.js.gz +0 -0
  438. package/packages/icons/warning-face/index.js.gz +0 -0
  439. package/packages/icons/wendujiang/index.js.gz +0 -0
  440. package/packages/icons/wendusheng/index.js.gz +0 -0
  441. package/packages/icons/withdraw/index.js.gz +0 -0
  442. package/packages/icons/xiazai/index.js.gz +0 -0
  443. package/packages/icons/xinzengtongji/index.js.gz +0 -0
  444. package/packages/icons/xuanzhuanjiaodu/index.js.gz +0 -0
  445. package/packages/icons/yidongduan/index.js.gz +0 -0
  446. package/packages/icons/yincang/index.js.gz +0 -0
  447. package/packages/icons/yingpian/index.js.gz +0 -0
  448. package/packages/icons/yingyong/index.js.gz +0 -0
  449. package/packages/icons/yitushoutu/index.js.gz +0 -0
  450. package/packages/icons/yuanxinghuizhi/index.js.gz +0 -0
  451. package/packages/icons/yulan-2/index.js.gz +0 -0
  452. package/packages/icons/yuyin/index.js.gz +0 -0
  453. package/packages/icons/zhangaiwu/index.js.gz +0 -0
  454. package/packages/icons/zhizhen/index.js.gz +0 -0
  455. package/packages/icons/zhongxinshengcheng/index.js.gz +0 -0
  456. package/packages/icons/zhuomianduan/index.js.gz +0 -0
  457. package/packages/icons/zidingyihuizhi/index.js.gz +0 -0
  458. package/packages/icons/zuobiao/index.js.gz +0 -0
@@ -1,15 +1,15 @@
1
1
  import '@das-fed/ui/packages/components/hls-player/style.css';
2
- import { defineComponent as Ta, useCssVars as ya, toRefs as va, computed as Sa, ref as Se, onMounted as Aa, onBeforeUnmount as xa, createElementBlock as St, openBlock as At, Fragment as La, createCommentVNode as nt, withDirectives as Ia, unref as at, createElementVNode as ki, normalizeClass as Ra } from "vue";
2
+ import { defineComponent as Ta, useCssVars as ya, toRefs as va, ref as Ee, computed as Sa, onMounted as Aa, onBeforeUnmount as xa, createElementBlock as St, openBlock as At, Fragment as La, createCommentVNode as nt, withDirectives as Ia, unref as at, createElementVNode as ki, normalizeClass as Ra } from "vue";
3
3
  import { withInstall as ba } from "@das-fed/utils/with-install/index";
4
4
  import { t as _i, setI18nRule as Da } from "@das-fed/web/packages/i18n/index";
5
5
  import { vDasLoading as Ca } from "@das-fed/ui/packages/components/loading/index";
6
6
  import { useModelValue as Pa } from "@das-fed/utils/vue";
7
- const U = Number.isFinite || function(a) {
7
+ const B = Number.isFinite || function(a) {
8
8
  return typeof a == "number" && isFinite(a);
9
9
  }, ka = Number.isSafeInteger || function(a) {
10
10
  return typeof a == "number" && Math.abs(a) <= _a;
11
11
  }, _a = Number.MAX_SAFE_INTEGER || 9007199254740991;
12
- let $ = /* @__PURE__ */ function(a) {
12
+ let V = /* @__PURE__ */ function(a) {
13
13
  return a.NETWORK_ERROR = "networkError", a.MEDIA_ERROR = "mediaError", a.KEY_SYSTEM_ERROR = "keySystemError", a.MUX_ERROR = "muxError", a.OTHER_ERROR = "otherError", a;
14
14
  }({}), b = /* @__PURE__ */ function(a) {
15
15
  return a.KEY_SYSTEM_NO_KEYS = "keySystemNoKeys", a.KEY_SYSTEM_NO_ACCESS = "keySystemNoAccess", a.KEY_SYSTEM_NO_SESSION = "keySystemNoSession", a.KEY_SYSTEM_NO_CONFIGURED_LICENSE = "keySystemNoConfiguredLicense", a.KEY_SYSTEM_LICENSE_REQUEST_FAILED = "keySystemLicenseRequestFailed", a.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED = "keySystemServerCertificateRequestFailed", a.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED = "keySystemServerCertificateUpdateFailed", a.KEY_SYSTEM_SESSION_UPDATE_FAILED = "keySystemSessionUpdateFailed", a.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED = "keySystemStatusOutputRestricted", a.KEY_SYSTEM_STATUS_INTERNAL_ERROR = "keySystemStatusInternalError", a.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR = "keySystemDestroyMediaKeysError", a.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR = "keySystemDestroyCloseSessionError", a.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR = "keySystemDestroyRemoveSessionError", a.MANIFEST_LOAD_ERROR = "manifestLoadError", a.MANIFEST_LOAD_TIMEOUT = "manifestLoadTimeOut", a.MANIFEST_PARSING_ERROR = "manifestParsingError", a.MANIFEST_INCOMPATIBLE_CODECS_ERROR = "manifestIncompatibleCodecsError", a.LEVEL_EMPTY_ERROR = "levelEmptyError", a.LEVEL_LOAD_ERROR = "levelLoadError", a.LEVEL_LOAD_TIMEOUT = "levelLoadTimeOut", a.LEVEL_PARSING_ERROR = "levelParsingError", a.LEVEL_SWITCH_ERROR = "levelSwitchError", a.AUDIO_TRACK_LOAD_ERROR = "audioTrackLoadError", a.AUDIO_TRACK_LOAD_TIMEOUT = "audioTrackLoadTimeOut", a.SUBTITLE_LOAD_ERROR = "subtitleTrackLoadError", a.SUBTITLE_TRACK_LOAD_TIMEOUT = "subtitleTrackLoadTimeOut", a.FRAG_LOAD_ERROR = "fragLoadError", a.FRAG_LOAD_TIMEOUT = "fragLoadTimeOut", a.FRAG_DECRYPT_ERROR = "fragDecryptError", a.FRAG_PARSING_ERROR = "fragParsingError", a.FRAG_GAP = "fragGap", a.REMUX_ALLOC_ERROR = "remuxAllocError", a.KEY_LOAD_ERROR = "keyLoadError", a.KEY_LOAD_TIMEOUT = "keyLoadTimeOut", a.BUFFER_ADD_CODEC_ERROR = "bufferAddCodecError", a.BUFFER_INCOMPATIBLE_CODECS_ERROR = "bufferIncompatibleCodecsError", a.BUFFER_APPEND_ERROR = "bufferAppendError", a.BUFFER_APPENDING_ERROR = "bufferAppendingError", a.BUFFER_STALLED_ERROR = "bufferStalledError", a.BUFFER_FULL_ERROR = "bufferFullError", a.BUFFER_SEEK_OVER_HOLE = "bufferSeekOverHole", a.BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall", a.ASSET_LIST_LOAD_ERROR = "assetListLoadError", a.ASSET_LIST_LOAD_TIMEOUT = "assetListLoadTimeout", a.ASSET_LIST_PARSING_ERROR = "assetListParsingError", a.INTERSTITIAL_ASSET_ITEM_ERROR = "interstitialAssetItemError", a.INTERNAL_EXCEPTION = "internalException", a.INTERNAL_ABORTED = "aborted", a.ATTACH_MEDIA_ERROR = "attachMediaError", a.UNKNOWN = "unknown", a;
@@ -430,7 +430,7 @@ class ys extends Xr {
430
430
  }
431
431
  if (this.byteRange) {
432
432
  const e = this.byteRange[0], t = this.byteRange[1];
433
- if (U(e) && U(t))
433
+ if (B(e) && B(t))
434
434
  return t - e;
435
435
  }
436
436
  return null;
@@ -465,7 +465,7 @@ class ys extends Xr {
465
465
  get endProgramDateTime() {
466
466
  if (this.programDateTime === null)
467
467
  return null;
468
- const e = U(this.duration) ? this.duration : 0;
468
+ const e = B(this.duration) ? this.duration : 0;
469
469
  return this.programDateTime + e * 1e3;
470
470
  }
471
471
  get encrypted() {
@@ -483,7 +483,7 @@ class ys extends Xr {
483
483
  return this._programDateTime === null && this.rawProgramDateTime && (this.programDateTime = Date.parse(this.rawProgramDateTime)), this._programDateTime;
484
484
  }
485
485
  set programDateTime(e) {
486
- if (!U(e)) {
486
+ if (!B(e)) {
487
487
  this._programDateTime = this.rawProgramDateTime = null;
488
488
  return;
489
489
  }
@@ -861,7 +861,7 @@ function Za(a, e, t) {
861
861
  if (u) {
862
862
  const y = u[0];
863
863
  let S = W(u, 4);
864
- y === 1 && (S === Mi ? t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time") : (S *= Mi + 1, S += W(u, 8))), U(S) && (!U(h.start) || S < h.start) && (h.start = S);
864
+ y === 1 && (S === Mi ? t.warn("[mp4-demuxer]: Ignoring assumed invalid signed 64-bit track fragment decode time") : (S *= Mi + 1, S += W(u, 8))), B(S) && (!B(h.start) || S < h.start) && (h.start = S);
865
865
  }
866
866
  const d = l.default, f = W(o, 0) | (d == null ? void 0 : d.flags);
867
867
  let g = (d == null ? void 0 : d.duration) || 0;
@@ -871,10 +871,10 @@ function Za(a, e, t) {
871
871
  for (let y = 0; y < E.length; y++) {
872
872
  const S = E[y], L = W(S, 4), C = h.sampleCount;
873
873
  h.sampleCount += L;
874
- const x = S[3] & 1, R = S[3] & 4, D = S[2] & 1, A = S[2] & 2, k = S[2] & 4, _ = S[2] & 8;
875
- let K = 8, O = L;
876
- for (x && (K += 4), R && L && (!(S[K + 1] & 1) && h.keyFrameIndex === void 0 && (h.keyFrameIndex = C), K += 4, D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), _ && (K += 4), p += v, T += v, O--); O--; )
877
- D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), k && (S[K + 1] & 1 || h.keyFrameIndex === void 0 && (h.keyFrameIndex = h.sampleCount - (O + 1), h.keyFrameStart = p), K += 4), _ && (K += 4), p += v, T += v;
874
+ const x = S[3] & 1, R = S[3] & 4, D = S[2] & 1, A = S[2] & 2, k = S[2] & 4, O = S[2] & 8;
875
+ let K = 8, U = L;
876
+ for (x && (K += 4), R && L && (!(S[K + 1] & 1) && h.keyFrameIndex === void 0 && (h.keyFrameIndex = C), K += 4, D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), O && (K += 4), p += v, T += v, U--); U--; )
877
+ D ? (v = W(S, K), K += 4) : v = g, A && (K += 4), k && (S[K + 1] & 1 || h.keyFrameIndex === void 0 && (h.keyFrameIndex = h.sampleCount - (U + 1), h.keyFrameStart = p), K += 4), O && (K += 4), p += v, T += v;
878
878
  !T && g && (T += g * L);
879
879
  }
880
880
  h.duration += T;
@@ -890,7 +890,7 @@ function Za(a, e, t) {
890
890
  n = Math.max(n, h + l.earliestPresentationTime / l.timescale);
891
891
  }
892
892
  }
893
- n && U(n) && Object.keys(s).forEach((c) => {
893
+ n && B(n) && Object.keys(s).forEach((c) => {
894
894
  s[c].duration || (s[c].duration = n * s[c].timescale - s[c].start);
895
895
  });
896
896
  }
@@ -930,21 +930,21 @@ function Ni(a, e) {
930
930
  let x = 8;
931
931
  g === r && (p && (x += 8), T && (x += 4), v && (y = W(f, x), x += 4), S && (L = W(f, x), x += 4), C && (x += 4), e.type === "video" && (n = fs(e.codec)), z(u, ["trun"]).map((R) => {
932
932
  const D = R[0], A = W(R, 0) & 16777215, k = (A & 1) !== 0;
933
- let _ = 0;
934
- const K = (A & 4) !== 0, O = (A & 256) !== 0;
935
- let B = 0;
936
- const M = (A & 512) !== 0;
937
- let V = 0;
938
- const F = (A & 1024) !== 0, Y = (A & 2048) !== 0;
933
+ let O = 0;
934
+ const K = (A & 4) !== 0, U = (A & 256) !== 0;
935
+ let N = 0;
936
+ const _ = (A & 512) !== 0;
937
+ let $ = 0;
938
+ const w = (A & 1024) !== 0, Y = (A & 2048) !== 0;
939
939
  let H = 0;
940
- const N = W(R, 4);
941
- let w = 8;
942
- k && (_ = W(R, w), w += 4), K && (w += 4);
943
- let q = _ + l;
944
- for (let X = 0; X < N; X++) {
945
- if (O ? (B = W(R, w), w += 4) : B = y, M ? (V = W(R, w), w += 4) : V = L, F && (w += 4), Y && (D === 0 ? H = W(R, w) : H = tn(R, w), w += 4), e.type === re.VIDEO) {
940
+ const M = W(R, 4);
941
+ let F = 8;
942
+ k && (O = W(R, F), F += 4), K && (F += 4);
943
+ let q = O + l;
944
+ for (let X = 0; X < M; X++) {
945
+ if (U ? (N = W(R, F), F += 4) : N = y, _ ? ($ = W(R, F), F += 4) : $ = L, w && (F += 4), Y && (D === 0 ? H = W(R, F) : H = tn(R, F), F += 4), e.type === re.VIDEO) {
946
946
  let te = 0;
947
- for (; te < V; ) {
947
+ for (; te < $; ) {
948
948
  const Z = W(s, q);
949
949
  if (q += 4, eo(n, s[q])) {
950
950
  const ae = s.subarray(q, q + Z);
@@ -953,7 +953,7 @@ function Ni(a, e) {
953
953
  q += Z, te += Z + 4;
954
954
  }
955
955
  }
956
- a += B / i;
956
+ a += N / i;
957
957
  }
958
958
  }));
959
959
  });
@@ -1359,7 +1359,7 @@ function co(a, e, t, s, i, r) {
1359
1359
  return !0;
1360
1360
  }
1361
1361
  return n !== void 0 && // Force media capabilities check for HEVC to avoid failure on Windows
1362
- (n.split(",").some((d) => fs(d)) || a.width > 1920 && a.height > 1088 || a.height > 1920 && a.width > 1088 || a.frameRate > Math.max(s, 30) || a.videoRange !== "SDR" && a.videoRange !== t || a.bitrate > Math.max(i, 8e6)) || !!u && U(h) && Object.keys(u).some((d) => parseInt(d) > h);
1362
+ (n.split(",").some((d) => fs(d)) || a.width > 1920 && a.height > 1088 || a.height > 1920 && a.width > 1088 || a.frameRate > Math.max(s, 30) || a.videoRange !== "SDR" && a.videoRange !== t || a.bitrate > Math.max(i, 8e6)) || !!u && B(h) && Object.keys(u).some((d) => parseInt(d) > h);
1363
1363
  }
1364
1364
  function ln(a, e, t, s = {}) {
1365
1365
  const i = a.videoCodec;
@@ -1611,9 +1611,9 @@ function vo(a, e, t, s, i) {
1611
1611
  const D = a[r[R]];
1612
1612
  h || (h = D.channels[2] > 0), d = Math.min(d, D.minHeight), f = Math.min(f, D.minFramerate), g = Math.min(g, D.minBitrate), y.filter((k) => D.videoRanges[k] > 0).length > 0 && (u = !0);
1613
1613
  }
1614
- d = U(d) ? d : 0, f = U(f) ? f : 0;
1614
+ d = B(d) ? d : 0, f = B(f) ? f : 0;
1615
1615
  const S = Math.max(1080, d), L = Math.max(30, f);
1616
- g = U(g) ? g : t, t = Math.max(g, t), u || (e = void 0);
1616
+ g = B(g) ? g : t, t = Math.max(g, t), u || (e = void 0);
1617
1617
  const C = r.length > 1;
1618
1618
  return {
1619
1619
  codecSet: r.reduce((R, D) => {
@@ -1822,33 +1822,33 @@ class Io extends we {
1822
1822
  if (d <= Math.max(y, 1e3 * (u / (S * 2))))
1823
1823
  return;
1824
1824
  const L = v ? v.len / S : 0, C = h.loading.first ? h.loading.first - h.loading.start : -1, x = h.loaded && C > -1, R = this.getBwEstimate(), D = n.levels, A = D[g], k = Math.max(h.loaded, Math.round(u * (i.bitrate || A.averageBitrate) / 8));
1825
- let _ = x ? d - C : d;
1826
- _ < 1 && x && (_ = Math.min(d, h.loaded * 8 / R));
1827
- const K = x ? h.loaded * 1e3 / _ : 0, O = y / 1e3, B = K ? (k - h.loaded) / K : k * 8 / R + O;
1828
- if (B <= L)
1825
+ let O = x ? d - C : d;
1826
+ O < 1 && x && (O = Math.min(d, h.loaded * 8 / R));
1827
+ const K = x ? h.loaded * 1e3 / O : 0, U = y / 1e3, N = K ? (k - h.loaded) / K : k * 8 / R + U;
1828
+ if (N <= L)
1829
1829
  return;
1830
- const M = K ? K * 8 : R, V = ((s = (t == null ? void 0 : t.details) || this.hls.latestLevelDetails) == null ? void 0 : s.live) === !0, F = this.hls.config.abrBandWidthUpFactor;
1830
+ const _ = K ? K * 8 : R, $ = ((s = (t == null ? void 0 : t.details) || this.hls.latestLevelDetails) == null ? void 0 : s.live) === !0, w = this.hls.config.abrBandWidthUpFactor;
1831
1831
  let Y = Number.POSITIVE_INFINITY, H;
1832
1832
  for (H = g - 1; H > f; H--) {
1833
- const X = D[H].maxBitrate, te = !D[H].details || V;
1834
- if (Y = this.getTimeToLoadFrag(O, M, u * X, te), Y < Math.min(L, u + O))
1833
+ const X = D[H].maxBitrate, te = !D[H].details || $;
1834
+ if (Y = this.getTimeToLoadFrag(U, _, u * X, te), Y < Math.min(L, u + U))
1835
1835
  break;
1836
1836
  }
1837
- if (Y >= B || Y > u * 10)
1837
+ if (Y >= N || Y > u * 10)
1838
1838
  return;
1839
1839
  x ? this.bwEstimator.sample(d - Math.min(y, C), h.loaded) : this.bwEstimator.sampleTTFB(d);
1840
- const N = D[H].maxBitrate;
1841
- this.getBwEstimate() * F > N && this.resetEstimator(N);
1842
- const w = this.findBestLevel(N, f, H, 0, L, 1, 1);
1843
- w > -1 && (H = w), this.warn(`Fragment ${i.sn}${r ? " part " + r.index : ""} of level ${g} is loading too slowly;
1840
+ const M = D[H].maxBitrate;
1841
+ this.getBwEstimate() * w > M && this.resetEstimator(M);
1842
+ const F = this.findBestLevel(M, f, H, 0, L, 1, 1);
1843
+ F > -1 && (H = F), this.warn(`Fragment ${i.sn}${r ? " part " + r.index : ""} of level ${g} is loading too slowly;
1844
1844
  Fragment duration: ${i.duration.toFixed(3)}
1845
1845
  Time to underbuffer: ${L.toFixed(3)} s
1846
- Estimated load time for current fragment: ${B.toFixed(3)} s
1846
+ Estimated load time for current fragment: ${N.toFixed(3)} s
1847
1847
  Estimated load time for down switch fragment: ${Y.toFixed(3)} s
1848
1848
  TTFB estimate: ${C | 0} ms
1849
- Current BW estimate: ${U(R) ? R | 0 : "Unknown"} bps
1849
+ Current BW estimate: ${B(R) ? R | 0 : "Unknown"} bps
1850
1850
  New BW estimate: ${this.getBwEstimate() | 0} bps
1851
- Switching to level ${H} @ ${N | 0} bps`), n.nextLoadLevel = n.nextAutoLevel = H, this.clearTimer();
1851
+ Switching to level ${H} @ ${M | 0} bps`), n.nextLoadLevel = n.nextAutoLevel = H, this.clearTimer();
1852
1852
  const q = () => {
1853
1853
  if (this.clearTimer(), this.fragCurrent === i && this.hls.loadLevel === H && H > 0) {
1854
1854
  const X = this.getStarvationDelay();
@@ -1860,7 +1860,7 @@ class Io extends we {
1860
1860
  }
1861
1861
  }
1862
1862
  };
1863
- p || B > Y * 2 ? q() : this.timer = self.setInterval(q, Y * 1e3), n.trigger(m.FRAG_LOAD_EMERGENCY_ABORTED, {
1863
+ p || N > Y * 2 ? q() : this.timer = self.setInterval(q, Y * 1e3), n.trigger(m.FRAG_LOAD_EMERGENCY_ABORTED, {
1864
1864
  frag: i,
1865
1865
  part: r,
1866
1866
  stats: h
@@ -1943,7 +1943,7 @@ class Io extends we {
1943
1943
  const s = this.hls.config, {
1944
1944
  loading: i
1945
1945
  } = t.stats, r = i.end - i.first;
1946
- U(r) && (this.lastLevelLoadSec = r / 1e3), t.details.live ? this.bwEstimator.update(s.abrEwmaSlowLive, s.abrEwmaFastLive) : this.bwEstimator.update(s.abrEwmaSlowVoD, s.abrEwmaFastVoD), this.timer > -1 && this._abandonRulesCheck(t.levelInfo);
1946
+ B(r) && (this.lastLevelLoadSec = r / 1e3), t.details.live ? this.bwEstimator.update(s.abrEwmaSlowLive, s.abrEwmaFastLive) : this.bwEstimator.update(s.abrEwmaSlowVoD, s.abrEwmaFastVoD), this.timer > -1 && this._abandonRulesCheck(t.levelInfo);
1947
1947
  }
1948
1948
  onFragLoaded(e, {
1949
1949
  frag: t,
@@ -2078,51 +2078,51 @@ class Io extends we {
2078
2078
  if (S) {
2079
2079
  if (this.firstSelection !== -1)
2080
2080
  return this.firstSelection;
2081
- const V = this.codecTiers || (this.codecTiers = So(g, A, t, s)), F = vo(V, C, e, R, D), {
2081
+ const $ = this.codecTiers || (this.codecTiers = So(g, A, t, s)), w = vo($, C, e, R, D), {
2082
2082
  codecSet: Y,
2083
2083
  videoRanges: H,
2084
- minFramerate: N,
2085
- minBitrate: w,
2084
+ minFramerate: M,
2085
+ minBitrate: F,
2086
2086
  minIndex: q,
2087
2087
  preferHDR: X
2088
- } = F;
2089
- k = q, L = Y, C = X ? H[H.length - 1] : H[0], x = N, e = Math.max(e, w), this.log(`picked start tier ${ne(F)}`);
2088
+ } = w;
2089
+ k = q, L = Y, C = X ? H[H.length - 1] : H[0], x = M, e = Math.max(e, F), this.log(`picked start tier ${ne(w)}`);
2090
2090
  } else
2091
2091
  L = v == null ? void 0 : v.codecSet, C = v == null ? void 0 : v.videoRange;
2092
- const _ = f ? f.duration : d ? d.duration : 0, K = this.bwEstimator.getEstimateTTFB() / 1e3, O = [];
2093
- for (let V = s; V >= t; V--) {
2094
- var B, M;
2095
- const F = g[V], Y = V > u;
2096
- if (!F)
2092
+ const O = f ? f.duration : d ? d.duration : 0, K = this.bwEstimator.getEstimateTTFB() / 1e3, U = [];
2093
+ for (let $ = s; $ >= t; $--) {
2094
+ var N, _;
2095
+ const w = g[$], Y = $ > u;
2096
+ if (!w)
2097
2097
  continue;
2098
- if (T.useMediaCapabilities && !F.supportedResult && !F.supportedPromise) {
2098
+ if (T.useMediaCapabilities && !w.supportedResult && !w.supportedPromise) {
2099
2099
  const Z = navigator.mediaCapabilities;
2100
- typeof (Z == null ? void 0 : Z.decodingInfo) == "function" && co(F, A, C, x, e, R) ? (F.supportedPromise = ln(F, A, Z, this.supportedCache), F.supportedPromise.then((ae) => {
2100
+ typeof (Z == null ? void 0 : Z.decodingInfo) == "function" && co(w, A, C, x, e, R) ? (w.supportedPromise = ln(w, A, Z, this.supportedCache), w.supportedPromise.then((ae) => {
2101
2101
  if (!this.hls)
2102
2102
  return;
2103
- F.supportedResult = ae;
2104
- const ye = this.hls.levels, fe = ye.indexOf(F);
2105
- ae.error ? this.warn(`MediaCapabilities decodingInfo error: "${ae.error}" for level ${fe} ${ne(ae)}`) : ae.supported ? ae.decodingInfoResults.some((ve) => ve.smooth === !1 || ve.powerEfficient === !1) && this.log(`MediaCapabilities decodingInfo for level ${fe} not smooth or powerEfficient: ${ne(ae)}`) : (this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${fe} ${ne(ae)}`), fe > -1 && ye.length > 1 && (this.log(`Removing unsupported level ${fe}`), this.hls.removeLevel(fe), this.hls.loadLevel === -1 && (this.hls.nextLoadLevel = 0)));
2106
- })) : F.supportedResult = an;
2103
+ w.supportedResult = ae;
2104
+ const ve = this.hls.levels, fe = ve.indexOf(w);
2105
+ ae.error ? this.warn(`MediaCapabilities decodingInfo error: "${ae.error}" for level ${fe} ${ne(ae)}`) : ae.supported ? ae.decodingInfoResults.some((Se) => Se.smooth === !1 || Se.powerEfficient === !1) && this.log(`MediaCapabilities decodingInfo for level ${fe} not smooth or powerEfficient: ${ne(ae)}`) : (this.warn(`Unsupported MediaCapabilities decodingInfo result for level ${fe} ${ne(ae)}`), fe > -1 && ve.length > 1 && (this.log(`Removing unsupported level ${fe}`), this.hls.removeLevel(fe), this.hls.loadLevel === -1 && (this.hls.nextLoadLevel = 0)));
2106
+ })) : w.supportedResult = an;
2107
2107
  }
2108
- if ((L && F.codecSet !== L || C && F.videoRange !== C || Y && x > F.frameRate || !Y && x > 0 && x < F.frameRate || (B = F.supportedResult) != null && (M = B.decodingInfoResults) != null && M.some((Z) => Z.smooth === !1)) && (!S || V !== k)) {
2109
- O.push(V);
2108
+ if ((L && w.codecSet !== L || C && w.videoRange !== C || Y && x > w.frameRate || !Y && x > 0 && x < w.frameRate || (N = w.supportedResult) != null && (_ = N.decodingInfoResults) != null && _.some((Z) => Z.smooth === !1)) && (!S || $ !== k)) {
2109
+ U.push($);
2110
2110
  continue;
2111
2111
  }
2112
- const H = F.details, N = (f ? H == null ? void 0 : H.partTarget : H == null ? void 0 : H.averagetargetduration) || _;
2113
- let w;
2114
- Y ? w = o * e : w = n * e;
2115
- const q = _ && i >= _ * 2 && r === 0 ? F.averageBitrate : F.maxBitrate, X = this.getTimeToLoadFrag(K, w, q * N, H === void 0);
2112
+ const H = w.details, M = (f ? H == null ? void 0 : H.partTarget : H == null ? void 0 : H.averagetargetduration) || O;
2113
+ let F;
2114
+ Y ? F = o * e : F = n * e;
2115
+ const q = O && i >= O * 2 && r === 0 ? w.averageBitrate : w.maxBitrate, X = this.getTimeToLoadFrag(K, F, q * M, H === void 0);
2116
2116
  if (
2117
2117
  // if adjusted bw is greater than level bitrate AND
2118
- w >= q && // no level change, or new level has no error history
2119
- (V === h || F.loadError === 0 && F.fragmentError === 0) && // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches
2118
+ F >= q && // no level change, or new level has no error history
2119
+ ($ === h || w.loadError === 0 && w.fragmentError === 0) && // fragment fetchDuration unknown OR live stream OR fragment fetchDuration less than max allowed fetch duration, then this level matches
2120
2120
  // we don't account for max Fetch Duration for live streams, this is to avoid switching down when near the edge of live sliding window ...
2121
2121
  // special case to support startLevel = -1 (bitrateTest) on live streams : in that case we should not exit loop so that findBestLevel will return -1
2122
- (X <= K || !U(X) || y && !this.bitrateTestDelay || X < l)
2122
+ (X <= K || !B(X) || y && !this.bitrateTestDelay || X < l)
2123
2123
  ) {
2124
2124
  const Z = this.forcedAutoLevel;
2125
- return V !== p && (Z === -1 || Z !== p) && (O.length && this.trace(`Skipped level(s) ${O.join(",")} of ${s} max with CODECS and VIDEO-RANGE:"${g[O[0]].codecs}" ${g[O[0]].videoRange}; not compatible with "${L}" ${C}`), this.info(`switch candidate:${u}->${V} adjustedbw(${Math.round(w)})-bitrate=${Math.round(w - q)} ttfb:${K.toFixed(1)} avgDuration:${N.toFixed(1)} maxFetchDuration:${l.toFixed(1)} fetchDuration:${X.toFixed(1)} firstSelection:${S} codecSet:${F.codecSet} videoRange:${F.videoRange} hls.loadLevel:${p}`)), S && (this.firstSelection = V), V;
2125
+ return $ !== p && (Z === -1 || Z !== p) && (U.length && this.trace(`Skipped level(s) ${U.join(",")} of ${s} max with CODECS and VIDEO-RANGE:"${g[U[0]].codecs}" ${g[U[0]].videoRange}; not compatible with "${L}" ${C}`), this.info(`switch candidate:${u}->${$} adjustedbw(${Math.round(F)})-bitrate=${Math.round(F - q)} ttfb:${K.toFixed(1)} avgDuration:${M.toFixed(1)} maxFetchDuration:${l.toFixed(1)} fetchDuration:${X.toFixed(1)} firstSelection:${S} codecSet:${w.codecSet} videoRange:${w.videoRange} hls.loadLevel:${p}`)), S && (this.firstSelection = $), $;
2126
2126
  }
2127
2127
  }
2128
2128
  return -1;
@@ -2171,7 +2171,7 @@ const un = {
2171
2171
  }
2172
2172
  };
2173
2173
  function Ro(a, e, t) {
2174
- if (e === null || !Array.isArray(a) || !a.length || !U(e))
2174
+ if (e === null || !Array.isArray(a) || !a.length || !B(e))
2175
2175
  return null;
2176
2176
  const s = a[0].programDateTime;
2177
2177
  if (e < (s || 0))
@@ -2373,7 +2373,7 @@ class Po extends we {
2373
2373
  t.errorAction = Pt();
2374
2374
  return;
2375
2375
  }
2376
- t.type === $.KEY_SYSTEM_ERROR && this.keySystemError(t);
2376
+ t.type === V.KEY_SYSTEM_ERROR && this.keySystemError(t);
2377
2377
  }
2378
2378
  keySystemError(e) {
2379
2379
  const t = this.getVariantLevelIndex(e.frag);
@@ -2887,12 +2887,12 @@ class Oo {
2887
2887
  const i = this.keySize + 6, r = this.invKeySchedule, n = this.invSBox, o = this.invSubMix, c = o[0], l = o[1], h = o[2], u = o[3], d = this.uint8ArrayToUint32Array_(s);
2888
2888
  let f = d[0], g = d[1], E = d[2], p = d[3];
2889
2889
  const T = new Int32Array(e), v = new Int32Array(T.length);
2890
- let y, S, L, C, x, R, D, A, k, _, K, O, B, M;
2891
- const V = this.networkToHostOrderSwap;
2890
+ let y, S, L, C, x, R, D, A, k, O, K, U, N, _;
2891
+ const $ = this.networkToHostOrderSwap;
2892
2892
  for (; t < T.length; ) {
2893
- for (k = V(T[t]), _ = V(T[t + 1]), K = V(T[t + 2]), O = V(T[t + 3]), x = k ^ r[0], R = O ^ r[1], D = K ^ r[2], A = _ ^ r[3], B = 4, M = 1; M < i; M++)
2894
- y = c[x >>> 24] ^ l[R >> 16 & 255] ^ h[D >> 8 & 255] ^ u[A & 255] ^ r[B], S = c[R >>> 24] ^ l[D >> 16 & 255] ^ h[A >> 8 & 255] ^ u[x & 255] ^ r[B + 1], L = c[D >>> 24] ^ l[A >> 16 & 255] ^ h[x >> 8 & 255] ^ u[R & 255] ^ r[B + 2], C = c[A >>> 24] ^ l[x >> 16 & 255] ^ h[R >> 8 & 255] ^ u[D & 255] ^ r[B + 3], x = y, R = S, D = L, A = C, B = B + 4;
2895
- y = n[x >>> 24] << 24 ^ n[R >> 16 & 255] << 16 ^ n[D >> 8 & 255] << 8 ^ n[A & 255] ^ r[B], S = n[R >>> 24] << 24 ^ n[D >> 16 & 255] << 16 ^ n[A >> 8 & 255] << 8 ^ n[x & 255] ^ r[B + 1], L = n[D >>> 24] << 24 ^ n[A >> 16 & 255] << 16 ^ n[x >> 8 & 255] << 8 ^ n[R & 255] ^ r[B + 2], C = n[A >>> 24] << 24 ^ n[x >> 16 & 255] << 16 ^ n[R >> 8 & 255] << 8 ^ n[D & 255] ^ r[B + 3], v[t] = V(y ^ f), v[t + 1] = V(C ^ g), v[t + 2] = V(L ^ E), v[t + 3] = V(S ^ p), f = k, g = _, E = K, p = O, t = t + 4;
2893
+ for (k = $(T[t]), O = $(T[t + 1]), K = $(T[t + 2]), U = $(T[t + 3]), x = k ^ r[0], R = U ^ r[1], D = K ^ r[2], A = O ^ r[3], N = 4, _ = 1; _ < i; _++)
2894
+ y = c[x >>> 24] ^ l[R >> 16 & 255] ^ h[D >> 8 & 255] ^ u[A & 255] ^ r[N], S = c[R >>> 24] ^ l[D >> 16 & 255] ^ h[A >> 8 & 255] ^ u[x & 255] ^ r[N + 1], L = c[D >>> 24] ^ l[A >> 16 & 255] ^ h[x >> 8 & 255] ^ u[R & 255] ^ r[N + 2], C = c[A >>> 24] ^ l[x >> 16 & 255] ^ h[R >> 8 & 255] ^ u[D & 255] ^ r[N + 3], x = y, R = S, D = L, A = C, N = N + 4;
2895
+ y = n[x >>> 24] << 24 ^ n[R >> 16 & 255] << 16 ^ n[D >> 8 & 255] << 8 ^ n[A & 255] ^ r[N], S = n[R >>> 24] << 24 ^ n[D >> 16 & 255] << 16 ^ n[A >> 8 & 255] << 8 ^ n[x & 255] ^ r[N + 1], L = n[D >>> 24] << 24 ^ n[A >> 16 & 255] << 16 ^ n[x >> 8 & 255] << 8 ^ n[R & 255] ^ r[N + 2], C = n[A >>> 24] << 24 ^ n[x >> 16 & 255] << 16 ^ n[R >> 8 & 255] << 8 ^ n[D & 255] ^ r[N + 3], v[t] = $(y ^ f), v[t + 1] = $(C ^ g), v[t + 2] = $(L ^ E), v[t + 3] = $(S ^ p), f = k, g = O, E = K, p = U, t = t + 4;
2896
2896
  }
2897
2897
  return v.buffer;
2898
2898
  }
@@ -3020,7 +3020,7 @@ class No {
3020
3020
  const s = e.url;
3021
3021
  if (!s)
3022
3022
  return Promise.reject(new Ke({
3023
- type: $.NETWORK_ERROR,
3023
+ type: V.NETWORK_ERROR,
3024
3024
  details: b.FRAG_LOAD_ERROR,
3025
3025
  fatal: !1,
3026
3026
  frag: e,
@@ -3060,7 +3060,7 @@ class No {
3060
3060
  },
3061
3061
  onError: (g, E, p, T) => {
3062
3062
  this.resetLoader(e, l), c(new Ke({
3063
- type: $.NETWORK_ERROR,
3063
+ type: V.NETWORK_ERROR,
3064
3064
  details: b.FRAG_LOAD_ERROR,
3065
3065
  fatal: !1,
3066
3066
  frag: e,
@@ -3075,7 +3075,7 @@ class No {
3075
3075
  },
3076
3076
  onAbort: (g, E, p) => {
3077
3077
  this.resetLoader(e, l), c(new Ke({
3078
- type: $.NETWORK_ERROR,
3078
+ type: V.NETWORK_ERROR,
3079
3079
  details: b.INTERNAL_ABORTED,
3080
3080
  fatal: !1,
3081
3081
  frag: e,
@@ -3086,7 +3086,7 @@ class No {
3086
3086
  },
3087
3087
  onTimeout: (g, E, p) => {
3088
3088
  this.resetLoader(e, l), c(new Ke({
3089
- type: $.NETWORK_ERROR,
3089
+ type: V.NETWORK_ERROR,
3090
3090
  details: b.FRAG_LOAD_TIMEOUT,
3091
3091
  fatal: !1,
3092
3092
  frag: e,
@@ -3135,7 +3135,7 @@ class No {
3135
3135
  },
3136
3136
  onError: (f, g, E, p) => {
3137
3137
  this.resetLoader(e, l), c(new Ke({
3138
- type: $.NETWORK_ERROR,
3138
+ type: V.NETWORK_ERROR,
3139
3139
  details: b.FRAG_LOAD_ERROR,
3140
3140
  fatal: !1,
3141
3141
  frag: e,
@@ -3151,7 +3151,7 @@ class No {
3151
3151
  },
3152
3152
  onAbort: (f, g, E) => {
3153
3153
  e.stats.aborted = t.stats.aborted, this.resetLoader(e, l), c(new Ke({
3154
- type: $.NETWORK_ERROR,
3154
+ type: V.NETWORK_ERROR,
3155
3155
  details: b.INTERNAL_ABORTED,
3156
3156
  fatal: !1,
3157
3157
  frag: e,
@@ -3163,7 +3163,7 @@ class No {
3163
3163
  },
3164
3164
  onTimeout: (f, g, E) => {
3165
3165
  this.resetLoader(e, l), c(new Ke({
3166
- type: $.NETWORK_ERROR,
3166
+ type: V.NETWORK_ERROR,
3167
3167
  details: b.FRAG_LOAD_TIMEOUT,
3168
3168
  fatal: !1,
3169
3169
  frag: e,
@@ -3200,7 +3200,7 @@ function Zi(a, e = null) {
3200
3200
  rangeStart: 0,
3201
3201
  rangeEnd: 0
3202
3202
  }, i = t.byteRangeStartOffset, r = t.byteRangeEndOffset;
3203
- if (U(i) && U(r)) {
3203
+ if (B(i) && B(r)) {
3204
3204
  var n;
3205
3205
  let o = i, c = r;
3206
3206
  if (a.sn === "initSegment" && Uo((n = a.decryptdata) == null ? void 0 : n.method)) {
@@ -3213,7 +3213,7 @@ function Zi(a, e = null) {
3213
3213
  }
3214
3214
  function Ji(a, e) {
3215
3215
  const t = new Error(`GAP ${a.gap ? "tag" : "attribute"} found`), s = {
3216
- type: $.MEDIA_ERROR,
3216
+ type: V.MEDIA_ERROR,
3217
3217
  details: b.FRAG_GAP,
3218
3218
  fatal: !1,
3219
3219
  frag: a,
@@ -3573,7 +3573,7 @@ class mn {
3573
3573
  }
3574
3574
  if (this.attr = e, t ? (this._startDate = t._startDate, this._cue = t._cue, this._endDate = t._endDate, this._dateAtEnd = t._dateAtEnd) : this._startDate = new Date(e["START-DATE"]), "END-DATE" in this.attr) {
3575
3575
  const r = (t == null ? void 0 : t.endDate) || new Date(this.attr["END-DATE"]);
3576
- U(r.getTime()) && (this._endDate = r);
3576
+ B(r.getTime()) && (this._endDate = r);
3577
3577
  }
3578
3578
  }
3579
3579
  get id() {
@@ -3609,7 +3609,7 @@ class mn {
3609
3609
  get duration() {
3610
3610
  if ("DURATION" in this.attr) {
3611
3611
  const e = this.attr.decimalFloatingPoint("DURATION");
3612
- if (U(e))
3612
+ if (B(e))
3613
3613
  return e;
3614
3614
  } else if (this._endDate)
3615
3615
  return (this._endDate.getTime() - this._startDate.getTime()) / 1e3;
@@ -3625,7 +3625,7 @@ class mn {
3625
3625
  return this.class === Ko;
3626
3626
  }
3627
3627
  get isValid() {
3628
- return !!this.id && !this._badValueForSameId && U(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class) && (!this.attr.CUE || !this.cue.pre && !this.cue.post || this.cue.pre !== this.cue.post) && (!this.isInterstitial || "X-ASSET-URI" in this.attr || "X-ASSET-LIST" in this.attr);
3628
+ return !!this.id && !this._badValueForSameId && B(this.startDate.getTime()) && (this.duration === null || this.duration >= 0) && (!this.endOnNext || !!this.class) && (!this.attr.CUE || !this.cue.pre && !this.cue.post || this.cue.pre !== this.cue.post) && (!this.isInterstitial || "X-ASSET-URI" in this.attr || "X-ASSET-LIST" in this.attr);
3629
3629
  }
3630
3630
  }
3631
3631
  const Yo = 10;
@@ -3642,7 +3642,7 @@ class Wo {
3642
3642
  this.updated = this.endSN !== e.endSN || !!s || !!t || !this.live, this.advanced = this.endSN > e.endSN || t > 0 || t === 0 && s > 0, this.updated || this.advanced ? this.misses = Math.floor(e.misses * 0.6) : this.misses = e.misses + 1;
3643
3643
  }
3644
3644
  get hasProgramDateTime() {
3645
- return this.fragments.length ? U(this.fragments[this.fragments.length - 1].programDateTime) : !1;
3645
+ return this.fragments.length ? B(this.fragments[this.fragments.length - 1].programDateTime) : !1;
3646
3646
  }
3647
3647
  get levelTargetDuration() {
3648
3648
  return this.averagetargetduration || this.targetduration || Yo;
@@ -3747,7 +3747,7 @@ var le = {
3747
3747
  FAIRPLAY: "com.apple.fps",
3748
3748
  PLAYREADY: "com.microsoft.playready",
3749
3749
  WIDEVINE: "com.widevine.alpha"
3750
- }, Te = {
3750
+ }, ye = {
3751
3751
  CLEARKEY: "org.w3.clearkey",
3752
3752
  FAIRPLAY: "com.apple.streamingkeydelivery",
3753
3753
  PLAYREADY: "com.microsoft.playready",
@@ -3755,26 +3755,26 @@ var le = {
3755
3755
  };
3756
3756
  function Ws(a) {
3757
3757
  switch (a) {
3758
- case Te.FAIRPLAY:
3758
+ case ye.FAIRPLAY:
3759
3759
  return le.FAIRPLAY;
3760
- case Te.PLAYREADY:
3760
+ case ye.PLAYREADY:
3761
3761
  return le.PLAYREADY;
3762
- case Te.WIDEVINE:
3762
+ case ye.WIDEVINE:
3763
3763
  return le.WIDEVINE;
3764
- case Te.CLEARKEY:
3764
+ case ye.CLEARKEY:
3765
3765
  return le.CLEARKEY;
3766
3766
  }
3767
3767
  }
3768
3768
  function rr(a) {
3769
3769
  switch (a) {
3770
3770
  case le.FAIRPLAY:
3771
- return Te.FAIRPLAY;
3771
+ return ye.FAIRPLAY;
3772
3772
  case le.PLAYREADY:
3773
- return Te.PLAYREADY;
3773
+ return ye.PLAYREADY;
3774
3774
  case le.WIDEVINE:
3775
- return Te.WIDEVINE;
3775
+ return ye.WIDEVINE;
3776
3776
  case le.CLEARKEY:
3777
- return Te.CLEARKEY;
3777
+ return ye.CLEARKEY;
3778
3778
  }
3779
3779
  }
3780
3780
  function Xt(a) {
@@ -3857,10 +3857,10 @@ class gs {
3857
3857
  if (this.keyFormat === "identity")
3858
3858
  return this.method === "SAMPLE-AES";
3859
3859
  switch (this.keyFormat) {
3860
- case Te.FAIRPLAY:
3861
- case Te.WIDEVINE:
3862
- case Te.PLAYREADY:
3863
- case Te.CLEARKEY:
3860
+ case ye.FAIRPLAY:
3861
+ case ye.WIDEVINE:
3862
+ case ye.PLAYREADY:
3863
+ case ye.CLEARKEY:
3864
3864
  return ["ISO-23001-7", "SAMPLE-AES", "SAMPLE-AES-CENC", "SAMPLE-AES-CTR"].indexOf(this.method) !== -1;
3865
3865
  }
3866
3866
  }
@@ -3879,13 +3879,13 @@ class gs {
3879
3879
  const t = zo(this.uri);
3880
3880
  if (t)
3881
3881
  switch (this.keyFormat) {
3882
- case Te.WIDEVINE:
3882
+ case ye.WIDEVINE:
3883
3883
  if (this.pssh = t, !this.keyId && t.length >= 22) {
3884
3884
  const s = t.length - 22;
3885
3885
  this.keyId = t.subarray(s, s + 16);
3886
3886
  }
3887
3887
  break;
3888
- case Te.PLAYREADY: {
3888
+ case ye.PLAYREADY: {
3889
3889
  const s = new Uint8Array([154, 4, 240, 121, 152, 64, 66, 134, 171, 146, 230, 91, 224, 136, 95, 149]);
3890
3890
  this.pssh = io(s, null, t), this.keyId = Jo(t);
3891
3891
  break;
@@ -4054,16 +4054,16 @@ class Ne {
4054
4054
  return l.playlistParsingError = new Error("Missing format identifier #EXTM3U"), l;
4055
4055
  for (; (S = As.exec(e)) !== null; ) {
4056
4056
  R && (R = !1, y = new ys(i, c), y.playlistOffset = E, y.start = E, y.sn = f, y.cc = p, T && (y.bitrate = T), y.level = s, d && (y.initSegment = d, d.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime, d.rawProgramDateTime = null), D && (y.setByteRange(D), D = null)));
4057
- const O = S[1];
4058
- if (O) {
4059
- y.duration = parseFloat(O);
4060
- const B = (" " + S[2]).slice(1);
4061
- y.title = B || null, y.tagList.push(B ? ["INF", O, B] : ["INF", O]);
4057
+ const U = S[1];
4058
+ if (U) {
4059
+ y.duration = parseFloat(U);
4060
+ const N = (" " + S[2]).slice(1);
4061
+ y.title = N || null, y.tagList.push(N ? ["INF", U, N] : ["INF", U]);
4062
4062
  } else if (S[3]) {
4063
- if (U(y.duration)) {
4063
+ if (B(y.duration)) {
4064
4064
  y.playlistOffset = E, y.start = E, C && dr(y, C, l), y.sn = f, y.level = s, y.cc = p, h.push(y);
4065
- const B = (" " + S[3]).slice(1);
4066
- y.relurl = Hs(l, B), js(y, v, u), v = y, E += y.duration, f++, g = 0, R = !0;
4065
+ const N = (" " + S[3]).slice(1);
4066
+ y.relurl = Hs(l, N), js(y, v, u), v = y, E += y.duration, f++, g = 0, R = !0;
4067
4067
  }
4068
4068
  } else {
4069
4069
  if (S = S[0].match(sl), !S) {
@@ -4072,93 +4072,93 @@ class Ne {
4072
4072
  }
4073
4073
  for (L = 1; L < S.length && S[L] === void 0; L++)
4074
4074
  ;
4075
- const B = (" " + S[L]).slice(1), M = (" " + S[L + 1]).slice(1), V = S[L + 2] ? (" " + S[L + 2]).slice(1) : null;
4076
- switch (B) {
4075
+ const N = (" " + S[L]).slice(1), _ = (" " + S[L + 1]).slice(1), $ = S[L + 2] ? (" " + S[L + 2]).slice(1) : null;
4076
+ switch (N) {
4077
4077
  case "BYTERANGE":
4078
- v ? y.setByteRange(M, v) : y.setByteRange(M);
4078
+ v ? y.setByteRange(_, v) : y.setByteRange(_);
4079
4079
  break;
4080
4080
  case "PROGRAM-DATE-TIME":
4081
- y.rawProgramDateTime = M, y.tagList.push(["PROGRAM-DATE-TIME", M]), x === -1 && (x = h.length);
4081
+ y.rawProgramDateTime = _, y.tagList.push(["PROGRAM-DATE-TIME", _]), x === -1 && (x = h.length);
4082
4082
  break;
4083
4083
  case "PLAYLIST-TYPE":
4084
- l.type && Ge(l, B, S), l.type = M.toUpperCase();
4084
+ l.type && Ge(l, N, S), l.type = _.toUpperCase();
4085
4085
  break;
4086
4086
  case "MEDIA-SEQUENCE":
4087
- l.startSN !== 0 ? Ge(l, B, S) : h.length > 0 && fr(l, B, S), f = l.startSN = parseInt(M);
4087
+ l.startSN !== 0 ? Ge(l, N, S) : h.length > 0 && fr(l, N, S), f = l.startSN = parseInt(_);
4088
4088
  break;
4089
4089
  case "SKIP": {
4090
- l.skippedSegments && Ge(l, B, S);
4091
- const F = new oe(M, l), Y = F.decimalInteger("SKIPPED-SEGMENTS");
4092
- if (U(Y)) {
4090
+ l.skippedSegments && Ge(l, N, S);
4091
+ const w = new oe(_, l), Y = w.decimalInteger("SKIPPED-SEGMENTS");
4092
+ if (B(Y)) {
4093
4093
  l.skippedSegments += Y;
4094
- for (let N = Y; N--; )
4094
+ for (let M = Y; M--; )
4095
4095
  h.push(null);
4096
4096
  f += Y;
4097
4097
  }
4098
- const H = F.enumeratedString("RECENTLY-REMOVED-DATERANGES");
4098
+ const H = w.enumeratedString("RECENTLY-REMOVED-DATERANGES");
4099
4099
  H && (l.recentlyRemovedDateranges = (l.recentlyRemovedDateranges || []).concat(H.split(" ")));
4100
4100
  break;
4101
4101
  }
4102
4102
  case "TARGETDURATION":
4103
- l.targetduration !== 0 && Ge(l, B, S), l.targetduration = Math.max(parseInt(M), 1);
4103
+ l.targetduration !== 0 && Ge(l, N, S), l.targetduration = Math.max(parseInt(_), 1);
4104
4104
  break;
4105
4105
  case "VERSION":
4106
- l.version !== null && Ge(l, B, S), l.version = parseInt(M);
4106
+ l.version !== null && Ge(l, N, S), l.version = parseInt(_);
4107
4107
  break;
4108
4108
  case "INDEPENDENT-SEGMENTS":
4109
4109
  break;
4110
4110
  case "ENDLIST":
4111
- l.live || Ge(l, B, S), l.live = !1;
4111
+ l.live || Ge(l, N, S), l.live = !1;
4112
4112
  break;
4113
4113
  case "#":
4114
- (M || V) && y.tagList.push(V ? [M, V] : [M]);
4114
+ (_ || $) && y.tagList.push($ ? [_, $] : [_]);
4115
4115
  break;
4116
4116
  case "DISCONTINUITY":
4117
4117
  p++, y.tagList.push(["DIS"]);
4118
4118
  break;
4119
4119
  case "GAP":
4120
- y.gap = !0, y.tagList.push([B]);
4120
+ y.gap = !0, y.tagList.push([N]);
4121
4121
  break;
4122
4122
  case "BITRATE":
4123
- y.tagList.push([B, M]), T = parseInt(M) * 1e3, U(T) ? y.bitrate = T : T = 0;
4123
+ y.tagList.push([N, _]), T = parseInt(_) * 1e3, B(T) ? y.bitrate = T : T = 0;
4124
4124
  break;
4125
4125
  case "DATERANGE": {
4126
- const F = new oe(M, l), Y = new mn(F, l.dateRanges[F.ID], l.dateRangeTagCount);
4127
- l.dateRangeTagCount++, Y.isValid || l.skippedSegments ? l.dateRanges[Y.id] = Y : ee.warn(`Ignoring invalid DATERANGE tag: "${M}"`), y.tagList.push(["EXT-X-DATERANGE", M]);
4126
+ const w = new oe(_, l), Y = new mn(w, l.dateRanges[w.ID], l.dateRangeTagCount);
4127
+ l.dateRangeTagCount++, Y.isValid || l.skippedSegments ? l.dateRanges[Y.id] = Y : ee.warn(`Ignoring invalid DATERANGE tag: "${_}"`), y.tagList.push(["EXT-X-DATERANGE", _]);
4128
4128
  break;
4129
4129
  }
4130
4130
  case "DEFINE": {
4131
4131
  {
4132
- const F = new oe(M, l);
4133
- "IMPORT" in F ? Go(l, F, n) : sr(l, F, t);
4132
+ const w = new oe(_, l);
4133
+ "IMPORT" in w ? Go(l, w, n) : sr(l, w, t);
4134
4134
  }
4135
4135
  break;
4136
4136
  }
4137
4137
  case "DISCONTINUITY-SEQUENCE":
4138
- l.startCC !== 0 ? Ge(l, B, S) : h.length > 0 && fr(l, B, S), l.startCC = p = parseInt(M);
4138
+ l.startCC !== 0 ? Ge(l, N, S) : h.length > 0 && fr(l, N, S), l.startCC = p = parseInt(_);
4139
4139
  break;
4140
4140
  case "KEY": {
4141
- const F = or(M, t, l);
4142
- if (F.isSupported()) {
4143
- if (F.method === "NONE") {
4141
+ const w = or(_, t, l);
4142
+ if (w.isSupported()) {
4143
+ if (w.method === "NONE") {
4144
4144
  C = void 0;
4145
4145
  break;
4146
4146
  }
4147
4147
  C || (C = {});
4148
- const Y = C[F.keyFormat];
4149
- Y != null && Y.matches(F) || (Y && (C = se({}, C)), C[F.keyFormat] = F);
4148
+ const Y = C[w.keyFormat];
4149
+ Y != null && Y.matches(w) || (Y && (C = se({}, C)), C[w.keyFormat] = w);
4150
4150
  } else
4151
- ee.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${M}"`);
4151
+ ee.warn(`[Keys] Ignoring invalid EXT-X-KEY tag: "${_}"`);
4152
4152
  break;
4153
4153
  }
4154
4154
  case "START":
4155
- l.startTimeOffset = lr(M);
4155
+ l.startTimeOffset = lr(_);
4156
4156
  break;
4157
4157
  case "MAP": {
4158
- const F = new oe(M, l);
4158
+ const w = new oe(_, l);
4159
4159
  if (y.duration) {
4160
4160
  const Y = new ys(i, c);
4161
- ur(Y, F, s, C), d = Y, y.initSegment = d, d.rawProgramDateTime && !y.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime);
4161
+ ur(Y, w, s, C), d = Y, y.initSegment = d, d.rawProgramDateTime && !y.rawProgramDateTime && (y.rawProgramDateTime = d.rawProgramDateTime);
4162
4162
  } else {
4163
4163
  const Y = y.byteRangeEndOffset;
4164
4164
  if (Y) {
@@ -4166,36 +4166,36 @@ class Ne {
4166
4166
  D = `${Y - H}@${H}`;
4167
4167
  } else
4168
4168
  D = null;
4169
- ur(y, F, s, C), d = y, R = !0;
4169
+ ur(y, w, s, C), d = y, R = !0;
4170
4170
  }
4171
4171
  d.cc = p;
4172
4172
  break;
4173
4173
  }
4174
4174
  case "SERVER-CONTROL": {
4175
- A && Ge(l, B, S), A = new oe(M), l.canBlockReload = A.bool("CAN-BLOCK-RELOAD"), l.canSkipUntil = A.optionalFloat("CAN-SKIP-UNTIL", 0), l.canSkipDateRanges = l.canSkipUntil > 0 && A.bool("CAN-SKIP-DATERANGES"), l.partHoldBack = A.optionalFloat("PART-HOLD-BACK", 0), l.holdBack = A.optionalFloat("HOLD-BACK", 0);
4175
+ A && Ge(l, N, S), A = new oe(_), l.canBlockReload = A.bool("CAN-BLOCK-RELOAD"), l.canSkipUntil = A.optionalFloat("CAN-SKIP-UNTIL", 0), l.canSkipDateRanges = l.canSkipUntil > 0 && A.bool("CAN-SKIP-DATERANGES"), l.partHoldBack = A.optionalFloat("PART-HOLD-BACK", 0), l.holdBack = A.optionalFloat("HOLD-BACK", 0);
4176
4176
  break;
4177
4177
  }
4178
4178
  case "PART-INF": {
4179
- l.partTarget && Ge(l, B, S);
4180
- const F = new oe(M);
4181
- l.partTarget = F.decimalFloatingPoint("PART-TARGET");
4179
+ l.partTarget && Ge(l, N, S);
4180
+ const w = new oe(_);
4181
+ l.partTarget = w.decimalFloatingPoint("PART-TARGET");
4182
4182
  break;
4183
4183
  }
4184
4184
  case "PART": {
4185
- let F = l.partList;
4186
- F || (F = l.partList = []);
4187
- const Y = g > 0 ? F[F.length - 1] : void 0, H = g++, N = new oe(M, l), w = new Va(N, y, c, H, Y);
4188
- F.push(w), y.duration += w.duration;
4185
+ let w = l.partList;
4186
+ w || (w = l.partList = []);
4187
+ const Y = g > 0 ? w[w.length - 1] : void 0, H = g++, M = new oe(_, l), F = new Va(M, y, c, H, Y);
4188
+ w.push(F), y.duration += F.duration;
4189
4189
  break;
4190
4190
  }
4191
4191
  case "PRELOAD-HINT": {
4192
- const F = new oe(M, l);
4193
- l.preloadHint = F;
4192
+ const w = new oe(_, l);
4193
+ l.preloadHint = w;
4194
4194
  break;
4195
4195
  }
4196
4196
  case "RENDITION-REPORT": {
4197
- const F = new oe(M, l);
4198
- l.renditionReports = l.renditionReports || [], l.renditionReports.push(F);
4197
+ const w = new oe(_, l);
4198
+ l.renditionReports = l.renditionReports || [], l.renditionReports.push(w);
4199
4199
  break;
4200
4200
  }
4201
4201
  default:
@@ -4205,14 +4205,14 @@ class Ne {
4205
4205
  }
4206
4206
  }
4207
4207
  v && !v.relurl ? (h.pop(), E -= v.duration, l.partList && (l.fragmentHint = v)) : l.partList && (js(y, v, u), y.cc = p, l.fragmentHint = y, C && dr(y, C, l)), l.targetduration || (l.playlistParsingError = new Error("#EXT-X-TARGETDURATION is required"));
4208
- const k = h.length, _ = h[0], K = h[k - 1];
4208
+ const k = h.length, O = h[0], K = h[k - 1];
4209
4209
  if (E += l.skippedSegments * l.targetduration, E > 0 && k && K) {
4210
4210
  l.averagetargetduration = E / k;
4211
- const O = K.sn;
4212
- l.endSN = O !== "initSegment" ? O : 0, l.live || (K.endList = !0), _ && l.startCC === void 0 && (l.startCC = _.cc), x > 0 && (rl(h, x), _ && u.unshift(_));
4211
+ const U = K.sn;
4212
+ l.endSN = U !== "initSegment" ? U : 0, l.live || (K.endList = !0), O && l.startCC === void 0 && (l.startCC = O.cc), x > 0 && (rl(h, x), O && u.unshift(O));
4213
4213
  } else
4214
4214
  l.endSN = 0, l.startCC = 0;
4215
- return l.fragmentHint && (E += l.fragmentHint.duration), l.totalduration = E, u.length && l.dateRangeTagCount && _ && Tn(u, l), l.endCC = p, l;
4215
+ return l.fragmentHint && (E += l.fragmentHint.duration), l.totalduration = E, u.length && l.dateRangeTagCount && O && Tn(u, l), l.endCC = p, l;
4216
4216
  }
4217
4217
  }
4218
4218
  function Tn(a, e) {
@@ -4264,7 +4264,7 @@ function or(a, e, t) {
4264
4264
  }
4265
4265
  function lr(a) {
4266
4266
  const t = new oe(a).decimalFloatingPoint("TIME-OFFSET");
4267
- return U(t) ? t : null;
4267
+ return B(t) ? t : null;
4268
4268
  }
4269
4269
  function cr(a, e) {
4270
4270
  let t = (a || "").split(/[ ,]+/).filter((s) => s);
@@ -4307,7 +4307,7 @@ function fr(a, e, t) {
4307
4307
  }
4308
4308
  function xs(a, e) {
4309
4309
  const t = e.startPTS;
4310
- if (U(t)) {
4310
+ if (B(t)) {
4311
4311
  let s = 0, i;
4312
4312
  e.sn > a.sn ? (s = t - a.start, i = a) : (s = a.start - t, i = e), i.duration !== s && i.setDuration(s);
4313
4313
  } else e.sn > a.sn ? a.cc === e.cc && a.minEndPTS ? e.setStart(a.start + (a.minEndPTS - a.start)) : e.setStart(a.start + a.duration) : e.setStart(Math.max(a.start - e.duration, 0));
@@ -4316,9 +4316,9 @@ function yn(a, e, t, s, i, r) {
4316
4316
  s - t <= 0 && (ee.warn("Fragment should have a positive duration", e), s = t + e.duration, r = i + e.duration);
4317
4317
  let o = t, c = s;
4318
4318
  const l = e.startPTS, h = e.endPTS;
4319
- if (U(l)) {
4319
+ if (B(l)) {
4320
4320
  const p = Math.abs(l - t);
4321
- U(e.deltaPTS) ? e.deltaPTS = Math.max(p, e.deltaPTS) : e.deltaPTS = p, o = Math.max(t, l), t = Math.min(t, l), i = Math.min(i, e.startDTS), c = Math.min(s, h), s = Math.max(s, h), r = Math.max(r, e.endDTS);
4321
+ B(e.deltaPTS) ? e.deltaPTS = Math.max(p, e.deltaPTS) : e.deltaPTS = p, o = Math.max(t, l), t = Math.min(t, l), i = Math.min(i, e.startDTS), c = Math.min(s, h), s = Math.max(s, h), r = Math.max(r, e.endDTS);
4322
4322
  }
4323
4323
  const u = t - e.start;
4324
4324
  e.start !== 0 && e.setStart(t), e.setDuration(s - e.start), e.startPTS = t, e.maxStartPTS = o, e.startDTS = i, e.endPTS = s, e.minEndPTS = c, e.endDTS = r;
@@ -4354,7 +4354,7 @@ function nl(a, e) {
4354
4354
  d[g].cc += f;
4355
4355
  e.endCC = d[d.length - 1].cc;
4356
4356
  }
4357
- U(l.startPTS) && U(l.endPTS) && (h.setStart(h.startPTS = l.startPTS), h.startDTS = l.startDTS, h.maxStartPTS = l.maxStartPTS, h.endPTS = l.endPTS, h.endDTS = l.endDTS, h.minEndPTS = l.minEndPTS, h.setDuration(l.endPTS - l.startPTS), h.duration && (i = h), e.PTSKnown = e.alignedSliding = !0), l.hasStreams && (h.elementaryStreams = l.elementaryStreams), h.loader = l.loader, l.hasStats && (h.stats = l.stats), l.initSegment && (h.initSegment = l.initSegment, t = l.initSegment);
4357
+ B(l.startPTS) && B(l.endPTS) && (h.setStart(h.startPTS = l.startPTS), h.startDTS = l.startDTS, h.maxStartPTS = l.maxStartPTS, h.endPTS = l.endPTS, h.endDTS = l.endDTS, h.minEndPTS = l.minEndPTS, h.setDuration(l.endPTS - l.startPTS), h.duration && (i = h), e.PTSKnown = e.alignedSliding = !0), l.hasStreams && (h.elementaryStreams = l.elementaryStreams), h.loader = l.loader, l.hasStats && (h.stats = l.stats), l.initSegment && (h.initSegment = l.initSegment, t = l.initSegment);
4358
4358
  });
4359
4359
  const r = e.fragments, n = e.fragmentHint ? r.concat(e.fragmentHint) : r;
4360
4360
  if (t && n.forEach((l) => {
@@ -4583,7 +4583,7 @@ class fi extends fn {
4583
4583
  mediaBuffer: l,
4584
4584
  state: h
4585
4585
  } = this, u = c ? c.currentTime : 0, d = j.bufferInfo(l || c, u, n.maxBufferHole), f = !d.len;
4586
- if (this.log(`Media seeking to ${U(u) ? u.toFixed(3) : u}, state: ${h}, ${f ? "out of" : "in"} buffer`), this.state === P.ENDED)
4586
+ if (this.log(`Media seeking to ${B(u) ? u.toFixed(3) : u}, state: ${h}, ${f ? "out of" : "in"} buffer`), this.state === P.ENDED)
4587
4587
  this.resetLoadingState();
4588
4588
  else if (o) {
4589
4589
  const g = n.maxFragLookUpTolerance, E = o.start - g, p = o.start + o.duration + g;
@@ -4799,7 +4799,7 @@ class fi extends fn {
4799
4799
  const c = self.performance.now();
4800
4800
  return this.decrypter.decrypt(new Uint8Array(n), o.key.buffer, o.iv.buffer, di(o.method)).catch((l) => {
4801
4801
  throw i.trigger(m.ERROR, {
4802
- type: $.MEDIA_ERROR,
4802
+ type: V.MEDIA_ERROR,
4803
4803
  details: b.FRAG_DECRYPT_ERROR,
4804
4804
  fatal: !1,
4805
4805
  error: l,
@@ -4909,7 +4909,7 @@ class fi extends fn {
4909
4909
  this.log(`LL-Part loading OFF after next part miss @${s.toFixed(2)}`), this.loadingParts = !1;
4910
4910
  else if (!e.url)
4911
4911
  return Promise.resolve(null);
4912
- this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e, !1)}) cc: ${e.cc} ${n ? "[" + n.startSN + "-" + n.endSN + "]" : ""}, target: ${parseFloat(s.toFixed(3))}`), U(e.sn) && !this.bitrateTest && (this.nextLoadPosition = e.start + e.duration), this.state = P.FRAG_LOADING;
4912
+ this.log(`Loading ${e.type} sn: ${e.sn} of ${this.fragInfo(e, !1)}) cc: ${e.cc} ${n ? "[" + n.startSN + "-" + n.endSN + "]" : ""}, target: ${parseFloat(s.toFixed(3))}`), B(e.sn) && !this.bitrateTest && (this.nextLoadPosition = e.start + e.duration), this.state = P.FRAG_LOADING;
4913
4913
  const l = this.config.progressive;
4914
4914
  let h;
4915
4915
  return l && o ? h = o.then((u) => !u || this.fragContextChanged(u == null ? void 0 : u.frag) ? null : this.fragmentLoader.load(e, i)).catch((u) => this.handleFragLoadError(u)) : h = Promise.all([this.fragmentLoader.load(e, l ? i : void 0), o]).then(([u]) => (!l && u && i && i(u), u)).catch((u) => this.handleFragLoadError(u)), this.hls.trigger(m.FRAG_LOADING, {
@@ -4945,7 +4945,7 @@ class fi extends fn {
4945
4945
  e.data && t.details === b.INTERNAL_ABORTED ? this.handleFragLoadAborted(t.frag, t.part) : this.hls.trigger(m.ERROR, t);
4946
4946
  } else
4947
4947
  this.hls.trigger(m.ERROR, {
4948
- type: $.OTHER_ERROR,
4948
+ type: V.OTHER_ERROR,
4949
4949
  details: b.INTERNAL_EXCEPTION,
4950
4950
  err: e,
4951
4951
  error: e,
@@ -5042,7 +5042,7 @@ class fi extends fn {
5042
5042
  getFwdBufferInfo(e, t) {
5043
5043
  var s;
5044
5044
  const i = this.getLoadPosition();
5045
- if (!U(i))
5045
+ if (!B(i))
5046
5046
  return null;
5047
5047
  const n = this.lastCurrentTime > i || (s = this.media) != null && s.paused ? 0 : this.config.maxBufferHole;
5048
5048
  return this.getFwdBufferInfoAtPos(e, i, t, n);
@@ -5230,7 +5230,7 @@ class fi extends fn {
5230
5230
  const i = e.fragments.length;
5231
5231
  if (!i)
5232
5232
  return this.warn("No fragments in live playlist"), 0;
5233
- const r = e.fragmentStart, n = !t, o = e.alignedSliding && U(r);
5233
+ const r = e.fragmentStart, n = !t, o = e.alignedSliding && B(r);
5234
5234
  if (n || !o && !r) {
5235
5235
  hl(s, e);
5236
5236
  const c = e.fragmentStart;
@@ -5247,7 +5247,7 @@ class fi extends fn {
5247
5247
  const i = this.timelineOffset;
5248
5248
  if (s === -1) {
5249
5249
  const r = this.startTimeOffset !== null, n = r ? this.startTimeOffset : e.startTimeOffset;
5250
- n !== null && U(n) ? (s = t + n, n < 0 && (s += e.edge), s = Math.min(Math.max(t, s), t + e.totalduration), this.log(`Setting startPosition to ${s} for start time offset ${n} found in ${r ? "multivariant" : "media"} playlist`), this.startPosition = s) : e.live ? (s = this.hls.liveSyncPosition || t, this.log(`Setting startPosition to -1 to start at live edge ${s}`), this.startPosition = -1) : (this.log("setting startPosition to 0 by default"), this.startPosition = s = 0), this.lastCurrentTime = s + i;
5250
+ n !== null && B(n) ? (s = t + n, n < 0 && (s += e.edge), s = Math.min(Math.max(t, s), t + e.totalduration), this.log(`Setting startPosition to ${s} for start time offset ${n} found in ${r ? "multivariant" : "media"} playlist`), this.startPosition = s) : e.live ? (s = this.hls.liveSyncPosition || t, this.log(`Setting startPosition to -1 to start at live edge ${s}`), this.startPosition = -1) : (this.log("setting startPosition to 0 by default"), this.startPosition = s = 0), this.lastCurrentTime = s + i;
5251
5251
  }
5252
5252
  this.nextLoadPosition = s + i;
5253
5253
  }
@@ -5365,7 +5365,7 @@ class fi extends fn {
5365
5365
  if (s.fragmentError === 0 && this.treatAsGap(e, s), ((o = this.transmuxer) == null ? void 0 : o.error) === null) {
5366
5366
  const c = new Error(`Found no media in fragment ${e.sn} of ${this.playlistLabel()} ${e.level} resetting transmuxer to fallback to playlist timing`);
5367
5367
  if (this.warn(c.message), this.hls.trigger(m.ERROR, {
5368
- type: $.MEDIA_ERROR,
5368
+ type: V.MEDIA_ERROR,
5369
5369
  details: b.FRAG_PARSING_ERROR,
5370
5370
  fatal: !1,
5371
5371
  error: c,
@@ -5612,7 +5612,7 @@ function yl(a, e, t, s) {
5612
5612
  if (n > 12) {
5613
5613
  const f = new Error(`invalid ADTS sampling index:${n}`);
5614
5614
  a.emit(m.ERROR, m.ERROR, {
5615
- type: $.MEDIA_ERROR,
5615
+ type: V.MEDIA_ERROR,
5616
5616
  details: b.FRAG_PARSING_ERROR,
5617
5617
  fatal: !0,
5618
5618
  error: f,
@@ -5899,7 +5899,7 @@ class Ti {
5899
5899
  this.cachedData && (e = De(this.cachedData, e), this.cachedData = null);
5900
5900
  let s = _t(e, 0), i = s ? s.length : 0, r;
5901
5901
  const n = this._audioTrack, o = this._id3Track, c = s ? Ei(s) : void 0, l = e.length;
5902
- for ((this.basePTS === null || this.frameIndex === 0 && U(c)) && (this.basePTS = Bl(c, t, this.initPTS), this.lastPTS = this.basePTS), this.lastPTS === null && (this.lastPTS = this.basePTS), s && s.length > 0 && o.samples.push({
5902
+ for ((this.basePTS === null || this.frameIndex === 0 && B(c)) && (this.basePTS = Bl(c, t, this.initPTS), this.lastPTS = this.basePTS), this.lastPTS === null && (this.lastPTS = this.basePTS), s && s.length > 0 && o.samples.push({
5903
5903
  pts: this.lastPTS,
5904
5904
  dts: this.lastPTS,
5905
5905
  data: s,
@@ -5945,7 +5945,7 @@ class Ti {
5945
5945
  }
5946
5946
  }
5947
5947
  const Bl = (a, e, t) => {
5948
- if (U(a))
5948
+ if (B(a))
5949
5949
  return a * 90;
5950
5950
  const s = t ? t.baseTime * 9e4 / t.timescale : 0;
5951
5951
  return e * 9e4 + s;
@@ -6316,7 +6316,7 @@ class jl {
6316
6316
  }
6317
6317
  }
6318
6318
  function yr(a, e) {
6319
- return U(a.presentationTime) ? a.presentationTime / a.timeScale : e + a.presentationTimeDelta / a.timeScale;
6319
+ return B(a.presentationTime) ? a.presentationTime / a.timeScale : e + a.presentationTimeDelta / a.timeScale;
6320
6320
  }
6321
6321
  class ql {
6322
6322
  constructor(e, t, s) {
@@ -6836,8 +6836,8 @@ class Sr extends Kn {
6836
6836
  const L = t.readUEG(), C = t.readUEG(), x = t.readBoolean();
6837
6837
  let R = 0, D = 0, A = 0, k = 0;
6838
6838
  x && (R += t.readUEG(), D += t.readUEG(), A += t.readUEG(), k += t.readUEG());
6839
- const _ = t.readUEG(), K = t.readUEG(), O = t.readUEG(), B = t.readBoolean();
6840
- for (let J = B ? 0 : s; J <= s; J++)
6839
+ const O = t.readUEG(), K = t.readUEG(), U = t.readUEG(), N = t.readBoolean();
6840
+ for (let J = N ? 0 : s; J <= s; J++)
6841
6841
  t.skipUEG(), t.skipUEG(), t.skipUEG();
6842
6842
  if (t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.skipUEG(), t.readBoolean() && t.readBoolean())
6843
6843
  for (let ge = 0; ge < 4; ge++)
@@ -6851,12 +6851,12 @@ class Sr extends Kn {
6851
6851
  t.readEG();
6852
6852
  }
6853
6853
  t.readBoolean(), t.readBoolean(), t.readBoolean() && (t.readUByte(), t.skipUEG(), t.skipUEG(), t.readBoolean());
6854
- const F = t.readUEG();
6854
+ const w = t.readUEG();
6855
6855
  let Y = 0;
6856
- for (let J = 0; J < F; J++) {
6856
+ for (let J = 0; J < w; J++) {
6857
6857
  let ge = !1;
6858
6858
  if (J !== 0 && (ge = t.readBoolean()), ge) {
6859
- J === F && t.readUEG(), t.readBoolean(), t.readUEG();
6859
+ J === w && t.readUEG(), t.readBoolean(), t.readUEG();
6860
6860
  let Le = 0;
6861
6861
  for (let Xe = 0; Xe <= Y; Xe++) {
6862
6862
  const Ce = t.readBoolean();
@@ -6876,18 +6876,18 @@ class Sr extends Kn {
6876
6876
  if (t.readBoolean()) {
6877
6877
  const J = t.readUEG();
6878
6878
  for (let ge = 0; ge < J; ge++) {
6879
- for (let Le = 0; Le < O + 4; Le++)
6879
+ for (let Le = 0; Le < U + 4; Le++)
6880
6880
  t.readBits(1);
6881
6881
  t.readBits(1);
6882
6882
  }
6883
6883
  }
6884
- let N = 0, w = 1, q = 1, X = !0, te = 1, Z = 0;
6884
+ let M = 0, F = 1, q = 1, X = !0, te = 1, Z = 0;
6885
6885
  t.readBoolean(), t.readBoolean();
6886
6886
  let ae = !1;
6887
6887
  if (t.readBoolean()) {
6888
6888
  if (t.readBoolean()) {
6889
6889
  const Ze = t.readUByte(), Ri = [1, 12, 10, 16, 40, 24, 20, 32, 80, 18, 15, 64, 160, 4, 3, 2], Ft = [1, 11, 11, 11, 33, 11, 11, 11, 33, 11, 11, 33, 99, 3, 2, 1];
6890
- Ze > 0 && Ze < 16 ? (w = Ri[Ze - 1], q = Ft[Ze - 1]) : Ze === 255 && (w = t.readBits(16), q = t.readBits(16));
6890
+ Ze > 0 && Ze < 16 ? (F = Ri[Ze - 1], q = Ft[Ze - 1]) : Ze === 255 && (F = t.readBits(16), q = t.readBits(16));
6891
6891
  }
6892
6892
  if (t.readBoolean() && t.readBoolean(), t.readBoolean() && (t.readBits(3), t.readBoolean(), t.readBoolean() && (t.readUByte(), t.readUByte(), t.readUByte())), t.readBoolean() && (t.readUEG(), t.readUEG()), t.readBoolean(), t.readBoolean(), t.readBoolean(), ae = t.readBoolean(), ae && (R += t.readUEG(), D += t.readUEG(), A += t.readUEG(), k += t.readUEG()), t.readBoolean() && (te = t.readBits(32), Z = t.readBits(32), t.readBoolean() && t.readUEG(), t.readBoolean())) {
6893
6893
  const Ft = t.readBoolean(), bi = t.readBoolean();
@@ -6907,12 +6907,12 @@ class Sr extends Kn {
6907
6907
  t.readUEG(), t.readUEG(), yt && (t.readUEG(), t.readUEG()), t.skipBits(1);
6908
6908
  }
6909
6909
  }
6910
- t.readBoolean() && (t.readBoolean(), t.readBoolean(), t.readBoolean(), N = t.readUEG());
6910
+ t.readBoolean() && (t.readBoolean(), t.readBoolean(), t.readBoolean(), M = t.readUEG());
6911
6911
  }
6912
- let fe = L, ve = C;
6912
+ let fe = L, Se = C;
6913
6913
  if (x || ae) {
6914
6914
  let J = 1, ge = 1;
6915
- S === 1 ? J = ge = 2 : S == 2 && (J = 2), fe = L - J * D - J * R, ve = C - ge * k - ge * A;
6915
+ S === 1 ? J = ge = 2 : S == 2 && (J = 2), fe = L - J * D - J * R, Se = C - ge * k - ge * A;
6916
6916
  }
6917
6917
  const Qe = i ? ["A", "B", "C"][i] : "", pa = o << 24 | c << 16 | l << 8 | h;
6918
6918
  let ps = 0;
@@ -6928,10 +6928,10 @@ class Sr extends Kn {
6928
6928
  general_profile_compatibility_flags: [o, c, l, h],
6929
6929
  general_constraint_indicator_flags: [u, d, f, g, E, p],
6930
6930
  general_level_idc: T,
6931
- bit_depth: _ + 8,
6932
- bit_depth_luma_minus8: _,
6931
+ bit_depth: O + 8,
6932
+ bit_depth_luma_minus8: O,
6933
6933
  bit_depth_chroma_minus8: K,
6934
- min_spatial_segmentation_idc: N,
6934
+ min_spatial_segmentation_idc: M,
6935
6935
  chroma_format_idc: S,
6936
6936
  frame_rate: {
6937
6937
  fixed: X,
@@ -6939,8 +6939,8 @@ class Sr extends Kn {
6939
6939
  }
6940
6940
  },
6941
6941
  width: fe,
6942
- height: ve,
6943
- pixelRatio: [w, q]
6942
+ height: Se,
6943
+ pixelRatio: [F, q]
6944
6944
  };
6945
6945
  }
6946
6946
  readPPS(e) {
@@ -7094,8 +7094,8 @@ class je {
7094
7094
  break;
7095
7095
  case v: {
7096
7096
  R && (k += e[k] + 1);
7097
- const _ = Ql(e, k, this.typeSupported, s, this.observer, this.logger);
7098
- h = _.videoPid, h > 0 && (n.pid = h, n.segmentCodec = _.segmentVideoCodec), d = _.audioPid, d > 0 && (o.pid = d, o.segmentCodec = _.segmentAudioCodec), f = _.id3Pid, f > 0 && (c.pid = f), p !== null && !T && (this.logger.warn(`MPEG-TS PMT found at ${x} after unknown PID '${p}'. Backtracking to sync byte @${S} to parse all TS packets.`), p = null, x = S - 188), T = this.pmtParsed = !0;
7097
+ const O = Ql(e, k, this.typeSupported, s, this.observer, this.logger);
7098
+ h = O.videoPid, h > 0 && (n.pid = h, n.segmentCodec = O.segmentVideoCodec), d = O.audioPid, d > 0 && (o.pid = d, o.segmentCodec = O.segmentAudioCodec), f = O.id3Pid, f > 0 && (c.pid = f), p !== null && !T && (this.logger.warn(`MPEG-TS PMT found at ${x} after unknown PID '${p}'. Backtracking to sync byte @${S} to parse all TS packets.`), p = null, x = S - 188), T = this.pmtParsed = !0;
7099
7099
  break;
7100
7100
  }
7101
7101
  case 17:
@@ -7350,7 +7350,7 @@ function Ql(a, e, t, s, i, r) {
7350
7350
  }
7351
7351
  function Qs(a, e, t, s) {
7352
7352
  s.warn(`parsing error: ${e.message}`), a.emit(m.ERROR, m.ERROR, {
7353
- type: $.MEDIA_ERROR,
7353
+ type: V.MEDIA_ERROR,
7354
7354
  details: b.FRAG_PARSING_ERROR,
7355
7355
  fatal: !1,
7356
7356
  levelRetry: t,
@@ -8677,30 +8677,30 @@ class Zt extends we {
8677
8677
  if ((!T || S) && (!v || L) || this.ISGenerated || o) {
8678
8678
  if (this.ISGenerated) {
8679
8679
  var x, R, D, A;
8680
- const O = this.videoTrackConfig;
8681
- (O && (t.width !== O.width || t.height !== O.height || ((x = t.pixelRatio) == null ? void 0 : x[0]) !== ((R = O.pixelRatio) == null ? void 0 : R[0]) || ((D = t.pixelRatio) == null ? void 0 : D[1]) !== ((A = O.pixelRatio) == null ? void 0 : A[1])) || !O && L || this.nextAudioTs === null && S) && this.resetInitSegment();
8680
+ const U = this.videoTrackConfig;
8681
+ (U && (t.width !== U.width || t.height !== U.height || ((x = t.pixelRatio) == null ? void 0 : x[0]) !== ((R = U.pixelRatio) == null ? void 0 : R[0]) || ((D = t.pixelRatio) == null ? void 0 : D[1]) !== ((A = U.pixelRatio) == null ? void 0 : A[1])) || !U && L || this.nextAudioTs === null && S) && this.resetInitSegment();
8682
8682
  }
8683
8683
  this.ISGenerated || (u = this.generateIS(e, t, r, n));
8684
8684
  const k = this.isVideoContiguous;
8685
- let _ = -1, K;
8686
- if (L && (_ = rc(t.samples), !k && this.config.forceKeyFrameOnDiscontinuity))
8687
- if (g = !0, _ > 0) {
8688
- this.warn(`Dropped ${_} out of ${y} video samples due to a missing keyframe`);
8689
- const O = this.getVideoStartPts(t.samples);
8690
- t.samples = t.samples.slice(_), t.dropped += _, p += (t.samples[0].pts - O) / t.inputTimeScale, K = p;
8691
- } else _ === -1 && (this.warn(`No keyframe found out of ${y} video samples`), g = !1);
8685
+ let O = -1, K;
8686
+ if (L && (O = rc(t.samples), !k && this.config.forceKeyFrameOnDiscontinuity))
8687
+ if (g = !0, O > 0) {
8688
+ this.warn(`Dropped ${O} out of ${y} video samples due to a missing keyframe`);
8689
+ const U = this.getVideoStartPts(t.samples);
8690
+ t.samples = t.samples.slice(O), t.dropped += O, p += (t.samples[0].pts - U) / t.inputTimeScale, K = p;
8691
+ } else O === -1 && (this.warn(`No keyframe found out of ${y} video samples`), g = !1);
8692
8692
  if (this.ISGenerated) {
8693
8693
  if (S && L) {
8694
- const O = this.getVideoStartPts(t.samples), M = (Re(e.samples[0].pts, O) - O) / t.inputTimeScale;
8695
- E += Math.max(0, M), p += Math.max(0, -M);
8694
+ const U = this.getVideoStartPts(t.samples), _ = (Re(e.samples[0].pts, U) - U) / t.inputTimeScale;
8695
+ E += Math.max(0, _), p += Math.max(0, -_);
8696
8696
  }
8697
8697
  if (S) {
8698
8698
  if (e.samplerate || (this.warn("regenerate InitSegment as audio detected"), u = this.generateIS(e, t, r, n)), h = this.remuxAudio(e, E, this.isAudioContiguous, n, v || L || c === G.AUDIO ? p : void 0), L) {
8699
- const O = h ? h.endPTS - h.startPTS : 0;
8700
- t.inputTimeScale || (this.warn("regenerate InitSegment as video detected"), u = this.generateIS(e, t, r, n)), l = this.remuxVideo(t, p, k, O);
8699
+ const U = h ? h.endPTS - h.startPTS : 0;
8700
+ t.inputTimeScale || (this.warn("regenerate InitSegment as video detected"), u = this.generateIS(e, t, r, n)), l = this.remuxVideo(t, p, k, U);
8701
8701
  }
8702
8702
  } else L && (l = this.remuxVideo(t, p, k, 0));
8703
- l && (l.firstKeyFrame = _, l.independent = _ !== -1, l.firstKeyFramePTS = K);
8703
+ l && (l.firstKeyFrame = O, l.independent = O !== -1, l.firstKeyFramePTS = K);
8704
8704
  }
8705
8705
  }
8706
8706
  return this.ISGenerated && this._initPTS && this._initDTS && (s.samples.length && (f = Hn(s, r, this._initPTS, this._initDTS)), i.samples.length && (d = Yn(i, r, this._initPTS))), {
@@ -8774,59 +8774,59 @@ class Zt extends we {
8774
8774
  const r = e.inputTimeScale, n = e.samples, o = [], c = n.length, l = this._initPTS, h = l.baseTime * r / l.timescale;
8775
8775
  let u = this.nextVideoTs, d = 8, f = this.videoSampleDuration, g, E, p = Number.POSITIVE_INFINITY, T = Number.NEGATIVE_INFINITY, v = !1;
8776
8776
  if (!s || u === null) {
8777
- const N = h + t * r, w = n[0].pts - Re(n[0].dts, n[0].pts);
8778
- ht && u !== null && Math.abs(N - w - (u + h)) < 15e3 ? s = !0 : u = N - w - h;
8777
+ const M = h + t * r, F = n[0].pts - Re(n[0].dts, n[0].pts);
8778
+ ht && u !== null && Math.abs(M - F - (u + h)) < 15e3 ? s = !0 : u = M - F - h;
8779
8779
  }
8780
8780
  const y = u + h;
8781
- for (let N = 0; N < c; N++) {
8782
- const w = n[N];
8783
- w.pts = Re(w.pts, y), w.dts = Re(w.dts, y), w.dts < n[N > 0 ? N - 1 : N].dts && (v = !0);
8781
+ for (let M = 0; M < c; M++) {
8782
+ const F = n[M];
8783
+ F.pts = Re(F.pts, y), F.dts = Re(F.dts, y), F.dts < n[M > 0 ? M - 1 : M].dts && (v = !0);
8784
8784
  }
8785
- v && n.sort(function(N, w) {
8786
- const q = N.dts - w.dts, X = N.pts - w.pts;
8785
+ v && n.sort(function(M, F) {
8786
+ const q = M.dts - F.dts, X = M.pts - F.pts;
8787
8787
  return q || X;
8788
8788
  }), g = n[0].dts, E = n[n.length - 1].dts;
8789
8789
  const S = E - g, L = S ? Math.round(S / (c - 1)) : f || e.inputTimeScale / 30;
8790
8790
  if (s) {
8791
- const N = g - y, w = N > L, q = N < -1;
8792
- if ((w || q) && (w ? this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(N, !0)} ms (${N}dts) hole between fragments detected at ${t.toFixed(3)}`) : this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(-N, !0)} ms (${N}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !q || y >= n[0].pts || ht)) {
8791
+ const M = g - y, F = M > L, q = M < -1;
8792
+ if ((F || q) && (F ? this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(M, !0)} ms (${M}dts) hole between fragments detected at ${t.toFixed(3)}`) : this.warn(`${(e.segmentCodec || "").toUpperCase()}: ${xt(-M, !0)} ms (${M}dts) overlapping between fragments detected at ${t.toFixed(3)}`), !q || y >= n[0].pts || ht)) {
8793
8793
  g = y;
8794
- const X = n[0].pts - N;
8795
- if (w)
8794
+ const X = n[0].pts - M;
8795
+ if (F)
8796
8796
  n[0].dts = g, n[0].pts = X;
8797
8797
  else {
8798
8798
  let te = !0;
8799
8799
  for (let Z = 0; Z < n.length && !(n[Z].dts > X && te); Z++) {
8800
8800
  const ae = n[Z].pts;
8801
- if (n[Z].dts -= N, n[Z].pts -= N, Z < n.length - 1) {
8802
- const ye = n[Z + 1].pts, fe = n[Z].pts, ve = ye <= fe, Qe = ye <= ae;
8803
- te = ve == Qe;
8801
+ if (n[Z].dts -= M, n[Z].pts -= M, Z < n.length - 1) {
8802
+ const ve = n[Z + 1].pts, fe = n[Z].pts, Se = ve <= fe, Qe = ve <= ae;
8803
+ te = Se == Qe;
8804
8804
  }
8805
8805
  }
8806
8806
  }
8807
- this.log(`Video: Initial PTS/DTS adjusted: ${xt(X, !0)}/${xt(g, !0)}, delta: ${xt(N, !0)} ms`);
8807
+ this.log(`Video: Initial PTS/DTS adjusted: ${xt(X, !0)}/${xt(g, !0)}, delta: ${xt(M, !0)} ms`);
8808
8808
  }
8809
8809
  }
8810
8810
  g = Math.max(0, g);
8811
8811
  let C = 0, x = 0, R = g;
8812
- for (let N = 0; N < c; N++) {
8813
- const w = n[N], q = w.units, X = q.length;
8812
+ for (let M = 0; M < c; M++) {
8813
+ const F = n[M], q = F.units, X = q.length;
8814
8814
  let te = 0;
8815
8815
  for (let Z = 0; Z < X; Z++)
8816
8816
  te += q[Z].data.length;
8817
- x += te, C += X, w.length = te, w.dts < R ? (w.dts = R, R += L / 4 | 0 || 1) : R = w.dts, p = Math.min(w.pts, p), T = Math.max(w.pts, T);
8817
+ x += te, C += X, F.length = te, F.dts < R ? (F.dts = R, R += L / 4 | 0 || 1) : R = F.dts, p = Math.min(F.pts, p), T = Math.max(F.pts, T);
8818
8818
  }
8819
8819
  E = n[c - 1].dts;
8820
8820
  const D = x + 4 * C + 8;
8821
8821
  let A;
8822
8822
  try {
8823
8823
  A = new Uint8Array(D);
8824
- } catch (N) {
8824
+ } catch (M) {
8825
8825
  this.observer.emit(m.ERROR, m.ERROR, {
8826
- type: $.MUX_ERROR,
8826
+ type: V.MUX_ERROR,
8827
8827
  details: b.REMUX_ALLOC_ERROR,
8828
8828
  fatal: !1,
8829
- error: N,
8829
+ error: M,
8830
8830
  bytes: D,
8831
8831
  reason: `fail allocating video mdat ${D}`
8832
8832
  });
@@ -8834,51 +8834,51 @@ class Zt extends we {
8834
8834
  }
8835
8835
  const k = new DataView(A.buffer);
8836
8836
  k.setUint32(0, D), A.set(I.types.mdat, 4);
8837
- let _ = !1, K = Number.POSITIVE_INFINITY, O = Number.POSITIVE_INFINITY, B = Number.NEGATIVE_INFINITY, M = Number.NEGATIVE_INFINITY;
8838
- for (let N = 0; N < c; N++) {
8839
- const w = n[N], q = w.units;
8837
+ let O = !1, K = Number.POSITIVE_INFINITY, U = Number.POSITIVE_INFINITY, N = Number.NEGATIVE_INFINITY, _ = Number.NEGATIVE_INFINITY;
8838
+ for (let M = 0; M < c; M++) {
8839
+ const F = n[M], q = F.units;
8840
8840
  let X = 0;
8841
- for (let ae = 0, ye = q.length; ae < ye; ae++) {
8842
- const fe = q[ae], ve = fe.data, Qe = fe.data.byteLength;
8843
- k.setUint32(d, Qe), d += 4, A.set(ve, d), d += Qe, X += 4 + Qe;
8841
+ for (let ae = 0, ve = q.length; ae < ve; ae++) {
8842
+ const fe = q[ae], Se = fe.data, Qe = fe.data.byteLength;
8843
+ k.setUint32(d, Qe), d += 4, A.set(Se, d), d += Qe, X += 4 + Qe;
8844
8844
  }
8845
8845
  let te;
8846
- if (N < c - 1)
8847
- f = n[N + 1].dts - w.dts, te = n[N + 1].pts - w.pts;
8846
+ if (M < c - 1)
8847
+ f = n[M + 1].dts - F.dts, te = n[M + 1].pts - F.pts;
8848
8848
  else {
8849
- const ae = this.config, ye = N > 0 ? w.dts - n[N - 1].dts : L;
8850
- if (te = N > 0 ? w.pts - n[N - 1].pts : L, ae.stretchShortVideoTrack && this.nextAudioTs !== null) {
8851
- const fe = Math.floor(ae.maxBufferHole * r), ve = (i ? p + i * r : this.nextAudioTs + h) - w.pts;
8852
- ve > fe ? (f = ve - ye, f < 0 ? f = ye : _ = !0, this.log(`It is approximately ${ve / 90} ms to the next segment; using duration ${f / 90} ms for the last video frame.`)) : f = ye;
8849
+ const ae = this.config, ve = M > 0 ? F.dts - n[M - 1].dts : L;
8850
+ if (te = M > 0 ? F.pts - n[M - 1].pts : L, ae.stretchShortVideoTrack && this.nextAudioTs !== null) {
8851
+ const fe = Math.floor(ae.maxBufferHole * r), Se = (i ? p + i * r : this.nextAudioTs + h) - F.pts;
8852
+ Se > fe ? (f = Se - ve, f < 0 ? f = ve : O = !0, this.log(`It is approximately ${Se / 90} ms to the next segment; using duration ${f / 90} ms for the last video frame.`)) : f = ve;
8853
8853
  } else
8854
- f = ye;
8854
+ f = ve;
8855
8855
  }
8856
- const Z = Math.round(w.pts - w.dts);
8857
- K = Math.min(K, f), B = Math.max(B, f), O = Math.min(O, te), M = Math.max(M, te), o.push(Ar(w.key, f, X, Z));
8856
+ const Z = Math.round(F.pts - F.dts);
8857
+ K = Math.min(K, f), N = Math.max(N, f), U = Math.min(U, te), _ = Math.max(_, te), o.push(Ar(F.key, f, X, Z));
8858
8858
  }
8859
8859
  if (o.length) {
8860
8860
  if (ht) {
8861
8861
  if (ht < 70) {
8862
- const N = o[0].flags;
8863
- N.dependsOn = 2, N.isNonSync = 0;
8862
+ const M = o[0].flags;
8863
+ M.dependsOn = 2, M.isNonSync = 0;
8864
8864
  }
8865
- } else if (bs && M - O < B - K && L / B < 0.025 && o[0].cts === 0) {
8865
+ } else if (bs && _ - U < N - K && L / N < 0.025 && o[0].cts === 0) {
8866
8866
  this.warn("Found irregular gaps in sample duration. Using PTS instead of DTS to determine MP4 sample duration.");
8867
- let N = g;
8868
- for (let w = 0, q = o.length; w < q; w++) {
8869
- const X = N + o[w].duration, te = N + o[w].cts;
8870
- if (w < q - 1) {
8871
- const Z = X + o[w + 1].cts;
8872
- o[w].duration = Z - te;
8867
+ let M = g;
8868
+ for (let F = 0, q = o.length; F < q; F++) {
8869
+ const X = M + o[F].duration, te = M + o[F].cts;
8870
+ if (F < q - 1) {
8871
+ const Z = X + o[F + 1].cts;
8872
+ o[F].duration = Z - te;
8873
8873
  } else
8874
- o[w].duration = w ? o[w - 1].duration : L;
8875
- o[w].cts = 0, N = X;
8874
+ o[F].duration = F ? o[F - 1].duration : L;
8875
+ o[F].cts = 0, M = X;
8876
8876
  }
8877
8877
  }
8878
8878
  }
8879
- f = _ || !f ? L : f;
8880
- const V = E + f;
8881
- this.nextVideoTs = u = V - h, this.videoSampleDuration = f, this.isVideoContiguous = !0;
8879
+ f = O || !f ? L : f;
8880
+ const $ = E + f;
8881
+ this.nextVideoTs = u = $ - h, this.videoSampleDuration = f, this.isVideoContiguous = !0;
8882
8882
  const H = {
8883
8883
  data1: I.moof(e.sequenceNumber++, g, se(e, {
8884
8884
  samples: o
@@ -8910,54 +8910,54 @@ class Zt extends we {
8910
8910
  const n = e.inputTimeScale, o = e.samplerate ? e.samplerate : n, c = n / o, l = this.getSamplesPerFrame(e), h = l * c, u = this._initPTS, d = e.segmentCodec === "mp3" && this.typeSupported.mpeg, f = [], g = r !== void 0;
8911
8911
  let E = e.samples, p = d ? 0 : 8, T = this.nextAudioTs || -1;
8912
8912
  const v = u.baseTime * n / u.timescale, y = v + t * n;
8913
- if (this.isAudioContiguous = s = s || E.length && T > 0 && (i && Math.abs(y - (T + v)) < 9e3 || Math.abs(Re(E[0].pts, y) - (T + v)) < 20 * h), E.forEach(function(M) {
8914
- M.pts = Re(M.pts, y);
8913
+ if (this.isAudioContiguous = s = s || E.length && T > 0 && (i && Math.abs(y - (T + v)) < 9e3 || Math.abs(Re(E[0].pts, y) - (T + v)) < 20 * h), E.forEach(function(_) {
8914
+ _.pts = Re(_.pts, y);
8915
8915
  }), !s || T < 0) {
8916
- if (E = E.filter((M) => M.pts >= 0), !E.length)
8916
+ if (E = E.filter((_) => _.pts >= 0), !E.length)
8917
8917
  return;
8918
8918
  r === 0 ? T = 0 : i && !g ? T = Math.max(0, y - v) : T = E[0].pts - v;
8919
8919
  }
8920
8920
  if (e.segmentCodec === "aac") {
8921
- const M = this.config.maxAudioFramesDrift;
8922
- for (let V = 0, F = T + v; V < E.length; V++) {
8923
- const Y = E[V], H = Y.pts, N = H - F, w = Math.abs(1e3 * N / n);
8924
- if (N <= -M * h && g)
8925
- V === 0 && (this.warn(`Audio frame @ ${(H / n).toFixed(3)}s overlaps marker by ${Math.round(1e3 * N / n)} ms.`), this.nextAudioTs = T = H - v, F = H);
8926
- else if (N >= M * h && w < ec && g) {
8927
- let q = Math.round(N / h);
8928
- for (F = H - q * h; F < 0 && q && h; )
8929
- q--, F += h;
8930
- V === 0 && (this.nextAudioTs = T = F - v), this.warn(`Injecting ${q} audio frames @ ${((F - v) / n).toFixed(3)}s due to ${Math.round(1e3 * N / n)} ms gap.`);
8921
+ const _ = this.config.maxAudioFramesDrift;
8922
+ for (let $ = 0, w = T + v; $ < E.length; $++) {
8923
+ const Y = E[$], H = Y.pts, M = H - w, F = Math.abs(1e3 * M / n);
8924
+ if (M <= -_ * h && g)
8925
+ $ === 0 && (this.warn(`Audio frame @ ${(H / n).toFixed(3)}s overlaps marker by ${Math.round(1e3 * M / n)} ms.`), this.nextAudioTs = T = H - v, w = H);
8926
+ else if (M >= _ * h && F < ec && g) {
8927
+ let q = Math.round(M / h);
8928
+ for (w = H - q * h; w < 0 && q && h; )
8929
+ q--, w += h;
8930
+ $ === 0 && (this.nextAudioTs = T = w - v), this.warn(`Injecting ${q} audio frames @ ${((w - v) / n).toFixed(3)}s due to ${Math.round(1e3 * M / n)} ms gap.`);
8931
8931
  for (let X = 0; X < q; X++) {
8932
8932
  let te = Xl.getSilentFrame(e.parsedCodec || e.manifestCodec || e.codec, e.channelCount);
8933
- te || (this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), te = Y.unit.subarray()), E.splice(V, 0, {
8933
+ te || (this.log("Unable to get silent frame for given audio codec; duplicating last frame instead."), te = Y.unit.subarray()), E.splice($, 0, {
8934
8934
  unit: te,
8935
- pts: F
8936
- }), F += h, V++;
8935
+ pts: w
8936
+ }), w += h, $++;
8937
8937
  }
8938
8938
  }
8939
- Y.pts = F, F += h;
8939
+ Y.pts = w, w += h;
8940
8940
  }
8941
8941
  }
8942
8942
  let S = null, L = null, C, x = 0, R = E.length;
8943
8943
  for (; R--; )
8944
8944
  x += E[R].unit.byteLength;
8945
- for (let M = 0, V = E.length; M < V; M++) {
8946
- const F = E[M], Y = F.unit;
8947
- let H = F.pts;
8945
+ for (let _ = 0, $ = E.length; _ < $; _++) {
8946
+ const w = E[_], Y = w.unit;
8947
+ let H = w.pts;
8948
8948
  if (L !== null) {
8949
- const w = f[M - 1];
8950
- w.duration = Math.round((H - L) / c);
8949
+ const F = f[_ - 1];
8950
+ F.duration = Math.round((H - L) / c);
8951
8951
  } else if (s && e.segmentCodec === "aac" && (H = T + v), S = H, x > 0) {
8952
8952
  x += p;
8953
8953
  try {
8954
8954
  C = new Uint8Array(x);
8955
- } catch (w) {
8955
+ } catch (F) {
8956
8956
  this.observer.emit(m.ERROR, m.ERROR, {
8957
- type: $.MUX_ERROR,
8957
+ type: V.MUX_ERROR,
8958
8958
  details: b.REMUX_ALLOC_ERROR,
8959
8959
  fatal: !1,
8960
- error: w,
8960
+ error: F,
8961
8961
  bytes: x,
8962
8962
  reason: `fail allocating audio mdat ${x}`
8963
8963
  });
@@ -8967,8 +8967,8 @@ class Zt extends we {
8967
8967
  } else
8968
8968
  return;
8969
8969
  C.set(Y, p);
8970
- const N = Y.byteLength;
8971
- p += N, f.push(Ar(!0, l, N, 0)), L = H;
8970
+ const M = Y.byteLength;
8971
+ p += M, f.push(Ar(!0, l, M, 0)), L = H;
8972
8972
  }
8973
8973
  const D = f.length;
8974
8974
  if (!D)
@@ -8979,19 +8979,19 @@ class Zt extends we {
8979
8979
  samples: f
8980
8980
  }));
8981
8981
  e.samples = [];
8982
- const _ = (S - v) / n, K = T / n, B = {
8982
+ const O = (S - v) / n, K = T / n, N = {
8983
8983
  data1: k,
8984
8984
  data2: C,
8985
- startPTS: _,
8985
+ startPTS: O,
8986
8986
  endPTS: K,
8987
- startDTS: _,
8987
+ startDTS: O,
8988
8988
  endDTS: K,
8989
8989
  type: "audio",
8990
8990
  hasAudio: !0,
8991
8991
  hasVideo: !1,
8992
8992
  nb: D
8993
8993
  };
8994
- return this.isAudioContiguous = !0, B;
8994
+ return this.isAudioContiguous = !0, N;
8995
8995
  }
8996
8996
  }
8997
8997
  function Re(a, e) {
@@ -9098,7 +9098,7 @@ class nc extends we {
9098
9098
  id3: s,
9099
9099
  initSegment: void 0
9100
9100
  };
9101
- U(h) || (h = this.lastEndTime = r || 0);
9101
+ B(h) || (h = this.lastEndTime = r || 0);
9102
9102
  const d = t.samples;
9103
9103
  if (!(d != null && d.length))
9104
9104
  return u;
@@ -9114,10 +9114,10 @@ class nc extends we {
9114
9114
  const E = Za(d, g, this), p = g.audio ? E[g.audio.id] : null, T = g.video ? E[g.video.id] : null, v = Vt(T, 1 / 0), y = Vt(p, 1 / 0), S = Vt(T, 0, !0), L = Vt(p, 0, !0);
9115
9115
  let C, x = r, R = 0;
9116
9116
  if (p && (!T || !l && y < v || l && l.trackId === g.audio.id) ? (f.trackId = g.audio.id, C = p, R = L - y) : T && (f.trackId = g.video.id, C = T, R = S - v), C) {
9117
- const M = C.timescale;
9118
- x = C.start / M, f.initPTS = C.start - r * M, f.timescale = M, l || (this.initPTS = l = {
9117
+ const _ = C.timescale;
9118
+ x = C.start / _, f.initPTS = C.start - r * _, f.timescale = _, l || (this.initPTS = l = {
9119
9119
  baseTime: f.initPTS,
9120
- timescale: M,
9120
+ timescale: _,
9121
9121
  trackId: f.trackId
9122
9122
  });
9123
9123
  }
@@ -9127,10 +9127,10 @@ class nc extends we {
9127
9127
  });
9128
9128
  const D = e ? x - l.baseTime / l.timescale : h, A = D + R;
9129
9129
  R > 0 ? this.lastEndTime = A : (this.warn("Duration parsed from mp4 should be greater than zero"), this.resetNextTimestamp());
9130
- const k = !!g.audio, _ = !!g.video;
9130
+ const k = !!g.audio, O = !!g.video;
9131
9131
  let K = "";
9132
- k && (K += "audio"), _ && (K += "video");
9133
- const O = {
9132
+ k && (K += "audio"), O && (K += "video");
9133
+ const U = {
9134
9134
  data1: d,
9135
9135
  startPTS: D,
9136
9136
  startDTS: D,
@@ -9138,15 +9138,15 @@ class nc extends we {
9138
9138
  endDTS: A,
9139
9139
  type: K,
9140
9140
  hasAudio: k,
9141
- hasVideo: _,
9141
+ hasVideo: O,
9142
9142
  nb: 1,
9143
9143
  dropped: 0
9144
9144
  };
9145
- u.audio = k && !_ ? O : void 0, u.video = _ ? O : void 0;
9146
- const B = T == null ? void 0 : T.sampleCount;
9147
- if (B) {
9148
- const M = T.keyFrameIndex, V = M !== -1;
9149
- O.nb = B, O.dropped = M === 0 || this.isVideoContiguous ? 0 : V ? M : B, O.independent = V, O.firstKeyFrame = M, V && T.keyFrameStart && (O.firstKeyFramePTS = (T.keyFrameStart - l.baseTime) / l.timescale), this.isVideoContiguous || (u.independent = V), this.isVideoContiguous || (this.isVideoContiguous = V), O.dropped && this.warn(`fmp4 does not start with IDR: firstIDR ${M}/${B} dropped: ${O.dropped} start: ${O.firstKeyFramePTS || "NA"}`);
9145
+ u.audio = k && !O ? U : void 0, u.video = O ? U : void 0;
9146
+ const N = T == null ? void 0 : T.sampleCount;
9147
+ if (N) {
9148
+ const _ = T.keyFrameIndex, $ = _ !== -1;
9149
+ U.nb = N, U.dropped = _ === 0 || this.isVideoContiguous ? 0 : $ ? _ : N, U.independent = $, U.firstKeyFrame = _, $ && T.keyFrameStart && (U.firstKeyFramePTS = (T.keyFrameStart - l.baseTime) / l.timescale), this.isVideoContiguous || (u.independent = $), this.isVideoContiguous || (this.isVideoContiguous = $), U.dropped && this.warn(`fmp4 does not start with IDR: firstIDR ${_}/${N} dropped: ${U.dropped} start: ${U.firstKeyFramePTS || "NA"}`);
9150
9150
  }
9151
9151
  return u.initSegment = f, u.id3 = Hn(s, r, l, l), i.samples.length && (u.text = Yn(i, r, l)), u;
9152
9152
  }
@@ -9222,8 +9222,8 @@ class Lr {
9222
9222
  if (R.isSync()) {
9223
9223
  let A = R.softwareDecrypt(n, S.key.buffer, S.iv.buffer, D);
9224
9224
  if (s.part > -1) {
9225
- const _ = R.flush();
9226
- A = _ && _.buffer;
9225
+ const O = R.flush();
9226
+ A = O && O.buffer;
9227
9227
  }
9228
9228
  if (!A)
9229
9229
  return r.executeEnd = Ve(), Ds(s);
@@ -9239,7 +9239,7 @@ class Lr {
9239
9239
  const R = this.configureTransmuxer(n);
9240
9240
  if (R)
9241
9241
  return this.logger.warn(`[transmuxer] ${R.message}`), this.observer.emit(m.ERROR, m.ERROR, {
9242
- type: $.MEDIA_ERROR,
9242
+ type: V.MEDIA_ERROR,
9243
9243
  details: b.FRAG_PARSING_ERROR,
9244
9244
  fatal: !1,
9245
9245
  error: R,
@@ -9428,7 +9428,7 @@ class Wn {
9428
9428
  return;
9429
9429
  const l = new Error(`${c.message} (${c.filename}:${c.lineno})`);
9430
9430
  this.hls.config.enableWorker = !1, this.hls.logger.warn(`Error in "${this.id}" Web Worker, fallback to inline`), this.hls.trigger(m.ERROR, {
9431
- type: $.OTHER_ERROR,
9431
+ type: V.OTHER_ERROR,
9432
9432
  details: b.INTERNAL_EXCEPTION,
9433
9433
  fatal: !1,
9434
9434
  event: "demuxerWorker",
@@ -9529,10 +9529,10 @@ class Wn {
9529
9529
  }, e instanceof ArrayBuffer ? [e] : []);
9530
9530
  else if (g) {
9531
9531
  const k = g.push(e, p, l, A);
9532
- wt(k) ? k.then((_) => {
9533
- this.handleTransmuxComplete(_);
9534
- }).catch((_) => {
9535
- this.transmuxerError(_, l, "transmuxer-interface push error");
9532
+ wt(k) ? k.then((O) => {
9533
+ this.handleTransmuxComplete(O);
9534
+ }).catch((O) => {
9535
+ this.transmuxerError(O, l, "transmuxer-interface push error");
9536
9536
  }) : this.handleTransmuxComplete(k);
9537
9537
  }
9538
9538
  }
@@ -9559,7 +9559,7 @@ class Wn {
9559
9559
  }
9560
9560
  transmuxerError(e, t, s) {
9561
9561
  this.hls && (this.error = e, this.hls.trigger(m.ERROR, {
9562
- type: $.MEDIA_ERROR,
9562
+ type: V.MEDIA_ERROR,
9563
9563
  details: b.FRAG_PARSING_ERROR,
9564
9564
  chunkMeta: t,
9565
9565
  frag: this.frag || void 0,
@@ -10181,7 +10181,7 @@ class Si extends we {
10181
10181
  networkDetails: S
10182
10182
  } = t;
10183
10183
  y.trigger(m.ERROR, {
10184
- type: $.NETWORK_ERROR,
10184
+ type: V.NETWORK_ERROR,
10185
10185
  details: b.LEVEL_PARSING_ERROR,
10186
10186
  fatal: !1,
10187
10187
  url: i.url,
@@ -10215,8 +10215,8 @@ class Si extends we {
10215
10215
  else {
10216
10216
  const k = Math.floor(A / i.targetduration);
10217
10217
  if (p += k, T !== void 0) {
10218
- const _ = Math.round(A % i.targetduration / i.partTarget);
10219
- T += _;
10218
+ const O = Math.round(A % i.targetduration / i.partTarget);
10219
+ T += O;
10220
10220
  }
10221
10221
  this.log(`CDN Tune-in age: ${i.ageHeader}s last advanced ${R.toFixed(2)}s goal: ${A} skip sn ${k} to part ${T}`);
10222
10222
  }
@@ -10368,7 +10368,7 @@ class uc extends Si {
10368
10368
  var n;
10369
10369
  const d = new Error(`No audio track selected for current audio group-ID(s): ${(n = this.groupIds) == null ? void 0 : n.join(",")} track count: ${o.length}`);
10370
10370
  this.warn(d.message), this.hls.trigger(m.ERROR, {
10371
- type: $.MEDIA_ERROR,
10371
+ type: V.MEDIA_ERROR,
10372
10372
  details: b.AUDIO_TRACK_LOAD_ERROR,
10373
10373
  fatal: !0,
10374
10374
  error: d
@@ -10948,8 +10948,8 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10948
10948
  if (S && d !== "initSegment") {
10949
10949
  const x = c || o, R = this.blockedAudioAppend;
10950
10950
  if (r === "audio" && n !== "main" && !this.blockedAudioAppend) {
10951
- const A = x.start + x.duration * 0.05, k = S.buffered, _ = this.currentOp("video");
10952
- !k.length && !_ ? this.blockAudio(x) : !_ && !j.isBuffered(S, A) && this.lastVideoAppendEnd < A && this.blockAudio(x);
10951
+ const A = x.start + x.duration * 0.05, k = S.buffered, O = this.currentOp("video");
10952
+ !k.length && !O ? this.blockAudio(x) : !O && !j.isBuffered(S, A) && this.lastVideoAppendEnd < A && this.blockAudio(x);
10953
10953
  } else if (r === "video") {
10954
10954
  const D = x.end;
10955
10955
  if (R) {
@@ -10965,7 +10965,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10965
10965
  var x;
10966
10966
  u.executeStart = self.performance.now();
10967
10967
  const R = (x = this.tracks[r]) == null ? void 0 : x.buffer;
10968
- R && (v ? this.updateTimestampOffset(R, L, 0.1, r, d, f) : h !== void 0 && U(h) && this.updateTimestampOffset(R, h, 1e-6, r, d, f)), this.appendExecutor(i, r);
10968
+ R && (v ? this.updateTimestampOffset(R, L, 0.1, r, d, f) : h !== void 0 && B(h) && this.updateTimestampOffset(R, h, 1e-6, r, d, f)), this.appendExecutor(i, r);
10969
10969
  },
10970
10970
  onStart: () => {
10971
10971
  },
@@ -10987,7 +10987,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
10987
10987
  onError: (x) => {
10988
10988
  var R;
10989
10989
  const D = {
10990
- type: $.MEDIA_ERROR,
10990
+ type: V.MEDIA_ERROR,
10991
10991
  parent: o.type,
10992
10992
  details: b.BUFFER_APPEND_ERROR,
10993
10993
  sourceBufferName: r,
@@ -11120,7 +11120,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11120
11120
  if (t.details === b.BUFFER_APPEND_ERROR && t.frag) {
11121
11121
  var s;
11122
11122
  const i = (s = t.errorAction) == null ? void 0 : s.nextAutoLevel;
11123
- U(i) && i !== t.frag.level && this.resetAppendErrors();
11123
+ B(i) && i !== t.frag.level && this.resetAppendErrors();
11124
11124
  }
11125
11125
  }
11126
11126
  resetAppendErrors() {
@@ -11139,11 +11139,11 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11139
11139
  if (!s || t === null || !this.sourceBufferCount)
11140
11140
  return;
11141
11141
  const i = e.config, r = s.currentTime, n = t.levelTargetDuration, o = t.live && i.liveBackBufferLength !== null ? i.liveBackBufferLength : i.backBufferLength;
11142
- if (U(o) && o >= 0) {
11142
+ if (B(o) && o >= 0) {
11143
11143
  const c = Math.max(o, n), l = Math.floor(r / n) * n - c;
11144
11144
  this.flushBackBuffer(r, n, l);
11145
11145
  }
11146
- if (U(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) {
11146
+ if (B(i.frontBufferFlushThreshold) && i.frontBufferFlushThreshold > 0) {
11147
11147
  const c = Math.max(i.maxBufferLength, i.frontBufferFlushThreshold), l = Math.max(c, n), h = Math.floor(r / n) * n + l;
11148
11148
  this.flushFrontBuffer(r, n, h);
11149
11149
  }
@@ -11221,11 +11221,11 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11221
11221
  }
11222
11222
  const r = (e = this.overrides) == null ? void 0 : e.duration;
11223
11223
  if (r)
11224
- return U(r) ? {
11224
+ return B(r) ? {
11225
11225
  duration: r
11226
11226
  } : null;
11227
- const n = this.media.duration, o = U(s.duration) ? s.duration : 0;
11228
- return i > o && i > n || !U(n) ? {
11227
+ const n = this.media.duration, o = B(s.duration) ? s.duration : 0;
11228
+ return i > o && i > n || !B(n) ? {
11229
11229
  duration: i
11230
11230
  } : null;
11231
11231
  }
@@ -11235,7 +11235,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11235
11235
  end: s
11236
11236
  }) {
11237
11237
  const i = this.mediaSource;
11238
- !this.media || !i || i.readyState !== "open" || (i.duration !== e && (U(e) && this.log(`Updating MediaSource duration to ${e.toFixed(3)}`), i.duration = e), t !== void 0 && s !== void 0 && (this.log(`MediaSource duration is set to ${i.duration}. Setting seekable range to ${t}-${s}.`), i.setLiveSeekableRange(t, s)));
11238
+ !this.media || !i || i.readyState !== "open" || (i.duration !== e && (B(e) && this.log(`Updating MediaSource duration to ${e.toFixed(3)}`), i.duration = e), t !== void 0 && s !== void 0 && (this.log(`MediaSource duration is set to ${i.duration}. Setting seekable range to ${t}-${s}.`), i.setLiveSeekableRange(t, s)));
11239
11239
  }
11240
11240
  get tracksReady() {
11241
11241
  const e = this.pendingTrackCount;
@@ -11277,7 +11277,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11277
11277
  } else {
11278
11278
  const e = new Error("could not create source buffer for media codec(s)");
11279
11279
  this.hls.trigger(m.ERROR, {
11280
- type: $.MEDIA_ERROR,
11280
+ type: V.MEDIA_ERROR,
11281
11281
  details: b.BUFFER_INCOMPATIBLE_CODECS_ERROR,
11282
11282
  fatal: !0,
11283
11283
  error: e,
@@ -11304,7 +11304,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11304
11304
  } catch (h) {
11305
11305
  var i;
11306
11306
  this.error(`error while trying to add sourceBuffer: ${h.message}`), this.shiftAndExecuteNext(n), (i = this.operationQueue) == null || i.removeBlockers(), delete this.tracks[n], this.hls.trigger(m.ERROR, {
11307
- type: $.MEDIA_ERROR,
11307
+ type: V.MEDIA_ERROR,
11308
11308
  details: b.BUFFER_ADD_CODEC_ERROR,
11309
11309
  fatal: !1,
11310
11310
  error: h,
@@ -11369,7 +11369,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11369
11369
  var s;
11370
11370
  const i = new Error(`${e} SourceBuffer error. MediaSource readyState: ${(s = this.mediaSource) == null ? void 0 : s.readyState}`);
11371
11371
  this.error(`${i}`, t), this.hls.trigger(m.ERROR, {
11372
- type: $.MEDIA_ERROR,
11372
+ type: V.MEDIA_ERROR,
11373
11373
  details: b.BUFFER_APPENDING_ERROR,
11374
11374
  sourceBufferName: e,
11375
11375
  error: i,
@@ -11392,7 +11392,7 @@ transfer tracks: ${ne(i, (c, l) => c === "initSegment" ? void 0 : l)}}`), !zr(i,
11392
11392
  this.warn(`Attempting to remove from the ${e} SourceBuffer, but it does not exist`), this.shiftAndExecuteNext(e);
11393
11393
  return;
11394
11394
  }
11395
- const c = U(i.duration) ? i.duration : 1 / 0, l = U(r.duration) ? r.duration : 1 / 0, h = Math.max(0, t), u = Math.min(s, c, l);
11395
+ const c = B(i.duration) ? i.duration : 1 / 0, l = B(r.duration) ? r.duration : 1 / 0, h = Math.max(0, t), u = Math.min(s, c, l);
11396
11396
  u > h && (!n.ending || n.ended) ? (n.ended = !1, this.log(`Removing [${h},${u}] from the ${e} SourceBuffer`), o.remove(h, u)) : this.shiftAndExecuteNext(e);
11397
11397
  }
11398
11398
  // This method must result in an updateend event; if append is not called, onSBUpdateEnd must be called manually
@@ -11542,7 +11542,7 @@ class Ai {
11542
11542
  this.restrictedLevels = [], this.firstLevel = t.firstLevel, s.config.capLevelToPlayerSize && t.video && this.startCapping();
11543
11543
  }
11544
11544
  onLevelsUpdated(e, t) {
11545
- this.timer && U(this.autoLevelCapping) && this.detectPlayerSize();
11545
+ this.timer && B(this.autoLevelCapping) && this.detectPlayerSize();
11546
11546
  }
11547
11547
  // Only activate capping when playing a video stream; otherwise, multi-bitrate audio-only streams will be restricted
11548
11548
  // to the first level
@@ -11779,7 +11779,7 @@ function Pr(a) {
11779
11779
  function Zs(a) {
11780
11780
  switch (typeof a) {
11781
11781
  case "number":
11782
- if (!U(a))
11782
+ if (!B(a))
11783
11783
  throw Ue(a, Cr);
11784
11784
  return Number.isInteger(a) ? Qn(a) : Mc(a);
11785
11785
  case "string":
@@ -11833,7 +11833,7 @@ function Wc(a) {
11833
11833
  return ["ot", "sf", "st", "e", "sta"].includes(a);
11834
11834
  }
11835
11835
  function jc(a) {
11836
- return typeof a == "number" ? U(a) : a != null && a !== "" && a !== !1;
11836
+ return typeof a == "number" ? B(a) : a != null && a !== "" && a !== !1;
11837
11837
  }
11838
11838
  function qc(a, e) {
11839
11839
  const t = new URL(a), s = new URL(e);
@@ -12461,7 +12461,7 @@ class gt extends we {
12461
12461
  mediaKeys: u
12462
12462
  })).catch((u) => {
12463
12463
  l.length ? c(l) : u instanceof Ie ? o(u) : o(new Ie({
12464
- type: $.KEY_SYSTEM_ERROR,
12464
+ type: V.KEY_SYSTEM_ERROR,
12465
12465
  details: b.KEY_SYSTEM_NO_ACCESS,
12466
12466
  error: u,
12467
12467
  fatal: !0
@@ -12592,7 +12592,7 @@ class gt extends we {
12592
12592
  }
12593
12593
  handleError(e) {
12594
12594
  this.hls && (this.error(e.message), e instanceof Ie ? this.hls.trigger(m.ERROR, e.data) : this.hls.trigger(m.ERROR, {
12595
- type: $.KEY_SYSTEM_ERROR,
12595
+ type: V.KEY_SYSTEM_ERROR,
12596
12596
  details: b.KEY_SYSTEM_NO_KEYS,
12597
12597
  error: e,
12598
12598
  fatal: !0
@@ -12609,7 +12609,7 @@ class gt extends we {
12609
12609
  getKeySystemSelectionPromise(e) {
12610
12610
  if (e.length || (e = Xt(this.config)), e.length === 0)
12611
12611
  throw new Ie({
12612
- type: $.KEY_SYSTEM_ERROR,
12612
+ type: V.KEY_SYSTEM_ERROR,
12613
12613
  details: b.KEY_SYSTEM_NO_CONFIGURED_LICENSE,
12614
12614
  fatal: !0
12615
12615
  }, `Missing key-system license configuration options ${ne({
@@ -12675,11 +12675,11 @@ class gt extends we {
12675
12675
  const f = new Promise((g, E) => {
12676
12676
  h.on("error", E), h.on("keyStatus", (p) => {
12677
12677
  p.startsWith("usable") ? g() : p === "output-restricted" ? E(new Ie({
12678
- type: $.KEY_SYSTEM_ERROR,
12678
+ type: V.KEY_SYSTEM_ERROR,
12679
12679
  details: b.KEY_SYSTEM_STATUS_OUTPUT_RESTRICTED,
12680
12680
  fatal: !1
12681
12681
  }, "HDCP level output restricted")) : p === "internal-error" ? E(new Ie({
12682
- type: $.KEY_SYSTEM_ERROR,
12682
+ type: V.KEY_SYSTEM_ERROR,
12683
12683
  details: b.KEY_SYSTEM_STATUS_INTERNAL_ERROR,
12684
12684
  fatal: !0
12685
12685
  }, `key status changed to "${p}"`)) : p === "expired" ? E(new Error("key expired while generating request")) : this.warn(`unhandled key status change "${p}"`);
@@ -12690,7 +12690,7 @@ class gt extends we {
12690
12690
  this.log(`Request generated for key-session "${(g = e.mediaKeysSession) == null ? void 0 : g.sessionId}" keyId: ${l}`);
12691
12691
  }).catch((g) => {
12692
12692
  throw new Ie({
12693
- type: $.KEY_SYSTEM_ERROR,
12693
+ type: V.KEY_SYSTEM_ERROR,
12694
12694
  details: b.KEY_SYSTEM_NO_SESSION,
12695
12695
  error: g,
12696
12696
  fatal: !1
@@ -12726,7 +12726,7 @@ class gt extends we {
12726
12726
  },
12727
12727
  onError: (d, f, g, E) => {
12728
12728
  o(new Ie({
12729
- type: $.KEY_SYSTEM_ERROR,
12729
+ type: V.KEY_SYSTEM_ERROR,
12730
12730
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,
12731
12731
  fatal: !0,
12732
12732
  networkDetails: g,
@@ -12738,7 +12738,7 @@ class gt extends we {
12738
12738
  },
12739
12739
  onTimeout: (d, f, g) => {
12740
12740
  o(new Ie({
12741
- type: $.KEY_SYSTEM_ERROR,
12741
+ type: V.KEY_SYSTEM_ERROR,
12742
12742
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_REQUEST_FAILED,
12743
12743
  fatal: !0,
12744
12744
  networkDetails: g,
@@ -12761,7 +12761,7 @@ class gt extends we {
12761
12761
  this.log(`setServerCertificate ${n ? "success" : "not supported by CDM"} (${s == null ? void 0 : s.byteLength}) on "${t}"`), i(e);
12762
12762
  }).catch((n) => {
12763
12763
  r(new Ie({
12764
- type: $.KEY_SYSTEM_ERROR,
12764
+ type: V.KEY_SYSTEM_ERROR,
12765
12765
  details: b.KEY_SYSTEM_SERVER_CERTIFICATE_UPDATE_FAILED,
12766
12766
  error: n,
12767
12767
  fatal: !0
@@ -12772,7 +12772,7 @@ class gt extends we {
12772
12772
  renewLicense(e, t) {
12773
12773
  return this.requestLicense(e, new Uint8Array(t)).then((s) => this.updateKeySession(e, new Uint8Array(s)).catch((i) => {
12774
12774
  throw new Ie({
12775
- type: $.KEY_SYSTEM_ERROR,
12775
+ type: V.KEY_SYSTEM_ERROR,
12776
12776
  details: b.KEY_SYSTEM_SESSION_UPDATE_FAILED,
12777
12777
  error: i,
12778
12778
  fatal: !0
@@ -12842,7 +12842,7 @@ class gt extends we {
12842
12842
  const c = s.errorRetry, l = c ? c.maxNumRetry : 0;
12843
12843
  if (this._requestLicenseFailureCount++, this._requestLicenseFailureCount > l || o.status >= 400 && o.status < 500)
12844
12844
  r(new Ie({
12845
- type: $.KEY_SYSTEM_ERROR,
12845
+ type: V.KEY_SYSTEM_ERROR,
12846
12846
  details: b.KEY_SYSTEM_LICENSE_REQUEST_FAILED,
12847
12847
  fatal: !0,
12848
12848
  networkDetails: o,
@@ -12889,7 +12889,7 @@ class gt extends we {
12889
12889
  gt.CDMCleanupPromise = Promise.all(s.map((r) => this.removeSession(r)).concat(t == null || (e = t.setMediaKeys(null)) == null ? void 0 : e.catch((r) => {
12890
12890
  var n;
12891
12891
  this.log(`Could not clear media keys: ${r}`), (n = this.hls) == null || n.trigger(m.ERROR, {
12892
- type: $.OTHER_ERROR,
12892
+ type: V.OTHER_ERROR,
12893
12893
  details: b.KEY_SYSTEM_DESTROY_MEDIA_KEYS_ERROR,
12894
12894
  fatal: !1,
12895
12895
  error: new Error(`Could not clear media keys: ${r}`)
@@ -12897,7 +12897,7 @@ class gt extends we {
12897
12897
  }))).catch((r) => {
12898
12898
  var n;
12899
12899
  this.log(`Could not close sessions and clear media keys: ${r}`), (n = this.hls) == null || n.trigger(m.ERROR, {
12900
- type: $.OTHER_ERROR,
12900
+ type: V.OTHER_ERROR,
12901
12901
  details: b.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
12902
12902
  fatal: !1,
12903
12903
  error: new Error(`Could not close sessions and clear media keys: ${r}`)
@@ -12934,7 +12934,7 @@ class gt extends we {
12934
12934
  }) : Promise.resolve()).catch((o) => {
12935
12935
  var c;
12936
12936
  this.log(`Could not remove session: ${o}`), (c = this.hls) == null || c.trigger(m.ERROR, {
12937
- type: $.OTHER_ERROR,
12937
+ type: V.OTHER_ERROR,
12938
12938
  details: b.KEY_SYSTEM_DESTROY_REMOVE_SESSION_ERROR,
12939
12939
  fatal: !1,
12940
12940
  error: new Error(`Could not remove session: ${o}`)
@@ -12942,7 +12942,7 @@ class gt extends we {
12942
12942
  }).then(() => t.close()).catch((o) => {
12943
12943
  var c;
12944
12944
  this.log(`Could not close session: ${o}`), (c = this.hls) == null || c.trigger(m.ERROR, {
12945
- type: $.OTHER_ERROR,
12945
+ type: V.OTHER_ERROR,
12946
12946
  details: b.KEY_SYSTEM_DESTROY_CLOSE_SESSION_ERROR,
12947
12947
  fatal: !1,
12948
12948
  error: new Error(`Could not close session: ${o}`)
@@ -13328,7 +13328,7 @@ class ch extends Si {
13328
13328
  this.queuedDefaultTrack = e;
13329
13329
  return;
13330
13330
  }
13331
- if (e < -1 || e >= t.length || !U(e)) {
13331
+ if (e < -1 || e >= t.length || !B(e)) {
13332
13332
  this.warn(`Invalid subtitle track id: ${e}`);
13333
13333
  return;
13334
13334
  }
@@ -13447,7 +13447,7 @@ class dh {
13447
13447
  return !1;
13448
13448
  }
13449
13449
  get resumptionOffset() {
13450
- const e = this.resumeOffset, t = U(e) ? e : this.duration;
13450
+ const e = this.resumeOffset, t = B(e) ? e : this.duration;
13451
13451
  return this.cumulativeDuration + t;
13452
13452
  }
13453
13453
  get resumeTime() {
@@ -13850,11 +13850,11 @@ class mh extends we {
13850
13850
  if (!S) {
13851
13851
  const A = p - c;
13852
13852
  if (A > wr) {
13853
- const k = c, _ = l;
13853
+ const k = c, O = l;
13854
13854
  l += A;
13855
13855
  const K = n;
13856
13856
  n += A;
13857
- const O = {
13857
+ const U = {
13858
13858
  previousEvent: e[u - 1] || null,
13859
13859
  nextEvent: h,
13860
13860
  start: k,
@@ -13864,11 +13864,11 @@ class mh extends we {
13864
13864
  end: n
13865
13865
  },
13866
13866
  integrated: {
13867
- start: _,
13867
+ start: O,
13868
13868
  end: l
13869
13869
  }
13870
13870
  };
13871
- s.push(O);
13871
+ s.push(U);
13872
13872
  } else A > 0 && g && (g.cumulativeDuration += A, s[s.length - 1].end = p);
13873
13873
  }
13874
13874
  f && (C = L), h.timelineStart = L;
@@ -13943,7 +13943,7 @@ class mh extends we {
13943
13943
  e.forEach((o, c) => {
13944
13944
  const l = o.cue.pre, h = o.cue.post, u = l ? 0 : h ? i : o.startTime;
13945
13945
  this.updateAssetDurations(o), n === u ? o.cumulativeDuration = r : (r = 0, n = u), !h && o.snapOptions.in && (o.resumeAnchor = it(null, s.fragments, o.startOffset + o.resumptionOffset, 0, 0) || void 0), o.appendInPlace && !o.appendInPlaceStarted && (this.primaryCanResumeInPlaceAt(o, t) || (o.appendInPlace = !1)), !o.appendInPlace && c + 1 < e.length && e[c + 1].startTime - e[c].resumeTime < wr && (e[c + 1].appendInPlace = !1, e[c + 1].appendInPlace && this.warn(`Could not change append strategy for abutting event ${o}`));
13946
- const f = U(o.resumeOffset) ? o.resumeOffset : o.duration;
13946
+ const f = B(o.resumeOffset) ? o.resumeOffset : o.duration;
13947
13947
  r += f;
13948
13948
  });
13949
13949
  }
@@ -14035,7 +14035,7 @@ class ph {
14035
14035
  }
14036
14036
  assignAssetListError(e, t, s, i, r, n) {
14037
14037
  return e.error = s, {
14038
- type: $.NETWORK_ERROR,
14038
+ type: V.NETWORK_ERROR,
14039
14039
  details: t,
14040
14040
  fatal: !1,
14041
14041
  interstitial: e,
@@ -14262,9 +14262,9 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14262
14262
  if (p && (L || C)) {
14263
14263
  const R = s(e.playingAsset), D = (R == null ? void 0 : R.media) || e.primaryMedia;
14264
14264
  if (D) {
14265
- const A = d === "primary" ? D.currentTime : i(p, d, e.playingAsset, "timelinePos", "currentTime"), k = u - A, _ = (L ? A : D.currentTime) + k;
14266
- if (_ >= 0 && (!R || L || _ <= R.duration)) {
14267
- D.currentTime = _;
14265
+ const A = d === "primary" ? D.currentTime : i(p, d, e.playingAsset, "timelinePos", "currentTime"), k = u - A, O = (L ? A : D.currentTime) + k;
14266
+ if (O >= 0 && (!R || L || O <= R.duration)) {
14267
+ D.currentTime = O;
14268
14268
  return;
14269
14269
  }
14270
14270
  }
@@ -14282,9 +14282,9 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14282
14282
  } else if (p) {
14283
14283
  const A = e.findItemIndex(p);
14284
14284
  if (T > A) {
14285
- const _ = e.schedule.findJumpRestrictedIndex(A + 1, T);
14286
- if (_ > A) {
14287
- e.setSchedulePosition(_);
14285
+ const O = e.schedule.findJumpRestrictedIndex(A + 1, T);
14286
+ if (O > A) {
14287
+ e.setSchedulePosition(O);
14288
14288
  return;
14289
14289
  }
14290
14290
  }
@@ -14293,13 +14293,13 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14293
14293
  e.timelinePos = R, e.checkBuffer();
14294
14294
  else {
14295
14295
  var x;
14296
- const _ = v == null || (x = v.event) == null ? void 0 : x.assetList;
14297
- if (_) {
14296
+ const O = v == null || (x = v.event) == null ? void 0 : x.assetList;
14297
+ if (O) {
14298
14298
  const K = u - (v[d] || v).start;
14299
- for (let O = _.length; O--; ) {
14300
- const B = _[O];
14301
- if (B.duration && K >= B.startOffset && K < B.startOffset + B.duration) {
14302
- k = O;
14299
+ for (let U = O.length; U--; ) {
14300
+ const N = O[U];
14301
+ if (N.duration && K >= N.startOffset && K < N.startOffset + N.duration) {
14302
+ k = U;
14303
14303
  break;
14304
14304
  }
14305
14305
  }
@@ -14454,7 +14454,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
14454
14454
  let r = this.media;
14455
14455
  !r && (e = this.bufferingItem) != null && (t = e.event) != null && t.appendInPlace && (r = this.primaryMedia);
14456
14456
  const n = (s = r) == null ? void 0 : s.currentTime;
14457
- if (!(n === void 0 || !U(n)))
14457
+ if (!(n === void 0 || !B(n)))
14458
14458
  return n;
14459
14459
  }
14460
14460
  get primaryMedia() {
@@ -15027,7 +15027,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15027
15027
  if (y.live) {
15028
15028
  const C = new Error(`Interstitials MUST be VOD assets ${e}`), x = {
15029
15029
  fatal: !0,
15030
- type: $.OTHER_ERROR,
15030
+ type: V.OTHER_ERROR,
15031
15031
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15032
15032
  error: C
15033
15033
  };
@@ -15091,7 +15091,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15091
15091
  return;
15092
15092
  const S = new Error(`Asset player destroyed unexpectedly ${u}`), L = {
15093
15093
  fatal: !0,
15094
- type: $.OTHER_ERROR,
15094
+ type: V.OTHER_ERROR,
15095
15095
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15096
15096
  error: S
15097
15097
  };
@@ -15167,7 +15167,7 @@ Schedule: ${c.map((g) => Ye(g))} pos: ${this.timelinePos}`), h.length && this.lo
15167
15167
  if (u && !zr(u, e.tracks)) {
15168
15168
  const d = new Error(`Asset ${ut(n)} SourceBuffer tracks ('${Object.keys(e.tracks)}') are not compatible with primary content tracks ('${Object.keys(u)}')`), f = {
15169
15169
  fatal: !0,
15170
- type: $.OTHER_ERROR,
15170
+ type: V.OTHER_ERROR,
15171
15171
  details: b.INTERSTITIAL_ASSET_ITEM_ERROR,
15172
15172
  error: d
15173
15173
  }, g = r.findAssetIndex(n);
@@ -15422,7 +15422,7 @@ class Th extends fi {
15422
15422
  const n = performance.now();
15423
15423
  this.decrypter.decrypt(new Uint8Array(s), i.key.buffer, i.iv.buffer, di(i.method)).catch((o) => {
15424
15424
  throw r.trigger(m.ERROR, {
15425
- type: $.MEDIA_ERROR,
15425
+ type: V.MEDIA_ERROR,
15426
15426
  details: b.FRAG_DECRYPT_ERROR,
15427
15427
  fatal: !1,
15428
15428
  error: o,
@@ -16636,7 +16636,7 @@ const Fh = /\r\n|\n\r|\n|\r/g, ws = function(e, t, s = 0) {
16636
16636
  }, Mh = function(e) {
16637
16637
  let t = parseInt(e.slice(-3));
16638
16638
  const s = parseInt(e.slice(-6, -4)), i = parseInt(e.slice(-9, -7)), r = e.length > 9 ? parseInt(e.substring(0, e.indexOf(":"))) : 0;
16639
- if (!U(t) || !U(s) || !U(i) || !U(r))
16639
+ if (!B(t) || !B(s) || !B(i) || !B(r))
16640
16640
  throw Error(`Malformed X-TIMESTAMP-MAP: Local:${e}`);
16641
16641
  return t += 1e3 * s, t += 60 * 1e3 * i, t += 60 * 60 * 1e3 * r, t;
16642
16642
  };
@@ -17299,7 +17299,7 @@ class Vr {
17299
17299
  maxTimeToFirstByteMs: c,
17300
17300
  maxLoadTimeMs: l
17301
17301
  } = t.loadPolicy;
17302
- this.context = e, this.config = t, this.callbacks = s, this.request = this.fetchSetup(e, r), self.clearTimeout(this.requestTimeout), t.timeout = c && U(c) ? c : l, this.requestTimeout = self.setTimeout(() => {
17302
+ this.context = e, this.config = t, this.callbacks = s, this.request = this.fetchSetup(e, r), self.clearTimeout(this.requestTimeout), t.timeout = c && B(c) ? c : l, this.requestTimeout = self.setTimeout(() => {
17303
17303
  this.callbacks && (this.abortInternal(), this.callbacks.onTimeout(i, e, this.response));
17304
17304
  }, t.timeout), (wt(this.request) ? this.request.then(self.fetch) : self.fetch(this.request)).then((u) => {
17305
17305
  var d;
@@ -17316,7 +17316,7 @@ class Vr {
17316
17316
  }
17317
17317
  i.loading.first = f, i.total = Zh(u.headers) || i.total;
17318
17318
  const g = (d = this.callbacks) == null ? void 0 : d.onProgress;
17319
- return g && U(t.highWaterMark) ? this.loadProgressively(u, i, e, t.highWaterMark, g) : n ? u.arrayBuffer() : e.responseType === "json" ? u.json() : u.text();
17319
+ return g && B(t.highWaterMark) ? this.loadProgressively(u, i, e, t.highWaterMark, g) : n ? u.arrayBuffer() : e.responseType === "json" ? u.json() : u.text();
17320
17320
  }).then((u) => {
17321
17321
  var d, f;
17322
17322
  const g = this.response;
@@ -17330,7 +17330,7 @@ class Vr {
17330
17330
  data: u,
17331
17331
  code: g.status
17332
17332
  }, T = (d = this.callbacks) == null ? void 0 : d.onProgress;
17333
- T && !U(t.highWaterMark) && T(i, e, u, g), (f = this.callbacks) == null || f.onSuccess(p, i, e, g);
17333
+ T && !B(t.highWaterMark) && T(i, e, u, g), (f = this.callbacks) == null || f.onSuccess(p, i, e, g);
17334
17334
  }).catch((u) => {
17335
17335
  var d;
17336
17336
  if (self.clearTimeout(this.requestTimeout), i.aborted)
@@ -17382,7 +17382,7 @@ function Zh(a) {
17382
17382
  const e = a.get("Content-Range");
17383
17383
  if (e) {
17384
17384
  const s = Xh(e);
17385
- if (U(s))
17385
+ if (B(s))
17386
17386
  return s;
17387
17387
  }
17388
17388
  const t = a.get("Content-Length");
@@ -17453,7 +17453,7 @@ class fa {
17453
17453
  if (i)
17454
17454
  for (const o in i)
17455
17455
  e.setRequestHeader(o, i[o]);
17456
- t.rangeEnd && e.setRequestHeader("Range", "bytes=" + t.rangeStart + "-" + (t.rangeEnd - 1)), e.onreadystatechange = this.readystatechange.bind(this), e.onprogress = this.loadprogress.bind(this), e.responseType = t.responseType, self.clearTimeout(this.requestTimeout), s.timeout = r && U(r) ? r : n, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), s.timeout), e.send();
17456
+ t.rangeEnd && e.setRequestHeader("Range", "bytes=" + t.rangeStart + "-" + (t.rangeEnd - 1)), e.onreadystatechange = this.readystatechange.bind(this), e.onprogress = this.loadprogress.bind(this), e.responseType = t.responseType, self.clearTimeout(this.requestTimeout), s.timeout = r && B(r) ? r : n, this.requestTimeout = self.setTimeout(this.loadtimeout.bind(this), s.timeout), e.send();
17457
17457
  }
17458
17458
  readystatechange() {
17459
17459
  const {
@@ -18050,7 +18050,7 @@ class hu extends fn {
18050
18050
  this.warn(u.message), this.media.currentTime += 1e-6;
18051
18051
  const d = this.fragmentTracker.getPartialFragment(e) || void 0, f = j.bufferInfo(this.media, e, 0);
18052
18052
  this.hls.trigger(m.ERROR, {
18053
- type: $.MEDIA_ERROR,
18053
+ type: V.MEDIA_ERROR,
18054
18054
  details: b.BUFFER_SEEK_OVER_HOLE,
18055
18055
  fatal: !1,
18056
18056
  error: u,
@@ -18109,7 +18109,7 @@ class hu extends fn {
18109
18109
  this.stallReported = !0;
18110
18110
  const n = new Error(`Playback stalling at @${s.currentTime} due to low buffer (${ne(e)})`);
18111
18111
  this.warn(n.message), t.trigger(m.ERROR, {
18112
- type: $.MEDIA_ERROR,
18112
+ type: V.MEDIA_ERROR,
18113
18113
  details: b.BUFFER_STALLED_ERROR,
18114
18114
  fatal: !1,
18115
18115
  error: n,
@@ -18169,7 +18169,7 @@ class hu extends fn {
18169
18169
  if (this.warn(`skipping hole, adjusting currentTime from ${n} to ${f}`), this.moved = !0, i.currentTime = f, !(e != null && e.gap)) {
18170
18170
  const g = new Error(`fragment loaded with buffer holes, seeking from ${n} to ${f}`);
18171
18171
  this.hls.trigger(m.ERROR, {
18172
- type: $.MEDIA_ERROR,
18172
+ type: V.MEDIA_ERROR,
18173
18173
  details: b.BUFFER_SEEK_OVER_HOLE,
18174
18174
  fatal: !1,
18175
18175
  error: g,
@@ -18200,7 +18200,7 @@ class hu extends fn {
18200
18200
  if (this.nudgeRetry++, i < r.nudgeMaxRetry) {
18201
18201
  const o = n + (i + 1) * r.nudgeOffset, c = new Error(`Nudging 'currentTime' from ${n} to ${o}`);
18202
18202
  this.warn(c.message), s.currentTime = o, t.trigger(m.ERROR, {
18203
- type: $.MEDIA_ERROR,
18203
+ type: V.MEDIA_ERROR,
18204
18204
  details: b.BUFFER_NUDGE_ON_STALL,
18205
18205
  error: c,
18206
18206
  fatal: !1,
@@ -18210,7 +18210,7 @@ class hu extends fn {
18210
18210
  } else {
18211
18211
  const o = new Error(`Playhead still not moving while enough data buffered @${n} after ${r.nudgeMaxRetry} nudges`);
18212
18212
  this.error(o.message), t.trigger(m.ERROR, {
18213
- type: $.MEDIA_ERROR,
18213
+ type: V.MEDIA_ERROR,
18214
18214
  details: b.BUFFER_STALLED_ERROR,
18215
18215
  error: o,
18216
18216
  fatal: !0,
@@ -18419,7 +18419,7 @@ class du {
18419
18419
  n = this.dateRangeCuesAppended = {};
18420
18420
  }
18421
18421
  const c = e.fragments[e.fragments.length - 1];
18422
- if (r.length === 0 || !U(c == null ? void 0 : c.programDateTime))
18422
+ if (r.length === 0 || !B(c == null ? void 0 : c.programDateTime))
18423
18423
  return;
18424
18424
  this.id3Track || (this.id3Track = this.createTrack(this.media));
18425
18425
  const l = ii();
@@ -18716,7 +18716,7 @@ class gu extends Si {
18716
18716
  t.levels.length && (T = `one or more CODECS in variant not supported: ${ne(t.levels.map((y) => y.attrs.CODECS).filter((y, S, L) => L.indexOf(y) === S))}`, this.warn(T), p += ` (${T})`);
18717
18717
  const v = new Error(p);
18718
18718
  this.hls.trigger(m.ERROR, {
18719
- type: $.MEDIA_ERROR,
18719
+ type: V.MEDIA_ERROR,
18720
18720
  details: b.MANIFEST_INCOMPATIBLE_CODECS_ERROR,
18721
18721
  fatal: !0,
18722
18722
  url: t.url,
@@ -18800,7 +18800,7 @@ class gu extends Si {
18800
18800
  if (e < 0 || e >= t.length) {
18801
18801
  const h = new Error("invalid level idx"), u = e < 0;
18802
18802
  if (this.hls.trigger(m.ERROR, {
18803
- type: $.OTHER_ERROR,
18803
+ type: V.OTHER_ERROR,
18804
18804
  details: b.LEVEL_SWITCH_ERROR,
18805
18805
  level: e,
18806
18806
  fatal: u,
@@ -19004,7 +19004,7 @@ class Tu extends fi {
19004
19004
  this.tick();
19005
19005
  }, this.onMediaSeeked = () => {
19006
19006
  const i = this.media, r = i ? i.currentTime : null;
19007
- if (r === null || !U(r) || (this.log(`Media seeked to ${r.toFixed(3)}`), !this.getBufferedFrag(r)))
19007
+ if (r === null || !B(r) || (this.log(`Media seeked to ${r.toFixed(3)}`), !this.getBufferedFrag(r)))
19008
19008
  return;
19009
19009
  const n = this.getFwdBufferInfoAtPos(i, r, G.MAIN, 0);
19010
19010
  if (n === null || n.len === 0) {
@@ -19518,7 +19518,7 @@ class Tu extends fi {
19518
19518
  });
19519
19519
  }
19520
19520
  const T = g.initPTS, v = g.timescale, y = this.initPTS[c.cc];
19521
- U(T) && (!y || y.baseTime !== T || y.timescale !== v) && (this.initPTS[c.cc] = {
19521
+ B(T) && (!y || y.baseTime !== T || y.timescale !== v) && (this.initPTS[c.cc] = {
19522
19522
  baseTime: T,
19523
19523
  timescale: v
19524
19524
  }, i.trigger(m.INIT_PTS_FOUND, {
@@ -19694,12 +19694,12 @@ class Tu extends fi {
19694
19694
  if (this.fragPlaying)
19695
19695
  return this.fragPlaying;
19696
19696
  const t = ((e = this.media) == null ? void 0 : e.currentTime) || this.lastCurrentTime;
19697
- return U(t) ? this.getAppendedFrag(t) : null;
19697
+ return B(t) ? this.getAppendedFrag(t) : null;
19698
19698
  }
19699
19699
  get currentProgramDateTime() {
19700
19700
  var e;
19701
19701
  const t = ((e = this.media) == null ? void 0 : e.currentTime) || this.lastCurrentTime;
19702
- if (U(t)) {
19702
+ if (B(t)) {
19703
19703
  const s = this.getLevelDetails(), i = this.currentFrag || (s ? it(null, s.fragments, t) : null);
19704
19704
  if (i) {
19705
19705
  const r = i.programDateTime;
@@ -19754,7 +19754,7 @@ class yu {
19754
19754
  }
19755
19755
  createKeyLoadError(e, t = b.KEY_LOAD_ERROR, s, i, r) {
19756
19756
  return new Ke({
19757
- type: $.NETWORK_ERROR,
19757
+ type: V.NETWORK_ERROR,
19758
19758
  details: t,
19759
19759
  fatal: !1,
19760
19760
  frag: e,
@@ -20063,7 +20063,7 @@ class vu {
20063
20063
  if (e.type === Q.MANIFEST ? r = s.manifestLoadPolicy.default : r = se({}, s.playlistLoadPolicy.default, {
20064
20064
  timeoutRetry: null,
20065
20065
  errorRetry: null
20066
- }), i = this.createInternalLoader(e), U((t = e.deliveryDirectives) == null ? void 0 : t.part)) {
20066
+ }), i = this.createInternalLoader(e), B((t = e.deliveryDirectives) == null ? void 0 : t.part)) {
20067
20067
  let l;
20068
20068
  if (e.type === Q.LEVEL && e.level !== null ? l = this.hls.levels[e.level].details : e.type === Q.AUDIO_TRACK && e.id !== null ? l = this.hls.audioTracks[e.id].details : e.type === Q.SUBTITLE_TRACK && e.id !== null && (l = this.hls.subtitleTracks[e.id].details), l) {
20069
20069
  const h = l.partTarget, u = l.targetduration;
@@ -20165,7 +20165,7 @@ class vu {
20165
20165
  id: o,
20166
20166
  level: c,
20167
20167
  type: l
20168
- } = s, h = Ns(e, s), u = U(c) ? c : U(o) ? o : 0, d = qr(s), f = Ne.parseLevelPlaylist(e.data, h, u, d, 0, this.variableList);
20168
+ } = s, h = Ns(e, s), u = B(c) ? c : B(o) ? o : 0, d = qr(s), f = Ne.parseLevelPlaylist(e.data, h, u, d, 0, this.variableList);
20169
20169
  if (l === Q.MANIFEST) {
20170
20170
  const g = {
20171
20171
  attrs: new oe({}),
@@ -20191,7 +20191,7 @@ class vu {
20191
20191
  }
20192
20192
  handleManifestParsingError(e, t, s, i, r) {
20193
20193
  this.hls.trigger(m.ERROR, {
20194
- type: $.NETWORK_ERROR,
20194
+ type: V.NETWORK_ERROR,
20195
20195
  details: b.MANIFEST_PARSING_ERROR,
20196
20196
  fatal: t.type === Q.MANIFEST,
20197
20197
  url: e.url,
@@ -20227,7 +20227,7 @@ class vu {
20227
20227
  }
20228
20228
  h && this.resetInternalLoader(e.type);
20229
20229
  const u = {
20230
- type: $.NETWORK_ERROR,
20230
+ type: V.NETWORK_ERROR,
20231
20231
  details: c,
20232
20232
  fatal: l,
20233
20233
  url: e.url,
@@ -20257,7 +20257,7 @@ class vu {
20257
20257
  if (!e.fragments.length) {
20258
20258
  const T = e.playlistParsingError = new Error("No Segments found in Playlist");
20259
20259
  o.trigger(m.ERROR, {
20260
- type: $.NETWORK_ERROR,
20260
+ type: V.NETWORK_ERROR,
20261
20261
  details: b.LEVEL_EMPTY_ERROR,
20262
20262
  fatal: !1,
20263
20263
  url: f,
@@ -20277,7 +20277,7 @@ class vu {
20277
20277
  if (p) {
20278
20278
  if (this.hls.logger.warn(p), !o.config.ignorePlaylistParsingErrors) {
20279
20279
  o.trigger(m.ERROR, {
20280
- type: $.NETWORK_ERROR,
20280
+ type: V.NETWORK_ERROR,
20281
20281
  details: b.LEVEL_PARSING_ERROR,
20282
20282
  fatal: !1,
20283
20283
  url: f,
@@ -20333,7 +20333,7 @@ class vu {
20333
20333
  }
20334
20334
  }
20335
20335
  }
20336
- class Ee {
20336
+ class Te {
20337
20337
  /**
20338
20338
  * Get the video-dev/hls.js package version.
20339
20339
  */
@@ -20365,7 +20365,7 @@ class Ee {
20365
20365
  return Ae;
20366
20366
  }
20367
20367
  static get ErrorTypes() {
20368
- return $;
20368
+ return V;
20369
20369
  }
20370
20370
  static get ErrorDetails() {
20371
20371
  return b;
@@ -20374,13 +20374,13 @@ class Ee {
20374
20374
  * Get the default configuration applied to new instances.
20375
20375
  */
20376
20376
  static get DefaultConfig() {
20377
- return Ee.defaultConfig ? Ee.defaultConfig : iu;
20377
+ return Te.defaultConfig ? Te.defaultConfig : iu;
20378
20378
  }
20379
20379
  /**
20380
20380
  * Replace the default configuration applied to new instances.
20381
20381
  */
20382
20382
  static set DefaultConfig(e) {
20383
- Ee.defaultConfig = e;
20383
+ Te.defaultConfig = e;
20384
20384
  }
20385
20385
  /**
20386
20386
  * Creates an instance of an HLS client that can attach to exactly one `HTMLMediaElement`.
@@ -20388,7 +20388,7 @@ class Ee {
20388
20388
  */
20389
20389
  constructor(e = {}) {
20390
20390
  this.config = void 0, this.userConfig = void 0, this.logger = void 0, this.coreComponents = void 0, this.networkControllers = void 0, this._emitter = new gi(), this._autoLevelCapping = -1, this._maxHdcpLevel = null, this.abrController = void 0, this.bufferController = void 0, this.capLevelController = void 0, this.latencyController = void 0, this.levelController = void 0, this.streamController = void 0, this.audioStreamController = void 0, this.subtititleStreamController = void 0, this.audioTrackController = void 0, this.subtitleTrackController = void 0, this.interstitialsController = void 0, this.gapController = void 0, this.emeController = void 0, this.cmcdController = void 0, this._media = null, this._url = null, this._sessionId = void 0, this.triggeringException = void 0, this.started = !1;
20391
- const t = this.logger = Ua(e.debug || !1, "Hls instance", e.assetPlayerId), s = this.config = nu(Ee.DefaultConfig, e, t);
20391
+ const t = this.logger = Ua(e.debug || !1, "Hls instance", e.assetPlayerId), s = this.config = nu(Te.DefaultConfig, e, t);
20392
20392
  this.userConfig = e, s.progressive && au(s, t);
20393
20393
  const {
20394
20394
  abrController: i,
@@ -20396,7 +20396,7 @@ class Ee {
20396
20396
  capLevelController: n,
20397
20397
  errorController: o,
20398
20398
  fpsController: c
20399
- } = s, l = new o(this), h = this.abrController = new i(this), u = new ko(this), d = s.interstitialsController, f = d ? this.interstitialsController = new d(this, Ee) : null, g = this.bufferController = new r(this, u), E = this.capLevelController = new n(this), p = new c(this), T = new vu(this), v = s.contentSteeringController, y = v ? new v(this) : null, S = this.levelController = new gu(this, y), L = new du(this), C = new yu(this.config), x = this.streamController = new Tu(this, u, C), R = this.gapController = new hu(this, u);
20399
+ } = s, l = new o(this), h = this.abrController = new i(this), u = new ko(this), d = s.interstitialsController, f = d ? this.interstitialsController = new d(this, Te) : null, g = this.bufferController = new r(this, u), E = this.capLevelController = new n(this), p = new c(this), T = new vu(this), v = s.contentSteeringController, y = v ? new v(this) : null, S = this.levelController = new gu(this, y), L = new du(this), C = new yu(this.config), x = this.streamController = new Tu(this, u, C), R = this.gapController = new hu(this, u);
20400
20400
  E.setStreamController(x), p.setStreamController(x);
20401
20401
  const D = [T, S, x];
20402
20402
  f && D.splice(1, 0, f), y && D.splice(1, 0, y), this.networkControllers = D;
@@ -20404,8 +20404,8 @@ class Ee {
20404
20404
  this.audioTrackController = this.createController(s.audioTrackController, D);
20405
20405
  const k = s.audioStreamController;
20406
20406
  k && D.push(this.audioStreamController = new k(this, u, C)), this.subtitleTrackController = this.createController(s.subtitleTrackController, D);
20407
- const _ = s.subtitleStreamController;
20408
- _ && D.push(this.subtititleStreamController = new _(this, u, C)), this.createController(s.timelineController, A), C.emeController = this.emeController = this.createController(s.emeController, A), this.cmcdController = this.createController(s.cmcdController, A), this.latencyController = this.createController(fu, A), this.coreComponents = A, D.push(l);
20407
+ const O = s.subtitleStreamController;
20408
+ O && D.push(this.subtititleStreamController = new O(this, u, C)), this.createController(s.timelineController, A), C.emeController = this.emeController = this.createController(s.emeController, A), this.cmcdController = this.createController(s.cmcdController, A), this.latencyController = this.createController(fu, A), this.coreComponents = A, D.push(l);
20409
20409
  const K = l.onErrorOut;
20410
20410
  typeof K == "function" && this.on(m.ERROR, K, l), this.on(m.MANIFEST_LOADED, T.onManifestLoaded, T);
20411
20411
  }
@@ -20445,7 +20445,7 @@ class Ee {
20445
20445
  this.triggeringException = !0;
20446
20446
  const i = e === m.ERROR;
20447
20447
  this.trigger(m.ERROR, {
20448
- type: $.OTHER_ERROR,
20448
+ type: V.OTHER_ERROR,
20449
20449
  details: b.INTERNAL_EXCEPTION,
20450
20450
  fatal: i,
20451
20451
  event: e,
@@ -20473,7 +20473,7 @@ class Ee {
20473
20473
  if (!e || "media" in e && !e.media) {
20474
20474
  const r = new Error(`attachMedia failed: invalid argument (${e})`);
20475
20475
  this.trigger(m.ERROR, {
20476
- type: $.OTHER_ERROR,
20476
+ type: V.OTHER_ERROR,
20477
20477
  details: b.ATTACH_MEDIA_ERROR,
20478
20478
  fatal: !0,
20479
20479
  error: r
@@ -21039,7 +21039,7 @@ class Ee {
21039
21039
  return ln(e, s, navigator.mediaCapabilities);
21040
21040
  }
21041
21041
  }
21042
- Ee.defaultConfig = void 0;
21042
+ Te.defaultConfig = void 0;
21043
21043
  const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAAAAAXNSR0IArs4c6QAAAARzQklUCAgICHwIZIgAACAASURBVHic7b1NbBvZ2uf3f6qoNl9kgMsXEe1yK0DXFaUEQWam2YusXb1Jy52F2dkFCNA0ENxuZxGrs0mQBDC9mtXAMoJAtoFA0mYGyMby5tpvsjC1CF7knQBNIYtB0FY3teg2b8vBJRczklqsemZRRbKqWB/nFItf6vMDDItk1alTX+c85/kkXGP+Nf7wDwD+0wmb+Tf/MXr/KI/+KBQKhUKxqGjz7oBCoVAoFIr5owQChUKhUCgUSiBQKBQKhUKhBAKFQqFQKBRQAoFCoVAoFAoogUChUCgUCgWUQKBQKBQKhQJKIFAoFAqFQgElECgUCoVCoYASCBQKhUKhUEAJBAqFQqFQKKAEAoVCoVAoFFACgUKhUCgUCiiBQKFQKBQKBZRAoFAoFAqFAkogUCgUCoVCAaAw7w5Mmb8C+D/m3QmFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKBQKhUKhUCgUCoVCoVAoFAqFQqFQKJYGmncHFIosfLK6evujFS7F/f7D+///X8+yPwqFQrHsXPfUxYprxOatW+sO2Q8A+gpAxeFoeZYJ/xuA/3qWfasY5a/BXAPIAiFWULGh/7Hd6bRn2LWlY3OtXLVtvkcgE4CZtK2m47sffj5rzaBbCsW1RwkE8+buizuBz45TAlEVRM3A9zdWjnF4vzvDni0U67fKDx1ydsSUWvT/TL1DHptr5ardxx6AKiitb3yqhIF4NoxVi0GPHBsWCSovr7swYBqGqcPeE93ehn5f9BkzzVJJPy/sgShWgE2CQEfvOr82suw7S0zDMAvMnzpkVwffEaMKAEyY+vPjoHAQvieVj2/W2HE+jdtH1+nVJM+2aRimxvY9ULwWdQBp2vHJL78eAkogmA1buyaYPgVRFWATgAlGFYQS2AluSwDAAHPw+4tL4ItnXRBaYLRA1ELxo1e/ByFh4/bqf8eMfy6+hzMTgWBzrVx1+nhLCRqBICEhTzGkYpTrDAhPfB5HU+nMAqFrThUOLMHNezICp36x8hIk3PbYsfrF377KuO9MGAiYgG0xAQEhk4b/1WbQlYPwF8yOSaBG3A6OjUbFKDft4tVX7XZXaozfuFV+wrC33XNMF6w14s8GfyuBYBrcfXEHzBbAFlxJtDSc6Adk8d5wJx7LfYl5ICS0AOyD+BXePGhP3PcFY8Mw/hNmW0IYwNWP7z/MRCCw+9gTFwYAaHQ4xe4sLe7ALS0MgH4HAhY5qHL6ZgOEV5SV2+UdcGZhANCoLjtRzZKMAuY0iBTSNEZL4L5a+uVKA8C26MEqRnmPgbp493Dg10QogSAPvnxRhcP3ALYAWIFV/7TdNglVADsA7WDr2T7Aj6+TYODA/m8kL+FMhIHKxzdrcLiavuUI+6PfmlPqzlLDhG1IzHojnGbOXVk42B1ThBAVkCpGuQ7Gw6x9AnAwUDEvIqZhmGD7yYK4zEcKae86H5oVo5y+t4OvISgQeIJ1XaJvPbt4FWhbCQRZ+eLZPbir9Rocx5x3dzzqANWvk2CQQaU3G/8BFh+oAYAIx4u8ovIzcOqb2QGZMh3LAe6sG6t30recHj92Pjye6gEYn4pObKylawg8M9cEkyWf2sW+8Ip1HuhkbwMSmrspkiSkEeGYGbF+BF4Dpc21clXEn4BBUhoRAu2ExyQlEMjw5YsqHOchGLUkT/IFoA6mGr541sDffft03p3Jyn/4H/z7a3YfH8vtNRuHQnZwJ9WH0L890JxaZ3LANEsl7aLwkJi2HRslUae+eZJkg50hQgKBZ89+m7wVn550PpiDT5tr5apji48ztqMlThqmWSo5F3g52dhFn+gXK38VWt3KwuiC0CJGywHazt9cHWQSohmzE2ZTSBLSvDEhWSAAwDbVkGIOqhjlOlIickKtnr7rnDXC3yqBQISt3TqYHsJxXBXxVMdKHjhKNd1jaS2wE/VSmBg9ABZAVQB/GP7qvvQ72HpWRfHGd8vofGjb2j+R3Ucj+19Noy9+TLNUogtImQvGokYWiM21ctU+xx4RqksgBywSEk6NmoVUuwi1/Z8cW+YZS49g8ezRpnibM8bzkWKCRQD085VG5eOb92XME6ZhmIBtTquLsiQKaSzm8+Ew3wPQSNnskXivAGhapJZHCQRi1D1bfd4cg9AEcwua3sKf/zRZCMyXL6pgtsBcx0jyrOP8sora3udLJxQw/dP0QdS/Pbo/dKafkEj/7SNLql9YXP8B+UgJxRCJkDUmp4qYvBmj5kJCI6Eq/Jil9MWzq0/iNzB7CCU4/LJilPdPOmf3RXbRqF9Lu84zJDHq46Rztl8xyjvwL+QiIELVNEulOG3JhnGzwW70mihHcUKWEghmCp2C+BCgJm581Mx9gnYFihaAHde8YW8D9DUIVZxfvgXwWUoLCwWz809IRi+vsfIfkMA0SyXnHG8X3Py1sDC4Lb4xpauGw+plFl+EECebCxZsopSlbhrGY5GQSmKaxsItKyIC4zYEoiH0i5UagP3w965ZiaW0Azb0etxvmkxDiizQKQhPoWmf4c03Jl5/u43X3xxOfbX+5z+18OZBHeA/AnwEQhVbzxYhDEcYTSMpkwHPKiGRpI1yUf0H9IuVHSUMZEcTVPmaZqkEAVV9hHpZwmEyOeJCY22p77MOuyGyXaqT3gwRifo46ZztA7gPoJeyqRX+wjQM07HxUrJTT5MEK6UhmA49gA+h6TsTmwEmxY00sHD3+TaYn+Du81d4/c3Chgz50Jn57wH8vfgu2tQFgkw2ygX0H/DO4+t592OZ6Rf7Qu924aIgkksgoF72Qshy78sS8zUEQup+/MvZmBbUU6nL2dgzQqDHstkbPaFgv2KU61667vFw01DGQTdVui0r0PfsG1eJfVMCQa7wEYB9vHmwP++ejPH6mx1s7XbhYA+1vfzNFfljn3Q+PMi684axajHjYVptgQzdkt/FtYPm14UIZAeiJVchLwB8KmoGcghVSp/dAxO64D4AxExSfWj7OuyZTIqLhkwuh8mJ19Rs3Lp1j8mpIUFbxCOnkcDdZ6b/qHK7/Ffvl38EoCDtAEz4e+2i8HDdWI3dRAkEucAHC6ENSOPNg31s7QKXlw1IZL9aNtZvr24z06IkJpkRckl6iEkqv8N1L8rkhfh9L75HMCIgcUsBu3ZYvSxjC2cB00W702lXjPJ9LEb2vlkzs1wVUZqaQT0KhmNlbTec6DYTjC0CbcUeg3CsBILs9ADeQbG4swSr7RFvHuyjtrfU9sQkvAyCT+bdj1kjrTKWSHgDuBOKXI+WC4fJlBlxZdImM+PTNN/YsEOhyD7DbYmF7v1J52y/8vHNLhxnB6BPxFpfbjxBb0aMa41Ms1TSL+y3WORwTw9mtJRAIM9yCgJ+lrXfIji8XKFV+dCTiWIwzVIJF1JmlGtfREiyZoBQVsBh2wIhy36HQtk8F6LOjQDghZsdeqtWa2CzzoIX6ibth0KMYwb+MQi6xG6Zwolth4UrZwI4IPA+ADDIJMK2lJNiROhn4eKjbcmQwLlBoLYSCMRZfkHgmuNNdNa8+zEHpJxEBZ3c/LTlNl8+RPIE+OiJJssRdA4MOBTK3p93nQ9Nic0BDDU++7L7DdhcK1e5j7eyZjkiHDugFwT+XyUP+Q+S27vHkzC9EHjffy1Nw2jqsH8SP9Z46CeDl8hx12leX4Fg6/kjwCG8edCYuC3SDsFO/TrUBrjOZJjorgWajh2Z7WUc1oBklXTFKDchZqNtM3jfKfafTpqToWKUBx7nJlJUscLOlgJ5AnxtCl/vLA6FYlkNh8xcezNIZpXBWbdHGupks1yoHMTNIhEI+w+EzW6e34XEoYJ+PN4CxZRoYJ703nU+XEOB4MsXVdjOHsBVCOYZT+X1N1IDrmJeaNbknjfLBYEe//Dzr1KDpWzyliSVtF28qukXK22kZFsDYBKooZ2v1EzD+CqLT4IbOUIvIVy4Jjpfe1z/RDYiwvG79+LRHILXmteN1WEEgMN8T9h/gPEH/77DNlA4mIbfh2kYptO3syWz0qjOtlMCyJTeVcIsMkBuQhaPGokjLFAs0wKFiRvAdYsy2Hr+CI7T+H15lysGLIutLid6ALbfdX7dz7CvKbNxksNiu93tVj6+WYcjtuojQlVj+6Vplj6XGYCH9e0l3m0SLAUrEfPfI02qvKyoc6BFIGv4SeYcCVWvjkmYA/FWxDDNUkk7tzMVR2Li73785eywYpRTCjxFk8UsIpViPML+L+eQOC5QyGri5gbh6Y/vP+wA10UgCGoFFL9TNB07bLtOQXnChO0MJXqHDkp500ehPeHqTyYMK9Vh8eSXXw8rt8tPwRBy6CRCVTtfeSsqFHgTtmy43JHoJMIgM20bIhz3Wa+d/Cx33UUcCvMnvdCRLJtr5apXKdHMsPvBj+8/7HgRQFaG/TOZRWQcRaPs/1LFpSIEigVLozwO8Sti7Lx7P3pPll8gUFqBa4VnH7YgsYpl4lc/vv+wI1IzXJbNtXKVbdlyqm7N+IWsX+BmKJTZReia2jeuGoXLFUvUK5sIVf1i5QnctK2xmGapxOf0Uvb9TsrXPt6ZpCJCfApQ4937s325HmS61vkgUXRJhAl8BgDg4KRzVgeAzOHAGc9HJiGRw/zXDWM1ICizhOAcJVDktUBhhgGifym8A/H/RYz/OWmTOGF5eQWCrV0TTC+VVuB64KnnXiJDvK7G2tQcq+w+9mTqKwGuqnoRhYEBBHrsedWnDvBMLORN3253u5tr5TrbaCLdn2BAvWKUkVTJTr9cachORAQSKoQzhNEi0Ji/Eel8+MPPHzJPrgX0TZ7DSiWt0JEMEwkDxK9O3n+oA26yMHBGB7sM/gMe4hM6YWeyezWeGCyvBUrl1qqUE6bNhf8qq4ZoOQWCu89rcHhPFWa5Hky4AoFslj5R1m+vbpNExTkAAOGpXwW3aHgDRWMabf/w81lr/fZqg5hkVoL1ilE+8vK5B8hYsrfXL/4m5QQcdezlJp/3oWKU604fT7K8l0Q47t/o1wEvr8I5Pco632q6vEAw24RE06sl4ZrLxLOKSgvDIZav2uHW80dgzuTY8rvn7vMatnbNeXfDj2mWSo6Nie7nNF5G0zBMckgq9zsRjk/en13blNAi/Pj+ww6IX0nutlcxyvXwlzrsLGl2F9JUM0vyeB+8yIVMiy5XGLiyBvdBPy9MsnjrZVlp29l8FTIyeYRCHI6ccC0tDIdZHg1Bba+Ei8uXmGmhimtEba+E88s9/N2Dv513V/xol4U6JkrrOZ2XUYctPYjJeqBfV+wb/XrhcqUpleWN8WRzrdwaDP6eI6Elc1w3JHBxVvv9Yr+lX6zM+KiTvQ9uqt2VJxCM0IjgqH/jqjbog+dIKFU3I0Qm4Wa2Dn3TqWbqCckSiZVoZ9KxcDkEgi9fVHF+OYFKWYGLi20QjufdjTCyRXYiWmjn0hEfWbyhmdGybb63bqwmOiBqEt7v88B1ouRUH4A+CrGe7O12t2uaJUtKKCCUnD7ebq6VP//h57MWg+S1A8wLpZ1pt7vdilE+wgyL60wyOblhhStvkT0yYuRA6LWHc5YKFQ0jUzMixMyu+QRJk2Jxrx0kCrRJ5dyIZfEFgi+ePYTj7Kgoggn48kUVjvMIhKfz7koEE724EwwYkWQdxBLiwQOwmwb4j9l6N33Y5hKDUmPFddjwsrjt28Wr78IrE+9z1a1F79SFiukQSnYfe+u3y/97Bge0g0UUtDQd246co+VEZJ2cNtfKVed8Ej+eoDAAAPrFysSmXZmaEQNmnSEwS9KkNAoXH20zscS1o0Yux82jkamx9WwP2VVXigGO49mhpqPaykoejj9ZBowkJrR3imBWjHJ9UR3Z3nU+NDeMm48ZLOo/UdfOV6oAPotu79cGgMaGsWo5hKrGWuK1JeIiGP+TZD6Xng29IbfLbPjh57OWaZZM7bJQTzt3YcHJ5ShKGLZZl6prAQDrt8oPHRvZF12Ep2HfGVcQnNy86y/6JIpUQiLw6SCBFWtaCezUZXOO5C2ImoZhMmwZ/6VIp9wsLKZA4Nq730LCfqKI4e7zbTBbAHp4/Y30YDFNZEvORqERt/PoCyDv0TsBjzBBYZlp867za2Pjdrkmk1Ngw7jZSKoZ4A2azbS2KrfLO2D8e6J9BTzb6QKXZ/a0JanOXhWjLDwJELjxrnPWnKRfOfgLAMD9k5DfhivoCwuUCWRLsCRVuZLQCkUFHVZurx6KCgU0BTOszv0nkIh1Jrhph/Ng8QSCgTAweYavYxSLv+8aBG4GRy/cRyyefJaQ43QBbSz+W2allFesr2mWSnwhb7cm8OcM7EvWlzcrH9+siVbMmwd91ms67BYEVd0MflT5+GZrknPKFmbIp/3i1dK/5xLpkwFMHkmwuVau2ufYm2Cc7UGjevh+m2ap5JkeJmcGCYmicjYQay0GCwkEnGAu2FwrV21brJ3hsUEmAOFFCQNtBu6sh5IqAYCWIoCTTmMRHIslEOTmPMgHePOgnkuflpVBVMHgWpK2cJNP3KrRy1YoQm4JifTLlQZkox28nAMVo9yAbGpdhx9CsmzxLGl3Om2ZGgUAAJv3TMNoZV2tZwoz1LRrEWYol/d+skiCQX4ByjzO8qmmUy1cVMvnlJiLyW2CBEsSfknjORuYuCSquIzy2fA0Ly8dGxZN2fmNADPOfyDtFNjhVwgJH4uTh8BdzSphIC8uLxsj6Z9OF81cEIdplkoQn5jbeRxzc61cFc3DP8Cfc8C13/Gp5GGtDWPVktxnpnirP/EiOYSSV7hI+h32roUludvRImtZZJALk8vmC2SapZKX9S6znwwRju1ivxqlmdMvVp7kW7tBPsHS5lpZ6viRmhaJZGRhh0JPGPge8s/yzIlMtzyPjoxx93ktJ2HgvhIGAGzt1oMTnLM/t75IUrgoCL+MeYX72H3pwjkROQfkvXwZcomP5oFdvNqWEXZ8NQqkyBJmqOlYqDDDSZDJ2ZDlud8wVi39YuV70EQ+Mgfv3p9Vo7QTG8bNBnJ2AM9iFpFLSBSraRHWMIQdCvWLlR1MlFdllowLXPMXCLZ26/lkHuT7ePNgP5c+LTNfvqgiOLj2lsmXwpFYYeQR7rNh3GzIrmqY+LvwCimrlsAtgLO4tNvdrqZLTyL19durwpO1t60peYyDaRSzmgemWSrJPIOyz/26sfrICyU1Zfvm4344rHCAW5o6DyfCEUQ4zmIWkdS0/LRhrN7x/5MwV8Y5FArvP2/6KLTD381XINjarSNLApIxlDAAYGR2CcCHOLy/NDZWz6lGiEkdq9zwHumB7GhQO3wceS2BDlt6n1njTbyJVQnDENMTEZOIaZZKsimiAfRczcX1QEYrBoiHuW2ulavrt8rf02Qx6j1Nx2dxYW1eNr0cxvAgSc56KcjkNbEY1PT/g0T0T7iPi24C9EOE4yhfn/kJBEoYyJfaXgm2E7YN9jClQjZTQ9h+N3nK4ixObElq6oxagq8XXUsADAsASQkFzJTqT5ClmiETN66DI+EIzRLdUjTMbd1YfeTY+H5Cm/6RXbwy4zQxnu9NtpLGKWQxi0j6H01MuI8y2s15wxwdBjsfgUAJA/kSG6rJO3jzoD2XPmVHTMKfsOa7p6a2ZPYh0ON0NfX11BIArlCg6fgMoo6GBNfrPAY3zFDOmRPg03gNzXLC5Ij7zaSEkpmGYVaM8tsJtQIg0OOTzpkVJ3hNXqE0mSzmQDch0ewI91FGuzlnDuI0PrMPO1TCQL7E521YKt8BwJsgIJa6cJKa71nKsbqFc+IT7ww46ZztV4zVhlReAsY90yyVZrHq9byg7zHYzLK/bTMA/ASgITIAEgHrt8v/DMwXYz+yXZOPyiKuGOXU1MrTRtMx5keSGSaZIlCxx1y/VX5IbEtrXEL0CFxLSno0bWEAyJb9TyohUQ6M9VG2VPrM4VNo2nZSZM5sBQIlDORLUhInosYy+Q4AQAF9kwVniElSFmdJTyxXyZAakLGrEkqFi4+2MUXzjmmWSoXzlUd84Zo8ph0f7ceNr484XrYumFgAL+4rW8/l3fKEYFN0e02Pf+6J0rMhJkL8yr7RrycJprMQBpAxv0geqZJFiTLdELjBIFNcU8AWS/k80CllyHDK4Lamo/XDzx9Sx8zZCQR5CQOEp3ithIGUjI7HeP3NUmkHXDRLNJVxlhznQLZyrK6p4Ffh42XREjDzQ9MsTVy+NIpBwhheIhvnIkOE4/b7fFIl65pThSO+fVgrsW6sPnJQOFjR7dIEdUF6TNxIM8XMSBiYxBw4uwqHEZoaGa2GaRimLlevAASnPu0CXrPxIfjyRRVMOTif8AFef3ttvIszk5reebHKwIoiY0vNkg3PNEsl2CwplPJpUo7+eCRtuISSdlmoyx8nHf1i5WW+CWN+38Q5ZGWBHKn7Mlw5bxirVsUo/0TA/Xan02ZbpjKe7/iEY02HlSYMVIxy3bHxfRZhgFgy338G/wHZhERwr+XgnzST5kDJ4NA8k2qe0xcI8stAeJSYdKi2V3Jj8K85acIA4SnePGjOtlP5wI54pbcs7WcyFWRMtpIl4oCYJB3s0ql8fLOGJciatjzwaZ6VKqXy7oOaplkqVYzy3iivALWzHptAj9+9P4vMOuhnwtDCAyZIab2SzCJxyCUkAk46Z9bgn128+lsQv5LZf5IcKFneyVlV85yuQLC1a+YjDNApisVkNe/55Vs49lLZzKVxaz38FK8ZoFPcuNGYaZ9yRHgVm0GluH57dVs6Sxvh6WRSubSnt+kNvvnBTr7t/b7pZUjSlIxchsK/1c9XfkKEkCqTk8PTCnwmovlaN1YfYQJh4KRzVpc5RwBjBXdEILkJNrCgaLe7XZC2L3O8icYFh6W05QR6PKtqntMTCGp7JTDlkIEQPWhUS3SQ23q2B+LeEobYiSOkaXHqy+ZIOEBG5ceQK3m8YaxaJG2y4lP7xlVDbp8gGfMS5JvOWLK2uyKagWo9z+yIpmGYUuMj478Nb8/sVqNst7tdkRwFoloBAKgY5b0JwhcPTjpn9c21clVyDsh2fWUiNSIWFG7lVcHdJyh57KV4NiV26fWLv83MH2x6ToX5lDAGiOr485/iH5K7z2tgrkMyacpSsbVbh+PsJXplu86WzVl1KW8cezqpW03DMJntl7Ie7ZpOtZNcHPwkIw5yLI0sW1J3Aekh6wSRF4QWiJrvplBESYdtTdqGX6vm+TZEPmtEOCYNdRHn2GHVQmQevw8GaY5l3mvANYvIHkw2UiPaR0GzRB2as2ZR9MaihzJj0ayTcE1HINh6tofsD9MIwtPEKn1buyYcdifKYjH3F3Yh+OLZEyC1iMvxsjtbEshkwRdSVF3nDmy2tJZKNqogiUx5CXIqjexdp9nFF4aY1Cs97xX5wkGoipbZTaJilOsnnbN991krWwjl03e1AmKOsZtr5apzgZegbKGdBHocMEVInmOWcGLZSI0oHwUmpwoWDHnO6FCoc/8JiCTehdkn4crfZLC120AuVa/4KH2So4GT2KtlVZXHUtsr4YtnL0GpwkAPmlafRZemibhzlbgKPot3PRGOs0UVJLYq297Cl0ZOY1JhIKqA1LUjv0Q2jwYpok86Z3Vo9BWBHhPosQ39j6LPc8Uo150+JimCdD98LHbkQgEzhROznENh5HMlYXLI4lC4Yaxa0j5MmjbzRV6+GgJXfZ+HDbSX6kToCh4WAICy1QdfWFznwT0hk0uaSWV5EFtBCzoUVozyHuS963t91vN1GkM2LYHj+jx8lndfZkEO8eoJBaSuFXnFzZva+crbzbXy/R9+PmvZjtZqdzpSGqaNW+UnDGxn1Cf1AGxHRV9ICuS9TM5zEoIVM1obxurYdWcJIchh3F6/tfpf+r/78S8f/mVyF6Vz8BzlYTaUJT+BwHV6S7Zzi0KU7Bz35YsqHGckeLBzfcwFd5/XIooUxcCP8frb63LupshGIimLPWGgLnn8nqbDOvl5Wt68cr4ERKiu317dXraJsfLxzZrTZ+nwTh89u3iVu1C2aGyulasTJBIagwhVx8b3ldvlp/aNi4ZMP+w+9iZIWtWLM+1I+7AQNzP2QViwIkKVM/gpBNugfxH66jWAWIFgw7jZkE0VTuCGfM8mJx+TQXSlvYzwQaLfAAA4TtBj/DpEFwxMBMyCNm8+wJsHjan3awbIqcedZtKvXtGiumQXYge1vPBWT1L5E8ihR8tQCXHA+q3yQziiz280BK5dr0qG0fSZ/oucmzzSdHx28v5sW/T6DUwEWZNWEeE4qRqibPW/tMJNUSyCaY1A/yruN9eRkGXzi8wkCVEU+WgIRNXbqdApijeS7SauWcIafcGZktQsFHef17xrKDqQHicmaVoyHEKVBJcSfRTacb9VjHI9QznWqQsDA2zodR12C3BDxVIhlLyMZp9Ps1+T4hVMeoIJfYdch7T4ojrXAdMslbSLwkNy8N/n1GSsuj62D4Zh6tx/AiBDcakhB/0bV4nCBzFJzQlZbPMyY8e0cOD8Q9xv8o6Es0tCFMXkAsHd59tgudzw8aTE0df2Sri4nEr97bngZh3cA7PMi3mM4g1rep2aPRJlQ2NtjBmzqR3ZxaucwgvTaXc67c21suXYaEJUKACsDeNmI39Hx3zYXCtX7XNMuiDoAQCD70hWMmwTeG6rKRmGgsA5bbuC/8SzWI9AO/3ib1L1L0YVEeUmqRD3BQUQKR+JTBUOFyALJ7EeqSFwTSbyiax02D9VjDIAgMGNHzsfHk/YRWEmEwhcvwGpMrLx8EFqyt2Li22AzOCXtJzqxS+ePcT5pWyp0h7AyUmalhFxp6DIFYS8MMCnTNiZh33+h5/PWptrZYsd7LNgBjcGP6oY5XaeKXPzYN1YfeTYaNBk739P091BXVJQAgAwqL5xq7zT/5urx4toajANwyyw/ZDPUQehlFMQ6IENvSHjgOf5LDzBRBMoo//ysQAAIABJREFUn2o61US0aaZZKuFC3FEvc7IfmYRE04Dxw8lf/vJr9E+TF/MjUKNilM2TztlM8uxkFwgGq9t8Kl/1UCwmmwrc440ndSC0czj+7HAdIrO8mD1omoU//6mde5/mDeNToYEyIsJg6B0txhE02jn55WyujpjegFqtGOU6iGuC2QT3NtfKrUUIxdswVi2H6QlNnmskYK7JoD0BADBhWztfsUzD+GpWKV7TGFWzs+uC4e0iHGk6tmWegUHZa8cWfkei8Uoji2rTCheFqowOJIv/gHRCoilAoEhzQRZHwgTqFaOMWQgF2QWCy8tGPn4DAIgaqavey9/qkcIHc16xvNPFFWgewXGyvJgDYWDuk0HeeC+1mFDJwfvvrkL4FQGJhUlIp+4iTKRhvBX/PuCtJNE3k/eYW44hAKNJjoH6hFoBIMJ3Y6A9ySIUEKGqs/195eOb9+cRrjVgw1i1mPEQsHOMlOBTAqRK3/pNFDzZoq0HjeryQrRmSZlFMoSOyyYkmgYOeMxckCUjoQD1yu1y7+T92VRzE2QTCFzHvpwqs9EpXn+TrrrN7XgzprZXwsVvD3F+uZ1Rm3JthQEAKKBvsvibE7BJeiriZt59mgfeyrY9525E4l/t5tRkrCPnJEIBCCU4/HLjVnnn3V/Ovsupr6l4qX6/JsI2A2aeEwET/s8f33/4z6T64vdVmKwvRzb0evsXea0LgxcuIdE00HhcQ5DFkVAIxsOKUW5N03QoLxCMTAU54TRSN9narSM2Tp3uoLZXWki7ut9PIGvCj2ssDLholsRKwlxkB7vrxsatW/cYdj3f1W66I+dEQgFcE8L6rbLlkD5VE8LGrVv3mJwazlHLyXQ6BjHCMe+ReD4CD4d9mdCvA5KRCxF9scT34NNpJyTKA2b8jwD/v/7vTn49+7/9n7M6Ekqw55kP9qfRuLxAcHGxk5/0w0d482A/fTNKVr9c/mYhh9zvubH1/Gu4iSXMCVq59sKAq15luWIfC+pgd13YMFbvMKgORo3JKeVpphjLc5/ApELB0IRglLdPOmcHsvtH4drjb9xhcmqj64OpWnKi8u4H+uRqb/aGE/CkffF8BbI6aJpmqeRc4KXcMUlo7DbNUqlwUfjUASxyhYG8Mj0K8eNfzv5Z2jZ5OBIKMDWhQO7x2dq1AJIJC0qBP0+NLNjaNQH6KaWhJt58O99Y7YFpAFzHZIIAcM2EgYpRrjN4mLbXCzO0MMF1YnDDKfafLqJn+TKxYazecZiqBLYAsqa00vXs0PK2fW+12UQGocBHk8CPs4S1DVTwYKplTeAzCSeds8Qxev1W+fs8+kWEYzBvZw3h9HJR3ANjR/oZ0uirwbPh+dJ8wiCTwSYxqt4C1MrSr7wgwvG792eJ19lzJJRK3U9E/4KZ/3Nkeb6ZD20qfJenFkxcIHBzAHyPySe7Acd48236g3z32Q4YAv4DAsLFNHAFlkfIpaATgEGegTQTyNZuHZreWgahoWKUm5iGNM/ognDI4LboLgRqk8T2iW3p1FtEZ8Uwg0EWrJccsqueQGZiNoPsgV1MTmCTRk5CAQC0iXHIhFbaM9Av9o/b7W43rwk3I0cnnTMr7kdPPT3pAi3RPDBYlUfuOXieGNXMwiTh39o3rtZwUSzpsNMWfvNkWNI5CjfZk/29bBi5XbwyV65WzAmf7yYjPe2zBhylCXziJoPLywbyEwYAsFgMOEMkJAtgeomt3c9mlsb4i2f3vEqEVo6tigsDQB1//lOex14+3JevTpKKLgknxuR2bGCQQGTyxtBNLNxE3Buocr1aDWZKe9XR4GS750wOZK/VBEiHyMUxqfnAh8le9dDEZ4D4VbvdrXn5LeYWxUQpOfcnzNKXmtio8vHNGs55LzZKYfA8TfBIEeN/abe73Q3j5vacEw4mklbyOIsjIRM3vGs/6fNtEchK28gh/g4pTthiAsHWrim2Shemh2IxXX3oxuybQi0SSgC9xZcvvprKqtk1CdzzsgpOwWmED4TSEW/t1gHaAZYk3FIhhjvoWnE/axp9dtLudtdvr26DBbRRc4tQ5FOAGnnbN3MUCtIhbd/9n2vILYkAnxK0fQZvQ7D/rCX7D2islVg+46FQhkPTMEw49stpP0fvOmf/AyBT/jwXegAONR07jo3vRXZISqucxZGQCMcnvsRos3i+RVJDC2oI8naU4EOhqADHrkmObCZs5y22nu+g+NHTiSMPtnZNQLsD5houLt0bPo0XhOg7vP42XWPiCgN73vbtKfREsZgc/PDzWcs0SyU6p5wyg+bO1JM+/fDzWcs0jGqB7EPRLI9ZGNiz2aFPJs63QPwKTIcnnQ/7o/BNMdJC8VhDSyIOXyrVsU729uTZlZNh4P/zfZy2g2APwCE0OhzcX7cwktgNTlK1Z3EkJG1cqPcJBUJCiiz9Yj8HgWBr10LetkbSRAcN+eO6ecIbOL/cxhfP9qFrB0Iag61dE0yfgqgKsOWFtLg5x6c3ALupiF9/2xToX90VzPhISHhYJAgt8Gw9gq8VmuuFrV+sTC28LSPDldasfCnanU7bNEtW4XKlOU2hAAA0DcSZJkU3NbbDhcP2+5HDlw7bkmgktm7HANvRWjrSaii7Ghu7eHUo5ccxk5C+aaed51OAmn4hwI+oySUprXKWjIRM/N0PP3+IfF9++PmsVTHK9yFflyWNnsj9F9AQ5B5G0Ustbzw6dvZJxB04t+E429h6BsTZThilYcZFcr8Y/T1N+AjFolhdgqEwgB7yc16cGcTUzaDaVHho5DrAEcic/3VMHmRngTewVSu3y4IOx3KYhmG2O502MyQmLD4F0aGmYT9usAehKnz7KN1JrN3ptCtG+QDA1xE/H7j3KLPGpo0pr9oJfDH8m3A8qYDntdEC0LShN9MEKtFqjByjas+YkfAgrYbKSeds3/NN2kF+5gMhgT1ZIEhMCJSZptBWW7t5H9eK/HYe6lfCU7x+IJaC8otnD+E+GABR/fdlKnBTtgKaJRvOcx1xyOlSjonxBekBaBGoSTofxk52c+Dk/dm2aRg7OvV3BOtBCOGt5Pe9f7GTIhGOHfC+rlFT6LpIrLqJxTL32cWrbf1iBQBqRGgzY0daGxABE7eIKUrQyJM7plkqtdvdrlfLQFQgOAJxl1hrsYaWRtzOqKEyRTaKcyiUdCTsMXFDtKDaSedsf3Ot3JIpgpZIksOyjxQNAU1hEGZRidXM/9hzp+dO6oIakq1nexhoBAhPxTUry40n6e+cdD7se181N9fKh46NHcw4GckiwDbVALQcLhzqsKdW/tu77l0CNVlDy3a01qIUC4rD61/NNAxTo36NAAtMFiZZWTGemGbp8KR9tl+5Xa76nDhbrue/0+wX+60Mk67Es+s0Rbby+lBP206WaT9rAwoXH20DaNis7+jo1wBqez+1CdR2yOkOnOGmUOZa6H5EOeMJOhL2QNxkoOnc6O/LPi8Zi6BFIhqaHb/cGKmp80XTPhO06Vv5JkGaO8cA14TCIt2cD08wfNH5CG8eWFPs21QRK9zjkjbQbq6Vq2zzItnRp46/ONPmWrlqO2xprA2vAROXUlafbRoNtABcbcMUB9q548XPZ7aD91Fo5ykMuf35SEwrCEDU+W+aiL5rzDAIMACAKaiGJ6AD5o73YWzcn1fhMZn7EZVds2KU614+j8C7NNpnOu+UzFjqR1SATRAInv2EaazS33wrpvO8VgIBP8abBw2hTd1aEW99lSR7KN4wF7JWg0KhUCiuDdEmg+n4DgDgo/zbXGT4CEBdOFnSly+qXuGokZStaemJihQKhUKhmJAYH4Jp+A4A0w8zWRh6IGpIhQdu7dZhO0+CYWV8fxlSEysUCoVi+RkXCO4+r4Hl4irFSU7/GKBYbOHicjrdmCqeVkAmGuCLZ08AbAcMOG4kwn6+fVMoFAqFIppxgYA597jeTBze72Lr+Sl8VfIWHHmtwLi/wIBXeP2tsAOSQqFQKBSTogU+ubH/1jw6EgkJhyjOGT5A8YaJ19/ImAgsnF/+FCEMHKN4o55r9xQKhUKhSCGsIajPoxOxkLYPdhZDYxEJH0HTt6Xs/K5W4BHCJgIXsWqHCoVCoVDkTFBDgKlnppLjz39qLWZkAh8B/DnePLCkhAE3iuCtVzY5jFvXQAkDCoVCoZgDIw2BTKnhrEjWi/aoA/gp555khE5B2Mbrb+VNGVvPH8FxGjGZH3rQNAt//lN7sv4pFAqFQpGNkUDATn3qR2OWzxz25kEbW7v3p5I1URg+Amk7mVIHb+1aYHoCxJ77QBhQ4YUKhUKhmBs+gQC5FQeJh7JFDLx5sO9lLpyxSYMPADSEEwv58acfjs/NqIQBhUKhUCwE7lTlmgu+n8kRRWsZRHH3+TaYp11w4xjgHRSLh5nt+VvPvwbzTkrteiUMKBQKhWJhcDUEzNbMjugeK9sk+PqbHWzttgA0AMqx6h2dgvgQzDuZtAEDXC3GI4CtlLLKShhQKBQKxULhTltbzw6BWZgMAABtvPn2jxO3srVrAajDLUEpWeqUTgFugagJdg4nEgLcvphgegJCWjlMQAkDCoVCoVhAXIHgi2d/TVFv5wzfx5sc0/Ju7VogrQp2SiAqDZ0XiVpgdtX+pLXAThfFYiu30L6xMsWpKGFAoVAoFAsJudkJadZhffloCeZFba+Ei98egnlbQpBSwoBCoVAoFhYNpMmHAk6Oia1ncwwjzMjWrokvnj3B+eVPADckhIFjgKtKGFAoFArFoqKBnXkIBABQx9ZufU7HluPLF1VXgKGfQJDRCgCDdMST+ikoFAqFQjFFCgDNSyAAQHvY2kWu/gR58sWzeyBsw3GsbA3wEYpFlY5YoVAoFAtPAeASUmLkpgvt4Ytnf8Dffft0jp0Y4UYMPPQiBszsDfEB3jyo59QrhUKhUCimCmHr2U+YaOLLCUYLunZ/LnZ2Vwi45wkB1uQN5hxFoVAoFCE218pVtvkPAPCu82EBi8Aplg3C1jOedydC7EPTnk5dMLj74g6YLTDXQMjLbOJWLHzzoJlTe0tN5eObNTj8MmWz9uAfg9tOsf+03e4Km1jWb5W/J//9I3518v5Daj4I0zBMje17NNIEmSLHI8Lxu/dn0s/LhnGzweBHg89M/N2P7z/sDD5XjHITQDjZ1v2Tztl+VHuV26uHYBrmDiHw5+86H5oVozzJ+3x00jmz/F9srpWr3MfX7F5jK3KviP5uGKsWg94KHrcNoM2MQ+dvrg7C9z+mrfZJ5ywyUmlzrVx1bPgzr46dl79tMN0TOT8Cf+4QqsQ0SbbU2HuahGmWStpF4SGBLMT3s02Mwz7pT9udTjutPf1i5R4xqkyoglFN8o0aPF9p/RR852Mh0ON3nV8b4ffBhv7HuHOqGOXAovakczZUeUc8O4FnYf326nbE/WyedM4+jzxW+PwIT0/en41Vrx1cX3d+oSqExhc+Pel8GG6XrY0hmZ6zQvomM6cOx6nji2ctEB1Co1cTCwdfvqjCdj5xLypbACyw4/6Wn7XkGJpWV5EEI8hBVWB2Mr1/IBD085XtilHePumcHaTt6E2ywcmZ6Z5plkpJQsW6sfqIYMdVnkyEGZn8QRjBbKAaj2XrjMq8+QjAfmR7Dn1Cvv6/63xoehNhdmjUJ9MwTB32nmMjLeumb3dujz5pFiAsm5gATCJY+vlKwzRLf/TfP3cSHt+nYpTrUYMe2yEzKI1nRt0wVi2H6QkDVdHz6xf7Lf1yRST5WCzBa5TOUBA4JxFnZpMJ2zrb9crHN++f/PJrZDG29Vvlh3SOBgglHpx7yjUQEQYA4Xc+Acc9DuNTX596KQKO6fs7oCkZe3ZCzwJxpA+dtWGsWlHnHD4/jriflY9v1nDOeyCUQBKDjK9vm2vlqnOBlwBMqTaGTck9ZwMWUSBwIVQBrsLhBraeAUATjBaIumDuQtOCL7njlDwpymM4AFtwHO+Bn5oy5BWKN+rKeTAIk1MFBx7mOLXmaDJ0B739DePmH991fm3Ete1OfqMVtx/9t48sAJGDYcUo1wFEtMunALXjjudjX2CbiOYDAxz6xX5g8gUiZ/LYSS+gFQGfAsOJMOIasxksLBZzrkRNwLu2ffttzAQUq5r2D6AMNgX3CwpChJJ+WdgHRlk/YwZtIFZg0iz/ux4etCtGuc7AXsQ420NcWnXibrvd7VZul4HocwkLdJHnKzqxDtAvVl4CIaGM+BWx1hqel7vCfzj6HSXYvGcaRis8kVaM8h7GE6nFn7d7PNlxLercqwhmlI28Pv1iv2WapRIuAs9ebN9cDYCPtAl/XBA3o9pl0CMAzbHvQ2NaWLCvGOU9OBxV0C7dpMN0CLhCoH2OPaJg34hwLLogkX3OBiyuQDCOBYIFsDu5D1b4A6Y74cdD9B1ef7OTvuHvEKZPfZ96cWpbTzW2A2BYzZKZH5pmaSdupW/3fQM68Su/+hwO1xAjEIDxxP+yMvF3zo3+voyZQpbxAY5P/ccroG9ycATpwRs82R3o9/0/jmsC3MndGwSs8PFd8wJGAoGmbcetHk3DMMeEAeJXxNiRHGRM/4e4ew+Mm1PAFBZETEQTKTCFhRH/oO1NIOEcKAc29Eaamh0AotTDABAy1cQ+6zJ4k/ewHSIc91mvtd+P93NzrbwfMJMQSjrsBnyT//rt1W1wQBjoQaN63LOQhTghPmzKSn4ekid5Pwwyg5/HVsaB3yNWznE1cSK1BFGaucHfUdeXQDtJC5sotMtC3S/wJ933vNGmfYBrTA+a9pkSBhIxfX/HvtTtdrd70jmrw50IXQilwkUhcmW4Ydxs+F6Ynn2jXyfC8XCDmFLeG8aq5Z/oiHD84/sPsUJHXoyfR3h1rlmBX0HDZ4oI1Q1jNfC7w2SGtm8mHZ+dYNlx29Fi74UOey8sDJy8/1DLsOIYDrSBexMB6Zw2IfkH7SP4VlvsXxmPMP0f/H13wvZiwtOTzlldRBiII3x/kLV4m4/KxzdrCK7ke/0bV1ZcP3/4+awFIGBmY4ZfIAcx+a9VT9Nh5SkMxLG5Vg48/2nPQ/h9iFLLjxoL+n+lmeL8z0K4XyA8hW8MYsKY8BelmQNcQZocCmgsmbghKwwAADEFzFLM2Jnk+ZRBA9JujmIcPkLxhqn8BeIZGyQTpHwfoW00K7zB5lq5GlhNalRvt7td9qv3CCVvQA0RbM9xZqVSCh43PIEzBZOD9Yu/7cA/6SE40JATHARZS762FBo04wYXb4AM9NXmQuSKOInwQJs4oAOwnaB/BdNIQBgbtIE2gRuDD1ECEwKTwGjQrhjleuha9OJW/DI4YadksWc9pVEOP7/bAoJrM9ANX7+862iOfsS+J0RMnbAAy+OTdoAkDU/ExoFr75/wXVPciLAgEu4XGC2/MA6me/42wu3577Pu+iT5NVtHfqdhKUKCHDSamSm6AHB3vnkIlooeiBp4/a3SCqQw5syTMghEETXRBUwFwNFghUPMhwzfCijCbMAaWvBZmohQrRjlvaQJSwOapFNvksEzPMCFjxdSQ/ba7W63YpT3MZrYAurLMTsmxfd/TP2aYMt0nJBtmdHVqP/1urEat8toXxQOBoKGO9D6jsr01w1jdVw1y3oJcCzmwEqs53BheN/CbRGo/a5z1qwY5SN418dv7x3zx/BPzsQ1/3Vjxk/rxmqkH8rY+SVEvxDIDJ7XZAKBZ2L62v+dXbxKXckTuB0yPY2ESptqwXuCP+Rx7iKEHfEo3VfHDBwfuLMe9fwAId+ckfAHALrmVP3ve/i9G+8Xt/vFq0P9YmUbnsnOb3YJm/aIfZo2xr3QNLo/+MMz8SVHphCOh8KpK7iMztfmvY1b5TtOgi+HxnqrT3Q8qSahADfkJ86OohihoggkCA+Sgl6vAdU2OU7gBajcLu/4VgQ9G3p98JsXcje0vUeZDeyPfmvqFyujbVzqlCAQMwC23bBAu3j1VZaBkRmf+u2Omh5yfAquMFsAcNI5268Yq42BM6B/0gvbMZOElbCNNdEe6+BOwNGOUCJQI257Pyu6/Wq427ineZ1B9bGdyBn7CsC2f1Abb8vzQncH3DGBKXHQduhOIPiAUBXN1Npudx/H/hhapWb18B6gX4xFMhyJPHcx0RgAxqNckPLc+0k8dwHGjz28h3EE5qPEZzBwCkFBY2zC56CpLNyvfrHfare73Q3j5o5PC/m1aRief4lmBZxVvQWLN+EH/F5s6M3B344tErLLPlMFHxJTwNGage3EcYoc6AA2jJuPs5gpBmigeHuiYgA/xptvVXEiGRJUeQmY/g99FNqDv9148ZG9mEDjdjXi0TEIpbAqud3udjUdVroNMxLLc3yUJqyy90/gyaaVwEBoDbYNtZfsvRw6dpI2JNxPGfznFDH5pEP8StPxWYSDYKCtwTPhbjdaEY7MKlpg+8GgbRqGKRC2F0fyNQ6peLN6eA8Y0zgIevmPedT7n6WwGlqcPBIeBQR9f4RNmAgTkTBpprgIjaO/X72B0OWZ7IYTtKclGNP0DXxxvAk/QGBsEniv/MLKj+8/7BDocVjjIQKDH0WY0IQpgKgJXrTcRAuD0gpkJUGVF4WX8GP4mQjHA69a0yyV+IICnuEMvlMxysFkNRwUKJiohpBd1Zu4qqZhmAX0A9v7cQhVDVQPOGbFOCsmEY4ICAsj4RU88cheGKUl2Fwrd0O5BtqJHeBUp6v4XYm/k9neR2CgDdhlMZzkR06HoMfv3p81BNoK+T9QA6OIAcs1j0QP2hGRHCBwZPKZMKTH23A9E0XAUVWkzSTC5xBe2SbsGFRbe2GkkX1kFvKdSDp3CUzf370kbUeEiSh2xTuW7Cs84QejnALOtJ5Zxt+v4W9eeOm+bwHytWkYDcD2bz98FglkctAdKSBEeaaAwPUOJxYLa028c26kjVOAZjF4aOIYfIeIkEkRCvjzn1rYehZWo/7e6QG8gzcPGvPuyDISHoCEnKwcDnqLezG5AKBfrjQwHnpmpbbpTuCRA5/3MrcT9m5urpWbHAzlkna2CQ9wYw5Vbgy5f49msIXgpBe286faY0P5D2RWrxqjlXG1a/r+boUHdC/p0U/DLiaHmPrbCg600WaVwD1KsqlOupIHxgWNNAdKIQjdoLk/XePi5dfwaUD49OSXs8OoPoLp8F3nrDlxPwWI8GFJdoCNNxGNIeBLY/o/+J+FwkUheJzQGGWzvqPDHo5JnpYgHO0SxycJvwEYN/vFaU1ExqmKUTaBoM9JVtywQ8qYbOVawkcAV5UwkJ2wRJu2wlm/vbqN4ATf89R2Y6YCScxJVJBuoh8ffpOEIOGIgLEJPLSC95tJgHHV+Pi1iB8wTbNUCqrJUzU1veBHzUrZfgyR6BJvkDvwbVMqXHw0JrhFqD7b40cMmlUQM2hHDbiTqFZHaIE2hFfzCfi1RAAAxqemWYo1d2yulavgoNMaQduP62NaVEqehCMwUkNkY0xEkduGwmkTTXERGQxDxw0cZ+wZDU+4vuc64nqanoAWSzjaZcLQ55AAkuqjEYubmIh5B6Csg+41gU4Bp6GKEuWBZkU53/gxDcMsMH/K5GyDg6t9Atfa7W533FTAp3axX016eTzv/OHL662ohdSjAzw1/6cczmjo01qIkupQFVrBR69oA1qCAEn22LRV0Phh4FeTgsGPKkb5EwLv94v94yyObXErZht6Q4edmIgq3FaUNiSsJQgx3N5VA68GElgx08t1Y3VHA5pZiwONZ+PMPhgP6EPb12GPIgAIJe185a1pGF/5n49Brnunj51w7gi/CUYmKiVvwv4QAhqUBBNRqO0EX5o0Z9qwv0WUaSz8jAbbH53HyS+/HlaM1dPQM7i3cav8KWg8x4YznnlzZMpwTQSpGoZhP9wIHcv3zekkmi9XIHjzoI2t3SOA7qRsfx1xzQPFGzsq9XA+jA2SDr+sGOXQVnYoqzEAL3Pau19cdeaYqUDT0mOxNTqEw6OX2DMbeIPnX0X6H1MP4ChLsRCEHap8K56IFK2Rk1LCpJeystCsgD02ZfVq37hqFC5XrFBCmzqD6vrFCsbvobefr/BMeAKI80FodzrtilE+wEB4G2kJGsP+htqKn2yjBSYmDqmBC9s6bAsD86gXRcFA7LnBzToYuzofU/0mrGhFGbs2cCc/HfZPFaPcxkDQufAmguB7dGTf6NeT+jir/APuwaUjMEzf37FCWoQpIthuyBSXlsEwSrCOug8Dxp5rTdsOF3VyExvR2GIknDLbrzXRyd5mllicj7U1lpZaCn+mwsYkDS0nfDA0DyhhIDfCqjxBDmzo1UFegQhTwZFIVjX7o9+aoa/MzbVyNS7roRCEp3bxqia7m6fmNX1f9cJ2zNAubcQSGXqVOLCP5T9IURW3291u/8aVBeJXSduFCBaekYgu0XQEnQ2ZHwaSv6SYUwaMmVUG7YcG7Xan07ahVyHnOZ9s8w6rfnPKKHfSOat7mfPCmHBXhFbo+x6BHp90zqywkCgVlZI3EhEYMsnMxpxxU0xxKRkMYwVrG3oj6vvweZz88uuh66SaKTKg7fuQcZziU9GKlEmMahm8edDE1u4BQLk4Jyw2fASgocoUTwci9JAeDtcipi6D23bx6jD8QjLIdENvXPoBm2g8XlKf+8HVJQ8GENHBsE2gdlzfhLkolgjO8Byi1KX+c0xSN590zvY3jJum/zsBW3DTP1D2E1IWD/DOtWYahqlRv6axFrs6BsbPiYkPNdaaaccB3JXq+u3V74bHoKH/Sdv9SE34vKUT1cdAHW5p4CH94lWc/4Ilen5pPhp0QYn3dxJO3p9tm4axU4BT97RuJYyKBA0KErUBNOOe02n3MQ0iGgo1DjmJ7xHp1IXtex84/tq7mgYtdnwIP4f+Z0Hmmnhagvvj2qpxvMnY3FwrV22HrfRna9j3YT9l3h/AvaYOFw7zEkSDCofaXgkXl21c24gDJQgoFAqFQhHFuBX37vMaOGgLWX6UIKBQKBSnJwwZAAAA8klEQVQKRRLRcdVbu3WAIr2al4xXXj6B5rw7olAoFArFIhOfaGV5hYKeGz7FO3jzoD3vzigUCoVCsQwkZ1778kUVjtPEcvgUHHvagP15d0ShUCgUimUjPRWr62i4D8jncZ8+dAriQ6UNUCgUCoViMsRzs2/tWoC2D3CWGPMc8YQA0vZV0SGFQqFQKPJBuliLG4XgbM84q+ErEDVB1FRCgEKhUCgU+SMvEAzY2jVBWg3MdSBzre0I6BTglvsPTRUhoFAoFArF9MkuEITZ2rXgptM03X9UQqygwF7GOOoC3AJpXbDTQrHYUimEFQqFQqGYPf8OrVHByEKRodAAAAAASUVORK5CYII=", Au = "data:image/png;base64,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", xu = ["das-loading-text"], Lu = ["src"], Iu = ["src"], Ru = ["objectFit", "controls"], bu = ["src", "objectFit"], Du = /* @__PURE__ */ Ta({
21044
21044
  __name: "das-hls-player",
21045
21045
  props: {
@@ -21050,35 +21050,38 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21050
21050
  loadingText: {},
21051
21051
  error: { type: Boolean },
21052
21052
  errorText: {},
21053
- retryTime: {}
21053
+ retryTime: {},
21054
+ errorTime: {}
21054
21055
  },
21055
21056
  emits: ["loaded", "errorClick", "error"],
21056
21057
  setup(a, { expose: e, emit: t }) {
21057
- ya((O) => ({
21058
- "42a695fa": O.loadingBackground
21058
+ ya((_) => ({
21059
+ "88cc9cc6": _.loadingBackground
21059
21060
  }));
21060
21061
  const s = a, i = t, {
21061
21062
  fit: r,
21062
21063
  loadingText: n = _i("加载中"),
21063
21064
  loading: o = !1,
21064
21065
  errorText: c = _i("das-ui-hls-player-videoLoadFailedRetry")
21065
- } = va(s), l = Sa(() => s.src || "");
21066
+ } = va(s), l = Ee(s.errorTime || 10), h = (_) => {
21067
+ l.value !== 0 && (l.value = l.value - 1, _.target, K());
21068
+ }, u = Sa(() => s.src || "");
21066
21069
  Pa(s, "videoError");
21067
- const h = Se(!0), u = Se(null), d = Se(null);
21068
- Se(!1);
21069
- const f = Se(""), g = Se(null), E = Se(), p = Se(!1), T = Se(!1), v = () => new Promise((O) => {
21070
- const B = () => {
21071
- if (u != null && u.value) return O();
21072
- setTimeout(() => B(), 50);
21070
+ const d = Ee(!0), f = Ee(null), g = Ee(null);
21071
+ Ee(!1);
21072
+ const E = Ee(""), p = Ee(null), T = Ee(), v = Ee(!1), y = Ee(!1), S = () => new Promise((_) => {
21073
+ const $ = () => {
21074
+ if (f != null && f.value) return _();
21075
+ setTimeout(() => $(), 50);
21073
21076
  };
21074
- B();
21075
- }), y = Se(!1);
21076
- Se();
21077
- const S = async () => {
21078
- if (!l.value)
21079
- return f.value = "视频URL为空";
21080
- if (await v(), D(), h.value = !p.value, Ee.isSupported()) {
21081
- const O = {
21077
+ $();
21078
+ }), L = Ee(!1);
21079
+ Ee();
21080
+ const C = async () => {
21081
+ if (!u.value)
21082
+ return E.value = "视频URL为空";
21083
+ if (await S(), k(), d.value = !v.value, Te.isSupported()) {
21084
+ const _ = {
21082
21085
  debug: !1,
21083
21086
  // 生产环境关闭调试
21084
21087
  enableWorker: !0,
@@ -21112,65 +21115,65 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21112
21115
  fragLoadingTimeOut: 1e4
21113
21116
  // 分片加载超时
21114
21117
  };
21115
- d.value = new Ee(O), d.value.loadSource(l.value), d.value.autoLevelCapping = -1, d.value.attachMedia(u.value), d.value.on(Ee.Events.MANIFEST_PARSED, () => {
21116
- g.value && clearTimeout(g.value), g.value = setTimeout(() => {
21117
- u.value.play().catch(() => {
21118
- }), i("loaded", u.value);
21118
+ g.value = new Te(_), g.value.loadSource(u.value), g.value.autoLevelCapping = -1, g.value.attachMedia(f.value), g.value.on(Te.Events.MANIFEST_PARSED, () => {
21119
+ p.value && clearTimeout(p.value), p.value = setTimeout(() => {
21120
+ f.value.play().catch(() => {
21121
+ }), i("loaded", f.value);
21119
21122
  }, 300);
21120
- }), d.value.on(Ee.Events.ERROR, (B, M) => {
21121
- A(M);
21123
+ }), g.value.on(Te.Events.ERROR, ($, w) => {
21124
+ O(w);
21122
21125
  });
21123
- } else u.value.canPlayType("application/vnd.apple.mpegurl") || A({ type: "UNSUPPORTED" });
21124
- u.value.addEventListener("playing", L), u.value.addEventListener("waiting", x);
21125
- }, L = () => {
21126
- h.value = !1, f.value = "", E.value = "";
21127
- }, C = () => {
21128
- h.value = !0, T.value = !1;
21126
+ } else f.value.canPlayType("application/vnd.apple.mpegurl") || O({ type: "UNSUPPORTED" });
21127
+ f.value.addEventListener("playing", x), f.value.addEventListener("waiting", D);
21129
21128
  }, x = () => {
21130
- f.value = "视频缓冲中...";
21129
+ d.value = !1, E.value = "", T.value = "";
21131
21130
  }, R = () => {
21132
- var O, B, M;
21133
- (O = u.value) == null || O.removeEventListener("playing", L), (B = u.value) == null || B.removeEventListener("play", C), (M = u.value) == null || M.removeEventListener("waiting", x);
21131
+ d.value = !0, y.value = !1;
21134
21132
  }, D = () => {
21135
- d.value && (d.value.destroy(), d.value = null);
21136
- }, A = (O) => {
21137
- var B, M;
21138
- if (f.value = "视频加载失败", E.value = JSON.stringify(O), O.fatal)
21139
- switch (O.type) {
21140
- case Ee.ErrorTypes.NETWORK_ERROR:
21141
- f.value = "网络错误或视频流404,正在加载中...", (B = d.value) == null || B.startLoad(), k();
21133
+ E.value = "视频缓冲中...";
21134
+ }, A = () => {
21135
+ var _, $, w;
21136
+ (_ = f.value) == null || _.removeEventListener("playing", x), ($ = f.value) == null || $.removeEventListener("play", R), (w = f.value) == null || w.removeEventListener("waiting", D);
21137
+ }, k = () => {
21138
+ g.value && (g.value.destroy(), g.value = null);
21139
+ }, O = (_) => {
21140
+ var $, w;
21141
+ if (E.value = "视频加载失败", T.value = JSON.stringify(_), _.fatal)
21142
+ switch (_.type) {
21143
+ case Te.ErrorTypes.NETWORK_ERROR:
21144
+ E.value = "网络错误或视频流404,正在加载中...", ($ = g.value) == null || $.startLoad(), K();
21142
21145
  break;
21143
- case Ee.ErrorTypes.MEDIA_ERROR:
21144
- f.value = "媒体错误,正在加载中...", (M = d.value) == null || M.recoverMediaError(), k();
21146
+ case Te.ErrorTypes.MEDIA_ERROR:
21147
+ E.value = "媒体错误,正在加载中...", (w = g.value) == null || w.recoverMediaError(), K();
21145
21148
  break;
21146
21149
  default:
21147
- f.value = "播放错误,正在尝试重新初始化...", k();
21150
+ E.value = "播放错误,正在尝试重新初始化...", K();
21148
21151
  break;
21149
21152
  }
21150
21153
  else
21151
- f.value = `非致命错误详情: ${O.details}`;
21152
- }, k = () => {
21153
- f.value = "重试中...", D(), setTimeout(() => {
21154
- S();
21154
+ E.value = `非致命错误详情: ${_.details}`;
21155
+ }, K = () => {
21156
+ E.value = "重试中...", k(), setTimeout(() => {
21157
+ C();
21155
21158
  }, 1e3);
21156
- }, _ = () => {
21157
- S();
21159
+ }, U = () => {
21160
+ C();
21158
21161
  };
21159
- Se(!1);
21160
- const K = () => {
21161
- T.value = !1, h.value = !0, S();
21162
+ Ee(!1);
21163
+ const N = () => {
21164
+ y.value = !1, d.value = !0, C();
21162
21165
  };
21163
21166
  return Aa(() => {
21164
- if (p.value = /MicroMessenger/i.test(navigator.userAgent), T.value = p.value, y.value = !Ee.isSupported(), p.value) {
21165
- h.value = !1, y.value && (u.value.addEventListener("play", C), u.value.addEventListener("playing", L));
21167
+ if (v.value = /MicroMessenger/i.test(navigator.userAgent), y.value = v.value, L.value = !Te.isSupported(), v.value) {
21168
+ d.value = !1, L.value && (f.value.addEventListener("play", R), f.value.addEventListener("playing", x));
21166
21169
  return;
21167
21170
  }
21168
- _();
21171
+ U();
21169
21172
  }), xa(() => {
21170
- g.value && clearTimeout(g.value), R(), D();
21173
+ p.value && clearTimeout(p.value), A(), k();
21171
21174
  }), e({
21172
- video: u
21173
- }), (O, B) => (At(), St(
21175
+ video: f
21176
+ }), (_, $) => (At(), St(
21174
21177
  La,
21175
21178
  null,
21176
21179
  [
@@ -21183,22 +21186,22 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21183
21186
  "das-loading-text": at(n),
21184
21187
  "das-loading-type": "component"
21185
21188
  }, [
21186
- p.value && T.value ? (At(), St(
21189
+ v.value && y.value ? (At(), St(
21187
21190
  "div",
21188
21191
  {
21189
21192
  key: 0,
21190
- class: Ra(["fake-gif", { native: y.value }])
21193
+ class: Ra(["fake-gif", { native: L.value }])
21191
21194
  },
21192
21195
  [
21193
21196
  ki("img", {
21194
21197
  class: "preview-img",
21195
21198
  src: at(Su)
21196
21199
  }, null, 8, Lu),
21197
- y.value ? nt("v-if", !0) : (At(), St("img", {
21200
+ L.value ? nt("v-if", !0) : (At(), St("img", {
21198
21201
  key: 0,
21199
21202
  class: "player-btn",
21200
21203
  src: at(Au),
21201
- onClick: K
21204
+ onClick: N
21202
21205
  }, null, 8, Iu))
21203
21206
  ],
21204
21207
  2
@@ -21216,7 +21219,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21216
21219
  `),
21217
21220
  ki("video", {
21218
21221
  ref_key: "videoEl",
21219
- ref: u,
21222
+ ref: f,
21220
21223
  "x-webkit-airplay": "true",
21221
21224
  preload: "auto",
21222
21225
  playsinline: "",
@@ -21228,17 +21231,18 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21228
21231
  muted: "",
21229
21232
  class: "player",
21230
21233
  controlsList: "nodownload nofullscreen noplaybackrate",
21231
- controls: y.value
21234
+ controls: L.value,
21235
+ onError: h
21232
21236
  }, [
21233
- y.value ? (At(), St("source", {
21237
+ L.value ? (At(), St("source", {
21234
21238
  key: 0,
21235
- src: l.value,
21239
+ src: u.value,
21236
21240
  objectFit: at(r),
21237
21241
  type: "application/vnd.apple.mpegurl"
21238
21242
  }, null, 8, bu)) : nt("v-if", !0)
21239
- ], 8, Ru)
21243
+ ], 40, Ru)
21240
21244
  ], 8, xu)), [
21241
- [at(Ca), h.value]
21245
+ [at(Ca), d.value]
21242
21246
  ]),
21243
21247
  nt(" </div> ")
21244
21248
  ],
@@ -21251,7 +21255,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21251
21255
  for (const [s, i] of e)
21252
21256
  t[s] = i;
21253
21257
  return t;
21254
- }, Pu = /* @__PURE__ */ Cu(Du, [["__scopeId", "data-v-0df9b6ba"]]), ku = {
21258
+ }, Pu = /* @__PURE__ */ Cu(Du, [["__scopeId", "data-v-9ee6e2c0"]]), ku = {
21255
21259
  加载中: { "zh-CN": "加载中", en: "Loading", _appCode: "framework" },
21256
21260
  "das-ui-hls-player-videoLoadFailedRetry": {
21257
21261
  "zh-CN": "视频加载失败,请点击重试",
@@ -21260,7 +21264,7 @@ const Su = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgQAAACQCAYAAAB3anPqAA
21260
21264
  }
21261
21265
  };
21262
21266
  Da(ku);
21263
- const Gu = ba(Pu), $u = () => Se(null);
21267
+ const Gu = ba(Pu), $u = () => Ee(null);
21264
21268
  export {
21265
21269
  Gu as DasHlsPlayer,
21266
21270
  $u as getDasHlsPlayerRef