var WebVTTParser=function(){this.parse=function(e,t){var n=Date.now(),a=0,i=e.split(/\r\n|\r|\n/),r=!1,s=[],l=[];function o(e,t){l.push({message:e,line:a+1,col:t})}var u=i[a],f=u.length,c="WEBVTT",m=0,p=c.length;for("\ufeff"===u[0]&&(p+=m=1),(f
t.startTime?1:e.endTime>t.endTime?-1:e.endTime"==r[++s]){if(s++,n.test(r[s])&&u("'--\x3e' not separated from timestamp by whitespace."),a(o),e.endTime=i(),null!=e.endTime)return e.endTime<=e.startTime&&u("End timestamp is not greater than start timestamp."),n.test(r[s])&&!1,a(o),function(e,t){for(var n=e.split(o),a=[],i=0;i100%.");continue}t.snapToLines=!1}t.linePosition=parseInt(value,10)}else if("position"==s){if("%"!=value[value.length-1]){u("Text position must be a percentage.");continue}if(100100%.");continue}t.textPosition=parseInt(value,10)}else if("size"==s){if("%"!=value[value.length-1]){u("Size must be a percentage.");continue}if(100100%.");continue}t.size=parseInt(value,10)}else if("align"==s){var l=["start","middle","end","left","right"];if(-1==l.indexOf(value)){u("Alignment can only be set to one of "+l.join(", ")+".");continue}t.alignment=value}else u("Invalid setting.")}}(r.substring(s),e),!0}else u("No valid timestamp separator found.");else u("No valid timestamp separator found.");else u("No valid timestamp separator found.")},this.parseTimestamp=function(){var e=i();if(null==r[s])return e;u("Timestamp must not have trailing characters.")}},WebVTTCueTextParser=function(f,t,c){f=f;var m=0,p=function(e){"metadata"!=c&&t(e,m+1)};function d(){for(var e="data",t="",n="",a=[];null!=f[m-1]||0==m;){var i=f[m];if("data"==e)if("&"==i)n=i,e="escape";else if("<"==i&&""==t)e="tag";else{if("<"==i||null==i)return["text",t];t+=i}else if("escape"==e)if("&"==i)p("Incorrect escape."),t+=n,n=i;else if(/[abglmnsprt]/.test(i))n+=i;else if(";"==i)"&"==n?t+="&":"<"==n?t+="<":">"==n?t+=">":"&lrm"==n?t+="":"&rlm"==n?t+="":" "==n?t+=" ":(p("Incorrect escape."),t+=n+";"),e="data";else{if("<"==i||null==i)return p("Incorrect escape."),["text",t+=n];p("Incorrect escape."),t+=n+i,e="data"}else if("tag"==e)if("\t"==i||"\n"==i||"\f"==i||" "==i)e="start tag annotation";else if("."==i)e="start tag class";else if("/"==i)e="end tag";else if(/\d/.test(i))t=i,e="timestamp tag";else{if(">"==i||null==i)return">"==i&&m++,["start tag","",[],""];t=i,e="start tag"}else if("start tag"==e)if("\t"==i||"\f"==i||" "==i)e="start tag annotation";else if("\n"==i)n=i,e="start tag annotation";else if("."==i)e="start tag class";else{if(">"==i||null==i)return">"==i&&m++,["start tag",t,[],""];t+=i}else if("start tag class"==e)if("\t"==i||"\f"==i||" "==i)a.push(n),n="",e="start tag annotation";else if("\n"==i)a.push(n),n=i,e="start tag annotation";else if("."==i)a.push(n),n="";else{if(">"==i||null==i)return">"==i&&m++,a.push(n),["start tag",t,a,""];n+=i}else if("start tag annotation"==e){if(">"==i||null==i)return">"==i&&m++,["start tag",t,a,n=n.split(/[\u0020\t\f\r\n]+/).filter(function(e){if(e)return!0}).join(" ")];n+=i}else if("end tag"==e){if(">"==i||null==i)return">"==i&&m++,["end tag",t];t+=i}else if("timestamp tag"==e){if(">"==i||null==i)return">"==i&&m++,["timestamp",t];t+=i}else p("Never happens.");m++}}this.parse=function(e,t){var n={children:[]},a=n,i=[];function r(e){a.children.push({type:"object",name:e[1],classes:e[2],children:[],parent:a}),a=a.children[a.children.length-1]}function s(e){for(var t=a;t;){if(t.name==e)return!0;t=t.parent}}for(;null!=f[m];){var l=d();if("text"==l[0])a.children.push({type:"text",value:l[1],parent:a});else if("start tag"==l[0]){"chapters"==c&&p("Start tags not allowed in chapter title text.");var o=l[1];"v"!=o&&"lang"!=o&&""!=l[3]&&p("Only and can have an annotation."),"c"==o||"i"==o||"b"==o||"u"==o||"ruby"==o?r(l):"rt"==o&&"ruby"==a.name?r(l):"v"==o?(s("v")&&p(" cannot be nested inside itself."),r(l),a.value=l[3],l[3]||p(" requires an annotation.")):"lang"==o?(r(l),a.value=l[3]):p("Incorrect start tag.")}else if("end tag"==l[0])"chapters"==c&&p("End tags not allowed in chapter title text."),l[1]==a.name?a=a.parent:"ruby"==l[1]&&"rt"==a.name?a=a.parent.parent:p("Incorrect end tag.");else if("timestamp"==l[0]){"chapters"==c&&p("Timestamp not allowed in chapter title text.");var u=new WebVTTCueTimingsAndSettingsParser(l[1],p).parseTimestamp();null!=u&&((u<=e||t<=u)&&p("Timestamp must be between start timestamp and end timestamp."),0=u&&p("Timestamp must be greater than any previous timestamp."),a.children.push({type:"timestamp",value:u,parent:a}),i.push(u))}}for(;a.parent;)"v"!=a.name&&p("Required end tag missing."),a=a.parent;return n}},WebVTTSerializer=function(){function a(e){return e.startTime+" "+e.endTime+"\n"+function e(t){for(var n="",a=0;a",i.children&&(n+=e(i.children)),n+=""+i.name+">"}else n+="<"+i.value+">"}return n}(e.tree.children)+"\n\n"}this.serialize=function(e){for(var t="",n=0;n