;(function () {
  var _excluded = ['premium', 'referrerPolicy']
  function _objectWithoutProperties(source, excluded) {
    if (source == null) return {}
    var target = _objectWithoutPropertiesLoose(source, excluded)
    var key, i
    if (Object.getOwnPropertySymbols) {
      var sourceSymbolKeys = Object.getOwnPropertySymbols(source)
      for (i = 0; i < sourceSymbolKeys.length; i++) {
        key = sourceSymbolKeys[i]
        if (excluded.indexOf(key) >= 0) continue
        if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue
        target[key] = source[key]
      }
    }
    return target
  }
  function _objectWithoutPropertiesLoose(source, excluded) {
    if (source == null) return {}
    var target = {}
    var sourceKeys = Object.keys(source)
    var key, i
    for (i = 0; i < sourceKeys.length; i++) {
      key = sourceKeys[i]
      if (excluded.indexOf(key) >= 0) continue
      target[key] = source[key]
    }
    return target
  }
  function _toConsumableArray(arr) {
    return (
      _arrayWithoutHoles(arr) ||
      _iterableToArray(arr) ||
      _unsupportedIterableToArray(arr) ||
      _nonIterableSpread()
    )
  }
  function _nonIterableSpread() {
    throw new TypeError(
      'Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
    )
  }
  function _iterableToArray(iter) {
    if (
      (typeof Symbol !== 'undefined' && iter[Symbol.iterator] != null) ||
      iter['@@iterator'] != null
    )
      return Array.from(iter)
  }
  function _arrayWithoutHoles(arr) {
    if (Array.isArray(arr)) return _arrayLikeToArray(arr)
  }
  function _classCallCheck2(instance, Constructor) {
    if (!(instance instanceof Constructor)) {
      throw new TypeError('Cannot call a class as a function')
    }
  }
  function _defineProperties(target, props) {
    for (var i = 0; i < props.length; i++) {
      var descriptor = props[i]
      descriptor.enumerable = descriptor.enumerable || false
      descriptor.configurable = true
      if ('value' in descriptor) descriptor.writable = true
      Object.defineProperty(target, descriptor.key, descriptor)
    }
  }
  function _createClass2(Constructor, protoProps, staticProps) {
    if (protoProps) _defineProperties(Constructor.prototype, protoProps)
    if (staticProps) _defineProperties(Constructor, staticProps)
    Object.defineProperty(Constructor, 'prototype', { writable: false })
    return Constructor
  }
  function ownKeys(object, enumerableOnly) {
    var keys = Object.keys(object)
    if (Object.getOwnPropertySymbols) {
      var symbols = Object.getOwnPropertySymbols(object)
      enumerableOnly &&
        (symbols = symbols.filter(function (sym) {
          return Object.getOwnPropertyDescriptor(object, sym).enumerable
        })),
        keys.push.apply(keys, symbols)
    }
    return keys
  }
  function _objectSpread(target) {
    for (var i = 1; i < arguments.length; i++) {
      var source = null != arguments[i] ? arguments[i] : {}
      i % 2
        ? ownKeys(Object(source), !0).forEach(function (key) {
            _defineProperty2(target, key, source[key])
          })
        : Object.getOwnPropertyDescriptors
        ? Object.defineProperties(
            target,
            Object.getOwnPropertyDescriptors(source)
          )
        : ownKeys(Object(source)).forEach(function (key) {
            Object.defineProperty(
              target,
              key,
              Object.getOwnPropertyDescriptor(source, key)
            )
          })
    }
    return target
  }
  function _slicedToArray(arr, i) {
    return (
      _arrayWithHoles(arr) ||
      _iterableToArrayLimit(arr, i) ||
      _unsupportedIterableToArray(arr, i) ||
      _nonIterableRest()
    )
  }
  function _nonIterableRest() {
    throw new TypeError(
      'Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'
    )
  }
  function _unsupportedIterableToArray(o, minLen) {
    if (!o) return
    if (typeof o === 'string') return _arrayLikeToArray(o, minLen)
    var n = Object.prototype.toString.call(o).slice(8, -1)
    if (n === 'Object' && o.constructor) n = o.constructor.name
    if (n === 'Map' || n === 'Set') return Array.from(o)
    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
      return _arrayLikeToArray(o, minLen)
  }
  function _arrayLikeToArray(arr, len) {
    if (len == null || len > arr.length) len = arr.length
    for (var i = 0, arr2 = new Array(len); i < len; i++) {
      arr2[i] = arr[i]
    }
    return arr2
  }
  function _iterableToArrayLimit(arr, i) {
    var _i =
      arr == null
        ? null
        : (typeof Symbol !== 'undefined' && arr[Symbol.iterator]) ||
          arr['@@iterator']
    if (_i == null) return
    var _arr = []
    var _n = true
    var _d = false
    var _s, _e
    try {
      for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
        _arr.push(_s.value)
        if (i && _arr.length === i) break
      }
    } catch (err) {
      _d = true
      _e = err
    } finally {
      try {
        if (!_n && _i['return'] != null) _i['return']()
      } finally {
        if (_d) throw _e
      }
    }
    return _arr
  }
  function _arrayWithHoles(arr) {
    if (Array.isArray(arr)) return arr
  }
  function _defineProperty2(obj, key, value) {
    if (key in obj) {
      Object.defineProperty(obj, key, {
        value: value,
        enumerable: true,
        configurable: true,
        writable: true
      })
    } else {
      obj[key] = value
    }
    return obj
  }
  function _typeof(obj) {
    '@babel/helpers - typeof'
    return (
      (_typeof =
        'function' == typeof Symbol && 'symbol' == typeof Symbol.iterator
          ? function (obj) {
              return typeof obj
            }
          : function (obj) {
              return obj &&
                'function' == typeof Symbol &&
                obj.constructor === Symbol &&
                obj !== Symbol.prototype
                ? 'symbol'
                : typeof obj
            }),
      _typeof(obj)
    )
  }
  var __vite_style__ = document.createElement('style')
  __vite_style__.innerHTML =
    '@charset "UTF-8";._video-container_1vz16_1{position:relative;width:100%;--plyr-color-main: #01c1b5}._video-container_1vz16_1 video{width:100%}._video-container_1vz16_1 .video-back{position:absolute;left:.53333rem;top:.53333rem;color:#fff;z-index:99;font-size:.64rem;width:.8rem;height:.8rem;background-color:rgba(0,0,0,.5);border-radius:50%;padding:.10667rem .13333rem .10667rem .08rem}._video-container_1vz16_1 .plyr__poster{background-size:cover}._video-container_1vz16_1 .plyr__control--overlaid{border:.02667rem solid #fff;background-color:transparent!important}._video-container_1vz16_1 .plyr--video .plyr__control:hover{background-color:transparent!important}._video-container_1vz16_1 ._video_1vz16_1{position:relative}._loadingVideo_1vz16_35{position:absolute;top:0;left:0;bottom:0;right:0;background:rgba(0,0,0,.9);z-index:10}._playOver_1vz16_44{background:rgba(0,0,0,.5);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column}._playOver_1vz16_44 ._tips_1vz16_52{font-size:.4rem;color:#fff}._playOver_1vz16_44 ._btn_1vz16_56{margin:.26667rem 0}._freeTxt_1vz16_59{font-size:.4rem;color:#fff;line-height:.56rem;padding-top:.26667rem}._freeRate_1vz16_65{color:#32ffd8}@keyframes plyr-progress{to{background-position:.66667rem 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(.26667rem)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:5.33333rem;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:.05333rem;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:.24rem;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:.08rem .10667rem}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:.34667rem;font-size:var(--plyr-font-size-small,13px);left:0;padding:.26667rem;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:.4rem;font-size:var(--plyr-font-size-base,15px);padding:.53333rem;padding:calc(var(--plyr-control-spacing, 10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:.48rem;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-1.06667rem);transform:translateY(calc(var(--plyr-control-spacing, 10px)*-4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:.05333rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:transparent;border:0;border-radius:.08rem;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:.18667rem;padding:calc(var(--plyr-control-spacing, 10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{fill:currentColor;display:block;height:.48rem;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:.48rem;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline:.08rem dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted .08rem;outline-offset:.05333rem}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:.06667rem;margin-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:.06667rem;padding-left:calc(var(--plyr-control-spacing, 10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 .13333rem;padding:0 calc(var(--plyr-control-spacing, 10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:hsla(0,0%,100%,.9);background:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-radius:.10667rem;bottom:100%;box-shadow:0 .02667rem .05333rem rgba(0,0,0,.15);box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:.4rem;font-size:var(--plyr-font-size-base,15px);margin-bottom:.26667rem;position:absolute;right:-.08rem;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:.10667rem solid transparent;border-top-color:rgba(255,255,255,.9);border:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:var(--plyr-menu-background,hsla(0,0%,100%,.9));content:"";height:0;position:absolute;right:.37333rem;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7 - var(--plyr-menu-arrow-size, 4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:.18667rem;padding:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:.05333rem}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:.34667rem;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding:.12444rem .28rem;padding:calc(var(--plyr-control-spacing, 10px)*.7/1.5) calc(var(--plyr-control-spacing, 10px)*.7*1.5);-webkit-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:.10667rem solid transparent;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:.74667rem;padding-right:calc(var(--plyr-control-spacing, 10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:.17333rem;right:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:.18667rem;margin:calc(var(--plyr-control-spacing, 10px)*.7);margin-bottom:.09333rem;margin-bottom:calc(var(--plyr-control-spacing, 10px)*.7/2);padding-left:.74667rem;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*4);position:relative;width:calc(100% - 0.37333rem);width:calc(100% - var(--plyr-control-spacing, 10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:.17333rem;left:calc(var(--plyr-control-spacing, 10px)*.7*1.5 - var(--plyr-menu-item-arrow-size, 4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 .02667rem #fff;box-shadow:0 .02667rem 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:.02667rem;left:0;margin-top:.09333rem;margin-top:calc(var(--plyr-control-spacing, 10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:.18667rem;padding-left:calc(var(--plyr-control-spacing, 10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:rgba(0,0,0,.1);content:"";display:block;flex-shrink:0;height:.42667rem;margin-right:.26667rem;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:.42667rem}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:.16rem;left:.32rem;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:.16rem}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b2ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc(-0.18667rem + 2);margin-right:calc(var(--plyr-control-spacing, 10px)*.7*-1 - -2);overflow:hidden;padding-left:.65333rem;padding-left:calc(var(--plyr-control-spacing, 10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;appearance:none;background:transparent;border:0;border-radius:.69333rem;border-radius:calc(var(--plyr-range-thumb-height, 13px)*2);color:#00b2ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));display:block;height:.50667rem;height:calc(var(--plyr-range-thumb-active-shadow-width, 3px)*2 + var(--plyr-range-thumb-height, 13px));margin:0;min-width:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:transparent;background-image:linear-gradient(90deg,currentColor 0,transparent 0);background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0));border:0;border-radius:.06667rem;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:.13333rem;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2));height:.34667rem;height:var(--plyr-range-thumb-height,13px);margin-top:-.10667rem;margin-top:calc((var(--plyr-range-thumb-height, 13px) - var(--plyr-range-track-height, 5px))/2*-1);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:.34667rem;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-track{background:transparent;border:0;border-radius:.06667rem;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:.13333rem;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2));height:.34667rem;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:.34667rem;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:.06667rem;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:.13333rem;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:transparent;border:0;border-radius:.06667rem;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:.13333rem;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:transparent;background:currentColor;border:0;border-radius:.06667rem;border-radius:calc(var(--plyr-range-track-height, 5px)/2);height:.13333rem;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2));height:.34667rem;height:var(--plyr-range-thumb-height,13px);margin-top:0;position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:.34667rem;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline:.08rem dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted .08rem;outline-offset:.05333rem}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline:.08rem dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted .08rem;outline-offset:.05333rem}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline:.08rem dotted #00b2ff;outline:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b2ff))) dotted .08rem;outline-offset:.05333rem}.plyr__poster{background-color:#000;background-color:var(--plyr-video-background,var(--plyr-video-background,#000));background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr--youtube.plyr--paused.plyr__poster-enabled:not(.plyr--stopped) .plyr__poster{display:none}.plyr__time{font-size:.34667rem;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"\\2044";margin-right:.26667rem;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:767px){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:hsla(0,0%,100%,.9);background:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:.13333rem;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 .02667rem .05333rem rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:.34667rem;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:.26667rem;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:.13333rem .2rem;padding:calc(var(--plyr-control-spacing, 10px)/2) calc(var(--plyr-control-spacing, 10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,.26667rem) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:.10667rem solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:.10667rem solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:.10667rem solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-.10667rem;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(.26667rem) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:.42667rem;left:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(.26667rem) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:.42667rem;right:calc(var(--plyr-control-icon-size, 18px)/2 + var(--plyr-control-spacing, 10px)*.7);transform:translate(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:.17333rem;left:calc(var(--plyr-range-thumb-height, 13px)*.5);margin-right:.34667rem;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-.17333rem;margin-left:calc(var(--plyr-range-thumb-height, 13px)*-.5);margin-right:-.17333rem;margin-right:calc(var(--plyr-range-thumb-height, 13px)*-.5);width:calc(100% + 0.34667rem);width:calc(100% + var(--plyr-range-thumb-height, 13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{left:0;max-width:3.2rem;overflow-wrap:break-word;white-space:normal}.plyr__progress__buffer{-webkit-appearance:none;background:transparent;border:0;border-radius:2.66667rem;height:.13333rem;height:var(--plyr-range-track-height,5px);left:0;margin-top:-.06667rem;margin-top:calc((var(--plyr-range-track-height, 5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:transparent}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:2.66667rem;min-width:.13333rem;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:2.66667rem;min-width:.13333rem;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:2.66667rem;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 0,transparent 50%,rgba(35,40,47,.6) 0,rgba(35,40,47,.6) 75%,transparent 0,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:.66667rem .66667rem;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__progress__marker{background-color:#fff;background-color:var(--plyr-progress-marker-background,#fff);border-radius:.02667rem;height:.13333rem;height:var(--plyr-range-track-height,5px);position:absolute;top:50%;transform:translate(-50%,-50%);width:.08rem;width:var(--plyr-progress-marker-width,3px);z-index:3}.plyr__volume{align-items:center;display:flex;max-width:2.93333rem;min-width:2.13333rem;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:.13333rem;margin-left:calc(var(--plyr-control-spacing, 10px)/2);margin-right:.13333rem;margin-right:calc(var(--plyr-control-spacing, 10px)/2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:.26667rem;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:rgba(193,200,209,.6);color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;background:var(--plyr-video-background,var(--plyr-video-background,#000));height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{aspect-ratio:16/9}@supports not (aspect-ratio:16/9){.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%;position:relative}}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;height:100%;left:0;position:absolute;top:0;width:100%}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:.13333rem;padding:calc(var(--plyr-control-spacing, 10px)/2);padding-top:.53333rem;padding-top:calc(var(--plyr-control-spacing, 10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:.26667rem;padding:var(--plyr-control-spacing,10px);padding-top:.93333rem;padding-top:calc(var(--plyr-control-spacing, 10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b2ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b2ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:.4rem;padding:calc(var(--plyr-control-spacing, 10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:.05333rem;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:rgba(255,255,255,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 .02667rem .02667rem rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2),0 0 0 .08rem rgba(255,255,255,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 .02667rem rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--video .plyr__progress__buffer{color:rgba(255,255,255,.25);color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:fullscreen video{height:100%}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:.56rem;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:fullscreen .plyr__captions{font-size:.56rem;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;bottom:0;display:block;height:100%;left:0;margin:0;position:fixed;right:0;top:0;width:100%;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:.56rem;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:.05333rem;bottom:.26667rem;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:.29333rem;padding:.05333rem .16rem;pointer-events:none;position:absolute;right:.26667rem;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:empty:after{display:none}.plyr__cues{background:currentColor;display:block;height:.13333rem;height:var(--plyr-range-track-height,5px);left:0;opacity:.8;position:absolute;top:50%;transform:translateY(-50%);width:.08rem;z-index:3}.plyr__preview-thumb{background-color:rgba(255,255,255,.9);background-color:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:.13333rem;border-radius:var(--plyr-tooltip-radius,5px);bottom:100%;box-shadow:0 .02667rem .05333rem rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:.26667rem;margin-bottom:calc(var(--plyr-control-spacing, 10px)/2*2);opacity:0;padding:.08rem;pointer-events:none;position:absolute;transform:translateY(.26667rem) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:.10667rem solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:.10667rem solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:.10667rem solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-.10667rem;bottom:calc(var(--plyr-tooltip-arrow-size, 4px)*-1);content:"";height:0;left:calc(50% + var(--preview-arrow-offset));position:absolute;transform:translate(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:.10667rem;border-radius:calc(var(--plyr-tooltip-radius, 5px) - .02667rem);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img,.plyr__preview-thumb__image-container:after{height:100%;left:0;position:absolute;top:0;width:100%}.plyr__preview-thumb__image-container:after{border-radius:inherit;box-shadow:inset 0 0 0 .02667rem rgba(0,0,0,.15);content:"";pointer-events:none}.plyr__preview-thumb__image-container img{max-height:none;max-width:none}.plyr__preview-thumb__time-container{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:.10667rem;border-bottom-left-radius:calc(var(--plyr-tooltip-radius, 5px) - .02667rem);border-bottom-right-radius:.10667rem;border-bottom-right-radius:calc(var(--plyr-tooltip-radius, 5px) - .02667rem);bottom:0;left:0;line-height:1.1;padding:.53333rem .16rem .16rem;position:absolute;right:0;z-index:3}.plyr__preview-thumb__time-container span{color:#fff;font-size:.34667rem;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__preview-scrubbing{bottom:0;filter:blur(.02667rem);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(.02667rem,.02667rem,.02667rem,.02667rem);border:0!important;height:.02667rem!important;overflow:hidden;padding:0!important;position:absolute!important;width:.02667rem!important}.plyr [hidden]{display:none!important}\n'
  document.head.appendChild(__vite_style__)
  System.register(
    ['./vendor-legacy.09f20d09.js', './index-legacy.595c24c3.js'],
    function (exports) {
      'use strict'
      var defineComponent,
        createVNode,
        Loading,
        createTextVNode,
        Fragment,
        Icon,
        Button,
        Toast,
        listenerMessage,
        browser$1,
        postMessage,
        state
      return {
        setters: [
          function (module) {
            defineComponent = module.d
            createVNode = module.a
            Loading = module.L
            createTextVNode = module.j
            Fragment = module.F
            Icon = module.K
            Button = module.B
            Toast = module.T
          },
          function (module) {
            listenerMessage = module.l
            browser$1 = module.b
            postMessage = module.p
            state = module.s
          }
        ],
        execute: function execute() {
          var video = '_video_1vz16_1'
          var loadingVideo = '_loadingVideo_1vz16_35'
          var playOver = '_playOver_1vz16_44'
          var tips = '_tips_1vz16_52'
          var btn = '_btn_1vz16_56'
          var freeTxt = '_freeTxt_1vz16_59'
          var freeRate = '_freeRate_1vz16_65'
          var styles = {
            'video-container': '_video-container_1vz16_1',
            video: video,
            loadingVideo: loadingVideo,
            playOver: playOver,
            tips: tips,
            btn: btn,
            freeTxt: freeTxt,
            freeRate: freeRate
          }
          function _defineProperty$1(e, t, i) {
            return (
              t in e
                ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                  })
                : (e[t] = i),
              e
            )
          }
          function _classCallCheck(e, t) {
            if (!(e instanceof t))
              throw new TypeError('Cannot call a class as a function')
          }
          function _defineProperties(e, t) {
            for (var i = 0; i < t.length; i++) {
              var s = t[i]
              ;(s.enumerable = s.enumerable || !1),
                (s.configurable = !0),
                'value' in s && (s.writable = !0),
                Object.defineProperty(e, s.key, s)
            }
          }
          function _createClass(e, t, i) {
            return (
              t && _defineProperties(e.prototype, t),
              i && _defineProperties(e, i),
              e
            )
          }
          function _defineProperty(e, t, i) {
            return (
              t in e
                ? Object.defineProperty(e, t, {
                    value: i,
                    enumerable: !0,
                    configurable: !0,
                    writable: !0
                  })
                : (e[t] = i),
              e
            )
          }
          function ownKeys(e, t) {
            var i = Object.keys(e)
            if (Object.getOwnPropertySymbols) {
              var s = Object.getOwnPropertySymbols(e)
              t &&
                (s = s.filter(function (t) {
                  return Object.getOwnPropertyDescriptor(e, t).enumerable
                })),
                i.push.apply(i, s)
            }
            return i
          }
          function _objectSpread2(e) {
            for (var t = 1; t < arguments.length; t++) {
              var i = null != arguments[t] ? arguments[t] : {}
              t % 2
                ? ownKeys(Object(i), !0).forEach(function (t) {
                    _defineProperty(e, t, i[t])
                  })
                : Object.getOwnPropertyDescriptors
                ? Object.defineProperties(
                    e,
                    Object.getOwnPropertyDescriptors(i)
                  )
                : ownKeys(Object(i)).forEach(function (t) {
                    Object.defineProperty(
                      e,
                      t,
                      Object.getOwnPropertyDescriptor(i, t)
                    )
                  })
            }
            return e
          }
          var defaults$1 = { addCSS: !0, thumbWidth: 15, watch: !0 }
          function matches$1(e, t) {
            return function () {
              return Array.from(document.querySelectorAll(t)).includes(this)
            }.call(e, t)
          }
          function trigger(e, t) {
            if (e && t) {
              var i = new Event(t, { bubbles: !0 })
              e.dispatchEvent(i)
            }
          }
          var getConstructor$1 = function getConstructor$1(e) {
              return null != e ? e.constructor : null
            },
            instanceOf$1 = function instanceOf$1(e, t) {
              return !!(e && t && e instanceof t)
            },
            isNullOrUndefined$1 = function isNullOrUndefined$1(e) {
              return null == e
            },
            isObject$1 = function isObject$1(e) {
              return getConstructor$1(e) === Object
            },
            isNumber$1 = function isNumber$1(e) {
              return getConstructor$1(e) === Number && !Number.isNaN(e)
            },
            isString$1 = function isString$1(e) {
              return getConstructor$1(e) === String
            },
            isBoolean$1 = function isBoolean$1(e) {
              return getConstructor$1(e) === Boolean
            },
            isFunction$1 = function isFunction$1(e) {
              return getConstructor$1(e) === Function
            },
            isArray$1 = function isArray$1(e) {
              return Array.isArray(e)
            },
            isNodeList$1 = function isNodeList$1(e) {
              return instanceOf$1(e, NodeList)
            },
            isElement$1 = function isElement$1(e) {
              return instanceOf$1(e, Element)
            },
            isEvent$1 = function isEvent$1(e) {
              return instanceOf$1(e, Event)
            },
            isEmpty$1 = function isEmpty$1(e) {
              return (
                isNullOrUndefined$1(e) ||
                ((isString$1(e) || isArray$1(e) || isNodeList$1(e)) &&
                  !e.length) ||
                (isObject$1(e) && !Object.keys(e).length)
              )
            },
            is$1 = {
              nullOrUndefined: isNullOrUndefined$1,
              object: isObject$1,
              number: isNumber$1,
              string: isString$1,
              boolean: isBoolean$1,
              function: isFunction$1,
              array: isArray$1,
              nodeList: isNodeList$1,
              element: isElement$1,
              event: isEvent$1,
              empty: isEmpty$1
            }
          function getDecimalPlaces(e) {
            var t = ''.concat(e).match(/(?:\.(\d+))?(?:[eE]([+-]?\d+))?$/)
            return t
              ? Math.max(0, (t[1] ? t[1].length : 0) - (t[2] ? +t[2] : 0))
              : 0
          }
          function round(e, t) {
            if (1 > t) {
              var i = getDecimalPlaces(t)
              return parseFloat(e.toFixed(i))
            }
            return Math.round(e / t) * t
          }
          var RangeTouch = (function () {
            function e(t, i) {
              _classCallCheck(this, e),
                is$1.element(t)
                  ? (this.element = t)
                  : is$1.string(t) &&
                    (this.element = document.querySelector(t)),
                is$1.element(this.element) &&
                  is$1.empty(this.element.rangeTouch) &&
                  ((this.config = _objectSpread2({}, defaults$1, {}, i)),
                  this.init())
            }
            return (
              _createClass(
                e,
                [
                  {
                    key: 'init',
                    value: function value() {
                      e.enabled &&
                        (this.config.addCSS &&
                          ((this.element.style.userSelect = 'none'),
                          (this.element.style.webKitUserSelect = 'none'),
                          (this.element.style.touchAction = 'manipulation')),
                        this.listeners(!0),
                        (this.element.rangeTouch = this))
                    }
                  },
                  {
                    key: 'destroy',
                    value: function value() {
                      e.enabled &&
                        (this.config.addCSS &&
                          ((this.element.style.userSelect = ''),
                          (this.element.style.webKitUserSelect = ''),
                          (this.element.style.touchAction = '')),
                        this.listeners(!1),
                        (this.element.rangeTouch = null))
                    }
                  },
                  {
                    key: 'listeners',
                    value: function value(e) {
                      var t = this,
                        i = e ? 'addEventListener' : 'removeEventListener'
                      ;['touchstart', 'touchmove', 'touchend'].forEach(
                        function (e) {
                          t.element[i](
                            e,
                            function (e) {
                              return t.set(e)
                            },
                            !1
                          )
                        }
                      )
                    }
                  },
                  {
                    key: 'get',
                    value: function value(t) {
                      if (!e.enabled || !is$1.event(t)) return null
                      var i,
                        s = t.target,
                        n = t.changedTouches[0],
                        r = parseFloat(s.getAttribute('min')) || 0,
                        a = parseFloat(s.getAttribute('max')) || 100,
                        o = parseFloat(s.getAttribute('step')) || 1,
                        l = s.getBoundingClientRect(),
                        c =
                          ((100 / l.width) * (this.config.thumbWidth / 2)) / 100
                      return (
                        0 > (i = (100 / l.width) * (n.clientX - l.left))
                          ? (i = 0)
                          : 100 < i && (i = 100),
                        50 > i
                          ? (i -= (100 - 2 * i) * c)
                          : 50 < i && (i += 2 * (i - 50) * c),
                        r + round((i / 100) * (a - r), o)
                      )
                    }
                  },
                  {
                    key: 'set',
                    value: function value(t) {
                      e.enabled &&
                        is$1.event(t) &&
                        !t.target.disabled &&
                        (t.preventDefault(),
                        (t.target.value = this.get(t)),
                        trigger(
                          t.target,
                          'touchend' === t.type ? 'change' : 'input'
                        ))
                    }
                  }
                ],
                [
                  {
                    key: 'setup',
                    value: function value(t) {
                      var i =
                          1 < arguments.length && void 0 !== arguments[1]
                            ? arguments[1]
                            : {},
                        s = null
                      if (
                        (is$1.empty(t) || is$1.string(t)
                          ? (s = Array.from(
                              document.querySelectorAll(
                                is$1.string(t) ? t : 'input[type="range"]'
                              )
                            ))
                          : is$1.element(t)
                          ? (s = [t])
                          : is$1.nodeList(t)
                          ? (s = Array.from(t))
                          : is$1.array(t) && (s = t.filter(is$1.element)),
                        is$1.empty(s))
                      )
                        return null
                      var n = _objectSpread2({}, defaults$1, {}, i)
                      if (is$1.string(t) && n.watch) {
                        var r = new MutationObserver(function (i) {
                          Array.from(i).forEach(function (i) {
                            Array.from(i.addedNodes).forEach(function (i) {
                              is$1.element(i) && matches$1(i, t) && new e(i, n)
                            })
                          })
                        })
                        r.observe(document.body, { childList: !0, subtree: !0 })
                      }
                      return s.map(function (t) {
                        return new e(t, i)
                      })
                    }
                  },
                  {
                    key: 'enabled',
                    get: function get() {
                      return 'ontouchstart' in document.documentElement
                    }
                  }
                ]
              ),
              e
            )
          })()
          var getConstructor = function getConstructor(e) {
              return null != e ? e.constructor : null
            },
            instanceOf = function instanceOf(e, t) {
              return Boolean(e && t && e instanceof t)
            },
            isNullOrUndefined = function isNullOrUndefined(e) {
              return null == e
            },
            isObject = function isObject(e) {
              return getConstructor(e) === Object
            },
            isNumber = function isNumber(e) {
              return getConstructor(e) === Number && !Number.isNaN(e)
            },
            isString = function isString(e) {
              return getConstructor(e) === String
            },
            isBoolean = function isBoolean(e) {
              return getConstructor(e) === Boolean
            },
            isFunction = function isFunction(e) {
              return getConstructor(e) === Function
            },
            isArray = function isArray(e) {
              return Array.isArray(e)
            },
            isWeakMap = function isWeakMap(e) {
              return instanceOf(e, WeakMap)
            },
            isNodeList = function isNodeList(e) {
              return instanceOf(e, NodeList)
            },
            isTextNode = function isTextNode(e) {
              return getConstructor(e) === Text
            },
            isEvent = function isEvent(e) {
              return instanceOf(e, Event)
            },
            isKeyboardEvent = function isKeyboardEvent(e) {
              return instanceOf(e, KeyboardEvent)
            },
            isCue = function isCue(e) {
              return (
                instanceOf(e, window.TextTrackCue) ||
                instanceOf(e, window.VTTCue)
              )
            },
            isTrack = function isTrack(e) {
              return (
                instanceOf(e, TextTrack) ||
                (!isNullOrUndefined(e) && isString(e.kind))
              )
            },
            isPromise = function isPromise(e) {
              return instanceOf(e, Promise) && isFunction(e.then)
            },
            isElement = function isElement(e) {
              return (
                null !== e &&
                'object' == _typeof(e) &&
                1 === e.nodeType &&
                'object' == _typeof(e.style) &&
                'object' == _typeof(e.ownerDocument)
              )
            },
            isEmpty = function isEmpty(e) {
              return (
                isNullOrUndefined(e) ||
                ((isString(e) || isArray(e) || isNodeList(e)) && !e.length) ||
                (isObject(e) && !Object.keys(e).length)
              )
            },
            isUrl = function isUrl(e) {
              if (instanceOf(e, window.URL)) return !0
              if (!isString(e)) return !1
              var t = e
              ;(e.startsWith('http://') && e.startsWith('https://')) ||
                (t = 'http://'.concat(e))
              try {
                return !isEmpty(new URL(t).hostname)
              } catch (e) {
                return !1
              }
            }
          var is = {
            nullOrUndefined: isNullOrUndefined,
            object: isObject,
            number: isNumber,
            string: isString,
            boolean: isBoolean,
            function: isFunction,
            array: isArray,
            weakMap: isWeakMap,
            nodeList: isNodeList,
            element: isElement,
            textNode: isTextNode,
            event: isEvent,
            keyboardEvent: isKeyboardEvent,
            cue: isCue,
            track: isTrack,
            promise: isPromise,
            url: isUrl,
            empty: isEmpty
          }
          var transitionEndEvent = (function () {
            var e = document.createElement('span'),
              t = {
                WebkitTransition: 'webkitTransitionEnd',
                MozTransition: 'transitionend',
                OTransition: 'oTransitionEnd otransitionend',
                transition: 'transitionend'
              },
              i = Object.keys(t).find(function (t) {
                return void 0 !== e.style[t]
              })
            return !!is.string(i) && t[i]
          })()
          function repaint(e, t) {
            setTimeout(function () {
              try {
                ;(e.hidden = !0), e.offsetHeight, (e.hidden = !1)
              } catch (e) {}
            }, t)
          }
          var browser = {
            isIE: Boolean(window.document.documentMode),
            isEdge: window.navigator.userAgent.includes('Edge'),
            isWebkit:
              'WebkitAppearance' in document.documentElement.style &&
              !/Edge/.test(navigator.userAgent),
            isIPhone: /(iPhone|iPod)/gi.test(navigator.platform),
            isIos:
              ('MacIntel' === navigator.platform &&
                navigator.maxTouchPoints > 1) ||
              /(iPad|iPhone|iPod)/gi.test(navigator.platform)
          }
          function cloneDeep(e) {
            return JSON.parse(JSON.stringify(e))
          }
          function getDeep(e, t) {
            return t.split('.').reduce(function (e, t) {
              return e && e[t]
            }, e)
          }
          function extend() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : {}
            for (
              var _len = arguments.length,
                t = new Array(_len > 1 ? _len - 1 : 0),
                _key = 1;
              _key < _len;
              _key++
            ) {
              t[_key - 1] = arguments[_key]
            }
            if (!t.length) return e
            var i = t.shift()
            return is.object(i)
              ? (Object.keys(i).forEach(function (t) {
                  is.object(i[t])
                    ? (Object.keys(e).includes(t) ||
                        Object.assign(e, _defineProperty2({}, t, {})),
                      extend(e[t], i[t]))
                    : Object.assign(e, _defineProperty2({}, t, i[t]))
                }),
                extend.apply(void 0, [e].concat(t)))
              : e
          }
          function wrap(e, t) {
            var i = e.length ? e : [e]
            Array.from(i)
              .reverse()
              .forEach(function (e, i) {
                var s = i > 0 ? t.cloneNode(!0) : t,
                  n = e.parentNode,
                  r = e.nextSibling
                s.appendChild(e), r ? n.insertBefore(s, r) : n.appendChild(s)
              })
          }
          function setAttributes(e, t) {
            is.element(e) &&
              !is.empty(t) &&
              Object.entries(t)
                .filter(function (_ref) {
                  var _ref2 = _slicedToArray(_ref, 2),
                    e = _ref2[1]
                  return !is.nullOrUndefined(e)
                })
                .forEach(function (_ref3) {
                  var _ref4 = _slicedToArray(_ref3, 2),
                    t = _ref4[0],
                    i = _ref4[1]
                  return e.setAttribute(t, i)
                })
          }
          function createElement(e, t, i) {
            var s = document.createElement(e)
            return (
              is.object(t) && setAttributes(s, t),
              is.string(i) && (s.innerText = i),
              s
            )
          }
          function insertAfter(e, t) {
            is.element(e) &&
              is.element(t) &&
              t.parentNode.insertBefore(e, t.nextSibling)
          }
          function insertElement(e, t, i, s) {
            is.element(t) && t.appendChild(createElement(e, i, s))
          }
          function removeElement(e) {
            is.nodeList(e) || is.array(e)
              ? Array.from(e).forEach(removeElement)
              : is.element(e) &&
                is.element(e.parentNode) &&
                e.parentNode.removeChild(e)
          }
          function emptyElement(e) {
            if (!is.element(e)) return
            var t = e.childNodes.length
            for (; t > 0; ) {
              e.removeChild(e.lastChild), (t -= 1)
            }
          }
          function replaceElement(e, t) {
            return is.element(t) && is.element(t.parentNode) && is.element(e)
              ? (t.parentNode.replaceChild(e, t), e)
              : null
          }
          function getAttributesFromSelector(e, t) {
            if (!is.string(e) || is.empty(e)) return {}
            var i = {},
              s = extend({}, t)
            return (
              e.split(',').forEach(function (e) {
                var t = e.trim(),
                  n = t.replace('.', ''),
                  r = t.replace(/[[\]]/g, '').split('='),
                  _r = _slicedToArray(r, 1),
                  a = _r[0],
                  o = r.length > 1 ? r[1].replace(/["']/g, '') : ''
                switch (t.charAt(0)) {
                  case '.':
                    is.string(s.class)
                      ? (i.class = ''.concat(s.class, ' ').concat(n))
                      : (i.class = n)
                    break
                  case '#':
                    i.id = t.replace('#', '')
                    break
                  case '[':
                    i[a] = o
                }
              }),
              extend(s, i)
            )
          }
          function toggleHidden(e, t) {
            if (!is.element(e)) return
            var i = t
            is.boolean(i) || (i = !e.hidden), (e.hidden = i)
          }
          function toggleClass(e, t, i) {
            if (is.nodeList(e))
              return Array.from(e).map(function (e) {
                return toggleClass(e, t, i)
              })
            if (is.element(e)) {
              var s = 'toggle'
              return (
                void 0 !== i && (s = i ? 'add' : 'remove'),
                e.classList[s](t),
                e.classList.contains(t)
              )
            }
            return !1
          }
          function hasClass(e, t) {
            return is.element(e) && e.classList.contains(t)
          }
          function matches(e, t) {
            var _Element = Element,
              i = _Element.prototype
            return (
              i.matches ||
              i.webkitMatchesSelector ||
              i.mozMatchesSelector ||
              i.msMatchesSelector ||
              function () {
                return Array.from(document.querySelectorAll(t)).includes(this)
              }
            ).call(e, t)
          }
          function closest$1(e, t) {
            var _Element2 = Element,
              i = _Element2.prototype
            return (
              i.closest ||
              function () {
                var e = this
                do {
                  if (matches.matches(e, t)) return e
                  e = e.parentElement || e.parentNode
                } while (null !== e && 1 === e.nodeType)
                return null
              }
            ).call(e, t)
          }
          function getElements(e) {
            return this.elements.container.querySelectorAll(e)
          }
          function getElement(e) {
            return this.elements.container.querySelector(e)
          }
          function setFocus() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : null
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : !1
            is.element(e) &&
              (e.focus({ preventScroll: !0 }),
              t && toggleClass(e, this.config.classNames.tabFocus))
          }
          var defaultCodecs = {
              'audio/ogg': 'vorbis',
              'audio/wav': '1',
              'video/webm': 'vp8, vorbis',
              'video/mp4': 'avc1.42E01E, mp4a.40.2',
              'video/ogg': 'theora'
            },
            support = {
              audio: 'canPlayType' in document.createElement('audio'),
              video: 'canPlayType' in document.createElement('video'),
              check: function check(e, t, i) {
                var s = browser.isIPhone && i && support.playsinline,
                  n = support[e] || 'html5' !== t
                return {
                  api: n,
                  ui:
                    n &&
                    support.rangeInput &&
                    ('video' !== e || !browser.isIPhone || s)
                }
              },
              pip: !(
                browser.isIPhone ||
                (!is.function(
                  createElement('video').webkitSetPresentationMode
                ) &&
                  (!document.pictureInPictureEnabled ||
                    createElement('video').disablePictureInPicture))
              ),
              airplay: is.function(
                window.WebKitPlaybackTargetAvailabilityEvent
              ),
              playsinline: 'playsInline' in document.createElement('video'),
              mime: function mime(e) {
                if (is.empty(e)) return !1
                var _e$split = e.split('/'),
                  _e$split2 = _slicedToArray(_e$split, 1),
                  t = _e$split2[0]
                var i = e
                if (!this.isHTML5 || t !== this.type) return !1
                Object.keys(defaultCodecs).includes(i) &&
                  (i += '; codecs="'.concat(defaultCodecs[e], '"'))
                try {
                  return Boolean(
                    i && this.media.canPlayType(i).replace(/no/, '')
                  )
                } catch (e) {
                  return !1
                }
              },
              textTracks: 'textTracks' in document.createElement('video'),
              rangeInput: (function () {
                var e = document.createElement('input')
                return (e.type = 'range'), 'range' === e.type
              })(),
              touch: 'ontouchstart' in document.documentElement,
              transitions: !1 !== transitionEndEvent,
              reducedMotion:
                'matchMedia' in window &&
                window.matchMedia('(prefers-reduced-motion)').matches
            },
            supportsPassiveListeners = (function () {
              var e = !1
              try {
                var t = Object.defineProperty({}, 'passive', {
                  get: function get() {
                    return (e = !0), null
                  }
                })
                window.addEventListener('test', null, t),
                  window.removeEventListener('test', null, t)
              } catch (e) {}
              return e
            })()
          function toggleListener(e, t, i) {
            var _this2 = this
            var s =
              arguments.length > 3 && arguments[3] !== undefined
                ? arguments[3]
                : !1
            var n =
              arguments.length > 4 && arguments[4] !== undefined
                ? arguments[4]
                : !0
            var r =
              arguments.length > 5 && arguments[5] !== undefined
                ? arguments[5]
                : !1
            if (
              !e ||
              !('addEventListener' in e) ||
              is.empty(t) ||
              !is.function(i)
            )
              return
            var a = t.split(' ')
            var o = r
            supportsPassiveListeners && (o = { passive: n, capture: r }),
              a.forEach(function (t) {
                _this2 &&
                  _this2.eventListeners &&
                  s &&
                  _this2.eventListeners.push({
                    element: e,
                    type: t,
                    callback: i,
                    options: o
                  }),
                  e[s ? 'addEventListener' : 'removeEventListener'](t, i, o)
              })
          }
          function on(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : ''
            var i = arguments.length > 2 ? arguments[2] : undefined
            var s =
              arguments.length > 3 && arguments[3] !== undefined
                ? arguments[3]
                : !0
            var n =
              arguments.length > 4 && arguments[4] !== undefined
                ? arguments[4]
                : !1
            toggleListener.call(this, e, t, i, !0, s, n)
          }
          function off(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : ''
            var i = arguments.length > 2 ? arguments[2] : undefined
            var s =
              arguments.length > 3 && arguments[3] !== undefined
                ? arguments[3]
                : !0
            var n =
              arguments.length > 4 && arguments[4] !== undefined
                ? arguments[4]
                : !1
            toggleListener.call(this, e, t, i, !1, s, n)
          }
          function once(e) {
            var _this3 = this
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : ''
            var i = arguments.length > 2 ? arguments[2] : undefined
            var s =
              arguments.length > 3 && arguments[3] !== undefined
                ? arguments[3]
                : !0
            var n =
              arguments.length > 4 && arguments[4] !== undefined
                ? arguments[4]
                : !1
            var r = function r() {
              for (
                var _len2 = arguments.length, a = new Array(_len2), _key2 = 0;
                _key2 < _len2;
                _key2++
              ) {
                a[_key2] = arguments[_key2]
              }
              off(e, t, r, s, n), i.apply(_this3, a)
            }
            toggleListener.call(this, e, t, r, !0, s, n)
          }
          function triggerEvent(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : ''
            var i =
              arguments.length > 2 && arguments[2] !== undefined
                ? arguments[2]
                : !1
            var s =
              arguments.length > 3 && arguments[3] !== undefined
                ? arguments[3]
                : {}
            if (!is.element(e) || is.empty(t)) return
            var n = new CustomEvent(t, {
              bubbles: i,
              detail: _objectSpread(_objectSpread({}, s), {}, { plyr: this })
            })
            e.dispatchEvent(n)
          }
          function unbindListeners() {
            this &&
              this.eventListeners &&
              (this.eventListeners.forEach(function (e) {
                var t = e.element,
                  i = e.type,
                  s = e.callback,
                  n = e.options
                t.removeEventListener(i, s, n)
              }),
              (this.eventListeners = []))
          }
          function ready() {
            var _this4 = this
            return new Promise(function (e) {
              return _this4.ready
                ? setTimeout(e, 0)
                : on.call(_this4, _this4.elements.container, 'ready', e)
            }).then(function () {})
          }
          function silencePromise(e) {
            is.promise(e) && e.then(null, function () {})
          }
          function dedupe(e) {
            return is.array(e)
              ? e.filter(function (t, i) {
                  return e.indexOf(t) === i
                })
              : e
          }
          function closest(e, t) {
            return is.array(e) && e.length
              ? e.reduce(function (e, i) {
                  return Math.abs(i - t) < Math.abs(e - t) ? i : e
                })
              : null
          }
          function supportsCSS(e) {
            return !(!window || !window.CSS) && window.CSS.supports(e)
          }
          var standardRatios = [
            [1, 1],
            [4, 3],
            [3, 4],
            [5, 4],
            [4, 5],
            [3, 2],
            [2, 3],
            [16, 10],
            [10, 16],
            [16, 9],
            [9, 16],
            [21, 9],
            [9, 21],
            [32, 9],
            [9, 32]
          ].reduce(function (e, _ref5) {
            var _ref6 = _slicedToArray(_ref5, 2),
              t = _ref6[0],
              i = _ref6[1]
            return _objectSpread(
              _objectSpread({}, e),
              {},
              _defineProperty2({}, t / i, [t, i])
            )
          }, {})
          function validateAspectRatio(e) {
            if (!(is.array(e) || (is.string(e) && e.includes(':')))) return !1
            return (is.array(e) ? e : e.split(':')).map(Number).every(is.number)
          }
          function reduceAspectRatio(e) {
            if (!is.array(e) || !e.every(is.number)) return null
            var _e2 = _slicedToArray(e, 2),
              t = _e2[0],
              i = _e2[1],
              s = function s(e, t) {
                return 0 === t ? e : s(t, e % t)
              },
              n = s(t, i)
            return [t / n, i / n]
          }
          function getAspectRatio(e) {
            var _this$embed
            var t = function t(e) {
              return validateAspectRatio(e) ? e.split(':').map(Number) : null
            }
            var i = t(e)
            if (
              (null === i && (i = t(this.config.ratio)),
              null === i &&
                !is.empty(this.embed) &&
                is.array(this.embed.ratio) &&
                ((_this$embed = this.embed),
                (i = _this$embed.ratio),
                _this$embed),
              null === i && this.isHTML5)
            ) {
              var _this$media = this.media,
                _e3 = _this$media.videoWidth,
                _t = _this$media.videoHeight
              i = [_e3, _t]
            }
            return reduceAspectRatio(i)
          }
          function setAspectRatio(e) {
            if (!this.isVideo) return {}
            var t = this.elements.wrapper,
              i = getAspectRatio.call(this, e)
            if (!is.array(i)) return {}
            var _reduceAspectRatio = reduceAspectRatio(i),
              _reduceAspectRatio2 = _slicedToArray(_reduceAspectRatio, 2),
              s = _reduceAspectRatio2[0],
              n = _reduceAspectRatio2[1],
              r = (100 / s) * n
            if (
              (supportsCSS('aspect-ratio: '.concat(s, '/').concat(n))
                ? (t.style.aspectRatio = ''.concat(s, '/').concat(n))
                : (t.style.paddingBottom = ''.concat(r, '%')),
              this.isVimeo && !this.config.vimeo.premium && this.supported.ui)
            ) {
              var _e4 =
                  (100 / this.media.offsetWidth) *
                  parseInt(
                    window.getComputedStyle(this.media).paddingBottom,
                    10
                  ),
                _i2 = (_e4 - r) / (_e4 / 50)
              this.fullscreen.active
                ? (t.style.paddingBottom = null)
                : (this.media.style.transform = 'translateY(-'.concat(
                    _i2,
                    '%)'
                  ))
            } else
              this.isHTML5 &&
                t.classList.add(this.config.classNames.videoFixedRatio)
            return { padding: r, ratio: i }
          }
          function roundAspectRatio(e, t) {
            var i =
              arguments.length > 2 && arguments[2] !== undefined
                ? arguments[2]
                : 0.05
            var s = e / t,
              n = closest(Object.keys(standardRatios), s)
            return Math.abs(n - s) <= i ? standardRatios[n] : [e, t]
          }
          function getViewportSize() {
            return [
              Math.max(
                document.documentElement.clientWidth || 0,
                window.innerWidth || 0
              ),
              Math.max(
                document.documentElement.clientHeight || 0,
                window.innerHeight || 0
              )
            ]
          }
          var html5 = {
            getSources: function getSources() {
              var _this5 = this
              if (!this.isHTML5) return []
              return Array.from(this.media.querySelectorAll('source')).filter(
                function (e) {
                  var t = e.getAttribute('type')
                  return !!is.empty(t) || support.mime.call(_this5, t)
                }
              )
            },
            getQualityOptions: function getQualityOptions() {
              return this.config.quality.forced
                ? this.config.quality.options
                : html5.getSources
                    .call(this)
                    .map(function (e) {
                      return Number(e.getAttribute('size'))
                    })
                    .filter(Boolean)
            },
            setup: function setup() {
              if (!this.isHTML5) return
              var e = this
              ;(e.options.speed = e.config.speed.options),
                is.empty(this.config.ratio) || setAspectRatio.call(e),
                Object.defineProperty(e.media, 'quality', {
                  get: function get() {
                    var t = html5.getSources.call(e).find(function (t) {
                      return t.getAttribute('src') === e.source
                    })
                    return t && Number(t.getAttribute('size'))
                  },
                  set: function set(t) {
                    if (e.quality !== t) {
                      if (
                        e.config.quality.forced &&
                        is.function(e.config.quality.onChange)
                      )
                        e.config.quality.onChange(t)
                      else {
                        var i = html5.getSources.call(e).find(function (e) {
                          return Number(e.getAttribute('size')) === t
                        })
                        if (!i) return
                        var _e$media = e.media,
                          s = _e$media.currentTime,
                          n = _e$media.paused,
                          r = _e$media.preload,
                          a = _e$media.readyState,
                          o = _e$media.playbackRate
                        ;(e.media.src = i.getAttribute('src')),
                          ('none' !== r || a) &&
                            (e.once('loadedmetadata', function () {
                              ;(e.speed = o),
                                (e.currentTime = s),
                                n || silencePromise(e.play())
                            }),
                            e.media.load())
                      }
                      triggerEvent.call(e, e.media, 'qualitychange', !1, {
                        quality: t
                      })
                    }
                  }
                })
            },
            cancelRequests: function cancelRequests() {
              this.isHTML5 &&
                (removeElement(html5.getSources.call(this)),
                this.media.setAttribute('src', this.config.blankVideo),
                this.media.load(),
                this.debug.log('Cancelled network requests'))
            }
          }
          function generateId(e) {
            return ''.concat(e, '-').concat(Math.floor(1e4 * Math.random()))
          }
          function format(e) {
            for (
              var _len3 = arguments.length,
                t = new Array(_len3 > 1 ? _len3 - 1 : 0),
                _key3 = 1;
              _key3 < _len3;
              _key3++
            ) {
              t[_key3 - 1] = arguments[_key3]
            }
            return is.empty(e)
              ? e
              : e.toString().replace(/{(\d+)}/g, function (e, i) {
                  return t[i].toString()
                })
          }
          function getPercentage(e, t) {
            return 0 === e || 0 === t || Number.isNaN(e) || Number.isNaN(t)
              ? 0
              : ((e / t) * 100).toFixed(2)
          }
          var replaceAll = function replaceAll() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : ''
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : ''
              var i =
                arguments.length > 2 && arguments[2] !== undefined
                  ? arguments[2]
                  : ''
              return e.replace(
                new RegExp(
                  t.toString().replace(/([.*+?^=!:${}()|[\]/\\])/g, '\\$1'),
                  'g'
                ),
                i.toString()
              )
            },
            toTitleCase = function toTitleCase() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : ''
              return e.toString().replace(/\w\S*/g, function (e) {
                return e.charAt(0).toUpperCase() + e.slice(1).toLowerCase()
              })
            }
          function toPascalCase() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : ''
            var t = e.toString()
            return (
              (t = replaceAll(t, '-', ' ')),
              (t = replaceAll(t, '_', ' ')),
              (t = toTitleCase(t)),
              replaceAll(t, ' ', '')
            )
          }
          function toCamelCase() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : ''
            var t = e.toString()
            return (t = toPascalCase(t)), t.charAt(0).toLowerCase() + t.slice(1)
          }
          function stripHTML(e) {
            var t = document.createDocumentFragment(),
              i = document.createElement('div')
            return t.appendChild(i), (i.innerHTML = e), t.firstChild.innerText
          }
          function getHTML(e) {
            var t = document.createElement('div')
            return t.appendChild(e), t.innerHTML
          }
          var resources = {
              pip: 'PIP',
              airplay: 'AirPlay',
              html5: 'HTML5',
              vimeo: 'Vimeo',
              youtube: 'YouTube'
            },
            i18n = {
              get: function get() {
                var e =
                  arguments.length > 0 && arguments[0] !== undefined
                    ? arguments[0]
                    : ''
                var t =
                  arguments.length > 1 && arguments[1] !== undefined
                    ? arguments[1]
                    : {}
                if (is.empty(e) || is.empty(t)) return ''
                var i = getDeep(t.i18n, e)
                if (is.empty(i))
                  return Object.keys(resources).includes(e) ? resources[e] : ''
                var s = { '{seektime}': t.seekTime, '{title}': t.title }
                return (
                  Object.entries(s).forEach(function (_ref7) {
                    var _ref8 = _slicedToArray(_ref7, 2),
                      e = _ref8[0],
                      t = _ref8[1]
                    i = replaceAll(i, e, t)
                  }),
                  i
                )
              }
            }
          var Storage = /*#__PURE__*/ (function () {
            function Storage(e) {
              var _this6 = this
              _classCallCheck2(this, Storage)
              _defineProperty$1(this, 'get', function (e) {
                if (!Storage.supported || !_this6.enabled) return null
                var t = window.localStorage.getItem(_this6.key)
                if (is.empty(t)) return null
                var i = JSON.parse(t)
                return is.string(e) && e.length ? i[e] : i
              }),
                _defineProperty$1(this, 'set', function (e) {
                  if (!Storage.supported || !_this6.enabled) return
                  if (!is.object(e)) return
                  var t = _this6.get()
                  is.empty(t) && (t = {}), extend(t, e)
                  try {
                    window.localStorage.setItem(_this6.key, JSON.stringify(t))
                  } catch (e) {}
                }),
                (this.enabled = e.config.storage.enabled),
                (this.key = e.config.storage.key)
            }
            _createClass2(Storage, null, [
              {
                key: 'supported',
                get: function get() {
                  try {
                    if (!('localStorage' in window)) return !1
                    var e = '___test'
                    return (
                      window.localStorage.setItem(e, e),
                      window.localStorage.removeItem(e),
                      !0
                    )
                  } catch (e) {
                    return !1
                  }
                }
              }
            ])
            return Storage
          })()
          function fetch(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : 'text'
            return new Promise(function (i, s) {
              try {
                var _s2 = new XMLHttpRequest()
                if (!('withCredentials' in _s2)) return
                _s2.addEventListener('load', function () {
                  if ('text' === t)
                    try {
                      i(JSON.parse(_s2.responseText))
                    } catch (e) {
                      i(_s2.responseText)
                    }
                  else i(_s2.response)
                }),
                  _s2.addEventListener('error', function () {
                    throw new Error(_s2.status)
                  }),
                  _s2.open('GET', e, !0),
                  (_s2.responseType = t),
                  _s2.send()
              } catch (e) {
                s(e)
              }
            })
          }
          function _loadSprite(e, t) {
            if (!is.string(e)) return
            var i = is.string(t)
            var s = !1
            var n = function n() {
                return null !== document.getElementById(t)
              },
              r = function r(e, t) {
                ;(e.innerHTML = t),
                  (i && n()) ||
                    document.body.insertAdjacentElement('afterbegin', e)
              }
            if (!i || !n()) {
              var _n2 = Storage.supported,
                a = document.createElement('div')
              if (
                (a.setAttribute('hidden', ''),
                i && a.setAttribute('id', t),
                _n2)
              ) {
                var _e5 = window.localStorage.getItem('cache-'.concat(t))
                if (((s = null !== _e5), s)) {
                  var _t2 = JSON.parse(_e5)
                  r(a, _t2.content)
                }
              }
              fetch(e)
                .then(function (e) {
                  if (!is.empty(e)) {
                    if (_n2)
                      try {
                        window.localStorage.setItem(
                          'cache-'.concat(t),
                          JSON.stringify({ content: e })
                        )
                      } catch (e) {}
                    r(a, e)
                  }
                })
                .catch(function () {})
            }
          }
          var getHours = function getHours(e) {
              return Math.trunc((e / 60 / 60) % 60, 10)
            },
            getSeconds = function getSeconds(e) {
              return Math.trunc(e % 60, 10)
            }
          function _formatTime() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : 0
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : !1
            var i =
              arguments.length > 2 && arguments[2] !== undefined
                ? arguments[2]
                : !1
            if (!is.number(e)) return _formatTime(void 0, t, i)
            var s = function s(e) {
              return '0'.concat(e).slice(-2)
            }
            var n = getHours(e)
            var r = ((a = e), Math.trunc((a / 60) % 60, 10))
            var a
            var o = getSeconds(e)
            return (
              (n = t || n > 0 ? ''.concat(n, ':') : ''),
              ''
                .concat(i && e > 0 ? '-' : '')
                .concat(n)
                .concat(s(r), ':')
                .concat(s(o))
            )
          }
          var controls = {
            getIconUrl: function getIconUrl() {
              var e = new URL(this.config.iconUrl, window.location),
                t = window.location.host
                  ? window.location.host
                  : window.top.location.host,
                i = e.host !== t || (browser.isIE && !window.svg4everybody)
              return { url: this.config.iconUrl, cors: i }
            },
            findElements: function findElements() {
              try {
                return (
                  (this.elements.controls = getElement.call(
                    this,
                    this.config.selectors.controls.wrapper
                  )),
                  (this.elements.buttons = {
                    play: getElements.call(
                      this,
                      this.config.selectors.buttons.play
                    ),
                    pause: getElement.call(
                      this,
                      this.config.selectors.buttons.pause
                    ),
                    restart: getElement.call(
                      this,
                      this.config.selectors.buttons.restart
                    ),
                    rewind: getElement.call(
                      this,
                      this.config.selectors.buttons.rewind
                    ),
                    fastForward: getElement.call(
                      this,
                      this.config.selectors.buttons.fastForward
                    ),
                    mute: getElement.call(
                      this,
                      this.config.selectors.buttons.mute
                    ),
                    pip: getElement.call(
                      this,
                      this.config.selectors.buttons.pip
                    ),
                    airplay: getElement.call(
                      this,
                      this.config.selectors.buttons.airplay
                    ),
                    settings: getElement.call(
                      this,
                      this.config.selectors.buttons.settings
                    ),
                    captions: getElement.call(
                      this,
                      this.config.selectors.buttons.captions
                    ),
                    fullscreen: getElement.call(
                      this,
                      this.config.selectors.buttons.fullscreen
                    )
                  }),
                  (this.elements.progress = getElement.call(
                    this,
                    this.config.selectors.progress
                  )),
                  (this.elements.inputs = {
                    seek: getElement.call(
                      this,
                      this.config.selectors.inputs.seek
                    ),
                    volume: getElement.call(
                      this,
                      this.config.selectors.inputs.volume
                    )
                  }),
                  (this.elements.display = {
                    buffer: getElement.call(
                      this,
                      this.config.selectors.display.buffer
                    ),
                    currentTime: getElement.call(
                      this,
                      this.config.selectors.display.currentTime
                    ),
                    duration: getElement.call(
                      this,
                      this.config.selectors.display.duration
                    )
                  }),
                  is.element(this.elements.progress) &&
                    (this.elements.display.seekTooltip =
                      this.elements.progress.querySelector(
                        '.'.concat(this.config.classNames.tooltip)
                      )),
                  !0
                )
              } catch (e) {
                return (
                  this.debug.warn(
                    'It looks like there is a problem with your custom controls HTML',
                    e
                  ),
                  this.toggleNativeControls(!0),
                  !1
                )
              }
            },
            createIcon: function createIcon(e, t) {
              var i = 'http://www.w3.org/2000/svg',
                s = controls.getIconUrl.call(this),
                n = ''
                  .concat(s.cors ? '' : s.url, '#')
                  .concat(this.config.iconPrefix),
                r = document.createElementNS(i, 'svg')
              setAttributes(
                r,
                extend(t, { 'aria-hidden': 'true', focusable: 'false' })
              )
              var a = document.createElementNS(i, 'use'),
                o = ''.concat(n, '-').concat(e)
              return (
                'href' in a &&
                  a.setAttributeNS('http://www.w3.org/1999/xlink', 'href', o),
                a.setAttributeNS(
                  'http://www.w3.org/1999/xlink',
                  'xlink:href',
                  o
                ),
                r.appendChild(a),
                r
              )
            },
            createLabel: function createLabel(e) {
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : {}
              var i = i18n.get(e, this.config)
              return createElement(
                'span',
                _objectSpread(
                  _objectSpread({}, t),
                  {},
                  {
                    class: [t.class, this.config.classNames.hidden]
                      .filter(Boolean)
                      .join(' ')
                  }
                ),
                i
              )
            },
            createBadge: function createBadge(e) {
              if (is.empty(e)) return null
              var t = createElement('span', {
                class: this.config.classNames.menu.value
              })
              return (
                t.appendChild(
                  createElement(
                    'span',
                    { class: this.config.classNames.menu.badge },
                    e
                  )
                ),
                t
              )
            },
            createButton: function createButton(e, t) {
              var _this7 = this
              var i = extend({}, t)
              var s = toCamelCase(e)
              var n = {
                element: 'button',
                toggle: !1,
                label: null,
                icon: null,
                labelPressed: null,
                iconPressed: null
              }
              switch (
                (['element', 'icon', 'label'].forEach(function (e) {
                  Object.keys(i).includes(e) && ((n[e] = i[e]), delete i[e])
                }),
                'button' !== n.element ||
                  Object.keys(i).includes('type') ||
                  (i.type = 'button'),
                Object.keys(i).includes('class')
                  ? i.class.split(' ').some(function (e) {
                      return e === _this7.config.classNames.control
                    }) ||
                    extend(i, {
                      class: ''
                        .concat(i.class, ' ')
                        .concat(this.config.classNames.control)
                    })
                  : (i.class = this.config.classNames.control),
                e)
              ) {
                case 'play':
                  ;(n.toggle = !0),
                    (n.label = 'play'),
                    (n.labelPressed = 'pause'),
                    (n.icon = 'play'),
                    (n.iconPressed = 'pause')
                  break
                case 'mute':
                  ;(n.toggle = !0),
                    (n.label = 'mute'),
                    (n.labelPressed = 'unmute'),
                    (n.icon = 'volume'),
                    (n.iconPressed = 'muted')
                  break
                case 'captions':
                  ;(n.toggle = !0),
                    (n.label = 'enableCaptions'),
                    (n.labelPressed = 'disableCaptions'),
                    (n.icon = 'captions-off'),
                    (n.iconPressed = 'captions-on')
                  break
                case 'fullscreen':
                  ;(n.toggle = !0),
                    (n.label = 'enterFullscreen'),
                    (n.labelPressed = 'exitFullscreen'),
                    (n.icon = 'enter-fullscreen'),
                    (n.iconPressed = 'exit-fullscreen')
                  break
                case 'play-large':
                  ;(i.class += ' '.concat(
                    this.config.classNames.control,
                    '--overlaid'
                  )),
                    (s = 'play'),
                    (n.label = 'play'),
                    (n.icon = 'play')
                  break
                default:
                  is.empty(n.label) && (n.label = s),
                    is.empty(n.icon) && (n.icon = e)
              }
              var r = createElement(n.element)
              return (
                n.toggle
                  ? (r.appendChild(
                      controls.createIcon.call(this, n.iconPressed, {
                        class: 'icon--pressed'
                      })
                    ),
                    r.appendChild(
                      controls.createIcon.call(this, n.icon, {
                        class: 'icon--not-pressed'
                      })
                    ),
                    r.appendChild(
                      controls.createLabel.call(this, n.labelPressed, {
                        class: 'label--pressed'
                      })
                    ),
                    r.appendChild(
                      controls.createLabel.call(this, n.label, {
                        class: 'label--not-pressed'
                      })
                    ))
                  : (r.appendChild(controls.createIcon.call(this, n.icon)),
                    r.appendChild(controls.createLabel.call(this, n.label))),
                extend(
                  i,
                  getAttributesFromSelector(this.config.selectors.buttons[s], i)
                ),
                setAttributes(r, i),
                'play' === s
                  ? (is.array(this.elements.buttons[s]) ||
                      (this.elements.buttons[s] = []),
                    this.elements.buttons[s].push(r))
                  : (this.elements.buttons[s] = r),
                r
              )
            },
            createRange: function createRange(e, t) {
              var i = createElement(
                'input',
                extend(
                  getAttributesFromSelector(this.config.selectors.inputs[e]),
                  {
                    type: 'range',
                    min: 0,
                    max: 100,
                    step: 0.01,
                    value: 0,
                    autocomplete: 'off',
                    role: 'slider',
                    'aria-label': i18n.get(e, this.config),
                    'aria-valuemin': 0,
                    'aria-valuemax': 100,
                    'aria-valuenow': 0
                  },
                  t
                )
              )
              return (
                (this.elements.inputs[e] = i),
                controls.updateRangeFill.call(this, i),
                RangeTouch.setup(i),
                i
              )
            },
            createProgress: function createProgress(e, t) {
              var i = createElement(
                'progress',
                extend(
                  getAttributesFromSelector(this.config.selectors.display[e]),
                  {
                    min: 0,
                    max: 100,
                    value: 0,
                    role: 'progressbar',
                    'aria-hidden': !0
                  },
                  t
                )
              )
              if ('volume' !== e) {
                i.appendChild(createElement('span', null, '0'))
                var _t3 = { played: 'played', buffer: 'buffered' }[e],
                  s = _t3 ? i18n.get(_t3, this.config) : ''
                i.innerText = '% '.concat(s.toLowerCase())
              }
              return (this.elements.display[e] = i), i
            },
            createTime: function createTime(e, t) {
              var i = getAttributesFromSelector(
                  this.config.selectors.display[e],
                  t
                ),
                s = createElement(
                  'div',
                  extend(i, {
                    class: ''
                      .concat(i.class ? i.class : '', ' ')
                      .concat(this.config.classNames.display.time, ' ')
                      .trim(),
                    'aria-label': i18n.get(e, this.config)
                  }),
                  '00:00'
                )
              return (this.elements.display[e] = s), s
            },
            bindMenuItemShortcuts: function bindMenuItemShortcuts(e, t) {
              var _this8 = this
              on.call(
                this,
                e,
                'keydown keyup',
                function (i) {
                  if (
                    !['Space', 'ArrowUp', 'ArrowDown', 'ArrowRight'].includes(
                      i.key
                    )
                  )
                    return
                  if (
                    (i.preventDefault(),
                    i.stopPropagation(),
                    'keydown' === i.type)
                  )
                    return
                  var s = matches(e, '[role="menuitemradio"]')
                  if (!s && ['Space', 'ArrowRight'].includes(i.key))
                    controls.showMenuPanel.call(_this8, t, !0)
                  else {
                    var _t4
                    'Space' !== i.key &&
                      ('ArrowDown' === i.key || (s && 'ArrowRight' === i.key)
                        ? ((_t4 = e.nextElementSibling),
                          is.element(_t4) ||
                            (_t4 = e.parentNode.firstElementChild))
                        : ((_t4 = e.previousElementSibling),
                          is.element(_t4) ||
                            (_t4 = e.parentNode.lastElementChild)),
                      setFocus.call(_this8, _t4, !0))
                  }
                },
                !1
              ),
                on.call(this, e, 'keyup', function (e) {
                  'Return' === e.key &&
                    controls.focusFirstMenuItem.call(_this8, null, !0)
                })
            },
            createMenuItem: function createMenuItem(_ref9) {
              var _this9 = this
              var e = _ref9.value,
                t = _ref9.list,
                i = _ref9.type,
                s = _ref9.title,
                _ref9$badge = _ref9.badge,
                n = _ref9$badge === void 0 ? null : _ref9$badge,
                _ref9$checked = _ref9.checked,
                r = _ref9$checked === void 0 ? !1 : _ref9$checked
              var a = getAttributesFromSelector(
                  this.config.selectors.inputs[i]
                ),
                o = createElement(
                  'button',
                  extend(a, {
                    type: 'button',
                    role: 'menuitemradio',
                    class: ''
                      .concat(this.config.classNames.control, ' ')
                      .concat(a.class ? a.class : '')
                      .trim(),
                    'aria-checked': r,
                    value: e
                  })
                ),
                l = createElement('span')
              ;(l.innerHTML = s),
                is.element(n) && l.appendChild(n),
                o.appendChild(l),
                Object.defineProperty(o, 'checked', {
                  enumerable: !0,
                  get: function get() {
                    return 'true' === o.getAttribute('aria-checked')
                  },
                  set: function set(e) {
                    e &&
                      Array.from(o.parentNode.children)
                        .filter(function (e) {
                          return matches(e, '[role="menuitemradio"]')
                        })
                        .forEach(function (e) {
                          return e.setAttribute('aria-checked', 'false')
                        }),
                      o.setAttribute('aria-checked', e ? 'true' : 'false')
                  }
                }),
                this.listeners.bind(
                  o,
                  'click keyup',
                  function (t) {
                    if (!is.keyboardEvent(t) || 'Space' === t.key) {
                      switch (
                        (t.preventDefault(),
                        t.stopPropagation(),
                        (o.checked = !0),
                        i)
                      ) {
                        case 'language':
                          _this9.currentTrack = Number(e)
                          break
                        case 'quality':
                          _this9.quality = e
                          break
                        case 'speed':
                          _this9.speed = parseFloat(e)
                      }
                      controls.showMenuPanel.call(
                        _this9,
                        'home',
                        is.keyboardEvent(t)
                      )
                    }
                  },
                  i,
                  !1
                ),
                controls.bindMenuItemShortcuts.call(this, o, i),
                t.appendChild(o)
            },
            formatTime: function formatTime() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : 0
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : !1
              if (!is.number(e)) return e
              return _formatTime(e, getHours(this.duration) > 0, t)
            },
            updateTimeDisplay: function updateTimeDisplay() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : null
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : 0
              var i =
                arguments.length > 2 && arguments[2] !== undefined
                  ? arguments[2]
                  : !1
              is.element(e) &&
                is.number(t) &&
                (e.innerText = controls.formatTime(t, i))
            },
            updateVolume: function updateVolume() {
              this.supported.ui &&
                (is.element(this.elements.inputs.volume) &&
                  controls.setRange.call(
                    this,
                    this.elements.inputs.volume,
                    this.muted ? 0 : this.volume
                  ),
                is.element(this.elements.buttons.mute) &&
                  (this.elements.buttons.mute.pressed =
                    this.muted || 0 === this.volume))
            },
            setRange: function setRange(e) {
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : 0
              is.element(e) &&
                ((e.value = t), controls.updateRangeFill.call(this, e))
            },
            updateProgress: function updateProgress(e) {
              var _this10 = this
              if (!this.supported.ui || !is.event(e)) return
              var t = 0
              var i = function i(e, t) {
                var i = is.number(t) ? t : 0,
                  s = is.element(e) ? e : _this10.elements.display.buffer
                if (is.element(s)) {
                  s.value = i
                  var _e6 = s.getElementsByTagName('span')[0]
                  is.element(_e6) && (_e6.childNodes[0].nodeValue = i)
                }
              }
              if (e)
                switch (e.type) {
                  case 'timeupdate':
                  case 'seeking':
                  case 'seeked':
                    ;(t = getPercentage(this.currentTime, this.duration)),
                      'timeupdate' === e.type &&
                        controls.setRange.call(
                          this,
                          this.elements.inputs.seek,
                          t
                        )
                    break
                  case 'playing':
                  case 'progress':
                    i(this.elements.display.buffer, 100 * this.buffered)
                }
            },
            updateRangeFill: function updateRangeFill(e) {
              var t = is.event(e) ? e.target : e
              if (is.element(t) && 'range' === t.getAttribute('type')) {
                if (matches(t, this.config.selectors.inputs.seek)) {
                  t.setAttribute('aria-valuenow', this.currentTime)
                  var _e7 = controls.formatTime(this.currentTime),
                    i = controls.formatTime(this.duration),
                    s = i18n.get('seekLabel', this.config)
                  t.setAttribute(
                    'aria-valuetext',
                    s.replace('{currentTime}', _e7).replace('{duration}', i)
                  )
                } else if (matches(t, this.config.selectors.inputs.volume)) {
                  var _e8 = 100 * t.value
                  t.setAttribute('aria-valuenow', _e8),
                    t.setAttribute(
                      'aria-valuetext',
                      ''.concat(_e8.toFixed(1), '%')
                    )
                } else t.setAttribute('aria-valuenow', t.value)
                browser.isWebkit &&
                  t.style.setProperty('--value', (t.value / t.max) * 100 + '%')
              }
            },
            updateSeekTooltip: function updateSeekTooltip(e) {
              var t, i
              if (
                !this.config.tooltips.seek ||
                !is.element(this.elements.inputs.seek) ||
                !is.element(this.elements.display.seekTooltip) ||
                0 === this.duration
              )
                return
              var s = this.elements.display.seekTooltip,
                n = ''.concat(this.config.classNames.tooltip, '--visible'),
                r = function r(e) {
                  return toggleClass(s, n, e)
                }
              if (this.touch) return void r(!1)
              var a = 0
              var o = this.elements.progress.getBoundingClientRect()
              if (is.event(e)) a = (100 / o.width) * (e.pageX - o.left)
              else {
                if (!hasClass(s, n)) return
                a = parseFloat(s.style.left, 10)
              }
              a < 0 ? (a = 0) : a > 100 && (a = 100)
              var l = (this.duration / 100) * a
              s.innerText = controls.formatTime(l)
              var c =
                null === (t = this.config.markers) ||
                void 0 === t ||
                null === (i = t.points) ||
                void 0 === i
                  ? void 0
                  : i.find(function (_ref10) {
                      var e = _ref10.time
                      return e === Math.round(l)
                    })
              c &&
                s.insertAdjacentHTML('afterbegin', ''.concat(c.label, '<br>')),
                (s.style.left = ''.concat(a, '%')),
                is.event(e) &&
                  ['mouseenter', 'mouseleave'].includes(e.type) &&
                  r('mouseenter' === e.type)
            },
            timeUpdate: function timeUpdate(e) {
              var t =
                !is.element(this.elements.display.duration) &&
                this.config.invertTime
              controls.updateTimeDisplay.call(
                this,
                this.elements.display.currentTime,
                t ? this.duration - this.currentTime : this.currentTime,
                t
              ),
                (e && 'timeupdate' === e.type && this.media.seeking) ||
                  controls.updateProgress.call(this, e)
            },
            durationUpdate: function durationUpdate() {
              if (
                !this.supported.ui ||
                (!this.config.invertTime && this.currentTime)
              )
                return
              if (this.duration >= Math.pow(2, 32))
                return (
                  toggleHidden(this.elements.display.currentTime, !0),
                  void toggleHidden(this.elements.progress, !0)
                )
              is.element(this.elements.inputs.seek) &&
                this.elements.inputs.seek.setAttribute(
                  'aria-valuemax',
                  this.duration
                )
              var e = is.element(this.elements.display.duration)
              !e &&
                this.config.displayDuration &&
                this.paused &&
                controls.updateTimeDisplay.call(
                  this,
                  this.elements.display.currentTime,
                  this.duration
                ),
                e &&
                  controls.updateTimeDisplay.call(
                    this,
                    this.elements.display.duration,
                    this.duration
                  ),
                this.config.markers.enabled && controls.setMarkers.call(this),
                controls.updateSeekTooltip.call(this)
            },
            toggleMenuButton: function toggleMenuButton(e, t) {
              toggleHidden(this.elements.settings.buttons[e], !t)
            },
            updateSetting: function updateSetting(e, t, i) {
              var s = this.elements.settings.panels[e]
              var n = null,
                r = t
              if ('captions' === e) n = this.currentTrack
              else {
                if (
                  ((n = is.empty(i) ? this[e] : i),
                  is.empty(n) && (n = this.config[e].default),
                  !is.empty(this.options[e]) && !this.options[e].includes(n))
                )
                  return void this.debug.warn(
                    "Unsupported value of '".concat(n, "' for ").concat(e)
                  )
                if (!this.config[e].options.includes(n))
                  return void this.debug.warn(
                    "Disabled value of '".concat(n, "' for ").concat(e)
                  )
              }
              if (
                (is.element(r) || (r = s && s.querySelector('[role="menu"]')),
                !is.element(r))
              )
                return
              this.elements.settings.buttons[e].querySelector(
                '.'.concat(this.config.classNames.menu.value)
              ).innerHTML = controls.getLabel.call(this, e, n)
              var a = r && r.querySelector('[value="'.concat(n, '"]'))
              is.element(a) && (a.checked = !0)
            },
            getLabel: function getLabel(e, t) {
              switch (e) {
                case 'speed':
                  return 1 === t
                    ? i18n.get('normal', this.config)
                    : ''.concat(t, '&times;')
                case 'quality':
                  if (is.number(t)) {
                    var _e9 = i18n.get('qualityLabel.'.concat(t), this.config)
                    return _e9.length ? _e9 : ''.concat(t, 'p')
                  }
                  return toTitleCase(t)
                case 'captions':
                  return captions.getLabel.call(this)
                default:
                  return null
              }
            },
            setQualityMenu: function setQualityMenu(e) {
              var _this11 = this
              if (!is.element(this.elements.settings.panels.quality)) return
              var t = 'quality',
                i =
                  this.elements.settings.panels.quality.querySelector(
                    '[role="menu"]'
                  )
              is.array(e) &&
                (this.options.quality = dedupe(e).filter(function (e) {
                  return _this11.config.quality.options.includes(e)
                }))
              var s =
                !is.empty(this.options.quality) &&
                this.options.quality.length > 1
              if (
                (controls.toggleMenuButton.call(this, t, s),
                emptyElement(i),
                controls.checkMenu.call(this),
                !s)
              )
                return
              var n = function n(e) {
                var t = i18n.get('qualityBadge.'.concat(e), _this11.config)
                return t.length ? controls.createBadge.call(_this11, t) : null
              }
              this.options.quality
                .sort(function (e, t) {
                  var i = _this11.config.quality.options
                  return i.indexOf(e) > i.indexOf(t) ? 1 : -1
                })
                .forEach(function (e) {
                  controls.createMenuItem.call(_this11, {
                    value: e,
                    list: i,
                    type: t,
                    title: controls.getLabel.call(_this11, 'quality', e),
                    badge: n(e)
                  })
                }),
                controls.updateSetting.call(this, t, i)
            },
            setCaptionsMenu: function setCaptionsMenu() {
              var _this12 = this
              if (!is.element(this.elements.settings.panels.captions)) return
              var e = 'captions',
                t =
                  this.elements.settings.panels.captions.querySelector(
                    '[role="menu"]'
                  ),
                i = captions.getTracks.call(this),
                s = Boolean(i.length)
              if (
                (controls.toggleMenuButton.call(this, e, s),
                emptyElement(t),
                controls.checkMenu.call(this),
                !s)
              )
                return
              var n = i.map(function (e, i) {
                return {
                  value: i,
                  checked:
                    _this12.captions.toggled && _this12.currentTrack === i,
                  title: captions.getLabel.call(_this12, e),
                  badge:
                    e.language &&
                    controls.createBadge.call(
                      _this12,
                      e.language.toUpperCase()
                    ),
                  list: t,
                  type: 'language'
                }
              })
              n.unshift({
                value: -1,
                checked: !this.captions.toggled,
                title: i18n.get('disabled', this.config),
                list: t,
                type: 'language'
              }),
                n.forEach(controls.createMenuItem.bind(this)),
                controls.updateSetting.call(this, e, t)
            },
            setSpeedMenu: function setSpeedMenu() {
              var _this13 = this
              if (!is.element(this.elements.settings.panels.speed)) return
              var e = 'speed',
                t =
                  this.elements.settings.panels.speed.querySelector(
                    '[role="menu"]'
                  )
              this.options.speed = this.options.speed.filter(function (e) {
                return e >= _this13.minimumSpeed && e <= _this13.maximumSpeed
              })
              var i =
                !is.empty(this.options.speed) && this.options.speed.length > 1
              controls.toggleMenuButton.call(this, e, i),
                emptyElement(t),
                controls.checkMenu.call(this),
                i &&
                  (this.options.speed.forEach(function (i) {
                    controls.createMenuItem.call(_this13, {
                      value: i,
                      list: t,
                      type: e,
                      title: controls.getLabel.call(_this13, 'speed', i)
                    })
                  }),
                  controls.updateSetting.call(this, e, t))
            },
            checkMenu: function checkMenu() {
              var e = this.elements.settings.buttons,
                t =
                  !is.empty(e) &&
                  Object.values(e).some(function (e) {
                    return !e.hidden
                  })
              toggleHidden(this.elements.settings.menu, !t)
            },
            focusFirstMenuItem: function focusFirstMenuItem(e) {
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : !1
              if (this.elements.settings.popup.hidden) return
              var i = e
              is.element(i) ||
                (i = Object.values(this.elements.settings.panels).find(
                  function (e) {
                    return !e.hidden
                  }
                ))
              var s = i.querySelector('[role^="menuitem"]')
              setFocus.call(this, s, t)
            },
            toggleMenu: function toggleMenu(e) {
              var t = this.elements.settings.popup,
                i = this.elements.buttons.settings
              if (!is.element(t) || !is.element(i)) return
              var s = t.hidden
              var n = s
              if (is.boolean(e)) n = e
              else if (is.keyboardEvent(e) && 'Escape' === e.key) n = !1
              else if (is.event(e)) {
                var _s3 = is.function(e.composedPath)
                    ? e.composedPath()[0]
                    : e.target,
                  r = t.contains(_s3)
                if (r || (!r && e.target !== i && n)) return
              }
              i.setAttribute('aria-expanded', n),
                toggleHidden(t, !n),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.menu.open,
                  n
                ),
                n && is.keyboardEvent(e)
                  ? controls.focusFirstMenuItem.call(this, null, !0)
                  : n || s || setFocus.call(this, i, is.keyboardEvent(e))
            },
            getMenuSize: function getMenuSize(e) {
              var t = e.cloneNode(!0)
              ;(t.style.position = 'absolute'),
                (t.style.opacity = 0),
                t.removeAttribute('hidden'),
                e.parentNode.appendChild(t)
              var i = t.scrollWidth,
                s = t.scrollHeight
              return removeElement(t), { width: i, height: s }
            },
            showMenuPanel: function showMenuPanel() {
              var _this14 = this
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : ''
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : !1
              var i = this.elements.container.querySelector(
                '#plyr-settings-'.concat(this.id, '-').concat(e)
              )
              if (!is.element(i)) return
              var s = i.parentNode,
                n = Array.from(s.children).find(function (e) {
                  return !e.hidden
                })
              if (support.transitions && !support.reducedMotion) {
                ;(s.style.width = ''.concat(n.scrollWidth, 'px')),
                  (s.style.height = ''.concat(n.scrollHeight, 'px'))
                var _e10 = controls.getMenuSize.call(this, i),
                  _t5 = function _t5(e) {
                    e.target === s &&
                      ['width', 'height'].includes(e.propertyName) &&
                      ((s.style.width = ''),
                      (s.style.height = ''),
                      off.call(_this14, s, transitionEndEvent, _t5))
                  }
                on.call(this, s, transitionEndEvent, _t5),
                  (s.style.width = ''.concat(_e10.width, 'px')),
                  (s.style.height = ''.concat(_e10.height, 'px'))
              }
              toggleHidden(n, !0),
                toggleHidden(i, !1),
                controls.focusFirstMenuItem.call(this, i, t)
            },
            setDownloadUrl: function setDownloadUrl() {
              var e = this.elements.buttons.download
              is.element(e) && e.setAttribute('href', this.download)
            },
            create: function create(e) {
              var _this15 = this
              var t = controls.bindMenuItemShortcuts,
                i = controls.createButton,
                s = controls.createProgress,
                n = controls.createRange,
                r = controls.createTime,
                a = controls.setQualityMenu,
                o = controls.setSpeedMenu,
                l = controls.showMenuPanel
              ;(this.elements.controls = null),
                is.array(this.config.controls) &&
                  this.config.controls.includes('play-large') &&
                  this.elements.container.appendChild(
                    i.call(this, 'play-large')
                  )
              var c = createElement(
                'div',
                getAttributesFromSelector(
                  this.config.selectors.controls.wrapper
                )
              )
              this.elements.controls = c
              var u = { class: 'plyr__controls__item' }
              return (
                dedupe(
                  is.array(this.config.controls) ? this.config.controls : []
                ).forEach(function (a) {
                  if (
                    ('restart' === a &&
                      c.appendChild(i.call(_this15, 'restart', u)),
                    'rewind' === a &&
                      c.appendChild(i.call(_this15, 'rewind', u)),
                    'play' === a && c.appendChild(i.call(_this15, 'play', u)),
                    'fast-forward' === a &&
                      c.appendChild(i.call(_this15, 'fast-forward', u)),
                    'progress' === a)
                  ) {
                    var _t6 = createElement('div', {
                        class: ''.concat(u.class, ' plyr__progress__container')
                      }),
                      _i3 = createElement(
                        'div',
                        getAttributesFromSelector(
                          _this15.config.selectors.progress
                        )
                      )
                    if (
                      (_i3.appendChild(
                        n.call(_this15, 'seek', {
                          id: 'plyr-seek-'.concat(e.id)
                        })
                      ),
                      _i3.appendChild(s.call(_this15, 'buffer')),
                      _this15.config.tooltips.seek)
                    ) {
                      var _e11 = createElement(
                        'span',
                        { class: _this15.config.classNames.tooltip },
                        '00:00'
                      )
                      _i3.appendChild(_e11),
                        (_this15.elements.display.seekTooltip = _e11)
                    }
                    ;(_this15.elements.progress = _i3),
                      _t6.appendChild(_this15.elements.progress),
                      c.appendChild(_t6)
                  }
                  if (
                    ('current-time' === a &&
                      c.appendChild(r.call(_this15, 'currentTime', u)),
                    'duration' === a &&
                      c.appendChild(r.call(_this15, 'duration', u)),
                    'mute' === a || 'volume' === a)
                  ) {
                    var _t7 = _this15.elements.volume
                    if (
                      ((is.element(_t7) && c.contains(_t7)) ||
                        ((_t7 = createElement(
                          'div',
                          extend({}, u, {
                            class: ''.concat(u.class, ' plyr__volume').trim()
                          })
                        )),
                        (_this15.elements.volume = _t7),
                        c.appendChild(_t7)),
                      'mute' === a && _t7.appendChild(i.call(_this15, 'mute')),
                      'volume' === a && !browser.isIos)
                    ) {
                      var _i4 = {
                        max: 1,
                        step: 0.05,
                        value: _this15.config.volume
                      }
                      _t7.appendChild(
                        n.call(
                          _this15,
                          'volume',
                          extend(_i4, { id: 'plyr-volume-'.concat(e.id) })
                        )
                      )
                    }
                  }
                  if (
                    ('captions' === a &&
                      c.appendChild(i.call(_this15, 'captions', u)),
                    'settings' === a && !is.empty(_this15.config.settings))
                  ) {
                    var _s4 = createElement(
                      'div',
                      extend({}, u, {
                        class: ''.concat(u.class, ' plyr__menu').trim(),
                        hidden: ''
                      })
                    )
                    _s4.appendChild(
                      i.call(_this15, 'settings', {
                        'aria-haspopup': !0,
                        'aria-controls': 'plyr-settings-'.concat(e.id),
                        'aria-expanded': !1
                      })
                    )
                    var _n3 = createElement('div', {
                        class: 'plyr__menu__container',
                        id: 'plyr-settings-'.concat(e.id),
                        hidden: ''
                      }),
                      _r2 = createElement('div'),
                      _a = createElement('div', {
                        id: 'plyr-settings-'.concat(e.id, '-home')
                      }),
                      _o = createElement('div', { role: 'menu' })
                    _a.appendChild(_o),
                      _r2.appendChild(_a),
                      (_this15.elements.settings.panels.home = _a),
                      _this15.config.settings.forEach(function (i) {
                        var s = createElement(
                          'button',
                          extend(
                            getAttributesFromSelector(
                              _this15.config.selectors.buttons.settings
                            ),
                            {
                              type: 'button',
                              class: ''
                                .concat(_this15.config.classNames.control, ' ')
                                .concat(
                                  _this15.config.classNames.control,
                                  '--forward'
                                ),
                              role: 'menuitem',
                              'aria-haspopup': !0,
                              hidden: ''
                            }
                          )
                        )
                        t.call(_this15, s, i),
                          on.call(_this15, s, 'click', function () {
                            l.call(_this15, i, !1)
                          })
                        var n = createElement(
                            'span',
                            null,
                            i18n.get(i, _this15.config)
                          ),
                          a = createElement('span', {
                            class: _this15.config.classNames.menu.value
                          })
                        ;(a.innerHTML = e[i]),
                          n.appendChild(a),
                          s.appendChild(n),
                          _o.appendChild(s)
                        var c = createElement('div', {
                            id: 'plyr-settings-'.concat(e.id, '-').concat(i),
                            hidden: ''
                          }),
                          u = createElement('button', {
                            type: 'button',
                            class: ''
                              .concat(_this15.config.classNames.control, ' ')
                              .concat(
                                _this15.config.classNames.control,
                                '--back'
                              )
                          })
                        u.appendChild(
                          createElement(
                            'span',
                            { 'aria-hidden': !0 },
                            i18n.get(i, _this15.config)
                          )
                        ),
                          u.appendChild(
                            createElement(
                              'span',
                              { class: _this15.config.classNames.hidden },
                              i18n.get('menuBack', _this15.config)
                            )
                          ),
                          on.call(
                            _this15,
                            c,
                            'keydown',
                            function (e) {
                              'ArrowLeft' === e.key &&
                                (e.preventDefault(),
                                e.stopPropagation(),
                                l.call(_this15, 'home', !0))
                            },
                            !1
                          ),
                          on.call(_this15, u, 'click', function () {
                            l.call(_this15, 'home', !1)
                          }),
                          c.appendChild(u),
                          c.appendChild(createElement('div', { role: 'menu' })),
                          _r2.appendChild(c),
                          (_this15.elements.settings.buttons[i] = s),
                          (_this15.elements.settings.panels[i] = c)
                      }),
                      _n3.appendChild(_r2),
                      _s4.appendChild(_n3),
                      c.appendChild(_s4),
                      (_this15.elements.settings.popup = _n3),
                      (_this15.elements.settings.menu = _s4)
                  }
                  if (
                    ('pip' === a &&
                      support.pip &&
                      c.appendChild(i.call(_this15, 'pip', u)),
                    'airplay' === a &&
                      support.airplay &&
                      c.appendChild(i.call(_this15, 'airplay', u)),
                    'download' === a)
                  ) {
                    var _e12 = extend({}, u, {
                      element: 'a',
                      href: _this15.download,
                      target: '_blank'
                    })
                    _this15.isHTML5 && (_e12.download = '')
                    var _t8 = _this15.config.urls.download
                    !is.url(_t8) &&
                      _this15.isEmbed &&
                      extend(_e12, {
                        icon: 'logo-'.concat(_this15.provider),
                        label: _this15.provider
                      }),
                      c.appendChild(i.call(_this15, 'download', _e12))
                  }
                  'fullscreen' === a &&
                    c.appendChild(i.call(_this15, 'fullscreen', u))
                }),
                this.isHTML5 &&
                  a.call(this, html5.getQualityOptions.call(this)),
                o.call(this),
                c
              )
            },
            inject: function inject() {
              var _this16 = this
              if (this.config.loadSprite) {
                var _e13 = controls.getIconUrl.call(this)
                _e13.cors && _loadSprite(_e13.url, 'sprite-plyr')
              }
              this.id = Math.floor(1e4 * Math.random())
              var e = null
              this.elements.controls = null
              var t = {
                id: this.id,
                seektime: this.config.seekTime,
                title: this.config.title
              }
              var i = !0
              is.function(this.config.controls) &&
                (this.config.controls = this.config.controls.call(this, t)),
                this.config.controls || (this.config.controls = []),
                is.element(this.config.controls) ||
                is.string(this.config.controls)
                  ? (e = this.config.controls)
                  : ((e = controls.create.call(this, {
                      id: this.id,
                      seektime: this.config.seekTime,
                      speed: this.speed,
                      quality: this.quality,
                      captions: captions.getLabel.call(this)
                    })),
                    (i = !1))
              var s
              i &&
                is.string(this.config.controls) &&
                (e = (function (e) {
                  var i = e
                  return (
                    Object.entries(t).forEach(function (_ref11) {
                      var _ref12 = _slicedToArray(_ref11, 2),
                        e = _ref12[0],
                        t = _ref12[1]
                      i = replaceAll(i, '{'.concat(e, '}'), t)
                    }),
                    i
                  )
                })(e)),
                is.string(this.config.selectors.controls.container) &&
                  (s = document.querySelector(
                    this.config.selectors.controls.container
                  )),
                is.element(s) || (s = this.elements.container)
              if (
                (s[
                  is.element(e) ? 'insertAdjacentElement' : 'insertAdjacentHTML'
                ]('afterbegin', e),
                is.element(this.elements.controls) ||
                  controls.findElements.call(this),
                !is.empty(this.elements.buttons))
              ) {
                var _e14 = function _e14(e) {
                  var t = _this16.config.classNames.controlPressed
                  Object.defineProperty(e, 'pressed', {
                    enumerable: !0,
                    get: function get() {
                      return hasClass(e, t)
                    },
                    set: function set() {
                      var i =
                        arguments.length > 0 && arguments[0] !== undefined
                          ? arguments[0]
                          : !1
                      toggleClass(e, t, i)
                    }
                  })
                }
                Object.values(this.elements.buttons)
                  .filter(Boolean)
                  .forEach(function (t) {
                    is.array(t) || is.nodeList(t)
                      ? Array.from(t).filter(Boolean).forEach(_e14)
                      : _e14(t)
                  })
              }
              if (
                (browser.isEdge && repaint(s), this.config.tooltips.controls)
              ) {
                var _this$config = this.config,
                  _e15 = _this$config.classNames,
                  _t9 = _this$config.selectors,
                  _i5 = ''
                    .concat(_t9.controls.wrapper, ' ')
                    .concat(_t9.labels, ' .')
                    .concat(_e15.hidden),
                  _s5 = getElements.call(this, _i5)
                Array.from(_s5).forEach(function (e) {
                  toggleClass(e, _this16.config.classNames.hidden, !1),
                    toggleClass(e, _this16.config.classNames.tooltip, !0)
                })
              }
            },
            setMediaMetadata: function setMediaMetadata() {
              try {
                'mediaSession' in navigator &&
                  (navigator.mediaSession.metadata = new window.MediaMetadata({
                    title: this.config.mediaMetadata.title,
                    artist: this.config.mediaMetadata.artist,
                    album: this.config.mediaMetadata.album,
                    artwork: this.config.mediaMetadata.artwork
                  }))
              } catch (e) {}
            },
            setMarkers: function setMarkers() {
              var _this17 = this
              var e, t
              if (!this.duration || this.elements.markers) return
              var i =
                null === (e = this.config.markers) ||
                void 0 === e ||
                null === (t = e.points) ||
                void 0 === t
                  ? void 0
                  : t.filter(function (_ref13) {
                      var e = _ref13.time
                      return e > 0 && e < _this17.duration
                    })
              if (null == i || !i.length) return
              var s = document.createDocumentFragment(),
                n = document.createDocumentFragment()
              var r = null
              var a = ''.concat(this.config.classNames.tooltip, '--visible'),
                o = function o(e) {
                  return toggleClass(r, a, e)
                }
              i.forEach(function (e) {
                var t = createElement(
                    'span',
                    { class: _this17.config.classNames.marker },
                    ''
                  ),
                  i = (e.time / _this17.duration) * 100 + '%'
                r &&
                  (t.addEventListener('mouseenter', function () {
                    e.label ||
                      ((r.style.left = i), (r.innerHTML = e.label), o(!0))
                  }),
                  t.addEventListener('mouseleave', function () {
                    o(!1)
                  })),
                  t.addEventListener('click', function () {
                    _this17.currentTime = e.time
                  }),
                  (t.style.left = i),
                  n.appendChild(t)
              }),
                s.appendChild(n),
                this.config.tooltips.seek ||
                  ((r = createElement(
                    'span',
                    { class: this.config.classNames.tooltip },
                    ''
                  )),
                  s.appendChild(r)),
                (this.elements.markers = { points: n, tip: r }),
                this.elements.progress.appendChild(s)
            }
          }
          function parseUrl(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : !0
            var i = e
            if (t) {
              var _e16 = document.createElement('a')
              ;(_e16.href = i), (i = _e16.href)
            }
            try {
              return new URL(i)
            } catch (e) {
              return null
            }
          }
          function buildUrlParams(e) {
            var t = new URLSearchParams()
            return (
              is.object(e) &&
                Object.entries(e).forEach(function (_ref14) {
                  var _ref15 = _slicedToArray(_ref14, 2),
                    e = _ref15[0],
                    i = _ref15[1]
                  t.set(e, i)
                }),
              t
            )
          }
          var captions = {
              setup: function setup() {
                var _e18, _e19, _this$config$captions
                if (!this.supported.ui) return
                if (
                  !this.isVideo ||
                  this.isYouTube ||
                  (this.isHTML5 && !support.textTracks)
                )
                  return void (
                    is.array(this.config.controls) &&
                    this.config.controls.includes('settings') &&
                    this.config.settings.includes('captions') &&
                    controls.setCaptionsMenu.call(this)
                  )
                if (
                  (is.element(this.elements.captions) ||
                    ((this.elements.captions = createElement(
                      'div',
                      getAttributesFromSelector(this.config.selectors.captions)
                    )),
                    insertAfter(this.elements.captions, this.elements.wrapper)),
                  browser.isIE && window.URL)
                ) {
                  var _e17 = this.media.querySelectorAll('track')
                  Array.from(_e17).forEach(function (e) {
                    var t = e.getAttribute('src'),
                      i = parseUrl(t)
                    null !== i &&
                      i.hostname !== window.location.href.hostname &&
                      ['http:', 'https:'].includes(i.protocol) &&
                      fetch(t, 'blob')
                        .then(function (t) {
                          e.setAttribute('src', window.URL.createObjectURL(t))
                        })
                        .catch(function () {
                          removeElement(e)
                        })
                  })
                }
                var e = dedupe(
                  (
                    navigator.languages || [
                      navigator.language || navigator.userLanguage || 'en'
                    ]
                  ).map(function (e) {
                    return e.split('-')[0]
                  })
                )
                var t = (
                  this.storage.get('language') ||
                  this.config.captions.language ||
                  'auto'
                ).toLowerCase()
                'auto' === t &&
                  ((_e18 = e),
                  (_e19 = _slicedToArray(_e18, 1)),
                  (t = _e19[0]),
                  _e18)
                var i = this.storage.get('captions')
                if (
                  (is.boolean(i) ||
                    ((_this$config$captions = this.config.captions),
                    (i = _this$config$captions.active),
                    _this$config$captions),
                  Object.assign(this.captions, {
                    toggled: !1,
                    active: i,
                    language: t,
                    languages: e
                  }),
                  this.isHTML5)
                ) {
                  var _e20 = this.config.captions.update
                    ? 'addtrack removetrack'
                    : 'removetrack'
                  on.call(
                    this,
                    this.media.textTracks,
                    _e20,
                    captions.update.bind(this)
                  )
                }
                setTimeout(captions.update.bind(this), 0)
              },
              update: function update() {
                var _this18 = this
                var e = captions.getTracks.call(this, !0),
                  _this$captions = this.captions,
                  t = _this$captions.active,
                  i = _this$captions.language,
                  s = _this$captions.meta,
                  n = _this$captions.currentTrackNode,
                  r = Boolean(
                    e.find(function (e) {
                      return e.language === i
                    })
                  )
                this.isHTML5 &&
                  this.isVideo &&
                  e
                    .filter(function (e) {
                      return !s.get(e)
                    })
                    .forEach(function (e) {
                      _this18.debug.log('Track added', e),
                        s.set(e, { default: 'showing' === e.mode }),
                        'showing' === e.mode && (e.mode = 'hidden'),
                        on.call(_this18, e, 'cuechange', function () {
                          return captions.updateCues.call(_this18)
                        })
                    }),
                  ((r && this.language !== i) || !e.includes(n)) &&
                    (captions.setLanguage.call(this, i),
                    captions.toggle.call(this, t && r)),
                  this.elements &&
                    toggleClass(
                      this.elements.container,
                      this.config.classNames.captions.enabled,
                      !is.empty(e)
                    ),
                  is.array(this.config.controls) &&
                    this.config.controls.includes('settings') &&
                    this.config.settings.includes('captions') &&
                    controls.setCaptionsMenu.call(this)
              },
              toggle: function toggle(e) {
                var _this19 = this
                var t =
                  arguments.length > 1 && arguments[1] !== undefined
                    ? arguments[1]
                    : !0
                if (!this.supported.ui) return
                var i = this.captions.toggled,
                  s = this.config.classNames.captions.active,
                  n = is.nullOrUndefined(e) ? !i : e
                if (n !== i) {
                  if (
                    (t ||
                      ((this.captions.active = n),
                      this.storage.set({ captions: n })),
                    !this.language && n && !t)
                  ) {
                    var _e21 = captions.getTracks.call(this),
                      _t10 = captions.findTrack.call(
                        this,
                        [this.captions.language].concat(
                          _toConsumableArray(this.captions.languages)
                        ),
                        !0
                      )
                    return (
                      (this.captions.language = _t10.language),
                      void captions.set.call(this, _e21.indexOf(_t10))
                    )
                  }
                  this.elements.buttons.captions &&
                    (this.elements.buttons.captions.pressed = n),
                    toggleClass(this.elements.container, s, n),
                    (this.captions.toggled = n),
                    controls.updateSetting.call(this, 'captions'),
                    triggerEvent.call(
                      this,
                      this.media,
                      n ? 'captionsenabled' : 'captionsdisabled'
                    )
                }
                setTimeout(function () {
                  n &&
                    _this19.captions.toggled &&
                    (_this19.captions.currentTrackNode.mode = 'hidden')
                })
              },
              set: function set(e) {
                var t =
                  arguments.length > 1 && arguments[1] !== undefined
                    ? arguments[1]
                    : !0
                var i = captions.getTracks.call(this)
                if (-1 !== e) {
                  if (is.number(e)) {
                    if (e in i) {
                      if (this.captions.currentTrack !== e) {
                        this.captions.currentTrack = e
                        var s = i[e],
                          _ref16 = s || {},
                          n = _ref16.language
                        ;(this.captions.currentTrackNode = s),
                          controls.updateSetting.call(this, 'captions'),
                          t ||
                            ((this.captions.language = n),
                            this.storage.set({ language: n })),
                          this.isVimeo && this.embed.enableTextTrack(n),
                          triggerEvent.call(this, this.media, 'languagechange')
                      }
                      captions.toggle.call(this, !0, t),
                        this.isHTML5 &&
                          this.isVideo &&
                          captions.updateCues.call(this)
                    } else this.debug.warn('Track not found', e)
                  } else this.debug.warn('Invalid caption argument', e)
                } else captions.toggle.call(this, !1, t)
              },
              setLanguage: function setLanguage(e) {
                var t =
                  arguments.length > 1 && arguments[1] !== undefined
                    ? arguments[1]
                    : !0
                if (!is.string(e))
                  return void this.debug.warn('Invalid language argument', e)
                var i = e.toLowerCase()
                this.captions.language = i
                var s = captions.getTracks.call(this),
                  n = captions.findTrack.call(this, [i])
                captions.set.call(this, s.indexOf(n), t)
              },
              getTracks: function getTracks() {
                var _this20 = this
                var e =
                  arguments.length > 0 && arguments[0] !== undefined
                    ? arguments[0]
                    : !1
                return Array.from((this.media || {}).textTracks || [])
                  .filter(function (t) {
                    return !_this20.isHTML5 || e || _this20.captions.meta.has(t)
                  })
                  .filter(function (e) {
                    return ['captions', 'subtitles'].includes(e.kind)
                  })
              },
              findTrack: function findTrack(e) {
                var _this21 = this
                var t =
                  arguments.length > 1 && arguments[1] !== undefined
                    ? arguments[1]
                    : !1
                var i = captions.getTracks.call(this),
                  s = function s(e) {
                    return Number((_this21.captions.meta.get(e) || {}).default)
                  },
                  n = Array.from(i).sort(function (e, t) {
                    return s(t) - s(e)
                  })
                var r
                return (
                  e.every(function (e) {
                    return (
                      (r = n.find(function (t) {
                        return t.language === e
                      })),
                      !r
                    )
                  }),
                  r || (t ? n[0] : void 0)
                )
              },
              getCurrentTrack: function getCurrentTrack() {
                return captions.getTracks.call(this)[this.currentTrack]
              },
              getLabel: function getLabel(e) {
                var t = e
                return (
                  !is.track(t) &&
                    support.textTracks &&
                    this.captions.toggled &&
                    (t = captions.getCurrentTrack.call(this)),
                  is.track(t)
                    ? is.empty(t.label)
                      ? is.empty(t.language)
                        ? i18n.get('enabled', this.config)
                        : e.language.toUpperCase()
                      : t.label
                    : i18n.get('disabled', this.config)
                )
              },
              updateCues: function updateCues(e) {
                if (!this.supported.ui) return
                if (!is.element(this.elements.captions))
                  return void this.debug.warn(
                    'No captions element to render to'
                  )
                if (!is.nullOrUndefined(e) && !Array.isArray(e))
                  return void this.debug.warn('updateCues: Invalid input', e)
                var t = e
                if (!t) {
                  var _e22 = captions.getCurrentTrack.call(this)
                  t = Array.from((_e22 || {}).activeCues || [])
                    .map(function (e) {
                      return e.getCueAsHTML()
                    })
                    .map(getHTML)
                }
                var i = t
                  .map(function (e) {
                    return e.trim()
                  })
                  .join('\n')
                if (i !== this.elements.captions.innerHTML) {
                  emptyElement(this.elements.captions)
                  var _e23 = createElement(
                    'span',
                    getAttributesFromSelector(this.config.selectors.caption)
                  )
                  ;(_e23.innerHTML = i),
                    this.elements.captions.appendChild(_e23),
                    triggerEvent.call(this, this.media, 'cuechange')
                }
              }
            },
            defaults = {
              enabled: !0,
              title: '',
              debug: !1,
              autoplay: !1,
              autopause: !0,
              playsinline: !0,
              seekTime: 10,
              volume: 1,
              muted: !1,
              duration: null,
              displayDuration: !0,
              invertTime: !0,
              toggleInvert: !0,
              ratio: null,
              clickToPlay: !0,
              hideControls: !0,
              resetOnEnd: !1,
              disableContextMenu: !0,
              loadSprite: !0,
              iconPrefix: 'plyr',
              iconUrl: 'https://cdn.plyr.io/3.7.2/plyr.svg',
              blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
              quality: {
                default: 576,
                options: [
                  4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240
                ],
                forced: !1,
                onChange: null
              },
              loop: { active: !1 },
              speed: {
                selected: 1,
                options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2, 4]
              },
              keyboard: { focused: !0, global: !1 },
              tooltips: { controls: !1, seek: !0 },
              captions: { active: !1, language: 'auto', update: !1 },
              fullscreen: { enabled: !0, fallback: !0, iosNative: !1 },
              storage: { enabled: !0, key: 'plyr' },
              controls: [
                'play-large',
                'play',
                'progress',
                'current-time',
                'mute',
                'volume',
                'captions',
                'settings',
                'pip',
                'airplay',
                'fullscreen'
              ],
              settings: ['captions', 'quality', 'speed'],
              i18n: {
                restart: 'Restart',
                rewind: 'Rewind {seektime}s',
                play: 'Play',
                pause: 'Pause',
                fastForward: 'Forward {seektime}s',
                seek: 'Seek',
                seekLabel: '{currentTime} of {duration}',
                played: 'Played',
                buffered: 'Buffered',
                currentTime: 'Current time',
                duration: 'Duration',
                volume: 'Volume',
                mute: 'Mute',
                unmute: 'Unmute',
                enableCaptions: 'Enable captions',
                disableCaptions: 'Disable captions',
                download: 'Download',
                enterFullscreen: 'Enter fullscreen',
                exitFullscreen: 'Exit fullscreen',
                frameTitle: 'Player for {title}',
                captions: 'Captions',
                settings: 'Settings',
                pip: 'PIP',
                menuBack: 'Go back to previous menu',
                speed: 'Speed',
                normal: 'Normal',
                quality: 'Quality',
                loop: 'Loop',
                start: 'Start',
                end: 'End',
                all: 'All',
                reset: 'Reset',
                disabled: 'Disabled',
                enabled: 'Enabled',
                advertisement: 'Ad',
                qualityBadge: {
                  2160: '4K',
                  1440: 'HD',
                  1080: 'HD',
                  720: 'HD',
                  576: 'SD',
                  480: 'SD'
                }
              },
              urls: {
                download: null,
                vimeo: {
                  sdk: 'https://player.vimeo.com/api/player.js',
                  iframe: 'https://player.vimeo.com/video/{0}?{1}',
                  api: 'https://vimeo.com/api/oembed.json?url={0}'
                },
                youtube: {
                  sdk: 'https://www.youtube.com/iframe_api',
                  api: 'https://noembed.com/embed?url=https://www.youtube.com/watch?v={0}'
                },
                googleIMA: {
                  sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js'
                }
              },
              listeners: {
                seek: null,
                play: null,
                pause: null,
                restart: null,
                rewind: null,
                fastForward: null,
                mute: null,
                volume: null,
                captions: null,
                download: null,
                fullscreen: null,
                pip: null,
                airplay: null,
                speed: null,
                quality: null,
                loop: null,
                language: null
              },
              events: [
                'ended',
                'progress',
                'stalled',
                'playing',
                'waiting',
                'canplay',
                'canplaythrough',
                'loadstart',
                'loadeddata',
                'loadedmetadata',
                'timeupdate',
                'volumechange',
                'play',
                'pause',
                'error',
                'seeking',
                'seeked',
                'emptied',
                'ratechange',
                'cuechange',
                'download',
                'enterfullscreen',
                'exitfullscreen',
                'captionsenabled',
                'captionsdisabled',
                'languagechange',
                'controlshidden',
                'controlsshown',
                'ready',
                'statechange',
                'qualitychange',
                'adsloaded',
                'adscontentpause',
                'adscontentresume',
                'adstarted',
                'adsmidpoint',
                'adscomplete',
                'adsallcomplete',
                'adsimpression',
                'adsclick'
              ],
              selectors: {
                editable: 'input, textarea, select, [contenteditable]',
                container: '.plyr',
                controls: { container: null, wrapper: '.plyr__controls' },
                labels: '[data-plyr]',
                buttons: {
                  play: '[data-plyr="play"]',
                  pause: '[data-plyr="pause"]',
                  restart: '[data-plyr="restart"]',
                  rewind: '[data-plyr="rewind"]',
                  fastForward: '[data-plyr="fast-forward"]',
                  mute: '[data-plyr="mute"]',
                  captions: '[data-plyr="captions"]',
                  download: '[data-plyr="download"]',
                  fullscreen: '[data-plyr="fullscreen"]',
                  pip: '[data-plyr="pip"]',
                  airplay: '[data-plyr="airplay"]',
                  settings: '[data-plyr="settings"]',
                  loop: '[data-plyr="loop"]'
                },
                inputs: {
                  seek: '[data-plyr="seek"]',
                  volume: '[data-plyr="volume"]',
                  speed: '[data-plyr="speed"]',
                  language: '[data-plyr="language"]',
                  quality: '[data-plyr="quality"]'
                },
                display: {
                  currentTime: '.plyr__time--current',
                  duration: '.plyr__time--duration',
                  buffer: '.plyr__progress__buffer',
                  loop: '.plyr__progress__loop',
                  volume: '.plyr__volume--display'
                },
                progress: '.plyr__progress',
                captions: '.plyr__captions',
                caption: '.plyr__caption'
              },
              classNames: {
                type: 'plyr--{0}',
                provider: 'plyr--{0}',
                video: 'plyr__video-wrapper',
                embed: 'plyr__video-embed',
                videoFixedRatio: 'plyr__video-wrapper--fixed-ratio',
                embedContainer: 'plyr__video-embed__container',
                poster: 'plyr__poster',
                posterEnabled: 'plyr__poster-enabled',
                ads: 'plyr__ads',
                control: 'plyr__control',
                controlPressed: 'plyr__control--pressed',
                playing: 'plyr--playing',
                paused: 'plyr--paused',
                stopped: 'plyr--stopped',
                loading: 'plyr--loading',
                hover: 'plyr--hover',
                tooltip: 'plyr__tooltip',
                cues: 'plyr__cues',
                marker: 'plyr__progress__marker',
                hidden: 'plyr__sr-only',
                hideControls: 'plyr--hide-controls',
                isIos: 'plyr--is-ios',
                isTouch: 'plyr--is-touch',
                uiSupported: 'plyr--full-ui',
                noTransition: 'plyr--no-transition',
                display: { time: 'plyr__time' },
                menu: {
                  value: 'plyr__menu__value',
                  badge: 'plyr__badge',
                  open: 'plyr--menu-open'
                },
                captions: {
                  enabled: 'plyr--captions-enabled',
                  active: 'plyr--captions-active'
                },
                fullscreen: {
                  enabled: 'plyr--fullscreen-enabled',
                  fallback: 'plyr--fullscreen-fallback'
                },
                pip: {
                  supported: 'plyr--pip-supported',
                  active: 'plyr--pip-active'
                },
                airplay: {
                  supported: 'plyr--airplay-supported',
                  active: 'plyr--airplay-active'
                },
                tabFocus: 'plyr__tab-focus',
                previewThumbnails: {
                  thumbContainer: 'plyr__preview-thumb',
                  thumbContainerShown: 'plyr__preview-thumb--is-shown',
                  imageContainer: 'plyr__preview-thumb__image-container',
                  timeContainer: 'plyr__preview-thumb__time-container',
                  scrubbingContainer: 'plyr__preview-scrubbing',
                  scrubbingContainerShown: 'plyr__preview-scrubbing--is-shown'
                }
              },
              attributes: {
                embed: {
                  provider: 'data-plyr-provider',
                  id: 'data-plyr-embed-id',
                  hash: 'data-plyr-embed-hash'
                }
              },
              ads: { enabled: !1, publisherId: '', tagUrl: '' },
              previewThumbnails: { enabled: !1, src: '' },
              vimeo: {
                byline: !1,
                portrait: !1,
                title: !1,
                speed: !0,
                transparent: !1,
                customControls: !0,
                referrerPolicy: null,
                premium: !1
              },
              youtube: {
                rel: 0,
                showinfo: 0,
                iv_load_policy: 3,
                modestbranding: 1,
                customControls: !0,
                noCookie: !1
              },
              mediaMetadata: { title: '', artist: '', album: '', artwork: [] },
              markers: { enabled: !1, points: [] }
            },
            pip = { active: 'picture-in-picture', inactive: 'inline' },
            providers = { html5: 'html5', youtube: 'youtube', vimeo: 'vimeo' },
            types = { audio: 'audio', video: 'video' }
          function getProviderByUrl(e) {
            return /^(https?:\/\/)?(www\.)?(youtube\.com|youtube-nocookie\.com|youtu\.?be)\/.+$/.test(
              e
            )
              ? providers.youtube
              : /^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(e)
              ? providers.vimeo
              : null
          }
          var noop = function noop() {}
          var Console = /*#__PURE__*/ (function () {
            function Console() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : !1
              _classCallCheck2(this, Console)
              ;(this.enabled = window.console && e),
                this.enabled && this.log('Debugging enabled')
            }
            _createClass2(Console, [
              {
                key: 'log',
                get: function get() {
                  return this.enabled
                    ? Function.prototype.bind.call(console.log, console)
                    : noop
                }
              },
              {
                key: 'warn',
                get: function get() {
                  return this.enabled
                    ? Function.prototype.bind.call(console.warn, console)
                    : noop
                }
              },
              {
                key: 'error',
                get: function get() {
                  return this.enabled
                    ? Function.prototype.bind.call(console.error, console)
                    : noop
                }
              }
            ])
            return Console
          })()
          var Fullscreen = /*#__PURE__*/ (function () {
            function Fullscreen(e) {
              var _this22 = this
              _classCallCheck2(this, Fullscreen)
              _defineProperty$1(this, 'onChange', function () {
                if (!_this22.enabled) return
                var e = _this22.player.elements.buttons.fullscreen
                is.element(e) && (e.pressed = _this22.active)
                var t =
                  _this22.target === _this22.player.media
                    ? _this22.target
                    : _this22.player.elements.container
                triggerEvent.call(
                  _this22.player,
                  t,
                  _this22.active ? 'enterfullscreen' : 'exitfullscreen',
                  !0
                )
              }),
                _defineProperty$1(this, 'toggleFallback', function () {
                  var e =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : !1
                  if (
                    (e
                      ? (_this22.scrollPosition = {
                          x: window.scrollX || 0,
                          y: window.scrollY || 0
                        })
                      : window.scrollTo(
                          _this22.scrollPosition.x,
                          _this22.scrollPosition.y
                        ),
                    (document.body.style.overflow = e ? 'hidden' : ''),
                    toggleClass(
                      _this22.target,
                      _this22.player.config.classNames.fullscreen.fallback,
                      e
                    ),
                    browser.isIos)
                  ) {
                    var t = document.head.querySelector('meta[name="viewport"]')
                    var i = 'viewport-fit=cover'
                    t ||
                      ((t = document.createElement('meta')),
                      t.setAttribute('name', 'viewport'))
                    var s = is.string(t.content) && t.content.includes(i)
                    e
                      ? ((_this22.cleanupViewport = !s),
                        s || (t.content += ','.concat(i)))
                      : _this22.cleanupViewport &&
                        (t.content = t.content
                          .split(',')
                          .filter(function (e) {
                            return e.trim() !== i
                          })
                          .join(','))
                  }
                  _this22.onChange()
                }),
                _defineProperty$1(this, 'trapFocus', function (e) {
                  if (browser.isIos || !_this22.active || 'Tab' !== e.key)
                    return
                  var t = document.activeElement,
                    i = getElements.call(
                      _this22.player,
                      'a[href], button:not(:disabled), input:not(:disabled), [tabindex]'
                    ),
                    _i6 = _slicedToArray(i, 1),
                    s = _i6[0],
                    n = i[i.length - 1]
                  t !== n || e.shiftKey
                    ? t === s && e.shiftKey && (n.focus(), e.preventDefault())
                    : (s.focus(), e.preventDefault())
                }),
                _defineProperty$1(this, 'update', function () {
                  if (_this22.enabled) {
                    var _e24
                    ;(_e24 = _this22.forceFallback
                      ? 'Fallback (forced)'
                      : Fullscreen.native
                      ? 'Native'
                      : 'Fallback'),
                      _this22.player.debug.log(
                        ''.concat(_e24, ' fullscreen enabled')
                      )
                  } else _this22.player.debug.log('Fullscreen not supported and fallback disabled')
                  toggleClass(
                    _this22.player.elements.container,
                    _this22.player.config.classNames.fullscreen.enabled,
                    _this22.enabled
                  )
                }),
                _defineProperty$1(this, 'enter', function () {
                  _this22.enabled &&
                    (browser.isIos && _this22.player.config.fullscreen.iosNative
                      ? _this22.player.isVimeo
                        ? _this22.player.embed.requestFullscreen()
                        : _this22.target.webkitEnterFullscreen()
                      : !Fullscreen.native || _this22.forceFallback
                      ? _this22.toggleFallback(!0)
                      : _this22.prefix
                      ? is.empty(_this22.prefix) ||
                        _this22.target[
                          ''
                            .concat(_this22.prefix, 'Request')
                            .concat(_this22.property)
                        ]()
                      : _this22.target.requestFullscreen({
                          navigationUI: 'hide'
                        }))
                }),
                _defineProperty$1(this, 'exit', function () {
                  if (_this22.enabled)
                    if (
                      browser.isIos &&
                      _this22.player.config.fullscreen.iosNative
                    )
                      _this22.target.webkitExitFullscreen(),
                        silencePromise(_this22.player.play())
                    else if (!Fullscreen.native || _this22.forceFallback)
                      _this22.toggleFallback(!1)
                    else if (_this22.prefix) {
                      if (!is.empty(_this22.prefix)) {
                        var _e25 = 'moz' === _this22.prefix ? 'Cancel' : 'Exit'
                        document[
                          ''
                            .concat(_this22.prefix)
                            .concat(_e25)
                            .concat(_this22.property)
                        ]()
                      }
                    } else
                      (
                        document.cancelFullScreen || document.exitFullscreen
                      ).call(document)
                }),
                _defineProperty$1(this, 'toggle', function () {
                  _this22.active ? _this22.exit() : _this22.enter()
                }),
                (this.player = e),
                (this.prefix = Fullscreen.prefix),
                (this.property = Fullscreen.property),
                (this.scrollPosition = { x: 0, y: 0 }),
                (this.forceFallback = 'force' === e.config.fullscreen.fallback),
                (this.player.elements.fullscreen =
                  e.config.fullscreen.container &&
                  closest$1(
                    this.player.elements.container,
                    e.config.fullscreen.container
                  )),
                on.call(
                  this.player,
                  document,
                  'ms' === this.prefix
                    ? 'MSFullscreenChange'
                    : ''.concat(this.prefix, 'fullscreenchange'),
                  function () {
                    _this22.onChange()
                  }
                ),
                on.call(
                  this.player,
                  this.player.elements.container,
                  'dblclick',
                  function (e) {
                    ;(is.element(_this22.player.elements.controls) &&
                      _this22.player.elements.controls.contains(e.target)) ||
                      _this22.player.listeners.proxy(
                        e,
                        _this22.toggle,
                        'fullscreen'
                      )
                  }
                ),
                on.call(
                  this,
                  this.player.elements.container,
                  'keydown',
                  function (e) {
                    return _this22.trapFocus(e)
                  }
                ),
                this.update()
            }
            _createClass2(
              Fullscreen,
              [
                {
                  key: 'usingNative',
                  get: function get() {
                    return Fullscreen.native && !this.forceFallback
                  }
                },
                {
                  key: 'enabled',
                  get: function get() {
                    return (
                      (Fullscreen.native ||
                        this.player.config.fullscreen.fallback) &&
                      this.player.config.fullscreen.enabled &&
                      this.player.supported.ui &&
                      this.player.isVideo
                    )
                  }
                },
                {
                  key: 'active',
                  get: function get() {
                    if (!this.enabled) return !1
                    if (!Fullscreen.native || this.forceFallback)
                      return hasClass(
                        this.target,
                        this.player.config.classNames.fullscreen.fallback
                      )
                    var e = this.prefix
                      ? this.target.getRootNode()[
                          ''
                            .concat(this.prefix)
                            .concat(this.property, 'Element')
                        ]
                      : this.target.getRootNode().fullscreenElement
                    return e && e.shadowRoot
                      ? e === this.target.getRootNode().host
                      : e === this.target
                  }
                },
                {
                  key: 'target',
                  get: function get() {
                    return browser.isIos &&
                      this.player.config.fullscreen.iosNative
                      ? this.player.media
                      : this.player.elements.fullscreen ||
                          this.player.elements.container
                  }
                }
              ],
              [
                {
                  key: 'native',
                  get: function get() {
                    return !!(
                      document.fullscreenEnabled ||
                      document.webkitFullscreenEnabled ||
                      document.mozFullScreenEnabled ||
                      document.msFullscreenEnabled
                    )
                  }
                },
                {
                  key: 'prefix',
                  get: function get() {
                    if (is.function(document.exitFullscreen)) return ''
                    var e = ''
                    return (
                      ['webkit', 'moz', 'ms'].some(function (t) {
                        return (
                          !(
                            !is.function(
                              document[''.concat(t, 'ExitFullscreen')]
                            ) &&
                            !is.function(
                              document[''.concat(t, 'CancelFullScreen')]
                            )
                          ) && ((e = t), !0)
                        )
                      }),
                      e
                    )
                  }
                },
                {
                  key: 'property',
                  get: function get() {
                    return 'moz' === this.prefix ? 'FullScreen' : 'Fullscreen'
                  }
                }
              ]
            )
            return Fullscreen
          })()
          function loadImage(e) {
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : 1
            return new Promise(function (i, s) {
              var n = new Image(),
                r = function r() {
                  delete n.onload,
                    delete n.onerror,
                    (n.naturalWidth >= t ? i : s)(n)
                }
              Object.assign(n, { onload: r, onerror: r, src: e })
            })
          }
          var ui = {
            addStyleHook: function addStyleHook() {
              toggleClass(
                this.elements.container,
                this.config.selectors.container.replace('.', ''),
                !0
              ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.uiSupported,
                  this.supported.ui
                )
            },
            toggleNativeControls: function toggleNativeControls() {
              var e =
                arguments.length > 0 && arguments[0] !== undefined
                  ? arguments[0]
                  : !1
              e && this.isHTML5
                ? this.media.setAttribute('controls', '')
                : this.media.removeAttribute('controls')
            },
            build: function build() {
              var _this23 = this
              if ((this.listeners.media(), !this.supported.ui))
                return (
                  this.debug.warn(
                    'Basic support only for '
                      .concat(this.provider, ' ')
                      .concat(this.type)
                  ),
                  void ui.toggleNativeControls.call(this, !0)
                )
              is.element(this.elements.controls) ||
                (controls.inject.call(this), this.listeners.controls()),
                ui.toggleNativeControls.call(this),
                this.isHTML5 && captions.setup.call(this),
                (this.volume = null),
                (this.muted = null),
                (this.loop = null),
                (this.quality = null),
                (this.speed = null),
                controls.updateVolume.call(this),
                controls.timeUpdate.call(this),
                controls.durationUpdate.call(this),
                ui.checkPlaying.call(this),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.pip.supported,
                  support.pip && this.isHTML5 && this.isVideo
                ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.airplay.supported,
                  support.airplay && this.isHTML5
                ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.isIos,
                  browser.isIos
                ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.isTouch,
                  this.touch
                ),
                (this.ready = !0),
                setTimeout(function () {
                  triggerEvent.call(_this23, _this23.media, 'ready')
                }, 0),
                ui.setTitle.call(this),
                this.poster &&
                  ui.setPoster
                    .call(this, this.poster, !1)
                    .catch(function () {}),
                this.config.duration && controls.durationUpdate.call(this),
                this.config.mediaMetadata &&
                  controls.setMediaMetadata.call(this)
            },
            setTitle: function setTitle() {
              var e = i18n.get('play', this.config)
              if (
                (is.string(this.config.title) &&
                  !is.empty(this.config.title) &&
                  (e += ', '.concat(this.config.title)),
                Array.from(this.elements.buttons.play || []).forEach(function (
                  t
                ) {
                  t.setAttribute('aria-label', e)
                }),
                this.isEmbed)
              ) {
                var _e26 = getElement.call(this, 'iframe')
                if (!is.element(_e26)) return
                var t = is.empty(this.config.title)
                    ? 'video'
                    : this.config.title,
                  i = i18n.get('frameTitle', this.config)
                _e26.setAttribute('title', i.replace('{title}', t))
              }
            },
            togglePoster: function togglePoster(e) {
              toggleClass(
                this.elements.container,
                this.config.classNames.posterEnabled,
                e
              )
            },
            setPoster: function setPoster(e) {
              var _this24 = this
              var t =
                arguments.length > 1 && arguments[1] !== undefined
                  ? arguments[1]
                  : !0
              return t && this.poster
                ? Promise.reject(new Error('Poster already set'))
                : (this.media.setAttribute('data-poster', e),
                  this.elements.poster.removeAttribute('hidden'),
                  ready
                    .call(this)
                    .then(function () {
                      return loadImage(e)
                    })
                    .catch(function (t) {
                      throw (
                        (e === _this24.poster &&
                          ui.togglePoster.call(_this24, !1),
                        t)
                      )
                    })
                    .then(function () {
                      if (e !== _this24.poster)
                        throw new Error(
                          'setPoster cancelled by later call to setPoster'
                        )
                    })
                    .then(function () {
                      return (
                        Object.assign(_this24.elements.poster.style, {
                          backgroundImage: "url('".concat(e, "')"),
                          backgroundSize: ''
                        }),
                        ui.togglePoster.call(_this24, !0),
                        e
                      )
                    }))
            },
            checkPlaying: function checkPlaying(e) {
              var _this25 = this
              toggleClass(
                this.elements.container,
                this.config.classNames.playing,
                this.playing
              ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.paused,
                  this.paused
                ),
                toggleClass(
                  this.elements.container,
                  this.config.classNames.stopped,
                  this.stopped
                ),
                Array.from(this.elements.buttons.play || []).forEach(function (
                  e
                ) {
                  Object.assign(e, { pressed: _this25.playing }),
                    e.setAttribute(
                      'aria-label',
                      i18n.get(
                        _this25.playing ? 'pause' : 'play',
                        _this25.config
                      )
                    )
                }),
                (is.event(e) && 'timeupdate' === e.type) ||
                  ui.toggleControls.call(this)
            },
            checkLoading: function checkLoading(e) {
              var _this26 = this
              ;(this.loading = ['stalled', 'waiting'].includes(e.type)),
                clearTimeout(this.timers.loading),
                (this.timers.loading = setTimeout(
                  function () {
                    toggleClass(
                      _this26.elements.container,
                      _this26.config.classNames.loading,
                      _this26.loading
                    ),
                      ui.toggleControls.call(_this26)
                  },
                  this.loading ? 250 : 0
                ))
            },
            toggleControls: function toggleControls(e) {
              var t = this.elements.controls
              if (t && this.config.hideControls) {
                var i = this.touch && this.lastSeekTime + 2e3 > Date.now()
                this.toggleControls(
                  Boolean(
                    e ||
                      this.loading ||
                      this.paused ||
                      t.pressed ||
                      t.hover ||
                      i
                  )
                )
              }
            },
            migrateStyles: function migrateStyles() {
              var _this27 = this
              Object.values(_objectSpread({}, this.media.style))
                .filter(function (e) {
                  return !is.empty(e) && is.string(e) && e.startsWith('--plyr')
                })
                .forEach(function (e) {
                  _this27.elements.container.style.setProperty(
                    e,
                    _this27.media.style.getPropertyValue(e)
                  ),
                    _this27.media.style.removeProperty(e)
                }),
                is.empty(this.media.style) &&
                  this.media.removeAttribute('style')
            }
          }
          var Listeners = /*#__PURE__*/ (function () {
            function Listeners(e) {
              var _this28 = this
              _classCallCheck2(this, Listeners)
              _defineProperty$1(this, 'firstTouch', function () {
                var e = _this28.player,
                  t = e.elements
                ;(e.touch = !0),
                  toggleClass(t.container, e.config.classNames.isTouch, !0)
              }),
                _defineProperty$1(this, 'setTabFocus', function (e) {
                  var t = _this28.player,
                    i = t.elements,
                    s = e.key,
                    n = e.type,
                    r = e.timeStamp
                  if (
                    (clearTimeout(_this28.focusTimer),
                    'keydown' === n && 'Tab' !== s)
                  )
                    return
                  'keydown' === n && (_this28.lastKeyDown = r)
                  var a = r - _this28.lastKeyDown <= 20
                  ;('focus' !== n || a) &&
                    ((function () {
                      var e = t.config.classNames.tabFocus
                      toggleClass(getElements.call(t, '.'.concat(e)), e, !1)
                    })(),
                    'focusout' !== n &&
                      (_this28.focusTimer = setTimeout(function () {
                        var e = document.activeElement
                        i.container.contains(e) &&
                          toggleClass(
                            document.activeElement,
                            t.config.classNames.tabFocus,
                            !0
                          )
                      }, 10)))
                }),
                _defineProperty$1(this, 'global', function () {
                  var e =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : !0
                  var t = _this28.player
                  t.config.keyboard.global &&
                    toggleListener.call(
                      t,
                      window,
                      'keydown keyup',
                      _this28.handleKey,
                      e,
                      !1
                    ),
                    toggleListener.call(
                      t,
                      document.body,
                      'click',
                      _this28.toggleMenu,
                      e
                    ),
                    once.call(
                      t,
                      document.body,
                      'touchstart',
                      _this28.firstTouch
                    ),
                    toggleListener.call(
                      t,
                      document.body,
                      'keydown focus blur focusout',
                      _this28.setTabFocus,
                      e,
                      !1,
                      !0
                    )
                }),
                _defineProperty$1(this, 'container', function () {
                  var e = _this28.player,
                    t = e.config,
                    i = e.elements,
                    s = e.timers
                  !t.keyboard.global &&
                    t.keyboard.focused &&
                    on.call(
                      e,
                      i.container,
                      'keydown keyup',
                      _this28.handleKey,
                      !1
                    ),
                    on.call(
                      e,
                      i.container,
                      'mousemove mouseleave touchstart touchmove enterfullscreen exitfullscreen',
                      function (t) {
                        var n = i.controls
                        n &&
                          'enterfullscreen' === t.type &&
                          ((n.pressed = !1), (n.hover = !1))
                        var r = 0
                        ;['touchstart', 'touchmove', 'mousemove'].includes(
                          t.type
                        ) &&
                          (ui.toggleControls.call(e, !0),
                          (r = e.touch ? 3e3 : 2e3)),
                          clearTimeout(s.controls),
                          (s.controls = setTimeout(function () {
                            return ui.toggleControls.call(e, !1)
                          }, r))
                      }
                    )
                  var n = function n() {
                      if (!e.isVimeo || e.config.vimeo.premium) return
                      var t = i.wrapper,
                        s = e.fullscreen.active,
                        _getAspectRatio$call = getAspectRatio.call(e),
                        _getAspectRatio$call2 = _slicedToArray(
                          _getAspectRatio$call,
                          2
                        ),
                        n = _getAspectRatio$call2[0],
                        r = _getAspectRatio$call2[1],
                        a = supportsCSS(
                          'aspect-ratio: '.concat(n, ' / ').concat(r)
                        )
                      if (!s)
                        return void (a
                          ? ((t.style.width = null), (t.style.height = null))
                          : ((t.style.maxWidth = null),
                            (t.style.margin = null)))
                      var _getViewportSize = getViewportSize(),
                        _getViewportSize2 = _slicedToArray(_getViewportSize, 2),
                        o = _getViewportSize2[0],
                        l = _getViewportSize2[1],
                        c = o / l > n / r
                      a
                        ? ((t.style.width = c ? 'auto' : '100%'),
                          (t.style.height = c ? '100%' : 'auto'))
                        : ((t.style.maxWidth = c ? (l / r) * n + 'px' : null),
                          (t.style.margin = c ? '0 auto' : null))
                    },
                    r = function r() {
                      clearTimeout(s.resized), (s.resized = setTimeout(n, 50))
                    }
                  on.call(
                    e,
                    i.container,
                    'enterfullscreen exitfullscreen',
                    function (t) {
                      var s = e.fullscreen.target
                      if (s !== i.container) return
                      if (!e.isEmbed && is.empty(e.config.ratio)) return
                      n()
                      ;('enterfullscreen' === t.type ? on : off).call(
                        e,
                        window,
                        'resize',
                        r
                      )
                    }
                  )
                }),
                _defineProperty$1(this, 'media', function () {
                  var e = _this28.player,
                    t = e.elements
                  if (
                    (on.call(
                      e,
                      e.media,
                      'timeupdate seeking seeked',
                      function (t) {
                        return controls.timeUpdate.call(e, t)
                      }
                    ),
                    on.call(
                      e,
                      e.media,
                      'durationchange loadeddata loadedmetadata',
                      function (t) {
                        return controls.durationUpdate.call(e, t)
                      }
                    ),
                    on.call(e, e.media, 'ended', function () {
                      e.isHTML5 &&
                        e.isVideo &&
                        e.config.resetOnEnd &&
                        (e.restart(), e.pause())
                    }),
                    on.call(
                      e,
                      e.media,
                      'progress playing seeking seeked',
                      function (t) {
                        return controls.updateProgress.call(e, t)
                      }
                    ),
                    on.call(e, e.media, 'volumechange', function (t) {
                      return controls.updateVolume.call(e, t)
                    }),
                    on.call(
                      e,
                      e.media,
                      'playing play pause ended emptied timeupdate',
                      function (t) {
                        return ui.checkPlaying.call(e, t)
                      }
                    ),
                    on.call(
                      e,
                      e.media,
                      'waiting canplay seeked playing',
                      function (t) {
                        return ui.checkLoading.call(e, t)
                      }
                    ),
                    e.supported.ui && e.config.clickToPlay && !e.isAudio)
                  ) {
                    var _i7 = getElement.call(
                      e,
                      '.'.concat(e.config.classNames.video)
                    )
                    if (!is.element(_i7)) return
                    on.call(e, t.container, 'click', function (s) {
                      ;([t.container, _i7].includes(s.target) ||
                        _i7.contains(s.target)) &&
                        ((e.touch && e.config.hideControls) ||
                          (e.ended
                            ? (_this28.proxy(s, e.restart, 'restart'),
                              _this28.proxy(
                                s,
                                function () {
                                  silencePromise(e.play())
                                },
                                'play'
                              ))
                            : _this28.proxy(
                                s,
                                function () {
                                  silencePromise(e.togglePlay())
                                },
                                'play'
                              )))
                    })
                  }
                  e.supported.ui &&
                    e.config.disableContextMenu &&
                    on.call(
                      e,
                      t.wrapper,
                      'contextmenu',
                      function (e) {
                        e.preventDefault()
                      },
                      !1
                    ),
                    on.call(e, e.media, 'volumechange', function () {
                      e.storage.set({ volume: e.volume, muted: e.muted })
                    }),
                    on.call(e, e.media, 'ratechange', function () {
                      controls.updateSetting.call(e, 'speed'),
                        e.storage.set({ speed: e.speed })
                    }),
                    on.call(e, e.media, 'qualitychange', function (t) {
                      controls.updateSetting.call(
                        e,
                        'quality',
                        null,
                        t.detail.quality
                      )
                    }),
                    on.call(e, e.media, 'ready qualitychange', function () {
                      controls.setDownloadUrl.call(e)
                    })
                  var i = e.config.events.concat(['keyup', 'keydown']).join(' ')
                  on.call(e, e.media, i, function (i) {
                    var _i$detail = i.detail,
                      s = _i$detail === void 0 ? {} : _i$detail
                    'error' === i.type && (s = e.media.error),
                      triggerEvent.call(e, t.container, i.type, !0, s)
                  })
                }),
                _defineProperty$1(this, 'proxy', function (e, t, i) {
                  var s = _this28.player,
                    n = s.config.listeners[i]
                  var r = !0
                  is.function(n) && (r = n.call(s, e)),
                    !1 !== r && is.function(t) && t.call(s, e)
                }),
                _defineProperty$1(this, 'bind', function (e, t, i, s) {
                  var n =
                    arguments.length > 4 && arguments[4] !== undefined
                      ? arguments[4]
                      : !0
                  var r = _this28.player,
                    a = r.config.listeners[s],
                    o = is.function(a)
                  on.call(
                    r,
                    e,
                    t,
                    function (e) {
                      return _this28.proxy(e, i, s)
                    },
                    n && !o
                  )
                }),
                _defineProperty$1(this, 'controls', function () {
                  var e = _this28.player,
                    t = e.elements,
                    i = browser.isIE ? 'change' : 'input'
                  if (
                    (t.buttons.play &&
                      Array.from(t.buttons.play).forEach(function (t) {
                        _this28.bind(
                          t,
                          'click',
                          function () {
                            silencePromise(e.togglePlay())
                          },
                          'play'
                        )
                      }),
                    _this28.bind(
                      t.buttons.restart,
                      'click',
                      e.restart,
                      'restart'
                    ),
                    _this28.bind(
                      t.buttons.rewind,
                      'click',
                      function () {
                        ;(e.lastSeekTime = Date.now()), e.rewind()
                      },
                      'rewind'
                    ),
                    _this28.bind(
                      t.buttons.fastForward,
                      'click',
                      function () {
                        ;(e.lastSeekTime = Date.now()), e.forward()
                      },
                      'fastForward'
                    ),
                    _this28.bind(
                      t.buttons.mute,
                      'click',
                      function () {
                        e.muted = !e.muted
                      },
                      'mute'
                    ),
                    _this28.bind(t.buttons.captions, 'click', function () {
                      return e.toggleCaptions()
                    }),
                    _this28.bind(
                      t.buttons.download,
                      'click',
                      function () {
                        triggerEvent.call(e, e.media, 'download')
                      },
                      'download'
                    ),
                    _this28.bind(
                      t.buttons.fullscreen,
                      'click',
                      function () {
                        e.fullscreen.toggle()
                      },
                      'fullscreen'
                    ),
                    _this28.bind(
                      t.buttons.pip,
                      'click',
                      function () {
                        e.pip = 'toggle'
                      },
                      'pip'
                    ),
                    _this28.bind(
                      t.buttons.airplay,
                      'click',
                      e.airplay,
                      'airplay'
                    ),
                    _this28.bind(
                      t.buttons.settings,
                      'click',
                      function (t) {
                        t.stopPropagation(),
                          t.preventDefault(),
                          controls.toggleMenu.call(e, t)
                      },
                      null,
                      !1
                    ),
                    _this28.bind(
                      t.buttons.settings,
                      'keyup',
                      function (t) {
                        ;['Space', 'Enter'].includes(t.key) &&
                          ('Enter' !== t.key
                            ? (t.preventDefault(),
                              t.stopPropagation(),
                              controls.toggleMenu.call(e, t))
                            : controls.focusFirstMenuItem.call(e, null, !0))
                      },
                      null,
                      !1
                    ),
                    _this28.bind(t.settings.menu, 'keydown', function (t) {
                      'Escape' === t.key && controls.toggleMenu.call(e, t)
                    }),
                    _this28.bind(
                      t.inputs.seek,
                      'mousedown mousemove',
                      function (e) {
                        var i = t.progress.getBoundingClientRect(),
                          s = (100 / i.width) * (e.pageX - i.left)
                        e.currentTarget.setAttribute('seek-value', s)
                      }
                    ),
                    _this28.bind(
                      t.inputs.seek,
                      'mousedown mouseup keydown keyup touchstart touchend',
                      function (t) {
                        var i = t.currentTarget,
                          s = 'play-on-seeked'
                        if (
                          is.keyboardEvent(t) &&
                          !['ArrowLeft', 'ArrowRight'].includes(t.key)
                        )
                          return
                        e.lastSeekTime = Date.now()
                        var n = i.hasAttribute(s),
                          r = ['mouseup', 'touchend', 'keyup'].includes(t.type)
                        n && r
                          ? (i.removeAttribute(s), silencePromise(e.play()))
                          : !r &&
                            e.playing &&
                            (i.setAttribute(s, ''), e.pause())
                      }
                    ),
                    browser.isIos)
                  ) {
                    var _t11 = getElements.call(e, 'input[type="range"]')
                    Array.from(_t11).forEach(function (e) {
                      return _this28.bind(e, i, function (e) {
                        return repaint(e.target)
                      })
                    })
                  }
                  _this28.bind(
                    t.inputs.seek,
                    i,
                    function (t) {
                      var i = t.currentTarget
                      var s = i.getAttribute('seek-value')
                      is.empty(s) && (s = i.value),
                        i.removeAttribute('seek-value'),
                        (e.currentTime = (s / i.max) * e.duration)
                    },
                    'seek'
                  ),
                    _this28.bind(
                      t.progress,
                      'mouseenter mouseleave mousemove',
                      function (t) {
                        return controls.updateSeekTooltip.call(e, t)
                      }
                    ),
                    _this28.bind(
                      t.progress,
                      'mousemove touchmove',
                      function (t) {
                        var i = e.previewThumbnails
                        i && i.loaded && i.startMove(t)
                      }
                    ),
                    _this28.bind(
                      t.progress,
                      'mouseleave touchend click',
                      function () {
                        var t = e.previewThumbnails
                        t && t.loaded && t.endMove(!1, !0)
                      }
                    ),
                    _this28.bind(
                      t.progress,
                      'mousedown touchstart',
                      function (t) {
                        var i = e.previewThumbnails
                        i && i.loaded && i.startScrubbing(t)
                      }
                    ),
                    _this28.bind(t.progress, 'mouseup touchend', function (t) {
                      var i = e.previewThumbnails
                      i && i.loaded && i.endScrubbing(t)
                    }),
                    browser.isWebkit &&
                      Array.from(
                        getElements.call(e, 'input[type="range"]')
                      ).forEach(function (t) {
                        _this28.bind(t, 'input', function (t) {
                          return controls.updateRangeFill.call(e, t.target)
                        })
                      }),
                    e.config.toggleInvert &&
                      !is.element(t.display.duration) &&
                      _this28.bind(t.display.currentTime, 'click', function () {
                        0 !== e.currentTime &&
                          ((e.config.invertTime = !e.config.invertTime),
                          controls.timeUpdate.call(e))
                      }),
                    _this28.bind(
                      t.inputs.volume,
                      i,
                      function (t) {
                        e.volume = t.target.value
                      },
                      'volume'
                    ),
                    _this28.bind(
                      t.controls,
                      'mouseenter mouseleave',
                      function (i) {
                        t.controls.hover = !e.touch && 'mouseenter' === i.type
                      }
                    ),
                    t.fullscreen &&
                      Array.from(t.fullscreen.children)
                        .filter(function (e) {
                          return !e.contains(t.container)
                        })
                        .forEach(function (i) {
                          _this28.bind(
                            i,
                            'mouseenter mouseleave',
                            function (i) {
                              t.controls &&
                                (t.controls.hover =
                                  !e.touch && 'mouseenter' === i.type)
                            }
                          )
                        }),
                    _this28.bind(
                      t.controls,
                      'mousedown mouseup touchstart touchend touchcancel',
                      function (e) {
                        t.controls.pressed = [
                          'mousedown',
                          'touchstart'
                        ].includes(e.type)
                      }
                    ),
                    _this28.bind(t.controls, 'focusin', function () {
                      var i = e.config,
                        s = e.timers
                      toggleClass(t.controls, i.classNames.noTransition, !0),
                        ui.toggleControls.call(e, !0),
                        setTimeout(function () {
                          toggleClass(t.controls, i.classNames.noTransition, !1)
                        }, 0)
                      var n = _this28.touch ? 3e3 : 4e3
                      clearTimeout(s.controls),
                        (s.controls = setTimeout(function () {
                          return ui.toggleControls.call(e, !1)
                        }, n))
                    }),
                    _this28.bind(
                      t.inputs.volume,
                      'wheel',
                      function (t) {
                        var i = t.webkitDirectionInvertedFromDevice,
                          _map = [t.deltaX, -t.deltaY].map(function (e) {
                            return i ? -e : e
                          }),
                          _map2 = _slicedToArray(_map, 2),
                          s = _map2[0],
                          n = _map2[1],
                          r = Math.sign(Math.abs(s) > Math.abs(n) ? s : n)
                        e.increaseVolume(r / 50)
                        var a = e.media.volume
                        ;((1 === r && a < 1) || (-1 === r && a > 0)) &&
                          t.preventDefault()
                      },
                      'volume',
                      !1
                    )
                }),
                (this.player = e),
                (this.lastKey = null),
                (this.focusTimer = null),
                (this.lastKeyDown = null),
                (this.handleKey = this.handleKey.bind(this)),
                (this.toggleMenu = this.toggleMenu.bind(this)),
                (this.setTabFocus = this.setTabFocus.bind(this)),
                (this.firstTouch = this.firstTouch.bind(this))
            }
            _createClass2(Listeners, [
              {
                key: 'handleKey',
                value: function handleKey(e) {
                  var t = this.player,
                    i = t.elements,
                    s = e.key,
                    n = e.type,
                    r = e.altKey,
                    a = e.ctrlKey,
                    o = e.metaKey,
                    l = e.shiftKey,
                    c = 'keydown' === n,
                    u = c && s === this.lastKey
                  if (r || a || o || l) return
                  if (!s) return
                  if (c) {
                    var _n4 = document.activeElement
                    if (is.element(_n4)) {
                      var _s6 = t.config.selectors.editable,
                        _r3 = i.inputs.seek
                      if (_n4 !== _r3 && matches(_n4, _s6)) return
                      if (
                        'Space' === e.key &&
                        matches(_n4, 'button, [role^="menuitem"]')
                      )
                        return
                    }
                    switch (
                      ([
                        'Space',
                        'ArrowLeft',
                        'ArrowUp',
                        'ArrowRight',
                        'ArrowDown',
                        '0',
                        '1',
                        '2',
                        '3',
                        '4',
                        '5',
                        '6',
                        '7',
                        '8',
                        '9',
                        'c',
                        'f',
                        'k',
                        'l',
                        'm'
                      ].includes(s) &&
                        (e.preventDefault(), e.stopPropagation()),
                      s)
                    ) {
                      case '0':
                      case '1':
                      case '2':
                      case '3':
                      case '4':
                      case '5':
                      case '6':
                      case '7':
                      case '8':
                      case '9':
                        u ||
                          ((d = parseInt(s, 10)),
                          (t.currentTime = (t.duration / 10) * d))
                        break
                      case 'Space':
                      case 'k':
                        u || silencePromise(t.togglePlay())
                        break
                      case 'ArrowUp':
                        t.increaseVolume(0.1)
                        break
                      case 'ArrowDown':
                        t.decreaseVolume(0.1)
                        break
                      case 'm':
                        u || (t.muted = !t.muted)
                        break
                      case 'ArrowRight':
                        t.forward()
                        break
                      case 'ArrowLeft':
                        t.rewind()
                        break
                      case 'f':
                        t.fullscreen.toggle()
                        break
                      case 'c':
                        u || t.toggleCaptions()
                        break
                      case 'l':
                        t.loop = !t.loop
                    }
                    'Escape' === s &&
                      !t.fullscreen.usingNative &&
                      t.fullscreen.active &&
                      t.fullscreen.toggle(),
                      (this.lastKey = s)
                  } else this.lastKey = null
                  var d
                }
              },
              {
                key: 'toggleMenu',
                value: function toggleMenu(e) {
                  controls.toggleMenu.call(this.player, e)
                }
              }
            ])
            return Listeners
          })()
          function createCommonjsModule(e, t) {
            return e((t = { exports: {} }), t.exports), t.exports
          }
          var loadjs_umd = createCommonjsModule(function (e, t) {
            e.exports = (function () {
              var e = function e() {},
                t = {},
                i = {},
                s = {}
              function n(e, t) {
                e = e.push ? e : [e]
                var n,
                  r,
                  a,
                  o = [],
                  l = e.length,
                  c = l
                for (
                  n = function n(e, i) {
                    i.length && o.push(e), --c || t(o)
                  };
                  l--;

                ) {
                  ;(r = e[l]),
                    (a = i[r]) ? n(r, a) : (s[r] = s[r] || []).push(n)
                }
              }
              function r(e, t) {
                if (e) {
                  var n = s[e]
                  if (((i[e] = t), n))
                    for (; n.length; ) {
                      n[0](e, t), n.splice(0, 1)
                    }
                }
              }
              function a(t, i) {
                t.call && (t = { success: t }),
                  i.length ? (t.error || e)(i) : (t.success || e)(t)
              }
              function o(t, i, s, n) {
                var r,
                  a,
                  l = document,
                  c = s.async,
                  u = (s.numRetries || 0) + 1,
                  d = s.before || e,
                  h = t.replace(/[\?|#].*$/, ''),
                  m = t.replace(/^(css|img)!/, '')
                ;(n = n || 0),
                  /(^css!|\.css$)/.test(h)
                    ? (((a = l.createElement('link')).rel = 'stylesheet'),
                      (a.href = m),
                      (r = 'hideFocus' in a) &&
                        a.relList &&
                        ((r = 0), (a.rel = 'preload'), (a.as = 'style')))
                    : /(^img!|\.(png|gif|jpg|svg|webp)$)/.test(h)
                    ? ((a = l.createElement('img')).src = m)
                    : (((a = l.createElement('script')).src = t),
                      (a.async = void 0 === c || c)),
                  (a.onload =
                    a.onerror =
                    a.onbeforeload =
                      function (e) {
                        var l = e.type[0]
                        if (r)
                          try {
                            a.sheet.cssText.length || (l = 'e')
                          } catch (e) {
                            18 != e.code && (l = 'e')
                          }
                        if ('e' == l) {
                          if ((n += 1) < u) return o(t, i, s, n)
                        } else if ('preload' == a.rel && 'style' == a.as)
                          return (a.rel = 'stylesheet')
                        i(t, l, e.defaultPrevented)
                      }),
                  !1 !== d(t, a) && l.head.appendChild(a)
              }
              function l(e, t, i) {
                var s,
                  n,
                  r = (e = e.push ? e : [e]).length,
                  a = r,
                  l = []
                for (
                  s = function s(e, i, _s7) {
                    if (('e' == i && l.push(e), 'b' == i)) {
                      if (!_s7) return
                      l.push(e)
                    }
                    --r || t(l)
                  },
                    n = 0;
                  n < a;
                  n++
                ) {
                  o(e[n], s, i)
                }
              }
              function c(e, i, s) {
                var n, o
                if ((i && i.trim && (n = i), (o = (n ? s : i) || {}), n)) {
                  if (n in t) throw 'LoadJS'
                  t[n] = !0
                }
                function c(t, i) {
                  l(
                    e,
                    function (e) {
                      a(o, e), t && a({ success: t, error: i }, e), r(n, e)
                    },
                    o
                  )
                }
                if (o.returnPromise) return new Promise(c)
                c()
              }
              return (
                (c.ready = function (e, t) {
                  return (
                    n(e, function (e) {
                      a(t, e)
                    }),
                    c
                  )
                }),
                (c.done = function (e) {
                  r(e, [])
                }),
                (c.reset = function () {
                  ;(t = {}), (i = {}), (s = {})
                }),
                (c.isDefined = function (e) {
                  return e in t
                }),
                c
              )
            })()
          })
          function loadScript(e) {
            return new Promise(function (t, i) {
              loadjs_umd(e, { success: t, error: i })
            })
          }
          function parseId$1(e) {
            if (is.empty(e)) return null
            if (is.number(Number(e))) return e
            return e.match(/^.*(vimeo.com\/|video\/)(\d+).*/) ? RegExp.$2 : e
          }
          function parseHash(e) {
            var t = e.match(
              /^.*(vimeo.com\/|video\/)(\d+)(\?.*&*h=|\/)+([\d,a-f]+)/
            )
            return t && 5 === t.length ? t[4] : null
          }
          function assurePlaybackState$1(e) {
            e && !this.embed.hasPlayed && (this.embed.hasPlayed = !0),
              this.media.paused === e &&
                ((this.media.paused = !e),
                triggerEvent.call(this, this.media, e ? 'play' : 'pause'))
          }
          var vimeo = {
            setup: function setup() {
              var e = this
              toggleClass(e.elements.wrapper, e.config.classNames.embed, !0),
                (e.options.speed = e.config.speed.options),
                setAspectRatio.call(e),
                is.object(window.Vimeo)
                  ? vimeo.ready.call(e)
                  : loadScript(e.config.urls.vimeo.sdk)
                      .then(function () {
                        vimeo.ready.call(e)
                      })
                      .catch(function (t) {
                        e.debug.warn('Vimeo SDK (player.js) failed to load', t)
                      })
            },
            ready: function ready() {
              var _this29 = this
              var e = this,
                t = e.config.vimeo,
                i = t.premium,
                s = t.referrerPolicy,
                n = _objectWithoutProperties(t, _excluded)
              var r = e.media.getAttribute('src'),
                a = ''
              is.empty(r)
                ? ((r = e.media.getAttribute(e.config.attributes.embed.id)),
                  (a = e.media.getAttribute(e.config.attributes.embed.hash)))
                : (a = parseHash(r))
              var o = a ? { h: a } : {}
              i && Object.assign(n, { controls: !1, sidedock: !1 })
              var l = buildUrlParams(
                  _objectSpread(
                    _objectSpread(
                      {
                        loop: e.config.loop.active,
                        autoplay: e.autoplay,
                        muted: e.muted,
                        gesture: 'media',
                        playsinline: !this.config.fullscreen.iosNative
                      },
                      o
                    ),
                    n
                  )
                ),
                c = parseId$1(r),
                u = createElement('iframe'),
                d = format(e.config.urls.vimeo.iframe, c, l)
              if (
                (u.setAttribute('src', d),
                u.setAttribute('allowfullscreen', ''),
                u.setAttribute(
                  'allow',
                  [
                    'autoplay',
                    'fullscreen',
                    'picture-in-picture',
                    'encrypted-media',
                    'accelerometer',
                    'gyroscope'
                  ].join('; ')
                ),
                is.empty(s) || u.setAttribute('referrerPolicy', s),
                i || !t.customControls)
              )
                u.setAttribute('data-poster', e.poster),
                  (e.media = replaceElement(u, e.media))
              else {
                var _t12 = createElement('div', {
                  class: e.config.classNames.embedContainer,
                  'data-poster': e.poster
                })
                _t12.appendChild(u), (e.media = replaceElement(_t12, e.media))
              }
              t.customControls ||
                fetch(format(e.config.urls.vimeo.api, d)).then(function (t) {
                  !is.empty(t) &&
                    t.thumbnail_url &&
                    ui.setPoster.call(e, t.thumbnail_url).catch(function () {})
                }),
                (e.embed = new window.Vimeo.Player(u, {
                  autopause: e.config.autopause,
                  muted: e.muted
                })),
                (e.media.paused = !0),
                (e.media.currentTime = 0),
                e.supported.ui && e.embed.disableTextTrack(),
                (e.media.play = function () {
                  return assurePlaybackState$1.call(e, !0), e.embed.play()
                }),
                (e.media.pause = function () {
                  return assurePlaybackState$1.call(e, !1), e.embed.pause()
                }),
                (e.media.stop = function () {
                  e.pause(), (e.currentTime = 0)
                })
              var h = e.media.currentTime
              Object.defineProperty(e.media, 'currentTime', {
                get: function get() {
                  return h
                },
                set: function set(t) {
                  var i = e.embed,
                    s = e.media,
                    n = e.paused,
                    r = e.volume,
                    a = n && !i.hasPlayed
                  ;(s.seeking = !0),
                    triggerEvent.call(e, s, 'seeking'),
                    Promise.resolve(a && i.setVolume(0))
                      .then(function () {
                        return i.setCurrentTime(t)
                      })
                      .then(function () {
                        return a && i.pause()
                      })
                      .then(function () {
                        return a && i.setVolume(r)
                      })
                      .catch(function () {})
                }
              })
              var m = e.config.speed.selected
              Object.defineProperty(e.media, 'playbackRate', {
                get: function get() {
                  return m
                },
                set: function set(t) {
                  e.embed
                    .setPlaybackRate(t)
                    .then(function () {
                      ;(m = t), triggerEvent.call(e, e.media, 'ratechange')
                    })
                    .catch(function () {
                      e.options.speed = [1]
                    })
                }
              })
              var p = e.config.volume
              Object.defineProperty(e.media, 'volume', {
                get: function get() {
                  return p
                },
                set: function set(t) {
                  e.embed.setVolume(t).then(function () {
                    ;(p = t), triggerEvent.call(e, e.media, 'volumechange')
                  })
                }
              })
              var g = e.config.muted
              Object.defineProperty(e.media, 'muted', {
                get: function get() {
                  return g
                },
                set: function set(t) {
                  var i = !!is.boolean(t) && t
                  e.embed.setVolume(i ? 0 : e.config.volume).then(function () {
                    ;(g = i), triggerEvent.call(e, e.media, 'volumechange')
                  })
                }
              })
              var f,
                y = e.config.loop
              Object.defineProperty(e.media, 'loop', {
                get: function get() {
                  return y
                },
                set: function set(t) {
                  var i = is.boolean(t) ? t : e.config.loop.active
                  e.embed.setLoop(i).then(function () {
                    y = i
                  })
                }
              }),
                e.embed
                  .getVideoUrl()
                  .then(function (t) {
                    ;(f = t), controls.setDownloadUrl.call(e)
                  })
                  .catch(function (e) {
                    _this29.debug.warn(e)
                  }),
                Object.defineProperty(e.media, 'currentSrc', {
                  get: function get() {
                    return f
                  }
                }),
                Object.defineProperty(e.media, 'ended', {
                  get: function get() {
                    return e.currentTime === e.duration
                  }
                }),
                Promise.all([
                  e.embed.getVideoWidth(),
                  e.embed.getVideoHeight()
                ]).then(function (t) {
                  var _t13 = _slicedToArray(t, 2),
                    i = _t13[0],
                    s = _t13[1]
                  ;(e.embed.ratio = roundAspectRatio(i, s)),
                    setAspectRatio.call(_this29)
                }),
                e.embed.setAutopause(e.config.autopause).then(function (t) {
                  e.config.autopause = t
                }),
                e.embed.getVideoTitle().then(function (t) {
                  ;(e.config.title = t), ui.setTitle.call(_this29)
                }),
                e.embed.getCurrentTime().then(function (t) {
                  ;(h = t), triggerEvent.call(e, e.media, 'timeupdate')
                }),
                e.embed.getDuration().then(function (t) {
                  ;(e.media.duration = t),
                    triggerEvent.call(e, e.media, 'durationchange')
                }),
                e.embed.getTextTracks().then(function (t) {
                  ;(e.media.textTracks = t), captions.setup.call(e)
                }),
                e.embed.on('cuechange', function (_ref17) {
                  var _ref17$cues = _ref17.cues,
                    t = _ref17$cues === void 0 ? [] : _ref17$cues
                  var i = t.map(function (e) {
                    return stripHTML(e.text)
                  })
                  captions.updateCues.call(e, i)
                }),
                e.embed.on('loaded', function () {
                  if (
                    (e.embed.getPaused().then(function (t) {
                      assurePlaybackState$1.call(e, !t),
                        t || triggerEvent.call(e, e.media, 'playing')
                    }),
                    is.element(e.embed.element) && e.supported.ui)
                  ) {
                    e.embed.element.setAttribute('tabindex', -1)
                  }
                }),
                e.embed.on('bufferstart', function () {
                  triggerEvent.call(e, e.media, 'waiting')
                }),
                e.embed.on('bufferend', function () {
                  triggerEvent.call(e, e.media, 'playing')
                }),
                e.embed.on('play', function () {
                  assurePlaybackState$1.call(e, !0),
                    triggerEvent.call(e, e.media, 'playing')
                }),
                e.embed.on('pause', function () {
                  assurePlaybackState$1.call(e, !1)
                }),
                e.embed.on('timeupdate', function (t) {
                  ;(e.media.seeking = !1),
                    (h = t.seconds),
                    triggerEvent.call(e, e.media, 'timeupdate')
                }),
                e.embed.on('progress', function (t) {
                  ;(e.media.buffered = t.percent),
                    triggerEvent.call(e, e.media, 'progress'),
                    1 === parseInt(t.percent, 10) &&
                      triggerEvent.call(e, e.media, 'canplaythrough'),
                    e.embed.getDuration().then(function (t) {
                      t !== e.media.duration &&
                        ((e.media.duration = t),
                        triggerEvent.call(e, e.media, 'durationchange'))
                    })
                }),
                e.embed.on('seeked', function () {
                  ;(e.media.seeking = !1),
                    triggerEvent.call(e, e.media, 'seeked')
                }),
                e.embed.on('ended', function () {
                  ;(e.media.paused = !0), triggerEvent.call(e, e.media, 'ended')
                }),
                e.embed.on('error', function (t) {
                  ;(e.media.error = t), triggerEvent.call(e, e.media, 'error')
                }),
                t.customControls &&
                  setTimeout(function () {
                    return ui.build.call(e)
                  }, 0)
            }
          }
          function parseId(e) {
            if (is.empty(e)) return null
            return e.match(
              /^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/
            )
              ? RegExp.$2
              : e
          }
          function assurePlaybackState(e) {
            e && !this.embed.hasPlayed && (this.embed.hasPlayed = !0),
              this.media.paused === e &&
                ((this.media.paused = !e),
                triggerEvent.call(this, this.media, e ? 'play' : 'pause'))
          }
          function getHost(e) {
            return e.noCookie
              ? 'https://www.youtube-nocookie.com'
              : 'http:' === window.location.protocol
              ? 'http://www.youtube.com'
              : void 0
          }
          var youtube = {
              setup: function setup() {
                var _this30 = this
                if (
                  (toggleClass(
                    this.elements.wrapper,
                    this.config.classNames.embed,
                    !0
                  ),
                  is.object(window.YT) && is.function(window.YT.Player))
                )
                  youtube.ready.call(this)
                else {
                  var e = window.onYouTubeIframeAPIReady
                  ;(window.onYouTubeIframeAPIReady = function () {
                    is.function(e) && e(), youtube.ready.call(_this30)
                  }),
                    loadScript(this.config.urls.youtube.sdk).catch(function (
                      e
                    ) {
                      _this30.debug.warn('YouTube API failed to load', e)
                    })
                }
              },
              getTitle: function getTitle(e) {
                var _this31 = this
                fetch(format(this.config.urls.youtube.api, e))
                  .then(function (e) {
                    if (is.object(e)) {
                      var t = e.title,
                        i = e.height,
                        s = e.width
                      ;(_this31.config.title = t),
                        ui.setTitle.call(_this31),
                        (_this31.embed.ratio = roundAspectRatio(s, i))
                    }
                    setAspectRatio.call(_this31)
                  })
                  .catch(function () {
                    setAspectRatio.call(_this31)
                  })
              },
              ready: function ready() {
                var e = this,
                  t = e.config.youtube,
                  i = e.media && e.media.getAttribute('id')
                if (!is.empty(i) && i.startsWith('youtube-')) return
                var s = e.media.getAttribute('src')
                is.empty(s) &&
                  (s = e.media.getAttribute(this.config.attributes.embed.id))
                var n = parseId(s),
                  r = createElement('div', {
                    id: generateId(e.provider),
                    'data-poster': t.customControls ? e.poster : void 0
                  })
                if (
                  ((e.media = replaceElement(r, e.media)), t.customControls)
                ) {
                  var _t14 = function _t14(e) {
                    return 'https://i.ytimg.com/vi/'
                      .concat(n, '/')
                      .concat(e, 'default.jpg')
                  }
                  loadImage(_t14('maxres'), 121)
                    .catch(function () {
                      return loadImage(_t14('sd'), 121)
                    })
                    .catch(function () {
                      return loadImage(_t14('hq'))
                    })
                    .then(function (t) {
                      return ui.setPoster.call(e, t.src)
                    })
                    .then(function (t) {
                      t.includes('maxres') ||
                        (e.elements.poster.style.backgroundSize = 'cover')
                    })
                    .catch(function () {})
                }
                e.embed = new window.YT.Player(e.media, {
                  videoId: n,
                  host: getHost(t),
                  playerVars: extend(
                    {},
                    {
                      autoplay: e.config.autoplay ? 1 : 0,
                      hl: e.config.hl,
                      controls: e.supported.ui && t.customControls ? 0 : 1,
                      disablekb: 1,
                      playsinline: e.config.fullscreen.iosNative ? 0 : 1,
                      cc_load_policy: e.captions.active ? 1 : 0,
                      cc_lang_pref: e.config.captions.language,
                      widget_referrer: window ? window.location.href : null
                    },
                    t
                  ),
                  events: {
                    onError: function onError(t) {
                      if (!e.media.error) {
                        var _i8 = t.data,
                          _s8 =
                            {
                              2: 'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.',
                              5: 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.',
                              100: 'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.',
                              101: 'The owner of the requested video does not allow it to be played in embedded players.',
                              150: 'The owner of the requested video does not allow it to be played in embedded players.'
                            }[_i8] || 'An unknown error occured'
                        ;(e.media.error = { code: _i8, message: _s8 }),
                          triggerEvent.call(e, e.media, 'error')
                      }
                    },
                    onPlaybackRateChange: function onPlaybackRateChange(t) {
                      var i = t.target
                      ;(e.media.playbackRate = i.getPlaybackRate()),
                        triggerEvent.call(e, e.media, 'ratechange')
                    },
                    onReady: function onReady(i) {
                      if (is.function(e.media.play)) return
                      var s = i.target
                      youtube.getTitle.call(e, n),
                        (e.media.play = function () {
                          assurePlaybackState.call(e, !0), s.playVideo()
                        }),
                        (e.media.pause = function () {
                          assurePlaybackState.call(e, !1), s.pauseVideo()
                        }),
                        (e.media.stop = function () {
                          s.stopVideo()
                        }),
                        (e.media.duration = s.getDuration()),
                        (e.media.paused = !0),
                        (e.media.currentTime = 0),
                        Object.defineProperty(e.media, 'currentTime', {
                          get: function get() {
                            return Number(s.getCurrentTime())
                          },
                          set: function set(t) {
                            e.paused && !e.embed.hasPlayed && e.embed.mute(),
                              (e.media.seeking = !0),
                              triggerEvent.call(e, e.media, 'seeking'),
                              s.seekTo(t)
                          }
                        }),
                        Object.defineProperty(e.media, 'playbackRate', {
                          get: function get() {
                            return s.getPlaybackRate()
                          },
                          set: function set(e) {
                            s.setPlaybackRate(e)
                          }
                        })
                      var r = e.config.volume
                      Object.defineProperty(e.media, 'volume', {
                        get: function get() {
                          return r
                        },
                        set: function set(t) {
                          ;(r = t),
                            s.setVolume(100 * r),
                            triggerEvent.call(e, e.media, 'volumechange')
                        }
                      })
                      var a = e.config.muted
                      Object.defineProperty(e.media, 'muted', {
                        get: function get() {
                          return a
                        },
                        set: function set(t) {
                          var i = is.boolean(t) ? t : a
                          ;(a = i),
                            s[i ? 'mute' : 'unMute'](),
                            s.setVolume(100 * r),
                            triggerEvent.call(e, e.media, 'volumechange')
                        }
                      }),
                        Object.defineProperty(e.media, 'currentSrc', {
                          get: function get() {
                            return s.getVideoUrl()
                          }
                        }),
                        Object.defineProperty(e.media, 'ended', {
                          get: function get() {
                            return e.currentTime === e.duration
                          }
                        })
                      var o = s.getAvailablePlaybackRates()
                      ;(e.options.speed = o.filter(function (t) {
                        return e.config.speed.options.includes(t)
                      })),
                        e.supported.ui &&
                          t.customControls &&
                          e.media.setAttribute('tabindex', -1),
                        triggerEvent.call(e, e.media, 'timeupdate'),
                        triggerEvent.call(e, e.media, 'durationchange'),
                        clearInterval(e.timers.buffering),
                        (e.timers.buffering = setInterval(function () {
                          ;(e.media.buffered = s.getVideoLoadedFraction()),
                            (null === e.media.lastBuffered ||
                              e.media.lastBuffered < e.media.buffered) &&
                              triggerEvent.call(e, e.media, 'progress'),
                            (e.media.lastBuffered = e.media.buffered),
                            1 === e.media.buffered &&
                              (clearInterval(e.timers.buffering),
                              triggerEvent.call(e, e.media, 'canplaythrough'))
                        }, 200)),
                        t.customControls &&
                          setTimeout(function () {
                            return ui.build.call(e)
                          }, 50)
                    },
                    onStateChange: function onStateChange(i) {
                      var s = i.target
                      clearInterval(e.timers.playing)
                      switch (
                        (e.media.seeking &&
                          [1, 2].includes(i.data) &&
                          ((e.media.seeking = !1),
                          triggerEvent.call(e, e.media, 'seeked')),
                        i.data)
                      ) {
                        case -1:
                          triggerEvent.call(e, e.media, 'timeupdate'),
                            (e.media.buffered = s.getVideoLoadedFraction()),
                            triggerEvent.call(e, e.media, 'progress')
                          break
                        case 0:
                          assurePlaybackState.call(e, !1),
                            e.media.loop
                              ? (s.stopVideo(), s.playVideo())
                              : triggerEvent.call(e, e.media, 'ended')
                          break
                        case 1:
                          t.customControls &&
                          !e.config.autoplay &&
                          e.media.paused &&
                          !e.embed.hasPlayed
                            ? e.media.pause()
                            : (assurePlaybackState.call(e, !0),
                              triggerEvent.call(e, e.media, 'playing'),
                              (e.timers.playing = setInterval(function () {
                                triggerEvent.call(e, e.media, 'timeupdate')
                              }, 50)),
                              e.media.duration !== s.getDuration() &&
                                ((e.media.duration = s.getDuration()),
                                triggerEvent.call(
                                  e,
                                  e.media,
                                  'durationchange'
                                )))
                          break
                        case 2:
                          e.muted || e.embed.unMute(),
                            assurePlaybackState.call(e, !1)
                          break
                        case 3:
                          triggerEvent.call(e, e.media, 'waiting')
                      }
                      triggerEvent.call(
                        e,
                        e.elements.container,
                        'statechange',
                        !1,
                        { code: i.data }
                      )
                    }
                  }
                })
              }
            },
            media = {
              setup: function setup() {
                this.media
                  ? (toggleClass(
                      this.elements.container,
                      this.config.classNames.type.replace('{0}', this.type),
                      !0
                    ),
                    toggleClass(
                      this.elements.container,
                      this.config.classNames.provider.replace(
                        '{0}',
                        this.provider
                      ),
                      !0
                    ),
                    this.isEmbed &&
                      toggleClass(
                        this.elements.container,
                        this.config.classNames.type.replace('{0}', 'video'),
                        !0
                      ),
                    this.isVideo &&
                      ((this.elements.wrapper = createElement('div', {
                        class: this.config.classNames.video
                      })),
                      wrap(this.media, this.elements.wrapper),
                      (this.elements.poster = createElement('div', {
                        class: this.config.classNames.poster
                      })),
                      this.elements.wrapper.appendChild(this.elements.poster)),
                    this.isHTML5
                      ? html5.setup.call(this)
                      : this.isYouTube
                      ? youtube.setup.call(this)
                      : this.isVimeo && vimeo.setup.call(this))
                  : this.debug.warn('No media element found!')
              }
            }
          var Ads = /*#__PURE__*/ (function () {
            function Ads(e) {
              var _this32 = this
              _classCallCheck2(this, Ads)
              _defineProperty$1(this, 'load', function () {
                _this32.enabled &&
                  (is.object(window.google) && is.object(window.google.ima)
                    ? _this32.ready()
                    : loadScript(_this32.player.config.urls.googleIMA.sdk)
                        .then(function () {
                          _this32.ready()
                        })
                        .catch(function () {
                          _this32.trigger(
                            'error',
                            new Error('Google IMA SDK failed to load')
                          )
                        }))
              }),
                _defineProperty$1(this, 'ready', function () {
                  var e
                  _this32.enabled ||
                    ((e = _this32).manager && e.manager.destroy(),
                    e.elements.displayContainer &&
                      e.elements.displayContainer.destroy(),
                    e.elements.container.remove()),
                    _this32.startSafetyTimer(12e3, 'ready()'),
                    _this32.managerPromise.then(function () {
                      _this32.clearSafetyTimer('onAdsManagerLoaded()')
                    }),
                    _this32.listeners(),
                    _this32.setupIMA()
                }),
                _defineProperty$1(this, 'setupIMA', function () {
                  ;(_this32.elements.container = createElement('div', {
                    class: _this32.player.config.classNames.ads
                  })),
                    _this32.player.elements.container.appendChild(
                      _this32.elements.container
                    ),
                    google.ima.settings.setVpaidMode(
                      google.ima.ImaSdkSettings.VpaidMode.ENABLED
                    ),
                    google.ima.settings.setLocale(
                      _this32.player.config.ads.language
                    ),
                    google.ima.settings.setDisableCustomPlaybackForIOS10Plus(
                      _this32.player.config.playsinline
                    ),
                    (_this32.elements.displayContainer =
                      new google.ima.AdDisplayContainer(
                        _this32.elements.container,
                        _this32.player.media
                      )),
                    (_this32.loader = new google.ima.AdsLoader(
                      _this32.elements.displayContainer
                    )),
                    _this32.loader.addEventListener(
                      google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED,
                      function (e) {
                        return _this32.onAdsManagerLoaded(e)
                      },
                      !1
                    ),
                    _this32.loader.addEventListener(
                      google.ima.AdErrorEvent.Type.AD_ERROR,
                      function (e) {
                        return _this32.onAdError(e)
                      },
                      !1
                    ),
                    _this32.requestAds()
                }),
                _defineProperty$1(this, 'requestAds', function () {
                  var e = _this32.player.elements.container
                  try {
                    var t = new google.ima.AdsRequest()
                    ;(t.adTagUrl = _this32.tagUrl),
                      (t.linearAdSlotWidth = e.offsetWidth),
                      (t.linearAdSlotHeight = e.offsetHeight),
                      (t.nonLinearAdSlotWidth = e.offsetWidth),
                      (t.nonLinearAdSlotHeight = e.offsetHeight),
                      (t.forceNonLinearFullSlot = !1),
                      t.setAdWillPlayMuted(!_this32.player.muted),
                      _this32.loader.requestAds(t)
                  } catch (e) {
                    _this32.onAdError(e)
                  }
                }),
                _defineProperty$1(this, 'pollCountdown', function () {
                  var e =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : !1
                  if (!e)
                    return (
                      clearInterval(_this32.countdownTimer),
                      void _this32.elements.container.removeAttribute(
                        'data-badge-text'
                      )
                    )
                  _this32.countdownTimer = setInterval(function () {
                    var e = _formatTime(
                        Math.max(_this32.manager.getRemainingTime(), 0)
                      ),
                      t = ''
                        .concat(
                          i18n.get('advertisement', _this32.player.config),
                          ' - '
                        )
                        .concat(e)
                    _this32.elements.container.setAttribute(
                      'data-badge-text',
                      t
                    )
                  }, 100)
                }),
                _defineProperty$1(this, 'onAdsManagerLoaded', function (e) {
                  if (!_this32.enabled) return
                  var t = new google.ima.AdsRenderingSettings()
                  ;(t.restoreCustomPlaybackStateOnAdBreakComplete = !0),
                    (t.enablePreloading = !0),
                    (_this32.manager = e.getAdsManager(_this32.player, t)),
                    (_this32.cuePoints = _this32.manager.getCuePoints()),
                    _this32.manager.addEventListener(
                      google.ima.AdErrorEvent.Type.AD_ERROR,
                      function (e) {
                        return _this32.onAdError(e)
                      }
                    ),
                    Object.keys(google.ima.AdEvent.Type).forEach(function (e) {
                      _this32.manager.addEventListener(
                        google.ima.AdEvent.Type[e],
                        function (e) {
                          return _this32.onAdEvent(e)
                        }
                      )
                    }),
                    _this32.trigger('loaded')
                }),
                _defineProperty$1(this, 'addCuePoints', function () {
                  is.empty(_this32.cuePoints) ||
                    _this32.cuePoints.forEach(function (e) {
                      if (0 !== e && -1 !== e && e < _this32.player.duration) {
                        var t = _this32.player.elements.progress
                        if (is.element(t)) {
                          var i = (100 / _this32.player.duration) * e,
                            s = createElement('span', {
                              class: _this32.player.config.classNames.cues
                            })
                          ;(s.style.left = ''.concat(i.toString(), '%')),
                            t.appendChild(s)
                        }
                      }
                    })
                }),
                _defineProperty$1(this, 'onAdEvent', function (e) {
                  var t = _this32.player.elements.container,
                    i = e.getAd(),
                    s = e.getAdData()
                  switch (
                    ((function (e) {
                      triggerEvent.call(
                        _this32.player,
                        _this32.player.media,
                        'ads'.concat(e.replace(/_/g, '').toLowerCase())
                      )
                    })(e.type),
                    e.type)
                  ) {
                    case google.ima.AdEvent.Type.LOADED:
                      _this32.trigger('loaded'),
                        _this32.pollCountdown(!0),
                        i.isLinear() ||
                          ((i.width = t.offsetWidth),
                          (i.height = t.offsetHeight))
                      break
                    case google.ima.AdEvent.Type.STARTED:
                      _this32.manager.setVolume(_this32.player.volume)
                      break
                    case google.ima.AdEvent.Type.ALL_ADS_COMPLETED:
                      _this32.player.ended
                        ? _this32.loadAds()
                        : _this32.loader.contentComplete()
                      break
                    case google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED:
                      _this32.pauseContent()
                      break
                    case google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED:
                      _this32.pollCountdown(), _this32.resumeContent()
                      break
                    case google.ima.AdEvent.Type.LOG:
                      s.adError &&
                        _this32.player.debug.warn(
                          'Non-fatal ad error: '.concat(s.adError.getMessage())
                        )
                  }
                }),
                _defineProperty$1(this, 'onAdError', function (e) {
                  _this32.cancel(), _this32.player.debug.warn('Ads error', e)
                }),
                _defineProperty$1(this, 'listeners', function () {
                  var e = _this32.player.elements.container
                  var t
                  _this32.player.on('canplay', function () {
                    _this32.addCuePoints()
                  }),
                    _this32.player.on('ended', function () {
                      _this32.loader.contentComplete()
                    }),
                    _this32.player.on('timeupdate', function () {
                      t = _this32.player.currentTime
                    }),
                    _this32.player.on('seeked', function () {
                      var e = _this32.player.currentTime
                      is.empty(_this32.cuePoints) ||
                        _this32.cuePoints.forEach(function (i, s) {
                          t < i &&
                            i < e &&
                            (_this32.manager.discardAdBreak(),
                            _this32.cuePoints.splice(s, 1))
                        })
                    }),
                    window.addEventListener('resize', function () {
                      _this32.manager &&
                        _this32.manager.resize(
                          e.offsetWidth,
                          e.offsetHeight,
                          google.ima.ViewMode.NORMAL
                        )
                    })
                }),
                _defineProperty$1(this, 'play', function () {
                  var e = _this32.player.elements.container
                  _this32.managerPromise || _this32.resumeContent(),
                    _this32.managerPromise
                      .then(function () {
                        _this32.manager.setVolume(_this32.player.volume),
                          _this32.elements.displayContainer.initialize()
                        try {
                          _this32.initialized ||
                            (_this32.manager.init(
                              e.offsetWidth,
                              e.offsetHeight,
                              google.ima.ViewMode.NORMAL
                            ),
                            _this32.manager.start()),
                            (_this32.initialized = !0)
                        } catch (e) {
                          _this32.onAdError(e)
                        }
                      })
                      .catch(function () {})
                }),
                _defineProperty$1(this, 'resumeContent', function () {
                  ;(_this32.elements.container.style.zIndex = ''),
                    (_this32.playing = !1),
                    silencePromise(_this32.player.media.play())
                }),
                _defineProperty$1(this, 'pauseContent', function () {
                  ;(_this32.elements.container.style.zIndex = 3),
                    (_this32.playing = !0),
                    _this32.player.media.pause()
                }),
                _defineProperty$1(this, 'cancel', function () {
                  _this32.initialized && _this32.resumeContent(),
                    _this32.trigger('error'),
                    _this32.loadAds()
                }),
                _defineProperty$1(this, 'loadAds', function () {
                  _this32.managerPromise
                    .then(function () {
                      _this32.manager && _this32.manager.destroy(),
                        (_this32.managerPromise = new Promise(function (e) {
                          _this32.on('loaded', e),
                            _this32.player.debug.log(_this32.manager)
                        })),
                        (_this32.initialized = !1),
                        _this32.requestAds()
                    })
                    .catch(function () {})
                }),
                _defineProperty$1(this, 'trigger', function (e) {
                  for (
                    var _len4 = arguments.length,
                      t = new Array(_len4 > 1 ? _len4 - 1 : 0),
                      _key4 = 1;
                    _key4 < _len4;
                    _key4++
                  ) {
                    t[_key4 - 1] = arguments[_key4]
                  }
                  var i = _this32.events[e]
                  is.array(i) &&
                    i.forEach(function (e) {
                      is.function(e) && e.apply(_this32, t)
                    })
                }),
                _defineProperty$1(this, 'on', function (e, t) {
                  return (
                    is.array(_this32.events[e]) || (_this32.events[e] = []),
                    _this32.events[e].push(t),
                    _this32
                  )
                }),
                _defineProperty$1(this, 'startSafetyTimer', function (e, t) {
                  _this32.player.debug.log(
                    'Safety timer invoked from: '.concat(t)
                  ),
                    (_this32.safetyTimer = setTimeout(function () {
                      _this32.cancel(),
                        _this32.clearSafetyTimer('startSafetyTimer()')
                    }, e))
                }),
                _defineProperty$1(this, 'clearSafetyTimer', function (e) {
                  is.nullOrUndefined(_this32.safetyTimer) ||
                    (_this32.player.debug.log(
                      'Safety timer cleared from: '.concat(e)
                    ),
                    clearTimeout(_this32.safetyTimer),
                    (_this32.safetyTimer = null))
                }),
                (this.player = e),
                (this.config = e.config.ads),
                (this.playing = !1),
                (this.initialized = !1),
                (this.elements = { container: null, displayContainer: null }),
                (this.manager = null),
                (this.loader = null),
                (this.cuePoints = null),
                (this.events = {}),
                (this.safetyTimer = null),
                (this.countdownTimer = null),
                (this.managerPromise = new Promise(function (e, t) {
                  _this32.on('loaded', e), _this32.on('error', t)
                })),
                this.load()
            }
            _createClass2(Ads, [
              {
                key: 'enabled',
                get: function get() {
                  var e = this.config
                  return (
                    this.player.isHTML5 &&
                    this.player.isVideo &&
                    e.enabled &&
                    (!is.empty(e.publisherId) || is.url(e.tagUrl))
                  )
                }
              },
              {
                key: 'tagUrl',
                get: function get() {
                  var e = this.config
                  if (is.url(e.tagUrl)) return e.tagUrl
                  return 'https://go.aniview.com/api/adserver6/vast/?'.concat(
                    buildUrlParams({
                      AV_PUBLISHERID: '58c25bb0073ef448b1087ad6',
                      AV_CHANNELID: '5a0458dc28a06145e4519d21',
                      AV_URL: window.location.hostname,
                      cb: Date.now(),
                      AV_WIDTH: 640,
                      AV_HEIGHT: 480,
                      AV_CDIM2: e.publisherId
                    })
                  )
                }
              }
            ])
            return Ads
          })()
          function clamp() {
            var e =
              arguments.length > 0 && arguments[0] !== undefined
                ? arguments[0]
                : 0
            var t =
              arguments.length > 1 && arguments[1] !== undefined
                ? arguments[1]
                : 0
            var i =
              arguments.length > 2 && arguments[2] !== undefined
                ? arguments[2]
                : 255
            return Math.min(Math.max(e, t), i)
          }
          var parseVtt = function parseVtt(e) {
              var t = []
              return (
                e.split(/\r\n\r\n|\n\n|\r\r/).forEach(function (e) {
                  var i = {}
                  e.split(/\r\n|\n|\r/).forEach(function (e) {
                    if (is.number(i.startTime)) {
                      if (!is.empty(e.trim()) && is.empty(i.text)) {
                        var _t16, _t17, _t15$1$split, _t15$1$split2
                        var _t15 = e.trim().split('#xywh=')
                        ;((_t16 = _t15),
                        (_t17 = _slicedToArray(_t16, 1)),
                        (i.text = _t17[0]),
                        _t16),
                          _t15[1] &&
                            ((_t15$1$split = _t15[1].split(',')),
                            (_t15$1$split2 = _slicedToArray(_t15$1$split, 4)),
                            (i.x = _t15$1$split2[0]),
                            (i.y = _t15$1$split2[1]),
                            (i.w = _t15$1$split2[2]),
                            (i.h = _t15$1$split2[3]),
                            _t15$1$split)
                      }
                    } else {
                      var _t18 = e.match(
                        /([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})( ?--> ?)([0-9]{2})?:?([0-9]{2}):([0-9]{2}).([0-9]{2,3})/
                      )
                      _t18 &&
                        ((i.startTime =
                          60 * Number(_t18[1] || 0) * 60 +
                          60 * Number(_t18[2]) +
                          Number(_t18[3]) +
                          Number('0.'.concat(_t18[4]))),
                        (i.endTime =
                          60 * Number(_t18[6] || 0) * 60 +
                          60 * Number(_t18[7]) +
                          Number(_t18[8]) +
                          Number('0.'.concat(_t18[9]))))
                    }
                  }),
                    i.text && t.push(i)
                }),
                t
              )
            },
            fitRatio = function fitRatio(e, t) {
              var i = {}
              return (
                e > t.width / t.height
                  ? ((i.width = t.width), (i.height = (1 / e) * t.width))
                  : ((i.height = t.height), (i.width = e * t.height)),
                i
              )
            }
          var PreviewThumbnails = /*#__PURE__*/ (function () {
            function PreviewThumbnails(e) {
              var _this33 = this
              _classCallCheck2(this, PreviewThumbnails)
              _defineProperty$1(this, 'load', function () {
                _this33.player.elements.display.seekTooltip &&
                  (_this33.player.elements.display.seekTooltip.hidden =
                    _this33.enabled),
                  _this33.enabled &&
                    _this33.getThumbnails().then(function () {
                      _this33.enabled &&
                        (_this33.render(),
                        _this33.determineContainerAutoSizing(),
                        (_this33.loaded = !0))
                    })
              }),
                _defineProperty$1(this, 'getThumbnails', function () {
                  return new Promise(function (e) {
                    var t = _this33.player.config.previewThumbnails.src
                    if (is.empty(t))
                      throw new Error(
                        'Missing previewThumbnails.src config attribute'
                      )
                    var i = function i() {
                      _this33.thumbnails.sort(function (e, t) {
                        return e.height - t.height
                      }),
                        _this33.player.debug.log(
                          'Preview thumbnails',
                          _this33.thumbnails
                        ),
                        e()
                    }
                    if (is.function(t))
                      t(function (e) {
                        ;(_this33.thumbnails = e), i()
                      })
                    else {
                      var _e27 = (is.string(t) ? [t] : t).map(function (e) {
                        return _this33.getThumbnail(e)
                      })
                      Promise.all(_e27).then(i)
                    }
                  })
                }),
                _defineProperty$1(this, 'getThumbnail', function (e) {
                  return new Promise(function (t) {
                    fetch(e).then(function (i) {
                      var s = {
                        frames: parseVtt(i),
                        height: null,
                        urlPrefix: ''
                      }
                      s.frames[0].text.startsWith('/') ||
                        s.frames[0].text.startsWith('http://') ||
                        s.frames[0].text.startsWith('https://') ||
                        (s.urlPrefix = e.substring(0, e.lastIndexOf('/') + 1))
                      var n = new Image()
                      ;(n.onload = function () {
                        ;(s.height = n.naturalHeight),
                          (s.width = n.naturalWidth),
                          _this33.thumbnails.push(s),
                          t()
                      }),
                        (n.src = s.urlPrefix + s.frames[0].text)
                    })
                  })
                }),
                _defineProperty$1(this, 'startMove', function (e) {
                  if (
                    _this33.loaded &&
                    is.event(e) &&
                    ['touchmove', 'mousemove'].includes(e.type) &&
                    _this33.player.media.duration
                  ) {
                    if ('touchmove' === e.type)
                      _this33.seekTime =
                        _this33.player.media.duration *
                        (_this33.player.elements.inputs.seek.value / 100)
                    else {
                      var t, i
                      var s =
                          _this33.player.elements.progress.getBoundingClientRect(),
                        n = (100 / s.width) * (e.pageX - s.left)
                      ;(_this33.seekTime =
                        _this33.player.media.duration * (n / 100)),
                        _this33.seekTime < 0 && (_this33.seekTime = 0),
                        _this33.seekTime > _this33.player.media.duration - 1 &&
                          (_this33.seekTime =
                            _this33.player.media.duration - 1),
                        (_this33.mousePosX = e.pageX),
                        (_this33.elements.thumb.time.innerText = _formatTime(
                          _this33.seekTime
                        ))
                      var r =
                        null === (t = _this33.player.config.markers) ||
                        void 0 === t ||
                        null === (i = t.points) ||
                        void 0 === i
                          ? void 0
                          : i.find(function (_ref18) {
                              var e = _ref18.time
                              return e === Math.round(_this33.seekTime)
                            })
                      r &&
                        _this33.elements.thumb.time.insertAdjacentHTML(
                          'afterbegin',
                          ''.concat(r.label, '<br>')
                        )
                    }
                    _this33.showImageAtCurrentTime()
                  }
                }),
                _defineProperty$1(this, 'endMove', function () {
                  _this33.toggleThumbContainer(!1, !0)
                }),
                _defineProperty$1(this, 'startScrubbing', function (e) {
                  ;(is.nullOrUndefined(e.button) ||
                    !1 === e.button ||
                    0 === e.button) &&
                    ((_this33.mouseDown = !0),
                    _this33.player.media.duration &&
                      (_this33.toggleScrubbingContainer(!0),
                      _this33.toggleThumbContainer(!1, !0),
                      _this33.showImageAtCurrentTime()))
                }),
                _defineProperty$1(this, 'endScrubbing', function () {
                  ;(_this33.mouseDown = !1),
                    Math.ceil(_this33.lastTime) ===
                    Math.ceil(_this33.player.media.currentTime)
                      ? _this33.toggleScrubbingContainer(!1)
                      : once.call(
                          _this33.player,
                          _this33.player.media,
                          'timeupdate',
                          function () {
                            _this33.mouseDown ||
                              _this33.toggleScrubbingContainer(!1)
                          }
                        )
                }),
                _defineProperty$1(this, 'listeners', function () {
                  _this33.player.on('play', function () {
                    _this33.toggleThumbContainer(!1, !0)
                  }),
                    _this33.player.on('seeked', function () {
                      _this33.toggleThumbContainer(!1)
                    }),
                    _this33.player.on('timeupdate', function () {
                      _this33.lastTime = _this33.player.media.currentTime
                    })
                }),
                _defineProperty$1(this, 'render', function () {
                  ;(_this33.elements.thumb.container = createElement('div', {
                    class:
                      _this33.player.config.classNames.previewThumbnails
                        .thumbContainer
                  })),
                    (_this33.elements.thumb.imageContainer = createElement(
                      'div',
                      {
                        class:
                          _this33.player.config.classNames.previewThumbnails
                            .imageContainer
                      }
                    )),
                    _this33.elements.thumb.container.appendChild(
                      _this33.elements.thumb.imageContainer
                    )
                  var e = createElement('div', {
                    class:
                      _this33.player.config.classNames.previewThumbnails
                        .timeContainer
                  })
                  ;(_this33.elements.thumb.time = createElement(
                    'span',
                    {},
                    '00:00'
                  )),
                    e.appendChild(_this33.elements.thumb.time),
                    _this33.elements.thumb.imageContainer.appendChild(e),
                    is.element(_this33.player.elements.progress) &&
                      _this33.player.elements.progress.appendChild(
                        _this33.elements.thumb.container
                      ),
                    (_this33.elements.scrubbing.container = createElement(
                      'div',
                      {
                        class:
                          _this33.player.config.classNames.previewThumbnails
                            .scrubbingContainer
                      }
                    )),
                    _this33.player.elements.wrapper.appendChild(
                      _this33.elements.scrubbing.container
                    )
                }),
                _defineProperty$1(this, 'destroy', function () {
                  _this33.elements.thumb.container &&
                    _this33.elements.thumb.container.remove(),
                    _this33.elements.scrubbing.container &&
                      _this33.elements.scrubbing.container.remove()
                }),
                _defineProperty$1(this, 'showImageAtCurrentTime', function () {
                  _this33.mouseDown
                    ? _this33.setScrubbingContainerSize()
                    : _this33.setThumbContainerSizeAndPos()
                  var e = _this33.thumbnails[0].frames.findIndex(function (e) {
                      return (
                        _this33.seekTime >= e.startTime &&
                        _this33.seekTime <= e.endTime
                      )
                    }),
                    t = e >= 0
                  var i = 0
                  _this33.mouseDown || _this33.toggleThumbContainer(t),
                    t &&
                      (_this33.thumbnails.forEach(function (t, s) {
                        _this33.loadedImages.includes(t.frames[e].text) &&
                          (i = s)
                      }),
                      e !== _this33.showingThumb &&
                        ((_this33.showingThumb = e), _this33.loadImage(i)))
                }),
                _defineProperty$1(this, 'loadImage', function () {
                  var e =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : 0
                  var t = _this33.showingThumb,
                    i = _this33.thumbnails[e],
                    s = i.urlPrefix,
                    n = i.frames[t],
                    r = i.frames[t].text,
                    a = s + r
                  if (
                    _this33.currentImageElement &&
                    _this33.currentImageElement.dataset.filename === r
                  )
                    _this33.showImage(
                      _this33.currentImageElement,
                      n,
                      e,
                      t,
                      r,
                      !1
                    ),
                      (_this33.currentImageElement.dataset.index = t),
                      _this33.removeOldImages(_this33.currentImageElement)
                  else {
                    _this33.loadingImage &&
                      _this33.usingSprites &&
                      (_this33.loadingImage.onload = null)
                    var _i9 = new Image()
                    ;(_i9.src = a),
                      (_i9.dataset.index = t),
                      (_i9.dataset.filename = r),
                      (_this33.showingThumbFilename = r),
                      _this33.player.debug.log('Loading image: '.concat(a)),
                      (_i9.onload = function () {
                        return _this33.showImage(_i9, n, e, t, r, !0)
                      }),
                      (_this33.loadingImage = _i9),
                      _this33.removeOldImages(_i9)
                  }
                }),
                _defineProperty$1(this, 'showImage', function (e, t, i, s, n) {
                  var r =
                    arguments.length > 5 && arguments[5] !== undefined
                      ? arguments[5]
                      : !0
                  _this33.player.debug.log(
                    'Showing thumb: '
                      .concat(n, '. num: ')
                      .concat(s, '. qual: ')
                      .concat(i, '. newimg: ')
                      .concat(r)
                  ),
                    _this33.setImageSizeAndOffset(e, t),
                    r &&
                      (_this33.currentImageContainer.appendChild(e),
                      (_this33.currentImageElement = e),
                      _this33.loadedImages.includes(n) ||
                        _this33.loadedImages.push(n)),
                    _this33
                      .preloadNearby(s, !0)
                      .then(_this33.preloadNearby(s, !1))
                      .then(_this33.getHigherQuality(i, e, t, n))
                }),
                _defineProperty$1(this, 'removeOldImages', function (e) {
                  Array.from(_this33.currentImageContainer.children).forEach(
                    function (t) {
                      if ('img' !== t.tagName.toLowerCase()) return
                      var i = _this33.usingSprites ? 500 : 1e3
                      if (
                        t.dataset.index !== e.dataset.index &&
                        !t.dataset.deleting
                      ) {
                        t.dataset.deleting = !0
                        var _e28 = _this33.currentImageContainer
                        setTimeout(function () {
                          _e28.removeChild(t),
                            _this33.player.debug.log(
                              'Removing thumb: '.concat(t.dataset.filename)
                            )
                        }, i)
                      }
                    }
                  )
                }),
                _defineProperty$1(this, 'preloadNearby', function (e) {
                  var t =
                    arguments.length > 1 && arguments[1] !== undefined
                      ? arguments[1]
                      : !0
                  return new Promise(function (i) {
                    setTimeout(function () {
                      var s = _this33.thumbnails[0].frames[e].text
                      if (_this33.showingThumbFilename === s) {
                        var n
                        n = t
                          ? _this33.thumbnails[0].frames.slice(e)
                          : _this33.thumbnails[0].frames.slice(0, e).reverse()
                        var r = !1
                        n.forEach(function (e) {
                          var t = e.text
                          if (t !== s && !_this33.loadedImages.includes(t)) {
                            ;(r = !0),
                              _this33.player.debug.log(
                                'Preloading thumb filename: '.concat(t)
                              )
                            var _e29 = _this33.thumbnails[0].urlPrefix,
                              _s9 = _e29 + t,
                              _n5 = new Image()
                            ;(_n5.src = _s9),
                              (_n5.onload = function () {
                                _this33.player.debug.log(
                                  'Preloaded thumb filename: '.concat(t)
                                ),
                                  _this33.loadedImages.includes(t) ||
                                    _this33.loadedImages.push(t),
                                  i()
                              })
                          }
                        }),
                          r || i()
                      }
                    }, 300)
                  })
                }),
                _defineProperty$1(
                  this,
                  'getHigherQuality',
                  function (e, t, i, s) {
                    if (e < _this33.thumbnails.length - 1) {
                      var n = t.naturalHeight
                      _this33.usingSprites && (n = i.h),
                        n < _this33.thumbContainerHeight &&
                          setTimeout(function () {
                            _this33.showingThumbFilename === s &&
                              (_this33.player.debug.log(
                                'Showing higher quality thumb for: '.concat(s)
                              ),
                              _this33.loadImage(e + 1))
                          }, 300)
                    }
                  }
                ),
                _defineProperty$1(this, 'toggleThumbContainer', function () {
                  var e =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : !1
                  var t =
                    arguments.length > 1 && arguments[1] !== undefined
                      ? arguments[1]
                      : !1
                  var i =
                    _this33.player.config.classNames.previewThumbnails
                      .thumbContainerShown
                  _this33.elements.thumb.container.classList.toggle(i, e),
                    !e &&
                      t &&
                      ((_this33.showingThumb = null),
                      (_this33.showingThumbFilename = null))
                }),
                _defineProperty$1(
                  this,
                  'toggleScrubbingContainer',
                  function () {
                    var e =
                      arguments.length > 0 && arguments[0] !== undefined
                        ? arguments[0]
                        : !1
                    var t =
                      _this33.player.config.classNames.previewThumbnails
                        .scrubbingContainerShown
                    _this33.elements.scrubbing.container.classList.toggle(t, e),
                      e ||
                        ((_this33.showingThumb = null),
                        (_this33.showingThumbFilename = null))
                  }
                ),
                _defineProperty$1(
                  this,
                  'determineContainerAutoSizing',
                  function () {
                    ;(_this33.elements.thumb.imageContainer.clientHeight > 20 ||
                      _this33.elements.thumb.imageContainer.clientWidth > 20) &&
                      (_this33.sizeSpecifiedInCSS = !0)
                  }
                ),
                _defineProperty$1(
                  this,
                  'setThumbContainerSizeAndPos',
                  function () {
                    var e = _this33.elements.thumb.imageContainer
                    if (_this33.sizeSpecifiedInCSS) {
                      if (e.clientHeight > 20 && e.clientWidth < 20) {
                        var t = Math.floor(
                          e.clientHeight * _this33.thumbAspectRatio
                        )
                        e.style.width = ''.concat(t, 'px')
                      } else if (e.clientHeight < 20 && e.clientWidth > 20) {
                        var _t19 = Math.floor(
                          e.clientWidth / _this33.thumbAspectRatio
                        )
                        e.style.height = ''.concat(_t19, 'px')
                      }
                    } else {
                      var _t20 = Math.floor(
                        _this33.thumbContainerHeight * _this33.thumbAspectRatio
                      )
                      ;(e.style.height = ''.concat(
                        _this33.thumbContainerHeight,
                        'px'
                      )),
                        (e.style.width = ''.concat(_t20, 'px'))
                    }
                    _this33.setThumbContainerPos()
                  }
                ),
                _defineProperty$1(this, 'setThumbContainerPos', function () {
                  var e =
                      _this33.player.elements.progress.getBoundingClientRect(),
                    t =
                      _this33.player.elements.container.getBoundingClientRect(),
                    i = _this33.elements.thumb.container,
                    s = t.left - e.left + 10,
                    n = t.right - e.left - i.clientWidth - 10,
                    r = _this33.mousePosX - e.left - i.clientWidth / 2,
                    a = clamp(r, s, n)
                  ;(i.style.left = ''.concat(a, 'px')),
                    i.style.setProperty('--preview-arrow-offset', r - a + 'px')
                }),
                _defineProperty$1(
                  this,
                  'setScrubbingContainerSize',
                  function () {
                    var _fitRatio = fitRatio(_this33.thumbAspectRatio, {
                        width: _this33.player.media.clientWidth,
                        height: _this33.player.media.clientHeight
                      }),
                      e = _fitRatio.width,
                      t = _fitRatio.height
                    ;(_this33.elements.scrubbing.container.style.width =
                      ''.concat(e, 'px')),
                      (_this33.elements.scrubbing.container.style.height =
                        ''.concat(t, 'px'))
                  }
                ),
                _defineProperty$1(
                  this,
                  'setImageSizeAndOffset',
                  function (e, t) {
                    if (!_this33.usingSprites) return
                    var i = _this33.thumbContainerHeight / t.h
                    ;(e.style.height = e.naturalHeight * i + 'px'),
                      (e.style.width = e.naturalWidth * i + 'px'),
                      (e.style.left = '-'.concat(t.x * i, 'px')),
                      (e.style.top = '-'.concat(t.y * i, 'px'))
                  }
                ),
                (this.player = e),
                (this.thumbnails = []),
                (this.loaded = !1),
                (this.lastMouseMoveTime = Date.now()),
                (this.mouseDown = !1),
                (this.loadedImages = []),
                (this.elements = { thumb: {}, scrubbing: {} }),
                this.load()
            }
            _createClass2(PreviewThumbnails, [
              {
                key: 'enabled',
                get: function get() {
                  return (
                    this.player.isHTML5 &&
                    this.player.isVideo &&
                    this.player.config.previewThumbnails.enabled
                  )
                }
              },
              {
                key: 'currentImageContainer',
                get: function get() {
                  return this.mouseDown
                    ? this.elements.scrubbing.container
                    : this.elements.thumb.imageContainer
                }
              },
              {
                key: 'usingSprites',
                get: function get() {
                  return Object.keys(this.thumbnails[0].frames[0]).includes('w')
                }
              },
              {
                key: 'thumbAspectRatio',
                get: function get() {
                  return this.usingSprites
                    ? this.thumbnails[0].frames[0].w /
                        this.thumbnails[0].frames[0].h
                    : this.thumbnails[0].width / this.thumbnails[0].height
                }
              },
              {
                key: 'thumbContainerHeight',
                get: function get() {
                  if (this.mouseDown) {
                    var _fitRatio2 = fitRatio(this.thumbAspectRatio, {
                        width: this.player.media.clientWidth,
                        height: this.player.media.clientHeight
                      }),
                      e = _fitRatio2.height
                    return e
                  }
                  return this.sizeSpecifiedInCSS
                    ? this.elements.thumb.imageContainer.clientHeight
                    : Math.floor(
                        this.player.media.clientWidth /
                          this.thumbAspectRatio /
                          4
                      )
                }
              },
              {
                key: 'currentImageElement',
                get: function get() {
                  return this.mouseDown
                    ? this.currentScrubbingImageElement
                    : this.currentThumbnailImageElement
                },
                set: function set(e) {
                  this.mouseDown
                    ? (this.currentScrubbingImageElement = e)
                    : (this.currentThumbnailImageElement = e)
                }
              }
            ])
            return PreviewThumbnails
          })()
          var source = {
            insertElements: function insertElements(e, t) {
              var _this34 = this
              is.string(t)
                ? insertElement(e, this.media, { src: t })
                : is.array(t) &&
                  t.forEach(function (t) {
                    insertElement(e, _this34.media, t)
                  })
            },
            change: function change(e) {
              var _this35 = this
              getDeep(e, 'sources.length')
                ? (html5.cancelRequests.call(this),
                  this.destroy.call(
                    this,
                    function () {
                      ;(_this35.options.quality = []),
                        removeElement(_this35.media),
                        (_this35.media = null),
                        is.element(_this35.elements.container) &&
                          _this35.elements.container.removeAttribute('class')
                      var t = e.sources,
                        i = e.type,
                        _t21 = _slicedToArray(t, 1),
                        _t21$ = _t21[0],
                        _t21$$provider = _t21$.provider,
                        s =
                          _t21$$provider === void 0
                            ? providers.html5
                            : _t21$$provider,
                        n = _t21$.src,
                        r = 'html5' === s ? i : 'div',
                        a = 'html5' === s ? {} : { src: n }
                      Object.assign(_this35, {
                        provider: s,
                        type: i,
                        supported: support.check(
                          i,
                          s,
                          _this35.config.playsinline
                        ),
                        media: createElement(r, a)
                      }),
                        _this35.elements.container.appendChild(_this35.media),
                        is.boolean(e.autoplay) &&
                          (_this35.config.autoplay = e.autoplay),
                        _this35.isHTML5 &&
                          (_this35.config.crossorigin &&
                            _this35.media.setAttribute('crossorigin', ''),
                          _this35.config.autoplay &&
                            _this35.media.setAttribute('autoplay', ''),
                          is.empty(e.poster) || (_this35.poster = e.poster),
                          _this35.config.loop.active &&
                            _this35.media.setAttribute('loop', ''),
                          _this35.config.muted &&
                            _this35.media.setAttribute('muted', ''),
                          _this35.config.playsinline &&
                            _this35.media.setAttribute('playsinline', '')),
                        ui.addStyleHook.call(_this35),
                        _this35.isHTML5 &&
                          source.insertElements.call(_this35, 'source', t),
                        (_this35.config.title = e.title),
                        media.setup.call(_this35),
                        _this35.isHTML5 &&
                          Object.keys(e).includes('tracks') &&
                          source.insertElements.call(
                            _this35,
                            'track',
                            e.tracks
                          ),
                        (_this35.isHTML5 ||
                          (_this35.isEmbed && !_this35.supported.ui)) &&
                          ui.build.call(_this35),
                        _this35.isHTML5 && _this35.media.load(),
                        is.empty(e.previewThumbnails) ||
                          (Object.assign(
                            _this35.config.previewThumbnails,
                            e.previewThumbnails
                          ),
                          _this35.previewThumbnails &&
                            _this35.previewThumbnails.loaded &&
                            (_this35.previewThumbnails.destroy(),
                            (_this35.previewThumbnails = null)),
                          _this35.config.previewThumbnails.enabled &&
                            (_this35.previewThumbnails = new PreviewThumbnails(
                              _this35
                            ))),
                        _this35.fullscreen.update()
                    },
                    !0
                  ))
                : this.debug.warn('Invalid source format')
            }
          }
          var Plyr = /*#__PURE__*/ (function () {
            function Plyr(e, t) {
              var _this36 = this
              _classCallCheck2(this, Plyr)
              if (
                (_defineProperty$1(this, 'play', function () {
                  return is.function(_this36.media.play)
                    ? (_this36.ads &&
                        _this36.ads.enabled &&
                        _this36.ads.managerPromise
                          .then(function () {
                            return _this36.ads.play()
                          })
                          .catch(function () {
                            return silencePromise(_this36.media.play())
                          }),
                      _this36.media.play())
                    : null
                }),
                _defineProperty$1(this, 'pause', function () {
                  return _this36.playing && is.function(_this36.media.pause)
                    ? _this36.media.pause()
                    : null
                }),
                _defineProperty$1(this, 'togglePlay', function (e) {
                  return (is.boolean(e) ? e : !_this36.playing)
                    ? _this36.play()
                    : _this36.pause()
                }),
                _defineProperty$1(this, 'stop', function () {
                  _this36.isHTML5
                    ? (_this36.pause(), _this36.restart())
                    : is.function(_this36.media.stop) && _this36.media.stop()
                }),
                _defineProperty$1(this, 'restart', function () {
                  _this36.currentTime = 0
                }),
                _defineProperty$1(this, 'rewind', function (e) {
                  _this36.currentTime -= is.number(e)
                    ? e
                    : _this36.config.seekTime
                }),
                _defineProperty$1(this, 'forward', function (e) {
                  _this36.currentTime += is.number(e)
                    ? e
                    : _this36.config.seekTime
                }),
                _defineProperty$1(this, 'increaseVolume', function (e) {
                  var t = _this36.media.muted ? 0 : _this36.volume
                  _this36.volume = t + (is.number(e) ? e : 0)
                }),
                _defineProperty$1(this, 'decreaseVolume', function (e) {
                  _this36.increaseVolume(-e)
                }),
                _defineProperty$1(this, 'airplay', function () {
                  support.airplay &&
                    _this36.media.webkitShowPlaybackTargetPicker()
                }),
                _defineProperty$1(this, 'toggleControls', function (e) {
                  if (_this36.supported.ui && !_this36.isAudio) {
                    var _t22 = hasClass(
                        _this36.elements.container,
                        _this36.config.classNames.hideControls
                      ),
                      _i10 = void 0 === e ? void 0 : !e,
                      _s10 = toggleClass(
                        _this36.elements.container,
                        _this36.config.classNames.hideControls,
                        _i10
                      )
                    if (
                      (_s10 &&
                        is.array(_this36.config.controls) &&
                        _this36.config.controls.includes('settings') &&
                        !is.empty(_this36.config.settings) &&
                        controls.toggleMenu.call(_this36, !1),
                      _s10 !== _t22)
                    ) {
                      var _e30 = _s10 ? 'controlshidden' : 'controlsshown'
                      triggerEvent.call(_this36, _this36.media, _e30)
                    }
                    return !_s10
                  }
                  return !1
                }),
                _defineProperty$1(this, 'on', function (e, t) {
                  on.call(_this36, _this36.elements.container, e, t)
                }),
                _defineProperty$1(this, 'once', function (e, t) {
                  once.call(_this36, _this36.elements.container, e, t)
                }),
                _defineProperty$1(this, 'off', function (e, t) {
                  off(_this36.elements.container, e, t)
                }),
                _defineProperty$1(this, 'destroy', function (e) {
                  var t =
                    arguments.length > 1 && arguments[1] !== undefined
                      ? arguments[1]
                      : !1
                  if (!_this36.ready) return
                  var i = function i() {
                    ;(document.body.style.overflow = ''),
                      (_this36.embed = null),
                      t
                        ? (Object.keys(_this36.elements).length &&
                            (removeElement(_this36.elements.buttons.play),
                            removeElement(_this36.elements.captions),
                            removeElement(_this36.elements.controls),
                            removeElement(_this36.elements.wrapper),
                            (_this36.elements.buttons.play = null),
                            (_this36.elements.captions = null),
                            (_this36.elements.controls = null),
                            (_this36.elements.wrapper = null)),
                          is.function(e) && e())
                        : (unbindListeners.call(_this36),
                          html5.cancelRequests.call(_this36),
                          replaceElement(
                            _this36.elements.original,
                            _this36.elements.container
                          ),
                          triggerEvent.call(
                            _this36,
                            _this36.elements.original,
                            'destroyed',
                            !0
                          ),
                          is.function(e) && e.call(_this36.elements.original),
                          (_this36.ready = !1),
                          setTimeout(function () {
                            ;(_this36.elements = null), (_this36.media = null)
                          }, 200))
                  }
                  _this36.stop(),
                    clearTimeout(_this36.timers.loading),
                    clearTimeout(_this36.timers.controls),
                    clearTimeout(_this36.timers.resized),
                    _this36.isHTML5
                      ? (ui.toggleNativeControls.call(_this36, !0), i())
                      : _this36.isYouTube
                      ? (clearInterval(_this36.timers.buffering),
                        clearInterval(_this36.timers.playing),
                        null !== _this36.embed &&
                          is.function(_this36.embed.destroy) &&
                          _this36.embed.destroy(),
                        i())
                      : _this36.isVimeo &&
                        (null !== _this36.embed &&
                          _this36.embed.unload().then(i),
                        setTimeout(i, 200))
                }),
                _defineProperty$1(this, 'supports', function (e) {
                  return support.mime.call(_this36, e)
                }),
                (this.timers = {}),
                (this.ready = !1),
                (this.loading = !1),
                (this.failed = !1),
                (this.touch = support.touch),
                (this.media = e),
                is.string(this.media) &&
                  (this.media = document.querySelectorAll(this.media)),
                ((window.jQuery && this.media instanceof jQuery) ||
                  is.nodeList(this.media) ||
                  is.array(this.media)) &&
                  (this.media = this.media[0]),
                (this.config = extend(
                  {},
                  defaults,
                  Plyr.defaults,
                  t || {},
                  (function () {
                    try {
                      return JSON.parse(
                        _this36.media.getAttribute('data-plyr-config')
                      )
                    } catch (e) {
                      return {}
                    }
                  })()
                )),
                (this.elements = {
                  container: null,
                  fullscreen: null,
                  captions: null,
                  buttons: {},
                  display: {},
                  progress: {},
                  inputs: {},
                  settings: { popup: null, menu: null, panels: {}, buttons: {} }
                }),
                (this.captions = {
                  active: null,
                  currentTrack: -1,
                  meta: new WeakMap()
                }),
                (this.fullscreen = { active: !1 }),
                (this.options = { speed: [], quality: [] }),
                (this.debug = new Console(this.config.debug)),
                this.debug.log('Config', this.config),
                this.debug.log('Support', support),
                is.nullOrUndefined(this.media) || !is.element(this.media))
              )
                return void this.debug.error(
                  'Setup failed: no suitable element passed'
                )
              if (this.media.plyr)
                return void this.debug.warn('Target already setup')
              if (!this.config.enabled)
                return void this.debug.error('Setup failed: disabled by config')
              if (!support.check().api)
                return void this.debug.error('Setup failed: no support')
              var i = this.media.cloneNode(!0)
              ;(i.autoplay = !1), (this.elements.original = i)
              var s = this.media.tagName.toLowerCase()
              var n = null,
                r = null
              switch (s) {
                case 'div':
                  if (
                    ((n = this.media.querySelector('iframe')), is.element(n))
                  ) {
                    if (
                      ((r = parseUrl(n.getAttribute('src'))),
                      (this.provider = getProviderByUrl(r.toString())),
                      (this.elements.container = this.media),
                      (this.media = n),
                      (this.elements.container.className = ''),
                      r.search.length)
                    ) {
                      var _e31 = ['1', 'true']
                      _e31.includes(r.searchParams.get('autoplay')) &&
                        (this.config.autoplay = !0),
                        _e31.includes(r.searchParams.get('loop')) &&
                          (this.config.loop.active = !0),
                        this.isYouTube
                          ? ((this.config.playsinline = _e31.includes(
                              r.searchParams.get('playsinline')
                            )),
                            (this.config.youtube.hl = r.searchParams.get('hl')))
                          : (this.config.playsinline = !0)
                    }
                  } else
                    (this.provider = this.media.getAttribute(
                      this.config.attributes.embed.provider
                    )),
                      this.media.removeAttribute(
                        this.config.attributes.embed.provider
                      )
                  if (
                    is.empty(this.provider) ||
                    !Object.values(providers).includes(this.provider)
                  )
                    return void this.debug.error(
                      'Setup failed: Invalid provider'
                    )
                  this.type = types.video
                  break
                case 'video':
                case 'audio':
                  ;(this.type = s),
                    (this.provider = providers.html5),
                    this.media.hasAttribute('crossorigin') &&
                      (this.config.crossorigin = !0),
                    this.media.hasAttribute('autoplay') &&
                      (this.config.autoplay = !0),
                    (this.media.hasAttribute('playsinline') ||
                      this.media.hasAttribute('webkit-playsinline')) &&
                      (this.config.playsinline = !0),
                    this.media.hasAttribute('muted') &&
                      (this.config.muted = !0),
                    this.media.hasAttribute('loop') &&
                      (this.config.loop.active = !0)
                  break
                default:
                  return void this.debug.error('Setup failed: unsupported type')
              }
              ;(this.supported = support.check(
                this.type,
                this.provider,
                this.config.playsinline
              )),
                this.supported.api
                  ? ((this.eventListeners = []),
                    (this.listeners = new Listeners(this)),
                    (this.storage = new Storage(this)),
                    (this.media.plyr = this),
                    is.element(this.elements.container) ||
                      ((this.elements.container = createElement('div', {
                        tabindex: 0
                      })),
                      wrap(this.media, this.elements.container)),
                    ui.migrateStyles.call(this),
                    ui.addStyleHook.call(this),
                    media.setup.call(this),
                    this.config.debug &&
                      on.call(
                        this,
                        this.elements.container,
                        this.config.events.join(' '),
                        function (e) {
                          _this36.debug.log('event: '.concat(e.type))
                        }
                      ),
                    (this.fullscreen = new Fullscreen(this)),
                    (this.isHTML5 || (this.isEmbed && !this.supported.ui)) &&
                      ui.build.call(this),
                    this.listeners.container(),
                    this.listeners.global(),
                    this.config.ads.enabled && (this.ads = new Ads(this)),
                    this.isHTML5 &&
                      this.config.autoplay &&
                      this.once('canplay', function () {
                        return silencePromise(_this36.play())
                      }),
                    (this.lastSeekTime = 0),
                    this.config.previewThumbnails.enabled &&
                      (this.previewThumbnails = new PreviewThumbnails(this)))
                  : this.debug.error('Setup failed: no support')
            }
            _createClass2(
              Plyr,
              [
                {
                  key: 'isHTML5',
                  get: function get() {
                    return this.provider === providers.html5
                  }
                },
                {
                  key: 'isEmbed',
                  get: function get() {
                    return this.isYouTube || this.isVimeo
                  }
                },
                {
                  key: 'isYouTube',
                  get: function get() {
                    return this.provider === providers.youtube
                  }
                },
                {
                  key: 'isVimeo',
                  get: function get() {
                    return this.provider === providers.vimeo
                  }
                },
                {
                  key: 'isVideo',
                  get: function get() {
                    return this.type === types.video
                  }
                },
                {
                  key: 'isAudio',
                  get: function get() {
                    return this.type === types.audio
                  }
                },
                {
                  key: 'playing',
                  get: function get() {
                    return Boolean(this.ready && !this.paused && !this.ended)
                  }
                },
                {
                  key: 'paused',
                  get: function get() {
                    return Boolean(this.media.paused)
                  }
                },
                {
                  key: 'stopped',
                  get: function get() {
                    return Boolean(this.paused && 0 === this.currentTime)
                  }
                },
                {
                  key: 'ended',
                  get: function get() {
                    return Boolean(this.media.ended)
                  }
                },
                {
                  key: 'currentTime',
                  get: function get() {
                    return Number(this.media.currentTime)
                  },
                  set: function set(e) {
                    if (!this.duration) return
                    var t = is.number(e) && e > 0
                    ;(this.media.currentTime = t
                      ? Math.min(e, this.duration)
                      : 0),
                      this.debug.log(
                        'Seeking to '.concat(this.currentTime, ' seconds')
                      )
                  }
                },
                {
                  key: 'buffered',
                  get: function get() {
                    var e = this.media.buffered
                    return is.number(e)
                      ? e
                      : e && e.length && this.duration > 0
                      ? e.end(0) / this.duration
                      : 0
                  }
                },
                {
                  key: 'seeking',
                  get: function get() {
                    return Boolean(this.media.seeking)
                  }
                },
                {
                  key: 'duration',
                  get: function get() {
                    var e = parseFloat(this.config.duration),
                      t = (this.media || {}).duration,
                      i = is.number(t) && t !== 1 / 0 ? t : 0
                    return e || i
                  }
                },
                {
                  key: 'volume',
                  get: function get() {
                    return Number(this.media.volume)
                  },
                  set: function set(e) {
                    var _this$config2
                    var t = e
                    is.string(t) && (t = Number(t)),
                      is.number(t) || (t = this.storage.get('volume')),
                      is.number(t) ||
                        ((_this$config2 = this.config),
                        (t = _this$config2.volume),
                        _this$config2),
                      t > 1 && (t = 1),
                      t < 0 && (t = 0),
                      (this.config.volume = t),
                      (this.media.volume = t),
                      !is.empty(e) && this.muted && t > 0 && (this.muted = !1)
                  }
                },
                {
                  key: 'muted',
                  get: function get() {
                    return Boolean(this.media.muted)
                  },
                  set: function set(e) {
                    var t = e
                    is.boolean(t) || (t = this.storage.get('muted')),
                      is.boolean(t) || (t = this.config.muted),
                      (this.config.muted = t),
                      (this.media.muted = t)
                  }
                },
                {
                  key: 'hasAudio',
                  get: function get() {
                    return (
                      !this.isHTML5 ||
                      !!this.isAudio ||
                      Boolean(this.media.mozHasAudio) ||
                      Boolean(this.media.webkitAudioDecodedByteCount) ||
                      Boolean(
                        this.media.audioTracks && this.media.audioTracks.length
                      )
                    )
                  }
                },
                {
                  key: 'speed',
                  get: function get() {
                    return Number(this.media.playbackRate)
                  },
                  set: function set(e) {
                    var _this37 = this
                    var t = null
                    is.number(e) && (t = e),
                      is.number(t) || (t = this.storage.get('speed')),
                      is.number(t) || (t = this.config.speed.selected)
                    var i = this.minimumSpeed,
                      s = this.maximumSpeed
                    ;(t = clamp(t, i, s)),
                      (this.config.speed.selected = t),
                      setTimeout(function () {
                        _this37.media && (_this37.media.playbackRate = t)
                      }, 0)
                  }
                },
                {
                  key: 'minimumSpeed',
                  get: function get() {
                    return this.isYouTube
                      ? Math.min.apply(
                          Math,
                          _toConsumableArray(this.options.speed)
                        )
                      : this.isVimeo
                      ? 0.5
                      : 0.0625
                  }
                },
                {
                  key: 'maximumSpeed',
                  get: function get() {
                    return this.isYouTube
                      ? Math.max.apply(
                          Math,
                          _toConsumableArray(this.options.speed)
                        )
                      : this.isVimeo
                      ? 2
                      : 16
                  }
                },
                {
                  key: 'quality',
                  get: function get() {
                    return this.media.quality
                  },
                  set: function set(e) {
                    var t = this.config.quality,
                      i = this.options.quality
                    if (!i.length) return
                    var s = [
                        !is.empty(e) && Number(e),
                        this.storage.get('quality'),
                        t.selected,
                        t.default
                      ].find(is.number),
                      n = !0
                    if (!i.includes(s)) {
                      var _e32 = closest(i, s)
                      this.debug.warn(
                        'Unsupported quality option: '
                          .concat(s, ', using ')
                          .concat(_e32, ' instead')
                      ),
                        (s = _e32),
                        (n = !1)
                    }
                    ;(t.selected = s),
                      (this.media.quality = s),
                      n && this.storage.set({ quality: s })
                  }
                },
                {
                  key: 'loop',
                  get: function get() {
                    return Boolean(this.media.loop)
                  },
                  set: function set(e) {
                    var t = is.boolean(e) ? e : this.config.loop.active
                    ;(this.config.loop.active = t), (this.media.loop = t)
                  }
                },
                {
                  key: 'source',
                  get: function get() {
                    return this.media.currentSrc
                  },
                  set: function set(e) {
                    source.change.call(this, e)
                  }
                },
                {
                  key: 'download',
                  get: function get() {
                    var e = this.config.urls.download
                    return is.url(e) ? e : this.source
                  },
                  set: function set(e) {
                    is.url(e) &&
                      ((this.config.urls.download = e),
                      controls.setDownloadUrl.call(this))
                  }
                },
                {
                  key: 'poster',
                  get: function get() {
                    return this.isVideo
                      ? this.media.getAttribute('poster') ||
                          this.media.getAttribute('data-poster')
                      : null
                  },
                  set: function set(e) {
                    this.isVideo
                      ? ui.setPoster.call(this, e, !1).catch(function () {})
                      : this.debug.warn('Poster can only be set for video')
                  }
                },
                {
                  key: 'ratio',
                  get: function get() {
                    if (!this.isVideo) return null
                    var e = reduceAspectRatio(getAspectRatio.call(this))
                    return is.array(e) ? e.join(':') : e
                  },
                  set: function set(e) {
                    this.isVideo
                      ? is.string(e) && validateAspectRatio(e)
                        ? ((this.config.ratio = reduceAspectRatio(e)),
                          setAspectRatio.call(this))
                        : this.debug.error(
                            'Invalid aspect ratio specified ('.concat(e, ')')
                          )
                      : this.debug.warn(
                          'Aspect ratio can only be set for video'
                        )
                  }
                },
                {
                  key: 'autoplay',
                  get: function get() {
                    return Boolean(this.config.autoplay)
                  },
                  set: function set(e) {
                    this.config.autoplay = is.boolean(e)
                      ? e
                      : this.config.autoplay
                  }
                },
                {
                  key: 'toggleCaptions',
                  value: function toggleCaptions(e) {
                    captions.toggle.call(this, e, !1)
                  }
                },
                {
                  key: 'currentTrack',
                  get: function get() {
                    var _this$captions2 = this.captions,
                      e = _this$captions2.toggled,
                      t = _this$captions2.currentTrack
                    return e ? t : -1
                  },
                  set: function set(e) {
                    captions.set.call(this, e, !1), captions.setup.call(this)
                  }
                },
                {
                  key: 'language',
                  get: function get() {
                    return (captions.getCurrentTrack.call(this) || {}).language
                  },
                  set: function set(e) {
                    captions.setLanguage.call(this, e, !1)
                  }
                },
                {
                  key: 'pip',
                  get: function get() {
                    return support.pip
                      ? is.empty(this.media.webkitPresentationMode)
                        ? this.media === document.pictureInPictureElement
                        : this.media.webkitPresentationMode === pip.active
                      : null
                  },
                  set: function set(e) {
                    if (!support.pip) return
                    var t = is.boolean(e) ? e : !this.pip
                    is.function(this.media.webkitSetPresentationMode) &&
                      this.media.webkitSetPresentationMode(
                        t ? pip.active : pip.inactive
                      ),
                      is.function(this.media.requestPictureInPicture) &&
                        (!this.pip && t
                          ? this.media.requestPictureInPicture()
                          : this.pip && !t && document.exitPictureInPicture())
                  }
                },
                {
                  key: 'setPreviewThumbnails',
                  value: function setPreviewThumbnails(e) {
                    this.previewThumbnails &&
                      this.previewThumbnails.loaded &&
                      (this.previewThumbnails.destroy(),
                      (this.previewThumbnails = null)),
                      Object.assign(this.config.previewThumbnails, e),
                      this.config.previewThumbnails.enabled &&
                        (this.previewThumbnails = new PreviewThumbnails(this))
                  }
                }
              ],
              [
                {
                  key: 'supported',
                  value: function supported(e, t, i) {
                    return support.check(e, t, i)
                  }
                },
                {
                  key: 'loadSprite',
                  value: function loadSprite(e, t) {
                    return _loadSprite(e, t)
                  }
                },
                {
                  key: 'setup',
                  value: function setup(e) {
                    var t =
                      arguments.length > 1 && arguments[1] !== undefined
                        ? arguments[1]
                        : {}
                    var i = null
                    return (
                      is.string(e)
                        ? (i = Array.from(document.querySelectorAll(e)))
                        : is.nodeList(e)
                        ? (i = Array.from(e))
                        : is.array(e) && (i = e.filter(is.element)),
                      is.empty(i)
                        ? null
                        : i.map(function (e) {
                            return new Plyr(e, t)
                          })
                    )
                  }
                }
              ]
            )
            return Plyr
          })()
          Plyr.defaults = cloneDeep(defaults)
          var plyr = ''
          var iconVideoPlay =
            'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFIAAABSCAMAAADw8nOpAAAAAXNSR0IArs4c6QAAAapQTFRFAAAA////////////2NjY2dnZ9vb2////9vb23Nzc3d3d3t7e39/f////4+Pj4+Pj6+vr7Ozs5+fn6Ojo7u7u6enp6enp7+/v8fHx7Ozs8fHx7e3t7+/v8/Pz8PDw8/Pz9PT0+/v78PDw8PDw9PT09PT0////9fX1/Pz89fX19fX19fX18vLy/Pz89vb29vb2/Pz8+fn59/f3////9/f3+vr69/f3+vr6////+Pj4+/v7////+/v7+/v7+Pj4+fn5/////f39+/v7+/v7+/v7+fn5+/v7+/v7/f39////+/v7////+/v7/f39/Pz8/Pz8/////Pz8/////Pz8/f39/f39/Pz8/f39/v7+/Pz8/v7+/////Pz8/v7+/v7+/v7+/v7+/Pz8/v7+/////v7+/v7+/v7+/v7+/v7+/v7+/////v7+/v7+/v7+/////v7+/////v7+/v7+/////v7+/////v7+/////////////////v7+/////v7+/////////////v7+/////////////////////v7+////////////////////////lZ+FUgAAAI10Uk5TAAYSFRobGxscHR4fICMkJScpKywsLi8vNTY2OD5BQkJDQ0RGRkhISktMTlBRUlNVWFlbXF1gY29wcXJyc3R1d3p7fH+AgoSFhoaHj5CTlJWXmJifn6WoqKusr6+0tLi5ury/v8LDyMvMzdTV1tjY2trb3ODh4eLj5ejs7e3u7u/w8vT19vj5+vr7/P3+n1NMJwAAA5RJREFUWMO1metfEkEUhg86lrZZRBeVitJSsVIkKym7KFqYqJGXLiplCWUYBKllRiaQa7Lz/s998Bqyu7ML+37eeX47t3Pec4ZIR9VuX2gutpSW5fRSbC7kc1dTKaroHEtyFIgnxzorzPFs7VMbADLRCb/X5XRIksPp8vonohkAG1PtNsPAysFVIB8JtNawAtW0BiJ5YHWw0hDwaDALxAbqmIrqBmJANnhEfMq9OfDZNqaptlmOXK/g9Bvj4DNNTFdNMxzxRpFfHOFIeZiQPCnwEd0frZ2HPCQxQUlDMuZrtYkt61hsZgbUvIj1Fi1i1ybCdmZI9jA2u9SJPQpGmWGNQulRJULpZybUr0CF2aUo3cyUuhWl6NxbNtHPTKofm0X2qHbdzDrur+f6obNkm0eYlaAw5gvP/AgW7aUg7YsYKbjXXG5mJalZ5v/dd1sCQ6xEDSFxcOp9SEmlIqUU+g5E3Bz3sJLl4bn9mBzEDCuDZhDcyzNZrhpxT104Loxs4tndfDSIWbX1mdzCr8fHRJmzGNzZ7lWo5ZlhAMDna4LINqxub3o7YmrffN12A8qkQ4wZQzsREU1jQO2TH7sW4+ddIeQApomIKuR8nS4S+HBRAFmX36ggok5EmAASf5+d0GdG0ElEYwgIIYHvt3WRAYwRURKtgkjgbb0OshVJomqeqRFGIhfQPqQ1GV5Nbo2lPIwEEjd0FtNNPowbQoK/PKOBHIePQvAbQwJrD6pUR/gRojl4jSKBj5fVRngxRwtwGUdi6/nJ4iNcWKBlNJhAAis3i45owDKl4TCFRL6j2AgH0iRDMocsnvclyCUg36shTU8c99QmvgSnKWR+uOgIJ5YoZuoQ4dOV4iMuIWbuqP9+VKVx1E1cSP7qrOaFNBw28KVDI2xMwEduRA0h/2hXRVG4DYZgvDuvH4INJYqVOyKJwkA6Uw0/helMNOlqBMnCpCtoDdbuVwlbAyEDw1+cFjMwU3o269sOMX7dmM3SMIOvt5P3E0GHuWcGNSzruTiAN/VMUHuWVctYS7ceXjVjrC2w/1YUKdRbnlKq92DBFy9HwRe3WVuWWlE8W1HiW9CIsKJdYkVTx4rWkxUNMivaeFY0G61oiVrRuCWixoR4eznRKNgE7xNtgveJvwEcKXernoio8mmZHxS2nz2mZQCZyLjf62pwSJKjweX1j0cyAORpE88eljzOHHxCWlhOy3J6eUHoCekfdmynrwwsFL4AAAAASUVORK5CYII='
          var ColVideo = exports(
            'C',
            defineComponent({
              name: 'col-video',
              props: {
                trySee: {
                  // 是否试看
                  type: Boolean,
                  default: false
                },
                freeTitleStatus: { type: Boolean, default: true }, // 试看比例
                freeRate: { type: Number, default: 100 },
                setting: { type: Object, default: function _default() {} },
                controls: Boolean,
                height: String,
                src: { type: String, default: '' },
                poster: { type: String, default: '' },
                styleValue: {
                  type: Object,
                  default: function _default() {
                    return {}
                  }
                },
                preload: { type: String, default: 'auto' },
                currentTime: { type: Boolean, default: true },
                playsinline: { type: Boolean, default: true },
                onPlay: { type: Function, default: function _default() {} }
              },
              data: function data() {
                return {
                  player: null, // playTime: 0,
                  loading: true, // 首次进入加载中
                  trySeeOver: false, // 试看是否结束
                  showSeeStatus: true // 是否显示试看状态
                }
              },
              mounted: function mounted() {
                var _this38 = this
                this._init()
                listenerMessage('setVideoPlayer', function (result) {
                  var content =
                    result === null || result === void 0
                      ? void 0
                      : result.content
                  if (content.status === 'pause') {
                    _this38.player.pause()
                  }
                })
              },
              computed: {
                computedSeeStatus: function computedSeeStatus() {
                  console.log(
                    this.showSeeStatus,
                    this.trySee,
                    this.trySeeOver,
                    'this.showSeeStatus, this.trySee'
                  )
                  return this.showSeeStatus && this.trySee
                },
                playTime: function playTime() {
                  // 允许播放时间
                  var player = this.player
                  var playTime = (player.duration * this.freeRate) / 100
                  return playTime || 0
                }
              },
              methods: {
                _init: function _init() {
                  var _this39 = this // controls: [
                  //   'play-large' ,  // 中间的大播放按钮
                  //   'restart' ,  // 重新开始播放
                  //   'rewind' ,  // 按寻道时间倒带（默认 10 秒）
                  //   'play' ,  // 播放/暂停播放
                  //   'fast-forward' ,  // 快进查找时间（默认 10 秒）
                  //   'progress' ,  // 播放和缓冲的进度条和滑动条
                  //   'current-time' ,  // 播放的当前时间
                  //   ' duration' ,  // 媒体的完整持续时间
                  //   'mute' ,  // 切换静音
                  //   'volume', // 音量控制
                  //   'captions' ,  // 切换字幕
                  //   'settings' ,  // 设置菜单
                  //   'pip' ,  // 画中画（当前仅 Safari）
                  //   'airplay' ,  // Airplay（当前仅 Safari）
                  //   'download ' ,  // 显示一个下载按钮，其中包含指向当前源或您在选项中指定的自定义 URL 的链接
                  //   'fullscreen' ,  // 切换全屏
                  // ] ;
                  var controls = [
                    'play-large',
                    'play',
                    'progress',
                    'captions',
                    'fullscreen'
                  ]
                  if (this.currentTime) {
                    controls.push('current-time')
                  }
                  var params = _objectSpread(
                    _objectSpread({ controls: controls }, this.setting),
                    {},
                    { invertTime: false }
                  )
                  if (browser$1().iPhone) {
                    params.fullscreen = {
                      enabled: true,
                      fallback: 'force',
                      iosNative: true
                    }
                  }
                  this.player = new Plyr(this.$refs.video, params) // fullscreen: {
                  //     enabled: true,
                  //     fallback: 'force',
                  //     iosNative: true
                  //   }
                  this.player.elements.container
                    ? (this.player.elements.container.style.height =
                        this.height || '210px')
                    : null
                  if (this.preload === 'none') {
                    this.loading = false
                  }
                  this.player.on('loadedmetadata', function () {
                    _this39.loading = false
                    console.log('loading 1111')
                    if (_this39.trySee) {
                      _this39.domPlayVisibility()
                    } else {
                      _this39.domPlayVisibility(false)
                    } // 监听播放事件
                    var _this = _this39
                    _this39.player.on('timeupdate', function () {
                      var players = _this.player
                      if (
                        players.currentTime >= _this39.playTime &&
                        _this.trySee
                      ) {
                        players.pause()
                        _this.trySeeOver = true
                        _this.showSeeStatus = true
                        _this.domPlayVisibility() // 试看结束后隐藏播放按钮
                      }
                    })
                  })
                  this.player.on('play', function () {
                    postMessage(
                      { api: 'getDeviceStatus', content: { type: 'video' } },
                      function (res) {
                        // 判断是否在录屏中, 如果在录屏则不允许播放
                        if (res.content.status == '1') {
                          Toast('为了保证数据安全，请不要录屏')
                          _this39.player.pause()
                        }
                      }
                    )
                    _this39.onPlay && _this39.onPlay()
                  })
                  this.player.on('enterfullscreen', function () {
                    console.log('fullscreen')
                    var i = document.createElement('i')
                    i.id = 'fullscreen-back'
                    i.className = 'van-icon van-icon-arrow-left video-back'
                    i.addEventListener('click', function () {
                      _this39.player.fullscreen.exit()
                    })
                    console.log(document.getElementsByClassName('plyr'))
                    document.getElementsByClassName('plyr')[0].appendChild(i)
                  })
                  this.player.on('exitfullscreen', function () {
                    console.log('exitfullscreen')
                    var i = document.getElementById('fullscreen-back')
                    i && i.remove()
                  })
                }, // 操作功能
                domPlayVisibility: function domPlayVisibility() {
                  var hide =
                    arguments.length > 0 && arguments[0] !== undefined
                      ? arguments[0]
                      : true
                  var controls = document.querySelector('.plyr__controls')
                  var controls2 = document.querySelector(
                    '.plyr__control--overlaid'
                  )
                  if (hide) {
                    controls === null || controls === void 0
                      ? void 0
                      : controls.setAttribute('style', 'display:none')
                    controls2 === null || controls2 === void 0
                      ? void 0
                      : controls2.setAttribute('style', 'display:none')
                  } else {
                    controls === null || controls === void 0
                      ? void 0
                      : controls.removeAttribute('style')
                    setTimeout(function () {
                      controls2 === null || controls2 === void 0
                        ? void 0
                        : controls2.removeAttribute('style')
                    }, 200)
                  }
                },
                onClickPlay: function onClickPlay() {
                  this.player.play()
                  this.domPlayVisibility(false)
                  this.showSeeStatus = false
                },
                onBuy: function onBuy() {
                  this.$router.back()
                },
                onReplay: function onReplay() {
                  this.player.restart()
                  this.player.play()
                  this.domPlayVisibility(false)
                  this.trySeeOver = false
                  this.showSeeStatus = false
                }
              },
              unmounted: function unmounted() {
                var _this$player
                ;(_this$player = this.player) === null ||
                _this$player === void 0
                  ? void 0
                  : _this$player.destroy()
              },
              render: function render() {
                var _this40 = this
                return createVNode(
                  'div',
                  { class: styles['video-container'] },
                  [
                    createVNode(
                      'video',
                      {
                        ref: 'video',
                        class: styles['video'],
                        src: this.src,
                        playsinline: this.playsinline,
                        poster: this.poster,
                        preload: this.preload,
                        style: _objectSpread({}, this.styleValue)
                      },
                      null
                    ),
                    this.loading &&
                      createVNode(
                        'div',
                        {
                          class: styles.loadingVideo,
                          style: { height: this.height || '210px' }
                        },
                        [
                          createVNode(
                            Loading,
                            {
                              size: 36,
                              color: '#01C1B5',
                              vertical: true,
                              style: {
                                height: '100%',
                                justifyContent: 'center'
                              }
                            },
                            {
                              default: function _default() {
                                return [
                                  createTextVNode('\u52A0\u8F7D\u4E2D...')
                                ]
                              }
                            }
                          )
                        ]
                      ),
                    this.trySee &&
                      this.computedSeeStatus &&
                      !this.loading &&
                      createVNode(
                        'div',
                        {
                          class: [styles.loadingVideo, styles.playOver],
                          style: { height: this.height || '210px' }
                        },
                        [
                          !this.trySeeOver
                            ? createVNode(Fragment, null, [
                                createVNode(
                                  Icon,
                                  {
                                    name: iconVideoPlay,
                                    size: 50,
                                    onClick: this.onClickPlay
                                  },
                                  null
                                ),
                                createVNode('p', { class: styles.freeTxt }, [
                                  createTextVNode('\u514D\u8D39'),
                                  this.freeTitleStatus ? '试看' : '领取'
                                ])
                              ])
                            : createVNode(Fragment, null, [
                                createVNode('p', { class: styles.tips }, [
                                  this.freeTitleStatus
                                    ? '免费试看结束，购买完整课程后继续学习'
                                    : '试看结束，领取课程后继续学习'
                                ]),
                                createVNode(
                                  Button,
                                  {
                                    class: styles.btn,
                                    type: 'primary',
                                    round: true,
                                    size: 'small',
                                    onClick: this.onBuy
                                  },
                                  {
                                    default: function _default() {
                                      return [
                                        state.platformType === 'STUDENT'
                                          ? _this40.freeTitleStatus
                                            ? '立即购买'
                                            : '免费领取'
                                          : '返回'
                                      ]
                                    }
                                  }
                                ),
                                createVNode(
                                  'div',
                                  {
                                    class: styles.replay,
                                    onClick: this.onReplay
                                  },
                                  [
                                    createVNode(
                                      Icon,
                                      {
                                        name: 'replay',
                                        style: { marginRight: '5px' },
                                        size: 16
                                      },
                                      null
                                    ),
                                    createTextVNode('\u91CD\u64AD')
                                  ]
                                )
                              ])
                        ]
                      )
                  ]
                )
              }
            })
          )
        }
      }
    }
  )
})()
