@rivmux/runtime-worker 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,361 +1,3 @@
1
- //#region \0rolldown/runtime.js
2
- var __defProp = Object.defineProperty;
3
- var __exportAll = (all, no_symbols) => {
4
- let target = {};
5
- for (var name in all) __defProp(target, name, {
6
- get: all[name],
7
- enumerable: true
8
- });
9
- if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
10
- return target;
11
- };
12
- //#endregion
13
- //#region src/fixtures/m1-static-fmp4.ts
14
- const M1_VIDEO_MIME = "video/mp4; codecs=\"avc1.42C01E\"";
15
- const INIT_SEGMENT_BASE64 = [
16
- "AAAAHGZ0eXBpc281AAACAGlzbzVpc282bXA0MQAAAuVtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAAAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAA",
17
- "AAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAB6HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAA",
18
- "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAABQAAAAPAAAAAAAYRtZGlhAAAAIG1kaGQAAAAAAAAAAAAA",
19
- "AAAAADwAAAAAAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAEvbWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAA",
20
- "JGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA73N0YmwAAACjc3RzZAAAAAAAAAABAAAAk2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAB",
21
- "QADwAEgAAABIAAAAAAAAAAEVTGF2YzYxLjE5LjEwMSBsaWJ4MjY0AAAAAAAAAAAAAAAY//8AAAAtYXZjQwFCwB7/4QAWZ0LAHtoFB+wEQAAAAwBAAAAPI8WL",
22
- "qAEABGjOD8gAAAAQcGFzcAAAAAEAAAABAAAAEHN0dHMAAAAAAAAAAAAAABBzdHNjAAAAAAAAAAAAAAAUc3RzegAAAAAAAAAAAAAAAAAAABBzdGNvAAAAAAAA",
23
- "AAAAAAAobXZleAAAACB0cmV4AAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAYXVkdGEAAABZbWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAA",
24
- "AAAAAAAAAAAsaWxzdAAAACSpdG9vAAAAHGRhdGEAAAABAAAAAExhdmY2MS43LjEwMg=="
25
- ].join("");
26
- const MEDIA_SEGMENT_BASE64 = [
27
- "AAAAmG1vb2YAAAAQbWZoZAAAAAAAAAABAAAAgHRyYWYAAAAcdGZoZAACADgAAAABAAACAAAAGjwBAQAAAAAAFHRmZHQBAAAAAAAAAAAAAAAAAABIdHJ1bgAA",
28
- "AgUAAAAMAAAAoAIAAAAAABo8AAAGqAAAB4QAAAdsAAAHkAAAB+kAAAkfAAAHHwAAB6IAAAdPAAAHrQAABx4AAG1PbWRhdAAAAmYGBf//YtxF6b3m2Ui3lizY",
29
- "INkj7u94MjY0IC0gY29yZSAxNjQgcjMxMDggMzFlMTlmOSAtIEguMjY0L01QRUctNCBBVkMgY29kZWMgLSBDb3B5bGVmdCAyMDAzLTIwMjMgLSBodHRwOi8v",
30
- "d3d3LnZpZGVvbGFuLm9yZy94MjY0Lmh0bWwgLSBvcHRpb25zOiBjYWJhYz0wIHJlZj0xIGRlYmxvY2s9MTowOjAgYW5hbHlzZT0weDE6MHgxMTEgbWU9aGV4",
31
- "IHN1Ym1lPTIgcHN5PTEgcHN5X3JkPTEuMDA6MC4wMCBtaXhlZF9yZWY9MCBtZV9yYW5nZT0xNiBjaHJvbWFfbWU9MSB0cmVsbGlzPTAgOHg4ZGN0PTAgY3Ft",
32
- "PTAgZGVhZHpvbmU9MjEsMTEgZmFzdF9wc2tpcD0xIGNocm9tYV9xcF9vZmZzZXQ9MCB0aHJlYWRzPTMgbG9va2FoZWFkX3RocmVhZHM9MyBzbGljZWRfdGhy",
33
- "ZWFkcz0xIHNsaWNlcz0zIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0w",
34
- "IHdlaWdodHA9MCBrZXlpbnQ9MTIga2V5aW50X21pbj03IHNjZW5lY3V0PTAgaW50cmFfcmVmcmVzaD0wIHJjPWNyZiBtYnRyZWU9MCBjcmY9MjMuMCBxY29t",
35
- "cD0wLjYwIHFwbWluPTAgcXBtYXg9NjkgcXBzdGVwPTQgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAACw9liIQj8QiKuDAhfgIUxMAC1qDDAAeLwzoQ0Kgd",
36
- "JX/4mfOoxIpuVfDf/cReGVGNCoH9n/4n2SyzILWepD/7BY0+K1gTTP77uGoYRC/PQer10nDCoR53nq9IANIRkhQOl/f+0BwpHSlA3J/vgQABQAQYqEACVQAB",
37
- "AEAB3MxIhcEdeLPDg1zo1P5A5v/9pgK5iSjamAHXlFRCo8AQ0qc71gIwj/78UFZjo0VRFREeDRan/NUNkU3LeuIHwAHi8M6ENCoHSV/+uGoYRCfP49XgatYl",
38
- "YrHCHq9YNZiJIPZM/3zhGZSOVkHUDdPCQhsZT1e2iyzQKpj4I3/OCM6EcyIOqg0ufQS2R/bCGR0Mo2h3g9P9sdgPUVpqQUX/9+UdNvQcT/9+CQyjOjYJDYM6",
39
- "dgZhn46n/78vdKxWL/+5EVURUSahAwr/NUNmU3Lf83EXhnQhoVA6Sv/3xqhsym5V+b/4O4agwyFpE4PV7SxZZkFzEqQ/+oHWZkjg/x/fLBoqWLPQQ////lw1",
40
- "BhkLSJwerwNWsJSHIch6vWDWYzSBdNn++cIZlIU7oOoOJ2GDJSew2SMraQ6DzAerGyjanpWmhzGkdX/1qcmmbjAojNobUwZ+K1bZt/ojYRUHghD+ANFDYV1a",
41
- "oExMMuY2dB0s7/BwI1GRGF3/yf/cReMqMSPh/d/+BPZiRo5ZXmxFlmQ+RyEv+cEM+IUzIOqQBS4rQayn99dxqGNyfNQer11OGPyPM09XpAGszJHAvv7/2gcd",
42
- "nSuBOT/fBACFhAAEgKcHxeePoLNvgNRtTs6beg5W//cYD4xJRtTAWOJimOwrlY5nB/cCjanZPUWwnm//3GABbnHuBtTiKgI/2NF/uoyIwu965A+AA8XjKjEj",
43
- "4f3f/rjUMbk+bx6vfIA1mZI4F9/f+g2nDViOVj1e2inkHQpsEb3AdpNon5VSAKfOkGtz++sSkIAuhx5I8PHbTRwecrnDiNrO/Ot46j6TsMR4xtgenA8Q24Pc",
44
- "Y50pq4uxfK4h3JDRxNm+XEViKybIdf7qMiMLveuTiLxlzEj4f3f/v3UZEYXe9cnEXjLmJHw/u//XGoY3J83j1exJHJA9nMS/6QBrMyRwL7+/9oHHZ0rgTk/3",
45
- "y41DG5Pm8er11OGPyPM89XpAGszJHAvv7/2gcdnSuBOT/fBAlQgABEybfmNqcPzG1NgPViI42piA9WIjjamzzTIbUyuaZDamwALGOP6htTEACxjj+obU41D/",
46
- "+NwA4syAQz3Btq91GRGF3vXIGCigACAZ7jUMbk+ag9XvkAazMkcC+/v/fDIAAgBAB4QAtgDhjTSGVUXvhEExStdIC+//3haCYBnLHEcqjuvhACAKxZmjTzYA",
47
- "6An/+0WAQBWP//wRApFPjQACaECKicn4f/4IooAApI+OAAOJUcAAR2f//4LgTRQABAy4QABEIQSEJEfBwBAIxwdBMf8P8FUIAAgAByQKCIBqEwcAgFY4PBsf",
48
- "//wV4HCDiEHBwACgB4gAAgQgACBlA8bXMPG1zA4AIILuYcAEEF3MRBPHBjQACSJ/8P+CwFEUAAQDOIATxAABAoAAEA3B0ExB0ExBwAC4AAgEMQcAAuAAIBDH",
49
- "//4IgUinxwACscAAQA5OTwAOAhD7DQJF/P+aQOAIAJBwIFiEDgWAGxHIHAsAJCwwLBsTwwLBLmMMOOCBgc/6MZScSEjw1DhigfT8eE41hp+PBMnWPx9Q9DfJ",
50
- "/8lwGR8CIf0VsjQEyAwlEA/isueAx7r4fmeYoy54SPUM8PhMxcIxD4aHYCN2Q3MkAkQcz/iASO+J0EAEUobGAb+L/5qPG/Z/ZKcPFa1lmkUwe7y55w/UB4Cg",
51
- "7CLV2+m/EJEDOghBIKGGTRbDDAItM4XS45Y//2oggI/4ADxeGdGNCoF8r/9r5RZZoOhjyHv9QQNPipYEsif74JhKEWDbzN3qGzYI1P5DSk//2eMI8SbB52gh",
52
- "GySMCdcP/93X5f2Gyf7kyIxV/4n/wdx0YExVD8er3yANZk0cH1/f++FSQQmY4zriA75XXSEj//f87ObTDB77M0aeYGLM//7Xpgrrrp7XD8PwBAsBRigACBVi",
53
- "AACAAAWIAT4OAgMZg4EBzMHQRmDwZkz2pgprp6euvDDAP+CsE2AmROxK1akEDgBgFCIAAgGnAAEAwBgd7TAImUsPAAktD+YyGHcQAjFyw86nJFSF1AKt3d13",
54
- "/EgTP/p1hI2zfwkbZesQwCGPYaIBNuRW/wExIZzVq3VkHIDGZBICMBQgABADEAzYCfWdDsVNhmk8ImVzwAMBNsgSOLi1V0o4JSPu0QAASAcOufwDAFjCAr8u",
55
- "ZcOQQA48/3NdX94OhEQkowgILqvhIvTmc7HGtYSlgAZ15N7YjeJFSYCqHKAcA4/XlxzZrjcvcBPSfWr98VQxIOY1saYaWUVLZ1GqAhM+0Q3+8wRFlHt8eMIM",
56
- "PxDgAiRERjtbqDiARHAw5BACnDgVsvRowmC0EwGBErc+ffZbIeVjBYEArAKASRkOFYi7tf8cMcOlAFraCMdDc/9cHEAIjEJoDAAE+EwjrXSwD/e8MQssaOm7",
57
- "WAsSyEqfr0AE2nMiDwi2J3aTBPXT10vDAfwcJIKICaRmVavPIECZkhua/AQpkR1q9+BO2kN1+FDMDhAECkA0AEP3CFuIYAVGVmLMQUAqN2g9ahu++5jK4AB2",
58
- "bJobQqMI/8BDSNAmcoZBRyQIaRpidREb885smDdqhQ5+f/hjh0vwE0Tu1avwIEbshufgazCCJ7fgVeSdMM2AKTTXrTA/PRiURCa5Z4zHKZDTFJ3M5Cpglp6e",
59
- "uubjgAFY0a65mCpNk8FcaAATQGEASRDHD/QLA4B0CrJv4BIQLO2nBgP+BMEogCqOo/wf/+DARh33A4QKKZcISE4QABAOS6vuARCzRAu1OVCEFwAd2JzGEW8J",
60
- "3a/DGAY1r1XAdpMGcwFG5//Bwg5GEBODg4IAAqAIcCT2ewMVIetvVldPScIeUt0g/AXH4pQb6rMIX1LQ2Nxwzmt2qjhAf9BqAC6nyNt4/v9dQcQBEQwACgAu",
61
- "MIAAuACGhAAGApBokzCkxIqAj9TAHQ3SFvfeABXbMwTv1KGO+QvAZswoI23SD/j8AxwjyYE8TOhuf+uDoER1CgGUwHAtwGwp5HIeVAwGAF1gZ+xwB0N0gITR",
62
- "pGTMSooYYAWuAiZTAGS3S/+YewW8AFszCRSxpEH/21hBZ3CAkKXAj0mlbgwlh4EXSNK2gYJoagprimCjTeQ1jbAIZ2IPiG3/hr8CGZGhuf/AnHkhv7wcTYQg",
63
- "YWQKTPkLMUhvf2x+Up/8po0DdjBkFHnc9MmxOcOnPPDDTBTT09dddddPT1xTBMZdf/u50CeOGOAAV1DwH/QaBMAGczJSj6//ByAZEIAAmAQsICAAKADmB4AG",
64
- "cWxL73EdsnwZJigMtukH4AFJIkGzZCBTekVAR+pgBVN0g/4/hjhBhwIEbshufg8BkeBwJqHDdgQmjSMmYlQoDDACxcAjYogI63SAjpk2J8hUdgwwAusBn7HA",
65
- "HU3S+A+Qexvoo04geBwCAeWWPADpIaApR4B4bat8CAFQAECQgAXAAEAIGg4AwlxkQ/tAQvZN6TCDwDgyADAKOGjF3aAWL2TepggfAfhxD4cdAVJEYDHdIbav",
66
- "eHiH4HCD2y4xD8IHooQD0cGCu/gF+/mwU0+877A6pNfwAl7+bBJk+877/6h4DDpQAX+VmkRY/srLbx8QDwYA9kDgCZA4ACIvgBmf9Exqoej4AM6v/IjPTEXs",
67
- "Dmb/67v2wU109PXXgAAABbhlAyiIQEr///wRRQABEt8cAAR9Y4AAsIScn8P/4KwVQOQDDIOIABA8QAAQPAABBhgeZXMPMrmBwACQDh1zDgAEgHDrn//+CIFY",
68
- "p9HBk/+H/BYCaKAAICXEACLEAAEAsANg6BMQdAmIOAEAdiDgBAHYEQTxwY4AAgBScn4f/4aBEKAAIQ/wOAAgAgOZbCtAACM4FaAAEC2AGcssSum7X4AT5GKk",
69
- "c7btf4cQ8A4aIAoJmgEM1QbahT/nDzng4IMRwoeKEQaHz67qwHO/n2dp98//j/adWAOd/Rs5o7tf//AA4DlOB5wPzgecD8ARTQZCmrVqQf8SBIhAjXAQCDXw",
70
- "O4Aw6mcbrQMuAxWADBdVGcepx2P/hj+NnDyweBwEDBDIsAA5f3fCjlhFiQIAAiGCRBwBIvmB5DlfIrAC1wCNlMAM1ulZ76jhjgPBgTADR0239rSigdBRlw0g",
71
- "HDAhwdnT2hyeB+ELc4zpGlbQME0MBgBgFHDRi7tf9YBjh04F2SaG6+fingdCjLCQsKEAEB2jsJ2xxHlSbmB1ImvaABP38MVxMn9r//8FgiKAAIBnEAIsQAAQ",
72
- "KAABANwdBMYOgmIOAAXAAEAhjwcAAuAAIBDH//4IgUinxgABNDgACAHJyddddMFTaYK66enrr4Yf/Yeij67XHjh/kDQKMDhBTEHHIAyPCUBA4QARQ8MAeYrg",
73
- "JoK2AeYrngcAQxtwAvYb3FA6G6QcAQx9znqHhwHgwKZTACObZJJD+0yDwMjhKmEABVxAJdzEX+//Ala54AsXsm+TAgLADDADOWWJXTdr8MYBjhAuL4ECN2Q3",
74
- "P/4PDIwLYIOGJ5mB4Q3l3eOez2B/s06TABzv4yqzR3fPEfj/w0Ydzi/BwQYiKWEBDjSigSuphdr5DgoAEZDMcKSISXFt2j33x+AY4R5MCeEQqG5/3wOIAqy9",
75
- "xAugoM+6dVAjoxLyFzHYpAwwAspgDHtDwL83S/+oewWlwADqPiGvXr+2JAChAAGQKIYwrM/AUjLyjLXuI8cM1BqCeuuunp66enrrp666YKFPBTHBiHbXD//x",
76
- "wKA09V+BwgpjLOEohhAAGQEBxuAi+l3ktBMH0AiMgzBNNJMdu1LAALgACAQxx+AY4QYcB9JhlMhufg4Qcjx2EgI3qb6L/gLEYishzK4iVLDDACwVwIRiyAFI",
77
- "t0o8B9Q9AvuDggQjfABf5WySKH9yB4IChAACAAADACAC8HSCUZXzgxl5DAB+YzHCaYWeRu0ApnTEFCtUrmzaOxAACgAAgFmeHEPhx0AUW0CEaBRuf98DgIGl",
78
- "l3wgARkDQgABAMHCQkAwHvgE7/eMRcRk/tH/ICmdcUdS8xHJAL1RGI5wmnlHkbtB+oKa66enrp6euunrrp6euZgoMzKeCmMFBnA/wH/0CwEkHAgORwCQgBMc",
79
- "2AVptTz4YAPhEFYbwtZxXdr8cMfw4aMALpMGcyG5//BwgUjCAqUQIAAQBRBgqGdusD3eDKrNGL7X+AqCTsIlG7+8ArNGRhEHwp5j92g/UFdddPT109PXXT11",
80
- "8Ph5CVhwFGAS7HSJ/w6QACGrdpD68H9Z1THHutr3c+256+QHorQgEgYsIAAuDAgvAM8MkqcDfXn/zMAZYXkHMv63B6FciyfP65wX0Ig+G+E3TpeCVF7A0w5y",
81
- "3lsTXuCn9Mw/fhVDpUAVr2Dc0az//VhBU8CAAhT0ANroZEaf8fGokd2/gR7KCrxMOVIerdZopAiV+//XxSLDhcAOUm4GZF9oYzN+hD5BsDZpEQfxtoEdvRdQ",
82
- "3d44Hy1ENbp4DPyhH//BACYENCAANgYHH4A4eDNd5GJ2np+7yAGKBe4FET3agbObxsWxW7+4B8R+w2TbOepoH73SsfFbMgZL+d8H3nb0uO/V+f1dH/7mfx3Y",
83
- "H9w4IAIhZoQABoDAs6a4ZF63pxYynhswVkHKb639HS1bDnvl6YKa6XAAAAb/ZQGSIhASv///BFFAAES3xwABH1jgACwhJyfw//grBVA5AMMg4gAEDxAABA8A",
84
- "AEGGB5lcw8yuYHAAJAOHXMOAASAcOuYyJAAfSbaSTbS//4QXdggCc5OAKCZEAgpJtq4AoJiYENNNtX/xD4Le8IECcJCAEAignHSRGAwpBtq/HSQnBTTDbV/+",
85
- "H/BYSKAAICXEACPEAAEAsANg6BMQdAmIOAEAdiDgBAHYEQTxgoYAAIACJyfh//giigACkj44AA4lRwABHZk/+vkhJDgJsADaHzZLFHkr6ApmFP9R7d9ATHIk",
86
- "TLxAmff/WPr4V+aoRv/YDSlLQkR8XUt79py7SGoSql/ggACYYIIhAAiGGwA1DLKcaAegwWbqPVQB+xkmyGu7eXFrm4rYA43A4QcQgBS0Avvx8jf2oepQpnf1",
87
- "7gBtcu/4AK/WSJ/RaX3+rbfyn37uvMRd3erC0JSMLcdRvu1BzNJuvB3f7fGd2Xc/dFa1jzPmCQxM/9hAAGgA6NCAAEAwAKA8CkINzw42AZjJwhRv54FPJ7Bb",
88
- "mqIMCiOUgYS1sPHAOYqQYWj+egvrFi1DpB7i/HyUcdjztuD5/uejUs2n63dSrvX66r9NMj3/IAAAvtPszhdxj+uR/mB3WWfxPv6qRaeq977gHlulnISf0itf",
89
- "KQ4/3wQABsDZoQAAgNgAGY0yj+I5f74reYpbXg/K+mV/f21kw1kXhBPf/U2FrxSK3a8DxI2/2jmn396+PAeN5kefB/2AJeVrCkAOa4jAEHYanQs9EYj7mmWd",
90
- "BSaneop9enwfJWOPprI69Lu990tJ8S8f/32fenTZv/OCAANAVOBAACA0AApZET6GS21XQGSSCyp5tdovbDquC8w5V7ta9bAPaJsAstZWZZcNrng+K8PS2O0d",
91
- "+pPetrj3I87P/fSpz+5Ju0/2SMD/GAABigACAhM2mOV/61wY2RKJ7/01MRmStiUfD+NKBAAFwxR4QAAgEgEAGAjLa6wiv7/aFmI2TwEc9qy/37YY0lWZZAQ3",
92
- "7/pzSGCo9ABW7XghmF+QsTwAT078KRX4bE4IXlvCIymq9I/hTWcBYfvAKPCAI5pgH2POGJY/fb/IX5+M7////BEHxR9HBk6666YKmxTOAAk2km3yT4IFkUIB",
93
- "IQv4ArTMDGYbavwBUkZgGGKNtQpwAE2mm06adBBZXCAkKf44tkBDNNtX/HBMyAIMWbavFPX73TBLXXT1/s0fHwWAmAnJIiOkQCKn/9wA6NVXsZH0lvQEo4xl",
94
- "vW+gk/f+WhkPVa1f+wQXCkBWBiQP28dllGf9//gGd31hF/9v/IK4hDJEL6RhJU1v+In/rQMssu/lWz/v6cTYfmgvxb/1ODO8Eq1y3fnwynpw0//8gtvVyq9/",
95
- "15KAytDvg920PyAfW7MDSQg3/RGXXX3cIAAiBhREIAFAAb5lkeAhaWw/jJYyI2uDO+lT+5Zot4zQRpNxMAbApg2pkAAggu4CGzbjCrJv7uAMhCIkoBxvad8d",
96
- "i0beg0NqYFJzt1RrtaXZWpR++7jWyfLx1gmYLVHJB//K/n96Wfv+aJUY7eH4dfOhOTTEd3sIAhS2BAAFgDg14BqZhmneOwG2Ms20FNLe3H6YYQhAklcFEU19",
97
- "vWgB2WBGw/+0Jo7MsizvH/B/zDwkMdk1dy3r9XqqLzj/fcE0S2Bpaz3f9/rvmUlmPJ/1Dn7UB67QX9v558pRVk4yb/obh2OAa/fT4kX/PvPwgEYQmEAAVAMB",
98
- "xetrm4I/u3jIH0Ga/a8Ysm3L//6xNsPO+DCYeuBzSBL2BRFd2vA1eZSE5S6//XABISFEMP+2QYCET0b+8LUi0Kof+jdFOG+Qa/+rqBHy9amZ/f3P3mu/f/3S",
99
- "L1WiEOblGZ0xhvfkXafwoMFcEIwOoghmljA3oGT+YNTuqbf3wIgmBIBsDnTs3AHWpB200CH/rIwXdMlSPu/CAAFwABAOYtHDD/DQtNCmEZoXKaHtRfhUr0lU",
100
- "nBD1//L/7b6h2uuuunm40xo2tPT1109dL+VS8ewWAoDxTUqA/nvzzqSTt/7ebXxMB/KThJ3rNtYIAnDmBAAGAKDzkhf3GIvO/Ssj3MEF7OVB4ILa/lkAAi9z",
101
- "BT/w8FZaVUdyb79dE6kcj9a/kUzT59YT5Ys7v54tmosdnqC7/fh7DbCaTefbBe/34f7RHw8FkKKkKfKKfpDK7qb/6AjvpULH3v56aqhyNf4KYGIEATgKMtwv",
102
- "EKf43+CPWOV+EHx/vv1Jn//YKyPrpefnRaUo78e7f4Kga/En0g9UEAJwxgQABkCgoxOBMWiFbt/kgOlyaIkM8CIph+7f6MgACTXKM0FMFauuuuunp66enrrp",
103
- "666f+H/sEUUfGjWtMFDpgprrrrrp6eunp666euunp66enrrwAAACFUGaIGP8M6ScIAE5yhBREABJRpGHiirI/zpF4aOiwARz6LITDgw/i8V4hyfA8IUzy8qs",
104
- "IIkQ0JvNG+AB1olNx+VtgvSmRr5z3XUNhgl2SQXvCmtf6BpMrT2Cw2fvrapp46E8//dM2VYNfihWKXDx2i6u6KLp+NVW7wikIFVgBrtfbeclHo5gj2v5/QMA",
105
- "TRvRqtfQ1ULeXpZ4bgfU0ww8URb/8732ANKxDg/31xdbf/FxEvz/l4cwYJoJQTQIVtfwOASrcwjiOKLqsmdcEIIROT+zDEIgP+g0QHu+0I8GkbLxACRGyGlo",
106
- "mha9eMSzUPYfNGHgGMAj8GCkAEC2kNz/1xCR3DAnGhQYw2lpg8OEXPCcGsMChy/j+H4cJAEJoaoyG1NBCR/MSC+zdkA///wHZPGmED+H9hs3wAYv1/VeCHHH",
107
- "I0aNqbwIoCxGSbnOGPjD78/ZuF+I+I/iXNgDnaTz0bO23r0Ca9Z7AqWemh+EPsFfBxAEpiJ9GVWyR1XvnV7NnVe+lzbrubYkygPD8NBorJg/gxTIAkDM7e2C",
108
- "jSeXwKHAowhDxMJ5EZ1q51UmF+h0JB2lPgAcKbI5DR0GdDCl60D+BBCIb4Dqa7RGX4E2v3/D78VBLd/8uRHTYRwQqn8EM8IznX8BF6r698U8Igh8EP/rXgh8",
109
- "EOdglkXhkExvxewHQPXc/ECvWs/4311rwQl3vwQ+CGIgAAAAs0EDKaIDrxeCH+l+/////8b4X8L+PyhcFHGmoTiilkPe+UBScRXl/cjvlebzoCIFXwH7y64I",
110
- "9Lz6A8n+Gq/z2FyYW60AC0AyPU8aegBnwijgl+B/FE5wdrKc+IBmSfo/H7KF+cdHg5ANzhyOjm2BDWhwmQVICISiOnCXvFIRKLpwDrKfE/+8vwtyH4DKg0YG",
111
- "dB7fpa80UuOhFJwbcMQ3D/JHIDo1L1Xm85RKXhuw/bUvX/kgAAAD1EEBkmiA68sEHgQc5fxj2QLgmwFY4xvTAYzb6EOsAPOyVSotuPvvuj9lXyDm/fgNtONx",
112
- "Uc3f7kd3WY38ywBxXPO/nwwapr//5R0XUgeO3TL42KTG0HeC3l6u/e0x43KhnvxOXQG8BXuxr09d9A81iD1H+7pHy6SEPjyoqYppdHX/0kvhVE2+2AFFLxFJ",
113
- "eCmFv/Wk3t6opAd5zH0UJfTi4vmx4/Z2CO0QwOKj9QLgRL7601+DXngDgr3G6zSCJnxATwgF/9qub/fDPn3L583/QFw1CAAIhqsIAAQBwAyPCMfI0LtrpXs8",
114
- "RL8djeCl7D9sGX7v2VoxeeeCKOmOW2v/k3HHdULxvAIfHpHKXcXBAJn8JDelh6LVwnKA/2N4NqNdmbxNoHkhb2gfcY+p7wMAAgD6wgABAGABVyRMpYGDxHJq",
115
- "rQ2H5wNhxJUwdoDk+MLS3zis+QjaeHVxgehxt9kd0i374PTzcy4DXwn3K7Q5nyf2BOP1P5y8RtVnYePAcQhMzrWUb/GwgWl1mK56v/YPwB9e2f0v//KX//L/",
116
- "/Obyx/0CyAJ2//e/5LLDTsPfhvua1+82YFKX+X7wRLqh32CAlIUILs9FCWhY8XLE78voKBq7Hh7pT9mw7lnfyvzwLcd447b2Y/f1q+PfCR/79vwMNyQAH/rN",
117
- "zBCzpSN2A3f7AnuFX1n5I7DF9sGxZZ9fBeARf7Pe6UUyo+YNfw1z8Am0jM4797pfDsRHiFDvRw0IS+0Kalge8rOCy+bMNLGF5Lx/wpGOvQf/FmyMoD9Uon/1",
118
- "pQYHhBZjakeXiVrO8ofFeZ/9jpu2lokv/mDmVx6D5MRx1p1QH//ir16u3fcqjAqb/ev7f9r22BvfMy76DseDmXGYQ+Hngf61AO1S87WStd9391BIQyQgEECF",
119
- "TCPaGv/ciYpfgxuj4dsomPycg89+Ng04y9b8Aeg5Jb9Ev79TfI6GZB43zWQGCIZ4DSwR131L/dcvp/QH+2XqE67GigO6v2+HKM3XB9dT9a8D/0eBhBkBYAsP",
120
- "MUsAxu/0yftFax2OAsLAGhlgpDp4Gz2ZzDeKA1/qTRzss/f/4IAAgARjzi1vJeT/+eHc/HGh2EfHsFgKEW5/edb8b4YnbQH8dduAiYMwQAEcStMftGj5voxD",
121
- "i5kwhUfNyzvusMlqUHiGB0dv+vRFh8bbwVwHYJ13a/n/+wVFqtirq5vf+gmMw1gNEBsrO3CXQGIgNsCDO/5S//wASETI4CcX6sdvwStgde3kyl+XxY+vDJKL",
122
- "a+nPAUSY4Q19earabnnf/KX9Gtog/xcFMWWfz8FMAAACsUGaQGP8N1rA68PUJK98JnlbFAMD/gj7QruScb4AKJn6WUZ7v3Bd440qV3YBdpa/SvI9gCDIQJxx",
123
- "EYl+pXCI5S6VcCNb4l3//AYFOeTFaYF7fwpYa06AwGtzUAmbqNcgSPL+fK8s/wGTiW3/z6UXPJt1XeFuDG1L/n/nfdrhpbtztvk7mQE3BW+6echVvosWL+Zc",
124
- "pO83l4cwOgLIIdAWQAIhW1wOAklzgcBETcwQ4jguKq1Vf+ggggEQWiwHtPgfGOW/h7zGgIHCpu6UG2glbQRCU18Doi3PNGH8NQQ/YMEkF4Hhxl69AwChEMEF",
125
- "mhGHrUDkcMsjAktNJwvJMcGYpQbAxOCGjQoTMg3sVBmuK0dkB3qyWGnwy6CIQByEAuCT8ACzsT5NVc6CP/vwBEZ8K8ZxPoWN/kqmzAbW6j8s8ytT+1glOWon",
126
- "k91NBftf7DZvgVBSZb+t/vB89/l4vq+zrlHoT+33oDbvH85lv5dweeRRGWbhfg0mgKJoCpNAUTQeaIAJsfBC1QIWA2JyhdMMRuQLpmgI+EB9hvyDQog+B4Po",
127
- "BAAEeILgMIvRAS1XvGYrRga1XvI1em5C/TYh4KghoGAQFwRFe7pFNj8QEdQUmvuDgghHA8GdBhE/81pYQgCQFCAAQAhAN4AlXbDRNU4Wf4AFzh28iHL1DPAZ",
128
- "6dXwxpdNH//jdoue6S+EwQ4ihDkZJYeMkv1Rk00CzN8cePQ/isGzZbxrOLjTCYgH67gLOVYJCFL5T6K4RBN+XJbe752CuZ4RhYFFI9Kk0FEPdAgr+AxLFrS8",
129
- "eYmdMTxcCBCp5MyYL6RezFvsEIRCFWOEOwhCARRD2whCAR4EEGMJF8IQj/L/hD7CEIghDWA1SdLg4MACYAHOZGVrcbvwAO2jT5y078vggCIQCP7CEIBEvVZ2",
130
- "CeIgAAABQUEDKaQDrxT4RDQJAEymjrUH8BYBMAB/Mfkir5kkOABJEvySbfDsEEI2RV5f8If7PAgEzNDL9BEI+X/BAEAjxsEcQjSES+EP+X4bwj8v46EPwgEQ",
131
- "yCCA60u6+AMuu5//e/++EdYRCMJcM4D1vuvgBifuv/+3/6wj2EIQCKMS2EIQCOwhCARhJ4R7CEI9hCEaJKOxYX40yHbCNs11EOtWBAejhgtw0WBNwrlwlVeh",
132
- "uaAKbsxO3wezspN189ZRGFi4bxVEywzN9z1UI+7gLeEJ+R+6M3v6kAq/yWY7ZP8HmEq2XLffb8v4lYUYX4DFXa9ReA6/4DzZh3Z/1Qgh/Mx550WwOETPqwlw",
133
- "72wDijtNV/TS/edYW5tx96Irw0UyPAaNN1dARPRVylc2VyF/YAoVNmD+riuFgV/Z3lHymEsRLb7jyQAAA4ZBAZJpAOvLBB4EHOX8YsNDQuCbACSW91lhmL5T",
134
- "HFVgFKpLZelirvqH8VdAn5/8N3mTFJNN/66ObkzZBD3giiY8AdbVTt8JmvfjYd4DnMm3kwvv//UzISyxf//2AIb/8B3jgy7UB27OtjR9RubdUKaby4tv/6gv",
135
- "W9YX7UB6aFRfuz/70PFrV//7URTBJ9e2tZlSD3iTXZ588gqAOTMUubSeA83lzL3BzYrqvshFHSyABQGbdLqfNf+nbptge4QBxKZmBvd0FuRvUY3gb9oFtqqQ",
136
- "fDGEaudvP0/sCm8CAARu8IAAQAwAjlt/IZ0pkTFL8hVG5xA72SCCv5pwg2yCkSLvBr9KFZt1L9jCMlh35iEBv6wNTaGoaFRcmqyg1cBc1TePXX5lnWBvvF20",
137
- "Ba+Q7xn5oFMil0ZTtXNPfHY18OfL5HrcvY0tr3/iQZ5zm7/v4OX3FvsPUp8GzAlrdcZW9u644P+/kDdhBnwE+19tmdr9HrFfjP3/4ED+M+7D5e/ylv/B+AMI",
138
- "Se277/6jcNixpJg4derQ3r///lL//l//nN7Lf/QLBHJ0qDtr33WF4qpLrKd7WnRx3hc//57BMppPzggCcxwguzwcr+YRb+p+IkjxZ+XxEcxM5AYEoHM9s/qq",
139
- "992D7li2+eo5qa1fao71Qq+/dAkzH3GEbtwHd0EjnrH6Q9zxYvQTtmmhNfAlax+Ot4ntpSv/ZSl4A7qajIr//+83lEX0L/Albh7/WpuwNKYSquAX7R9jKVIu",
140
- "fW8VH/wJ8TPbOohIZjllkEWv7+ERioCAIUJaBRKxtTaGfPXRzu7wKmwxBtTkn6NMId/vXMlHJde2Dl9kXKPD2u7xZ1uR3T8yeeH1YkYYHdVm7DsoYsxb9Yj7",
141
- "Ox6wcNDWBG3n/Y829Otu693AjwB5dd9LfZ/71L76E4d4y2pUINQ9PqeAYWMT3vH8/zuCAn6L6G+GVEBLD/0sO6MHUtx3lBq7pyeD0QMjTvKEA6gOs/ef9+P/",
142
- "/nh3PxyrDQKDp6wI5yfH7+qQ8aGBgopM/8QKz+NHr+Y1ccPiHBWcD+rr/3/95i+/H4NN5lG/1P8d9WDZBEWwKMJV7H+3KxzQZs78/94WFBqEbN52N2uR3XWv",
143
- "5/b1Vn///Gvg0S7kNo+COUuql6/vy+f1hkxLAmks4/NwAMfSA1vRQALbpeb7p/6D31xF0t6/8ewU0n3vn8/BTAAAAs5BmmBT/BhVdt2RYDpTKbxwmn3pP4KO",
144
- "O5U8uWsv4nhkIhzABfnWzIE5t2ABzo4jMW1edCyMhobUwCIB/4EdrfOl8RF0wiOG8ADGKegaGqRf/wzmAFmH2q7xuthz/WB/vqccAjUgImaMIABEyVFF9SWm",
145
- "NpgJO/7Ll3RpMz391edlsBg6D1a+4N8Sdj5/WH5EhQdXp7/Sxpi8dqVRP7BMsI45gSp+d88D/JFSP0I5LQWx3zwHg6q9eXzuxULcGT+6rf+d+l/8Iw0ef373",
146
- "yA7bThdObfPIQl1mWlXee/Bc1sNffjzzMIwjDeDBNBKCaBCEyLFS4HACdbmIL+O5gciS5PleX8ChhlQSnHXhYA/uXIxl8ChCHBhDGDAErLhqSHSKk0F3QM5e",
147
- "hoYcRgMSmjTXXqwIIIcOIP///TT00xFofbbPr9Fs+woyyRl+FwSf8bdUAJLrHISSuVN+401AkEiUrJf/5ICP7F4AxtV7d/r8AksAbU/+lr6YQX4f2GzfAEQU",
148
- "mWfy3++WYybWQ+O7fo+LRsjX/v98AIS/q1zGAfMzuzA7y+HhzQjC5cDoI6Cw6COgviCU2ALKM92ehwdmcSSvYEn2ab3DfRpvfC3gwBMglAEyDjWIAnxlpC5v",
149
- "bKmhc3hVsLFOQ1V75Xg8UxTVXvEQJURaHs+WxW01gQI0juDY2Q88xDj4AhewSGStX3Y5FvFAANw+gIALnGbgm8v54fvm7llgJ92d7+HBMiAIc021TRGo4R+v",
150
- "XvwcECEd8HACKgkAJgPgNVOJd47Ay8HbBlBWZCT7Q9gKUUBQgRYIb1abNjjiEcQQdiBI641nEBnQSAsP9NP4TgOsBZhy/4IHzvCNbb8NlwE0hu1akFpUgBQq",
151
- "bwAV5khxJ2/8//AFpIaOw2p+JwQ+CFXeH/D/gh8EOdgnlYQ4ZBQwMg9L74VJBieCay75//zfoQPxnvBCteCHwQxMAAAA7kEDKaYD7xWCHRvz//+G+pqFTgBF",
152
- "86cn37Qz////8Z5jvn8/H+ug0MYqhXwgX/w0NC47CRp6BbhuQf5yL34HYkCWAe2g4+fJR4Scb6rUAD/ovLrv/uX7xomgtxL+AqUX87qENp2B+1EDUHfSH6A+",
153
- "2AwiQORFkIm1PaHXn3beAWuMhtT+CSexfue2+X98wVC/CUSDEkSGuEbUf94xakMz2wy2B9g4bSVge+4RLMETeySIkYA5ZGnPIc/Lg0fv2Xwi66C3BG+BtAbc",
154
- "Zm0pguFGD3+BUpqUHDfbfbwLhachLS4x4vh8pSwpDeS1I3fHv4AAAAOkQQGSaYD7ywQcQs5f58UEQuCbADWWzMifqQs8OXWC7qNTLdd6cABldE0Ay8BgVB7e",
155
- "tX//dQiQJavK/V9CteAGL2uY/op17yn+ZHCicy/QwxXYd4B82KIXKn54XW9Tg/ZrGwAYC72hxtZZqx2WErD9tTGK/3TISKRj/smiqCV9vX3r0PB9Sqodv0Iz",
156
- "GIH2nFFhlA4ufSB3rRxgLNo/I/ZQB//xDg/A5fFsFU9IPZ7YHeIa/7A9DexgotZIOXA0g3QAcZT6T3QS/zA8xIt+grkna8C/unE46gpHxQH6f/ty4uO/zGfb",
157
- "tHbA4SWSx/apWBBQUKHeAxefS7a3BWAA3bfRj98yq1nfb7UrdZQgZsfwOLgs3b1DvkF7LZEysc5mAJ0tVQFX5DjyKjbkN9T4Fad2LtSzofvmxH/qBnTyV5CJ",
158
- "/wfIHpolmflpnOuzfrGz/P+YXvU7qDjK1fCJPHDZIkft/+1SUwKdvzLlGqttaS4/A1+o/P+FocaZP97ndfU6//8Fs/36V//vdziV1N6PsN28P/X8rBx8Qs9w",
159
- "0IBEfWmsBOf//fg5sROetDkm8guQm2SSi/8f/DS4gdY3qf0DAny+LGKowcHuYmNvb8R//5WU0SL88/6/kp/4KiCE24UzxTLm/7vjrV9VKo5PxMaHxYzvpTH/",
160
- "WwnVed40HtPAhLZgOLpc8Xn/K1Lo+DdcfXE9J3tAOzTSjvf+C8FEu/tT2TYrdRYptDG8JHuA+/wAzevT//EBCz9J72kdV97++Z28mp/PErFHuldqdLdbu7I9",
161
- "eBA/IWXVueqCIYcoIAg4LNDJidtYFypt+/rN8IDTjHetx7eAgr+E9NxvSM3v9g9w9Udl4/YRMv2Bf4CR7Z1vun8AdUuzu+wtsDWg7+24v9PJrsD3qDpAeBjd",
162
- "81+LHkHKd5KRyPAIqpNxpRLZZM66DHjotn+3ikwKMhXLUvxuXh3lDz4ulEft9c40bjntyqdo6oz3Jgf6DhdxDKo/XcnmBFB4O4bcIsqNQq+INobU0y5bzmuv",
163
- "ZC/7oOxKzi1ktmef/54dz8cX8NE8NAoKsvgNM7ZfZ+3xJ6kWE6koRGezT5fgTW/J3Kb781xf/EOCstZfcq//dcy0rSp/+3NQ287FuMv/Bx82nv98gZw+P/0Z",
164
- "7N/AgLv/3//Yah+t6QFzrgdF9S/3wdwGiFxtW/WPO4Nq8QAVleU3+fyIMkR3wDZsEVsEV+4DQ29oT+J/+bsX6Cnv8ddff/X/gsgAAAKTQZqAU/zyqcN2QHfc",
165
- "Zoifz8uYcMe/kL4i55I3gB7GiH2SnvwAXrUyMto17E+7A9vfgAXfsiQL3gp/v9BBM7W4enynappiX4vCNe+83Qosf/RRbaRsiDiBapdX/kv+b2+fCKQgVSA0",
166
- "BgBC+n69xK6jmNC6RJdQAXjd6G03yhPRaOt/nhuB6RpwMHqire33udh0VCDg/31xdbf/4sSRe/PMwjCMMYHEAg6CHEAg6AOQDDoMOQDDoMQBIhCawOIhbgeE",
167
- "JcwPMVwOmO5gghuBwQYQgw4IMIQYRJmKXhxDFueVXcz8F5S8UenJ1CSd/Cd8V17/0Bg4MDvHWWBjPigLsvFCO41RDFufJoE6/z3C8m1gwCII/c/rWDHhBB+I",
168
- "tDznMnMppg/0f7QZxIcBJAAdESIxvCvBaCEMBEK3fwBie00/eoP4AL50nHkf/9TCA/C32GzfAGlhlIlav6p/q6ffB5U/F/HyP/O8UIJfhNuTbxuECr+/djPO",
169
- "MEOZ3hGFvBgmgygmg+iV+AozSNkme8O9JEiTPefgiOov9wKEPRWKz4Aupg1NK1CsVskbIrDZInmFsvBOCdNbL4dl2Sty9HeWXwYhCEAMEChBQYsAYoA4Ongo",
170
- "NzxyxtCCSmgIYAHHodECRq+XtXwz8GCcTTTTAIG6t+55WgNAgGIRDFQNf7KR7mv+BM3Lcm9qz/g9qIwR9o/eIdBGfF/x991D7l8I8IQjDZQGpMqXhl4V3AFP",
171
- "L9az+AFoKT9iS0vfeYXBPRrQQWREQxLUS/GJaiX+CEI6CIR0CTtBfhc4cUglWXvfox/BZ7H7NghRoPBDj2CWkveMXNRczPCMMgmlAXQRdfIRRL+DeUYRb93r",
172
- "/i19da8EK14IVMnghzwTxMAAAAEVQQMpqAPvE4If/Hgmd9333rHfiyu7vd3/////+M5Lveh3Nd+1wT9VVVV2sQEITL//U0sMSOfv/oR1HYK4R9dAmLR5f7xw",
173
- "VC/ZgxhJAEn/EH+3I596t5ruKzEfpM6qkw8AX7jxKOmiAKpXbTEdf2xjC3FWgUY65sX6rqwU+ulaP/7jy6fgfWxD6taEBlxBOCFrzkiSHqWAS8lnpJ99EX2x",
174
- "0RC/+d+eF+ASt1pp1EVTpzI4cTO/HD1Afrkj95kezwTQsS8BJ+rfGsOMmIAFzL6nvUoPd5H+bt+4IgtzbhVQWxwGv5C1c4ViOvMyb7+nv9jKVPp/fbGbptF0",
175
- "iQG6mrVK87fHqdulwXfcCmVf/ufCLBPX3viFqAAAA9xBAZJqAPvI8EHELRf8EPmL+JeVBcE2AMIq5z9/QDi3qh9n8QRGZNAKofuv4cgT/Ui4qP//cAyxy7/4",
176
- "uTfutoh+c62XsPTOBC9WWs/M/5ZCFtniJ7OyyXxClQjDvEIeJbAP8/qsNZAHu070ad5fChoHSRfYGohKg2bXj8PiKRh+3ao1/+UHk7lRSE/20qTijzE7+K4G",
177
- "n8YETX79G1LNmv7aAqT0aEqe/RNk416DsLkDEPTZtFtmxjsD/2QGo/Yaf73ScHMX+R2oesfvDFtUCn2k3wFNWB9ba2rAygL041QiaGHWVoBPwTqlj1QuNJBm",
178
- "34SFeHgGMGzZSt+7oO+UrH3aAm99h+x1AD/HQCYMZ/cxzvTf9Hfwnb++nzCbrQHHylX12n/ThGr/69ofz1d5+gJwBD7fQU76buIORj77Qwr5NG4/dJMSTqkK",
179
- "6WpLaLQpRZcHsoev81N/Jgvj7Mc4r9O0Bnf8CB/oKXit5n7+G3h3nuWHPr+lKNqsa7Ly5GaXmTtG8jJXOvTa+nu+8ajo1HZ8tQ2JMgecMB16pDRCw///I8EG",
180
- "2CHzUQNCAekY8yxIIrUFxmS0HyeFDtiUgfiqAZlTOR9QASQYfbT7X4S/h/h/+d+X7ppCw91SxIyXrYXddlJGiWQ/9PSLb3jfj4/M9upxt3fk2/O+/t4SRGqv",
181
- "0LXK6g4ceJW5O0za+A38tF6EbuJ901NeAHu/97jqRUnyEg3HPtMr+AQalWKtff38psZRFTmEv0SDIANfTzatAS/u3/2n9qMD/7zbko5MTkyDb12x/vNlzzq8",
182
- "fYus4Xc9bqA9H99/CIMKQEAEDhZQDZidsFMqP/If+35DS/tBhKBkFIOyvhDNkPfeI+PdbUXOJU/7h1nh62x8jcXL5eOz6vgb1D34ljuBYQPMWAKNaRRhdViN",
183
- "THu4PunI6Qrs4BDTLQkmmsANn7/dvQVc9kj79qLL0vgEaHXWdVft6pCCA70S/yZ6migo2BN18h8ssce+w/kCaj/tYP/N/b+sX4zOyhyEJ0CH0qc5o/dT704/",
184
- "/HvATV6MjdbME3h/2CblIda2+g+wyLDkHVhY22qGz/XNTv/+eHc/HKKw0CiQ2BubFqY+ZxckKE3vkQGvpBXYRMjjRrFO+v8JqQelG5f/1/sWLJDJWOqcdXqD",
185
- "SdWH+4PE9Qo9vk/mTjB0y/H/gkymLOrX/m8HEf9AsikcvbD/j4Hap2Bv/+mnRdfqbougP1cEBKQ4QABQFMPjC1IOf0/BWTdIgQPT3fsglwyRvuch8IX8fE0y",
186
- "O9HfEgHQLdNBnW/5C3xWFqd/4RYKaJV73vn8/BTAAAADGEGaoFP9fSl8THehvAEAqyTVY9+AFFahkr20GjO+h/3ngcQAQIghOIRCGrUUhGpTvqqhMP+QlP/H",
187
- "+bs+3XXzxck8MBcBSwlqjougHFcsK06uUxAStZ3lAANarCe77fOTbJm+dnhbgTf2pf9/d+trFYVvdv+3ydpkATcHb7p5yFX+ixYv84o1msvDmDAEiCUASIAh",
188
- "IjAR4HIYlzgxVzCMEe92aCHDeB4DGQQ8BjIAIcITJYHtXPA4IhNzPw6V3W9xRqqrYwEFbe8/Dx1HoC9ghOcKkgO+0q0EHX/Mk+fsfCEaHwaWgLWRFYdulBpa",
189
- "AtZEVh26VsZb6xluOGOMAaj9OIaj9OIUjIuZupEjIuZuoCehNyI9CbkCWaOBMXZo4E2Yf/w0HASf8AIQgSUrh8MN2ocWBQRtLDbXwHpgofXzB4dgKmBILYQm",
190
- "verX0F/NU7I/68C77dZI2oKpNPxfO/9TQ/X+w2b4GPluvk+/794KTLP5b/fI8WjRk/92+QgXQxXA1jI9NNzj7/id+eaEIX4MASIMoAkQfEuwBa0q89HSkt5p",
191
- "6HLW0C1t4RjfBpNAHIAYKg8GhZAVJoA5ADBUH5ULIOIBkcACiRkTNm9M6b9EnZMmb2rbfofiZ52vBsGu7ds8vB7tnFa9MgxnbPnl4/BKUnnVYD9lxQERkdAE",
192
- "MvggBACGDAIggh/2XD4WDxQGKAwEMbO1amBNkNoyKtGDMI2lnHZpgDG8otr+kvhOBAghCIfCIdJBibLpB4f85zcVltzAIoP/7kU9tlX80BHAADXk8GAqyAb5",
193
- "Ab2tX1fvASNVPn/8GLYXJgBiPaHKbnhNHgso6gJptCLn/fg+Mno7AGDOVIbn/+wMEChDHFMK2W6NAb/2hgNy0IK6Vf/ppiHYRhbAe2ulAEiCDqa7hp4eAx0f",
194
- "RAgUZG74F7+HQfQRhCGywE6klWr5RA3bwEvt1W/wAL0Zk4SpusfeYXBPRoAcQvBCEfBCgVJ1wQoT2oIRE9/h/BD/BCiXeCHFwTxikYfz+foILHGIIJeKLFF/",
195
- "kDzv+jV9a8EKJl4Ic7BTFQAAAR1BAymqA+8Q+CH/wRAoWutY6sY+Lu+7/+v////4v/J3ejCMwm9+0ZvflzvnYJ8/n47/QJGy+EF46juGdh/Pwg8+ugUdrCFc",
196
- "vr0cuQL8wGAdXEiAHGdGB9sQI8qIfj9dQ8OwsADJTah6L8YCV9UiEp6Sb6f/xYTLhYuAt7+gP2lRYNM3qryXnuMS3th9m1xDPA4Lqcw+aZEWU4Br7/affIV6",
197
- "OyswvvVr9++X/7C/CMFAyIJGPI2UAw3XV/dKnklTn39QYu22n72Po/xnVCE4gEuCiKtwDzdd7+b+AHeKUokI2oICT7XOlt//3y+LBBrhYnhFoN8ebEB6GuUd",
198
- "/P+O4t/e7cg9Q7UIAvss2+UXXMUt7r7m+EUCmOkcbbbbfuAAAAOoQQGSaoD7yPBx/iFy/4IfMX8dynC4JsAVGRPjjfALn1pO3d//gbWFU6TSM26lxBLmyu//",
199
- "+IMgR5IhI+6vsSYWdyolEPf/3/wAvb333fnAEj/ed+S+PTaPh3guzuyHs/cjA+nW7gAjOpUWe65eCodmJrFr5X15nvYAGBJmYjQ/b1beKtbP6f5rPZ45saU/",
200
- "/vaIu9UOv+9MaDGlgRu/nF9hWTqHmDCRoIwQjh/qvtn+3jacQ8wOX5BR8qD0Io/ctn6s3fcti+GjTYv7/MzjfpIDC2zocXOdI3BxruQb332kC/kOVP8pdVi6",
201
- "jG7F+Bi2qNHT/I16nuv33haEktl5/xYKYIkHeA6u1Q7oPwBM3ph9/znvrkIKyhv0TWMzCHf0n9a+eAOP2BPiWv5Z3jdxSvAKDXDgYycOn+GADsoHIjXf7mBZ",
202
- "RbYnWxf/+w5fHoYXig9rx9O779FsinzlDOPT5uf/EScBXVfh2Kn4XXOtBw799xGey+llKXmjBzdnS2kbR///k2m8f/P8G8l6Wv//75UFhONnC0bNNAsaNqxw",
203
- "b/nfZD/zP8QuIXYIfM3YWDQgHjidLKWiP6+oiSfhu2d/1ANkl/7BUz93Wcm96BQ3//wIsmBmcF1cOSNP9/P9oBoo4+v8vqHLigmHrgIs79Qud7ZNWzyxv8ko",
204
- "qbUh/3bP3S9iH9b+MUxri88SPR/8ONqAuXMn/g/K9cyzveChy/nrP3sqtHPwFv9/KjuvHRRCPjRVgEcP/9L/81glYNId4HuvA3tdRiftX6gv9e8OP/jhm72b",
205
- "LAtvvODvV4gsd+v2a32BPDQm3/dO//MiPqTsoMLV6t//sMxaCMYWnM/qshd2if1tv7hy/I7jBQeqsb16cXPkF7IS3gXZWuwzryHs2SSw/oI1/gb+wDr13B+P",
206
- "ybNrAf/mRqT1Y/+MHEFi4OUMPb18PdvHUq0iy7ojdpeNB5F73l+6COw72jwbgzg43dH/uPIqDQ45ockA2Gsaterc5zf1z9q4/92//5gHskJ87IMneyfzktiv",
207
- "pnzyDUbOmj7g8TDItJWPvlbHKo/31g0//hB6QaGCL6aGX6asmBt6LkO0q6ncVqkfD5/hZWNfbT19/sSTDJQzqn9f/znH58gP/pUDN/8H+fQnXBzRwAcThhT/",
208
- "7miHrUP9H/l/N8NRC7tjvJPhqgP9htvH6q/UDdU9H79X8zD8iv8/94iGSMPT2NfR9NMgO2Lh/czX/z/69eETeTX/lZxi9EVX/BZAAAAC9EGawFP89eGJ8fIX",
209
- "8Idwv4AWWiM1nd/wPV2iCo8W/8w6JGAYM8LQZzrxeAZ3Ic/bA4AIQPaiazf/8vhGLpBcMDeCaNMFz71Ht9+AF42WyNN1sGEfq5/f39ljpXcWLRpd/hlAVXZL",
210
- "W3/tuLTA1cvP3OoZl6yn791LoxKvBSNXpXjDRXZrq0OojpooVb9U9Qb6v3EmDN84JSMImyxKujv74i5KhtRVuK2l+fQ8FOr31GmxULcCernuq/7vwn/CMNHn",
211
- "83e+QFNtFC6c2+eQhPWZaq7z34X0xr7rz3mfAk5f8EIEj/////+DAuP5W0K1wsHUmusa3obruOsCBDZ3u4hKIuAasmeHQbxg/JXu8FcVndMeTmH+H9ArD5s4",
212
- "gmhAomEwsHS0HS0VZa2hbwuCb/gAuTf11n7+dCbZY0dEXajdYIxhK1GEA//ADn91Hrq/4AoKibZwdXsnw8s2kmbU3neEQJAW8HIfg5D+JogUgZ2xUIazYoEA",
213
- "HaH2Z3SvdIOLJidnSvfOwV5/O+d8/n8v4S4IAiDAEywXosgcSyKPTrHPRMal6dAQYRhIkHXm78yxDAQ8NDrKpswYDWQeGrKy/EREQQimBZTeCG3cWwIhiaxU",
214
- "LzNgGALGEBJ9gTFjZBL6oABflZkoiX82ARLkEv/4rB4ZEPggDwCUau44TQEw+vLlVewAaC3kRBrlYyNvRp0OSFj6SEUXtAOIcsCBieF6QcelSaCY3S6Exr/g",
215
- "DEsWvcMxM0mDL4R4Q4b4G9dC+dLuBX9z/wc0Thkrz1z52CvO+d8/n8XxBCjlvCEgIokc7CMIQSiHfd92wQwQhENwBFNAzHNWr/8dfwCDX6PT//wBJqvR638v",
216
- "gzhAIj+CITqrbCOCFY5j2RDL2tb3nYJ53hGGQTSpGghRnSQpIhFr6/P+EekwluOHQvzsE+d875/P5/P28JepgQQx7y/9wyj9l/CIIfy+EQQwyEA0ERKHQa8N",
217
- "+BCKJoJBOoAXABCrN6Ih9fgAZHclM2SDFwAAAhtBAymsA+8RCIIQyCaAmkZirV84kEASK+ov9wfwAOcyatbm4P8v4MsPYIeqiYXBnDta134CamZVqAEgNqAB",
218
- "kW0RTNkg8ADHS29EjYcvggCAQu+X/CP4LwiUXjR345/////xS85lDCXXz4fl9Qh8hlWsvhOuEJqr44IbHwigSVqqZWCAIBGYuW87BLnfO+fz8bCEgYh495fw",
219
- "gLCMIhH4cFcBsm6T/4AYzX2v+9p4RCOb/1HCwWkwA0dH7fa9CAAIhSCNvgAOheuYpfmUEBNg54J8/CHIHuH3r4RQgtwjC3u98BNEV2rUODBrfhwAKyMzQmzl",
220
- "dmD8Mk4CZIbFrUOwtLwAHyow2S1MvUMP4bwEKNmLWr5UA3AS/o+erYhwAHjWYlbdOscMcX9coSC/DsNCaBkSAAg9LC6hJ6em5UsunAJO6T5nwwkbAIyRJ45m",
221
- "+79h94WLgEX/l/Ov6IIzj5eSTl4He2L3RRIH7dX7v/+EeIJwYqXj9wfBwfGVj5AOlWy2Pe9+wQxQQC/COiRgf2jL9ADG/WMRQGrslKNvlGH/ZvCvgguqQIfc",
222
- "8h1nN1X6gCRsmmB0DZjYqWPVaGsLsIQtwFZrN1gP7s3CkGaYLsMd+I8FGqrYjfzuZedAb4RLiNHCXEh2nqzUCN0kxpiV2vXDJOAhjZ2rUdAO+AA8byCVZF6Z",
223
- "gw/hvATRO7Vq+CmBv/DTPVYcAB8nENH8XJWDgAAABARBAZJrAPvJw2CriHiyA3AHHSbz34A1dEz573w5wdfipAH4A6ybWe4AxXI2VV4xfwRdEC5cAEH1+r//",
224
- "6MItV4+O/wuQSTMXhzvbbGiFmNanqD7MchnAf/iSn5oH6J7qZpwBV6pn32+CfZ95y+CMShDNh3gqp6k80fvAP4kF7KWZ+9wAq3uzs9yj82W0nx4DUON+OfAY",
225
- "+0VLn//dTZVIoXP/NEr4ZpL1J/JUiUmleQxYajYSsGw1cyshG5ab75tANxJZbn33Ta1vsHL52QmoehPT7vn+nT/LHGr148Bf9l9oBdIc05UbMr8wD3dpgf7I",
226
- "b9aX+FT3ATmedj+QgASpoao4+w8KceEfvT59lVoyii//7o1cvu+bwU3msyP3rw7zP3ego0zvCCJQ5pGP2uE34cq9YTXbwwxiDVYff975fXb+GDej+dL3ICbJ",
227
- "IIJL2WAW6765wrk6Ou9DV3WNfoHD5LVj2/HUMxInhUs+/Ycvnm8aHp8RXoYl05CO7nRHBor99QFH2hxm93v/Ue0b5YqncPNgb3z5wOC3qG4602rMnEpR0xWb",
228
- "TL//o2mpZvPB9XT3ulXhYTmQJkRvc3AJgRoKDdTk/dhff///k4WFQe/B78Hv4EEgICxAiLcwG3Rp895AghbmAzKyNHVe98Lwdfg6/B1/gUJAUC0giNcgNciR",
229
- "c9IIIS5AZVIiRVXjPZQ1BYr33m2rq/ZAOf+eNr/78HRx/IlyPutqs/Flfz//6HTEvujrv9Oh1/l+QKeID1xQvCyAUV2CbJJScHe9/j6VFefT9x++t2ftIcg3",
230
- "hBugPv8dF/LzQ5uXn4bIN8f5vwNRhMo7C7/IwMT3Sar0366XgITcnI++l9yKSw7wIXsPugwnZ+f8N7U68Cd0fA/Ab5Af7qwKG8ZWFfaPi8z/1QFFfJtyZM7M",
231
- "MyAHX7z5WeRfroYJc1GVORNPZP3r6B52HsLzdR/87768CWscVpZJj4lG4Dd37DzQl072YW3Qf5VTmh/kT4AgmxwEFgg9i8hJODIN69tg0Nbori7UM8v2eDyu",
232
- "ch1///67hAO8E3juySoFXQHG6+27841vc/u6Y/5kJZ0h7za2dX/mR9+HQO6duYjNWcd5H6QrTn+WnITHEey5un/whDI04BTMRecoPej3U3+d//zw7n455IaB",
233
- "RIMz/EIZQPBAjH1PpDz1SKALe7hfN+DwbPvvNVr/CAZK2LSgN9izOzTIOHNGC7Ez+Hp03llNBLNhAJSlbhH2l/5//A/ij7ETBFQP/Q3hqBi7wgL/WBXpNqh8",
234
- "3znqQykufDxBdYQXZ4DNc7P/8/B3ZIPIVzr//X7UIwyRk/2A64jcsD/buYeX+AH1RIkB1ObD7tclEnx/4uCmCRizP5+CmAAAAgJBmuBTzF9dyRvASDdgafaB",
235
- "Hoqbj9X23fYDu0FeFJ/lqHu/ftbSIC94KaV/oIJnJLB4bf7ymoyeHQT333TJ0Vgarjh2JLQ0ORdRHTSdH4bqq94QUhAqkBmD4AxZlvb60aJ6e5hqXfiF0AJo",
236
- "3kPTXfTyoLLL0tw3AypGnAweqKv997lsOnIQ4P99eVWNf22JLL1nlhH/QQhHOuCELFxnLoo4gxjNglYu9Sn0KJs3gYJziABEiAvHgzMdBGZ4TM4EzIhUIghD",
237
- "Rv+AFO5fQ+PwvoVyf9Ji+98v/BNhY3zYCUpC6WJVcBu7f+v++zTvCs7wjW3CObh8tFHspQgeLAA/gwBIyyoEjIsAAxAQEJKNPbA1qnxVgS3JZzy+Bj4oIqCk",
238
- "jiXMUGD3kHXmCbyf70wTY/wiEEP4CFGxC1q55F8HCDkXi4GLIDB5ACf08XMzl9YG1oKlwAGJ7p4/Mxy+QE5U0BdDlNCGAACh7G+AmpjatX1fWAAX5WYtEy/o",
239
- "AISogkGAASgCwgAWARYqqph5ilmRjTCN+f4AGC3kUzRkZGS0WPIXVBUTyngPGLSoUvD8sZ/AgFtoJf8B6S74oiUwLdNZqDQR349gAjvy/Ie8BgakqKS763t7",
240
- "NtnwQopxVz3//hpFbPghDMNyRfXwJ3ofsQ4v8EIKDjqR+543eEveCHwQ+CHPBDFwAAABIUEDKa4D7zvgh/9AmH3wSb3r5b3/iYJ4R5AUXnxqCE0EInd4x4If",
241
- "BDCPrgkJyY31bwQgkKq6QJ3zsEMI+jYY4/0ODTfd/WGgQeBwA8MovDoRiuOfO7wQod3ghBJ3eLwQxxf1xQwL+GkkQBV3wv+anG/8TdeBMmYl/6O+xMY6aK0f",
242
- "GEV2NAeKvf952CdYW5XhrNe9YT/u9BinXB/2sPDpiU1eA3VIeIrodqvAUa5fd8vxqNcQ7rP194UDwXLgj8n9NGD+EZ8O9Ac/p8j/cAL3/5x8L3peXFlw9HAf",
243
- "/6ncgIv6O3PCgBt9uyl/7BDwsTMWDdS4T0XoH5A41LgPtIvWBp+114++Z56RxfVON7cmVr6Ps6T0V9/6vXUzfDmtVw0tz/AAAAPwQQGSa4D7ycNgowPDIgDo",
244
- "IiAJ6CJGeBa3enwDnAxFBdO1hGHMDoEMglFoDQiZlwBCPJLlQd3gYAE7tYYv4e4kJhfgEh4mYcKtA3dIUv7zP/d4G+TH7meER77qHGNG2lj+u8DG1TPOwCnf",
245
- "aZ1oX3uhfuWHYrKAXrjOZvH1igDAzc28fYfQd4Vq2xol3yD7uSwM/4AH0087rR31WB6+76DTYDbsj1lufVN/vpN9p2Pvv5uWRD8XZH/2Eth2u76V//uzoNXM",
246
- "vXYuRag/8Wgb2O3z43HAKhZEl2f9/DAD1/f98B+HrLpHAQT2YsoQ87kerJal5fA3ycBk4w76cWQnV4H3tZopZSQhM18MTHz7hoGfEv/nzyw0vEZ3D/6sACvv",
247
- "vtd/Yq8alT8A6GtriyP1vl+UYRqw79wwQSPSA6AUAy67Y4/27sO72AAtfnAbp9oRVNfDd1UWmOQxORC8vW+BTPk/vh29TKR8kZDu41/9R34tvv+7sPGoPZM/",
248
- "01unH4EB34QPvN9b+L7+6PbXaND4ea6yHeiKhqQ/4BZ+tNe/ecr2/ptml4RAtJXnS/dixanGqMAkaTVef/rhoRA4Qc9lwCQgWdoAb2WJXT7X4AORBkHotxj9",
249
- "2vkQIOG4HgxEAdAjIPAuggs78B1srT8Ae5AEM0dadwjC5JRaCUWglFoIdAhkAHmQgAmyAJfcgOBqy9EHdhwCd7kHQEL7WGeZBooCi0PJ/JCyf/WJoNHefnxv",
250
- "66bF6OSu8jJi1hwslmVf0e+r//SnQeJhNY7dRMu3v+43m2zQvK//3lil/3UfxUd2EzI+7l/D4HzytIKPxneKulikRnwPm8NdV0/twvBHBRb+MFteA+4Ugjrs",
251
- "yvLfF4CobqtmfOmyh3rCwoYXgB9TwPeIL8tLn/GxO1PxmcQ/29c+6HF0kiLo8ZcwNXxHvVh348oBqeB5A9NCI8R5pbneypaR4pFfCWcrf8wLcgaKHpp7mnGf",
252
- "FyxxptI7j3wiG8ylJALe/da/6g/dXnzXD2dVgdd1+2BdmwEw3Iuoy5d7qwQ0grl392+BtPknd/5/4X+juN0+XwmUUpLDvTIYJSJ5vwv7j+gNG31FA6jQ14Hk",
253
- "J42B+yKrguxkUNb+zD3DB3nvmX6OtpiuqPfdDN5bO77Q/DI0hCikieiC+ZZ/uX//whjg0MMEoqTS2JUkyrlFSQE8IjRYDYbKc/PwdgaWVTYpP0ThkqTMEyg7",
254
- "f8jr3fhxna8NbxcbWwcpf+//TSMUa6Rf/9/+X3GPw1GNZVt8/PR/fV6toESYZhv7OISmpGai34ZhNckt5/mDJBuxXGv+jj73ge4uT1zFJ1w3I5z/nIT+q77f",
255
- "/BZAAAACVEGbAFPNxvgAUWx/7VpFv3hfY40rV24BRK+v0sUgEEMQQFVsKGIStK4RinLpU6Cd7413//AYYgBakogmzf2AhYTqYGPpwEwKr1oPUrq5wdS74/s3",
256
- "dAEvCWzozpROemzqu8LcCb+1X/f3fjeKwre7d7b5O0yAJuDt9085C3+S8s19ecU1ms5f8IwQw3g0JUEqEqADtBALsTA6Q7ngcBCG3M64fRZuAgIYE3u94gAC",
257
- "MhALrB4GwDoExiQsCAWCJwgYLiPwAd5G13vv+IXwNi8GOQb7iAyGM1sRDqwUyn/gBlG5df/7z/gApouzu//9zwsb4I6u+Vn/9t9kOWss3uvvvxyPAa4N/7zz",
258
- "wlpUPcH35gsjLZuF/BoEiCVAkQcQnLgBztrKMvQ1GTKc8vQjzfs17ft4RjS/A4IIUg7A8MqDDgghSD2HhlQccAUQQFEExpdM8LZZt+sCQ0nmeF9ZN+jemm+e",
259
- "DUAUYxcfvLw0ZtPnpoD3MXm7y9ghzKHggEQpJ7PPgo18N+B1q6+8doGMfBgTB7wQ5A5AYVl6QOE35wJRrnlBqC6G/FYAimgZjtWpziVqGfl+MR+ud//nzQEM",
260
- "Ah+xvgJqY2rV9X14SBIBQgACeAJ4KqqYeYpZRrmABkFvIpmjIiMksgCFMuYsvhDhCofKDeyy3AZNHSYOcJNaXwIwgUgJz+Qc9oaUHnWAEdfE2xB4C+x+Tf/I",
261
- "mXH11tbyvYR7CIa5PX72WbPwiCX5VVVV/4IfBCsfwQnFv8WELCKCoEJfzHh3P4ha6BI5oR0dKr4IfBD4IYyAAAABU0EDKbAD7zB2FAAIrd3dd8STP/oC/gIn",
262
- "l95++CH/wkENVVf/l7vGwS0YqJ4Q9cYCa73e7v3vWO5f4LxA4QzHvfghzsEMIxI/eIsEDz48vhbiYqC2psWW1rxHGoIdk1XQIYS+9/o7eCFG7wQ+CFEKLOwU",
263
- "xzxA4LgowEuPJ1CdnlRPdgPhoyYxzCd+u/3P8B7qwrsICXeArjJetxKekLZAB2PFNThI31QsFO1+mqvUGA0JBQFi5DaAwREWjdYas5tZoCAq6dl3iitcfv4o",
264
- "AySFnTkQTJRUvGrKlav8eRklGCMnjTmRibZ9Q84X46WIibgNQkAbPNdCP5qvDFLv9z4llUfYqwbQ/6tEvKjggfGp4ARWXPlr6BKcq+9+S+wQcihYnW4YoPZK",
265
- "PG+w/74a+zvAh949GbN62FUaNGg3B3h1ZqBHJHpLZ0r+f66+HhzWp5H46DP6wAAAA+9BAZJsAPvcEHghhsFGB0IyDMgqfhC2N4AT3k2JH9XvawjDmB0CGQdC",
266
- "7XBLtrvACoZeyqirr1YRyl/GPEBIL8AzugP9xCBZI70gC5hrcX+Ce+7LScX/QKRDy3+tD9/01f2CPEnZ+/+xo4Jp+/zg1zZL42SFKQd4W5fVo66hRppr1/9o",
267
- "CRqIDedieYP3qFOwYLit4H/5LOLI4PyX/vptpjhcOdyCh33iQH6sP+3xkae+BZsIACI95Q+DvMswYD7QnzueGpdkJT/a+dfwF4mNNQyHuDl92Vpw9GXP6H/2",
268
- "EdVH95rbsD7zHssVSCG5ANly4DYS2w/6DnidegGNItksF7R3lXM9e4ngj2+15itszzv49y7/ATC8elN51uiB3hunP2Ay5fwi+tBAMR+qIbUP/bGQoy5tGB/v",
269
- "EfOH8hkbe3j/jBmqcnPIAkM5rCVyKE/lHf4AWucnDW2wL+abIyFuuDsaQYJD2Ikp/gRVqgNN6veCtAl8E20/3DPKFmBCN/h355/jUJY+Kb8glOhNm311Mmu1",
270
- "4t8wbtuEtCwyL3HWQi8gxKXmLhjX//nD4DqDU5f/2EbL//oFUEMNgmBoBMg+YAqb4Ga9/ACiozMNyrr3sIKAAhO7MxXd2ZiuwCIQVdvAhWS7V+AKLSAhWm2q",
271
- "vleG0GoJhLEb6PY86ATEpMPUI6gF/3dy3/OWHOLvgCQCYLmgi+r0wT6+X5h08SID2hbQdi9BP/9zQ22u1T+t6AY2bhxH/JFuLVqd9v+pIJnKkANbwuOzqYDr",
272
- "V6AbcYHQrQzz4b6CBtK93tpH/rELryJsqgLmEW/5Hf+kbUO6vAnCko3NapzCg7wjq8D//3qOPXoiDAc0uA29DR1ZzsruO7m77wPnUE1Vz7+/rs8Nz6mqwP2D",
273
- "AhzVw/rIWl8I+JG9YQ4prZ6/88smi1VfWBy+VAoKVqHrcHp2uIHWGPyKmwbwPf+47S9uDBRvQMBAU15+eN9VAff6pi87pSjTx9kpji6OlGAcvgNd3I7rBx8x",
274
- "x9kJ3Alur2yreC6MV3SKy6/S/UQc1h3gt6P3wm3LS42WYufpGIVusDwNwSP0C43FPKwPP6Z/fh/9+Kc4DWofYxbfB9x8MbXdnGBOmo/f1uA7/XVZnhy+Exle",
275
- "cWt4Jcf/88O5+O4aBQGpql9Vm4Nqe7cegakb6K0KSCz0PoR4PUs3RCv+6fyMMlEPfwG88BvtZaf7ombtRn1L/zi9AOIvTpz8IDLPCoX1f+y7DUBTf0Rr/FaX",
276
- "M6hR7XBVYJDPgQQrTjC363r+f4ExOZb3hdW/ZOGSJryv5X3x1zj11pWUNCF7AdPyKi/APs6Rn/sv/FwUxXFmfz8FMAAAAflBmyBTy8OYADzcZCk/Lt+2WgtC",
277
- "Su4v7peHkrx4CV6i/jcbwh473GjBe3AlA147BwWwGJnmli0Ku9YyhZKLG3h6ekrbYKad/bdQHyrRo5zBsnUou7//JjyBkMuCuX/bwaYe1oQRpwahEfnebZAV",
278
- "TzlCDINvgeOBgakisQ5Y+eTW2F0e/UCBD57oFvUzOP95WP1c4B1n/3ULcDern9W//234X/CMNHn83e+QFNtFC6c2+eQhPXMtKu89/wvpjX2XnvNCPYQhGtf/",
279
- "KuEe5xoVNi54BKCryECjxPMagYSv7BFlUhBB+MVT6fSAACzBpYcAAswaWU0U0QAneWHATvLfDgJIALmkdhOZXboNZmQisUHPN2jQEf+AIXRN961/wAXE5saV",
280
- "JB7oLG+AJf3ad8+iaqf86rfVWmcUn/X78hf/6LbS787+fh2P5XtPBjsioRWWFbKSuMNMCPHTQnzY/whAUP7cgJkjJ1qLbP4uByAHGQMkB8ja1mpwjrZxbMVs",
281
- "H0yWmZAleU/ccVRhUuVYMAjFvz8x9mQcJSiwhP0XgVRCbxDAVaYe84NmbBCCU6SchQKh/5MU6OqQIfsIgmJVarV/BCCPe7+CEEZd3rMAf/8IglDABgkMAEQN",
282
- "jz/zwCWBEd08/ABEbXa+ProFT6CC0JmNQQivghRK8EOdgnjIAAABakEDKbIBC82CEEQcFb3Z9CBVfBZWvm65UEm+iV8XXXlzynz/EwRwhzgiWEf2b+uCo1VW",
283
- "97z4QGXxwQhHFSd34IRPd3f4ISiS5d4TYgPqY9/vf4R/yd3l800tQUCXfzw14IUZvBDt4MYREIE9cQCStdVl8VXGQRnVeGL4IfBD4IY/DwXFYAjuvgP5Vit0",
284
- "//Dxf6ZXhr9Y/+JM2BMcHOnrBRMY0aJCdt6gCu/6/Sgb0KrpF6l+cNBbnabpmVBAQXtcnB/w6Qo3M+hwu0r10nX/k5Xbc9XZwAdEPptvgfh2Y8CqeTkbJH4r",
285
- "IU3trz7fW4X4CR4yM9qIxkB/sQY/q7f9nOpX2g5EpXx9JlyxSWAmwrE8B+YqeB1/UdcAbBlgrvvnCgNVfUTS1lDmFuOff06XogiFbyj0Yxn1f3Qenz6AnX0c",
286
- "32j/8nQFuYtBHuIT5NaMhtT9w84Vp97H+CXe7u7jUHwV3u7v7v3zEmysAAAD4EEBkmyAQvcEFAkNSdE7WCGeuP4/KjxI0L8AOgtZb9VeBbYvJPXZ/76gLWCV",
287
- "aglfSq3YVkHFsS0Z+6Br+iToL/+SCK2bREEbrBKIYFXBD6VOGr55/GpdePTEEDuFFMAp6yiyZ6o4FKbceoEY6bA/68d8r4DY+p9M0YDubiTHy3qcYzDT8D7G",
288
- "OPUh1n4sfEf/9WBizsNyMhlfXrq7RMSyqIzwl152d86tyaREf/4jSIwcvjYSbuHs6bWq//1cySmYFTt5qeDQQ6xQTTy18JPUsdwZPvINnsyXJp/zg/NyLDp4",
289
- "78n9be5+A43lZ//SpeZmm4lv/XK+dn68EIPfymjVf/xL4M2CghGkHeRmwP6lHBgQAdbuAztiX9w7ZkrQmU3QH+sgauUg+nDV7mBcPTW6kBT1tb9PvDxr2WC2",
290
- "9gQztsy9Pd53pGnwMy8SXtsDsQ895ZS7B0jzB7KZivwdfmiP/laBwZRmvjewcR7gP9keFH3csX7/yhtWP/rfFAFlR85Zzf4URFgF7SJ19zJ3CwnwC97Io7u/",
291
- "0Gxc4YC8BrgKe6tG9///fBD9Dut4IMnMfi8v/5eLyvFMNQfTY0iDQOW/lFYN11+Z724NdjsLR/xbpG62eKQxf8sBkAFbVst9/wGgvfT+f8viSz4gYHtgWSMZ",
292
- "on9N+cVLMH4mPNjmUTFapRcVn+U/Bw/NfwH/8+2daZ81yPjxU8qw+/HEq9w7yizA+JQMMv4xS6l3+gb9A0ml6ecFFXutuvPMhV1P+Xzlc0kO9EgMAYffof8N",
293
- "gT3WiVb/8TO+uEfvdf7A/7jrJXrFSC6vpQcenjjToPlSENwFbSMtfCQcfXgMPDCX4FnB2AhX/I/qPMW9LuWnmbv////3BRbH3/s3+g5fefECA9ess0Bvhsf4",
294
- "0oD6B/7sDbH6acOP8gfO3rEvs3HQGsuzveN534gznY8+I8iTHG7kDviNU8fXH+GdztFtNLu//XsQNPgGfoXnSe/JfEiZRaEMO+D6A3uPMAIbTagPvC/cehpr",
295
- "dz/vnXWG/5WGW0csr4A4UaliVfnnkvxGea92p5TH77PQGhrbop+Dl8TrwyJDDBhYS99qxr3nWZ//88P51jthoFAlF8VzmRp8idpvZn1H3Xwc59Zjw/Y+C5ev",
296
- "fGv7v+Xwc/wyVlNXHy8y3WlLf39r0W36tFL+ut/+zkw/pPn5f+hI+ZlRf74/8v4ovhqF2VTMz/9bpzspD2sggRnHdSP96ASFachdi9PBa/yyma+3f6DJoL0f",
297
- "4sLb6rD/6RYAyb366edgD8N/R/5KQ1k90+7/xcFcYoEjn8/Hi+DAns/nfO+fz8KwAAACPkGbQFPM80b4ADTma7fx7UnZrUyNfGvaqw2ftbRIEt4c0r/IDA0q",
298
- "ztLh4baf5hlTI8OwN7/9bJ0Vg1VCh2KWhoL0bUu6LLrPw3Vb/CKQgVSA4AUVWn7e9SQee5hHi/n0DAF8j/IelT74aqFvL0s8NwPSNOAweqKt7fe5bDpyEOD/",
299
- "fXKrGv22JLL1nneEYcwYCVBKAlQBXwQErk4HJ9zgcAAoFTcwj/NA4TjwraAR4HERZfBiUsiE5xo78AF6X8FClY/N/himiMyLV74PTQ3RGFIXOg+bE6I45C5x",
300
- "gTCKTABymQfItm2+B82JkRxiFztDipZ5xpiin+EmgYEixIvBGKXqEi7P+YYWr/ZdNxPT4P1BLrsUu/XldBuTAQJJNJ0+U6gKMU4/v/f7VMPok/+f/5n/jdx/",
301
- "f5uF/BgCZBKAJkHEuJeASmzQuvRhuZGVV6E+xpk2N4W+b5vnn2qL7NViQeWe+ENrPfhDMX7BBIhgRDMKq5R2ZWfkULx000LNLBBDHFBlzDI9hAxUBlMPjTv9",
302
- "6ZztfCCuICdCSQh0Q6nGJ6J7jC/4Q4bsCAYObIXJGY9cxK/Ds9eBi5PMAKYnzNG0mCDNGBFl4DVpGpfBvcLBEwRBHcV9ZfDARCAR8EJNxW2oIcN4AdpIDFa0",
303
- "NtX8mWAML33++/AAKXbXy7vwQBGKfzC4KYxjHELsIfL/hEVhsFEAbjiDcVWr5RfgEzW67z/gBajGjdLX/XPl8LzQh0JbL4IAjDfYIum6QLBBhHOwQxsAAAGv",
304
- "QQMptAPvK8IBH4ZD3DHl8CPWf9j/+jQjRB0tioRoh7QQ/BiEeCT/EwTx5fCH/QQ6BQdN5QgusvjAgUIbubIuvhssBBG7vWr64Zl3+GZd/YQwyUXieQkXwl/y",
305
- "/uEP8EZuBrLny/BCEAj+whCAR8CTCIUQR/He//2PCIR5f8IX46GR0DKXPsfCDF0/3wjwiCHOw/HvDqC4KMNwYCCRnp/wBI9evyRlu+l9waKl3/aRNodcSxCe",
306
- "DFS4PqKGgBN6qzC33uDQV+u1m/dWhShYuL9w2oQz+kWS+Xf34FPHeeL/9CWnJMgW9XGH41enqpfKTl8G+KX001HAcjbu/5fyBAEcKFD2H3u+DgRNp3VB9gf/",
307
- "/GEaJwp3n1Ae+NtGlm+sbKpn+9oE3Hhhwa27cQC7fH6/wK2MaJapUaXwqEBEZcLeeeG+0P4NTcrmBXgIruu2RRD63dsDtVnBwuDwBGbX5ldfnmJr4/v9/TaO",
308
- "ORkHMI//fQIAQBEIqJ04RBCGjcBCjZi1qHYClMO4D8ACXSTG9Rs6w8IghDF7vwEyJ29ahLQB+zAG3+kfPDwAHyUY2S9MtWAAAAO0QQGSbQD73BBlWCHKg/cL",
309
- "gmwAiBf0xkK/6wxoEBiI+quoi+Pf/VpXxiT18vf/AocdezZfG/6BZzg6qL7iWEv5AfSdtG8h3jwTWyoxL4II6F00HcD5pgA8Un8aRn0b2B24Ex+QvyIFVPHD",
310
- "yxmYnlcd4jG3odl89f+das+8po99tfQWyexHN2q7Lwi8jr/CQhMlR+Bboweyvmye+284q/PDgDaskHAbqncMnr7/wcvhFij1IHsV7AfnDPv0ovg4764NaJMB",
311
- "Ah2iECL6NCYAmY5V+Uc2rR76iHdaAv+wfkD341Q0GQKFtuBGP4zPdgAMRUlK/jX2rueHQ/2uqu/7xZg76RYNeiI2BtIgBbLuJN6cqNvA3VoPLGyFN52iO8bL",
312
- "wvY4+ohmnsb7ZiBujD/tuAsJmnaAhv//7//ldNIN8tev39YnbPN+///9lA2aE0Rf9YOw6QOED2R8DqsPX17A+ldiDBZGjuyDgx1Y/6jCg7B8PgOD1lgTe3nE",
313
- "4k8ZNNYT8XeuZrFJr4mXufwCva9o7tS/LbF0cXVaaMP8+5f4j//4EChwqsv/wiHt7utQECN2atXPwRQFfgDO/VO/2rAAeFqjI369OrL+u8pf/5XgwKGjgq0K",
314
- "+6QlN/mMioVNdZCt/4DumlRMb76tIAlu+klEX9si2ZRvzfxX/mzl9Ly+QoShNFCQeJonGynNnr/92JfL9Znz/2ZmzfsnH/qmb5IwPccf6BBnHQDV9gb9UVvO",
315
- "kFEgZB++qob40KaRP/8Pz/sYBymk5U8XleAdd0ulfqX5WhJ0g71oSFokxD21gO0R9jezQ11znY/esye+D/1ejn/yoqSTQP+A/1cod1jPDvt7Q+HMuM4/30C0",
316
- "Z6L/9/aDl/8gQD0df7l+GLg8AuvOJDUBcCXcb+jqoYu7A7XMDbqEHmPxgOPe6De/tFIsB1duB/AwyxTSu3uful2/AKqhz6y/799Q74QsD/ZbMN4eU7n04T1+",
317
- "cNzDOCq1N/cMjv8f75bg7gMcdgfyUVeAaaXI3z5BakHCloI2PxvLXwVzEnTf9Ds3DI0VNAmqm72Ozn/+dB3OscX9/DQKAI25Qce/EMocZtoU3cknUNfYbd+D",
318
- "x2Of2Lf/9/l//DJTNtcj+a/bWgL52Kf6WjnF++vi1Ot+ek/ICeS6r+9fT/3uGo2+VAD/APa9b47gS9TAwacb6Y5d+gLgLN30+u/DwCioqyPrv+GSN03D/DGN",
319
- "18bhctG/4NjX7nF6AcRcID300wj8N9/4uCmMxZn8/BTAAAAB4UGbYFPNxvgAcWx37Vot+/sET4ONOSubwDbSfT9KSBACBEEBusIhiVqWgJinLpU6E73xrv/+",
320
- "PApANJyS0QTaClhLUwNAYCO1V60IVdXKCRy/nIbS4Ah7Etn/npROeTN1XeFuBt/ar+f/7b+bsVhY3u3/BydpkATcHb7p5yFv5LyzX+cU1ms0I9hCEQS8Igk/",
321
- "NzgrCAAJhiCwgJSkwAUqiUil//9yAADgA4FS8AM69//7/cgBDDZfnpl/brbL+J+FwUfADQTEmSqOD3+AC2zrQ2EH93aBoWPdlMFzTdsmOqHcaZBEkHaflrgO",
322
- "7FY4Aan9oGaWP/poH8P7DZPgBC/L6z/eHD5smRkbU3kIDeF723a6L5JsRCGZYIAiHy4NI8qeAnkmdahWe+4CZJkHWrXCQV/WEzj+TgICeEAJDkCJkfgCExtM",
323
- "eIcp/wGBlsSAfwgTC6QDwZlaaEvJ++eTR6y1hCHtwVUCBBeWeFlhYvnqCX5+u0DAgycfqc7z+vD8dZbe2wQDJo6XiAapqlwY0CgwIhfznfFGnPDL74fACEmf",
324
- "r53gW6aNaHkUAZFpkcxK6YQyoOso9FOLlBCr+CHwQ8DROCV/hO/PiuCIEz2qRGGwTxjGN8EYKE34PBCiuKg58WyZR0AAAAEyQQMptgELy4If/QIh/+jQf+Gw",
325
- "U8MvLhx9/+J4//QKMK4I9ax1F//zwUwj7UEJJAQbvwQ+CHCLBDPTwnh9HeP5A47f7FaqsEPghzsE8IYJguCrNEAc/8j2wCBlKPfunHBcKQqlfRFUByywyulg",
326
- "a/afdYA1K3M7N9MoO7I93WyicLFxl19r/5kjrp4V1H/6wfS3UBsF38aZ3E+vUbMwcmusXE+jx3jHUel9r6anojxk6vl/h7QwLy5AKq/NdUP8d40T4rHbEMvy",
327
- "SJrkAvLco3/OFs/0HD9MCuEwiyiDAIWd776QIuWd5EEScxFTdf+aXxIIg1HhMQCELc41wGz4R6gP/93S1Eu9OnlO9t1swdkuHELikAtoVxWFNTOPyi/zynne",
328
- "8+z9mGufNH8/ghUdvBCjReCHAAAD/0EBkm2AQvawQZXghoFCZf+y/rsoX4BD0gZg//fQPOZGdFj4r6CnaSCmJT7vrCR7Cu0+pr7AbQRNq1kbfu2xSLdzadv9",
329
- "8MZcCEtOeSZvR63gQ+55txI5fbMhQpQ7wNuwi26Xf7+D2K/jsWQIVMDemH+KqP8uLe8hu/uc3VYDsrCbBNzdPugJ/lEFX9VYANsrIR3xXgRRJT3/7gZzAgA7",
330
- "i5RcSK2O2SD60UaOU/B7UAHHEzi53+vAEXToyMC77By+VRL0Hryfzjbpz9586fNjWd/KYedMDXFBxfermCX/L36BuJ4ErTeZ+by4ED+jDg4jplqD/59ichBW",
331
- "YLyVq0P4KcvwkP0dlqwuhGS2k3+5JmIvb8A9IhT/ZG7UvjTDNuHfSYXZaGoAMGWz9+90caKz/9VkQcFgdIDUNC27BYUV65zjwMjTzhHZ9Mhn5njEIEAKaikf",
332
- "dBQvXceDtXEg4UyaYTEe8BxYLuqeRWBy+PYwnOHqXcH2GZs35oYPf/78XW1Px3s3ucI6Sz6e8bCvcBv897oyC5eP/f0WAnfpY97CJtx2/4sloTngKiZt3Hvz",
333
- "1BHhXlym+L6EgJPX+5K3///hjefK18ayZ7L//LBDVs7BTI85w0CYFiVHz6WI/6+VmbKzsKMfuAxk45Jf/80jvMzjQ+IC3Mx53o/8fm3L//y+5ZZB4eJQPvr5",
334
- "LIuv9HpdwpH9/eUVvbaU7ryxJrcnNm+u/Ucd2G2JfYEDpQydG9AeBUzDdJ/Padhv1+2xLp4BmrHTWWrbcq7th/dtPAH0VpNJm7/3YcMHS4BFueHeHUFb1Xzy",
335
- "/9Czx9aPfC+FZtUWt0ds36f0KDbujd3t49NnfqtsNR9yrVNWBf8TIjM2tDXnZqJ/D9B4CC1Xpf3exMUqzf1f/KQWFVzWR6ug5fKhCBG2w9nuf23/xAXb+j/7",
336
- "bP+sC7w1+0B/svkXQG9/BbOA1/gEAnaw4bavZuKmgHs+vpt07Mv4Pzie2/Q/73b0/gODv5n7XtWcmn1//7RlNM6ba8DYPu6VP3Rf/8vvMJGqHeAl9fB2PiEq",
337
- "vjdYPFXcz/6z6BQM268BoevDG9cH/+KFGT3hXTx50vzYI8GFz+i3+Fvwtnrvcd18xeZfycE/DeQ/BbYerrGfRf//7h8wZFh7uxI/Hnv0DUO0uKnF3n//zoO4",
338
- "hY54ogaBQG45XOH9/63WsC7xUNu2hg/bLAc1Tzvwz8PIokz878M/YIWGoZtO7LvX+f4D0WL7e70oqysimvziqkE/x7/8waKU0RRmi+Kd8SN9oPXyuNqyOXRw",
339
- "ff1BbCtOcZ+b8R4LUOPFsq+6v4pBkx5gKzBmBbbIEFr4tJFCAig/IJXnuba3/i4K4xQsz+fgpg=="
340
- ].join("");
341
- function createM1StaticFmp4Fixture() {
342
- return {
343
- mimeType: M1_VIDEO_MIME,
344
- codec: "avc1.42C01E",
345
- width: 320,
346
- height: 240,
347
- duration: .4,
348
- initSegment: decodeBase64(INIT_SEGMENT_BASE64),
349
- mediaSegment: decodeBase64(MEDIA_SEGMENT_BASE64)
350
- };
351
- }
352
- function decodeBase64(value) {
353
- const binary = atob(value);
354
- const bytes = new Uint8Array(binary.length);
355
- for (let index = 0; index < binary.length; index += 1) bytes[index] = binary.charCodeAt(index);
356
- return bytes.buffer;
357
- }
358
- //#endregion
359
1
  //#region src/latency/buffer-ranges.ts
