Plugin Directory

Changeset 1530082


Ignore:
Timestamp:
11/08/2016 02:08:24 AM (9 years ago)
Author:
0xbbc
Message:

Update DPlayer to v1.1.2

Location:
dplayer-for-wp
Files:
6 added
5 edited
6 copied

Legend:

Unmodified
Added
Removed
  • dplayer-for-wp/tags/1.1.2/dplayer-admin.php

    r1507127 r1530082  
    6868            'kblog_danmaku_token'
    6969        );
     70       
     71        $enable_hls = '';
     72        if ( get_option( 'kblog_enable_hls' ) ) {
     73            $enable_hls = 'checked="true"';
     74        }
     75        $this->admin_table_row( 'Enable hls.js',
     76            'Live Video (HTTP Live Streaming, M3U8 format) support',
     77            "<input type='checkbox' name='kblog_enable_hls' id='kblog_enable_hls' value='1' $enable_hls />",
     78            'kblog_enable_hls'
     79        );
     80       
     81        $enable_flv = '';
     82        if ( get_option( 'kblog_enable_flv' ) ) {
     83            $enable_flv = 'checked="true"';
     84        }
     85        $this->admin_table_row( 'Enable flv.js',
     86            'FLV format support',
     87            "<input type='checkbox' name='kblog_enable_flv' id='kblog_enable_flv' value='1' $enable_flv />",
     88            'kblog_enable_flv'
     89        );
    7090
    7191        $this->table_foot();
     
    80100            update_option( 'kblog_danmaku_token', wp_unslash( $_POST['kblog_danmaku_token'] ) ); // input var okay
    81101        }
     102       
     103        update_option( 'kblog_enable_hls', array_key_exists( 'kblog_enable_hls', $_POST ) ); // input var okay
     104        update_option( 'kblog_enable_flv', array_key_exists( 'kblog_enable_flv', $_POST ) ); // input var okay
    82105    }
    83106
  • dplayer-for-wp/tags/1.1.2/dplayer.php

    r1520735 r1530082  
    33* Plugin Name: DPlayer for WordPress
    44* Description: Wow, such a lovely HTML5 danmaku video player comes to WordPress
    5 * Version: 1.0.9
     5* Version: 1.1.2
    66* Author: 0xBBC
    77* Author URI: https://blog.0xbbc.com/
     
    107107    public static function add_script() {
    108108        if (!self::$add_script) {
    109             wp_enqueue_script( 'dplayer', plugins_url('js/DPlayer.min.js', __FILE__), false, '1.0.10', false );
     109            if ( get_option( 'kblog_enable_flv' ) ) {
     110                wp_enqueue_script( '0-dplayer-flv', plugins_url('js/plugin/flv.min.js', __FILE__), false, '1.1.2', false );
     111            }
     112            if ( get_option( 'kblog_enable_hls' ) ) {
     113                wp_enqueue_script( '0-dplayer-hls', plugins_url('js/plugin/hls.min.js', __FILE__), false, '1.1.2', false );
     114            }
     115            wp_enqueue_script( 'dplayer', plugins_url('js/DPlayer.min.js', __FILE__), false, '1.1.2', false );
    110116            wp_enqueue_script( 'init-dplayer', plugins_url('js/init-dplayer.js', __FILE__), false, '1.0.0', false );
    111117            self::$add_script = true;
  • dplayer-for-wp/tags/1.1.2/js/DPlayer.min.js

    r1520735 r1530082  
    1 !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}(this,function(){return function(e){function t(n){if(a[n])return a[n].exports;var r=a[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},l=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();console.log("\n %c DPlayer 1.1.1 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),a(1);var o=0,i=function(){function e(t){var a=this;n(this,e);var l={play:["0 0 16 32","M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"],pause:["0 0 17 32","M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"],"volume-up":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"],"volume-down":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"],"volume-off":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"],loop:["0 0 32 32","M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z"],full:["0 0 32 33","M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"],setting:["0 0 32 28","M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"],right:["0 0 32 32","M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"],comment:["0 0 32 32","M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"],"comment-off":["0 0 32 32","M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"],send:["0 0 32 32","M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"],menu:["0 0 22 32","M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"],camera:["0 0 32 32","M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"]};this.getSVG=function(e){return'\n                <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="'+l[e][0]+'" width="100%">\n                    <use xlink:href="#dplayer-'+e+'"></use>\n                    <path class="dplayer-fill" d="'+l[e][1]+'" id="dplayer-'+e+'"></path>\n                </svg>\n            '},this.option=t;var i=/mobile/i.test(window.navigator.userAgent);i&&(this.option.autoplay=!1);var s={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1,lang:navigator.language.indexOf("zh")!==-1?"zh":"en",screenshot:!1,hotkey:!0,preload:"auto"};for(var d in s)s.hasOwnProperty(d)&&!this.option.hasOwnProperty(d)&&(this.option[d]=s[d]);var p={"Danmaku is loading":"弹幕加载中",Top:"顶部",Bottom:"底部",Rolling:"滚动","Input danmaku, hit Enter":"输入弹幕,回车发送","About author":"关于作者","DPlayer feedback":"播放器意见反馈","About DPlayer":"关于 DPlay 播放器",Loop:"洗脑循环",Speed:"速度","Opacity for danmaku":"弹幕透明度",Normal:"正常","Please input danmaku!":"要输入弹幕内容啊喂!","Set danmaku color":"设置弹幕颜色","Set danmaku type":"设置弹幕类型",Danmaku:"弹幕"},m=function(e){return"en"===a.option.lang?e:"zh"===a.option.lang?p[e]:void 0};this.updateBar=function(e,t,a){t=t>0?t:0,t=t<1?t:1,k[e+"Bar"].style[a]=100*t+"%"};var c=["play","pause","canplay","playing","ended","error"];this.event={};for(var y=0;y<c.length;y++)this.event[c[y]]=[];this.trigger=function(e){for(var t=0;t<a.event[e].length;t++)a.event[e][t]()},this.element=this.option.element,this.option.danmaku||this.element.classList.add("dplayer-no-danmaku"),this.element.innerHTML='\n            <div class="dplayer-mask"></div>\n            <div class="dplayer-video-wrap">\n                <video class="dplayer-video" '+(this.option.video.pic?'poster="'+this.option.video.pic+'"':"")+" webkit-playsinline "+(this.option.screenshot?'crossorigin="anonymous"':"")+' preload="'+this.option.preload+'" src="'+this.option.video.url+'"></video>\n                <div class="dplayer-danmaku">\n                    <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>\n                </div>\n                <div class="dplayer-bezel">\n                    <span class="dplayer-bezel-icon"></span>\n                    '+(this.option.danmaku?'<span class="dplayer-danloading">'+m("Danmaku is loading")+"</span>":"")+'\n                    <span class="diplayer-loading-icon">\n                        <svg height="100%" version="1.1" viewBox="0 0 22 22" width="100%">\n                            <svg x="7" y="1">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="13" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="7" y="13">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="1" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class="dplayer-controller-mask"></div>\n            <div class="dplayer-controller">\n                <div class="dplayer-icons dplayer-icons-left">\n                    <button class="dplayer-icon dplayer-play-icon">'+this.getSVG("play")+('     </button>\n                    <div class="dplayer-volume" '+(i?'style="display: none;"':"")+'>\n                        <button class="dplayer-icon dplayer-volume-icon">')+this.getSVG("volume-down")+('         </button>\n                        <div class="dplayer-volume-bar-wrap">\n                            <div class="dplayer-volume-bar">\n                                <div class="dplayer-volume-bar-inner" style="width: 70%; background: '+this.option.theme+';">\n                                    <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class="dplayer-time"><span class="dplayer-ptime">0:00</span> / <span class="dplayer-dtime">0:00</span></span>\n                </div>\n                <div class="dplayer-icons dplayer-icons-right">\n                    '+(this.option.screenshot?'\n                    <a href="#" class="dplayer-icon dplayer-camera-icon" '+(i?'style="display: none;"':"")+"dplayer-volume>"+this.getSVG("camera")+"     </a>\n                    ":"")+'\n                    <div class="dplayer-comment">\n                        <button class="dplayer-icon dplayer-comment-icon">')+this.getSVG("comment")+'         </button>\n                        <div class="dplayer-comment-box">\n                            <button class="dplayer-icon dplayer-comment-setting-icon">'+this.getSVG("menu")+('             </button>\n                            <div class="dplayer-comment-setting-box">\n                                <div class="dplayer-comment-setting-color">\n                                   <div class="dplayer-comment-setting-title">'+m("Set danmaku color")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#fff" checked>\n                                        <span style="background: #fff; border: 1px solid rgba(0,0,0,.1);"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#e54256">\n                                        <span style="background: #e54256"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#ffe133">\n                                        <span style="background: #ffe133"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#64DD17">\n                                        <span style="background: #64DD17"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#39ccff">\n                                        <span style="background: #39ccff"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#D500F9">\n                                        <span style="background: #D500F9"></span>\n                                    </label>\n                                </div>\n                                <div class="dplayer-comment-setting-type">\n                                    <div class="dplayer-comment-setting-title">'+m("Set danmaku type")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="top">\n                                        <span>'+m("Top")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="right" checked>\n                                        <span>'+m("Rolling")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="bottom">\n                                        <span>'+m("Bottom")+'</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class="dplayer-comment-input" type="text" placeholder="'+m("Input danmaku, hit Enter")+'" maxlength="30">\n                            <button class="dplayer-icon dplayer-send-icon">')+this.getSVG("send")+'             </button>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting">\n                        <button class="dplayer-icon dplayer-setting-icon">'+this.getSVG("setting")+'         </button>\n                        <div class="dplayer-setting-box"></div>\n                    </div>\n                    <button class="dplayer-icon dplayer-full-icon">'+this.getSVG("full")+('     </button>\n                </div>\n                <div class="dplayer-bar-wrap">\n                    <div class="dplayer-bar">\n                        <div class="dplayer-loaded" style="width: 0;"></div>\n                        <div class="dplayer-played" style="width: 0; background: '+this.option.theme+'">\n                            <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="dplayer-menu">\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="http://diygod.me/">'+m("About author")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer/issues">'+m("DPlayer feedback")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer">'+m("About DPlayer")+"</a></span></div>\n            </div>\n        ");var u=this.element.offsetWidth<=500;if(u){var g=document.createElement("style");g.innerHTML=".dplayer .dplayer-danmaku{font-size:18px}",document.head.appendChild(g)}this.video=this.element.getElementsByClassName("dplayer-video")[0],this.option.video.url.match(/(m3u8)$/i)&&Hls.isSupported()&&!function(){a.element.getElementsByClassName("dplayer-time")[0].style.display="none";var e=new Hls;e.attachMedia(a.video),e.on(Hls.Events.MEDIA_ATTACHED,function(){e.loadSource(a.option.video.url),e.on(Hls.Events.MANIFEST_PARSED,function(e,t){console.log("manifest loaded, found "+t.levels.length+" quality level")})})}(),this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){a.bezel.classList.remove("dplayer-bezel-transition")}),this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!0,this.playButton.addEventListener("click",function(){a.toggle()});var f=this.element.getElementsByClassName("dplayer-video-wrap")[0],v=this.element.getElementsByClassName("dplayer-controller-mask")[0];if(i){var b=function(){a.element.classList.contains("dplayer-hide-controller")?a.element.classList.remove("dplayer-hide-controller"):a.element.classList.add("dplayer-hide-controller")};f.addEventListener("click",b),v.addEventListener("click",b)}else f.addEventListener("click",function(){a.toggle()}),v.addEventListener("click",function(){a.toggle()});var h=function(e){var t=function(e){return e<10?"0"+e:""+e},a=parseInt(e/60),n=parseInt(e-60*a);return t(a)+":"+t(n)},x=function(e){var t=e.offsetLeft,n=e.offsetParent,r=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==a.element;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return r=document.body.scrollLeft+document.documentElement.scrollLeft,t-r},k={};k.playedBar=this.element.getElementsByClassName("dplayer-played")[0],k.loadedBar=this.element.getElementsByClassName("dplayer-loaded")[0];var w=this.element.getElementsByClassName("dplayer-bar-wrap")[0],Y=void 0;this.option.danmaku&&this.video.addEventListener("seeking",function(){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime)return void(a.danIndex=e);a.danIndex=a.dan.length}});var E=0,L=0,z=!1,B=void 0;this.setTime=function(){a.playedTime=setInterval(function(){L=a.video.currentTime,!z&&L<E+.01&&!a.video.paused&&(a.element.classList.add("dplayer-loading"),z=!0),z&&L>E+.01&&!a.video.paused&&(a.element.classList.remove("dplayer-loading"),z=!1),E=L,a.updateBar("played",a.video.currentTime/a.video.duration,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=h(a.video.currentTime),a.trigger("playing")},100),a.option.danmaku&&(B=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)ne(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0))},this.clearTime=function(){clearInterval(a.playedTime),a.option.danmaku&&clearInterval(B)},w.addEventListener("click",function(e){var t=e||window.event;Y=w.clientWidth;var n=(t.clientX-x(w))/Y;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.video.currentTime=parseFloat(k.playedBar.style.width)/100*a.video.duration});var C=function(e){var t=e||window.event,n=(t.clientX-x(w))/Y;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=h(n*a.video.duration)},T=function xe(){document.removeEventListener("mouseup",xe),document.removeEventListener("mousemove",C),a.video.currentTime=parseFloat(k.playedBar.style.width)/100*a.video.duration,a.setTime()};w.addEventListener("mousedown",function(){Y=w.clientWidth,a.clearTime(),document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}),k.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var N=this.element.getElementsByClassName("dplayer-volume")[0],S=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],q=this.element.getElementsByClassName("dplayer-volume-bar")[0],M=this.element.getElementsByClassName("dplayer-volume-icon")[0],A=35;this.switchVolumeIcon=function(){var e=a.element.getElementsByClassName("dplayer-volume-icon")[0];a.video.volume>=.8?e.innerHTML=a.getSVG("volume-up"):a.video.volume>0?e.innerHTML=a.getSVG("volume-down"):e.innerHTML=a.getSVG("volume-off")};var I=function(e){var t=e||window.event,n=(t.clientX-x(q)-5.5)/A;a.volume(n)},D=function ke(){document.removeEventListener("mouseup",ke),document.removeEventListener("mousemove",I),N.classList.remove("dplayer-volume-active")};S.addEventListener("click",function(e){var t=e||window.event,n=(t.clientX-x(q)-5.5)/A;a.volume(n)}),S.addEventListener("mousedown",function(){document.addEventListener("mousemove",I),document.addEventListener("mouseup",D),N.classList.add("dplayer-volume-active")}),M.addEventListener("click",function(){a.video.muted?(a.video.muted=!1,a.switchVolumeIcon(),a.updateBar("volume",a.video.volume,"width")):(a.video.muted=!0,M.innerHTML=a.getSVG("volume-off"),a.updateBar("volume",0,"width"))});var R=0;if(!i){var H=function(){a.element.classList.remove("dplayer-hide-controller"),clearTimeout(R),R=setTimeout(function(){a.video.played.length&&(a.element.classList.add("dplayer-hide-controller"),U(),ge())},2e3)};this.element.addEventListener("mousemove",H),this.element.addEventListener("click",H)}var F=localStorage.getItem("DPlayer-opacity")||.7,X={original:'\n                    <div class="dplayer-setting-item dplayer-setting-speed">\n                        <span class="dplayer-label">'+m("Speed")+'</span>\n                        <div class="dplayer-toggle">'+this.getSVG("right")+('     </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-loop">\n                        <span class="dplayer-label">'+m("Loop")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle">\n                            <label for="dplayer-toggle"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-showdan">\n                        <span class="dplayer-label">'+m("Danmaku")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-showdan-setting-input" type="checkbox" name="dplayer-toggle-dan">\n                            <label for="dplayer-toggle-dan"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-danmaku">\n                        <span class="dplayer-label">'+m("Opacity for danmaku")+'</span>\n                        <div class="dplayer-danmaku-bar-wrap">\n                            <div class="dplayer-danmaku-bar">\n                                <div class="dplayer-danmaku-bar-inner" style="width: '+100*F+'%">\n                                    <span class="dplayer-thumb"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>'),speed:'\n                    <div class="dplayer-setting-speed-item" data-speed="0.5">\n                        <span class="dplayer-label">0.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="0.75">\n                        <span class="dplayer-label">0.75</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1">\n                        <span class="dplayer-label">'+m("Normal")+'</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.25">\n                        <span class="dplayer-label">1.25</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.5">\n                        <span class="dplayer-label">1.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="2">\n                        <span class="dplayer-label">2</span>\n                    </div>'},O=this.element.getElementsByClassName("dplayer-setting-icon")[0],P=this.element.getElementsByClassName("dplayer-setting-box")[0],V=this.element.getElementsByClassName("dplayer-mask")[0];P.innerHTML=X.original;var U=function(){P.classList.contains("dplayer-setting-box-open")&&(P.classList.remove("dplayer-setting-box-open"),V.classList.remove("dplayer-mask-show"),setTimeout(function(){P.classList.remove("dplayer-setting-box-narrow"),P.innerHTML=X.original,Q()},300))},G=function(){P.classList.add("dplayer-setting-box-open"),V.classList.add("dplayer-mask-show")};V.addEventListener("click",function(){U()}),O.addEventListener("click",function(){G()});var j=this.option.loop,J=this.element.getElementsByClassName("dplayer-danmaku")[0],W=!0,Q=function(){var e=a.element.getElementsByClassName("dplayer-setting-loop")[0],t=e.getElementsByClassName("dplayer-toggle-setting-input")[0];t.checked=j,e.addEventListener("click",function(){t.checked=!t.checked,t.checked?(j=!0,a.video.loop=j):(j=!1,a.video.loop=j),U()});var n=a.element.getElementsByClassName("dplayer-setting-showdan")[0],r=n.getElementsByClassName("dplayer-showdan-setting-input")[0];r.checked=W,n.addEventListener("click",function(){if(r.checked=!r.checked,r.checked){if(W=!0,a.option.danmaku){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime){a.danIndex=e;break}a.danIndex=a.dan.length}B=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)ne(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0)}}else W=!1,a.option.danmaku&&(clearInterval(B),J.innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0]);U()});var l=a.element.getElementsByClassName("dplayer-setting-speed")[0];l.addEventListener("click",function(){P.classList.add("dplayer-setting-box-narrow"),P.innerHTML=X.speed;for(var e=P.getElementsByClassName("dplayer-setting-speed-item"),t=function(t){
    2 e[t].addEventListener("click",function(){a.video.playbackRate=e[t].dataset.speed,U()})},n=0;n<e.length;n++)t(n)}),a.option.danmaku&&!function(){k.danmakuBar=a.element.getElementsByClassName("dplayer-danmaku-bar-inner")[0];var e=a.element.getElementsByClassName("dplayer-danmaku-bar-wrap")[0],t=a.element.getElementsByClassName("dplayer-danmaku-bar")[0],n=a.element.getElementsByClassName("dplayer-setting-danmaku")[0],r=130;a.updateBar("danmaku",F,"width");var l=function(e){var n=e||window.event,l=(n.clientX-x(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;F=l,localStorage.setItem("DPlayer-opacity",F)},o=function i(){document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",l),n.classList.remove("dplayer-setting-danmaku-active")};e.addEventListener("click",function(e){var n=e||window.event,l=(n.clientX-x(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;F=l,localStorage.setItem("DPlayer-opacity",F)}),e.addEventListener("mousedown",function(){document.addEventListener("mousemove",l),document.addEventListener("mouseup",o),n.classList.add("dplayer-setting-danmaku-active")})}()};Q(),this.video.addEventListener("durationchange",function(){1!==a.video.duration&&(a.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=h(a.video.duration))}),this.video.addEventListener("progress",function(){var e=a.video.buffered.length?a.video.buffered.end(a.video.buffered.length-1)/a.video.duration:0;a.updateBar("loaded",e,"width")}),this.video.addEventListener("error",function(){a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="Error happens ╥﹏╥",a.trigger("pause")}),this.video.addEventListener("canplay",function(){a.trigger("canplay")}),this.ended=!1,this.video.addEventListener("ended",function(){a.updateBar("played",1,"width"),j||(a.ended=!0,a.pause(),a.trigger("ended"))}),this.video.volume=parseInt(this.element.getElementsByClassName("dplayer-volume-bar-inner")[0].style.width)/100,this.video.loop=j,1!==this.video.duration&&(this.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=this.video.duration?h(this.video.duration):"00:00");var _=u?24:30,Z=void 0,$=void 0,K=void 0;this.danTunnel={right:{},top:{},bottom:{}};var ee=function(e){return J.getBoundingClientRect().right-e.getBoundingClientRect().right},te=function(e){return(Z+e)/5},ae=function(e,t,n){for(var l=Z/te(n),o=function(n){var r=a.danTunnel[t][n+""];if(!r||!r.length)return a.danTunnel[t][n+""]=[e],e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%K};for(var o=0;o<r.length;o++){var i=ee(r[o])-10;if(i<=Z-l*te(r[o].offsetWidth)||i<=0)break;if(o===r.length-1)return a.danTunnel[t][n+""].push(e),e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%K}}},i=0;;i++){var s=o(i);if("object"===("undefined"==typeof s?"undefined":r(s)))return s.v}};this.itemDemo=this.element.getElementsByClassName("dplayer-danmaku-item")[0];var ne=function(e,t,n){Z=J.offsetWidth,$=J.offsetHeight,K=parseInt($/_);var r=document.createElement("div");r.classList.add("dplayer-danmaku-item"),r.classList.add("dplayer-danmaku-"+n),r.innerHTML=e,r.style.opacity=F,r.style.color=t,r.addEventListener("animationend",function(){J.removeChild(r)}),a.itemDemo.innerHTML=e;var l=a.itemDemo.offsetWidth;switch(n){case"right":r.style.top=_*ae(r,n,l)+"px",r.style.width=l+1+"px",r.style.transform="translateX(-"+Z+"px)";break;case"top":r.style.top=_*ae(r,n)+"px";break;case"bottom":r.style.bottom=_*ae(r,n)+"px";break;default:console.error("Can't handled danmaku type: "+n)}return J.appendChild(r),r.classList.add("dplayer-danmaku-move"),r};this.option.danmaku?!function(){a.danIndex=0;var e=new XMLHttpRequest;e.onreadystatechange=function(){4===e.readyState&&(e.status>=200&&e.status<300||304===e.status?!function(){var t=JSON.parse(e.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(e.onreadystatechange=function(){if(4===e.readyState)if(e.status>=200&&e.status<300||304===e.status){var n=JSON.parse(e.responseText);1!==n.code?alert(n.msg):(a.dan=t.danmaku.concat(n.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}else console.log("Request was unsuccessful: "+e.status)},e.open("get",a.option.danmaku.addition[0],!0),e.send(null)):(a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}():console.log("Request was unsuccessful: "+e.status))};var t=void 0;t=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,e.open("get",t,!0),e.send(null)}():this.option.autoplay&&!i?this.play():i&&this.pause();var re=this.element.getElementsByClassName("dplayer-comment-input")[0],le=this.element.getElementsByClassName("dplayer-comment-icon")[0],oe=this.element.getElementsByClassName("dplayer-comment-box")[0],ie=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],se=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],de=this.element.getElementsByClassName("dplayer-send-icon")[0],pe=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2f;")},me=function(){if(re.blur(),!re.value.replace(/^\s+|\s+$/g,""))return void alert(m("Please input danmaku!"));var e={token:a.option.danmaku.token,player:a.option.danmaku.id,author:"DIYgod",time:a.video.currentTime,text:re.value,color:a.element.querySelector(".dplayer-comment-setting-color input:checked").value,type:a.element.querySelector(".dplayer-comment-setting-type input:checked").value},t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState)if(t.status>=200&&t.status<300||304===t.status){var e=JSON.parse(t.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(t.responseText))}else console.log("Request was unsuccessful: "+t.status)},t.open("post",a.option.danmaku.api,!0),t.send(JSON.stringify(e)),re.value="",ge(),a.dan.splice(a.danIndex,0,e),a.danIndex++;var n=ne(pe(e.text),e.color,e.type);n.style.border="2px solid "+a.option.theme},ce=function(){se.classList.contains("dplayer-comment-setting-open")&&se.classList.remove("dplayer-comment-setting-open")},ye=function(){se.classList.contains("dplayer-comment-setting-open")?se.classList.remove("dplayer-comment-setting-open"):se.classList.add("dplayer-comment-setting-open")},ue=0,ge=function(){oe.classList.contains("dplayer-comment-box-open")&&(oe.classList.remove("dplayer-comment-box-open"),V.classList.remove("dplayer-mask-show"),clearInterval(ue),a.element.classList.remove("dplayer-show-controller"),ce())},fe=function(){oe.classList.add("dplayer-comment-box-open"),V.classList.add("dplayer-mask-show"),ue=setInterval(function(){clearTimeout(R)},1e3),a.element.classList.add("dplayer-show-controller")};V.addEventListener("click",function(){ge()}),le.addEventListener("click",function(){fe(),setTimeout(function(){re.focus()},300)}),ie.addEventListener("click",function(){ye()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var e=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked+span');e&&(ie.getElementsByClassName("dplayer-fill")[0].style.fill=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked').value)}),re.addEventListener("click",function(){ce()}),re.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&me()}),de.addEventListener("click",me);var ve=function(){Z=J.offsetWidth;for(var e=a.element.getElementsByClassName("dplayer-danmaku-item"),t=0;t<e.length;t++)e[t].style.transform="translateX(-"+Z+"px)"};this.element.addEventListener("fullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.addEventListener("mozfullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.addEventListener("webkitfullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.getElementsByClassName("dplayer-full-icon")[0].addEventListener("click",function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():a.element.requestFullscreen?a.element.requestFullscreen():a.element.mozRequestFullScreen?a.element.mozRequestFullScreen():a.element.webkitRequestFullscreen&&a.element.webkitRequestFullscreen(),ve()});var be=function(e){var t=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==n&&"true"!==n){var r=e||window.event,l=void 0;switch(r.keyCode){case 32:r.preventDefault(),a.toggle();break;case 37:r.preventDefault(),a.video.currentTime=a.video.currentTime-5;break;case 39:r.preventDefault(),a.video.currentTime=a.video.currentTime+5;break;case 38:r.preventDefault(),l=a.video.volume+.1,a.volume(l);break;case 40:r.preventDefault(),l=a.video.volume-.1,a.volume(l)}}};this.option.hotkey&&document.addEventListener("keydown",be);var he=this.element.getElementsByClassName("dplayer-menu")[0];this.element.addEventListener("contextmenu",function(e){var t=e||window.event;t.preventDefault(),he.style.left=t.clientX-a.element.getBoundingClientRect().left+"px",he.style.top=t.clientY-a.element.getBoundingClientRect().top+"px",he.classList.add("dplayer-menu-show"),V.classList.add("dplayer-mask-show"),V.addEventListener("click",function(){V.classList.remove("dplayer-mask-show"),he.classList.remove("dplayer-menu-show")})}),this.option.screenshot&&!function(){var e=a.element.getElementsByClassName("dplayer-camera-icon")[0];e.addEventListener("click",function(){var t=document.createElement("canvas");t.width=a.video.videoWidth,t.height=a.video.videoHeight,t.getContext("2d").drawImage(a.video,0,0,t.width,t.height),e.href=t.toDataURL(),e.download="DPlayer.png"})}(),o++}return l(e,[{key:"play",value:function(e){"[object Number]"===Object.prototype.toString.call(e)&&(this.video.currentTime=e),this.video.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.video.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.video.pause(),this.clearTime(),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"volume",value:function(e){e=e>0?e:0,e=e<1?e:1,this.updateBar("volume",e,"width"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}},{key:"switchVideo",value:function(e,t){var a=this;this.video.src=e.url,this.video.poster=e.pic?e.pic:"",this.video.currentTime=0,this.pause(),t&&!function(){a.dan=[],a.danIndex=0,a.element.getElementsByClassName("dplayer-danloading")[0].style.display="block",a.updateBar("played",0,"width"),a.updateBar("loaded",0,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="00:00",a.element.getElementsByClassName("dplayer-danmaku")[0].innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0];var e=/mobile/i.test(window.navigator.userAgent);a.option.danmaku=t;var n=new XMLHttpRequest;n.onreadystatechange=function(){4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?!function(){var t=JSON.parse(n.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(n.onreadystatechange=function(){if(4===n.readyState)if(n.status>=200&&n.status<300||304===n.status){var r=JSON.parse(n.responseText);1!==r.code?alert(r.msg):(a.danIndex=0,a.dan=t.danmaku.concat(r.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}else console.log("Request was unsuccessful: "+n.status)},n.open("get",a.option.danmaku.addition[0],!0),n.send(null)):(a.danIndex=0,a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}():console.log("Request was unsuccessful: "+n.status))};var r=void 0;r=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,n.open("get",r,!0),n.send(null)}()}}]),e}();e.exports=i},function(e,t,a){var n=a(2);"string"==typeof n&&(n=[[e.id,n,""]]);a(4)(n,{});n.locals&&(e.exports=n.locals)},function(e,t,a){t=e.exports=a(3)(),t.push([e.id,'.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:\'\';position:absolute;top:100%;left:50%;margin-left:-12px;background:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 12"><path fill="#FFF" d="M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0"/></svg>\');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}',""]);
     1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}(this,function(){return function(e){function t(n){if(a[n])return a[n].exports;var r=a[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},l=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();console.log("\n %c DPlayer 1.1.2 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),a(1);var o=0,i=function(){function e(t){var a=this;n(this,e);var l={play:["0 0 16 32","M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"],pause:["0 0 17 32","M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"],"volume-up":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"],"volume-down":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"],"volume-off":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"],loop:["0 0 32 32","M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z"],full:["0 0 32 33","M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"],setting:["0 0 32 28","M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"],right:["0 0 32 32","M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"],comment:["0 0 32 32","M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"],"comment-off":["0 0 32 32","M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"],send:["0 0 32 32","M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"],menu:["0 0 22 32","M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"],camera:["0 0 32 32","M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"]};this.getSVG=function(e){return'\n                <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="'+l[e][0]+'" width="100%">\n                    <use xlink:href="#dplayer-'+e+'"></use>\n                    <path class="dplayer-fill" d="'+l[e][1]+'" id="dplayer-'+e+'"></path>\n                </svg>\n            '},this.option=t;var i=/mobile/i.test(window.navigator.userAgent);i&&(this.option.autoplay=!1);var s={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1,lang:navigator.language.indexOf("zh")!==-1?"zh":"en",screenshot:!1,hotkey:!0,preload:"auto"};for(var d in s)s.hasOwnProperty(d)&&!this.option.hasOwnProperty(d)&&(this.option[d]=s[d]);var p={"Danmaku is loading":"弹幕加载中",Top:"顶部",Bottom:"底部",Rolling:"滚动","Input danmaku, hit Enter":"输入弹幕,回车发送","About author":"关于作者","DPlayer feedback":"播放器意见反馈","About DPlayer":"关于 DPlay 播放器",Loop:"洗脑循环",Speed:"速度","Opacity for danmaku":"弹幕透明度",Normal:"正常","Please input danmaku!":"要输入弹幕内容啊喂!","Set danmaku color":"设置弹幕颜色","Set danmaku type":"设置弹幕类型",Danmaku:"弹幕"},m=function(e){return"en"===a.option.lang?e:"zh"===a.option.lang?p[e]:void 0};this.updateBar=function(e,t,a){t=t>0?t:0,t=t<1?t:1,w[e+"Bar"].style[a]=100*t+"%"};var c=["play","pause","canplay","playing","ended","error"];this.event={};for(var y=0;y<c.length;y++)this.event[c[y]]=[];this.trigger=function(e){for(var t=0;t<a.event[e].length;t++)a.event[e][t]()},this.element=this.option.element,this.option.danmaku||this.element.classList.add("dplayer-no-danmaku"),this.element.innerHTML='\n            <div class="dplayer-mask"></div>\n            <div class="dplayer-video-wrap">\n                <video class="dplayer-video" '+(this.option.video.pic?'poster="'+this.option.video.pic+'"':"")+" webkit-playsinline "+(this.option.screenshot?'crossorigin="anonymous"':"")+' preload="'+this.option.preload+'" src="'+this.option.video.url+'"></video>\n                <div class="dplayer-danmaku">\n                    <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>\n                </div>\n                <div class="dplayer-bezel">\n                    <span class="dplayer-bezel-icon"></span>\n                    '+(this.option.danmaku?'<span class="dplayer-danloading">'+m("Danmaku is loading")+"</span>":"")+'\n                    <span class="diplayer-loading-icon">\n                        <svg height="100%" version="1.1" viewBox="0 0 22 22" width="100%">\n                            <svg x="7" y="1">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="13" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="7" y="13">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="1" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class="dplayer-controller-mask"></div>\n            <div class="dplayer-controller">\n                <div class="dplayer-icons dplayer-icons-left">\n                    <button class="dplayer-icon dplayer-play-icon">'+this.getSVG("play")+('     </button>\n                    <div class="dplayer-volume" '+(i?'style="display: none;"':"")+'>\n                        <button class="dplayer-icon dplayer-volume-icon">')+this.getSVG("volume-down")+('         </button>\n                        <div class="dplayer-volume-bar-wrap">\n                            <div class="dplayer-volume-bar">\n                                <div class="dplayer-volume-bar-inner" style="width: 70%; background: '+this.option.theme+';">\n                                    <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class="dplayer-time"><span class="dplayer-ptime">0:00</span> / <span class="dplayer-dtime">0:00</span></span>\n                </div>\n                <div class="dplayer-icons dplayer-icons-right">\n                    '+(this.option.screenshot?'\n                    <a href="#" class="dplayer-icon dplayer-camera-icon" '+(i?'style="display: none;"':"")+"dplayer-volume>"+this.getSVG("camera")+"     </a>\n                    ":"")+'\n                    <div class="dplayer-comment">\n                        <button class="dplayer-icon dplayer-comment-icon">')+this.getSVG("comment")+'         </button>\n                        <div class="dplayer-comment-box">\n                            <button class="dplayer-icon dplayer-comment-setting-icon">'+this.getSVG("menu")+('             </button>\n                            <div class="dplayer-comment-setting-box">\n                                <div class="dplayer-comment-setting-color">\n                                   <div class="dplayer-comment-setting-title">'+m("Set danmaku color")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#fff" checked>\n                                        <span style="background: #fff; border: 1px solid rgba(0,0,0,.1);"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#e54256">\n                                        <span style="background: #e54256"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#ffe133">\n                                        <span style="background: #ffe133"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#64DD17">\n                                        <span style="background: #64DD17"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#39ccff">\n                                        <span style="background: #39ccff"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#D500F9">\n                                        <span style="background: #D500F9"></span>\n                                    </label>\n                                </div>\n                                <div class="dplayer-comment-setting-type">\n                                    <div class="dplayer-comment-setting-title">'+m("Set danmaku type")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="top">\n                                        <span>'+m("Top")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="right" checked>\n                                        <span>'+m("Rolling")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="bottom">\n                                        <span>'+m("Bottom")+'</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class="dplayer-comment-input" type="text" placeholder="'+m("Input danmaku, hit Enter")+'" maxlength="30">\n                            <button class="dplayer-icon dplayer-send-icon">')+this.getSVG("send")+'             </button>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting">\n                        <button class="dplayer-icon dplayer-setting-icon">'+this.getSVG("setting")+'         </button>\n                        <div class="dplayer-setting-box"></div>\n                    </div>\n                    <button class="dplayer-icon dplayer-full-icon">'+this.getSVG("full")+('     </button>\n                </div>\n                <div class="dplayer-bar-wrap">\n                    <div class="dplayer-bar">\n                        <div class="dplayer-loaded" style="width: 0;"></div>\n                        <div class="dplayer-played" style="width: 0; background: '+this.option.theme+'">\n                            <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="dplayer-menu">\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="http://diygod.me/">'+m("About author")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer/issues">'+m("DPlayer feedback")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer">'+m("About DPlayer")+"</a></span></div>\n            </div>\n        ");var u=this.element.offsetWidth<=500;if(u){var g=document.createElement("style");g.innerHTML=".dplayer .dplayer-danmaku{font-size:18px}",document.head.appendChild(g)}if(this.video=this.element.getElementsByClassName("dplayer-video")[0],this.option.video.url.match(/(m3u8)$/i)&&Hls.isSupported()&&!function(){a.element.getElementsByClassName("dplayer-time")[0].style.display="none";var e=new Hls;e.attachMedia(a.video),e.on(Hls.Events.MEDIA_ATTACHED,function(){e.loadSource(a.option.video.url),e.on(Hls.Events.MANIFEST_PARSED,function(e,t){console.log("manifest loaded, found "+t.levels.length+" quality level")})})}(),this.option.video.url.match(/(flv)$/i)&&flvjs.isSupported()){var f=flvjs.createPlayer({type:"flv",url:this.option.video.url});f.attachMediaElement(this.video),f.load()}this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){a.bezel.classList.remove("dplayer-bezel-transition")}),this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!0,this.playButton.addEventListener("click",function(){a.toggle()});var v=this.element.getElementsByClassName("dplayer-video-wrap")[0],b=this.element.getElementsByClassName("dplayer-controller-mask")[0];if(i){var h=function(){a.element.classList.contains("dplayer-hide-controller")?a.element.classList.remove("dplayer-hide-controller"):a.element.classList.add("dplayer-hide-controller")};v.addEventListener("click",h),b.addEventListener("click",h)}else v.addEventListener("click",function(){a.toggle()}),b.addEventListener("click",function(){a.toggle()});var x=function(e){var t=function(e){return e<10?"0"+e:""+e},a=parseInt(e/60),n=parseInt(e-60*a);return t(a)+":"+t(n)},k=function(e){var t=e.offsetLeft,n=e.offsetParent,r=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==a.element;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return r=document.body.scrollLeft+document.documentElement.scrollLeft,t-r},w={};w.playedBar=this.element.getElementsByClassName("dplayer-played")[0],w.loadedBar=this.element.getElementsByClassName("dplayer-loaded")[0];var Y=this.element.getElementsByClassName("dplayer-bar-wrap")[0],E=void 0;this.option.danmaku&&this.video.addEventListener("seeking",function(){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime)return void(a.danIndex=e);a.danIndex=a.dan.length}});var L=0,z=0,B=!1,C=void 0;this.setTime=function(){a.playedTime=setInterval(function(){z=a.video.currentTime,!B&&z<L+.01&&!a.video.paused&&(a.element.classList.add("dplayer-loading"),B=!0),B&&z>L+.01&&!a.video.paused&&(a.element.classList.remove("dplayer-loading"),B=!1),L=z,a.updateBar("played",a.video.currentTime/a.video.duration,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=x(a.video.currentTime),a.trigger("playing")},100),a.option.danmaku&&(C=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)re(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0))},this.clearTime=function(){clearInterval(a.playedTime),a.option.danmaku&&clearInterval(C)},Y.addEventListener("click",function(e){var t=e||window.event;E=Y.clientWidth;var n=(t.clientX-k(Y))/E;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.video.currentTime=parseFloat(w.playedBar.style.width)/100*a.video.duration});var T=function(e){var t=e||window.event,n=(t.clientX-k(Y))/E;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=x(n*a.video.duration)},N=function ke(){document.removeEventListener("mouseup",ke),document.removeEventListener("mousemove",T),a.video.currentTime=parseFloat(w.playedBar.style.width)/100*a.video.duration,a.setTime()};Y.addEventListener("mousedown",function(){E=Y.clientWidth,a.clearTime(),document.addEventListener("mousemove",T),document.addEventListener("mouseup",N)}),w.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var S=this.element.getElementsByClassName("dplayer-volume")[0],M=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],q=this.element.getElementsByClassName("dplayer-volume-bar")[0],A=this.element.getElementsByClassName("dplayer-volume-icon")[0],I=35;this.switchVolumeIcon=function(){var e=a.element.getElementsByClassName("dplayer-volume-icon")[0];a.video.volume>=.8?e.innerHTML=a.getSVG("volume-up"):a.video.volume>0?e.innerHTML=a.getSVG("volume-down"):e.innerHTML=a.getSVG("volume-off")};var D=function(e){var t=e||window.event,n=(t.clientX-k(q)-5.5)/I;a.volume(n)},R=function we(){document.removeEventListener("mouseup",we),document.removeEventListener("mousemove",D),S.classList.remove("dplayer-volume-active")};M.addEventListener("click",function(e){var t=e||window.event,n=(t.clientX-k(q)-5.5)/I;a.volume(n)}),M.addEventListener("mousedown",function(){document.addEventListener("mousemove",D),document.addEventListener("mouseup",R),S.classList.add("dplayer-volume-active")}),A.addEventListener("click",function(){a.video.muted?(a.video.muted=!1,a.switchVolumeIcon(),a.updateBar("volume",a.video.volume,"width")):(a.video.muted=!0,A.innerHTML=a.getSVG("volume-off"),a.updateBar("volume",0,"width"))});var H=0;if(!i){var F=function(){a.element.classList.remove("dplayer-hide-controller"),clearTimeout(H),H=setTimeout(function(){a.video.played.length&&(a.element.classList.add("dplayer-hide-controller"),j(),fe())},2e3)};this.element.addEventListener("mousemove",F),this.element.addEventListener("click",F)}var X=localStorage.getItem("DPlayer-opacity")||.7,P={original:'\n                    <div class="dplayer-setting-item dplayer-setting-speed">\n                        <span class="dplayer-label">'+m("Speed")+'</span>\n                        <div class="dplayer-toggle">'+this.getSVG("right")+('     </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-loop">\n                        <span class="dplayer-label">'+m("Loop")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle">\n                            <label for="dplayer-toggle"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-showdan">\n                        <span class="dplayer-label">'+m("Danmaku")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-showdan-setting-input" type="checkbox" name="dplayer-toggle-dan">\n                            <label for="dplayer-toggle-dan"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-danmaku">\n                        <span class="dplayer-label">'+m("Opacity for danmaku")+'</span>\n                        <div class="dplayer-danmaku-bar-wrap">\n                            <div class="dplayer-danmaku-bar">\n                                <div class="dplayer-danmaku-bar-inner" style="width: '+100*X+'%">\n                                    <span class="dplayer-thumb"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>'),speed:'\n                    <div class="dplayer-setting-speed-item" data-speed="0.5">\n                        <span class="dplayer-label">0.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="0.75">\n                        <span class="dplayer-label">0.75</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1">\n                        <span class="dplayer-label">'+m("Normal")+'</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.25">\n                        <span class="dplayer-label">1.25</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.5">\n                        <span class="dplayer-label">1.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="2">\n                        <span class="dplayer-label">2</span>\n                    </div>'},O=this.element.getElementsByClassName("dplayer-setting-icon")[0],V=this.element.getElementsByClassName("dplayer-setting-box")[0],U=this.element.getElementsByClassName("dplayer-mask")[0];V.innerHTML=P.original;var j=function(){V.classList.contains("dplayer-setting-box-open")&&(V.classList.remove("dplayer-setting-box-open"),U.classList.remove("dplayer-mask-show"),setTimeout(function(){V.classList.remove("dplayer-setting-box-narrow"),V.innerHTML=P.original,$()},300))},G=function(){V.classList.add("dplayer-setting-box-open"),U.classList.add("dplayer-mask-show")};U.addEventListener("click",function(){j()}),O.addEventListener("click",function(){G()});var J=this.option.loop,W=this.element.getElementsByClassName("dplayer-danmaku")[0],Q=!0,$=function(){var e=a.element.getElementsByClassName("dplayer-setting-loop")[0],t=e.getElementsByClassName("dplayer-toggle-setting-input")[0];t.checked=J,e.addEventListener("click",function(){t.checked=!t.checked,t.checked?(J=!0,a.video.loop=J):(J=!1,a.video.loop=J),j()});var n=a.element.getElementsByClassName("dplayer-setting-showdan")[0],r=n.getElementsByClassName("dplayer-showdan-setting-input")[0];r.checked=Q,n.addEventListener("click",function(){if(r.checked=!r.checked,r.checked){if(Q=!0,a.option.danmaku){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime){a.danIndex=e;break}a.danIndex=a.dan.length}C=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)re(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0)}}else Q=!1,a.option.danmaku&&(clearInterval(C),W.innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0]);j()});var l=a.element.getElementsByClassName("dplayer-setting-speed")[0];
     2l.addEventListener("click",function(){V.classList.add("dplayer-setting-box-narrow"),V.innerHTML=P.speed;for(var e=V.getElementsByClassName("dplayer-setting-speed-item"),t=function(t){e[t].addEventListener("click",function(){a.video.playbackRate=e[t].dataset.speed,j()})},n=0;n<e.length;n++)t(n)}),a.option.danmaku&&!function(){w.danmakuBar=a.element.getElementsByClassName("dplayer-danmaku-bar-inner")[0];var e=a.element.getElementsByClassName("dplayer-danmaku-bar-wrap")[0],t=a.element.getElementsByClassName("dplayer-danmaku-bar")[0],n=a.element.getElementsByClassName("dplayer-setting-danmaku")[0],r=130;a.updateBar("danmaku",X,"width");var l=function(e){var n=e||window.event,l=(n.clientX-k(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;X=l,localStorage.setItem("DPlayer-opacity",X)},o=function i(){document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",l),n.classList.remove("dplayer-setting-danmaku-active")};e.addEventListener("click",function(e){var n=e||window.event,l=(n.clientX-k(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;X=l,localStorage.setItem("DPlayer-opacity",X)}),e.addEventListener("mousedown",function(){document.addEventListener("mousemove",l),document.addEventListener("mouseup",o),n.classList.add("dplayer-setting-danmaku-active")})}()};$(),this.video.addEventListener("durationchange",function(){1!==a.video.duration&&(a.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=x(a.video.duration))}),this.video.addEventListener("progress",function(){var e=a.video.buffered.length?a.video.buffered.end(a.video.buffered.length-1)/a.video.duration:0;a.updateBar("loaded",e,"width")}),this.video.addEventListener("error",function(){a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="Error happens ╥﹏╥",a.trigger("pause")}),this.video.addEventListener("canplay",function(){a.trigger("canplay")}),this.ended=!1,this.video.addEventListener("ended",function(){a.updateBar("played",1,"width"),J||(a.ended=!0,a.pause(),a.trigger("ended"))}),this.video.volume=parseInt(this.element.getElementsByClassName("dplayer-volume-bar-inner")[0].style.width)/100,this.video.loop=J,1!==this.video.duration&&(this.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=this.video.duration?x(this.video.duration):"00:00");var _=u?24:30,Z=void 0,K=void 0,ee=void 0;this.danTunnel={right:{},top:{},bottom:{}};var te=function(e){return W.getBoundingClientRect().right-e.getBoundingClientRect().right},ae=function(e){return(Z+e)/5},ne=function(e,t,n){for(var l=Z/ae(n),o=function(n){var r=a.danTunnel[t][n+""];if(!r||!r.length)return a.danTunnel[t][n+""]=[e],e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%ee};for(var o=0;o<r.length;o++){var i=te(r[o])-10;if(i<=Z-l*ae(r[o].offsetWidth)||i<=0)break;if(o===r.length-1)return a.danTunnel[t][n+""].push(e),e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%ee}}},i=0;;i++){var s=o(i);if("object"===("undefined"==typeof s?"undefined":r(s)))return s.v}};this.itemDemo=this.element.getElementsByClassName("dplayer-danmaku-item")[0];var re=function(e,t,n){Z=W.offsetWidth,K=W.offsetHeight,ee=parseInt(K/_);var r=document.createElement("div");r.classList.add("dplayer-danmaku-item"),r.classList.add("dplayer-danmaku-"+n),r.innerHTML=e,r.style.opacity=X,r.style.color=t,r.addEventListener("animationend",function(){W.removeChild(r)}),a.itemDemo.innerHTML=e;var l=a.itemDemo.offsetWidth;switch(n){case"right":r.style.top=_*ne(r,n,l)+"px",r.style.width=l+1+"px",r.style.transform="translateX(-"+Z+"px)";break;case"top":r.style.top=_*ne(r,n)+"px";break;case"bottom":r.style.bottom=_*ne(r,n)+"px";break;default:console.error("Can't handled danmaku type: "+n)}return W.appendChild(r),r.classList.add("dplayer-danmaku-move"),r};this.option.danmaku?!function(){a.danIndex=0;var e=new XMLHttpRequest;e.onreadystatechange=function(){4===e.readyState&&(e.status>=200&&e.status<300||304===e.status?!function(){var t=JSON.parse(e.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(e.onreadystatechange=function(){if(4===e.readyState)if(e.status>=200&&e.status<300||304===e.status){var n=JSON.parse(e.responseText);1!==n.code?alert(n.msg):(a.dan=t.danmaku.concat(n.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}else console.log("Request was unsuccessful: "+e.status)},e.open("get",a.option.danmaku.addition[0],!0),e.send(null)):(a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}():console.log("Request was unsuccessful: "+e.status))};var t=void 0;t=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,e.open("get",t,!0),e.send(null)}():this.option.autoplay&&!i?this.play():i&&this.pause();var le=this.element.getElementsByClassName("dplayer-comment-input")[0],oe=this.element.getElementsByClassName("dplayer-comment-icon")[0],ie=this.element.getElementsByClassName("dplayer-comment-box")[0],se=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],de=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],pe=this.element.getElementsByClassName("dplayer-send-icon")[0],me=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2f;")},ce=function(){if(le.blur(),!le.value.replace(/^\s+|\s+$/g,""))return void alert(m("Please input danmaku!"));var e={token:a.option.danmaku.token,player:a.option.danmaku.id,author:"DIYgod",time:a.video.currentTime,text:le.value,color:a.element.querySelector(".dplayer-comment-setting-color input:checked").value,type:a.element.querySelector(".dplayer-comment-setting-type input:checked").value},t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState)if(t.status>=200&&t.status<300||304===t.status){var e=JSON.parse(t.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(t.responseText))}else console.log("Request was unsuccessful: "+t.status)},t.open("post",a.option.danmaku.api,!0),t.send(JSON.stringify(e)),le.value="",fe(),a.dan.splice(a.danIndex,0,e),a.danIndex++;var n=re(me(e.text),e.color,e.type);n.style.border="2px solid "+a.option.theme},ye=function(){de.classList.contains("dplayer-comment-setting-open")&&de.classList.remove("dplayer-comment-setting-open")},ue=function(){de.classList.contains("dplayer-comment-setting-open")?de.classList.remove("dplayer-comment-setting-open"):de.classList.add("dplayer-comment-setting-open")},ge=0,fe=function(){ie.classList.contains("dplayer-comment-box-open")&&(ie.classList.remove("dplayer-comment-box-open"),U.classList.remove("dplayer-mask-show"),clearInterval(ge),a.element.classList.remove("dplayer-show-controller"),ye())},ve=function(){ie.classList.add("dplayer-comment-box-open"),U.classList.add("dplayer-mask-show"),ge=setInterval(function(){clearTimeout(H)},1e3),a.element.classList.add("dplayer-show-controller")};U.addEventListener("click",function(){fe()}),oe.addEventListener("click",function(){ve(),setTimeout(function(){le.focus()},300)}),se.addEventListener("click",function(){ue()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var e=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked+span');e&&(se.getElementsByClassName("dplayer-fill")[0].style.fill=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked').value)}),le.addEventListener("click",function(){ye()}),le.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&ce()}),pe.addEventListener("click",ce);var be=function(){Z=W.offsetWidth;for(var e=a.element.getElementsByClassName("dplayer-danmaku-item"),t=0;t<e.length;t++)e[t].style.transform="translateX(-"+Z+"px)"};this.element.addEventListener("fullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.addEventListener("mozfullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.addEventListener("webkitfullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.getElementsByClassName("dplayer-full-icon")[0].addEventListener("click",function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():a.element.requestFullscreen?a.element.requestFullscreen():a.element.mozRequestFullScreen?a.element.mozRequestFullScreen():a.element.webkitRequestFullscreen&&a.element.webkitRequestFullscreen(),be()});var he=function(e){var t=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==n&&"true"!==n){var r=e||window.event,l=void 0;switch(r.keyCode){case 32:r.preventDefault(),a.toggle();break;case 37:r.preventDefault(),a.video.currentTime=a.video.currentTime-5;break;case 39:r.preventDefault(),a.video.currentTime=a.video.currentTime+5;break;case 38:r.preventDefault(),l=a.video.volume+.1,a.volume(l);break;case 40:r.preventDefault(),l=a.video.volume-.1,a.volume(l)}}};this.option.hotkey&&document.addEventListener("keydown",he);var xe=this.element.getElementsByClassName("dplayer-menu")[0];this.element.addEventListener("contextmenu",function(e){var t=e||window.event;t.preventDefault(),xe.style.left=t.clientX-a.element.getBoundingClientRect().left+"px",xe.style.top=t.clientY-a.element.getBoundingClientRect().top+"px",xe.classList.add("dplayer-menu-show"),U.classList.add("dplayer-mask-show"),U.addEventListener("click",function(){U.classList.remove("dplayer-mask-show"),xe.classList.remove("dplayer-menu-show")})}),this.option.screenshot&&!function(){var e=a.element.getElementsByClassName("dplayer-camera-icon")[0];e.addEventListener("click",function(){var t=document.createElement("canvas");t.width=a.video.videoWidth,t.height=a.video.videoHeight,t.getContext("2d").drawImage(a.video,0,0,t.width,t.height),e.href=t.toDataURL(),e.download="DPlayer.png"})}(),o++}return l(e,[{key:"play",value:function(e){"[object Number]"===Object.prototype.toString.call(e)&&(this.video.currentTime=e),this.video.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.video.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.video.pause(),this.clearTime(),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"volume",value:function(e){e=e>0?e:0,e=e<1?e:1,this.updateBar("volume",e,"width"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}},{key:"switchVideo",value:function(e,t){var a=this;this.video.src=e.url,this.video.poster=e.pic?e.pic:"",this.video.currentTime=0,this.pause(),t&&!function(){a.dan=[],a.danIndex=0,a.element.getElementsByClassName("dplayer-danloading")[0].style.display="block",a.updateBar("played",0,"width"),a.updateBar("loaded",0,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="00:00",a.element.getElementsByClassName("dplayer-danmaku")[0].innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0];var e=/mobile/i.test(window.navigator.userAgent);a.option.danmaku=t;var n=new XMLHttpRequest;n.onreadystatechange=function(){4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?!function(){var t=JSON.parse(n.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(n.onreadystatechange=function(){if(4===n.readyState)if(n.status>=200&&n.status<300||304===n.status){var r=JSON.parse(n.responseText);1!==r.code?alert(r.msg):(a.danIndex=0,a.dan=t.danmaku.concat(r.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}else console.log("Request was unsuccessful: "+n.status)},n.open("get",a.option.danmaku.addition[0],!0),n.send(null)):(a.danIndex=0,a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}():console.log("Request was unsuccessful: "+n.status))};var r=void 0;r=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,n.open("get",r,!0),n.send(null)}()}}]),e}();e.exports=i},function(e,t,a){var n=a(2);"string"==typeof n&&(n=[[e.id,n,""]]);a(4)(n,{});n.locals&&(e.exports=n.locals)},function(e,t,a){t=e.exports=a(3)(),t.push([e.id,'.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:\'\';position:absolute;top:100%;left:50%;margin-left:-12px;background:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 12"><path fill="#FFF" d="M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0"/></svg>\');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}',""]);
    33},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var a=this[t];a[2]?e.push("@media "+a[2]+"{"+a[1]+"}"):e.push(a[1])}return e.join("")},e.i=function(t,a){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},r=0;r<this.length;r++){var l=this[r][0];"number"==typeof l&&(n[l]=!0)}for(r=0;r<t.length;r++){var o=t[r];"number"==typeof o[0]&&n[o[0]]||(a&&!o[2]?o[2]=a:a&&(o[2]="("+o[2]+") and ("+a+")"),e.push(o))}},e}},function(e,t,a){function n(e,t){for(var a=0;a<e.length;a++){var n=e[a],r=y[n.id];if(r){r.refs++;for(var l=0;l<r.parts.length;l++)r.parts[l](n.parts[l]);for(;l<n.parts.length;l++)r.parts.push(d(n.parts[l],t))}else{for(var o=[],l=0;l<n.parts.length;l++)o.push(d(n.parts[l],t));y[n.id]={id:n.id,refs:1,parts:o}}}}function r(e){for(var t=[],a={},n=0;n<e.length;n++){var r=e[n],l=r[0],o=r[1],i=r[2],s=r[3],d={css:o,media:i,sourceMap:s};a[l]?a[l].parts.push(d):t.push(a[l]={id:l,parts:[d]})}return t}function l(e,t){var a=f(),n=h[h.length-1];if("top"===e.insertAt)n?n.nextSibling?a.insertBefore(t,n.nextSibling):a.appendChild(t):a.insertBefore(t,a.firstChild),h.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");a.appendChild(t)}}function o(e){e.parentNode.removeChild(e);var t=h.indexOf(e);t>=0&&h.splice(t,1)}function i(e){var t=document.createElement("style");return t.type="text/css",l(e,t),t}function s(e){var t=document.createElement("link");return t.rel="stylesheet",l(e,t),t}function d(e,t){var a,n,r;if(t.singleton){var l=b++;a=v||(v=i(t)),n=p.bind(null,a,l,!1),r=p.bind(null,a,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(a=s(t),n=c.bind(null,a),r=function(){o(a),a.href&&URL.revokeObjectURL(a.href)}):(a=i(t),n=m.bind(null,a),r=function(){o(a)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}function p(e,t,a,n){var r=a?"":n.css;if(e.styleSheet)e.styleSheet.cssText=x(t,r);else{var l=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(l,o[t]):e.appendChild(l)}}function m(e,t){var a=t.css,n=t.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=a;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(a))}}function c(e,t){var a=t.css,n=t.sourceMap;n&&(a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var r=new Blob([a],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(r),l&&URL.revokeObjectURL(l)}var y={},u=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=u(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),f=u(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,b=0,h=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var a=r(e);return n(a,t),function(e){for(var l=[],o=0;o<a.length;o++){var i=a[o],s=y[i.id];s.refs--,l.push(s)}if(e){var d=r(e);n(d,t)}for(var o=0;o<l.length;o++){var s=l[o];if(0===s.refs){for(var p=0;p<s.parts.length;p++)s.parts[p]();delete y[s.id]}}}};var x=function(){var e=[];return function(t,a){return e[t]=a,e.filter(Boolean).join("\n")}}()}])});
    44//# sourceMappingURL=DPlayer.min.js.map
  • dplayer-for-wp/tags/1.1.2/js/DPlayer.min.js.map

    r1520735 r1530082  
    1 {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 36849708b33400b9c9a4","webpack:///./src/DPlayer.js","webpack:///./src/DPlayer.scss?8fa9","webpack:///./src/DPlayer.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","console","log","index","DPlayer","option","_this","svg","play","pause","volume-up","volume-down","volume-off","loop","full","setting","right","comment","comment-off","send","menu","camera","getSVG","type","isMobile","test","window","navigator","userAgent","autoplay","defaultOption","element","document","getElementsByClassName","theme","lang","language","indexOf","screenshot","hotkey","preload","defaultKey","hasOwnProperty","tranZH","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku!","Set danmaku color","Set danmaku type","Danmaku","getTran","text","updateBar","percentage","direction","bar","style","eventTypes","event","trigger","_i","danmaku","classList","add","innerHTML","video","pic","url","arrow","offsetWidth","arrowStyle","createElement","head","appendChild","match","Hls","isSupported","display","hls","attachMedia","on","Events","MEDIA_ATTACHED","loadSource","MANIFEST_PARSED","data","levels","bezel","addEventListener","remove","playButton","shouldpause","toggle","videoWrap","conMask","toggleController","contains","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","body","scrollLeft","documentElement","playedBar","loadedBar","pbar","barWidth","_i2","dan","time","currentTime","danIndex","lastPlayPos","currentPlayPos","bufferingDetected","danmakuTime","setTime","playedTime","setInterval","paused","duration","item","parseFloat","danmakuIn","color","clearTime","clearInterval","e","clientWidth","clientX","width","thumbMove","thumbUp","removeEventListener","volumeBar","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","vWidth","switchVolumeIcon","volume","volumeMove","volumeUp","muted","hideTime","hideController","clearTimeout","setTimeout","played","closeSetting","closeComment","danOpacity","localStorage","getItem","settingHTML","original","speed","settingIcon","settingBox","mask","settingEvent","openSetting","danContainer","showdan","loopEle","loopToggle","checked","showDanEle","showDanToggle","_i3","danTunnel","top","bottom","itemDemo","speedEle","speedItem","_loop","_i4","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","dWidth","danmakuMove","items","_i5","opacity","setItem","danmakuUp","_i6","buffered","end","ended","itemHeight","danWidth","danHeight","itemY","danItemRight","ele","getBoundingClientRect","danSpeed","getTunnel","tmp","_loop2","_i7","splice","v","j","danRight","push","_ret4","offsetHeight","removeChild","itemWidth","transform","error","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","alert","msg","addition","response2","concat","sort","a","b","open","apiurl","maximum","api","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","htmlEncode","str","replace","sendComment","blur","value","danmakuData","token","player","author","querySelector","stringify","border","closeCommentSetting","toggleCommentSetting","disableHide","openComment","focus","sele","fill","keyCode","resetAnimation","_i8","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","handleKeyDown","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","left","clientY","camareIcon","canvas","videoWidth","height","videoHeight","getContext","drawImage","href","toDataURL","download","toString","name","func","_this2","src","poster","content","locals","list","result","join","mediaQuery","alreadyImportedModules","addStylesToDom","styles","options","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","Error","removeStyleElement","parentNode","idx","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","setAttribute","unescape","encodeURIComponent","blob","oldSrc","memoize","fn","memo","apply","arguments","isOldIE","toLowerCase","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","Boolean"],"mappings":"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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tconsole.log(\"\\n %c DPlayer 1.1.1 %c http://dplayer.js.org \\n\\n\", \"color: #fadfa3; background: #030307; padding:5px 0;\", \"background: #fadfa3; padding:5px 0;\");\n\t\n\t__webpack_require__(1);\n\t\n\tvar index = 0;\n\t\n\tvar DPlayer = function () {\n\t    /**\n\t     * DPlayer constructor function\n\t     *\n\t     * @param {Object} option - See README\n\t     * @constructor\n\t     */\n\t\n\t    function DPlayer(option) {\n\t        var _this = this;\n\t\n\t        _classCallCheck(this, DPlayer);\n\t\n\t        var svg = {\n\t            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n\t            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n\t            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n\t            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n\t            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n\t            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n\t            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n\t            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n\t            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n\t            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n\t            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n\t            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n\t            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n\t            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n\t        };\n\t        this.getSVG = function (type) {\n\t            return \"\\n                <svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"\" + svg[type][0] + \"\\\" width=\\\"100%\\\">\\n                    <use xlink:href=\\\"#dplayer-\" + type + \"\\\"></use>\\n                    <path class=\\\"dplayer-fill\\\" d=\\\"\" + svg[type][1] + \"\\\" id=\\\"dplayer-\" + type + \"\\\"></path>\\n                </svg>\\n            \";\n\t        };\n\t\n\t        this.option = option;\n\t\n\t        var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t        // compatibility: some mobile browsers don't suppose autoplay\n\t        if (isMobile) {\n\t            this.option.autoplay = false;\n\t        }\n\t\n\t        // default options\n\t        var defaultOption = {\n\t            element: document.getElementsByClassName('dplayer')[0],\n\t            autoplay: false,\n\t            theme: '#b7daff',\n\t            loop: false,\n\t            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n\t            screenshot: false,\n\t            hotkey: true,\n\t            preload: 'auto'\n\t        };\n\t        for (var defaultKey in defaultOption) {\n\t            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n\t                this.option[defaultKey] = defaultOption[defaultKey];\n\t            }\n\t        }\n\t\n\t        var tranZH = {\n\t            'Danmaku is loading': '弹幕加载中',\n\t            'Top': '顶部',\n\t            'Bottom': '底部',\n\t            'Rolling': '滚动',\n\t            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n\t            'About author': '关于作者',\n\t            'DPlayer feedback': '播放器意见反馈',\n\t            'About DPlayer': '关于 DPlay 播放器',\n\t            'Loop': '洗脑循环',\n\t            'Speed': '速度',\n\t            'Opacity for danmaku': '弹幕透明度',\n\t            'Normal': '正常',\n\t            'Please input danmaku!': '要输入弹幕内容啊喂!',\n\t            'Set danmaku color': '设置弹幕颜色',\n\t            'Set danmaku type': '设置弹幕类型',\n\t            'Danmaku': '弹幕'\n\t        };\n\t        var getTran = function getTran(text) {\n\t            if (_this.option.lang === 'en') {\n\t                return text;\n\t            } else if (_this.option.lang === 'zh') {\n\t                return tranZH[text];\n\t            }\n\t        };\n\t\n\t        /**\n\t         * Update progress bar, including loading progress bar and play progress bar\n\t         *\n\t         * @param {String} type - Point out which bar it is, should be played loaded or volume\n\t         * @param {Number} percentage\n\t         * @param {String} direction - Point out the direction of this bar, Should be height or width\n\t         */\n\t        this.updateBar = function (type, percentage, direction) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n\t        };\n\t\n\t        // define DPlayer events\n\t        var eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n\t        this.event = {};\n\t        for (var i = 0; i < eventTypes.length; i++) {\n\t            this.event[eventTypes[i]] = [];\n\t        }\n\t        this.trigger = function (type) {\n\t            for (var _i = 0; _i < _this.event[type].length; _i++) {\n\t                _this.event[type][_i]();\n\t            }\n\t        };\n\t\n\t        this.element = this.option.element;\n\t        if (!this.option.danmaku) {\n\t            this.element.classList.add('dplayer-no-danmaku');\n\t        }\n\t\n\t        this.element.innerHTML = \"\\n            <div class=\\\"dplayer-mask\\\"></div>\\n            <div class=\\\"dplayer-video-wrap\\\">\\n                <video class=\\\"dplayer-video\\\" \" + (this.option.video.pic ? \"poster=\\\"\" + this.option.video.pic + \"\\\"\" : \"\") + \" webkit-playsinline \" + (this.option.screenshot ? \"crossorigin=\\\"anonymous\\\"\" : \"\") + \" preload=\\\"\" + this.option.preload + \"\\\" src=\\\"\" + this.option.video.url + \"\\\"></video>\\n                <div class=\\\"dplayer-danmaku\\\">\\n                    <div class=\\\"dplayer-danmaku-item dplayer-danmaku-item--demo\\\"></div>\\n                </div>\\n                <div class=\\\"dplayer-bezel\\\">\\n                    <span class=\\\"dplayer-bezel-icon\\\"></span>\\n                    \" + (this.option.danmaku ? \"<span class=\\\"dplayer-danloading\\\">\" + getTran('Danmaku is loading') + \"</span>\" : \"\") + \"\\n                    <span class=\\\"diplayer-loading-icon\\\">\\n                        <svg height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 22 22\\\" width=\\\"100%\\\">\\n                            <svg x=\\\"7\\\" y=\\\"1\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-0\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-1\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"13\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-2\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-3\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"7\\\" y=\\\"13\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-4\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-5\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"1\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-6\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-7\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                        </svg>\\n                    </span>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-controller-mask\\\"></div>\\n            <div class=\\\"dplayer-controller\\\">\\n                <div class=\\\"dplayer-icons dplayer-icons-left\\\">\\n                    <button class=\\\"dplayer-icon dplayer-play-icon\\\">\" + this.getSVG('play') + (\"     </button>\\n                    <div class=\\\"dplayer-volume\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \">\\n                        <button class=\\\"dplayer-icon dplayer-volume-icon\\\">\") + this.getSVG('volume-down') + (\"         </button>\\n                        <div class=\\\"dplayer-volume-bar-wrap\\\">\\n                            <div class=\\\"dplayer-volume-bar\\\">\\n                                <div class=\\\"dplayer-volume-bar-inner\\\" style=\\\"width: 70%; background: \" + this.option.theme + \";\\\">\\n                                    <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\\n                    <span class=\\\"dplayer-time\\\"><span class=\\\"dplayer-ptime\\\">0:00</span> / <span class=\\\"dplayer-dtime\\\">0:00</span></span>\\n                </div>\\n                <div class=\\\"dplayer-icons dplayer-icons-right\\\">\\n                    \" + (this.option.screenshot ? \"\\n                    <a href=\\\"#\\\" class=\\\"dplayer-icon dplayer-camera-icon\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \"dplayer-volume>\" + this.getSVG('camera') + \"     </a>\\n                    \" : \"\") + \"\\n                    <div class=\\\"dplayer-comment\\\">\\n                        <button class=\\\"dplayer-icon dplayer-comment-icon\\\">\") + this.getSVG('comment') + \"         </button>\\n                        <div class=\\\"dplayer-comment-box\\\">\\n                            <button class=\\\"dplayer-icon dplayer-comment-setting-icon\\\">\" + this.getSVG('menu') + (\"             </button>\\n                            <div class=\\\"dplayer-comment-setting-box\\\">\\n                                <div class=\\\"dplayer-comment-setting-color\\\">\\n                                   <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku color') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#fff\\\" checked>\\n                                        <span style=\\\"background: #fff; border: 1px solid rgba(0,0,0,.1);\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#e54256\\\">\\n                                        <span style=\\\"background: #e54256\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#ffe133\\\">\\n                                        <span style=\\\"background: #ffe133\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#64DD17\\\">\\n                                        <span style=\\\"background: #64DD17\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#39ccff\\\">\\n                                        <span style=\\\"background: #39ccff\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#D500F9\\\">\\n                                        <span style=\\\"background: #D500F9\\\"></span>\\n                                    </label>\\n                                </div>\\n                                <div class=\\\"dplayer-comment-setting-type\\\">\\n                                    <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku type') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"top\\\">\\n                                        <span>\" + getTran('Top') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"right\\\" checked>\\n                                        <span>\" + getTran('Rolling') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"bottom\\\">\\n                                        <span>\" + getTran('Bottom') + \"</span>\\n                                    </label>\\n                                </div>\\n                            </div>\\n                            <input class=\\\"dplayer-comment-input\\\" type=\\\"text\\\" placeholder=\\\"\" + getTran('Input danmaku, hit Enter') + \"\\\" maxlength=\\\"30\\\">\\n                            <button class=\\\"dplayer-icon dplayer-send-icon\\\">\") + this.getSVG('send') + \"             </button>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting\\\">\\n                        <button class=\\\"dplayer-icon dplayer-setting-icon\\\">\" + this.getSVG('setting') + \"         </button>\\n                        <div class=\\\"dplayer-setting-box\\\"></div>\\n                    </div>\\n                    <button class=\\\"dplayer-icon dplayer-full-icon\\\">\" + this.getSVG('full') + (\"     </button>\\n                </div>\\n                <div class=\\\"dplayer-bar-wrap\\\">\\n                    <div class=\\\"dplayer-bar\\\">\\n                        <div class=\\\"dplayer-loaded\\\" style=\\\"width: 0;\\\"></div>\\n                        <div class=\\\"dplayer-played\\\" style=\\\"width: 0; background: \" + this.option.theme + \"\\\">\\n                            <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                        </div>\\n                    </div>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-menu\\\">\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"http://diygod.me/\\\">\" + getTran('About author') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer/issues\\\">\" + getTran('DPlayer feedback') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer\\\">\" + getTran('About DPlayer') + \"</a></span></div>\\n            </div>\\n        \");\n\t\n\t        // arrow style\n\t        var arrow = this.element.offsetWidth <= 500;\n\t        if (arrow) {\n\t            var arrowStyle = document.createElement('style');\n\t            arrowStyle.innerHTML = \".dplayer .dplayer-danmaku{font-size:18px}\";\n\t            document.head.appendChild(arrowStyle);\n\t        }\n\t\n\t        // get this video object\n\t        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\t\n\t        // Support HTTP Live Streaming\n\t        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n\t            (function () {\n\t                _this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n\t                var hls = new Hls();\n\t                hls.attachMedia(_this.video);\n\t                hls.on(Hls.Events.MEDIA_ATTACHED, function () {\n\t                    hls.loadSource(_this.option.video.url);\n\t                    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n\t                        console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n\t                    });\n\t                });\n\t            })();\n\t        }\n\t\n\t        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n\t        this.bezel.addEventListener('animationend', function () {\n\t            _this.bezel.classList.remove('dplayer-bezel-transition');\n\t        });\n\t\n\t        // play and pause button\n\t        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n\t        this.shouldpause = true;\n\t        this.playButton.addEventListener('click', function () {\n\t            _this.toggle();\n\t        });\n\t\n\t        var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n\t        var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n\t        if (!isMobile) {\n\t            videoWrap.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t            conMask.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t        } else {\n\t            var toggleController = function toggleController() {\n\t                if (_this.element.classList.contains('dplayer-hide-controller')) {\n\t                    _this.element.classList.remove('dplayer-hide-controller');\n\t                } else {\n\t                    _this.element.classList.add('dplayer-hide-controller');\n\t                }\n\t            };\n\t            videoWrap.addEventListener('click', toggleController);\n\t            conMask.addEventListener('click', toggleController);\n\t        }\n\t\n\t        /**\n\t         * Parse second to 00:00 format\n\t         *\n\t         * @param {Number} second\n\t         * @return {String} 00:00 format\n\t         */\n\t        var secondToTime = function secondToTime(second) {\n\t            var add0 = function add0(num) {\n\t                return num < 10 ? '0' + num : '' + num;\n\t            };\n\t            var min = parseInt(second / 60);\n\t            var sec = parseInt(second - min * 60);\n\t            return add0(min) + ':' + add0(sec);\n\t        };\n\t\n\t        /**\n\t         * control play progress\n\t         */\n\t        // get element's view position\n\t        var getElementViewLeft = function getElementViewLeft(element) {\n\t            var actualLeft = element.offsetLeft;\n\t            var current = element.offsetParent;\n\t            var elementScrollLeft = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n\t            return actualLeft - elementScrollLeft;\n\t        };\n\t\n\t        var getElementViewTop = function getElementViewTop(element) {\n\t            var actualTop = element.offsetTop;\n\t            var current = element.offsetParent;\n\t            var elementScrollTop = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n\t            return actualTop - elementScrollTop;\n\t        };\n\t\n\t        var bar = {};\n\t        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n\t        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n\t        var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n\t        var barWidth = void 0;\n\t\n\t        if (this.option.danmaku) {\n\t            this.video.addEventListener('seeking', function () {\n\t                for (var _i2 = 0; _i2 < _this.dan.length; _i2++) {\n\t                    if (_this.dan[_i2].time >= _this.video.currentTime) {\n\t                        _this.danIndex = _i2;\n\t                        return;\n\t                    }\n\t                    _this.danIndex = _this.dan.length;\n\t                }\n\t            });\n\t        }\n\t\n\t        var lastPlayPos = 0;\n\t        var currentPlayPos = 0;\n\t        var bufferingDetected = false;\n\t        var danmakuTime = void 0;\n\t        this.setTime = function () {\n\t            _this.playedTime = setInterval(function () {\n\t                // whether the video is buffering\n\t                currentPlayPos = _this.video.currentTime;\n\t                if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.add('dplayer-loading');\n\t                    bufferingDetected = true;\n\t                }\n\t                if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.remove('dplayer-loading');\n\t                    bufferingDetected = false;\n\t                }\n\t                lastPlayPos = currentPlayPos;\n\t\n\t                _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n\t                _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(_this.video.currentTime);\n\t                _this.trigger('playing');\n\t            }, 100);\n\t            if (_this.option.danmaku) {\n\t                danmakuTime = setInterval(function () {\n\t                    var item = _this.dan[_this.danIndex];\n\t                    while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                        danmakuIn(item.text, item.color, item.type);\n\t                        item = _this.dan[++_this.danIndex];\n\t                    }\n\t                }, 0);\n\t            }\n\t        };\n\t        this.clearTime = function () {\n\t            clearInterval(_this.playedTime);\n\t            if (_this.option.danmaku) {\n\t                clearInterval(danmakuTime);\n\t            }\n\t        };\n\t\n\t        pbar.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            barWidth = pbar.clientWidth;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t        });\n\t\n\t        var thumbMove = function thumbMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * _this.video.duration);\n\t        };\n\t\n\t        var thumbUp = function thumbUp() {\n\t            document.removeEventListener('mouseup', thumbUp);\n\t            document.removeEventListener('mousemove', thumbMove);\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t            _this.setTime();\n\t        };\n\t\n\t        pbar.addEventListener('mousedown', function () {\n\t            barWidth = pbar.clientWidth;\n\t            _this.clearTime();\n\t            document.addEventListener('mousemove', thumbMove);\n\t            document.addEventListener('mouseup', thumbUp);\n\t        });\n\t\n\t        /**\n\t         * control volume\n\t         */\n\t        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n\t        var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n\t        var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n\t        var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n\t        var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t        var vWidth = 35;\n\t\n\t        this.switchVolumeIcon = function () {\n\t            var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t            if (_this.video.volume >= 0.8) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-up');\n\t            } else if (_this.video.volume > 0) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-down');\n\t            } else {\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t            }\n\t        };\n\t        var volumeMove = function volumeMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        };\n\t        var volumeUp = function volumeUp() {\n\t            document.removeEventListener('mouseup', volumeUp);\n\t            document.removeEventListener('mousemove', volumeMove);\n\t            volumeEle.classList.remove('dplayer-volume-active');\n\t        };\n\t\n\t        volumeBarWrapWrap.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        });\n\t        volumeBarWrapWrap.addEventListener('mousedown', function () {\n\t            document.addEventListener('mousemove', volumeMove);\n\t            document.addEventListener('mouseup', volumeUp);\n\t            volumeEle.classList.add('dplayer-volume-active');\n\t        });\n\t        volumeicon.addEventListener('click', function () {\n\t            if (_this.video.muted) {\n\t                _this.video.muted = false;\n\t                _this.switchVolumeIcon();\n\t                _this.updateBar('volume', _this.video.volume, 'width');\n\t            } else {\n\t                _this.video.muted = true;\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t                _this.updateBar('volume', 0, 'width');\n\t            }\n\t        });\n\t\n\t        /**\n\t         * auto hide controller\n\t         */\n\t        var hideTime = 0;\n\t        if (!isMobile) {\n\t            var hideController = function hideController() {\n\t                _this.element.classList.remove('dplayer-hide-controller');\n\t                clearTimeout(hideTime);\n\t                hideTime = setTimeout(function () {\n\t                    if (_this.video.played.length) {\n\t                        _this.element.classList.add('dplayer-hide-controller');\n\t                        closeSetting();\n\t                        closeComment();\n\t                    }\n\t                }, 2000);\n\t            };\n\t            this.element.addEventListener('mousemove', hideController);\n\t            this.element.addEventListener('click', hideController);\n\t        }\n\t\n\t        /***\n\t         * setting\n\t         */\n\t        var danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n\t        var settingHTML = {\n\t            'original': \"\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-speed\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Speed') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\" + this.getSVG('right') + (\"     </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-loop\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Loop') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-toggle-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle\\\">\\n                            <label for=\\\"dplayer-toggle\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-showdan\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Danmaku') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-showdan-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle-dan\\\">\\n                            <label for=\\\"dplayer-toggle-dan\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-danmaku\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Opacity for danmaku') + \"</span>\\n                        <div class=\\\"dplayer-danmaku-bar-wrap\\\">\\n                            <div class=\\\"dplayer-danmaku-bar\\\">\\n                                <div class=\\\"dplayer-danmaku-bar-inner\\\" style=\\\"width: \" + danOpacity * 100 + \"%\\\">\\n                                    <span class=\\\"dplayer-thumb\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\"),\n\t            'speed': \"\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.5\\\">\\n                        <span class=\\\"dplayer-label\\\">0.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.75\\\">\\n                        <span class=\\\"dplayer-label\\\">0.75</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Normal') + \"</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.25\\\">\\n                        <span class=\\\"dplayer-label\\\">1.25</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.5\\\">\\n                        <span class=\\\"dplayer-label\\\">1.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"2\\\">\\n                        <span class=\\\"dplayer-label\\\">2</span>\\n                    </div>\"\n\t        };\n\t\n\t        // toggle setting box\n\t        var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n\t        var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n\t        var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n\t        settingBox.innerHTML = settingHTML.original;\n\t\n\t        var closeSetting = function closeSetting() {\n\t            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n\t                settingBox.classList.remove('dplayer-setting-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                setTimeout(function () {\n\t                    settingBox.classList.remove('dplayer-setting-box-narrow');\n\t                    settingBox.innerHTML = settingHTML.original;\n\t                    settingEvent();\n\t                }, 300);\n\t            }\n\t        };\n\t        var openSetting = function openSetting() {\n\t            settingBox.classList.add('dplayer-setting-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeSetting();\n\t        });\n\t        settingIcon.addEventListener('click', function () {\n\t            openSetting();\n\t        });\n\t\n\t        var loop = this.option.loop;\n\t        var danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n\t        var showdan = true;\n\t        var settingEvent = function settingEvent() {\n\t            // loop control\n\t            var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n\t            var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\t\n\t            loopToggle.checked = loop;\n\t\n\t            loopEle.addEventListener('click', function () {\n\t                loopToggle.checked = !loopToggle.checked;\n\t                if (loopToggle.checked) {\n\t                    loop = true;\n\t                    _this.video.loop = loop;\n\t                } else {\n\t                    loop = false;\n\t                    _this.video.loop = loop;\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // show danmaku control\n\t            var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n\t            var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\t\n\t            showDanToggle.checked = showdan;\n\t\n\t            showDanEle.addEventListener('click', function () {\n\t                showDanToggle.checked = !showDanToggle.checked;\n\t                if (showDanToggle.checked) {\n\t                    showdan = true;\n\t                    if (_this.option.danmaku) {\n\t                        for (var _i3 = 0; _i3 < _this.dan.length; _i3++) {\n\t                            if (_this.dan[_i3].time >= _this.video.currentTime) {\n\t                                _this.danIndex = _i3;\n\t                                break;\n\t                            }\n\t                            _this.danIndex = _this.dan.length;\n\t                        }\n\t                        danmakuTime = setInterval(function () {\n\t                            var item = _this.dan[_this.danIndex];\n\t                            while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                                danmakuIn(item.text, item.color, item.type);\n\t                                item = _this.dan[++_this.danIndex];\n\t                            }\n\t                        }, 0);\n\t                    }\n\t                } else {\n\t                    showdan = false;\n\t                    if (_this.option.danmaku) {\n\t                        clearInterval(danmakuTime);\n\t                        danContainer.innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                        _this.danTunnel = {\n\t                            right: {},\n\t                            top: {},\n\t                            bottom: {}\n\t                        };\n\t                        _this.itemDemo = _this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t                    }\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // speed control\n\t            var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n\t            speedEle.addEventListener('click', function () {\n\t                settingBox.classList.add('dplayer-setting-box-narrow');\n\t                settingBox.innerHTML = settingHTML.speed;\n\t\n\t                var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n\t\n\t                var _loop = function _loop(_i4) {\n\t                    speedItem[_i4].addEventListener('click', function () {\n\t                        _this.video.playbackRate = speedItem[_i4].dataset.speed;\n\t                        closeSetting();\n\t                    });\n\t                };\n\t\n\t                for (var _i4 = 0; _i4 < speedItem.length; _i4++) {\n\t                    _loop(_i4);\n\t                }\n\t            });\n\t\n\t            if (_this.option.danmaku) {\n\t                (function () {\n\t                    // danmaku opacity\n\t                    bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n\t                    var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n\t                    var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n\t                    var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n\t                    var dWidth = 130;\n\t                    _this.updateBar('danmaku', danOpacity, 'width');\n\t\n\t                    var danmakuMove = function danmakuMove(event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i5 = 0; _i5 < items.length; _i5++) {\n\t                            items[_i5].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    };\n\t                    var danmakuUp = function danmakuUp() {\n\t                        document.removeEventListener('mouseup', danmakuUp);\n\t                        document.removeEventListener('mousemove', danmakuMove);\n\t                        danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n\t                    };\n\t\n\t                    danmakuBarWrapWrap.addEventListener('click', function (event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i6 = 0; _i6 < items.length; _i6++) {\n\t                            items[_i6].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    });\n\t                    danmakuBarWrapWrap.addEventListener('mousedown', function () {\n\t                        document.addEventListener('mousemove', danmakuMove);\n\t                        document.addEventListener('mouseup', danmakuUp);\n\t                        danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n\t                    });\n\t                })();\n\t            }\n\t        };\n\t        settingEvent();\n\t\n\t        /**\n\t         * video events\n\t         */\n\t        // show video time: the metadata has loaded or changed\n\t        this.video.addEventListener('durationchange', function () {\n\t            if (_this.video.duration !== 1) {\n\t                // compatibility: Android browsers will output 1 at first\n\t                _this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(_this.video.duration);\n\t            }\n\t        });\n\t\n\t        // show video loaded bar: to inform interested parties of progress downloading the media\n\t        this.video.addEventListener('progress', function () {\n\t            var percentage = _this.video.buffered.length ? _this.video.buffered.end(_this.video.buffered.length - 1) / _this.video.duration : 0;\n\t            _this.updateBar('loaded', percentage, 'width');\n\t        });\n\t\n\t        // video download error: an error occurs\n\t        this.video.addEventListener('error', function () {\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = \"Error happens ╥﹏╥\";\n\t            _this.trigger('pause');\n\t        });\n\t\n\t        // video can play: enough data is available that the media can be played\n\t        this.video.addEventListener('canplay', function () {\n\t            _this.trigger('canplay');\n\t        });\n\t\n\t        // music end\n\t        this.ended = false;\n\t        this.video.addEventListener('ended', function () {\n\t            _this.updateBar('played', 1, 'width');\n\t            if (!loop) {\n\t                _this.ended = true;\n\t                _this.pause();\n\t                _this.trigger('ended');\n\t            }\n\t        });\n\t\n\t        // control volume\n\t        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\t\n\t        // loop\n\t        this.video.loop = loop;\n\t\n\t        // set duration time\n\t        if (this.video.duration !== 1) {\n\t            // compatibility: Android browsers will output 1 at first\n\t            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n\t        }\n\t\n\t        /**\n\t         * danmaku display\n\t         */\n\t        var itemHeight = arrow ? 24 : 30;\n\t        var danWidth = void 0;\n\t        var danHeight = void 0;\n\t        var itemY = void 0;\n\t        this.danTunnel = {\n\t            right: {},\n\t            top: {},\n\t            bottom: {}\n\t        };\n\t\n\t        var danItemRight = function danItemRight(ele) {\n\t            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n\t        };\n\t\n\t        var danSpeed = function danSpeed(width) {\n\t            return (danWidth + width) / 5;\n\t        };\n\t\n\t        var getTunnel = function getTunnel(ele, type, width) {\n\t            var tmp = danWidth / danSpeed(width);\n\t\n\t            var _loop2 = function _loop2(_i7) {\n\t                var item = _this.danTunnel[type][_i7 + ''];\n\t                if (item && item.length) {\n\t                    for (var j = 0; j < item.length; j++) {\n\t                        var danRight = danItemRight(item[j]) - 10;\n\t                        if (danRight <= danWidth - tmp * danSpeed(item[j].offsetWidth) || danRight <= 0) {\n\t                            break;\n\t                        }\n\t                        if (j === item.length - 1) {\n\t                            _this.danTunnel[type][_i7 + ''].push(ele);\n\t                            ele.addEventListener('animationend', function () {\n\t                                _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                            });\n\t                            return {\n\t                                v: _i7 % itemY\n\t                            };\n\t                        }\n\t                    }\n\t                } else {\n\t                    _this.danTunnel[type][_i7 + ''] = [ele];\n\t                    ele.addEventListener('animationend', function () {\n\t                        _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                    });\n\t                    return {\n\t                        v: _i7 % itemY\n\t                    };\n\t                }\n\t            };\n\t\n\t            for (var _i7 = 0;; _i7++) {\n\t                var _ret4 = _loop2(_i7);\n\t\n\t                if ((typeof _ret4 === \"undefined\" ? \"undefined\" : _typeof(_ret4)) === \"object\") return _ret4.v;\n\t            }\n\t        };\n\t\n\t        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t        var danmakuIn = function danmakuIn(text, color, type) {\n\t            danWidth = danContainer.offsetWidth;\n\t            danHeight = danContainer.offsetHeight;\n\t            itemY = parseInt(danHeight / itemHeight);\n\t            var item = document.createElement(\"div\");\n\t            item.classList.add(\"dplayer-danmaku-item\");\n\t            item.classList.add(\"dplayer-danmaku-\" + type);\n\t            item.innerHTML = text;\n\t            item.style.opacity = danOpacity;\n\t            item.style.color = color;\n\t            item.addEventListener('animationend', function () {\n\t                danContainer.removeChild(item);\n\t            });\n\t\n\t            // measure\n\t            _this.itemDemo.innerHTML = text;\n\t            var itemWidth = _this.itemDemo.offsetWidth;\n\t\n\t            // adjust\n\t            switch (type) {\n\t                case 'right':\n\t                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n\t                    item.style.width = itemWidth + 1 + 'px';\n\t                    item.style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t                    break;\n\t                case 'top':\n\t                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                case 'bottom':\n\t                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                default:\n\t                    console.error(\"Can't handled danmaku type: \" + type);\n\t            }\n\t\n\t            // insert\n\t            danContainer.appendChild(item);\n\t\n\t            // move\n\t            item.classList.add(\"dplayer-danmaku-move\");\n\t\n\t            return item;\n\t        };\n\t\n\t        // danmaku\n\t        if (this.option.danmaku) {\n\t            (function () {\n\t                _this.danIndex = 0;\n\t                var xhr = new XMLHttpRequest();\n\t                xhr.onreadystatechange = function () {\n\t                    if (xhr.readyState === 4) {\n\t                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                            (function () {\n\t                                var response = JSON.parse(xhr.responseText);\n\t                                if (response.code !== 1) {\n\t                                    alert(response.msg);\n\t                                } else {\n\t                                    if (_this.option.danmaku.addition) {\n\t                                        xhr.onreadystatechange = function () {\n\t                                            if (xhr.readyState === 4) {\n\t                                                if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                    var response2 = JSON.parse(xhr.responseText);\n\t                                                    if (response2.code !== 1) {\n\t                                                        alert(response2.msg);\n\t                                                    } else {\n\t                                                        _this.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                            return a.time - b.time;\n\t                                                        });\n\t                                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                        // autoplay\n\t                                                        if (_this.option.autoplay && !isMobile) {\n\t                                                            _this.play();\n\t                                                        } else if (isMobile) {\n\t                                                            _this.pause();\n\t                                                        }\n\t                                                    }\n\t                                                } else {\n\t                                                    console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                }\n\t                                            }\n\t                                        };\n\t                                        xhr.open('get', _this.option.danmaku.addition[0], true);\n\t                                        xhr.send(null);\n\t                                    } else {\n\t                                        _this.dan = response.danmaku.sort(function (a, b) {\n\t                                            return a.time - b.time;\n\t                                        });\n\t                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                        // autoplay\n\t                                        if (_this.option.autoplay && !isMobile) {\n\t                                            _this.play();\n\t                                        } else if (isMobile) {\n\t                                            _this.pause();\n\t                                        }\n\t                                    }\n\t                                }\n\t                            })();\n\t                        } else {\n\t                            console.log('Request was unsuccessful: ' + xhr.status);\n\t                        }\n\t                    }\n\t                };\n\t                var apiurl = void 0;\n\t                if (_this.option.danmaku.maximum) {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id + \"&max=\" + _this.option.danmaku.maximum;\n\t                } else {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id;\n\t                }\n\t                xhr.open('get', apiurl, true);\n\t                xhr.send(null);\n\t            })();\n\t        } else {\n\t            // autoplay\n\t            if (this.option.autoplay && !isMobile) {\n\t                this.play();\n\t            } else if (isMobile) {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * comment\n\t         */\n\t        var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n\t        var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n\t        var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n\t        var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n\t        var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n\t        var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\t\n\t        var htmlEncode = function htmlEncode(str) {\n\t            return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\").replace(/\\//g, \"&#x2f;\");\n\t        };\n\t\n\t        var sendComment = function sendComment() {\n\t            commentInput.blur();\n\t\n\t            // text can't be empty\n\t            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n\t                alert(getTran('Please input danmaku!'));\n\t                return;\n\t            }\n\t\n\t            var danmakuData = {\n\t                token: _this.option.danmaku.token,\n\t                player: _this.option.danmaku.id,\n\t                author: 'DIYgod',\n\t                time: _this.video.currentTime,\n\t                text: commentInput.value,\n\t                color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n\t                type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n\t            };\n\t            var xhr = new XMLHttpRequest();\n\t            xhr.onreadystatechange = function () {\n\t                if (xhr.readyState === 4) {\n\t                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                        var response = JSON.parse(xhr.responseText);\n\t                        if (response.code !== 1) {\n\t                            alert(response.msg);\n\t                        } else {\n\t                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n\t                        }\n\t                    } else {\n\t                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                    }\n\t                }\n\t            };\n\t            xhr.open('post', _this.option.danmaku.api, true);\n\t            xhr.send(JSON.stringify(danmakuData));\n\t\n\t            commentInput.value = '';\n\t            closeComment();\n\t            _this.dan.splice(_this.danIndex, 0, danmakuData);\n\t            _this.danIndex++;\n\t            var item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n\t            item.style.border = \"2px solid \" + _this.option.theme;\n\t        };\n\t\n\t        var closeCommentSetting = function closeCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t        var toggleCommentSetting = function toggleCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            } else {\n\t                commentSettingBox.classList.add('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t\n\t        var disableHide = 0;\n\t        var closeComment = function closeComment() {\n\t            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n\t                commentBox.classList.remove('dplayer-comment-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                clearInterval(disableHide);\n\t                _this.element.classList.remove('dplayer-show-controller');\n\t                closeCommentSetting();\n\t            }\n\t        };\n\t        var openComment = function openComment() {\n\t            commentBox.classList.add('dplayer-comment-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t            disableHide = setInterval(function () {\n\t                clearTimeout(hideTime);\n\t            }, 1000);\n\t            _this.element.classList.add('dplayer-show-controller');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeComment();\n\t        });\n\t        commentIcon.addEventListener('click', function () {\n\t            openComment();\n\t            setTimeout(function () {\n\t                commentInput.focus();\n\t            }, 300);\n\t        });\n\t        commentSettingIcon.addEventListener('click', function () {\n\t            toggleCommentSetting();\n\t        });\n\t\n\t        // comment setting box\n\t        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n\t            var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n\t            if (sele) {\n\t                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n\t            }\n\t        });\n\t\n\t        commentInput.addEventListener('click', function () {\n\t            closeCommentSetting();\n\t        });\n\t        commentInput.addEventListener('keydown', function (e) {\n\t            var event = e || window.event;\n\t            if (event.keyCode === 13) {\n\t                sendComment();\n\t            }\n\t        });\n\t\n\t        commentSendIcon.addEventListener('click', sendComment);\n\t\n\t        /**\n\t         * full screen\n\t         */\n\t        var resetAnimation = function resetAnimation() {\n\t            danWidth = danContainer.offsetWidth;\n\t            var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t            for (var _i8 = 0; _i8 < items.length; _i8++) {\n\t                items[_i8].style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t            }\n\t        };\n\t\n\t        this.element.addEventListener('fullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('mozfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('webkitfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                if (_this.element.requestFullscreen) {\n\t                    _this.element.requestFullscreen();\n\t                } else if (_this.element.mozRequestFullScreen) {\n\t                    _this.element.mozRequestFullScreen();\n\t                } else if (_this.element.webkitRequestFullscreen) {\n\t                    _this.element.webkitRequestFullscreen();\n\t                }\n\t            } else {\n\t                if (document.cancelFullScreen) {\n\t                    document.cancelFullScreen();\n\t                } else if (document.mozCancelFullScreen) {\n\t                    document.mozCancelFullScreen();\n\t                } else if (document.webkitCancelFullScreen) {\n\t                    document.webkitCancelFullScreen();\n\t                }\n\t            }\n\t            resetAnimation();\n\t        });\n\t\n\t        /**\n\t         * hot key\n\t         */\n\t        var handleKeyDown = function handleKeyDown(e) {\n\t            var tag = document.activeElement.tagName.toUpperCase();\n\t            var editable = document.activeElement.getAttribute('contenteditable');\n\t            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n\t                var event = e || window.event;\n\t                var percentage = void 0;\n\t                switch (event.keyCode) {\n\t                    case 32:\n\t                        event.preventDefault();\n\t                        _this.toggle();\n\t                        break;\n\t                    case 37:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime - 5;\n\t                        break;\n\t                    case 39:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime + 5;\n\t                        break;\n\t                    case 38:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume + 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                    case 40:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume - 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                }\n\t            }\n\t        };\n\t        if (this.option.hotkey) {\n\t            document.addEventListener('keydown', handleKeyDown);\n\t        }\n\t\n\t        /**\n\t         * right key\n\t         */\n\t        var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n\t        this.element.addEventListener('contextmenu', function (e) {\n\t            var event = e || window.event;\n\t            event.preventDefault();\n\t            menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n\t            menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n\t            menu.classList.add('dplayer-menu-show');\n\t\n\t            mask.classList.add('dplayer-mask-show');\n\t            mask.addEventListener('click', function () {\n\t                mask.classList.remove('dplayer-mask-show');\n\t                menu.classList.remove('dplayer-menu-show');\n\t            });\n\t        });\n\t\n\t        /**\n\t         * Screenshot\n\t         */\n\t        if (this.option.screenshot) {\n\t            (function () {\n\t                var camareIcon = _this.element.getElementsByClassName('dplayer-camera-icon')[0];\n\t                camareIcon.addEventListener('click', function () {\n\t                    var canvas = document.createElement(\"canvas\");\n\t                    canvas.width = _this.video.videoWidth;\n\t                    canvas.height = _this.video.videoHeight;\n\t                    canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n\t\n\t                    camareIcon.href = canvas.toDataURL();\n\t                    camareIcon.download = \"DPlayer.png\";\n\t                });\n\t            })();\n\t        }\n\t\n\t        index++;\n\t    }\n\t\n\t    /**\n\t     * Play music\n\t     */\n\t\n\t\n\t    _createClass(DPlayer, [{\n\t        key: \"play\",\n\t        value: function play(time) {\n\t            if (Object.prototype.toString.call(time) === '[object Number]') {\n\t                this.video.currentTime = time;\n\t            }\n\t            if (this.video.paused) {\n\t                this.shouldpause = false;\n\t\n\t                this.bezel.innerHTML = this.getSVG('play');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.playButton.innerHTML = this.getSVG('pause');\n\t\n\t                this.video.play();\n\t                if (this.playedTime) {\n\t                    this.clearTime();\n\t                }\n\t                this.setTime();\n\t                this.element.classList.add('dplayer-playing');\n\t                this.trigger('play');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Pause music\n\t         */\n\t\n\t    }, {\n\t        key: \"pause\",\n\t        value: function pause() {\n\t            if (!this.shouldpause || this.ended) {\n\t                this.shouldpause = true;\n\t                this.element.classList.remove('dplayer-loading');\n\t\n\t                this.bezel.innerHTML = this.getSVG('pause');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.ended = false;\n\t                this.playButton.innerHTML = this.getSVG('play');\n\t                this.video.pause();\n\t                this.clearTime();\n\t                this.element.classList.remove('dplayer-playing');\n\t                this.trigger('pause');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Set volume\n\t         */\n\t\n\t    }, {\n\t        key: \"volume\",\n\t        value: function volume(percentage) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            this.updateBar('volume', percentage, 'width');\n\t            this.video.volume = percentage;\n\t            if (this.video.muted) {\n\t                this.video.muted = false;\n\t            }\n\t            this.switchVolumeIcon();\n\t        }\n\t\n\t        /**\n\t         * Toggle between play and pause\n\t         */\n\t\n\t    }, {\n\t        key: \"toggle\",\n\t        value: function toggle() {\n\t            if (this.video.paused) {\n\t                this.play();\n\t            } else {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * attach event\n\t         */\n\t\n\t    }, {\n\t        key: \"on\",\n\t        value: function on(name, func) {\n\t            if (typeof func === 'function') {\n\t                this.event[name].push(func);\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Switch to a new video\n\t         *\n\t         * @param {Object} video - new video info\n\t         * @param {Object} danmaku - new danmaku info\n\t         */\n\t\n\t    }, {\n\t        key: \"switchVideo\",\n\t        value: function switchVideo(video, danmaku) {\n\t            var _this2 = this;\n\t\n\t            this.video.src = video.url;\n\t            this.video.poster = video.pic ? video.pic : '';\n\t            this.video.currentTime = 0;\n\t            this.pause();\n\t            if (danmaku) {\n\t                (function () {\n\t                    _this2.dan = [];\n\t                    _this2.danIndex = 0;\n\t                    _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n\t                    _this2.updateBar('played', 0, 'width');\n\t                    _this2.updateBar('loaded', 0, 'width');\n\t                    _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n\t                    _this2.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                    _this2.danTunnel = {\n\t                        right: {},\n\t                        top: {},\n\t                        bottom: {}\n\t                    };\n\t                    _this2.itemDemo = _this2.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t                    var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t                    _this2.option.danmaku = danmaku;\n\t                    var xhr = new XMLHttpRequest();\n\t                    xhr.onreadystatechange = function () {\n\t                        if (xhr.readyState === 4) {\n\t                            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                (function () {\n\t                                    var response = JSON.parse(xhr.responseText);\n\t                                    if (response.code !== 1) {\n\t                                        alert(response.msg);\n\t                                    } else {\n\t                                        if (_this2.option.danmaku.addition) {\n\t                                            xhr.onreadystatechange = function () {\n\t                                                if (xhr.readyState === 4) {\n\t                                                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                        var response2 = JSON.parse(xhr.responseText);\n\t                                                        if (response2.code !== 1) {\n\t                                                            alert(response2.msg);\n\t                                                        } else {\n\t                                                            _this2.danIndex = 0;\n\t                                                            _this2.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                                return a.time - b.time;\n\t                                                            });\n\t                                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                            // autoplay\n\t                                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                                _this2.play();\n\t                                                            } else if (isMobile) {\n\t                                                                _this2.pause();\n\t                                                            }\n\t                                                        }\n\t                                                    } else {\n\t                                                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                    }\n\t                                                }\n\t                                            };\n\t                                            xhr.open('get', _this2.option.danmaku.addition[0], true);\n\t                                            xhr.send(null);\n\t                                        } else {\n\t                                            _this2.danIndex = 0;\n\t                                            _this2.dan = response.danmaku.sort(function (a, b) {\n\t                                                return a.time - b.time;\n\t                                            });\n\t                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                            // autoplay\n\t                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                _this2.play();\n\t                                            } else if (isMobile) {\n\t                                                _this2.pause();\n\t                                            }\n\t                                        }\n\t                                    }\n\t                                })();\n\t                            } else {\n\t                                console.log('Request was unsuccessful: ' + xhr.status);\n\t                            }\n\t                        }\n\t                    };\n\t                    var apiurl = void 0;\n\t                    if (_this2.option.danmaku.maximum) {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id + \"&max=\" + _this2.option.danmaku.maximum;\n\t                    } else {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id;\n\t                    }\n\t                    xhr.open('get', apiurl, true);\n\t                    xhr.send(null);\n\t                })();\n\t            }\n\t        }\n\t    }]);\n\t\n\t    return DPlayer;\n\t}();\n\t\n\tmodule.exports = DPlayer;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a <style> tag\n\t\n\t// load the styles\n\tvar content = __webpack_require__(2);\n\tif(typeof content === 'string') content = [[module.id, content, '']];\n\t// add the styles to the DOM\n\tvar update = __webpack_require__(4)(content, {});\n\tif(content.locals) module.exports = content.locals;\n\t// Hot Module Replacement\n\tif(false) {\n\t\t// When the styles change, update the <style> tags\n\t\tif(!content.locals) {\n\t\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\t\tupdate(newContent);\n\t\t\t});\n\t\t}\n\t\t// When the module is disposed, remove the <style> tags\n\t\tmodule.hot.dispose(function() { update(); });\n\t}\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(3)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t\t// tags it will allow on a page\r\n\t\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\t\r\n\t\t// By default, add <style> tags to the bottom of <head>.\r\n\t\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\t\r\n\t\tvar styles = listToStyles(list);\r\n\t\taddStylesToDom(styles, options);\r\n\t\r\n\t\treturn function update(newList) {\r\n\t\t\tvar mayRemove = [];\r\n\t\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\t\tvar item = styles[i];\r\n\t\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\t\tdomStyle.refs--;\r\n\t\t\t\tmayRemove.push(domStyle);\r\n\t\t\t}\r\n\t\t\tif(newList) {\r\n\t\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\t\taddStylesToDom(newStyles, options);\r\n\t\t\t}\r\n\t\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tfunction addStylesToDom(styles, options) {\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tif(domStyle) {\r\n\t\t\t\tdomStyle.refs++;\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t\t}\r\n\t\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar parts = [];\r\n\t\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction listToStyles(list) {\r\n\t\tvar styles = [];\r\n\t\tvar newStyles = {};\r\n\t\tfor(var i = 0; i < list.length; i++) {\r\n\t\t\tvar item = list[i];\r\n\t\t\tvar id = item[0];\r\n\t\t\tvar css = item[1];\r\n\t\t\tvar media = item[2];\r\n\t\t\tvar sourceMap = item[3];\r\n\t\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\t\tif(!newStyles[id])\r\n\t\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\t\telse\r\n\t\t\t\tnewStyles[id].parts.push(part);\r\n\t\t}\r\n\t\treturn styles;\r\n\t}\r\n\t\r\n\tfunction insertStyleElement(options, styleElement) {\r\n\t\tvar head = getHeadElement();\r\n\t\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\t\tif (options.insertAt === \"top\") {\r\n\t\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\thead.appendChild(styleElement);\r\n\t\t\t}\r\n\t\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t\t} else if (options.insertAt === \"bottom\") {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction removeStyleElement(styleElement) {\r\n\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\t\tif(idx >= 0) {\r\n\t\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction createStyleElement(options) {\r\n\t\tvar styleElement = document.createElement(\"style\");\r\n\t\tstyleElement.type = \"text/css\";\r\n\t\tinsertStyleElement(options, styleElement);\r\n\t\treturn styleElement;\r\n\t}\r\n\t\r\n\tfunction createLinkElement(options) {\r\n\t\tvar linkElement = document.createElement(\"link\");\r\n\t\tlinkElement.rel = \"stylesheet\";\r\n\t\tinsertStyleElement(options, linkElement);\r\n\t\treturn linkElement;\r\n\t}\r\n\t\r\n\tfunction addStyle(obj, options) {\r\n\t\tvar styleElement, update, remove;\r\n\t\r\n\t\tif (options.singleton) {\r\n\t\t\tvar styleIndex = singletonCounter++;\r\n\t\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t\t} else if(obj.sourceMap &&\r\n\t\t\ttypeof URL === \"function\" &&\r\n\t\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\t\ttypeof Blob === \"function\" &&\r\n\t\t\ttypeof btoa === \"function\") {\r\n\t\t\tstyleElement = createLinkElement(options);\r\n\t\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t\tif(styleElement.href)\r\n\t\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tstyleElement = createStyleElement(options);\r\n\t\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t};\r\n\t\t}\r\n\t\r\n\t\tupdate(obj);\r\n\t\r\n\t\treturn function updateStyle(newObj) {\r\n\t\t\tif(newObj) {\r\n\t\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tupdate(obj = newObj);\r\n\t\t\t} else {\r\n\t\t\t\tremove();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tvar replaceText = (function () {\r\n\t\tvar textStore = [];\r\n\t\r\n\t\treturn function (index, replacement) {\r\n\t\t\ttextStore[index] = replacement;\r\n\t\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t\t};\r\n\t})();\r\n\t\r\n\tfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\t\tvar css = remove ? \"\" : obj.css;\r\n\t\r\n\t\tif (styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t\t} else {\r\n\t\t\tvar cssNode = document.createTextNode(css);\r\n\t\t\tvar childNodes = styleElement.childNodes;\r\n\t\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\t\tif (childNodes.length) {\r\n\t\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t\t} else {\r\n\t\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction applyToTag(styleElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar media = obj.media;\r\n\t\r\n\t\tif(media) {\r\n\t\t\tstyleElement.setAttribute(\"media\", media)\r\n\t\t}\r\n\t\r\n\t\tif(styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = css;\r\n\t\t} else {\r\n\t\t\twhile(styleElement.firstChild) {\r\n\t\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t\t}\r\n\t\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction updateLink(linkElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar sourceMap = obj.sourceMap;\r\n\t\r\n\t\tif(sourceMap) {\r\n\t\t\t// http://stackoverflow.com/a/26603875\r\n\t\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t\t}\r\n\t\r\n\t\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\t\r\n\t\tvar oldSrc = linkElement.href;\r\n\t\r\n\t\tlinkElement.href = URL.createObjectURL(blob);\r\n\t\r\n\t\tif(oldSrc)\r\n\t\t\tURL.revokeObjectURL(oldSrc);\r\n\t}\r\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** DPlayer.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 36849708b33400b9c9a4\n **/","console.log(\"\\n %c DPlayer 1.1.1 %c http://dplayer.js.org \\n\\n\",\"color: #fadfa3; background: #030307; padding:5px 0;\",\"background: #fadfa3; padding:5px 0;\");\n\nrequire('./DPlayer.scss');\n\nlet index = 0;\n\nclass DPlayer {\n    /**\n     * DPlayer constructor function\n     *\n     * @param {Object} option - See README\n     * @constructor\n     */\n    constructor(option) {\n        const svg = {\n            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n        };\n        this.getSVG = (type) => {\n            return `\n                <svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" height=\"100%\" version=\"1.1\" viewBox=\"${svg[type][0]}\" width=\"100%\">\n                    <use xlink:href=\"#dplayer-${type}\"></use>\n                    <path class=\"dplayer-fill\" d=\"${svg[type][1]}\" id=\"dplayer-${type}\"></path>\n                </svg>\n            `;\n        };\n\n        this.option = option;\n\n        const isMobile = /mobile/i.test(window.navigator.userAgent);\n        // compatibility: some mobile browsers don't suppose autoplay\n        if (isMobile) {\n            this.option.autoplay = false;\n        }\n\n        // default options\n        const defaultOption = {\n            element: document.getElementsByClassName('dplayer')[0],\n            autoplay: false,\n            theme: '#b7daff',\n            loop: false,\n            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n            screenshot: false,\n            hotkey: true,\n            preload: 'auto'\n        };\n        for (let defaultKey in defaultOption) {\n            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n                this.option[defaultKey] = defaultOption[defaultKey];\n            }\n        }\n\n        const tranZH = {\n            'Danmaku is loading': '弹幕加载中',\n            'Top': '顶部',\n            'Bottom': '底部',\n            'Rolling': '滚动',\n            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n            'About author': '关于作者',\n            'DPlayer feedback': '播放器意见反馈',\n            'About DPlayer': '关于 DPlay 播放器',\n            'Loop': '洗脑循环',\n            'Speed': '速度',\n            'Opacity for danmaku': '弹幕透明度',\n            'Normal': '正常',\n            'Please input danmaku!': '要输入弹幕内容啊喂!',\n            'Set danmaku color': '设置弹幕颜色',\n            'Set danmaku type': '设置弹幕类型',\n            'Danmaku': '弹幕'\n        };\n        const getTran = (text) => {\n            if (this.option.lang === 'en') {\n                return text;\n            }\n            else if (this.option.lang === 'zh') {\n                return tranZH[text];\n            }\n        };\n\n        /**\n         * Update progress bar, including loading progress bar and play progress bar\n         *\n         * @param {String} type - Point out which bar it is, should be played loaded or volume\n         * @param {Number} percentage\n         * @param {String} direction - Point out the direction of this bar, Should be height or width\n         */\n        this.updateBar = (type, percentage, direction) => {\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n        };\n\n        // define DPlayer events\n        const eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n        this.event = {};\n        for (let i = 0; i < eventTypes.length; i++) {\n            this.event[eventTypes[i]] = [];\n        }\n        this.trigger = (type) => {\n            for (let i = 0; i < this.event[type].length; i++) {\n                this.event[type][i]();\n            }\n        };\n\n        this.element = this.option.element;\n        if (!this.option.danmaku) {\n            this.element.classList.add('dplayer-no-danmaku');\n        }\n\n        this.element.innerHTML = `\n            <div class=\"dplayer-mask\"></div>\n            <div class=\"dplayer-video-wrap\">\n                <video class=\"dplayer-video\" ${this.option.video.pic ? `poster=\"${this.option.video.pic}\"` : ``} webkit-playsinline ${this.option.screenshot ? `crossorigin=\"anonymous\"` : ``} preload=\"${this.option.preload}\" src=\"${this.option.video.url}\"></video>\n                <div class=\"dplayer-danmaku\">\n                    <div class=\"dplayer-danmaku-item dplayer-danmaku-item--demo\"></div>\n                </div>\n                <div class=\"dplayer-bezel\">\n                    <span class=\"dplayer-bezel-icon\"></span>\n                    ${this.option.danmaku ? `<span class=\"dplayer-danloading\">${getTran('Danmaku is loading')}</span>` : ``}\n                    <span class=\"diplayer-loading-icon\">\n                        <svg height=\"100%\" version=\"1.1\" viewBox=\"0 0 22 22\" width=\"100%\">\n                            <svg x=\"7\" y=\"1\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-0\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-1\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"13\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-2\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-3\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"7\" y=\"13\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-4\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-5\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"1\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-6\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-7\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class=\"dplayer-controller-mask\"></div>\n            <div class=\"dplayer-controller\">\n                <div class=\"dplayer-icons dplayer-icons-left\">\n                    <button class=\"dplayer-icon dplayer-play-icon\">`\n            +           this.getSVG('play')\n            + `     </button>\n                    <div class=\"dplayer-volume\" ${isMobile ? 'style=\"display: none;\"' : ''}>\n                        <button class=\"dplayer-icon dplayer-volume-icon\">`\n            +               this.getSVG('volume-down')\n            + `         </button>\n                        <div class=\"dplayer-volume-bar-wrap\">\n                            <div class=\"dplayer-volume-bar\">\n                                <div class=\"dplayer-volume-bar-inner\" style=\"width: 70%; background: ${this.option.theme};\">\n                                    <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class=\"dplayer-time\"><span class=\"dplayer-ptime\">0:00</span> / <span class=\"dplayer-dtime\">0:00</span></span>\n                </div>\n                <div class=\"dplayer-icons dplayer-icons-right\">\n                    ${this.option.screenshot ? `\n                    <a href=\"#\" class=\"dplayer-icon dplayer-camera-icon\" ${isMobile ? 'style=\"display: none;\"' : ''}dplayer-volume>`\n            +           this.getSVG('camera')\n            + `     </a>\n                    ` : ``}\n                    <div class=\"dplayer-comment\">\n                        <button class=\"dplayer-icon dplayer-comment-icon\">`\n            +               this.getSVG('comment')\n            + `         </button>\n                        <div class=\"dplayer-comment-box\">\n                            <button class=\"dplayer-icon dplayer-comment-setting-icon\">`\n            +                   this.getSVG('menu')\n            + `             </button>\n                            <div class=\"dplayer-comment-setting-box\">\n                                <div class=\"dplayer-comment-setting-color\">\n                                   <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku color')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#fff\" checked>\n                                        <span style=\"background: #fff; border: 1px solid rgba(0,0,0,.1);\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#e54256\">\n                                        <span style=\"background: #e54256\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#ffe133\">\n                                        <span style=\"background: #ffe133\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#64DD17\">\n                                        <span style=\"background: #64DD17\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#39ccff\">\n                                        <span style=\"background: #39ccff\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#D500F9\">\n                                        <span style=\"background: #D500F9\"></span>\n                                    </label>\n                                </div>\n                                <div class=\"dplayer-comment-setting-type\">\n                                    <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku type')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"top\">\n                                        <span>${getTran('Top')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"right\" checked>\n                                        <span>${getTran('Rolling')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"bottom\">\n                                        <span>${getTran('Bottom')}</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class=\"dplayer-comment-input\" type=\"text\" placeholder=\"${getTran('Input danmaku, hit Enter')}\" maxlength=\"30\">\n                            <button class=\"dplayer-icon dplayer-send-icon\">`\n            +                   this.getSVG('send')\n            + `             </button>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting\">\n                        <button class=\"dplayer-icon dplayer-setting-icon\">`\n            +               this.getSVG('setting')\n            + `         </button>\n                        <div class=\"dplayer-setting-box\"></div>\n                    </div>\n                    <button class=\"dplayer-icon dplayer-full-icon\">`\n            +           this.getSVG('full')\n            + `     </button>\n                </div>\n                <div class=\"dplayer-bar-wrap\">\n                    <div class=\"dplayer-bar\">\n                        <div class=\"dplayer-loaded\" style=\"width: 0;\"></div>\n                        <div class=\"dplayer-played\" style=\"width: 0; background: ${this.option.theme}\">\n                            <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"dplayer-menu\">\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"http://diygod.me/\">${getTran('About author')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer/issues\">${getTran('DPlayer feedback')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer\">${getTran('About DPlayer')}</a></span></div>\n            </div>\n        `;\n\n        // arrow style\n        var arrow = this.element.offsetWidth <= 500;\n        if (arrow) {\n            var arrowStyle = document.createElement('style');\n            arrowStyle.innerHTML = `.dplayer .dplayer-danmaku{font-size:18px}`;\n            document.head.appendChild(arrowStyle);\n        }\n\n        // get this video object\n        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\n        // Support HTTP Live Streaming\n        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n            this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n            const hls = new Hls();\n            hls.attachMedia(this.video);\n            hls.on(Hls.Events.MEDIA_ATTACHED, () => {\n                hls.loadSource(this.option.video.url);\n                hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n                    console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n                });\n            });\n        }\n\n        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n        this.bezel.addEventListener('animationend', () => {\n            this.bezel.classList.remove('dplayer-bezel-transition');\n        });\n\n        // play and pause button\n        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n        this.shouldpause = true;\n        this.playButton.addEventListener('click', () => {\n            this.toggle();\n        });\n\n        const videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n        const conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n        if (!isMobile) {\n            videoWrap.addEventListener('click', () => {\n                this.toggle();\n            });\n            conMask.addEventListener('click', () => {\n                this.toggle();\n            });\n        }\n        else {\n            const toggleController = () => {\n                if (this.element.classList.contains('dplayer-hide-controller')) {\n                    this.element.classList.remove('dplayer-hide-controller');\n                }\n                else {\n                    this.element.classList.add('dplayer-hide-controller');\n                }\n            };\n            videoWrap.addEventListener('click', toggleController);\n            conMask.addEventListener('click', toggleController);\n        }\n\n\n        /**\n         * Parse second to 00:00 format\n         *\n         * @param {Number} second\n         * @return {String} 00:00 format\n         */\n        const secondToTime = (second) => {\n            const add0 = (num) => {\n                return num < 10 ? '0' + num : '' + num;\n            };\n            const min = parseInt(second / 60);\n            const sec = parseInt(second - min * 60);\n            return add0(min) + ':' + add0(sec);\n        };\n\n        /**\n         * control play progress\n         */\n        // get element's view position\n        const getElementViewLeft = (element) => {\n            let actualLeft = element.offsetLeft;\n            let current = element.offsetParent;\n            let elementScrollLeft;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n            return actualLeft - elementScrollLeft;\n        };\n\n        const getElementViewTop = (element) => {\n            let actualTop = element.offsetTop;\n            let current = element.offsetParent;\n            let elementScrollTop;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n            return actualTop - elementScrollTop;\n        };\n\n        let bar = {};\n        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n        const pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n        let barWidth;\n\n        if (this.option.danmaku) {\n            this.video.addEventListener('seeking', () => {\n                for (let i = 0; i < this.dan.length; i++) {\n                    if (this.dan[i].time >= this.video.currentTime) {\n                        this.danIndex = i;\n                        return;\n                    }\n                    this.danIndex = this.dan.length;\n                }\n            });\n        }\n\n        let lastPlayPos = 0;\n        let currentPlayPos = 0;\n        let bufferingDetected = false;\n        let danmakuTime;\n        this.setTime = () => {\n            this.playedTime = setInterval(() => {\n                // whether the video is buffering\n                currentPlayPos = this.video.currentTime;\n                if (!bufferingDetected\n                    && currentPlayPos < (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.add('dplayer-loading');\n                    bufferingDetected = true;\n                }\n                if (bufferingDetected\n                    && currentPlayPos > (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.remove('dplayer-loading');\n                    bufferingDetected = false;\n                }\n                lastPlayPos = currentPlayPos;\n\n                this.updateBar('played', this.video.currentTime / this.video.duration, 'width');\n                this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(this.video.currentTime);\n                this.trigger('playing');\n            }, 100);\n            if (this.option.danmaku) {\n                danmakuTime = setInterval(() => {\n                    let item = this.dan[this.danIndex];\n                    while (item && this.video.currentTime >= parseFloat(item.time)) {\n                        danmakuIn(item.text, item.color, item.type);\n                        item = this.dan[++this.danIndex];\n                    }\n                }, 0);\n            }\n        };\n        this.clearTime = () => {\n            clearInterval(this.playedTime);\n            if (this.option.danmaku) {\n                clearInterval(danmakuTime);\n            }\n        };\n\n        pbar.addEventListener('click', (event) => {\n            const e = event || window.event;\n            barWidth = pbar.clientWidth;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n        });\n\n        const thumbMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * this.video.duration);\n        };\n\n        const thumbUp = () => {\n            document.removeEventListener('mouseup', thumbUp);\n            document.removeEventListener('mousemove', thumbMove);\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n            this.setTime();\n        };\n\n        pbar.addEventListener('mousedown', () => {\n            barWidth = pbar.clientWidth;\n            this.clearTime();\n            document.addEventListener('mousemove', thumbMove);\n            document.addEventListener('mouseup', thumbUp);\n        });\n\n\n        /**\n         * control volume\n         */\n        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n        const volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n        const volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n        const volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n        const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n        const vWidth = 35;\n\n        this.switchVolumeIcon = () => {\n            const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n            if (this.video.volume >= 0.8) {\n                volumeicon.innerHTML = this.getSVG('volume-up');\n            }\n            else if (this.video.volume > 0) {\n                volumeicon.innerHTML = this.getSVG('volume-down');\n            }\n            else {\n                volumeicon.innerHTML = this.getSVG('volume-off');\n            }\n        };\n        const volumeMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        };\n        const volumeUp = () => {\n            document.removeEventListener('mouseup', volumeUp);\n            document.removeEventListener('mousemove', volumeMove);\n            volumeEle.classList.remove('dplayer-volume-active');\n        };\n\n        volumeBarWrapWrap.addEventListener('click', (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        });\n        volumeBarWrapWrap.addEventListener('mousedown', () => {\n            document.addEventListener('mousemove', volumeMove);\n            document.addEventListener('mouseup', volumeUp);\n            volumeEle.classList.add('dplayer-volume-active');\n        });\n        volumeicon.addEventListener('click', () => {\n            if (this.video.muted) {\n                this.video.muted = false;\n                this.switchVolumeIcon();\n                this.updateBar('volume', this.video.volume, 'width');\n            }\n            else {\n                this.video.muted = true;\n                volumeicon.innerHTML = this.getSVG('volume-off');\n                this.updateBar('volume', 0, 'width');\n            }\n        });\n\n\n        /**\n         * auto hide controller\n         */\n        let hideTime = 0;\n        if (!isMobile) {\n            const hideController = () => {\n                this.element.classList.remove('dplayer-hide-controller');\n                clearTimeout(hideTime);\n                hideTime = setTimeout(() => {\n                    if (this.video.played.length) {\n                        this.element.classList.add('dplayer-hide-controller');\n                        closeSetting();\n                        closeComment();\n                    }\n                }, 2000);\n            };\n            this.element.addEventListener('mousemove', hideController);\n            this.element.addEventListener('click', hideController);\n        }\n\n\n        /***\n         * setting\n         */\n        let danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n        const settingHTML = {\n            'original': `\n                    <div class=\"dplayer-setting-item dplayer-setting-speed\">\n                        <span class=\"dplayer-label\">${getTran('Speed')}</span>\n                        <div class=\"dplayer-toggle\">`\n            +           this.getSVG('right')\n            + `     </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-loop\">\n                        <span class=\"dplayer-label\">${getTran('Loop')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-toggle-setting-input\" type=\"checkbox\" name=\"dplayer-toggle\">\n                            <label for=\"dplayer-toggle\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-showdan\">\n                        <span class=\"dplayer-label\">${getTran('Danmaku')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-showdan-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-dan\">\n                            <label for=\"dplayer-toggle-dan\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danmaku\">\n                        <span class=\"dplayer-label\">${getTran('Opacity for danmaku')}</span>\n                        <div class=\"dplayer-danmaku-bar-wrap\">\n                            <div class=\"dplayer-danmaku-bar\">\n                                <div class=\"dplayer-danmaku-bar-inner\" style=\"width: ${danOpacity * 100}%\">\n                                    <span class=\"dplayer-thumb\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`,\n            'speed': `\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.5\">\n                        <span class=\"dplayer-label\">0.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.75\">\n                        <span class=\"dplayer-label\">0.75</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1\">\n                        <span class=\"dplayer-label\">${getTran('Normal')}</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.25\">\n                        <span class=\"dplayer-label\">1.25</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.5\">\n                        <span class=\"dplayer-label\">1.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"2\">\n                        <span class=\"dplayer-label\">2</span>\n                    </div>`\n        };\n\n        // toggle setting box\n        const settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n        const settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n        const mask = this.element.getElementsByClassName('dplayer-mask')[0];\n        settingBox.innerHTML = settingHTML.original;\n\n        const closeSetting = () => {\n            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n                settingBox.classList.remove('dplayer-setting-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                setTimeout(() => {\n                    settingBox.classList.remove('dplayer-setting-box-narrow');\n                    settingBox.innerHTML = settingHTML.original;\n                    settingEvent();\n                }, 300);\n            }\n        };\n        const openSetting = () => {\n            settingBox.classList.add('dplayer-setting-box-open');\n            mask.classList.add('dplayer-mask-show');\n        };\n\n        mask.addEventListener('click', () => {\n            closeSetting();\n        });\n        settingIcon.addEventListener('click', () => {\n            openSetting();\n        });\n\n        let loop = this.option.loop;\n        const danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n        let showdan = true;\n        const settingEvent = () => {\n            // loop control\n            const loopEle = this.element.getElementsByClassName('dplayer-setting-loop')[0];\n            const loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\n            loopToggle.checked = loop;\n\n            loopEle.addEventListener('click', () => {\n                loopToggle.checked = !loopToggle.checked;\n                if (loopToggle.checked) {\n                    loop = true;\n                    this.video.loop = loop;\n                }\n                else {\n                    loop = false;\n                    this.video.loop = loop;\n                }\n                closeSetting();\n            });\n\n            // show danmaku control\n            const showDanEle = this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n            const showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\n            showDanToggle.checked = showdan;\n\n            showDanEle.addEventListener('click', () => {\n                showDanToggle.checked = !showDanToggle.checked;\n                if (showDanToggle.checked) {\n                    showdan = true;\n                    if (this.option.danmaku) {\n                        for (let i = 0; i < this.dan.length; i++) {\n                            if (this.dan[i].time >= this.video.currentTime) {\n                                this.danIndex = i;\n                                break;\n                            }\n                            this.danIndex = this.dan.length;\n                        }\n                        danmakuTime = setInterval(() => {\n                            let item = this.dan[this.danIndex];\n                            while (item && this.video.currentTime >= parseFloat(item.time)) {\n                                danmakuIn(item.text, item.color, item.type);\n                                item = this.dan[++this.danIndex];\n                            }\n                        }, 0);\n                    }\n                }\n                else {\n                    showdan = false;\n                    if (this.option.danmaku) {\n                        clearInterval(danmakuTime);\n                        danContainer.innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n                        this.danTunnel = {\n                            right: {},\n                            top: {},\n                            bottom: {}\n                        };\n                        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n                    }\n                }\n                closeSetting();\n            });\n\n            // speed control\n            const speedEle = this.element.getElementsByClassName('dplayer-setting-speed')[0];\n            speedEle.addEventListener('click', () => {\n                settingBox.classList.add('dplayer-setting-box-narrow');\n                settingBox.innerHTML = settingHTML.speed;\n\n                const speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n                for (let i = 0; i < speedItem.length; i++) {\n                    speedItem[i].addEventListener('click', () => {\n                        this.video.playbackRate = speedItem[i].dataset.speed;\n                        closeSetting();\n                    });\n                }\n            });\n\n            if (this.option.danmaku) {\n                // danmaku opacity\n                bar.danmakuBar = this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n                const danmakuBarWrapWrap = this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n                const danmakuBarWrap = this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n                const danmakuSettingBox = this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n                const dWidth = 130;\n                this.updateBar('danmaku', danOpacity, 'width');\n\n                const danmakuMove = (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                };\n                const danmakuUp = () => {\n                    document.removeEventListener('mouseup', danmakuUp);\n                    document.removeEventListener('mousemove', danmakuMove);\n                    danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n                };\n\n                danmakuBarWrapWrap.addEventListener('click', (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                });\n                danmakuBarWrapWrap.addEventListener('mousedown', () => {\n                    document.addEventListener('mousemove', danmakuMove);\n                    document.addEventListener('mouseup', danmakuUp);\n                    danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n                });\n            }\n        };\n        settingEvent();\n\n\n        /**\n         * video events\n         */\n        // show video time: the metadata has loaded or changed\n        this.video.addEventListener('durationchange', () => {\n            if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n                this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(this.video.duration);\n            }\n        });\n\n        // show video loaded bar: to inform interested parties of progress downloading the media\n        this.video.addEventListener('progress', () => {\n            const percentage = this.video.buffered.length ? this.video.buffered.end(this.video.buffered.length - 1) / this.video.duration : 0;\n            this.updateBar('loaded', percentage, 'width');\n        });\n\n        // video download error: an error occurs\n        this.video.addEventListener('error', () => {\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = `Error happens ╥﹏╥`;\n            this.trigger('pause');\n        });\n\n        // video can play: enough data is available that the media can be played\n        this.video.addEventListener('canplay', () => {\n            this.trigger('canplay');\n        });\n\n        // music end\n        this.ended = false;\n        this.video.addEventListener('ended', () => {\n            this.updateBar('played', 1, 'width');\n            if (!loop) {\n                this.ended = true;\n                this.pause();\n                this.trigger('ended');\n            }\n        });\n\n        // control volume\n        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\n        // loop\n        this.video.loop = loop;\n\n        // set duration time\n        if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n        }\n\n\n        /**\n         * danmaku display\n         */\n        const itemHeight = arrow ? 24: 30;\n        let danWidth;\n        let danHeight;\n        let itemY;\n        this.danTunnel = {\n            right: {},\n            top: {},\n            bottom: {}\n        };\n\n        const danItemRight = (ele) => {\n            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n        };\n\n        const danSpeed = (width) => {\n            return (danWidth + width) / 5;\n        };\n\n        const getTunnel = (ele, type, width) => {\n            const tmp = danWidth / danSpeed(width);\n\n            for (let i = 0; ; i++) {\n                let item = this.danTunnel[type][i + ''];\n                if (item && item.length) {\n                    for (let j = 0; j < item.length; j++) {\n                        const danRight = danItemRight(item[j]) - 10;\n                        if (danRight <= danWidth - (tmp * danSpeed(item[j].offsetWidth)) || danRight <= 0) {\n                            break;\n                        }\n                        if (j === item.length - 1) {\n                            this.danTunnel[type][i + ''].push(ele);\n                            ele.addEventListener('animationend', () => {\n                                this.danTunnel[type][i + ''].splice(0, 1);\n                            });\n                            return i % itemY;\n                        }\n                    }\n                }\n                else {\n                    this.danTunnel[type][i + ''] = [ele];\n                    ele.addEventListener('animationend', () => {\n                        this.danTunnel[type][i + ''].splice(0, 1);\n                    });\n                    return i % itemY;\n                }\n            }\n        };\n\n        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n        const danmakuIn = (text, color, type) => {\n            danWidth = danContainer.offsetWidth;\n            danHeight = danContainer.offsetHeight;\n            itemY = parseInt(danHeight / itemHeight);\n            let item = document.createElement(`div`);\n            item.classList.add(`dplayer-danmaku-item`);\n            item.classList.add(`dplayer-danmaku-${type}`);\n            item.innerHTML = text;\n            item.style.opacity = danOpacity;\n            item.style.color = color;\n            item.addEventListener('animationend', () => {\n                danContainer.removeChild(item);\n            });\n\n            // measure\n            this.itemDemo.innerHTML = text;\n            let itemWidth = this.itemDemo.offsetWidth;\n\n            // adjust\n            switch (type) {\n                case 'right':\n                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n                    item.style.width = (itemWidth + 1) + 'px';\n                    item.style.transform = `translateX(-${danWidth}px)`;\n                    break;\n                case 'top':\n                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                case 'bottom':\n                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                default:\n                    console.error(`Can't handled danmaku type: ${type}`);\n            }\n\n            // insert\n            danContainer.appendChild(item);\n\n            // move\n            item.classList.add(`dplayer-danmaku-move`);\n\n            return item;\n        };\n\n        // danmaku\n        if (this.option.danmaku) {\n            this.danIndex = 0;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n        else {\n            // autoplay\n            if (this.option.autoplay && !isMobile) {\n                this.play();\n            }\n            else if (isMobile) {\n                this.pause();\n            }\n        }\n\n\n        /**\n         * comment\n         */\n        const commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n        const commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n        const commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n        const commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n        const commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n        const commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\n        const htmlEncode = (str) => {\n            return str.replace(/&/g, \"&amp;\")\n                .replace(/</g, \"&lt;\")\n                .replace(/>/g, \"&gt;\")\n                .replace(/\"/g, \"&quot;\")\n                .replace(/'/g, \"&#x27;\")\n                .replace(/\\//g, \"&#x2f;\");\n        };\n\n        const sendComment = () => {\n            commentInput.blur();\n\n            // text can't be empty\n            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n                alert(getTran('Please input danmaku!'));\n                return;\n            }\n\n            const danmakuData = {\n                token: this.option.danmaku.token,\n                player: this.option.danmaku.id,\n                author: 'DIYgod',\n                time: this.video.currentTime,\n                text: commentInput.value,\n                color: this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n                type: this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n            };\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            xhr.open('post', this.option.danmaku.api, true);\n            xhr.send(JSON.stringify(danmakuData));\n\n            commentInput.value = '';\n            closeComment();\n            this.dan.splice(this.danIndex, 0, danmakuData);\n            this.danIndex++;\n            const item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n            item.style.border = `2px solid ${this.option.theme}`;\n        };\n\n        const closeCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n        };\n        const toggleCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n            else {\n                commentSettingBox.classList.add('dplayer-comment-setting-open');\n            }\n        };\n\n        let disableHide = 0;\n        const closeComment = () => {\n            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n                commentBox.classList.remove('dplayer-comment-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                clearInterval(disableHide);\n                this.element.classList.remove('dplayer-show-controller');\n                closeCommentSetting();\n            }\n        };\n        const openComment = () => {\n            commentBox.classList.add('dplayer-comment-box-open');\n            mask.classList.add('dplayer-mask-show');\n            disableHide = setInterval(() => {\n                clearTimeout(hideTime);\n            }, 1000);\n            this.element.classList.add('dplayer-show-controller');\n        };\n\n        mask.addEventListener('click', () => {\n            closeComment();\n        });\n        commentIcon.addEventListener('click', () => {\n            openComment();\n            setTimeout(() => {\n                commentInput.focus();\n            }, 300);\n        });\n        commentSettingIcon.addEventListener('click', () => {\n            toggleCommentSetting();\n        });\n\n        // comment setting box\n        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', () => {\n            const sele = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n            if (sele) {\n                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n            }\n        });\n\n        commentInput.addEventListener('click', () => {\n            closeCommentSetting();\n        });\n        commentInput.addEventListener('keydown', (e) => {\n            const event = e || window.event;\n            if (event.keyCode === 13) {\n                sendComment();\n            }\n        });\n\n        commentSendIcon.addEventListener('click', sendComment);\n\n\n        /**\n         * full screen\n         */\n        const resetAnimation = () => {\n            danWidth = danContainer.offsetWidth;\n            const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n            for (let i = 0; i < items.length; i++) {\n                items[i].style.transform = `translateX(-${danWidth}px)`;\n            }\n        };\n\n        this.element.addEventListener('fullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('mozfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('webkitfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                if (this.element.requestFullscreen) {\n                    this.element.requestFullscreen();\n                }\n                else if (this.element.mozRequestFullScreen) {\n                    this.element.mozRequestFullScreen();\n                }\n                else if (this.element.webkitRequestFullscreen) {\n                    this.element.webkitRequestFullscreen();\n                }\n            }\n            else {\n                if (document.cancelFullScreen) {\n                    document.cancelFullScreen();\n                }\n                else if (document.mozCancelFullScreen) {\n                    document.mozCancelFullScreen();\n                }\n                else if (document.webkitCancelFullScreen) {\n                    document.webkitCancelFullScreen();\n                }\n            }\n            resetAnimation();\n        });\n\n        /**\n         * hot key\n         */\n        const handleKeyDown = (e) => {\n            const tag = document.activeElement.tagName.toUpperCase();\n            const editable = document.activeElement.getAttribute('contenteditable');\n            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n                const event = e || window.event;\n                let percentage;\n                switch (event.keyCode) {\n                    case 32:\n                        event.preventDefault();\n                        this.toggle();\n                        break;\n                    case 37:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime - 5;\n                        break;\n                    case 39:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime + 5;\n                        break;\n                    case 38:\n                        event.preventDefault();\n                        percentage = this.video.volume + 0.1;\n                        this.volume(percentage);\n                        break;\n                    case 40:\n                        event.preventDefault();\n                        percentage = this.video.volume - 0.1;\n                        this.volume(percentage);\n                        break;\n                }\n            }\n        };\n        if (this.option.hotkey) {\n            document.addEventListener('keydown', handleKeyDown);\n        }\n\n        /**\n         * right key\n         */\n        const menu = this.element.getElementsByClassName('dplayer-menu')[0];\n        this.element.addEventListener('contextmenu', (e) => {\n            const event = e || window.event;\n            event.preventDefault();\n            menu.style.left = event.clientX - this.element.getBoundingClientRect().left + 'px';\n            menu.style.top = event.clientY - this.element.getBoundingClientRect().top + 'px';\n            menu.classList.add('dplayer-menu-show');\n\n            mask.classList.add('dplayer-mask-show');\n            mask.addEventListener('click', () => {\n                mask.classList.remove('dplayer-mask-show');\n                menu.classList.remove('dplayer-menu-show');\n           });\n        });\n\n        /**\n         * Screenshot\n         */\n        if (this.option.screenshot) {\n            const camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n            camareIcon.addEventListener('click', () => {\n                const canvas = document.createElement(\"canvas\");\n                canvas.width = this.video.videoWidth;\n                canvas.height = this.video.videoHeight;\n                canvas.getContext('2d').drawImage(this.video, 0, 0, canvas.width, canvas.height);\n\n                camareIcon.href = canvas.toDataURL();\n                camareIcon.download = \"DPlayer.png\";\n            });\n        }\n\n        index++;\n    }\n\n    /**\n     * Play music\n     */\n    play(time) {\n        if (Object.prototype.toString.call(time) === '[object Number]') {\n            this.video.currentTime = time;\n        }\n        if (this.video.paused) {\n            this.shouldpause = false;\n\n            this.bezel.innerHTML = this.getSVG('play');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.playButton.innerHTML = this.getSVG('pause');\n\n            this.video.play();\n            if (this.playedTime) {\n                this.clearTime();\n            }\n            this.setTime();\n            this.element.classList.add('dplayer-playing');\n            this.trigger('play');\n        }\n    }\n\n    /**\n     * Pause music\n     */\n    pause() {\n        if (!this.shouldpause || this.ended) {\n            this.shouldpause = true;\n            this.element.classList.remove('dplayer-loading');\n\n            this.bezel.innerHTML = this.getSVG('pause');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.ended = false;\n            this.playButton.innerHTML = this.getSVG('play');\n            this.video.pause();\n            this.clearTime();\n            this.element.classList.remove('dplayer-playing');\n            this.trigger('pause');\n        }\n    }\n\n    /**\n     * Set volume\n     */\n    volume(percentage) {\n        percentage = percentage > 0 ? percentage : 0;\n        percentage = percentage < 1 ? percentage : 1;\n        this.updateBar('volume', percentage, 'width');\n        this.video.volume = percentage;\n        if (this.video.muted) {\n            this.video.muted = false;\n        }\n        this.switchVolumeIcon();\n    }\n\n    /**\n     * Toggle between play and pause\n     */\n    toggle() {\n        if (this.video.paused) {\n            this.play();\n        }\n        else {\n            this.pause();\n        }\n    }\n\n    /**\n     * attach event\n     */\n    on(name, func) {\n        if (typeof func === 'function') {\n            this.event[name].push(func);\n        }\n    }\n\n    /**\n     * Switch to a new video\n     *\n     * @param {Object} video - new video info\n     * @param {Object} danmaku - new danmaku info\n     */\n    switchVideo(video, danmaku) {\n        this.video.src = video.url;\n        this.video.poster = video.pic ? video.pic : '';\n        this.video.currentTime = 0;\n        this.pause();\n        if (danmaku) {\n            this.dan = [];\n            this.danIndex = 0;\n            this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n            this.updateBar('played', 0, 'width');\n            this.updateBar('loaded', 0, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n            this.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n            this.danTunnel = {\n                right: {},\n                top: {},\n                bottom: {}\n            };\n            this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n            const isMobile = /mobile/i.test(window.navigator.userAgent);\n            this.option.danmaku = danmaku;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.danIndex = 0;\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.danIndex = 0;\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n    }\n}\n\nmodule.exports = DPlayer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/DPlayer.js\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/DPlayer.scss\n ** module id = 1\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/DPlayer.scss\n ** module id = 2\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader/lib/css-base.js\n ** module id = 3\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/style-loader/addStyles.js\n ** module id = 4\n ** module chunks = 0\n **/"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 7d31a2bec8d115f8be0c","webpack:///./src/DPlayer.js","webpack:///./src/DPlayer.scss?8fa9","webpack:///./src/DPlayer.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","console","log","index","DPlayer","option","_this","svg","play","pause","volume-up","volume-down","volume-off","loop","full","setting","right","comment","comment-off","send","menu","camera","getSVG","type","isMobile","test","window","navigator","userAgent","autoplay","defaultOption","element","document","getElementsByClassName","theme","lang","language","indexOf","screenshot","hotkey","preload","defaultKey","hasOwnProperty","tranZH","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku!","Set danmaku color","Set danmaku type","Danmaku","getTran","text","updateBar","percentage","direction","bar","style","eventTypes","event","trigger","_i","danmaku","classList","add","innerHTML","video","pic","url","arrow","offsetWidth","arrowStyle","createElement","head","appendChild","match","Hls","isSupported","display","hls","attachMedia","on","Events","MEDIA_ATTACHED","loadSource","MANIFEST_PARSED","data","levels","flvjs","flvPlayer","createPlayer","attachMediaElement","load","bezel","addEventListener","remove","playButton","shouldpause","toggle","videoWrap","conMask","toggleController","contains","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","body","scrollLeft","documentElement","playedBar","loadedBar","pbar","barWidth","_i2","dan","time","currentTime","danIndex","lastPlayPos","currentPlayPos","bufferingDetected","danmakuTime","setTime","playedTime","setInterval","paused","duration","item","parseFloat","danmakuIn","color","clearTime","clearInterval","e","clientWidth","clientX","width","thumbMove","thumbUp","removeEventListener","volumeBar","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","vWidth","switchVolumeIcon","volume","volumeMove","volumeUp","muted","hideTime","hideController","clearTimeout","setTimeout","played","closeSetting","closeComment","danOpacity","localStorage","getItem","settingHTML","original","speed","settingIcon","settingBox","mask","settingEvent","openSetting","danContainer","showdan","loopEle","loopToggle","checked","showDanEle","showDanToggle","_i3","danTunnel","top","bottom","itemDemo","speedEle","speedItem","_loop","_i4","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","dWidth","danmakuMove","items","_i5","opacity","setItem","danmakuUp","_i6","buffered","end","ended","itemHeight","danWidth","danHeight","itemY","danItemRight","ele","getBoundingClientRect","danSpeed","getTunnel","tmp","_loop2","_i7","splice","v","j","danRight","push","_ret4","offsetHeight","removeChild","itemWidth","transform","error","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","alert","msg","addition","response2","concat","sort","a","b","open","apiurl","maximum","api","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","htmlEncode","str","replace","sendComment","blur","value","danmakuData","token","player","author","querySelector","stringify","border","closeCommentSetting","toggleCommentSetting","disableHide","openComment","focus","sele","fill","keyCode","resetAnimation","_i8","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","handleKeyDown","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","left","clientY","camareIcon","canvas","videoWidth","height","videoHeight","getContext","drawImage","href","toDataURL","download","toString","name","func","_this2","src","poster","content","locals","list","result","join","mediaQuery","alreadyImportedModules","addStylesToDom","styles","options","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","Error","removeStyleElement","parentNode","idx","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","setAttribute","unescape","encodeURIComponent","blob","oldSrc","memoize","fn","memo","apply","arguments","isOldIE","toLowerCase","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","Boolean"],"mappings":"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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tconsole.log(\"\\n %c DPlayer 1.1.2 %c http://dplayer.js.org \\n\\n\", \"color: #fadfa3; background: #030307; padding:5px 0;\", \"background: #fadfa3; padding:5px 0;\");\n\t\n\t__webpack_require__(1);\n\t\n\tvar index = 0;\n\t\n\tvar DPlayer = function () {\n\t    /**\n\t     * DPlayer constructor function\n\t     *\n\t     * @param {Object} option - See README\n\t     * @constructor\n\t     */\n\t\n\t    function DPlayer(option) {\n\t        var _this = this;\n\t\n\t        _classCallCheck(this, DPlayer);\n\t\n\t        var svg = {\n\t            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n\t            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n\t            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n\t            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n\t            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n\t            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n\t            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n\t            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n\t            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n\t            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n\t            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n\t            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n\t            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n\t            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n\t        };\n\t        this.getSVG = function (type) {\n\t            return \"\\n                <svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"\" + svg[type][0] + \"\\\" width=\\\"100%\\\">\\n                    <use xlink:href=\\\"#dplayer-\" + type + \"\\\"></use>\\n                    <path class=\\\"dplayer-fill\\\" d=\\\"\" + svg[type][1] + \"\\\" id=\\\"dplayer-\" + type + \"\\\"></path>\\n                </svg>\\n            \";\n\t        };\n\t\n\t        this.option = option;\n\t\n\t        var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t        // compatibility: some mobile browsers don't suppose autoplay\n\t        if (isMobile) {\n\t            this.option.autoplay = false;\n\t        }\n\t\n\t        // default options\n\t        var defaultOption = {\n\t            element: document.getElementsByClassName('dplayer')[0],\n\t            autoplay: false,\n\t            theme: '#b7daff',\n\t            loop: false,\n\t            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n\t            screenshot: false,\n\t            hotkey: true,\n\t            preload: 'auto'\n\t        };\n\t        for (var defaultKey in defaultOption) {\n\t            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n\t                this.option[defaultKey] = defaultOption[defaultKey];\n\t            }\n\t        }\n\t\n\t        var tranZH = {\n\t            'Danmaku is loading': '弹幕加载中',\n\t            'Top': '顶部',\n\t            'Bottom': '底部',\n\t            'Rolling': '滚动',\n\t            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n\t            'About author': '关于作者',\n\t            'DPlayer feedback': '播放器意见反馈',\n\t            'About DPlayer': '关于 DPlay 播放器',\n\t            'Loop': '洗脑循环',\n\t            'Speed': '速度',\n\t            'Opacity for danmaku': '弹幕透明度',\n\t            'Normal': '正常',\n\t            'Please input danmaku!': '要输入弹幕内容啊喂!',\n\t            'Set danmaku color': '设置弹幕颜色',\n\t            'Set danmaku type': '设置弹幕类型',\n\t            'Danmaku': '弹幕'\n\t        };\n\t        var getTran = function getTran(text) {\n\t            if (_this.option.lang === 'en') {\n\t                return text;\n\t            } else if (_this.option.lang === 'zh') {\n\t                return tranZH[text];\n\t            }\n\t        };\n\t\n\t        /**\n\t         * Update progress bar, including loading progress bar and play progress bar\n\t         *\n\t         * @param {String} type - Point out which bar it is, should be played loaded or volume\n\t         * @param {Number} percentage\n\t         * @param {String} direction - Point out the direction of this bar, Should be height or width\n\t         */\n\t        this.updateBar = function (type, percentage, direction) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n\t        };\n\t\n\t        // define DPlayer events\n\t        var eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n\t        this.event = {};\n\t        for (var i = 0; i < eventTypes.length; i++) {\n\t            this.event[eventTypes[i]] = [];\n\t        }\n\t        this.trigger = function (type) {\n\t            for (var _i = 0; _i < _this.event[type].length; _i++) {\n\t                _this.event[type][_i]();\n\t            }\n\t        };\n\t\n\t        this.element = this.option.element;\n\t        if (!this.option.danmaku) {\n\t            this.element.classList.add('dplayer-no-danmaku');\n\t        }\n\t\n\t        this.element.innerHTML = \"\\n            <div class=\\\"dplayer-mask\\\"></div>\\n            <div class=\\\"dplayer-video-wrap\\\">\\n                <video class=\\\"dplayer-video\\\" \" + (this.option.video.pic ? \"poster=\\\"\" + this.option.video.pic + \"\\\"\" : \"\") + \" webkit-playsinline \" + (this.option.screenshot ? \"crossorigin=\\\"anonymous\\\"\" : \"\") + \" preload=\\\"\" + this.option.preload + \"\\\" src=\\\"\" + this.option.video.url + \"\\\"></video>\\n                <div class=\\\"dplayer-danmaku\\\">\\n                    <div class=\\\"dplayer-danmaku-item dplayer-danmaku-item--demo\\\"></div>\\n                </div>\\n                <div class=\\\"dplayer-bezel\\\">\\n                    <span class=\\\"dplayer-bezel-icon\\\"></span>\\n                    \" + (this.option.danmaku ? \"<span class=\\\"dplayer-danloading\\\">\" + getTran('Danmaku is loading') + \"</span>\" : \"\") + \"\\n                    <span class=\\\"diplayer-loading-icon\\\">\\n                        <svg height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 22 22\\\" width=\\\"100%\\\">\\n                            <svg x=\\\"7\\\" y=\\\"1\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-0\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-1\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"13\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-2\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-3\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"7\\\" y=\\\"13\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-4\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-5\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"1\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-6\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-7\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                        </svg>\\n                    </span>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-controller-mask\\\"></div>\\n            <div class=\\\"dplayer-controller\\\">\\n                <div class=\\\"dplayer-icons dplayer-icons-left\\\">\\n                    <button class=\\\"dplayer-icon dplayer-play-icon\\\">\" + this.getSVG('play') + (\"     </button>\\n                    <div class=\\\"dplayer-volume\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \">\\n                        <button class=\\\"dplayer-icon dplayer-volume-icon\\\">\") + this.getSVG('volume-down') + (\"         </button>\\n                        <div class=\\\"dplayer-volume-bar-wrap\\\">\\n                            <div class=\\\"dplayer-volume-bar\\\">\\n                                <div class=\\\"dplayer-volume-bar-inner\\\" style=\\\"width: 70%; background: \" + this.option.theme + \";\\\">\\n                                    <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\\n                    <span class=\\\"dplayer-time\\\"><span class=\\\"dplayer-ptime\\\">0:00</span> / <span class=\\\"dplayer-dtime\\\">0:00</span></span>\\n                </div>\\n                <div class=\\\"dplayer-icons dplayer-icons-right\\\">\\n                    \" + (this.option.screenshot ? \"\\n                    <a href=\\\"#\\\" class=\\\"dplayer-icon dplayer-camera-icon\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \"dplayer-volume>\" + this.getSVG('camera') + \"     </a>\\n                    \" : \"\") + \"\\n                    <div class=\\\"dplayer-comment\\\">\\n                        <button class=\\\"dplayer-icon dplayer-comment-icon\\\">\") + this.getSVG('comment') + \"         </button>\\n                        <div class=\\\"dplayer-comment-box\\\">\\n                            <button class=\\\"dplayer-icon dplayer-comment-setting-icon\\\">\" + this.getSVG('menu') + (\"             </button>\\n                            <div class=\\\"dplayer-comment-setting-box\\\">\\n                                <div class=\\\"dplayer-comment-setting-color\\\">\\n                                   <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku color') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#fff\\\" checked>\\n                                        <span style=\\\"background: #fff; border: 1px solid rgba(0,0,0,.1);\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#e54256\\\">\\n                                        <span style=\\\"background: #e54256\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#ffe133\\\">\\n                                        <span style=\\\"background: #ffe133\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#64DD17\\\">\\n                                        <span style=\\\"background: #64DD17\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#39ccff\\\">\\n                                        <span style=\\\"background: #39ccff\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#D500F9\\\">\\n                                        <span style=\\\"background: #D500F9\\\"></span>\\n                                    </label>\\n                                </div>\\n                                <div class=\\\"dplayer-comment-setting-type\\\">\\n                                    <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku type') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"top\\\">\\n                                        <span>\" + getTran('Top') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"right\\\" checked>\\n                                        <span>\" + getTran('Rolling') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"bottom\\\">\\n                                        <span>\" + getTran('Bottom') + \"</span>\\n                                    </label>\\n                                </div>\\n                            </div>\\n                            <input class=\\\"dplayer-comment-input\\\" type=\\\"text\\\" placeholder=\\\"\" + getTran('Input danmaku, hit Enter') + \"\\\" maxlength=\\\"30\\\">\\n                            <button class=\\\"dplayer-icon dplayer-send-icon\\\">\") + this.getSVG('send') + \"             </button>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting\\\">\\n                        <button class=\\\"dplayer-icon dplayer-setting-icon\\\">\" + this.getSVG('setting') + \"         </button>\\n                        <div class=\\\"dplayer-setting-box\\\"></div>\\n                    </div>\\n                    <button class=\\\"dplayer-icon dplayer-full-icon\\\">\" + this.getSVG('full') + (\"     </button>\\n                </div>\\n                <div class=\\\"dplayer-bar-wrap\\\">\\n                    <div class=\\\"dplayer-bar\\\">\\n                        <div class=\\\"dplayer-loaded\\\" style=\\\"width: 0;\\\"></div>\\n                        <div class=\\\"dplayer-played\\\" style=\\\"width: 0; background: \" + this.option.theme + \"\\\">\\n                            <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                        </div>\\n                    </div>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-menu\\\">\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"http://diygod.me/\\\">\" + getTran('About author') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer/issues\\\">\" + getTran('DPlayer feedback') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer\\\">\" + getTran('About DPlayer') + \"</a></span></div>\\n            </div>\\n        \");\n\t\n\t        // arrow style\n\t        var arrow = this.element.offsetWidth <= 500;\n\t        if (arrow) {\n\t            var arrowStyle = document.createElement('style');\n\t            arrowStyle.innerHTML = \".dplayer .dplayer-danmaku{font-size:18px}\";\n\t            document.head.appendChild(arrowStyle);\n\t        }\n\t\n\t        // get this video object\n\t        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\t\n\t        // Support HTTP Live Streaming\n\t        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n\t            (function () {\n\t                _this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n\t                var hls = new Hls();\n\t                hls.attachMedia(_this.video);\n\t                hls.on(Hls.Events.MEDIA_ATTACHED, function () {\n\t                    hls.loadSource(_this.option.video.url);\n\t                    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n\t                        console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n\t                    });\n\t                });\n\t            })();\n\t        }\n\t\n\t        // Support FLV\n\t        if (this.option.video.url.match(/(flv)$/i) && flvjs.isSupported()) {\n\t            var flvPlayer = flvjs.createPlayer({\n\t                type: 'flv',\n\t                url: this.option.video.url\n\t            });\n\t            flvPlayer.attachMediaElement(this.video);\n\t            flvPlayer.load();\n\t        }\n\t\n\t        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n\t        this.bezel.addEventListener('animationend', function () {\n\t            _this.bezel.classList.remove('dplayer-bezel-transition');\n\t        });\n\t\n\t        // play and pause button\n\t        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n\t        this.shouldpause = true;\n\t        this.playButton.addEventListener('click', function () {\n\t            _this.toggle();\n\t        });\n\t\n\t        var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n\t        var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n\t        if (!isMobile) {\n\t            videoWrap.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t            conMask.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t        } else {\n\t            var toggleController = function toggleController() {\n\t                if (_this.element.classList.contains('dplayer-hide-controller')) {\n\t                    _this.element.classList.remove('dplayer-hide-controller');\n\t                } else {\n\t                    _this.element.classList.add('dplayer-hide-controller');\n\t                }\n\t            };\n\t            videoWrap.addEventListener('click', toggleController);\n\t            conMask.addEventListener('click', toggleController);\n\t        }\n\t\n\t        /**\n\t         * Parse second to 00:00 format\n\t         *\n\t         * @param {Number} second\n\t         * @return {String} 00:00 format\n\t         */\n\t        var secondToTime = function secondToTime(second) {\n\t            var add0 = function add0(num) {\n\t                return num < 10 ? '0' + num : '' + num;\n\t            };\n\t            var min = parseInt(second / 60);\n\t            var sec = parseInt(second - min * 60);\n\t            return add0(min) + ':' + add0(sec);\n\t        };\n\t\n\t        /**\n\t         * control play progress\n\t         */\n\t        // get element's view position\n\t        var getElementViewLeft = function getElementViewLeft(element) {\n\t            var actualLeft = element.offsetLeft;\n\t            var current = element.offsetParent;\n\t            var elementScrollLeft = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n\t            return actualLeft - elementScrollLeft;\n\t        };\n\t\n\t        var getElementViewTop = function getElementViewTop(element) {\n\t            var actualTop = element.offsetTop;\n\t            var current = element.offsetParent;\n\t            var elementScrollTop = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n\t            return actualTop - elementScrollTop;\n\t        };\n\t\n\t        var bar = {};\n\t        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n\t        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n\t        var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n\t        var barWidth = void 0;\n\t\n\t        if (this.option.danmaku) {\n\t            this.video.addEventListener('seeking', function () {\n\t                for (var _i2 = 0; _i2 < _this.dan.length; _i2++) {\n\t                    if (_this.dan[_i2].time >= _this.video.currentTime) {\n\t                        _this.danIndex = _i2;\n\t                        return;\n\t                    }\n\t                    _this.danIndex = _this.dan.length;\n\t                }\n\t            });\n\t        }\n\t\n\t        var lastPlayPos = 0;\n\t        var currentPlayPos = 0;\n\t        var bufferingDetected = false;\n\t        var danmakuTime = void 0;\n\t        this.setTime = function () {\n\t            _this.playedTime = setInterval(function () {\n\t                // whether the video is buffering\n\t                currentPlayPos = _this.video.currentTime;\n\t                if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.add('dplayer-loading');\n\t                    bufferingDetected = true;\n\t                }\n\t                if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.remove('dplayer-loading');\n\t                    bufferingDetected = false;\n\t                }\n\t                lastPlayPos = currentPlayPos;\n\t\n\t                _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n\t                _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(_this.video.currentTime);\n\t                _this.trigger('playing');\n\t            }, 100);\n\t            if (_this.option.danmaku) {\n\t                danmakuTime = setInterval(function () {\n\t                    var item = _this.dan[_this.danIndex];\n\t                    while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                        danmakuIn(item.text, item.color, item.type);\n\t                        item = _this.dan[++_this.danIndex];\n\t                    }\n\t                }, 0);\n\t            }\n\t        };\n\t        this.clearTime = function () {\n\t            clearInterval(_this.playedTime);\n\t            if (_this.option.danmaku) {\n\t                clearInterval(danmakuTime);\n\t            }\n\t        };\n\t\n\t        pbar.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            barWidth = pbar.clientWidth;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t        });\n\t\n\t        var thumbMove = function thumbMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * _this.video.duration);\n\t        };\n\t\n\t        var thumbUp = function thumbUp() {\n\t            document.removeEventListener('mouseup', thumbUp);\n\t            document.removeEventListener('mousemove', thumbMove);\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t            _this.setTime();\n\t        };\n\t\n\t        pbar.addEventListener('mousedown', function () {\n\t            barWidth = pbar.clientWidth;\n\t            _this.clearTime();\n\t            document.addEventListener('mousemove', thumbMove);\n\t            document.addEventListener('mouseup', thumbUp);\n\t        });\n\t\n\t        /**\n\t         * control volume\n\t         */\n\t        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n\t        var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n\t        var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n\t        var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n\t        var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t        var vWidth = 35;\n\t\n\t        this.switchVolumeIcon = function () {\n\t            var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t            if (_this.video.volume >= 0.8) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-up');\n\t            } else if (_this.video.volume > 0) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-down');\n\t            } else {\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t            }\n\t        };\n\t        var volumeMove = function volumeMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        };\n\t        var volumeUp = function volumeUp() {\n\t            document.removeEventListener('mouseup', volumeUp);\n\t            document.removeEventListener('mousemove', volumeMove);\n\t            volumeEle.classList.remove('dplayer-volume-active');\n\t        };\n\t\n\t        volumeBarWrapWrap.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        });\n\t        volumeBarWrapWrap.addEventListener('mousedown', function () {\n\t            document.addEventListener('mousemove', volumeMove);\n\t            document.addEventListener('mouseup', volumeUp);\n\t            volumeEle.classList.add('dplayer-volume-active');\n\t        });\n\t        volumeicon.addEventListener('click', function () {\n\t            if (_this.video.muted) {\n\t                _this.video.muted = false;\n\t                _this.switchVolumeIcon();\n\t                _this.updateBar('volume', _this.video.volume, 'width');\n\t            } else {\n\t                _this.video.muted = true;\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t                _this.updateBar('volume', 0, 'width');\n\t            }\n\t        });\n\t\n\t        /**\n\t         * auto hide controller\n\t         */\n\t        var hideTime = 0;\n\t        if (!isMobile) {\n\t            var hideController = function hideController() {\n\t                _this.element.classList.remove('dplayer-hide-controller');\n\t                clearTimeout(hideTime);\n\t                hideTime = setTimeout(function () {\n\t                    if (_this.video.played.length) {\n\t                        _this.element.classList.add('dplayer-hide-controller');\n\t                        closeSetting();\n\t                        closeComment();\n\t                    }\n\t                }, 2000);\n\t            };\n\t            this.element.addEventListener('mousemove', hideController);\n\t            this.element.addEventListener('click', hideController);\n\t        }\n\t\n\t        /***\n\t         * setting\n\t         */\n\t        var danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n\t        var settingHTML = {\n\t            'original': \"\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-speed\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Speed') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\" + this.getSVG('right') + (\"     </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-loop\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Loop') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-toggle-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle\\\">\\n                            <label for=\\\"dplayer-toggle\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-showdan\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Danmaku') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-showdan-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle-dan\\\">\\n                            <label for=\\\"dplayer-toggle-dan\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-danmaku\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Opacity for danmaku') + \"</span>\\n                        <div class=\\\"dplayer-danmaku-bar-wrap\\\">\\n                            <div class=\\\"dplayer-danmaku-bar\\\">\\n                                <div class=\\\"dplayer-danmaku-bar-inner\\\" style=\\\"width: \" + danOpacity * 100 + \"%\\\">\\n                                    <span class=\\\"dplayer-thumb\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\"),\n\t            'speed': \"\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.5\\\">\\n                        <span class=\\\"dplayer-label\\\">0.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.75\\\">\\n                        <span class=\\\"dplayer-label\\\">0.75</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Normal') + \"</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.25\\\">\\n                        <span class=\\\"dplayer-label\\\">1.25</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.5\\\">\\n                        <span class=\\\"dplayer-label\\\">1.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"2\\\">\\n                        <span class=\\\"dplayer-label\\\">2</span>\\n                    </div>\"\n\t        };\n\t\n\t        // toggle setting box\n\t        var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n\t        var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n\t        var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n\t        settingBox.innerHTML = settingHTML.original;\n\t\n\t        var closeSetting = function closeSetting() {\n\t            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n\t                settingBox.classList.remove('dplayer-setting-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                setTimeout(function () {\n\t                    settingBox.classList.remove('dplayer-setting-box-narrow');\n\t                    settingBox.innerHTML = settingHTML.original;\n\t                    settingEvent();\n\t                }, 300);\n\t            }\n\t        };\n\t        var openSetting = function openSetting() {\n\t            settingBox.classList.add('dplayer-setting-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeSetting();\n\t        });\n\t        settingIcon.addEventListener('click', function () {\n\t            openSetting();\n\t        });\n\t\n\t        var loop = this.option.loop;\n\t        var danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n\t        var showdan = true;\n\t        var settingEvent = function settingEvent() {\n\t            // loop control\n\t            var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n\t            var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\t\n\t            loopToggle.checked = loop;\n\t\n\t            loopEle.addEventListener('click', function () {\n\t                loopToggle.checked = !loopToggle.checked;\n\t                if (loopToggle.checked) {\n\t                    loop = true;\n\t                    _this.video.loop = loop;\n\t                } else {\n\t                    loop = false;\n\t                    _this.video.loop = loop;\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // show danmaku control\n\t            var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n\t            var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\t\n\t            showDanToggle.checked = showdan;\n\t\n\t            showDanEle.addEventListener('click', function () {\n\t                showDanToggle.checked = !showDanToggle.checked;\n\t                if (showDanToggle.checked) {\n\t                    showdan = true;\n\t                    if (_this.option.danmaku) {\n\t                        for (var _i3 = 0; _i3 < _this.dan.length; _i3++) {\n\t                            if (_this.dan[_i3].time >= _this.video.currentTime) {\n\t                                _this.danIndex = _i3;\n\t                                break;\n\t                            }\n\t                            _this.danIndex = _this.dan.length;\n\t                        }\n\t                        danmakuTime = setInterval(function () {\n\t                            var item = _this.dan[_this.danIndex];\n\t                            while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                                danmakuIn(item.text, item.color, item.type);\n\t                                item = _this.dan[++_this.danIndex];\n\t                            }\n\t                        }, 0);\n\t                    }\n\t                } else {\n\t                    showdan = false;\n\t                    if (_this.option.danmaku) {\n\t                        clearInterval(danmakuTime);\n\t                        danContainer.innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                        _this.danTunnel = {\n\t                            right: {},\n\t                            top: {},\n\t                            bottom: {}\n\t                        };\n\t                        _this.itemDemo = _this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t                    }\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // speed control\n\t            var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n\t            speedEle.addEventListener('click', function () {\n\t                settingBox.classList.add('dplayer-setting-box-narrow');\n\t                settingBox.innerHTML = settingHTML.speed;\n\t\n\t                var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n\t\n\t                var _loop = function _loop(_i4) {\n\t                    speedItem[_i4].addEventListener('click', function () {\n\t                        _this.video.playbackRate = speedItem[_i4].dataset.speed;\n\t                        closeSetting();\n\t                    });\n\t                };\n\t\n\t                for (var _i4 = 0; _i4 < speedItem.length; _i4++) {\n\t                    _loop(_i4);\n\t                }\n\t            });\n\t\n\t            if (_this.option.danmaku) {\n\t                (function () {\n\t                    // danmaku opacity\n\t                    bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n\t                    var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n\t                    var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n\t                    var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n\t                    var dWidth = 130;\n\t                    _this.updateBar('danmaku', danOpacity, 'width');\n\t\n\t                    var danmakuMove = function danmakuMove(event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i5 = 0; _i5 < items.length; _i5++) {\n\t                            items[_i5].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    };\n\t                    var danmakuUp = function danmakuUp() {\n\t                        document.removeEventListener('mouseup', danmakuUp);\n\t                        document.removeEventListener('mousemove', danmakuMove);\n\t                        danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n\t                    };\n\t\n\t                    danmakuBarWrapWrap.addEventListener('click', function (event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i6 = 0; _i6 < items.length; _i6++) {\n\t                            items[_i6].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    });\n\t                    danmakuBarWrapWrap.addEventListener('mousedown', function () {\n\t                        document.addEventListener('mousemove', danmakuMove);\n\t                        document.addEventListener('mouseup', danmakuUp);\n\t                        danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n\t                    });\n\t                })();\n\t            }\n\t        };\n\t        settingEvent();\n\t\n\t        /**\n\t         * video events\n\t         */\n\t        // show video time: the metadata has loaded or changed\n\t        this.video.addEventListener('durationchange', function () {\n\t            if (_this.video.duration !== 1) {\n\t                // compatibility: Android browsers will output 1 at first\n\t                _this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(_this.video.duration);\n\t            }\n\t        });\n\t\n\t        // show video loaded bar: to inform interested parties of progress downloading the media\n\t        this.video.addEventListener('progress', function () {\n\t            var percentage = _this.video.buffered.length ? _this.video.buffered.end(_this.video.buffered.length - 1) / _this.video.duration : 0;\n\t            _this.updateBar('loaded', percentage, 'width');\n\t        });\n\t\n\t        // video download error: an error occurs\n\t        this.video.addEventListener('error', function () {\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = \"Error happens ╥﹏╥\";\n\t            _this.trigger('pause');\n\t        });\n\t\n\t        // video can play: enough data is available that the media can be played\n\t        this.video.addEventListener('canplay', function () {\n\t            _this.trigger('canplay');\n\t        });\n\t\n\t        // music end\n\t        this.ended = false;\n\t        this.video.addEventListener('ended', function () {\n\t            _this.updateBar('played', 1, 'width');\n\t            if (!loop) {\n\t                _this.ended = true;\n\t                _this.pause();\n\t                _this.trigger('ended');\n\t            }\n\t        });\n\t\n\t        // control volume\n\t        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\t\n\t        // loop\n\t        this.video.loop = loop;\n\t\n\t        // set duration time\n\t        if (this.video.duration !== 1) {\n\t            // compatibility: Android browsers will output 1 at first\n\t            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n\t        }\n\t\n\t        /**\n\t         * danmaku display\n\t         */\n\t        var itemHeight = arrow ? 24 : 30;\n\t        var danWidth = void 0;\n\t        var danHeight = void 0;\n\t        var itemY = void 0;\n\t        this.danTunnel = {\n\t            right: {},\n\t            top: {},\n\t            bottom: {}\n\t        };\n\t\n\t        var danItemRight = function danItemRight(ele) {\n\t            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n\t        };\n\t\n\t        var danSpeed = function danSpeed(width) {\n\t            return (danWidth + width) / 5;\n\t        };\n\t\n\t        var getTunnel = function getTunnel(ele, type, width) {\n\t            var tmp = danWidth / danSpeed(width);\n\t\n\t            var _loop2 = function _loop2(_i7) {\n\t                var item = _this.danTunnel[type][_i7 + ''];\n\t                if (item && item.length) {\n\t                    for (var j = 0; j < item.length; j++) {\n\t                        var danRight = danItemRight(item[j]) - 10;\n\t                        if (danRight <= danWidth - tmp * danSpeed(item[j].offsetWidth) || danRight <= 0) {\n\t                            break;\n\t                        }\n\t                        if (j === item.length - 1) {\n\t                            _this.danTunnel[type][_i7 + ''].push(ele);\n\t                            ele.addEventListener('animationend', function () {\n\t                                _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                            });\n\t                            return {\n\t                                v: _i7 % itemY\n\t                            };\n\t                        }\n\t                    }\n\t                } else {\n\t                    _this.danTunnel[type][_i7 + ''] = [ele];\n\t                    ele.addEventListener('animationend', function () {\n\t                        _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                    });\n\t                    return {\n\t                        v: _i7 % itemY\n\t                    };\n\t                }\n\t            };\n\t\n\t            for (var _i7 = 0;; _i7++) {\n\t                var _ret4 = _loop2(_i7);\n\t\n\t                if ((typeof _ret4 === \"undefined\" ? \"undefined\" : _typeof(_ret4)) === \"object\") return _ret4.v;\n\t            }\n\t        };\n\t\n\t        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t        var danmakuIn = function danmakuIn(text, color, type) {\n\t            danWidth = danContainer.offsetWidth;\n\t            danHeight = danContainer.offsetHeight;\n\t            itemY = parseInt(danHeight / itemHeight);\n\t            var item = document.createElement(\"div\");\n\t            item.classList.add(\"dplayer-danmaku-item\");\n\t            item.classList.add(\"dplayer-danmaku-\" + type);\n\t            item.innerHTML = text;\n\t            item.style.opacity = danOpacity;\n\t            item.style.color = color;\n\t            item.addEventListener('animationend', function () {\n\t                danContainer.removeChild(item);\n\t            });\n\t\n\t            // measure\n\t            _this.itemDemo.innerHTML = text;\n\t            var itemWidth = _this.itemDemo.offsetWidth;\n\t\n\t            // adjust\n\t            switch (type) {\n\t                case 'right':\n\t                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n\t                    item.style.width = itemWidth + 1 + 'px';\n\t                    item.style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t                    break;\n\t                case 'top':\n\t                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                case 'bottom':\n\t                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                default:\n\t                    console.error(\"Can't handled danmaku type: \" + type);\n\t            }\n\t\n\t            // insert\n\t            danContainer.appendChild(item);\n\t\n\t            // move\n\t            item.classList.add(\"dplayer-danmaku-move\");\n\t\n\t            return item;\n\t        };\n\t\n\t        // danmaku\n\t        if (this.option.danmaku) {\n\t            (function () {\n\t                _this.danIndex = 0;\n\t                var xhr = new XMLHttpRequest();\n\t                xhr.onreadystatechange = function () {\n\t                    if (xhr.readyState === 4) {\n\t                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                            (function () {\n\t                                var response = JSON.parse(xhr.responseText);\n\t                                if (response.code !== 1) {\n\t                                    alert(response.msg);\n\t                                } else {\n\t                                    if (_this.option.danmaku.addition) {\n\t                                        xhr.onreadystatechange = function () {\n\t                                            if (xhr.readyState === 4) {\n\t                                                if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                    var response2 = JSON.parse(xhr.responseText);\n\t                                                    if (response2.code !== 1) {\n\t                                                        alert(response2.msg);\n\t                                                    } else {\n\t                                                        _this.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                            return a.time - b.time;\n\t                                                        });\n\t                                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                        // autoplay\n\t                                                        if (_this.option.autoplay && !isMobile) {\n\t                                                            _this.play();\n\t                                                        } else if (isMobile) {\n\t                                                            _this.pause();\n\t                                                        }\n\t                                                    }\n\t                                                } else {\n\t                                                    console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                }\n\t                                            }\n\t                                        };\n\t                                        xhr.open('get', _this.option.danmaku.addition[0], true);\n\t                                        xhr.send(null);\n\t                                    } else {\n\t                                        _this.dan = response.danmaku.sort(function (a, b) {\n\t                                            return a.time - b.time;\n\t                                        });\n\t                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                        // autoplay\n\t                                        if (_this.option.autoplay && !isMobile) {\n\t                                            _this.play();\n\t                                        } else if (isMobile) {\n\t                                            _this.pause();\n\t                                        }\n\t                                    }\n\t                                }\n\t                            })();\n\t                        } else {\n\t                            console.log('Request was unsuccessful: ' + xhr.status);\n\t                        }\n\t                    }\n\t                };\n\t                var apiurl = void 0;\n\t                if (_this.option.danmaku.maximum) {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id + \"&max=\" + _this.option.danmaku.maximum;\n\t                } else {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id;\n\t                }\n\t                xhr.open('get', apiurl, true);\n\t                xhr.send(null);\n\t            })();\n\t        } else {\n\t            // autoplay\n\t            if (this.option.autoplay && !isMobile) {\n\t                this.play();\n\t            } else if (isMobile) {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * comment\n\t         */\n\t        var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n\t        var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n\t        var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n\t        var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n\t        var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n\t        var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\t\n\t        var htmlEncode = function htmlEncode(str) {\n\t            return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\").replace(/\\//g, \"&#x2f;\");\n\t        };\n\t\n\t        var sendComment = function sendComment() {\n\t            commentInput.blur();\n\t\n\t            // text can't be empty\n\t            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n\t                alert(getTran('Please input danmaku!'));\n\t                return;\n\t            }\n\t\n\t            var danmakuData = {\n\t                token: _this.option.danmaku.token,\n\t                player: _this.option.danmaku.id,\n\t                author: 'DIYgod',\n\t                time: _this.video.currentTime,\n\t                text: commentInput.value,\n\t                color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n\t                type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n\t            };\n\t            var xhr = new XMLHttpRequest();\n\t            xhr.onreadystatechange = function () {\n\t                if (xhr.readyState === 4) {\n\t                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                        var response = JSON.parse(xhr.responseText);\n\t                        if (response.code !== 1) {\n\t                            alert(response.msg);\n\t                        } else {\n\t                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n\t                        }\n\t                    } else {\n\t                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                    }\n\t                }\n\t            };\n\t            xhr.open('post', _this.option.danmaku.api, true);\n\t            xhr.send(JSON.stringify(danmakuData));\n\t\n\t            commentInput.value = '';\n\t            closeComment();\n\t            _this.dan.splice(_this.danIndex, 0, danmakuData);\n\t            _this.danIndex++;\n\t            var item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n\t            item.style.border = \"2px solid \" + _this.option.theme;\n\t        };\n\t\n\t        var closeCommentSetting = function closeCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t        var toggleCommentSetting = function toggleCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            } else {\n\t                commentSettingBox.classList.add('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t\n\t        var disableHide = 0;\n\t        var closeComment = function closeComment() {\n\t            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n\t                commentBox.classList.remove('dplayer-comment-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                clearInterval(disableHide);\n\t                _this.element.classList.remove('dplayer-show-controller');\n\t                closeCommentSetting();\n\t            }\n\t        };\n\t        var openComment = function openComment() {\n\t            commentBox.classList.add('dplayer-comment-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t            disableHide = setInterval(function () {\n\t                clearTimeout(hideTime);\n\t            }, 1000);\n\t            _this.element.classList.add('dplayer-show-controller');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeComment();\n\t        });\n\t        commentIcon.addEventListener('click', function () {\n\t            openComment();\n\t            setTimeout(function () {\n\t                commentInput.focus();\n\t            }, 300);\n\t        });\n\t        commentSettingIcon.addEventListener('click', function () {\n\t            toggleCommentSetting();\n\t        });\n\t\n\t        // comment setting box\n\t        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n\t            var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n\t            if (sele) {\n\t                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n\t            }\n\t        });\n\t\n\t        commentInput.addEventListener('click', function () {\n\t            closeCommentSetting();\n\t        });\n\t        commentInput.addEventListener('keydown', function (e) {\n\t            var event = e || window.event;\n\t            if (event.keyCode === 13) {\n\t                sendComment();\n\t            }\n\t        });\n\t\n\t        commentSendIcon.addEventListener('click', sendComment);\n\t\n\t        /**\n\t         * full screen\n\t         */\n\t        var resetAnimation = function resetAnimation() {\n\t            danWidth = danContainer.offsetWidth;\n\t            var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t            for (var _i8 = 0; _i8 < items.length; _i8++) {\n\t                items[_i8].style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t            }\n\t        };\n\t\n\t        this.element.addEventListener('fullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('mozfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('webkitfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                if (_this.element.requestFullscreen) {\n\t                    _this.element.requestFullscreen();\n\t                } else if (_this.element.mozRequestFullScreen) {\n\t                    _this.element.mozRequestFullScreen();\n\t                } else if (_this.element.webkitRequestFullscreen) {\n\t                    _this.element.webkitRequestFullscreen();\n\t                }\n\t            } else {\n\t                if (document.cancelFullScreen) {\n\t                    document.cancelFullScreen();\n\t                } else if (document.mozCancelFullScreen) {\n\t                    document.mozCancelFullScreen();\n\t                } else if (document.webkitCancelFullScreen) {\n\t                    document.webkitCancelFullScreen();\n\t                }\n\t            }\n\t            resetAnimation();\n\t        });\n\t\n\t        /**\n\t         * hot key\n\t         */\n\t        var handleKeyDown = function handleKeyDown(e) {\n\t            var tag = document.activeElement.tagName.toUpperCase();\n\t            var editable = document.activeElement.getAttribute('contenteditable');\n\t            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n\t                var event = e || window.event;\n\t                var percentage = void 0;\n\t                switch (event.keyCode) {\n\t                    case 32:\n\t                        event.preventDefault();\n\t                        _this.toggle();\n\t                        break;\n\t                    case 37:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime - 5;\n\t                        break;\n\t                    case 39:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime + 5;\n\t                        break;\n\t                    case 38:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume + 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                    case 40:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume - 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                }\n\t            }\n\t        };\n\t        if (this.option.hotkey) {\n\t            document.addEventListener('keydown', handleKeyDown);\n\t        }\n\t\n\t        /**\n\t         * right key\n\t         */\n\t        var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n\t        this.element.addEventListener('contextmenu', function (e) {\n\t            var event = e || window.event;\n\t            event.preventDefault();\n\t            menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n\t            menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n\t            menu.classList.add('dplayer-menu-show');\n\t\n\t            mask.classList.add('dplayer-mask-show');\n\t            mask.addEventListener('click', function () {\n\t                mask.classList.remove('dplayer-mask-show');\n\t                menu.classList.remove('dplayer-menu-show');\n\t            });\n\t        });\n\t\n\t        /**\n\t         * Screenshot\n\t         */\n\t        if (this.option.screenshot) {\n\t            (function () {\n\t                var camareIcon = _this.element.getElementsByClassName('dplayer-camera-icon')[0];\n\t                camareIcon.addEventListener('click', function () {\n\t                    var canvas = document.createElement(\"canvas\");\n\t                    canvas.width = _this.video.videoWidth;\n\t                    canvas.height = _this.video.videoHeight;\n\t                    canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n\t\n\t                    camareIcon.href = canvas.toDataURL();\n\t                    camareIcon.download = \"DPlayer.png\";\n\t                });\n\t            })();\n\t        }\n\t\n\t        index++;\n\t    }\n\t\n\t    /**\n\t     * Play music\n\t     */\n\t\n\t\n\t    _createClass(DPlayer, [{\n\t        key: \"play\",\n\t        value: function play(time) {\n\t            if (Object.prototype.toString.call(time) === '[object Number]') {\n\t                this.video.currentTime = time;\n\t            }\n\t            if (this.video.paused) {\n\t                this.shouldpause = false;\n\t\n\t                this.bezel.innerHTML = this.getSVG('play');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.playButton.innerHTML = this.getSVG('pause');\n\t\n\t                this.video.play();\n\t                if (this.playedTime) {\n\t                    this.clearTime();\n\t                }\n\t                this.setTime();\n\t                this.element.classList.add('dplayer-playing');\n\t                this.trigger('play');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Pause music\n\t         */\n\t\n\t    }, {\n\t        key: \"pause\",\n\t        value: function pause() {\n\t            if (!this.shouldpause || this.ended) {\n\t                this.shouldpause = true;\n\t                this.element.classList.remove('dplayer-loading');\n\t\n\t                this.bezel.innerHTML = this.getSVG('pause');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.ended = false;\n\t                this.playButton.innerHTML = this.getSVG('play');\n\t                this.video.pause();\n\t                this.clearTime();\n\t                this.element.classList.remove('dplayer-playing');\n\t                this.trigger('pause');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Set volume\n\t         */\n\t\n\t    }, {\n\t        key: \"volume\",\n\t        value: function volume(percentage) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            this.updateBar('volume', percentage, 'width');\n\t            this.video.volume = percentage;\n\t            if (this.video.muted) {\n\t                this.video.muted = false;\n\t            }\n\t            this.switchVolumeIcon();\n\t        }\n\t\n\t        /**\n\t         * Toggle between play and pause\n\t         */\n\t\n\t    }, {\n\t        key: \"toggle\",\n\t        value: function toggle() {\n\t            if (this.video.paused) {\n\t                this.play();\n\t            } else {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * attach event\n\t         */\n\t\n\t    }, {\n\t        key: \"on\",\n\t        value: function on(name, func) {\n\t            if (typeof func === 'function') {\n\t                this.event[name].push(func);\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Switch to a new video\n\t         *\n\t         * @param {Object} video - new video info\n\t         * @param {Object} danmaku - new danmaku info\n\t         */\n\t\n\t    }, {\n\t        key: \"switchVideo\",\n\t        value: function switchVideo(video, danmaku) {\n\t            var _this2 = this;\n\t\n\t            this.video.src = video.url;\n\t            this.video.poster = video.pic ? video.pic : '';\n\t            this.video.currentTime = 0;\n\t            this.pause();\n\t            if (danmaku) {\n\t                (function () {\n\t                    _this2.dan = [];\n\t                    _this2.danIndex = 0;\n\t                    _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n\t                    _this2.updateBar('played', 0, 'width');\n\t                    _this2.updateBar('loaded', 0, 'width');\n\t                    _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n\t                    _this2.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                    _this2.danTunnel = {\n\t                        right: {},\n\t                        top: {},\n\t                        bottom: {}\n\t                    };\n\t                    _this2.itemDemo = _this2.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t                    var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t                    _this2.option.danmaku = danmaku;\n\t                    var xhr = new XMLHttpRequest();\n\t                    xhr.onreadystatechange = function () {\n\t                        if (xhr.readyState === 4) {\n\t                            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                (function () {\n\t                                    var response = JSON.parse(xhr.responseText);\n\t                                    if (response.code !== 1) {\n\t                                        alert(response.msg);\n\t                                    } else {\n\t                                        if (_this2.option.danmaku.addition) {\n\t                                            xhr.onreadystatechange = function () {\n\t                                                if (xhr.readyState === 4) {\n\t                                                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                        var response2 = JSON.parse(xhr.responseText);\n\t                                                        if (response2.code !== 1) {\n\t                                                            alert(response2.msg);\n\t                                                        } else {\n\t                                                            _this2.danIndex = 0;\n\t                                                            _this2.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                                return a.time - b.time;\n\t                                                            });\n\t                                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                            // autoplay\n\t                                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                                _this2.play();\n\t                                                            } else if (isMobile) {\n\t                                                                _this2.pause();\n\t                                                            }\n\t                                                        }\n\t                                                    } else {\n\t                                                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                    }\n\t                                                }\n\t                                            };\n\t                                            xhr.open('get', _this2.option.danmaku.addition[0], true);\n\t                                            xhr.send(null);\n\t                                        } else {\n\t                                            _this2.danIndex = 0;\n\t                                            _this2.dan = response.danmaku.sort(function (a, b) {\n\t                                                return a.time - b.time;\n\t                                            });\n\t                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                            // autoplay\n\t                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                _this2.play();\n\t                                            } else if (isMobile) {\n\t                                                _this2.pause();\n\t                                            }\n\t                                        }\n\t                                    }\n\t                                })();\n\t                            } else {\n\t                                console.log('Request was unsuccessful: ' + xhr.status);\n\t                            }\n\t                        }\n\t                    };\n\t                    var apiurl = void 0;\n\t                    if (_this2.option.danmaku.maximum) {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id + \"&max=\" + _this2.option.danmaku.maximum;\n\t                    } else {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id;\n\t                    }\n\t                    xhr.open('get', apiurl, true);\n\t                    xhr.send(null);\n\t                })();\n\t            }\n\t        }\n\t    }]);\n\t\n\t    return DPlayer;\n\t}();\n\t\n\tmodule.exports = DPlayer;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a <style> tag\n\t\n\t// load the styles\n\tvar content = __webpack_require__(2);\n\tif(typeof content === 'string') content = [[module.id, content, '']];\n\t// add the styles to the DOM\n\tvar update = __webpack_require__(4)(content, {});\n\tif(content.locals) module.exports = content.locals;\n\t// Hot Module Replacement\n\tif(false) {\n\t\t// When the styles change, update the <style> tags\n\t\tif(!content.locals) {\n\t\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\t\tupdate(newContent);\n\t\t\t});\n\t\t}\n\t\t// When the module is disposed, remove the <style> tags\n\t\tmodule.hot.dispose(function() { update(); });\n\t}\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(3)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t\t// tags it will allow on a page\r\n\t\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\t\r\n\t\t// By default, add <style> tags to the bottom of <head>.\r\n\t\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\t\r\n\t\tvar styles = listToStyles(list);\r\n\t\taddStylesToDom(styles, options);\r\n\t\r\n\t\treturn function update(newList) {\r\n\t\t\tvar mayRemove = [];\r\n\t\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\t\tvar item = styles[i];\r\n\t\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\t\tdomStyle.refs--;\r\n\t\t\t\tmayRemove.push(domStyle);\r\n\t\t\t}\r\n\t\t\tif(newList) {\r\n\t\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\t\taddStylesToDom(newStyles, options);\r\n\t\t\t}\r\n\t\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tfunction addStylesToDom(styles, options) {\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tif(domStyle) {\r\n\t\t\t\tdomStyle.refs++;\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t\t}\r\n\t\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar parts = [];\r\n\t\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction listToStyles(list) {\r\n\t\tvar styles = [];\r\n\t\tvar newStyles = {};\r\n\t\tfor(var i = 0; i < list.length; i++) {\r\n\t\t\tvar item = list[i];\r\n\t\t\tvar id = item[0];\r\n\t\t\tvar css = item[1];\r\n\t\t\tvar media = item[2];\r\n\t\t\tvar sourceMap = item[3];\r\n\t\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\t\tif(!newStyles[id])\r\n\t\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\t\telse\r\n\t\t\t\tnewStyles[id].parts.push(part);\r\n\t\t}\r\n\t\treturn styles;\r\n\t}\r\n\t\r\n\tfunction insertStyleElement(options, styleElement) {\r\n\t\tvar head = getHeadElement();\r\n\t\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\t\tif (options.insertAt === \"top\") {\r\n\t\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\thead.appendChild(styleElement);\r\n\t\t\t}\r\n\t\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t\t} else if (options.insertAt === \"bottom\") {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction removeStyleElement(styleElement) {\r\n\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\t\tif(idx >= 0) {\r\n\t\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction createStyleElement(options) {\r\n\t\tvar styleElement = document.createElement(\"style\");\r\n\t\tstyleElement.type = \"text/css\";\r\n\t\tinsertStyleElement(options, styleElement);\r\n\t\treturn styleElement;\r\n\t}\r\n\t\r\n\tfunction createLinkElement(options) {\r\n\t\tvar linkElement = document.createElement(\"link\");\r\n\t\tlinkElement.rel = \"stylesheet\";\r\n\t\tinsertStyleElement(options, linkElement);\r\n\t\treturn linkElement;\r\n\t}\r\n\t\r\n\tfunction addStyle(obj, options) {\r\n\t\tvar styleElement, update, remove;\r\n\t\r\n\t\tif (options.singleton) {\r\n\t\t\tvar styleIndex = singletonCounter++;\r\n\t\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t\t} else if(obj.sourceMap &&\r\n\t\t\ttypeof URL === \"function\" &&\r\n\t\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\t\ttypeof Blob === \"function\" &&\r\n\t\t\ttypeof btoa === \"function\") {\r\n\t\t\tstyleElement = createLinkElement(options);\r\n\t\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t\tif(styleElement.href)\r\n\t\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tstyleElement = createStyleElement(options);\r\n\t\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t};\r\n\t\t}\r\n\t\r\n\t\tupdate(obj);\r\n\t\r\n\t\treturn function updateStyle(newObj) {\r\n\t\t\tif(newObj) {\r\n\t\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tupdate(obj = newObj);\r\n\t\t\t} else {\r\n\t\t\t\tremove();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tvar replaceText = (function () {\r\n\t\tvar textStore = [];\r\n\t\r\n\t\treturn function (index, replacement) {\r\n\t\t\ttextStore[index] = replacement;\r\n\t\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t\t};\r\n\t})();\r\n\t\r\n\tfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\t\tvar css = remove ? \"\" : obj.css;\r\n\t\r\n\t\tif (styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t\t} else {\r\n\t\t\tvar cssNode = document.createTextNode(css);\r\n\t\t\tvar childNodes = styleElement.childNodes;\r\n\t\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\t\tif (childNodes.length) {\r\n\t\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t\t} else {\r\n\t\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction applyToTag(styleElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar media = obj.media;\r\n\t\r\n\t\tif(media) {\r\n\t\t\tstyleElement.setAttribute(\"media\", media)\r\n\t\t}\r\n\t\r\n\t\tif(styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = css;\r\n\t\t} else {\r\n\t\t\twhile(styleElement.firstChild) {\r\n\t\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t\t}\r\n\t\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction updateLink(linkElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar sourceMap = obj.sourceMap;\r\n\t\r\n\t\tif(sourceMap) {\r\n\t\t\t// http://stackoverflow.com/a/26603875\r\n\t\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t\t}\r\n\t\r\n\t\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\t\r\n\t\tvar oldSrc = linkElement.href;\r\n\t\r\n\t\tlinkElement.href = URL.createObjectURL(blob);\r\n\t\r\n\t\tif(oldSrc)\r\n\t\t\tURL.revokeObjectURL(oldSrc);\r\n\t}\r\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** DPlayer.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d31a2bec8d115f8be0c\n **/","console.log(\"\\n %c DPlayer 1.1.2 %c http://dplayer.js.org \\n\\n\",\"color: #fadfa3; background: #030307; padding:5px 0;\",\"background: #fadfa3; padding:5px 0;\");\n\nrequire('./DPlayer.scss');\n\nlet index = 0;\n\nclass DPlayer {\n    /**\n     * DPlayer constructor function\n     *\n     * @param {Object} option - See README\n     * @constructor\n     */\n    constructor(option) {\n        const svg = {\n            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n        };\n        this.getSVG = (type) => {\n            return `\n                <svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" height=\"100%\" version=\"1.1\" viewBox=\"${svg[type][0]}\" width=\"100%\">\n                    <use xlink:href=\"#dplayer-${type}\"></use>\n                    <path class=\"dplayer-fill\" d=\"${svg[type][1]}\" id=\"dplayer-${type}\"></path>\n                </svg>\n            `;\n        };\n\n        this.option = option;\n\n        const isMobile = /mobile/i.test(window.navigator.userAgent);\n        // compatibility: some mobile browsers don't suppose autoplay\n        if (isMobile) {\n            this.option.autoplay = false;\n        }\n\n        // default options\n        const defaultOption = {\n            element: document.getElementsByClassName('dplayer')[0],\n            autoplay: false,\n            theme: '#b7daff',\n            loop: false,\n            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n            screenshot: false,\n            hotkey: true,\n            preload: 'auto'\n        };\n        for (let defaultKey in defaultOption) {\n            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n                this.option[defaultKey] = defaultOption[defaultKey];\n            }\n        }\n\n        const tranZH = {\n            'Danmaku is loading': '弹幕加载中',\n            'Top': '顶部',\n            'Bottom': '底部',\n            'Rolling': '滚动',\n            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n            'About author': '关于作者',\n            'DPlayer feedback': '播放器意见反馈',\n            'About DPlayer': '关于 DPlay 播放器',\n            'Loop': '洗脑循环',\n            'Speed': '速度',\n            'Opacity for danmaku': '弹幕透明度',\n            'Normal': '正常',\n            'Please input danmaku!': '要输入弹幕内容啊喂!',\n            'Set danmaku color': '设置弹幕颜色',\n            'Set danmaku type': '设置弹幕类型',\n            'Danmaku': '弹幕'\n        };\n        const getTran = (text) => {\n            if (this.option.lang === 'en') {\n                return text;\n            }\n            else if (this.option.lang === 'zh') {\n                return tranZH[text];\n            }\n        };\n\n        /**\n         * Update progress bar, including loading progress bar and play progress bar\n         *\n         * @param {String} type - Point out which bar it is, should be played loaded or volume\n         * @param {Number} percentage\n         * @param {String} direction - Point out the direction of this bar, Should be height or width\n         */\n        this.updateBar = (type, percentage, direction) => {\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n        };\n\n        // define DPlayer events\n        const eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n        this.event = {};\n        for (let i = 0; i < eventTypes.length; i++) {\n            this.event[eventTypes[i]] = [];\n        }\n        this.trigger = (type) => {\n            for (let i = 0; i < this.event[type].length; i++) {\n                this.event[type][i]();\n            }\n        };\n\n        this.element = this.option.element;\n        if (!this.option.danmaku) {\n            this.element.classList.add('dplayer-no-danmaku');\n        }\n\n        this.element.innerHTML = `\n            <div class=\"dplayer-mask\"></div>\n            <div class=\"dplayer-video-wrap\">\n                <video class=\"dplayer-video\" ${this.option.video.pic ? `poster=\"${this.option.video.pic}\"` : ``} webkit-playsinline ${this.option.screenshot ? `crossorigin=\"anonymous\"` : ``} preload=\"${this.option.preload}\" src=\"${this.option.video.url}\"></video>\n                <div class=\"dplayer-danmaku\">\n                    <div class=\"dplayer-danmaku-item dplayer-danmaku-item--demo\"></div>\n                </div>\n                <div class=\"dplayer-bezel\">\n                    <span class=\"dplayer-bezel-icon\"></span>\n                    ${this.option.danmaku ? `<span class=\"dplayer-danloading\">${getTran('Danmaku is loading')}</span>` : ``}\n                    <span class=\"diplayer-loading-icon\">\n                        <svg height=\"100%\" version=\"1.1\" viewBox=\"0 0 22 22\" width=\"100%\">\n                            <svg x=\"7\" y=\"1\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-0\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-1\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"13\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-2\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-3\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"7\" y=\"13\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-4\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-5\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"1\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-6\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-7\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class=\"dplayer-controller-mask\"></div>\n            <div class=\"dplayer-controller\">\n                <div class=\"dplayer-icons dplayer-icons-left\">\n                    <button class=\"dplayer-icon dplayer-play-icon\">`\n            +           this.getSVG('play')\n            + `     </button>\n                    <div class=\"dplayer-volume\" ${isMobile ? 'style=\"display: none;\"' : ''}>\n                        <button class=\"dplayer-icon dplayer-volume-icon\">`\n            +               this.getSVG('volume-down')\n            + `         </button>\n                        <div class=\"dplayer-volume-bar-wrap\">\n                            <div class=\"dplayer-volume-bar\">\n                                <div class=\"dplayer-volume-bar-inner\" style=\"width: 70%; background: ${this.option.theme};\">\n                                    <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class=\"dplayer-time\"><span class=\"dplayer-ptime\">0:00</span> / <span class=\"dplayer-dtime\">0:00</span></span>\n                </div>\n                <div class=\"dplayer-icons dplayer-icons-right\">\n                    ${this.option.screenshot ? `\n                    <a href=\"#\" class=\"dplayer-icon dplayer-camera-icon\" ${isMobile ? 'style=\"display: none;\"' : ''}dplayer-volume>`\n            +           this.getSVG('camera')\n            + `     </a>\n                    ` : ``}\n                    <div class=\"dplayer-comment\">\n                        <button class=\"dplayer-icon dplayer-comment-icon\">`\n            +               this.getSVG('comment')\n            + `         </button>\n                        <div class=\"dplayer-comment-box\">\n                            <button class=\"dplayer-icon dplayer-comment-setting-icon\">`\n            +                   this.getSVG('menu')\n            + `             </button>\n                            <div class=\"dplayer-comment-setting-box\">\n                                <div class=\"dplayer-comment-setting-color\">\n                                   <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku color')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#fff\" checked>\n                                        <span style=\"background: #fff; border: 1px solid rgba(0,0,0,.1);\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#e54256\">\n                                        <span style=\"background: #e54256\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#ffe133\">\n                                        <span style=\"background: #ffe133\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#64DD17\">\n                                        <span style=\"background: #64DD17\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#39ccff\">\n                                        <span style=\"background: #39ccff\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#D500F9\">\n                                        <span style=\"background: #D500F9\"></span>\n                                    </label>\n                                </div>\n                                <div class=\"dplayer-comment-setting-type\">\n                                    <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku type')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"top\">\n                                        <span>${getTran('Top')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"right\" checked>\n                                        <span>${getTran('Rolling')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"bottom\">\n                                        <span>${getTran('Bottom')}</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class=\"dplayer-comment-input\" type=\"text\" placeholder=\"${getTran('Input danmaku, hit Enter')}\" maxlength=\"30\">\n                            <button class=\"dplayer-icon dplayer-send-icon\">`\n            +                   this.getSVG('send')\n            + `             </button>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting\">\n                        <button class=\"dplayer-icon dplayer-setting-icon\">`\n            +               this.getSVG('setting')\n            + `         </button>\n                        <div class=\"dplayer-setting-box\"></div>\n                    </div>\n                    <button class=\"dplayer-icon dplayer-full-icon\">`\n            +           this.getSVG('full')\n            + `     </button>\n                </div>\n                <div class=\"dplayer-bar-wrap\">\n                    <div class=\"dplayer-bar\">\n                        <div class=\"dplayer-loaded\" style=\"width: 0;\"></div>\n                        <div class=\"dplayer-played\" style=\"width: 0; background: ${this.option.theme}\">\n                            <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"dplayer-menu\">\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"http://diygod.me/\">${getTran('About author')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer/issues\">${getTran('DPlayer feedback')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer\">${getTran('About DPlayer')}</a></span></div>\n            </div>\n        `;\n\n        // arrow style\n        var arrow = this.element.offsetWidth <= 500;\n        if (arrow) {\n            var arrowStyle = document.createElement('style');\n            arrowStyle.innerHTML = `.dplayer .dplayer-danmaku{font-size:18px}`;\n            document.head.appendChild(arrowStyle);\n        }\n\n        // get this video object\n        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\n        // Support HTTP Live Streaming\n        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n            this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n            const hls = new Hls();\n            hls.attachMedia(this.video);\n            hls.on(Hls.Events.MEDIA_ATTACHED, () => {\n                hls.loadSource(this.option.video.url);\n                hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n                    console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n                });\n            });\n        }\n\n        // Support FLV\n        if (this.option.video.url.match(/(flv)$/i) && flvjs.isSupported()) {\n            const flvPlayer = flvjs.createPlayer({\n                type: 'flv',\n                url: this.option.video.url\n            });\n            flvPlayer.attachMediaElement(this.video);\n            flvPlayer.load();\n        }\n\n        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n        this.bezel.addEventListener('animationend', () => {\n            this.bezel.classList.remove('dplayer-bezel-transition');\n        });\n\n        // play and pause button\n        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n        this.shouldpause = true;\n        this.playButton.addEventListener('click', () => {\n            this.toggle();\n        });\n\n        const videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n        const conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n        if (!isMobile) {\n            videoWrap.addEventListener('click', () => {\n                this.toggle();\n            });\n            conMask.addEventListener('click', () => {\n                this.toggle();\n            });\n        }\n        else {\n            const toggleController = () => {\n                if (this.element.classList.contains('dplayer-hide-controller')) {\n                    this.element.classList.remove('dplayer-hide-controller');\n                }\n                else {\n                    this.element.classList.add('dplayer-hide-controller');\n                }\n            };\n            videoWrap.addEventListener('click', toggleController);\n            conMask.addEventListener('click', toggleController);\n        }\n\n\n        /**\n         * Parse second to 00:00 format\n         *\n         * @param {Number} second\n         * @return {String} 00:00 format\n         */\n        const secondToTime = (second) => {\n            const add0 = (num) => {\n                return num < 10 ? '0' + num : '' + num;\n            };\n            const min = parseInt(second / 60);\n            const sec = parseInt(second - min * 60);\n            return add0(min) + ':' + add0(sec);\n        };\n\n        /**\n         * control play progress\n         */\n        // get element's view position\n        const getElementViewLeft = (element) => {\n            let actualLeft = element.offsetLeft;\n            let current = element.offsetParent;\n            let elementScrollLeft;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n            return actualLeft - elementScrollLeft;\n        };\n\n        const getElementViewTop = (element) => {\n            let actualTop = element.offsetTop;\n            let current = element.offsetParent;\n            let elementScrollTop;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n            return actualTop - elementScrollTop;\n        };\n\n        let bar = {};\n        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n        const pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n        let barWidth;\n\n        if (this.option.danmaku) {\n            this.video.addEventListener('seeking', () => {\n                for (let i = 0; i < this.dan.length; i++) {\n                    if (this.dan[i].time >= this.video.currentTime) {\n                        this.danIndex = i;\n                        return;\n                    }\n                    this.danIndex = this.dan.length;\n                }\n            });\n        }\n\n        let lastPlayPos = 0;\n        let currentPlayPos = 0;\n        let bufferingDetected = false;\n        let danmakuTime;\n        this.setTime = () => {\n            this.playedTime = setInterval(() => {\n                // whether the video is buffering\n                currentPlayPos = this.video.currentTime;\n                if (!bufferingDetected\n                    && currentPlayPos < (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.add('dplayer-loading');\n                    bufferingDetected = true;\n                }\n                if (bufferingDetected\n                    && currentPlayPos > (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.remove('dplayer-loading');\n                    bufferingDetected = false;\n                }\n                lastPlayPos = currentPlayPos;\n\n                this.updateBar('played', this.video.currentTime / this.video.duration, 'width');\n                this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(this.video.currentTime);\n                this.trigger('playing');\n            }, 100);\n            if (this.option.danmaku) {\n                danmakuTime = setInterval(() => {\n                    let item = this.dan[this.danIndex];\n                    while (item && this.video.currentTime >= parseFloat(item.time)) {\n                        danmakuIn(item.text, item.color, item.type);\n                        item = this.dan[++this.danIndex];\n                    }\n                }, 0);\n            }\n        };\n        this.clearTime = () => {\n            clearInterval(this.playedTime);\n            if (this.option.danmaku) {\n                clearInterval(danmakuTime);\n            }\n        };\n\n        pbar.addEventListener('click', (event) => {\n            const e = event || window.event;\n            barWidth = pbar.clientWidth;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n        });\n\n        const thumbMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * this.video.duration);\n        };\n\n        const thumbUp = () => {\n            document.removeEventListener('mouseup', thumbUp);\n            document.removeEventListener('mousemove', thumbMove);\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n            this.setTime();\n        };\n\n        pbar.addEventListener('mousedown', () => {\n            barWidth = pbar.clientWidth;\n            this.clearTime();\n            document.addEventListener('mousemove', thumbMove);\n            document.addEventListener('mouseup', thumbUp);\n        });\n\n\n        /**\n         * control volume\n         */\n        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n        const volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n        const volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n        const volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n        const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n        const vWidth = 35;\n\n        this.switchVolumeIcon = () => {\n            const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n            if (this.video.volume >= 0.8) {\n                volumeicon.innerHTML = this.getSVG('volume-up');\n            }\n            else if (this.video.volume > 0) {\n                volumeicon.innerHTML = this.getSVG('volume-down');\n            }\n            else {\n                volumeicon.innerHTML = this.getSVG('volume-off');\n            }\n        };\n        const volumeMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        };\n        const volumeUp = () => {\n            document.removeEventListener('mouseup', volumeUp);\n            document.removeEventListener('mousemove', volumeMove);\n            volumeEle.classList.remove('dplayer-volume-active');\n        };\n\n        volumeBarWrapWrap.addEventListener('click', (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        });\n        volumeBarWrapWrap.addEventListener('mousedown', () => {\n            document.addEventListener('mousemove', volumeMove);\n            document.addEventListener('mouseup', volumeUp);\n            volumeEle.classList.add('dplayer-volume-active');\n        });\n        volumeicon.addEventListener('click', () => {\n            if (this.video.muted) {\n                this.video.muted = false;\n                this.switchVolumeIcon();\n                this.updateBar('volume', this.video.volume, 'width');\n            }\n            else {\n                this.video.muted = true;\n                volumeicon.innerHTML = this.getSVG('volume-off');\n                this.updateBar('volume', 0, 'width');\n            }\n        });\n\n\n        /**\n         * auto hide controller\n         */\n        let hideTime = 0;\n        if (!isMobile) {\n            const hideController = () => {\n                this.element.classList.remove('dplayer-hide-controller');\n                clearTimeout(hideTime);\n                hideTime = setTimeout(() => {\n                    if (this.video.played.length) {\n                        this.element.classList.add('dplayer-hide-controller');\n                        closeSetting();\n                        closeComment();\n                    }\n                }, 2000);\n            };\n            this.element.addEventListener('mousemove', hideController);\n            this.element.addEventListener('click', hideController);\n        }\n\n\n        /***\n         * setting\n         */\n        let danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n        const settingHTML = {\n            'original': `\n                    <div class=\"dplayer-setting-item dplayer-setting-speed\">\n                        <span class=\"dplayer-label\">${getTran('Speed')}</span>\n                        <div class=\"dplayer-toggle\">`\n            +           this.getSVG('right')\n            + `     </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-loop\">\n                        <span class=\"dplayer-label\">${getTran('Loop')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-toggle-setting-input\" type=\"checkbox\" name=\"dplayer-toggle\">\n                            <label for=\"dplayer-toggle\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-showdan\">\n                        <span class=\"dplayer-label\">${getTran('Danmaku')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-showdan-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-dan\">\n                            <label for=\"dplayer-toggle-dan\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danmaku\">\n                        <span class=\"dplayer-label\">${getTran('Opacity for danmaku')}</span>\n                        <div class=\"dplayer-danmaku-bar-wrap\">\n                            <div class=\"dplayer-danmaku-bar\">\n                                <div class=\"dplayer-danmaku-bar-inner\" style=\"width: ${danOpacity * 100}%\">\n                                    <span class=\"dplayer-thumb\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`,\n            'speed': `\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.5\">\n                        <span class=\"dplayer-label\">0.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.75\">\n                        <span class=\"dplayer-label\">0.75</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1\">\n                        <span class=\"dplayer-label\">${getTran('Normal')}</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.25\">\n                        <span class=\"dplayer-label\">1.25</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.5\">\n                        <span class=\"dplayer-label\">1.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"2\">\n                        <span class=\"dplayer-label\">2</span>\n                    </div>`\n        };\n\n        // toggle setting box\n        const settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n        const settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n        const mask = this.element.getElementsByClassName('dplayer-mask')[0];\n        settingBox.innerHTML = settingHTML.original;\n\n        const closeSetting = () => {\n            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n                settingBox.classList.remove('dplayer-setting-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                setTimeout(() => {\n                    settingBox.classList.remove('dplayer-setting-box-narrow');\n                    settingBox.innerHTML = settingHTML.original;\n                    settingEvent();\n                }, 300);\n            }\n        };\n        const openSetting = () => {\n            settingBox.classList.add('dplayer-setting-box-open');\n            mask.classList.add('dplayer-mask-show');\n        };\n\n        mask.addEventListener('click', () => {\n            closeSetting();\n        });\n        settingIcon.addEventListener('click', () => {\n            openSetting();\n        });\n\n        let loop = this.option.loop;\n        const danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n        let showdan = true;\n        const settingEvent = () => {\n            // loop control\n            const loopEle = this.element.getElementsByClassName('dplayer-setting-loop')[0];\n            const loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\n            loopToggle.checked = loop;\n\n            loopEle.addEventListener('click', () => {\n                loopToggle.checked = !loopToggle.checked;\n                if (loopToggle.checked) {\n                    loop = true;\n                    this.video.loop = loop;\n                }\n                else {\n                    loop = false;\n                    this.video.loop = loop;\n                }\n                closeSetting();\n            });\n\n            // show danmaku control\n            const showDanEle = this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n            const showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\n            showDanToggle.checked = showdan;\n\n            showDanEle.addEventListener('click', () => {\n                showDanToggle.checked = !showDanToggle.checked;\n                if (showDanToggle.checked) {\n                    showdan = true;\n                    if (this.option.danmaku) {\n                        for (let i = 0; i < this.dan.length; i++) {\n                            if (this.dan[i].time >= this.video.currentTime) {\n                                this.danIndex = i;\n                                break;\n                            }\n                            this.danIndex = this.dan.length;\n                        }\n                        danmakuTime = setInterval(() => {\n                            let item = this.dan[this.danIndex];\n                            while (item && this.video.currentTime >= parseFloat(item.time)) {\n                                danmakuIn(item.text, item.color, item.type);\n                                item = this.dan[++this.danIndex];\n                            }\n                        }, 0);\n                    }\n                }\n                else {\n                    showdan = false;\n                    if (this.option.danmaku) {\n                        clearInterval(danmakuTime);\n                        danContainer.innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n                        this.danTunnel = {\n                            right: {},\n                            top: {},\n                            bottom: {}\n                        };\n                        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n                    }\n                }\n                closeSetting();\n            });\n\n            // speed control\n            const speedEle = this.element.getElementsByClassName('dplayer-setting-speed')[0];\n            speedEle.addEventListener('click', () => {\n                settingBox.classList.add('dplayer-setting-box-narrow');\n                settingBox.innerHTML = settingHTML.speed;\n\n                const speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n                for (let i = 0; i < speedItem.length; i++) {\n                    speedItem[i].addEventListener('click', () => {\n                        this.video.playbackRate = speedItem[i].dataset.speed;\n                        closeSetting();\n                    });\n                }\n            });\n\n            if (this.option.danmaku) {\n                // danmaku opacity\n                bar.danmakuBar = this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n                const danmakuBarWrapWrap = this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n                const danmakuBarWrap = this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n                const danmakuSettingBox = this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n                const dWidth = 130;\n                this.updateBar('danmaku', danOpacity, 'width');\n\n                const danmakuMove = (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                };\n                const danmakuUp = () => {\n                    document.removeEventListener('mouseup', danmakuUp);\n                    document.removeEventListener('mousemove', danmakuMove);\n                    danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n                };\n\n                danmakuBarWrapWrap.addEventListener('click', (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                });\n                danmakuBarWrapWrap.addEventListener('mousedown', () => {\n                    document.addEventListener('mousemove', danmakuMove);\n                    document.addEventListener('mouseup', danmakuUp);\n                    danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n                });\n            }\n        };\n        settingEvent();\n\n\n        /**\n         * video events\n         */\n        // show video time: the metadata has loaded or changed\n        this.video.addEventListener('durationchange', () => {\n            if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n                this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(this.video.duration);\n            }\n        });\n\n        // show video loaded bar: to inform interested parties of progress downloading the media\n        this.video.addEventListener('progress', () => {\n            const percentage = this.video.buffered.length ? this.video.buffered.end(this.video.buffered.length - 1) / this.video.duration : 0;\n            this.updateBar('loaded', percentage, 'width');\n        });\n\n        // video download error: an error occurs\n        this.video.addEventListener('error', () => {\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = `Error happens ╥﹏╥`;\n            this.trigger('pause');\n        });\n\n        // video can play: enough data is available that the media can be played\n        this.video.addEventListener('canplay', () => {\n            this.trigger('canplay');\n        });\n\n        // music end\n        this.ended = false;\n        this.video.addEventListener('ended', () => {\n            this.updateBar('played', 1, 'width');\n            if (!loop) {\n                this.ended = true;\n                this.pause();\n                this.trigger('ended');\n            }\n        });\n\n        // control volume\n        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\n        // loop\n        this.video.loop = loop;\n\n        // set duration time\n        if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n        }\n\n\n        /**\n         * danmaku display\n         */\n        const itemHeight = arrow ? 24: 30;\n        let danWidth;\n        let danHeight;\n        let itemY;\n        this.danTunnel = {\n            right: {},\n            top: {},\n            bottom: {}\n        };\n\n        const danItemRight = (ele) => {\n            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n        };\n\n        const danSpeed = (width) => {\n            return (danWidth + width) / 5;\n        };\n\n        const getTunnel = (ele, type, width) => {\n            const tmp = danWidth / danSpeed(width);\n\n            for (let i = 0; ; i++) {\n                let item = this.danTunnel[type][i + ''];\n                if (item && item.length) {\n                    for (let j = 0; j < item.length; j++) {\n                        const danRight = danItemRight(item[j]) - 10;\n                        if (danRight <= danWidth - (tmp * danSpeed(item[j].offsetWidth)) || danRight <= 0) {\n                            break;\n                        }\n                        if (j === item.length - 1) {\n                            this.danTunnel[type][i + ''].push(ele);\n                            ele.addEventListener('animationend', () => {\n                                this.danTunnel[type][i + ''].splice(0, 1);\n                            });\n                            return i % itemY;\n                        }\n                    }\n                }\n                else {\n                    this.danTunnel[type][i + ''] = [ele];\n                    ele.addEventListener('animationend', () => {\n                        this.danTunnel[type][i + ''].splice(0, 1);\n                    });\n                    return i % itemY;\n                }\n            }\n        };\n\n        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n        const danmakuIn = (text, color, type) => {\n            danWidth = danContainer.offsetWidth;\n            danHeight = danContainer.offsetHeight;\n            itemY = parseInt(danHeight / itemHeight);\n            let item = document.createElement(`div`);\n            item.classList.add(`dplayer-danmaku-item`);\n            item.classList.add(`dplayer-danmaku-${type}`);\n            item.innerHTML = text;\n            item.style.opacity = danOpacity;\n            item.style.color = color;\n            item.addEventListener('animationend', () => {\n                danContainer.removeChild(item);\n            });\n\n            // measure\n            this.itemDemo.innerHTML = text;\n            let itemWidth = this.itemDemo.offsetWidth;\n\n            // adjust\n            switch (type) {\n                case 'right':\n                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n                    item.style.width = (itemWidth + 1) + 'px';\n                    item.style.transform = `translateX(-${danWidth}px)`;\n                    break;\n                case 'top':\n                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                case 'bottom':\n                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                default:\n                    console.error(`Can't handled danmaku type: ${type}`);\n            }\n\n            // insert\n            danContainer.appendChild(item);\n\n            // move\n            item.classList.add(`dplayer-danmaku-move`);\n\n            return item;\n        };\n\n        // danmaku\n        if (this.option.danmaku) {\n            this.danIndex = 0;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n        else {\n            // autoplay\n            if (this.option.autoplay && !isMobile) {\n                this.play();\n            }\n            else if (isMobile) {\n                this.pause();\n            }\n        }\n\n\n        /**\n         * comment\n         */\n        const commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n        const commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n        const commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n        const commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n        const commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n        const commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\n        const htmlEncode = (str) => {\n            return str.replace(/&/g, \"&amp;\")\n                .replace(/</g, \"&lt;\")\n                .replace(/>/g, \"&gt;\")\n                .replace(/\"/g, \"&quot;\")\n                .replace(/'/g, \"&#x27;\")\n                .replace(/\\//g, \"&#x2f;\");\n        };\n\n        const sendComment = () => {\n            commentInput.blur();\n\n            // text can't be empty\n            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n                alert(getTran('Please input danmaku!'));\n                return;\n            }\n\n            const danmakuData = {\n                token: this.option.danmaku.token,\n                player: this.option.danmaku.id,\n                author: 'DIYgod',\n                time: this.video.currentTime,\n                text: commentInput.value,\n                color: this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n                type: this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n            };\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            xhr.open('post', this.option.danmaku.api, true);\n            xhr.send(JSON.stringify(danmakuData));\n\n            commentInput.value = '';\n            closeComment();\n            this.dan.splice(this.danIndex, 0, danmakuData);\n            this.danIndex++;\n            const item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n            item.style.border = `2px solid ${this.option.theme}`;\n        };\n\n        const closeCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n        };\n        const toggleCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n            else {\n                commentSettingBox.classList.add('dplayer-comment-setting-open');\n            }\n        };\n\n        let disableHide = 0;\n        const closeComment = () => {\n            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n                commentBox.classList.remove('dplayer-comment-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                clearInterval(disableHide);\n                this.element.classList.remove('dplayer-show-controller');\n                closeCommentSetting();\n            }\n        };\n        const openComment = () => {\n            commentBox.classList.add('dplayer-comment-box-open');\n            mask.classList.add('dplayer-mask-show');\n            disableHide = setInterval(() => {\n                clearTimeout(hideTime);\n            }, 1000);\n            this.element.classList.add('dplayer-show-controller');\n        };\n\n        mask.addEventListener('click', () => {\n            closeComment();\n        });\n        commentIcon.addEventListener('click', () => {\n            openComment();\n            setTimeout(() => {\n                commentInput.focus();\n            }, 300);\n        });\n        commentSettingIcon.addEventListener('click', () => {\n            toggleCommentSetting();\n        });\n\n        // comment setting box\n        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', () => {\n            const sele = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n            if (sele) {\n                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n            }\n        });\n\n        commentInput.addEventListener('click', () => {\n            closeCommentSetting();\n        });\n        commentInput.addEventListener('keydown', (e) => {\n            const event = e || window.event;\n            if (event.keyCode === 13) {\n                sendComment();\n            }\n        });\n\n        commentSendIcon.addEventListener('click', sendComment);\n\n\n        /**\n         * full screen\n         */\n        const resetAnimation = () => {\n            danWidth = danContainer.offsetWidth;\n            const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n            for (let i = 0; i < items.length; i++) {\n                items[i].style.transform = `translateX(-${danWidth}px)`;\n            }\n        };\n\n        this.element.addEventListener('fullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('mozfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('webkitfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                if (this.element.requestFullscreen) {\n                    this.element.requestFullscreen();\n                }\n                else if (this.element.mozRequestFullScreen) {\n                    this.element.mozRequestFullScreen();\n                }\n                else if (this.element.webkitRequestFullscreen) {\n                    this.element.webkitRequestFullscreen();\n                }\n            }\n            else {\n                if (document.cancelFullScreen) {\n                    document.cancelFullScreen();\n                }\n                else if (document.mozCancelFullScreen) {\n                    document.mozCancelFullScreen();\n                }\n                else if (document.webkitCancelFullScreen) {\n                    document.webkitCancelFullScreen();\n                }\n            }\n            resetAnimation();\n        });\n\n        /**\n         * hot key\n         */\n        const handleKeyDown = (e) => {\n            const tag = document.activeElement.tagName.toUpperCase();\n            const editable = document.activeElement.getAttribute('contenteditable');\n            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n                const event = e || window.event;\n                let percentage;\n                switch (event.keyCode) {\n                    case 32:\n                        event.preventDefault();\n                        this.toggle();\n                        break;\n                    case 37:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime - 5;\n                        break;\n                    case 39:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime + 5;\n                        break;\n                    case 38:\n                        event.preventDefault();\n                        percentage = this.video.volume + 0.1;\n                        this.volume(percentage);\n                        break;\n                    case 40:\n                        event.preventDefault();\n                        percentage = this.video.volume - 0.1;\n                        this.volume(percentage);\n                        break;\n                }\n            }\n        };\n        if (this.option.hotkey) {\n            document.addEventListener('keydown', handleKeyDown);\n        }\n\n        /**\n         * right key\n         */\n        const menu = this.element.getElementsByClassName('dplayer-menu')[0];\n        this.element.addEventListener('contextmenu', (e) => {\n            const event = e || window.event;\n            event.preventDefault();\n            menu.style.left = event.clientX - this.element.getBoundingClientRect().left + 'px';\n            menu.style.top = event.clientY - this.element.getBoundingClientRect().top + 'px';\n            menu.classList.add('dplayer-menu-show');\n\n            mask.classList.add('dplayer-mask-show');\n            mask.addEventListener('click', () => {\n                mask.classList.remove('dplayer-mask-show');\n                menu.classList.remove('dplayer-menu-show');\n           });\n        });\n\n        /**\n         * Screenshot\n         */\n        if (this.option.screenshot) {\n            const camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n            camareIcon.addEventListener('click', () => {\n                const canvas = document.createElement(\"canvas\");\n                canvas.width = this.video.videoWidth;\n                canvas.height = this.video.videoHeight;\n                canvas.getContext('2d').drawImage(this.video, 0, 0, canvas.width, canvas.height);\n\n                camareIcon.href = canvas.toDataURL();\n                camareIcon.download = \"DPlayer.png\";\n            });\n        }\n\n        index++;\n    }\n\n    /**\n     * Play music\n     */\n    play(time) {\n        if (Object.prototype.toString.call(time) === '[object Number]') {\n            this.video.currentTime = time;\n        }\n        if (this.video.paused) {\n            this.shouldpause = false;\n\n            this.bezel.innerHTML = this.getSVG('play');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.playButton.innerHTML = this.getSVG('pause');\n\n            this.video.play();\n            if (this.playedTime) {\n                this.clearTime();\n            }\n            this.setTime();\n            this.element.classList.add('dplayer-playing');\n            this.trigger('play');\n        }\n    }\n\n    /**\n     * Pause music\n     */\n    pause() {\n        if (!this.shouldpause || this.ended) {\n            this.shouldpause = true;\n            this.element.classList.remove('dplayer-loading');\n\n            this.bezel.innerHTML = this.getSVG('pause');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.ended = false;\n            this.playButton.innerHTML = this.getSVG('play');\n            this.video.pause();\n            this.clearTime();\n            this.element.classList.remove('dplayer-playing');\n            this.trigger('pause');\n        }\n    }\n\n    /**\n     * Set volume\n     */\n    volume(percentage) {\n        percentage = percentage > 0 ? percentage : 0;\n        percentage = percentage < 1 ? percentage : 1;\n        this.updateBar('volume', percentage, 'width');\n        this.video.volume = percentage;\n        if (this.video.muted) {\n            this.video.muted = false;\n        }\n        this.switchVolumeIcon();\n    }\n\n    /**\n     * Toggle between play and pause\n     */\n    toggle() {\n        if (this.video.paused) {\n            this.play();\n        }\n        else {\n            this.pause();\n        }\n    }\n\n    /**\n     * attach event\n     */\n    on(name, func) {\n        if (typeof func === 'function') {\n            this.event[name].push(func);\n        }\n    }\n\n    /**\n     * Switch to a new video\n     *\n     * @param {Object} video - new video info\n     * @param {Object} danmaku - new danmaku info\n     */\n    switchVideo(video, danmaku) {\n        this.video.src = video.url;\n        this.video.poster = video.pic ? video.pic : '';\n        this.video.currentTime = 0;\n        this.pause();\n        if (danmaku) {\n            this.dan = [];\n            this.danIndex = 0;\n            this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n            this.updateBar('played', 0, 'width');\n            this.updateBar('loaded', 0, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n            this.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n            this.danTunnel = {\n                right: {},\n                top: {},\n                bottom: {}\n            };\n            this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n            const isMobile = /mobile/i.test(window.navigator.userAgent);\n            this.option.danmaku = danmaku;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.danIndex = 0;\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.danIndex = 0;\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n    }\n}\n\nmodule.exports = DPlayer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/DPlayer.js\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/DPlayer.scss\n ** module id = 1\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/DPlayer.scss\n ** module id = 2\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader/lib/css-base.js\n ** module id = 3\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/style-loader/addStyles.js\n ** module id = 4\n ** module chunks = 0\n **/"],"sourceRoot":""}
  • dplayer-for-wp/tags/1.1.2/readme.txt

    r1520736 r1530082  
    44Requires at least: 3.0.1
    55Tested up to: 4.6.1
    6 Stable tag: 1.0.9
     6Stable tag: 1.1.2
    77License: GPLv3
    88License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    3939
    4040== Changelog ==
     41
     42= 1.1.2 =
     43* Update DPlayer to version 1.1.2
     44* Add support for hls.min.js
     45* Add support for flv.min.js
    4146
    4247= 1.0.9 =
  • dplayer-for-wp/trunk/dplayer-admin.php

    r1507127 r1530082  
    6868            'kblog_danmaku_token'
    6969        );
     70       
     71        $enable_hls = '';
     72        if ( get_option( 'kblog_enable_hls' ) ) {
     73            $enable_hls = 'checked="true"';
     74        }
     75        $this->admin_table_row( 'Enable hls.js',
     76            'Live Video (HTTP Live Streaming, M3U8 format) support',
     77            "<input type='checkbox' name='kblog_enable_hls' id='kblog_enable_hls' value='1' $enable_hls />",
     78            'kblog_enable_hls'
     79        );
     80       
     81        $enable_flv = '';
     82        if ( get_option( 'kblog_enable_flv' ) ) {
     83            $enable_flv = 'checked="true"';
     84        }
     85        $this->admin_table_row( 'Enable flv.js',
     86            'FLV format support',
     87            "<input type='checkbox' name='kblog_enable_flv' id='kblog_enable_flv' value='1' $enable_flv />",
     88            'kblog_enable_flv'
     89        );
    7090
    7191        $this->table_foot();
     
    80100            update_option( 'kblog_danmaku_token', wp_unslash( $_POST['kblog_danmaku_token'] ) ); // input var okay
    81101        }
     102       
     103        update_option( 'kblog_enable_hls', array_key_exists( 'kblog_enable_hls', $_POST ) ); // input var okay
     104        update_option( 'kblog_enable_flv', array_key_exists( 'kblog_enable_flv', $_POST ) ); // input var okay
    82105    }
    83106
  • dplayer-for-wp/trunk/dplayer.php

    r1520735 r1530082  
    33* Plugin Name: DPlayer for WordPress
    44* Description: Wow, such a lovely HTML5 danmaku video player comes to WordPress
    5 * Version: 1.0.9
     5* Version: 1.1.2
    66* Author: 0xBBC
    77* Author URI: https://blog.0xbbc.com/
     
    107107    public static function add_script() {
    108108        if (!self::$add_script) {
    109             wp_enqueue_script( 'dplayer', plugins_url('js/DPlayer.min.js', __FILE__), false, '1.0.10', false );
     109            if ( get_option( 'kblog_enable_flv' ) ) {
     110                wp_enqueue_script( '0-dplayer-flv', plugins_url('js/plugin/flv.min.js', __FILE__), false, '1.1.2', false );
     111            }
     112            if ( get_option( 'kblog_enable_hls' ) ) {
     113                wp_enqueue_script( '0-dplayer-hls', plugins_url('js/plugin/hls.min.js', __FILE__), false, '1.1.2', false );
     114            }
     115            wp_enqueue_script( 'dplayer', plugins_url('js/DPlayer.min.js', __FILE__), false, '1.1.2', false );
    110116            wp_enqueue_script( 'init-dplayer', plugins_url('js/init-dplayer.js', __FILE__), false, '1.0.0', false );
    111117            self::$add_script = true;
  • dplayer-for-wp/trunk/js/DPlayer.min.js

    r1520735 r1530082  
    1 !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}(this,function(){return function(e){function t(n){if(a[n])return a[n].exports;var r=a[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},l=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();console.log("\n %c DPlayer 1.1.1 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),a(1);var o=0,i=function(){function e(t){var a=this;n(this,e);var l={play:["0 0 16 32","M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"],pause:["0 0 17 32","M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"],"volume-up":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"],"volume-down":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"],"volume-off":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"],loop:["0 0 32 32","M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z"],full:["0 0 32 33","M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"],setting:["0 0 32 28","M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"],right:["0 0 32 32","M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"],comment:["0 0 32 32","M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"],"comment-off":["0 0 32 32","M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"],send:["0 0 32 32","M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"],menu:["0 0 22 32","M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"],camera:["0 0 32 32","M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"]};this.getSVG=function(e){return'\n                <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="'+l[e][0]+'" width="100%">\n                    <use xlink:href="#dplayer-'+e+'"></use>\n                    <path class="dplayer-fill" d="'+l[e][1]+'" id="dplayer-'+e+'"></path>\n                </svg>\n            '},this.option=t;var i=/mobile/i.test(window.navigator.userAgent);i&&(this.option.autoplay=!1);var s={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1,lang:navigator.language.indexOf("zh")!==-1?"zh":"en",screenshot:!1,hotkey:!0,preload:"auto"};for(var d in s)s.hasOwnProperty(d)&&!this.option.hasOwnProperty(d)&&(this.option[d]=s[d]);var p={"Danmaku is loading":"弹幕加载中",Top:"顶部",Bottom:"底部",Rolling:"滚动","Input danmaku, hit Enter":"输入弹幕,回车发送","About author":"关于作者","DPlayer feedback":"播放器意见反馈","About DPlayer":"关于 DPlay 播放器",Loop:"洗脑循环",Speed:"速度","Opacity for danmaku":"弹幕透明度",Normal:"正常","Please input danmaku!":"要输入弹幕内容啊喂!","Set danmaku color":"设置弹幕颜色","Set danmaku type":"设置弹幕类型",Danmaku:"弹幕"},m=function(e){return"en"===a.option.lang?e:"zh"===a.option.lang?p[e]:void 0};this.updateBar=function(e,t,a){t=t>0?t:0,t=t<1?t:1,k[e+"Bar"].style[a]=100*t+"%"};var c=["play","pause","canplay","playing","ended","error"];this.event={};for(var y=0;y<c.length;y++)this.event[c[y]]=[];this.trigger=function(e){for(var t=0;t<a.event[e].length;t++)a.event[e][t]()},this.element=this.option.element,this.option.danmaku||this.element.classList.add("dplayer-no-danmaku"),this.element.innerHTML='\n            <div class="dplayer-mask"></div>\n            <div class="dplayer-video-wrap">\n                <video class="dplayer-video" '+(this.option.video.pic?'poster="'+this.option.video.pic+'"':"")+" webkit-playsinline "+(this.option.screenshot?'crossorigin="anonymous"':"")+' preload="'+this.option.preload+'" src="'+this.option.video.url+'"></video>\n                <div class="dplayer-danmaku">\n                    <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>\n                </div>\n                <div class="dplayer-bezel">\n                    <span class="dplayer-bezel-icon"></span>\n                    '+(this.option.danmaku?'<span class="dplayer-danloading">'+m("Danmaku is loading")+"</span>":"")+'\n                    <span class="diplayer-loading-icon">\n                        <svg height="100%" version="1.1" viewBox="0 0 22 22" width="100%">\n                            <svg x="7" y="1">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="13" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="7" y="13">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="1" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class="dplayer-controller-mask"></div>\n            <div class="dplayer-controller">\n                <div class="dplayer-icons dplayer-icons-left">\n                    <button class="dplayer-icon dplayer-play-icon">'+this.getSVG("play")+('     </button>\n                    <div class="dplayer-volume" '+(i?'style="display: none;"':"")+'>\n                        <button class="dplayer-icon dplayer-volume-icon">')+this.getSVG("volume-down")+('         </button>\n                        <div class="dplayer-volume-bar-wrap">\n                            <div class="dplayer-volume-bar">\n                                <div class="dplayer-volume-bar-inner" style="width: 70%; background: '+this.option.theme+';">\n                                    <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class="dplayer-time"><span class="dplayer-ptime">0:00</span> / <span class="dplayer-dtime">0:00</span></span>\n                </div>\n                <div class="dplayer-icons dplayer-icons-right">\n                    '+(this.option.screenshot?'\n                    <a href="#" class="dplayer-icon dplayer-camera-icon" '+(i?'style="display: none;"':"")+"dplayer-volume>"+this.getSVG("camera")+"     </a>\n                    ":"")+'\n                    <div class="dplayer-comment">\n                        <button class="dplayer-icon dplayer-comment-icon">')+this.getSVG("comment")+'         </button>\n                        <div class="dplayer-comment-box">\n                            <button class="dplayer-icon dplayer-comment-setting-icon">'+this.getSVG("menu")+('             </button>\n                            <div class="dplayer-comment-setting-box">\n                                <div class="dplayer-comment-setting-color">\n                                   <div class="dplayer-comment-setting-title">'+m("Set danmaku color")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#fff" checked>\n                                        <span style="background: #fff; border: 1px solid rgba(0,0,0,.1);"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#e54256">\n                                        <span style="background: #e54256"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#ffe133">\n                                        <span style="background: #ffe133"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#64DD17">\n                                        <span style="background: #64DD17"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#39ccff">\n                                        <span style="background: #39ccff"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#D500F9">\n                                        <span style="background: #D500F9"></span>\n                                    </label>\n                                </div>\n                                <div class="dplayer-comment-setting-type">\n                                    <div class="dplayer-comment-setting-title">'+m("Set danmaku type")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="top">\n                                        <span>'+m("Top")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="right" checked>\n                                        <span>'+m("Rolling")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="bottom">\n                                        <span>'+m("Bottom")+'</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class="dplayer-comment-input" type="text" placeholder="'+m("Input danmaku, hit Enter")+'" maxlength="30">\n                            <button class="dplayer-icon dplayer-send-icon">')+this.getSVG("send")+'             </button>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting">\n                        <button class="dplayer-icon dplayer-setting-icon">'+this.getSVG("setting")+'         </button>\n                        <div class="dplayer-setting-box"></div>\n                    </div>\n                    <button class="dplayer-icon dplayer-full-icon">'+this.getSVG("full")+('     </button>\n                </div>\n                <div class="dplayer-bar-wrap">\n                    <div class="dplayer-bar">\n                        <div class="dplayer-loaded" style="width: 0;"></div>\n                        <div class="dplayer-played" style="width: 0; background: '+this.option.theme+'">\n                            <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="dplayer-menu">\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="http://diygod.me/">'+m("About author")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer/issues">'+m("DPlayer feedback")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer">'+m("About DPlayer")+"</a></span></div>\n            </div>\n        ");var u=this.element.offsetWidth<=500;if(u){var g=document.createElement("style");g.innerHTML=".dplayer .dplayer-danmaku{font-size:18px}",document.head.appendChild(g)}this.video=this.element.getElementsByClassName("dplayer-video")[0],this.option.video.url.match(/(m3u8)$/i)&&Hls.isSupported()&&!function(){a.element.getElementsByClassName("dplayer-time")[0].style.display="none";var e=new Hls;e.attachMedia(a.video),e.on(Hls.Events.MEDIA_ATTACHED,function(){e.loadSource(a.option.video.url),e.on(Hls.Events.MANIFEST_PARSED,function(e,t){console.log("manifest loaded, found "+t.levels.length+" quality level")})})}(),this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){a.bezel.classList.remove("dplayer-bezel-transition")}),this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!0,this.playButton.addEventListener("click",function(){a.toggle()});var f=this.element.getElementsByClassName("dplayer-video-wrap")[0],v=this.element.getElementsByClassName("dplayer-controller-mask")[0];if(i){var b=function(){a.element.classList.contains("dplayer-hide-controller")?a.element.classList.remove("dplayer-hide-controller"):a.element.classList.add("dplayer-hide-controller")};f.addEventListener("click",b),v.addEventListener("click",b)}else f.addEventListener("click",function(){a.toggle()}),v.addEventListener("click",function(){a.toggle()});var h=function(e){var t=function(e){return e<10?"0"+e:""+e},a=parseInt(e/60),n=parseInt(e-60*a);return t(a)+":"+t(n)},x=function(e){var t=e.offsetLeft,n=e.offsetParent,r=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==a.element;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return r=document.body.scrollLeft+document.documentElement.scrollLeft,t-r},k={};k.playedBar=this.element.getElementsByClassName("dplayer-played")[0],k.loadedBar=this.element.getElementsByClassName("dplayer-loaded")[0];var w=this.element.getElementsByClassName("dplayer-bar-wrap")[0],Y=void 0;this.option.danmaku&&this.video.addEventListener("seeking",function(){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime)return void(a.danIndex=e);a.danIndex=a.dan.length}});var E=0,L=0,z=!1,B=void 0;this.setTime=function(){a.playedTime=setInterval(function(){L=a.video.currentTime,!z&&L<E+.01&&!a.video.paused&&(a.element.classList.add("dplayer-loading"),z=!0),z&&L>E+.01&&!a.video.paused&&(a.element.classList.remove("dplayer-loading"),z=!1),E=L,a.updateBar("played",a.video.currentTime/a.video.duration,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=h(a.video.currentTime),a.trigger("playing")},100),a.option.danmaku&&(B=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)ne(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0))},this.clearTime=function(){clearInterval(a.playedTime),a.option.danmaku&&clearInterval(B)},w.addEventListener("click",function(e){var t=e||window.event;Y=w.clientWidth;var n=(t.clientX-x(w))/Y;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.video.currentTime=parseFloat(k.playedBar.style.width)/100*a.video.duration});var C=function(e){var t=e||window.event,n=(t.clientX-x(w))/Y;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=h(n*a.video.duration)},T=function xe(){document.removeEventListener("mouseup",xe),document.removeEventListener("mousemove",C),a.video.currentTime=parseFloat(k.playedBar.style.width)/100*a.video.duration,a.setTime()};w.addEventListener("mousedown",function(){Y=w.clientWidth,a.clearTime(),document.addEventListener("mousemove",C),document.addEventListener("mouseup",T)}),k.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var N=this.element.getElementsByClassName("dplayer-volume")[0],S=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],q=this.element.getElementsByClassName("dplayer-volume-bar")[0],M=this.element.getElementsByClassName("dplayer-volume-icon")[0],A=35;this.switchVolumeIcon=function(){var e=a.element.getElementsByClassName("dplayer-volume-icon")[0];a.video.volume>=.8?e.innerHTML=a.getSVG("volume-up"):a.video.volume>0?e.innerHTML=a.getSVG("volume-down"):e.innerHTML=a.getSVG("volume-off")};var I=function(e){var t=e||window.event,n=(t.clientX-x(q)-5.5)/A;a.volume(n)},D=function ke(){document.removeEventListener("mouseup",ke),document.removeEventListener("mousemove",I),N.classList.remove("dplayer-volume-active")};S.addEventListener("click",function(e){var t=e||window.event,n=(t.clientX-x(q)-5.5)/A;a.volume(n)}),S.addEventListener("mousedown",function(){document.addEventListener("mousemove",I),document.addEventListener("mouseup",D),N.classList.add("dplayer-volume-active")}),M.addEventListener("click",function(){a.video.muted?(a.video.muted=!1,a.switchVolumeIcon(),a.updateBar("volume",a.video.volume,"width")):(a.video.muted=!0,M.innerHTML=a.getSVG("volume-off"),a.updateBar("volume",0,"width"))});var R=0;if(!i){var H=function(){a.element.classList.remove("dplayer-hide-controller"),clearTimeout(R),R=setTimeout(function(){a.video.played.length&&(a.element.classList.add("dplayer-hide-controller"),U(),ge())},2e3)};this.element.addEventListener("mousemove",H),this.element.addEventListener("click",H)}var F=localStorage.getItem("DPlayer-opacity")||.7,X={original:'\n                    <div class="dplayer-setting-item dplayer-setting-speed">\n                        <span class="dplayer-label">'+m("Speed")+'</span>\n                        <div class="dplayer-toggle">'+this.getSVG("right")+('     </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-loop">\n                        <span class="dplayer-label">'+m("Loop")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle">\n                            <label for="dplayer-toggle"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-showdan">\n                        <span class="dplayer-label">'+m("Danmaku")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-showdan-setting-input" type="checkbox" name="dplayer-toggle-dan">\n                            <label for="dplayer-toggle-dan"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-danmaku">\n                        <span class="dplayer-label">'+m("Opacity for danmaku")+'</span>\n                        <div class="dplayer-danmaku-bar-wrap">\n                            <div class="dplayer-danmaku-bar">\n                                <div class="dplayer-danmaku-bar-inner" style="width: '+100*F+'%">\n                                    <span class="dplayer-thumb"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>'),speed:'\n                    <div class="dplayer-setting-speed-item" data-speed="0.5">\n                        <span class="dplayer-label">0.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="0.75">\n                        <span class="dplayer-label">0.75</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1">\n                        <span class="dplayer-label">'+m("Normal")+'</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.25">\n                        <span class="dplayer-label">1.25</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.5">\n                        <span class="dplayer-label">1.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="2">\n                        <span class="dplayer-label">2</span>\n                    </div>'},O=this.element.getElementsByClassName("dplayer-setting-icon")[0],P=this.element.getElementsByClassName("dplayer-setting-box")[0],V=this.element.getElementsByClassName("dplayer-mask")[0];P.innerHTML=X.original;var U=function(){P.classList.contains("dplayer-setting-box-open")&&(P.classList.remove("dplayer-setting-box-open"),V.classList.remove("dplayer-mask-show"),setTimeout(function(){P.classList.remove("dplayer-setting-box-narrow"),P.innerHTML=X.original,Q()},300))},G=function(){P.classList.add("dplayer-setting-box-open"),V.classList.add("dplayer-mask-show")};V.addEventListener("click",function(){U()}),O.addEventListener("click",function(){G()});var j=this.option.loop,J=this.element.getElementsByClassName("dplayer-danmaku")[0],W=!0,Q=function(){var e=a.element.getElementsByClassName("dplayer-setting-loop")[0],t=e.getElementsByClassName("dplayer-toggle-setting-input")[0];t.checked=j,e.addEventListener("click",function(){t.checked=!t.checked,t.checked?(j=!0,a.video.loop=j):(j=!1,a.video.loop=j),U()});var n=a.element.getElementsByClassName("dplayer-setting-showdan")[0],r=n.getElementsByClassName("dplayer-showdan-setting-input")[0];r.checked=W,n.addEventListener("click",function(){if(r.checked=!r.checked,r.checked){if(W=!0,a.option.danmaku){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime){a.danIndex=e;break}a.danIndex=a.dan.length}B=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)ne(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0)}}else W=!1,a.option.danmaku&&(clearInterval(B),J.innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0]);U()});var l=a.element.getElementsByClassName("dplayer-setting-speed")[0];l.addEventListener("click",function(){P.classList.add("dplayer-setting-box-narrow"),P.innerHTML=X.speed;for(var e=P.getElementsByClassName("dplayer-setting-speed-item"),t=function(t){
    2 e[t].addEventListener("click",function(){a.video.playbackRate=e[t].dataset.speed,U()})},n=0;n<e.length;n++)t(n)}),a.option.danmaku&&!function(){k.danmakuBar=a.element.getElementsByClassName("dplayer-danmaku-bar-inner")[0];var e=a.element.getElementsByClassName("dplayer-danmaku-bar-wrap")[0],t=a.element.getElementsByClassName("dplayer-danmaku-bar")[0],n=a.element.getElementsByClassName("dplayer-setting-danmaku")[0],r=130;a.updateBar("danmaku",F,"width");var l=function(e){var n=e||window.event,l=(n.clientX-x(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;F=l,localStorage.setItem("DPlayer-opacity",F)},o=function i(){document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",l),n.classList.remove("dplayer-setting-danmaku-active")};e.addEventListener("click",function(e){var n=e||window.event,l=(n.clientX-x(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;F=l,localStorage.setItem("DPlayer-opacity",F)}),e.addEventListener("mousedown",function(){document.addEventListener("mousemove",l),document.addEventListener("mouseup",o),n.classList.add("dplayer-setting-danmaku-active")})}()};Q(),this.video.addEventListener("durationchange",function(){1!==a.video.duration&&(a.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=h(a.video.duration))}),this.video.addEventListener("progress",function(){var e=a.video.buffered.length?a.video.buffered.end(a.video.buffered.length-1)/a.video.duration:0;a.updateBar("loaded",e,"width")}),this.video.addEventListener("error",function(){a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="Error happens ╥﹏╥",a.trigger("pause")}),this.video.addEventListener("canplay",function(){a.trigger("canplay")}),this.ended=!1,this.video.addEventListener("ended",function(){a.updateBar("played",1,"width"),j||(a.ended=!0,a.pause(),a.trigger("ended"))}),this.video.volume=parseInt(this.element.getElementsByClassName("dplayer-volume-bar-inner")[0].style.width)/100,this.video.loop=j,1!==this.video.duration&&(this.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=this.video.duration?h(this.video.duration):"00:00");var _=u?24:30,Z=void 0,$=void 0,K=void 0;this.danTunnel={right:{},top:{},bottom:{}};var ee=function(e){return J.getBoundingClientRect().right-e.getBoundingClientRect().right},te=function(e){return(Z+e)/5},ae=function(e,t,n){for(var l=Z/te(n),o=function(n){var r=a.danTunnel[t][n+""];if(!r||!r.length)return a.danTunnel[t][n+""]=[e],e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%K};for(var o=0;o<r.length;o++){var i=ee(r[o])-10;if(i<=Z-l*te(r[o].offsetWidth)||i<=0)break;if(o===r.length-1)return a.danTunnel[t][n+""].push(e),e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%K}}},i=0;;i++){var s=o(i);if("object"===("undefined"==typeof s?"undefined":r(s)))return s.v}};this.itemDemo=this.element.getElementsByClassName("dplayer-danmaku-item")[0];var ne=function(e,t,n){Z=J.offsetWidth,$=J.offsetHeight,K=parseInt($/_);var r=document.createElement("div");r.classList.add("dplayer-danmaku-item"),r.classList.add("dplayer-danmaku-"+n),r.innerHTML=e,r.style.opacity=F,r.style.color=t,r.addEventListener("animationend",function(){J.removeChild(r)}),a.itemDemo.innerHTML=e;var l=a.itemDemo.offsetWidth;switch(n){case"right":r.style.top=_*ae(r,n,l)+"px",r.style.width=l+1+"px",r.style.transform="translateX(-"+Z+"px)";break;case"top":r.style.top=_*ae(r,n)+"px";break;case"bottom":r.style.bottom=_*ae(r,n)+"px";break;default:console.error("Can't handled danmaku type: "+n)}return J.appendChild(r),r.classList.add("dplayer-danmaku-move"),r};this.option.danmaku?!function(){a.danIndex=0;var e=new XMLHttpRequest;e.onreadystatechange=function(){4===e.readyState&&(e.status>=200&&e.status<300||304===e.status?!function(){var t=JSON.parse(e.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(e.onreadystatechange=function(){if(4===e.readyState)if(e.status>=200&&e.status<300||304===e.status){var n=JSON.parse(e.responseText);1!==n.code?alert(n.msg):(a.dan=t.danmaku.concat(n.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}else console.log("Request was unsuccessful: "+e.status)},e.open("get",a.option.danmaku.addition[0],!0),e.send(null)):(a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}():console.log("Request was unsuccessful: "+e.status))};var t=void 0;t=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,e.open("get",t,!0),e.send(null)}():this.option.autoplay&&!i?this.play():i&&this.pause();var re=this.element.getElementsByClassName("dplayer-comment-input")[0],le=this.element.getElementsByClassName("dplayer-comment-icon")[0],oe=this.element.getElementsByClassName("dplayer-comment-box")[0],ie=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],se=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],de=this.element.getElementsByClassName("dplayer-send-icon")[0],pe=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2f;")},me=function(){if(re.blur(),!re.value.replace(/^\s+|\s+$/g,""))return void alert(m("Please input danmaku!"));var e={token:a.option.danmaku.token,player:a.option.danmaku.id,author:"DIYgod",time:a.video.currentTime,text:re.value,color:a.element.querySelector(".dplayer-comment-setting-color input:checked").value,type:a.element.querySelector(".dplayer-comment-setting-type input:checked").value},t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState)if(t.status>=200&&t.status<300||304===t.status){var e=JSON.parse(t.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(t.responseText))}else console.log("Request was unsuccessful: "+t.status)},t.open("post",a.option.danmaku.api,!0),t.send(JSON.stringify(e)),re.value="",ge(),a.dan.splice(a.danIndex,0,e),a.danIndex++;var n=ne(pe(e.text),e.color,e.type);n.style.border="2px solid "+a.option.theme},ce=function(){se.classList.contains("dplayer-comment-setting-open")&&se.classList.remove("dplayer-comment-setting-open")},ye=function(){se.classList.contains("dplayer-comment-setting-open")?se.classList.remove("dplayer-comment-setting-open"):se.classList.add("dplayer-comment-setting-open")},ue=0,ge=function(){oe.classList.contains("dplayer-comment-box-open")&&(oe.classList.remove("dplayer-comment-box-open"),V.classList.remove("dplayer-mask-show"),clearInterval(ue),a.element.classList.remove("dplayer-show-controller"),ce())},fe=function(){oe.classList.add("dplayer-comment-box-open"),V.classList.add("dplayer-mask-show"),ue=setInterval(function(){clearTimeout(R)},1e3),a.element.classList.add("dplayer-show-controller")};V.addEventListener("click",function(){ge()}),le.addEventListener("click",function(){fe(),setTimeout(function(){re.focus()},300)}),ie.addEventListener("click",function(){ye()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var e=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked+span');e&&(ie.getElementsByClassName("dplayer-fill")[0].style.fill=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked').value)}),re.addEventListener("click",function(){ce()}),re.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&me()}),de.addEventListener("click",me);var ve=function(){Z=J.offsetWidth;for(var e=a.element.getElementsByClassName("dplayer-danmaku-item"),t=0;t<e.length;t++)e[t].style.transform="translateX(-"+Z+"px)"};this.element.addEventListener("fullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.addEventListener("mozfullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.addEventListener("webkitfullscreenchange",function(){ve(),console.log(J.offsetHeight)}),this.element.getElementsByClassName("dplayer-full-icon")[0].addEventListener("click",function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():a.element.requestFullscreen?a.element.requestFullscreen():a.element.mozRequestFullScreen?a.element.mozRequestFullScreen():a.element.webkitRequestFullscreen&&a.element.webkitRequestFullscreen(),ve()});var be=function(e){var t=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==n&&"true"!==n){var r=e||window.event,l=void 0;switch(r.keyCode){case 32:r.preventDefault(),a.toggle();break;case 37:r.preventDefault(),a.video.currentTime=a.video.currentTime-5;break;case 39:r.preventDefault(),a.video.currentTime=a.video.currentTime+5;break;case 38:r.preventDefault(),l=a.video.volume+.1,a.volume(l);break;case 40:r.preventDefault(),l=a.video.volume-.1,a.volume(l)}}};this.option.hotkey&&document.addEventListener("keydown",be);var he=this.element.getElementsByClassName("dplayer-menu")[0];this.element.addEventListener("contextmenu",function(e){var t=e||window.event;t.preventDefault(),he.style.left=t.clientX-a.element.getBoundingClientRect().left+"px",he.style.top=t.clientY-a.element.getBoundingClientRect().top+"px",he.classList.add("dplayer-menu-show"),V.classList.add("dplayer-mask-show"),V.addEventListener("click",function(){V.classList.remove("dplayer-mask-show"),he.classList.remove("dplayer-menu-show")})}),this.option.screenshot&&!function(){var e=a.element.getElementsByClassName("dplayer-camera-icon")[0];e.addEventListener("click",function(){var t=document.createElement("canvas");t.width=a.video.videoWidth,t.height=a.video.videoHeight,t.getContext("2d").drawImage(a.video,0,0,t.width,t.height),e.href=t.toDataURL(),e.download="DPlayer.png"})}(),o++}return l(e,[{key:"play",value:function(e){"[object Number]"===Object.prototype.toString.call(e)&&(this.video.currentTime=e),this.video.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.video.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.video.pause(),this.clearTime(),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"volume",value:function(e){e=e>0?e:0,e=e<1?e:1,this.updateBar("volume",e,"width"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}},{key:"switchVideo",value:function(e,t){var a=this;this.video.src=e.url,this.video.poster=e.pic?e.pic:"",this.video.currentTime=0,this.pause(),t&&!function(){a.dan=[],a.danIndex=0,a.element.getElementsByClassName("dplayer-danloading")[0].style.display="block",a.updateBar("played",0,"width"),a.updateBar("loaded",0,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="00:00",a.element.getElementsByClassName("dplayer-danmaku")[0].innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0];var e=/mobile/i.test(window.navigator.userAgent);a.option.danmaku=t;var n=new XMLHttpRequest;n.onreadystatechange=function(){4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?!function(){var t=JSON.parse(n.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(n.onreadystatechange=function(){if(4===n.readyState)if(n.status>=200&&n.status<300||304===n.status){var r=JSON.parse(n.responseText);1!==r.code?alert(r.msg):(a.danIndex=0,a.dan=t.danmaku.concat(r.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}else console.log("Request was unsuccessful: "+n.status)},n.open("get",a.option.danmaku.addition[0],!0),n.send(null)):(a.danIndex=0,a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}():console.log("Request was unsuccessful: "+n.status))};var r=void 0;r=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,n.open("get",r,!0),n.send(null)}()}}]),e}();e.exports=i},function(e,t,a){var n=a(2);"string"==typeof n&&(n=[[e.id,n,""]]);a(4)(n,{});n.locals&&(e.exports=n.locals)},function(e,t,a){t=e.exports=a(3)(),t.push([e.id,'.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:\'\';position:absolute;top:100%;left:50%;margin-left:-12px;background:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 12"><path fill="#FFF" d="M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0"/></svg>\');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}',""]);
     1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("DPlayer",[],t):"object"==typeof exports?exports.DPlayer=t():e.DPlayer=t()}(this,function(){return function(e){function t(n){if(a[n])return a[n].exports;var r=a[n]={exports:{},id:n,loaded:!1};return e[n].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var a={};return t.m=e,t.c=a,t.p="",t(0)}([function(e,t,a){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},l=function(){function e(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,a,n){return a&&e(t.prototype,a),n&&e(t,n),t}}();console.log("\n %c DPlayer 1.1.2 %c http://dplayer.js.org \n\n","color: #fadfa3; background: #030307; padding:5px 0;","background: #fadfa3; padding:5px 0;"),a(1);var o=0,i=function(){function e(t){var a=this;n(this,e);var l={play:["0 0 16 32","M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z"],pause:["0 0 17 32","M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z"],"volume-up":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z"],"volume-down":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z"],"volume-off":["0 0 21 32","M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z"],loop:["0 0 32 32","M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z"],full:["0 0 32 33","M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z"],setting:["0 0 32 28","M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z"],right:["0 0 32 32","M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z"],comment:["0 0 32 32","M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z"],"comment-off":["0 0 32 32","M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z"],send:["0 0 32 32","M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z"],menu:["0 0 22 32","M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z"],camera:["0 0 32 32","M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z"]};this.getSVG=function(e){return'\n                <svg xmlns:xlink="http://www.w3.org/1999/xlink" height="100%" version="1.1" viewBox="'+l[e][0]+'" width="100%">\n                    <use xlink:href="#dplayer-'+e+'"></use>\n                    <path class="dplayer-fill" d="'+l[e][1]+'" id="dplayer-'+e+'"></path>\n                </svg>\n            '},this.option=t;var i=/mobile/i.test(window.navigator.userAgent);i&&(this.option.autoplay=!1);var s={element:document.getElementsByClassName("dplayer")[0],autoplay:!1,theme:"#b7daff",loop:!1,lang:navigator.language.indexOf("zh")!==-1?"zh":"en",screenshot:!1,hotkey:!0,preload:"auto"};for(var d in s)s.hasOwnProperty(d)&&!this.option.hasOwnProperty(d)&&(this.option[d]=s[d]);var p={"Danmaku is loading":"弹幕加载中",Top:"顶部",Bottom:"底部",Rolling:"滚动","Input danmaku, hit Enter":"输入弹幕,回车发送","About author":"关于作者","DPlayer feedback":"播放器意见反馈","About DPlayer":"关于 DPlay 播放器",Loop:"洗脑循环",Speed:"速度","Opacity for danmaku":"弹幕透明度",Normal:"正常","Please input danmaku!":"要输入弹幕内容啊喂!","Set danmaku color":"设置弹幕颜色","Set danmaku type":"设置弹幕类型",Danmaku:"弹幕"},m=function(e){return"en"===a.option.lang?e:"zh"===a.option.lang?p[e]:void 0};this.updateBar=function(e,t,a){t=t>0?t:0,t=t<1?t:1,w[e+"Bar"].style[a]=100*t+"%"};var c=["play","pause","canplay","playing","ended","error"];this.event={};for(var y=0;y<c.length;y++)this.event[c[y]]=[];this.trigger=function(e){for(var t=0;t<a.event[e].length;t++)a.event[e][t]()},this.element=this.option.element,this.option.danmaku||this.element.classList.add("dplayer-no-danmaku"),this.element.innerHTML='\n            <div class="dplayer-mask"></div>\n            <div class="dplayer-video-wrap">\n                <video class="dplayer-video" '+(this.option.video.pic?'poster="'+this.option.video.pic+'"':"")+" webkit-playsinline "+(this.option.screenshot?'crossorigin="anonymous"':"")+' preload="'+this.option.preload+'" src="'+this.option.video.url+'"></video>\n                <div class="dplayer-danmaku">\n                    <div class="dplayer-danmaku-item dplayer-danmaku-item--demo"></div>\n                </div>\n                <div class="dplayer-bezel">\n                    <span class="dplayer-bezel-icon"></span>\n                    '+(this.option.danmaku?'<span class="dplayer-danloading">'+m("Danmaku is loading")+"</span>":"")+'\n                    <span class="diplayer-loading-icon">\n                        <svg height="100%" version="1.1" viewBox="0 0 22 22" width="100%">\n                            <svg x="7" y="1">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-0" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-1" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="13" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-2" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="11" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-3" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="7" y="13">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-4" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="11">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-5" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="1" y="7">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-6" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                            <svg x="3" y="3">\n                                <circle class="diplayer-loading-dot diplayer-loading-dot-7" cx="4" cy="4" r="2"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class="dplayer-controller-mask"></div>\n            <div class="dplayer-controller">\n                <div class="dplayer-icons dplayer-icons-left">\n                    <button class="dplayer-icon dplayer-play-icon">'+this.getSVG("play")+('     </button>\n                    <div class="dplayer-volume" '+(i?'style="display: none;"':"")+'>\n                        <button class="dplayer-icon dplayer-volume-icon">')+this.getSVG("volume-down")+('         </button>\n                        <div class="dplayer-volume-bar-wrap">\n                            <div class="dplayer-volume-bar">\n                                <div class="dplayer-volume-bar-inner" style="width: 70%; background: '+this.option.theme+';">\n                                    <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class="dplayer-time"><span class="dplayer-ptime">0:00</span> / <span class="dplayer-dtime">0:00</span></span>\n                </div>\n                <div class="dplayer-icons dplayer-icons-right">\n                    '+(this.option.screenshot?'\n                    <a href="#" class="dplayer-icon dplayer-camera-icon" '+(i?'style="display: none;"':"")+"dplayer-volume>"+this.getSVG("camera")+"     </a>\n                    ":"")+'\n                    <div class="dplayer-comment">\n                        <button class="dplayer-icon dplayer-comment-icon">')+this.getSVG("comment")+'         </button>\n                        <div class="dplayer-comment-box">\n                            <button class="dplayer-icon dplayer-comment-setting-icon">'+this.getSVG("menu")+('             </button>\n                            <div class="dplayer-comment-setting-box">\n                                <div class="dplayer-comment-setting-color">\n                                   <div class="dplayer-comment-setting-title">'+m("Set danmaku color")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#fff" checked>\n                                        <span style="background: #fff; border: 1px solid rgba(0,0,0,.1);"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#e54256">\n                                        <span style="background: #e54256"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#ffe133">\n                                        <span style="background: #ffe133"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#64DD17">\n                                        <span style="background: #64DD17"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#39ccff">\n                                        <span style="background: #39ccff"></span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-color-'+o+'" value="#D500F9">\n                                        <span style="background: #D500F9"></span>\n                                    </label>\n                                </div>\n                                <div class="dplayer-comment-setting-type">\n                                    <div class="dplayer-comment-setting-title">'+m("Set danmaku type")+'</div>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="top">\n                                        <span>'+m("Top")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="right" checked>\n                                        <span>'+m("Rolling")+'</span>\n                                    </label>\n                                    <label>\n                                        <input type="radio" name="dplayer-danmaku-type-'+o+'" value="bottom">\n                                        <span>'+m("Bottom")+'</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class="dplayer-comment-input" type="text" placeholder="'+m("Input danmaku, hit Enter")+'" maxlength="30">\n                            <button class="dplayer-icon dplayer-send-icon">')+this.getSVG("send")+'             </button>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting">\n                        <button class="dplayer-icon dplayer-setting-icon">'+this.getSVG("setting")+'         </button>\n                        <div class="dplayer-setting-box"></div>\n                    </div>\n                    <button class="dplayer-icon dplayer-full-icon">'+this.getSVG("full")+('     </button>\n                </div>\n                <div class="dplayer-bar-wrap">\n                    <div class="dplayer-bar">\n                        <div class="dplayer-loaded" style="width: 0;"></div>\n                        <div class="dplayer-played" style="width: 0; background: '+this.option.theme+'">\n                            <span class="dplayer-thumb" style="background: '+this.option.theme+'"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class="dplayer-menu">\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="http://diygod.me/">'+m("About author")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer/issues">'+m("DPlayer feedback")+'</a></span></div>\n                <div class="dplayer-menu-item"><span class="dplayer-menu-label"><a target="_blank" href="https://github.com/DIYgod/DPlayer">'+m("About DPlayer")+"</a></span></div>\n            </div>\n        ");var u=this.element.offsetWidth<=500;if(u){var g=document.createElement("style");g.innerHTML=".dplayer .dplayer-danmaku{font-size:18px}",document.head.appendChild(g)}if(this.video=this.element.getElementsByClassName("dplayer-video")[0],this.option.video.url.match(/(m3u8)$/i)&&Hls.isSupported()&&!function(){a.element.getElementsByClassName("dplayer-time")[0].style.display="none";var e=new Hls;e.attachMedia(a.video),e.on(Hls.Events.MEDIA_ATTACHED,function(){e.loadSource(a.option.video.url),e.on(Hls.Events.MANIFEST_PARSED,function(e,t){console.log("manifest loaded, found "+t.levels.length+" quality level")})})}(),this.option.video.url.match(/(flv)$/i)&&flvjs.isSupported()){var f=flvjs.createPlayer({type:"flv",url:this.option.video.url});f.attachMediaElement(this.video),f.load()}this.bezel=this.element.getElementsByClassName("dplayer-bezel-icon")[0],this.bezel.addEventListener("animationend",function(){a.bezel.classList.remove("dplayer-bezel-transition")}),this.playButton=this.element.getElementsByClassName("dplayer-play-icon")[0],this.shouldpause=!0,this.playButton.addEventListener("click",function(){a.toggle()});var v=this.element.getElementsByClassName("dplayer-video-wrap")[0],b=this.element.getElementsByClassName("dplayer-controller-mask")[0];if(i){var h=function(){a.element.classList.contains("dplayer-hide-controller")?a.element.classList.remove("dplayer-hide-controller"):a.element.classList.add("dplayer-hide-controller")};v.addEventListener("click",h),b.addEventListener("click",h)}else v.addEventListener("click",function(){a.toggle()}),b.addEventListener("click",function(){a.toggle()});var x=function(e){var t=function(e){return e<10?"0"+e:""+e},a=parseInt(e/60),n=parseInt(e-60*a);return t(a)+":"+t(n)},k=function(e){var t=e.offsetLeft,n=e.offsetParent,r=void 0;if(document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement)for(;null!==n&&n!==a.element;)t+=n.offsetLeft,n=n.offsetParent;else for(;null!==n;)t+=n.offsetLeft,n=n.offsetParent;return r=document.body.scrollLeft+document.documentElement.scrollLeft,t-r},w={};w.playedBar=this.element.getElementsByClassName("dplayer-played")[0],w.loadedBar=this.element.getElementsByClassName("dplayer-loaded")[0];var Y=this.element.getElementsByClassName("dplayer-bar-wrap")[0],E=void 0;this.option.danmaku&&this.video.addEventListener("seeking",function(){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime)return void(a.danIndex=e);a.danIndex=a.dan.length}});var L=0,z=0,B=!1,C=void 0;this.setTime=function(){a.playedTime=setInterval(function(){z=a.video.currentTime,!B&&z<L+.01&&!a.video.paused&&(a.element.classList.add("dplayer-loading"),B=!0),B&&z>L+.01&&!a.video.paused&&(a.element.classList.remove("dplayer-loading"),B=!1),L=z,a.updateBar("played",a.video.currentTime/a.video.duration,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=x(a.video.currentTime),a.trigger("playing")},100),a.option.danmaku&&(C=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)re(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0))},this.clearTime=function(){clearInterval(a.playedTime),a.option.danmaku&&clearInterval(C)},Y.addEventListener("click",function(e){var t=e||window.event;E=Y.clientWidth;var n=(t.clientX-k(Y))/E;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.video.currentTime=parseFloat(w.playedBar.style.width)/100*a.video.duration});var T=function(e){var t=e||window.event,n=(t.clientX-k(Y))/E;n=n>0?n:0,n=n<1?n:1,a.updateBar("played",n,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML=x(n*a.video.duration)},N=function ke(){document.removeEventListener("mouseup",ke),document.removeEventListener("mousemove",T),a.video.currentTime=parseFloat(w.playedBar.style.width)/100*a.video.duration,a.setTime()};Y.addEventListener("mousedown",function(){E=Y.clientWidth,a.clearTime(),document.addEventListener("mousemove",T),document.addEventListener("mouseup",N)}),w.volumeBar=this.element.getElementsByClassName("dplayer-volume-bar-inner")[0];var S=this.element.getElementsByClassName("dplayer-volume")[0],M=this.element.getElementsByClassName("dplayer-volume-bar-wrap")[0],q=this.element.getElementsByClassName("dplayer-volume-bar")[0],A=this.element.getElementsByClassName("dplayer-volume-icon")[0],I=35;this.switchVolumeIcon=function(){var e=a.element.getElementsByClassName("dplayer-volume-icon")[0];a.video.volume>=.8?e.innerHTML=a.getSVG("volume-up"):a.video.volume>0?e.innerHTML=a.getSVG("volume-down"):e.innerHTML=a.getSVG("volume-off")};var D=function(e){var t=e||window.event,n=(t.clientX-k(q)-5.5)/I;a.volume(n)},R=function we(){document.removeEventListener("mouseup",we),document.removeEventListener("mousemove",D),S.classList.remove("dplayer-volume-active")};M.addEventListener("click",function(e){var t=e||window.event,n=(t.clientX-k(q)-5.5)/I;a.volume(n)}),M.addEventListener("mousedown",function(){document.addEventListener("mousemove",D),document.addEventListener("mouseup",R),S.classList.add("dplayer-volume-active")}),A.addEventListener("click",function(){a.video.muted?(a.video.muted=!1,a.switchVolumeIcon(),a.updateBar("volume",a.video.volume,"width")):(a.video.muted=!0,A.innerHTML=a.getSVG("volume-off"),a.updateBar("volume",0,"width"))});var H=0;if(!i){var F=function(){a.element.classList.remove("dplayer-hide-controller"),clearTimeout(H),H=setTimeout(function(){a.video.played.length&&(a.element.classList.add("dplayer-hide-controller"),j(),fe())},2e3)};this.element.addEventListener("mousemove",F),this.element.addEventListener("click",F)}var X=localStorage.getItem("DPlayer-opacity")||.7,P={original:'\n                    <div class="dplayer-setting-item dplayer-setting-speed">\n                        <span class="dplayer-label">'+m("Speed")+'</span>\n                        <div class="dplayer-toggle">'+this.getSVG("right")+('     </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-loop">\n                        <span class="dplayer-label">'+m("Loop")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-toggle-setting-input" type="checkbox" name="dplayer-toggle">\n                            <label for="dplayer-toggle"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-showdan">\n                        <span class="dplayer-label">'+m("Danmaku")+'</span>\n                        <div class="dplayer-toggle">\n                            <input class="dplayer-showdan-setting-input" type="checkbox" name="dplayer-toggle-dan">\n                            <label for="dplayer-toggle-dan"></label>\n                        </div>\n                    </div>\n                    <div class="dplayer-setting-item dplayer-setting-danmaku">\n                        <span class="dplayer-label">'+m("Opacity for danmaku")+'</span>\n                        <div class="dplayer-danmaku-bar-wrap">\n                            <div class="dplayer-danmaku-bar">\n                                <div class="dplayer-danmaku-bar-inner" style="width: '+100*X+'%">\n                                    <span class="dplayer-thumb"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>'),speed:'\n                    <div class="dplayer-setting-speed-item" data-speed="0.5">\n                        <span class="dplayer-label">0.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="0.75">\n                        <span class="dplayer-label">0.75</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1">\n                        <span class="dplayer-label">'+m("Normal")+'</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.25">\n                        <span class="dplayer-label">1.25</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="1.5">\n                        <span class="dplayer-label">1.5</span>\n                    </div>\n                    <div class="dplayer-setting-speed-item" data-speed="2">\n                        <span class="dplayer-label">2</span>\n                    </div>'},O=this.element.getElementsByClassName("dplayer-setting-icon")[0],V=this.element.getElementsByClassName("dplayer-setting-box")[0],U=this.element.getElementsByClassName("dplayer-mask")[0];V.innerHTML=P.original;var j=function(){V.classList.contains("dplayer-setting-box-open")&&(V.classList.remove("dplayer-setting-box-open"),U.classList.remove("dplayer-mask-show"),setTimeout(function(){V.classList.remove("dplayer-setting-box-narrow"),V.innerHTML=P.original,$()},300))},G=function(){V.classList.add("dplayer-setting-box-open"),U.classList.add("dplayer-mask-show")};U.addEventListener("click",function(){j()}),O.addEventListener("click",function(){G()});var J=this.option.loop,W=this.element.getElementsByClassName("dplayer-danmaku")[0],Q=!0,$=function(){var e=a.element.getElementsByClassName("dplayer-setting-loop")[0],t=e.getElementsByClassName("dplayer-toggle-setting-input")[0];t.checked=J,e.addEventListener("click",function(){t.checked=!t.checked,t.checked?(J=!0,a.video.loop=J):(J=!1,a.video.loop=J),j()});var n=a.element.getElementsByClassName("dplayer-setting-showdan")[0],r=n.getElementsByClassName("dplayer-showdan-setting-input")[0];r.checked=Q,n.addEventListener("click",function(){if(r.checked=!r.checked,r.checked){if(Q=!0,a.option.danmaku){for(var e=0;e<a.dan.length;e++){if(a.dan[e].time>=a.video.currentTime){a.danIndex=e;break}a.danIndex=a.dan.length}C=setInterval(function(){for(var e=a.dan[a.danIndex];e&&a.video.currentTime>=parseFloat(e.time);)re(e.text,e.color,e.type),e=a.dan[++a.danIndex]},0)}}else Q=!1,a.option.danmaku&&(clearInterval(C),W.innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0]);j()});var l=a.element.getElementsByClassName("dplayer-setting-speed")[0];
     2l.addEventListener("click",function(){V.classList.add("dplayer-setting-box-narrow"),V.innerHTML=P.speed;for(var e=V.getElementsByClassName("dplayer-setting-speed-item"),t=function(t){e[t].addEventListener("click",function(){a.video.playbackRate=e[t].dataset.speed,j()})},n=0;n<e.length;n++)t(n)}),a.option.danmaku&&!function(){w.danmakuBar=a.element.getElementsByClassName("dplayer-danmaku-bar-inner")[0];var e=a.element.getElementsByClassName("dplayer-danmaku-bar-wrap")[0],t=a.element.getElementsByClassName("dplayer-danmaku-bar")[0],n=a.element.getElementsByClassName("dplayer-setting-danmaku")[0],r=130;a.updateBar("danmaku",X,"width");var l=function(e){var n=e||window.event,l=(n.clientX-k(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;X=l,localStorage.setItem("DPlayer-opacity",X)},o=function i(){document.removeEventListener("mouseup",i),document.removeEventListener("mousemove",l),n.classList.remove("dplayer-setting-danmaku-active")};e.addEventListener("click",function(e){var n=e||window.event,l=(n.clientX-k(t))/r;l=l>0?l:0,l=l<1?l:1,a.updateBar("danmaku",l,"width");for(var o=a.element.getElementsByClassName("dplayer-danmaku-item"),i=0;i<o.length;i++)o[i].style.opacity=l;X=l,localStorage.setItem("DPlayer-opacity",X)}),e.addEventListener("mousedown",function(){document.addEventListener("mousemove",l),document.addEventListener("mouseup",o),n.classList.add("dplayer-setting-danmaku-active")})}()};$(),this.video.addEventListener("durationchange",function(){1!==a.video.duration&&(a.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=x(a.video.duration))}),this.video.addEventListener("progress",function(){var e=a.video.buffered.length?a.video.buffered.end(a.video.buffered.length-1)/a.video.duration:0;a.updateBar("loaded",e,"width")}),this.video.addEventListener("error",function(){a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="Error happens ╥﹏╥",a.trigger("pause")}),this.video.addEventListener("canplay",function(){a.trigger("canplay")}),this.ended=!1,this.video.addEventListener("ended",function(){a.updateBar("played",1,"width"),J||(a.ended=!0,a.pause(),a.trigger("ended"))}),this.video.volume=parseInt(this.element.getElementsByClassName("dplayer-volume-bar-inner")[0].style.width)/100,this.video.loop=J,1!==this.video.duration&&(this.element.getElementsByClassName("dplayer-dtime")[0].innerHTML=this.video.duration?x(this.video.duration):"00:00");var _=u?24:30,Z=void 0,K=void 0,ee=void 0;this.danTunnel={right:{},top:{},bottom:{}};var te=function(e){return W.getBoundingClientRect().right-e.getBoundingClientRect().right},ae=function(e){return(Z+e)/5},ne=function(e,t,n){for(var l=Z/ae(n),o=function(n){var r=a.danTunnel[t][n+""];if(!r||!r.length)return a.danTunnel[t][n+""]=[e],e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%ee};for(var o=0;o<r.length;o++){var i=te(r[o])-10;if(i<=Z-l*ae(r[o].offsetWidth)||i<=0)break;if(o===r.length-1)return a.danTunnel[t][n+""].push(e),e.addEventListener("animationend",function(){a.danTunnel[t][n+""].splice(0,1)}),{v:n%ee}}},i=0;;i++){var s=o(i);if("object"===("undefined"==typeof s?"undefined":r(s)))return s.v}};this.itemDemo=this.element.getElementsByClassName("dplayer-danmaku-item")[0];var re=function(e,t,n){Z=W.offsetWidth,K=W.offsetHeight,ee=parseInt(K/_);var r=document.createElement("div");r.classList.add("dplayer-danmaku-item"),r.classList.add("dplayer-danmaku-"+n),r.innerHTML=e,r.style.opacity=X,r.style.color=t,r.addEventListener("animationend",function(){W.removeChild(r)}),a.itemDemo.innerHTML=e;var l=a.itemDemo.offsetWidth;switch(n){case"right":r.style.top=_*ne(r,n,l)+"px",r.style.width=l+1+"px",r.style.transform="translateX(-"+Z+"px)";break;case"top":r.style.top=_*ne(r,n)+"px";break;case"bottom":r.style.bottom=_*ne(r,n)+"px";break;default:console.error("Can't handled danmaku type: "+n)}return W.appendChild(r),r.classList.add("dplayer-danmaku-move"),r};this.option.danmaku?!function(){a.danIndex=0;var e=new XMLHttpRequest;e.onreadystatechange=function(){4===e.readyState&&(e.status>=200&&e.status<300||304===e.status?!function(){var t=JSON.parse(e.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(e.onreadystatechange=function(){if(4===e.readyState)if(e.status>=200&&e.status<300||304===e.status){var n=JSON.parse(e.responseText);1!==n.code?alert(n.msg):(a.dan=t.danmaku.concat(n.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}else console.log("Request was unsuccessful: "+e.status)},e.open("get",a.option.danmaku.addition[0],!0),e.send(null)):(a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!i?a.play():i&&a.pause())}():console.log("Request was unsuccessful: "+e.status))};var t=void 0;t=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,e.open("get",t,!0),e.send(null)}():this.option.autoplay&&!i?this.play():i&&this.pause();var le=this.element.getElementsByClassName("dplayer-comment-input")[0],oe=this.element.getElementsByClassName("dplayer-comment-icon")[0],ie=this.element.getElementsByClassName("dplayer-comment-box")[0],se=this.element.getElementsByClassName("dplayer-comment-setting-icon")[0],de=this.element.getElementsByClassName("dplayer-comment-setting-box")[0],pe=this.element.getElementsByClassName("dplayer-send-icon")[0],me=function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;").replace(/\//g,"&#x2f;")},ce=function(){if(le.blur(),!le.value.replace(/^\s+|\s+$/g,""))return void alert(m("Please input danmaku!"));var e={token:a.option.danmaku.token,player:a.option.danmaku.id,author:"DIYgod",time:a.video.currentTime,text:le.value,color:a.element.querySelector(".dplayer-comment-setting-color input:checked").value,type:a.element.querySelector(".dplayer-comment-setting-type input:checked").value},t=new XMLHttpRequest;t.onreadystatechange=function(){if(4===t.readyState)if(t.status>=200&&t.status<300||304===t.status){var e=JSON.parse(t.responseText);1!==e.code?alert(e.msg):console.log("Post danmaku: ",JSON.parse(t.responseText))}else console.log("Request was unsuccessful: "+t.status)},t.open("post",a.option.danmaku.api,!0),t.send(JSON.stringify(e)),le.value="",fe(),a.dan.splice(a.danIndex,0,e),a.danIndex++;var n=re(me(e.text),e.color,e.type);n.style.border="2px solid "+a.option.theme},ye=function(){de.classList.contains("dplayer-comment-setting-open")&&de.classList.remove("dplayer-comment-setting-open")},ue=function(){de.classList.contains("dplayer-comment-setting-open")?de.classList.remove("dplayer-comment-setting-open"):de.classList.add("dplayer-comment-setting-open")},ge=0,fe=function(){ie.classList.contains("dplayer-comment-box-open")&&(ie.classList.remove("dplayer-comment-box-open"),U.classList.remove("dplayer-mask-show"),clearInterval(ge),a.element.classList.remove("dplayer-show-controller"),ye())},ve=function(){ie.classList.add("dplayer-comment-box-open"),U.classList.add("dplayer-mask-show"),ge=setInterval(function(){clearTimeout(H)},1e3),a.element.classList.add("dplayer-show-controller")};U.addEventListener("click",function(){fe()}),oe.addEventListener("click",function(){ve(),setTimeout(function(){le.focus()},300)}),se.addEventListener("click",function(){ue()}),this.element.getElementsByClassName("dplayer-comment-setting-color")[0].addEventListener("click",function(){var e=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked+span');e&&(se.getElementsByClassName("dplayer-fill")[0].style.fill=a.element.querySelector('input[name="dplayer-danmaku-color-${index}"]:checked').value)}),le.addEventListener("click",function(){ye()}),le.addEventListener("keydown",function(e){var t=e||window.event;13===t.keyCode&&ce()}),pe.addEventListener("click",ce);var be=function(){Z=W.offsetWidth;for(var e=a.element.getElementsByClassName("dplayer-danmaku-item"),t=0;t<e.length;t++)e[t].style.transform="translateX(-"+Z+"px)"};this.element.addEventListener("fullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.addEventListener("mozfullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.addEventListener("webkitfullscreenchange",function(){be(),console.log(W.offsetHeight)}),this.element.getElementsByClassName("dplayer-full-icon")[0].addEventListener("click",function(){document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement?document.cancelFullScreen?document.cancelFullScreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitCancelFullScreen&&document.webkitCancelFullScreen():a.element.requestFullscreen?a.element.requestFullscreen():a.element.mozRequestFullScreen?a.element.mozRequestFullScreen():a.element.webkitRequestFullscreen&&a.element.webkitRequestFullscreen(),be()});var he=function(e){var t=document.activeElement.tagName.toUpperCase(),n=document.activeElement.getAttribute("contenteditable");if("INPUT"!==t&&"TEXTAREA"!==t&&""!==n&&"true"!==n){var r=e||window.event,l=void 0;switch(r.keyCode){case 32:r.preventDefault(),a.toggle();break;case 37:r.preventDefault(),a.video.currentTime=a.video.currentTime-5;break;case 39:r.preventDefault(),a.video.currentTime=a.video.currentTime+5;break;case 38:r.preventDefault(),l=a.video.volume+.1,a.volume(l);break;case 40:r.preventDefault(),l=a.video.volume-.1,a.volume(l)}}};this.option.hotkey&&document.addEventListener("keydown",he);var xe=this.element.getElementsByClassName("dplayer-menu")[0];this.element.addEventListener("contextmenu",function(e){var t=e||window.event;t.preventDefault(),xe.style.left=t.clientX-a.element.getBoundingClientRect().left+"px",xe.style.top=t.clientY-a.element.getBoundingClientRect().top+"px",xe.classList.add("dplayer-menu-show"),U.classList.add("dplayer-mask-show"),U.addEventListener("click",function(){U.classList.remove("dplayer-mask-show"),xe.classList.remove("dplayer-menu-show")})}),this.option.screenshot&&!function(){var e=a.element.getElementsByClassName("dplayer-camera-icon")[0];e.addEventListener("click",function(){var t=document.createElement("canvas");t.width=a.video.videoWidth,t.height=a.video.videoHeight,t.getContext("2d").drawImage(a.video,0,0,t.width,t.height),e.href=t.toDataURL(),e.download="DPlayer.png"})}(),o++}return l(e,[{key:"play",value:function(e){"[object Number]"===Object.prototype.toString.call(e)&&(this.video.currentTime=e),this.video.paused&&(this.shouldpause=!1,this.bezel.innerHTML=this.getSVG("play"),this.bezel.classList.add("dplayer-bezel-transition"),this.playButton.innerHTML=this.getSVG("pause"),this.video.play(),this.playedTime&&this.clearTime(),this.setTime(),this.element.classList.add("dplayer-playing"),this.trigger("play"))}},{key:"pause",value:function(){this.shouldpause&&!this.ended||(this.shouldpause=!0,this.element.classList.remove("dplayer-loading"),this.bezel.innerHTML=this.getSVG("pause"),this.bezel.classList.add("dplayer-bezel-transition"),this.ended=!1,this.playButton.innerHTML=this.getSVG("play"),this.video.pause(),this.clearTime(),this.element.classList.remove("dplayer-playing"),this.trigger("pause"))}},{key:"volume",value:function(e){e=e>0?e:0,e=e<1?e:1,this.updateBar("volume",e,"width"),this.video.volume=e,this.video.muted&&(this.video.muted=!1),this.switchVolumeIcon()}},{key:"toggle",value:function(){this.video.paused?this.play():this.pause()}},{key:"on",value:function(e,t){"function"==typeof t&&this.event[e].push(t)}},{key:"switchVideo",value:function(e,t){var a=this;this.video.src=e.url,this.video.poster=e.pic?e.pic:"",this.video.currentTime=0,this.pause(),t&&!function(){a.dan=[],a.danIndex=0,a.element.getElementsByClassName("dplayer-danloading")[0].style.display="block",a.updateBar("played",0,"width"),a.updateBar("loaded",0,"width"),a.element.getElementsByClassName("dplayer-ptime")[0].innerHTML="00:00",a.element.getElementsByClassName("dplayer-danmaku")[0].innerHTML='<div class="dplayer-danmaku-item  dplayer-danmaku-item--demo"></div>',a.danTunnel={right:{},top:{},bottom:{}},a.itemDemo=a.element.getElementsByClassName("dplayer-danmaku-item")[0];var e=/mobile/i.test(window.navigator.userAgent);a.option.danmaku=t;var n=new XMLHttpRequest;n.onreadystatechange=function(){4===n.readyState&&(n.status>=200&&n.status<300||304===n.status?!function(){var t=JSON.parse(n.responseText);1!==t.code?alert(t.msg):a.option.danmaku.addition?(n.onreadystatechange=function(){if(4===n.readyState)if(n.status>=200&&n.status<300||304===n.status){var r=JSON.parse(n.responseText);1!==r.code?alert(r.msg):(a.danIndex=0,a.dan=t.danmaku.concat(r.danmaku).sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}else console.log("Request was unsuccessful: "+n.status)},n.open("get",a.option.danmaku.addition[0],!0),n.send(null)):(a.danIndex=0,a.dan=t.danmaku.sort(function(e,t){return e.time-t.time}),a.element.getElementsByClassName("dplayer-danloading")[0].style.display="none",a.option.autoplay&&!e?a.play():e&&a.pause())}():console.log("Request was unsuccessful: "+n.status))};var r=void 0;r=a.option.danmaku.maximum?a.option.danmaku.api+"?id="+a.option.danmaku.id+"&max="+a.option.danmaku.maximum:a.option.danmaku.api+"?id="+a.option.danmaku.id,n.open("get",r,!0),n.send(null)}()}}]),e}();e.exports=i},function(e,t,a){var n=a(2);"string"==typeof n&&(n=[[e.id,n,""]]);a(4)(n,{});n.locals&&(e.exports=n.locals)},function(e,t,a){t=e.exports=a(3)(),t.push([e.id,'.dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:\'\';position:absolute;top:100%;left:50%;margin-left:-12px;background:url(\'data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 12"><path fill="#FFF" d="M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0"/></svg>\');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:"";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}',""]);
    33},function(e,t){e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t<this.length;t++){var a=this[t];a[2]?e.push("@media "+a[2]+"{"+a[1]+"}"):e.push(a[1])}return e.join("")},e.i=function(t,a){"string"==typeof t&&(t=[[null,t,""]]);for(var n={},r=0;r<this.length;r++){var l=this[r][0];"number"==typeof l&&(n[l]=!0)}for(r=0;r<t.length;r++){var o=t[r];"number"==typeof o[0]&&n[o[0]]||(a&&!o[2]?o[2]=a:a&&(o[2]="("+o[2]+") and ("+a+")"),e.push(o))}},e}},function(e,t,a){function n(e,t){for(var a=0;a<e.length;a++){var n=e[a],r=y[n.id];if(r){r.refs++;for(var l=0;l<r.parts.length;l++)r.parts[l](n.parts[l]);for(;l<n.parts.length;l++)r.parts.push(d(n.parts[l],t))}else{for(var o=[],l=0;l<n.parts.length;l++)o.push(d(n.parts[l],t));y[n.id]={id:n.id,refs:1,parts:o}}}}function r(e){for(var t=[],a={},n=0;n<e.length;n++){var r=e[n],l=r[0],o=r[1],i=r[2],s=r[3],d={css:o,media:i,sourceMap:s};a[l]?a[l].parts.push(d):t.push(a[l]={id:l,parts:[d]})}return t}function l(e,t){var a=f(),n=h[h.length-1];if("top"===e.insertAt)n?n.nextSibling?a.insertBefore(t,n.nextSibling):a.appendChild(t):a.insertBefore(t,a.firstChild),h.push(t);else{if("bottom"!==e.insertAt)throw new Error("Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.");a.appendChild(t)}}function o(e){e.parentNode.removeChild(e);var t=h.indexOf(e);t>=0&&h.splice(t,1)}function i(e){var t=document.createElement("style");return t.type="text/css",l(e,t),t}function s(e){var t=document.createElement("link");return t.rel="stylesheet",l(e,t),t}function d(e,t){var a,n,r;if(t.singleton){var l=b++;a=v||(v=i(t)),n=p.bind(null,a,l,!1),r=p.bind(null,a,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(a=s(t),n=c.bind(null,a),r=function(){o(a),a.href&&URL.revokeObjectURL(a.href)}):(a=i(t),n=m.bind(null,a),r=function(){o(a)});return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else r()}}function p(e,t,a,n){var r=a?"":n.css;if(e.styleSheet)e.styleSheet.cssText=x(t,r);else{var l=document.createTextNode(r),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(l,o[t]):e.appendChild(l)}}function m(e,t){var a=t.css,n=t.media;if(n&&e.setAttribute("media",n),e.styleSheet)e.styleSheet.cssText=a;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(a))}}function c(e,t){var a=t.css,n=t.sourceMap;n&&(a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */");var r=new Blob([a],{type:"text/css"}),l=e.href;e.href=URL.createObjectURL(r),l&&URL.revokeObjectURL(l)}var y={},u=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},g=u(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),f=u(function(){return document.head||document.getElementsByTagName("head")[0]}),v=null,b=0,h=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=g()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var a=r(e);return n(a,t),function(e){for(var l=[],o=0;o<a.length;o++){var i=a[o],s=y[i.id];s.refs--,l.push(s)}if(e){var d=r(e);n(d,t)}for(var o=0;o<l.length;o++){var s=l[o];if(0===s.refs){for(var p=0;p<s.parts.length;p++)s.parts[p]();delete y[s.id]}}}};var x=function(){var e=[];return function(t,a){return e[t]=a,e.filter(Boolean).join("\n")}}()}])});
    44//# sourceMappingURL=DPlayer.min.js.map
  • dplayer-for-wp/trunk/js/DPlayer.min.js.map

    r1520735 r1530082  
    1 {"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 36849708b33400b9c9a4","webpack:///./src/DPlayer.js","webpack:///./src/DPlayer.scss?8fa9","webpack:///./src/DPlayer.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","console","log","index","DPlayer","option","_this","svg","play","pause","volume-up","volume-down","volume-off","loop","full","setting","right","comment","comment-off","send","menu","camera","getSVG","type","isMobile","test","window","navigator","userAgent","autoplay","defaultOption","element","document","getElementsByClassName","theme","lang","language","indexOf","screenshot","hotkey","preload","defaultKey","hasOwnProperty","tranZH","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku!","Set danmaku color","Set danmaku type","Danmaku","getTran","text","updateBar","percentage","direction","bar","style","eventTypes","event","trigger","_i","danmaku","classList","add","innerHTML","video","pic","url","arrow","offsetWidth","arrowStyle","createElement","head","appendChild","match","Hls","isSupported","display","hls","attachMedia","on","Events","MEDIA_ATTACHED","loadSource","MANIFEST_PARSED","data","levels","bezel","addEventListener","remove","playButton","shouldpause","toggle","videoWrap","conMask","toggleController","contains","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","body","scrollLeft","documentElement","playedBar","loadedBar","pbar","barWidth","_i2","dan","time","currentTime","danIndex","lastPlayPos","currentPlayPos","bufferingDetected","danmakuTime","setTime","playedTime","setInterval","paused","duration","item","parseFloat","danmakuIn","color","clearTime","clearInterval","e","clientWidth","clientX","width","thumbMove","thumbUp","removeEventListener","volumeBar","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","vWidth","switchVolumeIcon","volume","volumeMove","volumeUp","muted","hideTime","hideController","clearTimeout","setTimeout","played","closeSetting","closeComment","danOpacity","localStorage","getItem","settingHTML","original","speed","settingIcon","settingBox","mask","settingEvent","openSetting","danContainer","showdan","loopEle","loopToggle","checked","showDanEle","showDanToggle","_i3","danTunnel","top","bottom","itemDemo","speedEle","speedItem","_loop","_i4","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","dWidth","danmakuMove","items","_i5","opacity","setItem","danmakuUp","_i6","buffered","end","ended","itemHeight","danWidth","danHeight","itemY","danItemRight","ele","getBoundingClientRect","danSpeed","getTunnel","tmp","_loop2","_i7","splice","v","j","danRight","push","_ret4","offsetHeight","removeChild","itemWidth","transform","error","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","alert","msg","addition","response2","concat","sort","a","b","open","apiurl","maximum","api","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","htmlEncode","str","replace","sendComment","blur","value","danmakuData","token","player","author","querySelector","stringify","border","closeCommentSetting","toggleCommentSetting","disableHide","openComment","focus","sele","fill","keyCode","resetAnimation","_i8","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","handleKeyDown","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","left","clientY","camareIcon","canvas","videoWidth","height","videoHeight","getContext","drawImage","href","toDataURL","download","toString","name","func","_this2","src","poster","content","locals","list","result","join","mediaQuery","alreadyImportedModules","addStylesToDom","styles","options","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","Error","removeStyleElement","parentNode","idx","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","setAttribute","unescape","encodeURIComponent","blob","oldSrc","memoize","fn","memo","apply","arguments","isOldIE","toLowerCase","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","Boolean"],"mappings":"CAAA,SAAAA,EAAAC,GACA,gBAAAC,UAAA,gBAAAC,QACAA,OAAAD,QAAAD,IACA,kBAAAG,gBAAAC,IACAD,OAAA,aAAAH,GACA,gBAAAC,SACAA,QAAA,QAAAD,IAEAD,EAAA,QAAAC,KACCK,KAAA,WACD,MCAgB,UAAUC,GCN1B,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAP,OAGA,IAAAC,GAAAO,EAAAD,IACAP,WACAS,GAAAF,EACAG,QAAA,EAUA,OANAL,GAAAE,GAAAI,KAAAV,EAAAD,QAAAC,IAAAD,QAAAM,GAGAL,EAAAS,QAAA,EAGAT,EAAAD,QAvBA,GAAAQ,KAqCA,OATAF,GAAAM,EAAAP,EAGAC,EAAAO,EAAAL,EAGAF,EAAAQ,EAAA,GAGAR,EAAA,KDgBM,SAASL,EAAQD,EAASM,GAE/B,YAMA,SAASS,GAAgBC,EAAUC,GAAe,KAAMD,YAAoBC,IAAgB,KAAM,IAAIC,WAAU,qCAJhH,GAAIC,GAA4B,kBAAXC,SAAoD,gBAApBA,QAAOC,SAAwB,SAAUC,GAAO,aAAcA,IAAS,SAAUA,GAAO,MAAOA,IAAyB,kBAAXF,SAAyBE,EAAIC,cAAgBH,OAAS,eAAkBE,IAEtOE,EAAe,WAAc,QAASC,GAAiBC,EAAQC,GAAS,IAAK,GAAIC,GAAI,EAAGA,EAAID,EAAME,OAAQD,IAAK,CAAE,GAAIE,GAAaH,EAAMC,EAAIE,GAAWC,WAAaD,EAAWC,aAAc,EAAOD,EAAWE,cAAe,EAAU,SAAWF,KAAYA,EAAWG,UAAW,GAAMC,OAAOC,eAAeT,EAAQI,EAAWM,IAAKN,IAAiB,MAAO,UAAUb,EAAaoB,EAAYC,GAAiJ,MAA9HD,IAAYZ,EAAiBR,EAAYsB,UAAWF,GAAiBC,GAAab,EAAiBR,EAAaqB,GAAqBrB,KE5DjiBuB,SAAQC,IAAI,oDAAoD,sDAAsD,uCAEtHnC,EAAQ,EAER,IAAIoC,GAAQ,EAENC,EFgES,WEzDX,QAAAA,GAAYC,GAAQ,GAAAC,GAAAzC,IAAAW,GAAAX,KAAAuC,EAChB,IAAMG,IACFC,MAAS,YAAa,uJACtBC,OAAU,YAAa,4LACvBC,aAAc,YAAa,qsCAC3BC,eAAgB,YAAa,wfAC7BC,cAAe,YAAa,yMAC5BC,MAAS,YAAa,sbACtBC,MAAS,YAAa,irBACtBC,SAAY,YAAa,2zGACzBC,OAAU,YAAa,oFACvBC,SAAY,YAAa,kzBACzBC,eAAgB,YAAa,obAC7BC,MAAS,YAAa,iHACtBC,MAAS,YAAa,oXACtBC,QAAW,YAAa,2lBAE5BxD,MAAKyD,OAAS,SAACC,GACX,gHAC2FhB,EAAIgB,GAAM,GADrG,kEAEoCA,EAFpC,+DAGwChB,EAAIgB,GAAM,GAHlD,iBAGqEA,EAHrE,mDAQJ1D,KAAKwC,OAASA,CAEd,IAAMmB,GAAW,UAAUC,KAAKC,OAAOC,UAAUC,UAE7CJ,KACA3D,KAAKwC,OAAOwB,UAAW,EAI3B,IAAMC,IACFC,QAASC,SAASC,uBAAuB,WAAW,GACpDJ,UAAU,EACVK,MAAO,UACPrB,MAAM,EACNsB,KAAMR,UAAUS,SAASC,QAAQ,WAAe,KAAO,KACvDC,YAAY,EACZC,QAAQ,EACRC,QAAS,OAEb,KAAK,GAAIC,KAAcX,GACfA,EAAcY,eAAeD,KAAgB5E,KAAKwC,OAAOqC,eAAeD,KACxE5E,KAAKwC,OAAOoC,GAAcX,EAAcW,GAIhD,IAAME,IACFC,qBAAsB,QACtBC,IAAO,KACPC,OAAU,KACVC,QAAW,KACXC,2BAA4B,YAC5BC,eAAgB,OAChBC,mBAAoB,UACpBC,gBAAiB,eACjBC,KAAQ,OACRC,MAAS,KACTC,sBAAuB,QACvBC,OAAU,KACVC,wBAAyB,aACzBC,oBAAqB,SACrBC,mBAAoB,SACpBC,QAAW,MAETC,EAAU,SAACC,GACb,MAAyB,OAArBvD,EAAKD,OAAO8B,KACL0B,EAEmB,OAArBvD,EAAKD,OAAO8B,KACVQ,EAAOkB,GADb,OAYThG,MAAKiG,UAAY,SAACvC,EAAMwC,EAAYC,GAChCD,EAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3CE,EAAI1C,EAAO,OAAO2C,MAAMF,GAA0B,IAAbD,EAAmB,IAI5D,IAAMI,IAAc,OAAQ,QAAS,UAAW,UAAW,QAAS,QACpEtG,MAAKuG,QACL,KAAK,GAAI/E,GAAI,EAAGA,EAAI8E,EAAW7E,OAAQD,IACnCxB,KAAKuG,MAAMD,EAAW9E,MAE1BxB,MAAKwG,QAAU,SAAC9C,GACZ,IAAK,GAAI+C,GAAI,EAAGA,EAAIhE,EAAK8D,MAAM7C,GAAMjC,OAAQgF,IACzChE,EAAK8D,MAAM7C,GAAM+C,MAIzBzG,KAAKkE,QAAUlE,KAAKwC,OAAO0B,QACtBlE,KAAKwC,OAAOkE,SACb1G,KAAKkE,QAAQyC,UAAUC,IAAI,sBAG/B5G,KAAKkE,QAAQ2C,UAAY,+IAGc7G,KAAKwC,OAAOsE,MAAMC,IAAlB,WAAmC/G,KAAKwC,OAAOsE,MAAMC,IAArD,QAHd,wBAGqG/G,KAAKwC,OAAOiC,WAAZ,8BAHrG,aAGyKzE,KAAKwC,OAAOmC,QAHrL,UAGsM3E,KAAKwC,OAAOsE,MAAME,IAHxN,+SASXhH,KAAKwC,OAAOkE,QAAZ,oCAA0DX,EAAQ,sBAAlE,cATW,omEA4CT/F,KAAKyD,OAAO,SA5CH,oEA8CiBE,EAAW,yBAA2B,IA9CvD,gFAgDL3D,KAAKyD,OAAO,gBAhDP,yPAoDsEzD,KAAKwC,OAAO6B,MApDlF,2FAqDoDrE,KAAKwC,OAAO6B,MArDhE,6YA6DXrE,KAAKwC,OAAOiC,WAAa,+EAC4Bd,EAAW,yBAA2B,IADlE,kBAEvB3D,KAAKyD,OAAO,UAFW,kCAAzB,IA7DW,mIAoELzD,KAAKyD,OAAO,WApEP,wKAwEDzD,KAAKyD,OAAO,SAxEX,6PA4E+CsC,EAAQ,qBA5EvD,gJA8EyDzD,EA9EzD,kUAkFyDA,EAlFzD,6RAsFyDA,EAtFzD,6RA0FyDA,EA1FzD,6RA8FyDA,EA9FzD,6RAkGyDA,EAlGzD,2VAuGgDyD,EAAQ,oBAvGxD,+IAyGwDzD,EAzGxD,iEA0GeyD,EAAQ,OA1GvB,8LA6GwDzD,EA7GxD,2EA8GeyD,EAAQ,WA9GvB,8LAiHwDzD,EAjHxD,oEAkHeyD,EAAQ,UAlHvB,gOAsH2DA,EAAQ,4BAtHnE,kGAwHD/F,KAAKyD,OAAO,QAxHX,oNA8HLzD,KAAKyD,OAAO,WA9HP,uLAmITzD,KAAKyD,OAAO,SAnIH,ySAyIkDzD,KAAKwC,OAAO6B,MAzI9D,kFA0I4CrE,KAAKwC,OAAO6B,MA1IxD,0RAgJ6F0B,EAAQ,gBAhJrG,yKAiJoHA,EAAQ,oBAjJ5H,kKAkJ6GA,EAAQ,iBAlJrH,kDAuJzB,IAAIkB,GAAQjH,KAAKkE,QAAQgD,aAAe,GACxC,IAAID,EAAO,CACP,GAAIE,GAAahD,SAASiD,cAAc,QACxCD,GAAWN,UAAX,4CACA1C,SAASkD,KAAKC,YAAYH,GAI9BnH,KAAK8G,MAAQ9G,KAAKkE,QAAQE,uBAAuB,iBAAiB,GAG9DpE,KAAKwC,OAAOsE,MAAME,IAAIO,MAAM,aAAeC,IAAIC,gBAAe,WAC9DhF,EAAKyB,QAAQE,uBAAuB,gBAAgB,GAAGiC,MAAMqB,QAAU,MACvE,IAAMC,GAAM,GAAIH,IAChBG,GAAIC,YAAYnF,EAAKqE,OACrBa,EAAIE,GAAGL,IAAIM,OAAOC,eAAgB,WAC9BJ,EAAIK,WAAWvF,EAAKD,OAAOsE,MAAME,KACjCW,EAAIE,GAAGL,IAAIM,OAAOG,gBAAiB,SAAU1B,EAAO2B,GAChD9F,QAAQC,IAAI,0BAA4B6F,EAAKC,OAAO1G,OAAS,yBAKzEzB,KAAKoI,MAAQpI,KAAKkE,QAAQE,uBAAuB,sBAAsB,GACvEpE,KAAKoI,MAAMC,iBAAiB,eAAgB,WACxC5F,EAAK2F,MAAMzB,UAAU2B,OAAO,8BAIhCtI,KAAKuI,WAAavI,KAAKkE,QAAQE,uBAAuB,qBAAqB,GAC3EpE,KAAKwI,aAAc,EACnBxI,KAAKuI,WAAWF,iBAAiB,QAAS,WACtC5F,EAAKgG,UAGT,IAAMC,GAAY1I,KAAKkE,QAAQE,uBAAuB,sBAAsB,GACtEuE,EAAU3I,KAAKkE,QAAQE,uBAAuB,2BAA2B,EAC/E,IAAKT,EAQA,CACD,GAAMiF,GAAmB,WACjBnG,EAAKyB,QAAQyC,UAAUkC,SAAS,2BAChCpG,EAAKyB,QAAQyC,UAAU2B,OAAO,2BAG9B7F,EAAKyB,QAAQyC,UAAUC,IAAI,2BAGnC8B,GAAUL,iBAAiB,QAASO,GACpCD,EAAQN,iBAAiB,QAASO,OAjBlCF,GAAUL,iBAAiB,QAAS,WAChC5F,EAAKgG,WAETE,EAAQN,iBAAiB,QAAS,WAC9B5F,EAAKgG,UAuBb,IAAMK,GAAe,SAACC,GAClB,GAAMC,GAAO,SAACC,GACV,MAAOA,GAAM,GAAK,IAAMA,EAAM,GAAKA,GAEjCC,EAAMC,SAASJ,EAAS,IACxBK,EAAMD,SAASJ,EAAe,GAANG,EAC9B,OAAOF,GAAKE,GAAO,IAAMF,EAAKI,IAO5BC,EAAqB,SAACnF,GACxB,GAAIoF,GAAapF,EAAQqF,WACrBC,EAAUtF,EAAQuF,aAClBC,EAAA,MACJ,IAAKvF,SAASwF,mBAAsBxF,SAASyF,sBAAyBzF,SAAS0F,wBAO3E,KAAmB,OAAZL,GAAoBA,IAAY/G,EAAKyB,SACxCoF,GAAcE,EAAQD,WACtBC,EAAUA,EAAQC,iBARtB,MAAmB,OAAZD,GACHF,GAAcE,EAAQD,WACtBC,EAAUA,EAAQC,YAU1B,OADAC,GAAoBvF,SAAS2F,KAAKC,WAAa5F,SAAS6F,gBAAgBD,WACjET,EAAaI,GAuBpBtD,IACJA,GAAI6D,UAAYjK,KAAKkE,QAAQE,uBAAuB,kBAAkB,GACtEgC,EAAI8D,UAAYlK,KAAKkE,QAAQE,uBAAuB,kBAAkB,EACtE,IAAM+F,GAAOnK,KAAKkE,QAAQE,uBAAuB,oBAAoB,GACjEgG,EAAA,MAEApK,MAAKwC,OAAOkE,SACZ1G,KAAK8G,MAAMuB,iBAAiB,UAAW,WACnC,IAAK,GAAIgC,GAAI,EAAGA,EAAI5H,EAAK6H,IAAI7I,OAAQ4I,IAAK,CACtC,GAAI5H,EAAK6H,IAAID,GAAGE,MAAQ9H,EAAKqE,MAAM0D,YAE/B,YADA/H,EAAKgI,SAAWJ,EAGpB5H,GAAKgI,SAAWhI,EAAK6H,IAAI7I,SAKrC,IAAIiJ,GAAc,EACdC,EAAiB,EACjBC,GAAoB,EACpBC,EAAA,MACJ7K,MAAK8K,QAAU,WACXrI,EAAKsI,WAAaC,YAAY,WAE1BL,EAAiBlI,EAAKqE,MAAM0D,aACvBI,GACED,EAAkBD,EAAc,MAC/BjI,EAAKqE,MAAMmE,SACfxI,EAAKyB,QAAQyC,UAAUC,IAAI,mBAC3BgE,GAAoB,GAEpBA,GACGD,EAAkBD,EAAc,MAC/BjI,EAAKqE,MAAMmE,SACfxI,EAAKyB,QAAQyC,UAAU2B,OAAO,mBAC9BsC,GAAoB,GAExBF,EAAcC,EAEdlI,EAAKwD,UAAU,SAAUxD,EAAKqE,MAAM0D,YAAc/H,EAAKqE,MAAMoE,SAAU,SACvEzI,EAAKyB,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAYiC,EAAarG,EAAKqE,MAAM0D,aAC5F/H,EAAK+D,QAAQ,YACd,KACC/D,EAAKD,OAAOkE,UACZmE,EAAcG,YAAY,WAEtB,IADA,GAAIG,GAAO1I,EAAK6H,IAAI7H,EAAKgI,UAClBU,GAAQ1I,EAAKqE,MAAM0D,aAAeY,WAAWD,EAAKZ,OACrDc,GAAUF,EAAKnF,KAAMmF,EAAKG,MAAOH,EAAKzH,MACtCyH,EAAO1I,EAAK6H,MAAM7H,EAAKgI,WAE5B,KAGXzK,KAAKuL,UAAY,WACbC,cAAc/I,EAAKsI,YACftI,EAAKD,OAAOkE,SACZ8E,cAAcX,IAItBV,EAAK9B,iBAAiB,QAAS,SAAC9B,GAC5B,GAAMkF,GAAIlF,GAAS1C,OAAO0C,KAC1B6D,GAAWD,EAAKuB,WAChB,IAAIxF,IAAcuF,EAAEE,QAAUtC,EAAmBc,IAASC,CAC1DlE,GAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3CzD,EAAKwD,UAAU,SAAUC,EAAY,SACrCzD,EAAKqE,MAAM0D,YAAcY,WAAWhF,EAAI6D,UAAU5D,MAAMuF,OAAS,IAAMnJ,EAAKqE,MAAMoE,UAGtF,IAAMW,GAAY,SAACtF,GACf,GAAMkF,GAAIlF,GAAS1C,OAAO0C,MACtBL,GAAcuF,EAAEE,QAAUtC,EAAmBc,IAASC,CAC1DlE,GAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3CzD,EAAKwD,UAAU,SAAUC,EAAY,SACrCzD,EAAKyB,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAYiC,EAAa5C,EAAazD,EAAKqE,MAAMoE,WAGvGY,EAAU,QAAVA,MACF3H,SAAS4H,oBAAoB,UAAWD,IACxC3H,SAAS4H,oBAAoB,YAAaF,GAC1CpJ,EAAKqE,MAAM0D,YAAcY,WAAWhF,EAAI6D,UAAU5D,MAAMuF,OAAS,IAAMnJ,EAAKqE,MAAMoE,SAClFzI,EAAKqI,UAGTX,GAAK9B,iBAAiB,YAAa,WAC/B+B,EAAWD,EAAKuB,YAChBjJ,EAAK8I,YACLpH,SAASkE,iBAAiB,YAAawD,GACvC1H,SAASkE,iBAAiB,UAAWyD,KAOzC1F,EAAI4F,UAAYhM,KAAKkE,QAAQE,uBAAuB,4BAA4B,EAChF,IAAM6H,GAAYjM,KAAKkE,QAAQE,uBAAuB,kBAAkB,GAClE8H,EAAoBlM,KAAKkE,QAAQE,uBAAuB,2BAA2B,GACnF+H,EAAgBnM,KAAKkE,QAAQE,uBAAuB,sBAAsB,GAC1EgI,EAAapM,KAAKkE,QAAQE,uBAAuB,uBAAuB,GACxEiI,EAAS,EAEfrM,MAAKsM,iBAAmB,WACpB,GAAMF,GAAa3J,EAAKyB,QAAQE,uBAAuB,uBAAuB,EAC1E3B,GAAKqE,MAAMyF,QAAU,GACrBH,EAAWvF,UAAYpE,EAAKgB,OAAO,aAE9BhB,EAAKqE,MAAMyF,OAAS,EACzBH,EAAWvF,UAAYpE,EAAKgB,OAAO,eAGnC2I,EAAWvF,UAAYpE,EAAKgB,OAAO,cAG3C,IAAM+I,GAAa,SAACjG,GAChB,GAAMkF,GAAIlF,GAAS1C,OAAO0C,MACtBL,GAAcuF,EAAEE,QAAUtC,EAAmB8C,GAAiB,KAAOE,CACzE5J,GAAK8J,OAAOrG,IAEVuG,EAAW,QAAXA,MACFtI,SAAS4H,oBAAoB,UAAWU,IACxCtI,SAAS4H,oBAAoB,YAAaS,GAC1CP,EAAUtF,UAAU2B,OAAO,yBAG/B4D,GAAkB7D,iBAAiB,QAAS,SAAC9B,GACzC,GAAMkF,GAAIlF,GAAS1C,OAAO0C,MACtBL,GAAcuF,EAAEE,QAAUtC,EAAmB8C,GAAiB,KAAOE,CACzE5J,GAAK8J,OAAOrG,KAEhBgG,EAAkB7D,iBAAiB,YAAa,WAC5ClE,SAASkE,iBAAiB,YAAamE,GACvCrI,SAASkE,iBAAiB,UAAWoE,GACrCR,EAAUtF,UAAUC,IAAI,2BAE5BwF,EAAW/D,iBAAiB,QAAS,WAC7B5F,EAAKqE,MAAM4F,OACXjK,EAAKqE,MAAM4F,OAAQ,EACnBjK,EAAK6J,mBACL7J,EAAKwD,UAAU,SAAUxD,EAAKqE,MAAMyF,OAAQ,WAG5C9J,EAAKqE,MAAM4F,OAAQ,EACnBN,EAAWvF,UAAYpE,EAAKgB,OAAO,cACnChB,EAAKwD,UAAU,SAAU,EAAG,WAQpC,IAAI0G,GAAW,CACf,KAAKhJ,EAAU,CACX,GAAMiJ,GAAiB,WACnBnK,EAAKyB,QAAQyC,UAAU2B,OAAO,2BAC9BuE,aAAaF,GACbA,EAAWG,WAAW,WACdrK,EAAKqE,MAAMiG,OAAOtL,SAClBgB,EAAKyB,QAAQyC,UAAUC,IAAI,2BAC3BoG,IACAC,OAEL,KAEPjN,MAAKkE,QAAQmE,iBAAiB,YAAauE,GAC3C5M,KAAKkE,QAAQmE,iBAAiB,QAASuE,GAO3C,GAAIM,GAAaC,aAAaC,QAAQ,oBAAsB,GACtDC,GACFC,SAAY,uIAE8BvH,EAAQ,SAFtC,gEAIA/F,KAAKyD,OAAO,UAJZ,6KAQ8BsC,EAAQ,QARtC,obAe8BA,EAAQ,WAftC,6bAsB8BA,EAAQ,uBAtBtC,gOAyB4E,IAAbmH,EAzB/D,wNA+BZK,MAAA,8dAQ0CxH,EAAQ,UARlD,siBAsBEyH,EAAcxN,KAAKkE,QAAQE,uBAAuB,wBAAwB,GAC1EqJ,EAAazN,KAAKkE,QAAQE,uBAAuB,uBAAuB,GACxEsJ,EAAO1N,KAAKkE,QAAQE,uBAAuB,gBAAgB,EACjEqJ,GAAW5G,UAAYwG,EAAYC,QAEnC,IAAMN,GAAe,WACbS,EAAW9G,UAAUkC,SAAS,8BAC9B4E,EAAW9G,UAAU2B,OAAO,4BAC5BoF,EAAK/G,UAAU2B,OAAO,qBACtBwE,WAAW,WACPW,EAAW9G,UAAU2B,OAAO,8BAC5BmF,EAAW5G,UAAYwG,EAAYC,SACnCK,KACD,OAGLC,EAAc,WAChBH,EAAW9G,UAAUC,IAAI,4BACzB8G,EAAK/G,UAAUC,IAAI,qBAGvB8G,GAAKrF,iBAAiB,QAAS,WAC3B2E,MAEJQ,EAAYnF,iBAAiB,QAAS,WAClCuF,KAGJ,IAAI5K,GAAOhD,KAAKwC,OAAOQ,KACjB6K,EAAe7N,KAAKkE,QAAQE,uBAAuB,mBAAmB,GACxE0J,GAAU,EACRH,EAAe,WAEjB,GAAMI,GAAUtL,EAAKyB,QAAQE,uBAAuB,wBAAwB,GACtE4J,EAAaD,EAAQ3J,uBAAuB,gCAAgC,EAElF4J,GAAWC,QAAUjL,EAErB+K,EAAQ1F,iBAAiB,QAAS,WAC9B2F,EAAWC,SAAWD,EAAWC,QAC7BD,EAAWC,SACXjL,GAAO,EACPP,EAAKqE,MAAM9D,KAAOA,IAGlBA,GAAO,EACPP,EAAKqE,MAAM9D,KAAOA,GAEtBgK,KAIJ,IAAMkB,GAAazL,EAAKyB,QAAQE,uBAAuB,2BAA2B,GAC5E+J,EAAgBD,EAAW9J,uBAAuB,iCAAiC,EAEzF+J,GAAcF,QAAUH,EAExBI,EAAW7F,iBAAiB,QAAS,WAEjC,GADA8F,EAAcF,SAAWE,EAAcF,QACnCE,EAAcF,SAEd,GADAH,GAAU,EACNrL,EAAKD,OAAOkE,QAAS,CACrB,IAAK,GAAI0H,GAAI,EAAGA,EAAI3L,EAAK6H,IAAI7I,OAAQ2M,IAAK,CACtC,GAAI3L,EAAK6H,IAAI8D,GAAG7D,MAAQ9H,EAAKqE,MAAM0D,YAAa,CAC5C/H,EAAKgI,SAAW2D,CAChB,OAEJ3L,EAAKgI,SAAWhI,EAAK6H,IAAI7I,OAE7BoJ,EAAcG,YAAY,WAEtB,IADA,GAAIG,GAAO1I,EAAK6H,IAAI7H,EAAKgI,UAClBU,GAAQ1I,EAAKqE,MAAM0D,aAAeY,WAAWD,EAAKZ,OACrDc,GAAUF,EAAKnF,KAAMmF,EAAKG,MAAOH,EAAKzH,MACtCyH,EAAO1I,EAAK6H,MAAM7H,EAAKgI,WAE5B,QAIPqD,IAAU,EACNrL,EAAKD,OAAOkE,UACZ8E,cAAcX,GACdgD,EAAahH,UAAb,uEACApE,EAAK4L,WACDlL,SACAmL,OACAC,WAEJ9L,EAAK+L,SAAW/L,EAAKyB,QAAQE,uBAAuB,wBAAwB,GAGpF4I,MAIJ,IAAMyB,GAAWhM,EAAKyB,QAAQE,uBAAuB,yBAAyB,EAC9EqK,GAASpG,iBAAiB,QAAS,WAC/BoF,EAAW9G,UAAUC,IAAI,8BACzB6G,EAAW5G,UAAYwG,EAAYE,KAGnC,KAAK,GADCmB,GAAYjB,EAAWrJ,uBAAuB,8BAJfuK,EAAA,SAK5BC;AACLF,EAAUE,GAAGvG,iBAAiB,QAAS,WACnC5F,EAAKqE,MAAM+H,aAAeH,EAAUE,GAAGE,QAAQvB,MAC/CP,OAHC4B,EAAI,EAAGA,EAAIF,EAAUjN,OAAQmN,IAAKD,EAAlCC,KAQTnM,EAAKD,OAAOkE,UAAS,WAErBN,EAAI2I,WAAatM,EAAKyB,QAAQE,uBAAuB,6BAA6B,EAClF,IAAM4K,GAAqBvM,EAAKyB,QAAQE,uBAAuB,4BAA4B,GACrF6K,EAAiBxM,EAAKyB,QAAQE,uBAAuB,uBAAuB,GAC5E8K,EAAoBzM,EAAKyB,QAAQE,uBAAuB,2BAA2B,GACnF+K,EAAS,GACf1M,GAAKwD,UAAU,UAAWiH,EAAY,QAEtC,IAAMkC,GAAc,SAAC7I,GACjB,GAAMkF,GAAIlF,GAAS1C,OAAO0C,MACtBL,GAAcuF,EAAEE,QAAUtC,EAAmB4F,IAAmBE,CACpEjJ,GAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3CzD,EAAKwD,UAAU,UAAWC,EAAY,QAEtC,KAAK,GADCmJ,GAAQ5M,EAAKyB,QAAQE,uBAAuB,wBACzCkL,EAAI,EAAGA,EAAID,EAAM5N,OAAQ6N,IAC9BD,EAAMC,GAAGjJ,MAAMkJ,QAAUrJ,CAE7BgH,GAAahH,EACbiH,aAAaqC,QAAQ,kBAAmBtC,IAEtCuC,EAAY,QAAZA,KACFtL,SAAS4H,oBAAoB,UAAW0D,GACxCtL,SAAS4H,oBAAoB,YAAaqD,GAC1CF,EAAkBvI,UAAU2B,OAAO,kCAGvC0G,GAAmB3G,iBAAiB,QAAS,SAAC9B,GAC1C,GAAMkF,GAAIlF,GAAS1C,OAAO0C,MACtBL,GAAcuF,EAAEE,QAAUtC,EAAmB4F,IAAmBE,CACpEjJ,GAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3CzD,EAAKwD,UAAU,UAAWC,EAAY,QAEtC,KAAK,GADCmJ,GAAQ5M,EAAKyB,QAAQE,uBAAuB,wBACzCsL,EAAI,EAAGA,EAAIL,EAAM5N,OAAQiO,IAC9BL,EAAMK,GAAGrJ,MAAMkJ,QAAUrJ,CAE7BgH,GAAahH,EACbiH,aAAaqC,QAAQ,kBAAmBtC,KAE5C8B,EAAmB3G,iBAAiB,YAAa,WAC7ClE,SAASkE,iBAAiB,YAAa+G,GACvCjL,SAASkE,iBAAiB,UAAWoH,GACrCP,EAAkBvI,UAAUC,IAAI,uCAI5C+G,KAOA3N,KAAK8G,MAAMuB,iBAAiB,iBAAkB,WACd,IAAxB5F,EAAKqE,MAAMoE,WACXzI,EAAKyB,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAYiC,EAAarG,EAAKqE,MAAMoE,aAKpGlL,KAAK8G,MAAMuB,iBAAiB,WAAY,WACpC,GAAMnC,GAAazD,EAAKqE,MAAM6I,SAASlO,OAASgB,EAAKqE,MAAM6I,SAASC,IAAInN,EAAKqE,MAAM6I,SAASlO,OAAS,GAAKgB,EAAKqE,MAAMoE,SAAW,CAChIzI,GAAKwD,UAAU,SAAUC,EAAY,WAIzClG,KAAK8G,MAAMuB,iBAAiB,QAAS,WACjC5F,EAAKyB,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAxD,oBACApE,EAAK+D,QAAQ,WAIjBxG,KAAK8G,MAAMuB,iBAAiB,UAAW,WACnC5F,EAAK+D,QAAQ,aAIjBxG,KAAK6P,OAAQ,EACb7P,KAAK8G,MAAMuB,iBAAiB,QAAS,WACjC5F,EAAKwD,UAAU,SAAU,EAAG,SACvBjD,IACDP,EAAKoN,OAAQ,EACbpN,EAAKG,QACLH,EAAK+D,QAAQ,YAKrBxG,KAAK8G,MAAMyF,OAASpD,SAASnJ,KAAKkE,QAAQE,uBAAuB,4BAA4B,GAAGiC,MAAMuF,OAAS,IAG/G5L,KAAK8G,MAAM9D,KAAOA,EAGU,IAAxBhD,KAAK8G,MAAMoE,WACXlL,KAAKkE,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAY7G,KAAK8G,MAAMoE,SAAWpC,EAAa9I,KAAK8G,MAAMoE,UAAY,QAOlI,IAAM4E,GAAa7I,EAAQ,GAAI,GAC3B8I,EAAA,OACAC,EAAA,OACAC,EAAA,MACJjQ,MAAKqO,WACDlL,SACAmL,OACAC,UAGJ,IAAM2B,IAAe,SAACC,GAClB,MAAOtC,GAAauC,wBAAwBjN,MAAQgN,EAAIC,wBAAwBjN,OAG9EkN,GAAW,SAACzE,GACd,OAAQmE,EAAWnE,GAAS,GAG1B0E,GAAY,SAACH,EAAKzM,EAAMkI,GAG1B,IAAK,GAFC2E,GAAMR,EAAWM,GAASzE,GADI4E,EAAA,SAG3BC,GACL,GAAItF,GAAO1I,EAAK4L,UAAU3K,GAAM+M,EAAI,GACpC,KAAItF,IAAQA,EAAK1J,OAoBb,MAJAgB,GAAK4L,UAAU3K,GAAM+M,EAAI,KAAON,GAChCA,EAAI9H,iBAAiB,eAAgB,WACjC5F,EAAK4L,UAAU3K,GAAM+M,EAAI,IAAIC,OAAO,EAAG,MAE3CC,EAAOF,EAAIR,EAnBX,KAAK,GAAIW,GAAI,EAAGA,EAAIzF,EAAK1J,OAAQmP,IAAK,CAClC,GAAMC,GAAWX,GAAa/E,EAAKyF,IAAM,EACzC,IAAIC,GAAYd,EAAYQ,EAAMF,GAASlF,EAAKyF,GAAG1J,cAAiB2J,GAAY,EAC5E,KAEJ,IAAID,IAAMzF,EAAK1J,OAAS,EAKpB,MAJAgB,GAAK4L,UAAU3K,GAAM+M,EAAI,IAAIK,KAAKX,GAClCA,EAAI9H,iBAAiB,eAAgB,WACjC5F,EAAK4L,UAAU3K,GAAM+M,EAAI,IAAIC,OAAO,EAAG,MAE3CC,EAAOF,EAAIR,KAblBQ,EAAI,GAAKA,IAAK,IAAAM,GAAAP,EAAdC,EAAc,mCAAAM,GAAA,YAAAhQ,EAAAgQ,IAAA,MAAAA,GAAAJ,GA2B3B3Q,MAAKwO,SAAWxO,KAAKkE,QAAQE,uBAAuB,wBAAwB,EAE5E,IAAMiH,IAAY,SAACrF,EAAMsF,EAAO5H,GAC5BqM,EAAWlC,EAAa3G,YACxB8I,EAAYnC,EAAamD,aACzBf,EAAQ9G,SAAS6G,EAAYF,EAC7B,IAAI3E,GAAOhH,SAASiD,cAAT,MACX+D,GAAKxE,UAAUC,IAAf,wBACAuE,EAAKxE,UAAUC,IAAf,mBAAsClD,GACtCyH,EAAKtE,UAAYb,EACjBmF,EAAK9E,MAAMkJ,QAAUrC,EACrB/B,EAAK9E,MAAMiF,MAAQA,EACnBH,EAAK9C,iBAAiB,eAAgB,WAClCwF,EAAaoD,YAAY9F,KAI7B1I,EAAK+L,SAAS3H,UAAYb,CAC1B,IAAIkL,GAAYzO,EAAK+L,SAAStH,WAG9B,QAAQxD,GACJ,IAAK,QACDyH,EAAK9E,MAAMiI,IAAMwB,EAAaQ,GAAUnF,EAAMzH,EAAMwN,GAAa,KACjE/F,EAAK9E,MAAMuF,MAASsF,EAAY,EAAK,KACrC/F,EAAK9E,MAAM8K,UAAX,eAAsCpB,EAAtC,KACA,MACJ,KAAK,MACD5E,EAAK9E,MAAMiI,IAAMwB,EAAaQ,GAAUnF,EAAMzH,GAAQ,IACtD,MACJ,KAAK,SACDyH,EAAK9E,MAAMkI,OAASuB,EAAaQ,GAAUnF,EAAMzH,GAAQ,IACzD,MACJ,SACItB,QAAQgP,MAAR,+BAA6C1N,GASrD,MALAmK,GAAavG,YAAY6D,GAGzBA,EAAKxE,UAAUC,IAAf,wBAEOuE,EAIPnL,MAAKwC,OAAOkE,SAAS,WACrBjE,EAAKgI,SAAW,CAChB,IAAM4G,GAAM,GAAIC,eAChBD,GAAIE,mBAAqB,WACE,IAAnBF,EAAIG,aACAH,EAAII,QAAU,KAAOJ,EAAII,OAAS,KAAsB,MAAfJ,EAAII,QAAgB,WAC7D,GAAMC,GAAWC,KAAKC,MAAMP,EAAIQ,aACV,KAAlBH,EAASI,KACTC,MAAML,EAASM,KAGXvP,EAAKD,OAAOkE,QAAQuL,UACpBZ,EAAIE,mBAAqB,WACrB,GAAuB,IAAnBF,EAAIG,WACJ,GAAIH,EAAII,QAAU,KAAOJ,EAAII,OAAS,KAAsB,MAAfJ,EAAII,OAAgB,CAC7D,GAAMS,GAAYP,KAAKC,MAAMP,EAAIQ,aACV,KAAnBK,EAAUJ,KACVC,MAAMG,EAAUF,MAGhBvP,EAAK6H,IAAMoH,EAAShL,QAAQyL,OAAOD,EAAUxL,SAAS0L,KAAK,SAACC,EAAGC,GAAJ,MAAUD,GAAE9H,KAAO+H,EAAE/H,OAChF9H,EAAKyB,QAAQE,uBAAuB,sBAAsB,GAAGiC,MAAMqB,QAAU,OAGzEjF,EAAKD,OAAOwB,WAAaL,EACzBlB,EAAKE,OAEAgB,GACLlB,EAAKG,aAKbR,SAAQC,IAAI,6BAA+BgP,EAAII,SAI3DJ,EAAIkB,KAAK,MAAO9P,EAAKD,OAAOkE,QAAQuL,SAAS,IAAI,GACjDZ,EAAI/N,KAAK,QAGTb,EAAK6H,IAAMoH,EAAShL,QAAQ0L,KAAK,SAACC,EAAGC,GAAJ,MAAUD,GAAE9H,KAAO+H,EAAE/H,OACtD9H,EAAKyB,QAAQE,uBAAuB,sBAAsB,GAAGiC,MAAMqB,QAAU,OAGzEjF,EAAKD,OAAOwB,WAAaL,EACzBlB,EAAKE,OAEAgB,GACLlB,EAAKG,YAMjBR,QAAQC,IAAI,6BAA+BgP,EAAII,SAI3D,IAAIe,GAAA,MAEAA,GADA/P,EAAKD,OAAOkE,QAAQ+L,QACRhQ,EAAKD,OAAOkE,QAAQgM,IAAhC,OAA0CjQ,EAAKD,OAAOkE,QAAQrG,GAA9D,QAAwEoC,EAAKD,OAAOkE,QAAQ+L,QAGhFhQ,EAAKD,OAAOkE,QAAQgM,IAAhC,OAA0CjQ,EAAKD,OAAOkE,QAAQrG,GAElEgR,EAAIkB,KAAK,MAAOC,GAAQ,GACxBnB,EAAI/N,KAAK,SAILtD,KAAKwC,OAAOwB,WAAaL,EACzB3D,KAAK2C,OAEAgB,GACL3D,KAAK4C,OAQb,IAAM+P,IAAe3S,KAAKkE,QAAQE,uBAAuB,yBAAyB,GAC5EwO,GAAc5S,KAAKkE,QAAQE,uBAAuB,wBAAwB,GAC1EyO,GAAa7S,KAAKkE,QAAQE,uBAAuB,uBAAuB,GACxE0O,GAAqB9S,KAAKkE,QAAQE,uBAAuB,gCAAgC,GACzF2O,GAAoB/S,KAAKkE,QAAQE,uBAAuB,+BAA+B,GACvF4O,GAAkBhT,KAAKkE,QAAQE,uBAAuB,qBAAqB,GAE3E6O,GAAa,SAACC,GAChB,MAAOA,GAAIC,QAAQ,KAAM,SACpBA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,UACdA,QAAQ,MAAO,WAGlBC,GAAc,WAIhB,GAHAT,GAAaU,QAGRV,GAAaW,MAAMH,QAAQ,aAAc,IAE1C,WADApB,OAAMhM,EAAQ,yBAIlB,IAAMwN,IACFC,MAAO/Q,EAAKD,OAAOkE,QAAQ8M,MAC3BC,OAAQhR,EAAKD,OAAOkE,QAAQrG,GAC5BqT,OAAQ,SACRnJ,KAAM9H,EAAKqE,MAAM0D,YACjBxE,KAAM2M,GAAaW,MACnBhI,MAAO7I,EAAKyB,QAAQyP,cAAc,gDAAgDL,MAClF5P,KAAMjB,EAAKyB,QAAQyP,cAAc,+CAA+CL,OAE9EjC,EAAM,GAAIC,eAChBD,GAAIE,mBAAqB,WACrB,GAAuB,IAAnBF,EAAIG,WACJ,GAAIH,EAAII,QAAU,KAAOJ,EAAII,OAAS,KAAsB,MAAfJ,EAAII,OAAgB,CAC7D,GAAMC,GAAWC,KAAKC,MAAMP,EAAIQ,aACV,KAAlBH,EAASI,KACTC,MAAML,EAASM,KAGf5P,QAAQC,IAAI,iBAAkBsP,KAAKC,MAAMP,EAAIQ,mBAIjDzP,SAAQC,IAAI,6BAA+BgP,EAAII,SAI3DJ,EAAIkB,KAAK,OAAQ9P,EAAKD,OAAOkE,QAAQgM,KAAK,GAC1CrB,EAAI/N,KAAKqO,KAAKiC,UAAUL,IAExBZ,GAAaW,MAAQ,GACrBrG,KACAxK,EAAK6H,IAAIoG,OAAOjO,EAAKgI,SAAU,EAAG8I,GAClC9Q,EAAKgI,UACL,IAAMU,GAAOE,GAAU4H,GAAWM,EAAYvN,MAAOuN,EAAYjI,MAAOiI,EAAY7P,KACpFyH,GAAK9E,MAAMwN,OAAX,aAAiCpR,EAAKD,OAAO6B,OAG3CyP,GAAsB,WACpBf,GAAkBpM,UAAUkC,SAAS,iCACrCkK,GAAkBpM,UAAU2B,OAAO,iCAGrCyL,GAAuB,WACrBhB,GAAkBpM,UAAUkC,SAAS,gCACrCkK,GAAkBpM,UAAU2B,OAAO,gCAGnCyK,GAAkBpM,UAAUC,IAAI,iCAIpCoN,GAAc,EACZ/G,GAAe,WACb4F,GAAWlM,UAAUkC,SAAS,8BAC9BgK,GAAWlM,UAAU2B,OAAO,4BAC5BoF,EAAK/G,UAAU2B,OAAO,qBACtBkD,cAAcwI,IACdvR,EAAKyB,QAAQyC,UAAU2B,OAAO,2BAC9BwL,OAGFG,GAAc,WAChBpB,GAAWlM,UAAUC,IAAI,4BACzB8G,EAAK/G,UAAUC,IAAI,qBACnBoN,GAAchJ,YAAY,WACtB6B,aAAaF,IACd,KACHlK,EAAKyB,QAAQyC,UAAUC,IAAI,2BAG/B8G,GAAKrF,iBAAiB,QAAS,WAC3B4E,OAEJ2F,GAAYvK,iBAAiB,QAAS,WAClC4L,KACAnH,WAAW,WACP6F,GAAauB,SACd,OAEPpB,GAAmBzK,iBAAiB,QAAS,WACzC0L,OAIJ/T,KAAKkE,QAAQE,uBAAuB,iCAAiC,GAAGiE,iBAAiB,QAAS,WAC9F,GAAM8L,GAAO1R,EAAKyB,QAAQyP,cAAc,4DACpCQ,KACArB,GAAmB1O,uBAAuB,gBAAgB,GAAGiC,MAAM+N,KAAO3R,EAAKyB,QAAQyP,cAAc,wDAAwDL,SAIrKX,GAAatK,iBAAiB,QAAS,WACnCyL,OAEJnB,GAAatK,iBAAiB,UAAW,SAACoD,GACtC,GAAMlF,GAAQkF,GAAK5H,OAAO0C,KACJ,MAAlBA,EAAM8N,SACNjB,OAIRJ,GAAgB3K,iBAAiB,QAAS+K,GAM1C,IAAMkB,IAAiB,WACnBvE,EAAWlC,EAAa3G,WAExB,KAAK,GADCmI,GAAQ5M,EAAKyB,QAAQE,uBAAuB,wBACzCmQ,EAAI,EAAGA,EAAIlF,EAAM5N,OAAQ8S,IAC9BlF,EAAMkF,GAAGlO,MAAM8K,UAAf,eAA0CpB,EAA1C,MAIR/P,MAAKkE,QAAQmE,iBAAiB,mBAAoB,WAC9CiM,KACAlS,QAAQC,IAAIwL,EAAamD,gBAE7BhR,KAAKkE,QAAQmE,iBAAiB,sBAAuB,WACjDiM,KACAlS,QAAQC,IAAIwL,EAAamD,gBAE7BhR,KAAKkE,QAAQmE,iBAAiB,yBAA0B,WACpDiM,KACAlS,QAAQC,IAAIwL,EAAamD,gBAE7BhR,KAAKkE,QAAQE,uBAAuB,qBAAqB,GAAGiE,iBAAiB,QAAS,WAC7ElE,SAASwF,mBAAsBxF,SAASyF,sBAAyBzF,SAAS0F,wBAYvE1F,SAASqQ,iBACTrQ,SAASqQ,mBAEJrQ,SAASsQ,oBACdtQ,SAASsQ,sBAEJtQ,SAASuQ,wBACdvQ,SAASuQ,yBAlBTjS,EAAKyB,QAAQyQ,kBACblS,EAAKyB,QAAQyQ,oBAERlS,EAAKyB,QAAQ0Q,qBAClBnS,EAAKyB,QAAQ0Q,uBAERnS,EAAKyB,QAAQ2Q,yBAClBpS,EAAKyB,QAAQ2Q,0BAcrBP,MAMJ,IAAMQ,IAAgB,SAACrJ,GACnB,GAAMsJ,GAAM5Q,SAAS6Q,cAAcC,QAAQC,cACrCC,EAAWhR,SAAS6Q,cAAcI,aAAa,kBACrD,IAAY,UAARL,GAA2B,aAARA,GAAmC,KAAbI,GAAgC,SAAbA,EAAqB,CACjF,GAAM5O,GAAQkF,GAAK5H,OAAO0C,MACtBL,EAAA,MACJ,QAAQK,EAAM8N,SACV,IAAK,IACD9N,EAAM8O,iBACN5S,EAAKgG,QACL,MACJ,KAAK,IACDlC,EAAM8O,iBACN5S,EAAKqE,MAAM0D,YAAc/H,EAAKqE,MAAM0D,YAAc,CAClD,MACJ,KAAK,IACDjE,EAAM8O,iBACN5S,EAAKqE,MAAM0D,YAAc/H,EAAKqE,MAAM0D,YAAc,CAClD,MACJ,KAAK,IACDjE,EAAM8O,iBACNnP,EAAazD,EAAKqE,MAAMyF,OAAS,GACjC9J,EAAK8J,OAAOrG,EACZ,MACJ,KAAK,IACDK,EAAM8O,iBACNnP,EAAazD,EAAKqE,MAAMyF,OAAS,GACjC9J,EAAK8J,OAAOrG,KAKxBlG,MAAKwC,OAAOkC,QACZP,SAASkE,iBAAiB,UAAWyM,GAMzC,IAAMvR,IAAOvD,KAAKkE,QAAQE,uBAAuB,gBAAgB,EACjEpE,MAAKkE,QAAQmE,iBAAiB,cAAe,SAACoD,GAC1C,GAAMlF,GAAQkF,GAAK5H,OAAO0C,KAC1BA,GAAM8O,iBACN9R,GAAK8C,MAAMiP,KAAO/O,EAAMoF,QAAUlJ,EAAKyB,QAAQkM,wBAAwBkF,KAAO,KAC9E/R,GAAK8C,MAAMiI,IAAM/H,EAAMgP,QAAU9S,EAAKyB,QAAQkM,wBAAwB9B,IAAM,KAC5E/K,GAAKoD,UAAUC,IAAI,qBAEnB8G,EAAK/G,UAAUC,IAAI,qBACnB8G,EAAKrF,iBAAiB,QAAS,WAC3BqF,EAAK/G,UAAU2B,OAAO,qBACtB/E,GAAKoD,UAAU2B,OAAO,yBAO1BtI,KAAKwC,OAAOiC,aAAY,WACxB,GAAM+Q,GAAa/S,EAAKyB,QAAQE,uBAAuB,uBAAuB,EAC9EoR,GAAWnN,iBAAiB,QAAS,WACjC,GAAMoN,GAAStR,SAASiD,cAAc,SACtCqO,GAAO7J,MAAQnJ,EAAKqE,MAAM4O,WAC1BD,EAAOE,OAASlT,EAAKqE,MAAM8O,YAC3BH,EAAOI,WAAW,MAAMC,UAAUrT,EAAKqE,MAAO,EAAG,EAAG2O,EAAO7J,MAAO6J,EAAOE,QAEzEH,EAAWO,KAAON,EAAOO,YACzBR,EAAWS,SAAW,mBAI9B3T,IFwDH,MAnMAlB,GAAamB,IACTP,IAAK,OACLsR,MAAO,SE+IP/I,GAC4C,oBAAzCzI,OAAOK,UAAU+T,SAAS3V,KAAKgK,KAC/BvK,KAAK8G,MAAM0D,YAAcD,GAEzBvK,KAAK8G,MAAMmE,SACXjL,KAAKwI,aAAc,EAEnBxI,KAAKoI,MAAMvB,UAAY7G,KAAKyD,OAAO,QACnCzD,KAAKoI,MAAMzB,UAAUC,IAAI,4BAEzB5G,KAAKuI,WAAW1B,UAAY7G,KAAKyD,OAAO,SAExCzD,KAAK8G,MAAMnE,OACP3C,KAAK+K,YACL/K,KAAKuL,YAETvL,KAAK8K,UACL9K,KAAKkE,QAAQyC,UAAUC,IAAI,mBAC3B5G,KAAKwG,QAAQ,YFtIhBxE,IAAK,QACLsR,MAAO,WE6IHtT,KAAKwI,cAAexI,KAAK6P,QAC1B7P,KAAKwI,aAAc,EACnBxI,KAAKkE,QAAQyC,UAAU2B,OAAO,mBAE9BtI,KAAKoI,MAAMvB,UAAY7G,KAAKyD,OAAO,SACnCzD,KAAKoI,MAAMzB,UAAUC,IAAI,4BAEzB5G,KAAK6P,OAAQ,EACb7P,KAAKuI,WAAW1B,UAAY7G,KAAKyD,OAAO,QACxCzD,KAAK8G,MAAMlE,QACX5C,KAAKuL,YACLvL,KAAKkE,QAAQyC,UAAU2B,OAAO,mBAC9BtI,KAAKwG,QAAQ,aFnIhBxE,IAAK,SACLsR,MAAO,SEyILpN,GACHA,EAAaA,EAAa,EAAIA,EAAa,EAC3CA,EAAaA,EAAa,EAAIA,EAAa,EAC3ClG,KAAKiG,UAAU,SAAUC,EAAY,SACrClG,KAAK8G,MAAMyF,OAASrG,EAChBlG,KAAK8G,MAAM4F,QACX1M,KAAK8G,MAAM4F,OAAQ,GAEvB1M,KAAKsM,sBFjIJtK,IAAK,SACLsR,MAAO,WEuIJtT,KAAK8G,MAAMmE,OACXjL,KAAK2C,OAGL3C,KAAK4C,WF9HRZ,IAAK,KACLsR,MAAO,SEoIT6C,EAAMC,GACe,kBAATA,IACPpW,KAAKuG,MAAM4P,GAAMrF,KAAKsF,MFxHzBpU,IAAK,cACLsR,MAAO,SEiIAxM,EAAOJ,GAAS,GAAA2P,GAAArW,IACxBA,MAAK8G,MAAMwP,IAAMxP,EAAME,IACvBhH,KAAK8G,MAAMyP,OAASzP,EAAMC,IAAMD,EAAMC,IAAM,GAC5C/G,KAAK8G,MAAM0D,YAAc,EACzBxK,KAAK4C,QACD8D,IAAS,WACT2P,EAAK/L,OACL+L,EAAK5L,SAAW,EAChB4L,EAAKnS,QAAQE,uBAAuB,sBAAsB,GAAGiC,MAAMqB,QAAU,QAC7E2O,EAAKpQ,UAAU,SAAU,EAAG,SAC5BoQ,EAAKpQ,UAAU,SAAU,EAAG,SAC5BoQ,EAAKnS,QAAQE,uBAAuB,iBAAiB,GAAGyC,UAAY,QACpEwP,EAAKnS,QAAQE,uBAAuB,mBAAmB,GAAGyC,UAA1D,uEACAwP,EAAKhI,WACDlL,SACAmL,OACAC,WAEJ8H,EAAK7H,SAAW6H,EAAKnS,QAAQE,uBAAuB,wBAAwB,EAE5E,IAAMT,GAAW,UAAUC,KAAKC,OAAOC,UAAUC,UACjDsS,GAAK7T,OAAOkE,QAAUA,CACtB,IAAM2K,GAAM,GAAIC,eAChBD,GAAIE,mBAAqB,WACE,IAAnBF,EAAIG,aACAH,EAAII,QAAU,KAAOJ,EAAII,OAAS,KAAsB,MAAfJ,EAAII,QAAgB,WAC7D,GAAMC,GAAWC,KAAKC,MAAMP,EAAIQ,aACV,KAAlBH,EAASI,KACTC,MAAML,EAASM,KAGXqE,EAAK7T,OAAOkE,QAAQuL,UACpBZ,EAAIE,mBAAqB,WACrB,GAAuB,IAAnBF,EAAIG,WACJ,GAAIH,EAAII,QAAU,KAAOJ,EAAII,OAAS,KAAsB,MAAfJ,EAAII,OAAgB,CAC7D,GAAMS,GAAYP,KAAKC,MAAMP,EAAIQ,aACV,KAAnBK,EAAUJ,KACVC,MAAMG,EAAUF,MAGhBqE,EAAK5L,SAAW,EAChB4L,EAAK/L,IAAMoH,EAAShL,QAAQyL,OAAOD,EAAUxL,SAAS0L,KAAK,SAACC,EAAGC,GAAJ,MAAUD,GAAE9H,KAAO+H,EAAE/H,OAChF8L,EAAKnS,QAAQE,uBAAuB,sBAAsB,GAAGiC,MAAMqB,QAAU,OAGzE2O,EAAK7T,OAAOwB,WAAaL,EACzB0S,EAAK1T,OAEAgB,GACL0S,EAAKzT,aAKbR,SAAQC,IAAI,6BAA+BgP,EAAII,SAI3DJ,EAAIkB,KAAK,MAAO8D,EAAK7T,OAAOkE,QAAQuL,SAAS,IAAI,GACjDZ,EAAI/N,KAAK,QAGT+S,EAAK5L,SAAW,EAChB4L,EAAK/L,IAAMoH,EAAShL,QAAQ0L,KAAK,SAACC,EAAGC,GAAJ,MAAUD,GAAE9H,KAAO+H,EAAE/H,OACtD8L,EAAKnS,QAAQE,uBAAuB,sBAAsB,GAAGiC,MAAMqB,QAAU,OAGzE2O,EAAK7T,OAAOwB,WAAaL,EACzB0S,EAAK1T,OAEAgB,GACL0S,EAAKzT,YAMjBR,QAAQC,IAAI,6BAA+BgP,EAAII,SAI3D,IAAIe,GAAA,MAEAA,GADA6D,EAAK7T,OAAOkE,QAAQ+L,QACR4D,EAAK7T,OAAOkE,QAAQgM,IAAhC,OAA0C2D,EAAK7T,OAAOkE,QAAQrG,GAA9D,QAAwEgW,EAAK7T,OAAOkE,QAAQ+L,QAGhF4D,EAAK7T,OAAOkE,QAAQgM,IAAhC,OAA0C2D,EAAK7T,OAAOkE,QAAQrG,GAElEgR,EAAIkB,KAAK,MAAOC,GAAQ,GACxBnB,EAAI/N,KAAK,aF1HTf,IE+HZ1C,GAAOD,QAAU2C,GFxHX,SAAS1C,EAAQD,EAASM,GG3yChC,GAAAsW,GAAAtW,EAAA,EACA,iBAAAsW,SAAA3W,EAAAQ,GAAAmW,EAAA,KAEAtW,GAAA,GAAAsW,KACAA,GAAAC,SAAA5W,EAAAD,QAAA4W,EAAAC,SHi0CM,SAAS5W,EAAQD,EAASM,GIx0ChCN,EAAAC,EAAAD,QAAAM,EAAA,KAKAN,EAAAkR,MAAAjR,EAAAQ,GAAA,4g/BAAyi/B;EJi1Cni/B,SAASR,EAAQD,GKj1CvBC,EAAAD,QAAA,WACA,GAAA8W,KA0CA,OAvCAA,GAAAR,SAAA,WAEA,OADAS,MACAnV,EAAA,EAAgBA,EAAAxB,KAAAyB,OAAiBD,IAAA,CACjC,GAAA2J,GAAAnL,KAAAwB,EACA2J,GAAA,GACAwL,EAAA7F,KAAA,UAAA3F,EAAA,OAAwCA,EAAA,QAExCwL,EAAA7F,KAAA3F,EAAA,IAGA,MAAAwL,GAAAC,KAAA,KAIAF,EAAAlV,EAAA,SAAAvB,EAAA4W,GACA,gBAAA5W,KACAA,IAAA,KAAAA,EAAA,KAEA,QADA6W,MACAtV,EAAA,EAAgBA,EAAAxB,KAAAyB,OAAiBD,IAAA,CACjC,GAAAnB,GAAAL,KAAAwB,GAAA,EACA,iBAAAnB,KACAyW,EAAAzW,IAAA,GAEA,IAAAmB,EAAA,EAAYA,EAAAvB,EAAAwB,OAAoBD,IAAA,CAChC,GAAA2J,GAAAlL,EAAAuB,EAKA,iBAAA2J,GAAA,IAAA2L,EAAA3L,EAAA,MACA0L,IAAA1L,EAAA,GACAA,EAAA,GAAA0L,EACKA,IACL1L,EAAA,OAAAA,EAAA,aAAA0L,EAAA,KAEAH,EAAA5F,KAAA3F,MAIAuL,IL81CM,SAAS7W,EAAQD,EAASM,GMj1ChC,QAAA6W,GAAAC,EAAAC,GACA,OAAAzV,GAAA,EAAeA,EAAAwV,EAAAvV,OAAmBD,IAAA,CAClC,GAAA2J,GAAA6L,EAAAxV,GACA0V,EAAAC,EAAAhM,EAAA9K,GACA,IAAA6W,EAAA,CACAA,EAAAE,MACA,QAAAxG,GAAA,EAAiBA,EAAAsG,EAAAG,MAAA5V,OAA2BmP,IAC5CsG,EAAAG,MAAAzG,GAAAzF,EAAAkM,MAAAzG,GAEA,MAAQA,EAAAzF,EAAAkM,MAAA5V,OAAuBmP,IAC/BsG,EAAAG,MAAAvG,KAAAwG,EAAAnM,EAAAkM,MAAAzG,GAAAqG,QAEG,CAEH,OADAI,MACAzG,EAAA,EAAiBA,EAAAzF,EAAAkM,MAAA5V,OAAuBmP,IACxCyG,EAAAvG,KAAAwG,EAAAnM,EAAAkM,MAAAzG,GAAAqG,GAEAE,GAAAhM,EAAA9K,KAA2BA,GAAA8K,EAAA9K,GAAA+W,KAAA,EAAAC,WAK3B,QAAAE,GAAAb,GAGA,OAFAM,MACAQ,KACAhW,EAAA,EAAeA,EAAAkV,EAAAjV,OAAiBD,IAAA,CAChC,GAAA2J,GAAAuL,EAAAlV,GACAnB,EAAA8K,EAAA,GACAsM,EAAAtM,EAAA,GACAuM,EAAAvM,EAAA,GACAwM,EAAAxM,EAAA,GACAyM,GAAcH,MAAAC,QAAAC,YACdH,GAAAnX,GAGAmX,EAAAnX,GAAAgX,MAAAvG,KAAA8G,GAFAZ,EAAAlG,KAAA0G,EAAAnX,IAAgCA,KAAAgX,OAAAO,KAIhC,MAAAZ,GAGA,QAAAa,GAAAZ,EAAAa,GACA,GAAAzQ,GAAA0Q,IACAC,EAAAC,IAAAxW,OAAA,EACA,YAAAwV,EAAAiB,SACAF,EAEGA,EAAAG,YACH9Q,EAAA+Q,aAAAN,EAAAE,EAAAG,aAEA9Q,EAAAC,YAAAwQ,GAJAzQ,EAAA+Q,aAAAN,EAAAzQ,EAAAgR,YAMAJ,EAAAnH,KAAAgH,OACE,eAAAb,EAAAiB,SAGF,SAAAI,OAAA,qEAFAjR,GAAAC,YAAAwQ,IAMA,QAAAS,GAAAT,GACAA,EAAAU,WAAAvH,YAAA6G,EACA,IAAAW,GAAAR,EAAAzT,QAAAsT,EACAW,IAAA,GACAR,EAAAvH,OAAA+H,EAAA,GAIA,QAAAC,GAAAzB,GACA,GAAAa,GAAA3T,SAAAiD,cAAA,QAGA,OAFA0Q,GAAApU,KAAA,WACAmU,EAAAZ,EAAAa,GACAA,EAGA,QAAAa,GAAA1B,GACA,GAAA2B,GAAAzU,SAAAiD,cAAA,OAGA,OAFAwR,GAAAC,IAAA,aACAhB,EAAAZ,EAAA2B,GACAA,EAGA,QAAAtB,GAAApW,EAAA+V,GACA,GAAAa,GAAAgB,EAAAxQ,CAEA,IAAA2O,EAAA8B,UAAA,CACA,GAAAC,GAAAC,GACAnB,GAAAoB,MAAAR,EAAAzB,IACA6B,EAAAK,EAAAC,KAAA,KAAAtB,EAAAkB,GAAA,GACA1Q,EAAA6Q,EAAAC,KAAA,KAAAtB,EAAAkB,GAAA,OACE9X,GAAAyW,WACF,kBAAA0B,MACA,kBAAAA,KAAAC,iBACA,kBAAAD,KAAAE,iBACA,kBAAAC,OACA,kBAAAC,OACA3B,EAAAa,EAAA1B,GACA6B,EAAAY,EAAAN,KAAA,KAAAtB,GACAxP,EAAA,WACAiQ,EAAAT,GACAA,EAAA/B,MACAsD,IAAAE,gBAAAzB,EAAA/B,SAGA+B,EAAAY,EAAAzB,GACA6B,EAAAa,EAAAP,KAAA,KAAAtB,GACAxP,EAAA,WACAiQ,EAAAT,IAMA,OAFAgB,GAAA5X,GAEA,SAAA0Y,GACA,GAAAA,EAAA,CACA,GAAAA,EAAAnC,MAAAvW,EAAAuW,KAAAmC,EAAAlC,QAAAxW,EAAAwW,OAAAkC,EAAAjC,YAAAzW,EAAAyW,UACA,MACAmB,GAAA5X,EAAA0Y,OAEAtR,MAcA,QAAA6Q,GAAArB,EAAAxV,EAAAgG,EAAApH,GACA,GAAAuW,GAAAnP,EAAA,GAAApH,EAAAuW,GAEA,IAAAK,EAAA+B,WACA/B,EAAA+B,WAAAC,QAAAC,EAAAzX,EAAAmV,OACE,CACF,GAAAuC,GAAA7V,SAAA8V,eAAAxC,GACAyC,EAAApC,EAAAoC,UACAA,GAAA5X,IAAAwV,EAAA7G,YAAAiJ,EAAA5X,IACA4X,EAAAzY,OACAqW,EAAAM,aAAA4B,EAAAE,EAAA5X,IAEAwV,EAAAxQ,YAAA0S,IAKA,QAAAL,GAAA7B,EAAA5W,GACA,GAAAuW,GAAAvW,EAAAuW,IACAC,EAAAxW,EAAAwW,KAMA,IAJAA,GACAI,EAAAqC,aAAA,QAAAzC,GAGAI,EAAA+B,WACA/B,EAAA+B,WAAAC,QAAArC,MACE,CACF,KAAAK,EAAAO,YACAP,EAAA7G,YAAA6G,EAAAO,WAEAP,GAAAxQ,YAAAnD,SAAA8V,eAAAxC,KAIA,QAAAiC,GAAAd,EAAA1X,GACA,GAAAuW,GAAAvW,EAAAuW,IACAE,EAAAzW,EAAAyW,SAEAA,KAEAF,GAAA,uDAAuDgC,KAAAW,SAAAC,mBAAA1I,KAAAiC,UAAA+D,MAAA,MAGvD,IAAA2C,GAAA,GAAAd,OAAA/B,IAA6B/T,KAAA,aAE7B6W,EAAA3B,EAAA7C,IAEA6C,GAAA7C,KAAAsD,IAAAC,gBAAAgB,GAEAC,GACAlB,IAAAE,gBAAAgB,GAhPA,GAAApD,MACAqD,EAAA,SAAAC,GACA,GAAAC,EACA,mBAEA,MADA,mBAAAA,OAAAD,EAAAE,MAAA3a,KAAA4a,YACAF,IAGAG,EAAAL,EAAA,WACA,qBAAA5W,KAAAC,OAAAC,UAAAC,UAAA+W,iBAEA/C,EAAAyC,EAAA,WACA,MAAArW,UAAAkD,MAAAlD,SAAA4W,qBAAA,aAEA7B,EAAA,KACAD,EAAA,EACAhB,IAEApY,GAAAD,QAAA,SAAA8W,EAAAO,GAKAA,QAGA,mBAAAA,GAAA8B,YAAA9B,EAAA8B,UAAA8B,KAGA,mBAAA5D,GAAAiB,WAAAjB,EAAAiB,SAAA,SAEA,IAAAlB,GAAAO,EAAAb,EAGA,OAFAK,GAAAC,EAAAC,GAEA,SAAA+D,GAEA,OADAC,MACAzZ,EAAA,EAAgBA,EAAAwV,EAAAvV,OAAmBD,IAAA,CACnC,GAAA2J,GAAA6L,EAAAxV,GACA0V,EAAAC,EAAAhM,EAAA9K,GACA6W,GAAAE,OACA6D,EAAAnK,KAAAoG,GAEA,GAAA8D,EAAA,CACA,GAAAxD,GAAAD,EAAAyD,EACAjE,GAAAS,EAAAP,GAEA,OAAAzV,GAAA,EAAgBA,EAAAyZ,EAAAxZ,OAAsBD,IAAA,CACtC,GAAA0V,GAAA+D,EAAAzZ,EACA,QAAA0V,EAAAE,KAAA,CACA,OAAAxG,GAAA,EAAkBA,EAAAsG,EAAAG,MAAA5V,OAA2BmP,IAC7CsG,EAAAG,MAAAzG,WACAuG,GAAAD,EAAA7W,OAiIA,IAAA0Z,GAAA,WACA,GAAAmB,KAEA,iBAAA5Y,EAAA6Y,GAEA,MADAD,GAAA5Y,GAAA6Y,EACAD,EAAAE,OAAAC,SAAAzE,KAAA","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tconsole.log(\"\\n %c DPlayer 1.1.1 %c http://dplayer.js.org \\n\\n\", \"color: #fadfa3; background: #030307; padding:5px 0;\", \"background: #fadfa3; padding:5px 0;\");\n\t\n\t__webpack_require__(1);\n\t\n\tvar index = 0;\n\t\n\tvar DPlayer = function () {\n\t    /**\n\t     * DPlayer constructor function\n\t     *\n\t     * @param {Object} option - See README\n\t     * @constructor\n\t     */\n\t\n\t    function DPlayer(option) {\n\t        var _this = this;\n\t\n\t        _classCallCheck(this, DPlayer);\n\t\n\t        var svg = {\n\t            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n\t            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n\t            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n\t            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n\t            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n\t            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n\t            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n\t            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n\t            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n\t            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n\t            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n\t            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n\t            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n\t            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n\t        };\n\t        this.getSVG = function (type) {\n\t            return \"\\n                <svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"\" + svg[type][0] + \"\\\" width=\\\"100%\\\">\\n                    <use xlink:href=\\\"#dplayer-\" + type + \"\\\"></use>\\n                    <path class=\\\"dplayer-fill\\\" d=\\\"\" + svg[type][1] + \"\\\" id=\\\"dplayer-\" + type + \"\\\"></path>\\n                </svg>\\n            \";\n\t        };\n\t\n\t        this.option = option;\n\t\n\t        var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t        // compatibility: some mobile browsers don't suppose autoplay\n\t        if (isMobile) {\n\t            this.option.autoplay = false;\n\t        }\n\t\n\t        // default options\n\t        var defaultOption = {\n\t            element: document.getElementsByClassName('dplayer')[0],\n\t            autoplay: false,\n\t            theme: '#b7daff',\n\t            loop: false,\n\t            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n\t            screenshot: false,\n\t            hotkey: true,\n\t            preload: 'auto'\n\t        };\n\t        for (var defaultKey in defaultOption) {\n\t            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n\t                this.option[defaultKey] = defaultOption[defaultKey];\n\t            }\n\t        }\n\t\n\t        var tranZH = {\n\t            'Danmaku is loading': '弹幕加载中',\n\t            'Top': '顶部',\n\t            'Bottom': '底部',\n\t            'Rolling': '滚动',\n\t            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n\t            'About author': '关于作者',\n\t            'DPlayer feedback': '播放器意见反馈',\n\t            'About DPlayer': '关于 DPlay 播放器',\n\t            'Loop': '洗脑循环',\n\t            'Speed': '速度',\n\t            'Opacity for danmaku': '弹幕透明度',\n\t            'Normal': '正常',\n\t            'Please input danmaku!': '要输入弹幕内容啊喂!',\n\t            'Set danmaku color': '设置弹幕颜色',\n\t            'Set danmaku type': '设置弹幕类型',\n\t            'Danmaku': '弹幕'\n\t        };\n\t        var getTran = function getTran(text) {\n\t            if (_this.option.lang === 'en') {\n\t                return text;\n\t            } else if (_this.option.lang === 'zh') {\n\t                return tranZH[text];\n\t            }\n\t        };\n\t\n\t        /**\n\t         * Update progress bar, including loading progress bar and play progress bar\n\t         *\n\t         * @param {String} type - Point out which bar it is, should be played loaded or volume\n\t         * @param {Number} percentage\n\t         * @param {String} direction - Point out the direction of this bar, Should be height or width\n\t         */\n\t        this.updateBar = function (type, percentage, direction) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n\t        };\n\t\n\t        // define DPlayer events\n\t        var eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n\t        this.event = {};\n\t        for (var i = 0; i < eventTypes.length; i++) {\n\t            this.event[eventTypes[i]] = [];\n\t        }\n\t        this.trigger = function (type) {\n\t            for (var _i = 0; _i < _this.event[type].length; _i++) {\n\t                _this.event[type][_i]();\n\t            }\n\t        };\n\t\n\t        this.element = this.option.element;\n\t        if (!this.option.danmaku) {\n\t            this.element.classList.add('dplayer-no-danmaku');\n\t        }\n\t\n\t        this.element.innerHTML = \"\\n            <div class=\\\"dplayer-mask\\\"></div>\\n            <div class=\\\"dplayer-video-wrap\\\">\\n                <video class=\\\"dplayer-video\\\" \" + (this.option.video.pic ? \"poster=\\\"\" + this.option.video.pic + \"\\\"\" : \"\") + \" webkit-playsinline \" + (this.option.screenshot ? \"crossorigin=\\\"anonymous\\\"\" : \"\") + \" preload=\\\"\" + this.option.preload + \"\\\" src=\\\"\" + this.option.video.url + \"\\\"></video>\\n                <div class=\\\"dplayer-danmaku\\\">\\n                    <div class=\\\"dplayer-danmaku-item dplayer-danmaku-item--demo\\\"></div>\\n                </div>\\n                <div class=\\\"dplayer-bezel\\\">\\n                    <span class=\\\"dplayer-bezel-icon\\\"></span>\\n                    \" + (this.option.danmaku ? \"<span class=\\\"dplayer-danloading\\\">\" + getTran('Danmaku is loading') + \"</span>\" : \"\") + \"\\n                    <span class=\\\"diplayer-loading-icon\\\">\\n                        <svg height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 22 22\\\" width=\\\"100%\\\">\\n                            <svg x=\\\"7\\\" y=\\\"1\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-0\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-1\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"13\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-2\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-3\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"7\\\" y=\\\"13\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-4\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-5\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"1\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-6\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-7\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                        </svg>\\n                    </span>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-controller-mask\\\"></div>\\n            <div class=\\\"dplayer-controller\\\">\\n                <div class=\\\"dplayer-icons dplayer-icons-left\\\">\\n                    <button class=\\\"dplayer-icon dplayer-play-icon\\\">\" + this.getSVG('play') + (\"     </button>\\n                    <div class=\\\"dplayer-volume\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \">\\n                        <button class=\\\"dplayer-icon dplayer-volume-icon\\\">\") + this.getSVG('volume-down') + (\"         </button>\\n                        <div class=\\\"dplayer-volume-bar-wrap\\\">\\n                            <div class=\\\"dplayer-volume-bar\\\">\\n                                <div class=\\\"dplayer-volume-bar-inner\\\" style=\\\"width: 70%; background: \" + this.option.theme + \";\\\">\\n                                    <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\\n                    <span class=\\\"dplayer-time\\\"><span class=\\\"dplayer-ptime\\\">0:00</span> / <span class=\\\"dplayer-dtime\\\">0:00</span></span>\\n                </div>\\n                <div class=\\\"dplayer-icons dplayer-icons-right\\\">\\n                    \" + (this.option.screenshot ? \"\\n                    <a href=\\\"#\\\" class=\\\"dplayer-icon dplayer-camera-icon\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \"dplayer-volume>\" + this.getSVG('camera') + \"     </a>\\n                    \" : \"\") + \"\\n                    <div class=\\\"dplayer-comment\\\">\\n                        <button class=\\\"dplayer-icon dplayer-comment-icon\\\">\") + this.getSVG('comment') + \"         </button>\\n                        <div class=\\\"dplayer-comment-box\\\">\\n                            <button class=\\\"dplayer-icon dplayer-comment-setting-icon\\\">\" + this.getSVG('menu') + (\"             </button>\\n                            <div class=\\\"dplayer-comment-setting-box\\\">\\n                                <div class=\\\"dplayer-comment-setting-color\\\">\\n                                   <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku color') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#fff\\\" checked>\\n                                        <span style=\\\"background: #fff; border: 1px solid rgba(0,0,0,.1);\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#e54256\\\">\\n                                        <span style=\\\"background: #e54256\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#ffe133\\\">\\n                                        <span style=\\\"background: #ffe133\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#64DD17\\\">\\n                                        <span style=\\\"background: #64DD17\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#39ccff\\\">\\n                                        <span style=\\\"background: #39ccff\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#D500F9\\\">\\n                                        <span style=\\\"background: #D500F9\\\"></span>\\n                                    </label>\\n                                </div>\\n                                <div class=\\\"dplayer-comment-setting-type\\\">\\n                                    <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku type') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"top\\\">\\n                                        <span>\" + getTran('Top') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"right\\\" checked>\\n                                        <span>\" + getTran('Rolling') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"bottom\\\">\\n                                        <span>\" + getTran('Bottom') + \"</span>\\n                                    </label>\\n                                </div>\\n                            </div>\\n                            <input class=\\\"dplayer-comment-input\\\" type=\\\"text\\\" placeholder=\\\"\" + getTran('Input danmaku, hit Enter') + \"\\\" maxlength=\\\"30\\\">\\n                            <button class=\\\"dplayer-icon dplayer-send-icon\\\">\") + this.getSVG('send') + \"             </button>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting\\\">\\n                        <button class=\\\"dplayer-icon dplayer-setting-icon\\\">\" + this.getSVG('setting') + \"         </button>\\n                        <div class=\\\"dplayer-setting-box\\\"></div>\\n                    </div>\\n                    <button class=\\\"dplayer-icon dplayer-full-icon\\\">\" + this.getSVG('full') + (\"     </button>\\n                </div>\\n                <div class=\\\"dplayer-bar-wrap\\\">\\n                    <div class=\\\"dplayer-bar\\\">\\n                        <div class=\\\"dplayer-loaded\\\" style=\\\"width: 0;\\\"></div>\\n                        <div class=\\\"dplayer-played\\\" style=\\\"width: 0; background: \" + this.option.theme + \"\\\">\\n                            <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                        </div>\\n                    </div>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-menu\\\">\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"http://diygod.me/\\\">\" + getTran('About author') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer/issues\\\">\" + getTran('DPlayer feedback') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer\\\">\" + getTran('About DPlayer') + \"</a></span></div>\\n            </div>\\n        \");\n\t\n\t        // arrow style\n\t        var arrow = this.element.offsetWidth <= 500;\n\t        if (arrow) {\n\t            var arrowStyle = document.createElement('style');\n\t            arrowStyle.innerHTML = \".dplayer .dplayer-danmaku{font-size:18px}\";\n\t            document.head.appendChild(arrowStyle);\n\t        }\n\t\n\t        // get this video object\n\t        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\t\n\t        // Support HTTP Live Streaming\n\t        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n\t            (function () {\n\t                _this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n\t                var hls = new Hls();\n\t                hls.attachMedia(_this.video);\n\t                hls.on(Hls.Events.MEDIA_ATTACHED, function () {\n\t                    hls.loadSource(_this.option.video.url);\n\t                    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n\t                        console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n\t                    });\n\t                });\n\t            })();\n\t        }\n\t\n\t        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n\t        this.bezel.addEventListener('animationend', function () {\n\t            _this.bezel.classList.remove('dplayer-bezel-transition');\n\t        });\n\t\n\t        // play and pause button\n\t        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n\t        this.shouldpause = true;\n\t        this.playButton.addEventListener('click', function () {\n\t            _this.toggle();\n\t        });\n\t\n\t        var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n\t        var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n\t        if (!isMobile) {\n\t            videoWrap.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t            conMask.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t        } else {\n\t            var toggleController = function toggleController() {\n\t                if (_this.element.classList.contains('dplayer-hide-controller')) {\n\t                    _this.element.classList.remove('dplayer-hide-controller');\n\t                } else {\n\t                    _this.element.classList.add('dplayer-hide-controller');\n\t                }\n\t            };\n\t            videoWrap.addEventListener('click', toggleController);\n\t            conMask.addEventListener('click', toggleController);\n\t        }\n\t\n\t        /**\n\t         * Parse second to 00:00 format\n\t         *\n\t         * @param {Number} second\n\t         * @return {String} 00:00 format\n\t         */\n\t        var secondToTime = function secondToTime(second) {\n\t            var add0 = function add0(num) {\n\t                return num < 10 ? '0' + num : '' + num;\n\t            };\n\t            var min = parseInt(second / 60);\n\t            var sec = parseInt(second - min * 60);\n\t            return add0(min) + ':' + add0(sec);\n\t        };\n\t\n\t        /**\n\t         * control play progress\n\t         */\n\t        // get element's view position\n\t        var getElementViewLeft = function getElementViewLeft(element) {\n\t            var actualLeft = element.offsetLeft;\n\t            var current = element.offsetParent;\n\t            var elementScrollLeft = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n\t            return actualLeft - elementScrollLeft;\n\t        };\n\t\n\t        var getElementViewTop = function getElementViewTop(element) {\n\t            var actualTop = element.offsetTop;\n\t            var current = element.offsetParent;\n\t            var elementScrollTop = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n\t            return actualTop - elementScrollTop;\n\t        };\n\t\n\t        var bar = {};\n\t        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n\t        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n\t        var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n\t        var barWidth = void 0;\n\t\n\t        if (this.option.danmaku) {\n\t            this.video.addEventListener('seeking', function () {\n\t                for (var _i2 = 0; _i2 < _this.dan.length; _i2++) {\n\t                    if (_this.dan[_i2].time >= _this.video.currentTime) {\n\t                        _this.danIndex = _i2;\n\t                        return;\n\t                    }\n\t                    _this.danIndex = _this.dan.length;\n\t                }\n\t            });\n\t        }\n\t\n\t        var lastPlayPos = 0;\n\t        var currentPlayPos = 0;\n\t        var bufferingDetected = false;\n\t        var danmakuTime = void 0;\n\t        this.setTime = function () {\n\t            _this.playedTime = setInterval(function () {\n\t                // whether the video is buffering\n\t                currentPlayPos = _this.video.currentTime;\n\t                if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.add('dplayer-loading');\n\t                    bufferingDetected = true;\n\t                }\n\t                if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.remove('dplayer-loading');\n\t                    bufferingDetected = false;\n\t                }\n\t                lastPlayPos = currentPlayPos;\n\t\n\t                _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n\t                _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(_this.video.currentTime);\n\t                _this.trigger('playing');\n\t            }, 100);\n\t            if (_this.option.danmaku) {\n\t                danmakuTime = setInterval(function () {\n\t                    var item = _this.dan[_this.danIndex];\n\t                    while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                        danmakuIn(item.text, item.color, item.type);\n\t                        item = _this.dan[++_this.danIndex];\n\t                    }\n\t                }, 0);\n\t            }\n\t        };\n\t        this.clearTime = function () {\n\t            clearInterval(_this.playedTime);\n\t            if (_this.option.danmaku) {\n\t                clearInterval(danmakuTime);\n\t            }\n\t        };\n\t\n\t        pbar.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            barWidth = pbar.clientWidth;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t        });\n\t\n\t        var thumbMove = function thumbMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * _this.video.duration);\n\t        };\n\t\n\t        var thumbUp = function thumbUp() {\n\t            document.removeEventListener('mouseup', thumbUp);\n\t            document.removeEventListener('mousemove', thumbMove);\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t            _this.setTime();\n\t        };\n\t\n\t        pbar.addEventListener('mousedown', function () {\n\t            barWidth = pbar.clientWidth;\n\t            _this.clearTime();\n\t            document.addEventListener('mousemove', thumbMove);\n\t            document.addEventListener('mouseup', thumbUp);\n\t        });\n\t\n\t        /**\n\t         * control volume\n\t         */\n\t        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n\t        var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n\t        var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n\t        var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n\t        var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t        var vWidth = 35;\n\t\n\t        this.switchVolumeIcon = function () {\n\t            var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t            if (_this.video.volume >= 0.8) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-up');\n\t            } else if (_this.video.volume > 0) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-down');\n\t            } else {\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t            }\n\t        };\n\t        var volumeMove = function volumeMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        };\n\t        var volumeUp = function volumeUp() {\n\t            document.removeEventListener('mouseup', volumeUp);\n\t            document.removeEventListener('mousemove', volumeMove);\n\t            volumeEle.classList.remove('dplayer-volume-active');\n\t        };\n\t\n\t        volumeBarWrapWrap.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        });\n\t        volumeBarWrapWrap.addEventListener('mousedown', function () {\n\t            document.addEventListener('mousemove', volumeMove);\n\t            document.addEventListener('mouseup', volumeUp);\n\t            volumeEle.classList.add('dplayer-volume-active');\n\t        });\n\t        volumeicon.addEventListener('click', function () {\n\t            if (_this.video.muted) {\n\t                _this.video.muted = false;\n\t                _this.switchVolumeIcon();\n\t                _this.updateBar('volume', _this.video.volume, 'width');\n\t            } else {\n\t                _this.video.muted = true;\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t                _this.updateBar('volume', 0, 'width');\n\t            }\n\t        });\n\t\n\t        /**\n\t         * auto hide controller\n\t         */\n\t        var hideTime = 0;\n\t        if (!isMobile) {\n\t            var hideController = function hideController() {\n\t                _this.element.classList.remove('dplayer-hide-controller');\n\t                clearTimeout(hideTime);\n\t                hideTime = setTimeout(function () {\n\t                    if (_this.video.played.length) {\n\t                        _this.element.classList.add('dplayer-hide-controller');\n\t                        closeSetting();\n\t                        closeComment();\n\t                    }\n\t                }, 2000);\n\t            };\n\t            this.element.addEventListener('mousemove', hideController);\n\t            this.element.addEventListener('click', hideController);\n\t        }\n\t\n\t        /***\n\t         * setting\n\t         */\n\t        var danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n\t        var settingHTML = {\n\t            'original': \"\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-speed\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Speed') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\" + this.getSVG('right') + (\"     </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-loop\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Loop') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-toggle-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle\\\">\\n                            <label for=\\\"dplayer-toggle\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-showdan\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Danmaku') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-showdan-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle-dan\\\">\\n                            <label for=\\\"dplayer-toggle-dan\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-danmaku\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Opacity for danmaku') + \"</span>\\n                        <div class=\\\"dplayer-danmaku-bar-wrap\\\">\\n                            <div class=\\\"dplayer-danmaku-bar\\\">\\n                                <div class=\\\"dplayer-danmaku-bar-inner\\\" style=\\\"width: \" + danOpacity * 100 + \"%\\\">\\n                                    <span class=\\\"dplayer-thumb\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\"),\n\t            'speed': \"\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.5\\\">\\n                        <span class=\\\"dplayer-label\\\">0.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.75\\\">\\n                        <span class=\\\"dplayer-label\\\">0.75</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Normal') + \"</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.25\\\">\\n                        <span class=\\\"dplayer-label\\\">1.25</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.5\\\">\\n                        <span class=\\\"dplayer-label\\\">1.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"2\\\">\\n                        <span class=\\\"dplayer-label\\\">2</span>\\n                    </div>\"\n\t        };\n\t\n\t        // toggle setting box\n\t        var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n\t        var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n\t        var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n\t        settingBox.innerHTML = settingHTML.original;\n\t\n\t        var closeSetting = function closeSetting() {\n\t            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n\t                settingBox.classList.remove('dplayer-setting-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                setTimeout(function () {\n\t                    settingBox.classList.remove('dplayer-setting-box-narrow');\n\t                    settingBox.innerHTML = settingHTML.original;\n\t                    settingEvent();\n\t                }, 300);\n\t            }\n\t        };\n\t        var openSetting = function openSetting() {\n\t            settingBox.classList.add('dplayer-setting-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeSetting();\n\t        });\n\t        settingIcon.addEventListener('click', function () {\n\t            openSetting();\n\t        });\n\t\n\t        var loop = this.option.loop;\n\t        var danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n\t        var showdan = true;\n\t        var settingEvent = function settingEvent() {\n\t            // loop control\n\t            var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n\t            var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\t\n\t            loopToggle.checked = loop;\n\t\n\t            loopEle.addEventListener('click', function () {\n\t                loopToggle.checked = !loopToggle.checked;\n\t                if (loopToggle.checked) {\n\t                    loop = true;\n\t                    _this.video.loop = loop;\n\t                } else {\n\t                    loop = false;\n\t                    _this.video.loop = loop;\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // show danmaku control\n\t            var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n\t            var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\t\n\t            showDanToggle.checked = showdan;\n\t\n\t            showDanEle.addEventListener('click', function () {\n\t                showDanToggle.checked = !showDanToggle.checked;\n\t                if (showDanToggle.checked) {\n\t                    showdan = true;\n\t                    if (_this.option.danmaku) {\n\t                        for (var _i3 = 0; _i3 < _this.dan.length; _i3++) {\n\t                            if (_this.dan[_i3].time >= _this.video.currentTime) {\n\t                                _this.danIndex = _i3;\n\t                                break;\n\t                            }\n\t                            _this.danIndex = _this.dan.length;\n\t                        }\n\t                        danmakuTime = setInterval(function () {\n\t                            var item = _this.dan[_this.danIndex];\n\t                            while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                                danmakuIn(item.text, item.color, item.type);\n\t                                item = _this.dan[++_this.danIndex];\n\t                            }\n\t                        }, 0);\n\t                    }\n\t                } else {\n\t                    showdan = false;\n\t                    if (_this.option.danmaku) {\n\t                        clearInterval(danmakuTime);\n\t                        danContainer.innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                        _this.danTunnel = {\n\t                            right: {},\n\t                            top: {},\n\t                            bottom: {}\n\t                        };\n\t                        _this.itemDemo = _this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t                    }\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // speed control\n\t            var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n\t            speedEle.addEventListener('click', function () {\n\t                settingBox.classList.add('dplayer-setting-box-narrow');\n\t                settingBox.innerHTML = settingHTML.speed;\n\t\n\t                var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n\t\n\t                var _loop = function _loop(_i4) {\n\t                    speedItem[_i4].addEventListener('click', function () {\n\t                        _this.video.playbackRate = speedItem[_i4].dataset.speed;\n\t                        closeSetting();\n\t                    });\n\t                };\n\t\n\t                for (var _i4 = 0; _i4 < speedItem.length; _i4++) {\n\t                    _loop(_i4);\n\t                }\n\t            });\n\t\n\t            if (_this.option.danmaku) {\n\t                (function () {\n\t                    // danmaku opacity\n\t                    bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n\t                    var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n\t                    var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n\t                    var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n\t                    var dWidth = 130;\n\t                    _this.updateBar('danmaku', danOpacity, 'width');\n\t\n\t                    var danmakuMove = function danmakuMove(event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i5 = 0; _i5 < items.length; _i5++) {\n\t                            items[_i5].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    };\n\t                    var danmakuUp = function danmakuUp() {\n\t                        document.removeEventListener('mouseup', danmakuUp);\n\t                        document.removeEventListener('mousemove', danmakuMove);\n\t                        danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n\t                    };\n\t\n\t                    danmakuBarWrapWrap.addEventListener('click', function (event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i6 = 0; _i6 < items.length; _i6++) {\n\t                            items[_i6].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    });\n\t                    danmakuBarWrapWrap.addEventListener('mousedown', function () {\n\t                        document.addEventListener('mousemove', danmakuMove);\n\t                        document.addEventListener('mouseup', danmakuUp);\n\t                        danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n\t                    });\n\t                })();\n\t            }\n\t        };\n\t        settingEvent();\n\t\n\t        /**\n\t         * video events\n\t         */\n\t        // show video time: the metadata has loaded or changed\n\t        this.video.addEventListener('durationchange', function () {\n\t            if (_this.video.duration !== 1) {\n\t                // compatibility: Android browsers will output 1 at first\n\t                _this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(_this.video.duration);\n\t            }\n\t        });\n\t\n\t        // show video loaded bar: to inform interested parties of progress downloading the media\n\t        this.video.addEventListener('progress', function () {\n\t            var percentage = _this.video.buffered.length ? _this.video.buffered.end(_this.video.buffered.length - 1) / _this.video.duration : 0;\n\t            _this.updateBar('loaded', percentage, 'width');\n\t        });\n\t\n\t        // video download error: an error occurs\n\t        this.video.addEventListener('error', function () {\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = \"Error happens ╥﹏╥\";\n\t            _this.trigger('pause');\n\t        });\n\t\n\t        // video can play: enough data is available that the media can be played\n\t        this.video.addEventListener('canplay', function () {\n\t            _this.trigger('canplay');\n\t        });\n\t\n\t        // music end\n\t        this.ended = false;\n\t        this.video.addEventListener('ended', function () {\n\t            _this.updateBar('played', 1, 'width');\n\t            if (!loop) {\n\t                _this.ended = true;\n\t                _this.pause();\n\t                _this.trigger('ended');\n\t            }\n\t        });\n\t\n\t        // control volume\n\t        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\t\n\t        // loop\n\t        this.video.loop = loop;\n\t\n\t        // set duration time\n\t        if (this.video.duration !== 1) {\n\t            // compatibility: Android browsers will output 1 at first\n\t            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n\t        }\n\t\n\t        /**\n\t         * danmaku display\n\t         */\n\t        var itemHeight = arrow ? 24 : 30;\n\t        var danWidth = void 0;\n\t        var danHeight = void 0;\n\t        var itemY = void 0;\n\t        this.danTunnel = {\n\t            right: {},\n\t            top: {},\n\t            bottom: {}\n\t        };\n\t\n\t        var danItemRight = function danItemRight(ele) {\n\t            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n\t        };\n\t\n\t        var danSpeed = function danSpeed(width) {\n\t            return (danWidth + width) / 5;\n\t        };\n\t\n\t        var getTunnel = function getTunnel(ele, type, width) {\n\t            var tmp = danWidth / danSpeed(width);\n\t\n\t            var _loop2 = function _loop2(_i7) {\n\t                var item = _this.danTunnel[type][_i7 + ''];\n\t                if (item && item.length) {\n\t                    for (var j = 0; j < item.length; j++) {\n\t                        var danRight = danItemRight(item[j]) - 10;\n\t                        if (danRight <= danWidth - tmp * danSpeed(item[j].offsetWidth) || danRight <= 0) {\n\t                            break;\n\t                        }\n\t                        if (j === item.length - 1) {\n\t                            _this.danTunnel[type][_i7 + ''].push(ele);\n\t                            ele.addEventListener('animationend', function () {\n\t                                _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                            });\n\t                            return {\n\t                                v: _i7 % itemY\n\t                            };\n\t                        }\n\t                    }\n\t                } else {\n\t                    _this.danTunnel[type][_i7 + ''] = [ele];\n\t                    ele.addEventListener('animationend', function () {\n\t                        _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                    });\n\t                    return {\n\t                        v: _i7 % itemY\n\t                    };\n\t                }\n\t            };\n\t\n\t            for (var _i7 = 0;; _i7++) {\n\t                var _ret4 = _loop2(_i7);\n\t\n\t                if ((typeof _ret4 === \"undefined\" ? \"undefined\" : _typeof(_ret4)) === \"object\") return _ret4.v;\n\t            }\n\t        };\n\t\n\t        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t        var danmakuIn = function danmakuIn(text, color, type) {\n\t            danWidth = danContainer.offsetWidth;\n\t            danHeight = danContainer.offsetHeight;\n\t            itemY = parseInt(danHeight / itemHeight);\n\t            var item = document.createElement(\"div\");\n\t            item.classList.add(\"dplayer-danmaku-item\");\n\t            item.classList.add(\"dplayer-danmaku-\" + type);\n\t            item.innerHTML = text;\n\t            item.style.opacity = danOpacity;\n\t            item.style.color = color;\n\t            item.addEventListener('animationend', function () {\n\t                danContainer.removeChild(item);\n\t            });\n\t\n\t            // measure\n\t            _this.itemDemo.innerHTML = text;\n\t            var itemWidth = _this.itemDemo.offsetWidth;\n\t\n\t            // adjust\n\t            switch (type) {\n\t                case 'right':\n\t                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n\t                    item.style.width = itemWidth + 1 + 'px';\n\t                    item.style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t                    break;\n\t                case 'top':\n\t                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                case 'bottom':\n\t                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                default:\n\t                    console.error(\"Can't handled danmaku type: \" + type);\n\t            }\n\t\n\t            // insert\n\t            danContainer.appendChild(item);\n\t\n\t            // move\n\t            item.classList.add(\"dplayer-danmaku-move\");\n\t\n\t            return item;\n\t        };\n\t\n\t        // danmaku\n\t        if (this.option.danmaku) {\n\t            (function () {\n\t                _this.danIndex = 0;\n\t                var xhr = new XMLHttpRequest();\n\t                xhr.onreadystatechange = function () {\n\t                    if (xhr.readyState === 4) {\n\t                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                            (function () {\n\t                                var response = JSON.parse(xhr.responseText);\n\t                                if (response.code !== 1) {\n\t                                    alert(response.msg);\n\t                                } else {\n\t                                    if (_this.option.danmaku.addition) {\n\t                                        xhr.onreadystatechange = function () {\n\t                                            if (xhr.readyState === 4) {\n\t                                                if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                    var response2 = JSON.parse(xhr.responseText);\n\t                                                    if (response2.code !== 1) {\n\t                                                        alert(response2.msg);\n\t                                                    } else {\n\t                                                        _this.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                            return a.time - b.time;\n\t                                                        });\n\t                                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                        // autoplay\n\t                                                        if (_this.option.autoplay && !isMobile) {\n\t                                                            _this.play();\n\t                                                        } else if (isMobile) {\n\t                                                            _this.pause();\n\t                                                        }\n\t                                                    }\n\t                                                } else {\n\t                                                    console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                }\n\t                                            }\n\t                                        };\n\t                                        xhr.open('get', _this.option.danmaku.addition[0], true);\n\t                                        xhr.send(null);\n\t                                    } else {\n\t                                        _this.dan = response.danmaku.sort(function (a, b) {\n\t                                            return a.time - b.time;\n\t                                        });\n\t                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                        // autoplay\n\t                                        if (_this.option.autoplay && !isMobile) {\n\t                                            _this.play();\n\t                                        } else if (isMobile) {\n\t                                            _this.pause();\n\t                                        }\n\t                                    }\n\t                                }\n\t                            })();\n\t                        } else {\n\t                            console.log('Request was unsuccessful: ' + xhr.status);\n\t                        }\n\t                    }\n\t                };\n\t                var apiurl = void 0;\n\t                if (_this.option.danmaku.maximum) {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id + \"&max=\" + _this.option.danmaku.maximum;\n\t                } else {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id;\n\t                }\n\t                xhr.open('get', apiurl, true);\n\t                xhr.send(null);\n\t            })();\n\t        } else {\n\t            // autoplay\n\t            if (this.option.autoplay && !isMobile) {\n\t                this.play();\n\t            } else if (isMobile) {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * comment\n\t         */\n\t        var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n\t        var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n\t        var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n\t        var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n\t        var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n\t        var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\t\n\t        var htmlEncode = function htmlEncode(str) {\n\t            return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\").replace(/\\//g, \"&#x2f;\");\n\t        };\n\t\n\t        var sendComment = function sendComment() {\n\t            commentInput.blur();\n\t\n\t            // text can't be empty\n\t            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n\t                alert(getTran('Please input danmaku!'));\n\t                return;\n\t            }\n\t\n\t            var danmakuData = {\n\t                token: _this.option.danmaku.token,\n\t                player: _this.option.danmaku.id,\n\t                author: 'DIYgod',\n\t                time: _this.video.currentTime,\n\t                text: commentInput.value,\n\t                color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n\t                type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n\t            };\n\t            var xhr = new XMLHttpRequest();\n\t            xhr.onreadystatechange = function () {\n\t                if (xhr.readyState === 4) {\n\t                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                        var response = JSON.parse(xhr.responseText);\n\t                        if (response.code !== 1) {\n\t                            alert(response.msg);\n\t                        } else {\n\t                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n\t                        }\n\t                    } else {\n\t                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                    }\n\t                }\n\t            };\n\t            xhr.open('post', _this.option.danmaku.api, true);\n\t            xhr.send(JSON.stringify(danmakuData));\n\t\n\t            commentInput.value = '';\n\t            closeComment();\n\t            _this.dan.splice(_this.danIndex, 0, danmakuData);\n\t            _this.danIndex++;\n\t            var item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n\t            item.style.border = \"2px solid \" + _this.option.theme;\n\t        };\n\t\n\t        var closeCommentSetting = function closeCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t        var toggleCommentSetting = function toggleCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            } else {\n\t                commentSettingBox.classList.add('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t\n\t        var disableHide = 0;\n\t        var closeComment = function closeComment() {\n\t            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n\t                commentBox.classList.remove('dplayer-comment-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                clearInterval(disableHide);\n\t                _this.element.classList.remove('dplayer-show-controller');\n\t                closeCommentSetting();\n\t            }\n\t        };\n\t        var openComment = function openComment() {\n\t            commentBox.classList.add('dplayer-comment-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t            disableHide = setInterval(function () {\n\t                clearTimeout(hideTime);\n\t            }, 1000);\n\t            _this.element.classList.add('dplayer-show-controller');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeComment();\n\t        });\n\t        commentIcon.addEventListener('click', function () {\n\t            openComment();\n\t            setTimeout(function () {\n\t                commentInput.focus();\n\t            }, 300);\n\t        });\n\t        commentSettingIcon.addEventListener('click', function () {\n\t            toggleCommentSetting();\n\t        });\n\t\n\t        // comment setting box\n\t        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n\t            var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n\t            if (sele) {\n\t                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n\t            }\n\t        });\n\t\n\t        commentInput.addEventListener('click', function () {\n\t            closeCommentSetting();\n\t        });\n\t        commentInput.addEventListener('keydown', function (e) {\n\t            var event = e || window.event;\n\t            if (event.keyCode === 13) {\n\t                sendComment();\n\t            }\n\t        });\n\t\n\t        commentSendIcon.addEventListener('click', sendComment);\n\t\n\t        /**\n\t         * full screen\n\t         */\n\t        var resetAnimation = function resetAnimation() {\n\t            danWidth = danContainer.offsetWidth;\n\t            var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t            for (var _i8 = 0; _i8 < items.length; _i8++) {\n\t                items[_i8].style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t            }\n\t        };\n\t\n\t        this.element.addEventListener('fullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('mozfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('webkitfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                if (_this.element.requestFullscreen) {\n\t                    _this.element.requestFullscreen();\n\t                } else if (_this.element.mozRequestFullScreen) {\n\t                    _this.element.mozRequestFullScreen();\n\t                } else if (_this.element.webkitRequestFullscreen) {\n\t                    _this.element.webkitRequestFullscreen();\n\t                }\n\t            } else {\n\t                if (document.cancelFullScreen) {\n\t                    document.cancelFullScreen();\n\t                } else if (document.mozCancelFullScreen) {\n\t                    document.mozCancelFullScreen();\n\t                } else if (document.webkitCancelFullScreen) {\n\t                    document.webkitCancelFullScreen();\n\t                }\n\t            }\n\t            resetAnimation();\n\t        });\n\t\n\t        /**\n\t         * hot key\n\t         */\n\t        var handleKeyDown = function handleKeyDown(e) {\n\t            var tag = document.activeElement.tagName.toUpperCase();\n\t            var editable = document.activeElement.getAttribute('contenteditable');\n\t            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n\t                var event = e || window.event;\n\t                var percentage = void 0;\n\t                switch (event.keyCode) {\n\t                    case 32:\n\t                        event.preventDefault();\n\t                        _this.toggle();\n\t                        break;\n\t                    case 37:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime - 5;\n\t                        break;\n\t                    case 39:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime + 5;\n\t                        break;\n\t                    case 38:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume + 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                    case 40:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume - 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                }\n\t            }\n\t        };\n\t        if (this.option.hotkey) {\n\t            document.addEventListener('keydown', handleKeyDown);\n\t        }\n\t\n\t        /**\n\t         * right key\n\t         */\n\t        var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n\t        this.element.addEventListener('contextmenu', function (e) {\n\t            var event = e || window.event;\n\t            event.preventDefault();\n\t            menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n\t            menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n\t            menu.classList.add('dplayer-menu-show');\n\t\n\t            mask.classList.add('dplayer-mask-show');\n\t            mask.addEventListener('click', function () {\n\t                mask.classList.remove('dplayer-mask-show');\n\t                menu.classList.remove('dplayer-menu-show');\n\t            });\n\t        });\n\t\n\t        /**\n\t         * Screenshot\n\t         */\n\t        if (this.option.screenshot) {\n\t            (function () {\n\t                var camareIcon = _this.element.getElementsByClassName('dplayer-camera-icon')[0];\n\t                camareIcon.addEventListener('click', function () {\n\t                    var canvas = document.createElement(\"canvas\");\n\t                    canvas.width = _this.video.videoWidth;\n\t                    canvas.height = _this.video.videoHeight;\n\t                    canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n\t\n\t                    camareIcon.href = canvas.toDataURL();\n\t                    camareIcon.download = \"DPlayer.png\";\n\t                });\n\t            })();\n\t        }\n\t\n\t        index++;\n\t    }\n\t\n\t    /**\n\t     * Play music\n\t     */\n\t\n\t\n\t    _createClass(DPlayer, [{\n\t        key: \"play\",\n\t        value: function play(time) {\n\t            if (Object.prototype.toString.call(time) === '[object Number]') {\n\t                this.video.currentTime = time;\n\t            }\n\t            if (this.video.paused) {\n\t                this.shouldpause = false;\n\t\n\t                this.bezel.innerHTML = this.getSVG('play');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.playButton.innerHTML = this.getSVG('pause');\n\t\n\t                this.video.play();\n\t                if (this.playedTime) {\n\t                    this.clearTime();\n\t                }\n\t                this.setTime();\n\t                this.element.classList.add('dplayer-playing');\n\t                this.trigger('play');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Pause music\n\t         */\n\t\n\t    }, {\n\t        key: \"pause\",\n\t        value: function pause() {\n\t            if (!this.shouldpause || this.ended) {\n\t                this.shouldpause = true;\n\t                this.element.classList.remove('dplayer-loading');\n\t\n\t                this.bezel.innerHTML = this.getSVG('pause');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.ended = false;\n\t                this.playButton.innerHTML = this.getSVG('play');\n\t                this.video.pause();\n\t                this.clearTime();\n\t                this.element.classList.remove('dplayer-playing');\n\t                this.trigger('pause');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Set volume\n\t         */\n\t\n\t    }, {\n\t        key: \"volume\",\n\t        value: function volume(percentage) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            this.updateBar('volume', percentage, 'width');\n\t            this.video.volume = percentage;\n\t            if (this.video.muted) {\n\t                this.video.muted = false;\n\t            }\n\t            this.switchVolumeIcon();\n\t        }\n\t\n\t        /**\n\t         * Toggle between play and pause\n\t         */\n\t\n\t    }, {\n\t        key: \"toggle\",\n\t        value: function toggle() {\n\t            if (this.video.paused) {\n\t                this.play();\n\t            } else {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * attach event\n\t         */\n\t\n\t    }, {\n\t        key: \"on\",\n\t        value: function on(name, func) {\n\t            if (typeof func === 'function') {\n\t                this.event[name].push(func);\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Switch to a new video\n\t         *\n\t         * @param {Object} video - new video info\n\t         * @param {Object} danmaku - new danmaku info\n\t         */\n\t\n\t    }, {\n\t        key: \"switchVideo\",\n\t        value: function switchVideo(video, danmaku) {\n\t            var _this2 = this;\n\t\n\t            this.video.src = video.url;\n\t            this.video.poster = video.pic ? video.pic : '';\n\t            this.video.currentTime = 0;\n\t            this.pause();\n\t            if (danmaku) {\n\t                (function () {\n\t                    _this2.dan = [];\n\t                    _this2.danIndex = 0;\n\t                    _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n\t                    _this2.updateBar('played', 0, 'width');\n\t                    _this2.updateBar('loaded', 0, 'width');\n\t                    _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n\t                    _this2.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                    _this2.danTunnel = {\n\t                        right: {},\n\t                        top: {},\n\t                        bottom: {}\n\t                    };\n\t                    _this2.itemDemo = _this2.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t                    var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t                    _this2.option.danmaku = danmaku;\n\t                    var xhr = new XMLHttpRequest();\n\t                    xhr.onreadystatechange = function () {\n\t                        if (xhr.readyState === 4) {\n\t                            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                (function () {\n\t                                    var response = JSON.parse(xhr.responseText);\n\t                                    if (response.code !== 1) {\n\t                                        alert(response.msg);\n\t                                    } else {\n\t                                        if (_this2.option.danmaku.addition) {\n\t                                            xhr.onreadystatechange = function () {\n\t                                                if (xhr.readyState === 4) {\n\t                                                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                        var response2 = JSON.parse(xhr.responseText);\n\t                                                        if (response2.code !== 1) {\n\t                                                            alert(response2.msg);\n\t                                                        } else {\n\t                                                            _this2.danIndex = 0;\n\t                                                            _this2.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                                return a.time - b.time;\n\t                                                            });\n\t                                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                            // autoplay\n\t                                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                                _this2.play();\n\t                                                            } else if (isMobile) {\n\t                                                                _this2.pause();\n\t                                                            }\n\t                                                        }\n\t                                                    } else {\n\t                                                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                    }\n\t                                                }\n\t                                            };\n\t                                            xhr.open('get', _this2.option.danmaku.addition[0], true);\n\t                                            xhr.send(null);\n\t                                        } else {\n\t                                            _this2.danIndex = 0;\n\t                                            _this2.dan = response.danmaku.sort(function (a, b) {\n\t                                                return a.time - b.time;\n\t                                            });\n\t                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                            // autoplay\n\t                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                _this2.play();\n\t                                            } else if (isMobile) {\n\t                                                _this2.pause();\n\t                                            }\n\t                                        }\n\t                                    }\n\t                                })();\n\t                            } else {\n\t                                console.log('Request was unsuccessful: ' + xhr.status);\n\t                            }\n\t                        }\n\t                    };\n\t                    var apiurl = void 0;\n\t                    if (_this2.option.danmaku.maximum) {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id + \"&max=\" + _this2.option.danmaku.maximum;\n\t                    } else {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id;\n\t                    }\n\t                    xhr.open('get', apiurl, true);\n\t                    xhr.send(null);\n\t                })();\n\t            }\n\t        }\n\t    }]);\n\t\n\t    return DPlayer;\n\t}();\n\t\n\tmodule.exports = DPlayer;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a <style> tag\n\t\n\t// load the styles\n\tvar content = __webpack_require__(2);\n\tif(typeof content === 'string') content = [[module.id, content, '']];\n\t// add the styles to the DOM\n\tvar update = __webpack_require__(4)(content, {});\n\tif(content.locals) module.exports = content.locals;\n\t// Hot Module Replacement\n\tif(false) {\n\t\t// When the styles change, update the <style> tags\n\t\tif(!content.locals) {\n\t\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\t\tupdate(newContent);\n\t\t\t});\n\t\t}\n\t\t// When the module is disposed, remove the <style> tags\n\t\tmodule.hot.dispose(function() { update(); });\n\t}\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(3)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t\t// tags it will allow on a page\r\n\t\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\t\r\n\t\t// By default, add <style> tags to the bottom of <head>.\r\n\t\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\t\r\n\t\tvar styles = listToStyles(list);\r\n\t\taddStylesToDom(styles, options);\r\n\t\r\n\t\treturn function update(newList) {\r\n\t\t\tvar mayRemove = [];\r\n\t\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\t\tvar item = styles[i];\r\n\t\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\t\tdomStyle.refs--;\r\n\t\t\t\tmayRemove.push(domStyle);\r\n\t\t\t}\r\n\t\t\tif(newList) {\r\n\t\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\t\taddStylesToDom(newStyles, options);\r\n\t\t\t}\r\n\t\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tfunction addStylesToDom(styles, options) {\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tif(domStyle) {\r\n\t\t\t\tdomStyle.refs++;\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t\t}\r\n\t\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar parts = [];\r\n\t\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction listToStyles(list) {\r\n\t\tvar styles = [];\r\n\t\tvar newStyles = {};\r\n\t\tfor(var i = 0; i < list.length; i++) {\r\n\t\t\tvar item = list[i];\r\n\t\t\tvar id = item[0];\r\n\t\t\tvar css = item[1];\r\n\t\t\tvar media = item[2];\r\n\t\t\tvar sourceMap = item[3];\r\n\t\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\t\tif(!newStyles[id])\r\n\t\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\t\telse\r\n\t\t\t\tnewStyles[id].parts.push(part);\r\n\t\t}\r\n\t\treturn styles;\r\n\t}\r\n\t\r\n\tfunction insertStyleElement(options, styleElement) {\r\n\t\tvar head = getHeadElement();\r\n\t\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\t\tif (options.insertAt === \"top\") {\r\n\t\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\thead.appendChild(styleElement);\r\n\t\t\t}\r\n\t\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t\t} else if (options.insertAt === \"bottom\") {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction removeStyleElement(styleElement) {\r\n\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\t\tif(idx >= 0) {\r\n\t\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction createStyleElement(options) {\r\n\t\tvar styleElement = document.createElement(\"style\");\r\n\t\tstyleElement.type = \"text/css\";\r\n\t\tinsertStyleElement(options, styleElement);\r\n\t\treturn styleElement;\r\n\t}\r\n\t\r\n\tfunction createLinkElement(options) {\r\n\t\tvar linkElement = document.createElement(\"link\");\r\n\t\tlinkElement.rel = \"stylesheet\";\r\n\t\tinsertStyleElement(options, linkElement);\r\n\t\treturn linkElement;\r\n\t}\r\n\t\r\n\tfunction addStyle(obj, options) {\r\n\t\tvar styleElement, update, remove;\r\n\t\r\n\t\tif (options.singleton) {\r\n\t\t\tvar styleIndex = singletonCounter++;\r\n\t\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t\t} else if(obj.sourceMap &&\r\n\t\t\ttypeof URL === \"function\" &&\r\n\t\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\t\ttypeof Blob === \"function\" &&\r\n\t\t\ttypeof btoa === \"function\") {\r\n\t\t\tstyleElement = createLinkElement(options);\r\n\t\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t\tif(styleElement.href)\r\n\t\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tstyleElement = createStyleElement(options);\r\n\t\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t};\r\n\t\t}\r\n\t\r\n\t\tupdate(obj);\r\n\t\r\n\t\treturn function updateStyle(newObj) {\r\n\t\t\tif(newObj) {\r\n\t\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tupdate(obj = newObj);\r\n\t\t\t} else {\r\n\t\t\t\tremove();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tvar replaceText = (function () {\r\n\t\tvar textStore = [];\r\n\t\r\n\t\treturn function (index, replacement) {\r\n\t\t\ttextStore[index] = replacement;\r\n\t\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t\t};\r\n\t})();\r\n\t\r\n\tfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\t\tvar css = remove ? \"\" : obj.css;\r\n\t\r\n\t\tif (styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t\t} else {\r\n\t\t\tvar cssNode = document.createTextNode(css);\r\n\t\t\tvar childNodes = styleElement.childNodes;\r\n\t\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\t\tif (childNodes.length) {\r\n\t\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t\t} else {\r\n\t\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction applyToTag(styleElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar media = obj.media;\r\n\t\r\n\t\tif(media) {\r\n\t\t\tstyleElement.setAttribute(\"media\", media)\r\n\t\t}\r\n\t\r\n\t\tif(styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = css;\r\n\t\t} else {\r\n\t\t\twhile(styleElement.firstChild) {\r\n\t\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t\t}\r\n\t\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction updateLink(linkElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar sourceMap = obj.sourceMap;\r\n\t\r\n\t\tif(sourceMap) {\r\n\t\t\t// http://stackoverflow.com/a/26603875\r\n\t\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t\t}\r\n\t\r\n\t\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\t\r\n\t\tvar oldSrc = linkElement.href;\r\n\t\r\n\t\tlinkElement.href = URL.createObjectURL(blob);\r\n\t\r\n\t\tif(oldSrc)\r\n\t\t\tURL.revokeObjectURL(oldSrc);\r\n\t}\r\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** DPlayer.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 36849708b33400b9c9a4\n **/","console.log(\"\\n %c DPlayer 1.1.1 %c http://dplayer.js.org \\n\\n\",\"color: #fadfa3; background: #030307; padding:5px 0;\",\"background: #fadfa3; padding:5px 0;\");\n\nrequire('./DPlayer.scss');\n\nlet index = 0;\n\nclass DPlayer {\n    /**\n     * DPlayer constructor function\n     *\n     * @param {Object} option - See README\n     * @constructor\n     */\n    constructor(option) {\n        const svg = {\n            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n        };\n        this.getSVG = (type) => {\n            return `\n                <svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" height=\"100%\" version=\"1.1\" viewBox=\"${svg[type][0]}\" width=\"100%\">\n                    <use xlink:href=\"#dplayer-${type}\"></use>\n                    <path class=\"dplayer-fill\" d=\"${svg[type][1]}\" id=\"dplayer-${type}\"></path>\n                </svg>\n            `;\n        };\n\n        this.option = option;\n\n        const isMobile = /mobile/i.test(window.navigator.userAgent);\n        // compatibility: some mobile browsers don't suppose autoplay\n        if (isMobile) {\n            this.option.autoplay = false;\n        }\n\n        // default options\n        const defaultOption = {\n            element: document.getElementsByClassName('dplayer')[0],\n            autoplay: false,\n            theme: '#b7daff',\n            loop: false,\n            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n            screenshot: false,\n            hotkey: true,\n            preload: 'auto'\n        };\n        for (let defaultKey in defaultOption) {\n            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n                this.option[defaultKey] = defaultOption[defaultKey];\n            }\n        }\n\n        const tranZH = {\n            'Danmaku is loading': '弹幕加载中',\n            'Top': '顶部',\n            'Bottom': '底部',\n            'Rolling': '滚动',\n            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n            'About author': '关于作者',\n            'DPlayer feedback': '播放器意见反馈',\n            'About DPlayer': '关于 DPlay 播放器',\n            'Loop': '洗脑循环',\n            'Speed': '速度',\n            'Opacity for danmaku': '弹幕透明度',\n            'Normal': '正常',\n            'Please input danmaku!': '要输入弹幕内容啊喂!',\n            'Set danmaku color': '设置弹幕颜色',\n            'Set danmaku type': '设置弹幕类型',\n            'Danmaku': '弹幕'\n        };\n        const getTran = (text) => {\n            if (this.option.lang === 'en') {\n                return text;\n            }\n            else if (this.option.lang === 'zh') {\n                return tranZH[text];\n            }\n        };\n\n        /**\n         * Update progress bar, including loading progress bar and play progress bar\n         *\n         * @param {String} type - Point out which bar it is, should be played loaded or volume\n         * @param {Number} percentage\n         * @param {String} direction - Point out the direction of this bar, Should be height or width\n         */\n        this.updateBar = (type, percentage, direction) => {\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n        };\n\n        // define DPlayer events\n        const eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n        this.event = {};\n        for (let i = 0; i < eventTypes.length; i++) {\n            this.event[eventTypes[i]] = [];\n        }\n        this.trigger = (type) => {\n            for (let i = 0; i < this.event[type].length; i++) {\n                this.event[type][i]();\n            }\n        };\n\n        this.element = this.option.element;\n        if (!this.option.danmaku) {\n            this.element.classList.add('dplayer-no-danmaku');\n        }\n\n        this.element.innerHTML = `\n            <div class=\"dplayer-mask\"></div>\n            <div class=\"dplayer-video-wrap\">\n                <video class=\"dplayer-video\" ${this.option.video.pic ? `poster=\"${this.option.video.pic}\"` : ``} webkit-playsinline ${this.option.screenshot ? `crossorigin=\"anonymous\"` : ``} preload=\"${this.option.preload}\" src=\"${this.option.video.url}\"></video>\n                <div class=\"dplayer-danmaku\">\n                    <div class=\"dplayer-danmaku-item dplayer-danmaku-item--demo\"></div>\n                </div>\n                <div class=\"dplayer-bezel\">\n                    <span class=\"dplayer-bezel-icon\"></span>\n                    ${this.option.danmaku ? `<span class=\"dplayer-danloading\">${getTran('Danmaku is loading')}</span>` : ``}\n                    <span class=\"diplayer-loading-icon\">\n                        <svg height=\"100%\" version=\"1.1\" viewBox=\"0 0 22 22\" width=\"100%\">\n                            <svg x=\"7\" y=\"1\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-0\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-1\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"13\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-2\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-3\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"7\" y=\"13\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-4\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-5\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"1\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-6\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-7\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class=\"dplayer-controller-mask\"></div>\n            <div class=\"dplayer-controller\">\n                <div class=\"dplayer-icons dplayer-icons-left\">\n                    <button class=\"dplayer-icon dplayer-play-icon\">`\n            +           this.getSVG('play')\n            + `     </button>\n                    <div class=\"dplayer-volume\" ${isMobile ? 'style=\"display: none;\"' : ''}>\n                        <button class=\"dplayer-icon dplayer-volume-icon\">`\n            +               this.getSVG('volume-down')\n            + `         </button>\n                        <div class=\"dplayer-volume-bar-wrap\">\n                            <div class=\"dplayer-volume-bar\">\n                                <div class=\"dplayer-volume-bar-inner\" style=\"width: 70%; background: ${this.option.theme};\">\n                                    <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class=\"dplayer-time\"><span class=\"dplayer-ptime\">0:00</span> / <span class=\"dplayer-dtime\">0:00</span></span>\n                </div>\n                <div class=\"dplayer-icons dplayer-icons-right\">\n                    ${this.option.screenshot ? `\n                    <a href=\"#\" class=\"dplayer-icon dplayer-camera-icon\" ${isMobile ? 'style=\"display: none;\"' : ''}dplayer-volume>`\n            +           this.getSVG('camera')\n            + `     </a>\n                    ` : ``}\n                    <div class=\"dplayer-comment\">\n                        <button class=\"dplayer-icon dplayer-comment-icon\">`\n            +               this.getSVG('comment')\n            + `         </button>\n                        <div class=\"dplayer-comment-box\">\n                            <button class=\"dplayer-icon dplayer-comment-setting-icon\">`\n            +                   this.getSVG('menu')\n            + `             </button>\n                            <div class=\"dplayer-comment-setting-box\">\n                                <div class=\"dplayer-comment-setting-color\">\n                                   <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku color')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#fff\" checked>\n                                        <span style=\"background: #fff; border: 1px solid rgba(0,0,0,.1);\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#e54256\">\n                                        <span style=\"background: #e54256\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#ffe133\">\n                                        <span style=\"background: #ffe133\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#64DD17\">\n                                        <span style=\"background: #64DD17\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#39ccff\">\n                                        <span style=\"background: #39ccff\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#D500F9\">\n                                        <span style=\"background: #D500F9\"></span>\n                                    </label>\n                                </div>\n                                <div class=\"dplayer-comment-setting-type\">\n                                    <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku type')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"top\">\n                                        <span>${getTran('Top')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"right\" checked>\n                                        <span>${getTran('Rolling')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"bottom\">\n                                        <span>${getTran('Bottom')}</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class=\"dplayer-comment-input\" type=\"text\" placeholder=\"${getTran('Input danmaku, hit Enter')}\" maxlength=\"30\">\n                            <button class=\"dplayer-icon dplayer-send-icon\">`\n            +                   this.getSVG('send')\n            + `             </button>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting\">\n                        <button class=\"dplayer-icon dplayer-setting-icon\">`\n            +               this.getSVG('setting')\n            + `         </button>\n                        <div class=\"dplayer-setting-box\"></div>\n                    </div>\n                    <button class=\"dplayer-icon dplayer-full-icon\">`\n            +           this.getSVG('full')\n            + `     </button>\n                </div>\n                <div class=\"dplayer-bar-wrap\">\n                    <div class=\"dplayer-bar\">\n                        <div class=\"dplayer-loaded\" style=\"width: 0;\"></div>\n                        <div class=\"dplayer-played\" style=\"width: 0; background: ${this.option.theme}\">\n                            <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"dplayer-menu\">\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"http://diygod.me/\">${getTran('About author')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer/issues\">${getTran('DPlayer feedback')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer\">${getTran('About DPlayer')}</a></span></div>\n            </div>\n        `;\n\n        // arrow style\n        var arrow = this.element.offsetWidth <= 500;\n        if (arrow) {\n            var arrowStyle = document.createElement('style');\n            arrowStyle.innerHTML = `.dplayer .dplayer-danmaku{font-size:18px}`;\n            document.head.appendChild(arrowStyle);\n        }\n\n        // get this video object\n        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\n        // Support HTTP Live Streaming\n        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n            this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n            const hls = new Hls();\n            hls.attachMedia(this.video);\n            hls.on(Hls.Events.MEDIA_ATTACHED, () => {\n                hls.loadSource(this.option.video.url);\n                hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n                    console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n                });\n            });\n        }\n\n        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n        this.bezel.addEventListener('animationend', () => {\n            this.bezel.classList.remove('dplayer-bezel-transition');\n        });\n\n        // play and pause button\n        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n        this.shouldpause = true;\n        this.playButton.addEventListener('click', () => {\n            this.toggle();\n        });\n\n        const videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n        const conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n        if (!isMobile) {\n            videoWrap.addEventListener('click', () => {\n                this.toggle();\n            });\n            conMask.addEventListener('click', () => {\n                this.toggle();\n            });\n        }\n        else {\n            const toggleController = () => {\n                if (this.element.classList.contains('dplayer-hide-controller')) {\n                    this.element.classList.remove('dplayer-hide-controller');\n                }\n                else {\n                    this.element.classList.add('dplayer-hide-controller');\n                }\n            };\n            videoWrap.addEventListener('click', toggleController);\n            conMask.addEventListener('click', toggleController);\n        }\n\n\n        /**\n         * Parse second to 00:00 format\n         *\n         * @param {Number} second\n         * @return {String} 00:00 format\n         */\n        const secondToTime = (second) => {\n            const add0 = (num) => {\n                return num < 10 ? '0' + num : '' + num;\n            };\n            const min = parseInt(second / 60);\n            const sec = parseInt(second - min * 60);\n            return add0(min) + ':' + add0(sec);\n        };\n\n        /**\n         * control play progress\n         */\n        // get element's view position\n        const getElementViewLeft = (element) => {\n            let actualLeft = element.offsetLeft;\n            let current = element.offsetParent;\n            let elementScrollLeft;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n            return actualLeft - elementScrollLeft;\n        };\n\n        const getElementViewTop = (element) => {\n            let actualTop = element.offsetTop;\n            let current = element.offsetParent;\n            let elementScrollTop;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n            return actualTop - elementScrollTop;\n        };\n\n        let bar = {};\n        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n        const pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n        let barWidth;\n\n        if (this.option.danmaku) {\n            this.video.addEventListener('seeking', () => {\n                for (let i = 0; i < this.dan.length; i++) {\n                    if (this.dan[i].time >= this.video.currentTime) {\n                        this.danIndex = i;\n                        return;\n                    }\n                    this.danIndex = this.dan.length;\n                }\n            });\n        }\n\n        let lastPlayPos = 0;\n        let currentPlayPos = 0;\n        let bufferingDetected = false;\n        let danmakuTime;\n        this.setTime = () => {\n            this.playedTime = setInterval(() => {\n                // whether the video is buffering\n                currentPlayPos = this.video.currentTime;\n                if (!bufferingDetected\n                    && currentPlayPos < (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.add('dplayer-loading');\n                    bufferingDetected = true;\n                }\n                if (bufferingDetected\n                    && currentPlayPos > (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.remove('dplayer-loading');\n                    bufferingDetected = false;\n                }\n                lastPlayPos = currentPlayPos;\n\n                this.updateBar('played', this.video.currentTime / this.video.duration, 'width');\n                this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(this.video.currentTime);\n                this.trigger('playing');\n            }, 100);\n            if (this.option.danmaku) {\n                danmakuTime = setInterval(() => {\n                    let item = this.dan[this.danIndex];\n                    while (item && this.video.currentTime >= parseFloat(item.time)) {\n                        danmakuIn(item.text, item.color, item.type);\n                        item = this.dan[++this.danIndex];\n                    }\n                }, 0);\n            }\n        };\n        this.clearTime = () => {\n            clearInterval(this.playedTime);\n            if (this.option.danmaku) {\n                clearInterval(danmakuTime);\n            }\n        };\n\n        pbar.addEventListener('click', (event) => {\n            const e = event || window.event;\n            barWidth = pbar.clientWidth;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n        });\n\n        const thumbMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * this.video.duration);\n        };\n\n        const thumbUp = () => {\n            document.removeEventListener('mouseup', thumbUp);\n            document.removeEventListener('mousemove', thumbMove);\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n            this.setTime();\n        };\n\n        pbar.addEventListener('mousedown', () => {\n            barWidth = pbar.clientWidth;\n            this.clearTime();\n            document.addEventListener('mousemove', thumbMove);\n            document.addEventListener('mouseup', thumbUp);\n        });\n\n\n        /**\n         * control volume\n         */\n        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n        const volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n        const volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n        const volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n        const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n        const vWidth = 35;\n\n        this.switchVolumeIcon = () => {\n            const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n            if (this.video.volume >= 0.8) {\n                volumeicon.innerHTML = this.getSVG('volume-up');\n            }\n            else if (this.video.volume > 0) {\n                volumeicon.innerHTML = this.getSVG('volume-down');\n            }\n            else {\n                volumeicon.innerHTML = this.getSVG('volume-off');\n            }\n        };\n        const volumeMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        };\n        const volumeUp = () => {\n            document.removeEventListener('mouseup', volumeUp);\n            document.removeEventListener('mousemove', volumeMove);\n            volumeEle.classList.remove('dplayer-volume-active');\n        };\n\n        volumeBarWrapWrap.addEventListener('click', (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        });\n        volumeBarWrapWrap.addEventListener('mousedown', () => {\n            document.addEventListener('mousemove', volumeMove);\n            document.addEventListener('mouseup', volumeUp);\n            volumeEle.classList.add('dplayer-volume-active');\n        });\n        volumeicon.addEventListener('click', () => {\n            if (this.video.muted) {\n                this.video.muted = false;\n                this.switchVolumeIcon();\n                this.updateBar('volume', this.video.volume, 'width');\n            }\n            else {\n                this.video.muted = true;\n                volumeicon.innerHTML = this.getSVG('volume-off');\n                this.updateBar('volume', 0, 'width');\n            }\n        });\n\n\n        /**\n         * auto hide controller\n         */\n        let hideTime = 0;\n        if (!isMobile) {\n            const hideController = () => {\n                this.element.classList.remove('dplayer-hide-controller');\n                clearTimeout(hideTime);\n                hideTime = setTimeout(() => {\n                    if (this.video.played.length) {\n                        this.element.classList.add('dplayer-hide-controller');\n                        closeSetting();\n                        closeComment();\n                    }\n                }, 2000);\n            };\n            this.element.addEventListener('mousemove', hideController);\n            this.element.addEventListener('click', hideController);\n        }\n\n\n        /***\n         * setting\n         */\n        let danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n        const settingHTML = {\n            'original': `\n                    <div class=\"dplayer-setting-item dplayer-setting-speed\">\n                        <span class=\"dplayer-label\">${getTran('Speed')}</span>\n                        <div class=\"dplayer-toggle\">`\n            +           this.getSVG('right')\n            + `     </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-loop\">\n                        <span class=\"dplayer-label\">${getTran('Loop')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-toggle-setting-input\" type=\"checkbox\" name=\"dplayer-toggle\">\n                            <label for=\"dplayer-toggle\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-showdan\">\n                        <span class=\"dplayer-label\">${getTran('Danmaku')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-showdan-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-dan\">\n                            <label for=\"dplayer-toggle-dan\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danmaku\">\n                        <span class=\"dplayer-label\">${getTran('Opacity for danmaku')}</span>\n                        <div class=\"dplayer-danmaku-bar-wrap\">\n                            <div class=\"dplayer-danmaku-bar\">\n                                <div class=\"dplayer-danmaku-bar-inner\" style=\"width: ${danOpacity * 100}%\">\n                                    <span class=\"dplayer-thumb\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`,\n            'speed': `\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.5\">\n                        <span class=\"dplayer-label\">0.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.75\">\n                        <span class=\"dplayer-label\">0.75</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1\">\n                        <span class=\"dplayer-label\">${getTran('Normal')}</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.25\">\n                        <span class=\"dplayer-label\">1.25</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.5\">\n                        <span class=\"dplayer-label\">1.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"2\">\n                        <span class=\"dplayer-label\">2</span>\n                    </div>`\n        };\n\n        // toggle setting box\n        const settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n        const settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n        const mask = this.element.getElementsByClassName('dplayer-mask')[0];\n        settingBox.innerHTML = settingHTML.original;\n\n        const closeSetting = () => {\n            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n                settingBox.classList.remove('dplayer-setting-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                setTimeout(() => {\n                    settingBox.classList.remove('dplayer-setting-box-narrow');\n                    settingBox.innerHTML = settingHTML.original;\n                    settingEvent();\n                }, 300);\n            }\n        };\n        const openSetting = () => {\n            settingBox.classList.add('dplayer-setting-box-open');\n            mask.classList.add('dplayer-mask-show');\n        };\n\n        mask.addEventListener('click', () => {\n            closeSetting();\n        });\n        settingIcon.addEventListener('click', () => {\n            openSetting();\n        });\n\n        let loop = this.option.loop;\n        const danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n        let showdan = true;\n        const settingEvent = () => {\n            // loop control\n            const loopEle = this.element.getElementsByClassName('dplayer-setting-loop')[0];\n            const loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\n            loopToggle.checked = loop;\n\n            loopEle.addEventListener('click', () => {\n                loopToggle.checked = !loopToggle.checked;\n                if (loopToggle.checked) {\n                    loop = true;\n                    this.video.loop = loop;\n                }\n                else {\n                    loop = false;\n                    this.video.loop = loop;\n                }\n                closeSetting();\n            });\n\n            // show danmaku control\n            const showDanEle = this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n            const showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\n            showDanToggle.checked = showdan;\n\n            showDanEle.addEventListener('click', () => {\n                showDanToggle.checked = !showDanToggle.checked;\n                if (showDanToggle.checked) {\n                    showdan = true;\n                    if (this.option.danmaku) {\n                        for (let i = 0; i < this.dan.length; i++) {\n                            if (this.dan[i].time >= this.video.currentTime) {\n                                this.danIndex = i;\n                                break;\n                            }\n                            this.danIndex = this.dan.length;\n                        }\n                        danmakuTime = setInterval(() => {\n                            let item = this.dan[this.danIndex];\n                            while (item && this.video.currentTime >= parseFloat(item.time)) {\n                                danmakuIn(item.text, item.color, item.type);\n                                item = this.dan[++this.danIndex];\n                            }\n                        }, 0);\n                    }\n                }\n                else {\n                    showdan = false;\n                    if (this.option.danmaku) {\n                        clearInterval(danmakuTime);\n                        danContainer.innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n                        this.danTunnel = {\n                            right: {},\n                            top: {},\n                            bottom: {}\n                        };\n                        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n                    }\n                }\n                closeSetting();\n            });\n\n            // speed control\n            const speedEle = this.element.getElementsByClassName('dplayer-setting-speed')[0];\n            speedEle.addEventListener('click', () => {\n                settingBox.classList.add('dplayer-setting-box-narrow');\n                settingBox.innerHTML = settingHTML.speed;\n\n                const speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n                for (let i = 0; i < speedItem.length; i++) {\n                    speedItem[i].addEventListener('click', () => {\n                        this.video.playbackRate = speedItem[i].dataset.speed;\n                        closeSetting();\n                    });\n                }\n            });\n\n            if (this.option.danmaku) {\n                // danmaku opacity\n                bar.danmakuBar = this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n                const danmakuBarWrapWrap = this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n                const danmakuBarWrap = this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n                const danmakuSettingBox = this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n                const dWidth = 130;\n                this.updateBar('danmaku', danOpacity, 'width');\n\n                const danmakuMove = (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                };\n                const danmakuUp = () => {\n                    document.removeEventListener('mouseup', danmakuUp);\n                    document.removeEventListener('mousemove', danmakuMove);\n                    danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n                };\n\n                danmakuBarWrapWrap.addEventListener('click', (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                });\n                danmakuBarWrapWrap.addEventListener('mousedown', () => {\n                    document.addEventListener('mousemove', danmakuMove);\n                    document.addEventListener('mouseup', danmakuUp);\n                    danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n                });\n            }\n        };\n        settingEvent();\n\n\n        /**\n         * video events\n         */\n        // show video time: the metadata has loaded or changed\n        this.video.addEventListener('durationchange', () => {\n            if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n                this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(this.video.duration);\n            }\n        });\n\n        // show video loaded bar: to inform interested parties of progress downloading the media\n        this.video.addEventListener('progress', () => {\n            const percentage = this.video.buffered.length ? this.video.buffered.end(this.video.buffered.length - 1) / this.video.duration : 0;\n            this.updateBar('loaded', percentage, 'width');\n        });\n\n        // video download error: an error occurs\n        this.video.addEventListener('error', () => {\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = `Error happens ╥﹏╥`;\n            this.trigger('pause');\n        });\n\n        // video can play: enough data is available that the media can be played\n        this.video.addEventListener('canplay', () => {\n            this.trigger('canplay');\n        });\n\n        // music end\n        this.ended = false;\n        this.video.addEventListener('ended', () => {\n            this.updateBar('played', 1, 'width');\n            if (!loop) {\n                this.ended = true;\n                this.pause();\n                this.trigger('ended');\n            }\n        });\n\n        // control volume\n        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\n        // loop\n        this.video.loop = loop;\n\n        // set duration time\n        if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n        }\n\n\n        /**\n         * danmaku display\n         */\n        const itemHeight = arrow ? 24: 30;\n        let danWidth;\n        let danHeight;\n        let itemY;\n        this.danTunnel = {\n            right: {},\n            top: {},\n            bottom: {}\n        };\n\n        const danItemRight = (ele) => {\n            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n        };\n\n        const danSpeed = (width) => {\n            return (danWidth + width) / 5;\n        };\n\n        const getTunnel = (ele, type, width) => {\n            const tmp = danWidth / danSpeed(width);\n\n            for (let i = 0; ; i++) {\n                let item = this.danTunnel[type][i + ''];\n                if (item && item.length) {\n                    for (let j = 0; j < item.length; j++) {\n                        const danRight = danItemRight(item[j]) - 10;\n                        if (danRight <= danWidth - (tmp * danSpeed(item[j].offsetWidth)) || danRight <= 0) {\n                            break;\n                        }\n                        if (j === item.length - 1) {\n                            this.danTunnel[type][i + ''].push(ele);\n                            ele.addEventListener('animationend', () => {\n                                this.danTunnel[type][i + ''].splice(0, 1);\n                            });\n                            return i % itemY;\n                        }\n                    }\n                }\n                else {\n                    this.danTunnel[type][i + ''] = [ele];\n                    ele.addEventListener('animationend', () => {\n                        this.danTunnel[type][i + ''].splice(0, 1);\n                    });\n                    return i % itemY;\n                }\n            }\n        };\n\n        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n        const danmakuIn = (text, color, type) => {\n            danWidth = danContainer.offsetWidth;\n            danHeight = danContainer.offsetHeight;\n            itemY = parseInt(danHeight / itemHeight);\n            let item = document.createElement(`div`);\n            item.classList.add(`dplayer-danmaku-item`);\n            item.classList.add(`dplayer-danmaku-${type}`);\n            item.innerHTML = text;\n            item.style.opacity = danOpacity;\n            item.style.color = color;\n            item.addEventListener('animationend', () => {\n                danContainer.removeChild(item);\n            });\n\n            // measure\n            this.itemDemo.innerHTML = text;\n            let itemWidth = this.itemDemo.offsetWidth;\n\n            // adjust\n            switch (type) {\n                case 'right':\n                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n                    item.style.width = (itemWidth + 1) + 'px';\n                    item.style.transform = `translateX(-${danWidth}px)`;\n                    break;\n                case 'top':\n                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                case 'bottom':\n                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                default:\n                    console.error(`Can't handled danmaku type: ${type}`);\n            }\n\n            // insert\n            danContainer.appendChild(item);\n\n            // move\n            item.classList.add(`dplayer-danmaku-move`);\n\n            return item;\n        };\n\n        // danmaku\n        if (this.option.danmaku) {\n            this.danIndex = 0;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n        else {\n            // autoplay\n            if (this.option.autoplay && !isMobile) {\n                this.play();\n            }\n            else if (isMobile) {\n                this.pause();\n            }\n        }\n\n\n        /**\n         * comment\n         */\n        const commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n        const commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n        const commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n        const commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n        const commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n        const commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\n        const htmlEncode = (str) => {\n            return str.replace(/&/g, \"&amp;\")\n                .replace(/</g, \"&lt;\")\n                .replace(/>/g, \"&gt;\")\n                .replace(/\"/g, \"&quot;\")\n                .replace(/'/g, \"&#x27;\")\n                .replace(/\\//g, \"&#x2f;\");\n        };\n\n        const sendComment = () => {\n            commentInput.blur();\n\n            // text can't be empty\n            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n                alert(getTran('Please input danmaku!'));\n                return;\n            }\n\n            const danmakuData = {\n                token: this.option.danmaku.token,\n                player: this.option.danmaku.id,\n                author: 'DIYgod',\n                time: this.video.currentTime,\n                text: commentInput.value,\n                color: this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n                type: this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n            };\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            xhr.open('post', this.option.danmaku.api, true);\n            xhr.send(JSON.stringify(danmakuData));\n\n            commentInput.value = '';\n            closeComment();\n            this.dan.splice(this.danIndex, 0, danmakuData);\n            this.danIndex++;\n            const item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n            item.style.border = `2px solid ${this.option.theme}`;\n        };\n\n        const closeCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n        };\n        const toggleCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n            else {\n                commentSettingBox.classList.add('dplayer-comment-setting-open');\n            }\n        };\n\n        let disableHide = 0;\n        const closeComment = () => {\n            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n                commentBox.classList.remove('dplayer-comment-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                clearInterval(disableHide);\n                this.element.classList.remove('dplayer-show-controller');\n                closeCommentSetting();\n            }\n        };\n        const openComment = () => {\n            commentBox.classList.add('dplayer-comment-box-open');\n            mask.classList.add('dplayer-mask-show');\n            disableHide = setInterval(() => {\n                clearTimeout(hideTime);\n            }, 1000);\n            this.element.classList.add('dplayer-show-controller');\n        };\n\n        mask.addEventListener('click', () => {\n            closeComment();\n        });\n        commentIcon.addEventListener('click', () => {\n            openComment();\n            setTimeout(() => {\n                commentInput.focus();\n            }, 300);\n        });\n        commentSettingIcon.addEventListener('click', () => {\n            toggleCommentSetting();\n        });\n\n        // comment setting box\n        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', () => {\n            const sele = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n            if (sele) {\n                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n            }\n        });\n\n        commentInput.addEventListener('click', () => {\n            closeCommentSetting();\n        });\n        commentInput.addEventListener('keydown', (e) => {\n            const event = e || window.event;\n            if (event.keyCode === 13) {\n                sendComment();\n            }\n        });\n\n        commentSendIcon.addEventListener('click', sendComment);\n\n\n        /**\n         * full screen\n         */\n        const resetAnimation = () => {\n            danWidth = danContainer.offsetWidth;\n            const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n            for (let i = 0; i < items.length; i++) {\n                items[i].style.transform = `translateX(-${danWidth}px)`;\n            }\n        };\n\n        this.element.addEventListener('fullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('mozfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('webkitfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                if (this.element.requestFullscreen) {\n                    this.element.requestFullscreen();\n                }\n                else if (this.element.mozRequestFullScreen) {\n                    this.element.mozRequestFullScreen();\n                }\n                else if (this.element.webkitRequestFullscreen) {\n                    this.element.webkitRequestFullscreen();\n                }\n            }\n            else {\n                if (document.cancelFullScreen) {\n                    document.cancelFullScreen();\n                }\n                else if (document.mozCancelFullScreen) {\n                    document.mozCancelFullScreen();\n                }\n                else if (document.webkitCancelFullScreen) {\n                    document.webkitCancelFullScreen();\n                }\n            }\n            resetAnimation();\n        });\n\n        /**\n         * hot key\n         */\n        const handleKeyDown = (e) => {\n            const tag = document.activeElement.tagName.toUpperCase();\n            const editable = document.activeElement.getAttribute('contenteditable');\n            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n                const event = e || window.event;\n                let percentage;\n                switch (event.keyCode) {\n                    case 32:\n                        event.preventDefault();\n                        this.toggle();\n                        break;\n                    case 37:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime - 5;\n                        break;\n                    case 39:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime + 5;\n                        break;\n                    case 38:\n                        event.preventDefault();\n                        percentage = this.video.volume + 0.1;\n                        this.volume(percentage);\n                        break;\n                    case 40:\n                        event.preventDefault();\n                        percentage = this.video.volume - 0.1;\n                        this.volume(percentage);\n                        break;\n                }\n            }\n        };\n        if (this.option.hotkey) {\n            document.addEventListener('keydown', handleKeyDown);\n        }\n\n        /**\n         * right key\n         */\n        const menu = this.element.getElementsByClassName('dplayer-menu')[0];\n        this.element.addEventListener('contextmenu', (e) => {\n            const event = e || window.event;\n            event.preventDefault();\n            menu.style.left = event.clientX - this.element.getBoundingClientRect().left + 'px';\n            menu.style.top = event.clientY - this.element.getBoundingClientRect().top + 'px';\n            menu.classList.add('dplayer-menu-show');\n\n            mask.classList.add('dplayer-mask-show');\n            mask.addEventListener('click', () => {\n                mask.classList.remove('dplayer-mask-show');\n                menu.classList.remove('dplayer-menu-show');\n           });\n        });\n\n        /**\n         * Screenshot\n         */\n        if (this.option.screenshot) {\n            const camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n            camareIcon.addEventListener('click', () => {\n                const canvas = document.createElement(\"canvas\");\n                canvas.width = this.video.videoWidth;\n                canvas.height = this.video.videoHeight;\n                canvas.getContext('2d').drawImage(this.video, 0, 0, canvas.width, canvas.height);\n\n                camareIcon.href = canvas.toDataURL();\n                camareIcon.download = \"DPlayer.png\";\n            });\n        }\n\n        index++;\n    }\n\n    /**\n     * Play music\n     */\n    play(time) {\n        if (Object.prototype.toString.call(time) === '[object Number]') {\n            this.video.currentTime = time;\n        }\n        if (this.video.paused) {\n            this.shouldpause = false;\n\n            this.bezel.innerHTML = this.getSVG('play');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.playButton.innerHTML = this.getSVG('pause');\n\n            this.video.play();\n            if (this.playedTime) {\n                this.clearTime();\n            }\n            this.setTime();\n            this.element.classList.add('dplayer-playing');\n            this.trigger('play');\n        }\n    }\n\n    /**\n     * Pause music\n     */\n    pause() {\n        if (!this.shouldpause || this.ended) {\n            this.shouldpause = true;\n            this.element.classList.remove('dplayer-loading');\n\n            this.bezel.innerHTML = this.getSVG('pause');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.ended = false;\n            this.playButton.innerHTML = this.getSVG('play');\n            this.video.pause();\n            this.clearTime();\n            this.element.classList.remove('dplayer-playing');\n            this.trigger('pause');\n        }\n    }\n\n    /**\n     * Set volume\n     */\n    volume(percentage) {\n        percentage = percentage > 0 ? percentage : 0;\n        percentage = percentage < 1 ? percentage : 1;\n        this.updateBar('volume', percentage, 'width');\n        this.video.volume = percentage;\n        if (this.video.muted) {\n            this.video.muted = false;\n        }\n        this.switchVolumeIcon();\n    }\n\n    /**\n     * Toggle between play and pause\n     */\n    toggle() {\n        if (this.video.paused) {\n            this.play();\n        }\n        else {\n            this.pause();\n        }\n    }\n\n    /**\n     * attach event\n     */\n    on(name, func) {\n        if (typeof func === 'function') {\n            this.event[name].push(func);\n        }\n    }\n\n    /**\n     * Switch to a new video\n     *\n     * @param {Object} video - new video info\n     * @param {Object} danmaku - new danmaku info\n     */\n    switchVideo(video, danmaku) {\n        this.video.src = video.url;\n        this.video.poster = video.pic ? video.pic : '';\n        this.video.currentTime = 0;\n        this.pause();\n        if (danmaku) {\n            this.dan = [];\n            this.danIndex = 0;\n            this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n            this.updateBar('played', 0, 'width');\n            this.updateBar('loaded', 0, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n            this.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n            this.danTunnel = {\n                right: {},\n                top: {},\n                bottom: {}\n            };\n            this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n            const isMobile = /mobile/i.test(window.navigator.userAgent);\n            this.option.danmaku = danmaku;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.danIndex = 0;\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.danIndex = 0;\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n    }\n}\n\nmodule.exports = DPlayer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/DPlayer.js\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/DPlayer.scss\n ** module id = 1\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/DPlayer.scss\n ** module id = 2\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader/lib/css-base.js\n ** module id = 3\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/style-loader/addStyles.js\n ** module id = 4\n ** module chunks = 0\n **/"],"sourceRoot":""}
     1{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///DPlayer.min.js","webpack:///webpack/bootstrap 7d31a2bec8d115f8be0c","webpack:///./src/DPlayer.js","webpack:///./src/DPlayer.scss?8fa9","webpack:///./src/DPlayer.scss","webpack:///./~/css-loader/lib/css-base.js","webpack:///./~/style-loader/addStyles.js"],"names":["root","factory","exports","module","define","amd","this","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_classCallCheck","instance","Constructor","TypeError","_typeof","Symbol","iterator","obj","constructor","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","console","log","index","DPlayer","option","_this","svg","play","pause","volume-up","volume-down","volume-off","loop","full","setting","right","comment","comment-off","send","menu","camera","getSVG","type","isMobile","test","window","navigator","userAgent","autoplay","defaultOption","element","document","getElementsByClassName","theme","lang","language","indexOf","screenshot","hotkey","preload","defaultKey","hasOwnProperty","tranZH","Danmaku is loading","Top","Bottom","Rolling","Input danmaku, hit Enter","About author","DPlayer feedback","About DPlayer","Loop","Speed","Opacity for danmaku","Normal","Please input danmaku!","Set danmaku color","Set danmaku type","Danmaku","getTran","text","updateBar","percentage","direction","bar","style","eventTypes","event","trigger","_i","danmaku","classList","add","innerHTML","video","pic","url","arrow","offsetWidth","arrowStyle","createElement","head","appendChild","match","Hls","isSupported","display","hls","attachMedia","on","Events","MEDIA_ATTACHED","loadSource","MANIFEST_PARSED","data","levels","flvjs","flvPlayer","createPlayer","attachMediaElement","load","bezel","addEventListener","remove","playButton","shouldpause","toggle","videoWrap","conMask","toggleController","contains","secondToTime","second","add0","num","min","parseInt","sec","getElementViewLeft","actualLeft","offsetLeft","current","offsetParent","elementScrollLeft","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","body","scrollLeft","documentElement","playedBar","loadedBar","pbar","barWidth","_i2","dan","time","currentTime","danIndex","lastPlayPos","currentPlayPos","bufferingDetected","danmakuTime","setTime","playedTime","setInterval","paused","duration","item","parseFloat","danmakuIn","color","clearTime","clearInterval","e","clientWidth","clientX","width","thumbMove","thumbUp","removeEventListener","volumeBar","volumeEle","volumeBarWrapWrap","volumeBarWrap","volumeicon","vWidth","switchVolumeIcon","volume","volumeMove","volumeUp","muted","hideTime","hideController","clearTimeout","setTimeout","played","closeSetting","closeComment","danOpacity","localStorage","getItem","settingHTML","original","speed","settingIcon","settingBox","mask","settingEvent","openSetting","danContainer","showdan","loopEle","loopToggle","checked","showDanEle","showDanToggle","_i3","danTunnel","top","bottom","itemDemo","speedEle","speedItem","_loop","_i4","playbackRate","dataset","danmakuBar","danmakuBarWrapWrap","danmakuBarWrap","danmakuSettingBox","dWidth","danmakuMove","items","_i5","opacity","setItem","danmakuUp","_i6","buffered","end","ended","itemHeight","danWidth","danHeight","itemY","danItemRight","ele","getBoundingClientRect","danSpeed","getTunnel","tmp","_loop2","_i7","splice","v","j","danRight","push","_ret4","offsetHeight","removeChild","itemWidth","transform","error","xhr","XMLHttpRequest","onreadystatechange","readyState","status","response","JSON","parse","responseText","code","alert","msg","addition","response2","concat","sort","a","b","open","apiurl","maximum","api","commentInput","commentIcon","commentBox","commentSettingIcon","commentSettingBox","commentSendIcon","htmlEncode","str","replace","sendComment","blur","value","danmakuData","token","player","author","querySelector","stringify","border","closeCommentSetting","toggleCommentSetting","disableHide","openComment","focus","sele","fill","keyCode","resetAnimation","_i8","cancelFullScreen","mozCancelFullScreen","webkitCancelFullScreen","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","handleKeyDown","tag","activeElement","tagName","toUpperCase","editable","getAttribute","preventDefault","left","clientY","camareIcon","canvas","videoWidth","height","videoHeight","getContext","drawImage","href","toDataURL","download","toString","name","func","_this2","src","poster","content","locals","list","result","join","mediaQuery","alreadyImportedModules","addStylesToDom","styles","options","domStyle","stylesInDom","refs","parts","addStyle","listToStyles","newStyles","css","media","sourceMap","part","insertStyleElement","styleElement","getHeadElement","lastStyleElementInsertedAtTop","styleElementsInsertedAtTop","insertAt","nextSibling","insertBefore","firstChild","Error","removeStyleElement","parentNode","idx","createStyleElement","createLinkElement","linkElement","rel","update","singleton","styleIndex","singletonCounter","singletonElement","applyToSingletonTag","bind","URL","createObjectURL","revokeObjectURL","Blob","btoa","updateLink","applyToTag","newObj","styleSheet","cssText","replaceText","cssNode","createTextNode","childNodes","setAttribute","unescape","encodeURIComponent","blob","oldSrc","memoize","fn","memo","apply","arguments","isOldIE","toLowerCase","getElementsByTagName","newList","mayRemove","textStore","replacement","filter","Boolean"],"mappings":"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","file":"DPlayer.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"DPlayer\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"DPlayer\"] = factory();\n\telse\n\t\troot[\"DPlayer\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t\n\tvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol ? \"symbol\" : typeof obj; };\n\t\n\tvar _createClass = 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tconsole.log(\"\\n %c DPlayer 1.1.2 %c http://dplayer.js.org \\n\\n\", \"color: #fadfa3; background: #030307; padding:5px 0;\", \"background: #fadfa3; padding:5px 0;\");\n\t\n\t__webpack_require__(1);\n\t\n\tvar index = 0;\n\t\n\tvar DPlayer = function () {\n\t    /**\n\t     * DPlayer constructor function\n\t     *\n\t     * @param {Object} option - See README\n\t     * @constructor\n\t     */\n\t\n\t    function DPlayer(option) {\n\t        var _this = this;\n\t\n\t        _classCallCheck(this, DPlayer);\n\t\n\t        var svg = {\n\t            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n\t            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n\t            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n\t            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n\t            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n\t            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n\t            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n\t            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n\t            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n\t            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n\t            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n\t            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n\t            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n\t            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n\t        };\n\t        this.getSVG = function (type) {\n\t            return \"\\n                <svg xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"\" + svg[type][0] + \"\\\" width=\\\"100%\\\">\\n                    <use xlink:href=\\\"#dplayer-\" + type + \"\\\"></use>\\n                    <path class=\\\"dplayer-fill\\\" d=\\\"\" + svg[type][1] + \"\\\" id=\\\"dplayer-\" + type + \"\\\"></path>\\n                </svg>\\n            \";\n\t        };\n\t\n\t        this.option = option;\n\t\n\t        var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t        // compatibility: some mobile browsers don't suppose autoplay\n\t        if (isMobile) {\n\t            this.option.autoplay = false;\n\t        }\n\t\n\t        // default options\n\t        var defaultOption = {\n\t            element: document.getElementsByClassName('dplayer')[0],\n\t            autoplay: false,\n\t            theme: '#b7daff',\n\t            loop: false,\n\t            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n\t            screenshot: false,\n\t            hotkey: true,\n\t            preload: 'auto'\n\t        };\n\t        for (var defaultKey in defaultOption) {\n\t            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n\t                this.option[defaultKey] = defaultOption[defaultKey];\n\t            }\n\t        }\n\t\n\t        var tranZH = {\n\t            'Danmaku is loading': '弹幕加载中',\n\t            'Top': '顶部',\n\t            'Bottom': '底部',\n\t            'Rolling': '滚动',\n\t            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n\t            'About author': '关于作者',\n\t            'DPlayer feedback': '播放器意见反馈',\n\t            'About DPlayer': '关于 DPlay 播放器',\n\t            'Loop': '洗脑循环',\n\t            'Speed': '速度',\n\t            'Opacity for danmaku': '弹幕透明度',\n\t            'Normal': '正常',\n\t            'Please input danmaku!': '要输入弹幕内容啊喂!',\n\t            'Set danmaku color': '设置弹幕颜色',\n\t            'Set danmaku type': '设置弹幕类型',\n\t            'Danmaku': '弹幕'\n\t        };\n\t        var getTran = function getTran(text) {\n\t            if (_this.option.lang === 'en') {\n\t                return text;\n\t            } else if (_this.option.lang === 'zh') {\n\t                return tranZH[text];\n\t            }\n\t        };\n\t\n\t        /**\n\t         * Update progress bar, including loading progress bar and play progress bar\n\t         *\n\t         * @param {String} type - Point out which bar it is, should be played loaded or volume\n\t         * @param {Number} percentage\n\t         * @param {String} direction - Point out the direction of this bar, Should be height or width\n\t         */\n\t        this.updateBar = function (type, percentage, direction) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n\t        };\n\t\n\t        // define DPlayer events\n\t        var eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n\t        this.event = {};\n\t        for (var i = 0; i < eventTypes.length; i++) {\n\t            this.event[eventTypes[i]] = [];\n\t        }\n\t        this.trigger = function (type) {\n\t            for (var _i = 0; _i < _this.event[type].length; _i++) {\n\t                _this.event[type][_i]();\n\t            }\n\t        };\n\t\n\t        this.element = this.option.element;\n\t        if (!this.option.danmaku) {\n\t            this.element.classList.add('dplayer-no-danmaku');\n\t        }\n\t\n\t        this.element.innerHTML = \"\\n            <div class=\\\"dplayer-mask\\\"></div>\\n            <div class=\\\"dplayer-video-wrap\\\">\\n                <video class=\\\"dplayer-video\\\" \" + (this.option.video.pic ? \"poster=\\\"\" + this.option.video.pic + \"\\\"\" : \"\") + \" webkit-playsinline \" + (this.option.screenshot ? \"crossorigin=\\\"anonymous\\\"\" : \"\") + \" preload=\\\"\" + this.option.preload + \"\\\" src=\\\"\" + this.option.video.url + \"\\\"></video>\\n                <div class=\\\"dplayer-danmaku\\\">\\n                    <div class=\\\"dplayer-danmaku-item dplayer-danmaku-item--demo\\\"></div>\\n                </div>\\n                <div class=\\\"dplayer-bezel\\\">\\n                    <span class=\\\"dplayer-bezel-icon\\\"></span>\\n                    \" + (this.option.danmaku ? \"<span class=\\\"dplayer-danloading\\\">\" + getTran('Danmaku is loading') + \"</span>\" : \"\") + \"\\n                    <span class=\\\"diplayer-loading-icon\\\">\\n                        <svg height=\\\"100%\\\" version=\\\"1.1\\\" viewBox=\\\"0 0 22 22\\\" width=\\\"100%\\\">\\n                            <svg x=\\\"7\\\" y=\\\"1\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-0\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-1\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"13\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-2\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"11\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-3\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"7\\\" y=\\\"13\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-4\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"11\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-5\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"1\\\" y=\\\"7\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-6\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                            <svg x=\\\"3\\\" y=\\\"3\\\">\\n                                <circle class=\\\"diplayer-loading-dot diplayer-loading-dot-7\\\" cx=\\\"4\\\" cy=\\\"4\\\" r=\\\"2\\\"></circle>\\n                            </svg>\\n                        </svg>\\n                    </span>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-controller-mask\\\"></div>\\n            <div class=\\\"dplayer-controller\\\">\\n                <div class=\\\"dplayer-icons dplayer-icons-left\\\">\\n                    <button class=\\\"dplayer-icon dplayer-play-icon\\\">\" + this.getSVG('play') + (\"     </button>\\n                    <div class=\\\"dplayer-volume\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \">\\n                        <button class=\\\"dplayer-icon dplayer-volume-icon\\\">\") + this.getSVG('volume-down') + (\"         </button>\\n                        <div class=\\\"dplayer-volume-bar-wrap\\\">\\n                            <div class=\\\"dplayer-volume-bar\\\">\\n                                <div class=\\\"dplayer-volume-bar-inner\\\" style=\\\"width: 70%; background: \" + this.option.theme + \";\\\">\\n                                    <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\\n                    <span class=\\\"dplayer-time\\\"><span class=\\\"dplayer-ptime\\\">0:00</span> / <span class=\\\"dplayer-dtime\\\">0:00</span></span>\\n                </div>\\n                <div class=\\\"dplayer-icons dplayer-icons-right\\\">\\n                    \" + (this.option.screenshot ? \"\\n                    <a href=\\\"#\\\" class=\\\"dplayer-icon dplayer-camera-icon\\\" \" + (isMobile ? 'style=\"display: none;\"' : '') + \"dplayer-volume>\" + this.getSVG('camera') + \"     </a>\\n                    \" : \"\") + \"\\n                    <div class=\\\"dplayer-comment\\\">\\n                        <button class=\\\"dplayer-icon dplayer-comment-icon\\\">\") + this.getSVG('comment') + \"         </button>\\n                        <div class=\\\"dplayer-comment-box\\\">\\n                            <button class=\\\"dplayer-icon dplayer-comment-setting-icon\\\">\" + this.getSVG('menu') + (\"             </button>\\n                            <div class=\\\"dplayer-comment-setting-box\\\">\\n                                <div class=\\\"dplayer-comment-setting-color\\\">\\n                                   <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku color') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#fff\\\" checked>\\n                                        <span style=\\\"background: #fff; border: 1px solid rgba(0,0,0,.1);\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#e54256\\\">\\n                                        <span style=\\\"background: #e54256\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#ffe133\\\">\\n                                        <span style=\\\"background: #ffe133\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#64DD17\\\">\\n                                        <span style=\\\"background: #64DD17\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#39ccff\\\">\\n                                        <span style=\\\"background: #39ccff\\\"></span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-color-\" + index + \"\\\" value=\\\"#D500F9\\\">\\n                                        <span style=\\\"background: #D500F9\\\"></span>\\n                                    </label>\\n                                </div>\\n                                <div class=\\\"dplayer-comment-setting-type\\\">\\n                                    <div class=\\\"dplayer-comment-setting-title\\\">\" + getTran('Set danmaku type') + \"</div>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"top\\\">\\n                                        <span>\" + getTran('Top') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"right\\\" checked>\\n                                        <span>\" + getTran('Rolling') + \"</span>\\n                                    </label>\\n                                    <label>\\n                                        <input type=\\\"radio\\\" name=\\\"dplayer-danmaku-type-\" + index + \"\\\" value=\\\"bottom\\\">\\n                                        <span>\" + getTran('Bottom') + \"</span>\\n                                    </label>\\n                                </div>\\n                            </div>\\n                            <input class=\\\"dplayer-comment-input\\\" type=\\\"text\\\" placeholder=\\\"\" + getTran('Input danmaku, hit Enter') + \"\\\" maxlength=\\\"30\\\">\\n                            <button class=\\\"dplayer-icon dplayer-send-icon\\\">\") + this.getSVG('send') + \"             </button>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting\\\">\\n                        <button class=\\\"dplayer-icon dplayer-setting-icon\\\">\" + this.getSVG('setting') + \"         </button>\\n                        <div class=\\\"dplayer-setting-box\\\"></div>\\n                    </div>\\n                    <button class=\\\"dplayer-icon dplayer-full-icon\\\">\" + this.getSVG('full') + (\"     </button>\\n                </div>\\n                <div class=\\\"dplayer-bar-wrap\\\">\\n                    <div class=\\\"dplayer-bar\\\">\\n                        <div class=\\\"dplayer-loaded\\\" style=\\\"width: 0;\\\"></div>\\n                        <div class=\\\"dplayer-played\\\" style=\\\"width: 0; background: \" + this.option.theme + \"\\\">\\n                            <span class=\\\"dplayer-thumb\\\" style=\\\"background: \" + this.option.theme + \"\\\"></span>\\n                        </div>\\n                    </div>\\n                </div>\\n            </div>\\n            <div class=\\\"dplayer-menu\\\">\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"http://diygod.me/\\\">\" + getTran('About author') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer/issues\\\">\" + getTran('DPlayer feedback') + \"</a></span></div>\\n                <div class=\\\"dplayer-menu-item\\\"><span class=\\\"dplayer-menu-label\\\"><a target=\\\"_blank\\\" href=\\\"https://github.com/DIYgod/DPlayer\\\">\" + getTran('About DPlayer') + \"</a></span></div>\\n            </div>\\n        \");\n\t\n\t        // arrow style\n\t        var arrow = this.element.offsetWidth <= 500;\n\t        if (arrow) {\n\t            var arrowStyle = document.createElement('style');\n\t            arrowStyle.innerHTML = \".dplayer .dplayer-danmaku{font-size:18px}\";\n\t            document.head.appendChild(arrowStyle);\n\t        }\n\t\n\t        // get this video object\n\t        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\t\n\t        // Support HTTP Live Streaming\n\t        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n\t            (function () {\n\t                _this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n\t                var hls = new Hls();\n\t                hls.attachMedia(_this.video);\n\t                hls.on(Hls.Events.MEDIA_ATTACHED, function () {\n\t                    hls.loadSource(_this.option.video.url);\n\t                    hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n\t                        console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n\t                    });\n\t                });\n\t            })();\n\t        }\n\t\n\t        // Support FLV\n\t        if (this.option.video.url.match(/(flv)$/i) && flvjs.isSupported()) {\n\t            var flvPlayer = flvjs.createPlayer({\n\t                type: 'flv',\n\t                url: this.option.video.url\n\t            });\n\t            flvPlayer.attachMediaElement(this.video);\n\t            flvPlayer.load();\n\t        }\n\t\n\t        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n\t        this.bezel.addEventListener('animationend', function () {\n\t            _this.bezel.classList.remove('dplayer-bezel-transition');\n\t        });\n\t\n\t        // play and pause button\n\t        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n\t        this.shouldpause = true;\n\t        this.playButton.addEventListener('click', function () {\n\t            _this.toggle();\n\t        });\n\t\n\t        var videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n\t        var conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n\t        if (!isMobile) {\n\t            videoWrap.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t            conMask.addEventListener('click', function () {\n\t                _this.toggle();\n\t            });\n\t        } else {\n\t            var toggleController = function toggleController() {\n\t                if (_this.element.classList.contains('dplayer-hide-controller')) {\n\t                    _this.element.classList.remove('dplayer-hide-controller');\n\t                } else {\n\t                    _this.element.classList.add('dplayer-hide-controller');\n\t                }\n\t            };\n\t            videoWrap.addEventListener('click', toggleController);\n\t            conMask.addEventListener('click', toggleController);\n\t        }\n\t\n\t        /**\n\t         * Parse second to 00:00 format\n\t         *\n\t         * @param {Number} second\n\t         * @return {String} 00:00 format\n\t         */\n\t        var secondToTime = function secondToTime(second) {\n\t            var add0 = function add0(num) {\n\t                return num < 10 ? '0' + num : '' + num;\n\t            };\n\t            var min = parseInt(second / 60);\n\t            var sec = parseInt(second - min * 60);\n\t            return add0(min) + ':' + add0(sec);\n\t        };\n\t\n\t        /**\n\t         * control play progress\n\t         */\n\t        // get element's view position\n\t        var getElementViewLeft = function getElementViewLeft(element) {\n\t            var actualLeft = element.offsetLeft;\n\t            var current = element.offsetParent;\n\t            var elementScrollLeft = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualLeft += current.offsetLeft;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n\t            return actualLeft - elementScrollLeft;\n\t        };\n\t\n\t        var getElementViewTop = function getElementViewTop(element) {\n\t            var actualTop = element.offsetTop;\n\t            var current = element.offsetParent;\n\t            var elementScrollTop = void 0;\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                while (current !== null) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            } else {\n\t                while (current !== null && current !== _this.element) {\n\t                    actualTop += current.offsetTop;\n\t                    current = current.offsetParent;\n\t                }\n\t            }\n\t            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n\t            return actualTop - elementScrollTop;\n\t        };\n\t\n\t        var bar = {};\n\t        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n\t        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n\t        var pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n\t        var barWidth = void 0;\n\t\n\t        if (this.option.danmaku) {\n\t            this.video.addEventListener('seeking', function () {\n\t                for (var _i2 = 0; _i2 < _this.dan.length; _i2++) {\n\t                    if (_this.dan[_i2].time >= _this.video.currentTime) {\n\t                        _this.danIndex = _i2;\n\t                        return;\n\t                    }\n\t                    _this.danIndex = _this.dan.length;\n\t                }\n\t            });\n\t        }\n\t\n\t        var lastPlayPos = 0;\n\t        var currentPlayPos = 0;\n\t        var bufferingDetected = false;\n\t        var danmakuTime = void 0;\n\t        this.setTime = function () {\n\t            _this.playedTime = setInterval(function () {\n\t                // whether the video is buffering\n\t                currentPlayPos = _this.video.currentTime;\n\t                if (!bufferingDetected && currentPlayPos < lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.add('dplayer-loading');\n\t                    bufferingDetected = true;\n\t                }\n\t                if (bufferingDetected && currentPlayPos > lastPlayPos + 0.01 && !_this.video.paused) {\n\t                    _this.element.classList.remove('dplayer-loading');\n\t                    bufferingDetected = false;\n\t                }\n\t                lastPlayPos = currentPlayPos;\n\t\n\t                _this.updateBar('played', _this.video.currentTime / _this.video.duration, 'width');\n\t                _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(_this.video.currentTime);\n\t                _this.trigger('playing');\n\t            }, 100);\n\t            if (_this.option.danmaku) {\n\t                danmakuTime = setInterval(function () {\n\t                    var item = _this.dan[_this.danIndex];\n\t                    while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                        danmakuIn(item.text, item.color, item.type);\n\t                        item = _this.dan[++_this.danIndex];\n\t                    }\n\t                }, 0);\n\t            }\n\t        };\n\t        this.clearTime = function () {\n\t            clearInterval(_this.playedTime);\n\t            if (_this.option.danmaku) {\n\t                clearInterval(danmakuTime);\n\t            }\n\t        };\n\t\n\t        pbar.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            barWidth = pbar.clientWidth;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t        });\n\t\n\t        var thumbMove = function thumbMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            _this.updateBar('played', percentage, 'width');\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * _this.video.duration);\n\t        };\n\t\n\t        var thumbUp = function thumbUp() {\n\t            document.removeEventListener('mouseup', thumbUp);\n\t            document.removeEventListener('mousemove', thumbMove);\n\t            _this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * _this.video.duration;\n\t            _this.setTime();\n\t        };\n\t\n\t        pbar.addEventListener('mousedown', function () {\n\t            barWidth = pbar.clientWidth;\n\t            _this.clearTime();\n\t            document.addEventListener('mousemove', thumbMove);\n\t            document.addEventListener('mouseup', thumbUp);\n\t        });\n\t\n\t        /**\n\t         * control volume\n\t         */\n\t        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n\t        var volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n\t        var volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n\t        var volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n\t        var volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t        var vWidth = 35;\n\t\n\t        this.switchVolumeIcon = function () {\n\t            var volumeicon = _this.element.getElementsByClassName('dplayer-volume-icon')[0];\n\t            if (_this.video.volume >= 0.8) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-up');\n\t            } else if (_this.video.volume > 0) {\n\t                volumeicon.innerHTML = _this.getSVG('volume-down');\n\t            } else {\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t            }\n\t        };\n\t        var volumeMove = function volumeMove(event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        };\n\t        var volumeUp = function volumeUp() {\n\t            document.removeEventListener('mouseup', volumeUp);\n\t            document.removeEventListener('mousemove', volumeMove);\n\t            volumeEle.classList.remove('dplayer-volume-active');\n\t        };\n\t\n\t        volumeBarWrapWrap.addEventListener('click', function (event) {\n\t            var e = event || window.event;\n\t            var percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n\t            _this.volume(percentage);\n\t        });\n\t        volumeBarWrapWrap.addEventListener('mousedown', function () {\n\t            document.addEventListener('mousemove', volumeMove);\n\t            document.addEventListener('mouseup', volumeUp);\n\t            volumeEle.classList.add('dplayer-volume-active');\n\t        });\n\t        volumeicon.addEventListener('click', function () {\n\t            if (_this.video.muted) {\n\t                _this.video.muted = false;\n\t                _this.switchVolumeIcon();\n\t                _this.updateBar('volume', _this.video.volume, 'width');\n\t            } else {\n\t                _this.video.muted = true;\n\t                volumeicon.innerHTML = _this.getSVG('volume-off');\n\t                _this.updateBar('volume', 0, 'width');\n\t            }\n\t        });\n\t\n\t        /**\n\t         * auto hide controller\n\t         */\n\t        var hideTime = 0;\n\t        if (!isMobile) {\n\t            var hideController = function hideController() {\n\t                _this.element.classList.remove('dplayer-hide-controller');\n\t                clearTimeout(hideTime);\n\t                hideTime = setTimeout(function () {\n\t                    if (_this.video.played.length) {\n\t                        _this.element.classList.add('dplayer-hide-controller');\n\t                        closeSetting();\n\t                        closeComment();\n\t                    }\n\t                }, 2000);\n\t            };\n\t            this.element.addEventListener('mousemove', hideController);\n\t            this.element.addEventListener('click', hideController);\n\t        }\n\t\n\t        /***\n\t         * setting\n\t         */\n\t        var danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n\t        var settingHTML = {\n\t            'original': \"\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-speed\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Speed') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\" + this.getSVG('right') + (\"     </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-loop\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Loop') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-toggle-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle\\\">\\n                            <label for=\\\"dplayer-toggle\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-showdan\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Danmaku') + \"</span>\\n                        <div class=\\\"dplayer-toggle\\\">\\n                            <input class=\\\"dplayer-showdan-setting-input\\\" type=\\\"checkbox\\\" name=\\\"dplayer-toggle-dan\\\">\\n                            <label for=\\\"dplayer-toggle-dan\\\"></label>\\n                        </div>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-item dplayer-setting-danmaku\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Opacity for danmaku') + \"</span>\\n                        <div class=\\\"dplayer-danmaku-bar-wrap\\\">\\n                            <div class=\\\"dplayer-danmaku-bar\\\">\\n                                <div class=\\\"dplayer-danmaku-bar-inner\\\" style=\\\"width: \" + danOpacity * 100 + \"%\\\">\\n                                    <span class=\\\"dplayer-thumb\\\"></span>\\n                                </div>\\n                            </div>\\n                        </div>\\n                    </div>\"),\n\t            'speed': \"\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.5\\\">\\n                        <span class=\\\"dplayer-label\\\">0.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"0.75\\\">\\n                        <span class=\\\"dplayer-label\\\">0.75</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1\\\">\\n                        <span class=\\\"dplayer-label\\\">\" + getTran('Normal') + \"</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.25\\\">\\n                        <span class=\\\"dplayer-label\\\">1.25</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"1.5\\\">\\n                        <span class=\\\"dplayer-label\\\">1.5</span>\\n                    </div>\\n                    <div class=\\\"dplayer-setting-speed-item\\\" data-speed=\\\"2\\\">\\n                        <span class=\\\"dplayer-label\\\">2</span>\\n                    </div>\"\n\t        };\n\t\n\t        // toggle setting box\n\t        var settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n\t        var settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n\t        var mask = this.element.getElementsByClassName('dplayer-mask')[0];\n\t        settingBox.innerHTML = settingHTML.original;\n\t\n\t        var closeSetting = function closeSetting() {\n\t            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n\t                settingBox.classList.remove('dplayer-setting-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                setTimeout(function () {\n\t                    settingBox.classList.remove('dplayer-setting-box-narrow');\n\t                    settingBox.innerHTML = settingHTML.original;\n\t                    settingEvent();\n\t                }, 300);\n\t            }\n\t        };\n\t        var openSetting = function openSetting() {\n\t            settingBox.classList.add('dplayer-setting-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeSetting();\n\t        });\n\t        settingIcon.addEventListener('click', function () {\n\t            openSetting();\n\t        });\n\t\n\t        var loop = this.option.loop;\n\t        var danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n\t        var showdan = true;\n\t        var settingEvent = function settingEvent() {\n\t            // loop control\n\t            var loopEle = _this.element.getElementsByClassName('dplayer-setting-loop')[0];\n\t            var loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\t\n\t            loopToggle.checked = loop;\n\t\n\t            loopEle.addEventListener('click', function () {\n\t                loopToggle.checked = !loopToggle.checked;\n\t                if (loopToggle.checked) {\n\t                    loop = true;\n\t                    _this.video.loop = loop;\n\t                } else {\n\t                    loop = false;\n\t                    _this.video.loop = loop;\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // show danmaku control\n\t            var showDanEle = _this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n\t            var showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\t\n\t            showDanToggle.checked = showdan;\n\t\n\t            showDanEle.addEventListener('click', function () {\n\t                showDanToggle.checked = !showDanToggle.checked;\n\t                if (showDanToggle.checked) {\n\t                    showdan = true;\n\t                    if (_this.option.danmaku) {\n\t                        for (var _i3 = 0; _i3 < _this.dan.length; _i3++) {\n\t                            if (_this.dan[_i3].time >= _this.video.currentTime) {\n\t                                _this.danIndex = _i3;\n\t                                break;\n\t                            }\n\t                            _this.danIndex = _this.dan.length;\n\t                        }\n\t                        danmakuTime = setInterval(function () {\n\t                            var item = _this.dan[_this.danIndex];\n\t                            while (item && _this.video.currentTime >= parseFloat(item.time)) {\n\t                                danmakuIn(item.text, item.color, item.type);\n\t                                item = _this.dan[++_this.danIndex];\n\t                            }\n\t                        }, 0);\n\t                    }\n\t                } else {\n\t                    showdan = false;\n\t                    if (_this.option.danmaku) {\n\t                        clearInterval(danmakuTime);\n\t                        danContainer.innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                        _this.danTunnel = {\n\t                            right: {},\n\t                            top: {},\n\t                            bottom: {}\n\t                        };\n\t                        _this.itemDemo = _this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t                    }\n\t                }\n\t                closeSetting();\n\t            });\n\t\n\t            // speed control\n\t            var speedEle = _this.element.getElementsByClassName('dplayer-setting-speed')[0];\n\t            speedEle.addEventListener('click', function () {\n\t                settingBox.classList.add('dplayer-setting-box-narrow');\n\t                settingBox.innerHTML = settingHTML.speed;\n\t\n\t                var speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n\t\n\t                var _loop = function _loop(_i4) {\n\t                    speedItem[_i4].addEventListener('click', function () {\n\t                        _this.video.playbackRate = speedItem[_i4].dataset.speed;\n\t                        closeSetting();\n\t                    });\n\t                };\n\t\n\t                for (var _i4 = 0; _i4 < speedItem.length; _i4++) {\n\t                    _loop(_i4);\n\t                }\n\t            });\n\t\n\t            if (_this.option.danmaku) {\n\t                (function () {\n\t                    // danmaku opacity\n\t                    bar.danmakuBar = _this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n\t                    var danmakuBarWrapWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n\t                    var danmakuBarWrap = _this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n\t                    var danmakuSettingBox = _this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n\t                    var dWidth = 130;\n\t                    _this.updateBar('danmaku', danOpacity, 'width');\n\t\n\t                    var danmakuMove = function danmakuMove(event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i5 = 0; _i5 < items.length; _i5++) {\n\t                            items[_i5].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    };\n\t                    var danmakuUp = function danmakuUp() {\n\t                        document.removeEventListener('mouseup', danmakuUp);\n\t                        document.removeEventListener('mousemove', danmakuMove);\n\t                        danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n\t                    };\n\t\n\t                    danmakuBarWrapWrap.addEventListener('click', function (event) {\n\t                        var e = event || window.event;\n\t                        var percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n\t                        percentage = percentage > 0 ? percentage : 0;\n\t                        percentage = percentage < 1 ? percentage : 1;\n\t                        _this.updateBar('danmaku', percentage, 'width');\n\t                        var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t                        for (var _i6 = 0; _i6 < items.length; _i6++) {\n\t                            items[_i6].style.opacity = percentage;\n\t                        }\n\t                        danOpacity = percentage;\n\t                        localStorage.setItem('DPlayer-opacity', danOpacity);\n\t                    });\n\t                    danmakuBarWrapWrap.addEventListener('mousedown', function () {\n\t                        document.addEventListener('mousemove', danmakuMove);\n\t                        document.addEventListener('mouseup', danmakuUp);\n\t                        danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n\t                    });\n\t                })();\n\t            }\n\t        };\n\t        settingEvent();\n\t\n\t        /**\n\t         * video events\n\t         */\n\t        // show video time: the metadata has loaded or changed\n\t        this.video.addEventListener('durationchange', function () {\n\t            if (_this.video.duration !== 1) {\n\t                // compatibility: Android browsers will output 1 at first\n\t                _this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(_this.video.duration);\n\t            }\n\t        });\n\t\n\t        // show video loaded bar: to inform interested parties of progress downloading the media\n\t        this.video.addEventListener('progress', function () {\n\t            var percentage = _this.video.buffered.length ? _this.video.buffered.end(_this.video.buffered.length - 1) / _this.video.duration : 0;\n\t            _this.updateBar('loaded', percentage, 'width');\n\t        });\n\t\n\t        // video download error: an error occurs\n\t        this.video.addEventListener('error', function () {\n\t            _this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = \"Error happens ╥﹏╥\";\n\t            _this.trigger('pause');\n\t        });\n\t\n\t        // video can play: enough data is available that the media can be played\n\t        this.video.addEventListener('canplay', function () {\n\t            _this.trigger('canplay');\n\t        });\n\t\n\t        // music end\n\t        this.ended = false;\n\t        this.video.addEventListener('ended', function () {\n\t            _this.updateBar('played', 1, 'width');\n\t            if (!loop) {\n\t                _this.ended = true;\n\t                _this.pause();\n\t                _this.trigger('ended');\n\t            }\n\t        });\n\t\n\t        // control volume\n\t        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\t\n\t        // loop\n\t        this.video.loop = loop;\n\t\n\t        // set duration time\n\t        if (this.video.duration !== 1) {\n\t            // compatibility: Android browsers will output 1 at first\n\t            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n\t        }\n\t\n\t        /**\n\t         * danmaku display\n\t         */\n\t        var itemHeight = arrow ? 24 : 30;\n\t        var danWidth = void 0;\n\t        var danHeight = void 0;\n\t        var itemY = void 0;\n\t        this.danTunnel = {\n\t            right: {},\n\t            top: {},\n\t            bottom: {}\n\t        };\n\t\n\t        var danItemRight = function danItemRight(ele) {\n\t            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n\t        };\n\t\n\t        var danSpeed = function danSpeed(width) {\n\t            return (danWidth + width) / 5;\n\t        };\n\t\n\t        var getTunnel = function getTunnel(ele, type, width) {\n\t            var tmp = danWidth / danSpeed(width);\n\t\n\t            var _loop2 = function _loop2(_i7) {\n\t                var item = _this.danTunnel[type][_i7 + ''];\n\t                if (item && item.length) {\n\t                    for (var j = 0; j < item.length; j++) {\n\t                        var danRight = danItemRight(item[j]) - 10;\n\t                        if (danRight <= danWidth - tmp * danSpeed(item[j].offsetWidth) || danRight <= 0) {\n\t                            break;\n\t                        }\n\t                        if (j === item.length - 1) {\n\t                            _this.danTunnel[type][_i7 + ''].push(ele);\n\t                            ele.addEventListener('animationend', function () {\n\t                                _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                            });\n\t                            return {\n\t                                v: _i7 % itemY\n\t                            };\n\t                        }\n\t                    }\n\t                } else {\n\t                    _this.danTunnel[type][_i7 + ''] = [ele];\n\t                    ele.addEventListener('animationend', function () {\n\t                        _this.danTunnel[type][_i7 + ''].splice(0, 1);\n\t                    });\n\t                    return {\n\t                        v: _i7 % itemY\n\t                    };\n\t                }\n\t            };\n\t\n\t            for (var _i7 = 0;; _i7++) {\n\t                var _ret4 = _loop2(_i7);\n\t\n\t                if ((typeof _ret4 === \"undefined\" ? \"undefined\" : _typeof(_ret4)) === \"object\") return _ret4.v;\n\t            }\n\t        };\n\t\n\t        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t        var danmakuIn = function danmakuIn(text, color, type) {\n\t            danWidth = danContainer.offsetWidth;\n\t            danHeight = danContainer.offsetHeight;\n\t            itemY = parseInt(danHeight / itemHeight);\n\t            var item = document.createElement(\"div\");\n\t            item.classList.add(\"dplayer-danmaku-item\");\n\t            item.classList.add(\"dplayer-danmaku-\" + type);\n\t            item.innerHTML = text;\n\t            item.style.opacity = danOpacity;\n\t            item.style.color = color;\n\t            item.addEventListener('animationend', function () {\n\t                danContainer.removeChild(item);\n\t            });\n\t\n\t            // measure\n\t            _this.itemDemo.innerHTML = text;\n\t            var itemWidth = _this.itemDemo.offsetWidth;\n\t\n\t            // adjust\n\t            switch (type) {\n\t                case 'right':\n\t                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n\t                    item.style.width = itemWidth + 1 + 'px';\n\t                    item.style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t                    break;\n\t                case 'top':\n\t                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                case 'bottom':\n\t                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n\t                    break;\n\t                default:\n\t                    console.error(\"Can't handled danmaku type: \" + type);\n\t            }\n\t\n\t            // insert\n\t            danContainer.appendChild(item);\n\t\n\t            // move\n\t            item.classList.add(\"dplayer-danmaku-move\");\n\t\n\t            return item;\n\t        };\n\t\n\t        // danmaku\n\t        if (this.option.danmaku) {\n\t            (function () {\n\t                _this.danIndex = 0;\n\t                var xhr = new XMLHttpRequest();\n\t                xhr.onreadystatechange = function () {\n\t                    if (xhr.readyState === 4) {\n\t                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                            (function () {\n\t                                var response = JSON.parse(xhr.responseText);\n\t                                if (response.code !== 1) {\n\t                                    alert(response.msg);\n\t                                } else {\n\t                                    if (_this.option.danmaku.addition) {\n\t                                        xhr.onreadystatechange = function () {\n\t                                            if (xhr.readyState === 4) {\n\t                                                if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                    var response2 = JSON.parse(xhr.responseText);\n\t                                                    if (response2.code !== 1) {\n\t                                                        alert(response2.msg);\n\t                                                    } else {\n\t                                                        _this.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                            return a.time - b.time;\n\t                                                        });\n\t                                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                        // autoplay\n\t                                                        if (_this.option.autoplay && !isMobile) {\n\t                                                            _this.play();\n\t                                                        } else if (isMobile) {\n\t                                                            _this.pause();\n\t                                                        }\n\t                                                    }\n\t                                                } else {\n\t                                                    console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                }\n\t                                            }\n\t                                        };\n\t                                        xhr.open('get', _this.option.danmaku.addition[0], true);\n\t                                        xhr.send(null);\n\t                                    } else {\n\t                                        _this.dan = response.danmaku.sort(function (a, b) {\n\t                                            return a.time - b.time;\n\t                                        });\n\t                                        _this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                        // autoplay\n\t                                        if (_this.option.autoplay && !isMobile) {\n\t                                            _this.play();\n\t                                        } else if (isMobile) {\n\t                                            _this.pause();\n\t                                        }\n\t                                    }\n\t                                }\n\t                            })();\n\t                        } else {\n\t                            console.log('Request was unsuccessful: ' + xhr.status);\n\t                        }\n\t                    }\n\t                };\n\t                var apiurl = void 0;\n\t                if (_this.option.danmaku.maximum) {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id + \"&max=\" + _this.option.danmaku.maximum;\n\t                } else {\n\t                    apiurl = _this.option.danmaku.api + \"?id=\" + _this.option.danmaku.id;\n\t                }\n\t                xhr.open('get', apiurl, true);\n\t                xhr.send(null);\n\t            })();\n\t        } else {\n\t            // autoplay\n\t            if (this.option.autoplay && !isMobile) {\n\t                this.play();\n\t            } else if (isMobile) {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * comment\n\t         */\n\t        var commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n\t        var commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n\t        var commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n\t        var commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n\t        var commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n\t        var commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\t\n\t        var htmlEncode = function htmlEncode(str) {\n\t            return str.replace(/&/g, \"&amp;\").replace(/</g, \"&lt;\").replace(/>/g, \"&gt;\").replace(/\"/g, \"&quot;\").replace(/'/g, \"&#x27;\").replace(/\\//g, \"&#x2f;\");\n\t        };\n\t\n\t        var sendComment = function sendComment() {\n\t            commentInput.blur();\n\t\n\t            // text can't be empty\n\t            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n\t                alert(getTran('Please input danmaku!'));\n\t                return;\n\t            }\n\t\n\t            var danmakuData = {\n\t                token: _this.option.danmaku.token,\n\t                player: _this.option.danmaku.id,\n\t                author: 'DIYgod',\n\t                time: _this.video.currentTime,\n\t                text: commentInput.value,\n\t                color: _this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n\t                type: _this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n\t            };\n\t            var xhr = new XMLHttpRequest();\n\t            xhr.onreadystatechange = function () {\n\t                if (xhr.readyState === 4) {\n\t                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                        var response = JSON.parse(xhr.responseText);\n\t                        if (response.code !== 1) {\n\t                            alert(response.msg);\n\t                        } else {\n\t                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n\t                        }\n\t                    } else {\n\t                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                    }\n\t                }\n\t            };\n\t            xhr.open('post', _this.option.danmaku.api, true);\n\t            xhr.send(JSON.stringify(danmakuData));\n\t\n\t            commentInput.value = '';\n\t            closeComment();\n\t            _this.dan.splice(_this.danIndex, 0, danmakuData);\n\t            _this.danIndex++;\n\t            var item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n\t            item.style.border = \"2px solid \" + _this.option.theme;\n\t        };\n\t\n\t        var closeCommentSetting = function closeCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t        var toggleCommentSetting = function toggleCommentSetting() {\n\t            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n\t                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n\t            } else {\n\t                commentSettingBox.classList.add('dplayer-comment-setting-open');\n\t            }\n\t        };\n\t\n\t        var disableHide = 0;\n\t        var closeComment = function closeComment() {\n\t            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n\t                commentBox.classList.remove('dplayer-comment-box-open');\n\t                mask.classList.remove('dplayer-mask-show');\n\t                clearInterval(disableHide);\n\t                _this.element.classList.remove('dplayer-show-controller');\n\t                closeCommentSetting();\n\t            }\n\t        };\n\t        var openComment = function openComment() {\n\t            commentBox.classList.add('dplayer-comment-box-open');\n\t            mask.classList.add('dplayer-mask-show');\n\t            disableHide = setInterval(function () {\n\t                clearTimeout(hideTime);\n\t            }, 1000);\n\t            _this.element.classList.add('dplayer-show-controller');\n\t        };\n\t\n\t        mask.addEventListener('click', function () {\n\t            closeComment();\n\t        });\n\t        commentIcon.addEventListener('click', function () {\n\t            openComment();\n\t            setTimeout(function () {\n\t                commentInput.focus();\n\t            }, 300);\n\t        });\n\t        commentSettingIcon.addEventListener('click', function () {\n\t            toggleCommentSetting();\n\t        });\n\t\n\t        // comment setting box\n\t        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', function () {\n\t            var sele = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n\t            if (sele) {\n\t                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = _this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n\t            }\n\t        });\n\t\n\t        commentInput.addEventListener('click', function () {\n\t            closeCommentSetting();\n\t        });\n\t        commentInput.addEventListener('keydown', function (e) {\n\t            var event = e || window.event;\n\t            if (event.keyCode === 13) {\n\t                sendComment();\n\t            }\n\t        });\n\t\n\t        commentSendIcon.addEventListener('click', sendComment);\n\t\n\t        /**\n\t         * full screen\n\t         */\n\t        var resetAnimation = function resetAnimation() {\n\t            danWidth = danContainer.offsetWidth;\n\t            var items = _this.element.getElementsByClassName('dplayer-danmaku-item');\n\t            for (var _i8 = 0; _i8 < items.length; _i8++) {\n\t                items[_i8].style.transform = \"translateX(-\" + danWidth + \"px)\";\n\t            }\n\t        };\n\t\n\t        this.element.addEventListener('fullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('mozfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.addEventListener('webkitfullscreenchange', function () {\n\t            resetAnimation();\n\t            console.log(danContainer.offsetHeight);\n\t        });\n\t        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', function () {\n\t            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n\t                if (_this.element.requestFullscreen) {\n\t                    _this.element.requestFullscreen();\n\t                } else if (_this.element.mozRequestFullScreen) {\n\t                    _this.element.mozRequestFullScreen();\n\t                } else if (_this.element.webkitRequestFullscreen) {\n\t                    _this.element.webkitRequestFullscreen();\n\t                }\n\t            } else {\n\t                if (document.cancelFullScreen) {\n\t                    document.cancelFullScreen();\n\t                } else if (document.mozCancelFullScreen) {\n\t                    document.mozCancelFullScreen();\n\t                } else if (document.webkitCancelFullScreen) {\n\t                    document.webkitCancelFullScreen();\n\t                }\n\t            }\n\t            resetAnimation();\n\t        });\n\t\n\t        /**\n\t         * hot key\n\t         */\n\t        var handleKeyDown = function handleKeyDown(e) {\n\t            var tag = document.activeElement.tagName.toUpperCase();\n\t            var editable = document.activeElement.getAttribute('contenteditable');\n\t            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n\t                var event = e || window.event;\n\t                var percentage = void 0;\n\t                switch (event.keyCode) {\n\t                    case 32:\n\t                        event.preventDefault();\n\t                        _this.toggle();\n\t                        break;\n\t                    case 37:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime - 5;\n\t                        break;\n\t                    case 39:\n\t                        event.preventDefault();\n\t                        _this.video.currentTime = _this.video.currentTime + 5;\n\t                        break;\n\t                    case 38:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume + 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                    case 40:\n\t                        event.preventDefault();\n\t                        percentage = _this.video.volume - 0.1;\n\t                        _this.volume(percentage);\n\t                        break;\n\t                }\n\t            }\n\t        };\n\t        if (this.option.hotkey) {\n\t            document.addEventListener('keydown', handleKeyDown);\n\t        }\n\t\n\t        /**\n\t         * right key\n\t         */\n\t        var menu = this.element.getElementsByClassName('dplayer-menu')[0];\n\t        this.element.addEventListener('contextmenu', function (e) {\n\t            var event = e || window.event;\n\t            event.preventDefault();\n\t            menu.style.left = event.clientX - _this.element.getBoundingClientRect().left + 'px';\n\t            menu.style.top = event.clientY - _this.element.getBoundingClientRect().top + 'px';\n\t            menu.classList.add('dplayer-menu-show');\n\t\n\t            mask.classList.add('dplayer-mask-show');\n\t            mask.addEventListener('click', function () {\n\t                mask.classList.remove('dplayer-mask-show');\n\t                menu.classList.remove('dplayer-menu-show');\n\t            });\n\t        });\n\t\n\t        /**\n\t         * Screenshot\n\t         */\n\t        if (this.option.screenshot) {\n\t            (function () {\n\t                var camareIcon = _this.element.getElementsByClassName('dplayer-camera-icon')[0];\n\t                camareIcon.addEventListener('click', function () {\n\t                    var canvas = document.createElement(\"canvas\");\n\t                    canvas.width = _this.video.videoWidth;\n\t                    canvas.height = _this.video.videoHeight;\n\t                    canvas.getContext('2d').drawImage(_this.video, 0, 0, canvas.width, canvas.height);\n\t\n\t                    camareIcon.href = canvas.toDataURL();\n\t                    camareIcon.download = \"DPlayer.png\";\n\t                });\n\t            })();\n\t        }\n\t\n\t        index++;\n\t    }\n\t\n\t    /**\n\t     * Play music\n\t     */\n\t\n\t\n\t    _createClass(DPlayer, [{\n\t        key: \"play\",\n\t        value: function play(time) {\n\t            if (Object.prototype.toString.call(time) === '[object Number]') {\n\t                this.video.currentTime = time;\n\t            }\n\t            if (this.video.paused) {\n\t                this.shouldpause = false;\n\t\n\t                this.bezel.innerHTML = this.getSVG('play');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.playButton.innerHTML = this.getSVG('pause');\n\t\n\t                this.video.play();\n\t                if (this.playedTime) {\n\t                    this.clearTime();\n\t                }\n\t                this.setTime();\n\t                this.element.classList.add('dplayer-playing');\n\t                this.trigger('play');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Pause music\n\t         */\n\t\n\t    }, {\n\t        key: \"pause\",\n\t        value: function pause() {\n\t            if (!this.shouldpause || this.ended) {\n\t                this.shouldpause = true;\n\t                this.element.classList.remove('dplayer-loading');\n\t\n\t                this.bezel.innerHTML = this.getSVG('pause');\n\t                this.bezel.classList.add('dplayer-bezel-transition');\n\t\n\t                this.ended = false;\n\t                this.playButton.innerHTML = this.getSVG('play');\n\t                this.video.pause();\n\t                this.clearTime();\n\t                this.element.classList.remove('dplayer-playing');\n\t                this.trigger('pause');\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Set volume\n\t         */\n\t\n\t    }, {\n\t        key: \"volume\",\n\t        value: function volume(percentage) {\n\t            percentage = percentage > 0 ? percentage : 0;\n\t            percentage = percentage < 1 ? percentage : 1;\n\t            this.updateBar('volume', percentage, 'width');\n\t            this.video.volume = percentage;\n\t            if (this.video.muted) {\n\t                this.video.muted = false;\n\t            }\n\t            this.switchVolumeIcon();\n\t        }\n\t\n\t        /**\n\t         * Toggle between play and pause\n\t         */\n\t\n\t    }, {\n\t        key: \"toggle\",\n\t        value: function toggle() {\n\t            if (this.video.paused) {\n\t                this.play();\n\t            } else {\n\t                this.pause();\n\t            }\n\t        }\n\t\n\t        /**\n\t         * attach event\n\t         */\n\t\n\t    }, {\n\t        key: \"on\",\n\t        value: function on(name, func) {\n\t            if (typeof func === 'function') {\n\t                this.event[name].push(func);\n\t            }\n\t        }\n\t\n\t        /**\n\t         * Switch to a new video\n\t         *\n\t         * @param {Object} video - new video info\n\t         * @param {Object} danmaku - new danmaku info\n\t         */\n\t\n\t    }, {\n\t        key: \"switchVideo\",\n\t        value: function switchVideo(video, danmaku) {\n\t            var _this2 = this;\n\t\n\t            this.video.src = video.url;\n\t            this.video.poster = video.pic ? video.pic : '';\n\t            this.video.currentTime = 0;\n\t            this.pause();\n\t            if (danmaku) {\n\t                (function () {\n\t                    _this2.dan = [];\n\t                    _this2.danIndex = 0;\n\t                    _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n\t                    _this2.updateBar('played', 0, 'width');\n\t                    _this2.updateBar('loaded', 0, 'width');\n\t                    _this2.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n\t                    _this2.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = \"<div class=\\\"dplayer-danmaku-item  dplayer-danmaku-item--demo\\\"></div>\";\n\t                    _this2.danTunnel = {\n\t                        right: {},\n\t                        top: {},\n\t                        bottom: {}\n\t                    };\n\t                    _this2.itemDemo = _this2.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\t\n\t                    var isMobile = /mobile/i.test(window.navigator.userAgent);\n\t                    _this2.option.danmaku = danmaku;\n\t                    var xhr = new XMLHttpRequest();\n\t                    xhr.onreadystatechange = function () {\n\t                        if (xhr.readyState === 4) {\n\t                            if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                (function () {\n\t                                    var response = JSON.parse(xhr.responseText);\n\t                                    if (response.code !== 1) {\n\t                                        alert(response.msg);\n\t                                    } else {\n\t                                        if (_this2.option.danmaku.addition) {\n\t                                            xhr.onreadystatechange = function () {\n\t                                                if (xhr.readyState === 4) {\n\t                                                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n\t                                                        var response2 = JSON.parse(xhr.responseText);\n\t                                                        if (response2.code !== 1) {\n\t                                                            alert(response2.msg);\n\t                                                        } else {\n\t                                                            _this2.danIndex = 0;\n\t                                                            _this2.dan = response.danmaku.concat(response2.danmaku).sort(function (a, b) {\n\t                                                                return a.time - b.time;\n\t                                                            });\n\t                                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                                            // autoplay\n\t                                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                                _this2.play();\n\t                                                            } else if (isMobile) {\n\t                                                                _this2.pause();\n\t                                                            }\n\t                                                        }\n\t                                                    } else {\n\t                                                        console.log('Request was unsuccessful: ' + xhr.status);\n\t                                                    }\n\t                                                }\n\t                                            };\n\t                                            xhr.open('get', _this2.option.danmaku.addition[0], true);\n\t                                            xhr.send(null);\n\t                                        } else {\n\t                                            _this2.danIndex = 0;\n\t                                            _this2.dan = response.danmaku.sort(function (a, b) {\n\t                                                return a.time - b.time;\n\t                                            });\n\t                                            _this2.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\t\n\t                                            // autoplay\n\t                                            if (_this2.option.autoplay && !isMobile) {\n\t                                                _this2.play();\n\t                                            } else if (isMobile) {\n\t                                                _this2.pause();\n\t                                            }\n\t                                        }\n\t                                    }\n\t                                })();\n\t                            } else {\n\t                                console.log('Request was unsuccessful: ' + xhr.status);\n\t                            }\n\t                        }\n\t                    };\n\t                    var apiurl = void 0;\n\t                    if (_this2.option.danmaku.maximum) {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id + \"&max=\" + _this2.option.danmaku.maximum;\n\t                    } else {\n\t                        apiurl = _this2.option.danmaku.api + \"?id=\" + _this2.option.danmaku.id;\n\t                    }\n\t                    xhr.open('get', apiurl, true);\n\t                    xhr.send(null);\n\t                })();\n\t            }\n\t        }\n\t    }]);\n\t\n\t    return DPlayer;\n\t}();\n\t\n\tmodule.exports = DPlayer;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t// style-loader: Adds some css to the DOM by adding a <style> tag\n\t\n\t// load the styles\n\tvar content = __webpack_require__(2);\n\tif(typeof content === 'string') content = [[module.id, content, '']];\n\t// add the styles to the DOM\n\tvar update = __webpack_require__(4)(content, {});\n\tif(content.locals) module.exports = content.locals;\n\t// Hot Module Replacement\n\tif(false) {\n\t\t// When the styles change, update the <style> tags\n\t\tif(!content.locals) {\n\t\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\t\tupdate(newContent);\n\t\t\t});\n\t\t}\n\t\t// When the module is disposed, remove the <style> tags\n\t\tmodule.hot.dispose(function() { update(); });\n\t}\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\texports = module.exports = __webpack_require__(3)();\n\t// imports\n\t\n\t\n\t// module\n\texports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\t\n\t// exports\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\t// css base code, injected by the css-loader\r\n\tmodule.exports = function() {\r\n\t\tvar list = [];\r\n\t\r\n\t\t// return the list of modules as css string\r\n\t\tlist.toString = function toString() {\r\n\t\t\tvar result = [];\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar item = this[i];\r\n\t\t\t\tif(item[2]) {\r\n\t\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.push(item[1]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result.join(\"\");\r\n\t\t};\r\n\t\r\n\t\t// import a list of modules into the list\r\n\t\tlist.i = function(modules, mediaQuery) {\r\n\t\t\tif(typeof modules === \"string\")\r\n\t\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\t\tvar alreadyImportedModules = {};\r\n\t\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\t\tvar id = this[i][0];\r\n\t\t\t\tif(typeof id === \"number\")\r\n\t\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t\t}\r\n\t\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\t\tvar item = modules[i];\r\n\t\t\t\t// skip already imported module\r\n\t\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlist.push(item);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t\treturn list;\r\n\t};\r\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*\r\n\t\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\t\tAuthor Tobias Koppers @sokra\r\n\t*/\r\n\tvar stylesInDom = {},\r\n\t\tmemoize = function(fn) {\r\n\t\t\tvar memo;\r\n\t\t\treturn function () {\r\n\t\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\t\treturn memo;\r\n\t\t\t};\r\n\t\t},\r\n\t\tisOldIE = memoize(function() {\r\n\t\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t\t}),\r\n\t\tgetHeadElement = memoize(function () {\r\n\t\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t\t}),\r\n\t\tsingletonElement = null,\r\n\t\tsingletonCounter = 0,\r\n\t\tstyleElementsInsertedAtTop = [];\r\n\t\r\n\tmodule.exports = function(list, options) {\r\n\t\tif(false) {\r\n\t\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t\t}\r\n\t\r\n\t\toptions = options || {};\r\n\t\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t\t// tags it will allow on a page\r\n\t\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\t\r\n\t\t// By default, add <style> tags to the bottom of <head>.\r\n\t\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\t\r\n\t\tvar styles = listToStyles(list);\r\n\t\taddStylesToDom(styles, options);\r\n\t\r\n\t\treturn function update(newList) {\r\n\t\t\tvar mayRemove = [];\r\n\t\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\t\tvar item = styles[i];\r\n\t\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\t\tdomStyle.refs--;\r\n\t\t\t\tmayRemove.push(domStyle);\r\n\t\t\t}\r\n\t\t\tif(newList) {\r\n\t\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\t\taddStylesToDom(newStyles, options);\r\n\t\t\t}\r\n\t\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tfunction addStylesToDom(styles, options) {\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tif(domStyle) {\r\n\t\t\t\tdomStyle.refs++;\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t\t}\r\n\t\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvar parts = [];\r\n\t\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t\t}\r\n\t\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction listToStyles(list) {\r\n\t\tvar styles = [];\r\n\t\tvar newStyles = {};\r\n\t\tfor(var i = 0; i < list.length; i++) {\r\n\t\t\tvar item = list[i];\r\n\t\t\tvar id = item[0];\r\n\t\t\tvar css = item[1];\r\n\t\t\tvar media = item[2];\r\n\t\t\tvar sourceMap = item[3];\r\n\t\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\t\tif(!newStyles[id])\r\n\t\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\t\telse\r\n\t\t\t\tnewStyles[id].parts.push(part);\r\n\t\t}\r\n\t\treturn styles;\r\n\t}\r\n\t\r\n\tfunction insertStyleElement(options, styleElement) {\r\n\t\tvar head = getHeadElement();\r\n\t\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\t\tif (options.insertAt === \"top\") {\r\n\t\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t\t} else {\r\n\t\t\t\thead.appendChild(styleElement);\r\n\t\t\t}\r\n\t\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t\t} else if (options.insertAt === \"bottom\") {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t} else {\r\n\t\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction removeStyleElement(styleElement) {\r\n\t\tstyleElement.parentNode.removeChild(styleElement);\r\n\t\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\t\tif(idx >= 0) {\r\n\t\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction createStyleElement(options) {\r\n\t\tvar styleElement = document.createElement(\"style\");\r\n\t\tstyleElement.type = \"text/css\";\r\n\t\tinsertStyleElement(options, styleElement);\r\n\t\treturn styleElement;\r\n\t}\r\n\t\r\n\tfunction createLinkElement(options) {\r\n\t\tvar linkElement = document.createElement(\"link\");\r\n\t\tlinkElement.rel = \"stylesheet\";\r\n\t\tinsertStyleElement(options, linkElement);\r\n\t\treturn linkElement;\r\n\t}\r\n\t\r\n\tfunction addStyle(obj, options) {\r\n\t\tvar styleElement, update, remove;\r\n\t\r\n\t\tif (options.singleton) {\r\n\t\t\tvar styleIndex = singletonCounter++;\r\n\t\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t\t} else if(obj.sourceMap &&\r\n\t\t\ttypeof URL === \"function\" &&\r\n\t\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\t\ttypeof Blob === \"function\" &&\r\n\t\t\ttypeof btoa === \"function\") {\r\n\t\t\tstyleElement = createLinkElement(options);\r\n\t\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t\tif(styleElement.href)\r\n\t\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t\t};\r\n\t\t} else {\r\n\t\t\tstyleElement = createStyleElement(options);\r\n\t\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\t\tremove = function() {\r\n\t\t\t\tremoveStyleElement(styleElement);\r\n\t\t\t};\r\n\t\t}\r\n\t\r\n\t\tupdate(obj);\r\n\t\r\n\t\treturn function updateStyle(newObj) {\r\n\t\t\tif(newObj) {\r\n\t\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\t\treturn;\r\n\t\t\t\tupdate(obj = newObj);\r\n\t\t\t} else {\r\n\t\t\t\tremove();\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\t\r\n\tvar replaceText = (function () {\r\n\t\tvar textStore = [];\r\n\t\r\n\t\treturn function (index, replacement) {\r\n\t\t\ttextStore[index] = replacement;\r\n\t\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t\t};\r\n\t})();\r\n\t\r\n\tfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\t\tvar css = remove ? \"\" : obj.css;\r\n\t\r\n\t\tif (styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t\t} else {\r\n\t\t\tvar cssNode = document.createTextNode(css);\r\n\t\t\tvar childNodes = styleElement.childNodes;\r\n\t\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\t\tif (childNodes.length) {\r\n\t\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t\t} else {\r\n\t\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction applyToTag(styleElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar media = obj.media;\r\n\t\r\n\t\tif(media) {\r\n\t\t\tstyleElement.setAttribute(\"media\", media)\r\n\t\t}\r\n\t\r\n\t\tif(styleElement.styleSheet) {\r\n\t\t\tstyleElement.styleSheet.cssText = css;\r\n\t\t} else {\r\n\t\t\twhile(styleElement.firstChild) {\r\n\t\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t\t}\r\n\t\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t\t}\r\n\t}\r\n\t\r\n\tfunction updateLink(linkElement, obj) {\r\n\t\tvar css = obj.css;\r\n\t\tvar sourceMap = obj.sourceMap;\r\n\t\r\n\t\tif(sourceMap) {\r\n\t\t\t// http://stackoverflow.com/a/26603875\r\n\t\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t\t}\r\n\t\r\n\t\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\t\r\n\t\tvar oldSrc = linkElement.href;\r\n\t\r\n\t\tlinkElement.href = URL.createObjectURL(blob);\r\n\t\r\n\t\tif(oldSrc)\r\n\t\t\tURL.revokeObjectURL(oldSrc);\r\n\t}\r\n\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** DPlayer.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7d31a2bec8d115f8be0c\n **/","console.log(\"\\n %c DPlayer 1.1.2 %c http://dplayer.js.org \\n\\n\",\"color: #fadfa3; background: #030307; padding:5px 0;\",\"background: #fadfa3; padding:5px 0;\");\n\nrequire('./DPlayer.scss');\n\nlet index = 0;\n\nclass DPlayer {\n    /**\n     * DPlayer constructor function\n     *\n     * @param {Object} option - See README\n     * @constructor\n     */\n    constructor(option) {\n        const svg = {\n            'play': ['0 0 16 32', 'M15.552 15.168q0.448 0.32 0.448 0.832 0 0.448-0.448 0.768l-13.696 8.512q-0.768 0.512-1.312 0.192t-0.544-1.28v-16.448q0-0.96 0.544-1.28t1.312 0.192z'],\n            'pause': ['0 0 17 32', 'M14.080 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048zM2.88 4.8q2.88 0 2.88 2.048v18.24q0 2.112-2.88 2.112t-2.88-2.112v-18.24q0-2.048 2.88-2.048z'],\n            'volume-up': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528zM25.152 16q0 2.72-1.536 5.056t-4 3.36q-0.256 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.704 0.672-1.056 1.024-0.512 1.376-0.8 1.312-0.96 2.048-2.4t0.736-3.104-0.736-3.104-2.048-2.4q-0.352-0.288-1.376-0.8-0.672-0.352-0.672-1.056 0-0.448 0.32-0.8t0.8-0.352q0.224 0 0.48 0.096 2.496 1.056 4 3.36t1.536 5.056zM29.728 16q0 4.096-2.272 7.552t-6.048 5.056q-0.224 0.096-0.448 0.096-0.48 0-0.832-0.352t-0.32-0.8q0-0.64 0.704-1.056 0.128-0.064 0.384-0.192t0.416-0.192q0.8-0.448 1.44-0.896 2.208-1.632 3.456-4.064t1.216-5.152-1.216-5.152-3.456-4.064q-0.64-0.448-1.44-0.896-0.128-0.096-0.416-0.192t-0.384-0.192q-0.704-0.416-0.704-1.056 0-0.448 0.32-0.8t0.832-0.352q0.224 0 0.448 0.096 3.776 1.632 6.048 5.056t2.272 7.552z'],\n            'volume-down': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8zM20.576 16q0 1.344-0.768 2.528t-2.016 1.664q-0.16 0.096-0.448 0.096-0.448 0-0.8-0.32t-0.32-0.832q0-0.384 0.192-0.64t0.544-0.448 0.608-0.384 0.512-0.64 0.192-1.024-0.192-1.024-0.512-0.64-0.608-0.384-0.544-0.448-0.192-0.64q0-0.48 0.32-0.832t0.8-0.32q0.288 0 0.448 0.096 1.248 0.48 2.016 1.664t0.768 2.528z'],\n            'volume-off': ['0 0 21 32', 'M13.728 6.272v19.456q0 0.448-0.352 0.8t-0.8 0.32-0.8-0.32l-5.952-5.952h-4.672q-0.48 0-0.8-0.352t-0.352-0.8v-6.848q0-0.48 0.352-0.8t0.8-0.352h4.672l5.952-5.952q0.32-0.32 0.8-0.32t0.8 0.32 0.352 0.8z'],\n            'loop': ['0 0 32 32', 'M1.882 16.941c0 4.152 3.221 7.529 7.177 7.529v1.882c-4.996 0-9.060-4.222-9.060-9.412s4.064-9.412 9.060-9.412h7.96l-3.098-3.098 1.331-1.331 5.372 5.37-5.37 5.372-1.333-1.333 3.1-3.098h-7.962c-3.957 0-7.177 3.377-7.177 7.529zM22.94 7.529v1.882c3.957 0 7.177 3.377 7.177 7.529s-3.221 7.529-7.177 7.529h-7.962l3.098-3.098-1.331-1.331-5.37 5.37 5.372 5.372 1.331-1.331-3.1-3.1h7.96c4.998 0 9.062-4.222 9.062-9.412s-4.064-9.412-9.060-9.412z'],\n            'full': ['0 0 32 33', 'M6.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v4h4c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333zM30.667 28h-5.333c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h4v-4c0-0.8 0.533-1.333 1.333-1.333s1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM30.667 12c-0.8 0-1.333-0.533-1.333-1.333v-4h-4c-0.8 0-1.333-0.533-1.333-1.333s0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333v5.333c0 0.8-0.533 1.333-1.333 1.333zM1.333 12c-0.8 0-1.333-0.533-1.333-1.333v-5.333c0-0.8 0.533-1.333 1.333-1.333h5.333c0.8 0 1.333 0.533 1.333 1.333s-0.533 1.333-1.333 1.333h-4v4c0 0.8-0.533 1.333-1.333 1.333z'],\n            'setting': ['0 0 32 28', 'M28.633 17.104c0.035 0.21 0.026 0.463-0.026 0.76s-0.14 0.598-0.262 0.904c-0.122 0.306-0.271 0.581-0.445 0.825s-0.367 0.419-0.576 0.524c-0.209 0.105-0.393 0.157-0.55 0.157s-0.332-0.035-0.524-0.105c-0.175-0.052-0.393-0.1-0.655-0.144s-0.528-0.052-0.799-0.026c-0.271 0.026-0.541 0.083-0.812 0.17s-0.502 0.236-0.694 0.445c-0.419 0.437-0.664 0.934-0.734 1.493s0.009 1.092 0.236 1.598c0.175 0.349 0.148 0.699-0.079 1.048-0.105 0.14-0.271 0.284-0.498 0.432s-0.476 0.284-0.747 0.406-0.555 0.218-0.851 0.288c-0.297 0.070-0.559 0.105-0.786 0.105-0.157 0-0.306-0.061-0.445-0.183s-0.236-0.253-0.288-0.393h-0.026c-0.192-0.541-0.52-1.009-0.982-1.402s-1-0.589-1.611-0.589c-0.594 0-1.131 0.197-1.611 0.589s-0.816 0.851-1.009 1.375c-0.087 0.21-0.218 0.362-0.393 0.458s-0.367 0.144-0.576 0.144c-0.244 0-0.52-0.044-0.825-0.131s-0.611-0.197-0.917-0.327c-0.306-0.131-0.581-0.284-0.825-0.458s-0.428-0.349-0.55-0.524c-0.087-0.122-0.135-0.266-0.144-0.432s0.057-0.397 0.197-0.694c0.192-0.402 0.266-0.86 0.223-1.375s-0.266-0.991-0.668-1.428c-0.244-0.262-0.541-0.432-0.891-0.511s-0.681-0.109-0.995-0.092c-0.367 0.017-0.742 0.087-1.127 0.21-0.244 0.070-0.489 0.052-0.734-0.052-0.192-0.070-0.371-0.231-0.537-0.485s-0.314-0.533-0.445-0.838c-0.131-0.306-0.231-0.62-0.301-0.943s-0.087-0.59-0.052-0.799c0.052-0.384 0.227-0.629 0.524-0.734 0.524-0.21 0.995-0.555 1.415-1.035s0.629-1.017 0.629-1.611c0-0.611-0.21-1.144-0.629-1.598s-0.891-0.786-1.415-0.996c-0.157-0.052-0.288-0.179-0.393-0.38s-0.157-0.406-0.157-0.616c0-0.227 0.035-0.48 0.105-0.76s0.162-0.55 0.275-0.812 0.244-0.502 0.393-0.72c0.148-0.218 0.31-0.38 0.485-0.485 0.14-0.087 0.275-0.122 0.406-0.105s0.275 0.052 0.432 0.105c0.524 0.21 1.070 0.275 1.637 0.197s1.070-0.327 1.506-0.747c0.21-0.209 0.362-0.467 0.458-0.773s0.157-0.607 0.183-0.904c0.026-0.297 0.026-0.568 0-0.812s-0.048-0.419-0.065-0.524c-0.035-0.105-0.066-0.227-0.092-0.367s-0.013-0.262 0.039-0.367c0.105-0.244 0.293-0.458 0.563-0.642s0.563-0.336 0.878-0.458c0.314-0.122 0.62-0.214 0.917-0.275s0.533-0.092 0.707-0.092c0.227 0 0.406 0.074 0.537 0.223s0.223 0.301 0.275 0.458c0.192 0.471 0.507 0.886 0.943 1.244s0.952 0.537 1.546 0.537c0.611 0 1.153-0.17 1.624-0.511s0.803-0.773 0.996-1.297c0.070-0.14 0.179-0.284 0.327-0.432s0.301-0.223 0.458-0.223c0.244 0 0.511 0.035 0.799 0.105s0.572 0.166 0.851 0.288c0.279 0.122 0.537 0.279 0.773 0.472s0.423 0.402 0.563 0.629c0.087 0.14 0.113 0.293 0.079 0.458s-0.070 0.284-0.105 0.354c-0.227 0.506-0.297 1.039-0.21 1.598s0.341 1.048 0.76 1.467c0.419 0.419 0.934 0.651 1.546 0.694s1.179-0.057 1.703-0.301c0.14-0.087 0.31-0.122 0.511-0.105s0.371 0.096 0.511 0.236c0.262 0.244 0.493 0.616 0.694 1.113s0.336 1 0.406 1.506c0.035 0.297-0.013 0.528-0.144 0.694s-0.266 0.275-0.406 0.327c-0.542 0.192-1.004 0.528-1.388 1.009s-0.576 1.026-0.576 1.637c0 0.594 0.162 1.113 0.485 1.559s0.747 0.764 1.27 0.956c0.122 0.070 0.227 0.14 0.314 0.21 0.192 0.157 0.323 0.358 0.393 0.602v0zM16.451 19.462c0.786 0 1.528-0.149 2.227-0.445s1.305-0.707 1.821-1.231c0.515-0.524 0.921-1.131 1.218-1.821s0.445-1.428 0.445-2.214c0-0.786-0.148-1.524-0.445-2.214s-0.703-1.292-1.218-1.808c-0.515-0.515-1.122-0.921-1.821-1.218s-1.441-0.445-2.227-0.445c-0.786 0-1.524 0.148-2.214 0.445s-1.292 0.703-1.808 1.218c-0.515 0.515-0.921 1.118-1.218 1.808s-0.445 1.428-0.445 2.214c0 0.786 0.149 1.524 0.445 2.214s0.703 1.297 1.218 1.821c0.515 0.524 1.118 0.934 1.808 1.231s1.428 0.445 2.214 0.445v0z'],\n            'right': ['0 0 32 32', 'M22 16l-10.105-10.6-1.895 1.987 8.211 8.613-8.211 8.612 1.895 1.988 8.211-8.613z'],\n            'comment': ['0 0 32 32', 'M27.128 0.38h-22.553c-2.336 0-4.229 1.825-4.229 4.076v16.273c0 2.251 1.893 4.076 4.229 4.076h4.229v-2.685h8.403l-8.784 8.072 1.566 1.44 7.429-6.827h9.71c2.335 0 4.229-1.825 4.229-4.076v-16.273c0-2.252-1.894-4.076-4.229-4.076zM28.538 19.403c0 1.5-1.262 2.717-2.819 2.717h-8.36l-0.076-0.070-0.076 0.070h-11.223c-1.557 0-2.819-1.217-2.819-2.717v-13.589c0-1.501 1.262-2.718 2.819-2.718h19.734c1.557 0 2.819-0.141 2.819 1.359v14.947zM9.206 10.557c-1.222 0-2.215 0.911-2.215 2.036s0.992 2.035 2.215 2.035c1.224 0 2.216-0.911 2.216-2.035s-0.992-2.036-2.216-2.036zM22.496 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.224 0 2.215-0.911 2.215-2.035s-0.991-2.036-2.215-2.036zM15.852 10.557c-1.224 0-2.215 0.911-2.215 2.036s0.991 2.035 2.215 2.035c1.222 0 2.215-0.911 2.215-2.035s-0.992-2.036-2.215-2.036z'],\n            'comment-off': ['0 0 32 32', 'M27.090 0.131h-22.731c-2.354 0-4.262 1.839-4.262 4.109v16.401c0 2.269 1.908 4.109 4.262 4.109h4.262v-2.706h8.469l-8.853 8.135 1.579 1.451 7.487-6.88h9.787c2.353 0 4.262-1.84 4.262-4.109v-16.401c0-2.27-1.909-4.109-4.262-4.109v0zM28.511 19.304c0 1.512-1.272 2.738-2.841 2.738h-8.425l-0.076-0.070-0.076 0.070h-11.311c-1.569 0-2.841-1.226-2.841-2.738v-13.696c0-1.513 1.272-2.739 2.841-2.739h19.889c1.569 0 2.841-0.142 2.841 1.37v15.064z'],\n            'send': ['0 0 32 32', 'M13.725 30l3.9-5.325-3.9-1.125v6.45zM0 17.5l11.050 3.35 13.6-11.55-10.55 12.425 11.8 3.65 6.1-23.375-32 15.5z'],\n            'menu': ['0 0 22 32', 'M20.8 14.4q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2zM1.6 11.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2zM20.8 20.8q0.704 0 1.152 0.48t0.448 1.12-0.48 1.12-1.12 0.48h-19.2q-0.64 0-1.12-0.48t-0.48-1.12 0.448-1.12 1.152-0.48h19.2z'],\n            'camera': ['0 0 32 32', 'M16 23c-3.309 0-6-2.691-6-6s2.691-6 6-6 6 2.691 6 6-2.691 6-6 6zM16 13c-2.206 0-4 1.794-4 4s1.794 4 4 4c2.206 0 4-1.794 4-4s-1.794-4-4-4zM27 28h-22c-1.654 0-3-1.346-3-3v-16c0-1.654 1.346-3 3-3h3c0.552 0 1 0.448 1 1s-0.448 1-1 1h-3c-0.551 0-1 0.449-1 1v16c0 0.552 0.449 1 1 1h22c0.552 0 1-0.448 1-1v-16c0-0.551-0.448-1-1-1h-11c-0.552 0-1-0.448-1-1s0.448-1 1-1h11c1.654 0 3 1.346 3 3v16c0 1.654-1.346 3-3 3zM24 10.5c0 0.828 0.672 1.5 1.5 1.5s1.5-0.672 1.5-1.5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5zM15 4c0 0.552-0.448 1-1 1h-4c-0.552 0-1-0.448-1-1v0c0-0.552 0.448-1 1-1h4c0.552 0 1 0.448 1 1v0z']\n        };\n        this.getSVG = (type) => {\n            return `\n                <svg xmlns:xlink=\"http://www.w3.org/1999/xlink\" height=\"100%\" version=\"1.1\" viewBox=\"${svg[type][0]}\" width=\"100%\">\n                    <use xlink:href=\"#dplayer-${type}\"></use>\n                    <path class=\"dplayer-fill\" d=\"${svg[type][1]}\" id=\"dplayer-${type}\"></path>\n                </svg>\n            `;\n        };\n\n        this.option = option;\n\n        const isMobile = /mobile/i.test(window.navigator.userAgent);\n        // compatibility: some mobile browsers don't suppose autoplay\n        if (isMobile) {\n            this.option.autoplay = false;\n        }\n\n        // default options\n        const defaultOption = {\n            element: document.getElementsByClassName('dplayer')[0],\n            autoplay: false,\n            theme: '#b7daff',\n            loop: false,\n            lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en',\n            screenshot: false,\n            hotkey: true,\n            preload: 'auto'\n        };\n        for (let defaultKey in defaultOption) {\n            if (defaultOption.hasOwnProperty(defaultKey) && !this.option.hasOwnProperty(defaultKey)) {\n                this.option[defaultKey] = defaultOption[defaultKey];\n            }\n        }\n\n        const tranZH = {\n            'Danmaku is loading': '弹幕加载中',\n            'Top': '顶部',\n            'Bottom': '底部',\n            'Rolling': '滚动',\n            'Input danmaku, hit Enter': '输入弹幕,回车发送',\n            'About author': '关于作者',\n            'DPlayer feedback': '播放器意见反馈',\n            'About DPlayer': '关于 DPlay 播放器',\n            'Loop': '洗脑循环',\n            'Speed': '速度',\n            'Opacity for danmaku': '弹幕透明度',\n            'Normal': '正常',\n            'Please input danmaku!': '要输入弹幕内容啊喂!',\n            'Set danmaku color': '设置弹幕颜色',\n            'Set danmaku type': '设置弹幕类型',\n            'Danmaku': '弹幕'\n        };\n        const getTran = (text) => {\n            if (this.option.lang === 'en') {\n                return text;\n            }\n            else if (this.option.lang === 'zh') {\n                return tranZH[text];\n            }\n        };\n\n        /**\n         * Update progress bar, including loading progress bar and play progress bar\n         *\n         * @param {String} type - Point out which bar it is, should be played loaded or volume\n         * @param {Number} percentage\n         * @param {String} direction - Point out the direction of this bar, Should be height or width\n         */\n        this.updateBar = (type, percentage, direction) => {\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            bar[type + 'Bar'].style[direction] = percentage * 100 + '%';\n        };\n\n        // define DPlayer events\n        const eventTypes = ['play', 'pause', 'canplay', 'playing', 'ended', 'error'];\n        this.event = {};\n        for (let i = 0; i < eventTypes.length; i++) {\n            this.event[eventTypes[i]] = [];\n        }\n        this.trigger = (type) => {\n            for (let i = 0; i < this.event[type].length; i++) {\n                this.event[type][i]();\n            }\n        };\n\n        this.element = this.option.element;\n        if (!this.option.danmaku) {\n            this.element.classList.add('dplayer-no-danmaku');\n        }\n\n        this.element.innerHTML = `\n            <div class=\"dplayer-mask\"></div>\n            <div class=\"dplayer-video-wrap\">\n                <video class=\"dplayer-video\" ${this.option.video.pic ? `poster=\"${this.option.video.pic}\"` : ``} webkit-playsinline ${this.option.screenshot ? `crossorigin=\"anonymous\"` : ``} preload=\"${this.option.preload}\" src=\"${this.option.video.url}\"></video>\n                <div class=\"dplayer-danmaku\">\n                    <div class=\"dplayer-danmaku-item dplayer-danmaku-item--demo\"></div>\n                </div>\n                <div class=\"dplayer-bezel\">\n                    <span class=\"dplayer-bezel-icon\"></span>\n                    ${this.option.danmaku ? `<span class=\"dplayer-danloading\">${getTran('Danmaku is loading')}</span>` : ``}\n                    <span class=\"diplayer-loading-icon\">\n                        <svg height=\"100%\" version=\"1.1\" viewBox=\"0 0 22 22\" width=\"100%\">\n                            <svg x=\"7\" y=\"1\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-0\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-1\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"13\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-2\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"11\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-3\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"7\" y=\"13\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-4\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"11\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-5\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"1\" y=\"7\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-6\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                            <svg x=\"3\" y=\"3\">\n                                <circle class=\"diplayer-loading-dot diplayer-loading-dot-7\" cx=\"4\" cy=\"4\" r=\"2\"></circle>\n                            </svg>\n                        </svg>\n                    </span>\n                </div>\n            </div>\n            <div class=\"dplayer-controller-mask\"></div>\n            <div class=\"dplayer-controller\">\n                <div class=\"dplayer-icons dplayer-icons-left\">\n                    <button class=\"dplayer-icon dplayer-play-icon\">`\n            +           this.getSVG('play')\n            + `     </button>\n                    <div class=\"dplayer-volume\" ${isMobile ? 'style=\"display: none;\"' : ''}>\n                        <button class=\"dplayer-icon dplayer-volume-icon\">`\n            +               this.getSVG('volume-down')\n            + `         </button>\n                        <div class=\"dplayer-volume-bar-wrap\">\n                            <div class=\"dplayer-volume-bar\">\n                                <div class=\"dplayer-volume-bar-inner\" style=\"width: 70%; background: ${this.option.theme};\">\n                                    <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>\n                    <span class=\"dplayer-time\"><span class=\"dplayer-ptime\">0:00</span> / <span class=\"dplayer-dtime\">0:00</span></span>\n                </div>\n                <div class=\"dplayer-icons dplayer-icons-right\">\n                    ${this.option.screenshot ? `\n                    <a href=\"#\" class=\"dplayer-icon dplayer-camera-icon\" ${isMobile ? 'style=\"display: none;\"' : ''}dplayer-volume>`\n            +           this.getSVG('camera')\n            + `     </a>\n                    ` : ``}\n                    <div class=\"dplayer-comment\">\n                        <button class=\"dplayer-icon dplayer-comment-icon\">`\n            +               this.getSVG('comment')\n            + `         </button>\n                        <div class=\"dplayer-comment-box\">\n                            <button class=\"dplayer-icon dplayer-comment-setting-icon\">`\n            +                   this.getSVG('menu')\n            + `             </button>\n                            <div class=\"dplayer-comment-setting-box\">\n                                <div class=\"dplayer-comment-setting-color\">\n                                   <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku color')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#fff\" checked>\n                                        <span style=\"background: #fff; border: 1px solid rgba(0,0,0,.1);\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#e54256\">\n                                        <span style=\"background: #e54256\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#ffe133\">\n                                        <span style=\"background: #ffe133\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#64DD17\">\n                                        <span style=\"background: #64DD17\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#39ccff\">\n                                        <span style=\"background: #39ccff\"></span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-color-${index}\" value=\"#D500F9\">\n                                        <span style=\"background: #D500F9\"></span>\n                                    </label>\n                                </div>\n                                <div class=\"dplayer-comment-setting-type\">\n                                    <div class=\"dplayer-comment-setting-title\">${getTran('Set danmaku type')}</div>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"top\">\n                                        <span>${getTran('Top')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"right\" checked>\n                                        <span>${getTran('Rolling')}</span>\n                                    </label>\n                                    <label>\n                                        <input type=\"radio\" name=\"dplayer-danmaku-type-${index}\" value=\"bottom\">\n                                        <span>${getTran('Bottom')}</span>\n                                    </label>\n                                </div>\n                            </div>\n                            <input class=\"dplayer-comment-input\" type=\"text\" placeholder=\"${getTran('Input danmaku, hit Enter')}\" maxlength=\"30\">\n                            <button class=\"dplayer-icon dplayer-send-icon\">`\n            +                   this.getSVG('send')\n            + `             </button>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting\">\n                        <button class=\"dplayer-icon dplayer-setting-icon\">`\n            +               this.getSVG('setting')\n            + `         </button>\n                        <div class=\"dplayer-setting-box\"></div>\n                    </div>\n                    <button class=\"dplayer-icon dplayer-full-icon\">`\n            +           this.getSVG('full')\n            + `     </button>\n                </div>\n                <div class=\"dplayer-bar-wrap\">\n                    <div class=\"dplayer-bar\">\n                        <div class=\"dplayer-loaded\" style=\"width: 0;\"></div>\n                        <div class=\"dplayer-played\" style=\"width: 0; background: ${this.option.theme}\">\n                            <span class=\"dplayer-thumb\" style=\"background: ${this.option.theme}\"></span>\n                        </div>\n                    </div>\n                </div>\n            </div>\n            <div class=\"dplayer-menu\">\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"http://diygod.me/\">${getTran('About author')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer/issues\">${getTran('DPlayer feedback')}</a></span></div>\n                <div class=\"dplayer-menu-item\"><span class=\"dplayer-menu-label\"><a target=\"_blank\" href=\"https://github.com/DIYgod/DPlayer\">${getTran('About DPlayer')}</a></span></div>\n            </div>\n        `;\n\n        // arrow style\n        var arrow = this.element.offsetWidth <= 500;\n        if (arrow) {\n            var arrowStyle = document.createElement('style');\n            arrowStyle.innerHTML = `.dplayer .dplayer-danmaku{font-size:18px}`;\n            document.head.appendChild(arrowStyle);\n        }\n\n        // get this video object\n        this.video = this.element.getElementsByClassName('dplayer-video')[0];\n\n        // Support HTTP Live Streaming\n        if (this.option.video.url.match(/(m3u8)$/i) && Hls.isSupported()) {\n            this.element.getElementsByClassName('dplayer-time')[0].style.display = 'none';\n            const hls = new Hls();\n            hls.attachMedia(this.video);\n            hls.on(Hls.Events.MEDIA_ATTACHED, () => {\n                hls.loadSource(this.option.video.url);\n                hls.on(Hls.Events.MANIFEST_PARSED, function (event, data) {\n                    console.log(\"manifest loaded, found \" + data.levels.length + \" quality level\");\n                });\n            });\n        }\n\n        // Support FLV\n        if (this.option.video.url.match(/(flv)$/i) && flvjs.isSupported()) {\n            const flvPlayer = flvjs.createPlayer({\n                type: 'flv',\n                url: this.option.video.url\n            });\n            flvPlayer.attachMediaElement(this.video);\n            flvPlayer.load();\n        }\n\n        this.bezel = this.element.getElementsByClassName('dplayer-bezel-icon')[0];\n        this.bezel.addEventListener('animationend', () => {\n            this.bezel.classList.remove('dplayer-bezel-transition');\n        });\n\n        // play and pause button\n        this.playButton = this.element.getElementsByClassName('dplayer-play-icon')[0];\n        this.shouldpause = true;\n        this.playButton.addEventListener('click', () => {\n            this.toggle();\n        });\n\n        const videoWrap = this.element.getElementsByClassName('dplayer-video-wrap')[0];\n        const conMask = this.element.getElementsByClassName('dplayer-controller-mask')[0];\n        if (!isMobile) {\n            videoWrap.addEventListener('click', () => {\n                this.toggle();\n            });\n            conMask.addEventListener('click', () => {\n                this.toggle();\n            });\n        }\n        else {\n            const toggleController = () => {\n                if (this.element.classList.contains('dplayer-hide-controller')) {\n                    this.element.classList.remove('dplayer-hide-controller');\n                }\n                else {\n                    this.element.classList.add('dplayer-hide-controller');\n                }\n            };\n            videoWrap.addEventListener('click', toggleController);\n            conMask.addEventListener('click', toggleController);\n        }\n\n\n        /**\n         * Parse second to 00:00 format\n         *\n         * @param {Number} second\n         * @return {String} 00:00 format\n         */\n        const secondToTime = (second) => {\n            const add0 = (num) => {\n                return num < 10 ? '0' + num : '' + num;\n            };\n            const min = parseInt(second / 60);\n            const sec = parseInt(second - min * 60);\n            return add0(min) + ':' + add0(sec);\n        };\n\n        /**\n         * control play progress\n         */\n        // get element's view position\n        const getElementViewLeft = (element) => {\n            let actualLeft = element.offsetLeft;\n            let current = element.offsetParent;\n            let elementScrollLeft;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualLeft += current.offsetLeft;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollLeft = document.body.scrollLeft + document.documentElement.scrollLeft;\n            return actualLeft - elementScrollLeft;\n        };\n\n        const getElementViewTop = (element) => {\n            let actualTop = element.offsetTop;\n            let current = element.offsetParent;\n            let elementScrollTop;\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                while (current !== null) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            else {\n                while (current !== null && current !== this.element) {\n                    actualTop += current.offsetTop;\n                    current = current.offsetParent;\n                }\n            }\n            elementScrollTop = document.body.scrollTop + document.documentElement.scrollTop;\n            return actualTop - elementScrollTop;\n        };\n\n        let bar = {};\n        bar.playedBar = this.element.getElementsByClassName('dplayer-played')[0];\n        bar.loadedBar = this.element.getElementsByClassName('dplayer-loaded')[0];\n        const pbar = this.element.getElementsByClassName('dplayer-bar-wrap')[0];\n        let barWidth;\n\n        if (this.option.danmaku) {\n            this.video.addEventListener('seeking', () => {\n                for (let i = 0; i < this.dan.length; i++) {\n                    if (this.dan[i].time >= this.video.currentTime) {\n                        this.danIndex = i;\n                        return;\n                    }\n                    this.danIndex = this.dan.length;\n                }\n            });\n        }\n\n        let lastPlayPos = 0;\n        let currentPlayPos = 0;\n        let bufferingDetected = false;\n        let danmakuTime;\n        this.setTime = () => {\n            this.playedTime = setInterval(() => {\n                // whether the video is buffering\n                currentPlayPos = this.video.currentTime;\n                if (!bufferingDetected\n                    && currentPlayPos < (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.add('dplayer-loading');\n                    bufferingDetected = true;\n                }\n                if (bufferingDetected\n                    && currentPlayPos > (lastPlayPos + 0.01)\n                    && !this.video.paused) {\n                    this.element.classList.remove('dplayer-loading');\n                    bufferingDetected = false;\n                }\n                lastPlayPos = currentPlayPos;\n\n                this.updateBar('played', this.video.currentTime / this.video.duration, 'width');\n                this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(this.video.currentTime);\n                this.trigger('playing');\n            }, 100);\n            if (this.option.danmaku) {\n                danmakuTime = setInterval(() => {\n                    let item = this.dan[this.danIndex];\n                    while (item && this.video.currentTime >= parseFloat(item.time)) {\n                        danmakuIn(item.text, item.color, item.type);\n                        item = this.dan[++this.danIndex];\n                    }\n                }, 0);\n            }\n        };\n        this.clearTime = () => {\n            clearInterval(this.playedTime);\n            if (this.option.danmaku) {\n                clearInterval(danmakuTime);\n            }\n        };\n\n        pbar.addEventListener('click', (event) => {\n            const e = event || window.event;\n            barWidth = pbar.clientWidth;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n        });\n\n        const thumbMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(pbar)) / barWidth;\n            percentage = percentage > 0 ? percentage : 0;\n            percentage = percentage < 1 ? percentage : 1;\n            this.updateBar('played', percentage, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = secondToTime(percentage * this.video.duration);\n        };\n\n        const thumbUp = () => {\n            document.removeEventListener('mouseup', thumbUp);\n            document.removeEventListener('mousemove', thumbMove);\n            this.video.currentTime = parseFloat(bar.playedBar.style.width) / 100 * this.video.duration;\n            this.setTime();\n        };\n\n        pbar.addEventListener('mousedown', () => {\n            barWidth = pbar.clientWidth;\n            this.clearTime();\n            document.addEventListener('mousemove', thumbMove);\n            document.addEventListener('mouseup', thumbUp);\n        });\n\n\n        /**\n         * control volume\n         */\n        bar.volumeBar = this.element.getElementsByClassName('dplayer-volume-bar-inner')[0];\n        const volumeEle = this.element.getElementsByClassName('dplayer-volume')[0];\n        const volumeBarWrapWrap = this.element.getElementsByClassName('dplayer-volume-bar-wrap')[0];\n        const volumeBarWrap = this.element.getElementsByClassName('dplayer-volume-bar')[0];\n        const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n        const vWidth = 35;\n\n        this.switchVolumeIcon = () => {\n            const volumeicon = this.element.getElementsByClassName('dplayer-volume-icon')[0];\n            if (this.video.volume >= 0.8) {\n                volumeicon.innerHTML = this.getSVG('volume-up');\n            }\n            else if (this.video.volume > 0) {\n                volumeicon.innerHTML = this.getSVG('volume-down');\n            }\n            else {\n                volumeicon.innerHTML = this.getSVG('volume-off');\n            }\n        };\n        const volumeMove = (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        };\n        const volumeUp = () => {\n            document.removeEventListener('mouseup', volumeUp);\n            document.removeEventListener('mousemove', volumeMove);\n            volumeEle.classList.remove('dplayer-volume-active');\n        };\n\n        volumeBarWrapWrap.addEventListener('click', (event) => {\n            const e = event || window.event;\n            let percentage = (e.clientX - getElementViewLeft(volumeBarWrap) - 5.5) / vWidth;\n            this.volume(percentage);\n        });\n        volumeBarWrapWrap.addEventListener('mousedown', () => {\n            document.addEventListener('mousemove', volumeMove);\n            document.addEventListener('mouseup', volumeUp);\n            volumeEle.classList.add('dplayer-volume-active');\n        });\n        volumeicon.addEventListener('click', () => {\n            if (this.video.muted) {\n                this.video.muted = false;\n                this.switchVolumeIcon();\n                this.updateBar('volume', this.video.volume, 'width');\n            }\n            else {\n                this.video.muted = true;\n                volumeicon.innerHTML = this.getSVG('volume-off');\n                this.updateBar('volume', 0, 'width');\n            }\n        });\n\n\n        /**\n         * auto hide controller\n         */\n        let hideTime = 0;\n        if (!isMobile) {\n            const hideController = () => {\n                this.element.classList.remove('dplayer-hide-controller');\n                clearTimeout(hideTime);\n                hideTime = setTimeout(() => {\n                    if (this.video.played.length) {\n                        this.element.classList.add('dplayer-hide-controller');\n                        closeSetting();\n                        closeComment();\n                    }\n                }, 2000);\n            };\n            this.element.addEventListener('mousemove', hideController);\n            this.element.addEventListener('click', hideController);\n        }\n\n\n        /***\n         * setting\n         */\n        let danOpacity = localStorage.getItem('DPlayer-opacity') || 0.7;\n        const settingHTML = {\n            'original': `\n                    <div class=\"dplayer-setting-item dplayer-setting-speed\">\n                        <span class=\"dplayer-label\">${getTran('Speed')}</span>\n                        <div class=\"dplayer-toggle\">`\n            +           this.getSVG('right')\n            + `     </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-loop\">\n                        <span class=\"dplayer-label\">${getTran('Loop')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-toggle-setting-input\" type=\"checkbox\" name=\"dplayer-toggle\">\n                            <label for=\"dplayer-toggle\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-showdan\">\n                        <span class=\"dplayer-label\">${getTran('Danmaku')}</span>\n                        <div class=\"dplayer-toggle\">\n                            <input class=\"dplayer-showdan-setting-input\" type=\"checkbox\" name=\"dplayer-toggle-dan\">\n                            <label for=\"dplayer-toggle-dan\"></label>\n                        </div>\n                    </div>\n                    <div class=\"dplayer-setting-item dplayer-setting-danmaku\">\n                        <span class=\"dplayer-label\">${getTran('Opacity for danmaku')}</span>\n                        <div class=\"dplayer-danmaku-bar-wrap\">\n                            <div class=\"dplayer-danmaku-bar\">\n                                <div class=\"dplayer-danmaku-bar-inner\" style=\"width: ${danOpacity * 100}%\">\n                                    <span class=\"dplayer-thumb\"></span>\n                                </div>\n                            </div>\n                        </div>\n                    </div>`,\n            'speed': `\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.5\">\n                        <span class=\"dplayer-label\">0.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"0.75\">\n                        <span class=\"dplayer-label\">0.75</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1\">\n                        <span class=\"dplayer-label\">${getTran('Normal')}</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.25\">\n                        <span class=\"dplayer-label\">1.25</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"1.5\">\n                        <span class=\"dplayer-label\">1.5</span>\n                    </div>\n                    <div class=\"dplayer-setting-speed-item\" data-speed=\"2\">\n                        <span class=\"dplayer-label\">2</span>\n                    </div>`\n        };\n\n        // toggle setting box\n        const settingIcon = this.element.getElementsByClassName('dplayer-setting-icon')[0];\n        const settingBox = this.element.getElementsByClassName('dplayer-setting-box')[0];\n        const mask = this.element.getElementsByClassName('dplayer-mask')[0];\n        settingBox.innerHTML = settingHTML.original;\n\n        const closeSetting = () => {\n            if (settingBox.classList.contains('dplayer-setting-box-open')) {\n                settingBox.classList.remove('dplayer-setting-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                setTimeout(() => {\n                    settingBox.classList.remove('dplayer-setting-box-narrow');\n                    settingBox.innerHTML = settingHTML.original;\n                    settingEvent();\n                }, 300);\n            }\n        };\n        const openSetting = () => {\n            settingBox.classList.add('dplayer-setting-box-open');\n            mask.classList.add('dplayer-mask-show');\n        };\n\n        mask.addEventListener('click', () => {\n            closeSetting();\n        });\n        settingIcon.addEventListener('click', () => {\n            openSetting();\n        });\n\n        let loop = this.option.loop;\n        const danContainer = this.element.getElementsByClassName('dplayer-danmaku')[0];\n        let showdan = true;\n        const settingEvent = () => {\n            // loop control\n            const loopEle = this.element.getElementsByClassName('dplayer-setting-loop')[0];\n            const loopToggle = loopEle.getElementsByClassName('dplayer-toggle-setting-input')[0];\n\n            loopToggle.checked = loop;\n\n            loopEle.addEventListener('click', () => {\n                loopToggle.checked = !loopToggle.checked;\n                if (loopToggle.checked) {\n                    loop = true;\n                    this.video.loop = loop;\n                }\n                else {\n                    loop = false;\n                    this.video.loop = loop;\n                }\n                closeSetting();\n            });\n\n            // show danmaku control\n            const showDanEle = this.element.getElementsByClassName('dplayer-setting-showdan')[0];\n            const showDanToggle = showDanEle.getElementsByClassName('dplayer-showdan-setting-input')[0];\n\n            showDanToggle.checked = showdan;\n\n            showDanEle.addEventListener('click', () => {\n                showDanToggle.checked = !showDanToggle.checked;\n                if (showDanToggle.checked) {\n                    showdan = true;\n                    if (this.option.danmaku) {\n                        for (let i = 0; i < this.dan.length; i++) {\n                            if (this.dan[i].time >= this.video.currentTime) {\n                                this.danIndex = i;\n                                break;\n                            }\n                            this.danIndex = this.dan.length;\n                        }\n                        danmakuTime = setInterval(() => {\n                            let item = this.dan[this.danIndex];\n                            while (item && this.video.currentTime >= parseFloat(item.time)) {\n                                danmakuIn(item.text, item.color, item.type);\n                                item = this.dan[++this.danIndex];\n                            }\n                        }, 0);\n                    }\n                }\n                else {\n                    showdan = false;\n                    if (this.option.danmaku) {\n                        clearInterval(danmakuTime);\n                        danContainer.innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n                        this.danTunnel = {\n                            right: {},\n                            top: {},\n                            bottom: {}\n                        };\n                        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n                    }\n                }\n                closeSetting();\n            });\n\n            // speed control\n            const speedEle = this.element.getElementsByClassName('dplayer-setting-speed')[0];\n            speedEle.addEventListener('click', () => {\n                settingBox.classList.add('dplayer-setting-box-narrow');\n                settingBox.innerHTML = settingHTML.speed;\n\n                const speedItem = settingBox.getElementsByClassName('dplayer-setting-speed-item');\n                for (let i = 0; i < speedItem.length; i++) {\n                    speedItem[i].addEventListener('click', () => {\n                        this.video.playbackRate = speedItem[i].dataset.speed;\n                        closeSetting();\n                    });\n                }\n            });\n\n            if (this.option.danmaku) {\n                // danmaku opacity\n                bar.danmakuBar = this.element.getElementsByClassName('dplayer-danmaku-bar-inner')[0];\n                const danmakuBarWrapWrap = this.element.getElementsByClassName('dplayer-danmaku-bar-wrap')[0];\n                const danmakuBarWrap = this.element.getElementsByClassName('dplayer-danmaku-bar')[0];\n                const danmakuSettingBox = this.element.getElementsByClassName('dplayer-setting-danmaku')[0];\n                const dWidth = 130;\n                this.updateBar('danmaku', danOpacity, 'width');\n\n                const danmakuMove = (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                };\n                const danmakuUp = () => {\n                    document.removeEventListener('mouseup', danmakuUp);\n                    document.removeEventListener('mousemove', danmakuMove);\n                    danmakuSettingBox.classList.remove('dplayer-setting-danmaku-active');\n                };\n\n                danmakuBarWrapWrap.addEventListener('click', (event) => {\n                    const e = event || window.event;\n                    let percentage = (e.clientX - getElementViewLeft(danmakuBarWrap)) / dWidth;\n                    percentage = percentage > 0 ? percentage : 0;\n                    percentage = percentage < 1 ? percentage : 1;\n                    this.updateBar('danmaku', percentage, 'width');\n                    const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n                    for (let i = 0; i < items.length; i++) {\n                        items[i].style.opacity = percentage;\n                    }\n                    danOpacity = percentage;\n                    localStorage.setItem('DPlayer-opacity', danOpacity);\n                });\n                danmakuBarWrapWrap.addEventListener('mousedown', () => {\n                    document.addEventListener('mousemove', danmakuMove);\n                    document.addEventListener('mouseup', danmakuUp);\n                    danmakuSettingBox.classList.add('dplayer-setting-danmaku-active');\n                });\n            }\n        };\n        settingEvent();\n\n\n        /**\n         * video events\n         */\n        // show video time: the metadata has loaded or changed\n        this.video.addEventListener('durationchange', () => {\n            if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n                this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = secondToTime(this.video.duration);\n            }\n        });\n\n        // show video loaded bar: to inform interested parties of progress downloading the media\n        this.video.addEventListener('progress', () => {\n            const percentage = this.video.buffered.length ? this.video.buffered.end(this.video.buffered.length - 1) / this.video.duration : 0;\n            this.updateBar('loaded', percentage, 'width');\n        });\n\n        // video download error: an error occurs\n        this.video.addEventListener('error', () => {\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = `Error happens ╥﹏╥`;\n            this.trigger('pause');\n        });\n\n        // video can play: enough data is available that the media can be played\n        this.video.addEventListener('canplay', () => {\n            this.trigger('canplay');\n        });\n\n        // music end\n        this.ended = false;\n        this.video.addEventListener('ended', () => {\n            this.updateBar('played', 1, 'width');\n            if (!loop) {\n                this.ended = true;\n                this.pause();\n                this.trigger('ended');\n            }\n        });\n\n        // control volume\n        this.video.volume = parseInt(this.element.getElementsByClassName('dplayer-volume-bar-inner')[0].style.width) / 100;\n\n        // loop\n        this.video.loop = loop;\n\n        // set duration time\n        if (this.video.duration !== 1) {           // compatibility: Android browsers will output 1 at first\n            this.element.getElementsByClassName('dplayer-dtime')[0].innerHTML = this.video.duration ? secondToTime(this.video.duration) : '00:00';\n        }\n\n\n        /**\n         * danmaku display\n         */\n        const itemHeight = arrow ? 24: 30;\n        let danWidth;\n        let danHeight;\n        let itemY;\n        this.danTunnel = {\n            right: {},\n            top: {},\n            bottom: {}\n        };\n\n        const danItemRight = (ele) => {\n            return danContainer.getBoundingClientRect().right - ele.getBoundingClientRect().right;\n        };\n\n        const danSpeed = (width) => {\n            return (danWidth + width) / 5;\n        };\n\n        const getTunnel = (ele, type, width) => {\n            const tmp = danWidth / danSpeed(width);\n\n            for (let i = 0; ; i++) {\n                let item = this.danTunnel[type][i + ''];\n                if (item && item.length) {\n                    for (let j = 0; j < item.length; j++) {\n                        const danRight = danItemRight(item[j]) - 10;\n                        if (danRight <= danWidth - (tmp * danSpeed(item[j].offsetWidth)) || danRight <= 0) {\n                            break;\n                        }\n                        if (j === item.length - 1) {\n                            this.danTunnel[type][i + ''].push(ele);\n                            ele.addEventListener('animationend', () => {\n                                this.danTunnel[type][i + ''].splice(0, 1);\n                            });\n                            return i % itemY;\n                        }\n                    }\n                }\n                else {\n                    this.danTunnel[type][i + ''] = [ele];\n                    ele.addEventListener('animationend', () => {\n                        this.danTunnel[type][i + ''].splice(0, 1);\n                    });\n                    return i % itemY;\n                }\n            }\n        };\n\n        this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n        const danmakuIn = (text, color, type) => {\n            danWidth = danContainer.offsetWidth;\n            danHeight = danContainer.offsetHeight;\n            itemY = parseInt(danHeight / itemHeight);\n            let item = document.createElement(`div`);\n            item.classList.add(`dplayer-danmaku-item`);\n            item.classList.add(`dplayer-danmaku-${type}`);\n            item.innerHTML = text;\n            item.style.opacity = danOpacity;\n            item.style.color = color;\n            item.addEventListener('animationend', () => {\n                danContainer.removeChild(item);\n            });\n\n            // measure\n            this.itemDemo.innerHTML = text;\n            let itemWidth = this.itemDemo.offsetWidth;\n\n            // adjust\n            switch (type) {\n                case 'right':\n                    item.style.top = itemHeight * getTunnel(item, type, itemWidth) + 'px';\n                    item.style.width = (itemWidth + 1) + 'px';\n                    item.style.transform = `translateX(-${danWidth}px)`;\n                    break;\n                case 'top':\n                    item.style.top = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                case 'bottom':\n                    item.style.bottom = itemHeight * getTunnel(item, type) + 'px';\n                    break;\n                default:\n                    console.error(`Can't handled danmaku type: ${type}`);\n            }\n\n            // insert\n            danContainer.appendChild(item);\n\n            // move\n            item.classList.add(`dplayer-danmaku-move`);\n\n            return item;\n        };\n\n        // danmaku\n        if (this.option.danmaku) {\n            this.danIndex = 0;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n        else {\n            // autoplay\n            if (this.option.autoplay && !isMobile) {\n                this.play();\n            }\n            else if (isMobile) {\n                this.pause();\n            }\n        }\n\n\n        /**\n         * comment\n         */\n        const commentInput = this.element.getElementsByClassName('dplayer-comment-input')[0];\n        const commentIcon = this.element.getElementsByClassName('dplayer-comment-icon')[0];\n        const commentBox = this.element.getElementsByClassName('dplayer-comment-box')[0];\n        const commentSettingIcon = this.element.getElementsByClassName('dplayer-comment-setting-icon')[0];\n        const commentSettingBox = this.element.getElementsByClassName('dplayer-comment-setting-box')[0];\n        const commentSendIcon = this.element.getElementsByClassName('dplayer-send-icon')[0];\n\n        const htmlEncode = (str) => {\n            return str.replace(/&/g, \"&amp;\")\n                .replace(/</g, \"&lt;\")\n                .replace(/>/g, \"&gt;\")\n                .replace(/\"/g, \"&quot;\")\n                .replace(/'/g, \"&#x27;\")\n                .replace(/\\//g, \"&#x2f;\");\n        };\n\n        const sendComment = () => {\n            commentInput.blur();\n\n            // text can't be empty\n            if (!commentInput.value.replace(/^\\s+|\\s+$/g, '')) {\n                alert(getTran('Please input danmaku!'));\n                return;\n            }\n\n            const danmakuData = {\n                token: this.option.danmaku.token,\n                player: this.option.danmaku.id,\n                author: 'DIYgod',\n                time: this.video.currentTime,\n                text: commentInput.value,\n                color: this.element.querySelector('.dplayer-comment-setting-color input:checked').value,\n                type: this.element.querySelector('.dplayer-comment-setting-type input:checked').value\n            };\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            console.log('Post danmaku: ', JSON.parse(xhr.responseText));\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            xhr.open('post', this.option.danmaku.api, true);\n            xhr.send(JSON.stringify(danmakuData));\n\n            commentInput.value = '';\n            closeComment();\n            this.dan.splice(this.danIndex, 0, danmakuData);\n            this.danIndex++;\n            const item = danmakuIn(htmlEncode(danmakuData.text), danmakuData.color, danmakuData.type);\n            item.style.border = `2px solid ${this.option.theme}`;\n        };\n\n        const closeCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n        };\n        const toggleCommentSetting = () => {\n            if (commentSettingBox.classList.contains('dplayer-comment-setting-open')) {\n                commentSettingBox.classList.remove('dplayer-comment-setting-open');\n            }\n            else {\n                commentSettingBox.classList.add('dplayer-comment-setting-open');\n            }\n        };\n\n        let disableHide = 0;\n        const closeComment = () => {\n            if (commentBox.classList.contains('dplayer-comment-box-open')) {\n                commentBox.classList.remove('dplayer-comment-box-open');\n                mask.classList.remove('dplayer-mask-show');\n                clearInterval(disableHide);\n                this.element.classList.remove('dplayer-show-controller');\n                closeCommentSetting();\n            }\n        };\n        const openComment = () => {\n            commentBox.classList.add('dplayer-comment-box-open');\n            mask.classList.add('dplayer-mask-show');\n            disableHide = setInterval(() => {\n                clearTimeout(hideTime);\n            }, 1000);\n            this.element.classList.add('dplayer-show-controller');\n        };\n\n        mask.addEventListener('click', () => {\n            closeComment();\n        });\n        commentIcon.addEventListener('click', () => {\n            openComment();\n            setTimeout(() => {\n                commentInput.focus();\n            }, 300);\n        });\n        commentSettingIcon.addEventListener('click', () => {\n            toggleCommentSetting();\n        });\n\n        // comment setting box\n        this.element.getElementsByClassName('dplayer-comment-setting-color')[0].addEventListener('click', () => {\n            const sele = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked+span');\n            if (sele) {\n                commentSettingIcon.getElementsByClassName('dplayer-fill')[0].style.fill = this.element.querySelector('input[name=\"dplayer-danmaku-color-${index}\"]:checked').value;\n            }\n        });\n\n        commentInput.addEventListener('click', () => {\n            closeCommentSetting();\n        });\n        commentInput.addEventListener('keydown', (e) => {\n            const event = e || window.event;\n            if (event.keyCode === 13) {\n                sendComment();\n            }\n        });\n\n        commentSendIcon.addEventListener('click', sendComment);\n\n\n        /**\n         * full screen\n         */\n        const resetAnimation = () => {\n            danWidth = danContainer.offsetWidth;\n            const items = this.element.getElementsByClassName('dplayer-danmaku-item');\n            for (let i = 0; i < items.length; i++) {\n                items[i].style.transform = `translateX(-${danWidth}px)`;\n            }\n        };\n\n        this.element.addEventListener('fullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('mozfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.addEventListener('webkitfullscreenchange', () => {\n            resetAnimation();\n            console.log(danContainer.offsetHeight);\n        });\n        this.element.getElementsByClassName('dplayer-full-icon')[0].addEventListener('click', () => {\n            if (!document.fullscreenElement && !document.mozFullScreenElement && !document.webkitFullscreenElement) {\n                if (this.element.requestFullscreen) {\n                    this.element.requestFullscreen();\n                }\n                else if (this.element.mozRequestFullScreen) {\n                    this.element.mozRequestFullScreen();\n                }\n                else if (this.element.webkitRequestFullscreen) {\n                    this.element.webkitRequestFullscreen();\n                }\n            }\n            else {\n                if (document.cancelFullScreen) {\n                    document.cancelFullScreen();\n                }\n                else if (document.mozCancelFullScreen) {\n                    document.mozCancelFullScreen();\n                }\n                else if (document.webkitCancelFullScreen) {\n                    document.webkitCancelFullScreen();\n                }\n            }\n            resetAnimation();\n        });\n\n        /**\n         * hot key\n         */\n        const handleKeyDown = (e) => {\n            const tag = document.activeElement.tagName.toUpperCase();\n            const editable = document.activeElement.getAttribute('contenteditable');\n            if (tag !== 'INPUT' && tag !== 'TEXTAREA' && editable !== '' && editable !== 'true') {\n                const event = e || window.event;\n                let percentage;\n                switch (event.keyCode) {\n                    case 32:\n                        event.preventDefault();\n                        this.toggle();\n                        break;\n                    case 37:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime - 5;\n                        break;\n                    case 39:\n                        event.preventDefault();\n                        this.video.currentTime = this.video.currentTime + 5;\n                        break;\n                    case 38:\n                        event.preventDefault();\n                        percentage = this.video.volume + 0.1;\n                        this.volume(percentage);\n                        break;\n                    case 40:\n                        event.preventDefault();\n                        percentage = this.video.volume - 0.1;\n                        this.volume(percentage);\n                        break;\n                }\n            }\n        };\n        if (this.option.hotkey) {\n            document.addEventListener('keydown', handleKeyDown);\n        }\n\n        /**\n         * right key\n         */\n        const menu = this.element.getElementsByClassName('dplayer-menu')[0];\n        this.element.addEventListener('contextmenu', (e) => {\n            const event = e || window.event;\n            event.preventDefault();\n            menu.style.left = event.clientX - this.element.getBoundingClientRect().left + 'px';\n            menu.style.top = event.clientY - this.element.getBoundingClientRect().top + 'px';\n            menu.classList.add('dplayer-menu-show');\n\n            mask.classList.add('dplayer-mask-show');\n            mask.addEventListener('click', () => {\n                mask.classList.remove('dplayer-mask-show');\n                menu.classList.remove('dplayer-menu-show');\n           });\n        });\n\n        /**\n         * Screenshot\n         */\n        if (this.option.screenshot) {\n            const camareIcon = this.element.getElementsByClassName('dplayer-camera-icon')[0];\n            camareIcon.addEventListener('click', () => {\n                const canvas = document.createElement(\"canvas\");\n                canvas.width = this.video.videoWidth;\n                canvas.height = this.video.videoHeight;\n                canvas.getContext('2d').drawImage(this.video, 0, 0, canvas.width, canvas.height);\n\n                camareIcon.href = canvas.toDataURL();\n                camareIcon.download = \"DPlayer.png\";\n            });\n        }\n\n        index++;\n    }\n\n    /**\n     * Play music\n     */\n    play(time) {\n        if (Object.prototype.toString.call(time) === '[object Number]') {\n            this.video.currentTime = time;\n        }\n        if (this.video.paused) {\n            this.shouldpause = false;\n\n            this.bezel.innerHTML = this.getSVG('play');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.playButton.innerHTML = this.getSVG('pause');\n\n            this.video.play();\n            if (this.playedTime) {\n                this.clearTime();\n            }\n            this.setTime();\n            this.element.classList.add('dplayer-playing');\n            this.trigger('play');\n        }\n    }\n\n    /**\n     * Pause music\n     */\n    pause() {\n        if (!this.shouldpause || this.ended) {\n            this.shouldpause = true;\n            this.element.classList.remove('dplayer-loading');\n\n            this.bezel.innerHTML = this.getSVG('pause');\n            this.bezel.classList.add('dplayer-bezel-transition');\n\n            this.ended = false;\n            this.playButton.innerHTML = this.getSVG('play');\n            this.video.pause();\n            this.clearTime();\n            this.element.classList.remove('dplayer-playing');\n            this.trigger('pause');\n        }\n    }\n\n    /**\n     * Set volume\n     */\n    volume(percentage) {\n        percentage = percentage > 0 ? percentage : 0;\n        percentage = percentage < 1 ? percentage : 1;\n        this.updateBar('volume', percentage, 'width');\n        this.video.volume = percentage;\n        if (this.video.muted) {\n            this.video.muted = false;\n        }\n        this.switchVolumeIcon();\n    }\n\n    /**\n     * Toggle between play and pause\n     */\n    toggle() {\n        if (this.video.paused) {\n            this.play();\n        }\n        else {\n            this.pause();\n        }\n    }\n\n    /**\n     * attach event\n     */\n    on(name, func) {\n        if (typeof func === 'function') {\n            this.event[name].push(func);\n        }\n    }\n\n    /**\n     * Switch to a new video\n     *\n     * @param {Object} video - new video info\n     * @param {Object} danmaku - new danmaku info\n     */\n    switchVideo(video, danmaku) {\n        this.video.src = video.url;\n        this.video.poster = video.pic ? video.pic : '';\n        this.video.currentTime = 0;\n        this.pause();\n        if (danmaku) {\n            this.dan = [];\n            this.danIndex = 0;\n            this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'block';\n            this.updateBar('played', 0, 'width');\n            this.updateBar('loaded', 0, 'width');\n            this.element.getElementsByClassName('dplayer-ptime')[0].innerHTML = '00:00';\n            this.element.getElementsByClassName('dplayer-danmaku')[0].innerHTML = `<div class=\"dplayer-danmaku-item  dplayer-danmaku-item--demo\"></div>`;\n            this.danTunnel = {\n                right: {},\n                top: {},\n                bottom: {}\n            };\n            this.itemDemo = this.element.getElementsByClassName('dplayer-danmaku-item')[0];\n\n            const isMobile = /mobile/i.test(window.navigator.userAgent);\n            this.option.danmaku = danmaku;\n            const xhr = new XMLHttpRequest();\n            xhr.onreadystatechange = () => {\n                if (xhr.readyState === 4) {\n                    if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                        const response = JSON.parse(xhr.responseText);\n                        if (response.code !== 1) {\n                            alert(response.msg);\n                        }\n                        else {\n                            if (this.option.danmaku.addition) {\n                                xhr.onreadystatechange = () => {\n                                    if (xhr.readyState === 4) {\n                                        if (xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n                                            const response2 = JSON.parse(xhr.responseText);\n                                            if (response2.code !== 1) {\n                                                alert(response2.msg);\n                                            }\n                                            else {\n                                                this.danIndex = 0;\n                                                this.dan = response.danmaku.concat(response2.danmaku).sort((a, b) => a.time - b.time);\n                                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                                // autoplay\n                                                if (this.option.autoplay && !isMobile) {\n                                                    this.play();\n                                                }\n                                                else if (isMobile) {\n                                                    this.pause();\n                                                }\n                                            }\n                                        }\n                                        else {\n                                            console.log('Request was unsuccessful: ' + xhr.status);\n                                        }\n                                    }\n                                };\n                                xhr.open('get', this.option.danmaku.addition[0], true);\n                                xhr.send(null);\n                            }\n                            else {\n                                this.danIndex = 0;\n                                this.dan = response.danmaku.sort((a, b) => a.time - b.time);\n                                this.element.getElementsByClassName('dplayer-danloading')[0].style.display = 'none';\n\n                                // autoplay\n                                if (this.option.autoplay && !isMobile) {\n                                    this.play();\n                                }\n                                else if (isMobile) {\n                                    this.pause();\n                                }\n                            }\n                        }\n                    }\n                    else {\n                        console.log('Request was unsuccessful: ' + xhr.status);\n                    }\n                }\n            };\n            let apiurl;\n            if (this.option.danmaku.maximum) {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}&max=${this.option.danmaku.maximum}`;\n            }\n            else {\n                apiurl = `${this.option.danmaku.api}?id=${this.option.danmaku.id}`;\n            }\n            xhr.open('get', apiurl, true);\n            xhr.send(null);\n        }\n    }\n}\n\nmodule.exports = DPlayer;\n\n\n/** WEBPACK FOOTER **\n ** ./src/DPlayer.js\n **/","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\nif(typeof content === 'string') content = [[module.id, content, '']];\n// add the styles to the DOM\nvar update = require(\"!./../node_modules/style-loader/addStyles.js\")(content, {});\nif(content.locals) module.exports = content.locals;\n// Hot Module Replacement\nif(module.hot) {\n\t// When the styles change, update the <style> tags\n\tif(!content.locals) {\n\t\tmodule.hot.accept(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\", function() {\n\t\t\tvar newContent = require(\"!!./../node_modules/css-loader/index.js!./../node_modules/postcss-loader/index.js!./../node_modules/sass-loader/index.js!./DPlayer.scss\");\n\t\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\t\t\tupdate(newContent);\n\t\t});\n\t}\n\t// When the module is disposed, remove the <style> tags\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/DPlayer.scss\n ** module id = 1\n ** module chunks = 0\n **/","exports = module.exports = require(\"./../node_modules/css-loader/lib/css-base.js\")();\n// imports\n\n\n// module\nexports.push([module.id, \".dplayer{position:relative;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;line-height:1}.dplayer:-webkit-full-screen{width:100%;height:100%;background:#000}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{-webkit-animation:danmaku-center 6s linear;animation:danmaku-center 6s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer:-webkit-full-screen .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{-webkit-animation:danmaku 8s linear;animation:danmaku 8s linear;-webkit-animation-play-state:paused;animation-play-state:paused}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{height:60px}.dplayer.dplayer-no-danmaku .dplayer-controller .dplayer-icons .dplayer-comment,.dplayer.dplayer-no-danmaku .dplayer-danmaku{display:none}.dplayer.dplayer-playing .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:running!important;animation-play-state:running!important}@media (min-width:900px){.dplayer.dplayer-playing .dplayer-controller,.dplayer.dplayer-playing .dplayer-controller-mask{opacity:0}.dplayer.dplayer-playing:hover .dplayer-controller,.dplayer.dplayer-playing:hover .dplayer-controller-mask{opacity:1}}.dplayer.dplayer-loading .dplayer-bezel .diplayer-loading-icon{display:block}.dplayer.dplayer-loading .dplayer-danmaku .dplayer-danmaku-move{-webkit-animation-play-state:paused!important;animation-play-state:paused!important}.dplayer.dplayer-hide-controller .dplayer-controller,.dplayer.dplayer-hide-controller .dplayer-controller-mask{opacity:0;-webkit-transform:translateY(100%);transform:translateY(100%)}.dplayer.dplayer-show-controller .dplayer-controller,.dplayer.dplayer-show-controller .dplayer-controller-mask{opacity:1}.dplayer .dplayer-mask{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1;display:none}.dplayer .dplayer-mask.dplayer-mask-show{display:block}.dplayer .dplayer-video-wrap{position:relative;background:#000;font-size:0;width:100%;height:100%}.dplayer .dplayer-video-wrap .dplayer-video{width:100%;height:100%}.dplayer .dplayer-danmaku{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff}.dplayer .dplayer-danmaku .dplayer-danmaku-item{display:inline-block;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:default;white-space:nowrap;font-weight:bolder;text-shadow:.5px .5px .5px rgba(0,0,0,.5)}.dplayer .dplayer-danmaku .dplayer-danmaku-item--demo{position:absolute;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-right{position:absolute;right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.dplayer .dplayer-danmaku .dplayer-danmaku-right.dplayer-danmaku-move{will-change:transform;-webkit-animation:danmaku 5s linear;animation:danmaku 5s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes danmaku{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom,.dplayer .dplayer-danmaku .dplayer-danmaku-top{position:absolute;width:100%;text-align:center;visibility:hidden}.dplayer .dplayer-danmaku .dplayer-danmaku-bottom.dplayer-danmaku-move,.dplayer .dplayer-danmaku .dplayer-danmaku-top.dplayer-danmaku-move{will-change:visibility;-webkit-animation:danmaku-center 4s linear;animation:danmaku-center 4s linear;-webkit-animation-play-state:paused;animation-play-state:paused}@-webkit-keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}@keyframes danmaku-center{0%{visibility:visible}to{visibility:visible}}.dplayer .dplayer-bezel{position:absolute;left:0;right:0;top:0;bottom:0;font-size:22px;color:#fff;pointer-events:none}.dplayer .dplayer-bezel .dplayer-fill{fill:hsla(0,0%,100%,.8)}.dplayer .dplayer-bezel .dplayer-bezel-icon{position:absolute;top:50%;left:50%;margin:-26px 0 0 -26px;height:52px;width:52px;padding:12px;box-sizing:border-box;background:rgba(0,0,0,.5);border-radius:50%;opacity:0;pointer-events:none}.dplayer .dplayer-bezel .dplayer-bezel-icon.dplayer-bezel-transition{-webkit-animation:bezel-hide .5s linear;animation:bezel-hide .5s linear}@-webkit-keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}@keyframes bezel-hide{0%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}to{opacity:0;-webkit-transform:scale(2);transform:scale(2)}}.dplayer .dplayer-bezel .dplayer-danloading{position:absolute;top:50%;margin-top:-7px;width:100%;text-align:center;font-size:14px;line-height:14px;-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out}.dplayer .dplayer-bezel .diplayer-loading-icon{display:none;position:absolute;top:50%;left:50%;margin:-18px 0 0 -18px;height:36px;width:36px;pointer-events:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-hide{display:none}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot{-webkit-animation:diplayer-loading-dot-fade .8s ease infinite;animation:diplayer-loading-dot-fade .8s ease infinite;opacity:0;fill:#fff;-webkit-transform-origin:4px 4px;transform-origin:4px 4px}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-7{-webkit-animation-delay:.7s;animation-delay:.7s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-6{-webkit-animation-delay:.6s;animation-delay:.6s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-5{-webkit-animation-delay:.5s;animation-delay:.5s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-4{-webkit-animation-delay:.4s;animation-delay:.4s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-3{-webkit-animation-delay:.3s;animation-delay:.3s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-2{-webkit-animation-delay:.2s;animation-delay:.2s}.dplayer .dplayer-bezel .diplayer-loading-icon .diplayer-loading-dot.diplayer-loading-dot-1{-webkit-animation-delay:.1s;animation-delay:.1s}@-webkit-keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}@keyframes diplayer-loading-dot-fade{0%{opacity:.7;-webkit-transform:scale(1.2);transform:scale(1.2)}50%{opacity:.25;-webkit-transform:scale(.9);transform:scale(.9)}to{opacity:.25;-webkit-transform:scale(.85);transform:scale(.85)}}.dplayer .dplayer-controller-mask{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAADGCAYAAAAT+OqFAAAAdklEQVQoz42QQQ7AIAgEF/T/D+kbq/RWAlnQyyazA4aoAB4FsBSA/bFjuF1EOL7VbrIrBuusmrt4ZZORfb6ehbWdnRHEIiITaEUKa5EJqUakRSaEYBJSCY2dEstQY7AuxahwXFrvZmWl2rh4JZ07z9dLtesfNj5q0FU3A5ObbwAAAABJRU5ErkJggg==) repeat-x bottom;height:98px;width:100%}.dplayer .dplayer-controller,.dplayer .dplayer-controller-mask{position:absolute;bottom:0;-webkit-transition:all .3s ease;transition:all .3s ease}.dplayer .dplayer-controller{left:0;right:0;height:41px;padding:0 20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dplayer .dplayer-controller .dplayer-bar-wrap{padding:5px 0;cursor:pointer;position:absolute;bottom:33px;width:calc(100% - 40px);height:3px}.dplayer .dplayer-controller .dplayer-bar-wrap:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar{position:relative;height:3px;width:100%;background:hsla(0,0%,100%,.2);cursor:pointer!important}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-loaded{position:absolute;left:0;top:0;bottom:0;background:hsla(0,0%,100%,.4);height:3px;-webkit-transition:all .5s ease;transition:all .5s ease;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played{position:absolute;left:0;top:0;bottom:0;height:3px;will-change:width}.dplayer .dplayer-controller .dplayer-bar-wrap .dplayer-bar .dplayer-played .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons{height:38px;position:absolute;bottom:0}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-left .dplayer-icon{padding:7px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right{right:20px}.dplayer .dplayer-controller .dplayer-icons.dplayer-icons-right .dplayer-icon{padding:8px}.dplayer .dplayer-controller .dplayer-icons #dplayer-menu{stroke:#ddd;stroke-width:1px}.dplayer .dplayer-controller .dplayer-icons .dplayer-time{line-height:38px;color:#eee;text-shadow:0 0 2px rgba(0,0,0,.5);vertical-align:middle;font-size:13px;cursor:default}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon{width:46px;height:100%;border:none;background-color:transparent;outline:none;cursor:pointer;opacity:.8;-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;vertical-align:middle;box-sizing:border-box;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon:hover{opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-comment-icon{padding:10px 9px 9px}.dplayer .dplayer-controller .dplayer-icons .dplayer-icon.dplayer-setting-icon{padding-top:8.5px}.dplayer .dplayer-controller .dplayer-icons .dplayer-fill{fill:#fff}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume{position:relative;display:inline-block;cursor:pointer!important;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume:hover .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-volume-bar{width:45px!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume.dplayer-volume-active .dplayer-thumb{-webkit-transform:scale(1)!important;transform:scale(1)!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap{display:inline-block;margin:0 5px 0 -5px;vertical-align:middle;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar{position:relative;top:17px;width:0;height:3px;background:#aaa;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-volume .dplayer-volume-bar-wrap .dplayer-volume-bar .dplayer-volume-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(170px);transform:translateX(170px);width:150px;height:120px;border-radius:2px;background:rgba(28,28,28,.9);padding:7px 0;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;overflow:hidden;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-box.dplayer-setting-box-narrow{width:70px;height:180px;text-align:center}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-item:hover,.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-speed-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku{padding:5px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-label{padding:0 10px;display:inline}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku:hover .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-label{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku.dplayer-setting-danmaku-active .dplayer-danmaku-bar-wrap{display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap{padding:0 10px;box-sizing:border-box;display:none;vertical-align:middle;height:100%;width:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar{position:relative;top:8.5px;width:100%;height:3px;background:#fff;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner{position:absolute;bottom:0;left:0;height:100%;-webkit-transition:all .1s ease;transition:all .1s ease;background:#aaa;will-change:width}.dplayer .dplayer-controller .dplayer-icons .dplayer-setting .dplayer-setting-danmaku .dplayer-danmaku-bar-wrap .dplayer-danmaku-bar .dplayer-danmaku-bar-inner .dplayer-thumb{position:absolute;top:0;right:5px;margin-top:-4px;margin-right:-10px;height:11px;width:11px;border-radius:50%;cursor:pointer!important;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;background:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment{display:inline-block;height:100%}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box{position:absolute;right:0;bottom:50px;-webkit-transform:translateX(382px);transform:translateX(382px);border-radius:2px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;z-index:2}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box.dplayer-comment-box-open{-webkit-transform:translateX(0);transform:translateX(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon{height:24px;width:24px;position:absolute;top:5px;left:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box{position:absolute;background:#fff;bottom:40px;left:-93px;box-shadow:0 0 25px rgba(0,0,0,.3);border-radius:4px;padding:10px 10px 16px;font-size:14px;width:204px;-webkit-transition:all .3s ease-in-out;transition:all .3s ease-in-out;-webkit-transform:scale(0);transform:scale(0)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box.dplayer-comment-setting-open{-webkit-transform:scale(1);transform:scale(1)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box:after{content:'';position:absolute;top:100%;left:50%;margin-left:-12px;background:url('data:image/svg+xml;utf8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 24 12\\\"><path fill=\\\"#FFF\\\" d=\\\"M23.7,0c-1.2,0-2.4,0.5-3.2,1.3l-7.7,7.8c-0.4,0.4-1.1,0.4-1.5,0L3.5,1.3C2.7,0.5,1.5,0,0.3,0\\\"/></svg>');width:24px;height:12px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box input[type=radio]{display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box label{cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-title{font-size:14px;color:#555;padding:6px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(2) span{border-radius:4px 0 0 4px}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type label:nth-child(4) span{border-radius:0 4px 4px 0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type span{width:33%;padding:4px 6px;line-height:16px;display:inline-block;font-size:12px;color:#555;border:1px solid #e4e4e6;margin-right:-1px;box-sizing:border-box;text-align:center;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-type input:checked+span{background:#e4e4e6}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color{font-size:0}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color label{font-size:0;padding:6px;display:inline-block}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span{width:22px;height:22px;display:inline-block;border-radius:50%;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color span:hover{-webkit-animation:my-face 5s infinite ease-in-out;animation:my-face 5s infinite ease-in-out;box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12)}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-setting-box .dplayer-comment-setting-color input:checked+span{box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12);border:none!important}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-comment-input{outline:none;border:none;padding:8px 31px;font-size:14px;line-height:18px;text-align:center;border-radius:4px;width:300px;background:#fff;margin:0;height:auto}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon{height:22px;width:22px;position:absolute;top:6px;right:7px;padding:0;opacity:1}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon:hover .dplayer-fill{fill:#aaa}.dplayer .dplayer-controller .dplayer-icons .dplayer-comment .dplayer-comment-box .dplayer-send-icon .dplayer-fill{-webkit-transition:all .2s ease-in-out;transition:all .2s ease-in-out;fill:#ddd}.dplayer .dplayer-controller .dplayer-icons .dplayer-label{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle{width:32px;height:100%;text-align:center;display:inline-block;font-size:0;vertical-align:middle;float:right}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input{max-height:0;max-width:0;display:none}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 0 #dfdfdf;border:1px solid #dfdfdf;height:20px;width:32px;border-radius:10px;box-sizing:border-box;cursor:pointer;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after,.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:before{content:\\\"\\\";position:absolute;display:block;height:18px;width:18px;top:0;left:0;border-radius:15px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input+label:after{background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label{border-color:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:before{width:30px;background:hsla(0,0%,100%,.5)}.dplayer .dplayer-controller .dplayer-icons .dplayer-toggle input:checked+label:after{left:12px}.dplayer .dplayer-menu{position:absolute;width:150px;border-radius:2px;background:rgba(28,28,28,.9);padding:5px 0;overflow:hidden;z-index:3;display:none}.dplayer .dplayer-menu.dplayer-menu-show{display:block}.dplayer .dplayer-menu .dplayer-menu-item{height:30px;padding:5px 10px;box-sizing:border-box;cursor:pointer}.dplayer .dplayer-menu .dplayer-menu-item:hover{background-color:hsla(0,0%,100%,.1)}.dplayer .dplayer-menu .dplayer-menu-item .dplayer-menu-label a{color:#eee;font-size:13px;display:inline-block;vertical-align:middle}@-webkit-keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}@keyframes my-face{2%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}4%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}6%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}8%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}10%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}12%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}14%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}16%{-webkit-transform:translateY(-.5px) rotate(-1.5deg);transform:translateY(-.5px) rotate(-1.5deg)}18%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}20%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}22%{-webkit-transform:translateY(.5px) rotate(-1.5deg);transform:translateY(.5px) rotate(-1.5deg)}24%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}26%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}28%{-webkit-transform:translateY(.5px) rotate(1.5deg);transform:translateY(.5px) rotate(1.5deg)}30%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}32%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}34%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}36%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}38%{-webkit-transform:translateY(1.5px) rotate(-1.5deg);transform:translateY(1.5px) rotate(-1.5deg)}40%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}42%{-webkit-transform:translateY(2.5px) rotate(-1.5deg);transform:translateY(2.5px) rotate(-1.5deg)}44%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}46%{-webkit-transform:translateY(-1.5px) rotate(2.5deg);transform:translateY(-1.5px) rotate(2.5deg)}48%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}50%{-webkit-transform:translateY(.5px) rotate(.5deg);transform:translateY(.5px) rotate(.5deg)}52%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}54%{-webkit-transform:translateY(-1.5px) rotate(1.5deg);transform:translateY(-1.5px) rotate(1.5deg)}56%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}58%{-webkit-transform:translateY(.5px) rotate(2.5deg);transform:translateY(.5px) rotate(2.5deg)}60%{-webkit-transform:translateY(2.5px) rotate(2.5deg);transform:translateY(2.5px) rotate(2.5deg)}62%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}64%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}66%{-webkit-transform:translateY(1.5px) rotate(-.5deg);transform:translateY(1.5px) rotate(-.5deg)}68%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}70%{-webkit-transform:translateY(1.5px) rotate(.5deg);transform:translateY(1.5px) rotate(.5deg)}72%{-webkit-transform:translateY(2.5px) rotate(1.5deg);transform:translateY(2.5px) rotate(1.5deg)}74%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}76%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}78%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}80%{-webkit-transform:translateY(1.5px) rotate(1.5deg);transform:translateY(1.5px) rotate(1.5deg)}82%{-webkit-transform:translateY(-.5px) rotate(.5deg);transform:translateY(-.5px) rotate(.5deg)}84%{-webkit-transform:translateY(1.5px) rotate(2.5deg);transform:translateY(1.5px) rotate(2.5deg)}86%{-webkit-transform:translateY(-1.5px) rotate(-1.5deg);transform:translateY(-1.5px) rotate(-1.5deg)}88%{-webkit-transform:translateY(-.5px) rotate(2.5deg);transform:translateY(-.5px) rotate(2.5deg)}90%{-webkit-transform:translateY(2.5px) rotate(-.5deg);transform:translateY(2.5px) rotate(-.5deg)}92%{-webkit-transform:translateY(.5px) rotate(-.5deg);transform:translateY(.5px) rotate(-.5deg)}94%{-webkit-transform:translateY(2.5px) rotate(.5deg);transform:translateY(2.5px) rotate(.5deg)}96%{-webkit-transform:translateY(-.5px) rotate(1.5deg);transform:translateY(-.5px) rotate(1.5deg)}98%{-webkit-transform:translateY(-1.5px) rotate(-.5deg);transform:translateY(-1.5px) rotate(-.5deg)}0%,to{-webkit-transform:translate(0) rotate(0deg);transform:translate(0) rotate(0deg)}}\", \"\"]);\n\n// exports\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader!./~/postcss-loader!./~/sass-loader!./src/DPlayer.scss\n ** module id = 2\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\n// css base code, injected by the css-loader\r\nmodule.exports = function() {\r\n\tvar list = [];\r\n\r\n\t// return the list of modules as css string\r\n\tlist.toString = function toString() {\r\n\t\tvar result = [];\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar item = this[i];\r\n\t\t\tif(item[2]) {\r\n\t\t\t\tresult.push(\"@media \" + item[2] + \"{\" + item[1] + \"}\");\r\n\t\t\t} else {\r\n\t\t\t\tresult.push(item[1]);\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result.join(\"\");\r\n\t};\r\n\r\n\t// import a list of modules into the list\r\n\tlist.i = function(modules, mediaQuery) {\r\n\t\tif(typeof modules === \"string\")\r\n\t\t\tmodules = [[null, modules, \"\"]];\r\n\t\tvar alreadyImportedModules = {};\r\n\t\tfor(var i = 0; i < this.length; i++) {\r\n\t\t\tvar id = this[i][0];\r\n\t\t\tif(typeof id === \"number\")\r\n\t\t\t\talreadyImportedModules[id] = true;\r\n\t\t}\r\n\t\tfor(i = 0; i < modules.length; i++) {\r\n\t\t\tvar item = modules[i];\r\n\t\t\t// skip already imported module\r\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\r\n\t\t\t//  when a module is imported multiple times with different media queries.\r\n\t\t\t//  I hope this will never occur (Hey this way we have smaller bundles)\r\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\r\n\t\t\t\tif(mediaQuery && !item[2]) {\r\n\t\t\t\t\titem[2] = mediaQuery;\r\n\t\t\t\t} else if(mediaQuery) {\r\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\r\n\t\t\t\t}\r\n\t\t\t\tlist.push(item);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\treturn list;\r\n};\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/css-loader/lib/css-base.js\n ** module id = 3\n ** module chunks = 0\n **/","/*\r\n\tMIT License http://www.opensource.org/licenses/mit-license.php\r\n\tAuthor Tobias Koppers @sokra\r\n*/\r\nvar stylesInDom = {},\r\n\tmemoize = function(fn) {\r\n\t\tvar memo;\r\n\t\treturn function () {\r\n\t\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\r\n\t\t\treturn memo;\r\n\t\t};\r\n\t},\r\n\tisOldIE = memoize(function() {\r\n\t\treturn /msie [6-9]\\b/.test(window.navigator.userAgent.toLowerCase());\r\n\t}),\r\n\tgetHeadElement = memoize(function () {\r\n\t\treturn document.head || document.getElementsByTagName(\"head\")[0];\r\n\t}),\r\n\tsingletonElement = null,\r\n\tsingletonCounter = 0,\r\n\tstyleElementsInsertedAtTop = [];\r\n\r\nmodule.exports = function(list, options) {\r\n\tif(typeof DEBUG !== \"undefined\" && DEBUG) {\r\n\t\tif(typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\r\n\t}\r\n\r\n\toptions = options || {};\r\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\r\n\t// tags it will allow on a page\r\n\tif (typeof options.singleton === \"undefined\") options.singleton = isOldIE();\r\n\r\n\t// By default, add <style> tags to the bottom of <head>.\r\n\tif (typeof options.insertAt === \"undefined\") options.insertAt = \"bottom\";\r\n\r\n\tvar styles = listToStyles(list);\r\n\taddStylesToDom(styles, options);\r\n\r\n\treturn function update(newList) {\r\n\t\tvar mayRemove = [];\r\n\t\tfor(var i = 0; i < styles.length; i++) {\r\n\t\t\tvar item = styles[i];\r\n\t\t\tvar domStyle = stylesInDom[item.id];\r\n\t\t\tdomStyle.refs--;\r\n\t\t\tmayRemove.push(domStyle);\r\n\t\t}\r\n\t\tif(newList) {\r\n\t\t\tvar newStyles = listToStyles(newList);\r\n\t\t\taddStylesToDom(newStyles, options);\r\n\t\t}\r\n\t\tfor(var i = 0; i < mayRemove.length; i++) {\r\n\t\t\tvar domStyle = mayRemove[i];\r\n\t\t\tif(domStyle.refs === 0) {\r\n\t\t\t\tfor(var j = 0; j < domStyle.parts.length; j++)\r\n\t\t\t\t\tdomStyle.parts[j]();\r\n\t\t\t\tdelete stylesInDom[domStyle.id];\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n}\r\n\r\nfunction addStylesToDom(styles, options) {\r\n\tfor(var i = 0; i < styles.length; i++) {\r\n\t\tvar item = styles[i];\r\n\t\tvar domStyle = stylesInDom[item.id];\r\n\t\tif(domStyle) {\r\n\t\t\tdomStyle.refs++;\r\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\r\n\t\t\t}\r\n\t\t\tfor(; j < item.parts.length; j++) {\r\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvar parts = [];\r\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\r\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\r\n\t\t\t}\r\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction listToStyles(list) {\r\n\tvar styles = [];\r\n\tvar newStyles = {};\r\n\tfor(var i = 0; i < list.length; i++) {\r\n\t\tvar item = list[i];\r\n\t\tvar id = item[0];\r\n\t\tvar css = item[1];\r\n\t\tvar media = item[2];\r\n\t\tvar sourceMap = item[3];\r\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\r\n\t\tif(!newStyles[id])\r\n\t\t\tstyles.push(newStyles[id] = {id: id, parts: [part]});\r\n\t\telse\r\n\t\t\tnewStyles[id].parts.push(part);\r\n\t}\r\n\treturn styles;\r\n}\r\n\r\nfunction insertStyleElement(options, styleElement) {\r\n\tvar head = getHeadElement();\r\n\tvar lastStyleElementInsertedAtTop = styleElementsInsertedAtTop[styleElementsInsertedAtTop.length - 1];\r\n\tif (options.insertAt === \"top\") {\r\n\t\tif(!lastStyleElementInsertedAtTop) {\r\n\t\t\thead.insertBefore(styleElement, head.firstChild);\r\n\t\t} else if(lastStyleElementInsertedAtTop.nextSibling) {\r\n\t\t\thead.insertBefore(styleElement, lastStyleElementInsertedAtTop.nextSibling);\r\n\t\t} else {\r\n\t\t\thead.appendChild(styleElement);\r\n\t\t}\r\n\t\tstyleElementsInsertedAtTop.push(styleElement);\r\n\t} else if (options.insertAt === \"bottom\") {\r\n\t\thead.appendChild(styleElement);\r\n\t} else {\r\n\t\tthrow new Error(\"Invalid value for parameter 'insertAt'. Must be 'top' or 'bottom'.\");\r\n\t}\r\n}\r\n\r\nfunction removeStyleElement(styleElement) {\r\n\tstyleElement.parentNode.removeChild(styleElement);\r\n\tvar idx = styleElementsInsertedAtTop.indexOf(styleElement);\r\n\tif(idx >= 0) {\r\n\t\tstyleElementsInsertedAtTop.splice(idx, 1);\r\n\t}\r\n}\r\n\r\nfunction createStyleElement(options) {\r\n\tvar styleElement = document.createElement(\"style\");\r\n\tstyleElement.type = \"text/css\";\r\n\tinsertStyleElement(options, styleElement);\r\n\treturn styleElement;\r\n}\r\n\r\nfunction createLinkElement(options) {\r\n\tvar linkElement = document.createElement(\"link\");\r\n\tlinkElement.rel = \"stylesheet\";\r\n\tinsertStyleElement(options, linkElement);\r\n\treturn linkElement;\r\n}\r\n\r\nfunction addStyle(obj, options) {\r\n\tvar styleElement, update, remove;\r\n\r\n\tif (options.singleton) {\r\n\t\tvar styleIndex = singletonCounter++;\r\n\t\tstyleElement = singletonElement || (singletonElement = createStyleElement(options));\r\n\t\tupdate = applyToSingletonTag.bind(null, styleElement, styleIndex, false);\r\n\t\tremove = applyToSingletonTag.bind(null, styleElement, styleIndex, true);\r\n\t} else if(obj.sourceMap &&\r\n\t\ttypeof URL === \"function\" &&\r\n\t\ttypeof URL.createObjectURL === \"function\" &&\r\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\r\n\t\ttypeof Blob === \"function\" &&\r\n\t\ttypeof btoa === \"function\") {\r\n\t\tstyleElement = createLinkElement(options);\r\n\t\tupdate = updateLink.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t\tif(styleElement.href)\r\n\t\t\t\tURL.revokeObjectURL(styleElement.href);\r\n\t\t};\r\n\t} else {\r\n\t\tstyleElement = createStyleElement(options);\r\n\t\tupdate = applyToTag.bind(null, styleElement);\r\n\t\tremove = function() {\r\n\t\t\tremoveStyleElement(styleElement);\r\n\t\t};\r\n\t}\r\n\r\n\tupdate(obj);\r\n\r\n\treturn function updateStyle(newObj) {\r\n\t\tif(newObj) {\r\n\t\t\tif(newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap)\r\n\t\t\t\treturn;\r\n\t\t\tupdate(obj = newObj);\r\n\t\t} else {\r\n\t\t\tremove();\r\n\t\t}\r\n\t};\r\n}\r\n\r\nvar replaceText = (function () {\r\n\tvar textStore = [];\r\n\r\n\treturn function (index, replacement) {\r\n\t\ttextStore[index] = replacement;\r\n\t\treturn textStore.filter(Boolean).join('\\n');\r\n\t};\r\n})();\r\n\r\nfunction applyToSingletonTag(styleElement, index, remove, obj) {\r\n\tvar css = remove ? \"\" : obj.css;\r\n\r\n\tif (styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = replaceText(index, css);\r\n\t} else {\r\n\t\tvar cssNode = document.createTextNode(css);\r\n\t\tvar childNodes = styleElement.childNodes;\r\n\t\tif (childNodes[index]) styleElement.removeChild(childNodes[index]);\r\n\t\tif (childNodes.length) {\r\n\t\t\tstyleElement.insertBefore(cssNode, childNodes[index]);\r\n\t\t} else {\r\n\t\t\tstyleElement.appendChild(cssNode);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction applyToTag(styleElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar media = obj.media;\r\n\r\n\tif(media) {\r\n\t\tstyleElement.setAttribute(\"media\", media)\r\n\t}\r\n\r\n\tif(styleElement.styleSheet) {\r\n\t\tstyleElement.styleSheet.cssText = css;\r\n\t} else {\r\n\t\twhile(styleElement.firstChild) {\r\n\t\t\tstyleElement.removeChild(styleElement.firstChild);\r\n\t\t}\r\n\t\tstyleElement.appendChild(document.createTextNode(css));\r\n\t}\r\n}\r\n\r\nfunction updateLink(linkElement, obj) {\r\n\tvar css = obj.css;\r\n\tvar sourceMap = obj.sourceMap;\r\n\r\n\tif(sourceMap) {\r\n\t\t// http://stackoverflow.com/a/26603875\r\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\r\n\t}\r\n\r\n\tvar blob = new Blob([css], { type: \"text/css\" });\r\n\r\n\tvar oldSrc = linkElement.href;\r\n\r\n\tlinkElement.href = URL.createObjectURL(blob);\r\n\r\n\tif(oldSrc)\r\n\t\tURL.revokeObjectURL(oldSrc);\r\n}\r\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/style-loader/addStyles.js\n ** module id = 4\n ** module chunks = 0\n **/"],"sourceRoot":""}
  • dplayer-for-wp/trunk/readme.txt

    r1520736 r1530082  
    44Requires at least: 3.0.1
    55Tested up to: 4.6.1
    6 Stable tag: 1.0.9
     6Stable tag: 1.1.2
    77License: GPLv3
    88License URI: http://www.gnu.org/licenses/gpl-3.0.html
     
    3939
    4040== Changelog ==
     41
     42= 1.1.2 =
     43* Update DPlayer to version 1.1.2
     44* Add support for hls.min.js
     45* Add support for flv.min.js
    4146
    4247= 1.0.9 =
Note: See TracChangeset for help on using the changeset viewer.