diff --git a/icon128.png b/icon128.png index ff90f08..6d06a8b 100644 Binary files a/icon128.png and b/icon128.png differ diff --git a/icon48.png b/icon48.png index 30250cd..4000daf 100644 Binary files a/icon48.png and b/icon48.png differ diff --git a/img/banner.png b/img/banner.png index b51c958..79b02e9 100644 Binary files a/img/banner.png and b/img/banner.png differ diff --git a/img/screen.png b/img/screen.png index 9611217..a661bae 100644 Binary files a/img/screen.png and b/img/screen.png differ diff --git a/player_pre.js b/player_pre.js index 254a785..42e5b1b 100644 --- a/player_pre.js +++ b/player_pre.js @@ -1 +1 @@ -!function(e){"use strict";const t=e.document,n=e.performance,r="2018.4.6",i=1.5,a=60,o=40,s=15e3,c=15e3,u=6e3,l=1,d=100,f=4,h=2,m=1,g=5,p=3,y=1,v=2,b=3,E=4,$=1,w=2,k=3,I=4,S=5,N=6,_=7,T=8,x=-1,L=0,C=1,B=2,F=3,M="Сервер вернул код ",A=Number.MIN_SAFE_INTEGER+1e3,D=Number.MAX_SAFE_INTEGER-1e3,O=Number.MIN_SAFE_INTEGER,X=0,P=1,R=0,J=1,j=2,q=1,U=2,H=3,Y=4,W=0;var G=!1,K=[];function V(e){if(!e)throw new Error("Проверка не пройдена")}function z(e){return ve.GetText(e)}function Q(e){return"object"==typeof e&&null!==e}function Z(e){return"number"==typeof e&&e==e}function ee(e){return"string"==typeof e&&""!==e}function te(e,t){if(V("number"==typeof e&&Number.isInteger(t)&&t>=0&&t<=20),0===t)return Math.round(e);var n=Math.pow(10,t);return Math.round(e*n)/n}function ne(e,t,n){return V(Number.isFinite(e)&&Number.isFinite(t)&&Number.isFinite(n)&&t<=n),Math.min(Math.max(e,t),n)}function re(e){return V("string"==typeof e),(e=(e=function(e){V("string"==typeof e);const n=t.createElement("template");return n.innerHTML=e,n.content.textContent}(e=e.replace(/[\t\r\n]/g," ").replace(/<\s*br[\s\/]*>/gi,"\n"))).replace(/^\s+|[^\S\r\n]+$/gm,"")).replace(/[^\S\r\n]{2,}/g," ")}function ie(e,t){return e.length<=t?e:`${e.slice(0,t)}---8<---Отрезано ${e.length-t}`}function ae(e){const t=getComputedStyle(e);return("scroll"===t.overflowY||"auto"===t.overflowY)&&e.clientHeight=0&&t<=2147483647),new Promise(function(n,r){var i=setTimeout(n,t);e&&e.ЗаменитьОбработчик(function(){clearTimeout(i),r(ue.ОБЕЩАНИЕ_ОТМЕНЕНО)})})}function de(e,t,n,r,i,a){switch(V("number"==typeof e&&e>=y&&e<=E),V("number"==typeof t&&t>=w&&t<=T||Q(t)||"string"==typeof t&&e===y),arguments.length){case 2:n=0,r=!0,i=NaN;case 5:V(Number.isFinite(n)&&n>=0),V("boolean"==typeof r),V("number"==typeof i),a=++de._чНомер;case 6:V(Number.isFinite(a));break;default:V(!1)}"number"==typeof t&&he.Окак(`[Очередь] Добавлен сегмент ${a} Состояние=${t} Обработка=${e}`),this.чОбработка=e,this.пДанные=t,this.чДлительность=n,this.лРазрыв=r,this.чTwitchПрошлоВремени=i,this.чНомер=a}function fe(e,n,r,i){V(r>=0),this._сИмяНастройки=e,this._оПараметрыНастройки=ke.ПолучитьПараметрыНастройки(e),this._чШаг=n,this._чТочность=r,this._чТаймер=0,this._кИнтервал=0,this._чДобавить=0,this._узУзел=t.getElementById(i),this._узУзел.addEventListener("mousedown",this),this._Показать()}void 0===e.setImmediate&&(e.setImmediate=function(e){V("function"==typeof e),setTimeout(e,0)}),ue.ОБЕЩАНИЕ_ОТМЕНЕНО=new Error("AbortError"),ue.prototype.НачалоВыполнения=function(){V(!this._лВыполняется),this._лВыполняется=!0},ue.prototype.Отменить=function(){this._лВыполняется=!1,this._фОбработчик&&(this._фОбработчик(),this._фОбработчик=null)},ue.prototype.ЗаменитьОбработчик=function(e){V(this._лВыполняется),V("function"==typeof e||null===e),this._фОбработчик=e},de._чНомер=0,de.prototype.toString=function(){return this.пДанные===w?`${this.чНомер}-${this.чОбработка}-Н`:this.пДанные===k?`${this.чНомер}-${this.чОбработка}-К`:this.лРазрыв?`${this.чНомер}-${this.чОбработка}-Р`:`${this.чНомер}-${this.чОбработка}`},K.ПолучитьКоличествоПреобразованныхСегментов=function(){for(var e=0,t=0;e1.5*a&&me.ЗавершитьРаботуИПоказатьСообщение("J0208"),this.splice(n.кКоличество,0,e)}return e},K.Удалить=function(e,t){if(0!==t){if(void 0===t?t=1:V(Number.isInteger(t)&&t>=1),"number"==typeof e){V(Number.isInteger(e)&&e>=0);var n=e}else if(-1===(n=this.indexOf(e)))return void V(e instanceof de);for(;--t>=0;){switch(V(nthis._ОбработатьТаймер(),130),this._кИнтервал=0,this._ОбработатьТаймер()}return;case"фокусник-изменилосьсостояние":if(e.data.лАктивен)return}0!==this._чТаймер&&(t.removeEventListener("mouseup",this),be.УдалитьОбработчик("фокусник-изменилосьсостояние",this),clearInterval(this._чТаймер),this._чТаймер=0)}catch(e){me.ПойманоИсключение(e)}},fe.prototype._ОбработатьТаймер=function(){try{if(1==++this._кИнтервал||this._кИнтервал>3){const e=ke.Получить(this._сИмяНастройки);let t;(t=this._оПараметрыНастройки.сАвтонастройка&&this._чДобавить<0&&e===this._оПараметрыНастройки.чМинимальное||this._оПараметрыНастройки.сАвтонастройка&&this._чДобавить>0&&e===this._оПараметрыНастройки.чМаксимальное?O:e===O&&this._чДобавить>0?this._оПараметрыНастройки.чМинимальное:e===O&&this._чДобавить<0?this._оПараметрыНастройки.чМаксимальное:e+this._чДобавить)!==O&&(t=ne(te(t,this._чТочность),this._оПараметрыНастройки.чМинимальное,this._оПараметрыНастройки.чМаксимальное)),t!==e&&(ke.Изменить(this._сИмяНастройки,t),this._Показать(t),this.ПослеИзменения(t))}}catch(e){me.ПойманоИсключение(e)}},fe.prototype.Обновить=function(){this._Показать()},fe.prototype.ПослеИзменения=function(){};const he=(()=>{const e=1e3;var t=new Array(1500),r=-1;function i(i,a){V("string"==typeof i&&"string"==typeof a),a=ie(`${i} ${(n.now()/1e3).toFixed(3)} ${a}`,e),++r===t.length&&(r=0),t[r]=a}function a(e){V(1===arguments.length),i(" ",e)}function o(e){return function(t){return"number"==typeof t?t.toFixed(e):"NaN"}}return a(`[Журнал] Журнал запущен ${n.now().toFixed()}мс`),{"Вот":a,"Окак":function(e){V(1===arguments.length),i("~",e)},"Ой":function(e){V(1===arguments.length),i("@",e)},O:function(e){switch(null===(t=e)?"null":typeof t){case"object":return JSON.stringify(e);case"function":return`[function ${e.name}]`;case"symbol":return"[symbol]";default:return String(e)}var t},F0:o(0),F1:o(1),F2:o(2),F3:o(3),"ПолучитьДанныеДляОтчета":function(){var e=r+1;return e===t.length?t:void 0===t[e]?t.slice(0,e):t.slice(e).concat(t.slice(0,e))}}})(),me=(()=>{var i="",a=[];function o(){Ce.ОтключитьПолноэкранныйРежим(),t.body.textContent="";for(let e of t.querySelectorAll('link[rel="stylesheet"], style'))e.remove();for(let e of[t.documentElement,t.body])e.removeAttribute("class"),e.removeAttribute("style"),e.removeAttribute("hidden");return new Promise((e,n)=>{const r=t.createElement("iframe");r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%",r.style.zIndex="100500",r.style.border="0",r.src="report.html",r.addEventListener("load",function t(){r.removeEventListener("load",t),ve.TranslatePage(r.contentDocument),e(r.contentDocument)}),t.body.appendChild(r)})}function s(e,t,n){n&&e.documentElement.classList.add(t);for(let n of e.querySelectorAll("form"))if(n.id===t){se(n,!0);const e=n.querySelector("*[autofocus]");e&&e.focus()}else se(n,!1)}function c(n,c){!function(e){try{chrome.system.memory.getInfo(function(t){e(chrome.runtime.lastError?void 0:t)})}catch(t){e()}}(u=>{!function(e){try{chrome.system.cpu.getInfo(function(t){e(chrome.runtime.lastError?void 0:t)})}catch(t){e()}}(l=>{!function(t,n){o().then(r=>{let i;(i="ОСТАВИТЬ ОТЗЫВ"===t.ПричинаЗавершенияРаботы?r.getElementById("отладка-отзыв"):r.getElementById("отладка-ошибка")).elements["отладка-отчет"].value=JSON.stringify(t),s(r,i.id,!0),r.body.addEventListener("reset",t=>{t.preventDefault(),e.location.reload()});let a,o,c=!1;r.body.addEventListener("submit",t=>{switch(t.preventDefault(),t.target.id){case"отладка-идетотправка":c=!0,a.abort();break;case"отладка-сбойотправки":i.querySelector('*[type="submit"]').click();break;default:r.getElementById("отладка-ходотправки").value=0,s(r,"отладка-идетотправка",!1),a||((a=new XMLHttpRequest).upload.addEventListener("progress",e=>{r.getElementById("отладка-ходотправки").value=e.loaded/e.total}),a.addEventListener("load",e=>{c=e.target.status>=200&&e.target.status<=299}),a.addEventListener("loadend",()=>{c?e.location.reload():s(r,"отладка-сбойотправки",!1)}),o=new FormData(t.target),n&&o.append("отладка-транспортныйпоток-0",new Blob([n],{type:"video/mp2t"}))),a.open("POST","http://r90354g8.beget.tech/tw5/report3.php"),a.send(o)}})})}({"ПричинаЗавершенияРаботы":n,"ВерсияРасширения":r,"Оборзеватель":navigator.userAgent,"Время":(new Date).toISOString(),"Адрес":e.location.href,"Инкогнито":chrome.extension.inIncognitoContext,"Оперативка":u,"Процессор":l,"Видюха":function(){try{var e=t.createElement("canvas").getContext("webgl"),n=e.getExtension("WEBGL_debug_renderer_info");return e.getParameter(n.UNMASKED_VENDOR_WEBGL)+" | "+e.getParameter(n.UNMASKED_RENDERER_WEBGL)}catch(e){}}(),"Язык":function(){try{return z("J0103")}catch(e){}}(),"ОтклонениеПульса":y,"Экран":{top:e.screen.top,left:e.screen.left,width:e.screen.width,height:e.screen.height,availTop:e.screen.availTop,availLeft:e.screen.availLeft,availWidth:e.screen.availWidth,availHeight:e.screen.availHeight,colorDepth:e.screen.colorDepth,pixelDepth:e.screen.pixelDepth,orientation:"object"==typeof e.screen.orientation?e.screen.orientation.type:void 0,screenX:e.screenX,screenY:e.screenY,outerWidth:e.outerWidth,outerHeight:e.outerHeight,innerWidth:e.innerWidth,innerHeight:e.innerHeight,devicePixelRatio:e.devicePixelRatio},"Фокусник":Ee.ПолучитьСостояние(),"Настройки":ke.ПолучитьДанныеДляОтчета(),"Статистика":Ie.ПолучитьДанныеДляОтчета(),"СписокВариантов":i,"СпискиСегментов":a,"Журнал":he.ПолучитьДанныеДляОтчета()},c)})})}function u(e){var t;throw void(G||(console.error(e),Xe(!1),t=z(e),o().then(e=>{e.getElementById("отладка-текстсообщения").textContent=t,s(e,"отладка-сообщение",!0)})))}function l(e,t){if(!G){console.error(e),(e=String(e)).includes("out of memory")&&u("J0200");try{Be.ПоказатьСостояние("Вот","[Отладка] Завершаю работу"),K.ПоказатьСостояние()}catch(e){}Xe(!1),c(e,t)}throw void 0}const d=500,f=200,h=40;var m,g,p=0,y=0;function v(){try{var e=n.now(),r=Date.now();if(Ce.ПолучитьСостояние()!==_&&Ce.ПолучитьСостояние()!==T){var i=e-m,a=i-(t.hidden?Math.max(d,1e3):d),o=r-g-i;(a>f||Math.abs(o)>h)&&he.Ой(`[Пульс] ${he.F0(a)} ${he.F0(o)}`),y=Math.max(y,a)}m=e,g=r,p=setTimeout(v,d)}catch(e){me.ПойманоИсключение(e)}}return{"Запустить":function(){V(0===p),m=n.now(),g=Date.now(),p=setTimeout(v,d)},"Остановить":function(){0!==p&&(clearInterval(p),p=0)},"СохранитьСписокВариантов":function(e){G||(i=ie(e,15e3))},"СохранитьСписокСегментов":function(e){G||(3===a.length&&a.shift(),a.push(ie(e,15e3)))},"СохранитьТранспортныйПоток":function(e){},"СохранитьПреобразованныйСегмент":function(e){},"ЗавершитьРаботуИПоказатьСообщение":u,"ЗавершитьРаботуИОтправитьОтчет":l,"ПойманоИсключение":function(e){l(e instanceof Error?e.stack:`[typeof ${typeof e}] ${new Error(e).stack}`)},"ОставитьОтзыв":function(){try{l("ОСТАВИТЬ ОТЗЫВ")}catch(e){}}}})();function ge(){this._оПомойка=null}function pe(){}ge.prototype.Выбросить=function(e){Q(e)&&(e.buffer&&(e=e.buffer),e.byteLength&&(he.Вот(`[Помойка] Выбрасываю ${e.byteLength} байтов`),null===this._оПомойка&&(this._оПомойка=new MessageChannel,this._оПомойка.port2.close()),this._оПомойка.port1.postMessage(e,[e])))},ge.prototype.Сжечь=function(){this._оПомойка=null},pe.prototype.Выбросить=pe.prototype.Сжечь=function(){};const ye=new pe,ve=(()=>{function e(e){V("string"==typeof e);const t=chrome.i18n.getMessage(e);if(!t)throw new Error(`Не найден текст ${e}`);return t}return{GetText:e,TranslatePage:function(t){he.Вот("[i18n] Перевод страницы");for(let n of t.querySelectorAll("*[data-i18n]")){const t=n.getAttribute("data-i18n"),r=t.indexOf("^");0!==r&&(n.innerHTML=e(-1===r?t:t.slice(0,r))),-1!==r&&(n.title=e(t.slice(r+1)))}},"ФорматироватьЧисло":function(e,t){return V(void 0===t||"number"==typeof t&&t>=0),Number(e).toLocaleString(void 0,void 0===t?void 0:{minimumFractionDigits:t})},"ПеревестиСекундыВСтроку":function(e,t){var n=Math.floor(e/60%60),r=Math.floor(e/60/60)+(n<10?" : 0":" : ")+n;return t&&(r+=((n=Math.floor(e%60))<10?" : 0":" : ")+n),r},"ПрошлоДнейПрописью":function t(n){void 0===t.мсДни&&(t.мсДни=e("J0132").split("^"),V(t.мсДни.length>1));const r=Math.floor((Date.now()-n.getTime())/864e5);return r>=0&&r{var e=new Map;return{"ДобавитьОбработчик":function(t,n){V(ee(t)),V("function"==typeof n||Q(n));var r=e.get(t);void 0===r&&(r=new Set,e.set(t,r)),r.add(n)},"УдалитьОбработчик":function(t,n){V(ee(t)),V("function"==typeof n||Q(n));var r=e.get(t);void 0!==r&&(r.delete(n),0===r.size&&e.delete(t))},"ОбработатьСобытие":function(t,n){if(G)return;V(ee(t)),he.Вот(`[События] Произошло событие ${t}`);const r=e.get(t);if(void 0!==r)for(var i of(V(0!==r.size),r.values()))if("function"==typeof i)i(t,n);else{if(void 0===a)var a={type:t,data:n};i.handleEvent(a)}}}})(),Ee=(()=>{var n=null;function r(){const e=!t.hidden;return{"лПоказан":e,"лАктивен":e&&t.hasFocus()}}function i(){try{const e=r();n.лПоказан===e.лПоказан&&n.лАктивен===e.лАктивен||(he.Окак(`[Фокусник] Новое состояние ${he.O(e)}`),n=e,be.ОбработатьСобытие("фокусник-изменилосьсостояние",e))}catch(e){me.ПойманоИсключение(e)}}function a(e){try{he.Вот(`[Фокусник] Событие ${e.type}, старое состояние ${he.O(n)}`),setImmediate(i)}catch(e){me.ПойманоИсключение(e)}}return t.addEventListener("visibilitychange",a),e.addEventListener("focus",a),e.addEventListener("blur",a),n=r(),he.Вот(`[Фокусник] Начальное состояние ${he.O(n)}`),{"ПолучитьСостояние":function(){return n}}})(),$e=(()=>{const e=50;let r,i,a,o,s,c,u,l,d=new Map,f=null;function h(e,t,n,r){switch(e){case 1:const i=getComputedStyle(t);u=Number.parseInt(i.left,10),l=Number.parseInt(i.top,10);break;case 2:t.style.left=`${u-n}px`,t.style.top=`${l-r}px`;break;case 3:break;default:V(!1)}}function m(e){try{V(null===f);const n=e.target;(r=d.get(n.id))&&(f=n,he.Окак(`[Тащилка] Начинаю тащить ${f.id} X=${e.clientX} Y=${e.clientY}`),V("true"===f.getAttribute("draggable")),setImmediate(()=>{f&&t.body.classList.add("js-тащилка-страница")}),f.classList.add("js-тащилка-элемент"),r(1,f),i=0,a=s=e.clientX,o=c=e.clientY,e.dataTransfer.setData("text",""),e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage?e.dataTransfer.setDragImage(t.head,0,0):(n.classList.add("js-тащилка-скрыть"),setImmediate(()=>{n.classList.remove("js-тащилка-скрыть")})))}catch(e){me.ПойманоИсключение(e)}}function g(e){try{f&&e.preventDefault()}catch(e){me.ПойманоИсключение(e)}}function p(t){try{if(f){t.preventDefault();const u=n.now();if(u-i{const e='input[type="color"]';var n="",r=null;function i(t){try{t.target.matches(e)&&o()}catch(e){me.ПойманоИсключение(e)}}function a(t){try{t.target.matches(e)&&ke.Изменить(t.target.id,t.target.value)}catch(e){me.ПойманоИсключение(e)}}function o(){V(n);const r=1-ke.Получить("чПрозрачность")/100,i={"чНепрозрачность":r,"чНепрозрачностьОкна":ne(r,.85,1)};for(var a of t.querySelectorAll(e))i[a.id]=Number.parseInt(a.value.slice(1,3),16)+","+Number.parseInt(a.value.slice(3,5),16)+","+Number.parseInt(a.value.slice(5,7),16);t.getElementById("стиль").textContent=function(e,t){return e.replace(/{{.*?}}/g,function(e){var n=t[e.slice(2,-2)];return"string"==typeof n?n:(V(Number.isFinite(n)),String(te(n,2)))})}(n,i)}function s(){!function(){for(var n of t.querySelectorAll(e))n.value=ke.Получить(n.id);r.Обновить()}(),o()}return{"ЗапуститьАсинхронно":function(){return Ae.ЗагрузитьТекст(null,chrome.extension.getURL("player.css"),0,"шаблон",!1).then(function(e){V(!n&&e),n=e})},"Запустить":function(){(r=new fe("чПрозрачность",5,0,"прозрачность")).ПослеИзменения=o,t.addEventListener("input",i),t.addEventListener("change",a),be.ДобавитьОбработчик("настройки-измениласьпредустановка-оформление",s),s()}}})(),ke=(()=>{const n=2,r=[{"амДанные":new Map([["J0126",{"кОдновременныхЗагрузок":1,"чНачалоВоспроизведения":3,"чРазмерБуфера":5,"чРастягиваниеБуфера":15,"кЗаначка":0,"чИнтервалОпроса":o}],["J0127",{"кОдновременныхЗагрузок":2,"чНачалоВоспроизведения":3,"чРазмерБуфера":8.5,"чРастягиваниеБуфера":20,"кЗаначка":1,"чИнтервалОпроса":O}],["J0128",{"кОдновременныхЗагрузок":2,"чНачалоВоспроизведения":17,"чРазмерБуфера":9.5,"чРастягиваниеБуфера":30,"кЗаначка":0,"чИнтервалОпроса":O}]]),"сНастраиваемая":"J0129","сВыбрана":"сПредустановкаВыбрана_буферизация","сЗаполнена":"лПредустановкаЗаполнена_буферизация","сСписок":"предустановка-буферизация","сСобытие":"настройки-измениласьпредустановка-буферизация"},{"амДанные":new Map([["J0122",{"сЦветФона":"#282828","сЦветГрадиента":"#ffffff","сЦветКнопок":"#d3be96","сЦветЗаголовка":"#cdbdec","сЦветВыделения":"#ff9428","чПрозрачность":25}],["J0121",{"сЦветФона":"#425e7b","сЦветГрадиента":"#ffffff","сЦветКнопок":"#ffffff","сЦветЗаголовка":"#d1f0fa","сЦветВыделения":"#ffaa33","чПрозрачность":30}],["J0125",{"сЦветФона":"#141414","сЦветГрадиента":"#c8c8c8","сЦветКнопок":"#f0f0f0","сЦветЗаголовка":"#b6c3c3","сЦветВыделения":"#6cb6ff","чПрозрачность":10}]]),"сНастраиваемая":"J0123","сВыбрана":"сПредустановкаВыбрана_оформление","сЗаполнена":"лПредустановкаЗаполнена_оформление","сСписок":"предустановка-оформление","сСобытие":"настройки-измениласьпредустановка-оформление"}],a=new Set(["чСлучайноеЧисло","сПредыдущаяВерсия","чВерсияНастроек"]);function s(e,t,n,r,i){this.пТекущее=void 0,this.пНачальное=e,this.мпПеречисление=t,this.чМинимальное=n,this.чМаксимальное=r,this.сАвтонастройка=i}s.Создать=function(e){return new this(e,null,A,D,"")},s.СоздатьПеречисление=function(e,t){return new this(e,t,A,D,"")},s.СоздатьДиапазон=function(e,t,n,r=""){return new this(e,null,t,n,r)},s.ПроверитьЗначение=function(e){V(e==e&&e!==1/0&&e!==-1/0&&void 0!==e&&"function"!=typeof e&&"symbol"!=typeof e&&"object"!=typeof e)},s.prototype.ИсправитьЗначение=function(e){return s.ПроверитьЗначение(e),V(typeof e==typeof this.пНачальное),this.мпПеречисление?this.мпПеречисление.includes(e)||(e=this.пНачальное):"number"==typeof e&&(e===O?""===this.сАвтонастройка&&(e=this.пНачальное):ethis.чМаксимальное&&(e=this.чМаксимальное)),e};const c={"чСлучайноеЧисло":s.Создать(Math.random()),"сПредыдущаяВерсия":s.Создать("2000.1.1"),"чВерсияНастроек":s.Создать(n),"чГромкость2":s.СоздатьДиапазон(d/2,l,d),"лПриглушить":s.Создать(!1),"сНазваниеВарианта":s.Создать("CoolCmd"),"чДлительностьПовтора2":s.СоздатьДиапазон(60,30,300,"J0124"),"чСостояниеЧата":s.СоздатьПеречисление(R,[R,J,j]),"чСостояниеЗакрытогоЧата":s.СоздатьПеречисление(R,[R,J]),"лАвтоПоложениеЧата":s.Создать(!1),"чГоризонтальноеПоложениеЧата":s.СоздатьПеречисление(U,[U,Y]),"чВертикальноеПоложениеЧата":s.СоздатьПеречисление(H,[q,H]),"чПоложениеПанелиЧата":s.СоздатьПеречисление(U,[q,U,H,Y]),"чШиринаПанелиЧата":s.СоздатьДиапазон(340,100,D),"чВысотаПанелиЧата":s.СоздатьДиапазон(302,100,D),"лЗатемнитьЧат":s.Создать(!1),"чРазмерИнтерфейса":s.СоздатьДиапазон(100,75,200),"чИнтервалАвтоскрытия":s.СоздатьДиапазон(4,.5,60),"лАнимацияИнтерфейса":s.Создать(!0),"лМенятьГромкостьКолесом":s.Создать(!0),"лПоказатьСтатистику":s.Создать(!1),"сПредустановкаВыбрана_буферизация":s.Создать("J0127"),"лПредустановкаЗаполнена_буферизация":s.Создать(!1),"кОдновременныхЗагрузок":s.СоздатьДиапазон(0,1,3),"чНачалоВоспроизведения":s.СоздатьДиапазон(0,i,30),"чРазмерБуфера":s.СоздатьДиапазон(0,i,30),"чРастягиваниеБуфера":s.СоздатьДиапазон(0,9,30),"кЗаначка":s.СоздатьДиапазон(0,0,2),"чИнтервалОпроса":s.СоздатьДиапазон(0,o,250,"J0120"),"сПредустановкаВыбрана_оформление":s.Создать("J0122"),"лПредустановкаЗаполнена_оформление":s.Создать(!1),"сЦветФона":s.Создать(""),"сЦветГрадиента":s.Создать("#ffffff"),"сЦветКнопок":s.Создать(""),"сЦветЗаголовка":s.Создать(""),"сЦветВыделения":s.Создать(""),"чПрозрачность":s.СоздатьДиапазон(0,0,80)},u=500;let f=0,h=null;function m(){chrome.runtime.lastError&&(console.error(chrome.runtime.lastError.message),me.ЗавершитьРаботуИПоказатьСообщение("J0212"))}function g(e,t){t&&(chrome.storage.local.clear(m),he.Вот("[Настройки] Все настройки удалены из хранилища")),chrome.storage.local.set(e,m),he.Вот(`[Настройки] Настройки записаны в хранилище: ${he.O(e)}`)}function p(e,t){V(Q(e)),(t||0!==Object.keys(e).length)&&(0===f?t?g(e,t):(he.Вот(`[Настройки] Откладываю сохранение настроек на ${u}мс`),f=setTimeout(y,u),h=e):t?(clearTimeout(f),f=0,h=null,g(e,t)):Object.assign(h,e))}function y(){try{he.Вот("[Настройки] Завершаю отложенное сохранение"),V(0!==f&&Q(h)),g(h,!1),f=0,h=null}catch(e){me.ПойманоИсключение(e)}}function v(e,t){if(void 0===e.чВерсияНастроек){for(let n of Object.keys(e))a.has(n)?t[n]=e[n]:delete e[n];return!0}if(e.чВерсияНастроек>n){for(let t of Object.keys(e))delete e[t];return!0}for(let n of r){let r=e[n.сВыбрана];if(void 0!==r&&r!==n.сНастраиваемая){for(let e of n.амДанные.keys())if(r===e){r=void 0;break}void 0!==r&&(t[n.сВыбрана]=e[n.сВыбрана]=c[n.сВыбрана].пНачальное)}}return e.чСостояниеЗакрытогоЧата===e.чСостояниеЧата||e.чСостояниеЧата!==R&&e.чСостояниеЧата!==J||(t.чСостояниеЗакрытогоЧата=e.чСостояниеЗакрытогоЧата=e.чСостояниеЧата),e.чВерсияНастроек!==n&&(t.чВерсияНастроек=e.чВерсияНастроек=n,!1)}function b(e){V("string"==typeof e),V(c.hasOwnProperty(e));for(let t of r){const n=t.амДанные.get(c[t.сВыбрана].пТекущее);if(n){const t=n[e];if(void 0!==t)return t}}return c[e].пТекущее}function E(e,t){if(G)return;V("string"==typeof e),V(c[e].ИсправитьЗначение(t)===t);const n={};for(let i of r){const r=i.амДанные.get(c[i.сВыбрана].пТекущее);if(r&&r.hasOwnProperty(e)){if(t===r[e])return;n[i.сВыбрана]=c[i.сВыбрана].пТекущее=i.сНастраиваемая,n[i.сЗаполнена]=c[i.сЗаполнена].пТекущее=!0;for(let e of Object.keys(r))n[e]=c[e].пТекущее=r[e];$(i);break}}c[e].пТекущее!==t&&(n[e]=c[e].пТекущее=t),p(n,!1)}function $(e){const n=t.getElementById(e.сСписок);n.length=0;const r=c[e.сВыбрана].пТекущее;for(let t of e.амДанные.keys())n.add(new Option(z(t),t,t===r,t===r));return c[e.сЗаполнена].пТекущее&&n.add(new Option(z(e.сНастраиваемая),e.сНастраиваемая,e.сНастраиваемая===r,e.сНастраиваемая===r)),V(n.value),n}function w(e){try{for(let t of r)if(t.сСписок===e.target.id)return V(e.target.value),E(t.сВыбрана,e.target.value),void be.ОбработатьСобытие(t.сСобытие);V(!1)}catch(e){me.ПойманоИсключение(e)}}return{"Восстановить":function(){return he.Вот("[Настройки] Восстанавливаю настройки"),new Promise(function(e,t){chrome.storage.local.get(null,function(n){try{chrome.runtime.lastError?(console.error(chrome.runtime.lastError.message),me.ЗавершитьРаботуИПоказатьСообщение("J0209")):(he.Вот(`[Настройки] Настройки прочитаны из хранилища: ${he.O(n)}`),function(e){V(Q(e)),V(!c.чВерсияНастроек.пТекущее);const t={},n=v(e,t);for(let n of Object.keys(c))if(e.hasOwnProperty(n)){const r=c[n].ИсправитьЗначение(e[n]);r!==e[n]&&(t[n]=r),c[n].пТекущее=r}else a.has(n)&&(t[n]=c[n].пНачальное),c[n].пТекущее=c[n].пНачальное;p(t,n),function(){for(let e of r)$(e).addEventListener("change",w)}()}(n),e())}catch(e){t(e)}})})},"Сбросить":function(){he.Окак("[Настройки] Сбрасываю настройки");const t={};for(let e of a)t[e]=c[e].пТекущее;p(t,!0),e.location.reload()},"Экспорт":function(){he.Окак("[Настройки] Экспортирую настройки"),V(c.чВерсияНастроек.пТекущее);const e={"чВерсияНастроек":n};for(let t of Object.keys(c))a.has(t)||(e[t]=c[t].пТекущее);he.Вот(`[Настройки] Отобраны настройки для экспорта: ${he.O(e)}`),function(e,n,r){V("string"==typeof e&&ee(n)&&ee(r));const i=t.createElement("a");i.setAttribute("href",URL.createObjectURL(new Blob([e],{type:n}))),i.setAttribute("download",r),i.dispatchEvent(new MouseEvent("click"))}(JSON.stringify(e),"application/json",z("J0133"))},"Импорт":function(t){if(he.Окак(`[Настройки] Импортирую настройки из файла ${t.name}`),V(c.чВерсияНастроек.пТекущее),0===t.size||t.size>1e4)return he.Ой(`[Настройки] Размер файла: ${t.size}`),void alert(z("J0134"));const n=new FileReader;n.addEventListener("loadend",function(){try{if(!ee(n.result))return he.Ой(`[Настройки] Результат чтения файла: ${n.result}`),void alert(z("J0135")+t.name);let r;he.Вот(`[Настройки] Настройки прочитаны из файла: ${n.result}`);try{if(!Q(r=JSON.parse(n.result)))throw 1;if(v(r,r))throw 2;for(let e of Object.keys(r))c.hasOwnProperty(e)&&(r[e]=c[e].ИсправитьЗначение(r[e]))!==c[e].пНачальное||delete r[e]}catch(e){return he.Ой(`[Настройки] Поймано исключение во время разбора настроек: ${e}`),void alert(z("J0134"))}for(let e of a)r[e]=c[e].пТекущее;p(r,!0),e.location.reload()}catch(e){me.ПойманоИсключение(e)}}),n.readAsText(t)},"Получить":function(e){return"чМаксРазмерБуфера"===e?Math.max(b("чНачалоВоспроизведения"),b("чРазмерБуфера")):b(e)},"Изменить":E,"ПолучитьПараметрыНастройки":function(e){return V("string"==typeof e),V(c.hasOwnProperty(e)),c[e]},"ПолучитьДанныеДляОтчета":function(){const e={};for(let t of Object.keys(c))c[t].пТекущее!==c[t].пНачальное&&(e[t]=c[t].пТекущее);return e},"Остановить":function(){0!==f&&(clearTimeout(f),y())}}})(),Ie=(()=>{const e=3,r=30,i=30,a=40,o=150,s=.5,c=1,u=2,l=1.5,d=.5,f=100,h=.85,m=.2,g=300,p=5;var $,w,k,_=0,T=0,x=0,L=-1/0,C=1/0,B=null,F=null,M=null,A=null,D=null,O=null,X=null,P=0,R=0,J=0,j=0,q=0,U=0,H=0,Y=0,W=0,G=0,z=0;function Q(e){return e>=o}function ee(e){return 0===e||e>2}function te(e){return e>=c}function ne(e){return e=ke.Получить("чМаксРазмерБуфера")+ke.Получить("чРастягиваниеБуфера")*d}function re(e,n,r){V(n>0&&r>=0),this._узПоказать=t.getElementById(e),this._мчИстория=new Array(n),this._млВыделить=new Array(n),this._чТочность=r,this._Очистить()}function ie(e,n,r){var i="string"==typeof e?t.getElementById(e):e;return i.classList.toggle("статистика-выделить",r),i.textContent=n,i}function ae(){try{t.getElementById("статистика-длительностьпросмотра").textContent=ve.ПеревестиСекундыВСтроку(n.now()/1e3,!0);var r=Be.ПолучитьКоличествоПропущенныхКадров();ie("статистика-пропущено",r.droppedVideoFrames,r.droppedVideoFrames>=f).nextElementSibling.nextElementSibling.textContent=r.totalVideoFrames;var i=0,a=0,o=0,s=0,c=0;for(var l of K)switch(l.чОбработка){case y:++i,a+=l.чДлительность;break;case v:case b:o+=l.чДлительность;break;case E:++s,c+=l.чДлительность;break;default:V(!1)}var d=Be.ПолучитьЗаполненностьБуфера(),h=ie("статистика-очередь",a.toFixed(1),i>x);(h=h.nextElementSibling.nextElementSibling).textContent=o.toFixed(1),ie(h=h.nextElementSibling,c.toFixed(1),s>=u),ie(h=h.nextElementSibling,d.чНеПросмотрено.toFixed(1),ne(d.чНеПросмотрено)),(h=h.nextElementSibling.nextElementSibling).textContent=d.чПросмотрено.toFixed(1),[I,S,N].includes(Ce.ПолучитьСостояние())&&(w=Math.min(w,d.чНеПросмотрено),0===(k=(k+1)%e)&&(X.ДобавитьЧисло(w,ne,ne),w=1/0))}catch(e){me.ПойманоИсключение(e)}}function oe(){return 0!==_}return re.prototype.Освободить=function(){this._узПоказать.textContent="",this._узПоказать=null},re.prototype._Очистить=function(){this._кЗаполнено=0,this._чИндекс=-1;var e=t.createDocumentFragment();e.appendChild(t.createElement("td")).className="анализ-минимум",e.appendChild(t.createElement("td")).textContent=" < ",e.lastChild.className="статистика-символ",e.appendChild(t.createElement("td")).className="анализ-среднее",e.appendChild(t.createElement("td")).textContent=" < ",e.lastChild.className="статистика-символ",e.appendChild(t.createElement("td")).className="анализ-максимум";for(var n=0;no||this._мчИстория[l]===o&&this._млВыделить[l])&&(o=this._мчИстория[l],s=this._млВыделить[l]),c+=this._мчИстория[l],++u);if(0===u){c=NaN;var d=!1}else{c/=u;d=Boolean("function"==typeof n?n(c):n)}return ie(this._узПоказать.children[0],this._ВСтроку(i),a),ie(this._узПоказать.children[2],this._ВСтроку(c),d),ie(this._узПоказать.children[4],this._ВСтроку(o),s),ie(this._узПоказать.children[5+this._чИндекс],this._ВСтроку(e),r).classList.remove("статистика-подробно"),c},be.ДобавитьОбработчик("список-выбранварианттрансляции",function(e,n){const r=n[0],i=n[1];var a;r&&(t.getElementById("статистика-сервер").textContent=(a=r[i].сАбсолютныйАдресСпискаСегментов,new URL(a).host))}),be.ДобавитьОбработчик("проигрыватель-переполненбуфер",function(e,t){++Y,W+=t,oe()&&(ie("статистика-переполнено",Y,!0).nextElementSibling.nextElementSibling.textContent=W.toFixed(1))}),{"ОкноПоказано":oe,"ПоказатьОкно":function(){oe()||(B=new re("статистика-интервалобновления",r,0),F=new re("статистика-сегментовдобавлено",r,0),M=new re("статистика-секунддобавлено",r,1),A=new re("статистика-толщинасегмента",i,1),D=new re("статистика-толщинаканала",i,1),O=new re("статистика-ожиданиеответа",i,1),X=new re("статистика-непросмотрено",a,1),$=NaN,w=1/0,k=0,ie("статистика-забраковано",J,0!==J),ie("статистика-потерьвидео",j,0!==j),ie("статистика-потерьзвука",q,0!==q),t.getElementById("статистика-исходных").textContent=R,ie("статистика-незагружено",U,0!==U).nextElementSibling.nextElementSibling.textContent=H,ie("статистика-переполнено",Y,0!==Y).nextElementSibling.nextElementSibling.textContent=W.toFixed(1),ie("статистика-исчерпано",G,G>=p),_=setInterval(ae,1e3/e),ae(),$e.ДобавитьОбработчик("статистика",null),se("статистика",!0),ke.Изменить("лПоказатьСтатистику",!0))},"СкрытьОкно":function(){if(oe()){for(var e of(clearInterval(_),_=0,se("статистика",!1),B.Освободить(),B=null,F.Освободить(),F=null,M.Освободить(),M=null,A.Освободить(),A=null,D.Освободить(),D=null,O.Освободить(),O=null,X.Освободить(),X=null,t.querySelectorAll("*[data-очистить]")))e.textContent="";ke.Изменить("лПоказатьСтатистику",!1)}},"ОбновитьЗначение":ie,"ОчиститьИсторию":function(){null!==B&&(B.Очистить(),F.Очистить(),M.Очистить(),A.Очистить(),D.Очистить(),O.Очистить(),X.Очистить(),$=NaN,w=1/0,k=0),ie("статистика-незагружено",U=0,!1).nextElementSibling.nextElementSibling.textContent=H=0,ie("статистика-переполнено",Y=0,!1).nextElementSibling.nextElementSibling.textContent=(W=0).toFixed(1),ie("статистика-исчерпано",G=0,!1)},"ПолучитьTargetDuration":function(){return T},"ПолучитьДлительностьКадраВСекундах":function(){return{"чМинимальная":Math.max(17,L)/1e3,"чМаксимальная":Math.min(40,C)/1e3}},"ПолучитьДанныеДляОтчета":function(){return{"ОкноПоказано":oe(),"Сервер":t.getElementById("статистика-сервер").textContent,"ПараметрыВидео":t.getElementById("статистика-разрешениевидео").textContent+" "+t.getElementById("статистика-сжатиевидео").textContent,"ПараметрыЗвука":t.getElementById("статистика-сжатиезвука").textContent,"ВсегоСкачано":P,"Забраковано":J,"ПотерьВидео":j,"ПотерьЗвука":q,"ОшибокЗагрузки":U,"НезагруженныхСегментов":H,"ПереполненийБуфера":Y,"ПропущеноВБуфере":W,"ИсчерпанийБуфера":G,"ИсчерпанийБуфераДосрочно":z}},"СкачаноНечто":function(e){Number.isFinite(e)&&(P+=e,oe()&&(t.getElementById("статистика-скачано").textContent=(P/1024/1024).toFixed()))},"РазобранСписокСегментов":function(e,n,r){if(oe()){var i=t.getElementById("статистика-список");i.textContent=`${n} × ${(r/n).toFixed(1)} = ${r.toFixed(1)}`,ie(i.nextElementSibling.nextElementSibling,e,e!==T)}T=e,x=n},"ДобавленыСегментыВОчередь":function(e,t){if(oe()){var r=n.now();B.ДобавитьЧисло((r-$)/T/10,Q,Q),$=r;var i=F.ДобавитьЧисло(e,ee,ee);M.ДобавитьЧисло(t,t/et,function(e){return e0),++U,H+=e,oe()&&(ie("статистика-незагружено",U,!0).nextElementSibling.nextElementSibling.textContent=H)},"ОтосланИсходныйСегмент":function(){++R,oe()&&(t.getElementById("статистика-исходных").textContent=R)},"ПолученПреобразованныйСегмент":function(e){var n=oe(),r=e.пДанные;if(e.лРазрыв){t.getElementById("статистика-разрешениевидео").textContent=`${r.чШиринаКартинки}x${r.чВысотаКартинки}`;var i="H.264"+` ${function(e,t){switch(e){case 66:return 0==(64&t)?"Baseline":"Constrained Baseline";case 77:return"Main";case 88:return"Extended";case 100:switch(12&t){case 8:return"Progressive High";case 12:return"Constrained High"}return"High";case 110:return 0==(16&t)?"High 10":"High 10 Intra";case 122:return 0==(16&t)?"High 4:2:2":"High 4:2:2 Intra";case 244:return 0==(16&t)?"High 4:4:4 Predictive":"High 4:4:4 Intra";case 44:return"CAVLC 4:4:4 Intra"}return he.Ой(`[Статистика] Неизвестный профиль H.264 ProfileIndication=${e} ConstraintSetFlag=${t}`),`P${e}C${t}`}(r.nProfileIndication,r.nConstraintSetFlag)}`+` L${(r.nLevelIndication/10).toFixed(1)}`+` RF${r.nMaxNumberReferenceFrames}`;-1!==r.чДиапазон&&(i+=0===r.чДиапазон?" 16-235":" 0-255"),r.лЧересстрочное&&(i+=" чересстрочное"),0!==r.чЧастотаКадров&&(i+=` ${r.чЧастотаКадров<0?"≈":""}${Math.abs(r.чЧастотаКадров).toFixed(2)} к/с`),t.getElementById("статистика-сжатиевидео").textContent=i,t.getElementById("статистика-сжатиезвука").textContent=["AAC-Main","AAC-LC","AAC-SSR","AAC-LTP"][r.nAudioObjectType-1]+` ${r.чЧастотаДискретизации} Гц`+` ${r.чКоличествоКаналов} канал.`}if(Number.isFinite(r.чСредняяДлительностьВидеоСемпла)){L=r.чМинДлительностьВидеоСемпла,C=r.чМаксДлительностьВидеоСемпла,V(L<=C);var a=r.чСредняяДлительностьВидеоСемпла/r.чМаксДлительностьВидеоСемпла,o=r.чМаксДлительностьВидеоСемпла-r.чСредняяДлительностьВидеоСемпла;a<=m&&o>=g&&(he.Ой(`[Статистика] Превышено отклонение длительности кадра в сегменте ${e.чНомер}`+` СредняяДлительностьКадра=${he.F0(r.чСредняяДлительностьВидеоСемпла)}мс`+` АбсолютноеОтклонение=${he.F0(o)}мс`+` ОтносительноеОтклонение=${he.F2(a)}`),r.лПотериВидео=!0)}n&&(Number.isFinite(r.чСредняяДлительностьВидеоСемпла)&&ie("статистика-частотакадров",`@${(1e3/r.чСредняяДлительностьВидеоСемпла).toFixed(0)}`+` −${(100-r.чСредняяДлительностьВидеоСемпла/r.чМаксДлительностьВидеоСемпла*100).toFixed()}%`+` +${(r.чСредняяДлительностьВидеоСемпла/r.чМинДлительностьВидеоСемпла*100-100).toFixed()}%`,a<=h),Z(r.чБитрейтЗвука)&&(t.getElementById("статистика-битрейтзвука").textContent=`${r.чБитрейтЗвука.toFixed()} кбит/с`),Z(r.чПреобразованЗа)&&(t.getElementById("статистика-преобразованоза").textContent=r.чПреобразованЗа.toFixed())),r.лПотериВидео&&(++j,n&&ie("статистика-потерьвидео",j,!0)),r.лПотериЗвука&&(++q,n&&ie("статистика-потерьзвука",q,!0)),r.лЗабраковано&&(++J,n&&ie("статистика-забраковано",J,!0))},"ИсчерпанБуферПроигрывателя":function(e){++G,e&&++z,oe()&&ie("статистика-исчерпано",G,G>=p)}}})(),Se=(()=>{let n,r=null;function i(){switch(getComputedStyle(t.getElementById("проигрывательичат")).flexDirection){case"column-reverse":return q;case"row":return U;case"column":return H;case"row-reverse":return Y;default:V(!1)}}function a(e){try{e.source===r.contentWindow&&e.origin===De.ПолучитьАдресПанелиЧата()[0]&&"ВставитьСторонниеРасширения?"===e.data&&(he.Вот("[Чат] Получен запрос на вставку сторонних расширений"),chrome.management.getAll(function(t){chrome.runtime.lastError&&me.ЗавершитьРаботуИОтправитьОтчет(`Не удалось получить список расширений. ${chrome.runtime.lastError.message}`);try{const n={"сЗапрос":e.data,"сСторонниеРасширения":""};for(let e of t)if(e.enabled)switch(e.id){case"ajopnjidmegmdimjlfnijceegpefgped":case"deofbbdfofnmppcjbhjibgodpcdchjii":n.сСторонниеРасширения+="BTTV ";break;case"fadndhdgpmmaapbmfcknlfgcflmmmieb":case"djkpepcignmpfblhbfpmlhoindhndkdj":n.сСторонниеРасширения+="FFZ ";break;case"aiimboljphncldaakcnapfolgnjonlea":n.сСторонниеРасширения+="FFZAP "}he.Вот(`[Чат] Послан ответ на вставку сторонних расширений: ${he.O(n)}`),e.source.postMessage(n,e.origin)}catch(e){he.Ой(`[Чат] Поймано исключение во время посылки ответа: ${e}`)}}))}catch(e){me.ПойманоИсключение(e)}}function o(){r||(e.addEventListener("message",a),(r=t.createElement("iframe")).id="чат",r.src=De.ПолучитьАдресПанелиЧата().join(""),r.width=ke.Получить("чШиринаПанелиЧата"),r.height=ke.Получить("чВысотаПанелиЧата"),t.getElementById("размерчата").insertAdjacentElement("afterend",r))}function s(){r&&(e.removeEventListener("message",a),r.remove(),r=null)}function c(){const e=ke.Получить("чСостояниеЧата");switch(he.Окак(`[Чат] Новое состояние панели: ${e}`),d(),e){case R:t.body.classList.remove("показатьчат"),s();break;case J:t.body.classList.remove("показатьчат"),o();break;case j:t.body.classList.add("показатьчат"),o();break;default:V(!1)}}function u(){d();const e=t.body.classList;if(ke.Получить("лАвтоПоложениеЧата"))e.add("автоположениечата"),e.toggle("чатвверху",ke.Получить("чВертикальноеПоложениеЧата")===q),e.toggle("чатслева",ke.Получить("чГоризонтальноеПоложениеЧата")===Y);else{const t=ke.Получить("чПоложениеПанелиЧата");e.remove("автоположениечата"),e.toggle("чатвверху",t===q),e.toggle("чатсправа",t===U),e.toggle("чатвнизу",t===H),e.toggle("чатслева",t===Y)}}function l(e,a,o,s,c,u){const l=i(),d=l===U||l===Y,f=l===q||l===Y;switch(e){case 1:n=d?Number.parseInt(getComputedStyle(r).width,10):Number.parseInt(getComputedStyle(r).height,10),he.Окак(`[Чат] Начальный размер чата: ${n}`);break;case 2:if(d){if(c){const e=Number.parseInt(getComputedStyle(t.getElementById("проигрывательичат")).width,10)-Number.parseInt(getComputedStyle(t.getElementById("проигрыватель")).minWidth,10);r.width=Math.max(Math.min(f?n-o:n+o,e),0)}}else if(u){const e=Number.parseInt(getComputedStyle(t.getElementById("проигрывательичат")).height,10);Number.parseInt(getComputedStyle(t.getElementById("проигрыватель")).minHeight,10),r.height=Math.max(Math.min(f?n-s:n+s,e),0)}break;case 3:d?ke.Изменить("чШиринаПанелиЧата",Number.parseInt(getComputedStyle(r).width,10)):ke.Изменить("чВысотаПанелиЧата",Number.parseInt(getComputedStyle(r).height,10));break;default:V(!1)}}function d(){$e.ОтменитьПеретаскивание("размерчата")}return{"Восстановить":function(){c(),u(),$e.ДобавитьОбработчик("размерчата",l)},"ОбновитьПоложениеПанели":u,"ОбновитьЗатемнение":function(){r&&(he.Окак("[Чат] Обновляю затемнение чата"),s(),o())},"ПереключитьСостояниеПанели":function(){switch(ke.Получить("чСостояниеЧата")){case R:case J:ke.Изменить("чСостояниеЧата",j);break;case j:ke.Изменить("чСостояниеЧата",ke.Получить("чСостояниеЗакрытогоЧата"));break;default:V(!1)}c()},"ПереключитьПоложениеПанели":function(){let e;switch(ke.Получить("лАвтоПоложениеЧата")?(ke.Изменить("лАвтоПоложениеЧата",!1),e=i()):e=ke.Получить("чПоложениеПанелиЧата"),e){case q:ke.Изменить("чПоложениеПанелиЧата",U);break;case U:ke.Изменить("чПоложениеПанелиЧата",H);break;case H:ke.Изменить("чПоложениеПанелиЧата",Y);break;case Y:ke.Изменить("чПоложениеПанелиЧата",q);break;default:V(!1)}u()},"ИзменитьСостояниеЗакрытойПанели":function(e){ke.Изменить("чСостояниеЗакрытогоЧата",e);const t=ke.Получить("чСостояниеЧата");t!==R&&t!==J||t===e||(ke.Изменить("чСостояниеЧата",e),c())}}})(),Ne=(()=>{function n(e){var t=/^(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?$/.exec(e);return t[1]|=0,t[2]|=0,t[3]|=0,t[4]|=0,V(t[1]>=2e3&&t[1]<=2050),V(t[2]>=1&&t[2]<=12),V(t[3]>=1&&t[3]<=31),V(t[4]>=0&&t[4]<=9),Date.UTC(t[1],t[2]-1,t[3],0,0,0,t[4])}function i(e,n){const r=t.getElementById("текстновостей");r.firstElementChild&&r.insertBefore(t.createElement("hr"),r.firstElementChild);let i="";for(let t=2;t=0||ee(r)),t.getElementById("текстновостей").textContent="";let o=!1,s="number"==typeof r?r:n(r);for(let t of e.г_мНовости)switch(t[0]){case"2000.2.2":i(t,0);break;case"2000.1.1":a&&(o=!0,i(t,0));break;default:const e=n(t[0]);if("number"==typeof r){if(--s<0)continue}else if(s>=e)continue;o=!0,i(t,e)}return o}function o(e){try{oe(e.target)&&(se("прокрутитьновости",!1),e.target.removeEventListener("scroll",o))}catch(e){me.ПойманоИсключение(e)}}function s(e,n){if("новости"===n){const e=t.getElementById("текстновостей");e.scrollTop=0,oe(e)||(se("прокрутитьновости",!0),e.addEventListener("scroll",o)),se("переключитьновости",!1).classList.remove("непрочитано")}}function c(e,n){"новости"===n.сИдОкна&&(se("прокрутитьновости",!1),t.getElementById("текстновостей").removeEventListener("scroll",o),"отмена"===n.сДанные&&ce("отложитьновости")?se("переключитьновости",!0):ke.Изменить("сПредыдущаяВерсия",r))}return{"Запустить":function(){be.ДобавитьОбработчик("окна-открытоокно",s),be.ДобавитьОбработчик("окна-закрытоокно",c);const e=ke.Получить("сПредыдущаяВерсия");e!==r&&("2000.1.1"===e?(a(0,!0),se("отложитьновости",!1),se("переключитьновости",!0)):a(e,!1)?(se("отложитьновости",!0),se("переключитьновости",!0)):ke.Изменить("сПредыдущаяВерсия",r))},"ОткрытьСправку":function(){"новости"!==Te.ПолучитьОткрытоеОкно()&&(ce("переключитьновости")||(a(3,!0),se("отложитьновости",!1)),Te.ОткрытьОкно("новости"))}}})(),_e=(()=>{var e,n=0,r=0;function i(e){return ne(e,n,r)}function a(e){try{if(Ce.ПолучитьСостояние()===T){const t=e.currentTarget.getBoundingClientRect(),a=getComputedStyle(e.currentTarget),o=Math.round(t.left+Number.parseFloat(a.paddingLeft)),s=Math.round(t.right-Number.parseFloat(a.paddingRight)),c=i((e.clientX+1-o)/(s-o)*(r-n)+n);he.Окак(`[Шкала] Перематываю до ${c}`),Be.ПеремотатьПовторДо(c)}}catch(e){me.ПойманоИсключение(e)}}return{"ЗадатьНачалоИКонец":function(e,i){V(e<=i),n=e,r=i,t.getElementById("шкала").addEventListener("click",a)},"ЗадатьПросмотрено":function(a){e=i(a),V(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(e)),t.getElementById("шкала-просмотрено").style.transform=`scaleX(${((e-n)/(r-n)).toFixed(4)})`},"ПолучитьНачало":function(){return n},"ПолучитьКонец":function(){return r}}})(),Te=(()=>{function e(){return t.body.getAttribute("data-окно-открыто")||""}function n(n,r){V("string"==typeof n&&"string"==typeof r),n&&n===e()&&(t.getElementById(n).classList.remove("открыто"),t.body.removeAttribute("data-окно-открыто"),be.ОбработатьСобытие("окна-закрытоокно",{"сИдОкна":n,"сДанные":r}))}function r(r){V(ee(r));const i=e();r!==i&&(n(i,"отмена"),t.getElementById(r).classList.add("открыто"),t.body.setAttribute("data-окно-открыто",r),be.ОбработатьСобытие("окна-открытоокно",r))}function i(t,i=""){V(ee(t)&&"string"==typeof i);const a=e();t===a?n(a,i):(n(a,"отмена"),r(t))}return be.ДобавитьОбработчик("управление-щелчок",function(r,a){const o=a.target.getAttribute("data-окно-переключить");if(o)i(o,a.target.getAttribute("data-окно-данные")||"");else{const r=e();r&&!t.getElementById(r).contains(a.target)&&n(r,"отмена")}}),{"ПолучитьОткрытоеОкно":e,"ПереключитьОкно":i,"ОткрытьОкно":r}})();{function xe(e,n){e.removeEventListener("mouseleave",Le),t.body.classList.toggle("кнопкаименю-безанимации",n),e.classList.remove("открыто")}function Le(e){try{xe(e.target,!1)}catch(e){me.ПойманоИсключение(e)}}be.ДобавитьОбработчик("управление-щелчок",function(e,n){const r=n.target;if(r.classList.contains("кнопкаименю-кнопка")){const e=r.parentNode;e.classList.contains("открыто")?xe(e,!1):((e=e).addEventListener("mouseleave",Le),t.body.classList.remove("кнопкаименю-безанимации"),e.classList.add("открыто"))}else r.classList.contains("пунктменю")&&r.hasAttribute("tabindex")&&xe(r.parentNode.parentNode,!0);var i})}const Ce=(()=>{const r=5,i=5,a=10,o=180,s=300,c=1500,u="• • •",y={da:"Dansk",de:"Deutsch",en:"English","en-gb":"English (UK)",es:"Español","es-mx":"Español (Latinoamérica)",fr:"Français",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski",pt:"Português","pt-br":"Português (Brasil)",sk:"Slovenčina",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",cs:"Čeština",el:"Ελληνικά",bg:"Български",ru:"Русский",ar:"العربية",th:"ภาษาไทย",zh:"中文","zh-cn":"简体中文","zh-tw":"繁體中文","zh-hk":"中文(香港)",ja:"日本語",ko:"한국어",hi:"हिंदी",ro:"Română",ase:"American Sign Language",asl:"American Sign Language"};var v,b,L,M,A,D,O,R,J,j,q,H,W=0,Q=0,ee=0,te=0;if(t.exitFullscreen)var ne="fullscreenElement",re="requestFullscreen",ie="exitFullscreen",oe="fullscreenchange";else ne="webkitFullscreenElement",re="webkitRequestFullscreen",ie="webkitExitFullscreen",oe="webkitfullscreenchange";function ce(){var e=!!t[ne];he.Окак(`[Управление] Полноэкранный режим: ${e}`),Pe("переключитьполноэкранный",e)}function ue(){try{ce()}catch(e){me.ПойманоИсключение(e)}}function le(){Ee(!0),t[ne]?ge():(he.Вот("[Управление] Вход в полноэкранный режим"),t.getElementById("проигрыватель")[re]())}function ge(){he.Вот("[Управление] Выход из полноэкранного режима"),t[ie]()}function pe(){let e=!1;return 0===te?(e="none"===getComputedStyle(t.getElementById("глаз")).cursor,t.body.classList.remove("автоскрытие","панель-безанимации")):clearTimeout(te),te=setTimeout($e,1e3*ke.Получить("чИнтервалАвтоскрытия")),e}function Ee(e){0!==te&&(clearTimeout(te),te=0,t.body.classList.add("автоскрытие"),t.body.classList.toggle("панель-безанимации",e),e&&(Q=ee=n.now()))}function $e(){try{Ee(!1)}catch(e){me.ПойманоИсключение(e)}}function _e(e){try{e.currentTarget.removeEventListener("mousemove",_e),function(e){if(!(J===e.screenX&&j===e.screenY||q===e.clientX&&H===e.clientY)){J=e.screenX,j=e.screenY,q=e.clientX,H=e.clientY;var t=n.now();t-ee>=s?Q=ee=t:(ee=t,t-Q>=o&&pe())}}(e),setTimeout(xe,1e3/a)}catch(e){me.ПойманоИсключение(e)}}function xe(){try{t.getElementById("проигрыватель").addEventListener("mousemove",_e)}catch(e){me.ПойманоИсключение(e)}}function Le(){ke.Получить("лМенятьГромкостьКолесом")?(t.addEventListener("wheel",Ce),t.addEventListener("mousedown",Ae)):(t.removeEventListener("wheel",Ce),t.removeEventListener("mousedown",Ae))}function Ce(e){try{e.shiftKey||e.ctrlKey||e.altKey||e.metaKey||function(e,n){for(var r=t.elementFromPoint(e,n);r;r=r.parentElement)if(ae(r))return!0;return!1}(e.clientX,e.clientY)||(he.Вот(`[Управление] Движение колеса deltaY=${e.deltaY} deltaMode=${e.deltaMode}`),e.preventDefault(),e.deltaY<0&&qe(!1,Math.min(ke.Получить("чГромкость2")+g,d)),e.deltaY>0&&qe(!1,Math.max(ke.Получить("чГромкость2")-p,l)))}catch(e){me.ПойманоИсключение(e)}}function Ae(e){try{e.button!==P||e.shiftKey||e.ctrlKey||e.altKey||e.metaKey||function(e){var t=e.target;do{if("A"===t.nodeName)return!0}while(t=t.parentElement);return!1}(e)||(e.preventDefault(),qe(!ke.Получить("лПриглушить")))}catch(e){me.ПойманоИсключение(e)}}function Oe(){}function Xe(){t.body.classList.toggle("санимацией",ke.Получить("лАнимацияИнтерфейса"))}function Pe(e,n){var r="string"==typeof e?t.getElementById(e):e,i=r.getElementsByTagName("use"),a=Number(n);V(a>=0&&a=0),n}function et(e){V(Z(e));var n=t.getElementById("скорость");if(V(n.selectedIndex>=0),e===-1/0||e===1/0)var r=n.selectedIndex-Math.sign(e);else r=n.querySelector('option[value="1.00"]').index-e;r>=0&&r{const e=10,r=.28,o=1,s=-1,c=-2,u=-3,l=-4,f=0,h=1,m=2;var g,p,y=null,v=0,b=!1,x="чНачалоВоспроизведения",L=!0,C=0,B=!1,F={"ОбработатьSourceOpen":function(){v=Math.max(v,1),ee()},"ОбработатьProgress":function(){b||W(Y(s))},"ОбработатьWaiting":function(){},"ОбработатьPlaying":function(){Ce.ПолучитьСостояние()!==S||g.paused||Ce.ИзменитьСостояние(N)},"ОбработатьSeeking":function(){},"ОбработатьSeeked":function(){W()},"ОбработатьEnded":function(){j(I)},"ОбработатьTimeUpdate":function(){g.seeking||g.paused||g.ended||Y(u)}},M={"лПауза":!0,"ОбработатьSourceOpen":function(){v=Math.max(v,1)},"ОбработатьProgress":function(){},"ОбработатьWaiting":function(){},"ОбработатьPlaying":function(){},"ОбработатьSeeking":function(){_e.ЗадатьПросмотрено(g.currentTime)},"ОбработатьSeeked":function(){},"ОбработатьEnded":function(){this.лПауза||g.play()},"ОбработатьTimeUpdate":function(){this.лПауза||g.seeking||this.ПроверитьПозициюВоспроизведения(u),_e.ЗадатьПросмотрено(g.currentTime)},"ПроверитьПозициюВоспроизведения":function(e){V(Number.isFinite(e)),V(e===c||e===u||e>=0);const t=g.buffered,n=t.length-1,a=g.currentTime+1e-4;for(var o=e>=0?e:a,s="",l=!1;;){for(var d=e===u?r:i,f=0;f<=n&&(o=d));++f);if(this.лПауза||o<_e.ПолучитьКонец())break;if(l)return void D("Ой",`Бесконечная перемотка Время=${e}`);o=_e.ПолучитьНачало(),s+="Начинаю сначала. ",l=!0}o!==a&&(D("Окак",`${s}Перематываю до ${o}`),g.currentTime=o)}},A=F;function D(e,t){var n=0!==p.sourceBuffers.length?p.sourceBuffers[0]:null,r=X(n?n.buffered:null),i=X(g.buffered),a=r===i;"Вот"===e&&(n&&n.buffered.length>1||g.buffered.length>1)&&(e="Окак"),!g.error&&a||(e="Ой"),he[e](`${"["===t.charAt(0)?"":"[Проигрыватель] "}${t} •••`+(g.error?` error=${g.error.code}`:"")+(n&&n.updating?" [U]":"")+(g.paused?" [P]":"")+(g.seeking?" [S]":"")+(g.ended?" [E]":"")+("open"===p.readyState?"":` MSE.readyState=${p.readyState}`)+(1===p.sourceBuffers.length?"":` MSE.buffers=${p.sourceBuffers.length}`)+(g.networkState===HTMLMediaElement.NETWORK_LOADING?"":` networkState=${g.networkState}`)+` readyState=${g.readyState}`+` currentTime=${g.currentTime}`+(a?` buffered=${i}`:` MSE.buffered=${r} buffered=${i}`)+(g.duration===1/0?"":` duration=${g.duration}`)+` seekable=${X(g.seekable)}`+` played=${X(g.played)}`)}function X(e){var t="";if(e&&0!==e.length){var n=e.length,r=Math.max(n-20,0);for(0!==r&&(t=`[${r}]`);r=2&&be.ОбработатьСобытие("проигрыватель-переполненбуфер",b-e),y+=`Переполнен буфер проигрывателя ${b.toFixed(2)}с > ${t}с. `,d=n.end(a)-e-.1}if(e===c&&v<2){v=2;const e=ke.Получить("чМаксРазмерБуфера")+Ie.ПолучитьTargetDuration()/2;b>e&&(y+=`Превышена задержка трансляции ${b.toFixed(2)}с > ${e}с. `,d=n.end(a)-e)}V(r=E){$=!0;break}}return $||g.paused||function(e,t,n){V("ended"!==p.readyState),V(e1;Ie.ИсчерпанБуферПроигрывателя(r),x="чМаксРазмерБуфера";const a=ke.Получить(x);e+n>=i&&t+n>=a?D(r?"Ой":"Окак",`Буфер исчерпан, остановка не нужна БудетДобавлено=${he.F3(n)}с ДоКонцаПоследнейОбласти=${he.F3(e)}с НеПросмотрено=${he.F3(t)}с РазмерБуфера=${a}с`):(D(r?"Ой":"Окак",`Приостанавливаю воспроизведение для заполнения буфера ДоКонцаПоследнейОбласти=${he.F3(e)}с НеПросмотрено=${he.F3(t)}с РазмерБуфера=${a}с`),B=!0,G(I))}(k,b,t),!$&&e!==s||d===o&&!B?$?h:f:(d===o&&(d=g.currentTime),D(y?"Ой":"Окак",`${y}Перематываю до ${d}`),B=!1,g.currentTime=d,m)}function W(e){if(!g.seeking&&e!==m&&g.paused&&!g.ended){if(L&&"ended"!==p.readyState){const e=P().чНеПросмотрено,t=ke.Получить(x);if(e= ${t}с`)}else he.Окак("[Проигрыватель] Не нужно ждать заполнения буфера");switch(Y(c)){case f:D("Ой",`Не найдена область >= ${i}с для начала воспроизведения`),L=!0;break;case h:D("Окак","Начало воспроизведения"),L=!0,g.play(),Ce.ИзменитьСостояние(S)}}}function G(e){void 0!==e&&Ce.ИзменитьСостояние(e),g.pause()}function z(e,t){return new Promise(function(r,i){D("Вот",`Добавляю ${t?"сегмент инициализации":"медиасегмент"} ${e.чНомер}`),y.addEventListener("updateend",function t(){try{null===y?i(ue.ОБЕЩАНИЕ_ОТМЕНЕНО):(a+=n.now(),y.removeEventListener("updateend",t),D(a>100?"Ой":"Вот",`Добавлен сегмент ${e.чНомер} за ${he.F0(a)}мс`),r())}catch(e){i(e)}});var a=-n.now();y.appendBuffer(t?e.пДанные.мбСегментИнициализации:e.пДанные.мбМедиасегмент)})}function ee(){V(g);var c=K[0];if(!b&&c&&c.чОбработка===E){if(V(A===F),c.пДанные===w)return V(0===p.sourceBuffers.length),Ce.ИзменитьСостояние(c.пДанные),K.Удалить(0),void ee();if(c.пДанные===T)return V(Ce.ПолучитьСостояние()!==_&&Ce.ПолучитьСостояние()!==T),function(){M.лПауза=!0,A=M,G(),0!==p.sourceBuffers.length&&"open"===p.readyState&&p.endOfStream();var e=P().чПросмотрено;if(e=a&&(he.Ой(`[Проигрыватель] MediaSource закрыт слишком долго ${l}с >= ${a}с`),V(Ce.ПолучитьСостояние()===$||Ce.ПолучитьСостояние()===w),Ce.ПереключитьПросмотрТрансляции()));if(c.лРазрыв&&0!==p.sourceBuffers.length)!function(e){D("Окак",`Сегмент ${e.чНомер} вызвал окончание потока`),0===g.buffered.length||g.paused&&P().чНеПросмотрено100||r.чПросмотрено1;he[n?"Ой":"Вот"](`[Проигрыватель] Смещение начала трансляции ${he.F1(t)}с`),Ie.ОкноПоказано()&&Ie.ОбновитьЗначение("статистика-смещениеначалатрансляции",t.toFixed(1),n),C=t}}(c);var e=Y(s);K[0]&&K[0].чОбработка===E||(W(e),function(){if(Ie.ОкноПоказано()){var e=y.buffered;0!==e.length&&(t.getElementById("статистика-продолжительностьтрансляции").textContent=ve.ПеревестиСекундыВСтроку(e.end(e.length-1)+C,!0))}}(),function(e){if(Ie.ОкноПоказано()){var n="";if(Z(e.пДанные.чВремяКодирования)){var r=g.currentTime;if(0!==r){var i=(Date.now()-e.пДанные.чВремяКодирования)/1e3,a=e.пДанные.чПозицияКодирования-r;n=`${i.toFixed(1)} + ${a.toFixed(1)} = ${(i+a).toFixed(1)}`}}he.Вот(`[Проигрыватель] Задержка трансляции ${n}с`),t.getElementById("статистика-задержкатрансляции").textContent=n}}(c))}ee()}).catch(function(e){try{if(b=!1,"ДОБАВЛЕНИЕ СЕГМЕНТА ОТЛОЖЕНО"===e)return;K.Удалить(c),e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот(`[Проигрыватель] Отменено добавление сегмента ${c.чНомер}`):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}}}function te(e){V(Ce.ПолучитьСостояние()===T),M.ПроверитьПозициюВоспроизведения(e)}return{"Запустить":function(){V(!g);try{p=new MediaSource}catch(e){me.ЗавершитьРаботуИПоказатьСообщение("J0202")}for(var e of(p.addEventListener("sourceopen",U),p.addEventListener("sourceended",U),p.addEventListener("sourceclose",U),p.sourceBuffers.addEventListener("addsourcebuffer",U),p.sourceBuffers.addEventListener("removesourcebuffer",U),g=t.getElementById("глаз"),R(),["progress","error","playing","seeking","seeked","ended","timeupdate","waiting","loadstart","suspend","abort","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","durationchange","play","pause","ratechange","resize"]))g.addEventListener(e,H);return g.src=URL.createObjectURL(p),!0},"Остановить":function(){g&&(URL.revokeObjectURL(g.src),g.removeAttribute("src"),g.load())},"ПолучитьЗаполненностьБуфера":P,"ПолучитьКоличествоПропущенныхКадров":function(){return"function"==typeof g.getVideoPlaybackQuality?g.getVideoPlaybackQuality():{totalVideoFrames:g.webkitDecodedFrameCount,droppedVideoFrames:g.webkitDroppedFrameCount}},"ПолучитьПозициюВоспроизведенияТрансляции":function(){var e=Ce.ПолучитьСостояние()===T?_e.ПолучитьКонец():g.currentTime;return 0===e?0:Math.max(e+C,0)},"ПоказатьСостояние":D,"Перезагрузить":J,"ПрименитьНастройкиЗвука":R,"ДобавитьСледующийСегмент":ee,"ПеремотатьПовторДо":te,"ПеремотатьПовторНа":function(e,t){V(Ce.ПолучитьСостояние()===T),V(Number.isFinite(t)),e&&(t*=Ie.ПолучитьДлительностьКадраВСекундах().чМинимальная),0!==t&&te(ne(g.currentTime+t,_e.ПолучитьНачало(),_e.ПолучитьКонец()))},"ПереключитьПаузу":function(){V(Ce.ПолучитьСостояние()===T),(M.лПауза=!M.лПауза)?(he.Окак("[Проигрыватель] Ставлю повтор на паузу"),g.pause()):(he.Окак("[Проигрыватель] Снимаю повтор с паузы"),M.ПроверитьПозициюВоспроизведения(c),g.play()),be.ОбработатьСобытие("проигрыватель-пауза",M.лПауза)},"ЗадатьСкоростьПовтора":function(e){V(Ce.ПолучитьСостояние()===T),g.playbackRate=e}}})(),Fe=(()=>{const e=3e3,t=3e4,r=1e3,i=150;var a,s,l,d=_,f=new Array(10),h=new ue,m=null,g=null;function p(e,t,n){if(!n.startsWith("#EXTM3U"))throw`Вместо списка загружена какая-то фигня длиною ${n.length}\n${n}`;var r=1;if(e)var i=new Map,a=[],o=null;else var s,c,u=0,l=0,d=NaN,f=!1,h=[],m=null;var g,p=/^#([A-Z0-9\-]+)(?::(.+))?$|^[^#\r\n].*$/gm;for(p.lastIndex=7;g=p.exec(n);){var y=g[0],b=g[1],w=g[2];if("#"===y.charAt(0))switch(b){case"EXTM3U":V(!1);break;case"EXT-X-VERSION":V(1===r),V((r=$(w))>=2&&r<=7);break;case"EXT-X-START":V(!1);break;case"EXT-X-MEDIA":V(e);var k=(T=E(w)).get("TYPE");if(V(k),V("VIDEO"!==k&&"AUDIO"!==k||!T.has("URI")),"VIDEO"!==k)he.Ой(`[Список] Найден #EXT-X-MEDIA TYPE=${k}`);else{var _=S(T.get("GROUP-ID"));V(!i.has(_)),i.set(_,S(T.get("NAME")))}break;case"EXT-X-STREAM-INF":V(e),V(!o),o=Object.create(null);var T=E(w);o.nPeakBitrate=$(T.get("BANDWIDTH")),o.сКодеки=T.has("CODECS")?S(T.get("CODECS")):"",V(!T.has("AUDIO")&&!T.has("SUBTITLES")&&!T.has("CLOSED-CAPTIONS")),T.has("VIDEO")&&(o.сИдентификатор=S(T.get("VIDEO")));break;case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":V(e);break;case"EXT-X-TARGETDURATION":V(!e),V(void 0===s),V((s=$(w))>0&&s<86400);break;case"EXT-X-MEDIA-SEQUENCE":V(!e),V(0===l),l=$(w);break;case"EXT-X-ENDLIST":V(!e),V(void 0===c),V(void 0===w),c=!0,he.Окак(`[Список] #EXT-X-ENDLIST после сегмента ${l+h.length-1}`);break;case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-DATERANGE":V(!e);break;case"EXT-X-PLAYLIST-TYPE":case"EXT-X-I-FRAMES-ONLY":V(!1);break;case"EXTINF":V(!e),V(void 0===(m=m||Object.create(null)).чДлительность),m.чДлительность=N(w),V(0!==m.чДлительность),m.чДлительность-s>1&&he.Ой(`[Список] Длительность сегмента превышена на ${m.чДлительность-s}с`);break;case"EXT-X-DISCONTINUITY":V(!e),V(!f),V(void 0===w),f=!0,he.Ой(`[Список] #EXT-X-DISCONTINUITY у сегмента ${l+h.length}`);break;case"EXT-X-PROGRAM-DATE-TIME":V(!e);break;case"EXT-X-BYTERANGE":case"EXT-X-KEY":case"EXT-X-MAP":V(!1);break;case"EXT-X-TWITCH-ELAPSED-SECS":V(!e),V(0===h.length),V(Number.isNaN(d)),d=I(w)}else y=new URL(y,t).href,e?(V(o),o.сАбсолютныйАдресСпискаСегментов=y,a.push(o),o=null):(V(m),V(void 0!==m.чДлительность),V(!c),m.чTwitchПрошлоВремени=d,m.лРазрыв=f,m.сАдрес=y,h.push(m),u+=m.чДлительность,d+=m.чДлительность,f=!1,m=null)}if(e){for(var x of(V(!o),a))"сИдентификатор"in x?(x.сНазвание=i.get(x.сИдентификатор),V(x.сНазвание)):(x.сИдентификатор=`CoolCmd${x.nPeakBitrate}`,x.сНазвание=`${ve.ФорматироватьЧисло(x.nPeakBitrate/1e6,1)} ${z("J0114")}`),he.Окак(`[Список] Добавлен вариант PeakBitrate=${x.nPeakBitrate} Идентификатор=${x.сИдентификатор} Название=${x.сНазвание} Кодеки=${x.сКодеки}`);return a.sort(v),a}return V(!m),V(void 0!==s),he.Вот(`[Список] Разобран список сегментов TargetDuration=${s} MediaSequenceNumber=${l} КоличествоСегментов=${h.length} ДлительностьСписка=${he.F1(u)}с`),Ie.РазобранСписокСегментов(s,h.length,u),{nMediaSequenceNumber:l,nTargetDuration:s,"лКонецСписка":!!c,"моСегменты":h}}function v(e,t){return("chunked"===t.сИдентификатор?1e9:t.nPeakBitrate)-("chunked"===e.сИдентификатор?1e9:e.nPeakBitrate)}function E(e){V(e);for(var t=/([A-Z0-9\-]+)=("[^"]+"|[^",][^,]*)(?:,|$)/g,n=new Map;t.lastIndex!==e.length;){var r=t.lastIndex,i=t.exec(e);V(i&&i.index===r),V(!n.has(i[1])),n.set(i[1],i[2])}return n}function $(e){return V(/^[0-9]{1,15}$/.test(e)),Number.parseInt(e,10)}function I(e){return V(/^[0-9]{1,14}(?:\.[0-9]{1,15})?$/.test(e)),Number.parseFloat(e)}function S(e){return V(e&&e.length>2&&'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)),e.slice(1,-1)}function N(e){if(V(e),"-"===e.slice(0,1))throw"Отрицательный #EXTINF";var t=e.indexOf(",");return I(-1===t?e:e.slice(0,t))}function T(v){V(Number.isFinite(v)&&v>=0),he.Вот(`[Список] Загрузка списка начнется через ${he.F0(v)}мс`);var E,$,I=le(h,v);m||(I=I.then(function(){return De.ПолучитьАбсолютныйАдресСпискаВариантов(h)}).then(function(e){return E=e,Ae.ЗагрузитьТекст(h,E,c,"список вариантов",!1)}).then(function(e){me.СохранитьСписокВариантов(e),m=p(!0,E,e),C()}));I.then(function(){return $=n.now(),Ae.ЗагрузитьТекст(h,m[s].сАбсолютныйАдресСпискаСегментов,u,"список сегментов",!1)}).then(function(e){me.СохранитьСписокСегментов(e);var t=function(e){V(d===w);const t=o*g.nTargetDuration*10;if(0===e)return t;var n=ke.Получить("чИнтервалОпроса");if(n!==O)return n*g.nTargetDuration*10;V(e>0&&e<=g.моСегменты.length),-1===a&&(a=0,e=g.моСегменты.length);e=Math.min(e,f.length);do{f[a]=g.моСегменты[g.моСегменты.length-e].чДлительность,++a===f.length&&(a=0)}while(0!=--e);return V((n=Math.max.apply(null,f))>0),Math.max(1e3*n+i,t)}(function(e){if(null===g){if(e.лКонецСписка)throw"Найден #EXT-X-ENDLIST";V(0!==e.моСегменты.length),l=!0;for(var t=ke.Получить("чРазмерБуфера"),n=Math.max(e.моСегменты.length-ke.Получить("кЗаначка")-W,1);0!=--n&&(t-=e.моСегменты[n].чДлительность)>0;);}else{V(0!==e.моСегменты.length),(e.nMediaSequenceNumber [${e.nMediaSequenceNumber}..${e.nMediaSequenceNumber+e.моСегменты.length-1}]`);const t=e.nMediaSequenceNumber-(g.nMediaSequenceNumber+g.моСегменты.length);t>0&&(he.Ой(`[Список] Пропущено сегментов: ${t}`),Ie.НеЗагруженыСегменты(t),l=!0),e.nTargetDuration!==g.nTargetDuration&&(he.Ой(`[Список] Изменился target duration ${g.nTargetDuration} ==> ${e.nTargetDuration}`),L()),n=0}for(var r,i=0,a=0;r=e.моСегменты[n];++n){const t=e.nMediaSequenceNumber+n;if(null!==g&&t>=g.nMediaSequenceNumber&&t ${r.сАдрес} или длительность ${e.чДлительность} ==> ${r.чДлительность}`),l=!0)}if(null===g||t>=g.nMediaSequenceNumber+g.моСегменты.length){d!==w&&(d=w,K.Добавить(new de(b,w)),L());const e=K.Добавить(new de(y,r.сАдрес,r.чДлительность,r.лРазрыв||l,r.чTwitchПрошлоВремени));he.Вот(`[Список] Добавлен сегмент ${e.чНомер} MediaSequenceNumber=${t} Длительность=${e.чДлительность} Разрыв=${e.лРазрыв} TwitchПрошлоВремени=${e.чTwitchПрошлоВремени}`),l=!1,i+=1,a+=e.чДлительность}}if(Ie.ДобавленыСегментыВОчередь(i,a),(null===g||e.nMediaSequenceNumber+e.моСегменты.length>=g.nMediaSequenceNumber+g.моСегменты.length)&&(g=e),e.лКонецСписка)throw"Найден #EXT-X-ENDLIST";return i}(p(!1,m[s].сАбсолютныйАдресСпискаСегментов,e)));T(Math.max(t-n.now()+$,0)),Ae.ЗагрузитьСледующийСегмент()}).catch(function(n){try{"string"==typeof n?(he.Ой(`[Список] Завершаю трансляцию. ${n}`),function(){d!==k&&(d=k,K.Добавить(new de(b,k)),L());B(),g=null}(),T(function(){V(d===k),a=-1===a?e:Math.min(a+r,t);return a}()),Ae.ЗагрузитьСледующийСегмент()):n===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот("[Список] Отменено обновление списков"):me.ПойманоИсключение(n)}catch(e){me.ПойманоИсключение(e)}})}function x(){he.Вот("[Список] Отменяю обновление списков"),h.Отменить()}function L(){f.fill(0),a=-1}function C(){if(0===m.length)throw"Список вариантов пуст";var e=ke.Получить("сНазваниеВарианта");for(s=m.length-1;0!==s&&m[s].сИдентификатор!==e;)--s;he.Вот(`[Список] Выбран вариант трансляции ${m[s].сИдентификатор} ЖелаемыйВариант=${e}`),be.ОбработатьСобытие("список-выбранварианттрансляции",[m,s])}function B(){m&&(he.Вот("[Список] Очищаю список вариантов трансляции"),m=null,be.ОбработатьСобытие("список-выбранварианттрансляции",[m,s]))}return L(),{"Запустить":function(){V(d===_),h.НачалоВыполнения(),T(0)},"Остановить":function(){d=_,x(),B(),g=null},"ИзменитьВариантТрансляции":function(){V(m),x(),L(),C(),g=null,h.НачалоВыполнения(),T(0)}}})(),Me=(()=>{var e=null,t=-1;function n(e){me.ЗавершитьРаботуИОтправитьОтчет(`Произошла ошибка в рабочем потоке в строке ${e.lineno}. ${e.message}`)}function i(e){try{var t=e.data;switch(V(Array.isArray(t)),t[0]){case 1:V(2===t.length&&Q(t[1]));var n=new de(E,t[1].пДанные,t[1].чДлительность,t[1].лРазрыв,t[1].чTwitchПрошлоВремени,t[1].чНомер);if(he.Вот(`[Преобразование] Получен сегмент ${n.чНомер} ПреобразованЗа=${he.F0(n.пДанные.чПреобразованЗа)}мс`),"number"!=typeof n.пДанные){if(Ie.ПолученПреобразованныйСегмент(n),void 0===n.пДанные.мбМедиасегмент)return;me.СохранитьПреобразованныйСегмент(n)}return K.Добавить(n),void Be.ДобавитьСледующийСегмент();case 2:var r=t[1],i=t[2];V(3===t.length&&Array.isArray(r)&&Array.isArray(i)&&r.length===i.length);for(var a=0;ab)){if(i.чОбработка{function e(e,t,r,i,a,o,s,c,u){return V("GET"===t||"PUT"===t||"DELETE"===t),V("string"==typeof r&&(r.startsWith("http://")||r.startsWith("https://")||0===i&&r.startsWith(chrome.extension.getURL("")))),V(!c||!o),V(Number.isFinite(i)&&(0===i||i>500)),i=Math.round(i),he.Вот(`[Загрузчик] ${t} ${a} не дольше ${i}мс`),new Promise(function(l,d){const f=new XMLHttpRequest;if(f.addEventListener("timeout",v),f.addEventListener("error",v),f.addEventListener("abort",v),f.addEventListener("load",function(){try{if(G)return;V(f.readyState===XMLHttpRequest.DONE);const e=f.status;if(e>=200&&e<=299&&null!==f.response){V(c&&Q(f.response)||!c&&"string"==typeof f.response);const t=Math.round(n.now()-g),r=Math.round(p-g);he[200===e?"Вот":"Ой"](`[Загрузчик] Загрузил ${a} за ${t}мс`+(u?` ОжиданиеОтвета=${r}мс`:"")+(200===e?"":` Код=${e} ${f.statusText}`)+(o&&f.response.length?`\n${f.response}`:` Размер=${c?f.response.byteLength:f.response.length}`)),0!==i&&Ie.СкачаноНечто(function(e){var t,n=17+e.statusText.length+e.getAllResponseHeaders().length;(function(e){return 0===e.statusText.length})(e)&&(n=Math.round(.5*n));var r=e.getResponseHeader("Content-Length");r?t=Number.parseInt(r,10):"text"!==e.responseType?t=e.response.byteLength:(t=e.response.length,(r=e.getResponseHeader("Content-Encoding"))&&"identity"!==r&&(t=Math.round(.35*t)));return n+t}(f)),c?l({"буфДанные":f.response,"чДлительностьЗагрузки":t,"чОжиданиеОтвета":r}):(V(!u),l(f.response))}else he.Ой(`[Загрузчик] Не удалось загрузить ${a}. Сервер вернул код ${e} ${f.statusText}`+(c&&Q(f.response)?` Размер=${f.response.byteLength}`:`\n${f.response}`)),(e>=400&&e<=499||null===f.response||!y())&&d(M+e)}catch(e){me.ПойманоИсключение(e)}}),u&&f.addEventListener("progress",function e(){try{V(Number.isNaN(p)),p=n.now(),f.removeEventListener("progress",e)}catch(e){me.ПойманоИсключение(e)}}),e&&e.ЗаменитьОбработчик(function(){f.removeEventListener("abort",v),f.abort(),d(ue.ОБЕЩАНИЕ_ОТМЕНЕНО)}),f.open(t,r),s)for(var h of Object.keys(s))f.setRequestHeader(h,s[h]);f.responseType=c?"arraybuffer":"text",f.timeout=i;var m=!c;V(!m||!u);const g=n.now();var p=NaN;function y(){if(!m)return!1;if(he.Ой(`[Загрузчик] Повторно загружаю ${a}`),f.open(t,r),s)for(var e of Object.keys(s))f.setRequestHeader(e,s[e]);return m=!1,f.send(),!0}function v(e){try{if(G)return;he.Ой(`[Загрузчик] Не удалось загрузить ${a}. Произошло событие ${e.type}`),("timeout"!==e.type&&"error"!==e.type||!y())&&d(`Произошло событие ${e.type}`)}catch(e){me.ПойманоИсключение(e)}}f.send()})}function t(){for(var e=K.length,n=ke.Получить("кЗаначка");0!==n&&(0!==e&&K[e-1].чОбработка===y);--n)--e;var o=ke.Получить("кОдновременныхЗагрузок"),s=0;for(n=0;n=0&&r(K[n])));if(s>=a)return he.Ой(`[Загрузчик] Длительность всех загрузок в очереди ${he.F1(s)}с >= ${a}с`),i(null),void t();Me.ПреобразоватьСледующийСегмент()}function r(n){const r=5e3+n.чДлительность*ke.Получить("кОдновременныхЗагрузок")*2*1e3;V(r<1e3*a);const o=n.пДанные;n.пДанные=new ue,n.пДанные.НачалоВыполнения(),n.чОбработка=v,e(n.пДанные,"GET",o,r,`сегмент ${n.чНомер}`,!1,null,!0,Ie.ОкноПоказано()).then(function(e){V(K.includes(n)),n.пДанные=e.буфДанные,n.чОбработка=b,Ie.ЗагруженСегмент(e.буфДанные.byteLength,n.чДлительность,e.чДлительностьЗагрузки,e.чОжиданиеОтвета),t()}).catch(function(e){try{"string"==typeof e&&n.чОбработка===v?(he.Ой(`[Загрузчик] Не удалось загрузить сегмент ${n.чНомер}. ${e}`),V(K.includes(n)),i(e===M+404||e===M+410?null:n),V(!K.includes(n)),t()):e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?(he.Вот(`[Загрузчик] Отменена загрузка сегмента ${n.чНомер}`),V(!K.includes(n))):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}function i(e){K.ПоказатьСостояние();const t=K.length;if(e)K.Удалить(e);else for(var n,r=ke.Получить("кЗаначка"),i=ke.Получить("чРазмерБуфера"),a=t-1;n=K[a];--a)"number"!=typeof n.пДанные&&(n.чОбработка!==v?n.чОбработка===y&&(r>0?r-=1:i>0?i-=n.чДлительность:K.Удалить(a)):K.Удалить(a));K.ПоказатьСостояние(),Ie.НеЗагруженыСегменты(t-K.length)}return{"ЗагрузитьТекст":function(t,n,r,i,a,o,s){return e(t,void 0===s?"GET":s,n,r,i,a,o,!1,!1)},"ЗагрузитьСледующийСегмент":t}})();var De=null;function Oe(e){const n=6e4,r="jzkbprff40iqj646a697cyrvl0zt2m6",i={"Client-ID":r,Accept:"application/vnd.twitchtv.v5+json"};var a="",o="",u="",l="",d=new ue;function f(e){if(V(u&&a&&l),u===a)return V(void 0===e),void Ce.ПоказатьМетаданныеЗрителя({"чПодписка":L});switch(e){case void 0:var t="GET",n="";break;case C:t="DELETE",n="";break;case B:t="PUT",n="?notifications=false";break;case F:t="PUT",n="?notifications=true";break;default:V(!1)}Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/users/${u}/follows/channels/${a}${n}`,s,`подписка ${e}`,!0,void 0===e?i:{"Client-ID":r,Accept:"application/vnd.twitchtv.v5+json",Authorization:`OAuth ${l}`},t).then(function(t){if(e===C)return V(""===t),void Ce.ПоказатьМетаданныеЗрителя({"чПодписка":C});try{var n=JSON.parse(t)}catch(e){throw String(e)}V(ee(n.created_at)),V("boolean"==typeof n.notifications),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":void 0!==e?e:n.notifications?F:B})}).catch(function(t){try{t===M+404?(V(void 0===e),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":C})):"string"==typeof t?(he.Ой(`[Twitch] Не удалось обновить подписку. ${t}`),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":L})):me.ПойманоИсключение(t)}catch(e){me.ПойманоИсключение(e)}})}function h(){try{V(a),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}`,s,"метаданные канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}const n=new Date(t.created_at);V(t._id===a&&Number.isFinite(t.followers)&&Number.isFinite(t.views)&&!Number.isNaN(n.getTime())),Ce.ПоказатьМетаданныеКанала({"сИмя":t.display_name||t.name,"сАватар":t.logo||chrome.extension.getURL("glitch.svg"),"сОписание":t.description,"сКодЯзыка":"other"===t.broadcaster_language?null:t.broadcaster_language,"кПодписчиков":t.followers,"кПросмотров":t.views,"дКаналСоздан":n})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить метаданные канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}/communities`,s,"сообщества канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of(V(Array.isArray(t.communities)),t.communities))V(ee(n.name)),n.сИмя=n.display_name||n.name,n.сОписание=n.description,n.сАдрес=`https://www.twitch.tv/communities/${encodeURIComponent(n.name)}`;Ce.ПоказатьМетаданныеКанала({"моСообщества":t.communities})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить сообщества канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}/teams`,s,"команды канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of(V(Array.isArray(t.teams)),t.teams))V(ee(n.name)),n.сИмя=n.display_name||n.name,n.info&&(n.сОписание=re(n.info)),n.сАдрес=`https://www.twitch.tv/team/${encodeURIComponent(n.name)}`;Ce.ПоказатьМетаданныеКанала({"моКоманды":t.teams})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить команды канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,"https://api.twitch.tv/kraken/user",s,"метаданные зрителя",!1,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}return V(ee(t._id)),V(ee(t.name)),u=t._id,Ce.ПоказатьМетаданныеЗрителя({"сИмя":t.display_name||t.name}),Ae.ЗагрузитьТекст(null,"https://api.twitch.tv/api/viewer/token.json",s,"токен зрителя",!1,{"Client-ID":r})}).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}V(ee(t.token)),l=t.token,Ce.ПоказатьМетаданныеЗрителя({"лАвторизован":!0}),f()}).catch(function(e){try{"string"==typeof e?(he.Ой(`[Twitch] Не удалось получить метаданные зрителя. ${e}`),u=l="",Ce.ПоказатьМетаданныеЗрителя({"лАвторизован":!1})):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}catch(e){me.ПойманоИсключение(e)}}function m(t){V(a),he.Вот(`[Twitch] Загрузка метаданных трансляции начнется через ${he.F0(t)}мс`),le(d,t).then(function(){return Ae.ЗагрузитьТекст(d,`https://api.twitch.tv/kraken/streams/${a}`,s,"метаданные трансляции",!0,i)}).then(function(t){try{var n=JSON.parse(t)}catch(e){throw String(e)}if(!Q(n)||!Q(n.stream))throw"В загруженном JSON нет метаданных";const r="live"!==n.stream.stream_type,c=Date.parse(n.stream.created_at);var u;if(V(String(n.stream.channel._id)===a&&n.stream.hasOwnProperty("_id")&&ee(n.stream.stream_type)&&Number.isFinite(n.stream.viewers)&&Number.isFinite(c)),Ce.ПоказатьМетаданныеТрансляции({"сНазваниеТрансляции":n.stream.channel.status||z("J0103"),"сНазваниеИгры":r?null:n.stream.game||z("J0104"),"сАдресИгры":(u=n.stream.game,"https://www.twitch.tv/directory"+(u?"/game/"+encodeURIComponent(u):"")),"кЗрителей":n.stream.viewers,"чДлительностьТрансляции":Date.now()-c}),e!==n.stream.channel.name&&(he.Ой(`[Twitch] Изменился код канала с ${e} на ${n.stream.channel.name}`),e=n.stream.channel.name),""===o){if(he.Окак(`[Twitch] Идентификатор трансляции: ${n.stream._id}`),o=String(n.stream._id),!r)return Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!1,"сАдресЗаписи":""}),Ae.ЗагрузитьТекст(d,`https://api.twitch.tv/kraken/channels/${a}/videos?broadcast_type=archive&limit=3`,s,"запись трансляции",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of t.videos)if(String(n.broadcast_id)===o){V("archive"===n.broadcast_type),V(String(n.channel._id)===a),Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!1,"сАдресЗаписи":n.url});break}}).catch(function(e){if("string"!=typeof e)throw e;he.Ой(`[Twitch] Не удалось загрузить запись трансляции. ${e}`)});Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!0,"сАдресЗаписи":""})}}).then(function(){m(n)}).catch(function(e){try{"string"==typeof e?(he.Ой(`[Twitch] Не удалось загрузить метаданные трансляции. ${e}`),m(n/2)):e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот("[Twitch] Отменено обновление метаданных трансляции"):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}return V(ee(e)),{"ПолучитьАбсолютныйАдресСпискаВариантов":function(t){return Ae.ЗагрузитьТекст(t,`https://api.twitch.tv/api/channels/${e}/access_token?adblock=false&need_https=false&platform=web&player_type=site`,c,"токен трансляции",!0,{"Client-ID":r}).then(function(t){const n=JSON.parse(t);if(Q(n)&&ee(n.token)&&ee(n.sig)){const t=JSON.parse(n.token);if(t.channel===e)return""===a?(V(t.hasOwnProperty("channel_id")),a=String(t.channel_id),setImmediate(h)):V(a===String(t.channel_id)),`http://usher.ttvnw.net/api/channel/hls/${e}.m3u8?token=${encodeURIComponent(n.token)}&sig=${encodeURIComponent(n.sig)}&allow_source=true`}me.ЗавершитьРаботуИПоказатьСообщение("J0203")},function(e){if(e!==M+404&&e!==M+422)throw e;me.ЗавершитьРаботуИПоказатьСообщение("J0203")})},"ПолучитьАбсолютныйАдресСпискаСегментов":function(e){return e},"ПолучитьАдресУбогогоПроигрывателя":function(){return`https://www.twitch.tv/${e}?twitch5=0`},"ПолучитьАдресПанелиЧата":function(){const t=["https://www.twitch.tv",`/${e}/chat`];return ke.Получить("лЗатемнитьЧат")&&t.push("?darkpopout"),t},"НачатьСборМетаданныхТрансляции":function(){o="",d.НачалоВыполнения(),m(0)},"ЗавершитьСборМетаданныхТрансляции":function(e){e&&(o=""),he.Вот("[Twitch] Отменяю обновление метаданных трансляции"),d.Отменить()},"СоздатьКлип":function(){const n=Math.round(Be.ПолучитьПозициюВоспроизведенияТрансляции()-3);if(""!==o&&n>0){he.Окак(`[Twitch] Создаю клип ИдЗрителя=${u} ИдТрансляции=${o} Позиция=${n}`),t.getElementById("создатьклип-канал").value=e,t.getElementById("создатьклип-трансляция").value=o,t.getElementById("создатьклип-позиция").value=n;try{t.getElementById("создатьклип-форма").submit()}catch(e){}}else he.Ой(`[Twitch] Недостаточно данных для создания клипа ИдЗрителя=${u} ИдТрансляции=${o} Позиция=${n}`)},"ИзменитьПодпискуЗрителяНаКанал":function(e){V(Number.isInteger(e)),f(e)}}}function Xe(t){try{G=!0,he.Окак("[Запускалка] Завершаю работу"),e.stop(),ke.Остановить(),t||(Ie.СкрытьОкно(),me.Остановить(),Be.Остановить(),ye.Сжечь()),De.ЗавершитьСборМетаданныхТрансляции(!0),Fe.Остановить(),Me.Остановить(),K.Очистить(),he.Окак("[Запускалка] Работа завершена")}catch(e){}}(()=>{function r(e){var t=function(e){return e.searchParams||new URLSearchParams(e.search.slice(1))}(e).get("channel")||"channel";return he.Вот(`[Запускалка] Канал ${t}`),{"сКодКанала":t.toLowerCase(),"сАбсолютныйАдресСпискаВариантов":""}}function i(e){he.Окак("[Запускалка] window.beforeunload"),Xe(!0)}try{ve.TranslatePage(t);const a=r(e.location);if(a.сКодКанала){if(function(t){for(var n of(V(ee(t)),chrome.extension.getViews()))if(n!==e&&!n.closed&&r(n.location).сКодКанала===t)return n.chrome.tabs.getCurrent(function(t){try{n.chrome.runtime.lastError||(chrome.tabs.update(t.id,{active:!0}),chrome.windows.update(t.windowId,{focused:!0})),e.history.length<2?e.close():me.ЗавершитьРаботуИПоказатьСообщение("J0211")}catch(e){me.ПойманоИсключение(e)}}),!0;return!1}(a.сКодКанала))return;De=Oe(a.сКодКанала)}else De=function(e){function t(e){return e.replace(/^(file:\/\/\/.*)(\d+)(\.m3u8)$/,function(e,t,n,r){return t+(Number.parseInt(n,10)+1)+r})}function n(){return"about:blank"}function r(){}return{"ПолучитьАбсолютныйАдресСпискаВариантов":function(){return e=t(e),Promise.resolve(e)},"ПолучитьАбсолютныйАдресСпискаСегментов":function(e){return t(e)},"ПолучитьАдресУбогогоПроигрывателя":n,"ПолучитьАдресПанелиЧата":n,"НачатьСборМетаданныхТрансляции":r,"ЗавершитьСборМетаданныхТрансляции":r,"СоздатьКлип":r}}(a.сАбсолютныйАдресСпискаВариантов);Promise.all([ke.Восстановить(),we.ЗапуститьАсинхронно(),new Promise(function(n,r){"complete"===t.readyState?(he.Ой("[Запускалка] document.readyState=complete"),n()):(he.Вот(`[Запускалка] document.readyState=${t.readyState}`),e.addEventListener("load",function i(){try{e.removeEventListener("load",i),V("complete"===t.readyState),he.Вот("[Запускалка] window.onload"),n()}catch(e){r(e)}}))})]).then(function(){he.Вот(`[Запускалка] Начало работы ${n.now().toFixed()}мс`),V(!G),e.addEventListener("beforeunload",i),me.Запустить(),Ce.Запустить(),Be.Запустить()?Fe.Запустить():Ce.ПереключитьПросмотрТрансляции(),ke.Получить("лПоказатьСтатистику")&&Ie.ПоказатьОкно()}).catch(me.ПойманоИсключение)}catch(e){me.ПойманоИсключение(e)}})()}(window); \ No newline at end of file +!function(e){"use strict";const t=e.document,n=e.performance,r="2018.4.6",i=1.5,a=60,o=40,s=15e3,c=15e3,u=6e3,l=1,d=100,f=4,h=2,m=1,g=5,p=3,y=1,v=2,b=3,E=4,$=1,w=2,k=3,I=4,S=5,N=6,_=7,T=8,x=-1,L=0,C=1,B=2,F=3,M="Сервер вернул код ",A=Number.MIN_SAFE_INTEGER+1e3,D=Number.MAX_SAFE_INTEGER-1e3,O=Number.MIN_SAFE_INTEGER,X=0,P=1,R=0,J=1,j=2,q=1,U=2,H=3,Y=4,W=0;var G=!1,K=[];function V(e){if(!e)throw new Error("Проверка не пройдена")}function z(e){return ve.GetText(e)}function Q(e){return"object"==typeof e&&null!==e}function Z(e){return"number"==typeof e&&e==e}function ee(e){return"string"==typeof e&&""!==e}function te(e,t){if(V("number"==typeof e&&Number.isInteger(t)&&t>=0&&t<=20),0===t)return Math.round(e);var n=Math.pow(10,t);return Math.round(e*n)/n}function ne(e,t,n){return V(Number.isFinite(e)&&Number.isFinite(t)&&Number.isFinite(n)&&t<=n),Math.min(Math.max(e,t),n)}function re(e){return V("string"==typeof e),(e=(e=function(e){V("string"==typeof e);const n=t.createElement("template");return n.innerHTML=e,n.content.textContent}(e=e.replace(/[\t\r\n]/g," ").replace(/<\s*br[\s\/]*>/gi,"\n"))).replace(/^\s+|[^\S\r\n]+$/gm,"")).replace(/[^\S\r\n]{2,}/g," ")}function ie(e,t){return e.length<=t?e:`${e.slice(0,t)}---8<---Отрезано ${e.length-t}`}function ae(e){const t=getComputedStyle(e);return("scroll"===t.overflowY||"auto"===t.overflowY)&&e.clientHeight=0&&t<=2147483647),new Promise(function(n,r){var i=setTimeout(n,t);e&&e.ЗаменитьОбработчик(function(){clearTimeout(i),r(ue.ОБЕЩАНИЕ_ОТМЕНЕНО)})})}function de(e,t,n,r,i,a){switch(V("number"==typeof e&&e>=y&&e<=E),V("number"==typeof t&&t>=w&&t<=T||Q(t)||"string"==typeof t&&e===y),arguments.length){case 2:n=0,r=!0,i=NaN;case 5:V(Number.isFinite(n)&&n>=0),V("boolean"==typeof r),V("number"==typeof i),a=++de._чНомер;case 6:V(Number.isFinite(a));break;default:V(!1)}"number"==typeof t&&he.Окак(`[Очередь] Добавлен сегмент ${a} Состояние=${t} Обработка=${e}`),this.чОбработка=e,this.пДанные=t,this.чДлительность=n,this.лРазрыв=r,this.чTwitchПрошлоВремени=i,this.чНомер=a}function fe(e,n,r,i){V(r>=0),this._сИмяНастройки=e,this._оПараметрыНастройки=ke.ПолучитьПараметрыНастройки(e),this._чШаг=n,this._чТочность=r,this._чТаймер=0,this._кИнтервал=0,this._чДобавить=0,this._узУзел=t.getElementById(i),this._узУзел.addEventListener("mousedown",this),this._Показать()}void 0===e.setImmediate&&(e.setImmediate=function(e){V("function"==typeof e),setTimeout(e,0)}),ue.ОБЕЩАНИЕ_ОТМЕНЕНО=new Error("AbortError"),ue.prototype.НачалоВыполнения=function(){V(!this._лВыполняется),this._лВыполняется=!0},ue.prototype.Отменить=function(){this._лВыполняется=!1,this._фОбработчик&&(this._фОбработчик(),this._фОбработчик=null)},ue.prototype.ЗаменитьОбработчик=function(e){V(this._лВыполняется),V("function"==typeof e||null===e),this._фОбработчик=e},de._чНомер=0,de.prototype.toString=function(){return this.пДанные===w?`${this.чНомер}-${this.чОбработка}-Н`:this.пДанные===k?`${this.чНомер}-${this.чОбработка}-К`:this.лРазрыв?`${this.чНомер}-${this.чОбработка}-Р`:`${this.чНомер}-${this.чОбработка}`},K.ПолучитьКоличествоПреобразованныхСегментов=function(){for(var e=0,t=0;e1.5*a&&me.ЗавершитьРаботуИПоказатьСообщение("J0208"),this.splice(n.кКоличество,0,e)}return e},K.Удалить=function(e,t){if(0!==t){if(void 0===t?t=1:V(Number.isInteger(t)&&t>=1),"number"==typeof e){V(Number.isInteger(e)&&e>=0);var n=e}else if(-1===(n=this.indexOf(e)))return void V(e instanceof de);for(;--t>=0;){switch(V(nthis._ОбработатьТаймер(),130),this._кИнтервал=0,this._ОбработатьТаймер()}return;case"фокусник-изменилосьсостояние":if(e.data.лАктивен)return}0!==this._чТаймер&&(t.removeEventListener("mouseup",this),be.УдалитьОбработчик("фокусник-изменилосьсостояние",this),clearInterval(this._чТаймер),this._чТаймер=0)}catch(e){me.ПойманоИсключение(e)}},fe.prototype._ОбработатьТаймер=function(){try{if(1==++this._кИнтервал||this._кИнтервал>3){const e=ke.Получить(this._сИмяНастройки);let t;(t=this._оПараметрыНастройки.сАвтонастройка&&this._чДобавить<0&&e===this._оПараметрыНастройки.чМинимальное||this._оПараметрыНастройки.сАвтонастройка&&this._чДобавить>0&&e===this._оПараметрыНастройки.чМаксимальное?O:e===O&&this._чДобавить>0?this._оПараметрыНастройки.чМинимальное:e===O&&this._чДобавить<0?this._оПараметрыНастройки.чМаксимальное:e+this._чДобавить)!==O&&(t=ne(te(t,this._чТочность),this._оПараметрыНастройки.чМинимальное,this._оПараметрыНастройки.чМаксимальное)),t!==e&&(ke.Изменить(this._сИмяНастройки,t),this._Показать(t),this.ПослеИзменения(t))}}catch(e){me.ПойманоИсключение(e)}},fe.prototype.Обновить=function(){this._Показать()},fe.prototype.ПослеИзменения=function(){};const he=(()=>{const e=1e3;var t=new Array(1500),r=-1;function i(i,a){V("string"==typeof i&&"string"==typeof a),a=ie(`${i} ${(n.now()/1e3).toFixed(3)} ${a}`,e),++r===t.length&&(r=0),t[r]=a}function a(e){V(1===arguments.length),i(" ",e)}function o(e){return function(t){return"number"==typeof t?t.toFixed(e):"NaN"}}return a(`[Журнал] Журнал запущен ${n.now().toFixed()}мс`),{"Вот":a,"Окак":function(e){V(1===arguments.length),i("~",e)},"Ой":function(e){V(1===arguments.length),i("@",e)},O:function(e){switch(null===(t=e)?"null":typeof t){case"object":return JSON.stringify(e);case"function":return`[function ${e.name}]`;case"symbol":return"[symbol]";default:return String(e)}var t},F0:o(0),F1:o(1),F2:o(2),F3:o(3),"ПолучитьДанныеДляОтчета":function(){var e=r+1;return e===t.length?t:void 0===t[e]?t.slice(0,e):t.slice(e).concat(t.slice(0,e))}}})(),me=(()=>{var i="",a=[];function o(){Ce.ОтключитьПолноэкранныйРежим(),t.body.textContent="";for(let e of t.querySelectorAll('link[rel="stylesheet"], style'))e.remove();for(let e of[t.documentElement,t.body])e.removeAttribute("class"),e.removeAttribute("style"),e.removeAttribute("hidden");return new Promise((e,n)=>{const r=t.createElement("iframe");r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%",r.style.zIndex="100500",r.style.border="0",r.src="report.html",r.addEventListener("load",function t(){r.removeEventListener("load",t),ve.TranslatePage(r.contentDocument),e(r.contentDocument)}),t.body.appendChild(r)})}function s(e,t,n){n&&e.documentElement.classList.add(t);for(let n of e.querySelectorAll("form"))if(n.id===t){se(n,!0);const e=n.querySelector("*[autofocus]");e&&e.focus()}else se(n,!1)}function c(n,c){!function(e){try{chrome.system.memory.getInfo(function(t){e(chrome.runtime.lastError?void 0:t)})}catch(t){e()}}(u=>{!function(e){try{chrome.system.cpu.getInfo(function(t){e(chrome.runtime.lastError?void 0:t)})}catch(t){e()}}(l=>{!function(t,n){o().then(r=>{let i;(i="ОСТАВИТЬ ОТЗЫВ"===t.ПричинаЗавершенияРаботы?r.getElementById("отладка-отзыв"):r.getElementById("отладка-ошибка")).elements["отладка-отчет"].value=JSON.stringify(t),s(r,i.id,!0),r.body.addEventListener("reset",t=>{t.preventDefault(),e.location.reload()});let a,o,c=!1;r.body.addEventListener("submit",t=>{switch(t.preventDefault(),t.target.id){case"отладка-идетотправка":c=!0,a.abort();break;case"отладка-сбойотправки":i.querySelector('*[type="submit"]').click();break;default:r.getElementById("отладка-ходотправки").value=0,s(r,"отладка-идетотправка",!1),a||((a=new XMLHttpRequest).upload.addEventListener("progress",e=>{r.getElementById("отладка-ходотправки").value=e.loaded/e.total}),a.addEventListener("load",e=>{c=e.target.status>=200&&e.target.status<=299}),a.addEventListener("loadend",()=>{c?e.location.reload():s(r,"отладка-сбойотправки",!1)}),o=new FormData(t.target),n&&o.append("отладка-транспортныйпоток-0",new Blob([n],{type:"video/mp2t"}))),a.open("POST","http://r90354g8.beget.tech/tw5/report3.php"),a.send(o)}})})}({"ПричинаЗавершенияРаботы":n,"ВерсияРасширения":r,"Оборзеватель":navigator.userAgent,"Время":(new Date).toISOString(),"Адрес":e.location.href,"Инкогнито":chrome.extension.inIncognitoContext,"Оперативка":u,"Процессор":l,"Видюха":function(){try{var e=t.createElement("canvas").getContext("webgl"),n=e.getExtension("WEBGL_debug_renderer_info");return e.getParameter(n.UNMASKED_VENDOR_WEBGL)+" | "+e.getParameter(n.UNMASKED_RENDERER_WEBGL)}catch(e){}}(),"Язык":function(){try{return z("J0103")}catch(e){}}(),"ОтклонениеПульса":y,"Экран":{top:e.screen.top,left:e.screen.left,width:e.screen.width,height:e.screen.height,availTop:e.screen.availTop,availLeft:e.screen.availLeft,availWidth:e.screen.availWidth,availHeight:e.screen.availHeight,colorDepth:e.screen.colorDepth,pixelDepth:e.screen.pixelDepth,orientation:"object"==typeof e.screen.orientation?e.screen.orientation.type:void 0,screenX:e.screenX,screenY:e.screenY,outerWidth:e.outerWidth,outerHeight:e.outerHeight,innerWidth:e.innerWidth,innerHeight:e.innerHeight,devicePixelRatio:e.devicePixelRatio},"Фокусник":Ee.ПолучитьСостояние(),"Настройки":ke.ПолучитьДанныеДляОтчета(),"Статистика":Ie.ПолучитьДанныеДляОтчета(),"СписокВариантов":i,"СпискиСегментов":a,"Журнал":he.ПолучитьДанныеДляОтчета()},c)})})}function u(e){var t;throw void(G||(console.error(e),Xe(!1),t=z(e),o().then(e=>{e.getElementById("отладка-текстсообщения").textContent=t,s(e,"отладка-сообщение",!0)})))}function l(e,t){if(!G){console.error(e),(e=String(e)).includes("out of memory")&&u("J0200");try{Be.ПоказатьСостояние("Вот","[Отладка] Завершаю работу"),K.ПоказатьСостояние()}catch(e){}Xe(!1),c(e,t)}throw void 0}const d=500,f=200,h=40;var m,g,p=0,y=0;function v(){try{var e=n.now(),r=Date.now();if(Ce.ПолучитьСостояние()!==_&&Ce.ПолучитьСостояние()!==T){var i=e-m,a=i-(t.hidden?Math.max(d,1e3):d),o=r-g-i;(a>f||Math.abs(o)>h)&&he.Ой(`[Пульс] ${he.F0(a)} ${he.F0(o)}`),y=Math.max(y,a)}m=e,g=r,p=setTimeout(v,d)}catch(e){me.ПойманоИсключение(e)}}return{"Запустить":function(){V(0===p),m=n.now(),g=Date.now(),p=setTimeout(v,d)},"Остановить":function(){0!==p&&(clearInterval(p),p=0)},"СохранитьСписокВариантов":function(e){G||(i=ie(e,15e3))},"СохранитьСписокСегментов":function(e){G||(3===a.length&&a.shift(),a.push(ie(e,15e3)))},"СохранитьТранспортныйПоток":function(e){},"СохранитьПреобразованныйСегмент":function(e){},"ЗавершитьРаботуИПоказатьСообщение":u,"ЗавершитьРаботуИОтправитьОтчет":l,"ПойманоИсключение":function(e){l(e instanceof Error?e.stack:`[typeof ${typeof e}] ${new Error(e).stack}`)},"ОставитьОтзыв":function(){try{l("ОСТАВИТЬ ОТЗЫВ")}catch(e){}}}})();function ge(){this._оПомойка=null}function pe(){}ge.prototype.Выбросить=function(e){Q(e)&&(e.buffer&&(e=e.buffer),e.byteLength&&(he.Вот(`[Помойка] Выбрасываю ${e.byteLength} байтов`),null===this._оПомойка&&(this._оПомойка=new MessageChannel,this._оПомойка.port2.close()),this._оПомойка.port1.postMessage(e,[e])))},ge.prototype.Сжечь=function(){this._оПомойка=null},pe.prototype.Выбросить=pe.prototype.Сжечь=function(){};const ye=new pe,ve=(()=>{function e(e){V("string"==typeof e);const t=chrome.i18n.getMessage(e);if(!t)throw new Error(`Не найден текст ${e}`);return t}return{GetText:e,TranslatePage:function(t){he.Вот("[i18n] Перевод страницы");for(let n of t.querySelectorAll("*[data-i18n]")){const t=n.getAttribute("data-i18n"),r=t.indexOf("^");0!==r&&(n.innerHTML=e(-1===r?t:t.slice(0,r))),-1!==r&&(n.title=e(t.slice(r+1)))}},"ФорматироватьЧисло":function(e,t){return V(void 0===t||"number"==typeof t&&t>=0),Number(e).toLocaleString(void 0,void 0===t?void 0:{minimumFractionDigits:t})},"ПеревестиСекундыВСтроку":function(e,t){var n=Math.floor(e/60%60),r=Math.floor(e/60/60)+(n<10?" : 0":" : ")+n;return t&&(r+=((n=Math.floor(e%60))<10?" : 0":" : ")+n),r},"ПрошлоДнейПрописью":function t(n){void 0===t.мсДни&&(t.мсДни=e("J0132").split("^"),V(t.мсДни.length>1));const r=Math.floor((Date.now()-n.getTime())/864e5);return r>=0&&r{var e=new Map;return{"ДобавитьОбработчик":function(t,n){V(ee(t)),V("function"==typeof n||Q(n));var r=e.get(t);void 0===r&&(r=new Set,e.set(t,r)),r.add(n)},"УдалитьОбработчик":function(t,n){V(ee(t)),V("function"==typeof n||Q(n));var r=e.get(t);void 0!==r&&(r.delete(n),0===r.size&&e.delete(t))},"ОбработатьСобытие":function(t,n){if(G)return;V(ee(t)),he.Вот(`[События] Произошло событие ${t}`);const r=e.get(t);if(void 0!==r)for(var i of(V(0!==r.size),r.values()))if("function"==typeof i)i(t,n);else{if(void 0===a)var a={type:t,data:n};i.handleEvent(a)}}}})(),Ee=(()=>{var n=null;function r(){const e=!t.hidden;return{"лПоказан":e,"лАктивен":e&&t.hasFocus()}}function i(){try{const e=r();n.лПоказан===e.лПоказан&&n.лАктивен===e.лАктивен||(he.Окак(`[Фокусник] Новое состояние ${he.O(e)}`),n=e,be.ОбработатьСобытие("фокусник-изменилосьсостояние",e))}catch(e){me.ПойманоИсключение(e)}}function a(e){try{he.Вот(`[Фокусник] Событие ${e.type}, старое состояние ${he.O(n)}`),setImmediate(i)}catch(e){me.ПойманоИсключение(e)}}return t.addEventListener("visibilitychange",a),e.addEventListener("focus",a),e.addEventListener("blur",a),n=r(),he.Вот(`[Фокусник] Начальное состояние ${he.O(n)}`),{"ПолучитьСостояние":function(){return n}}})(),$e=(()=>{const e=50;let r,i,a,o,s,c,u,l,d=new Map,f=null;function h(e,t,n,r){switch(e){case 1:const i=getComputedStyle(t);u=Number.parseInt(i.left,10),l=Number.parseInt(i.top,10);break;case 2:t.style.left=`${u-n}px`,t.style.top=`${l-r}px`;break;case 3:break;default:V(!1)}}function m(e){try{V(null===f);const n=e.target;(r=d.get(n.id))&&(f=n,he.Окак(`[Тащилка] Начинаю тащить ${f.id} X=${e.clientX} Y=${e.clientY}`),V("true"===f.getAttribute("draggable")),setImmediate(()=>{f&&t.body.classList.add("js-тащилка-страница")}),f.classList.add("js-тащилка-элемент"),r(1,f),i=0,a=s=e.clientX,o=c=e.clientY,e.dataTransfer.setData("text",""),e.dataTransfer.effectAllowed="move",e.dataTransfer.setDragImage?e.dataTransfer.setDragImage(t.head,0,0):(n.classList.add("js-тащилка-скрыть"),setImmediate(()=>{n.classList.remove("js-тащилка-скрыть")})))}catch(e){me.ПойманоИсключение(e)}}function g(e){try{f&&e.preventDefault()}catch(e){me.ПойманоИсключение(e)}}function p(t){try{if(f){t.preventDefault();const u=n.now();if(u-i{const e='input[type="color"]';var n="",r=null;function i(t){try{t.target.matches(e)&&o()}catch(e){me.ПойманоИсключение(e)}}function a(t){try{t.target.matches(e)&&ke.Изменить(t.target.id,t.target.value)}catch(e){me.ПойманоИсключение(e)}}function o(){V(n);const r=1-ke.Получить("чПрозрачность")/100,i={"чНепрозрачность":r,"чНепрозрачностьОкна":ne(r,.85,1)};for(var a of t.querySelectorAll(e))i[a.id]=Number.parseInt(a.value.slice(1,3),16)+","+Number.parseInt(a.value.slice(3,5),16)+","+Number.parseInt(a.value.slice(5,7),16);t.getElementById("стиль").textContent=function(e,t){return e.replace(/{{.*?}}/g,function(e){var n=t[e.slice(2,-2)];return"string"==typeof n?n:(V(Number.isFinite(n)),String(te(n,2)))})}(n,i)}function s(){!function(){for(var n of t.querySelectorAll(e))n.value=ke.Получить(n.id);r.Обновить()}(),o()}return{"ЗапуститьАсинхронно":function(){return Ae.ЗагрузитьТекст(null,chrome.extension.getURL("player.css"),0,"шаблон",!1).then(function(e){V(!n&&e),n=e})},"Запустить":function(){(r=new fe("чПрозрачность",5,0,"прозрачность")).ПослеИзменения=o,t.addEventListener("input",i),t.addEventListener("change",a),be.ДобавитьОбработчик("настройки-измениласьпредустановка-оформление",s),s()}}})(),ke=(()=>{const n=2,r=[{"амДанные":new Map([["J0126",{"кОдновременныхЗагрузок":1,"чНачалоВоспроизведения":3,"чРазмерБуфера":5,"чРастягиваниеБуфера":15,"кЗаначка":0,"чИнтервалОпроса":o}],["J0127",{"кОдновременныхЗагрузок":2,"чНачалоВоспроизведения":3,"чРазмерБуфера":8.5,"чРастягиваниеБуфера":20,"кЗаначка":1,"чИнтервалОпроса":O}],["J0128",{"кОдновременныхЗагрузок":2,"чНачалоВоспроизведения":17,"чРазмерБуфера":9.5,"чРастягиваниеБуфера":30,"кЗаначка":0,"чИнтервалОпроса":O}]]),"сНастраиваемая":"J0129","сВыбрана":"сПредустановкаВыбрана_буферизация","сЗаполнена":"лПредустановкаЗаполнена_буферизация","сСписок":"предустановка-буферизация","сСобытие":"настройки-измениласьпредустановка-буферизация"},{"амДанные":new Map([["J0122",{"сЦветФона":"#282828","сЦветГрадиента":"#ffffff","сЦветКнопок":"#d3be96","сЦветЗаголовка":"#cdbdec","сЦветВыделения":"#ff9428","чПрозрачность":25}],["J0121",{"сЦветФона":"#425e7b","сЦветГрадиента":"#ffffff","сЦветКнопок":"#ffffff","сЦветЗаголовка":"#d1f0fa","сЦветВыделения":"#ffaa33","чПрозрачность":30}],["J0125",{"сЦветФона":"#141414","сЦветГрадиента":"#c8c8c8","сЦветКнопок":"#f0f0f0","сЦветЗаголовка":"#b6c3c3","сЦветВыделения":"#6cb6ff","чПрозрачность":10}]]),"сНастраиваемая":"J0123","сВыбрана":"сПредустановкаВыбрана_оформление","сЗаполнена":"лПредустановкаЗаполнена_оформление","сСписок":"предустановка-оформление","сСобытие":"настройки-измениласьпредустановка-оформление"}],a=new Set(["чСлучайноеЧисло","сПредыдущаяВерсия","чВерсияНастроек"]);function s(e,t,n,r,i){this.пТекущее=void 0,this.пНачальное=e,this.мпПеречисление=t,this.чМинимальное=n,this.чМаксимальное=r,this.сАвтонастройка=i}s.Создать=function(e){return new this(e,null,A,D,"")},s.СоздатьПеречисление=function(e,t){return new this(e,t,A,D,"")},s.СоздатьДиапазон=function(e,t,n,r=""){return new this(e,null,t,n,r)},s.ПроверитьЗначение=function(e){V(e==e&&e!==1/0&&e!==-1/0&&void 0!==e&&"function"!=typeof e&&"symbol"!=typeof e&&"object"!=typeof e)},s.prototype.ИсправитьЗначение=function(e){return s.ПроверитьЗначение(e),V(typeof e==typeof this.пНачальное),this.мпПеречисление?this.мпПеречисление.includes(e)||(e=this.пНачальное):"number"==typeof e&&(e===O?""===this.сАвтонастройка&&(e=this.пНачальное):ethis.чМаксимальное&&(e=this.чМаксимальное)),e};const c={"чСлучайноеЧисло":s.Создать(Math.random()),"сПредыдущаяВерсия":s.Создать("2000.1.1"),"чВерсияНастроек":s.Создать(n),"чГромкость2":s.СоздатьДиапазон(d/2,l,d),"лПриглушить":s.Создать(!1),"сНазваниеВарианта":s.Создать("CoolCmd"),"чДлительностьПовтора2":s.СоздатьДиапазон(60,30,300,"J0124"),"чСостояниеЧата":s.СоздатьПеречисление(R,[R,J,j]),"чСостояниеЗакрытогоЧата":s.СоздатьПеречисление(R,[R,J]),"лАвтоПоложениеЧата":s.Создать(!1),"чГоризонтальноеПоложениеЧата":s.СоздатьПеречисление(U,[U,Y]),"чВертикальноеПоложениеЧата":s.СоздатьПеречисление(H,[q,H]),"чПоложениеПанелиЧата":s.СоздатьПеречисление(U,[q,U,H,Y]),"чШиринаПанелиЧата":s.СоздатьДиапазон(340,100,D),"чВысотаПанелиЧата":s.СоздатьДиапазон(302,100,D),"лЗатемнитьЧат":s.Создать(!1),"чРазмерИнтерфейса":s.СоздатьДиапазон(100,75,200),"чИнтервалАвтоскрытия":s.СоздатьДиапазон(4,.5,60),"лАнимацияИнтерфейса":s.Создать(!0),"лМенятьГромкостьКолесом":s.Создать(!0),"лПоказатьСтатистику":s.Создать(!1),"сПредустановкаВыбрана_буферизация":s.Создать("J0127"),"лПредустановкаЗаполнена_буферизация":s.Создать(!1),"кОдновременныхЗагрузок":s.СоздатьДиапазон(0,1,3),"чНачалоВоспроизведения":s.СоздатьДиапазон(0,i,30),"чРазмерБуфера":s.СоздатьДиапазон(0,i,30),"чРастягиваниеБуфера":s.СоздатьДиапазон(0,9,30),"кЗаначка":s.СоздатьДиапазон(0,0,2),"чИнтервалОпроса":s.СоздатьДиапазон(0,o,250,"J0120"),"сПредустановкаВыбрана_оформление":s.Создать("J0122"),"лПредустановкаЗаполнена_оформление":s.Создать(!1),"сЦветФона":s.Создать(""),"сЦветГрадиента":s.Создать("#ffffff"),"сЦветКнопок":s.Создать(""),"сЦветЗаголовка":s.Создать(""),"сЦветВыделения":s.Создать(""),"чПрозрачность":s.СоздатьДиапазон(0,0,80)},u=500;let f=0,h=null;function m(){chrome.runtime.lastError&&(console.error(chrome.runtime.lastError.message),me.ЗавершитьРаботуИПоказатьСообщение("J0212"))}function g(e,t){t&&(chrome.storage.local.clear(m),he.Вот("[Настройки] Все настройки удалены из хранилища")),chrome.storage.local.set(e,m),he.Вот(`[Настройки] Настройки записаны в хранилище: ${he.O(e)}`)}function p(e,t){V(Q(e)),(t||0!==Object.keys(e).length)&&(0===f?t?g(e,t):(he.Вот(`[Настройки] Откладываю сохранение настроек на ${u}мс`),f=setTimeout(y,u),h=e):t?(clearTimeout(f),f=0,h=null,g(e,t)):Object.assign(h,e))}function y(){try{he.Вот("[Настройки] Завершаю отложенное сохранение"),V(0!==f&&Q(h)),g(h,!1),f=0,h=null}catch(e){me.ПойманоИсключение(e)}}function v(e,t){if(void 0===e.чВерсияНастроек){for(let n of Object.keys(e))a.has(n)?t[n]=e[n]:delete e[n];return!0}if(e.чВерсияНастроек>n){for(let t of Object.keys(e))delete e[t];return!0}for(let n of r){let r=e[n.сВыбрана];if(void 0!==r&&r!==n.сНастраиваемая){for(let e of n.амДанные.keys())if(r===e){r=void 0;break}void 0!==r&&(t[n.сВыбрана]=e[n.сВыбрана]=c[n.сВыбрана].пНачальное)}}return e.чСостояниеЗакрытогоЧата===e.чСостояниеЧата||e.чСостояниеЧата!==R&&e.чСостояниеЧата!==J||(t.чСостояниеЗакрытогоЧата=e.чСостояниеЗакрытогоЧата=e.чСостояниеЧата),e.чВерсияНастроек!==n&&(t.чВерсияНастроек=e.чВерсияНастроек=n,!1)}function b(e){V("string"==typeof e),V(c.hasOwnProperty(e));for(let t of r){const n=t.амДанные.get(c[t.сВыбрана].пТекущее);if(n){const t=n[e];if(void 0!==t)return t}}return c[e].пТекущее}function E(e,t){if(G)return;V("string"==typeof e),V(c[e].ИсправитьЗначение(t)===t);const n={};for(let i of r){const r=i.амДанные.get(c[i.сВыбрана].пТекущее);if(r&&r.hasOwnProperty(e)){if(t===r[e])return;n[i.сВыбрана]=c[i.сВыбрана].пТекущее=i.сНастраиваемая,n[i.сЗаполнена]=c[i.сЗаполнена].пТекущее=!0;for(let e of Object.keys(r))n[e]=c[e].пТекущее=r[e];$(i);break}}c[e].пТекущее!==t&&(n[e]=c[e].пТекущее=t),p(n,!1)}function $(e){const n=t.getElementById(e.сСписок);n.length=0;const r=c[e.сВыбрана].пТекущее;for(let t of e.амДанные.keys())n.add(new Option(z(t),t,t===r,t===r));return c[e.сЗаполнена].пТекущее&&n.add(new Option(z(e.сНастраиваемая),e.сНастраиваемая,e.сНастраиваемая===r,e.сНастраиваемая===r)),V(n.value),n}function w(e){try{for(let t of r)if(t.сСписок===e.target.id)return V(e.target.value),E(t.сВыбрана,e.target.value),void be.ОбработатьСобытие(t.сСобытие);V(!1)}catch(e){me.ПойманоИсключение(e)}}return{"Восстановить":function(){return he.Вот("[Настройки] Восстанавливаю настройки"),new Promise(function(e,t){chrome.storage.local.get(null,function(n){try{chrome.runtime.lastError?(console.error(chrome.runtime.lastError.message),me.ЗавершитьРаботуИПоказатьСообщение("J0209")):(he.Вот(`[Настройки] Настройки прочитаны из хранилища: ${he.O(n)}`),function(e){V(Q(e)),V(!c.чВерсияНастроек.пТекущее);const t={},n=v(e,t);for(let n of Object.keys(c))if(e.hasOwnProperty(n)){const r=c[n].ИсправитьЗначение(e[n]);r!==e[n]&&(t[n]=r),c[n].пТекущее=r}else a.has(n)&&(t[n]=c[n].пНачальное),c[n].пТекущее=c[n].пНачальное;p(t,n),function(){for(let e of r)$(e).addEventListener("change",w)}()}(n),e())}catch(e){t(e)}})})},"Сбросить":function(){he.Окак("[Настройки] Сбрасываю настройки");const t={};for(let e of a)t[e]=c[e].пТекущее;p(t,!0),e.location.reload()},"Экспорт":function(){he.Окак("[Настройки] Экспортирую настройки"),V(c.чВерсияНастроек.пТекущее);const e={"чВерсияНастроек":n};for(let t of Object.keys(c))a.has(t)||(e[t]=c[t].пТекущее);he.Вот(`[Настройки] Отобраны настройки для экспорта: ${he.O(e)}`),function(e,n,r){V("string"==typeof e&&ee(n)&&ee(r));const i=t.createElement("a");i.setAttribute("href",URL.createObjectURL(new Blob([e],{type:n}))),i.setAttribute("download",r),i.dispatchEvent(new MouseEvent("click"))}(JSON.stringify(e),"application/json",z("J0133"))},"Импорт":function(t){if(he.Окак(`[Настройки] Импортирую настройки из файла ${t.name}`),V(c.чВерсияНастроек.пТекущее),0===t.size||t.size>1e4)return he.Ой(`[Настройки] Размер файла: ${t.size}`),void alert(z("J0134"));const n=new FileReader;n.addEventListener("loadend",function(){try{if(!ee(n.result))return he.Ой(`[Настройки] Результат чтения файла: ${n.result}`),void alert(z("J0135")+t.name);let r;he.Вот(`[Настройки] Настройки прочитаны из файла: ${n.result}`);try{if(!Q(r=JSON.parse(n.result)))throw 1;if(v(r,r))throw 2;for(let e of Object.keys(r))c.hasOwnProperty(e)&&(r[e]=c[e].ИсправитьЗначение(r[e]))!==c[e].пНачальное||delete r[e]}catch(e){return he.Ой(`[Настройки] Поймано исключение во время разбора настроек: ${e}`),void alert(z("J0134"))}for(let e of a)r[e]=c[e].пТекущее;p(r,!0),e.location.reload()}catch(e){me.ПойманоИсключение(e)}}),n.readAsText(t)},"Получить":function(e){return"чМаксРазмерБуфера"===e?Math.max(b("чНачалоВоспроизведения"),b("чРазмерБуфера")):b(e)},"Изменить":E,"ПолучитьПараметрыНастройки":function(e){return V("string"==typeof e),V(c.hasOwnProperty(e)),c[e]},"ПолучитьДанныеДляОтчета":function(){const e={};for(let t of Object.keys(c))c[t].пТекущее!==c[t].пНачальное&&(e[t]=c[t].пТекущее);return e},"Остановить":function(){0!==f&&(clearTimeout(f),y())}}})(),Ie=(()=>{const e=3,r=30,i=30,a=40,o=150,s=.5,c=1,u=2,l=1.5,d=.5,f=100,h=.85,m=.2,g=300,p=5;var $,w,k,_=0,T=0,x=0,L=-1/0,C=1/0,B=null,F=null,M=null,A=null,D=null,O=null,X=null,P=0,R=0,J=0,j=0,q=0,U=0,H=0,Y=0,W=0,G=0,z=0;function Q(e){return e>=o}function ee(e){return 0===e||e>2}function te(e){return e>=c}function ne(e){return e=ke.Получить("чМаксРазмерБуфера")+ke.Получить("чРастягиваниеБуфера")*d}function re(e,n,r){V(n>0&&r>=0),this._узПоказать=t.getElementById(e),this._мчИстория=new Array(n),this._млВыделить=new Array(n),this._чТочность=r,this._Очистить()}function ie(e,n,r){var i="string"==typeof e?t.getElementById(e):e;return i.classList.toggle("статистика-выделить",r),i.textContent=n,i}function ae(){try{t.getElementById("статистика-длительностьпросмотра").textContent=ve.ПеревестиСекундыВСтроку(n.now()/1e3,!0);var r=Be.ПолучитьКоличествоПропущенныхКадров();ie("статистика-пропущено",r.droppedVideoFrames,r.droppedVideoFrames>=f).nextElementSibling.nextElementSibling.textContent=r.totalVideoFrames;var i=0,a=0,o=0,s=0,c=0;for(var l of K)switch(l.чОбработка){case y:++i,a+=l.чДлительность;break;case v:case b:o+=l.чДлительность;break;case E:++s,c+=l.чДлительность;break;default:V(!1)}var d=Be.ПолучитьЗаполненностьБуфера(),h=ie("статистика-очередь",a.toFixed(1),i>x);(h=h.nextElementSibling.nextElementSibling).textContent=o.toFixed(1),ie(h=h.nextElementSibling,c.toFixed(1),s>=u),ie(h=h.nextElementSibling,d.чНеПросмотрено.toFixed(1),ne(d.чНеПросмотрено)),(h=h.nextElementSibling.nextElementSibling).textContent=d.чПросмотрено.toFixed(1),[I,S,N].includes(Ce.ПолучитьСостояние())&&(w=Math.min(w,d.чНеПросмотрено),0===(k=(k+1)%e)&&(X.ДобавитьЧисло(w,ne,ne),w=1/0))}catch(e){me.ПойманоИсключение(e)}}function oe(){return 0!==_}return re.prototype.Освободить=function(){this._узПоказать.textContent="",this._узПоказать=null},re.prototype._Очистить=function(){this._кЗаполнено=0,this._чИндекс=-1;var e=t.createDocumentFragment();e.appendChild(t.createElement("td")).className="анализ-минимум",e.appendChild(t.createElement("td")).textContent=" < ",e.lastChild.className="статистика-символ",e.appendChild(t.createElement("td")).className="анализ-среднее",e.appendChild(t.createElement("td")).textContent=" < ",e.lastChild.className="статистика-символ",e.appendChild(t.createElement("td")).className="анализ-максимум";for(var n=0;no||this._мчИстория[l]===o&&this._млВыделить[l])&&(o=this._мчИстория[l],s=this._млВыделить[l]),c+=this._мчИстория[l],++u);if(0===u){c=NaN;var d=!1}else{c/=u;d=Boolean("function"==typeof n?n(c):n)}return ie(this._узПоказать.children[0],this._ВСтроку(i),a),ie(this._узПоказать.children[2],this._ВСтроку(c),d),ie(this._узПоказать.children[4],this._ВСтроку(o),s),ie(this._узПоказать.children[5+this._чИндекс],this._ВСтроку(e),r).classList.remove("статистика-подробно"),c},be.ДобавитьОбработчик("список-выбранварианттрансляции",function(e,n){const r=n[0],i=n[1];var a;r&&(t.getElementById("статистика-сервер").textContent=(a=r[i].сАбсолютныйАдресСпискаСегментов,new URL(a).host))}),be.ДобавитьОбработчик("проигрыватель-переполненбуфер",function(e,t){++Y,W+=t,oe()&&(ie("статистика-переполнено",Y,!0).nextElementSibling.nextElementSibling.textContent=W.toFixed(1))}),{"ОкноПоказано":oe,"ПоказатьОкно":function(){oe()||(B=new re("статистика-интервалобновления",r,0),F=new re("статистика-сегментовдобавлено",r,0),M=new re("статистика-секунддобавлено",r,1),A=new re("статистика-толщинасегмента",i,1),D=new re("статистика-толщинаканала",i,1),O=new re("статистика-ожиданиеответа",i,1),X=new re("статистика-непросмотрено",a,1),$=NaN,w=1/0,k=0,ie("статистика-забраковано",J,0!==J),ie("статистика-потерьвидео",j,0!==j),ie("статистика-потерьзвука",q,0!==q),t.getElementById("статистика-исходных").textContent=R,ie("статистика-незагружено",U,0!==U).nextElementSibling.nextElementSibling.textContent=H,ie("статистика-переполнено",Y,0!==Y).nextElementSibling.nextElementSibling.textContent=W.toFixed(1),ie("статистика-исчерпано",G,G>=p),_=setInterval(ae,1e3/e),ae(),$e.ДобавитьОбработчик("статистика",null),se("статистика",!0),ke.Изменить("лПоказатьСтатистику",!0))},"СкрытьОкно":function(){if(oe()){for(var e of(clearInterval(_),_=0,se("статистика",!1),B.Освободить(),B=null,F.Освободить(),F=null,M.Освободить(),M=null,A.Освободить(),A=null,D.Освободить(),D=null,O.Освободить(),O=null,X.Освободить(),X=null,t.querySelectorAll("*[data-очистить]")))e.textContent="";ke.Изменить("лПоказатьСтатистику",!1)}},"ОбновитьЗначение":ie,"ОчиститьИсторию":function(){null!==B&&(B.Очистить(),F.Очистить(),M.Очистить(),A.Очистить(),D.Очистить(),O.Очистить(),X.Очистить(),$=NaN,w=1/0,k=0),ie("статистика-незагружено",U=0,!1).nextElementSibling.nextElementSibling.textContent=H=0,ie("статистика-переполнено",Y=0,!1).nextElementSibling.nextElementSibling.textContent=(W=0).toFixed(1),ie("статистика-исчерпано",G=0,!1)},"ПолучитьTargetDuration":function(){return T},"ПолучитьДлительностьКадраВСекундах":function(){return{"чМинимальная":Math.max(17,L)/1e3,"чМаксимальная":Math.min(40,C)/1e3}},"ПолучитьДанныеДляОтчета":function(){return{"ОкноПоказано":oe(),"Сервер":t.getElementById("статистика-сервер").textContent,"ПараметрыВидео":t.getElementById("статистика-разрешениевидео").textContent+" "+t.getElementById("статистика-сжатиевидео").textContent,"ПараметрыЗвука":t.getElementById("статистика-сжатиезвука").textContent,"ВсегоСкачано":P,"Забраковано":J,"ПотерьВидео":j,"ПотерьЗвука":q,"ОшибокЗагрузки":U,"НезагруженныхСегментов":H,"ПереполненийБуфера":Y,"ПропущеноВБуфере":W,"ИсчерпанийБуфера":G,"ИсчерпанийБуфераДосрочно":z}},"СкачаноНечто":function(e){Number.isFinite(e)&&(P+=e,oe()&&(t.getElementById("статистика-скачано").textContent=(P/1024/1024).toFixed()))},"РазобранСписокСегментов":function(e,n,r){if(oe()){var i=t.getElementById("статистика-список");i.textContent=`${n} × ${(r/n).toFixed(1)} = ${r.toFixed(1)}`,ie(i.nextElementSibling.nextElementSibling,e,e!==T)}T=e,x=n},"ДобавленыСегментыВОчередь":function(e,t){if(oe()){var r=n.now();B.ДобавитьЧисло((r-$)/T/10,Q,Q),$=r;var i=F.ДобавитьЧисло(e,ee,ee);M.ДобавитьЧисло(t,t/et,function(e){return e0),++U,H+=e,oe()&&(ie("статистика-незагружено",U,!0).nextElementSibling.nextElementSibling.textContent=H)},"ОтосланИсходныйСегмент":function(){++R,oe()&&(t.getElementById("статистика-исходных").textContent=R)},"ПолученПреобразованныйСегмент":function(e){var n=oe(),r=e.пДанные;if(e.лРазрыв){t.getElementById("статистика-разрешениевидео").textContent=`${r.чШиринаКартинки}x${r.чВысотаКартинки}`;var i="H.264"+` ${function(e,t){switch(e){case 66:return 0==(64&t)?"Baseline":"Constrained Baseline";case 77:return"Main";case 88:return"Extended";case 100:switch(12&t){case 8:return"Progressive High";case 12:return"Constrained High"}return"High";case 110:return 0==(16&t)?"High 10":"High 10 Intra";case 122:return 0==(16&t)?"High 4:2:2":"High 4:2:2 Intra";case 244:return 0==(16&t)?"High 4:4:4 Predictive":"High 4:4:4 Intra";case 44:return"CAVLC 4:4:4 Intra"}return he.Ой(`[Статистика] Неизвестный профиль H.264 ProfileIndication=${e} ConstraintSetFlag=${t}`),`P${e}C${t}`}(r.nProfileIndication,r.nConstraintSetFlag)}`+` L${(r.nLevelIndication/10).toFixed(1)}`+` RF${r.nMaxNumberReferenceFrames}`;-1!==r.чДиапазон&&(i+=0===r.чДиапазон?" 16-235":" 0-255"),r.лЧересстрочное&&(i+=" чересстрочное"),0!==r.чЧастотаКадров&&(i+=` ${r.чЧастотаКадров<0?"≈":""}${Math.abs(r.чЧастотаКадров).toFixed(2)} к/с`),t.getElementById("статистика-сжатиевидео").textContent=i,t.getElementById("статистика-сжатиезвука").textContent=["AAC-Main","AAC-LC","AAC-SSR","AAC-LTP"][r.nAudioObjectType-1]+` ${r.чЧастотаДискретизации} Гц`+` ${r.чКоличествоКаналов} канал.`}if(Number.isFinite(r.чСредняяДлительностьВидеоСемпла)){L=r.чМинДлительностьВидеоСемпла,C=r.чМаксДлительностьВидеоСемпла,V(L<=C);var a=r.чСредняяДлительностьВидеоСемпла/r.чМаксДлительностьВидеоСемпла,o=r.чМаксДлительностьВидеоСемпла-r.чСредняяДлительностьВидеоСемпла;a<=m&&o>=g&&(he.Ой(`[Статистика] Превышено отклонение длительности кадра в сегменте ${e.чНомер}`+` СредняяДлительностьКадра=${he.F0(r.чСредняяДлительностьВидеоСемпла)}мс`+` АбсолютноеОтклонение=${he.F0(o)}мс`+` ОтносительноеОтклонение=${he.F2(a)}`),r.лПотериВидео=!0)}n&&(Number.isFinite(r.чСредняяДлительностьВидеоСемпла)&&ie("статистика-частотакадров",`@${(1e3/r.чСредняяДлительностьВидеоСемпла).toFixed(0)}`+` −${(100-r.чСредняяДлительностьВидеоСемпла/r.чМаксДлительностьВидеоСемпла*100).toFixed()}%`+` +${(r.чСредняяДлительностьВидеоСемпла/r.чМинДлительностьВидеоСемпла*100-100).toFixed()}%`,a<=h),Z(r.чБитрейтЗвука)&&(t.getElementById("статистика-битрейтзвука").textContent=`${r.чБитрейтЗвука.toFixed()} кбит/с`),Z(r.чПреобразованЗа)&&(t.getElementById("статистика-преобразованоза").textContent=r.чПреобразованЗа.toFixed())),r.лПотериВидео&&(++j,n&&ie("статистика-потерьвидео",j,!0)),r.лПотериЗвука&&(++q,n&&ie("статистика-потерьзвука",q,!0)),r.лЗабраковано&&(++J,n&&ie("статистика-забраковано",J,!0))},"ИсчерпанБуферПроигрывателя":function(e){++G,e&&++z,oe()&&ie("статистика-исчерпано",G,G>=p)}}})(),Se=(()=>{let n,r=null;function i(){switch(getComputedStyle(t.getElementById("проигрывательичат")).flexDirection){case"column-reverse":return q;case"row":return U;case"column":return H;case"row-reverse":return Y;default:V(!1)}}function a(e){try{e.source===r.contentWindow&&e.origin===De.ПолучитьАдресПанелиЧата()[0]&&"ВставитьСторонниеРасширения?"===e.data&&(he.Вот("[Чат] Получен запрос на вставку сторонних расширений"),chrome.management.getAll(function(t){chrome.runtime.lastError&&me.ЗавершитьРаботуИОтправитьОтчет(`Не удалось получить список расширений. ${chrome.runtime.lastError.message}`);try{const n={"сЗапрос":e.data,"сСторонниеРасширения":""};for(let e of t)if(e.enabled)switch(e.id){case"ajopnjidmegmdimjlfnijceegpefgped":case"deofbbdfofnmppcjbhjibgodpcdchjii":n.сСторонниеРасширения+="BTTV ";break;case"fadndhdgpmmaapbmfcknlfgcflmmmieb":case"djkpepcignmpfblhbfpmlhoindhndkdj":n.сСторонниеРасширения+="FFZ ";break;case"aiimboljphncldaakcnapfolgnjonlea":n.сСторонниеРасширения+="FFZAP "}he.Вот(`[Чат] Послан ответ на вставку сторонних расширений: ${he.O(n)}`),e.source.postMessage(n,e.origin)}catch(e){he.Ой(`[Чат] Поймано исключение во время посылки ответа: ${e}`)}}))}catch(e){me.ПойманоИсключение(e)}}function o(){r||(e.addEventListener("message",a),(r=t.createElement("iframe")).id="чат",r.src=De.ПолучитьАдресПанелиЧата().join(""),r.width=ke.Получить("чШиринаПанелиЧата"),r.height=ke.Получить("чВысотаПанелиЧата"),t.getElementById("размерчата").insertAdjacentElement("afterend",r))}function s(){r&&(e.removeEventListener("message",a),r.remove(),r=null)}function c(){const e=ke.Получить("чСостояниеЧата");switch(he.Окак(`[Чат] Новое состояние панели: ${e}`),d(),e){case R:t.body.classList.remove("показатьчат"),s();break;case J:t.body.classList.remove("показатьчат"),o();break;case j:t.body.classList.add("показатьчат"),o();break;default:V(!1)}}function u(){d();const e=t.body.classList;if(ke.Получить("лАвтоПоложениеЧата"))e.add("автоположениечата"),e.toggle("чатвверху",ke.Получить("чВертикальноеПоложениеЧата")===q),e.toggle("чатслева",ke.Получить("чГоризонтальноеПоложениеЧата")===Y);else{const t=ke.Получить("чПоложениеПанелиЧата");e.remove("автоположениечата"),e.toggle("чатвверху",t===q),e.toggle("чатсправа",t===U),e.toggle("чатвнизу",t===H),e.toggle("чатслева",t===Y)}}function l(e,a,o,s,c,u){const l=i(),d=l===U||l===Y,f=l===q||l===Y;switch(e){case 1:n=d?Number.parseInt(getComputedStyle(r).width,10):Number.parseInt(getComputedStyle(r).height,10),he.Окак(`[Чат] Начальный размер чата: ${n}`);break;case 2:if(d){if(c){const e=Number.parseInt(getComputedStyle(t.getElementById("проигрывательичат")).width,10)-Number.parseInt(getComputedStyle(t.getElementById("проигрыватель")).minWidth,10);r.width=Math.max(Math.min(f?n-o:n+o,e),0)}}else if(u){const e=Number.parseInt(getComputedStyle(t.getElementById("проигрывательичат")).height,10);Number.parseInt(getComputedStyle(t.getElementById("проигрыватель")).minHeight,10),r.height=Math.max(Math.min(f?n-s:n+s,e),0)}break;case 3:d?ke.Изменить("чШиринаПанелиЧата",Number.parseInt(getComputedStyle(r).width,10)):ke.Изменить("чВысотаПанелиЧата",Number.parseInt(getComputedStyle(r).height,10));break;default:V(!1)}}function d(){$e.ОтменитьПеретаскивание("размерчата")}return{"Восстановить":function(){c(),u(),$e.ДобавитьОбработчик("размерчата",l)},"ОбновитьПоложениеПанели":u,"ОбновитьЗатемнение":function(){r&&(he.Окак("[Чат] Обновляю затемнение чата"),s(),o())},"ПереключитьСостояниеПанели":function(){switch(ke.Получить("чСостояниеЧата")){case R:case J:ke.Изменить("чСостояниеЧата",j);break;case j:ke.Изменить("чСостояниеЧата",ke.Получить("чСостояниеЗакрытогоЧата"));break;default:V(!1)}c()},"ПереключитьПоложениеПанели":function(){let e;switch(ke.Получить("лАвтоПоложениеЧата")?(ke.Изменить("лАвтоПоложениеЧата",!1),e=i()):e=ke.Получить("чПоложениеПанелиЧата"),e){case q:ke.Изменить("чПоложениеПанелиЧата",U);break;case U:ke.Изменить("чПоложениеПанелиЧата",H);break;case H:ke.Изменить("чПоложениеПанелиЧата",Y);break;case Y:ke.Изменить("чПоложениеПанелиЧата",q);break;default:V(!1)}u()},"ИзменитьСостояниеЗакрытойПанели":function(e){ke.Изменить("чСостояниеЗакрытогоЧата",e);const t=ke.Получить("чСостояниеЧата");t!==R&&t!==J||t===e||(ke.Изменить("чСостояниеЧата",e),c())}}})(),Ne=(()=>{function n(e){var t=/^(\d+)\.(\d+)\.(\d+)(?:\.(\d+))?$/.exec(e);return t[1]|=0,t[2]|=0,t[3]|=0,t[4]|=0,V(t[1]>=2e3&&t[1]<=2050),V(t[2]>=1&&t[2]<=12),V(t[3]>=1&&t[3]<=31),V(t[4]>=0&&t[4]<=9),Date.UTC(t[1],t[2]-1,t[3],0,0,0,t[4])}function i(e,n){const r=t.getElementById("текстновостей");r.firstElementChild&&r.insertBefore(t.createElement("hr"),r.firstElementChild);let i="";for(let t=2;t=0||ee(r)),t.getElementById("текстновостей").textContent="";let o=!1,s="number"==typeof r?r:n(r);for(let t of e.г_мНовости)switch(t[0]){case"2000.2.2":i(t,0);break;case"2000.1.1":a&&(o=!0,i(t,0));break;default:const e=n(t[0]);if("number"==typeof r){if(--s<0)continue}else if(s>=e)continue;o=!0,i(t,e)}return o}function o(e){try{oe(e.target)&&(se("прокрутитьновости",!1),e.target.removeEventListener("scroll",o))}catch(e){me.ПойманоИсключение(e)}}function s(e,n){if("новости"===n){const e=t.getElementById("текстновостей");e.scrollTop=0,oe(e)||(se("прокрутитьновости",!0),e.addEventListener("scroll",o)),se("переключитьновости",!1).classList.remove("непрочитано")}}function c(e,n){"новости"===n.сИдОкна&&(se("прокрутитьновости",!1),t.getElementById("текстновостей").removeEventListener("scroll",o),"отмена"===n.сДанные&&ce("отложитьновости")?se("переключитьновости",!0):ke.Изменить("сПредыдущаяВерсия",r))}return{"Запустить":function(){be.ДобавитьОбработчик("окна-открытоокно",s),be.ДобавитьОбработчик("окна-закрытоокно",c);const e=ke.Получить("сПредыдущаяВерсия");e!==r&&("2000.1.1"===e?(a(0,!0),se("отложитьновости",!1),se("переключитьновости",!0)):a(e,!1)?(se("отложитьновости",!0),se("переключитьновости",!0)):ke.Изменить("сПредыдущаяВерсия",r))},"ОткрытьСправку":function(){"новости"!==Te.ПолучитьОткрытоеОкно()&&(ce("переключитьновости")||(a(3,!0),se("отложитьновости",!1)),Te.ОткрытьОкно("новости"))}}})(),_e=(()=>{var e,n=0,r=0;function i(e){return ne(e,n,r)}function a(e){try{if(Ce.ПолучитьСостояние()===T){const t=e.currentTarget.getBoundingClientRect(),a=getComputedStyle(e.currentTarget),o=Math.round(t.left+Number.parseFloat(a.paddingLeft)),s=Math.round(t.right-Number.parseFloat(a.paddingRight)),c=i((e.clientX+1-o)/(s-o)*(r-n)+n);he.Окак(`[Шкала] Перематываю до ${c}`),Be.ПеремотатьПовторДо(c)}}catch(e){me.ПойманоИсключение(e)}}return{"ЗадатьНачалоИКонец":function(e,i){V(e<=i),n=e,r=i,t.getElementById("шкала").addEventListener("click",a)},"ЗадатьПросмотрено":function(a){e=i(a),V(Number.isFinite(n)&&Number.isFinite(r)&&Number.isFinite(e)),t.getElementById("шкала-просмотрено").style.transform=`scaleX(${((e-n)/(r-n)).toFixed(4)})`},"ПолучитьНачало":function(){return n},"ПолучитьКонец":function(){return r}}})(),Te=(()=>{function e(){return t.body.getAttribute("data-окно-открыто")||""}function n(n,r){V("string"==typeof n&&"string"==typeof r),n&&n===e()&&(t.getElementById(n).classList.remove("открыто"),t.body.removeAttribute("data-окно-открыто"),be.ОбработатьСобытие("окна-закрытоокно",{"сИдОкна":n,"сДанные":r}))}function r(r){V(ee(r));const i=e();r!==i&&(n(i,"отмена"),t.getElementById(r).classList.add("открыто"),t.body.setAttribute("data-окно-открыто",r),be.ОбработатьСобытие("окна-открытоокно",r))}function i(t,i=""){V(ee(t)&&"string"==typeof i);const a=e();t===a?n(a,i):(n(a,"отмена"),r(t))}return be.ДобавитьОбработчик("управление-щелчок",function(r,a){const o=a.target.getAttribute("data-окно-переключить");if(o)i(o,a.target.getAttribute("data-окно-данные")||"");else{const r=e();r&&!t.getElementById(r).contains(a.target)&&n(r,"отмена")}}),{"ПолучитьОткрытоеОкно":e,"ПереключитьОкно":i,"ОткрытьОкно":r}})();{function xe(e,n){e.removeEventListener("mouseleave",Le),t.body.classList.toggle("кнопкаименю-безанимации",n),e.classList.remove("открыто")}function Le(e){try{xe(e.target,!1)}catch(e){me.ПойманоИсключение(e)}}be.ДобавитьОбработчик("управление-щелчок",function(e,n){const r=n.target;if(r.classList.contains("кнопкаименю-кнопка")){const e=r.parentNode;e.classList.contains("открыто")?xe(e,!1):((e=e).addEventListener("mouseleave",Le),t.body.classList.remove("кнопкаименю-безанимации"),e.classList.add("открыто"))}else r.classList.contains("пунктменю")&&r.hasAttribute("tabindex")&&xe(r.parentNode.parentNode,!0);var i})}const Ce=(()=>{const r=5,i=5,a=10,o=180,s=300,c=1500,u="• • •",y={da:"Dansk",de:"Deutsch",en:"English","en-gb":"English (UK)",es:"Español","es-mx":"Español (Latinoamérica)",fr:"Français",it:"Italiano",hu:"Magyar",nl:"Nederlands",no:"Norsk",pl:"Polski",pt:"Português","pt-br":"Português (Brasil)",sk:"Slovenčina",fi:"Suomi",sv:"Svenska",vi:"Tiếng Việt",tr:"Türkçe",cs:"Čeština",el:"Ελληνικά",bg:"Български",ru:"Русский",ar:"العربية",th:"ภาษาไทย",zh:"中文","zh-cn":"简体中文","zh-tw":"繁體中文","zh-hk":"中文(香港)",ja:"日本語",ko:"한국어",hi:"हिंदी",ro:"Română",ase:"American Sign Language",asl:"American Sign Language"};var v,b,L,M,A,D,O,R,J,j,q,H,W=0,Q=0,ee=0,te=0;if(t.exitFullscreen)var ne="fullscreenElement",re="requestFullscreen",ie="exitFullscreen",oe="fullscreenchange";else ne="webkitFullscreenElement",re="webkitRequestFullscreen",ie="webkitExitFullscreen",oe="webkitfullscreenchange";function ce(){var e=!!t[ne];he.Окак(`[Управление] Полноэкранный режим: ${e}`),Pe("переключитьполноэкранный",e)}function ue(){try{ce()}catch(e){me.ПойманоИсключение(e)}}function le(){Ee(!0),t[ne]?ge():(he.Вот("[Управление] Вход в полноэкранный режим"),t.getElementById("проигрыватель")[re]())}function ge(){he.Вот("[Управление] Выход из полноэкранного режима"),t[ie]()}function pe(){let e=!1;return 0===te?(e="none"===getComputedStyle(t.getElementById("глаз")).cursor,t.body.classList.remove("автоскрытие","панель-безанимации")):clearTimeout(te),te=setTimeout($e,1e3*ke.Получить("чИнтервалАвтоскрытия")),e}function Ee(e){0!==te&&(clearTimeout(te),te=0,t.body.classList.add("автоскрытие"),t.body.classList.toggle("панель-безанимации",e),e&&(Q=ee=n.now()))}function $e(){try{Ee(!1)}catch(e){me.ПойманоИсключение(e)}}function _e(e){try{e.currentTarget.removeEventListener("mousemove",_e),function(e){if(!(J===e.screenX&&j===e.screenY||q===e.clientX&&H===e.clientY)){J=e.screenX,j=e.screenY,q=e.clientX,H=e.clientY;var t=n.now();t-ee>=s?Q=ee=t:(ee=t,t-Q>=o&&pe())}}(e),setTimeout(xe,1e3/a)}catch(e){me.ПойманоИсключение(e)}}function xe(){try{t.getElementById("проигрыватель").addEventListener("mousemove",_e)}catch(e){me.ПойманоИсключение(e)}}function Le(){ke.Получить("лМенятьГромкостьКолесом")?(t.addEventListener("wheel",Ce),t.addEventListener("mousedown",Ae)):(t.removeEventListener("wheel",Ce),t.removeEventListener("mousedown",Ae))}function Ce(e){try{e.shiftKey||e.ctrlKey||e.altKey||e.metaKey||function(e,n){for(var r=t.elementFromPoint(e,n);r;r=r.parentElement)if(ae(r))return!0;return!1}(e.clientX,e.clientY)||(he.Вот(`[Управление] Движение колеса deltaY=${e.deltaY} deltaMode=${e.deltaMode}`),e.preventDefault(),e.deltaY<0&&qe(!1,Math.min(ke.Получить("чГромкость2")+g,d)),e.deltaY>0&&qe(!1,Math.max(ke.Получить("чГромкость2")-p,l)))}catch(e){me.ПойманоИсключение(e)}}function Ae(e){try{e.button!==P||e.shiftKey||e.ctrlKey||e.altKey||e.metaKey||function(e){var t=e.target;do{if("A"===t.nodeName)return!0}while(t=t.parentElement);return!1}(e)||(e.preventDefault(),qe(!ke.Получить("лПриглушить")))}catch(e){me.ПойманоИсключение(e)}}function Oe(){}function Xe(){t.body.classList.toggle("санимацией",ke.Получить("лАнимацияИнтерфейса"))}function Pe(e,n){var r="string"==typeof e?t.getElementById(e):e,i=r.getElementsByTagName("use"),a=Number(n);V(a>=0&&a=0),n}function et(e){V(Z(e));var n=t.getElementById("скорость");if(V(n.selectedIndex>=0),e===-1/0||e===1/0)var r=n.selectedIndex-Math.sign(e);else r=n.querySelector('option[value="1.00"]').index-e;r>=0&&r{const e=10,r=.28,o=1,s=-1,c=-2,u=-3,l=-4,f=0,h=1,m=2;var g,p,y=null,v=0,b=!1,x="чНачалоВоспроизведения",L=!0,C=0,B=!1,F={"ОбработатьSourceOpen":function(){v=Math.max(v,1),ee()},"ОбработатьProgress":function(){b||W(Y(s))},"ОбработатьWaiting":function(){},"ОбработатьPlaying":function(){Ce.ПолучитьСостояние()!==S||g.paused||Ce.ИзменитьСостояние(N)},"ОбработатьSeeking":function(){},"ОбработатьSeeked":function(){W()},"ОбработатьEnded":function(){j(I)},"ОбработатьTimeUpdate":function(){g.seeking||g.paused||g.ended||Y(u)}},M={"лПауза":!0,"ОбработатьSourceOpen":function(){v=Math.max(v,1)},"ОбработатьProgress":function(){},"ОбработатьWaiting":function(){},"ОбработатьPlaying":function(){},"ОбработатьSeeking":function(){_e.ЗадатьПросмотрено(g.currentTime)},"ОбработатьSeeked":function(){},"ОбработатьEnded":function(){this.лПауза||g.play()},"ОбработатьTimeUpdate":function(){this.лПауза||g.seeking||this.ПроверитьПозициюВоспроизведения(u),_e.ЗадатьПросмотрено(g.currentTime)},"ПроверитьПозициюВоспроизведения":function(e){V(Number.isFinite(e)),V(e===c||e===u||e>=0);const t=g.buffered,n=t.length-1,a=g.currentTime+1e-4;for(var o=e>=0?e:a,s="",l=!1;;){for(var d=e===u?r:i,f=0;f<=n&&(o=d));++f);if(this.лПауза||o<_e.ПолучитьКонец())break;if(l)return void D("Ой",`Бесконечная перемотка Время=${e}`);o=_e.ПолучитьНачало(),s+="Начинаю сначала. ",l=!0}o!==a&&(D("Окак",`${s}Перематываю до ${o}`),g.currentTime=o)}},A=F;function D(e,t){var n=0!==p.sourceBuffers.length?p.sourceBuffers[0]:null,r=X(n?n.buffered:null),i=X(g.buffered),a=r===i;"Вот"===e&&(n&&n.buffered.length>1||g.buffered.length>1)&&(e="Окак"),!g.error&&a||(e="Ой"),he[e](`${"["===t.charAt(0)?"":"[Проигрыватель] "}${t} •••`+(g.error?` error=${g.error.code}`:"")+(n&&n.updating?" [U]":"")+(g.paused?" [P]":"")+(g.seeking?" [S]":"")+(g.ended?" [E]":"")+("open"===p.readyState?"":` MSE.readyState=${p.readyState}`)+(1===p.sourceBuffers.length?"":` MSE.buffers=${p.sourceBuffers.length}`)+(g.networkState===HTMLMediaElement.NETWORK_LOADING?"":` networkState=${g.networkState}`)+` readyState=${g.readyState}`+` currentTime=${g.currentTime}`+(a?` buffered=${i}`:` MSE.buffered=${r} buffered=${i}`)+(g.duration===1/0?"":` duration=${g.duration}`)+` seekable=${X(g.seekable)}`+` played=${X(g.played)}`)}function X(e){var t="";if(e&&0!==e.length){var n=e.length,r=Math.max(n-20,0);for(0!==r&&(t=`[${r}]`);r=2&&be.ОбработатьСобытие("проигрыватель-переполненбуфер",b-e),y+=`Переполнен буфер проигрывателя ${b.toFixed(2)}с > ${t}с. `,d=n.end(a)-e-.1}if(e===c&&v<2){v=2;const e=ke.Получить("чМаксРазмерБуфера")+Ie.ПолучитьTargetDuration()/2;b>e&&(y+=`Превышена задержка трансляции ${b.toFixed(2)}с > ${e}с. `,d=n.end(a)-e)}V(r=E){$=!0;break}}return $||g.paused||function(e,t,n){V("ended"!==p.readyState),V(e1;Ie.ИсчерпанБуферПроигрывателя(r),x="чМаксРазмерБуфера";const a=ke.Получить(x);e+n>=i&&t+n>=a?D(r?"Ой":"Окак",`Буфер исчерпан, остановка не нужна БудетДобавлено=${he.F3(n)}с ДоКонцаПоследнейОбласти=${he.F3(e)}с НеПросмотрено=${he.F3(t)}с РазмерБуфера=${a}с`):(D(r?"Ой":"Окак",`Приостанавливаю воспроизведение для заполнения буфера ДоКонцаПоследнейОбласти=${he.F3(e)}с НеПросмотрено=${he.F3(t)}с РазмерБуфера=${a}с`),B=!0,G(I))}(k,b,t),!$&&e!==s||d===o&&!B?$?h:f:(d===o&&(d=g.currentTime),D(y?"Ой":"Окак",`${y}Перематываю до ${d}`),B=!1,g.currentTime=d,m)}function W(e){if(!g.seeking&&e!==m&&g.paused&&!g.ended){if(L&&"ended"!==p.readyState){const e=P().чНеПросмотрено,t=ke.Получить(x);if(e= ${t}с`)}else he.Окак("[Проигрыватель] Не нужно ждать заполнения буфера");switch(Y(c)){case f:D("Ой",`Не найдена область >= ${i}с для начала воспроизведения`),L=!0;break;case h:D("Окак","Начало воспроизведения"),L=!0,g.play(),Ce.ИзменитьСостояние(S)}}}function G(e){void 0!==e&&Ce.ИзменитьСостояние(e),g.pause()}function z(e,t){return new Promise(function(r,i){D("Вот",`Добавляю ${t?"сегмент инициализации":"медиасегмент"} ${e.чНомер}`),y.addEventListener("updateend",function t(){try{null===y?i(ue.ОБЕЩАНИЕ_ОТМЕНЕНО):(a+=n.now(),y.removeEventListener("updateend",t),D(a>100?"Ой":"Вот",`Добавлен сегмент ${e.чНомер} за ${he.F0(a)}мс`),r())}catch(e){i(e)}});var a=-n.now();y.appendBuffer(t?e.пДанные.мбСегментИнициализации:e.пДанные.мбМедиасегмент)})}function ee(){V(g);var c=K[0];if(!b&&c&&c.чОбработка===E){if(V(A===F),c.пДанные===w)return V(0===p.sourceBuffers.length),Ce.ИзменитьСостояние(c.пДанные),K.Удалить(0),void ee();if(c.пДанные===T)return V(Ce.ПолучитьСостояние()!==_&&Ce.ПолучитьСостояние()!==T),function(){M.лПауза=!0,A=M,G(),0!==p.sourceBuffers.length&&"open"===p.readyState&&p.endOfStream();var e=P().чПросмотрено;if(e=a&&(he.Ой(`[Проигрыватель] MediaSource закрыт слишком долго ${l}с >= ${a}с`),V(Ce.ПолучитьСостояние()===$||Ce.ПолучитьСостояние()===w),Ce.ПереключитьПросмотрТрансляции()));if(c.лРазрыв&&0!==p.sourceBuffers.length)!function(e){D("Окак",`Сегмент ${e.чНомер} вызвал окончание потока`),0===g.buffered.length||g.paused&&P().чНеПросмотрено100||r.чПросмотрено1;he[n?"Ой":"Вот"](`[Проигрыватель] Смещение начала трансляции ${he.F1(t)}с`),Ie.ОкноПоказано()&&Ie.ОбновитьЗначение("статистика-смещениеначалатрансляции",t.toFixed(1),n),C=t}}(c);var e=Y(s);K[0]&&K[0].чОбработка===E||(W(e),function(){if(Ie.ОкноПоказано()){var e=y.buffered;0!==e.length&&(t.getElementById("статистика-продолжительностьтрансляции").textContent=ve.ПеревестиСекундыВСтроку(e.end(e.length-1)+C,!0))}}(),function(e){if(Ie.ОкноПоказано()){var n="";if(Z(e.пДанные.чВремяКодирования)){var r=g.currentTime;if(0!==r){var i=(Date.now()-e.пДанные.чВремяКодирования)/1e3,a=e.пДанные.чПозицияКодирования-r;n=`${i.toFixed(1)} + ${a.toFixed(1)} = ${(i+a).toFixed(1)}`}}he.Вот(`[Проигрыватель] Задержка трансляции ${n}с`),t.getElementById("статистика-задержкатрансляции").textContent=n}}(c))}ee()}).catch(function(e){try{if(b=!1,"ДОБАВЛЕНИЕ СЕГМЕНТА ОТЛОЖЕНО"===e)return;K.Удалить(c),e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот(`[Проигрыватель] Отменено добавление сегмента ${c.чНомер}`):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}}}function te(e){V(Ce.ПолучитьСостояние()===T),M.ПроверитьПозициюВоспроизведения(e)}return{"Запустить":function(){V(!g);try{p=new MediaSource}catch(e){me.ЗавершитьРаботуИПоказатьСообщение("J0202")}for(var e of(p.addEventListener("sourceopen",U),p.addEventListener("sourceended",U),p.addEventListener("sourceclose",U),p.sourceBuffers.addEventListener("addsourcebuffer",U),p.sourceBuffers.addEventListener("removesourcebuffer",U),g=t.getElementById("глаз"),R(),["progress","error","playing","seeking","seeked","ended","timeupdate","waiting","loadstart","suspend","abort","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","durationchange","play","pause","ratechange","resize"]))g.addEventListener(e,H);return g.src=URL.createObjectURL(p),!0},"Остановить":function(){g&&(URL.revokeObjectURL(g.src),g.removeAttribute("src"),g.load())},"ПолучитьЗаполненностьБуфера":P,"ПолучитьКоличествоПропущенныхКадров":function(){return"function"==typeof g.getVideoPlaybackQuality?g.getVideoPlaybackQuality():{totalVideoFrames:g.webkitDecodedFrameCount,droppedVideoFrames:g.webkitDroppedFrameCount}},"ПолучитьПозициюВоспроизведенияТрансляции":function(){var e=Ce.ПолучитьСостояние()===T?_e.ПолучитьКонец():g.currentTime;return 0===e?0:Math.max(e+C,0)},"ПоказатьСостояние":D,"Перезагрузить":J,"ПрименитьНастройкиЗвука":R,"ДобавитьСледующийСегмент":ee,"ПеремотатьПовторДо":te,"ПеремотатьПовторНа":function(e,t){V(Ce.ПолучитьСостояние()===T),V(Number.isFinite(t)),e&&(t*=Ie.ПолучитьДлительностьКадраВСекундах().чМинимальная),0!==t&&te(ne(g.currentTime+t,_e.ПолучитьНачало(),_e.ПолучитьКонец()))},"ПереключитьПаузу":function(){V(Ce.ПолучитьСостояние()===T),(M.лПауза=!M.лПауза)?(he.Окак("[Проигрыватель] Ставлю повтор на паузу"),g.pause()):(he.Окак("[Проигрыватель] Снимаю повтор с паузы"),M.ПроверитьПозициюВоспроизведения(c),g.play()),be.ОбработатьСобытие("проигрыватель-пауза",M.лПауза)},"ЗадатьСкоростьПовтора":function(e){V(Ce.ПолучитьСостояние()===T),g.playbackRate=e}}})(),Fe=(()=>{const e=3e3,t=3e4,r=1e3,i=150;var a,s,l,d=_,f=new Array(10),h=new ue,m=null,g=null;function p(e,t,n){if(!n.startsWith("#EXTM3U"))throw`Вместо списка загружена какая-то фигня длиною ${n.length}\n${n}`;var r=1;if(e)var i=new Map,a=[],o=null;else var s,c,u=0,l=0,d=NaN,f=!1,h=[],m=null;var g,p=/^#([A-Z0-9\-]+)(?::(.+))?$|^[^#\r\n].*$/gm;for(p.lastIndex=7;g=p.exec(n);){var y=g[0],b=g[1],w=g[2];if("#"===y.charAt(0))switch(b){case"EXTM3U":V(!1);break;case"EXT-X-VERSION":V(1===r),V((r=$(w))>=2&&r<=7);break;case"EXT-X-START":V(!1);break;case"EXT-X-MEDIA":V(e);var k=(T=E(w)).get("TYPE");if(V(k),V("VIDEO"!==k&&"AUDIO"!==k||!T.has("URI")),"VIDEO"!==k)he.Ой(`[Список] Найден #EXT-X-MEDIA TYPE=${k}`);else{var _=S(T.get("GROUP-ID"));V(!i.has(_)),i.set(_,S(T.get("NAME")))}break;case"EXT-X-STREAM-INF":V(e),V(!o),o=Object.create(null);var T=E(w);o.nPeakBitrate=$(T.get("BANDWIDTH")),o.сКодеки=T.has("CODECS")?S(T.get("CODECS")):"",V(!T.has("AUDIO")&&!T.has("SUBTITLES")&&!T.has("CLOSED-CAPTIONS")),T.has("VIDEO")&&(o.сИдентификатор=S(T.get("VIDEO")));break;case"EXT-X-I-FRAME-STREAM-INF":case"EXT-X-SESSION-DATA":case"EXT-X-SESSION-KEY":V(e);break;case"EXT-X-TARGETDURATION":V(!e),V(void 0===s),V((s=$(w))>0&&s<86400);break;case"EXT-X-MEDIA-SEQUENCE":V(!e),V(0===l),l=$(w);break;case"EXT-X-ENDLIST":V(!e),V(void 0===c),V(void 0===w),c=!0,he.Окак(`[Список] #EXT-X-ENDLIST после сегмента ${l+h.length-1}`);break;case"EXT-X-DISCONTINUITY-SEQUENCE":case"EXT-X-DATERANGE":V(!e);break;case"EXT-X-PLAYLIST-TYPE":case"EXT-X-I-FRAMES-ONLY":V(!1);break;case"EXTINF":V(!e),V(void 0===(m=m||Object.create(null)).чДлительность),m.чДлительность=N(w),V(0!==m.чДлительность),m.чДлительность-s>1&&he.Ой(`[Список] Длительность сегмента превышена на ${m.чДлительность-s}с`);break;case"EXT-X-DISCONTINUITY":V(!e),V(!f),V(void 0===w),f=!0,he.Ой(`[Список] #EXT-X-DISCONTINUITY у сегмента ${l+h.length}`);break;case"EXT-X-PROGRAM-DATE-TIME":V(!e);break;case"EXT-X-BYTERANGE":case"EXT-X-KEY":case"EXT-X-MAP":V(!1);break;case"EXT-X-TWITCH-ELAPSED-SECS":V(!e),V(0===h.length),V(Number.isNaN(d)),d=I(w)}else y=new URL(y,t).href,e?(V(o),o.сАбсолютныйАдресСпискаСегментов=y,a.push(o),o=null):(V(m),V(void 0!==m.чДлительность),V(!c),m.чTwitchПрошлоВремени=d,m.лРазрыв=f,m.сАдрес=y,h.push(m),u+=m.чДлительность,d+=m.чДлительность,f=!1,m=null)}if(e){for(var x of(V(!o),a))"сИдентификатор"in x?(x.сНазвание=i.get(x.сИдентификатор),V(x.сНазвание)):(x.сИдентификатор=`CoolCmd${x.nPeakBitrate}`,x.сНазвание=`${ve.ФорматироватьЧисло(x.nPeakBitrate/1e6,1)} ${z("J0114")}`),he.Окак(`[Список] Добавлен вариант PeakBitrate=${x.nPeakBitrate} Идентификатор=${x.сИдентификатор} Название=${x.сНазвание} Кодеки=${x.сКодеки}`);return a.sort(v),a}return V(!m),V(void 0!==s),he.Вот(`[Список] Разобран список сегментов TargetDuration=${s} MediaSequenceNumber=${l} КоличествоСегментов=${h.length} ДлительностьСписка=${he.F1(u)}с`),Ie.РазобранСписокСегментов(s,h.length,u),{nMediaSequenceNumber:l,nTargetDuration:s,"лКонецСписка":!!c,"моСегменты":h}}function v(e,t){return("chunked"===t.сИдентификатор?1e9:t.nPeakBitrate)-("chunked"===e.сИдентификатор?1e9:e.nPeakBitrate)}function E(e){V(e);for(var t=/([A-Z0-9\-]+)=("[^"]+"|[^",][^,]*)(?:,|$)/g,n=new Map;t.lastIndex!==e.length;){var r=t.lastIndex,i=t.exec(e);V(i&&i.index===r),V(!n.has(i[1])),n.set(i[1],i[2])}return n}function $(e){return V(/^[0-9]{1,15}$/.test(e)),Number.parseInt(e,10)}function I(e){return V(/^[0-9]{1,14}(?:\.[0-9]{1,15})?$/.test(e)),Number.parseFloat(e)}function S(e){return V(e&&e.length>2&&'"'===e.charAt(0)&&'"'===e.charAt(e.length-1)),e.slice(1,-1)}function N(e){if(V(e),"-"===e.slice(0,1))throw"Отрицательный #EXTINF";var t=e.indexOf(",");return I(-1===t?e:e.slice(0,t))}function T(v){V(Number.isFinite(v)&&v>=0),he.Вот(`[Список] Загрузка списка начнется через ${he.F0(v)}мс`);var E,$,I=le(h,v);m||(I=I.then(function(){return De.ПолучитьАбсолютныйАдресСпискаВариантов(h)}).then(function(e){return E=e,Ae.ЗагрузитьТекст(h,E,c,"список вариантов",!1)}).then(function(e){me.СохранитьСписокВариантов(e),m=p(!0,E,e),C()}));I.then(function(){return $=n.now(),Ae.ЗагрузитьТекст(h,m[s].сАбсолютныйАдресСпискаСегментов,u,"список сегментов",!1)}).then(function(e){me.СохранитьСписокСегментов(e);var t=function(e){V(d===w);const t=o*g.nTargetDuration*10;if(0===e)return t;var n=ke.Получить("чИнтервалОпроса");if(n!==O)return n*g.nTargetDuration*10;V(e>0&&e<=g.моСегменты.length),-1===a&&(a=0,e=g.моСегменты.length);e=Math.min(e,f.length);do{f[a]=g.моСегменты[g.моСегменты.length-e].чДлительность,++a===f.length&&(a=0)}while(0!=--e);return V((n=Math.max.apply(null,f))>0),Math.max(1e3*n+i,t)}(function(e){if(null===g){if(e.лКонецСписка)throw"Найден #EXT-X-ENDLIST";V(0!==e.моСегменты.length),l=!0;for(var t=ke.Получить("чРазмерБуфера"),n=Math.max(e.моСегменты.length-ke.Получить("кЗаначка")-W,1);0!=--n&&(t-=e.моСегменты[n].чДлительность)>0;);}else{V(0!==e.моСегменты.length),(e.nMediaSequenceNumber [${e.nMediaSequenceNumber}..${e.nMediaSequenceNumber+e.моСегменты.length-1}]`);const t=e.nMediaSequenceNumber-(g.nMediaSequenceNumber+g.моСегменты.length);t>0&&(he.Ой(`[Список] Пропущено сегментов: ${t}`),Ie.НеЗагруженыСегменты(t),l=!0),e.nTargetDuration!==g.nTargetDuration&&(he.Ой(`[Список] Изменился target duration ${g.nTargetDuration} ==> ${e.nTargetDuration}`),L()),n=0}for(var r,i=0,a=0;r=e.моСегменты[n];++n){const t=e.nMediaSequenceNumber+n;if(null!==g&&t>=g.nMediaSequenceNumber&&t ${r.сАдрес} или длительность ${e.чДлительность} ==> ${r.чДлительность}`),l=!0)}if(null===g||t>=g.nMediaSequenceNumber+g.моСегменты.length){d!==w&&(d=w,K.Добавить(new de(b,w)),L());const e=K.Добавить(new de(y,r.сАдрес,r.чДлительность,r.лРазрыв||l,r.чTwitchПрошлоВремени));he.Вот(`[Список] Добавлен сегмент ${e.чНомер} MediaSequenceNumber=${t} Длительность=${e.чДлительность} Разрыв=${e.лРазрыв} TwitchПрошлоВремени=${e.чTwitchПрошлоВремени}`),l=!1,i+=1,a+=e.чДлительность}}if(Ie.ДобавленыСегментыВОчередь(i,a),(null===g||e.nMediaSequenceNumber+e.моСегменты.length>=g.nMediaSequenceNumber+g.моСегменты.length)&&(g=e),e.лКонецСписка)throw"Найден #EXT-X-ENDLIST";return i}(p(!1,m[s].сАбсолютныйАдресСпискаСегментов,e)));T(Math.max(t-n.now()+$,0)),Ae.ЗагрузитьСледующийСегмент()}).catch(function(n){try{"string"==typeof n?(he.Ой(`[Список] Завершаю трансляцию. ${n}`),function(){d!==k&&(d=k,K.Добавить(new de(b,k)),L());B(),g=null}(),T(function(){V(d===k),a=-1===a?e:Math.min(a+r,t);return a}()),Ae.ЗагрузитьСледующийСегмент()):n===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот("[Список] Отменено обновление списков"):me.ПойманоИсключение(n)}catch(e){me.ПойманоИсключение(e)}})}function x(){he.Вот("[Список] Отменяю обновление списков"),h.Отменить()}function L(){f.fill(0),a=-1}function C(){if(0===m.length)throw"Список вариантов пуст";var e=ke.Получить("сНазваниеВарианта");for(s=m.length-1;0!==s&&m[s].сИдентификатор!==e;)--s;he.Вот(`[Список] Выбран вариант трансляции ${m[s].сИдентификатор} ЖелаемыйВариант=${e}`),be.ОбработатьСобытие("список-выбранварианттрансляции",[m,s])}function B(){m&&(he.Вот("[Список] Очищаю список вариантов трансляции"),m=null,be.ОбработатьСобытие("список-выбранварианттрансляции",[m,s]))}return L(),{"Запустить":function(){V(d===_),h.НачалоВыполнения(),T(0)},"Остановить":function(){d=_,x(),B(),g=null},"ИзменитьВариантТрансляции":function(){V(m),x(),L(),C(),g=null,h.НачалоВыполнения(),T(0)}}})(),Me=(()=>{var e=null,t=-1;function n(e){me.ЗавершитьРаботуИОтправитьОтчет(`Произошла ошибка в рабочем потоке в строке ${e.lineno}. ${e.message}`)}function i(e){try{var t=e.data;switch(V(Array.isArray(t)),t[0]){case 1:V(2===t.length&&Q(t[1]));var n=new de(E,t[1].пДанные,t[1].чДлительность,t[1].лРазрыв,t[1].чTwitchПрошлоВремени,t[1].чНомер);if(he.Вот(`[Преобразование] Получен сегмент ${n.чНомер} ПреобразованЗа=${he.F0(n.пДанные.чПреобразованЗа)}мс`),"number"!=typeof n.пДанные){if(Ie.ПолученПреобразованныйСегмент(n),void 0===n.пДанные.мбМедиасегмент)return;me.СохранитьПреобразованныйСегмент(n)}return K.Добавить(n),void Be.ДобавитьСледующийСегмент();case 2:var r=t[1],i=t[2];V(3===t.length&&Array.isArray(r)&&Array.isArray(i)&&r.length===i.length);for(var a=0;ab)){if(i.чОбработка{function e(e,t,r,i,a,o,s,c,u){return V("GET"===t||"PUT"===t||"DELETE"===t),V("string"==typeof r&&(r.startsWith("http://")||r.startsWith("https://")||0===i&&r.startsWith(chrome.extension.getURL("")))),V(!c||!o),V(Number.isFinite(i)&&(0===i||i>500)),i=Math.round(i),he.Вот(`[Загрузчик] ${t} ${a} не дольше ${i}мс`),new Promise(function(l,d){const f=new XMLHttpRequest;if(f.addEventListener("timeout",v),f.addEventListener("error",v),f.addEventListener("abort",v),f.addEventListener("load",function(){try{if(G)return;V(f.readyState===XMLHttpRequest.DONE);const e=f.status;if(e>=200&&e<=299&&null!==f.response){V(c&&Q(f.response)||!c&&"string"==typeof f.response);const t=Math.round(n.now()-g),r=Math.round(p-g);he[200===e?"Вот":"Ой"](`[Загрузчик] Загрузил ${a} за ${t}мс`+(u?` ОжиданиеОтвета=${r}мс`:"")+(200===e?"":` Код=${e} ${f.statusText}`)+(o&&f.response.length?`\n${f.response}`:` Размер=${c?f.response.byteLength:f.response.length}`)),0!==i&&Ie.СкачаноНечто(function(e){var t,n=17+e.statusText.length+e.getAllResponseHeaders().length;(function(e){return 0===e.statusText.length})(e)&&(n=Math.round(.5*n));var r=e.getResponseHeader("Content-Length");r?t=Number.parseInt(r,10):"text"!==e.responseType?t=e.response.byteLength:(t=e.response.length,(r=e.getResponseHeader("Content-Encoding"))&&"identity"!==r&&(t=Math.round(.35*t)));return n+t}(f)),c?l({"буфДанные":f.response,"чДлительностьЗагрузки":t,"чОжиданиеОтвета":r}):(V(!u),l(f.response))}else he.Ой(`[Загрузчик] Не удалось загрузить ${a}. Сервер вернул код ${e} ${f.statusText}`+(c&&Q(f.response)?` Размер=${f.response.byteLength}`:`\n${f.response}`)),(e>=400&&e<=499||null===f.response||!y())&&d(M+e)}catch(e){me.ПойманоИсключение(e)}}),u&&f.addEventListener("progress",function e(){try{V(Number.isNaN(p)),p=n.now(),f.removeEventListener("progress",e)}catch(e){me.ПойманоИсключение(e)}}),e&&e.ЗаменитьОбработчик(function(){f.removeEventListener("abort",v),f.abort(),d(ue.ОБЕЩАНИЕ_ОТМЕНЕНО)}),f.open(t,r),s)for(var h of Object.keys(s))f.setRequestHeader(h,s[h]);f.responseType=c?"arraybuffer":"text",f.timeout=i;var m=!c;V(!m||!u);const g=n.now();var p=NaN;function y(){if(!m)return!1;if(he.Ой(`[Загрузчик] Повторно загружаю ${a}`),f.open(t,r),s)for(var e of Object.keys(s))f.setRequestHeader(e,s[e]);return m=!1,f.send(),!0}function v(e){try{if(G)return;he.Ой(`[Загрузчик] Не удалось загрузить ${a}. Произошло событие ${e.type}`),("timeout"!==e.type&&"error"!==e.type||!y())&&d(`Произошло событие ${e.type}`)}catch(e){me.ПойманоИсключение(e)}}f.send()})}function t(){for(var e=K.length,n=ke.Получить("кЗаначка");0!==n&&(0!==e&&K[e-1].чОбработка===y);--n)--e;var o=ke.Получить("кОдновременныхЗагрузок"),s=0;for(n=0;n=0&&r(K[n])));if(s>=a)return he.Ой(`[Загрузчик] Длительность всех загрузок в очереди ${he.F1(s)}с >= ${a}с`),i(null),void t();Me.ПреобразоватьСледующийСегмент()}function r(n){const r=5e3+n.чДлительность*ke.Получить("кОдновременныхЗагрузок")*2*1e3;V(r<1e3*a);const o=n.пДанные;n.пДанные=new ue,n.пДанные.НачалоВыполнения(),n.чОбработка=v,e(n.пДанные,"GET",o,r,`сегмент ${n.чНомер}`,!1,null,!0,Ie.ОкноПоказано()).then(function(e){V(K.includes(n)),n.пДанные=e.буфДанные,n.чОбработка=b,Ie.ЗагруженСегмент(e.буфДанные.byteLength,n.чДлительность,e.чДлительностьЗагрузки,e.чОжиданиеОтвета),t()}).catch(function(e){try{"string"==typeof e&&n.чОбработка===v?(he.Ой(`[Загрузчик] Не удалось загрузить сегмент ${n.чНомер}. ${e}`),V(K.includes(n)),i(e===M+404||e===M+410?null:n),V(!K.includes(n)),t()):e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?(he.Вот(`[Загрузчик] Отменена загрузка сегмента ${n.чНомер}`),V(!K.includes(n))):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}function i(e){K.ПоказатьСостояние();const t=K.length;if(e)K.Удалить(e);else for(var n,r=ke.Получить("кЗаначка"),i=ke.Получить("чРазмерБуфера"),a=t-1;n=K[a];--a)"number"!=typeof n.пДанные&&(n.чОбработка!==v?n.чОбработка===y&&(r>0?r-=1:i>0?i-=n.чДлительность:K.Удалить(a)):K.Удалить(a));K.ПоказатьСостояние(),Ie.НеЗагруженыСегменты(t-K.length)}return{"ЗагрузитьТекст":function(t,n,r,i,a,o,s){return e(t,void 0===s?"GET":s,n,r,i,a,o,!1,!1)},"ЗагрузитьСледующийСегмент":t}})();var De=null;function Oe(e){const n=6e4,r="jzkbprff40iqj646a697cyrvl0zt2m6",i={"Client-ID":r,Accept:"application/vnd.twitchtv.v5+json"};var a="",o="",u="",l="",d=new ue;function f(e){if(V(u&&a&&l),u===a)return V(void 0===e),void Ce.ПоказатьМетаданныеЗрителя({"чПодписка":L});switch(e){case void 0:var t="GET",n="";break;case C:t="DELETE",n="";break;case B:t="PUT",n="?notifications=false";break;case F:t="PUT",n="?notifications=true";break;default:V(!1)}Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/users/${u}/follows/channels/${a}${n}`,s,`подписка ${e}`,!0,void 0===e?i:{"Client-ID":r,Accept:"application/vnd.twitchtv.v5+json",Authorization:`OAuth ${l}`},t).then(function(t){if(e===C)return V(""===t),void Ce.ПоказатьМетаданныеЗрителя({"чПодписка":C});try{var n=JSON.parse(t)}catch(e){throw String(e)}V(ee(n.created_at)),V("boolean"==typeof n.notifications),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":void 0!==e?e:n.notifications?F:B})}).catch(function(t){try{t===M+404?(V(void 0===e),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":C})):"string"==typeof t?(he.Ой(`[Twitch] Не удалось обновить подписку. ${t}`),Ce.ПоказатьМетаданныеЗрителя({"чПодписка":L})):me.ПойманоИсключение(t)}catch(e){me.ПойманоИсключение(e)}})}function h(){try{V(a),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}`,s,"метаданные канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}const n=new Date(t.created_at);V(t._id===a&&Number.isFinite(t.followers)&&Number.isFinite(t.views)&&!Number.isNaN(n.getTime())),Ce.ПоказатьМетаданныеКанала({"сИмя":t.display_name||t.name,"сАватар":t.logo||chrome.extension.getURL("glitch.svg"),"сОписание":t.description,"сКодЯзыка":"other"===t.broadcaster_language?null:t.broadcaster_language,"кПодписчиков":t.followers,"кПросмотров":t.views,"дКаналСоздан":n})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить метаданные канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}/communities`,s,"сообщества канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of(V(Array.isArray(t.communities)),t.communities))V(ee(n.name)),n.сИмя=n.display_name||n.name,n.сОписание=n.description,n.сАдрес=`https://www.twitch.tv/communities/${encodeURIComponent(n.name)}`;Ce.ПоказатьМетаданныеКанала({"моСообщества":t.communities})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить сообщества канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,`https://api.twitch.tv/kraken/channels/${a}/teams`,s,"команды канала",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of(V(Array.isArray(t.teams)),t.teams))V(ee(n.name)),n.сИмя=n.display_name||n.name,n.info&&(n.сОписание=re(n.info)),n.сАдрес=`https://www.twitch.tv/team/${encodeURIComponent(n.name)}`;Ce.ПоказатьМетаданныеКанала({"моКоманды":t.teams})}).catch(function(e){"string"==typeof e?he.Ой(`[Twitch] Не удалось получить команды канала. ${e}`):me.ПойманоИсключение(e)}),Ae.ЗагрузитьТекст(null,"https://api.twitch.tv/kraken/user",s,"метаданные зрителя",!1,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}return V(ee(t._id)),V(ee(t.name)),u=t._id,Ce.ПоказатьМетаданныеЗрителя({"сИмя":t.display_name||t.name}),Ae.ЗагрузитьТекст(null,"https://api.twitch.tv/api/viewer/token.json",s,"токен зрителя",!1,{"Client-ID":r})}).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}V(ee(t.token)),l=t.token,Ce.ПоказатьМетаданныеЗрителя({"лАвторизован":!0}),f()}).catch(function(e){try{"string"==typeof e?(he.Ой(`[Twitch] Не удалось получить метаданные зрителя. ${e}`),u=l="",Ce.ПоказатьМетаданныеЗрителя({"лАвторизован":!1})):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}catch(e){me.ПойманоИсключение(e)}}function m(t){V(a),he.Вот(`[Twitch] Загрузка метаданных трансляции начнется через ${he.F0(t)}мс`),le(d,t).then(function(){return Ae.ЗагрузитьТекст(d,`https://api.twitch.tv/kraken/streams/${a}`,s,"метаданные трансляции",!0,i)}).then(function(t){try{var n=JSON.parse(t)}catch(e){throw String(e)}if(!Q(n)||!Q(n.stream))throw"В загруженном JSON нет метаданных";const r="live"!==n.stream.stream_type,c=Date.parse(n.stream.created_at);var u;if(V(String(n.stream.channel._id)===a&&n.stream.hasOwnProperty("_id")&&ee(n.stream.stream_type)&&Number.isFinite(n.stream.viewers)&&Number.isFinite(c)),Ce.ПоказатьМетаданныеТрансляции({"сНазваниеТрансляции":n.stream.channel.status||z("J0103"),"сНазваниеИгры":r?null:n.stream.game||z("J0104"),"сАдресИгры":(u=n.stream.game,"https://www.twitch.tv/directory"+(u?"/game/"+encodeURIComponent(u):"")),"кЗрителей":n.stream.viewers,"чДлительностьТрансляции":Date.now()-c}),e!==n.stream.channel.name&&(he.Ой(`[Twitch] Изменился код канала с ${e} на ${n.stream.channel.name}`),e=n.stream.channel.name),""===o){if(he.Окак(`[Twitch] Идентификатор трансляции: ${n.stream._id}`),o=String(n.stream._id),!r)return Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!1,"сАдресЗаписи":""}),Ae.ЗагрузитьТекст(d,`https://api.twitch.tv/kraken/channels/${a}/videos?broadcast_type=archive&limit=3`,s,"запись трансляции",!0,i).then(function(e){try{var t=JSON.parse(e)}catch(e){throw String(e)}for(var n of t.videos)if(String(n.broadcast_id)===o){V("archive"===n.broadcast_type),V(String(n.channel._id)===a),Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!1,"сАдресЗаписи":n.url});break}}).catch(function(e){if("string"!=typeof e)throw e;he.Ой(`[Twitch] Не удалось загрузить запись трансляции. ${e}`)});Ce.ПоказатьМетаданныеТрансляции({"лЗапись":!0,"сАдресЗаписи":""})}}).then(function(){m(n)}).catch(function(e){try{"string"==typeof e?(he.Ой(`[Twitch] Не удалось загрузить метаданные трансляции. ${e}`),m(n/2)):e===ue.ОБЕЩАНИЕ_ОТМЕНЕНО?he.Вот("[Twitch] Отменено обновление метаданных трансляции"):me.ПойманоИсключение(e)}catch(e){me.ПойманоИсключение(e)}})}return V(ee(e)),{"ПолучитьАбсолютныйАдресСпискаВариантов":function(t){return Ae.ЗагрузитьТекст(t,`https://api.twitch.tv/api/channels/${e}/access_token?adblock=false&need_https=false&platform=web&player_type=site`,c,"токен трансляции",!0,{"Client-ID":r}).then(function(t){const n=JSON.parse(t);if(Q(n)&&ee(n.token)&&ee(n.sig)){const t=JSON.parse(n.token);if(t.channel===e)return""===a?(V(t.hasOwnProperty("channel_id")),a=String(t.channel_id),setImmediate(h)):V(a===String(t.channel_id)),`http://usher.ttvnw.net/api/channel/hls/${e}.m3u8?token=${encodeURIComponent(n.token)}&sig=${encodeURIComponent(n.sig)}&allow_source=true`}me.ЗавершитьРаботуИПоказатьСообщение("J0203")},function(e){if(e!==M+404&&e!==M+422)throw e;me.ЗавершитьРаботуИПоказатьСообщение("J0203")})},"ПолучитьАбсолютныйАдресСпискаСегментов":function(e){return e},"ПолучитьАдресУбогогоПроигрывателя":function(){return`https://www.twitch.tv/${e}?twitch5=0`},"ПолучитьАдресПанелиЧата":function(){const t=["https://www.twitch.tv",`/${e}/chat`];return ke.Получить("лЗатемнитьЧат")&&t.push("?darkpopout"),t},"НачатьСборМетаданныхТрансляции":function(){o="",d.НачалоВыполнения(),m(0)},"ЗавершитьСборМетаданныхТрансляции":function(e){e&&(o=""),he.Вот("[Twitch] Отменяю обновление метаданных трансляции"),d.Отменить()},"СоздатьКлип":function(){const n=Math.round(Be.ПолучитьПозициюВоспроизведенияТрансляции()-3);if(""!==o&&n>0){he.Окак(`[Twitch] Создаю клип ИдЗрителя=${u} ИдТрансляции=${o} Позиция=${n}`),t.getElementById("создатьклип-канал").value=e,t.getElementById("создатьклип-трансляция").value=o,t.getElementById("создатьклип-позиция").value=n;try{t.getElementById("создатьклип-форма").submit()}catch(e){}}else he.Ой(`[Twitch] Недостаточно данных для создания клипа ИдЗрителя=${u} ИдТрансляции=${o} Позиция=${n}`)},"ИзменитьПодпискуЗрителяНаКанал":function(e){V(Number.isInteger(e)),f(e)}}}function Xe(t){try{G=!0,he.Окак("[Запускалка] Завершаю работу"),e.stop(),ke.Остановить(),t||(Ie.СкрытьОкно(),me.Остановить(),Be.Остановить(),ye.Сжечь()),De.ЗавершитьСборМетаданныхТрансляции(!0),Fe.Остановить(),Me.Остановить(),K.Очистить(),he.Окак("[Запускалка] Работа завершена")}catch(e){}}(()=>{function r(e){var t=function(e){return e.searchParams||new URLSearchParams(e.search.slice(1))}(e).get("channel")||"channel";return he.Вот(`[Запускалка] Канал ${t}`),{"сКодКанала":t.toLowerCase(),"сАбсолютныйАдресСпискаВариантов":""}}function i(e){he.Окак("[Запускалка] window.beforeunload"),Xe(!0)}try{ve.TranslatePage(t);const a=r(e.location);if(a.сКодКанала){if(function(t){for(var n of(V(ee(t)),chrome.extension.getViews()))if(n!==e&&!n.closed&&r(n.location).сКодКанала===t)return n.chrome.tabs.getCurrent(function(t){try{n.chrome.runtime.lastError||(chrome.tabs.update(t.id,{active:!0}),chrome.windows.update(t.windowId,{focused:!0})),e.history.length<2?e.close():me.ЗавершитьРаботуИПоказатьСообщение("J0211")}catch(e){me.ПойманоИсключение(e)}}),!0;return!1}(a.сКодКанала))return;De=Oe(a.сКодКанала)}else De=function(e){function t(e){return e.replace(/^(file:\/\/\/.*)(\d+)(\.m3u8)$/,function(e,t,n,r){return t+(Number.parseInt(n,10)+1)+r})}function n(){return"about:blank"}function r(){}return{"ПолучитьАбсолютныйАдресСпискаВариантов":function(){return e=t(e),Promise.resolve(e)},"ПолучитьАбсолютныйАдресСпискаСегментов":function(e){return t(e)},"ПолучитьАдресУбогогоПроигрывателя":n,"ПолучитьАдресПанелиЧата":n,"НачатьСборМетаданныхТрансляции":r,"ЗавершитьСборМетаданныхТрансляции":r,"СоздатьКлип":r}}(a.сАбсолютныйАдресСпискаВариантов);Promise.all([ke.Восстановить(),we.ЗапуститьАсинхронно(),new Promise(function(n,r){"complete"===t.readyState?(he.Ой("[Запускалка] document.readyState=complete"),n()):(he.Вот(`[Запускалка] document.readyState=${t.readyState}`),e.addEventListener("load",function i(){try{e.removeEventListener("load",i),V("complete"===t.readyState),he.Вот("[Запускалка] window.onload"),n()}catch(e){r(e)}}))})]).then(function(){he.Вот(`[Запускалка] Начало работы ${n.now().toFixed()}мс`),V(!G),e.addEventListener("beforeunload",i),me.Запустить(),Ce.Запустить(),Be.Запустить()?Fe.Запустить():Ce.ПереключитьПросмотрТрансляции(),ke.Получить("лПоказатьСтатистику")&&Ie.ПоказатьОкно()}).catch(me.ПойманоИсключение)}catch(e){me.ПойманоИсключение(e)}})()}(window); \ No newline at end of file