360
2
  function normalizeBufferedRanges(input) {
361
3
  if (isBufferedRangeArray(input)) return input.filter(isValidRange).map((range) => ({
@@ -397,9 +39,12 @@ function isBufferedRangeArray(input) {
397
39
  //#endregion
398
40
  //#region src/latency/latency-controller.ts
399
41
  var LatencyController = class {
42
+ latency;
43
+ playback;
44
+ startupPlayRequested = false;
45
+ pendingPlaybackControl;
46
+ lastSeekRequestAtMs = Number.NEGATIVE_INFINITY;
400
47
  constructor(config) {
401
- this.startupPlayRequested = false;
402
- this.lastSeekRequestAtMs = Number.NEGATIVE_INFINITY;
403
48
  this.latency = config.latency;
404
49
  this.playback = config.playback;
405
50
  }
@@ -514,6 +159,8 @@ function clampInteger(value, minimum) {
514
159
  //#endregion
515
160
  //#region src/loader/http-flv-loader.ts
516
161
  var HttpFlvLoaderError = class extends Error {
162
+ code;
163
+ status;
517
164
  constructor(code, message, status) {
518
165
  super(message);
519
166
  this.name = "HttpFlvLoaderError";
@@ -522,15 +169,23 @@ var HttpFlvLoaderError = class extends Error {
522
169
  }
523
170
  };
524
171
  var HttpFlvLoader = class {
172
+ url;
173
+ headers;
174
+ credentials;
175
+ retry = createRetryPolicy(void 0);
176
+ fetchImpl;
177
+ now;
178
+ sleep;
179
+ abortController;
180
+ reader;
181
+ state = "idle";
182
+ pausedState = false;
183
+ resumeWaiters = [];
184
+ mutableStats = {
185
+ bytesReceived: 0,
186
+ currentNetworkSpeed: 0
187
+ };
525
188
  constructor(config) {
526
- this.retry = createRetryPolicy(void 0);
527
- this.state = "idle";
528
- this.pausedState = false;
529
- this.resumeWaiters = [];
530
- this.mutableStats = {
531
- bytesReceived: 0,
532
- currentNetworkSpeed: 0
533
- };
534
189
  this.url = config.url;
535
190
  this.headers = config.network.headers;
536
191
  this.credentials = config.network.credentials;
@@ -688,14 +343,21 @@ function createAbortError() {
688
343
  }
689
344
  //#endregion
690
345
  //#region src/mse/mime.ts
691
- const M1_VIDEO_MIME$1 = "video/mp4; codecs=\"avc1.42C01E\"";
692
- const M1_AUDIO_MIME = "audio/mp4; codecs=\"mp4a.40.2\"";
693
346
  function createMp4VideoMime(codec) {
694
347
  return `video/mp4; codecs="${codec}"`;
695
348
  }
696
349
  function createMp4AudioMime(codec) {
697
350
  return `audio/mp4; codecs="${codec}"`;
698
351
  }
352
+ const REQUIRED_MSE_MIME_TYPES = [{
353
+ mediaType: "video",
354
+ mimeType: createMp4VideoMime("avc1.42C01E"),
355
+ unsupportedCode: "RIVMUX_UNSUPPORTED_MSE_VIDEO_MIME"
356
+ }, {
357
+ mediaType: "audio",
358
+ mimeType: createMp4AudioMime("mp4a.40.2"),
359
+ unsupportedCode: "RIVMUX_UNSUPPORTED_MSE_AUDIO_MIME"
360
+ }];
699
361
  function isMseSupported(mimeType) {
700
362
  return typeof MediaSource !== "undefined" && typeof MediaSource.isTypeSupported === "function" && MediaSource.isTypeSupported(mimeType);
701
363
  }
@@ -704,13 +366,18 @@ function assertMseSupport(mimeType) {
704
366
  if (MediaSource.canConstructInDedicatedWorker !== true) throw new Error("MediaSource cannot be constructed in this dedicated worker.");
705
367
  if (!isMseSupported(mimeType)) throw new Error(`MSE does not support ${mimeType}.`);
706
368
  }
369
+ function assertRequiredMseSupport() {
370
+ for (const requirement of REQUIRED_MSE_MIME_TYPES) assertMseSupport(requirement.mimeType);
371
+ }
707
372
  //#endregion
708
373
  //#region src/mse/source-buffer-queue.ts
709
374
  var SourceBufferQueue = class {
375
+ sourceBuffer;
376
+ queue = [];
377
+ pendingDrain;
378
+ activeAppendBytes = 0;
379
+ destroyed = false;
710
380
  constructor(sourceBuffer) {
711
- this.queue = [];
712
- this.activeAppendBytes = 0;
713
- this.destroyed = false;
714
381
  this.sourceBuffer = sourceBuffer;
715
382
  }
716
383
  get length() {
@@ -819,11 +486,10 @@ var SourceBufferQueue = class {
819
486
  //#endregion
820
487
  //#region src/mse/mse-controller.ts
821
488
  var MseController = class {
822
- constructor() {
823
- this.sourceBuffers = /* @__PURE__ */ new Map();
824
- this.queues = /* @__PURE__ */ new Map();
825
- this.lastCleanupBefore = 0;
826
- }
489
+ mediaSource;
490
+ sourceBuffers = /* @__PURE__ */ new Map();
491
+ queues = /* @__PURE__ */ new Map();
492
+ lastCleanupBefore = 0;
827
493
  get appendQueueLength() {
828
494
  return Array.from(this.queues.values()).reduce((total, queue) => total + queue.length, 0);
829
495
  }
@@ -852,22 +518,13 @@ var MseController = class {
852
518
  return Array.from(this.queues.values()).reduce((total, queue) => total + queue.bufferedRanges.length, 0);
853
519
  }
854
520
  async createMediaSourceHandle() {
855
- assertMseSupport(M1_VIDEO_MIME$1);
521
+ assertRequiredMseSupport();
856
522
  const mediaSource = new MediaSource();
857
523
  this.mediaSource = mediaSource;
858
524
  const handle = mediaSource.handle;
859
525
  if (handle === void 0) throw new Error("MediaSourceHandle is not available.");
860
526
  return handle;
861
527
  }
862
- async appendFixture(fixture) {
863
- const mediaSource = this.mediaSource;
864
- if (mediaSource === void 0) throw new Error("MediaSource has not been created.");
865
- await waitForSourceOpen(mediaSource);
866
- const queue = this.ensureQueue("video", fixture.mimeType);
867
- await queue.append(fixture.initSegment);
868
- await queue.append(fixture.mediaSegment);
869
- mediaSource.duration = fixture.duration;
870
- }
871
528
  async appendInitSegment(segment) {
872
529
  const mediaSource = this.requireMediaSource();
873
530
  const mimeType = createMp4Mime(segment.track, segment.codec);
@@ -876,7 +533,7 @@ var MseController = class {
876
533
  await this.ensureQueue(segment.track, mimeType).append(toAppendBuffer(segment.bytes));
877
534
  }
878
535
  async appendMediaSegment(segment) {
879
- const queue = this.queues.get(segment.track) ?? this.queues.get("muxed");
536
+ const queue = this.queues.get(segment.track);
880
537
  if (queue === void 0) throw new Error(`Cannot append ${segment.track} media segment before init segment.`);
881
538
  await queue.append(toAppendBuffer(segment.bytes));
882
539
  const mediaSource = this.requireMediaSource();
@@ -955,6 +612,7 @@ const CLEANUP_STEP_SECONDS = .25;
955
612
  //#endregion
956
613
  //#region src/wasm/rivmux-transmux-wasm.ts
957
614
  var WasmTransmuxCoreHost = class {
615
+ core;
958
616
  constructor(Core) {
959
617
  this.core = new Core();
960
618
  }
@@ -1000,7 +658,7 @@ function coreWarningToPlayerWarning(warning) {
1000
658
  };
1001
659
  }
1002
660
  function normalizeCoreEvent(value) {
1003
- if (!isRecord$1(value) || typeof value.type !== "string") throw new TypeError("Transmux core event is missing a string type.");
661
+ if (!isRecord(value) || typeof value.type !== "string") throw new TypeError("Transmux core event is missing a string type.");
1004
662
  const data = value.data;
1005
663
  switch (value.type) {
1006
664
  case "probeResult": return {
@@ -1040,7 +698,7 @@ function normalizeCoreEvent(value) {
1040
698
  }
1041
699
  }
1042
700
  function normalizeInitSegment(value) {
1043
- if (!isRecord$1(value)) throw new TypeError("Transmux core initSegment event payload must be an object.");
701
+ if (!isRecord(value)) throw new TypeError("Transmux core initSegment event payload must be an object.");
1044
702
  return {
1045
703
  track: normalizeTrackKind(value.track),
1046
704
  codec: normalizeRequiredPrimitive(value.codec, "string", "initSegment codec"),
@@ -1049,7 +707,7 @@ function normalizeInitSegment(value) {
1049
707
  };
1050
708
  }
1051
709
  function normalizeMediaSegment(value) {
1052
- if (!isRecord$1(value)) throw new TypeError("Transmux core mediaSegment event payload must be an object.");
710
+ if (!isRecord(value)) throw new TypeError("Transmux core mediaSegment event payload must be an object.");
1053
711
  return {
1054
712
  track: normalizeTrackKind(value.track),
1055
713
  dtsStartMs: normalizeRequiredPrimitive(value.dtsStartMs, "number", "mediaSegment dtsStartMs"),
@@ -1059,7 +717,7 @@ function normalizeMediaSegment(value) {
1059
717
  };
1060
718
  }
1061
719
  function normalizeProbeResult(value) {
1062
- if (!isRecord$1(value) || value.container !== "flv" && value.container !== "mpegts") throw new TypeError("Transmux core probe result has an unsupported container.");
720
+ if (!isRecord(value) || value.container !== "flv" && value.container !== "mpegts") throw new TypeError("Transmux core probe result has an unsupported container.");
1063
721
  const result = { container: value.container };
1064
722
  const video = normalizeOptionalString(value.video, [
1065
723
  "avc",
@@ -1078,7 +736,7 @@ function normalizeProbeResult(value) {
1078
736
  return result;
1079
737
  }
1080
738
  function normalizeMediaInfo(value) {
1081
- if (!isRecord$1(value)) throw new TypeError("Transmux core mediaInfo event payload must be an object.");
739
+ if (!isRecord(value)) throw new TypeError("Transmux core mediaInfo event payload must be an object.");
1082
740
  const result = { ...normalizeProbeResult(value) };
1083
741
  const videoCodec = normalizeOptionalPrimitive(value.videoCodec, "string");
1084
742
  const audioCodec = normalizeOptionalPrimitive(value.audioCodec, "string");
@@ -1095,14 +753,14 @@ function normalizeMediaInfo(value) {
1095
753
  return result;
1096
754
  }
1097
755
  function normalizeWarning(value) {
1098
- if (!isRecord$1(value) || typeof value.code !== "string" || typeof value.message !== "string") throw new TypeError("Transmux core warning payload must include code and message.");
756
+ if (!isRecord(value) || typeof value.code !== "string" || typeof value.message !== "string") throw new TypeError("Transmux core warning payload must include code and message.");
1099
757
  return {
1100
758
  code: value.code,
1101
759
  message: value.message
1102
760
  };
1103
761
  }
1104
762
  function normalizeError(value) {
1105
- if (!isRecord$1(value) || typeof value.code !== "string" || typeof value.message !== "string") throw new TypeError("Transmux core error payload must include code and message.");
763
+ if (!isRecord(value) || typeof value.code !== "string" || typeof value.message !== "string") throw new TypeError("Transmux core error payload must include code and message.");
1106
764
  return {
1107
765
  code: normalizeCoreErrorCode(value.code),
1108
766
  message: value.message
@@ -1159,29 +817,11 @@ function normalizeBytes(value, field) {
1159
817
  if (Array.isArray(value) && value.every((entry) => Number.isInteger(entry) && entry >= 0 && entry <= 255)) return new Uint8Array(value);
1160
818
  throw new TypeError(`Expected ${field} to be Uint8Array-compatible bytes.`);
1161
819
  }
1162
- function isRecord$1(value) {
820
+ function isRecord(value) {
1163
821
  return typeof value === "object" && value !== null;
1164
822
  }
1165
823
  //#endregion
1166
- //#region \0wasm-helpers.js
1167
- function instantiate(source, imports, stream) {
1168
- const instantiate = WebAssembly[stream ? "instantiateStreaming" : "instantiate"];
1169
- return instantiate(source, imports).then(({ instance }) => instance);
1170
- }
1171
- function loadWasmModule(sync, fileUrl, src, imports) {
1172
- let buf = null;
1173
- if (fileUrl) return instantiate(fetch(fileUrl), imports, true);
1174
- const raw = globalThis.atob(src);
1175
- const len = raw.length;
1176
- buf = new Uint8Array(new ArrayBuffer(len));
1177
- for (let i = 0; i < len; i++) buf[i] = raw.charCodeAt(i);
1178
- if (sync) {
1179
- const mod = new WebAssembly.Module(buf);
1180
- return new WebAssembly.Instance(mod, imports);
1181
- } else return instantiate(buf, imports);
1182
- }
1183
- //#endregion
1184
- //#region ../../crates/transmux-core/dist/rivmux_transmux_core_bg.js
824
+ //#region ../../crates/transmux-core/dist/rivmux_transmux_core.js
1185
825
  var TransmuxCore = class {
1186
826
  __destroy_into_raw() {
1187
827
  const ptr = this.__wbg_ptr;
@@ -1240,44 +880,52 @@ var TransmuxCore = class {
1240
880
  }
1241
881
  };
1242
882
  if (Symbol.dispose) TransmuxCore.prototype[Symbol.dispose] = TransmuxCore.prototype.free;
1243
- function __wbg_Error_fdd633d4bb5dd76a(arg0, arg1) {
1244
- return addHeapObject(Error(getStringFromWasm0(arg0, arg1)));
1245
- }
1246
- function __wbg_String_8564e559799eccda(arg0, arg1) {
1247
- const ptr1 = passStringToWasm0(String(getObject(arg1)), wasm.__wbindgen_export, wasm.__wbindgen_export2);
1248
- const len1 = WASM_VECTOR_LEN;
1249
- getDataViewMemory0().setInt32(arg0 + 4, len1, true);
1250
- getDataViewMemory0().setInt32(arg0 + 0, ptr1, true);
1251
- }
1252
- function __wbg___wbindgen_throw_ea4887a5f8f9a9db(arg0, arg1) {
1253
- throw new Error(getStringFromWasm0(arg0, arg1));
1254
- }
1255
- function __wbg_new_2e117a478906f062() {
1256
- return addHeapObject(/* @__PURE__ */ new Object());
1257
- }
1258
- function __wbg_new_36e147a8ced3c6e0() {
1259
- return addHeapObject(new Array());
1260
- }
1261
- function __wbg_set_6be42768c690e380(arg0, arg1, arg2) {
1262
- getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
1263
- }
1264
- function __wbg_set_dc601f4a69da0bc2(arg0, arg1, arg2) {
1265
- getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
1266
- }
1267
- function __wbindgen_cast_0000000000000001(arg0) {
1268
- return addHeapObject(arg0);
1269
- }
1270
- function __wbindgen_cast_0000000000000002(arg0) {
1271
- return addHeapObject(arg0);
1272
- }
1273
- function __wbindgen_cast_0000000000000003(arg0, arg1) {
1274
- return addHeapObject(getStringFromWasm0(arg0, arg1));
1275
- }
1276
- function __wbindgen_object_clone_ref(arg0) {
1277
- return addHeapObject(getObject(arg0));
1278
- }
1279
- function __wbindgen_object_drop_ref(arg0) {
1280
- takeObject(arg0);
883
+ function __wbg_get_imports() {
884
+ return {
885
+ __proto__: null,
886
+ "./rivmux_transmux_core_bg.js": {
887
+ __proto__: null,
888
+ __wbg_Error_fdd633d4bb5dd76a: function(arg0, arg1) {
889
+ return addHeapObject(Error(getStringFromWasm0(arg0, arg1)));
890
+ },
891
+ __wbg_String_8564e559799eccda: function(arg0, arg1) {
892
+ const ptr1 = passStringToWasm0(String(getObject(arg1)), wasm.__wbindgen_export, wasm.__wbindgen_export2);
893
+ const len1 = WASM_VECTOR_LEN;
894
+ getDataViewMemory0().setInt32(arg0 + 4, len1, true);
895
+ getDataViewMemory0().setInt32(arg0 + 0, ptr1, true);
896
+ },
897
+ __wbg___wbindgen_throw_ea4887a5f8f9a9db: function(arg0, arg1) {
898
+ throw new Error(getStringFromWasm0(arg0, arg1));
899
+ },
900
+ __wbg_new_2e117a478906f062: function() {
901
+ return addHeapObject(/* @__PURE__ */ new Object());
902
+ },
903
+ __wbg_new_36e147a8ced3c6e0: function() {
904
+ return addHeapObject(new Array());
905
+ },
906
+ __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {
907
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
908
+ },
909
+ __wbg_set_dc601f4a69da0bc2: function(arg0, arg1, arg2) {
910
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
911
+ },
912
+ __wbindgen_cast_0000000000000001: function(arg0) {
913
+ return addHeapObject(arg0);
914
+ },
915
+ __wbindgen_cast_0000000000000002: function(arg0) {
916
+ return addHeapObject(arg0);
917
+ },
918
+ __wbindgen_cast_0000000000000003: function(arg0, arg1) {
919
+ return addHeapObject(getStringFromWasm0(arg0, arg1));
920
+ },
921
+ __wbindgen_object_clone_ref: function(arg0) {
922
+ return addHeapObject(getObject(arg0));
923
+ },
924
+ __wbindgen_object_drop_ref: function(arg0) {
925
+ takeObject(arg0);
926
+ }
927
+ }
928
+ };
1281
929
  }
1282
930
  const TransmuxCoreFinalization = typeof FinalizationRegistry === "undefined" ? {
1283
931
  register: () => {},
@@ -1383,98 +1031,84 @@ if (!("encodeInto" in cachedTextEncoder)) cachedTextEncoder.encodeInto = functio
1383
1031
  };
1384
1032
  let WASM_VECTOR_LEN = 0;
1385
1033
  let wasm;
1386
- function __wbg_set_wasm(val) {
1387
- wasm = val;
1034
+ function __wbg_finalize_init(instance, module) {
1035
+ wasm = instance.exports;
1036
+ cachedDataViewMemory0 = null;
1037
+ cachedUint8ArrayMemory0 = null;
1038
+ return wasm;
1039
+ }
1040
+ async function __wbg_load(module, imports) {
1041
+ if (typeof Response === "function" && module instanceof Response) {
1042
+ if (typeof WebAssembly.instantiateStreaming === "function") try {
1043
+ return await WebAssembly.instantiateStreaming(module, imports);
1044
+ } catch (e) {
1045
+ if (module.ok && expectedResponseType(module.type) && module.headers.get("Content-Type") !== "application/wasm") console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
1046
+ else throw e;
1047
+ }
1048
+ const bytes = await module.arrayBuffer();
1049
+ return await WebAssembly.instantiate(bytes, imports);
1050
+ } else {
1051
+ const instance = await WebAssembly.instantiate(module, imports);
1052
+ if (instance instanceof WebAssembly.Instance) return {
1053
+ instance,
1054
+ module
1055
+ };
1056
+ else return instance;
1057
+ }
1058
+ function expectedResponseType(type) {
1059
+ switch (type) {
1060
+ case "basic":
1061
+ case "cors":
1062
+ case "default": return true;
1063
+ }
1064
+ return false;
1065
+ }
1066
+ }
1067
+ async function __wbg_init(module_or_path) {
1068
+ if (wasm !== void 0) return wasm;
1069
+ if (module_or_path !== void 0) if (Object.getPrototypeOf(module_or_path) === Object.prototype) ({module_or_path} = module_or_path);
1070
+ else console.warn("using deprecated parameters for the initialization function; pass a single object instead");
1071
+ if (module_or_path === void 0) module_or_path = new URL("rivmux_transmux_core_bg.wasm", import.meta.url);
1072
+ const imports = __wbg_get_imports();
1073
+ if (typeof module_or_path === "string" || typeof Request === "function" && module_or_path instanceof Request || typeof URL === "function" && module_or_path instanceof URL) module_or_path = fetch(module_or_path);
1074
+ const { instance, module } = await __wbg_load(await module_or_path, imports);
1075
+ return __wbg_finalize_init(instance, module);
1388
1076
  }
1389
- //#endregion
1390
- //#region ../../crates/transmux-core/dist/rivmux_transmux_core_bg.wasm
1391
- var rivmux_transmux_core_bg_exports = /* @__PURE__ */ __exportAll({
1392
- __abort_handler: () => __abort_handler,
1393
- __instance_terminated: () => __instance_terminated,
1394
- __wbg_transmuxcore_free: () => __wbg_transmuxcore_free,
1395
- __wbindgen_add_to_stack_pointer: () => __wbindgen_add_to_stack_pointer,
1396
- __wbindgen_export: () => __wbindgen_export,
1397
- __wbindgen_export2: () => __wbindgen_export2,
1398
- memory: () => memory,
1399
- transmuxcore_destroy: () => transmuxcore_destroy,
1400
- transmuxcore_flush: () => transmuxcore_flush,
1401
- transmuxcore_new: () => transmuxcore_new,
1402
- transmuxcore_pushChunk: () => transmuxcore_pushChunk,
1403
- transmuxcore_reset: () => transmuxcore_reset
1404
- });
1405
- function __wasm_init(imports) {
1406
- return loadWasmModule(false, new URL("rivmux-transmux-core.wasm", import.meta.url), null, imports);
1407
- }
1408
- const instance = await __wasm_init({ "./rivmux_transmux_core_bg.js": {
1409
- "__wbindgen_object_drop_ref": __wbindgen_object_drop_ref,
1410
- "__wbg_set_dc601f4a69da0bc2": __wbg_set_dc601f4a69da0bc2,
1411
- "__wbg_set_6be42768c690e380": __wbg_set_6be42768c690e380,
1412
- "__wbindgen_object_clone_ref": __wbindgen_object_clone_ref,
1413
- "__wbg_String_8564e559799eccda": __wbg_String_8564e559799eccda,
1414
- "__wbg_new_36e147a8ced3c6e0": __wbg_new_36e147a8ced3c6e0,
1415
- "__wbg_new_2e117a478906f062": __wbg_new_2e117a478906f062,
1416
- "__wbg___wbindgen_throw_ea4887a5f8f9a9db": __wbg___wbindgen_throw_ea4887a5f8f9a9db,
1417
- "__wbg_Error_fdd633d4bb5dd76a": __wbg_Error_fdd633d4bb5dd76a,
1418
- "__wbindgen_cast_0000000000000001": __wbindgen_cast_0000000000000001,
1419
- "__wbindgen_cast_0000000000000002": __wbindgen_cast_0000000000000002,
1420
- "__wbindgen_cast_0000000000000003": __wbindgen_cast_0000000000000003
1421
- } });
1422
- const memory = instance.exports.memory;
1423
- const __wbg_transmuxcore_free = instance.exports.__wbg_transmuxcore_free;
1424
- const transmuxcore_destroy = instance.exports.transmuxcore_destroy;
1425
- const transmuxcore_flush = instance.exports.transmuxcore_flush;
1426
- const transmuxcore_new = instance.exports.transmuxcore_new;
1427
- const transmuxcore_pushChunk = instance.exports.transmuxcore_pushChunk;
1428
- const transmuxcore_reset = instance.exports.transmuxcore_reset;
1429
- const __abort_handler = instance.exports.__abort_handler;
1430
- const __instance_terminated = instance.exports.__instance_terminated;
1431
- const __wbindgen_export = instance.exports.__wbindgen_export;
1432
- const __wbindgen_export2 = instance.exports.__wbindgen_export2;
1433
- const __wbindgen_add_to_stack_pointer = instance.exports.__wbindgen_add_to_stack_pointer;
1434
- //#endregion
1435
- //#region ../../crates/transmux-core/dist/rivmux_transmux_core.js
1436
- __wbg_set_wasm(rivmux_transmux_core_bg_exports);
1437
1077
  //#endregion
1438
1078
  //#region src/wasm/wasm-loader.ts
1439
1079
  function createWasmTransmuxCoreHost(Core) {
1440
- return Core === void 0 ? void 0 : new WasmTransmuxCoreHost(Core);
1441
- }
1442
- function createBundledWasmTransmuxCoreHost() {
1443
- return new WasmTransmuxCoreHost(TransmuxCore);
1080
+ if (Core === void 0) throw new TypeError("WASM transmux core constructor is not available.");
1081
+ return new WasmTransmuxCoreHost(Core);
1444
1082
  }
1445
1083
  async function loadWasmTransmuxCoreHost(wasmUrl) {
1446
- if (wasmUrl === void 0) return createBundledWasmTransmuxCoreHost();
1447
- const wasmModule = normalizeWasmBindgenModule(await nativeDynamicImport(toWasmBindgenGlueUrl(wasmUrl)));
1448
- await wasmModule.default(wasmUrl);
1449
- return new WasmTransmuxCoreHost(wasmModule.TransmuxCore);
1450
- }
1451
- function toWasmBindgenGlueUrl(wasmUrl) {
1452
- const url = new URL(wasmUrl, globalThis.location?.href ?? "http://localhost/");
1453
- const path = url.pathname;
1454
- url.pathname = path.endsWith("_bg.wasm") ? `${path.slice(0, -8)}.js` : path.replace(/\.wasm$/u, ".js");
1455
- return url.href;
1456
- }
1457
- function normalizeWasmBindgenModule(value) {
1458
- if (!isRecord(value) || typeof value.default !== "function" || typeof value.TransmuxCore !== "function") throw new TypeError("WASM transmux module must export default init and TransmuxCore.");
1459
- return value;
1460
- }
1461
- function nativeDynamicImport(url) {
1462
- return new Function("url", "return import(url)")(url);
1463
- }
1464
- function isRecord(value) {
1465
- return typeof value === "object" && value !== null;
1084
+ await __wbg_init(wasmUrl ?? new URL("./rivmux-transmux-core.wasm", import.meta.url));
1085
+ return createWasmTransmuxCoreHost(TransmuxCore);
1466
1086
  }
1467
1087
  //#endregion
1468
1088
  //#region src/runtime.ts
1469
1089
  var RuntimeWorker = class {
1090
+ port;
1091
+ createMseController;
1092
+ createLoader;
1093
+ createTransmuxCore;
1094
+ detectRuntime;
1095
+ now;
1096
+ state = "idle";
1097
+ url;
1098
+ options;
1099
+ mse;
1100
+ loader;
1101
+ transmuxCore;
1102
+ latencyController;
1103
+ videoState;
1104
+ lastLatencyMetrics = {};
1105
+ statsTimer;
1106
+ statsTickInFlight = false;
1107
+ loaderRunId = 0;
1108
+ outputBytes = 0;
1109
+ appendQueueMaxLength = 0;
1110
+ appendQueueMaxBytes = 0;
1470
1111
  constructor(port, dependencies = {}) {
1471
- this.state = "idle";
1472
- this.lastLatencyMetrics = {};
1473
- this.statsTickInFlight = false;
1474
- this.loaderRunId = 0;
1475
- this.outputBytes = 0;
1476
- this.appendQueueMaxLength = 0;
1477
- this.appendQueueMaxBytes = 0;
1478
1112
  this.port = port;
1479
1113
  this.createMseController = dependencies.createMseController ?? (() => new MseController());
1480
1114
  this.createLoader = dependencies.createLoader ?? ((config) => new HttpFlvLoader(config));
@@ -1554,31 +1188,24 @@ var RuntimeWorker = class {
1554
1188
  return;
1555
1189
  }
1556
1190
  if (this.state === "started") return;
1557
- const fixture = createM1StaticFmp4Fixture();
1558
- const transmuxCore = await this.createTransmuxCore(options);
1559
- const hasTransmuxCore = transmuxCore !== void 0;
1560
- if (transmuxCore !== void 0) {
1561
- this.transmuxCore?.destroy();
1562
- this.transmuxCore = transmuxCore;
1563
- } else try {
1564
- await this.mse.appendFixture(fixture);
1191
+ let transmuxCore;
1192
+ try {
1193
+ const createdCore = await this.createTransmuxCore(options);
1194
+ if (createdCore === void 0) {
1195
+ this.fail("runtime", "RIVMUX_TRANSMUX_CORE_UNAVAILABLE", "Transmux core is not available.", true);
1196
+ return;
1197
+ }
1198
+ transmuxCore = createdCore;
1565
1199
  } catch (cause) {
1566
- this.fail("mse", "RIVMUX_MSE_APPEND_FAILED", "MSE append failed.", true, cause);
1200
+ this.fail("runtime", "RIVMUX_TRANSMUX_CORE_UNAVAILABLE", "Transmux core is not available.", true, cause);
1567
1201
  return;
1568
1202
  }
1203
+ this.transmuxCore?.destroy();
1204
+ this.transmuxCore = transmuxCore;
1569
1205
  this.state = "started";
1570
- this.outputBytes = hasTransmuxCore ? 0 : fixture.initSegment.byteLength + fixture.mediaSegment.byteLength;
1206
+ this.outputBytes = 0;
1571
1207
  this.appendQueueMaxLength = 0;
1572
1208
  this.appendQueueMaxBytes = 0;
1573
- if (!hasTransmuxCore) this.post({
1574
- type: "media-info",
1575
- mediaInfo: {
1576
- container: "fmp4",
1577
- videoCodec: fixture.codec,
1578
- width: fixture.width,
1579
- height: fixture.height
1580
- }
1581
- });
1582
1209
  this.startStatsTimer();
1583
1210
  await this.applyLatencyPolicy();
1584
1211
  this.postStats();
@@ -1893,8 +1520,7 @@ function detectWorkerRuntime() {
1893
1520
  if (typeof MediaSource === "undefined") return createUnsupportedRuntimeError("RIVMUX_UNSUPPORTED_MSE", "MediaSource is not available in this worker runtime.");
1894
1521
  if (MediaSource.canConstructInDedicatedWorker !== true) return createUnsupportedRuntimeError("RIVMUX_UNSUPPORTED_WORKER_MSE", "MediaSource cannot be constructed in this worker runtime.");
1895
1522
  if (typeof MediaSource.isTypeSupported !== "function") return createUnsupportedRuntimeError("RIVMUX_UNSUPPORTED_MSE_TYPE_CHECK", "MediaSource.isTypeSupported is not available in this worker runtime.");
1896
- if (!MediaSource.isTypeSupported("video/mp4; codecs=\"avc1.42C01E\"")) return createUnsupportedRuntimeError("RIVMUX_UNSUPPORTED_M1_VIDEO_MIME", `MSE does not support ${M1_VIDEO_MIME$1}.`);
1897
- if (!MediaSource.isTypeSupported("audio/mp4; codecs=\"mp4a.40.2\"")) return createUnsupportedRuntimeError("RIVMUX_UNSUPPORTED_M1_AUDIO_MIME", `MSE does not support ${M1_AUDIO_MIME}.`);
1523
+ for (const requirement of REQUIRED_MSE_MIME_TYPES) if (!MediaSource.isTypeSupported(requirement.mimeType)) return createUnsupportedRuntimeError(requirement.unsupportedCode, `MSE does not support ${requirement.mimeType}.`);
1898
1524
  }
1899
1525
  function createUnsupportedRuntimeError(code, message) {
1900
1526
  return {
@@ -1959,6 +1585,6 @@ const globalScope = globalThis;
1959
1585
  const workerGlobalScope = globalThis.WorkerGlobalScope;
1960
1586
  if (workerGlobalScope !== void 0 && globalScope instanceof workerGlobalScope && typeof globalScope.postMessage === "function") startRuntimeWorker(globalScope);
1961
1587
  //#endregion
1962
- export { HttpFlvLoader, HttpFlvLoaderError, M1_VIDEO_MIME, MseController, RuntimeWorker, SourceBufferQueue, WasmTransmuxCoreHost, createM1StaticFmp4Fixture, createWasmTransmuxCoreHost, isMseSupported, normalizeCoreEvents, startRuntimeWorker };
1588
+ export { HttpFlvLoader, HttpFlvLoaderError, MseController, RuntimeWorker, SourceBufferQueue, WasmTransmuxCoreHost, createWasmTransmuxCoreHost, isMseSupported, normalizeCoreEvents, startRuntimeWorker };
1963
1589
 
1964
1590
  //# sourceMappingURL=rivmux-runtime-worker.js.map