@playkit-js/playkit-js-kava 1.8.3 → 1.8.4
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.
package/dist/playkit-kava.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"playkit-kava.js","mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,gBAAiB,GAAIH,GACF,iBAAZC,QACdA,QAAuB,cAAID,KAE3BD,EAAoB,cAAIA,EAAoB,eAAK,CAAC,EAAGA,EAAoB,cAAW,QAAIA,EAAoB,cAAW,SAAK,CAAC,EAAGA,EAAoB,cAAW,QAAQ,KAAIC,IAC5K,CATD,CASGK,MAAM,I,qBCTsNA,KAA3JH,EAAOD,QAA4K,WAAW,aAAa,IAAIK,EAAE,CAACC,EAAE,SAASC,EAAEC,GAAG,IAAI,IAAIC,KAAKD,EAAEH,EAAEK,EAAEF,EAAEC,KAAKJ,EAAEK,EAAEH,EAAEE,IAAIE,OAAOC,eAAeL,EAAEE,EAAE,CAACI,YAAW,EAAGC,IAAIN,EAAEC,IAAI,EAAEC,EAAE,SAASL,EAAEE,GAAG,OAAOI,OAAOI,UAAUC,eAAeC,KAAKZ,EAAEE,EAAE,EAAEC,EAAE,SAASH,GAAG,oBAAoBa,QAAQA,OAAOC,aAAaR,OAAOC,eAAeP,EAAEa,OAAOC,YAAY,CAACC,MAAM,WAAWT,OAAOC,eAAeP,EAAE,aAAa,CAACe,OAAM,GAAI,GAAGb,EAAE,CAAC,EAAE,SAASC,EAAEH,EAAEE,GAAG,KAAKF,aAAaE,GAAG,MAAM,IAAIc,UAAU,oCAAoC,CAAC,SAASZ,EAAEJ,GAAG,OAAOI,EAAE,mBAAmBS,QAAQ,iBAAiBA,OAAOI,SAAS,SAASjB,GAAG,cAAcA,CAAC,EAAE,SAASA,GAAG,OAAOA,GAAG,mBAAmBa,QAAQb,EAAEkB,cAAcL,QAAQb,IAAIa,OAAOH,UAAU,gBAAgBV,CAAC,EAAEI,EAAEJ,EAAE,CAAC,SAASK,EAAEL,GAAG,IAAIE,EAAE,SAASF,EAAEE,GAAG,GAAG,WAAWE,EAAEJ,IAAI,OAAOA,EAAE,OAAOA,EAAE,IAAIG,EAAEH,EAAEa,OAAOM,aAAa,QAAG,IAAShB,EAAE,CAAC,IAAIE,EAAEF,EAAES,KAAKZ,EAAE,UAAU,GAAG,WAAWI,EAAEC,GAAG,OAAOA,EAAE,MAAM,IAAIW,UAAU,+CAA+C,CAAC,OAAOI,OAAOpB,EAAE,CAAxO,CAA0OA,GAAG,MAAM,WAAWI,EAAEF,GAAGA,EAAEkB,OAAOlB,EAAE,CAAC,SAASmB,EAAErB,EAAEE,GAAG,IAAI,IAAIC,EAAE,EAAEA,EAAED,EAAEoB,OAAOnB,IAAI,CAAC,IAAIC,EAAEF,EAAEC,GAAGC,EAAEI,WAAWJ,EAAEI,aAAY,EAAGJ,EAAEmB,cAAa,EAAG,UAAUnB,IAAIA,EAAEoB,UAAS,GAAIlB,OAAOC,eAAeP,EAAEK,EAAED,EAAEqB,KAAKrB,EAAE,CAAC,CAAC,SAASsB,EAAE1B,EAAEE,EAAEC,GAAG,OAAOD,GAAGmB,EAAErB,EAAEU,UAAUR,GAAGC,GAAGkB,EAAErB,EAAEG,GAAGG,OAAOC,eAAeP,EAAE,YAAY,CAACwB,UAAS,IAAKxB,CAAC,CAAC,SAAS2B,EAAE3B,EAAEE,EAAEC,GAAG,OAAOD,EAAEG,EAAEH,MAAMF,EAAEM,OAAOC,eAAeP,EAAEE,EAAE,CAACa,MAAMZ,EAAEK,YAAW,EAAGe,cAAa,EAAGC,UAAS,IAAKxB,EAAEE,GAAGC,EAAEH,CAAC,CAACA,EAAEG,EAAED,GAAGF,EAAEC,EAAEC,EAAE,CAAC0B,KAAK,WAAW,OAAOC,CAAC,EAAEC,oBAAoB,WAAW,OAAOC,CAAC,EAAEC,iBAAiB,WAAW,OAAOC,CAAC,EAAEC,eAAe,WAAW,OAAOC,CAAC,EAAEC,QAAQ,WAAW,OAAOC,CAAC,IAAI,IAA2iBC,EAAEZ,GAAE,SAAU1B,EAAEE,EAAEE,EAAEC,GAAG,IAAIgB,EAAEkB,UAAUjB,OAAO,QAAG,IAASiB,UAAU,GAAGA,UAAU,GAAG,CAAC,EAAEpC,EAAEqC,KAAKxC,GAAGwC,KAAKC,SAASvC,EAAEsC,KAAKE,SAAStC,EAAEoC,KAAKG,KAAKtC,EAAEmC,KAAKI,KAAKvB,EAAErB,EAAE6C,QAAQC,MAAM,YAAYC,OAAO3C,EAAE,YAAY2C,OAAO1C,EAAE,MAAMgB,EAAG,IAAGM,EAAEW,EAAE,WAAW,CAACU,YAAY,EAAEC,SAAS,IAAItB,EAAEW,EAAE,WAAW,CAACY,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,IAAIzB,EAAEW,EAAE,OAAO,CAACe,mBAAmB,IAAIC,gBAAgB,KAAKC,WAAW,KAAKC,QAAQ,KAAKC,mBAAmB,KAAKC,oBAAoB,KAAKC,uBAAuB,KAAKC,sBAAsB,KAAKC,MAAM,IAAIC,aAAa,KAAKC,uBAAuB,KAAKC,yBAAyB,IAAIC,oBAAoB,KAAKC,uBAAuB,OAAOvC,EAAEW,EAAE,UAA5pC,CAACF,QAAQ,GAAG+B,MAAM,CAACpD,MAAM,GAAGqD,KAAK,IAAIP,MAAM,CAAC9C,MAAM,GAAGqD,KAAK,IAAIC,KAAK,CAACtD,MAAM,GAAGqD,KAAK,IAAIE,IAAI,CAACvD,MAAM,GAAGqD,KAAK,IAAIG,KAAK,CAACxD,MAAM,GAAGqD,KAAK,IAAII,MAAM,CAACzD,MAAM,GAAGqD,KAAK,IAAIK,KAAK,CAAC1D,MAAM,GAAGqD,KAAK,IAAIM,qBAAqB,WAAW,EAAEC,MAAM,WAAW,EAAEC,WAAW,WAAW,EAAE9B,MAAM,WAAW,EAAErC,IAAI,WAAW,EAAEoE,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,IAAI,WAAW,EAAEC,WAAW,WAAW,EAAEC,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,QAAQ,WAAW,EAAEC,MAAM,WAAW,EAAEC,YAAY,WAAW,EAAEC,KAAK,WAAW,IAAisB,IAAInD,EAAE,WAAW,SAASnC,IAAI,IAAIE,EAAEqC,UAAUjB,OAAO,QAAG,IAASiB,UAAU,GAAGA,UAAU,GAAG,IAAIgD,IAAIpF,EAAEqC,KAAKxC,GAAG2B,EAAEa,KAAK,cAAc,CAACgD,OAAM,EAAGC,QAAQ,EAAEC,YAAY,IAAI/D,EAAEa,KAAK,kBAAkB,GAAGA,KAAKmD,QAAQzF,CAAC,CAAC,OAAOwB,EAAE1B,EAAE,CAAC,CAACyB,IAAI,SAASV,MAAM,SAASf,GAAG,OAAOA,EAAE,YAAYwC,KAAKoD,SAASpD,KAAKqD,OAAO,WAAWrD,KAAKqD,OAAO,GAAG,GAAG,CAACpE,IAAI,gBAAgBV,MAAM,WAAW,IAAIf,EAAEwC,KAAKtC,EAAE,IAAI4F,SAAQ,SAAU5F,EAAEC,GAAGH,EAAE+F,gBAAgB,CAACC,QAAQ9F,EAAE+F,OAAO9F,EAAG,IAAG,OAAOqC,KAAK0D,KAAK1D,KAAKuD,gBAAgBE,OAAO,IAAI3D,EAAEA,EAAE6D,SAASlD,SAASX,EAAE8D,SAASlD,QAAQZ,EAAE+D,KAAK5C,mBAAmB,CAACyC,IAAI1D,KAAK0D,OAAO1D,KAAK8D,aAAapG,CAAC,GAAG,CAACuB,IAAI,aAAaV,MAAM,WAAW,IAAIf,EAAEwC,KAAKtC,EAAE,IAAIqG,eAAerG,EAAEsG,mBAAmB,WAAW,GAAG,IAAItG,EAAEuG,YAAY,MAAMvG,EAAEwG,OAAO,IAAI,IAAIvG,EAAEwG,KAAKC,MAAM1G,EAAE2G,cAAc,OAAO7G,EAAE8G,gBAAgB9G,EAAE+G,oBAAoB7G,GAAGF,EAAE+F,gBAAgBC,QAAQ7F,EAAE,CAAC,MAAMA,GAAGH,EAAE+F,gBAAgBE,OAAOjG,EAAEgH,aAAa9G,EAAEoC,EAAE+D,KAAK3C,oBAAoB,CAACuD,KAAK/G,EAAE2G,eAAe,CAAC,EAAE3G,EAAEgH,KAAK1E,KAAK2E,OAAO3E,KAAK0D,IAAI1D,KAAK4E,YAAY5B,OAAOhD,KAAK4E,YAAY5B,OAAOhD,KAAK4E,YAAY3B,UAAUvF,EAAEuF,QAAQjD,KAAK4E,YAAY3B,SAAS,IAAItF,EAAEkH,YAAYC,MAAMpH,EAAEqH,UAAU,WAAWvH,EAAEwH,aAAatH,EAAEoC,EAAE+D,KAAK7C,QAAQ,CAACiC,SAAS4B,YAAYC,MAAMnH,GAAG,IAAIsH,WAAWvH,EAAEuH,YAAY,EAAEvH,EAAEwH,QAAQxH,EAAEyH,QAAQ,WAAW3H,EAAEwH,aAAatH,EAAEoC,EAAE+D,KAAK9C,WAAW,CAAC0D,KAAK/G,EAAE2G,aAAaY,WAAWvH,EAAEuH,YAAY,EAAEjF,KAAKmD,QAAQiC,SAAQ,SAAU5H,EAAEG,GAAGD,EAAE2H,iBAAiB1H,EAAEH,EAAG,IAAGE,EAAE4H,KAAKtF,KAAKuF,OAAO,GAAG,CAACtG,IAAI,sBAAsBV,MAAM,SAASf,GAAG,OAAOA,EAAEgI,wBAAwBC,MAAM,MAAMC,QAAO,SAAUlI,GAAG,OAAO,IAAIA,EAAEmI,cAAcC,QAAQ,KAAM,GAAE,GAAG,CAAC3G,IAAI,eAAeV,MAAM,SAASf,EAAEE,EAAEC,GAAG,IAAIC,EAAEoC,KAAKwE,aAAahH,EAAEE,EAAEC,GAAG,GAAGH,EAAEwG,mBAAmB,WAAW,EAAExG,EAAE0H,QAAQ,WAAW,EAAE1H,EAAEuH,UAAU,WAAW,EAAEvH,EAAE2H,QAAQ,WAAW,IAAInF,KAAK4E,YAAY1B,aAAalD,KAAK6F,gBAAgB7F,KAAK4E,YAAY1B,aAAa,OAAOlD,KAAKuD,gBAAgBE,OAAO7F,GAAGoC,KAAK6F,kBAAkB7F,KAAK8D,YAAY,GAAG,CAAC7E,IAAI,eAAeV,MAAM,SAASf,EAAEE,EAAEC,GAAG,OAAOG,OAAOgI,OAAOnI,EAAE,CAAC+F,IAAI1D,KAAK0D,IAAIP,QAAQnD,KAAKuE,oBAAoB/G,GAAGuI,QAAQ/F,KAAK6F,kBAAkB,IAAI/F,EAAEA,EAAE6D,SAASlD,SAASX,EAAE8D,SAASlD,QAAQhD,EAAEC,EAAE,KAAKH,CAAC,CAAtlE,GAA0lEwI,EAAE,SAASxI,EAAEE,GAAG,IAAIC,EAAE,OAAOsI,MAAMC,QAAQxI,IAAIC,EAAED,EAAEoB,OAAO,EAAEpB,EAAEyI,MAAM,GAAG,IAAIf,SAAQ,SAAU1H,EAAEG,IAAI,WAAWD,EAAEF,IAAIuI,MAAMC,QAAQxI,IAAIA,EAAEoB,OAAO,KAAKnB,EAAEE,GAAGL,EAAEE,GAAI,IAAG,WAAWE,EAAEF,IAAIC,EAAEG,OAAOgI,OAAO,CAAC,EAAEpI,GAAGI,OAAOsI,KAAKzI,GAAGyH,SAAQ,SAAU1H,IAAI,WAAWE,EAAED,EAAED,KAAKuI,MAAMC,QAAQvI,EAAED,KAAKC,EAAED,GAAGoB,OAAO,KAAKnB,EAAED,GAAGF,EAAEG,EAAED,IAAK,KAAIC,EAAED,EAAEC,CAAC,EAAE0I,EAAE,CAACC,WAAW,uCAAuCC,OAAO,gCAAgCC,cAAc,CAACC,WAAW,QAAQC,OAAO,GAAGC,gBAAe,EAAGC,qBAAoB,EAAGC,6BAA4B,GAAIpH,EAAE,WAAW,SAASjC,IAAIG,EAAEqC,KAAKxC,EAAE,CAAC,OAAO0B,EAAE1B,EAAE,KAAK,CAAC,CAACyB,IAAI,MAAMV,MAAM,SAASf,GAAGA,GAAGM,OAAOgI,OAAOO,EAAE7I,EAAE,GAAG,CAACyB,IAAI,MAAMV,MAAM,WAAW,OAAOyH,EAAEK,EAAE,KAAK7I,CAAC,CAArJ,GAAyJ,SAASsJ,EAAEtJ,EAAEE,GAAG,OAAOoJ,EAAEhJ,OAAOiJ,eAAejJ,OAAOiJ,eAAeC,OAAO,SAASxJ,EAAEE,GAAG,OAAOF,EAAEyJ,UAAUvJ,EAAEF,CAAC,EAAEsJ,EAAEtJ,EAAEE,EAAE,CAAC,SAASD,EAAED,EAAEE,GAAG,GAAG,mBAAmBA,GAAG,OAAOA,EAAE,MAAM,IAAIc,UAAU,sDAAsDhB,EAAEU,UAAUJ,OAAOoJ,OAAOxJ,GAAGA,EAAEQ,UAAU,CAACQ,YAAY,CAACH,MAAMf,EAAEwB,UAAS,EAAGD,cAAa,KAAMjB,OAAOC,eAAeP,EAAE,YAAY,CAACwB,UAAS,IAAKtB,GAAGoJ,EAAEtJ,EAAEE,EAAE,CAAC,SAASyJ,EAAE3J,GAAG,QAAG,IAASA,EAAE,MAAM,IAAI4J,eAAe,6DAA6D,OAAO5J,CAAC,CAAC,SAAS6J,EAAE7J,EAAEE,GAAG,GAAGA,IAAI,WAAWE,EAAEF,IAAI,mBAAmBA,GAAG,OAAOA,EAAE,QAAG,IAASA,EAAE,MAAM,IAAIc,UAAU,4DAA4D,OAAO2I,EAAE3J,EAAE,CAAC,SAAS8J,EAAE9J,GAAG,OAAO8J,EAAExJ,OAAOiJ,eAAejJ,OAAOyJ,eAAeP,OAAO,SAASxJ,GAAG,OAAOA,EAAEyJ,WAAWnJ,OAAOyJ,eAAe/J,EAAE,EAAE8J,EAAE9J,EAAE,CAAC,IAAIgK,EAAEtI,GAAE,SAAU1B,EAAEE,GAAGC,EAAEqC,KAAKxC,GAAG2B,EAAEa,KAAK,YAAW,GAAI,wBAAwBtC,EAAE+J,YAAYzH,KAAK0H,UAAS,EAAG1H,KAAKM,MAAM,IAAIqH,EAAEjK,EAAEyC,KAAKzC,EAAEkK,UAAUlK,EAAE4C,OAAO,wBAAwB5C,EAAE4C,MAAMmH,YAAYzH,KAAK0H,UAAS,EAAG1H,KAAKM,MAAM,IAAIqH,EAAEjK,EAAE4C,MAAMH,KAAKzC,EAAE4C,MAAMsH,UAAU5H,KAAKI,KAAK1C,CAAE,IAAGiK,EAAEzI,GAAE,SAAU1B,EAAEE,EAAEE,GAAGD,EAAEqC,KAAKxC,GAAGwC,KAAKG,KAAKzC,EAAEsC,KAAK4H,QAAQhK,CAAE,IAAOiK,EAAE,SAASrK,GAAGC,EAAEoB,EAAErB,GAAG,IAAIE,EAAEE,EAAEC,GAAGH,EAAEmB,EAAEjB,EAAE,WAAW,GAAG,oBAAoBkK,UAAUA,QAAQC,UAAU,OAAM,EAAG,GAAGD,QAAQC,UAAUC,KAAK,OAAM,EAAG,GAAG,mBAAmBC,MAAM,OAAM,EAAG,IAAI,OAAOC,QAAQhK,UAAUiK,QAAQ/J,KAAK0J,QAAQC,UAAUG,QAAQ,IAAG,WAAa,MAAI,CAAE,CAAC,MAAM1K,GAAG,OAAM,CAAE,CAAC,CAA5P,GAAgQ,WAAW,IAAIA,EAAEG,EAAE2J,EAAE5J,GAAG,GAAGE,EAAE,CAAC,IAAIC,EAAEyJ,EAAEtH,MAAMtB,YAAYlB,EAAEsK,QAAQC,UAAUpK,EAAEoC,UAAUlC,EAAE,MAAML,EAAEG,EAAEyK,MAAMpI,KAAKD,WAAW,OAAOsH,EAAErH,KAAKxC,EAAE,GAAG,SAASqB,IAAI,IAAIrB,EAAEG,EAAEqC,KAAKnB,GAAG,IAAI,IAAInB,EAAEqC,UAAUjB,OAAOlB,EAAE,IAAIqI,MAAMvI,GAAGwB,EAAE,EAAEA,EAAExB,EAAEwB,IAAItB,EAAEsB,GAAGa,UAAUb,GAAG,OAAOC,EAAEgI,EAAE3J,EAAEK,EAAEO,KAAKgK,MAAMvK,EAAE,CAACmC,MAAMO,OAAO3C,KAAK,WAAW,IAAIJ,CAAC,CAAC,OAAO0B,EAAEL,EAAE,CAAC,CAACI,IAAI,MAAMV,MAAM,SAASf,GAAGwC,KAAKqI,SAASC,KAAK9K,GAAG,IAAIE,EAAE,CAAC,EAAEC,EAAE,CAACyF,QAAQ5F,EAAE4F,QAAQC,OAAO7F,EAAE6F,QAAQ,OAAOvF,OAAOgI,OAAOpI,EAAEyB,EAAE,CAAC,EAAEa,KAAKqI,SAASvJ,OAAOhB,OAAOgI,OAAOnI,EAAEH,EAAE+H,UAAUzH,OAAOgI,OAAOpI,EAAEsC,KAAKuF,QAAQvF,KAAKuF,OAAO7H,EAAEsC,IAAI,GAAG,CAACf,IAAI,UAAUV,MAAM,SAASf,GAAG,IAAIE,EAAEsC,KAAK,OAAO,IAAIsD,SAAQ,SAAU3F,EAAEC,GAAG,IAAIF,EAAE6H,OAAOpB,KAAKoE,UAAU7K,EAAE6H,OAAO,CAAC,MAAM/H,GAAGqB,EAAEwB,QAAQC,MAAM,GAAGC,OAAO/C,EAAEoK,UAAUhK,EAAE,IAAIkC,EAAEA,EAAE6D,SAASlD,SAASX,EAAE8D,SAAShD,SAASd,EAAE+D,KAAK2E,uBAAuB,CAAClI,MAAM9C,EAAE+H,OAAO7H,EAAE6H,SAAS,CAAC7H,EAAE+K,gBAAgBC,MAAK,SAAU7K,GAAG,IAAIgB,EAAE,IAAI8J,EAAE9K,EAAEL,GAAGqB,EAAE+J,QAAQjL,EAAE,CAACwF,QAAQzF,EAAE4G,gBAAgBuE,SAAShK,IAAIjB,EAAE,IAAIkC,EAAEA,EAAE6D,SAASlD,SAASX,EAAE8D,SAASlD,QAAQZ,EAAE+D,KAAK1C,uBAAuB,CAACuC,IAAIhG,EAAEgG,IAAIP,QAAQzF,EAAE4G,gBAAgBwE,QAAQjK,EAAEiK,UAAW,IAAE,SAAUtL,GAAGI,EAAEJ,EAAG,GAAG,GAAE,KAAKqB,CAAC,CAA/1C,CAAi2Cc,GAAGR,EAAE0I,EAAE,UAAt8M,CAACjI,QAAQ,GAAG+B,MAAM,CAACpD,MAAM,GAAGqD,KAAK,IAAIP,MAAM,CAAC9C,MAAM,GAAGqD,KAAK,IAAIC,KAAK,CAACtD,MAAM,GAAGqD,KAAK,IAAIE,IAAI,CAACvD,MAAM,GAAGqD,KAAK,IAAIG,KAAK,CAACxD,MAAM,GAAGqD,KAAK,IAAII,MAAM,CAACzD,MAAM,GAAGqD,KAAK,IAAIK,KAAK,CAAC1D,MAAM,GAAGqD,KAAK,IAAIM,qBAAqB,WAAW,EAAEC,MAAM,WAAW,EAAEC,WAAW,WAAW,EAAE9B,MAAM,WAAW,EAAErC,IAAI,WAAW,EAAEoE,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,IAAI,WAAW,EAAEC,WAAW,WAAW,EAAEC,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,QAAQ,WAAW,EAAEC,MAAM,WAAW,EAAEC,YAAY,WAAW,EAAEC,KAAK,WAAW,IAAy/L,IAAI6F,EAAEzJ,GAAE,SAAU1B,EAAEE,GAAG,IAAIE,IAAImC,UAAUjB,OAAO,QAAG,IAASiB,UAAU,KAAKA,UAAU,GAAGpC,EAAEqC,KAAKxC,GAAG2B,EAAEa,KAAK,UAAU,IAAI,IAAInC,EAAEH,EAAEqL,OAAOrL,EAAEqL,OAAOrL,EAAEmB,GAAGoH,MAAMC,QAAQrI,GAAGA,EAAE,CAACA,IAAImL,KAAI,SAAUxL,GAAG,OAAO,IAAIgK,EAAEhK,EAAG,IAAG0B,EAAEL,EAAE6G,QAAO,SAAUlI,GAAG,OAAOA,EAAEkK,QAAS,IAAGxI,EAAEkG,SAAQ,SAAU1H,GAAGF,EAAE6C,QAAQC,MAAM,8CAA8CC,OAAO7C,EAAE4C,MAAMH,KAAK,kBAAkBI,OAAO7C,EAAE4C,MAAMsH,QAAQ,KAAM,IAAG5H,KAAK8I,QAAQjK,EAAEjB,GAAGsB,EAAEJ,QAAQI,EAAEJ,SAASkB,KAAK8I,QAAQhK,OAAOkB,KAAK4I,SAAQ,GAAI5I,KAAK8I,QAAQ9I,KAAK8I,QAAQpD,QAAO,SAAUlI,GAAG,OAAOA,EAAEkK,QAAS,IAAG1H,KAAK4I,SAAQ,EAAI,IAAGzJ,EAAEwJ,EAAE,UAAziO,CAAC/I,QAAQ,GAAG+B,MAAM,CAACpD,MAAM,GAAGqD,KAAK,IAAIP,MAAM,CAAC9C,MAAM,GAAGqD,KAAK,IAAIC,KAAK,CAACtD,MAAM,GAAGqD,KAAK,IAAIE,IAAI,CAACvD,MAAM,GAAGqD,KAAK,IAAIG,KAAK,CAACxD,MAAM,GAAGqD,KAAK,IAAII,MAAM,CAACzD,MAAM,GAAGqD,KAAK,IAAIK,KAAK,CAAC1D,MAAM,GAAGqD,KAAK,IAAIM,qBAAqB,WAAW,EAAEC,MAAM,WAAW,EAAEC,WAAW,WAAW,EAAE9B,MAAM,WAAW,EAAErC,IAAI,WAAW,EAAEoE,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,IAAI,WAAW,EAAEC,WAAW,WAAW,EAAEC,SAAS,WAAW,EAAEC,KAAK,WAAW,EAAEC,QAAQ,WAAW,EAAEC,MAAM,WAAW,EAAEC,YAAY,WAAW,EAAEC,KAAK,WAAW,IAA2lN,IAAImG,EAAE,SAASzL,GAAG,IAAIE,EAAE,GAAGC,EAAE,QAAQE,EAAE,SAASL,GAAG,MAAM,mBAAmBM,OAAOI,UAAUgL,SAAS9K,KAAKZ,EAAE,EAAEqB,EAAE,SAASrB,EAAEG,GAAGA,EAAE,mBAAmBA,EAAEA,IAAI,MAAMA,EAAE,GAAGA,EAAED,EAAEA,EAAEoB,QAAQqK,mBAAmB3L,GAAG,IAAI2L,mBAAmBxL,EAAE,EAAE,OAAO,SAASH,EAAE0B,EAAEC,GAAG,IAAIiK,EAAEC,EAAEvJ,EAAE,GAAGZ,EAAE,GAAGrB,EAAEsB,GAAG,IAAIiK,EAAE,EAAEC,EAAElK,EAAEL,OAAOsK,EAAEC,EAAED,IAAIzL,EAAE2L,KAAKpK,GAAGL,EAAEK,EAAEC,EAAEiK,IAAI5L,EAAE0B,EAAE,KAAK,WAAWtB,EAAEuB,EAAEiK,IAAIA,EAAE,IAAIjK,EAAEiK,SAAS,GAAGjK,GAAG,oBAAoBP,OAAOO,GAAG,IAAIW,KAAKX,EAAE3B,EAAE0B,EAAE,IAAIY,EAAEX,EAAEW,SAASjB,EAAEK,EAAEC,QAAQ,GAAGtB,EAAEsB,GAAG,IAAIiK,EAAE,EAAEC,EAAElK,EAAEL,OAAOsK,EAAEC,EAAED,IAAIvK,EAAEM,EAAEiK,GAAGxH,KAAKzC,EAAEiK,GAAG7K,YAAY,IAAIuB,KAAKX,EAAE3B,EAAEsC,EAAEX,EAAEW,IAAI,OAAOpC,CAAC,CAAhT,CAAkT,GAAGF,GAAG+L,KAAK,KAAKC,QAAQ,OAAO,IAAI,EAAMC,EAAE,YAAYlK,EAAE,SAAS/B,GAAGC,EAAEoB,EAAErB,GAAG,IAAIE,EAAEE,EAAEC,GAAGH,EAAEmB,EAAEjB,EAAE,WAAW,GAAG,oBAAoBkK,UAAUA,QAAQC,UAAU,OAAM,EAAG,GAAGD,QAAQC,UAAUC,KAAK,OAAM,EAAG,GAAG,mBAAmBC,MAAM,OAAM,EAAG,IAAI,OAAOC,QAAQhK,UAAUiK,QAAQ/J,KAAK0J,QAAQC,UAAUG,QAAQ,IAAG,WAAa,MAAI,CAAE,CAAC,MAAM1K,GAAG,OAAM,CAAE,CAAC,CAA5P,GAAgQ,WAAW,IAAIA,EAAEG,EAAE2J,EAAE5J,GAAG,GAAGE,EAAE,CAAC,IAAIC,EAAEyJ,EAAEtH,MAAMtB,YAAYlB,EAAEsK,QAAQC,UAAUpK,EAAEoC,UAAUlC,EAAE,MAAML,EAAEG,EAAEyK,MAAMpI,KAAKD,WAAW,OAAOsH,EAAErH,KAAKxC,EAAE,GAAG,SAASqB,IAAI,OAAOlB,EAAEqC,KAAKnB,GAAGhB,EAAEuK,MAAMpI,KAAKD,UAAU,CAAC,OAAOb,EAAEL,EAAE,KAAK,CAAC,CAACI,IAAI,aAAaV,MAAM,SAASf,EAAEE,EAAEC,GAAG,MAAM,SAASA,EAAEkB,EAAE6K,kBAAkBlM,EAAEE,GAAGmB,EAAE8K,iBAAiBnM,EAAEE,EAAE,GAAG,CAACuB,IAAI,mBAAmBV,MAAM,SAASf,EAAEE,GAAG,IAAIC,EAAE8B,EAAExB,MAAML,EAAE,CAAC,EAAEE,OAAOgI,OAAOlI,EAAED,EAAE6I,cAAc9I,GAAG,IAAIG,EAAE,IAAI8B,EAAE,OAAO9B,EAAEuF,QAAQqG,EAAE5L,EAAEwF,OAAO,aAAaxF,EAAE8G,OAAO,MAAM9G,EAAE+G,YAAY1B,YAAY,EAAErF,EAAE+L,IAAI,uBAAuB/L,EAAE0H,OAAO3H,EAAEC,EAAE6F,IAAIlG,EAAE,YAAYK,EAAEuF,QAAQ,WAAWvF,EAAEwF,OAAO,IAAI4F,EAAEpL,EAAE0H,QAAQ1H,CAAC,GAAG,CAACoB,IAAI,oBAAoBV,MAAM,SAASf,EAAEE,GAAG,IAAIC,EAAE8B,EAAExB,MAAML,EAAE,CAAC,EAAEE,OAAOgI,OAAOlI,EAAED,EAAE6I,cAAc9I,GAAG,IAAIG,EAAE,IAAIkF,IAAIlF,EAAEgM,IAAI,eAAe,oBAAoB,IAAIhL,EAAE,IAAIc,EAAE9B,GAAGqB,EAAE,CAAC4K,UAAUlM,EAAEkM,UAAUC,UAAUnM,EAAEmM,UAAUC,QAAQpM,EAAEoM,QAAQC,UAAUrM,EAAEqM,WAAW,MAAM,CAAC,YAAY,YAAY,UAAU,aAAa7E,SAAQ,SAAU5H,GAAG,cAAcI,EAAEJ,EAAG,IAAGqB,EAAEuE,QAAQqG,EAAE5K,EAAEwE,OAAO,aAAaxE,EAAE8F,OAAO,OAAO9F,EAAE+F,YAAY1B,YAAY,EAAErE,EAAE+K,IAAI,uBAAuB/K,EAAE0G,OAAOpB,KAAKoE,UAAU3K,GAAGiB,EAAE6E,IAAIlG,EAAE,YAAYqB,EAAEuE,QAAQ,WAAWvE,EAAEwE,OAAO,IAAI4F,EAAE/J,GAAGL,CAAC,KAAKA,CAAC,CAA97C,CAAg8C,WAAW,SAASrB,IAAIG,EAAEqC,KAAKxC,EAAE,CAAC,OAAO0B,EAAE1B,EAAE,KAAK,CAAC,CAACyB,IAAI,kBAAkBV,MAAM,SAASf,EAAEE,EAAEC,GAAG,IAAIC,EAAE6B,EAAExB,MAAMJ,EAAED,EAAE4I,cAAc1I,OAAOgI,OAAOjI,EAAE,CAACqM,GAAGxM,EAAEyM,UAAU,UAAU3M,IAAIG,GAAGG,OAAOgI,OAAOjI,EAAE,CAACkM,UAAUpM,IAAI,IAAIkB,EAAE,IAAIkE,IAAIlE,EAAEgL,IAAI,eAAe,oBAAoB,IAAI3K,EAAE,IAAI2I,EAAEhJ,GAAG,OAAOK,EAAEyF,OAAO,OAAOzF,EAAEkE,QAAQ,eAAelE,EAAEwE,IAAIxE,EAAEkL,OAAOxM,EAAE0I,YAAYpH,EAAEqG,OAAO1H,EAAEqB,CAAC,KAAK1B,CAAC,CAArX,IAA0X6B,EAAE,qDAAqDQ,EAAE,SAAS,OAAOnC,CAAC,CAA7mW,E,GCCnP2M,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBE,IAAjBD,EACH,OAAOA,EAAarN,QAGrB,IAAIC,EAASiN,EAAyBE,GAAY,CAGjDpN,QAAS,CAAC,GAOX,OAHAuN,EAAoBH,GAAUnN,EAAQA,EAAOD,QAASmN,GAG/ClN,EAAOD,OACf,CCrBAmN,EAAoB7M,EAAI,CAACN,EAASwN,KACjC,IAAI,IAAI1L,KAAO0L,EACXL,EAAoBzM,EAAE8M,EAAY1L,KAASqL,EAAoBzM,EAAEV,EAAS8B,IAC5EnB,OAAOC,eAAeZ,EAAS8B,EAAK,CAAEjB,YAAY,EAAMC,IAAK0M,EAAW1L,IAE1E,ECNDqL,EAAoBzM,EAAI,CAAC+M,EAAKC,IAAU/M,OAAOI,UAAUC,eAAeC,KAAKwM,EAAKC,GCClFP,EAAoB3M,EAAKR,IACH,oBAAXkB,QAA0BA,OAAOC,aAC1CR,OAAOC,eAAeZ,EAASkB,OAAOC,YAAa,CAAEC,MAAO,WAE7DT,OAAOC,eAAeZ,EAAS,aAAc,CAAEoB,OAAO,GAAO,E,gICL9D,MAAM,EAA+BuM,cCAtB,SAASC,EAAQlN,GAG9B,OAAOkN,EAAU,mBAAqB1M,QAAU,iBAAmBA,OAAOI,SAAW,SAAUZ,GAC7F,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBQ,QAAUR,EAAEa,cAAgBL,QAAUR,IAAMQ,OAAOH,UAAY,gBAAkBL,CACpH,EAAGkN,EAAQlN,EACb,CCRe,SAASmN,EAAkBC,EAAKC,IAClC,MAAPA,GAAeA,EAAMD,EAAInM,UAAQoM,EAAMD,EAAInM,QAC/C,IAAK,IAAID,EAAI,EAAGsM,EAAO,IAAIlF,MAAMiF,GAAMrM,EAAIqM,EAAKrM,IAAKsM,EAAKtM,GAAKoM,EAAIpM,GACnE,OAAOsM,CACT,CCJe,SAASC,EAAgBC,EAAUC,GAChD,KAAMD,aAAoBC,GACxB,MAAM,IAAI9M,UAAU,oCAExB,CCFe,SAAS+M,EAAc7N,GACpC,IAAImB,ECFS,SAAqBnB,EAAGC,GACrC,GAAI,UAAYoN,EAAQrN,KAAOA,EAAG,OAAOA,EACzC,IAAIF,EAAIE,EAAEW,OAAOM,aACjB,QAAI,IAAWnB,EAAG,CAChB,IAAIqB,EAAIrB,EAAEY,KAAKV,EAAGC,UAClB,GAAI,UAAYoN,EAAQlM,GAAI,OAAOA,EACnC,MAAM,IAAIL,UAAU,+CACtB,CACA,OAAyBI,OAAiBlB,EAC5C,CDPUiB,CAAYjB,GACpB,MAAO,UAAYqN,EAAQlM,GAAKA,EAAID,OAAOC,EAC7C,CEJA,SAAS2M,EAAkBC,EAAQC,GACjC,IAAK,IAAI7M,EAAI,EAAGA,EAAI6M,EAAM5M,OAAQD,IAAK,CACrC,IAAI8M,EAAaD,EAAM7M,GACvB8M,EAAW3N,WAAa2N,EAAW3N,aAAc,EACjD2N,EAAW5M,cAAe,EACtB,UAAW4M,IAAYA,EAAW3M,UAAW,GACjDlB,OAAOC,eAAe0N,EAAQF,EAAcI,EAAW1M,KAAM0M,EAC/D,CACF,CACe,SAASC,EAAaN,EAAaO,EAAYC,GAM5D,OALID,GAAYL,EAAkBF,EAAYpN,UAAW2N,GACrDC,GAAaN,EAAkBF,EAAaQ,GAChDhO,OAAOC,eAAeuN,EAAa,YAAa,CAC9CtM,UAAU,IAELsM,CACT,CCjBe,SAASS,EAAuBxO,GAC7C,QAAa,IAATA,EACF,MAAM,IAAI6J,eAAe,6DAE3B,OAAO7J,CACT,CCHe,SAASyO,EAA2BzO,EAAMa,GACvD,GAAIA,IAA2B,WAAlB2M,EAAQ3M,IAAsC,mBAATA,GAChD,OAAOA,EACF,QAAa,IAATA,EACT,MAAM,IAAII,UAAU,4DAEtB,OAAO,EAAsBjB,EAC/B,CCTe,SAAS0O,EAAgBpO,GAItC,OAHAoO,EAAkBnO,OAAOiJ,eAAiBjJ,OAAOyJ,eAAeP,OAAS,SAAyBnJ,GAChG,OAAOA,EAAEoJ,WAAanJ,OAAOyJ,eAAe1J,EAC9C,EACOoO,EAAgBpO,EACzB,CCLe,SAASqO,EAAgBrO,EAAGmI,GAKzC,OAJAkG,EAAkBpO,OAAOiJ,eAAiBjJ,OAAOiJ,eAAeC,OAAS,SAAyBnJ,EAAGmI,GAEnG,OADAnI,EAAEoJ,UAAYjB,EACPnI,CACT,EACOqO,EAAgBrO,EAAGmI,EAC5B,CCLe,SAASmG,EAAUC,EAAUC,GAC1C,GAA0B,mBAAfA,GAA4C,OAAfA,EACtC,MAAM,IAAI7N,UAAU,sDAEtB4N,EAASlO,UAAYJ,OAAOoJ,OAAOmF,GAAcA,EAAWnO,UAAW,CACrEQ,YAAa,CACXH,MAAO6N,EACPpN,UAAU,EACVD,cAAc,KAGlBjB,OAAOC,eAAeqO,EAAU,YAAa,CAC3CpN,UAAU,IAERqN,GAAY,EAAeD,EAAUC,EAC3C,CCfe,SAASC,EAAgB1B,EAAK3L,EAAKV,GAYhD,OAXAU,EAAMsM,EAActM,MACT2L,EACT9M,OAAOC,eAAe6M,EAAK3L,EAAK,CAC9BV,MAAOA,EACPP,YAAY,EACZe,cAAc,EACdC,UAAU,IAGZ4L,EAAI3L,GAAOV,EAENqM,CACT,C,ICiV4Dd,E,SAxV/CyC,EAAiB,CAK5BC,KAAM,CACJC,KAAM,OACNC,MAAO,GACPC,cAAe,SAACC,GACd,IAAMC,EAAsC,CAC1CC,YAAaF,EAAMG,iBACnBC,WAAYJ,EAAMK,gBAClBC,cAAeN,EAAMO,mBACrBC,cAAeR,EAAMS,mBACrBC,eAAgBV,EAAMW,oBACtBC,cAAeZ,EAAMa,cACrBC,UAAWd,EAAMe,eACjBC,QAAShB,EAAMiB,aACfC,gBAAiBlB,EAAMmB,qBACvBC,WAAYpB,EAAMqB,iBAwCpB,OArCKC,MAAMtB,EAAMuB,4BACftB,EAAWuB,oBAAsBxB,EAAMuB,0BAErCvB,EAAMyB,6BAA+B,IACvCxB,EAAWyB,qBAAuB1B,EAAMyB,8BAEtCzB,EAAM2B,yBAA2B,IACnC1B,EAAW2B,oBAAsB5B,EAAM2B,0BAErC3B,EAAM6B,iBACR5B,EAAW6B,UAAY9B,EAAM6B,gBAEO,OAAlC7B,EAAM+B,0BACR9B,EAAW+B,mBAAqBhC,EAAM+B,yBAGnCT,MAAMtB,EAAMiC,qBACfhC,EAAWiC,aAAelC,EAAMiC,mBAGO,KAArCjC,EAAMmC,6BACRlC,EAAWmC,sBAAwBpC,EAAMmC,4BAGvCnC,EAAMqC,iCACRpC,EAAWqC,0BAA4BtC,EAAMqC,gCAE1Cf,MAAMtB,EAAMuC,uBACftC,EAAWuC,eAAiBxC,EAAMuC,qBAE/BjB,MAAMtB,EAAMyC,qBACfxC,EAAWyC,aAAe1C,EAAMyC,mBAED,OAA7BzC,EAAM2C,qBACR1C,EAAW2C,cAAgB5C,EAAM2C,oBAG5B1C,CACT,GAMF4C,WAAY,CACVhD,KAAM,aACNC,MAAO,EACPC,cAAe,SAACC,GACd,IAAMC,EAAa,CAAC,EAKpB,OAJoC,OAAhCD,EAAM8C,wBACR7C,EAAW8C,iBAAmB/C,EAAM8C,uBAEtC7C,EAA0B,cAAID,EAAMgD,uBAC7B/C,CACT,GAMFgD,aAAc,CACZpD,KAAM,eACNC,MAAO,EACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BmD,KAAM,CACJrD,KAAM,OACNC,MAAO,EACPC,cAAe,SAACC,GACd,IAAMC,EAAsC,CAC1CG,WAAYJ,EAAMK,gBAClBC,cAAeN,EAAMO,mBACrBC,cAAeR,EAAMS,mBACrB0C,SAAUnD,EAAMoD,cAChBC,QAASrD,EAAMsD,kBAKjB,MAHyC,KAArCtD,EAAMmC,6BACRlC,EAAWmC,sBAAwBpC,EAAMmC,4BAEpClC,CACT,GAMFsD,OAAQ,CACN1D,KAAM,SACNC,MAAO,EACPC,cAAe,SAACC,GAAgB,MAAW,CACzCI,WAAYJ,EAAMK,gBAClBC,cAAeN,EAAMO,mBACrBC,cAAeR,EAAMS,mBACtB,GAMH+C,MAAO,CACL3D,KAAM,QACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/B0D,aAAc,CACZ5D,KAAM,eACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/B2D,WAAY,CACV7D,KAAM,aACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/B4D,OAAQ,CACN9D,KAAM,SACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/B6D,KAAM,CACJ/D,KAAM,OACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzC6D,eAAgB7D,EAAM8D,oBACvB,GAMHC,wBAAyB,CACvBlE,KAAM,0BACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BiE,wBAAyB,CACvBnE,KAAM,0BACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BkE,wBAAyB,CACvBpE,KAAM,0BACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BmE,yBAA0B,CACxBrE,KAAM,2BACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BoE,gBAAiB,CACftE,KAAM,kBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCQ,cAAeR,EAAMS,mBACtB,GAMH2D,eAAgB,CACdvE,KAAM,iBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCqE,SAAUrE,EAAMa,cACjB,GAMHyD,cAAe,CACbzE,KAAM,gBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCQ,cAAeR,EAAMS,mBACtB,GAMH8D,MAAO,CACL1E,KAAM,QACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/ByE,SAAU,CACR3E,KAAM,WACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BtL,MAAO,CACLoL,KAAM,QACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCyE,UAAWzE,EAAM0E,eACjBC,aAAc3E,EAAM4E,kBACpBC,cAAe7E,EAAM8E,mBACtB,GAMHC,aAAc,CACZlF,KAAM,eACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BiF,iBAAkB,CAChBnF,KAAM,mBACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BkF,cAAe,CACbpF,KAAM,gBACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAM/BmF,cAAe,CACbrF,KAAM,gBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCmF,cAAenF,EAAMoF,sBACtB,GAEHC,iBAAkB,CAChBxF,KAAM,mBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCoB,WAAYpB,EAAMqB,gBACnB,GAEHiE,gBAAiB,CACfzF,KAAM,kBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzCoB,WAAYpB,EAAMqB,gBACnB,GAEHkE,SAAU,CACR1F,KAAM,WACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAE/ByF,eAAgB,CACd3F,KAAM,iBACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,GAE/B0F,iBAAkB,CAChB5F,KAAM,mBACNC,MAAO,GACPC,cAAe,SAACC,GAAgB,MAAW,CACzC0F,WAAY1F,EAAM2F,gBACnB,GAEH1Q,KAAM,CACJ4K,KAAM,OACNC,MAAO,GACPC,cAAe,iBAAY,CAAC,CAAC,IAIpB6F,GAA+C1I,EAGzD,CAAC,EAFFhM,OAAOsI,KAAKmG,GAAgBnH,SAAQ,SAACqN,GAAC,OAAM3I,EAAU2I,GAAKA,CAAC,IACrD3I,GC5VH4I,EAAe,WAGnB,SAAAA,IAActH,EAAA,KAAAsH,GAAApG,EAAA,cAFU,IAGtBtM,KAAK2S,OAAS,EAChB,CA6FC,OA3FD/G,EAAA8G,EAAA,EAAAzT,IAAA,WAAAV,MAOA,SAAgBqU,GAA4B,IAAAC,EAAA,KAC1C7S,KAAK2S,OAAS,GACdC,EAAMxN,SAAQ,SAAC0N,GACbD,EAAKF,OAAOrK,KAAK,CACfwK,KAAMA,EACNC,QAAQ,EACRC,SAAU,GAEd,GACF,GAEA,CAAA/T,IAAA,aAAAV,MAOA,SAAkBuU,GAChB9S,KAAK2S,OAAOvN,SAAQ,SAACvH,GAAC,OAAMA,EAAEkV,QAAS,CAAK,IAC5C,IAAMnI,EAAM5K,KAAK2S,OAAOM,MAAK,SAACpV,GAAC,OAAKA,EAAEiV,OAASA,CAAI,IAC/ClI,IACFA,EAAImI,QAAS,EAEjB,GAEA,CAAA9T,IAAA,aAAAV,MAMA,WACE,IAAM2U,EAAUlT,KAAK2S,OAAOM,MAAK,SAACpV,GAAC,OAAKA,EAAEkV,MAAM,IAChD,OAAOG,EAAUA,EAAQJ,MAAQ,CACnC,GAEA,CAAA7T,IAAA,eAAAV,MAMA,WACE,IAAM2U,EAAUlT,KAAK2S,OAAOM,MAAK,SAACpV,GAAC,OAAKA,EAAEkV,MAAM,IAC5CG,GACFA,EAAQF,UAEZ,GAEA,CAAA/T,IAAA,aAAAV,MAMA,WACE,IAAI4U,EAAgB,EAChBC,EAAM,EAKV,OAJApT,KAAK2S,OAAOvN,SAAQ,SAACvH,GACnBuV,GAAOvV,EAAEiV,KAAOjV,EAAEmV,SAClBG,GAAiBtV,EAAEmV,QACrB,IACOG,EAAgBC,EAAMD,EAAgB,CAC/C,GAEA,CAAAlU,IAAA,QAAAV,MAMA,WACEyB,KAAK2S,OAAOvN,SAAQ,SAACvH,GAAC,OAAMA,EAAEmV,SAAW,CAAC,GAC5C,GAEA,CAAA/T,IAAA,UAAAV,MAMA,WACEyB,KAAK2S,OAAS,EAChB,KAACD,CAAA,CAlGkB,G,mPCJrB,IAAQW,EAA+BC,EAAAA,KAA/BD,UAAWE,EAAoBD,EAAAA,KAApBC,gBAWbC,EAAW,WAEf,SAAAA,EAAYC,EAAUC,GAAUtI,EAAA,KAAAoI,GAAAlH,EAAA,cADA,MAE9B,IAAMqH,EAAO,IAAIC,KAAK,CAAC,qCAADrT,OAAsCmT,EAAQ,QAC9DG,EAAeC,IAAIC,gBAAgBJ,GACzC3T,KAAKgU,OAAS,IAAIC,OAAOJ,GACzB7T,KAAKgU,OAAOE,UAAYT,CAC1B,CAYC,OAVD7H,EAAA4H,EAAA,EAAAvU,IAAA,OAAAV,MAMA,WACMyB,KAAKgU,QACPhU,KAAKgU,OAAOG,WAEhB,KAACX,CAAA,CAnBc,GA4BXY,EAAS,SAAAC,GAab,SAAAD,EAAYE,GAAa,IAAAzB,EAED,OAFCzH,EAAA,KAAAgJ,IACvBvB,EAAA0B,EAAA,KAAAH,IACKI,QAAUF,EAAOzB,CACxB,CA+EC,OA/FY1G,EAAAiI,EAAAC,GAkBbzI,EAAAwI,EAAA,EAAAnV,IAAA,QAAAV,MAMA,WAAqB,IAAAkW,EAAA,KACnBzU,KAAK0U,kBACL1U,KAAK2U,UAAW,EAChB3U,KAAK4U,cAAgB,EACrB5U,KAAK6U,cAAgB,EACrB7U,KAAK8U,OAAS,IAAItB,GAAY,kBAAMiB,EAAKM,UAAU,GAlEhC,IAmErB,GAEA,CAAA9V,IAAA,SAAAV,MAMA,WACEyB,KAAK2U,UAAW,EAChB3U,KAAK4U,cAAgB,CACvB,GAEA,CAAA3V,IAAA,OAAAV,MAMA,WACEyB,KAAK2U,UAAW,CAClB,GAEA,CAAA1V,IAAA,YAAAV,MAKA,WACE,OAAOyB,KAAK2U,QACd,GAEA,CAAA1V,IAAA,UAAAV,MAMA,WACEyB,KAAK0U,iBACP,GAAC,CAAAzV,IAAA,kBAAAV,MAED,WACMyB,KAAK8U,SACP9U,KAAK8U,OAAOE,OACZhV,KAAK8U,OAAS,KAElB,GAAC,CAAA7V,IAAA,WAAAV,MAED,WACMyB,KAAK2U,UACH3U,KAAK4U,gBAAkB5U,KAAKwU,QAAQS,eACtCjV,KAAKkV,cAAc,IAAI7B,EAAUe,EAAUe,MAAMC,QACjDpV,KAAK4U,cAAgB,EACrB5U,KAAK6U,cAAgB,GAEvB7U,KAAK4U,kBAEL5U,KAAKkV,cAAc,IAAI7B,EAAUe,EAAUe,MAAME,OAC7CrV,KAAK6U,gBAAkB7U,KAAKwU,QAAQc,eACtCtV,KAAKkV,cAAc,IAAI7B,EAAUe,EAAUe,MAAMI,SACjDvV,KAAK6U,cAAgB,GAEvB7U,KAAK6U,gBAET,KAACT,CAAA,CA/FY,CAASb,GAAejH,EAAjC8H,EAAS,QAOS,CACpBiB,KAAM,OACND,MAAO,QACPG,OAAQ,WClDL,IAAKC,EAAe,SAAfA,GAAe,OAAfA,EAAe,sCAAfA,EAAe,4BAAfA,CAAe,MCEfC,EAAU,SAAVA,GAAU,OAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,uBAAVA,EAAAA,EAAU,uBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,mBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,oBAAVA,EAAAA,EAAU,kBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,oBAAVA,EAAAA,EAAU,wBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,oBAAVA,EAAAA,EAAU,oBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,cAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,wBAAVA,EAAAA,EAAU,kBAAVA,EAAAA,EAAU,gBAAVA,EAAAA,EAAU,oBAAVA,EAAAA,EAAU,0BAAVA,EAAAA,EAAU,wBAAVA,EAAAA,EAAU,kBAAVA,CAAU,MCFTC,EACK,MADLA,EAEA,MCDDC,EAAY,SAAZA,GAAY,OAAZA,EAAAA,EAAY,eAAZA,EAAAA,EAAY,mBAAZA,EAAAA,EAAY,eAAZA,EAAAA,EAAY,6BAAZA,EAAAA,EAAY,eAAZA,EAAAA,EAAY,yBAAZA,EAAAA,EAAY,iBAAZA,EAAAA,EAAY,iBAAZA,EAAAA,EAAY,iBAAZA,EAAAA,EAAY,gCAAZA,EAAAA,EAAY,oBAAZA,CAAY,M,+jBCDxB,I,EAAMC,EAA2B,aACpBC,EAAkB,CAC7BC,kBAAmB,GAAFvV,OAAKqV,EAAwB,oBAC9CG,4BAA6B,GAAFxV,OAAKqV,EAAwB,6BACxDI,iCAAkC,GAAFzV,OAAKqV,EAAwB,kCAC7DK,kCAAmC,GAAF1V,OAAKqV,EAAwB,kCAC9DM,mCAAoC,GAAF3V,OAAKqV,EAAwB,mCAC/DO,kCAAmC,GAAF5V,OAAKqV,EAAwB,kCAC9DQ,oCAAqC,GAAF7V,OAAKqV,EAAwB,oCAChES,wCAAyC,GAAF9V,OAAKqV,EAAwB,wCACpEU,0CAA2C,GAAF/V,OAAKqV,EAAwB,2CAwF3DW,EAAaC,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA,GArFM,CAC9BC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,sBAAuB,wBACvBC,iCAAkC,uCAGN,CAC5BC,sBAAuB,wBACvBC,aAAc,wBACdC,aAAc,0BAGgB,CAC9BC,gBAAiB,kBACjBC,iBAAkB,mBAClBC,oBAAqB,sBACrBC,iBAAkB,mBAClBC,kBAAmB,oBACnBC,2BAA4B,6BAC5BC,uBAAwB,yBACxBC,wBAAyB,0BACzBC,uBAAwB,yBACxBC,yBAA0B,6BAGI,CAC9BC,cAAe,6BAEU,CACzB9F,cAAe,gBACf+F,YAAa,cACb9F,cAAe,gBACf+F,WAAY,eAGc,CAC1BC,eAAgB,mBAEQ,CACxBC,kBAAmB,oBACnBC,sBAAuB,0BAEK,CAC5BC,cAAe,gBACfC,eAAgB,mBAGW,CAC3BvG,aAAc,eACdwG,cAAe,gBACfC,uBAAwB,yBACxBC,0BAA2B,4BAC3BC,uBAAwB,2BAGQ,CAChCC,4BAA6B,gCAGD,CAC5BC,cAAe,gBACfC,kBAAmB,sBAGQ,CAC3BC,aAAc,cACdC,aAAc,cACdC,UAAW,WACXC,kBAAmB,mBACnBC,eAAgB,gBAChBC,YAAa,aACbC,sBAAuB,wBAGU,CACjCC,sCAAuC,wCACvCC,mCAAoC,qCACpCC,yCAA0C,2CAC1CC,iCAAkC,mCAClCC,oCAAqC,sCACrCC,wCAAyC,4CC7FrCC,EAAsC,CAC1CC,IAAK,IACLC,IAAK,IACLC,IAAK,IACLC,MAAO,IACPC,OAAQ,IACRC,WAAY,IACZC,iBAAkB,IAClBC,IAAK,IACLC,eAAgB,IAChBC,KAAM,IACNC,gBAAiB,KACjBC,GAAI,KACJC,uBAAwB,KACxBC,UAAW,KACXC,gBAAiB,KACjBC,IAAK,KACLC,OAAQ,KACRC,MAAO,KACPC,OAAQ,KACRC,gBAAiB,KACjBC,UAAW,KACXC,OAAQ,M,+jBChBH,SAASC,EAA0BC,EAAqBnO,EAAkBoO,GAC/E,IAAMC,EAAc,CAClBlR,UAAW6C,EAAMsO,eACjBlR,QAAS4C,EAAMuO,aACflR,UAAW2C,EAAMwO,eACjBC,mBAAoB9B,EAAmBsB,QAGrCjO,EAAM0O,sBACRL,EAA4B,eAAIrO,EAAM0O,qBAEpC1O,EAAM2O,0BACRN,EAAyB,YAAIrO,EAAM4O,kBAEjC5O,EAAM6O,0BACRR,EAA4B,eAAIrO,EAAM6O,yBAEpC7O,EAAM8O,iCACRT,EAAmC,sBAAIrO,EAAM8O,gCAE3C9O,EAAM+O,cACRV,EAAoB,OAAIrO,EAAM+O,aAGhC,IAAM9O,EAAakO,EAASpO,cAAcqO,GACpCY,EAAkB,CAAC,EACjB9R,EAA+C+C,EAA/C/C,UAAW+R,EAAoChP,EAApCgP,UAAWC,EAAyBjP,EAAzBiP,UAAWC,EAAclP,EAAdkP,UAYzC,OAXAH,EAA2B,UAAI9R,EAE3B+C,EAAW/C,YAAc4L,GAC3BkG,EAA4B,WAAIC,EAChCD,EAA4B,WAAIE,EAChCF,EAA6B,YAAIG,GACxBlP,EAAW/C,YAAc4L,IAClCkG,EAA0B,SAAIC,EAC9BD,EAA0B,SAAIE,EAC9BF,EAA2B,UAAIG,GAE1Bje,OAAOgI,OAAO8V,EAAiBX,EACxC,CAEO,IAAMe,GAAgE1P,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EAAG,CAAC,EAC9E1F,EAAcoB,cAAgB,CAC7BlL,KAAM,gBACNE,cAAe,SAAAuP,GAAA,IAAGC,EAAMD,EAANC,OAAM,MAAkB,CACxCrS,UAAW4L,EACXmG,UAAsB,WAAXM,EAAsB,6BAA+B,GAChEL,UAAWrG,EAAW2G,OACtBL,UAAWI,EACZ,IAEF5F,EAAc1E,cAAgB,CAC7BpF,KAAM,gBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,mBACXC,UAAWrG,EAAW4G,KACtBN,UAAW,GACZ,IAEFxF,EAAcqB,YAAc,CAC3BnL,KAAM,cACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,oBACXC,UAAWrG,EAAW6G,MACtBP,UAAW,GACZ,IAEFxF,EAAczE,cAAgB,CAC7BrF,KAAM,gBACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,EACXoG,UAAWrG,EAAW+G,MACtBT,UAA8C,SAAnCQ,EAA6B,oBAAe,cAAgBA,EAA6B,qBAElGV,EAAoB,GAExB,OAAQU,EAAQE,mBACd,IAAK,UACHZ,EAAY,sBACZ,MACF,IAAK,WACHA,EAAY,6BACZ,MACF,IAAK,QACHA,EAAY,0BACZ,MACF,IAAK,WACHA,EAAY,6BACZ,MACF,IAAK,QACHA,EAAY,0BAIhB,OAAArF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,GACrB,IAEDtF,EAAcsB,WAAa,CAC1BpL,KAAM,aACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,yBACXC,UAAWrG,EAAW+G,MACtBT,UAA8C,SAAnCQ,EAA6B,oBAAe,cAAgBA,EAA6B,oBACrG,IAEFhG,EAAcO,sBAAwB,CACrCrK,KAAM,wBACNE,cAAe,SAAC4P,GACd,IAMIV,EACAE,EAPEnP,EAAQ,CACZ9C,UAAW4L,EACXoG,UAAWrG,EAAWiH,UAEhBC,EAAqCJ,EAArCI,UAAWC,EAA0BL,EAA1BK,SAAUC,EAAgBN,EAAhBM,YAK7B,OAAQF,GACN,IAAK,QACHd,EAAY,0BACZE,EAAYc,EACZ,MACF,IAAK,WACHhB,EAAY,6BACZE,EAAYc,EACZ,MACF,IAAK,cACHhB,EAAY,+BACZE,EAAYa,EACZ,MACF,QACEf,EAAY,GACZE,EAAY,GAEhB,OAAAvF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,EAAWE,UAAAA,GAChC,IAEDxF,EAAcQ,aAAe,CAC5BtK,KAAM,eACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,gBACXC,UAAWrG,EAAW4G,KACtBN,UAAW,GACZ,IAEFxF,EAAcS,aAAe,CAC5BvK,KAAM,eACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,iBACXC,UAAWrG,EAAW6G,MACtBP,UAAW,GACZ,IAEFxF,EAAcuB,eAAiB,CAC9BrL,KAAM,iBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,eACXC,UAAWrG,EAAWqH,KACtBf,UAAWQ,EAAyB,gBACrC,IAEFhG,EAAcE,gBAAkB,CAC/BhK,KAAM,kBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAWyS,EAAc,KAAI7G,EAAiCA,EAC9DmG,UAAWU,EAAc,KAAI,uBAAyB,yBACtDT,UAAWnG,EAAaoH,KACxBhB,UAAW,GACZ,IACFzP,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EACA1F,EAAcG,iBAAmB,CAChCjK,KAAM,mBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,mBACXC,UAAWrG,EAAW6G,MACtBP,UAAW,GACZ,IAEFxF,EAAcI,kBAAoB,CACjClK,KAAM,oBACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,GAGTmG,EAAoB,GACpBC,EAAwBrG,EAAW4G,KAE/BW,EAA0CT,EAA1CS,YAAaC,EAA6BV,EAA7BU,UAAWC,EAAkBX,EAAlBW,cAE1BnB,EAAYiB,EAClB,OAAQC,GACN,IAAK,MACH,IAAME,EAAaH,EAAYle,OAAS,GAA8B,IAAzBoe,EAAcpe,OAC3D+c,EAAYsB,EAAa,oBAAsB,qBAC/CrB,EAAYqB,EAAa1H,EAAW2H,OAAS3H,EAAW4G,KACxD,MACF,IAAK,UACHR,EAAY,0BACZ,MACF,IAAK,QACHA,EAAY,wBACZ,MACF,IAAK,UACHA,EAAY,0BAGhB,OAAArF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,EAAWC,UAAAA,EAAWC,UAAAA,GAC3C,IAEDxF,EAAcK,sBAAwB,CACrCnK,KAAM,wBACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,EACXoG,UAAWrG,EAAW2G,OACtBL,UAAW,IAGTF,EAAoB,GAExB,OAAQU,EAAQc,UACd,IAAK,UACHxB,EAAY,2BACZ,MACF,IAAK,QACHA,EAAY,yBACZ,MACF,IAAK,UACHA,EAAY,4BAGhB,OAAArF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,GACrB,IAEDtF,EAAcM,iCAAmC,CAChDpK,KAAM,mCACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,EACXqG,UAAW,IAGLuB,EAA6Bf,EAA7Be,eAAgBD,EAAad,EAAbc,SAEpBxB,EAAoB,GAClBC,EAAYwB,EAAiB7H,EAAW8H,OAAS9H,EAAW+H,SAElE,OAAQH,GACN,IAAK,UACHxB,EAAYyB,EAAiB,+BAAiC,+BAC9D,MACF,IAAK,QACHzB,EAAYyB,EAAiB,6BAA+B,6BAC5D,MACF,IAAK,UACHzB,EAAYyB,EAAiB,+BAAiC,+BAIlE,OAAA9G,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,EAAWC,UAAAA,GAChC,IAGDvF,EAAcU,gBAAkB,CAC/BxK,KAAM,kBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAWyS,EAAc,KAAI7G,EAAiCA,EAC9DmG,UAAWU,EAAc,KAAI,uBAAyB,yBACtDT,UAAWnG,EAAaoH,KACxBhB,UAAW,GACZ,IAEFxF,EAAcW,iBAAmB,CAChCzK,KAAM,mBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,mBACXC,UAAWrG,EAAW6G,MACtBP,UAAW,GACZ,IAEFxF,EAAcY,oBAAsB,CACnC1K,KAAM,sBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,sBACXC,UAAWrG,EAAWiH,SACtBX,UAAWQ,EAAuB,cACnC,IAEFhG,EAAca,iBAAmB,CAChC3K,KAAM,mBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,mBACXC,UAAWrG,EAAWiH,SACtBX,UAAWQ,EAAuB,cACnC,IAEFhG,EAAcc,kBAAoB,CACjC5K,KAAM,oBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,oBACXC,UAAWrG,EAAW2H,OACtBrB,UAAWQ,EAAQkB,OACpB,IAEFlH,EAAce,2BAA6B,CAC1C7K,KAAM,6BACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,6BACXC,UAAWrG,EAAWiI,SACtB3B,UAAWQ,EAAQ7P,MACpB,IACFJ,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EACA1F,EAAcgB,uBAAyB,CACtC9K,KAAM,yBACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXmG,UAAW,yBACXC,UAAWrG,EAAW8H,OACtBxB,UAAW,GACZ,IAEFxF,EAAciB,wBAA0B,CACvC/K,KAAM,0BACNE,cAAe,SAAC4P,GAAyB,MAAM,CAC7CzS,UAAW4L,EACXmG,UAAW,0BACXC,UAAWrG,EAAW+H,SACtBzB,UAAWQ,EAAQ9P,KACpB,IAEF8J,EAAckB,uBAAyB,CACtChL,KAAM,yBACNE,cAAe,SAAC4P,GAA+C,MAAM,CACnEzS,UAAW4L,EACXmG,UAAW,yBACXC,UAAWrG,EAAWkI,KACtB5B,UAAW,GAAFxb,OAAKgc,EAAQqB,SAASC,EAAC,KAAAtd,OAAIgc,EAAQqB,SAASvX,GACtD,IAEFkQ,EAAcmB,yBAA2B,CACxCjL,KAAM,2BACNE,cAAe,SAAC4P,GAA2C,MAAM,CAC/DzS,UAAW4L,EACXmG,UAAW,2BACXC,UAAWrG,EAAWkI,KACtB5B,UAAW,GAAFxb,OAAKgc,EAAQuB,KAAKD,EAAC,KAAAtd,OAAIgc,EAAQuB,KAAKzX,GAC9C,IAEFkQ,EAAc0B,cAAgB,CAC7BxL,KAAM,gBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAWyS,EAAc,KAAI7G,EAAiCA,EAC9DmG,UAAWU,EAAc,KAAI,gCAAkC,kCAC/DT,UAAWnG,EAAaoH,KACxBhB,UAAWQ,EAAkB,SAC9B,IAEFhG,EAAc2B,eAAiB,CAC9BzL,KAAM,iBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,mCACXC,UAAWrG,EAAW6G,MACtBP,UAAWQ,EAAkB,SAC9B,IAEFhG,EAAcwB,kBAAoB,CACjCtL,KAAM,oBACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,EACXoG,UAAWrG,EAAWiI,SACtB3B,UAAW,IAGLgC,EAASxB,EAATwB,KACJlC,EAAoB,GAKxB,MAHa,UAATkC,IAAkBlC,EAAY,oBACrB,UAATkC,IAAkBlC,EAAY,oBAElCrF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,GACrB,IAEDtF,EAAcyB,sBAAwB,CACrCvL,KAAM,wBACNE,cAAe,SAAC4P,GACd,IAAM3P,EAAQ,CACZ9C,UAAW4L,EACXoG,UAAWnG,EAAaoH,KACxBhB,UAAW,IAGLgC,EAASxB,EAATwB,KACJlC,EAAoB,GAKxB,MAHa,UAATkC,IAAkBlC,EAAY,wBACrB,UAATkC,IAAkBlC,EAAY,wBAElCrF,EAAAA,EAAA,GAAY5J,GAAK,IAAEiP,UAAAA,GACrB,IAEDtF,EAAc5E,aAAe,CAC5BlF,KAAM,eACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,sBACXC,UAAWrG,EAAW4G,KACtBN,UAAWQ,EAAoB,WAChC,IAEFhG,EAAc4B,cAAgB,CAC7B1L,KAAM,gBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,gBACXC,UAAWrG,EAAW6G,MACtBP,UAAW,GACZ,IACFzP,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EACA1F,EAAc6B,uBAAyB,CACtC3L,KAAM,yBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,sBACXC,UAAWrG,EAAWiI,SACtB3B,UAAW,GACZ,IAEFxF,EAAc8B,0BAA4B,CACzC5L,KAAM,4BACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,8BACXC,UAAWnG,EAAaoH,KACxBhB,UAAW,GACZ,IAEFxF,EAAc+B,uBAAyB,CACtC7L,KAAM,yBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,oBACXC,UAAWnG,EAAaoH,KACxBhB,UAAW,GACZ,IAEFxF,EAAcgC,4BAA8B,CAC3C9L,KAAM,8BACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXqG,UAAWQ,EAAe,MAC1BT,UAAWrG,EAAWqH,KACtBjB,UAA+B,YAApBU,EAAc,KAAkB,2BAA6B,6BACzE,IAEFhG,EAAckC,kBAAoB,CACjChM,KAAM,oBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,oBACXC,UAAWnG,EAAaoH,KACxBhB,UAAWQ,EAAe,MAC3B,IAEFhG,EAAciC,cAAgB,CAC7B/L,KAAM,gBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,gBACXC,UAAWrG,EAAWqH,KACtBf,UAAWQ,EAAe,MAC3B,IAEFhG,EAAcmC,aAAe,CAC5BjM,KAAM,eACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,aACXC,UAAWrG,EAAWuI,KACtBjC,UAAW,GACZ,IAEFxF,EAAcuC,eAAiB,CAC9BrM,KAAM,iBACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,cACXC,UAAWrG,EAAWwI,KACtBlC,UAAW,GACZ,IAEFxF,EAAcoC,aAAe,CAC5BlM,KAAM,eACNE,cAAe,SAAAuR,GAAA,IAAGC,EAAaD,EAAbC,cAAa,MAAwC,CACrErU,UAAW4L,EACXmG,UAAW,qBACXC,UAAWrG,EAAWiI,SACtB3B,UAAWoC,EACZ,IAEF5H,EAAcqC,UAAY,CACzBnM,KAAM,YACNE,cAAe,iBAAY,CACzB7C,UAAW4L,EACXmG,UAAW,iBACXC,UAAWrG,EAAWiI,SACtB3B,UAAW,GACZ,IACFzP,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EACApG,EAAgBC,kBAAoB,CACnCrJ,KAAM,oBACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,aACXC,UAAWrG,EAAWqH,KACtBf,UAAWQ,EAAiB,QAC7B,IAEF1G,EAAgBE,4BAA8B,CAC7CtJ,KAAM,8BACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,yBACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBG,iCAAmC,CAClDvJ,KAAM,mCACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,mCACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBI,kCAAoC,CACnDxJ,KAAM,oCACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,+BACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBK,mCAAqC,CACpDzJ,KAAM,qCACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,gCACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBM,kCAAoC,CACnD1J,KAAM,oCACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,+BACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBO,oCAAsC,CACrD3J,KAAM,sCACNE,cAAe,SAAC4P,GAAY,MAAW,CACrCzS,UAAW4L,EACXmG,UAAW,iCACXC,UAAWrG,EAAW2G,OACtBL,UAAW,GAAFxb,OAAe,IAAVgc,EAAa,KAC5B,IAEF1G,EAAgBQ,wCAA0C,CACzD5J,KAAM,0CACNE,cAAe,SAAC4P,GAAe,MAAW,CACxCzS,UAAW4L,EACXmG,UAAW,qCACXC,UAAWrG,EAAW2G,OACtBL,UAAWQ,EACZ,IAEF1G,EAAgBS,0CAA4C,CAC3D7J,KAAM,4CACNE,cAAe,SAAC4P,GAAe,MAAW,CACxCzS,UAAW4L,EACXmG,UAAW,uCACXC,UAAWrG,EAAW2G,OACtBL,UAAW,GAAFxb,OAAe,IAAVgc,EAAa,KAC5B,IAEFhG,EAAc2C,mCAAqC,CAClDzM,KAAM,qCACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWnG,EAAaoH,KACxBlB,UAAW,uBACXE,UAAW,iBACZ,IACFzP,EAAAA,EAAAA,EAAAA,EAAAA,EAAA2P,EACA1F,EAAc0C,sCAAwC,CACrDxM,KAAM,wCACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWnG,EAAaoH,KACxBlB,UAAW,uBACXE,UAAW,iBACZ,IAEFxF,EAAc4C,yCAA2C,CACxD1M,KAAM,2CACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWrG,EAAW6G,MACtBT,UAAW,2BACXE,UAAW,mBACZ,IAEFxF,EAAc6C,iCAAmC,CAChD3M,KAAM,mCACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWrG,EAAW6G,MACtBT,UAAW,2BACXE,UAAW,WACZ,IAEFxF,EAAc8C,oCAAsC,CACnD5M,KAAM,sCACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWrG,EAAW6G,MACtBT,UAAW,iCACXE,UAAW,WACZ,IAEFxF,EAAc+C,wCAA0C,CACvD7M,KAAM,0CACNE,cAAe,iBAAO,CACpB7C,UAAW4L,EACXoG,UAAWrG,EAAW6G,MACtBT,UAAW,iCACXE,UAAW,iBACZ,KC9oBCqC,EAAS,WA8Db,SAAAA,EAAYxR,GAAgBxB,EAAA,KAAAgT,GAAA9R,EAAA,iCA9Ce,GAACA,EAAA,kCACA,GAACA,EAAA,8BACL,GAACA,EAAA,+BACA,GAACA,EAAA,0BAEG,MAAIA,EAAA,kBAIhB+R,EAAWC,mBAAiBhS,EAAA,oCACf,GAACA,EAAA,sBACdiS,KAAGjS,EAAA,wBAEM,MAAIA,EAAA,wBACX,IAAEA,EAAA,kBACRiS,KAAGjS,EAAA,oBACDiS,KAAGjS,EAAA,qBACK,MA8BjCM,GACF5M,KAAKwe,YAAY5R,EAErB,CAuVC,OArVDhB,EAAAwS,EAAA,EAAAnf,IAAA,iBAAAV,MAMA,WACE,OAAOyB,KAAK8M,WACd,GAAC,CAAA7N,IAAA,iBAAAV,MAED,WACE,OAAOyB,KAAKye,WACd,GAEA,CAAAxf,IAAA,gBAAAV,MAMA,WACE,OAAOyB,KAAKgN,UACd,GAEA,CAAA/N,IAAA,mBAAAV,MAMA,WACE,OAAOyB,KAAKkN,aACd,GAEA,CAAAjO,IAAA,sBAAAV,MAMA,WACE,OAAIyB,KAAK2P,iBACA+O,KAAKC,MAA8B,IAAxB3e,KAAK2P,kBAA2B,IAE3C,IAEX,GAEA,CAAA1Q,IAAA,cAAAV,MAMA,WACE,OAAOyB,KAAK+P,QACd,GAEA,CAAA9Q,IAAA,oBAAAV,MAMA,WACE,OAAOyB,KAAKyQ,cACd,GAEA,CAAAxR,IAAA,kBAAAV,MAMA,WACE,OAAOyB,KAAK8O,YACd,GAEA,CAAA7P,IAAA,uBAAAV,MAMA,WACE,OAAOyB,KAAK4e,iBACd,GAEA,CAAA3f,IAAA,cAAAV,MAMA,WACE,OAAOyB,KAAKiR,QACd,GAEA,CAAAhS,IAAA,aAAAV,MAMA,WACE,OAAOyB,KAAK6e,OACd,GAEA,CAAA5f,IAAA,eAAAV,MAMA,WACE,OAAOyB,KAAK8e,0BAA4B,EAAIJ,KAAKC,MAAyC,EAAlC3e,KAAK+e,2BAAkC/e,KAAK8e,2BAA6B,IAAO,CAC1I,GAEA,CAAA7f,IAAA,6BAAAV,MAMA,WACE,OAAOyB,KAAKgf,uBACd,GAEA,CAAA/f,IAAA,yBAAAV,MAMA,WACE,OAAOyB,KAAKif,sBACd,GAEA,CAAAhgB,IAAA,yBAAAV,MAMA,WACE,OAAOyB,KAAKoO,mBACd,GACA,CAAAnP,IAAA,wBAAAV,MAMA,WACE,OAAOyB,KAAK4O,kBACd,GAEA,CAAA3P,IAAA,eAAAV,MAMA,WACE,OAAOyB,KAAK0N,SACd,GAEA,CAAAzO,IAAA,qBAAAV,MAMA,WACE,OAAOyB,KAAK8N,eACd,GAEA,CAAA7O,IAAA,gBAAAV,MAMA,WACE,OAAOyB,KAAKgO,UACd,GAEA,CAAA/O,IAAA,aAAAV,MAMA,WACE,OAAOyB,KAAK4N,OACd,GAEA,CAAA3O,IAAA,2BAAAV,MAMA,WACE,OAAOyB,KAAKgP,qBACd,GAEA,CAAA/P,IAAA,+BAAAV,MAMA,WAEE,OAAOmgB,KAAKC,MAAM3e,KAAKkf,8BAAgC,GACzD,GAEA,CAAAjgB,IAAA,eAAAV,MAMA,WACE,OAAOyB,KAAKqR,SACd,GAEA,CAAApS,IAAA,oBAAAV,MAMA,WACE,OAAOyB,KAAKoP,cACd,GAEA,CAAAnQ,IAAA,kBAAAV,MAMA,WACE,IAAI4gB,EAAiB,GACrB,GAAInf,KAAKuR,aACP,IACE4N,EAAShb,KAAKoE,UAAUvI,KAAKuR,aAC/B,CAAE,MAAO/T,GACP,CAGJ,OAAO2hB,CACT,GAEA,CAAAlgB,IAAA,gBAAAV,MAMA,WACE,OAAOyB,KAAKof,UACd,GAEA,CAAAngB,IAAA,mBAAAV,MAMA,WACE,OAAOyB,KAAKyR,aACd,GAEA,CAAAxS,IAAA,sBAAAV,MAMA,WACE,OAAOyB,KAAKqf,gBACd,GAEA,CAAApgB,IAAA,sBAAAV,MAMA,WACE,OAAOyB,KAAKsf,gBACd,GAAC,CAAArgB,IAAA,gBAAAV,MAED,WACE,OAAOyB,KAAKsS,UACd,GAAC,CAAArT,IAAA,kBAAAV,MAED,WACE,OAAOyB,KAAKsP,YACd,GAEA,CAAArQ,IAAA,mBAAAV,MAMA,WACE,OAAOyB,KAAKwP,aACd,GAEA,CAAAvQ,IAAA,cAAAV,MAOA,SAAmBqM,GACjB9M,OAAOgI,OAAO9F,KAAM4K,EACtB,GAEA,CAAA3L,IAAA,WAAAV,MASA,SAAgBwc,GAA+G,IAA1FwE,EAAgCxf,UAAAjB,OAAA,QAAA2L,IAAA1K,UAAA,GAAAA,UAAA,GAAGyV,EAAgBgK,aAAcC,EAAkB1f,UAAAjB,OAAA,EAAAiB,UAAA,QAAA0K,EACtH,OAAQ8U,GACN,KAAK/J,EAAgBgK,aACnB,OVrDD,SAAuBzE,EAAqBnO,GACjD,IAAMqO,EAAmB,CACvBnR,UAAWiR,EAASrO,MACpB3C,UAAW6C,EAAMsO,eACjBlR,QAAS4C,EAAMuO,aACflR,UAAW2C,EAAMwO,eACjBgE,WAAYxS,EAAM8S,gBAClBC,SAAU/S,EAAMgT,cAChBC,aAAcjT,EAAMkT,kBACpBC,aAAcnT,EAAMoT,kBACpBC,UAAWrT,EAAMsT,eACjB/V,UAAWyC,EAAMuT,eACjBvC,SAAUhR,EAAMwT,cAChBC,cAAezT,EAAM0T,oBAGnB1T,EAAM2T,eACRtF,EAAY4D,QAAUjS,EAAM2T,cAE1B3T,EAAM4T,wBACRvF,EAAYoE,iBAAmBzS,EAAM4T,uBAEnC5T,EAAM6T,UACRxF,EAAY/Q,GAAK0C,EAAM6T,SAErB7T,EAAM0O,sBACRL,EAAYyF,eAAiB9T,EAAM0O,qBAEjC1O,EAAM+T,gBACR1F,EAAY2F,SAAWhU,EAAM+T,eAE3B/T,EAAMiU,kBACR5F,EAAY6F,WAAalU,EAAMiU,iBAE7BjU,EAAMmU,kBACR9F,EAAY+F,WAAapU,EAAMmU,iBAE7BnU,EAAMqU,kBACRhG,EAAYiG,WAAatU,EAAMqU,iBAE7BrU,EAAMuU,kBACRlG,EAAYmG,WAAaxU,EAAMuU,iBAE7BvU,EAAMyU,uBACRpG,EAAYqG,gBAAkB1U,EAAMyU,sBAElCzU,EAAM6O,0BACRR,EAAYsG,eAAiB3U,EAAM6O,yBAEjC7O,EAAM4O,mBACRP,EAAYuG,YAAc5U,EAAM4O,kBAE9B5O,EAAM8O,iCACRT,EAAYwG,sBAAwB7U,EAAM8O,gCAExC9O,EAAM2O,0BACRN,EAAYI,mBAAqBzO,EAAM2O,yBAErC3O,EAAM+O,cACRV,EAAYyG,OAAS9U,EAAM+O,aAEzB/O,EAAM+U,2BACR1G,EAAY2G,oBAAsBhV,EAAM+U,0BAE1C,IAAM9U,EAAakO,EAASpO,cAAcC,GAC1C,OAAO9O,OAAOgI,OAAO+G,EAAYoO,EACnC,CUbetO,CAAcoO,EAAU/a,MACjC,KAAKwV,EAAgBqM,kBACnB,OAAO/G,EAA0BC,EAAU/a,KAAMyf,GAEvD,KAACrB,CAAA,CAzZY,GA4ZV0D,EAAS,SAATA,GAAS,OAATA,EAAAA,EAAS,yBAATA,EAAAA,EAAS,uBAATA,CAAS,EAATA,GAAS,IAKTC,EAAe,SAAfA,GAAe,OAAfA,EAAAA,EAAe,6BAAfA,EAAAA,EAAe,qBAAfA,CAAe,EAAfA,GAAe,IAKfC,EAAO,SAAPA,GAAO,OAAPA,EAAAA,EAAO,qCAAPA,EAAAA,EAAO,6BAAPA,CAAO,EAAPA,GAAO,IAKP3D,EAAU,SAAVA,GAAU,OAAVA,EAAAA,EAAU,yCAAVA,EAAAA,EAAU,2BAAVA,CAAU,EAAVA,GAAU,IAKV4D,EAAa,SAAbA,GAAa,OAAbA,EAAAA,EAAa,uBAAbA,EAAAA,EAAa,6BAAbA,EAAAA,EAAa,2BAAbA,CAAa,EAAbA,GAAa,ICzbZC,EAAqC,CACzCC,IAAK,MACLC,KAAM,Q,mPCWR,IAAeC,EAAmB/O,EAAAA,KAA1BgP,MAAgBC,EAAUjP,EAAAA,KAAViP,MAClBC,EAAkB,KASlBC,GAAI,SAAAC,GAsDR,SAAAD,EAAY7gB,EAAc+gB,EAAuBrO,GAA0B,IAAAzB,EAmBzE,GAnByEzH,EAAA,KAAAqX,GAC7CnW,EAAAP,EAA5B8G,EAAA0B,EAAA,KAAAkO,EAAA,CAAM7gB,EAAM+gB,EAAQrO,KAAQ,qBAvCO,GAAChI,EAAAP,EAAA8G,GAAA,mBACH,GAACvG,EAAAP,EAAA8G,GAAA,sBAEc,IAAEvG,EAAAP,EAAA8G,GAAA,yBACT,IAAEvG,EAAAP,EAAA8G,GAAA,wBACL,GAAKvG,EAAAP,EAAA8G,GAAA,mBACV,GAAKvG,EAAAP,EAAA8G,GAAA,oBACJ,GAAKvG,EAAAP,EAAA8G,GAAA,0BACC,GAgCxCA,EAAK+P,aAAe,IAAIlQ,EACxBG,EAAKgQ,OAAS,IAAIzE,EAClBvL,EAAKiQ,qBACLjQ,EAAKiC,OAAS,IAAIV,EAAU,CAC1Ba,aAAcpC,EAAKyB,OAAOyO,sBAC1BzN,aAAczC,EAAKyB,OAAO0O,qBAE5BnQ,EAAKoQ,mBAAoB,EACzBpQ,EAAKqQ,cACLrQ,EAAKsQ,eACLtQ,EAAKgQ,OAAOrE,YAAY,CACtBY,WAAY,EACZpS,WAAY,EACZE,cAAe,EACfJ,YAAa,IAGXjI,aAAegO,EAAKyB,OAAOsM,SAAU,CACvC,IAAMwC,EAAQve,YAAYwe,iBAAiB,YAAYpQ,MAAK,SAACmQ,GAAK,OAAKA,EAAMxhB,KAAK0hB,MAAM,mBAAqBzQ,EAAKyB,OAAOsM,SAAS,IAC9HwC,GACFvQ,EAAKgQ,OAAOrE,YAAY,CAAE7O,iBAAkByT,EAAMpQ,UAEtD,CAAC,OAAAH,CACH,CAs0BC,OAr5BO1G,EAAAsW,EAAAC,GA+EP9W,EAAA6W,EAAA,EAAAxjB,IAAA,0BAAAV,MAED,WACEyB,KAAK6iB,OAAOrE,YAAY,CACtB9Q,UAAW1N,KAAK2iB,OAAOY,OAAgC,IAAvBvjB,KAAK2iB,OAAOa,OAAe1B,EAAU2B,UAAY3B,EAAU4B,UAE/F,GAAC,CAAAzkB,IAAA,gCAAAV,MAED,SAAsColB,GACpC3jB,KAAK6iB,OAAOrE,YAAY,CACtB1Q,gBAAiB6V,GAAa3jB,KAAK2iB,OAAOiB,uBAAyB7B,EAAgB8B,QAAU9B,EAAgB+B,aAEjH,GAAC,CAAA7kB,IAAA,+BAAAV,MAED,SAAqCwlB,GAEnC,IADA,IAAMC,EAAcD,EAAKE,aAChBplB,EAAI,EAAGA,EAAImlB,EAAYllB,OAAQD,IACtCmB,KAAKkkB,oBAAoB5b,KAAK0b,EAAYnlB,IAE5C,KAAOmB,KAAKmkB,uBAAuBrlB,QAEjCkB,KAAKokB,+BAA+BpkB,KAAKmkB,uBAAuBE,MAEpE,GAEA,CAAAplB,IAAA,UAAAV,MAMA,WACEyB,KAAKskB,aAAaC,UAClBvkB,KAAKwkB,QACP,GAAC,CAAAvlB,IAAA,SAAAV,MAED,WACEyB,KAAK8U,OAAOyP,UACZvkB,KAAK4iB,aAAa2B,UACdvkB,KAAKykB,sBACPzkB,KAAKykB,qBAAqBC,aAE5B1kB,KAAKkkB,oBAAsB,GAC3BlkB,KAAKmkB,uBAAyB,EAChC,GAEA,CAAAllB,IAAA,QAAAV,MAMA,WACEyB,KAAKskB,aAAaK,YAClB3kB,KAAKkjB,cACLljB,KAAKmjB,eACLnjB,KAAK6iB,OAAOrE,YAAY,CACtBY,WAAY,EACZpS,WAAY,EACZE,cAAe,EACfJ,YAAa,EACbuS,iBAAkB,OAEpBrf,KAAKwkB,QACP,GAEA,CAAAvlB,IAAA,YAAAV,MAMA,WACMqmB,OAAOC,sBACT7kB,KAAKykB,qBAAuB,IAAIG,OAAOC,oBAAoB7kB,KAAK8kB,6BAA6B9d,KAAKhH,OAClGA,KAAKykB,qBAAqBM,QAAQ,CAAEC,WAAY,CAAC,cAErD,GAEA,CAAA/lB,IAAA,gBAAAV,MAWA,SAAqB0mB,GACnB,GAAIA,EACF,OAAOjlB,KAAK6iB,OAAOqC,SAAS3Y,EAAe0Y,GAE/C,GAEA,CAAAhmB,IAAA,YAAAhB,IAKA,WACE,OAAOskB,EAAMzkB,OAAOqnB,SAAS3S,EAC/B,GAEA,CAAAvT,IAAA,gBAAAV,MAeA,SAAqBqO,GAA2B,IAAA6H,EAAA,KAC9C,OAAO,IAAInR,SAAQ,SAACE,EAASC,GAC3BnE,EAAAA,oBAAoB8lB,WAAW3Q,EAAKH,OAAOhO,WAAYsG,EAAO6H,EAAKH,OAAO+Q,eACvE5c,gBACAC,MACC,SAACG,GACC4L,EAAK6Q,6BAA6Bzc,EAAU+D,GAC5CpJ,GACF,IACA,SAAC+hB,GACC9Q,EAAK+Q,4BAA4BD,EAAK3Y,GACtCnJ,EAAO8hB,EACT,IAEJ9Q,EAAKoO,OAAOrE,YAAY,CAAEY,WAAY3K,EAAKoO,OAAOnD,gBAAkB,GACtE,GACF,GAAC,CAAAzgB,IAAA,cAAAV,MAED,WACEyB,KAAKylB,qBAAuB,EAC5BzlB,KAAK0lB,wBAA0B,EAC/B1lB,KAAK2lB,YAAa,EAClB3lB,KAAK4lB,cAAe,EACpB5lB,KAAK6lB,iBAAkB,EACvB7lB,KAAK8lB,UAAW,EAChB9lB,KAAK+lB,WAAY,EACjB/lB,KAAKgmB,cAAe,EACpBhmB,KAAKimB,kBAAoB,CACvBtV,yBAAyB,EACzBC,yBAAyB,EACzBC,yBAAyB,EACzBC,0BAA0B,GAE5B9Q,KAAKkmB,iBAAkB,EACvBlmB,KAAKmmB,kBAAmB,CAC1B,GAAC,CAAAlnB,IAAA,gBAAAV,MAED,WACEyB,KAAKomB,OAAOjkB,MAAM,sBAClBnC,KAAK4iB,aAAayD,QAClBrmB,KAAK6iB,OAAOrE,YAAY,CACtBY,WAAY,EACZlS,cAAe,EACfJ,YAAa,GAEjB,GAAC,CAAA7N,IAAA,iBAAAV,MAED,SAAuBwc,GAAgH,IAA3FwE,EAAgCxf,UAAAjB,OAAA,QAAA2L,IAAA1K,UAAA,GAAAA,UAAA,GAAGyV,EAAgBgK,aAAcC,EAAkB1f,UAAAjB,OAAA,EAAAiB,UAAA,QAAA0K,EAC7H,GAAKzK,KAAKsmB,YAAV,CAGItmB,KAAKgmB,eACPhmB,KAAKumB,qBACLvmB,KAAKwmB,iBAAmBC,KAAK3hB,OAE/B,IAAM8H,EAAQ5M,KAAK6iB,OAAOqC,SAASnK,EAAUwE,EAAiBE,GAC9D,GAAkD,mBAAvCzf,KAAKsU,OAAOoS,yBACD1mB,KAAKsU,OAAOoS,uBAAuB9Z,GAGrD,YADA5M,KAAKomB,OAAOjkB,MAAM,sBAAuByK,GAI7C5M,KAAKomB,OAAOjkB,MAAM,sBAAD5B,OAAuBqM,EAAM9C,UAAS,KAAAvJ,OAAIwa,EAAStO,OACpEzM,KAAK2mB,cAAc/Z,GAAOga,OAAM,WAAO,GAdvC,CAeF,GAAC,CAAA3nB,IAAA,+BAAAV,MAED,SAAqCsK,EAAe+D,GAClD5M,KAAKomB,OAAOjkB,MAAM,kBAAmByK,GACrC5M,KAAK6mB,6BAA6Bhe,EACpC,GAAC,CAAA5J,IAAA,8BAAAV,MAED,SAAoCgnB,EAAU3Y,GAC5C5M,KAAKomB,OAAOtjB,KAAK,4BAA6B8J,EAAO2Y,EACvD,GAAC,CAAAtmB,IAAA,eAAAV,MAED,WAA6B,IAAAuoB,EAAA,KAC3B9mB,KAAKskB,aAAayC,OAAO/mB,KAAK8U,OAAQV,EAAUe,MAAME,MAAM,kBAAMyR,EAAKlE,aAAaoE,cAAc,IAClGhnB,KAAKskB,aAAayC,OAAO/mB,KAAK8U,OAAQV,EAAUe,MAAMI,QAAQ,kBAAMuR,EAAKG,WAAW,IACpFjnB,KAAKskB,aAAayC,OAAO/mB,KAAK8U,OAAQV,EAAUe,MAAMC,OAAO,kBAAM0R,EAAKI,eAAe,IACvFlnB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKpW,iBAAiB,kBAAM+V,EAAKM,mBAAmB,IAC5GpnB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAK9lB,OAAO,SAAC4jB,GAAK,OAAK6B,EAAKO,SAASpC,EAAM,IACnGjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKG,YAAY,kBAAMR,EAAKS,cAAc,IAClGvnB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKK,aAAa,SAACvC,GAAK,OAAK6B,EAAKW,cAAcxC,EAAM,IAC9GjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKO,iBAAiB,SAACzC,GAAK,OAAK6B,EAAKa,kBAAkB1C,EAAM,IACtHjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKS,gBAAgB,SAAC3C,GAAK,OAAK6B,EAAKe,uBAAuB5C,EAAM,IAC1HjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKW,gBAAgB,kBAAMhB,EAAKiB,mBAAmB,IAC3G/nB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKa,SAAS,kBAAMlB,EAAKmB,YAAY,IAC7FjoB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKe,eAAe,kBAAMpB,EAAKqB,iBAAiB,IACxGnoB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKiB,SAAS,kBAAMtB,EAAKuB,YAAY,IAC7FroB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAK/W,OAAO,kBAAM0W,EAAKwB,UAAU,IACzFtoB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKoB,OAAO,kBAAMzB,EAAK0B,UAAU,IACzFxoB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKsB,qBAAqB,SAACxD,GAAK,OAAK6B,EAAK4B,qBAAqBzD,EAAM,IAC7HjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKwB,qBAAqB,SAAC1D,GAAK,OAAK6B,EAAK8B,qBAAqB3D,EAAM,IAC7HjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAK0B,oBAAoB,SAAC5D,GAAK,OAAK6B,EAAKgC,oBAAoB7D,EAAM,IAC3HjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAK4B,sBAAsB,SAAC9D,GAAK,OAAK6B,EAAKkC,sBAAsB/D,EAAM,IAC/HjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAK8B,aAAa,kBAAMnC,EAAKoC,wBAAwB,IAC7GlpB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKgC,UAAU,kBAAMrC,EAAKsC,YAAY,IAC9FppB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKkC,YAAY,kBAAMvC,EAAKwC,cAAc,IAClGtpB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKoC,eAAe,kBAAMzC,EAAK0C,yBAAyB,IAChHxpB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMsU,mBAAmB,SAACjsB,GAAC,OAAKspB,EAAK4C,8BAA8BlsB,EAAE+e,QAAQoN,QAAQ,IACvI3pB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKyC,aAAa,kBAAM9C,EAAK0C,yBAAyB,IAC9GxpB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKlV,kBAAkB,kBAAM6U,EAAK+C,qBAAqBxL,EAAWyL,WAAW,IACrI9pB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKjV,iBAAiB,kBAAM4U,EAAK+C,qBAAqBxL,EAAWC,kBAAkB,IAC3Ite,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAM4U,+BAA+B,SAACvsB,GAAC,OAAKspB,EAAKkD,+BAA+BxsB,EAAE+e,QAAQ,IAC5Ivc,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC7SlB,gBD6SqD,kBAAMmE,EAAKmD,mBAAmB,IAC/FjqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OClTd,oBDkTqD,kBAAMmE,EAAKoD,oBAAoB,IACpGlqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC9TjB,iBD8TmD,kBAAMmE,EAAKqD,iBAAiB,IAC5FnqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC3TjB,iBD2TmD,SAACsC,GAAK,OAAK6B,EAAKsD,uBAAuBnF,EAAM,IAC7GjlB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC5UT,yBD4UsD,kBAAMmE,EAAKuD,wBAAwB,IAC9GrqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC1Sd,oBD0SkD,kBAAMmE,EAAKwD,qBAAqB,IAClGtqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC1UhB,kBD0UwD,kBAAMmE,EAAKyD,kBAAkB,IACnGvqB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OC1Ud,oBD0UwD,SAACsC,GAAK,OAAK6B,EAAK0D,mBAAmBvF,EAAM,IACjHjlB,KAAKyqB,yBACLzqB,KAAK0qB,uBACL1qB,KAAK2qB,eACL3qB,KAAK4qB,4BACP,GAAC,CAAA3rB,IAAA,uBAAAV,MAED,WAAqC,IAAAssB,EAAA,KACnC/sB,OAAOgtB,OAAOjV,GAAiBzQ,SAAQ,SAAC6f,GACtC4F,EAAKvG,aAAayC,OAAO8D,EAAKlI,OAAQsC,GAAO,SAACznB,GACxCA,EAAEiP,QAAQuP,GACR6O,EAAKE,yBAAyBvtB,IAChCqtB,EAAKG,eAAehP,EAAuBxe,EAAEiP,MAAO+I,EAAgBqM,kBAAmBrkB,EAAE+e,QAG/F,GACF,GACF,GAAC,CAAAtd,IAAA,yBAAAV,MAED,WAAuC,IAAA0sB,EAAA,KACrCntB,OAAOgtB,OAAOvU,GAAenR,SAAQ,SAAC6f,GACpCgG,EAAK3G,aAAayC,OAAOkE,EAAKtI,OAAQsC,GAAO,SAACznB,GACxCA,EAAEiP,QAAQuP,GACRiP,EAAKF,yBAAyBvtB,IAChCytB,EAAKD,eAAehP,EAAuBxe,EAAEiP,MAAO+I,EAAgBqM,kBAAmBrkB,EAAE+e,QAG/F,GACF,GACF,GAAC,CAAAtd,IAAA,kBAAAV,MAED,WACEyB,KAAK2lB,YAAa,GACb3lB,KAAKkrB,sBAAwBlrB,KAAKykB,uBACrCzkB,KAAKykB,qBAAqBC,aAC1B1kB,KAAKomB,OAAOjkB,MAAM,kFAEtB,GAAC,CAAAlD,IAAA,eAAAV,MAED,WACEyB,KAAKmrB,eAAiB1E,KAAK3hB,KAC7B,GAAC,CAAA7F,IAAA,YAAAV,MAED,WACE,IAAMqU,EAAkB,GAGxB,OAFkC5S,KAAK2iB,OAAOyI,UAAUprB,KAAK2iB,OAAO0I,MAAMC,OAC9DlmB,SAAQ,SAACmmB,GAAU,OAAK3Y,EAAMtK,KAAKijB,EAAW7c,UAAY8T,EAAQ,IACvE5P,CACT,GAAC,CAAA3T,IAAA,oBAAAV,MAED,WACE,IAAMqU,EAAQ5S,KAAKwrB,YACbC,EAAezrB,KAAK2iB,OAAO+I,kBACjC1rB,KAAK4iB,aAAa+I,SAAS/Y,GACvB6Y,EAAaG,OACf5rB,KAAK4iB,aAAaiJ,WAAWJ,EAAaG,MAAMld,UAAY8T,GAE1DiJ,EAAaK,OACf9rB,KAAK6iB,OAAOrE,YAAY,CAAEvN,SAAUwa,EAAaK,MAAM7a,WAErDwa,EAAahnB,MACfzE,KAAK6iB,OAAOrE,YAAY,CAAEK,QAAS4M,EAAahnB,KAAKwM,UAEzD,GAEA,CAAAhS,IAAA,sBAAAV,MAKA,WACE,IAAIwtB,EAAkBxN,IAItB,OAHIve,KAAK2iB,OAAOqJ,QACdD,EAAkB/rB,KAAK2iB,OAAOqJ,MAAMD,iBAE/BA,CACT,GAEA,CAAA9sB,IAAA,0BAAAV,MAKA,WACE,IAAI6P,EAAsBmQ,IACpBwN,EAAkB/rB,KAAKisB,sBACvBnd,EAAe9O,KAAKksB,mBAO1B,OALKhe,MAAMY,KAETV,EAAsBsQ,KAAKC,MAAyB,IAAlBoN,EAA0Bjd,GAAgB,KAGvEV,CACT,GAEA,CAAAnP,IAAA,mBAAAV,MAKA,WACE,IAAIuQ,EAAeyP,IAInB,OAHIve,KAAK2iB,OAAOqJ,QACdld,EAAe9O,KAAK2iB,OAAOqJ,MAAMld,cAE5BA,CACT,GAEA,CAAA7P,IAAA,yBAAAV,MAKA,WACE,IAAI4tB,GAAiB,EACfC,EAA6CpsB,KAAKqsB,8BACxD,GAAID,EAAmB,CACrB,IAAME,EAAoBF,EAAkB,GACtCG,EAAkBH,EAAkB,GACpCI,EAAqBF,EAAoBtsB,KAAKysB,mBAC9CC,EAAmBH,EAAkBvsB,KAAK2sB,iBAChDR,EAAgBO,EAAmBhO,KAAKC,MAAO6N,EAAqBE,EAAoB,KAAQ,IAAO,EAEvG1sB,KAAK2sB,iBAAmBJ,EACxBvsB,KAAKysB,mBAAqBH,CAC5B,CACA,OAAOH,CACT,GAEA,CAAAltB,IAAA,8BAAAV,MAMA,WACE,GAAsE,mBAA3DyB,KAAK2iB,OAAOiK,kBAAmBC,wBAAwC,CAChF,IAAMC,EAAuB9sB,KAAK2iB,OAAOiK,kBAAmBC,0BAC5D,MAAO,CAACC,EAAqBC,mBAAoBD,EAAqBE,iBACxE,CAAO,MAE4D,iBAA1DhtB,KAAK2iB,OAAOiK,kBAAkBK,yBAE4B,iBAA1DjtB,KAAK2iB,OAAOiK,kBAAkBM,wBAG9B,CAACltB,KAAK2iB,OAAOiK,kBAAkBK,wBAAyBjtB,KAAK2iB,OAAOiK,kBAAkBM,yBAEtF,IAEX,GAAC,CAAAjuB,IAAA,YAAAV,MAED,WACMyB,KAAKijB,mBACPjjB,KAAKmtB,0BACLntB,KAAK6iB,OAAOrE,YAAY,CACtBpQ,oBAAqBpO,KAAKotB,0BAC1Bte,aAAc9O,KAAKksB,mBACnBtd,mBAAoB5O,KAAKqtB,2BAEvBrtB,KAAK0lB,yBAA2B1lB,KAAK6iB,OAAO9V,kBAC9C/M,KAAK0lB,uBAAyB1lB,KAAK6iB,OAAO9V,iBAC1C/M,KAAKgrB,eAAeze,EAAeC,OAEnCxM,KAAKomB,OAAOtjB,KAAK,sEAADvC,OAAuEP,KAAK0lB,0BAG9F1lB,KAAKomB,OAAOtjB,KAAK,yEAEnB9C,KAAK6iB,OAAOrE,YAAY,CACtBM,0BAA2B,EAC3BC,2BAA4B,EAC5BC,wBAAyB,EACzBC,uBAAwB,EACxBC,6BAA8B,EAC9BlS,WAAY,GAEhB,GAAC,CAAA/N,IAAA,sCAAAV,MAED,SAA4C+uB,GAC1CttB,KAAK6iB,OAAOrE,YAAY,CACtBxP,sBAAuBse,EAAcC,eAEzC,GAAC,CAAAtuB,IAAA,6BAAAV,MAED,WAA2C,IAAAivB,EAAA,KAEnCF,EAAgB1I,OAAO6I,UAAUC,YAAc9I,OAAO6I,UAAUE,eAAiB/I,OAAO6I,UAAUG,iBAEpGN,IACFttB,KAAKskB,aAAayC,OAAOuG,EAAe,UAAU,kBAAME,EAAKK,oCAAoCP,EAAc,IAC/GttB,KAAK6tB,oCAAoCP,GAE7C,GAAC,CAAAruB,IAAA,aAAAV,MAED,WACE,GAAIyB,KAAK6lB,gBAAiB,CACxB7lB,KAAKwpB,0BACLxpB,KAAK0pB,8BAA8B1pB,KAAK2iB,OAAOgB,WAC1C3jB,KAAK2iB,OAAOmL,gBAAgB9tB,KAAK8U,OAAOiZ,QAC7C/tB,KAAK6lB,iBAAkB,EACvB,IAAMmI,EACoC,SAAxChuB,KAAK2iB,OAAOrO,OAAO2Z,SAASC,SAAsBluB,KAAKmmB,iBAAmBnmB,KAAKmuB,sBAAwBnuB,KAAKmrB,eAC9GnrB,KAAK6iB,OAAOrE,YAAY,CACtBzO,SAAU0S,EAAK2L,4BAA4BJ,KAE7ChuB,KAAKgrB,eAAeze,EAAeuD,MACnC9P,KAAKinB,WACP,MAAWjnB,KAAK8lB,UACd9lB,KAAK8U,OAAOiZ,QACZ/tB,KAAK8lB,UAAW,EAChB9lB,KAAKgrB,eAAeze,EAAegE,SAC1BvQ,KAAK+lB,YACd/lB,KAAK8U,OAAOuZ,SACZruB,KAAK+lB,WAAY,EACjB/lB,KAAKgrB,eAAeze,EAAe4D,QAEvC,GAAC,CAAAlR,IAAA,aAAAV,MAED,WACEyB,KAAKkmB,iBAAkB,EACvBlmB,KAAK6iB,OAAOrE,YAAY,CACtBC,YAAagE,EAAK2L,4BAA4BpuB,KAAKmrB,iBAEvD,GAAC,CAAAlsB,IAAA,eAAAV,MAED,WACMyB,KAAKkmB,kBACPlmB,KAAKmmB,kBAAmB,GAE1BnmB,KAAK4lB,cAAe,EACpB5lB,KAAKmuB,sBAAwB1H,KAAK3hB,MAClC9E,KAAKgrB,eAAeze,EAAesD,aACrC,GAAC,CAAA5Q,IAAA,oBAAAV,MAED,WAAkC,IAAA+vB,EAAA,KAChCtuB,KAAKgrB,eAAeze,EAAekD,YAC7BzP,KAAK2iB,OAAO4L,WAAavuB,KAAK2iB,OAAO6L,UACzCxuB,KAAKskB,aAAayC,OAAO/mB,KAAK2iB,OAAQ3iB,KAAK2iB,OAAOxN,MAAMgS,KAAKsH,aAAa,kBAAMH,EAAKI,eAAe,GAExG,GAAC,CAAAzvB,IAAA,aAAAV,MAED,WACEyB,KAAKylB,qBAAuBzlB,KAAK2iB,OAAOgM,YACxC3uB,KAAK6iB,OAAOrE,YAAY,CAAE/N,eAAgBzQ,KAAK2iB,OAAOgM,cACtD3uB,KAAKgrB,eAAeze,EAAeiE,KACrC,GAAC,CAAAvR,IAAA,WAAAV,MAED,WACEyB,KAAK+lB,WAAY,EACjB/lB,KAAK8U,OAAOE,OACZhV,KAAKgrB,eAAeze,EAAe6D,MACrC,GAAC,CAAAnR,IAAA,WAAAV,MAED,WACEyB,KAAK8lB,UAAW,EAChB9lB,KAAK0uB,gBACL1uB,KAAK6iB,OAAOrE,YAAY,CAAExR,WAAY,GACxC,GAAC,CAAA/N,IAAA,gBAAAV,MAED,WACEyB,KAAKmtB,0BACL,IAAMyB,EAAUC,YAAY7uB,KAAK2iB,OAAOgM,YAAe3uB,KAAK2iB,OAAO3P,UAAW8b,QAAQ,KACjF9uB,KAAKimB,kBAAkB8I,iBAAmBH,GAAW,MACxD5uB,KAAKimB,kBAAkB8I,iBAAkB,EACzC/uB,KAAKgrB,eAAeze,EAAeoE,2BAEhC3Q,KAAKimB,kBAAkB+I,iBAAmBJ,GAAW,KACxD5uB,KAAKimB,kBAAkB+I,iBAAkB,EACzChvB,KAAKgrB,eAAeze,EAAeqE,2BAEhC5Q,KAAKimB,kBAAkBgJ,iBAAmBL,GAAW,MACxD5uB,KAAKimB,kBAAkBgJ,iBAAkB,EACzCjvB,KAAKgrB,eAAeze,EAAesE,0BAEhC7Q,KAAKimB,kBAAkBiJ,kBAAgC,IAAZN,IAC9C5uB,KAAKimB,kBAAkBiJ,kBAAmB,EAC1ClvB,KAAKgrB,eAAeze,EAAeuE,0BAEvC,GAAC,CAAA7R,IAAA,gBAAAV,MAED,SAAsB0mB,GACfjlB,KAAKkrB,uBACRlrB,KAAKkrB,sBAAuB,GAE9BlrB,KAAKmvB,uBAAuBlK,GACxBjlB,KAAKykB,uBACYzkB,KAAKokB,+BAA+Ba,EAAM1I,QAAQ7Y,MAEnE1D,KAAKmkB,uBAAuB7b,KAAK2c,EAAM1I,QAAQ7Y,KAGrD,GAAC,CAAAzE,IAAA,iCAAAV,MAED,SAAuCmF,GACrC,IAAM0rB,EAAsBpvB,KAAKkkB,oBAAoBxe,QAAO,SAAC0d,GAAK,OAAKA,EAAMxhB,OAAS8B,CAAG,IACnF2rB,EACJD,GAAuBA,EAAoBtwB,OAASswB,EAAoBA,EAAoBtwB,OAAS,GAAK,KAC5G,GAAIuwB,EAAwB,CAC1BrvB,KAAKsvB,oCAAoCD,EAAuBE,WAAaF,EAAuBG,mBACpG,IAAMC,EAAiCzvB,KAAKkkB,oBAAoBte,QAAQypB,GAOxE,OANII,GAA0B,GAAKA,EAAyBzvB,KAAKkkB,oBAAoBplB,SACnFkB,KAAKkkB,oBAAsBlkB,KAAKkkB,oBAAoBwL,OAClDD,EAAyB,EACzBzvB,KAAKkkB,oBAAoBplB,QAAU2wB,EAAyB,MAGzD,CACT,CACE,OAAO,CAEX,GAAC,CAAAxwB,IAAA,sCAAAV,MAED,SAA4C2Q,GAC1ClP,KAAK6iB,OAAOrE,YAAY,CACtBU,6BAA8BR,KAAKiR,IAAI3vB,KAAK6iB,OAAO3D,6BAA8BhQ,IAErF,GAAC,CAAAjQ,IAAA,yBAAAV,MAED,SAA+B0mB,GAC7B,IAAM2K,EAAUlR,KAAKC,MAAMsG,EAAM1I,QAAQsT,aAAe,IACxD7vB,KAAK6iB,OAAOrE,YAAY,CACtBM,0BAA2B9e,KAAK6iB,OAAO/D,0BAA4B8Q,EACnE7Q,2BAA4B/e,KAAK6iB,OAAO9D,2BAA6BkG,EAAM1I,QAAQuT,MACnF7Q,uBAAwBP,KAAKiR,IAAIC,EAAS5vB,KAAK6iB,OAAO5D,yBAE1D,GAAC,CAAAhgB,IAAA,oBAAAV,MAED,SAA0B0mB,GACxB,IAAM2K,EAAUlR,KAAKC,MAAMsG,EAAM1I,QAAQsT,aAAe,IACxD7vB,KAAK6iB,OAAOrE,YAAY,CACtBQ,wBAAyBN,KAAKiR,IAAIC,EAAS5vB,KAAK6iB,OAAO7D,0BAE3D,GAAC,CAAA/f,IAAA,yBAAAV,MAED,SAA+B0mB,GAC7B,IE7pBmCha,EAAKpM,EF6pBlCkxB,EAAa9K,EAAM1I,QAAQyT,KAAKtqB,QAAO,SAAC0d,GAAK,OAAKA,EAAM7kB,OAhpBxC,SAgpBiD6kB,EAAM7kB,MAAMU,GAAiB,IACpG,GAAI8wB,EAAWjxB,OACb,IACE,IAAMsB,EAAO+D,KAAKC,MAAM2rB,EAAWA,EAAWjxB,OAAS,GAAGP,MAAM6B,MAGhE,GAFAJ,KAAK6iB,OAAOrE,YAAY,CAAEpP,eAAgB6gB,OAAO7vB,EAAK8vB,cAElD9vB,EAAK+vB,OAAQ,CACf,IAAkDC,GEpqBrBnlB,EFoqBD7K,EAAK+vB,OAAO1qB,MAAM,KEpqBZ5G,EFoqBgB,EGxqB7C,SAAyBoM,GACtC,GAAIhF,MAAMC,QAAQ+E,GAAM,OAAOA,CACjC,CDGS,CAAeA,IELT,SAA+BtN,EAAGgC,GAC/C,IAAIjC,EAAI,MAAQC,EAAI,KAAO,oBAAsBU,QAAUV,EAAEU,OAAOI,WAAad,EAAE,cACnF,GAAI,MAAQD,EAAG,CACb,IAAIF,EACFI,EACAiB,EACAuK,EACAjK,EAAI,GACJW,GAAI,EACJjC,GAAI,EACN,IACE,GAAIgB,GAAKnB,EAAIA,EAAEU,KAAKT,IAAI0yB,KAAM,IAAM1wB,EAAG,CACrC,GAAI7B,OAAOJ,KAAOA,EAAG,OACrBoC,GAAI,CACN,MAAO,OAASA,GAAKtC,EAAIqB,EAAET,KAAKV,IAAI4yB,QAAUnxB,EAAEmJ,KAAK9K,EAAEe,OAAQY,EAAEL,SAAWa,GAAIG,GAAI,GACtF,CAAE,MAAOnC,GACPE,GAAI,EAAID,EAAID,CACd,CAAE,QACA,IACE,IAAKmC,GAAK,MAAQpC,EAAU,SAAM0L,EAAI1L,EAAU,SAAKI,OAAOsL,KAAOA,GAAI,MACzE,CAAE,QACA,GAAIvL,EAAG,MAAMD,CACf,CACF,CACA,OAAOuB,CACT,CACF,CFrBgC,CAAqB8L,EAAKpM,IGJ3C,SAAqChB,EAAG0yB,GACrD,GAAK1yB,EAAL,CACA,GAAiB,iBAANA,EAAgB,OAAO,EAAiBA,EAAG0yB,GACtD,IAAI3yB,EAAIE,OAAOI,UAAUgL,SAAS9K,KAAKP,GAAGsI,MAAM,GAAI,GAEpD,MADU,WAANvI,GAAkBC,EAAEa,cAAad,EAAIC,EAAEa,YAAYkD,MAC7C,QAANhE,GAAqB,QAANA,EAAoBqI,MAAMuqB,KAAK3yB,GACxC,cAAND,GAAqB,2CAA2C0L,KAAK1L,GAAW,EAAiBC,EAAG0yB,QAAxG,CALc,CAMhB,CHHgE,CAA2BtlB,EAAKpM,IILjF,WACb,MAAM,IAAIL,UAAU,4IACtB,CJGsG,IFmqBrFiyB,EAAQL,EAAA,GAAEpmB,EAAOomB,EAAA,GAExB,OAAQK,GACN,IAAK,kBACHzwB,KAAK6iB,OAAOrE,YAAY,CAAEhP,cAAexF,EAASsF,aAAc,IAChE,MAEF,IAAK,UACHtP,KAAK6iB,OAAOrE,YAAY,CAAEhP,cAAexF,EAASsF,aAAc,IAChE,MAEF,IAAK,mBACHtP,KAAK6iB,OAAOrE,YAAY,CAAEhP,cAAexF,EAASsF,aAAc,IAMtE,CACF,CAAE,MAAO9R,GACPwC,KAAKomB,OAAOjkB,MAAM,oBAAqB3E,EACzC,CAEJ,GAAC,CAAAyB,IAAA,uBAAAV,MAED,SAA6B0mB,GAC3B,IAAMsG,EAAatG,EAAM1I,QAAQmU,mBACjC1wB,KAAK4iB,aAAaiJ,WAAWN,EAAW7c,UAAY8T,GAChDxiB,KAAK2iB,OAAOgO,2BACd3wB,KAAKgrB,eAAeze,EAAe2E,eAEnClR,KAAKgrB,eAAeze,EAAewE,gBAEvC,GAAC,CAAA9R,IAAA,uBAAAV,MAED,SAA6B0mB,GAC3B,IAAM2L,EAAa3L,EAAM1I,QAAQsU,mBACjC7wB,KAAK6iB,OAAOrE,YAAY,CAAEvN,SAAU2f,EAAW3f,WAC/CjR,KAAKgrB,eAAeze,EAAeyE,eACrC,GAAC,CAAA/R,IAAA,sBAAAV,MAED,SAA4B0mB,GAC1B,GAAIjlB,KAAK2lB,WAAY,CACnB,IAAMmL,EAAY7L,EAAM1I,QAAQwU,kBAChC/wB,KAAK6iB,OAAOrE,YAAY,CAAEK,QAASiS,EAAU7f,WAC7CjR,KAAKgrB,eAAeze,EAAe6E,SACrC,CACF,GAAC,CAAAnS,IAAA,WAAAV,MAED,SAAiB0mB,GACXA,EAAM1I,SAAW0I,EAAM1I,QAAQtc,WAAaoiB,EAAQ1e,SAASlD,WAC/DT,KAAK6iB,OAAOrE,YAAY,CACtBnN,UAAW4T,EAAM1I,QAAQpc,KACzBoR,aAAc0T,EAAM1I,QAAQnc,KAC5BqR,cAAezR,KAAK4lB,aAAe3D,EAAc+O,SAAWhxB,KAAK6lB,gBAAkB5D,EAAcgP,YAAchP,EAAciP,aAE/HlxB,KAAKgrB,eAAeze,EAAelL,OACnCrB,KAAKqmB,QAET,GAAC,CAAApnB,IAAA,yBAAAV,MAED,WACOyB,KAAK2iB,OAAOwO,cAAcryB,SAAUkB,KAAK2iB,OAAOwO,cAAcC,SAASpxB,KAAK2iB,OAAO0O,eACtFrxB,KAAKgrB,eAAeze,EAAe4E,MAEvC,GAAC,CAAAlS,IAAA,wBAAAV,MAED,SAA8B0mB,GAC5B,IAAMqM,EAAWrM,EAAM1I,QAAQ+U,SACzBC,EAAWtM,EAAM1I,QAAQgV,SAC3BD,EAAS7kB,OAASzM,KAAK2iB,OAAO6O,MAAMC,YACtCzxB,KAAKgmB,cAAe,EACpBhmB,KAAKumB,qBACLvmB,KAAKgrB,eAAeze,EAAe+D,aAEjCihB,EAAS9kB,OAASzM,KAAK2iB,OAAO6O,MAAMC,YACtCzxB,KAAKgmB,cAAe,EACpBhmB,KAAKwmB,iBAAmBC,KAAK3hB,MAC7B9E,KAAKgrB,eAAeze,EAAe8D,cAEvC,GAAC,CAAApR,IAAA,oBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAeoF,aACrC,GAAC,CAAA1S,IAAA,qBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAeqF,iBACrC,GAAC,CAAA3S,IAAA,kBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAesF,cACrC,GAAC,CAAA5S,IAAA,yBAAAV,MAED,SAA+B0mB,GAC7B,IAAM3F,EAAmB2F,EAAM1I,QAAQ+C,iBACnCA,IACFtf,KAAK6iB,OAAOrE,YAAY,CAAEc,iBAAkBA,IAC5Ctf,KAAKgrB,eAAeze,EAAeuF,eAEvC,GAAC,CAAA7S,IAAA,qBAAAV,MAED,SAA2B0mB,GACzB,IAAM3S,EAAa2S,EAAM1I,QAAQjK,WAC7BA,IACFtS,KAAK6iB,OAAOrE,YAAY,CAAElM,WAAAA,IAC1BtS,KAAKgrB,eAAeze,EAAe8F,kBAEvC,GAAC,CAAApT,IAAA,mBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAe6F,eACrC,GAAC,CAAAnT,IAAA,sBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAe1K,KACrC,GAAC,CAAA5C,IAAA,yBAAAV,MAED,WACEyB,KAAKgrB,eAAeze,EAAe4F,SACrC,GAAC,CAAAlT,IAAA,uBAAAV,MAED,SAA6ByP,GAC3BhO,KAAK6iB,OAAOrE,YAAY,CAAExQ,WAAYA,IACtChO,KAAKgrB,eAAehd,IAAeqQ,EAAWyL,WAAavd,EAAe0F,iBAAmB1F,EAAe2F,gBAC9G,GAAC,CAAAjT,IAAA,iCAAAV,MAED,SAAuCge,GACrCvc,KAAK6iB,OAAOrE,YAAY,CAAEI,kBAAmBrC,EAAQhT,KAAK,MAC5D,GAAC,CAAAtK,IAAA,+BAAAV,MAED,SAAqCsK,IAC9B7I,KAAK6iB,OAAOrC,uBAAyB3X,IAChB,WAApBkC,EAAOlC,IACT7I,KAAK6iB,OAAOrE,YAAY,CAAEa,iBAAkBxW,EAASnG,OACrD1C,KAAKijB,kBAAoBpa,EAAS6oB,mBAElC1xB,KAAK6iB,OAAOrE,YAAY,CAAEa,iBAAkBxW,KAG5C7I,KAAK8U,OAAO6c,aACd3xB,KAAK6iB,OAAOrE,YAAY,CAAEa,iBAAkB,MAEhD,GAAC,CAAApgB,IAAA,qBAAAV,MAED,WACE,IAAMyU,EAAWyP,EAAK2L,4BAA4BpuB,KAAKwmB,kBACvDxmB,KAAK6iB,OAAOrE,YAAY,CACtBxR,WAAYhN,KAAK6iB,OAAO5V,gBAAkB+F,EAC1C9F,cAAelN,KAAK6iB,OAAO1V,mBAAqB6F,GAEpD,GAAC,CAAA/T,IAAA,0BAAAV,MAED,WACE,IAAIqzB,EACA5xB,KAAK2iB,OAAO6L,SACdoD,EAAQ5xB,KAAKsU,OAAO0O,mBAAqBhjB,KAAK6iB,OAAO5V,iBAErD2kB,EAAQ5xB,KAAK2iB,OAAOgM,YAAe3uB,KAAKylB,qBACxCzlB,KAAKylB,qBAAuBzlB,KAAK2iB,OAAOgM,aAE1C3uB,KAAK6iB,OAAOrE,YAAY,CAAE1R,YAAa9M,KAAK6iB,OAAO9V,iBAAmB6kB,GACxE,GAAC,CAAA3yB,IAAA,qBAAAV,MAED,WAAmC,IAAAszB,EAAA,KACjC7xB,KAAK6iB,OAAOvC,iBAAmB,kBAAqBuR,EAAKlP,OAAO0O,YAAY,EAC5ErxB,KAAK6iB,OAAOxV,iBAAmB,kBAAcwkB,EAAKjP,aAAakP,YAAY,EAC3E9xB,KAAK6iB,OAAOtV,kBAAoB,kBAAcskB,EAAKjP,aAAamP,YAAY,EAC5E/xB,KAAK6iB,OAAO3H,aAAe,kBAAc2W,EAAKvd,OAAOvK,SAAS,EAC9D/J,KAAK6iB,OAAO1H,WAAa,kBAAc0W,EAAKvd,OAAOtK,OAAO,EAC1DhK,KAAK6iB,OAAOhC,cAAgB,kBAAcgR,EAAKvd,OAAOwM,UAAU,EAChE9gB,KAAK6iB,OAAOzH,aAAe,kBAAcyW,EAAKvd,OAAOrK,SAAS,EAC9DjK,KAAK6iB,OAAOlB,uBAAyB,kBAAckQ,EAAKvd,OAAOsN,mBAAmB,EAClF5hB,KAAK6iB,OAAO3C,aAAe,kBAAc2R,EAAKvd,OAAO0d,aAAa,EAClEhyB,KAAK6iB,OAAO1C,aAAe,iBAAc,UAAY0R,EAAKvd,OAAO0d,aAAa,EAC9EhyB,KAAK6iB,OAAOpC,MAAQ,kBAAcoR,EAAKvd,OAAOpK,EAAE,EAChDlK,KAAK6iB,OAAOvH,kBAAoB,kBAAcuW,EAAKvd,OAAOoM,cAAc,EACxE1gB,KAAK6iB,OAAOlC,YAAc,kBAAckR,EAAKvd,OAAOsM,QAAQ,EAC5D5gB,KAAK6iB,OAAOjD,YAAc,kBAAciS,EAAKvd,OAAOqL,QAAQ,EAC5D3f,KAAK6iB,OAAO9B,cAAgB,kBAAc8Q,EAAKvd,OAAO0M,UAAU,EAChEhhB,KAAK6iB,OAAO5B,cAAgB,kBAAc4Q,EAAKvd,OAAO4M,UAAU,EAChElhB,KAAK6iB,OAAO1B,cAAgB,kBAAc0Q,EAAKvd,OAAO8M,UAAU,EAChEphB,KAAK6iB,OAAOzC,YAAc,kBAAcyR,EAAKI,cAAc,EAC3DjyB,KAAK6iB,OAAO/C,gBAAkB,kBAAc+R,EAAKK,kBAAkB,EACnElyB,KAAK6iB,OAAO7C,gBAAkB,kBAAc6R,EAAKM,kBAAkB,EACnEnyB,KAAK6iB,OAAOxB,mBAAqB,kBAAcwQ,EAAKvd,OAAOgN,eAAe,EAC1EthB,KAAK6iB,OAAOpH,sBAAwB,kBAAcoW,EAAKvd,OAAO8d,kBAAkB,EAChFpyB,KAAK6iB,OAAOrH,eAAiB,kBAAcqW,EAAKvd,OAAOkN,WAAW,EAClExhB,KAAK6iB,OAAOnH,6BAA+B,kBAAcmW,EAAKvd,OAAO+d,yBAAyB,EAC9FryB,KAAK6iB,OAAOtH,sBAAwB,kBAAcsW,EAAKS,yBAAyBT,EAAKvd,OAAO+G,mBAAmB,EAC/Grb,KAAK6iB,OAAOlH,UAAY,kBAAckW,EAAKvd,OAAOoN,MAAM,CAC1D,GAAC,CAAAziB,IAAA,2BAAAV,MAED,SAAiCg0B,GAC/B,OAAIA,KAAkBhZ,EACbA,EAAmBgZ,IAE1BvyB,KAAKomB,OAAOtjB,KAAK,2CAA6CyvB,GACvD,GAEX,GAAC,CAAAtzB,IAAA,eAAAV,MAED,WACE,GAAIyB,KAAK2iB,OAAO6L,SACd,OAAKyB,OAAO/hB,MAAMlO,KAAK2iB,OAAO3P,WACxBhT,KAAK2iB,OAAO3P,SAAYhT,KAAK2iB,OAAOgM,YAAe,EAKlD,IAFI3uB,KAAK2iB,OAAO3P,SAAYhT,KAAK2iB,OAAOgM,aAIjD,IAAIA,EAAc3uB,KAAK2iB,OAAOgM,YAI9B,MAH4C,iBAAjC3uB,KAAK2iB,OAAO6P,QAAQC,UAAyB9D,IACtDA,GAAe3uB,KAAK2iB,OAAO6P,QAAQC,UAE9BzyB,KAAK6lB,gBAAkB8I,GAAgB3uB,KAAK2iB,OAAO6P,QAAQE,WAAa,EAAI/D,CACrF,GAAC,CAAA1vB,IAAA,mBAAAV,MAED,WACE,OAAIyB,KAAK2iB,OAAOgQ,aAAe3yB,KAAK2iB,OAAOiQ,WAAWC,YAC7C,MAEF7yB,KAAK2iB,OAAOgQ,UACrB,GAAC,CAAA1zB,IAAA,mBAAAV,MAED,WACE,OAAIyB,KAAK2iB,OAAO6L,SACVxuB,KAAK2iB,OAAOmQ,SACe9yB,KAAK2iB,OAAO3P,SAAYhT,KAAK2iB,OAAOgM,aACrC3uB,KAAKsU,OAAOye,aAC/B,MAGJ,OAEF,KACT,GAAC,CAAA9zB,IAAA,YAAAV,MAED,WACE,OAAKyB,KAAKsU,OAAOvK,YAIZ/J,KAAKsU,OAAOtK,UACfhK,KAAKgzB,iBAAiB,YACf,IALPhzB,KAAKgzB,iBAAiB,cACf,EAOX,GAAC,CAAA/zB,IAAA,2BAAAV,MAED,SAAiC0mB,GAC/B,IAAMrY,EAAQkO,EAA0BkB,EAAuBiJ,EAAMxY,MAAOzM,KAAK6iB,OAAQoC,EAAM1I,SAC/F,QAAS3P,EAAMqmB,cAAgBrmB,EAAMsmB,QACvC,GAAC,CAAAj0B,IAAA,mBAAAV,MAED,SAAyB40B,GACvBnzB,KAAKomB,OAAOtjB,KAAK,wDAADvC,OAAyD4yB,GAC3E,GAAC,CAAAl0B,IAAA,wBAAAV,MAMD,SAA8B60B,GAC5BpzB,KAAK6iB,OAAOrE,YAAY,CAEtB5Q,QAAS5N,KAAKqzB,aAAaD,KAAgBpzB,KAAK2iB,OAAOiB,uBAAyB5B,EAAQsR,gBAAkBtR,EAAQuR,aAEtH,GAAC,CAAAt0B,IAAA,eAAAV,MAED,SAAqB60B,GACnB,OAAOI,SAASJ,EAClB,GAAC,CAAAn0B,IAAA,eAAAV,MAED,WAA6B,IACvB60B,EACAK,EAFuBC,EAAA,UAGI,IAApBF,SAASG,QAElBP,EAAa,SACbK,EAA4B,yBAEU,IAAtBD,SAASI,UACzBR,EAAa,WACbK,EAA4B,2BAEc,IAA1BD,SAASK,eACzBT,EAAa,eACbK,EAA4B,0BAI1BL,GAAcK,IAChBzzB,KAAKskB,aAAayC,OAAOyM,SAAUC,GAA2B,kBAAMC,EAAKI,sBAAsBV,EAAW,IAC1GpzB,KAAK8zB,sBAAsBV,GAE/B,IAAC,EAAAn0B,IAAA,UAAAV,MAt4BD,WACE,OAAO,CACT,GAAC,CAAAU,IAAA,8BAAAV,MA+1BD,SAA2CmE,GACzC,OAAQ+jB,KAAK3hB,MAAQpC,GAAQ,GAC/B,KAAC+f,CAAA,CAr5BO,CAASsR,EAAAA,YA0BjBznB,EA1BImW,GAAI,gBAgC2B,CACjCnc,WAAY,GAAF/F,OAAKgiB,EAAMyR,KAAKC,SAAQ,4CAClC5O,cAAenD,EAAeE,KAC9BY,mBAAoB,GACpBD,sBAAuB,GACvBgQ,aAAc,IACdzR,gBAAiB,GACjB8Q,mBAAoB,GACpB5Q,YAAa,GACb6Q,0BAA2B,GAC3BhX,mBAAoB,WO7DxB,IAAMzb,GAAUs0B,QACV90B,GAAO+0B,+BASbC,EAAAA,EAAAA,gBAF2B,OAEA3R,G","sources":["webpack://KalturaPlayer.plugins.kava/webpack/universalModuleDefinition","webpack://KalturaPlayer.plugins.kava/./node_modules/@playkit-js/playkit-js-providers/dist/playkit-analytics-service.js","webpack://KalturaPlayer.plugins.kava/webpack/bootstrap","webpack://KalturaPlayer.plugins.kava/webpack/runtime/define property getters","webpack://KalturaPlayer.plugins.kava/webpack/runtime/hasOwnProperty shorthand","webpack://KalturaPlayer.plugins.kava/webpack/runtime/make namespace object","webpack://KalturaPlayer.plugins.kava/external root \"KalturaPlayer\"","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://KalturaPlayer.plugins.kava/./src/kava-event-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-rate-handler.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-timer.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/event-bucket-name.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/button-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-event-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/page-load-type.ts","webpack://KalturaPlayer.plugins.kava/./src/applications-events.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/kaltura-application.ts","webpack://KalturaPlayer.plugins.kava/./src/application-events-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-model.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/http-method-type.ts","webpack://KalturaPlayer.plugins.kava/./src/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://KalturaPlayer.plugins.kava/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"KalturaPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"KalturaPlayer\"] = factory();\n\telse\n\t\troot[\"KalturaPlayer\"] = root[\"KalturaPlayer\"] || {}, root[\"KalturaPlayer\"][\"plugins\"] = root[\"KalturaPlayer\"][\"plugins\"] || {}, root[\"KalturaPlayer\"][\"plugins\"][\"kava\"] = factory();\n})(self, () => {\nreturn ","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){\"use strict\";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function o(e){var t=function(e,t){if(\"object\"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,\"string\");if(\"object\"!==n(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"===n(t)?t:String(t)}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function a(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{NAME:function(){return P},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return h},RequestBuilder:function(){return l},VERSION:function(){return C}});var u=function(){return{VERSION:\"\",DEBUG:{value:\"\",name:\"\"},ERROR:{value:\"\",name:\"\"},INFO:{value:\"\",name:\"\"},OFF:{value:\"\",name:\"\"},TIME:{value:\"\",name:\"\"},TRACE:{value:\"\",name:\"\"},WARN:{value:\"\",name:\"\"},createDefaultHandler:function(){},debug:function(){},enabledFor:function(){},error:function(){},get:function(){},getLevel:function(){},info:function(){},log:function(){},setHandler:function(){},setLevel:function(){},time:function(){},timeEnd:function(){},trace:function(){},useDefaults:function(){},warn:function(){}}};var c=function(e){return u(e)},f=s((function e(t,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r(this,e),this.severity=t,this.category=n,this.code=o,this.data=i,e._logger.error(\"Category:\".concat(n,\" | Code:\").concat(o,\" |\"),i)}));a(f,\"Severity\",{RECOVERABLE:1,CRITICAL:2}),a(f,\"Category\",{NETWORK:1,SERVICE:2,PROVIDER:3}),a(f,\"Code\",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002}),a(f,\"_logger\",c(\"Error\"));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),a(this,\"retryConfig\",{async:!0,timeout:0,maxAttempts:4}),a(this,\"_attemptCounter\",1),this.headers=t}return s(e,[{key:\"getUrl\",value:function(e){return e+\"/service/\"+this.service+(this.action?\"/action/\"+this.action:\"\")}},{key:\"doHttpRequest\",value:function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t}},{key:\"_createXHR\",value:function(){var e=this,t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState&&200===t.status)try{var r=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(r)}catch(r){e._requestPromise.reject(e._createError(t,f.Code.BAD_SERVER_RESPONSE,{text:t.responseText}))}},t.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(t.timeout=this.retryConfig.timeout);var r=performance.now();t.ontimeout=function(){e._handleError(t,f.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,f.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)}},{key:\"_getResponseHeaders\",value:function(e){return e.getAllResponseHeaders().split(\"\\n\").filter((function(e){return 0===e.toLowerCase().indexOf(\"x-\")}))}},{key:\"_handleError\",value:function(e,t,r){var n=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(n);this._attemptCounter++,this._createXHR()}},{key:\"_createError\",value:function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new f(f.Severity.CRITICAL,f.Category.NETWORK,t,r)}}]),e}(),p=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,o){(\"object\"===n(t)||Array.isArray(t)&&t.length>0)&&(r[o]=e(t))})):\"object\"===n(t)?(r=Object.assign({},t),Object.keys(r).forEach((function(t){(\"object\"===n(r[t])||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r},y={serviceUrl:\"https://cdnapisec.kaltura.com/api_v3\",cdnUrl:\"https://cdnapisec.kaltura.com\",serviceParams:{apiVersion:\"3.3.0\",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1},h=function(){function e(){r(this,e)}return s(e,null,[{key:\"set\",value:function(e){e&&Object.assign(y,e)}},{key:\"get\",value:function(){return p(y)}}]),e}();function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&v(e,t)}function m(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function g(e,t){if(t&&(\"object\"===n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return m(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var R=s((function e(t){r(this,e),a(this,\"hasError\",!1),\"KalturaAPIException\"===t.objectType?(this.hasError=!0,this.error=new O(t.code,t.message)):t.error&&\"KalturaAPIException\"===t.error.objectType?(this.hasError=!0,this.error=new O(t.error.code,t.error.message)):this.data=t})),O=s((function e(t,n){r(this,e),this.code=t,this.message=n}));var b=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){var e;r(this,i);for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return a(m(e=o.call.apply(o,[this].concat(n))),\"requests\",[]),e}return s(i,[{key:\"add\",value:function(e){this.requests.push(e);var t={},r={service:e.service,action:e.action};return Object.assign(t,a({},this.requests.length,Object.assign(r,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:\"execute\",value:function(e){var t=this;return new Promise((function(r,n){try{t.params=JSON.stringify(t.params)}catch(e){i._logger.error(\"\".concat(e.message)),n(new f(f.Severity.CRITICAL,f.Category.PROVIDER,f.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(o){var i=new _(o,e);i.success?r({headers:t.responseHeaders,response:i}):n(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:i.results}))}),(function(e){n(e)}))}))}}]),i}(l);a(b,\"_logger\",c(\"MultiRequestBuilder\"));var _=s((function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r(this,e),a(this,\"results\",[]);var o=t.result?t.result:t,i=(Array.isArray(o)?o:[o]).map((function(e){return new R(e)})),s=i.filter((function(e){return e.hasError}));s.forEach((function(t){e._logger.error(\"Service returned an error with error code: \".concat(t.error.code,\" and message: \").concat(t.error.message,\".\"))})),this.results=i,n&&s.length||s.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));a(_,\"_logger\",c(\"MultiRequestResult\"));var T=function(e){var t=[],r=/\\[\\]$/,o=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},i=function(e,r){r=\"function\"==typeof r?r():null==r?\"\":r,t[t.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(r)};return function e(s,a){var u,c,f;if(s)if(o(a))for(u=0,c=a.length;u<c;u++)r.test(s)?i(s,a[u]):e(s+\":\"+(\"object\"===n(a[u])?u:\"\"),a[u]);else if(a&&\"[object Object]\"===String(a))for(f in a)e(s+\":\"+f,a[f]);else i(s,a);else if(o(a))for(u=0,c=a.length;u<c;u++)i(a[u].name,a[u].value);else for(f in a)e(f,a[f]);return t}(\"\",e).join(\"&\").replace(/%20/g,\"+\")};var S=\"analytics\",A=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){return r(this,i),o.apply(this,arguments)}return s(i,null,[{key:\"trackEvent\",value:function(e,t,r){return\"POST\"===r?i._trackEventByPOST(e,t):i._trackEventByGET(e,t)}},{key:\"_trackEventByGET\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new l;return o.service=S,o.action=\"trackEvent\",o.method=\"GET\",o.retryConfig.maxAttempts=1,o.tag=\"analytics-trackEvent\",o.params=n,o.url=e+\"?service=\"+o.service+\"&action=\"+o.action+\"&\"+T(o.params),o}},{key:\"_trackEventByPOST\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new Map;o.set(\"Content-Type\",\"application/json\");var i=new l(o),s={eventType:n.eventType,partnerId:n.partnerId,entryId:n.entryId,sessionId:n.sessionId};return[\"eventType\",\"partnerId\",\"entryId\",\"sessionId\"].forEach((function(e){return delete n[e]})),i.service=S,i.action=\"trackEvent\",i.method=\"POST\",i.retryConfig.maxAttempts=1,i.tag=\"analytics-trackEvent\",i.params=JSON.stringify(n),i.url=e+\"?service=\"+i.service+\"&action=\"+i.action+\"&\"+T(s),i}}]),i}(function(){function e(){r(this,e)}return s(e,null,[{key:\"getMultiRequest\",value:function(e,t,r){var n=h.get(),o=n.serviceParams;Object.assign(o,{ks:t,clientTag:\"html5:v\"+e}),r&&Object.assign(o,{partnerId:r});var i=new Map;i.set(\"Content-Type\",\"application/json\");var s=new b(i);return s.method=\"POST\",s.service=\"multirequest\",s.url=s.getUrl(n.serviceUrl),s.params=o,s}}]),e}()),P=\"@playkit-js/playkit-js-providers-analytics-service\",C=\"2.40.4\";return t}()}));\n//# sourceMappingURL=playkit-analytics-service.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = KalturaPlayer;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\n\n/**\n * @name KavaEventType\n * @enum\n */\nexport const KavaEventModel = {\n /**\n * @type {string} VIEW\n * @memberof KavaEventType\n */\n VIEW: {\n type: 'VIEW',\n index: 99,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n playTimeSum: model.getPlayTimeSum(),\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n averageBitrate: model.getAverageBitrate(),\n audioLanguage: model.getLanguage(),\n soundMode: model.getSoundMode(),\n tabMode: model.getTabMode(),\n viewabilityMode: model.getViewabilityMode(),\n screenMode: model.getScreenMode()\n };\n\n if (!isNaN(model.getForwardBufferHealth())) {\n eventModel.forwardBufferHealth = model.getForwardBufferHealth();\n }\n if (model.getMaxManifestDownloadTime() > 0) {\n eventModel.manifestDownloadTime = model.getMaxManifestDownloadTime();\n }\n if (model.getSegmentDownloadTime() > 0) {\n eventModel.segmentDownloadTime = model.getSegmentDownloadTime();\n }\n if (model.getBandwidth()) {\n eventModel.bandwidth = model.getBandwidth();\n }\n if (model.getDroppedFramesRatio() !== null) {\n eventModel.droppedFramesRatio = model.getDroppedFramesRatio();\n }\n\n if (!isNaN(model.getTargetBuffer())) {\n eventModel.targetBuffer = model.getTargetBuffer();\n }\n\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n\n if (model.getNetworkConnectionOverhead()) {\n eventModel.networkConnectionOverhead = model.getNetworkConnectionOverhead();\n }\n if (!isNaN(model.getFlavorParamsId())) {\n eventModel.flavorParamsId = model.getFlavorParamsId();\n }\n if (!isNaN(model.getPlaybackMode())) {\n eventModel.playbackMode = model.getPlaybackMode();\n }\n if (model.getSourceEntryId() !== null) {\n eventModel.sourceEntryId = model.getSourceEntryId();\n }\n\n return eventModel;\n }\n },\n /**\n * @type {string} IMPRESSION\n * @memberof KavaEventType\n */\n IMPRESSION: {\n type: 'IMPRESSION',\n index: 1,\n getEventModel: (model: KavaModel): any => {\n const eventModel = {} as KavaModel;\n if (model.getPlayerJSLoadTime() !== null) {\n eventModel.playerJSLoadTime = model.getPlayerJSLoadTime();\n }\n eventModel['loadedPlugins'] = model.getRegisteredPlugins();\n return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed()\n };\n\n if (model.getCaption()) {\n commonModel.caption = model.getCaption();\n }\n if (model.getSessionStartTime()) {\n commonModel.sessionStartTime = model.getSessionStartTime();\n }\n if (model.getKS()) {\n commonModel.ks = model.getKS();\n }\n if (model.getVirtualEventId()) {\n commonModel.virtualEventId = model.getVirtualEventId();\n }\n if (model.getUIConfId()) {\n commonModel.uiConfId = model.getUIConfId();\n }\n if (model.getPlaylistId()) {\n commonModel.playlistId = model.getPlaylistId();\n }\n if (model.getCustomVar1()) {\n commonModel.customVar1 = model.getCustomVar1();\n }\n if (model.getCustomVar2()) {\n commonModel.customVar2 = model.getCustomVar2();\n }\n if (model.getCustomVar3()) {\n commonModel.customVar3 = model.getCustomVar3();\n }\n if (model.getPlaybackContext()) {\n commonModel.playbackContext = model.getPlaybackContext();\n }\n if (model.getApplicationVersion()) {\n commonModel.applicationVer = model.getApplicationVersion();\n }\n if (model.getApplication()) {\n commonModel.application = model.getApplication();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel.kalturaApplicationVer = model.getKalturaApplicationVersion();\n }\n if (model.getKalturaApplication()) {\n commonModel.kalturaApplication = model.getKalturaApplication();\n }\n if (model.getUserId()) {\n commonModel.userId = model.getUserId();\n }\n if (model.getPersistentSessionId()) {\n commonModel.persistentSessionId = model.getPersistentSessionId();\n }\n const eventModel = eventObj.getEventModel(model);\n return Object.assign(eventModel, commonModel);\n}\n","/**\n * Manage the video rates for the KAVA plugin.\n * @private\n * @class KavaRateHandler\n */\nclass KavaRateHandler {\n private _rates: any[] = [];\n\n constructor() {\n this._rates = [];\n }\n\n /**\n * Sets the video rates.\n * @param {Array<number>} rates - The video rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setRates(rates: Array<number>): void {\n this._rates = [];\n rates.forEach((rate) => {\n this._rates.push({\n rate: rate,\n active: false,\n duration: 0\n });\n });\n }\n\n /**\n * Sets the current rate.\n * @param {number} rate - The current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setCurrent(rate: number): void {\n this._rates.forEach((o) => (o.active = false));\n const obj = this._rates.find((o) => o.rate === rate);\n if (obj) {\n obj.active = true;\n }\n }\n\n /**\n * Gets the current rate.\n * @returns {number} - The current rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getCurrent(): number {\n const current = this._rates.find((o) => o.active);\n return current ? current.rate : -1;\n }\n\n /**\n * Increases the duration of the current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public countCurrent(): void {\n const current = this._rates.find((o) => o.active);\n if (current) {\n current.duration++;\n }\n }\n\n /**\n * Gets the average rate.\n * @returns {number} - The average rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getAverage(): number {\n let totalDuration = 0;\n let sum = 0;\n this._rates.forEach((o) => {\n sum += o.rate * o.duration;\n totalDuration += o.duration;\n });\n return totalDuration ? sum / totalDuration : 0;\n }\n\n /**\n * Resets the duration of all rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public reset(): void {\n this._rates.forEach((o) => (o.duration = 0));\n }\n\n /**\n * Destroys the class.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public destroy(): void {\n this._rates = [];\n }\n}\n\nexport { KavaRateHandler };\n","import { core } from '@playkit-js/kaltura-player-js';\nconst { FakeEvent, FakeEventTarget } = core;\n\nconst SECOND: number = 1000;\n\n/**\n * Create service worker with timer.\n * @private\n * @class WorkerTimer\n * @param {void} callback - callback that triggers on timer tick.\n * @param {number} interval - interval in ms.\n */\nclass WorkerTimer {\n private worker: Worker | null = null;\n constructor(callback, interval) {\n const blob = new Blob([`setInterval(() => postMessage(0), ${interval});`]);\n const workerScript = URL.createObjectURL(blob);\n this.worker = new Worker(workerScript);\n this.worker.onmessage = callback;\n }\n\n /**\n * Terminate service worker.\n * @returns {void}\n * @memberof WorkerTimer\n * @instance\n */\n public stop(): void {\n if (this.worker) {\n this.worker.terminate();\n }\n }\n}\n\n/**\n * Mange a timer and dispatches related events.\n * @private\n * @class KavaTimer\n * @param {Object} config - The timer config.\n */\nclass KavaTimer extends FakeEventTarget {\n private _resetCounter!: number;\n private _eventCounter!: number;\n private _timer?: WorkerTimer | null;\n private _stopped!: boolean;\n private _config: any;\n\n public static Event = {\n TICK: 'tick',\n RESET: 'reset',\n REPORT: 'report'\n };\n\n constructor(config: any) {\n super();\n this._config = config;\n }\n\n /**\n * Starts the timer interval.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public start(): void {\n this._terminateTimer();\n this._stopped = false;\n this._resetCounter = 0;\n this._eventCounter = 0;\n this._timer = new WorkerTimer(() => this._monitor(), SECOND);\n }\n\n /**\n * Continues the timer to dispatch REPORT.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public resume(): void {\n this._stopped = false;\n this._resetCounter = 0;\n }\n\n /**\n * Stops the timer from dispatch REPORT and starts the timer to dispatch RESET.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public stop(): void {\n this._stopped = true;\n }\n\n /**\n * @returns {boolean} - Whether the timer is stopped.\n * @memberof KavaTimer\n * @instance\n */\n public isStopped(): boolean {\n return this._stopped;\n }\n\n /**\n * Destroys the timer.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public destroy(): void {\n this._terminateTimer();\n }\n\n private _terminateTimer(): void {\n if (this._timer) {\n this._timer.stop();\n this._timer = null;\n }\n }\n\n private _monitor(): void {\n if (this._stopped) {\n if (this._resetCounter === this._config.resetCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.RESET));\n this._resetCounter = 0;\n this._eventCounter = 0;\n }\n this._resetCounter++;\n } else {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.TICK));\n if (this._eventCounter === this._config.eventCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.REPORT));\n this._eventCounter = 0;\n }\n this._eventCounter++;\n }\n }\n}\n\nexport { KavaTimer };\n","export enum EventBucketName {\n ApplicationEvents = 'ApplicationEvents',\n PlayerEvents = 'PlayerEvents'\n}\n","// EventVar 1 in kava server\n\nexport enum ButtonType {\n Create = 1,\n Filter = 2,\n Search = 3,\n Export = 4,\n Navigate = 5,\n Schedule = 6,\n Insert = 7,\n Choose = 8,\n Launch = 9,\n Open = 10,\n Send = 11,\n Invite = 12,\n Close = 13,\n Save = 14,\n Expand = 15,\n Collapse = 16,\n Edit = 17,\n Delete = 18,\n Browse = 19,\n Load = 20,\n Add = 21,\n Menu = 22,\n Register = 23,\n Login = 24,\n Link = 25,\n Toggle = 26,\n Thumbnail = 27,\n Download = 28,\n Share = 29\n}\n","export const ApplicationEventType = {\n BUTTON_CLICKED: 10002,\n PAGE_LOAD: 10003\n};\n","// // EventVar 1 in kava server\nexport enum PageLoadType {\n View = 1,\n Create = 2,\n Edit = 3,\n Participate = 4,\n List = 5,\n Analytics = 6,\n Admin = 7,\n Error = 8,\n Login = 9,\n Registration = 10,\n Custom = 11\n}\n","const playkitUIEventsNamespace = 'playkit-ui';\nexport const PlaykitUIEvents = {\n USER_CLICKED_LOGO: `${playkitUIEventsNamespace}-userclickedlogo`,\n USER_SELECTED_CAPTIONS_SIZE: `${playkitUIEventsNamespace}-userselectedcaptionssize`,\n USER_SELECTED_CAPTIONS_ALIGNMENT: `${playkitUIEventsNamespace}-userselectedcaptionsalignment`,\n USER_SELECTED_CAPTIONS_FONT_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsfontcolor`,\n USER_SELECTED_CAPTIONS_FONT_FAMILY: `${playkitUIEventsNamespace}-userselectedcaptionsfontfamily`,\n USER_SELECTED_CAPTIONS_FONT_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionsfontstyle`,\n USER_SELECTED_CAPTIONS_FONT_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsfontopacity`,\n USER_SELECTED_CAPTIONS_BACKGROUND_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundcolor`,\n USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundopacity`\n};\n\nexport const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n TRANSCRIPT_POPOUT_OPEN: 'transcript_popout_open',\n TRANSCRIPT_POPOUT_CLOSE: 'transcript_popout_close',\n TRANSCRIPT_POPOUT_DRAG: 'transcript_popout_drag',\n TRANSCRIPT_POPOUT_RESIZE: 'transcript_popout_resize'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout'\n};\nexport const ShareEvents = {\n SHARE_CLICKED: 'share_clicked',\n SHARE_CLOSE: 'share_close',\n SHARE_NETWORK: 'share_network',\n SHARE_COPY: 'share_copy'\n};\n\nexport const BumperEvents = {\n BUMPER_CLICKED: 'bumper_clicked'\n};\nexport const SkipEvents = {\n SKIP_BUTTON_CLICK: 'skip_button_click',\n SKIP_BUTTON_DISPLAYED: 'skip_button_displayed'\n};\nexport const PlaylistEvents = {\n PLAYLIST_OPEN: 'playlist_open',\n PLAYLIST_CLOSE: 'playlist_close'\n};\n\nexport const RelatedEvents = {\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close',\n RELATED_ENTRY_SELECTED: 'related_entry_selected',\n RELATED_ENTRY_AUTO_PLAYED: 'related_entry_auto_played',\n RELATED_GRID_DISPLAYED: 'related_grid_displayed'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click'\n};\n\nexport const HotspotsEvents = {\n HOTSPOT_CLICK: 'hotspot_click',\n HOTSPOT_DISPLAYED: 'hotspot_displayed'\n};\n\nexport const IvqEventTypes = {\n QUIZ_STARTED: 'QuizStarted',\n QUIZ_SKIPPED: 'QuizSkipped',\n QUIZ_SEEK: 'QuizSeek',\n QUESTION_ANSWERED: 'QuestionAnswered',\n QUIZ_SUBMITTED: 'QuizSubmitted',\n QUIZ_RETAKE: 'QuizRetake',\n QUIZ_QUESTION_CHANGED: 'QuizQuestionChanged'\n};\n\nexport const DetectAdBlockEvents = {\n DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN: 'detect_ad_block_partial_overlay_shown',\n DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN: 'detect_ad_block_full_overlay_shown',\n DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED: 'detect_ad_block_secondary_button_clicked',\n DETECT_AD_BLOCK_X_BUTTON_CLICKED: 'detect_ad_block_x_button_clicked',\n DETECT_AD_BLOCK_AD_BLOCKER_DISABLED: 'detect_ad_block_ad_blocker_disabled',\n DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED: 'detect_ad_block_ad_blocker_not_disabled'\n};\n\nexport const PluginsEvents = {\n ...NavigationEvents,\n ...DownloadEvents,\n ...TranscriptEvents,\n ...DualscreenEvents,\n ...ShareEvents,\n ...BumperEvents,\n ...SkipEvents,\n ...PlaylistEvents,\n ...RelatedEvents,\n ...CallToActionEvents,\n ...HotspotsEvents,\n ...IvqEventTypes,\n ...DetectAdBlockEvents\n};\n","type ApplicationType = { [app: string]: string };\n\nconst KalturaApplication: ApplicationType = {\n KMC: '0',\n KMS: '1',\n KAF: '2',\n PITCH: '3',\n KMS_GO: '4',\n WEBCASTING: '5',\n PERSONAL_CAPTURE: '6',\n KME: '7',\n KME_MOBILE_APP: '8',\n PATH: '9',\n LECTURE_CAPTURE: '10',\n EP: '11',\n CHAT_AND_COLLABORATION: '12',\n ANALYTICS: '13',\n EXPRESS_CAPTURE: '14',\n KPF: '15',\n KAF_GO: '16',\n SITES: '17',\n STUDIO: '18',\n CAPTIONS_EDITOR: '19',\n CHECKLIST: '20',\n PLAYER: '21'\n};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PlaykitUIEvents, PluginsEvents } from './applications-events';\nimport { KalturaApplication } from './enums/kaltura-application';\n\nexport function getApplicationEventsModel(eventObj: KavaEvent, model: KavaModel, innerEventPayload: any): any {\n const commonModel = {\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n kalturaApplication: KalturaApplication.PLAYER\n };\n\n if (model.getVirtualEventId()) {\n commonModel['virtualEventId'] = model.getVirtualEventId();\n }\n if (model.getKalturaApplication()) {\n commonModel['application'] = model.getApplication();\n }\n if (model.getApplicationVersion()) {\n commonModel['applicationVer'] = model.getApplicationVersion();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel['kalturaApplicationVer'] = model.getKalturaApplicationVersion();\n }\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n\n const eventModel = eventObj.getEventModel(innerEventPayload);\n const namedEventModel = {};\n const { eventType, eventVar1, eventVar2, eventVar3 } = eventModel;\n namedEventModel['eventType'] = eventType;\n\n if (eventModel.eventType === ApplicationEventType.BUTTON_CLICKED) {\n namedEventModel['buttonName'] = eventVar1;\n namedEventModel['buttonType'] = eventVar2;\n namedEventModel['buttonValue'] = eventVar3;\n } else if (eventModel.eventType === ApplicationEventType.PAGE_LOAD) {\n namedEventModel['pageName'] = eventVar1;\n namedEventModel['pageType'] = eventVar2;\n namedEventModel['pageValue'] = eventVar3;\n }\n return Object.assign(namedEventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: ({ layout }: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: layout !== 'Hidden' ? 'Dual__screen_change_layout' : '',\n eventVar2: ButtonType.Choose,\n eventVar3: layout\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_open',\n eventVar2: ButtonType.Open,\n eventVar3: ''\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption']\n };\n let eventVar1: string = '';\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n eventVar1 = 'Share_embed_X_click';\n break;\n case 'facebook':\n eventVar1 = 'Share_embed_facebook_click';\n break;\n case 'email':\n eventVar1 = 'Share_embed_email_click';\n break;\n case 'linkedin':\n eventVar1 = 'Share_embed_linkedin_click';\n break;\n case 'embed':\n eventVar1 = 'Share_embed_embed_click';\n break;\n }\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_copy_click',\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption']\n })\n },\n [PluginsEvents.DOWNLOAD_ITEM_CLICKED]: {\n type: 'DOWNLOAD_ITEM_CLICKED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download\n };\n const { assetType, fileType, description } = payload;\n\n let eventVar1: string;\n let eventVar3: string;\n\n switch (assetType) {\n case 'Media':\n eventVar1 = 'Download_video_download';\n eventVar3 = description;\n break;\n case 'Captions':\n eventVar1 = 'Download_captions_download';\n eventVar3 = description;\n break;\n case 'Attachments':\n eventVar1 = 'Download_attachment_download';\n eventVar3 = fileType;\n break;\n default:\n eventVar1 = '';\n eventVar3 = '';\n }\n return { ...model, eventVar1, eventVar3 };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_open',\n eventVar2: ButtonType.Open,\n eventVar3: ''\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Bumper_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['clickThroughUrl']\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Navigation_open_auto' : 'Navigation_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Navigation_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED\n };\n\n let eventVar1: string = '';\n let eventVar2: ButtonType = ButtonType.Open;\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n const eventVar3 = searchQuery;\n switch (activeTab) {\n case 'All':\n const isItSearch = searchQuery.length > 0 || availableTabs.length === 0;\n eventVar1 = isItSearch ? 'Navigation_search' : 'Navigation_all_tab';\n eventVar2 = isItSearch ? ButtonType.Search : ButtonType.Open;\n break;\n case 'Chapter':\n eventVar1 = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, eventVar1, eventVar2, eventVar3 };\n }\n },\n [PluginsEvents.NAVIGATION_ITEM_CLICK]: {\n type: 'NAVIGATION_ITEM_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar3: ''\n };\n\n let eventVar1: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n eventVar1 = 'Navigation_chapter_click';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.NAVIGATION_EXPANDABLE_TEXT_CLICK]: {\n type: 'NAVIGATION_EXPANDABLE_TEXT_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: ''\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let eventVar1: string = '';\n const eventVar2 = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n eventVar1 = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n eventVar1 = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n eventVar1 = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, eventVar1, eventVar2 };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Transcript_open_auto' : 'Transcript_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_download',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_print',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_search',\n eventVar2: ButtonType.Search,\n eventVar3: payload.search\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_navigate_result',\n eventVar2: ButtonType.Navigate,\n eventVar3: payload.index\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_OPEN]: {\n type: 'TRANSCRIPT_POPOUT_OPEN',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_open',\n eventVar2: ButtonType.Expand,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_CLOSE]: {\n type: 'TRANSCRIPT_POPOUT_CLOSE',\n getEventModel: (payload: { type: string }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_close',\n eventVar2: ButtonType.Collapse,\n eventVar3: payload.type\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_DRAG]: {\n type: 'TRANSCRIPT_POPOUT_DRAG',\n getEventModel: (payload: { position: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_drag',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.position.x},${payload.position.y}`\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_RESIZE]: {\n type: 'TRANSCRIPT_POPOUT_RESIZE',\n getEventModel: (payload: { size: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_resize',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.size.x},${payload.size.y}`\n })\n },\n [PluginsEvents.PLAYLIST_OPEN]: {\n type: 'PLAYLIST_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: payload['position']\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Playlist_side_panel_close_manual',\n eventVar2: ButtonType.Close,\n eventVar3: payload['position']\n })\n },\n [PluginsEvents.SKIP_BUTTON_CLICK]: {\n type: 'SKIP_BUTTON_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_click';\n if (mode === 'outro') eventVar1 = 'Skip_outro_click';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SKIP_BUTTON_DISPLAYED]: {\n type: 'SKIP_BUTTON_DISPLAYED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar3: ''\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_displayed';\n if (mode === 'outro') eventVar1 = 'Skip_outro_displayed';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_open_manual',\n eventVar2: ButtonType.Open,\n eventVar3: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_ENTRY_SELECTED]: {\n type: 'RELATED_ENTRY_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_entry_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_ENTRY_AUTO_PLAYED]: {\n type: 'RELATED_ENTRY_AUTO_PLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_entry_auto_continue',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_GRID_DISPLAYED]: {\n type: 'RELATED_GRID_DISPLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_open_auto',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.CALL_TO_ACTION_BUTTON_CLICK]: {\n type: 'CALL_TO_ACTION_BUTTON_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: payload['label'],\n eventVar2: ButtonType.Link,\n eventVar1: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click'\n })\n },\n [PluginsEvents.HOTSPOT_DISPLAYED]: {\n type: 'HOTSPOT_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Hotspot_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload['label']\n })\n },\n [PluginsEvents.HOTSPOT_CLICK]: {\n type: 'HOTSPOT_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Hotspot_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['label']\n })\n },\n [PluginsEvents.QUIZ_STARTED]: {\n type: 'QUIZ_STARTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_start',\n eventVar2: ButtonType.Load,\n eventVar3: ''\n })\n },\n [PluginsEvents.QUIZ_SUBMITTED]: {\n type: 'QUIZ_SUBMITTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_submit',\n eventVar2: ButtonType.Send,\n eventVar3: ''\n })\n },\n [PluginsEvents.QUIZ_SKIPPED]: {\n type: 'QUIZ_SKIPPED',\n getEventModel: ({ questionIndex }: { questionIndex: number }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_skip_question',\n eventVar2: ButtonType.Navigate,\n eventVar3: questionIndex\n })\n },\n [PluginsEvents.QUIZ_SEEK]: {\n type: 'QUIZ_SEEK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_nav_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n })\n },\n [PlaykitUIEvents.USER_CLICKED_LOGO]: {\n type: 'USER_CLICKED_LOGO',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Logo_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['logoUrl']\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_SIZE]: {\n type: 'USER_SELECTED_CAPTIONS_SIZE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_size',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_ALIGNMENT]: {\n type: 'USER_SELECTED_CAPTIONS_ALIGNMENT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_alignment',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_COLOR',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_FAMILY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_FAMILY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_family',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_STYLE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_style',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_OPACITY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_COLOR',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Allow_playback'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Block_playback'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'secondary_button'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_X_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_X_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'x_button'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'disabled'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'still_detected'\n })\n }\n};\n","import { getEventModel } from './kava-event-model';\nimport { KavaEvent } from './types';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { getApplicationEventsModel } from './application-events-model';\n\n/**\n * The KAVA model that stores data.\n * @class KavaModel\n * @private\n * @param {?Object} - Initial model.\n */\nclass KavaModel {\n private sessionStartTime!: number;\n private eventIndex!: number;\n private errorPosition!: ErrorPosition;\n private playTimeSum!: number;\n private bufferTime!: number;\n private bufferTimeSum!: number;\n private language!: string;\n private caption!: string;\n private errorCode!: number;\n private errorDetails: any;\n private joinTime!: number;\n private canPlayTime!: number;\n private targetPosition!: number;\n private targetBuffer!: number;\n private registeredPlugins!: string;\n public totalSegmentsDownloadTime: number = 0;\n public totalSegmentsDownloadBytes: number = 0;\n public maxSegmentDownloadTime: number = 0;\n public maxManifestDownloadTime: number = 0;\n private forwardBufferHealth!: number;\n private droppedFramesRatio?: number | null = null;\n private soundMode!: SoundMode;\n private viewabilityMode!: ViewabilityMode;\n private tabMode!: TabMode;\n private screenMode: ScreenMode = ScreenMode.NOT_IN_FULLSCREEN;\n public maxNetworkConnectionOverhead: number = 0;\n private flavorParamsId: number = NaN;\n private networkConnectionType!: string;\n public playerJSLoadTime?: number | null = null;\n private shareNetworkName: string = '';\n private reportType: number = NaN;\n private playbackMode: number = NaN;\n private sourceEntryId: string | null = null;\n\n public getActualBitrate!: () => any;\n public getPlaybackSpeed!: () => any;\n public getAverageBitrate!: () => any;\n public getPartnerId!: () => any;\n public getEntryId!: () => any;\n public getPlaylistId!: () => any;\n public getSessionId!: () => any;\n public getClientVer!: () => any;\n public getClientTag!: () => any;\n public getKS!: () => any;\n public getVirtualEventId!: () => any;\n public getUIConfId!: () => any;\n public getReferrer!: () => any;\n public getCustomVar1!: () => any;\n public getCustomVar2!: () => any;\n public getCustomVar3!: () => any;\n public getPosition!: () => any;\n public getDeliveryType!: () => any;\n public getPlaybackType!: () => any;\n public getPlaybackContext!: () => any;\n public getApplicationVersion!: () => any;\n public getApplication!: () => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\n\n constructor(model?: object) {\n if (model) {\n this.updateModel(model);\n }\n }\n\n /**\n * Gets the total play time.\n * @returns {number} - The play time sum.\n * @memberof KavaModel\n * @instance\n */\n public getPlayTimeSum(): number {\n return this.playTimeSum;\n }\n\n public getCanPlayTime(): number {\n return this.canPlayTime;\n }\n\n /**\n * Gets the buffer time.\n * @returns {number} - The buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTime(): number {\n return this.bufferTime;\n }\n\n /**\n * Gets the total buffer time.\n * @returns {number} - The total buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTimeSum(): number {\n return this.bufferTimeSum;\n }\n\n /**\n * Gets the player bundle js load duration time\n * @returns {number} - The player js load duration time\n * @memberof KavaModel\n * @instance\n */\n public getPlayerJSLoadTime(): number | null {\n if (this.playerJSLoadTime) {\n return Math.round(this.playerJSLoadTime * 1000) / 1000;\n } else {\n return null;\n }\n }\n\n /**\n * Gets the join time.\n * @returns {number} - The join time.\n * @memberof KavaModel\n * @instance\n */\n public getJoinTime(): number {\n return this.joinTime;\n }\n\n /**\n * Gets a target position\n * @returns {number} - The target position.\n * @memberof KavaModel\n * @instance\n */\n public getTargetPosition(): number {\n return this.targetPosition;\n }\n\n /**\n * Gets the target buffer\n * @returns {number} - The target buffer in seconds.\n * @memberof KavaModel\n * @instance\n */\n public getTargetBuffer(): number {\n return this.targetBuffer;\n }\n\n /**\n * Gets registered plugins list\n * @returns {string} - The current list of loaded plugins\n * @memberof KavaModel\n * @instance\n */\n public getRegisteredPlugins(): string {\n return this.registeredPlugins;\n }\n\n /**\n * Gets an audio language.\n * @returns {string} - The audio language.\n * @memberof KavaModel\n * @instance\n */\n public getLanguage(): string {\n return this.language;\n }\n\n /**\n * Gets a caption language.\n * @returns {string} - The caption language.\n * @memberof KavaModel\n * @instance\n */\n public getCaption(): string {\n return this.caption;\n }\n\n /**\n * Gets the average bandwidth since last report.\n * @returns {number} - The bandwidth in kbps\n * @memberof KavaModel\n * @instance\n */\n public getBandwidth(): number {\n return this.totalSegmentsDownloadTime > 0 ? Math.round((this.totalSegmentsDownloadBytes * 8) / this.totalSegmentsDownloadTime) / 1000 : 0;\n }\n\n /**\n * Returns the longest manifest download time in seconds\n * @returns {number} - manifest max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getMaxManifestDownloadTime(): number {\n return this.maxManifestDownloadTime;\n }\n\n /**\n * Returns the longest segment download time in seconds\n * @returns {number} - segment max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getSegmentDownloadTime(): number {\n return this.maxSegmentDownloadTime;\n }\n\n /**\n * Gets the forward buffer health ratio.\n * @returns {number} - the ratio between the available buffer and the target buffer\n * @memberof KavaModel\n * @instance\n */\n public getForwardBufferHealth(): number {\n return this.forwardBufferHealth;\n }\n /**\n * Gets the dropped frames ratio since last view event.\n * @returns {number} - dropped frames ratio since last view event\n * @memberof KavaModel\n * @instance\n */\n public getDroppedFramesRatio(): number | null | undefined {\n return this.droppedFramesRatio;\n }\n\n /**\n * Gets the sound mode of the player.\n * @returns {SoundMode} the state of the sound (muted ot not)\n * @memberof KavaModel\n * @instance\n */\n public getSoundMode(): SoundMode {\n return this.soundMode;\n }\n\n /**\n * Gets the viewability mode of the player.\n * @returns {ViewabilityMode} the state of the view (in-view ot not)\n * @memberof KavaModel\n * @instance\n */\n public getViewabilityMode(): ViewabilityMode {\n return this.viewabilityMode;\n }\n\n /**\n * Gets the screen mode of the browser player.\n * @returns {number} the state of the full screen if is on or not.\n * @memberof KavaModel\n * @instance\n */\n public getScreenMode(): ScreenMode {\n return this.screenMode;\n }\n\n /**\n * Gets the Tab mode of the browser.\n * @returns {TabMode} the state of the tab (focused or not)\n * @memberof KavaModel\n * @instance\n */\n public getTabMode(): TabMode {\n return this.tabMode;\n }\n\n /**\n * Gets the effectiveType read-only property of the NetworkInformation interface (from navigator)\n * @returns {string} the effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionType(): string {\n return this.networkConnectionType;\n }\n\n /**\n * Gets the max dns+ssl+tcp resolving time over all video segments\n * @returns {number} max dns+ssl+tcp in seconds\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionOverhead(): number {\n // convert ms to seconds in 0.xxx format\n return Math.round(this.maxNetworkConnectionOverhead) / 1000;\n }\n\n /**\n * Gets the error code.\n * @returns {number} - The error code.\n * @memberof KavaModel\n * @instance\n */\n public getErrorCode(): number {\n return this.errorCode;\n }\n\n /**\n * Gets the flavor id from ID3 tag in the packager\n * @returns {number} - The flavor id.\n * @memberof KavaModel\n * @instance\n */\n public getFlavorParamsId(): number {\n return this.flavorParamsId;\n }\n\n /**\n * Gets the error additional data.\n * @returns {string} - The stringifyed error data.\n * @memberof KavaModel\n * @instance\n */\n public getErrorDetails(): string {\n let retVal: string = '';\n if (this.errorDetails) {\n try {\n retVal = JSON.stringify(this.errorDetails);\n } catch (e) {\n // do nothing\n }\n }\n return retVal;\n }\n\n /**\n * Gets the event index counter.\n * @returns {number} - The event index counter.\n * @memberof KavaModel\n * @instance\n */\n public getEventIndex(): number {\n return this.eventIndex;\n }\n\n /**\n * Gets the error position (start or mid playing)\n * @returns {number} - The error position - 1 for pre playing, 2 for mid stream error\n * @memberof KavaModel\n * @instance\n */\n public getErrorPosition(): ErrorPosition {\n return this.errorPosition;\n }\n\n /**\n * Gets the session start time.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getSessionStartTime(): number {\n return this.sessionStartTime;\n }\n\n /**\n * Gets the share network name.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getShareNetworkName(): string {\n return this.shareNetworkName;\n }\n\n public getReportType(): number {\n return this.reportType;\n }\n\n public getPlaybackMode(): number {\n return this.playbackMode;\n }\n\n /**\n * Gets the source entry id - the entry id that the current part of a simulive entry was generated from.\n * @returns {string} - Source entry id.\n * @memberof KavaModel\n * @instance\n */\n public getSourceEntryId(): string | null {\n return this.sourceEntryId;\n }\n\n /**\n * Updates the model.\n * @param {Object} obj - A partial or full updated model.\n * @returns {void}\n * @memberof KavaModel\n * @instance\n */\n public updateModel(obj: object): void {\n Object.assign(this, obj);\n }\n\n /**\n * Gets the model for a certain event.\n * @param {KavaEvent} eventObj - The event object.\n * @param {EventBucketName} eventBucketName - The dashboard name in kava dashboards.\n * @param {any} eventPayload - The original player event payload.\n * @returns {Object} - The event model.\n * @memberof KavaModel\n * @instance\n */\n public getModel(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): any {\n switch (eventBucketName) {\n case EventBucketName.PlayerEvents:\n return getEventModel(eventObj, this);\n case EventBucketName.ApplicationEvents:\n return getApplicationEventsModel(eventObj, this, eventPayload);\n }\n }\n}\n\nenum SoundMode {\n SOUND_OFF = 1,\n SOUND_ON = 2\n}\n\nenum ViewabilityMode {\n NOT_IN_VIEW = 1,\n IN_VIEW = 2\n}\n\nenum TabMode {\n TAB_NOT_FOCUSED = 1,\n TAB_FOCUSED = 2\n}\n\nenum ScreenMode {\n NOT_IN_FULLSCREEN = 1,\n FULLSCREEN = 2\n}\n\nenum ErrorPosition {\n PRE_PLAY = 3,\n PRE_PLAYING = 1,\n MID_STREAM = 2\n}\n\nexport { KavaModel, SoundMode, TabMode, ErrorPosition, ScreenMode, ViewabilityMode };\n","import { KavaHttpMethodType } from '../types';\n\nconst HttpMethodType: KavaHttpMethodType = {\n GET: 'GET',\n POST: 'POST'\n};\n\nexport { HttpMethodType };\n","import { BasePlugin, core, KalturaPlayer } from '@playkit-js/kaltura-player-js';\nimport { FakeEvent, VideoTrack } from '@playkit-js/playkit-js';\nimport { OVPAnalyticsService } from '@playkit-js/playkit-js-providers/analytics-service';\nimport { KavaEventModel, KavaEventType } from './kava-event-model';\nimport { KavaRateHandler } from './kava-rate-handler';\nimport { KavaTimer } from './kava-timer';\nimport { ErrorPosition, KavaModel, ScreenMode, SoundMode, TabMode, ViewabilityMode } from './kava-model';\nimport { HttpMethodType } from './enums/http-method-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { KavaConfigObject, KavaEvent } from './types';\nimport { DownloadEvent, InfoEvent, ModerationEvent, RelatedEvent, ShareEvent } from './temp-imported-plugins-event-names-temp';\nimport { PluginsEvents, PlaykitUIEvents } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel, getApplicationEventsModel } from './application-events-model';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _timePercentEvent!: { [time: string]: boolean };\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n private _lastViewEventPlayTime: number = -1;\n\n /**\n * Default config of the plugin.\n * @type {Object}\n * @static\n * @memberof Kava\n */\n public static defaultConfig: any = {\n serviceUrl: `${Utils.Http.protocol}//analytics.kaltura.com/api_v3/index.php`,\n requestMethod: HttpMethodType.POST,\n viewEventCountdown: 10,\n resetSessionCountdown: 30,\n dvrThreshold: 120,\n playbackContext: '',\n applicationVersion: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: 'PLAYER'\n };\n\n /**\n * @static\n * @return {boolean} - Whether the plugin is valid in the current environment.\n * @memberof Kava\n */\n public static isValid(): boolean {\n return true;\n }\n\n constructor(name: string, player: KalturaPlayer, config: KavaConfigObject) {\n super(name, player, config);\n this._rateHandler = new KavaRateHandler();\n this._model = new KavaModel();\n this._setModelDelegates();\n this._timer = new KavaTimer({\n resetCounter: this.config.resetSessionCountdown,\n eventCounter: this.config.viewEventCountdown\n });\n this._viewEventEnabled = true;\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n // check the Resource Timing API is supported in the browser and we have a uiConfId\n if (performance && this.config.uiConfId) {\n const entry = performance.getEntriesByType('resource').find((entry) => entry.name.match('embedPlaykitJs.*' + this.config.uiConfId));\n if (entry) {\n this._model.updateModel({ playerJSLoadTime: entry.duration });\n }\n }\n }\n\n private _updateSoundModeInModel(): void {\n this._model.updateModel({\n soundMode: this.player.muted || this.player.volume === 0 ? SoundMode.SOUND_OFF : SoundMode.SOUND_ON\n });\n }\n\n private _updateViewabilityModeInModel(isVisible: boolean): void {\n this._model.updateModel({\n viewabilityMode: isVisible || this.player.isInPictureInPicture() ? ViewabilityMode.IN_VIEW : ViewabilityMode.NOT_IN_VIEW\n });\n }\n\n private _handleNewPerformanceEntries(list: PerformanceObserverEntryList): void {\n const perfEntries = list.getEntries();\n for (let i = 0; i < perfEntries.length; i++) {\n this._performanceEntries.push(perfEntries[i]);\n }\n while (this._pendingFragLoadedUrls.length) {\n // handle frag loaded events which haven't been added to the entry list yet\n this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop()!);\n }\n }\n\n /**\n * Destroys the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public destroy(): void {\n this.eventManager.destroy();\n this._reset();\n }\n\n private _reset(): void {\n this._timer.destroy();\n this._rateHandler.destroy();\n if (this._performanceObserver) {\n this._performanceObserver.disconnect();\n }\n this._performanceEntries = [];\n this._pendingFragLoadedUrls = [];\n }\n\n /**\n * Reset the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public reset(): void {\n this.eventManager.removeAll();\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0,\n sessionStartTime: null\n });\n this._reset();\n }\n\n /**\n * loadMedia of the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public loadMedia(): void {\n if (window.PerformanceObserver) {\n this._performanceObserver = new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this));\n this._performanceObserver.observe({ entryTypes: ['resource'] });\n }\n }\n\n /**\n * Gets the model object for a certain event.\n * @param {string} event - Event name.\n * @returns {Object} - Model object.\n * @instance\n * @memberof Kava\n * @example\n * const kava = player.plugins.kava;\n * const viewModel = kava.getEventModel(kava.EventType.VIEW);\n * kava.sendAnalytics(viewModel);\n */\n public getEventModel(event: string): any {\n if (event) {\n return this._model.getModel(KavaEventModel[event]);\n }\n }\n\n /**\n * @returns {KavaEventType} - The kava events list.\n * @instance\n * @memberof Kava\n */\n public get EventType(): { [event: string]: string } {\n return Utils.Object.copyDeep(KavaEventType);\n }\n\n /**\n * Sends KAVA analytics event to analytics service.\n * @param {Object} model - Event model.\n * @returns {Promise} - Promise to indicate request succeed or failed.\n * @instance\n * @memberof Kava\n * @example\n * player.plugins.kava.sendAnalytics({...})\n * .then(() => {\n * console.log('kava analytics sent successfully');\n * })\n * .catch(e => {\n * console.log('kava analytics send failed', e);\n * });\n */\n public sendAnalytics(model: any): Promise<void> {\n return new Promise((resolve, reject) => {\n OVPAnalyticsService.trackEvent(this.config.serviceUrl, model, this.config.requestMethod)\n .doHttpRequest()\n .then(\n (response) => {\n this._handleServerResponseSuccess(response, model);\n resolve();\n },\n (err) => {\n this._handleServerResponseFailed(err, model);\n reject(err);\n }\n );\n this._model.updateModel({ eventIndex: this._model.getEventIndex() + 1 });\n });\n }\n\n private _resetFlags(): void {\n this._previousCurrentTime = 0;\n this._lastViewEventPlayTime = -1;\n this._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._timePercentEvent = {\n PLAY_REACHED_25_PERCENT: false,\n PLAY_REACHED_50_PERCENT: false,\n PLAY_REACHED_75_PERCENT: false,\n PLAY_REACHED_100_PERCENT: false\n };\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n this.logger.warn('Failed to send KAVA event', model, err);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.REGISTERED_PLUGINS_LIST_EVENT, (e) => this._onRegisteredPluginsListChange(e.payload));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this._bindApplicationEvents();\n this._bindPlaykitUIEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\n }\n\n private _bindPlaykitUIEvents(): void {\n Object.values(PlaykitUIEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _bindApplicationEvents(): void {\n Object.values(PluginsEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _onFirstPlaying(): void {\n this._isPlaying = true;\n if (!this._fragLoadedFiredOnce && this._performanceObserver) {\n this._performanceObserver.disconnect();\n this.logger.debug(\"This adapter / media doesn't fire fragLoaded - disconnect performance observer\");\n }\n }\n\n private _onLoadStart(): void {\n this._loadStartTime = Date.now();\n }\n\n private _getRates(): Array<number> {\n const rates: number[] = [];\n const videoTracks: VideoTrack[] = this.player.getTracks(this.player.Track.VIDEO) as unknown as VideoTrack[];\n videoTracks.forEach((videoTrack) => rates.push(videoTrack.bandwidth / DIVIDER));\n return rates;\n }\n\n private _setInitialTracks(): void {\n const rates = this._getRates();\n const activeTracks = this.player.getActiveTracks();\n this._rateHandler.setRates(rates);\n if (activeTracks.video) {\n this._rateHandler.setCurrent(activeTracks.video.bandwidth / DIVIDER);\n }\n if (activeTracks.audio) {\n this._model.updateModel({ language: activeTracks.audio.language });\n }\n if (activeTracks.text) {\n this._model.updateModel({ caption: activeTracks.text.language });\n }\n }\n\n /**\n * gets the available buffer length\n * @returns {number} the remaining buffer length of the current played time range\n * @private\n */\n private _getAvailableBuffer(): number {\n let availableBuffer = NaN;\n if (this.player.stats) {\n availableBuffer = this.player.stats.availableBuffer;\n }\n return availableBuffer;\n }\n\n /**\n * calculates the forward buffer health ratio\n * @returns {number} the ratio between available buffer and the target buffer\n * @private\n */\n private _getForwardBufferHealth(): number {\n let forwardBufferHealth = NaN;\n const availableBuffer = this._getAvailableBuffer();\n const targetBuffer = this._getTargetBuffer();\n\n if (!isNaN(targetBuffer)) {\n // considering playback left to the target calculation\n forwardBufferHealth = Math.round((availableBuffer * 1000) / targetBuffer) / 1000;\n }\n\n return forwardBufferHealth;\n }\n\n /**\n * get the target buffer length from the player\n * @returns {number} the target buffer in seconds\n * @private\n */\n private _getTargetBuffer(): number {\n let targetBuffer = NaN;\n if (this.player.stats) {\n targetBuffer = this.player.stats.targetBuffer;\n }\n return targetBuffer;\n }\n\n /**\n * calculates the dropped frames ratio since last call\n * @returns {number} the ratio between dropped frames and the total frames\n * @private\n */\n private _getDroppedFramesRatio(): number {\n let droppedFrames = -1;\n const droppedAndDecoded: [number, number] | null = this._getDroppedAndDecodedFrames();\n if (droppedAndDecoded) {\n const lastDroppedFrames = droppedAndDecoded[0];\n const lastTotalFrames = droppedAndDecoded[1];\n const droppedFramesDelta = lastDroppedFrames - this._lastDroppedFrames;\n const totalFramesDelta = lastTotalFrames - this._lastTotalFrames;\n droppedFrames = totalFramesDelta ? Math.round((droppedFramesDelta / totalFramesDelta) * 1000) / 1000 : 0;\n\n this._lastTotalFrames = lastTotalFrames;\n this._lastDroppedFrames = lastDroppedFrames;\n }\n return droppedFrames;\n }\n\n /**\n * returns dropped and total frames from the VideoPlaybackQuality Interface of the browser (if supported)\n * @returns {number} {number} the number of video frames dropped and total video frames (created and dropped)\n * since the creation of the associated HTMLVideoElement\n * @private\n */\n private _getDroppedAndDecodedFrames(): [number, number] | null {\n if (typeof this.player.getVideoElement()!.getVideoPlaybackQuality === 'function') {\n const videoPlaybackQuality = this.player.getVideoElement()!.getVideoPlaybackQuality();\n return [videoPlaybackQuality.droppedVideoFrames, videoPlaybackQuality.totalVideoFrames];\n } else if (\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDroppedFrameCount === 'number' &&\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDecodedFrameCount === 'number'\n ) {\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n return [this.player.getVideoElement().webkitDroppedFrameCount, this.player.getVideoElement().webkitDecodedFrameCount];\n } else {\n return null;\n }\n }\n\n private _onReport(): void {\n if (this._viewEventEnabled) {\n this._updatePlayTimeSumModel();\n this._model.updateModel({\n forwardBufferHealth: this._getForwardBufferHealth(),\n targetBuffer: this._getTargetBuffer(),\n droppedFramesRatio: this._getDroppedFramesRatio()\n });\n if (this._lastViewEventPlayTime !== this._model.getPlayTimeSum()) {\n this._lastViewEventPlayTime = this._model.getPlayTimeSum();\n this._sendAnalytics(KavaEventModel.VIEW);\n } else {\n this.logger.warn(`VIEW event blocked because view event with same time already sent: ${this._lastViewEventPlayTime}`);\n }\n } else {\n this.logger.warn('VIEW event blocked because server response of viewEventsEnabled=false');\n }\n this._model.updateModel({\n totalSegmentsDownloadTime: 0,\n totalSegmentsDownloadBytes: 0,\n maxManifestDownloadTime: 0,\n maxSegmentDownloadTime: 0,\n maxNetworkConnectionOverhead: 0,\n bufferTime: 0\n });\n }\n\n private _updateNetworkConnectionTypeinModel(navConnection: any): void {\n this._model.updateModel({\n networkConnectionType: navConnection.effectiveType\n });\n }\n\n private _initNetworkConnectionType(): void {\n // @ts-expect-error - Property 'webkitConnection' does not exist on type 'Navigator'\n const navConnection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection;\n\n if (navConnection) {\n this.eventManager.listen(navConnection, 'change', () => this._updateNetworkConnectionTypeinModel(navConnection));\n this._updateNetworkConnectionTypeinModel(navConnection);\n }\n }\n\n private _onPlaying(): void {\n if (this._isFirstPlaying) {\n this._updateSoundModeInModel();\n this._updateViewabilityModeInModel(this.player.isVisible);\n if (!this.player.isUntimedImg()) this._timer.start();\n this._isFirstPlaying = false;\n const playRequestStartTime =\n this.player.config.playback.preload === 'auto' || this._isManualPreload ? this._firstPlayRequestTime : this._loadStartTime;\n this._model.updateModel({\n joinTime: Kava._getTimeDifferenceInSeconds(playRequestStartTime)\n });\n this._sendAnalytics(KavaEventModel.PLAY);\n this._onReport();\n } else if (this._isEnded) {\n this._timer.start();\n this._isEnded = false;\n this._sendAnalytics(KavaEventModel.REPLAY);\n } else if (this._isPaused) {\n this._timer.resume();\n this._isPaused = false;\n this._sendAnalytics(KavaEventModel.RESUME);\n }\n }\n\n private _onCanPlay(): void {\n this._canPlayOccured = true;\n this._model.updateModel({\n canPlayTime: Kava._getTimeDifferenceInSeconds(this._loadStartTime)\n });\n }\n\n private _onFirstPlay(): void {\n if (this._canPlayOccured) {\n this._isManualPreload = true;\n }\n this._isFirstPlay = false;\n this._firstPlayRequestTime = Date.now();\n this._sendAnalytics(KavaEventModel.PLAY_REQUEST);\n }\n\n private _onSourceSelected(): void {\n this._sendAnalytics(KavaEventModel.IMPRESSION);\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));\n if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {\n this._timePercentEvent.PLAY_REACHED_25 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {\n this._timePercentEvent.PLAY_REACHED_50 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {\n this._timePercentEvent.PLAY_REACHED_75 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {\n this._timePercentEvent.PLAY_REACHED_100 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n const data = JSON.parse(id3TagCues[id3TagCues.length - 1].value.data);\n this._model.updateModel({ flavorParamsId: Number(data.sequenceId) });\n\n if (data.clipId) {\n const [partType, entryId] = data.clipId.split('-');\n\n switch (partType) {\n case 'preStartContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 1 });\n break;\n }\n case 'content': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 2 });\n break;\n }\n case 'postEntryContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 3 });\n break;\n }\n default:\n break;\n }\n }\n } catch (e) {\n this.logger.debug('error parsing id3', e);\n }\n }\n }\n\n private _onVideoTrackChanged(event: FakeEvent): void {\n const videoTrack = event.payload.selectedVideoTrack;\n this._rateHandler.setCurrent(videoTrack.bandwidth / DIVIDER);\n if (this.player.isAdaptiveBitrateEnabled()) {\n this._sendAnalytics(KavaEventModel.FLAVOR_SWITCH);\n } else {\n this._sendAnalytics(KavaEventModel.SOURCE_SELECTED);\n }\n }\n\n private _onAudioTrackChanged(event: FakeEvent): void {\n const audioTrack = event.payload.selectedAudioTrack;\n this._model.updateModel({ language: audioTrack.language });\n this._sendAnalytics(KavaEventModel.AUDIO_SELECTED);\n }\n\n private _onTextTrackChanged(event: FakeEvent): void {\n if (this._isPlaying) {\n const textTrack = event.payload.selectedTextTrack;\n this._model.updateModel({ caption: textTrack.language });\n this._sendAnalytics(KavaEventModel.CAPTIONS);\n }\n }\n\n private _onError(event: FakeEvent): void {\n if (event.payload && event.payload.severity === PKError.Severity.CRITICAL) {\n this._model.updateModel({\n errorCode: event.payload.code,\n errorDetails: event.payload.data,\n errorPosition: this._isFirstPlay ? ErrorPosition.PRE_PLAY : this._isFirstPlaying ? ErrorPosition.PRE_PLAYING : ErrorPosition.MID_STREAM\n });\n this._sendAnalytics(KavaEventModel.ERROR);\n this.reset();\n }\n }\n\n private _onPlaybackRateChanged(): void {\n if (!this.player.playbackRates.length || this.player.playbackRates.includes(this.player.playbackRate!)) {\n this._sendAnalytics(KavaEventModel.SPEED);\n }\n }\n\n private _onPlayerStateChanged(event: FakeEvent): void {\n const oldState = event.payload.oldState;\n const newState = event.payload.newState;\n if (oldState.type === this.player.State.BUFFERING) {\n this._isBuffering = false;\n this._updateBufferModel();\n this._sendAnalytics(KavaEventModel.BUFFER_END);\n }\n if (newState.type === this.player.State.BUFFERING) {\n this._isBuffering = true;\n this._bufferStartTime = Date.now();\n this._sendAnalytics(KavaEventModel.BUFFER_START);\n }\n }\n\n private _onRelatedClicked(): void {\n this._sendAnalytics(KavaEventModel.RELATED_OPEN);\n }\n\n private _onRelatedSelected(): void {\n this._sendAnalytics(KavaEventModel.RELATED_SELECTED);\n }\n\n private _onShareClicked(): void {\n this._sendAnalytics(KavaEventModel.SHARE_CLICKED);\n }\n\n private _onShareNetworkClicked(event: FakeEvent): void {\n const shareNetworkName = event.payload.shareNetworkName;\n if (shareNetworkName) {\n this._model.updateModel({ shareNetworkName: shareNetworkName });\n this._sendAnalytics(KavaEventModel.SHARE_NETWORK);\n }\n }\n\n private _onReportSubmitted(event: FakeEvent): void {\n const reportType = event.payload.reportType;\n if (reportType) {\n this._model.updateModel({ reportType });\n this._sendAnalytics(KavaEventModel.REPORT_SUBMITTED);\n }\n }\n\n private _onReportClicked(): void {\n this._sendAnalytics(KavaEventModel.REPORT_CLICKED);\n }\n\n private _onInfoScreenOpened(): void {\n this._sendAnalytics(KavaEventModel.INFO);\n }\n\n private _onDownloadItemClicked(): void {\n this._sendAnalytics(KavaEventModel.DOWNLOAD);\n }\n\n private _onFullScreenChanged(screenMode: number): void {\n this._model.updateModel({ screenMode: screenMode });\n this._sendAnalytics(screenMode === ScreenMode.FULLSCREEN ? KavaEventModel.ENTER_FULLSCREEN : KavaEventModel.EXIT_FULLSCREEN);\n }\n\n private _onRegisteredPluginsListChange(payload: string[]): void {\n this._model.updateModel({ registeredPlugins: payload.join(',') });\n }\n\n private _updateSessionStartTimeModel(response: any | number): void {\n if (!this._model.getSessionStartTime() && response) {\n if (typeof response === 'object') {\n this._model.updateModel({ sessionStartTime: response.time });\n this._viewEventEnabled = response.viewEventsEnabled;\n } else {\n this._model.updateModel({ sessionStartTime: response });\n }\n }\n if (this._timer.isStopped()) {\n this._model.updateModel({ sessionStartTime: null });\n }\n }\n\n private _updateBufferModel(): void {\n const duration = Kava._getTimeDifferenceInSeconds(this._bufferStartTime);\n this._model.updateModel({\n bufferTime: this._model.getBufferTime() + duration,\n bufferTimeSum: this._model.getBufferTimeSum() + duration\n });\n }\n\n private _updatePlayTimeSumModel(): void {\n let delta;\n if (this.player.isLive()) {\n delta = this.config.viewEventCountdown - this._model.getBufferTime();\n } else {\n delta = this.player.currentTime! - this._previousCurrentTime;\n this._previousCurrentTime = this.player.currentTime!;\n }\n this._model.updateModel({ playTimeSum: this._model.getPlayTimeSum() + delta });\n }\n\n private _setModelDelegates(): void {\n this._model.getPlaybackSpeed = (): number | null => this.player.playbackRate;\n this._model.getActualBitrate = (): number => this._rateHandler.getCurrent();\n this._model.getAverageBitrate = (): number => this._rateHandler.getAverage();\n this._model.getPartnerId = (): number => this.config.partnerId;\n this._model.getEntryId = (): string => this.config.entryId;\n this._model.getPlaylistId = (): string => this.config.playlistId;\n this._model.getSessionId = (): string => this.config.sessionId;\n this._model.getPersistentSessionId = (): string => this.config.persistentSessionId;\n this._model.getClientVer = (): string => this.config.playerVersion;\n this._model.getClientTag = (): string => 'html5:v' + this.config.playerVersion;\n this._model.getKS = (): string => this.config.ks;\n this._model.getVirtualEventId = (): string => this.config.virtualEventId;\n this._model.getUIConfId = (): string => this.config.uiConfId;\n this._model.getReferrer = (): string => this.config.referrer;\n this._model.getCustomVar1 = (): string => this.config.customVar1;\n this._model.getCustomVar2 = (): string => this.config.customVar2;\n this._model.getCustomVar3 = (): string => this.config.customVar3;\n this._model.getPosition = (): number => this._getPosition();\n this._model.getDeliveryType = (): string => this._getDeliveryType();\n this._model.getPlaybackType = (): string => this._getPlaybackType();\n this._model.getPlaybackContext = (): string => this.config.playbackContext;\n this._model.getApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getApplication = (): string => this.config.application;\n this._model.getKalturaApplicationVersion = (): string => this.config.kalturaApplicationVersion;\n this._model.getKalturaApplication = (): string => this._getKalturaApplicationId(this.config.kalturaApplication);\n this._model.getUserId = (): string => this.config.userId;\n }\n\n private _getKalturaApplicationId(kalturaAppName: string): string {\n if (kalturaAppName in KalturaApplication) {\n return KalturaApplication[kalturaAppName];\n } else {\n this.logger.warn('Kava analytics - unknon kalturaAppName: ' + kalturaAppName);\n return '';\n }\n }\n\n private _getPosition(): number {\n if (this.player.isLive()) {\n if (!Number.isNaN(this.player.duration)) {\n if (this.player.duration! - this.player.currentTime! < 1) {\n return 0;\n }\n return -(this.player.duration! - this.player.currentTime!);\n }\n return 0;\n }\n let currentTime = this.player.currentTime;\n if (typeof this.player.sources.seekFrom === 'number' && currentTime) {\n currentTime += this.player.sources.seekFrom;\n }\n return this._isFirstPlaying ? currentTime! || this.player.sources.startTime || 0 : currentTime!;\n }\n\n private _getDeliveryType(): string {\n if (this.player.streamType === this.player.StreamType.PROGRESSIVE) {\n return 'url';\n }\n return this.player.streamType;\n }\n\n private _getPlaybackType(): string {\n if (this.player.isLive()) {\n if (this.player.isDvr()) {\n const distanceFromLiveEdge = this.player.duration! - this.player.currentTime!;\n if (distanceFromLiveEdge >= this.config.dvrThreshold) {\n return 'dvr';\n }\n }\n return 'live';\n }\n return 'vod';\n }\n\n private _validate(): boolean {\n if (!this.config.partnerId) {\n this._logMissingParam('partnerId');\n return false;\n }\n if (!this.config.entryId) {\n this._logMissingParam('entryId');\n return false;\n }\n return true;\n }\n\n private _isApplicationEventValid(event: FakeEvent): boolean {\n const model = getApplicationEventsModel(ApplicationEventsModel[event.type], this._model, event.payload);\n return !!model.buttonName || !!model.pageName;\n }\n\n private _logMissingParam(missingParam: string): void {\n this.logger.warn(`Kava analytics block report because of missing param ${missingParam}`);\n }\n\n private static _getTimeDifferenceInSeconds(time: number): number {\n return (Date.now() - time) / 1000.0;\n }\n\n private _updateTabModeInModel(hiddenAttr: string): void {\n this._model.updateModel({\n // $FlowFixMe\n tabMode: this._isTabHidden(hiddenAttr) && !this.player.isInPictureInPicture() ? TabMode.TAB_NOT_FOCUSED : TabMode.TAB_FOCUSED\n });\n }\n\n private _isTabHidden(hiddenAttr: string): boolean {\n return document[hiddenAttr];\n }\n\n private _initTabMode(): void {\n let hiddenAttr: string;\n let visibilityChangeEventName: string;\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hiddenAttr = 'hidden';\n visibilityChangeEventName = 'visibilitychange';\n // @ts-expect-error - Property 'msHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.msHidden !== 'undefined') {\n hiddenAttr = 'msHidden';\n visibilityChangeEventName = 'msvisibilitychange';\n // @ts-expect-error - Property 'webkitHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.webkitHidden !== 'undefined') {\n hiddenAttr = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n // @ts-expect-error - Variable 'visibilityChangeEventName' is used before being assigned.\n if (hiddenAttr && visibilityChangeEventName) {\n this.eventManager.listen(document, visibilityChangeEventName, () => this._updateTabModeInModel(hiddenAttr));\n this._updateTabModeInModel(hiddenAttr);\n }\n }\n}\n\nexport { Kava };\n","export const DownloadEvent = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked'\n};\n\nexport const ModerationEvent = {\n REPORT_CLICKED: 'report_clicked',\n REPORT_SUBMITTED: 'report_submitted'\n};\n\nexport const ShareEvent = {\n /**\n * Fired when the user clicks on share icon.\n */\n SHARE_CLICKED: 'share_clicked',\n /**\n * Fired when the user clicks on specific social network.\n */\n SHARE_NETWORK: 'share_network'\n};\n\nexport const RelatedEvent = {\n /**\n * Fired when the user selects an entry from the list or the grid.\n */\n RELATED_SELECTED: 'related_selected',\n /**\n * Fired when the user clicks the button to show the related list.\n */\n RELATED_OPEN: 'related_open',\n /**\n * Fired when the user clicks to close the related list.\n */\n RELATED_CLOSE: 'related_close'\n};\n\nexport const InfoEvent = {\n INFO_SCREEN_OPEN: 'info_screen_open'\n};\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { registerPlugin } from '@playkit-js/kaltura-player-js';\nimport { Kava } from './kava';\n\ndeclare const __VERSION__: string;\ndeclare const __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport { Kava as Plugin };\nexport { KavaEventType as EventType } from './kava-event-model';\nexport { HttpMethodType } from './enums/http-method-type';\nexport { VERSION, NAME };\n\nconst pluginName: string = 'kava';\n\nregisterPlugin(pluginName, Kava);\n"],"names":["root","factory","exports","module","define","amd","self","e","d","t","r","n","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","TypeError","iterator","constructor","toPrimitive","String","i","length","configurable","writable","key","s","a","NAME","P","OVPAnalyticsService","A","OVPConfiguration","h","RequestBuilder","l","VERSION","C","f","arguments","this","severity","category","code","data","_logger","error","concat","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","DEBUG","name","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Map","async","timeout","maxAttempts","headers","service","action","Promise","_requestPromise","resolve","reject","url","Severity","Category","Code","_createXHR","XMLHttpRequest","onreadystatechange","readyState","status","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","toLowerCase","indexOf","_attemptCounter","assign","attempt","p","Array","isArray","slice","keys","y","serviceUrl","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","v","setPrototypeOf","bind","__proto__","create","m","ReferenceError","g","E","getPrototypeOf","R","objectType","hasError","O","message","b","Reflect","construct","sham","Proxy","Boolean","valueOf","apply","requests","push","stringify","FAILED_PARSING_REQUEST","doHttpRequest","then","_","success","response","results","result","map","T","toString","encodeURIComponent","u","c","test","join","replace","S","_trackEventByPOST","_trackEventByGET","tag","set","eventType","partnerId","entryId","sessionId","ks","clientTag","getUrl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","obj","prop","KalturaPlayer","_typeof","_arrayLikeToArray","arr","len","arr2","_classCallCheck","instance","Constructor","toPropertyKey","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_assertThisInitialized","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_defineProperty","KavaEventModel","VIEW","type","index","getEventModel","model","eventModel","playTimeSum","getPlayTimeSum","bufferTime","getBufferTime","bufferTimeSum","getBufferTimeSum","actualBitrate","getActualBitrate","averageBitrate","getAverageBitrate","audioLanguage","getLanguage","soundMode","getSoundMode","tabMode","getTabMode","viewabilityMode","getViewabilityMode","screenMode","getScreenMode","isNaN","getForwardBufferHealth","forwardBufferHealth","getMaxManifestDownloadTime","manifestDownloadTime","getSegmentDownloadTime","segmentDownloadTime","getBandwidth","bandwidth","getDroppedFramesRatio","droppedFramesRatio","getTargetBuffer","targetBuffer","getNetworkConnectionType","networkConnectionType","getNetworkConnectionOverhead","networkConnectionOverhead","getFlavorParamsId","flavorParamsId","getPlaybackMode","playbackMode","getSourceEntryId","sourceEntryId","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","getRegisteredPlugins","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","ApplicationEventType","PageLoadType","playkitUIEventsNamespace","PlaykitUIEvents","USER_CLICKED_LOGO","USER_SELECTED_CAPTIONS_SIZE","USER_SELECTED_CAPTIONS_ALIGNMENT","USER_SELECTED_CAPTIONS_FONT_COLOR","USER_SELECTED_CAPTIONS_FONT_FAMILY","USER_SELECTED_CAPTIONS_FONT_STYLE","USER_SELECTED_CAPTIONS_FONT_OPACITY","USER_SELECTED_CAPTIONS_BACKGROUND_COLOR","USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","TRANSCRIPT_POPOUT_OPEN","TRANSCRIPT_POPOUT_CLOSE","TRANSCRIPT_POPOUT_DRAG","TRANSCRIPT_POPOUT_RESIZE","CHANGE_LAYOUT","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","RELATED_ENTRY_SELECTED","RELATED_ENTRY_AUTO_PLAYED","RELATED_GRID_DISPLAYED","CALL_TO_ACTION_BUTTON_CLICK","HOTSPOT_CLICK","HOTSPOT_DISPLAYED","QUIZ_STARTED","QUIZ_SKIPPED","QUIZ_SEEK","QUESTION_ANSWERED","QUIZ_SUBMITTED","QUIZ_RETAKE","QUIZ_QUESTION_CHANGED","DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN","DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN","DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED","DETECT_AD_BLOCK_X_BUTTON_CLICKED","DETECT_AD_BLOCK_AD_BLOCKER_DISABLED","DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED","KalturaApplication","KMC","KMS","KAF","PITCH","KMS_GO","WEBCASTING","PERSONAL_CAPTURE","KME","KME_MOBILE_APP","PATH","LECTURE_CAPTURE","EP","CHAT_AND_COLLABORATION","ANALYTICS","EXPRESS_CAPTURE","KPF","KAF_GO","SITES","STUDIO","CAPTIONS_EDITOR","CHECKLIST","PLAYER","getApplicationEventsModel","eventObj","innerEventPayload","commonModel","getPartnerId","getEntryId","getSessionId","kalturaApplication","getVirtualEventId","getKalturaApplication","getApplication","getApplicationVersion","getKalturaApplicationVersion","getUserId","namedEventModel","eventVar1","eventVar2","eventVar3","ApplicationEventsModel","_ApplicationEventsMod","_ref","layout","Choose","Open","Close","payload","Share","socialNetworkName","Download","assetType","fileType","description","Link","View","searchQuery","activeTab","availableTabs","isItSearch","Search","itemType","isTextExpanded","Expand","Collapse","search","Navigate","Edit","position","x","size","mode","Load","Send","_ref2","questionIndex","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","registeredPlugins","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventBucketName","PlayerEvents","eventPayload","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","getPosition","playbackSpeed","getPlaybackSpeed","getCaption","getSessionStartTime","getKS","virtualEventId","getUIConfId","uiConfId","getPlaylistId","playlistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","applicationVer","application","kalturaApplicationVer","userId","getPersistentSessionId","persistentSessionId","ApplicationEvents","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","muted","volume","SOUND_OFF","SOUND_ON","isVisible","isInPictureInPicture","IN_VIEW","NOT_IN_VIEW","list","perfEntries","getEntries","_performanceEntries","_pendingFragLoadedUrls","_handleFragPerformanceObserver","pop","eventManager","destroy","_reset","_performanceObserver","disconnect","removeAll","window","PerformanceObserver","_handleNewPerformanceEntries","observe","entryTypes","event","getModel","copyDeep","trackEvent","requestMethod","_handleServerResponseSuccess","err","_handleServerResponseFailed","_previousCurrentTime","_lastViewEventPlayTime","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_timePercentEvent","_canPlayOccured","_isManualPreload","logger","reset","_validate","_updateBufferModel","_bufferStartTime","Date","tamperAnalyticsHandler","sendAnalytics","catch","_updateSessionStartTimeModel","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","REGISTERED_PLUGINS_LIST_EVENT","_onRegisteredPluginsListChange","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","_bindApplicationEvents","_bindPlaykitUIEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_isApplicationEventValid","_sendAnalytics","_this5","_fragLoadedFiredOnce","_loadStartTime","getTracks","Track","VIDEO","videoTrack","_getRates","activeTracks","getActiveTracks","setRates","video","setCurrent","audio","availableBuffer","stats","_getAvailableBuffer","_getTargetBuffer","droppedFrames","droppedAndDecoded","_getDroppedAndDecodedFrames","lastDroppedFrames","lastTotalFrames","droppedFramesDelta","_lastDroppedFrames","totalFramesDelta","_lastTotalFrames","getVideoElement","getVideoPlaybackQuality","videoPlaybackQuality","droppedVideoFrames","totalVideoFrames","webkitDroppedFrameCount","webkitDecodedFrameCount","_updatePlayTimeSumModel","_getForwardBufferHealth","_getDroppedFramesRatio","navConnection","effectiveType","_this6","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this7","isImage","isLive","TIME_UPDATE","_onTimeUpdate","currentTime","percent","parseFloat","toFixed","PLAY_REACHED_25","PLAY_REACHED_50","PLAY_REACHED_75","PLAY_REACHED_100","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","clipId","_data$clipId$split2","next","done","minLen","from","partType","selectedVideoTrack","isAdaptiveBitrateEnabled","audioTrack","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this8","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","applicationVersion","kalturaApplicationVersion","_getKalturaApplicationId","kalturaAppName","sources","seekFrom","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","buttonName","pageName","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this9","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"playkit-kava.js","mappings":"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","sources":["webpack://KalturaPlayer.plugins.kava/webpack/universalModuleDefinition","webpack://KalturaPlayer.plugins.kava/./node_modules/@playkit-js/playkit-js-providers/dist/playkit-analytics-service.js","webpack://KalturaPlayer.plugins.kava/webpack/bootstrap","webpack://KalturaPlayer.plugins.kava/webpack/runtime/define property getters","webpack://KalturaPlayer.plugins.kava/webpack/runtime/hasOwnProperty shorthand","webpack://KalturaPlayer.plugins.kava/webpack/runtime/make namespace object","webpack://KalturaPlayer.plugins.kava/external root \"KalturaPlayer\"","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://KalturaPlayer.plugins.kava/./src/kava-event-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-rate-handler.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-timer.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/event-bucket-name.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/button-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/application-event-type.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/page-load-type.ts","webpack://KalturaPlayer.plugins.kava/./src/applications-events.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/kaltura-application.ts","webpack://KalturaPlayer.plugins.kava/./src/application-events-model.ts","webpack://KalturaPlayer.plugins.kava/./src/kava-model.ts","webpack://KalturaPlayer.plugins.kava/./src/enums/http-method-type.ts","webpack://KalturaPlayer.plugins.kava/./src/kava.ts","webpack://KalturaPlayer.plugins.kava/./src/temp-imported-plugins-event-names-temp.ts","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://KalturaPlayer.plugins.kava/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://KalturaPlayer.plugins.kava/./src/index.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"KalturaPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"KalturaPlayer\"] = factory();\n\telse\n\t\troot[\"KalturaPlayer\"] = root[\"KalturaPlayer\"] || {}, root[\"KalturaPlayer\"][\"plugins\"] = root[\"KalturaPlayer\"][\"plugins\"] || {}, root[\"KalturaPlayer\"][\"plugins\"][\"kava\"] = factory();\n})(self, () => {\nreturn ","!function(e,t){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{var r=t();for(var n in r)(\"object\"==typeof exports?exports:e)[n]=r[n]}}(self,(function(){return function(){\"use strict\";var e={d:function(t,r){for(var n in r)e.o(r,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:r[n]})},o:function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r:function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})}},t={};function r(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function n(e){return n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n(e)}function o(e){var t=function(e,t){if(\"object\"!==n(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var o=r.call(e,\"string\");if(\"object\"!==n(o))return o;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return String(e)}(e);return\"symbol\"===n(t)?t:String(t)}function i(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,o(n.key),n)}}function s(e,t,r){return t&&i(e.prototype,t),r&&i(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function a(e,t,r){return(t=o(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}e.r(t),e.d(t,{NAME:function(){return P},OVPAnalyticsService:function(){return A},OVPConfiguration:function(){return h},RequestBuilder:function(){return l},VERSION:function(){return C}});var u=function(){return{VERSION:\"\",DEBUG:{value:\"\",name:\"\"},ERROR:{value:\"\",name:\"\"},INFO:{value:\"\",name:\"\"},OFF:{value:\"\",name:\"\"},TIME:{value:\"\",name:\"\"},TRACE:{value:\"\",name:\"\"},WARN:{value:\"\",name:\"\"},createDefaultHandler:function(){},debug:function(){},enabledFor:function(){},error:function(){},get:function(){},getLevel:function(){},info:function(){},log:function(){},setHandler:function(){},setLevel:function(){},time:function(){},timeEnd:function(){},trace:function(){},useDefaults:function(){},warn:function(){}}};var c=function(e){return u(e)},f=s((function e(t,n,o){var i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};r(this,e),this.severity=t,this.category=n,this.code=o,this.data=i,e._logger.error(\"Category:\".concat(n,\" | Code:\").concat(o,\" |\"),i)}));a(f,\"Severity\",{RECOVERABLE:1,CRITICAL:2}),a(f,\"Category\",{NETWORK:1,SERVICE:2,PROVIDER:3}),a(f,\"Code\",{UNSUPPORTED_SCHEME:1e3,BAD_HTTP_STATUS:1001,HTTP_ERROR:1002,TIMEOUT:1003,MALFORMED_DATA_URI:1004,BAD_SERVER_RESPONSE:1005,MULTIREQUEST_API_ERROR:1006,API_RESPONSE_MISMATCH:1007,ERROR:2e3,BLOCK_ACTION:2001,MEDIA_STATUS_NOT_READY:2002,MISSING_MANDATORY_PARAMS:3e3,MISSING_PLAY_SOURCE:3001,METHOD_NOT_IMPLEMENTED:3002}),a(f,\"_logger\",c(\"Error\"));var l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:new Map;r(this,e),a(this,\"retryConfig\",{async:!0,timeout:0,maxAttempts:4}),a(this,\"_attemptCounter\",1),this.headers=t}return s(e,[{key:\"getUrl\",value:function(e){return e+\"/service/\"+this.service+(this.action?\"/action/\"+this.action:\"\")}},{key:\"doHttpRequest\",value:function(){var e=this,t=new Promise((function(t,r){e._requestPromise={resolve:t,reject:r}}));return this.url||this._requestPromise.reject(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MALFORMED_DATA_URI,{url:this.url})),this._createXHR(),t}},{key:\"_createXHR\",value:function(){var e=this,t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState&&200===t.status)try{var r=JSON.parse(t.responseText);return e.responseHeaders=e._getResponseHeaders(t),e._requestPromise.resolve(r)}catch(r){e._requestPromise.reject(e._createError(t,f.Code.BAD_SERVER_RESPONSE,{text:t.responseText}))}},t.open(this.method,this.url,this.retryConfig.async),this.retryConfig.async&&this.retryConfig.timeout&&(t.timeout=this.retryConfig.timeout);var r=performance.now();t.ontimeout=function(){e._handleError(t,f.Code.TIMEOUT,{timeout:(performance.now()-r)/1e3,statusText:t.statusText})},t.onerror=t.onabort=function(){e._handleError(t,f.Code.HTTP_ERROR,{text:t.responseText,statusText:t.statusText})},this.headers.forEach((function(e,r){t.setRequestHeader(r,e)})),t.send(this.params)}},{key:\"_getResponseHeaders\",value:function(e){return e.getAllResponseHeaders().split(\"\\n\").filter((function(e){return 0===e.toLowerCase().indexOf(\"x-\")}))}},{key:\"_handleError\",value:function(e,t,r){var n=this._createError(e,t,r);if(e.onreadystatechange=function(){},e.onerror=function(){},e.ontimeout=function(){},e.onabort=function(){},!(this.retryConfig.maxAttempts&&this._attemptCounter<this.retryConfig.maxAttempts))return this._requestPromise.reject(n);this._attemptCounter++,this._createXHR()}},{key:\"_createError\",value:function(e,t,r){return Object.assign(r,{url:this.url,headers:this._getResponseHeaders(e),attempt:this._attemptCounter}),new f(f.Severity.CRITICAL,f.Category.NETWORK,t,r)}}]),e}(),p=function e(t){var r;return Array.isArray(t)?(r=t.length>0?t.slice(0):[]).forEach((function(t,o){(\"object\"===n(t)||Array.isArray(t)&&t.length>0)&&(r[o]=e(t))})):\"object\"===n(t)?(r=Object.assign({},t),Object.keys(r).forEach((function(t){(\"object\"===n(r[t])||Array.isArray(r[t])&&r[t].length>0)&&(r[t]=e(r[t]))}))):r=t,r},y={serviceUrl:\"https://cdnapisec.kaltura.com/api_v3\",cdnUrl:\"https://cdnapisec.kaltura.com\",serviceParams:{apiVersion:\"3.3.0\",format:1},useApiCaptions:!0,loadThumbnailWithKs:!1,replaceHostOnlyManifestUrls:!1},h=function(){function e(){r(this,e)}return s(e,null,[{key:\"set\",value:function(e){e&&Object.assign(y,e)}},{key:\"get\",value:function(){return p(y)}}]),e}();function v(e,t){return v=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},v(e,t)}function d(e,t){if(\"function\"!=typeof t&&null!==t)throw new TypeError(\"Super expression must either be null or a function\");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,\"prototype\",{writable:!1}),t&&v(e,t)}function m(e){if(void 0===e)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return e}function g(e,t){if(t&&(\"object\"===n(t)||\"function\"==typeof t))return t;if(void 0!==t)throw new TypeError(\"Derived constructors may only return object or undefined\");return m(e)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var R=s((function e(t){r(this,e),a(this,\"hasError\",!1),\"KalturaAPIException\"===t.objectType?(this.hasError=!0,this.error=new O(t.code,t.message)):t.error&&\"KalturaAPIException\"===t.error.objectType?(this.hasError=!0,this.error=new O(t.error.code,t.error.message)):this.data=t})),O=s((function e(t,n){r(this,e),this.code=t,this.message=n}));var b=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){var e;r(this,i);for(var t=arguments.length,n=new Array(t),s=0;s<t;s++)n[s]=arguments[s];return a(m(e=o.call.apply(o,[this].concat(n))),\"requests\",[]),e}return s(i,[{key:\"add\",value:function(e){this.requests.push(e);var t={},r={service:e.service,action:e.action};return Object.assign(t,a({},this.requests.length,Object.assign(r,e.params))),Object.assign(t,this.params),this.params=t,this}},{key:\"execute\",value:function(e){var t=this;return new Promise((function(r,n){try{t.params=JSON.stringify(t.params)}catch(e){i._logger.error(\"\".concat(e.message)),n(new f(f.Severity.CRITICAL,f.Category.PROVIDER,f.Code.FAILED_PARSING_REQUEST,{error:e,params:t.params}))}t.doHttpRequest().then((function(o){var i=new _(o,e);i.success?r({headers:t.responseHeaders,response:i}):n(new f(f.Severity.CRITICAL,f.Category.NETWORK,f.Code.MULTIREQUEST_API_ERROR,{url:t.url,headers:t.responseHeaders,results:i.results}))}),(function(e){n(e)}))}))}}]),i}(l);a(b,\"_logger\",c(\"MultiRequestBuilder\"));var _=s((function e(t){var n=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];r(this,e),a(this,\"results\",[]);var o=t.result?t.result:t,i=(Array.isArray(o)?o:[o]).map((function(e){return new R(e)})),s=i.filter((function(e){return e.hasError}));s.forEach((function(t){e._logger.error(\"Service returned an error with error code: \".concat(t.error.code,\" and message: \").concat(t.error.message,\".\"))})),this.results=i,n&&s.length||s.length===this.results.length?this.success=!1:(this.results=this.results.filter((function(e){return!e.hasError})),this.success=!0)}));a(_,\"_logger\",c(\"MultiRequestResult\"));var T=function(e){var t=[],r=/\\[\\]$/,o=function(e){return\"[object Array]\"===Object.prototype.toString.call(e)},i=function(e,r){r=\"function\"==typeof r?r():null==r?\"\":r,t[t.length]=encodeURIComponent(e)+\"=\"+encodeURIComponent(r)};return function e(s,a){var u,c,f;if(s)if(o(a))for(u=0,c=a.length;u<c;u++)r.test(s)?i(s,a[u]):e(s+\":\"+(\"object\"===n(a[u])?u:\"\"),a[u]);else if(a&&\"[object Object]\"===String(a))for(f in a)e(s+\":\"+f,a[f]);else i(s,a);else if(o(a))for(u=0,c=a.length;u<c;u++)i(a[u].name,a[u].value);else for(f in a)e(f,a[f]);return t}(\"\",e).join(\"&\").replace(/%20/g,\"+\")};var S=\"analytics\",A=function(e){d(i,e);var t,n,o=(t=i,n=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}(),function(){var e,r=E(t);if(n){var o=E(this).constructor;e=Reflect.construct(r,arguments,o)}else e=r.apply(this,arguments);return g(this,e)});function i(){return r(this,i),o.apply(this,arguments)}return s(i,null,[{key:\"trackEvent\",value:function(e,t,r){return\"POST\"===r?i._trackEventByPOST(e,t):i._trackEventByGET(e,t)}},{key:\"_trackEventByGET\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new l;return o.service=S,o.action=\"trackEvent\",o.method=\"GET\",o.retryConfig.maxAttempts=1,o.tag=\"analytics-trackEvent\",o.params=n,o.url=e+\"?service=\"+o.service+\"&action=\"+o.action+\"&\"+T(o.params),o}},{key:\"_trackEventByPOST\",value:function(e,t){var r=h.get(),n={};Object.assign(n,r.serviceParams,t);var o=new Map;o.set(\"Content-Type\",\"application/json\");var i=new l(o),s={eventType:n.eventType,partnerId:n.partnerId,entryId:n.entryId,sessionId:n.sessionId};return[\"eventType\",\"partnerId\",\"entryId\",\"sessionId\"].forEach((function(e){return delete n[e]})),i.service=S,i.action=\"trackEvent\",i.method=\"POST\",i.retryConfig.maxAttempts=1,i.tag=\"analytics-trackEvent\",i.params=JSON.stringify(n),i.url=e+\"?service=\"+i.service+\"&action=\"+i.action+\"&\"+T(s),i}}]),i}(function(){function e(){r(this,e)}return s(e,null,[{key:\"getMultiRequest\",value:function(e,t,r){var n=h.get(),o=n.serviceParams;Object.assign(o,{ks:t,clientTag:\"html5:v\"+e}),r&&Object.assign(o,{partnerId:r});var i=new Map;i.set(\"Content-Type\",\"application/json\");var s=new b(i);return s.method=\"POST\",s.service=\"multirequest\",s.url=s.getUrl(n.serviceUrl),s.params=o,s}}]),e}()),P=\"@playkit-js/playkit-js-providers-analytics-service\",C=\"2.40.4\";return t}()}));\n//# sourceMappingURL=playkit-analytics-service.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","const __WEBPACK_NAMESPACE_OBJECT__ = KalturaPlayer;","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\n\n/**\n * @name KavaEventType\n * @enum\n */\nexport const KavaEventModel = {\n /**\n * @type {string} VIEW\n * @memberof KavaEventType\n */\n VIEW: {\n type: 'VIEW',\n index: 99,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n playTimeSum: model.getPlayTimeSum(),\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n averageBitrate: model.getAverageBitrate(),\n audioLanguage: model.getLanguage(),\n soundMode: model.getSoundMode(),\n tabMode: model.getTabMode(),\n viewabilityMode: model.getViewabilityMode(),\n screenMode: model.getScreenMode()\n };\n\n if (!isNaN(model.getForwardBufferHealth())) {\n eventModel.forwardBufferHealth = model.getForwardBufferHealth();\n }\n if (model.getMaxManifestDownloadTime() > 0) {\n eventModel.manifestDownloadTime = model.getMaxManifestDownloadTime();\n }\n if (model.getSegmentDownloadTime() > 0) {\n eventModel.segmentDownloadTime = model.getSegmentDownloadTime();\n }\n if (model.getBandwidth()) {\n eventModel.bandwidth = model.getBandwidth();\n }\n if (model.getDroppedFramesRatio() !== null) {\n eventModel.droppedFramesRatio = model.getDroppedFramesRatio();\n }\n\n if (!isNaN(model.getTargetBuffer())) {\n eventModel.targetBuffer = model.getTargetBuffer();\n }\n\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n\n if (model.getNetworkConnectionOverhead()) {\n eventModel.networkConnectionOverhead = model.getNetworkConnectionOverhead();\n }\n if (!isNaN(model.getFlavorParamsId())) {\n eventModel.flavorParamsId = model.getFlavorParamsId();\n }\n if (!isNaN(model.getPlaybackMode())) {\n eventModel.playbackMode = model.getPlaybackMode();\n }\n if (model.getSourceEntryId() !== null) {\n eventModel.sourceEntryId = model.getSourceEntryId();\n }\n\n return eventModel;\n }\n },\n /**\n * @type {string} IMPRESSION\n * @memberof KavaEventType\n */\n IMPRESSION: {\n type: 'IMPRESSION',\n index: 1,\n getEventModel: (model: KavaModel): any => {\n const eventModel = {} as KavaModel;\n if (model.getPlayerJSLoadTime() !== null) {\n eventModel.playerJSLoadTime = model.getPlayerJSLoadTime();\n }\n eventModel['loadedPlugins'] = model.getRegisteredPlugins();\n return eventModel;\n }\n },\n /**\n * @type {string} PLAY_REQUEST\n * @memberof KavaEventType\n */\n PLAY_REQUEST: {\n type: 'PLAY_REQUEST',\n index: 2,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY\n * @memberof KavaEventType\n */\n PLAY: {\n type: 'PLAY',\n index: 3,\n getEventModel: (model: KavaModel): any => {\n const eventModel: { [name: string]: any } = {\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate(),\n joinTime: model.getJoinTime(),\n canPlay: model.getCanPlayTime()\n };\n if (model.getNetworkConnectionType() !== '') {\n eventModel.networkConnectionType = model.getNetworkConnectionType();\n }\n return eventModel;\n }\n },\n /**\n * @type {string} RESUME\n * @memberof KavaEventType\n */\n RESUME: {\n type: 'RESUME',\n index: 4,\n getEventModel: (model: KavaModel): any => ({\n bufferTime: model.getBufferTime(),\n bufferTimeSum: model.getBufferTimeSum(),\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} PAUSE\n * @memberof KavaEventType\n */\n PAUSE: {\n type: 'PAUSE',\n index: 33,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_START\n * @memberof KavaEventType\n */\n BUFFER_START: {\n type: 'BUFFER_START',\n index: 45,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} BUFFER_END\n * @memberof KavaEventType\n */\n BUFFER_END: {\n type: 'BUFFER_END',\n index: 46,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} REPLAY\n * @memberof KavaEventType\n */\n REPLAY: {\n type: 'REPLAY',\n index: 34,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SEEK\n * @memberof KavaEventType\n */\n SEEK: {\n type: 'SEEK',\n index: 35,\n getEventModel: (model: KavaModel): any => ({\n targetPosition: model.getTargetPosition()\n })\n },\n /**\n * @type {string} PLAY_REACHED_25_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_25_PERCENT: {\n type: 'PLAY_REACHED_25_PERCENT',\n index: 11,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_50_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_50_PERCENT: {\n type: 'PLAY_REACHED_50_PERCENT',\n index: 12,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_75_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_75_PERCENT: {\n type: 'PLAY_REACHED_75_PERCENT',\n index: 13,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} PLAY_REACHED_100_PERCENT\n * @memberof KavaEventType\n */\n PLAY_REACHED_100_PERCENT: {\n type: 'PLAY_REACHED_100_PERCENT',\n index: 14,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SOURCE_SELECTED\n * @memberof KavaEventType\n */\n SOURCE_SELECTED: {\n type: 'SOURCE_SELECTED',\n index: 39,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} AUDIO_SELECTED\n * @memberof KavaEventType\n */\n AUDIO_SELECTED: {\n type: 'AUDIO_SELECTED',\n index: 42,\n getEventModel: (model: KavaModel): any => ({\n language: model.getLanguage()\n })\n },\n /**\n * @type {string} FLAVOR_SWITCH\n * @memberof KavaEventType\n */\n FLAVOR_SWITCH: {\n type: 'FLAVOR_SWITCH',\n index: 43,\n getEventModel: (model: KavaModel): any => ({\n actualBitrate: model.getActualBitrate()\n })\n },\n /**\n * @type {string} SPEED\n * @memberof KavaEventType\n */\n SPEED: {\n type: 'SPEED',\n index: 41,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} CAPTIONS\n * @memberof KavaEventType\n */\n CAPTIONS: {\n type: 'CAPTIONS',\n index: 38,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} ERROR\n * @memberof KavaEventType\n */\n ERROR: {\n type: 'ERROR',\n index: 98,\n getEventModel: (model: KavaModel): any => ({\n errorCode: model.getErrorCode(),\n errorDetails: model.getErrorDetails(),\n errorPosition: model.getErrorPosition()\n })\n },\n /**\n * @type {string} RELATED_OPEN\n * @memberof KavaEventType\n */\n RELATED_OPEN: {\n type: 'RELATED_OPEN',\n index: 36,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} RELATED_SELECTED\n * @memberof KavaEventType\n */\n RELATED_SELECTED: {\n type: 'RELATED_SELECTED',\n index: 37,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_CLICKED\n * @memberof KavaEventType\n */\n SHARE_CLICKED: {\n type: 'SHARE_CLICKED',\n index: 21,\n getEventModel: (): any => ({})\n },\n /**\n * @type {string} SHARE_NETWORK\n * @memberof KavaEventType\n */\n SHARE_NETWORK: {\n type: 'SHARE_NETWORK',\n index: 22,\n getEventModel: (model: KavaModel): any => ({\n socialNetwork: model.getShareNetworkName()\n })\n },\n ENTER_FULLSCREEN: {\n type: 'ENTER_FULLSCREEN',\n index: 31,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n EXIT_FULLSCREEN: {\n type: 'EXIT_FULLSCREEN',\n index: 32,\n getEventModel: (model: KavaModel): any => ({\n screenMode: model.getScreenMode()\n })\n },\n DOWNLOAD: {\n type: 'DOWNLOAD',\n index: 23,\n getEventModel: (): any => ({})\n },\n REPORT_CLICKED: {\n type: 'REPORT_CLICKED',\n index: 24,\n getEventModel: (): any => ({})\n },\n REPORT_SUBMITTED: {\n type: 'REPORT_SUBMITTED',\n index: 25,\n getEventModel: (model: KavaModel): any => ({\n reportType: model.getReportType()\n })\n },\n INFO: {\n type: 'INFO',\n index: 40,\n getEventModel: (): any => ({})\n }\n};\n\nexport const KavaEventType: { [event: string]: string } = ((eventType): any => {\n Object.keys(KavaEventModel).forEach((k) => (eventType[k] = k));\n return eventType;\n})({});\n//\n// /**\n// * Gets the full event model for a certain event object including the common params.\n// * @private\n// * @param {KavaEvent} eventObj - The event model.\n// * @param {KavaModel} model - The plugin model store.\n// * @returns {Object} - The full event model.\n// */\nexport function getEventModel(eventObj: KavaEvent, model: KavaModel): any {\n const commonModel: any = {\n eventType: eventObj.index,\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n eventIndex: model.getEventIndex(),\n referrer: model.getReferrer(),\n deliveryType: model.getDeliveryType(),\n playbackType: model.getPlaybackType(),\n clientVer: model.getClientVer(),\n clientTag: model.getClientTag(),\n position: model.getPosition(),\n playbackSpeed: model.getPlaybackSpeed()\n };\n\n if (model.getCaption()) {\n commonModel.caption = model.getCaption();\n }\n if (model.getSessionStartTime()) {\n commonModel.sessionStartTime = model.getSessionStartTime();\n }\n if (model.getKS()) {\n commonModel.ks = model.getKS();\n }\n if (model.getVirtualEventId()) {\n commonModel.virtualEventId = model.getVirtualEventId();\n }\n if (model.getUIConfId()) {\n commonModel.uiConfId = model.getUIConfId();\n }\n if (model.getPlaylistId()) {\n commonModel.playlistId = model.getPlaylistId();\n }\n if (model.getCustomVar1()) {\n commonModel.customVar1 = model.getCustomVar1();\n }\n if (model.getCustomVar2()) {\n commonModel.customVar2 = model.getCustomVar2();\n }\n if (model.getCustomVar3()) {\n commonModel.customVar3 = model.getCustomVar3();\n }\n if (model.getPlaybackContext()) {\n commonModel.playbackContext = model.getPlaybackContext();\n }\n if (model.getApplicationVersion()) {\n commonModel.applicationVer = model.getApplicationVersion();\n }\n if (model.getApplication()) {\n commonModel.application = model.getApplication();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel.kalturaApplicationVer = model.getKalturaApplicationVersion();\n }\n if (model.getKalturaApplication()) {\n commonModel.kalturaApplication = model.getKalturaApplication();\n }\n if (model.getUserId()) {\n commonModel.userId = model.getUserId();\n }\n if (model.getPersistentSessionId()) {\n commonModel.persistentSessionId = model.getPersistentSessionId();\n }\n const eventModel = eventObj.getEventModel(model);\n return Object.assign(eventModel, commonModel);\n}\n","/**\n * Manage the video rates for the KAVA plugin.\n * @private\n * @class KavaRateHandler\n */\nclass KavaRateHandler {\n private _rates: any[] = [];\n\n constructor() {\n this._rates = [];\n }\n\n /**\n * Sets the video rates.\n * @param {Array<number>} rates - The video rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setRates(rates: Array<number>): void {\n this._rates = [];\n rates.forEach((rate) => {\n this._rates.push({\n rate: rate,\n active: false,\n duration: 0\n });\n });\n }\n\n /**\n * Sets the current rate.\n * @param {number} rate - The current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public setCurrent(rate: number): void {\n this._rates.forEach((o) => (o.active = false));\n const obj = this._rates.find((o) => o.rate === rate);\n if (obj) {\n obj.active = true;\n }\n }\n\n /**\n * Gets the current rate.\n * @returns {number} - The current rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getCurrent(): number {\n const current = this._rates.find((o) => o.active);\n return current ? current.rate : -1;\n }\n\n /**\n * Increases the duration of the current rate.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public countCurrent(): void {\n const current = this._rates.find((o) => o.active);\n if (current) {\n current.duration++;\n }\n }\n\n /**\n * Gets the average rate.\n * @returns {number} - The average rate.\n * @memberof KavaRateHandler\n * @instance\n */\n public getAverage(): number {\n let totalDuration = 0;\n let sum = 0;\n this._rates.forEach((o) => {\n sum += o.rate * o.duration;\n totalDuration += o.duration;\n });\n return totalDuration ? sum / totalDuration : 0;\n }\n\n /**\n * Resets the duration of all rates.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public reset(): void {\n this._rates.forEach((o) => (o.duration = 0));\n }\n\n /**\n * Destroys the class.\n * @returns {void}\n * @memberof KavaRateHandler\n * @instance\n */\n public destroy(): void {\n this._rates = [];\n }\n}\n\nexport { KavaRateHandler };\n","import { core } from '@playkit-js/kaltura-player-js';\nconst { FakeEvent, FakeEventTarget } = core;\n\nconst SECOND: number = 1000;\n\n/**\n * Create service worker with timer.\n * @private\n * @class WorkerTimer\n * @param {void} callback - callback that triggers on timer tick.\n * @param {number} interval - interval in ms.\n */\nclass WorkerTimer {\n private worker: Worker | null = null;\n constructor(callback, interval) {\n const blob = new Blob([`setInterval(() => postMessage(0), ${interval});`]);\n const workerScript = URL.createObjectURL(blob);\n this.worker = new Worker(workerScript);\n this.worker.onmessage = callback;\n }\n\n /**\n * Terminate service worker.\n * @returns {void}\n * @memberof WorkerTimer\n * @instance\n */\n public stop(): void {\n if (this.worker) {\n this.worker.terminate();\n }\n }\n}\n\n/**\n * Mange a timer and dispatches related events.\n * @private\n * @class KavaTimer\n * @param {Object} config - The timer config.\n */\nclass KavaTimer extends FakeEventTarget {\n private _resetCounter!: number;\n private _eventCounter!: number;\n private _timer?: WorkerTimer | null;\n private _stopped!: boolean;\n private _config: any;\n\n public static Event = {\n TICK: 'tick',\n RESET: 'reset',\n REPORT: 'report'\n };\n\n constructor(config: any) {\n super();\n this._config = config;\n }\n\n /**\n * Starts the timer interval.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public start(): void {\n this._terminateTimer();\n this._stopped = false;\n this._resetCounter = 0;\n this._eventCounter = 0;\n this._timer = new WorkerTimer(() => this._monitor(), SECOND);\n }\n\n /**\n * Continues the timer to dispatch REPORT.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public resume(): void {\n this._stopped = false;\n this._resetCounter = 0;\n }\n\n /**\n * Stops the timer from dispatch REPORT and starts the timer to dispatch RESET.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public stop(): void {\n this._stopped = true;\n }\n\n /**\n * @returns {boolean} - Whether the timer is stopped.\n * @memberof KavaTimer\n * @instance\n */\n public isStopped(): boolean {\n return this._stopped;\n }\n\n /**\n * Destroys the timer.\n * @returns {void}\n * @memberof KavaTimer\n * @instance\n */\n public destroy(): void {\n this._terminateTimer();\n }\n\n private _terminateTimer(): void {\n if (this._timer) {\n this._timer.stop();\n this._timer = null;\n }\n }\n\n private _monitor(): void {\n if (this._stopped) {\n if (this._resetCounter === this._config.resetCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.RESET));\n this._resetCounter = 0;\n this._eventCounter = 0;\n }\n this._resetCounter++;\n } else {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.TICK));\n if (this._eventCounter === this._config.eventCounter) {\n this.dispatchEvent(new FakeEvent(KavaTimer.Event.REPORT));\n this._eventCounter = 0;\n }\n this._eventCounter++;\n }\n }\n}\n\nexport { KavaTimer };\n","export enum EventBucketName {\n ApplicationEvents = 'ApplicationEvents',\n PlayerEvents = 'PlayerEvents'\n}\n","// EventVar 1 in kava server\n\nexport enum ButtonType {\n Create = 1,\n Filter = 2,\n Search = 3,\n Export = 4,\n Navigate = 5,\n Schedule = 6,\n Insert = 7,\n Choose = 8,\n Launch = 9,\n Open = 10,\n Send = 11,\n Invite = 12,\n Close = 13,\n Save = 14,\n Expand = 15,\n Collapse = 16,\n Edit = 17,\n Delete = 18,\n Browse = 19,\n Load = 20,\n Add = 21,\n Menu = 22,\n Register = 23,\n Login = 24,\n Link = 25,\n Toggle = 26,\n Thumbnail = 27,\n Download = 28,\n Share = 29\n}\n","export const ApplicationEventType = {\n BUTTON_CLICKED: 10002,\n PAGE_LOAD: 10003\n};\n","// // EventVar 1 in kava server\nexport enum PageLoadType {\n View = 1,\n Create = 2,\n Edit = 3,\n Participate = 4,\n List = 5,\n Analytics = 6,\n Admin = 7,\n Error = 8,\n Login = 9,\n Registration = 10,\n Custom = 11\n}\n","const playkitUIEventsNamespace = 'playkit-ui';\nexport const PlaykitUIEvents = {\n USER_CLICKED_LOGO: `${playkitUIEventsNamespace}-userclickedlogo`,\n USER_SELECTED_CAPTIONS_SIZE: `${playkitUIEventsNamespace}-userselectedcaptionssize`,\n USER_SELECTED_CAPTIONS_ALIGNMENT: `${playkitUIEventsNamespace}-userselectedcaptionsalignment`,\n USER_SELECTED_CAPTIONS_FONT_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsfontcolor`,\n USER_SELECTED_CAPTIONS_FONT_FAMILY: `${playkitUIEventsNamespace}-userselectedcaptionsfontfamily`,\n USER_SELECTED_CAPTIONS_FONT_STYLE: `${playkitUIEventsNamespace}-userselectedcaptionsfontstyle`,\n USER_SELECTED_CAPTIONS_FONT_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsfontopacity`,\n USER_SELECTED_CAPTIONS_BACKGROUND_COLOR: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundcolor`,\n USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY: `${playkitUIEventsNamespace}-userselectedcaptionsbackgroundopacity`\n};\n\nexport const NavigationEvents = {\n NAVIGATION_OPEN: 'navigation_open',\n NAVIGATION_CLOSE: 'navigation_close',\n NAVIGATION_SEARCH: 'navigation_search',\n NAVIGATION_ITEM_CLICK: 'navigation_item_click',\n NAVIGATION_EXPANDABLE_TEXT_CLICK: 'navigation_expandable_text_clicked'\n};\n\nexport const DownloadEvents = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked',\n SHOW_OVERLAY: 'download_show_overlay',\n HIDE_OVERLAY: 'download_hide_overlay'\n};\n\nexport const TranscriptEvents = {\n TRANSCRIPT_OPEN: 'transcript_open',\n TRANSCRIPT_CLOSE: 'transcript_close',\n TRANSCRIPT_DOWNLOAD: 'transcript_download',\n TRANSCRIPT_PRINT: 'transcript_print',\n TRANSCRIPT_SEARCH: 'transcript_search',\n TRANSCRIPT_NAVIGATE_RESULT: 'transcript_navigate_result',\n TRANSCRIPT_POPOUT_OPEN: 'transcript_popout_open',\n TRANSCRIPT_POPOUT_CLOSE: 'transcript_popout_close',\n TRANSCRIPT_POPOUT_DRAG: 'transcript_popout_drag',\n TRANSCRIPT_POPOUT_RESIZE: 'transcript_popout_resize'\n};\n\nexport const DualscreenEvents = {\n CHANGE_LAYOUT: 'dualscreen_change_layout'\n};\nexport const ShareEvents = {\n SHARE_CLICKED: 'share_clicked',\n SHARE_CLOSE: 'share_close',\n SHARE_NETWORK: 'share_network',\n SHARE_COPY: 'share_copy'\n};\n\nexport const BumperEvents = {\n BUMPER_CLICKED: 'bumper_clicked'\n};\nexport const SkipEvents = {\n SKIP_BUTTON_CLICK: 'skip_button_click',\n SKIP_BUTTON_DISPLAYED: 'skip_button_displayed'\n};\nexport const PlaylistEvents = {\n PLAYLIST_OPEN: 'playlist_open',\n PLAYLIST_CLOSE: 'playlist_close'\n};\n\nexport const RelatedEvents = {\n RELATED_OPEN: 'related_open',\n RELATED_CLOSE: 'related_close',\n RELATED_ENTRY_SELECTED: 'related_entry_selected',\n RELATED_ENTRY_AUTO_PLAYED: 'related_entry_auto_played',\n RELATED_GRID_DISPLAYED: 'related_grid_displayed'\n};\n\nexport const CallToActionEvents = {\n CALL_TO_ACTION_BUTTON_CLICK: 'call_to_action_button_click'\n};\n\nexport const HotspotsEvents = {\n HOTSPOT_CLICK: 'hotspot_click',\n HOTSPOT_DISPLAYED: 'hotspot_displayed'\n};\n\nexport const IvqEventTypes = {\n QUIZ_STARTED: 'QuizStarted',\n QUIZ_SKIPPED: 'QuizSkipped',\n QUIZ_SEEK: 'QuizSeek',\n QUESTION_ANSWERED: 'QuestionAnswered',\n QUIZ_SUBMITTED: 'QuizSubmitted',\n QUIZ_RETAKE: 'QuizRetake',\n QUIZ_QUESTION_CHANGED: 'QuizQuestionChanged'\n};\n\nexport const DetectAdBlockEvents = {\n DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN: 'detect_ad_block_partial_overlay_shown',\n DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN: 'detect_ad_block_full_overlay_shown',\n DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED: 'detect_ad_block_secondary_button_clicked',\n DETECT_AD_BLOCK_X_BUTTON_CLICKED: 'detect_ad_block_x_button_clicked',\n DETECT_AD_BLOCK_AD_BLOCKER_DISABLED: 'detect_ad_block_ad_blocker_disabled',\n DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED: 'detect_ad_block_ad_blocker_not_disabled'\n};\n\nexport const PluginsEvents = {\n ...NavigationEvents,\n ...DownloadEvents,\n ...TranscriptEvents,\n ...DualscreenEvents,\n ...ShareEvents,\n ...BumperEvents,\n ...SkipEvents,\n ...PlaylistEvents,\n ...RelatedEvents,\n ...CallToActionEvents,\n ...HotspotsEvents,\n ...IvqEventTypes,\n ...DetectAdBlockEvents\n};\n","type ApplicationType = { [app: string]: string };\n\nconst KalturaApplication: ApplicationType = {\n KMC: '0',\n KMS: '1',\n KAF: '2',\n PITCH: '3',\n KMS_GO: '4',\n WEBCASTING: '5',\n PERSONAL_CAPTURE: '6',\n KME: '7',\n KME_MOBILE_APP: '8',\n PATH: '9',\n LECTURE_CAPTURE: '10',\n EP: '11',\n CHAT_AND_COLLABORATION: '12',\n ANALYTICS: '13',\n EXPRESS_CAPTURE: '14',\n KPF: '15',\n KAF_GO: '16',\n SITES: '17',\n STUDIO: '18',\n CAPTIONS_EDITOR: '19',\n CHECKLIST: '20',\n PLAYER: '21'\n};\n\nexport { KalturaApplication };\nexport type { ApplicationType };\n","import { KavaModel } from './kava-model';\nimport { KavaEvent } from './types';\nimport { ButtonType } from './enums/button-type';\nimport { ApplicationEventType } from './enums/application-event-type';\nimport { PageLoadType } from './enums/page-load-type';\nimport { PlaykitUIEvents, PluginsEvents } from './applications-events';\nimport { KalturaApplication } from './enums/kaltura-application';\n\nexport function getApplicationEventsModel(eventObj: KavaEvent, model: KavaModel, innerEventPayload: any): any {\n const commonModel = {\n partnerId: model.getPartnerId(),\n entryId: model.getEntryId(),\n sessionId: model.getSessionId(),\n kalturaApplication: KalturaApplication.PLAYER\n };\n\n if (model.getVirtualEventId()) {\n commonModel['virtualEventId'] = model.getVirtualEventId();\n }\n if (model.getKalturaApplication()) {\n commonModel['application'] = model.getApplication();\n }\n if (model.getApplicationVersion()) {\n commonModel['applicationVer'] = model.getApplicationVersion();\n }\n if (model.getKalturaApplicationVersion()) {\n commonModel['kalturaApplicationVer'] = model.getKalturaApplicationVersion();\n }\n if (model.getUserId()) {\n commonModel['userId'] = model.getUserId();\n }\n if (model.getKS()) {\n commonModel['ks'] = model.getKS();\n }\n\n const eventModel = eventObj.getEventModel(innerEventPayload);\n const namedEventModel = {};\n const { eventType, eventVar1, eventVar2, eventVar3 } = eventModel;\n namedEventModel['eventType'] = eventType;\n\n if (eventModel.eventType === ApplicationEventType.BUTTON_CLICKED) {\n namedEventModel['buttonName'] = eventVar1;\n namedEventModel['buttonType'] = eventVar2;\n namedEventModel['buttonValue'] = eventVar3;\n } else if (eventModel.eventType === ApplicationEventType.PAGE_LOAD) {\n namedEventModel['pageName'] = eventVar1;\n namedEventModel['pageType'] = eventVar2;\n namedEventModel['pageValue'] = eventVar3;\n }\n return Object.assign(namedEventModel, commonModel);\n}\n\nexport const ApplicationEventsModel: { [playerEventName: string]: KavaEvent } = {\n [PluginsEvents.CHANGE_LAYOUT]: {\n type: 'CHANGE_LAYOUT',\n getEventModel: ({ layout }: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: layout !== 'Hidden' ? 'Dual__screen_change_layout' : '',\n eventVar2: ButtonType.Choose,\n eventVar3: layout\n })\n },\n [PluginsEvents.SHARE_CLICKED]: {\n type: 'SHARE_CLICKED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_open',\n eventVar2: ButtonType.Open,\n eventVar3: ''\n })\n },\n [PluginsEvents.SHARE_CLOSE]: {\n type: 'SHARE_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.SHARE_NETWORK]: {\n type: 'SHARE_NETWORK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption']\n };\n let eventVar1: string = '';\n\n switch (payload.socialNetworkName) {\n case 'twitter':\n eventVar1 = 'Share_embed_X_click';\n break;\n case 'facebook':\n eventVar1 = 'Share_embed_facebook_click';\n break;\n case 'email':\n eventVar1 = 'Share_embed_email_click';\n break;\n case 'linkedin':\n eventVar1 = 'Share_embed_linkedin_click';\n break;\n case 'embed':\n eventVar1 = 'Share_embed_embed_click';\n break;\n }\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SHARE_COPY]: {\n type: 'SHARE_COPY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Share_embed_copy_click',\n eventVar2: ButtonType.Share,\n eventVar3: payload['videoClippingOption'] === 'full' ? 'full-length' : payload['videoClippingOption']\n })\n },\n [PluginsEvents.DOWNLOAD_ITEM_CLICKED]: {\n type: 'DOWNLOAD_ITEM_CLICKED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Download\n };\n const { assetType, fileType, description } = payload;\n\n let eventVar1: string;\n let eventVar3: string;\n\n switch (assetType) {\n case 'Media':\n eventVar1 = 'Download_video_download';\n eventVar3 = description;\n break;\n case 'Captions':\n eventVar1 = 'Download_captions_download';\n eventVar3 = description;\n break;\n case 'Attachments':\n eventVar1 = 'Download_attachment_download';\n eventVar3 = fileType;\n break;\n default:\n eventVar1 = '';\n eventVar3 = '';\n }\n return { ...model, eventVar1, eventVar3 };\n }\n },\n [PluginsEvents.SHOW_OVERLAY]: {\n type: 'SHOW_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_open',\n eventVar2: ButtonType.Open,\n eventVar3: ''\n })\n },\n [PluginsEvents.HIDE_OVERLAY]: {\n type: 'HIDE_OVERLAY',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Download_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.BUMPER_CLICKED]: {\n type: 'BUMPER_CLICKED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Bumper_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['clickThroughUrl']\n })\n },\n [PluginsEvents.NAVIGATION_OPEN]: {\n type: 'NAVIGATION_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Navigation_open_auto' : 'Navigation_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.NAVIGATION_CLOSE]: {\n type: 'NAVIGATION_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Navigation_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.NAVIGATION_SEARCH]: {\n type: 'NAVIGATION_SEARCH',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED\n };\n\n let eventVar1: string = '';\n let eventVar2: ButtonType = ButtonType.Open;\n\n const { searchQuery, activeTab, availableTabs } = payload;\n\n const eventVar3 = searchQuery;\n switch (activeTab) {\n case 'All':\n const isItSearch = searchQuery.length > 0 || availableTabs.length === 0;\n eventVar1 = isItSearch ? 'Navigation_search' : 'Navigation_all_tab';\n eventVar2 = isItSearch ? ButtonType.Search : ButtonType.Open;\n break;\n case 'Chapter':\n eventVar1 = 'Navigation_chapters_tab';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slides_tab';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_tab';\n break;\n }\n return { ...model, eventVar1, eventVar2, eventVar3 };\n }\n },\n [PluginsEvents.NAVIGATION_ITEM_CLICK]: {\n type: 'NAVIGATION_ITEM_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Choose,\n eventVar3: ''\n };\n\n let eventVar1: string = '';\n\n switch (payload.itemType) {\n case 'Chapter':\n eventVar1 = 'Navigation_chapter_click';\n break;\n case 'Slide':\n eventVar1 = 'Navigation_slide_click';\n break;\n case 'Hotspot':\n eventVar1 = 'Navigation_hotspots_click';\n break;\n }\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.NAVIGATION_EXPANDABLE_TEXT_CLICK]: {\n type: 'NAVIGATION_EXPANDABLE_TEXT_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: ''\n };\n\n const { isTextExpanded, itemType } = payload;\n\n let eventVar1: string = '';\n const eventVar2 = isTextExpanded ? ButtonType.Expand : ButtonType.Collapse;\n\n switch (itemType) {\n case 'Chapter':\n eventVar1 = isTextExpanded ? 'Navigation_chapters_see_more' : 'Navigation_chapters_see_less';\n break;\n case 'Slide':\n eventVar1 = isTextExpanded ? 'Navigation_slides_see_more' : 'Navigation_slides_see_less';\n break;\n case 'Hotspot':\n eventVar1 = isTextExpanded ? 'Navigation_hotspots_see_more' : 'Navigation_hotspots_see_less';\n break;\n }\n\n return { ...model, eventVar1, eventVar2 };\n }\n },\n\n [PluginsEvents.TRANSCRIPT_OPEN]: {\n type: 'TRANSCRIPT_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Transcript_open_auto' : 'Transcript_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_CLOSE]: {\n type: 'TRANSCRIPT_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_DOWNLOAD]: {\n type: 'TRANSCRIPT_DOWNLOAD',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_download',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_PRINT]: {\n type: 'TRANSCRIPT_PRINT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_print',\n eventVar2: ButtonType.Download,\n eventVar3: payload['videoPosition']\n })\n },\n [PluginsEvents.TRANSCRIPT_SEARCH]: {\n type: 'TRANSCRIPT_SEARCH',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_search',\n eventVar2: ButtonType.Search,\n eventVar3: payload.search\n })\n },\n [PluginsEvents.TRANSCRIPT_NAVIGATE_RESULT]: {\n type: 'TRANSCRIPT_NAVIGATE_RESULT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_navigate_result',\n eventVar2: ButtonType.Navigate,\n eventVar3: payload.index\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_OPEN]: {\n type: 'TRANSCRIPT_POPOUT_OPEN',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_open',\n eventVar2: ButtonType.Expand,\n eventVar3: ''\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_CLOSE]: {\n type: 'TRANSCRIPT_POPOUT_CLOSE',\n getEventModel: (payload: { type: string }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_close',\n eventVar2: ButtonType.Collapse,\n eventVar3: payload.type\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_DRAG]: {\n type: 'TRANSCRIPT_POPOUT_DRAG',\n getEventModel: (payload: { position: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_drag',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.position.x},${payload.position.y}`\n })\n },\n [PluginsEvents.TRANSCRIPT_POPOUT_RESIZE]: {\n type: 'TRANSCRIPT_POPOUT_RESIZE',\n getEventModel: (payload: { size: { x: number; y: number } }) => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Transcript_popout_resize',\n eventVar2: ButtonType.Edit,\n eventVar3: `${payload.size.x},${payload.size.y}`\n })\n },\n [PluginsEvents.PLAYLIST_OPEN]: {\n type: 'PLAYLIST_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: payload['auto'] ? ApplicationEventType.PAGE_LOAD : ApplicationEventType.BUTTON_CLICKED,\n eventVar1: payload['auto'] ? 'Playlist_side_panel_open_auto' : 'Playlist_side_panel_open_manual',\n eventVar2: PageLoadType.View,\n eventVar3: payload['position']\n })\n },\n [PluginsEvents.PLAYLIST_CLOSE]: {\n type: 'PLAYLIST_CLOSE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Playlist_side_panel_close_manual',\n eventVar2: ButtonType.Close,\n eventVar3: payload['position']\n })\n },\n [PluginsEvents.SKIP_BUTTON_CLICK]: {\n type: 'SKIP_BUTTON_CLICK',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_click';\n if (mode === 'outro') eventVar1 = 'Skip_outro_click';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.SKIP_BUTTON_DISPLAYED]: {\n type: 'SKIP_BUTTON_DISPLAYED',\n getEventModel: (payload: any): any => {\n const model = {\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar3: ''\n };\n\n const { mode } = payload;\n let eventVar1: string = '';\n\n if (mode === 'intro') eventVar1 = 'Skip_intro_displayed';\n if (mode === 'outro') eventVar1 = 'Skip_outro_displayed';\n\n return { ...model, eventVar1 };\n }\n },\n [PluginsEvents.RELATED_OPEN]: {\n type: 'RELATED_OPEN',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_open_manual',\n eventVar2: ButtonType.Open,\n eventVar3: payload['expandMode']\n })\n },\n [PluginsEvents.RELATED_CLOSE]: {\n type: 'RELATED_CLOSE',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_close',\n eventVar2: ButtonType.Close,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_ENTRY_SELECTED]: {\n type: 'RELATED_ENTRY_SELECTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Related_entry_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_ENTRY_AUTO_PLAYED]: {\n type: 'RELATED_ENTRY_AUTO_PLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_entry_auto_continue',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.RELATED_GRID_DISPLAYED]: {\n type: 'RELATED_GRID_DISPLAYED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Related_open_auto',\n eventVar2: PageLoadType.View,\n eventVar3: ''\n })\n },\n [PluginsEvents.CALL_TO_ACTION_BUTTON_CLICK]: {\n type: 'CALL_TO_ACTION_BUTTON_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar3: payload['label'],\n eventVar2: ButtonType.Link,\n eventVar1: payload['type'] === 'primary' ? 'CTA_primary_button_click' : 'CTA_secondary_button_click'\n })\n },\n [PluginsEvents.HOTSPOT_DISPLAYED]: {\n type: 'HOTSPOT_DISPLAYED',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar1: 'Hotspot_displayed',\n eventVar2: PageLoadType.View,\n eventVar3: payload['label']\n })\n },\n [PluginsEvents.HOTSPOT_CLICK]: {\n type: 'HOTSPOT_CLICK',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Hotspot_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['label']\n })\n },\n [PluginsEvents.QUIZ_STARTED]: {\n type: 'QUIZ_STARTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_start',\n eventVar2: ButtonType.Load,\n eventVar3: ''\n })\n },\n [PluginsEvents.QUIZ_SUBMITTED]: {\n type: 'QUIZ_SUBMITTED',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_submit',\n eventVar2: ButtonType.Send,\n eventVar3: ''\n })\n },\n [PluginsEvents.QUIZ_SKIPPED]: {\n type: 'QUIZ_SKIPPED',\n getEventModel: ({ questionIndex }: { questionIndex: number }): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_skip_question',\n eventVar2: ButtonType.Navigate,\n eventVar3: questionIndex\n })\n },\n [PluginsEvents.QUIZ_SEEK]: {\n type: 'QUIZ_SEEK',\n getEventModel: (): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Quiz_nav_click',\n eventVar2: ButtonType.Navigate,\n eventVar3: ''\n })\n },\n [PlaykitUIEvents.USER_CLICKED_LOGO]: {\n type: 'USER_CLICKED_LOGO',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Logo_click',\n eventVar2: ButtonType.Link,\n eventVar3: payload['logoUrl']\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_SIZE]: {\n type: 'USER_SELECTED_CAPTIONS_SIZE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_size',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_ALIGNMENT]: {\n type: 'USER_SELECTED_CAPTIONS_ALIGNMENT',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_alignment',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_COLOR',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_FAMILY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_FAMILY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_family',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_STYLE]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_STYLE',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_style',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_FONT_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_FONT_OPACITY',\n getEventModel: (payload: any): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_font_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_COLOR]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_COLOR',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_color',\n eventVar2: ButtonType.Choose,\n eventVar3: payload\n })\n },\n [PlaykitUIEvents.USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY]: {\n type: 'USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY',\n getEventModel: (payload: number): any => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar1: 'Advanced_captions_background_opacity',\n eventVar2: ButtonType.Choose,\n eventVar3: `${payload * 100}%`\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Allow_playback'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN]: {\n type: 'DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN',\n getEventModel: () => ({\n eventType: ApplicationEventType.PAGE_LOAD,\n eventVar2: PageLoadType.View,\n eventVar1: 'Ad_blocker_displayed',\n eventVar3: 'Block_playback'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'secondary_button'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_X_BUTTON_CLICKED]: {\n type: 'DETECT_AD_BLOCK_X_BUTTON_CLICKED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_keep_watching',\n eventVar3: 'x_button'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'disabled'\n })\n },\n [PluginsEvents.DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED]: {\n type: 'DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED',\n getEventModel: () => ({\n eventType: ApplicationEventType.BUTTON_CLICKED,\n eventVar2: ButtonType.Close,\n eventVar1: 'Ad_blocker_disabled_ad_blocker',\n eventVar3: 'still_detected'\n })\n }\n};\n","import { getEventModel } from './kava-event-model';\nimport { KavaEvent } from './types';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { getApplicationEventsModel } from './application-events-model';\n\n/**\n * The KAVA model that stores data.\n * @class KavaModel\n * @private\n * @param {?Object} - Initial model.\n */\nclass KavaModel {\n private sessionStartTime!: number;\n private eventIndex!: number;\n private errorPosition!: ErrorPosition;\n private playTimeSum!: number;\n private bufferTime!: number;\n private bufferTimeSum!: number;\n private language!: string;\n private caption!: string;\n private errorCode!: number;\n private errorDetails: any;\n private joinTime!: number;\n private canPlayTime!: number;\n private targetPosition!: number;\n private targetBuffer!: number;\n private registeredPlugins!: string;\n public totalSegmentsDownloadTime: number = 0;\n public totalSegmentsDownloadBytes: number = 0;\n public maxSegmentDownloadTime: number = 0;\n public maxManifestDownloadTime: number = 0;\n private forwardBufferHealth!: number;\n private droppedFramesRatio?: number | null = null;\n private soundMode!: SoundMode;\n private viewabilityMode!: ViewabilityMode;\n private tabMode!: TabMode;\n private screenMode: ScreenMode = ScreenMode.NOT_IN_FULLSCREEN;\n public maxNetworkConnectionOverhead: number = 0;\n private flavorParamsId: number = NaN;\n private networkConnectionType!: string;\n public playerJSLoadTime?: number | null = null;\n private shareNetworkName: string = '';\n private reportType: number = NaN;\n private playbackMode: number = NaN;\n private sourceEntryId: string | null = null;\n\n public getActualBitrate!: () => any;\n public getPlaybackSpeed!: () => any;\n public getAverageBitrate!: () => any;\n public getPartnerId!: () => any;\n public getEntryId!: () => any;\n public getPlaylistId!: () => any;\n public getSessionId!: () => any;\n public getClientVer!: () => any;\n public getClientTag!: () => any;\n public getKS!: () => any;\n public getVirtualEventId!: () => any;\n public getUIConfId!: () => any;\n public getReferrer!: () => any;\n public getCustomVar1!: () => any;\n public getCustomVar2!: () => any;\n public getCustomVar3!: () => any;\n public getPosition!: () => any;\n public getDeliveryType!: () => any;\n public getPlaybackType!: () => any;\n public getPlaybackContext!: () => any;\n public getApplicationVersion!: () => any;\n public getApplication!: () => any;\n public getKalturaApplicationVersion!: () => any;\n public getKalturaApplication!: () => any;\n public getUserId!: () => any;\n public getPersistentSessionId!: () => any;\n\n constructor(model?: object) {\n if (model) {\n this.updateModel(model);\n }\n }\n\n /**\n * Gets the total play time.\n * @returns {number} - The play time sum.\n * @memberof KavaModel\n * @instance\n */\n public getPlayTimeSum(): number {\n return this.playTimeSum;\n }\n\n public getCanPlayTime(): number {\n return this.canPlayTime;\n }\n\n /**\n * Gets the buffer time.\n * @returns {number} - The buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTime(): number {\n return this.bufferTime;\n }\n\n /**\n * Gets the total buffer time.\n * @returns {number} - The total buffer time.\n * @memberof KavaModel\n * @instance\n */\n public getBufferTimeSum(): number {\n return this.bufferTimeSum;\n }\n\n /**\n * Gets the player bundle js load duration time\n * @returns {number} - The player js load duration time\n * @memberof KavaModel\n * @instance\n */\n public getPlayerJSLoadTime(): number | null {\n if (this.playerJSLoadTime) {\n return Math.round(this.playerJSLoadTime * 1000) / 1000;\n } else {\n return null;\n }\n }\n\n /**\n * Gets the join time.\n * @returns {number} - The join time.\n * @memberof KavaModel\n * @instance\n */\n public getJoinTime(): number {\n return this.joinTime;\n }\n\n /**\n * Gets a target position\n * @returns {number} - The target position.\n * @memberof KavaModel\n * @instance\n */\n public getTargetPosition(): number {\n return this.targetPosition;\n }\n\n /**\n * Gets the target buffer\n * @returns {number} - The target buffer in seconds.\n * @memberof KavaModel\n * @instance\n */\n public getTargetBuffer(): number {\n return this.targetBuffer;\n }\n\n /**\n * Gets registered plugins list\n * @returns {string} - The current list of loaded plugins\n * @memberof KavaModel\n * @instance\n */\n public getRegisteredPlugins(): string {\n return this.registeredPlugins;\n }\n\n /**\n * Gets an audio language.\n * @returns {string} - The audio language.\n * @memberof KavaModel\n * @instance\n */\n public getLanguage(): string {\n return this.language;\n }\n\n /**\n * Gets a caption language.\n * @returns {string} - The caption language.\n * @memberof KavaModel\n * @instance\n */\n public getCaption(): string {\n return this.caption;\n }\n\n /**\n * Gets the average bandwidth since last report.\n * @returns {number} - The bandwidth in kbps\n * @memberof KavaModel\n * @instance\n */\n public getBandwidth(): number {\n return this.totalSegmentsDownloadTime > 0 ? Math.round((this.totalSegmentsDownloadBytes * 8) / this.totalSegmentsDownloadTime) / 1000 : 0;\n }\n\n /**\n * Returns the longest manifest download time in seconds\n * @returns {number} - manifest max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getMaxManifestDownloadTime(): number {\n return this.maxManifestDownloadTime;\n }\n\n /**\n * Returns the longest segment download time in seconds\n * @returns {number} - segment max download time in seconds\n * @memberof KavaModel\n * @instance\n */\n public getSegmentDownloadTime(): number {\n return this.maxSegmentDownloadTime;\n }\n\n /**\n * Gets the forward buffer health ratio.\n * @returns {number} - the ratio between the available buffer and the target buffer\n * @memberof KavaModel\n * @instance\n */\n public getForwardBufferHealth(): number {\n return this.forwardBufferHealth;\n }\n /**\n * Gets the dropped frames ratio since last view event.\n * @returns {number} - dropped frames ratio since last view event\n * @memberof KavaModel\n * @instance\n */\n public getDroppedFramesRatio(): number | null | undefined {\n return this.droppedFramesRatio;\n }\n\n /**\n * Gets the sound mode of the player.\n * @returns {SoundMode} the state of the sound (muted ot not)\n * @memberof KavaModel\n * @instance\n */\n public getSoundMode(): SoundMode {\n return this.soundMode;\n }\n\n /**\n * Gets the viewability mode of the player.\n * @returns {ViewabilityMode} the state of the view (in-view ot not)\n * @memberof KavaModel\n * @instance\n */\n public getViewabilityMode(): ViewabilityMode {\n return this.viewabilityMode;\n }\n\n /**\n * Gets the screen mode of the browser player.\n * @returns {number} the state of the full screen if is on or not.\n * @memberof KavaModel\n * @instance\n */\n public getScreenMode(): ScreenMode {\n return this.screenMode;\n }\n\n /**\n * Gets the Tab mode of the browser.\n * @returns {TabMode} the state of the tab (focused or not)\n * @memberof KavaModel\n * @instance\n */\n public getTabMode(): TabMode {\n return this.tabMode;\n }\n\n /**\n * Gets the effectiveType read-only property of the NetworkInformation interface (from navigator)\n * @returns {string} the effective type of the connection meaning one of 'slow-2g', '2g', '3g', or '4g'\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionType(): string {\n return this.networkConnectionType;\n }\n\n /**\n * Gets the max dns+ssl+tcp resolving time over all video segments\n * @returns {number} max dns+ssl+tcp in seconds\n * @memberof KavaModel\n * @instance\n */\n public getNetworkConnectionOverhead(): number {\n // convert ms to seconds in 0.xxx format\n return Math.round(this.maxNetworkConnectionOverhead) / 1000;\n }\n\n /**\n * Gets the error code.\n * @returns {number} - The error code.\n * @memberof KavaModel\n * @instance\n */\n public getErrorCode(): number {\n return this.errorCode;\n }\n\n /**\n * Gets the flavor id from ID3 tag in the packager\n * @returns {number} - The flavor id.\n * @memberof KavaModel\n * @instance\n */\n public getFlavorParamsId(): number {\n return this.flavorParamsId;\n }\n\n /**\n * Gets the error additional data.\n * @returns {string} - The stringifyed error data.\n * @memberof KavaModel\n * @instance\n */\n public getErrorDetails(): string {\n let retVal: string = '';\n if (this.errorDetails) {\n try {\n retVal = JSON.stringify(this.errorDetails);\n } catch (e) {\n // do nothing\n }\n }\n return retVal;\n }\n\n /**\n * Gets the event index counter.\n * @returns {number} - The event index counter.\n * @memberof KavaModel\n * @instance\n */\n public getEventIndex(): number {\n return this.eventIndex;\n }\n\n /**\n * Gets the error position (start or mid playing)\n * @returns {number} - The error position - 1 for pre playing, 2 for mid stream error\n * @memberof KavaModel\n * @instance\n */\n public getErrorPosition(): ErrorPosition {\n return this.errorPosition;\n }\n\n /**\n * Gets the session start time.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getSessionStartTime(): number {\n return this.sessionStartTime;\n }\n\n /**\n * Gets the share network name.\n * @returns {number} - The session start time.\n * @memberof KavaModel\n * @instance\n */\n public getShareNetworkName(): string {\n return this.shareNetworkName;\n }\n\n public getReportType(): number {\n return this.reportType;\n }\n\n public getPlaybackMode(): number {\n return this.playbackMode;\n }\n\n /**\n * Gets the source entry id - the entry id that the current part of a simulive entry was generated from.\n * @returns {string} - Source entry id.\n * @memberof KavaModel\n * @instance\n */\n public getSourceEntryId(): string | null {\n return this.sourceEntryId;\n }\n\n /**\n * Updates the model.\n * @param {Object} obj - A partial or full updated model.\n * @returns {void}\n * @memberof KavaModel\n * @instance\n */\n public updateModel(obj: object): void {\n Object.assign(this, obj);\n }\n\n /**\n * Gets the model for a certain event.\n * @param {KavaEvent} eventObj - The event object.\n * @param {EventBucketName} eventBucketName - The dashboard name in kava dashboards.\n * @param {any} eventPayload - The original player event payload.\n * @returns {Object} - The event model.\n * @memberof KavaModel\n * @instance\n */\n public getModel(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): any {\n switch (eventBucketName) {\n case EventBucketName.PlayerEvents:\n return getEventModel(eventObj, this);\n case EventBucketName.ApplicationEvents:\n return getApplicationEventsModel(eventObj, this, eventPayload);\n }\n }\n}\n\nenum SoundMode {\n SOUND_OFF = 1,\n SOUND_ON = 2\n}\n\nenum ViewabilityMode {\n NOT_IN_VIEW = 1,\n IN_VIEW = 2\n}\n\nenum TabMode {\n TAB_NOT_FOCUSED = 1,\n TAB_FOCUSED = 2\n}\n\nenum ScreenMode {\n NOT_IN_FULLSCREEN = 1,\n FULLSCREEN = 2\n}\n\nenum ErrorPosition {\n PRE_PLAY = 3,\n PRE_PLAYING = 1,\n MID_STREAM = 2\n}\n\nexport { KavaModel, SoundMode, TabMode, ErrorPosition, ScreenMode, ViewabilityMode };\n","import { KavaHttpMethodType } from '../types';\n\nconst HttpMethodType: KavaHttpMethodType = {\n GET: 'GET',\n POST: 'POST'\n};\n\nexport { HttpMethodType };\n","import { BasePlugin, core, KalturaPlayer } from '@playkit-js/kaltura-player-js';\nimport { FakeEvent, VideoTrack } from '@playkit-js/playkit-js';\nimport { OVPAnalyticsService } from '@playkit-js/playkit-js-providers/analytics-service';\nimport { KavaEventModel, KavaEventType } from './kava-event-model';\nimport { KavaRateHandler } from './kava-rate-handler';\nimport { KavaTimer } from './kava-timer';\nimport { ErrorPosition, KavaModel, ScreenMode, SoundMode, TabMode, ViewabilityMode } from './kava-model';\nimport { HttpMethodType } from './enums/http-method-type';\nimport { KalturaApplication } from './enums/kaltura-application';\nimport { KavaConfigObject, KavaEvent } from './types';\nimport { DownloadEvent, InfoEvent, ModerationEvent, RelatedEvent, ShareEvent } from './temp-imported-plugins-event-names-temp';\nimport { PluginsEvents, PlaykitUIEvents } from './applications-events';\nimport { EventBucketName } from './enums/event-bucket-name';\nimport { ApplicationEventsModel, getApplicationEventsModel } from './application-events-model';\n\nconst { Error: PKError, Utils } = core;\nconst DIVIDER: number = 1024;\nconst TEXT_TYPE: string = 'TEXT';\n/**\n * Kaltura Advanced Analytics plugin.\n * @class Kava\n * @param {string} name - The plugin name.\n * @param {Player} player - The player instance.\n * @param {KavaConfigObject} config - The plugin config.\n */\nclass Kava extends BasePlugin {\n private _model: KavaModel;\n private _timer: KavaTimer;\n private _rateHandler: KavaRateHandler;\n private _viewEventEnabled: boolean;\n private _firstPlayRequestTime!: number;\n private _bufferStartTime!: number;\n private _previousCurrentTime!: number;\n private _isFirstPlay!: boolean;\n private _isFirstPlaying!: boolean;\n private _isEnded!: boolean;\n private _isPaused!: boolean;\n private _isBuffering!: boolean;\n private _timePercentEvent!: { [time: string]: boolean };\n private _isPlaying!: boolean;\n private _loadStartTime!: number;\n private _lastDroppedFrames: number = 0;\n private _lastTotalFrames: number = 0;\n private _performanceObserver!: PerformanceObserver;\n private _performanceEntries: PerformanceEntry[] = [];\n private _pendingFragLoadedUrls: string[] = [];\n private _fragLoadedFiredOnce: boolean = false;\n private _canPlayOccured: boolean = false;\n private _isManualPreload: boolean = false;\n private _lastViewEventPlayTime: number = -1;\n\n /**\n * Default config of the plugin.\n * @type {Object}\n * @static\n * @memberof Kava\n */\n public static defaultConfig: any = {\n serviceUrl: `${Utils.Http.protocol}//analytics.kaltura.com/api_v3/index.php`,\n requestMethod: HttpMethodType.POST,\n viewEventCountdown: 10,\n resetSessionCountdown: 30,\n dvrThreshold: 120,\n playbackContext: '',\n applicationVersion: '',\n application: '',\n kalturaApplicationVersion: '',\n kalturaApplication: 'PLAYER'\n };\n\n /**\n * @static\n * @return {boolean} - Whether the plugin is valid in the current environment.\n * @memberof Kava\n */\n public static isValid(): boolean {\n return true;\n }\n\n constructor(name: string, player: KalturaPlayer, config: KavaConfigObject) {\n super(name, player, config);\n this._rateHandler = new KavaRateHandler();\n this._model = new KavaModel();\n this._setModelDelegates();\n this._timer = new KavaTimer({\n resetCounter: this.config.resetSessionCountdown,\n eventCounter: this.config.viewEventCountdown\n });\n this._viewEventEnabled = true;\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n // check the Resource Timing API is supported in the browser and we have a uiConfId\n if (performance && this.config.uiConfId) {\n const entry = performance.getEntriesByType('resource').find((entry) => entry.name.match('embedPlaykitJs.*' + this.config.uiConfId));\n if (entry) {\n this._model.updateModel({ playerJSLoadTime: entry.duration });\n }\n }\n }\n\n private _updateSoundModeInModel(): void {\n this._model.updateModel({\n soundMode: this.player.muted || this.player.volume === 0 ? SoundMode.SOUND_OFF : SoundMode.SOUND_ON\n });\n }\n\n private _updateViewabilityModeInModel(isVisible: boolean): void {\n this._model.updateModel({\n viewabilityMode: isVisible || this.player.isInPictureInPicture() ? ViewabilityMode.IN_VIEW : ViewabilityMode.NOT_IN_VIEW\n });\n }\n\n private _handleNewPerformanceEntries(list: PerformanceObserverEntryList): void {\n const perfEntries = list.getEntries();\n for (let i = 0; i < perfEntries.length; i++) {\n this._performanceEntries.push(perfEntries[i]);\n }\n while (this._pendingFragLoadedUrls.length) {\n // handle frag loaded events which haven't been added to the entry list yet\n this._handleFragPerformanceObserver(this._pendingFragLoadedUrls.pop()!);\n }\n }\n\n /**\n * Destroys the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public destroy(): void {\n this.eventManager.destroy();\n this._reset();\n }\n\n private _reset(): void {\n this._timer.destroy();\n this._rateHandler.destroy();\n if (this._performanceObserver) {\n this._performanceObserver.disconnect();\n }\n this._performanceEntries = [];\n this._pendingFragLoadedUrls = [];\n }\n\n /**\n * Reset the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public reset(): void {\n this.eventManager.removeAll();\n this._resetFlags();\n this._addBindings();\n this._model.updateModel({\n eventIndex: 1,\n bufferTime: 0.0,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0,\n sessionStartTime: null\n });\n this._reset();\n }\n\n /**\n * loadMedia of the plugin.\n * @return {void}\n * @memberof Kava\n * @instance\n */\n public loadMedia(): void {\n if (window.PerformanceObserver) {\n this._performanceObserver = new window.PerformanceObserver(this._handleNewPerformanceEntries.bind(this));\n this._performanceObserver.observe({ entryTypes: ['resource'] });\n }\n }\n\n /**\n * Gets the model object for a certain event.\n * @param {string} event - Event name.\n * @returns {Object} - Model object.\n * @instance\n * @memberof Kava\n * @example\n * const kava = player.plugins.kava;\n * const viewModel = kava.getEventModel(kava.EventType.VIEW);\n * kava.sendAnalytics(viewModel);\n */\n public getEventModel(event: string): any {\n if (event) {\n return this._model.getModel(KavaEventModel[event]);\n }\n }\n\n /**\n * @returns {KavaEventType} - The kava events list.\n * @instance\n * @memberof Kava\n */\n public get EventType(): { [event: string]: string } {\n return Utils.Object.copyDeep(KavaEventType);\n }\n\n /**\n * Sends KAVA analytics event to analytics service.\n * @param {Object} model - Event model.\n * @returns {Promise} - Promise to indicate request succeed or failed.\n * @instance\n * @memberof Kava\n * @example\n * player.plugins.kava.sendAnalytics({...})\n * .then(() => {\n * console.log('kava analytics sent successfully');\n * })\n * .catch(e => {\n * console.log('kava analytics send failed', e);\n * });\n */\n public sendAnalytics(model: any): Promise<void> {\n return new Promise((resolve, reject) => {\n OVPAnalyticsService.trackEvent(this.config.serviceUrl, model, this.config.requestMethod)\n .doHttpRequest()\n .then(\n (response) => {\n this._handleServerResponseSuccess(response, model);\n resolve();\n },\n (err) => {\n this._handleServerResponseFailed(err, model);\n reject(err);\n }\n );\n this._model.updateModel({ eventIndex: this._model.getEventIndex() + 1 });\n });\n }\n\n private _resetFlags(): void {\n this._previousCurrentTime = 0;\n this._lastViewEventPlayTime = -1;\n this._isPlaying = false;\n this._isFirstPlay = true;\n this._isFirstPlaying = true;\n this._isEnded = false;\n this._isPaused = false;\n this._isBuffering = false;\n this._timePercentEvent = {\n PLAY_REACHED_25_PERCENT: false,\n PLAY_REACHED_50_PERCENT: false,\n PLAY_REACHED_75_PERCENT: false,\n PLAY_REACHED_100_PERCENT: false\n };\n this._canPlayOccured = false;\n this._isManualPreload = false;\n }\n\n private _resetSession(): void {\n this.logger.debug('Reset KAVA session');\n this._rateHandler.reset();\n this._model.updateModel({\n eventIndex: 1,\n bufferTimeSum: 0.0,\n playTimeSum: 0.0\n });\n }\n\n private _sendAnalytics(eventObj: KavaEvent, eventBucketName: EventBucketName = EventBucketName.PlayerEvents, eventPayload?: any): void {\n if (!this._validate()) {\n return;\n }\n if (this._isBuffering) {\n this._updateBufferModel();\n this._bufferStartTime = Date.now();\n }\n const model = this._model.getModel(eventObj, eventBucketName, eventPayload);\n if (typeof this.config.tamperAnalyticsHandler === 'function') {\n const sendRequest = this.config.tamperAnalyticsHandler(model);\n if (!sendRequest) {\n this.logger.debug('Cancel KAVA request', model);\n return;\n }\n }\n this.logger.debug(`Sending KAVA event ${model.eventType}:${eventObj.type}`);\n this.sendAnalytics(model).catch(() => {});\n }\n\n private _handleServerResponseSuccess(response: any, model: any): void {\n this.logger.debug('KAVA event sent', model);\n this._updateSessionStartTimeModel(response);\n }\n\n private _handleServerResponseFailed(err: any, model: any): void {\n this.logger.warn('Failed to send KAVA event', model, err);\n }\n\n private _addBindings(): void {\n this.eventManager.listen(this._timer, KavaTimer.Event.TICK, () => this._rateHandler.countCurrent());\n this.eventManager.listen(this._timer, KavaTimer.Event.REPORT, () => this._onReport());\n this.eventManager.listen(this._timer, KavaTimer.Event.RESET, () => this._resetSession());\n this.eventManager.listen(this.player, this.player.Event.Core.SOURCE_SELECTED, () => this._onSourceSelected());\n this.eventManager.listen(this.player, this.player.Event.Core.ERROR, (event) => this._onError(event));\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAY, () => this._onFirstPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.FRAG_LOADED, (event) => this._onFragLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.MANIFEST_LOADED, (event) => this._onManifestLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TIMED_METADATA, (event) => this._onTimedMetadataLoaded(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TRACKS_CHANGED, () => this._setInitialTracks());\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYING, () => this._onPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.FIRST_PLAYING, () => this._onFirstPlaying());\n this.eventManager.listen(this.player, this.player.Event.Core.SEEKING, () => this._onSeeking());\n this.eventManager.listen(this.player, this.player.Event.Core.PAUSE, () => this._onPause());\n this.eventManager.listen(this.player, this.player.Event.Core.ENDED, () => this._onEnded());\n this.eventManager.listen(this.player, this.player.Event.Core.VIDEO_TRACK_CHANGED, (event) => this._onVideoTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.AUDIO_TRACK_CHANGED, (event) => this._onAudioTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.TEXT_TRACK_CHANGED, (event) => this._onTextTrackChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.PLAYER_STATE_CHANGED, (event) => this._onPlayerStateChanged(event));\n this.eventManager.listen(this.player, this.player.Event.Core.RATE_CHANGE, () => this._onPlaybackRateChanged());\n this.eventManager.listen(this.player, this.player.Event.Core.CAN_PLAY, () => this._onCanPlay());\n this.eventManager.listen(this.player, this.player.Event.Core.LOAD_START, () => this._onLoadStart());\n this.eventManager.listen(this.player, this.player.Event.Core.VOLUME_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.VISIBILITY_CHANGE, (e) => this._updateViewabilityModeInModel(e.payload.visible));\n this.eventManager.listen(this.player, this.player.Event.Core.MUTE_CHANGE, () => this._updateSoundModeInModel());\n this.eventManager.listen(this.player, this.player.Event.Core.ENTER_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.Core.EXIT_FULLSCREEN, () => this._onFullScreenChanged(ScreenMode.NOT_IN_FULLSCREEN));\n this.eventManager.listen(this.player, this.player.Event.REGISTERED_PLUGINS_LIST_EVENT, (e) => this._onRegisteredPluginsListChange(e.payload));\n this.eventManager.listen(this.player, RelatedEvent.RELATED_OPEN, () => this._onRelatedClicked());\n this.eventManager.listen(this.player, RelatedEvent.RELATED_SELECTED, () => this._onRelatedSelected());\n this.eventManager.listen(this.player, ShareEvent.SHARE_CLICKED, () => this._onShareClicked());\n this.eventManager.listen(this.player, ShareEvent.SHARE_NETWORK, (event) => this._onShareNetworkClicked(event));\n this.eventManager.listen(this.player, DownloadEvent.DOWNLOAD_ITEM_CLICKED, () => this._onDownloadItemClicked());\n this.eventManager.listen(this.player, InfoEvent.INFO_SCREEN_OPEN, () => this._onInfoScreenOpened());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_CLICKED, () => this._onReportClicked());\n this.eventManager.listen(this.player, ModerationEvent.REPORT_SUBMITTED, (event) => this._onReportSubmitted(event));\n this._bindApplicationEvents();\n this._bindPlaykitUIEvents();\n this._initTabMode();\n this._initNetworkConnectionType();\n }\n\n private _bindPlaykitUIEvents(): void {\n Object.values(PlaykitUIEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _bindApplicationEvents(): void {\n Object.values(PluginsEvents).forEach((event) => {\n this.eventManager.listen(this.player, event, (e: FakeEvent) => {\n if (e.type in ApplicationEventsModel) {\n if (this._isApplicationEventValid(e)) {\n this._sendAnalytics(ApplicationEventsModel[e.type], EventBucketName.ApplicationEvents, e.payload);\n }\n }\n });\n });\n }\n\n private _onFirstPlaying(): void {\n this._isPlaying = true;\n if (!this._fragLoadedFiredOnce && this._performanceObserver) {\n this._performanceObserver.disconnect();\n this.logger.debug(\"This adapter / media doesn't fire fragLoaded - disconnect performance observer\");\n }\n }\n\n private _onLoadStart(): void {\n this._loadStartTime = Date.now();\n }\n\n private _getRates(): Array<number> {\n const rates: number[] = [];\n const videoTracks: VideoTrack[] = this.player.getTracks(this.player.Track.VIDEO) as unknown as VideoTrack[];\n videoTracks.forEach((videoTrack) => rates.push(videoTrack.bandwidth / DIVIDER));\n return rates;\n }\n\n private _setInitialTracks(): void {\n const rates = this._getRates();\n const activeTracks = this.player.getActiveTracks();\n this._rateHandler.setRates(rates);\n if (activeTracks.video) {\n this._rateHandler.setCurrent(activeTracks.video.bandwidth / DIVIDER);\n }\n if (activeTracks.audio) {\n this._model.updateModel({ language: activeTracks.audio.language });\n }\n if (activeTracks.text) {\n this._model.updateModel({ caption: activeTracks.text.language });\n }\n }\n\n /**\n * gets the available buffer length\n * @returns {number} the remaining buffer length of the current played time range\n * @private\n */\n private _getAvailableBuffer(): number {\n let availableBuffer = NaN;\n if (this.player.stats) {\n availableBuffer = this.player.stats.availableBuffer;\n }\n return availableBuffer;\n }\n\n /**\n * calculates the forward buffer health ratio\n * @returns {number} the ratio between available buffer and the target buffer\n * @private\n */\n private _getForwardBufferHealth(): number {\n let forwardBufferHealth = NaN;\n const availableBuffer = this._getAvailableBuffer();\n const targetBuffer = this._getTargetBuffer();\n\n if (!isNaN(targetBuffer)) {\n // considering playback left to the target calculation\n forwardBufferHealth = Math.round((availableBuffer * 1000) / targetBuffer) / 1000;\n }\n\n return forwardBufferHealth;\n }\n\n /**\n * get the target buffer length from the player\n * @returns {number} the target buffer in seconds\n * @private\n */\n private _getTargetBuffer(): number {\n let targetBuffer = NaN;\n if (this.player.stats) {\n targetBuffer = this.player.stats.targetBuffer;\n }\n return targetBuffer;\n }\n\n /**\n * calculates the dropped frames ratio since last call\n * @returns {number} the ratio between dropped frames and the total frames\n * @private\n */\n private _getDroppedFramesRatio(): number {\n let droppedFrames = -1;\n const droppedAndDecoded: [number, number] | null = this._getDroppedAndDecodedFrames();\n if (droppedAndDecoded) {\n const lastDroppedFrames = droppedAndDecoded[0];\n const lastTotalFrames = droppedAndDecoded[1];\n const droppedFramesDelta = lastDroppedFrames - this._lastDroppedFrames;\n const totalFramesDelta = lastTotalFrames - this._lastTotalFrames;\n droppedFrames = totalFramesDelta ? Math.round((droppedFramesDelta / totalFramesDelta) * 1000) / 1000 : 0;\n\n this._lastTotalFrames = lastTotalFrames;\n this._lastDroppedFrames = lastDroppedFrames;\n }\n return droppedFrames;\n }\n\n /**\n * returns dropped and total frames from the VideoPlaybackQuality Interface of the browser (if supported)\n * @returns {number} {number} the number of video frames dropped and total video frames (created and dropped)\n * since the creation of the associated HTMLVideoElement\n * @private\n */\n private _getDroppedAndDecodedFrames(): [number, number] | null {\n if (typeof this.player.getVideoElement()!.getVideoPlaybackQuality === 'function') {\n const videoPlaybackQuality = this.player.getVideoElement()!.getVideoPlaybackQuality();\n return [videoPlaybackQuality.droppedVideoFrames, videoPlaybackQuality.totalVideoFrames];\n } else if (\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDroppedFrameCount === 'number' &&\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n typeof this.player.getVideoElement().webkitDecodedFrameCount === 'number'\n ) {\n // @ts-expect-error - error TS2532: Object is possibly 'undefined'\n return [this.player.getVideoElement().webkitDroppedFrameCount, this.player.getVideoElement().webkitDecodedFrameCount];\n } else {\n return null;\n }\n }\n\n private _onReport(): void {\n if (this._viewEventEnabled) {\n this._updatePlayTimeSumModel();\n this._model.updateModel({\n forwardBufferHealth: this._getForwardBufferHealth(),\n targetBuffer: this._getTargetBuffer(),\n droppedFramesRatio: this._getDroppedFramesRatio()\n });\n if (this._lastViewEventPlayTime !== this._model.getPlayTimeSum()) {\n this._lastViewEventPlayTime = this._model.getPlayTimeSum();\n this._sendAnalytics(KavaEventModel.VIEW);\n } else {\n this.logger.warn(`VIEW event blocked because view event with same time already sent: ${this._lastViewEventPlayTime}`);\n }\n } else {\n this.logger.warn('VIEW event blocked because server response of viewEventsEnabled=false');\n }\n this._model.updateModel({\n totalSegmentsDownloadTime: 0,\n totalSegmentsDownloadBytes: 0,\n maxManifestDownloadTime: 0,\n maxSegmentDownloadTime: 0,\n maxNetworkConnectionOverhead: 0,\n bufferTime: 0\n });\n }\n\n private _updateNetworkConnectionTypeinModel(navConnection: any): void {\n this._model.updateModel({\n networkConnectionType: navConnection.effectiveType\n });\n }\n\n private _initNetworkConnectionType(): void {\n // @ts-expect-error - Property 'webkitConnection' does not exist on type 'Navigator'\n const navConnection = window.navigator.connection || window.navigator.mozConnection || window.navigator.webkitConnection;\n\n if (navConnection) {\n this.eventManager.listen(navConnection, 'change', () => this._updateNetworkConnectionTypeinModel(navConnection));\n this._updateNetworkConnectionTypeinModel(navConnection);\n }\n }\n\n private _onPlaying(): void {\n if (this._isFirstPlaying) {\n this._updateSoundModeInModel();\n this._updateViewabilityModeInModel(this.player.isVisible);\n if (!this.player.isUntimedImg()) this._timer.start();\n this._isFirstPlaying = false;\n const playRequestStartTime =\n this.player.config.playback.preload === 'auto' || this._isManualPreload ? this._firstPlayRequestTime : this._loadStartTime;\n this._model.updateModel({\n joinTime: Kava._getTimeDifferenceInSeconds(playRequestStartTime)\n });\n this._sendAnalytics(KavaEventModel.PLAY);\n this._onReport();\n } else if (this._isEnded) {\n this._timer.start();\n this._isEnded = false;\n this._sendAnalytics(KavaEventModel.REPLAY);\n } else if (this._isPaused) {\n this._timer.resume();\n this._isPaused = false;\n this._sendAnalytics(KavaEventModel.RESUME);\n }\n }\n\n private _onCanPlay(): void {\n this._canPlayOccured = true;\n this._model.updateModel({\n canPlayTime: Kava._getTimeDifferenceInSeconds(this._loadStartTime)\n });\n }\n\n private _onFirstPlay(): void {\n if (this._canPlayOccured) {\n this._isManualPreload = true;\n }\n this._isFirstPlay = false;\n this._firstPlayRequestTime = Date.now();\n this._sendAnalytics(KavaEventModel.PLAY_REQUEST);\n }\n\n private _onSourceSelected(): void {\n this._sendAnalytics(KavaEventModel.IMPRESSION);\n if (!(this.player.isImage() || this.player.isLive())) {\n this.eventManager.listen(this.player, this.player.Event.Core.TIME_UPDATE, () => this._onTimeUpdate());\n }\n }\n\n private _onSeeking(): void {\n this._previousCurrentTime = this.player.currentTime!;\n this._model.updateModel({ targetPosition: this.player.currentTime! });\n this._sendAnalytics(KavaEventModel.SEEK);\n }\n\n private _onPause(): void {\n this._isPaused = true;\n this._timer.stop();\n this._sendAnalytics(KavaEventModel.PAUSE);\n }\n\n private _onEnded(): void {\n this._isEnded = true;\n this._onTimeUpdate();\n this._model.updateModel({ bufferTime: 0 });\n }\n\n private _onTimeUpdate(): void {\n this._updatePlayTimeSumModel();\n const percent = parseFloat((this.player.currentTime! / this.player.duration!).toFixed(2));\n if (!this._timePercentEvent.PLAY_REACHED_25 && percent >= 0.25) {\n this._timePercentEvent.PLAY_REACHED_25 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_25_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_50 && percent >= 0.5) {\n this._timePercentEvent.PLAY_REACHED_50 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_50_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_75 && percent >= 0.75) {\n this._timePercentEvent.PLAY_REACHED_75 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_75_PERCENT);\n }\n if (!this._timePercentEvent.PLAY_REACHED_100 && percent === 1) {\n this._timePercentEvent.PLAY_REACHED_100 = true;\n this._sendAnalytics(KavaEventModel.PLAY_REACHED_100_PERCENT);\n }\n }\n\n private _onFragLoaded(event: FakeEvent): void {\n if (!this._fragLoadedFiredOnce) {\n this._fragLoadedFiredOnce = true;\n }\n this._updateFragLoadedStats(event);\n if (this._performanceObserver) {\n const succHandle = this._handleFragPerformanceObserver(event.payload.url);\n if (!succHandle) {\n this._pendingFragLoadedUrls.push(event.payload.url);\n }\n }\n }\n\n private _handleFragPerformanceObserver(url: string): boolean {\n const fragResourceTimings = this._performanceEntries.filter((entry) => entry.name === url);\n const lastFragResourceTiming: any =\n fragResourceTimings && fragResourceTimings.length ? fragResourceTimings[fragResourceTimings.length - 1] : null;\n if (lastFragResourceTiming) {\n this._updateMaxNetworkConnectionOverhead(lastFragResourceTiming.connectEnd - lastFragResourceTiming.domainLookupStart);\n const lastIndexOftheFragment: number = this._performanceEntries.indexOf(lastFragResourceTiming);\n if (lastIndexOftheFragment > -1 && lastIndexOftheFragment < this._performanceEntries.length) {\n this._performanceEntries = this._performanceEntries.splice(\n lastIndexOftheFragment + 1,\n this._performanceEntries.length - (lastIndexOftheFragment + 1)\n );\n }\n return true;\n } else {\n return false;\n }\n }\n\n private _updateMaxNetworkConnectionOverhead(networkConnectionOverhead: number): void {\n this._model.updateModel({\n maxNetworkConnectionOverhead: Math.max(this._model.maxNetworkConnectionOverhead, networkConnectionOverhead)\n });\n }\n\n private _updateFragLoadedStats(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n totalSegmentsDownloadTime: this._model.totalSegmentsDownloadTime + seconds,\n totalSegmentsDownloadBytes: this._model.totalSegmentsDownloadBytes + event.payload.bytes,\n maxSegmentDownloadTime: Math.max(seconds, this._model.maxSegmentDownloadTime)\n });\n }\n\n private _onManifestLoaded(event: FakeEvent): void {\n const seconds = Math.round(event.payload.miliSeconds) / 1000;\n this._model.updateModel({\n maxManifestDownloadTime: Math.max(seconds, this._model.maxManifestDownloadTime)\n });\n }\n\n private _onTimedMetadataLoaded(event: FakeEvent): void {\n const id3TagCues = event.payload.cues.filter((entry) => entry.value && entry.value.key === TEXT_TYPE);\n if (id3TagCues.length) {\n try {\n const data = JSON.parse(id3TagCues[id3TagCues.length - 1].value.data);\n this._model.updateModel({ flavorParamsId: Number(data.sequenceId) });\n\n if (data.clipId) {\n const [partType, entryId] = data.clipId.split('-');\n\n switch (partType) {\n case 'preStartContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 1 });\n break;\n }\n case 'content': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 2 });\n break;\n }\n case 'postEntryContent': {\n this._model.updateModel({ sourceEntryId: entryId, playbackMode: 3 });\n break;\n }\n default:\n break;\n }\n }\n } catch (e) {\n this.logger.debug('error parsing id3', e);\n }\n }\n }\n\n private _onVideoTrackChanged(event: FakeEvent): void {\n const videoTrack = event.payload.selectedVideoTrack;\n this._rateHandler.setCurrent(videoTrack.bandwidth / DIVIDER);\n if (this.player.isAdaptiveBitrateEnabled()) {\n this._sendAnalytics(KavaEventModel.FLAVOR_SWITCH);\n } else {\n this._sendAnalytics(KavaEventModel.SOURCE_SELECTED);\n }\n }\n\n private _onAudioTrackChanged(event: FakeEvent): void {\n const audioTrack = event.payload.selectedAudioTrack;\n this._model.updateModel({ language: audioTrack.language });\n this._sendAnalytics(KavaEventModel.AUDIO_SELECTED);\n }\n\n private _onTextTrackChanged(event: FakeEvent): void {\n if (this._isPlaying) {\n const textTrack = event.payload.selectedTextTrack;\n this._model.updateModel({ caption: textTrack.language });\n this._sendAnalytics(KavaEventModel.CAPTIONS);\n }\n }\n\n private _onError(event: FakeEvent): void {\n if (event.payload && event.payload.severity === PKError.Severity.CRITICAL) {\n this._model.updateModel({\n errorCode: event.payload.code,\n errorDetails: event.payload.data,\n errorPosition: this._isFirstPlay ? ErrorPosition.PRE_PLAY : this._isFirstPlaying ? ErrorPosition.PRE_PLAYING : ErrorPosition.MID_STREAM\n });\n this._sendAnalytics(KavaEventModel.ERROR);\n this.reset();\n }\n }\n\n private _onPlaybackRateChanged(): void {\n if (!this.player.playbackRates.length || this.player.playbackRates.includes(this.player.playbackRate!)) {\n this._sendAnalytics(KavaEventModel.SPEED);\n }\n }\n\n private _onPlayerStateChanged(event: FakeEvent): void {\n const oldState = event.payload.oldState;\n const newState = event.payload.newState;\n if (oldState.type === this.player.State.BUFFERING) {\n this._isBuffering = false;\n this._updateBufferModel();\n this._sendAnalytics(KavaEventModel.BUFFER_END);\n }\n if (newState.type === this.player.State.BUFFERING) {\n this._isBuffering = true;\n this._bufferStartTime = Date.now();\n this._sendAnalytics(KavaEventModel.BUFFER_START);\n }\n }\n\n private _onRelatedClicked(): void {\n this._sendAnalytics(KavaEventModel.RELATED_OPEN);\n }\n\n private _onRelatedSelected(): void {\n this._sendAnalytics(KavaEventModel.RELATED_SELECTED);\n }\n\n private _onShareClicked(): void {\n this._sendAnalytics(KavaEventModel.SHARE_CLICKED);\n }\n\n private _onShareNetworkClicked(event: FakeEvent): void {\n const shareNetworkName = event.payload.shareNetworkName;\n if (shareNetworkName) {\n this._model.updateModel({ shareNetworkName: shareNetworkName });\n this._sendAnalytics(KavaEventModel.SHARE_NETWORK);\n }\n }\n\n private _onReportSubmitted(event: FakeEvent): void {\n const reportType = event.payload.reportType;\n if (reportType) {\n this._model.updateModel({ reportType });\n this._sendAnalytics(KavaEventModel.REPORT_SUBMITTED);\n }\n }\n\n private _onReportClicked(): void {\n this._sendAnalytics(KavaEventModel.REPORT_CLICKED);\n }\n\n private _onInfoScreenOpened(): void {\n this._sendAnalytics(KavaEventModel.INFO);\n }\n\n private _onDownloadItemClicked(): void {\n this._sendAnalytics(KavaEventModel.DOWNLOAD);\n }\n\n private _onFullScreenChanged(screenMode: number): void {\n this._model.updateModel({ screenMode: screenMode });\n this._sendAnalytics(screenMode === ScreenMode.FULLSCREEN ? KavaEventModel.ENTER_FULLSCREEN : KavaEventModel.EXIT_FULLSCREEN);\n }\n\n private _onRegisteredPluginsListChange(payload: string[]): void {\n this._model.updateModel({ registeredPlugins: payload.join(',') });\n }\n\n private _updateSessionStartTimeModel(response: any | number): void {\n if (!this._model.getSessionStartTime() && response) {\n if (typeof response === 'object') {\n this._model.updateModel({ sessionStartTime: response.time });\n this._viewEventEnabled = response.viewEventsEnabled;\n } else {\n this._model.updateModel({ sessionStartTime: response });\n }\n }\n if (this._timer.isStopped()) {\n this._model.updateModel({ sessionStartTime: null });\n }\n }\n\n private _updateBufferModel(): void {\n const duration = Kava._getTimeDifferenceInSeconds(this._bufferStartTime);\n this._model.updateModel({\n bufferTime: this._model.getBufferTime() + duration,\n bufferTimeSum: this._model.getBufferTimeSum() + duration\n });\n }\n\n private _updatePlayTimeSumModel(): void {\n let delta;\n if (this.player.isLive()) {\n delta = this.config.viewEventCountdown - this._model.getBufferTime();\n } else {\n delta = this.player.currentTime! - this._previousCurrentTime;\n this._previousCurrentTime = this.player.currentTime!;\n }\n this._model.updateModel({ playTimeSum: this._model.getPlayTimeSum() + delta });\n }\n\n private _setModelDelegates(): void {\n this._model.getPlaybackSpeed = (): number | null => this.player.playbackRate;\n this._model.getActualBitrate = (): number => this._rateHandler.getCurrent();\n this._model.getAverageBitrate = (): number => this._rateHandler.getAverage();\n this._model.getPartnerId = (): number => this.config.partnerId;\n this._model.getEntryId = (): string => this.config.entryId;\n this._model.getPlaylistId = (): string => this.config.playlistId;\n this._model.getSessionId = (): string => this.config.sessionId;\n this._model.getPersistentSessionId = (): string => this.config.persistentSessionId;\n this._model.getClientVer = (): string => this.config.playerVersion;\n this._model.getClientTag = (): string => 'html5:v' + this.config.playerVersion;\n this._model.getKS = (): string => this.config.ks;\n this._model.getVirtualEventId = (): string => this.config.virtualEventId;\n this._model.getUIConfId = (): string => this.config.uiConfId;\n this._model.getReferrer = (): string => this.config.referrer;\n this._model.getCustomVar1 = (): string => this.config.customVar1;\n this._model.getCustomVar2 = (): string => this.config.customVar2;\n this._model.getCustomVar3 = (): string => this.config.customVar3;\n this._model.getPosition = (): number => this._getPosition();\n this._model.getDeliveryType = (): string => this._getDeliveryType();\n this._model.getPlaybackType = (): string => this._getPlaybackType();\n this._model.getPlaybackContext = (): string => this.config.playbackContext;\n this._model.getApplicationVersion = (): string => this.config.applicationVersion;\n this._model.getApplication = (): string => this.config.application;\n this._model.getKalturaApplicationVersion = (): string => this.config.kalturaApplicationVersion;\n this._model.getKalturaApplication = (): string => this._getKalturaApplicationId(this.config.kalturaApplication);\n this._model.getUserId = (): string => this.config.userId;\n }\n\n private _getKalturaApplicationId(kalturaAppName: string): string {\n if (kalturaAppName in KalturaApplication) {\n return KalturaApplication[kalturaAppName];\n } else {\n this.logger.warn('Kava analytics - unknon kalturaAppName: ' + kalturaAppName);\n return '';\n }\n }\n\n private _getPosition(): number {\n if (this.player.isLive()) {\n if (!Number.isNaN(this.player.duration)) {\n if (this.player.duration! - this.player.currentTime! < 1) {\n return 0;\n }\n return -(this.player.duration! - this.player.currentTime!);\n }\n return 0;\n }\n let currentTime = this.player.currentTime;\n if (typeof this.player.sources.seekFrom === 'number' && currentTime) {\n currentTime += this.player.sources.seekFrom;\n }\n return this._isFirstPlaying ? currentTime! || this.player.sources.startTime || 0 : currentTime!;\n }\n\n private _getDeliveryType(): string {\n if (this.player.streamType === this.player.StreamType.PROGRESSIVE) {\n return 'url';\n }\n return this.player.streamType;\n }\n\n private _getPlaybackType(): string {\n if (this.player.isLive()) {\n if (this.player.isDvr()) {\n const distanceFromLiveEdge = this.player.duration! - this.player.currentTime!;\n if (distanceFromLiveEdge >= this.config.dvrThreshold) {\n return 'dvr';\n }\n }\n return 'live';\n }\n return 'vod';\n }\n\n private _validate(): boolean {\n if (!this.config.partnerId) {\n this._logMissingParam('partnerId');\n return false;\n }\n if (!this.config.entryId) {\n this._logMissingParam('entryId');\n return false;\n }\n return true;\n }\n\n private _isApplicationEventValid(event: FakeEvent): boolean {\n const model = getApplicationEventsModel(ApplicationEventsModel[event.type], this._model, event.payload);\n return !!model.buttonName || !!model.pageName;\n }\n\n private _logMissingParam(missingParam: string): void {\n this.logger.warn(`Kava analytics block report because of missing param ${missingParam}`);\n }\n\n private static _getTimeDifferenceInSeconds(time: number): number {\n return (Date.now() - time) / 1000.0;\n }\n\n private _updateTabModeInModel(hiddenAttr: string): void {\n this._model.updateModel({\n // $FlowFixMe\n tabMode: this._isTabHidden(hiddenAttr) && !this.player.isInPictureInPicture() ? TabMode.TAB_NOT_FOCUSED : TabMode.TAB_FOCUSED\n });\n }\n\n private _isTabHidden(hiddenAttr: string): boolean {\n return document[hiddenAttr];\n }\n\n private _initTabMode(): void {\n let hiddenAttr: string;\n let visibilityChangeEventName: string;\n if (typeof document.hidden !== 'undefined') {\n // Opera 12.10 and Firefox 18 and later support\n hiddenAttr = 'hidden';\n visibilityChangeEventName = 'visibilitychange';\n // @ts-expect-error - Property 'msHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.msHidden !== 'undefined') {\n hiddenAttr = 'msHidden';\n visibilityChangeEventName = 'msvisibilitychange';\n // @ts-expect-error - Property 'webkitHidden' does not exist on type 'Document'. Did you mean 'hidden'?\n } else if (typeof document.webkitHidden !== 'undefined') {\n hiddenAttr = 'webkitHidden';\n visibilityChangeEventName = 'webkitvisibilitychange';\n }\n\n // @ts-expect-error - Variable 'visibilityChangeEventName' is used before being assigned.\n if (hiddenAttr && visibilityChangeEventName) {\n this.eventManager.listen(document, visibilityChangeEventName, () => this._updateTabModeInModel(hiddenAttr));\n this._updateTabModeInModel(hiddenAttr);\n }\n }\n}\n\nexport { Kava };\n","export const DownloadEvent = {\n DOWNLOAD_ITEM_CLICKED: 'download_item_clicked'\n};\n\nexport const ModerationEvent = {\n REPORT_CLICKED: 'report_clicked',\n REPORT_SUBMITTED: 'report_submitted'\n};\n\nexport const ShareEvent = {\n /**\n * Fired when the user clicks on share icon.\n */\n SHARE_CLICKED: 'share_clicked',\n /**\n * Fired when the user clicks on specific social network.\n */\n SHARE_NETWORK: 'share_network'\n};\n\nexport const RelatedEvent = {\n /**\n * Fired when the user selects an entry from the list or the grid.\n */\n RELATED_SELECTED: 'related_selected',\n /**\n * Fired when the user clicks the button to show the related list.\n */\n RELATED_OPEN: 'related_open',\n /**\n * Fired when the user clicks to close the related list.\n */\n RELATED_CLOSE: 'related_close'\n};\n\nexport const InfoEvent = {\n INFO_SCREEN_OPEN: 'info_screen_open'\n};\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import { registerPlugin } from '@playkit-js/kaltura-player-js';\nimport { Kava } from './kava';\n\ndeclare const __VERSION__: string;\ndeclare const __NAME__: string;\n\nconst VERSION = __VERSION__;\nconst NAME = __NAME__;\n\nexport { Kava as Plugin };\nexport { KavaEventType as EventType } from './kava-event-model';\nexport { HttpMethodType } from './enums/http-method-type';\nexport { VERSION, NAME };\n\nconst pluginName: string = 'kava';\n\nregisterPlugin(pluginName, Kava);\n"],"names":["root","factory","exports","module","define","amd","self","e","d","t","r","n","o","Object","defineProperty","enumerable","get","prototype","hasOwnProperty","call","Symbol","toStringTag","value","TypeError","iterator","constructor","toPrimitive","String","i","length","configurable","writable","key","s","a","NAME","P","OVPAnalyticsService","A","OVPConfiguration","h","RequestBuilder","l","VERSION","C","f","arguments","this","severity","category","code","data","_logger","error","concat","RECOVERABLE","CRITICAL","NETWORK","SERVICE","PROVIDER","UNSUPPORTED_SCHEME","BAD_HTTP_STATUS","HTTP_ERROR","TIMEOUT","MALFORMED_DATA_URI","BAD_SERVER_RESPONSE","MULTIREQUEST_API_ERROR","API_RESPONSE_MISMATCH","ERROR","BLOCK_ACTION","MEDIA_STATUS_NOT_READY","MISSING_MANDATORY_PARAMS","MISSING_PLAY_SOURCE","METHOD_NOT_IMPLEMENTED","DEBUG","name","INFO","OFF","TIME","TRACE","WARN","createDefaultHandler","debug","enabledFor","getLevel","info","log","setHandler","setLevel","time","timeEnd","trace","useDefaults","warn","Map","async","timeout","maxAttempts","headers","service","action","Promise","_requestPromise","resolve","reject","url","Severity","Category","Code","_createXHR","XMLHttpRequest","onreadystatechange","readyState","status","JSON","parse","responseText","responseHeaders","_getResponseHeaders","_createError","text","open","method","retryConfig","performance","now","ontimeout","_handleError","statusText","onerror","onabort","forEach","setRequestHeader","send","params","getAllResponseHeaders","split","filter","toLowerCase","indexOf","_attemptCounter","assign","attempt","p","Array","isArray","slice","keys","y","serviceUrl","cdnUrl","serviceParams","apiVersion","format","useApiCaptions","loadThumbnailWithKs","replaceHostOnlyManifestUrls","v","setPrototypeOf","bind","__proto__","create","m","ReferenceError","g","E","getPrototypeOf","R","objectType","hasError","O","message","b","Reflect","construct","sham","Proxy","Boolean","valueOf","apply","requests","push","stringify","FAILED_PARSING_REQUEST","doHttpRequest","then","_","success","response","results","result","map","T","toString","encodeURIComponent","u","c","test","join","replace","S","_trackEventByPOST","_trackEventByGET","tag","set","eventType","partnerId","entryId","sessionId","ks","clientTag","getUrl","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","definition","obj","prop","KalturaPlayer","_typeof","_arrayLikeToArray","arr","len","arr2","_classCallCheck","instance","Constructor","toPropertyKey","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","_assertThisInitialized","_possibleConstructorReturn","_getPrototypeOf","_setPrototypeOf","_inherits","subClass","superClass","_defineProperty","KavaEventModel","VIEW","type","index","getEventModel","model","eventModel","playTimeSum","getPlayTimeSum","bufferTime","getBufferTime","bufferTimeSum","getBufferTimeSum","actualBitrate","getActualBitrate","averageBitrate","getAverageBitrate","audioLanguage","getLanguage","soundMode","getSoundMode","tabMode","getTabMode","viewabilityMode","getViewabilityMode","screenMode","getScreenMode","isNaN","getForwardBufferHealth","forwardBufferHealth","getMaxManifestDownloadTime","manifestDownloadTime","getSegmentDownloadTime","segmentDownloadTime","getBandwidth","bandwidth","getDroppedFramesRatio","droppedFramesRatio","getTargetBuffer","targetBuffer","getNetworkConnectionType","networkConnectionType","getNetworkConnectionOverhead","networkConnectionOverhead","getFlavorParamsId","flavorParamsId","getPlaybackMode","playbackMode","getSourceEntryId","sourceEntryId","IMPRESSION","getPlayerJSLoadTime","playerJSLoadTime","getRegisteredPlugins","PLAY_REQUEST","PLAY","joinTime","getJoinTime","canPlay","getCanPlayTime","RESUME","PAUSE","BUFFER_START","BUFFER_END","REPLAY","SEEK","targetPosition","getTargetPosition","PLAY_REACHED_25_PERCENT","PLAY_REACHED_50_PERCENT","PLAY_REACHED_75_PERCENT","PLAY_REACHED_100_PERCENT","SOURCE_SELECTED","AUDIO_SELECTED","language","FLAVOR_SWITCH","SPEED","CAPTIONS","errorCode","getErrorCode","errorDetails","getErrorDetails","errorPosition","getErrorPosition","RELATED_OPEN","RELATED_SELECTED","SHARE_CLICKED","SHARE_NETWORK","socialNetwork","getShareNetworkName","ENTER_FULLSCREEN","EXIT_FULLSCREEN","DOWNLOAD","REPORT_CLICKED","REPORT_SUBMITTED","reportType","getReportType","KavaEventType","k","KavaRateHandler","_rates","rates","_this","rate","active","duration","find","current","totalDuration","sum","FakeEvent","core","FakeEventTarget","WorkerTimer","callback","interval","blob","Blob","workerScript","URL","createObjectURL","worker","Worker","onmessage","terminate","KavaTimer","_FakeEventTarget","config","_callSuper","_config","_this2","_terminateTimer","_stopped","_resetCounter","_eventCounter","_timer","_monitor","stop","resetCounter","dispatchEvent","Event","RESET","TICK","eventCounter","REPORT","EventBucketName","ButtonType","ApplicationEventType","PageLoadType","playkitUIEventsNamespace","PlaykitUIEvents","USER_CLICKED_LOGO","USER_SELECTED_CAPTIONS_SIZE","USER_SELECTED_CAPTIONS_ALIGNMENT","USER_SELECTED_CAPTIONS_FONT_COLOR","USER_SELECTED_CAPTIONS_FONT_FAMILY","USER_SELECTED_CAPTIONS_FONT_STYLE","USER_SELECTED_CAPTIONS_FONT_OPACITY","USER_SELECTED_CAPTIONS_BACKGROUND_COLOR","USER_SELECTED_CAPTIONS_BACKGROUND_OPACITY","PluginsEvents","_objectSpread","NAVIGATION_OPEN","NAVIGATION_CLOSE","NAVIGATION_SEARCH","NAVIGATION_ITEM_CLICK","NAVIGATION_EXPANDABLE_TEXT_CLICK","DOWNLOAD_ITEM_CLICKED","SHOW_OVERLAY","HIDE_OVERLAY","TRANSCRIPT_OPEN","TRANSCRIPT_CLOSE","TRANSCRIPT_DOWNLOAD","TRANSCRIPT_PRINT","TRANSCRIPT_SEARCH","TRANSCRIPT_NAVIGATE_RESULT","TRANSCRIPT_POPOUT_OPEN","TRANSCRIPT_POPOUT_CLOSE","TRANSCRIPT_POPOUT_DRAG","TRANSCRIPT_POPOUT_RESIZE","CHANGE_LAYOUT","SHARE_CLOSE","SHARE_COPY","BUMPER_CLICKED","SKIP_BUTTON_CLICK","SKIP_BUTTON_DISPLAYED","PLAYLIST_OPEN","PLAYLIST_CLOSE","RELATED_CLOSE","RELATED_ENTRY_SELECTED","RELATED_ENTRY_AUTO_PLAYED","RELATED_GRID_DISPLAYED","CALL_TO_ACTION_BUTTON_CLICK","HOTSPOT_CLICK","HOTSPOT_DISPLAYED","QUIZ_STARTED","QUIZ_SKIPPED","QUIZ_SEEK","QUESTION_ANSWERED","QUIZ_SUBMITTED","QUIZ_RETAKE","QUIZ_QUESTION_CHANGED","DETECT_AD_BLOCK_PARTIAL_OVERLAY_SHOWN","DETECT_AD_BLOCK_FULL_OVERLAY_SHOWN","DETECT_AD_BLOCK_SECONDARY_BUTTON_CLICKED","DETECT_AD_BLOCK_X_BUTTON_CLICKED","DETECT_AD_BLOCK_AD_BLOCKER_DISABLED","DETECT_AD_BLOCK_AD_BLOCKER_NOT_DISABLED","KalturaApplication","KMC","KMS","KAF","PITCH","KMS_GO","WEBCASTING","PERSONAL_CAPTURE","KME","KME_MOBILE_APP","PATH","LECTURE_CAPTURE","EP","CHAT_AND_COLLABORATION","ANALYTICS","EXPRESS_CAPTURE","KPF","KAF_GO","SITES","STUDIO","CAPTIONS_EDITOR","CHECKLIST","PLAYER","getApplicationEventsModel","eventObj","innerEventPayload","commonModel","getPartnerId","getEntryId","getSessionId","kalturaApplication","getVirtualEventId","getKalturaApplication","getApplication","getApplicationVersion","getKalturaApplicationVersion","getUserId","getKS","namedEventModel","eventVar1","eventVar2","eventVar3","ApplicationEventsModel","_ApplicationEventsMod","_ref","layout","Choose","Open","Close","payload","Share","socialNetworkName","Download","assetType","fileType","description","Link","View","searchQuery","activeTab","availableTabs","isItSearch","Search","itemType","isTextExpanded","Expand","Collapse","search","Navigate","Edit","position","x","size","mode","Load","Send","_ref2","questionIndex","KavaModel","ScreenMode","NOT_IN_FULLSCREEN","NaN","updateModel","canPlayTime","Math","round","registeredPlugins","caption","totalSegmentsDownloadTime","totalSegmentsDownloadBytes","maxManifestDownloadTime","maxSegmentDownloadTime","maxNetworkConnectionOverhead","retVal","eventIndex","sessionStartTime","shareNetworkName","eventBucketName","PlayerEvents","eventPayload","getEventIndex","referrer","getReferrer","deliveryType","getDeliveryType","playbackType","getPlaybackType","clientVer","getClientVer","getClientTag","getPosition","playbackSpeed","getPlaybackSpeed","getCaption","getSessionStartTime","virtualEventId","getUIConfId","uiConfId","getPlaylistId","playlistId","getCustomVar1","customVar1","getCustomVar2","customVar2","getCustomVar3","customVar3","getPlaybackContext","playbackContext","applicationVer","application","kalturaApplicationVer","userId","getPersistentSessionId","persistentSessionId","ApplicationEvents","SoundMode","ViewabilityMode","TabMode","ErrorPosition","HttpMethodType","GET","POST","PKError","Error","Utils","DIVIDER","Kava","_BasePlugin","player","_rateHandler","_model","_setModelDelegates","resetSessionCountdown","viewEventCountdown","_viewEventEnabled","_resetFlags","_addBindings","entry","getEntriesByType","match","muted","volume","SOUND_OFF","SOUND_ON","isVisible","isInPictureInPicture","IN_VIEW","NOT_IN_VIEW","list","perfEntries","getEntries","_performanceEntries","_pendingFragLoadedUrls","_handleFragPerformanceObserver","pop","eventManager","destroy","_reset","_performanceObserver","disconnect","removeAll","window","PerformanceObserver","_handleNewPerformanceEntries","observe","entryTypes","event","getModel","copyDeep","trackEvent","requestMethod","_handleServerResponseSuccess","err","_handleServerResponseFailed","_previousCurrentTime","_lastViewEventPlayTime","_isPlaying","_isFirstPlay","_isFirstPlaying","_isEnded","_isPaused","_isBuffering","_timePercentEvent","_canPlayOccured","_isManualPreload","logger","reset","_validate","_updateBufferModel","_bufferStartTime","Date","tamperAnalyticsHandler","sendAnalytics","catch","_updateSessionStartTimeModel","_this3","listen","countCurrent","_onReport","_resetSession","Core","_onSourceSelected","_onError","FIRST_PLAY","_onFirstPlay","FRAG_LOADED","_onFragLoaded","MANIFEST_LOADED","_onManifestLoaded","TIMED_METADATA","_onTimedMetadataLoaded","TRACKS_CHANGED","_setInitialTracks","PLAYING","_onPlaying","FIRST_PLAYING","_onFirstPlaying","SEEKING","_onSeeking","_onPause","ENDED","_onEnded","VIDEO_TRACK_CHANGED","_onVideoTrackChanged","AUDIO_TRACK_CHANGED","_onAudioTrackChanged","TEXT_TRACK_CHANGED","_onTextTrackChanged","PLAYER_STATE_CHANGED","_onPlayerStateChanged","RATE_CHANGE","_onPlaybackRateChanged","CAN_PLAY","_onCanPlay","LOAD_START","_onLoadStart","VOLUME_CHANGE","_updateSoundModeInModel","VISIBILITY_CHANGE","_updateViewabilityModeInModel","visible","MUTE_CHANGE","_onFullScreenChanged","FULLSCREEN","REGISTERED_PLUGINS_LIST_EVENT","_onRegisteredPluginsListChange","_onRelatedClicked","_onRelatedSelected","_onShareClicked","_onShareNetworkClicked","_onDownloadItemClicked","_onInfoScreenOpened","_onReportClicked","_onReportSubmitted","_bindApplicationEvents","_bindPlaykitUIEvents","_initTabMode","_initNetworkConnectionType","_this4","values","_isApplicationEventValid","_sendAnalytics","_this5","_fragLoadedFiredOnce","_loadStartTime","getTracks","Track","VIDEO","videoTrack","_getRates","activeTracks","getActiveTracks","setRates","video","setCurrent","audio","availableBuffer","stats","_getAvailableBuffer","_getTargetBuffer","droppedFrames","droppedAndDecoded","_getDroppedAndDecodedFrames","lastDroppedFrames","lastTotalFrames","droppedFramesDelta","_lastDroppedFrames","totalFramesDelta","_lastTotalFrames","getVideoElement","getVideoPlaybackQuality","videoPlaybackQuality","droppedVideoFrames","totalVideoFrames","webkitDroppedFrameCount","webkitDecodedFrameCount","_updatePlayTimeSumModel","_getForwardBufferHealth","_getDroppedFramesRatio","navConnection","effectiveType","_this6","navigator","connection","mozConnection","webkitConnection","_updateNetworkConnectionTypeinModel","isUntimedImg","start","playRequestStartTime","playback","preload","_firstPlayRequestTime","_getTimeDifferenceInSeconds","resume","_this7","isImage","isLive","TIME_UPDATE","_onTimeUpdate","currentTime","percent","parseFloat","toFixed","PLAY_REACHED_25","PLAY_REACHED_50","PLAY_REACHED_75","PLAY_REACHED_100","_updateFragLoadedStats","fragResourceTimings","lastFragResourceTiming","_updateMaxNetworkConnectionOverhead","connectEnd","domainLookupStart","lastIndexOftheFragment","splice","max","seconds","miliSeconds","bytes","id3TagCues","cues","Number","sequenceId","clipId","_data$clipId$split2","next","done","minLen","from","partType","selectedVideoTrack","isAdaptiveBitrateEnabled","audioTrack","selectedAudioTrack","textTrack","selectedTextTrack","PRE_PLAY","PRE_PLAYING","MID_STREAM","playbackRates","includes","playbackRate","oldState","newState","State","BUFFERING","viewEventsEnabled","isStopped","delta","_this8","getCurrent","getAverage","playerVersion","_getPosition","_getDeliveryType","_getPlaybackType","applicationVersion","kalturaApplicationVersion","_getKalturaApplicationId","kalturaAppName","sources","seekFrom","startTime","streamType","StreamType","PROGRESSIVE","isDvr","dvrThreshold","_logMissingParam","buttonName","pageName","missingParam","hiddenAttr","_isTabHidden","TAB_NOT_FOCUSED","TAB_FOCUSED","document","visibilityChangeEventName","_this9","hidden","msHidden","webkitHidden","_updateTabModeInModel","BasePlugin","Http","protocol","__VERSION__","__NAME__","registerPlugin"],"sourceRoot":""}
|