Raw Source
qsniyg / Image Max URL

// ==UserScript==
// @name              Image Max URL
// @name:ar           Image Max URL
// @name:cs           Image Max URL
// @name:da           Image Max URL
// @name:de           Image Max URL
// @name:el           Image Max URL
// @name:eo           Image Max URL
// @name:es           Image Max URL
// @name:fi           Image Max URL
// @name:fr           Image Max URL
// @name:fr-CA        Image Max URL
// @name:he           Image Max URL
// @name:hi           Image Max URL
// @name:hu           Image Max URL
// @name:id           Image Max URL
// @name:it           Image Max URL
// @name:ja           Image Max URL
// @name:ko           Image Max URL
// @name:nb           Image Max URL
// @name:nl           Image Max URL
// @name:pl           Image Max URL
// @name:pt-BR        Image Max URL
// @name:ru           Image Max URL
// @name:bg           Image Max URL
// @name:uk           Image Max URL
// @name:th           Image Max URL
// @name:tr           Image Max URL
// @name:vi           Image Max URL
// @name:zh-CN        Image Max URL
// @name:zh-TW        Image Max URL
// @name:zh-HK        Image Max URL
// @description       Finds larger or original versions of images and videos for 9400+ websites, including a powerful media popup and download feature
// @description:ar    البحث عن نسخ أكبر أو أصلية من الصور لأكثر من 9400 موقع ويب
// @description:cs    Vyhledá větší nebo původní verze obrázků a videí pro více než 9400 webů
// @description:da    Finder større eller originale versioner af billeder og videoer til mere end 9400 websteder
// @description:de    Sucht nach größeren oder originalen Versionen von Bildern und Videos für mehr als 9400 Websites
// @description:el    Βρίσκει μεγαλύτερες ή πρωτότυπες εκδόσεις εικόνων και βίντεο για περισσότερους από 9400 ιστότοπους
// @description:eo    Trovas pli grandajn aŭ originalajn versiojn de bildoj kaj filmetoj por pli ol 9400 retejoj
// @description:es    Encuentra imágenes más grandes y originales para más de 9400 sitios
// @description:fi    Etsii suurempia tai alkuperäisiä versioita kuvista ja videoista yli 9400 verkkosivustolle
// @description:fr    Trouve des versions plus grandes ou originales d'images et de vidéos pour plus de 9 400 sites web, y compris une puissante fonction de popup média
// @description:fr-CA Trouve des versions plus grandes ou originales d'images et de vidéos pour plus de 9 400 sites web, y compris une puissante fonction de popup média
// @description:he    מוצא גרסאות גדולות יותר או מקוריות של תמונות וסרטונים עבור יותר מ-9400 אתרים
// @description:hi    9400 से अधिक वेबसाइटों के लिए फ़ोटो और वीडियो के बड़े या मूल संस्करण ढूँढता है
// @description:hu    Több mint 9400 webhely képének és videóinak nagyobb vagy eredeti változatát találja
// @description:id    Menemukan versi gambar dan video yang lebih besar atau orisinal untuk lebih dari 9400 situs web
// @description:it    Trova versioni più grandi o originali di immagini e video per oltre 9400 siti web
// @description:ja    9400以上のウェブサイトで高画質や原本画像を見つけ出します
// @description:ko    9400개 이상의 사이트에 대해 고화질이나 원본 이미지를 찾아드립니다
// @description:nb    Finner større eller originale versjoner av bilder og videoer for mer enn 9400 nettsteder
// @description:nl    Vindt grotere of originele versies van foto's en video's voor meer dan 9400 websites
// @description:pl    Wyszukuje większe lub oryginalne wersje obrazów i filmów dla ponad 9400 stron internetowych
// @description:pt-BR Encontra versões maiores ou originais de imagens e vídeos para mais de 9400 sites
// @description:ru    Находит увеличенные или оригинальные версии изображений и видео для 9400+ сайтов. Имеет мощную функцию всплывающего окна и скачивание медиафайлов.
// @description:bg    Намира увеличени или оригинални версии на изображения за повече от 9400 уеб сайтове
// @description:uk    Знаходить збільшені або оригінальні версії зображень для більш ніж 9400 веб-сайтів
// @description:th    หาที่ใหญ่กว่าหรือเวอร์ชั่นดั้งเดิมของภาพทั้งหมดและวีดีโอสำหรับมากกว่า 9400 งเว็บไซต์
// @description:tr    9400'den fazla web sitesi için resim ve videoların daha büyük veya orijinal sürümlerini bulur
// @description:vi    Tìm phiên bản lớn hơn hoặc phiên bản gốc của hình ảnh và video cho hơn 9400 trang web
// @description:zh-CN 在近万个网站上查找尺寸更大或原版的图像/视频,提供媒体文件小弹窗和下载功能
// @description:zh-TW 為9400多個網站查找更大或原始圖像
// @description:zh-HK 為9400多個網站查找更大或原始圖像
// @namespace         http://tampermonkey.net/
// @version           2024.8.0
// @author            qsniyg
// @homepageURL       https://qsniyg.github.io/maxurl/options.html
// @supportURL        https://github.com/qsniyg/maxurl/issues
// @icon              https://raw.githubusercontent.com/qsniyg/maxurl/b5c5488ec05e6e2398d4e0d6e32f1bbad115f6d2/resources/logo_256.png
// @include           *
// @grant             GM.xmlHttpRequest
// @grant             GM_xmlhttpRequest
// @grant             GM.setValue
// @grant             GM_setValue
// @grant             GM.getValue
// @grant             GM_getValue
// @grant             GM_registerMenuCommand
// @grant             GM_unregisterMenuCommand
// @grant             GM_addValueChangeListener
// @grant             GM_download
// @grant             GM_openInTab
// @grant             GM.openInTab
// @grant             GM_notification
// @grant             GM.notification
// @grant             GM_setClipboard
// @grant             GM.setClipboard
// @connect           *
// api.github.com is used for checking for updates (can be disabled through the "Check Updates" setting)
// @connect           api.github.com
// @run-at            document-start
// @license           Apache-2.0
// non-greasyfork/oujs versions need updateURL and downloadURL to auto-update for certain userscript managers
// @updateURL         https://raw.githubusercontent.com/qsniyg/maxurl/master/userscript.meta.js
// @downloadURL       https://raw.githubusercontent.com/qsniyg/maxurl/master/userscript_smaller.user.js
//
//  Greasyfork and OpenUserJS have 2MB and 1MB limits for userscripts (respectively).
//  Because of this, the rules (~1.7MB) have been split into a separate file, linked below.
//  Note that jsdelivr.net might not always be reliable, but (AFAIK) this is the only reasonable option from what greasyfork allows.
//  I'd recommend using the Github version of the script if you encounter any issues (linked in the 'Project links' section below).
//
// @require https://cdn.jsdelivr.net/gh/qsniyg/maxurl@7a434a7b6585c1237293548b4257786b08a7beec/build/rules.js
// ==/UserScript==

// Due to OpenUserJS's 1MB limit, the source code had to be minified.
// The minification was done by gen_minified.js (in the maxurl repository below) using `uglifyjs -m -c` (v3.18.0).
// This unfortunately renders the code pretty much unreadable, but it was the only way to fit it within the 1MB limit.
// You can view the original source code here: https://github.com/qsniyg/maxurl/blob/master/userscript.user.js
// Please let me know if you have any questions or concerns regarding the script.

var $$IMU_EXPORT$$;!function(){var t,si=!1,Li=(si&&(si={no_request:!1,no_recurse:!1,no_redirect:!0,map:!1,cache:!1,bigimage_recursive:!1,input:!1,check_image_get:!1,find_source:!0},console.log("Loaded")),function(){}),li=!1,o=!1,r=!1,ui=null,i=function(e){},s=!1,M=!1,Pi=!1,a=!1,ci=null,v="https://qsniyg.github.io/maxurl/options.html",n="https://web.archive.org/web/20210328063940/https://qsniyg.github.io/maxurl/options.html",l=v,u="https://addons.mozilla.org/en-US/firefox/addon/image-max-url/",c="https://raw.githubusercontent.com/qsniyg/maxurl/master/userscript_smaller.user.js",ji="https://github.com/qsniyg/maxurl/issues",d="https://raw.githubusercontent.com/qsniyg/maxurl/b5c5488ec05e6e2398d4e0d6e32f1bbad115f6d2/resources/logo_256.png",H="2024.8.0",Mi=!1,Hi=!0,p=!1,m=function(){return"undefined"!=typeof unsafeWindow?unsafeWindow||this.window||window:this.window||window},$i=function(){var e=m();return e.self||e},Fi=[],Oi=function(e){if(s||!Ti.imu_enabled)return!0;if(e&&li)try{chrome.runtime.getURL("manifest.json")}catch(e){return Gi(!0),!0}return!1},Gi=function(e){var t=s;(s=e)&&!t&&zi(Fi,function(e){e()})};try{ci=window.location.href,E=ci.replace(/^[a-z]+:\/\/web\.archive\.org\/+web\/+[0-9]+\/+(https?:\/\/)/,"$1"),/^https?:\/\/qsniyg\.github\.io\/+maxurl\/+options\.html/.test(E)||/^file:\/\/.*\/maxurl\/site\/options\.html/.test(ci)?a=Pi=!0:(/^https?:\/\/qsniyg\.github\.io\/+maxurl\/+/.test(E)||/^file:\/\/.*\/maxurl\/site\/(?:index|about|options)\.html/.test(ci))&&(a=!0)}catch(e){}!function(){if("object"==typeof chrome&&chrome&&"object"==typeof chrome.runtime)try{var e=chrome.runtime.getManifest();if(!(li="Image Max URL"===e.name))return;i=function(e){try{var t=chrome.runtime.lastError;t&&console.error(t.message,e)}catch(e){console.error(e)}},o=/^([-a-z]+)extension:\/\/[^/]+\/+_generated_background_page\.html/.test(ci),t=chrome.runtime.getURL("extension/options.html"),M=ci.replace(/[?#].*$/,"")===t,Pi=Pi||M,l=t,0<=navigator.userAgent.indexOf("Firefox")&&(r=!0),H=e.version,ui=function(e,t){return e=qi(e,{json:!0}),t=t||Li,o?userscript_extension_message_handler(e,t):t&&t!==Li?chrome.runtime.sendMessage(null,e,null,function(){return i(e),t.apply(this,arguments)}):chrome.runtime.sendMessage(null,e)},o||setTimeout(function(){chrome.runtime.connect().onDisconnect.addListener(function(e){console.error(e),i(),Gi(!0)})},10),i()}catch(e){li&&(console.error(e),i())}}();var h=!1,f=!1;if("undefined"!=typeof module&&module.exports&&"undefined"==typeof window&&"undefined"==typeof document){h=!0;try{require.main===module&&(f=!0)}catch(e){}}var b=!1,_e=("undefined"!=typeof imu_variable&&"undefined"==typeof GM_xmlhttpRequest&&"undefined"==typeof GM&&(b=!0),!1),di=(h||b||li||(_e=!0),function(){try{return window.self!==window.top}catch(e){return!0}}()),y=!1,_=(li||_e)&&!o,w="unknown",k="";if(_e){var x=void 0;"function"==typeof GM_info?x=GM_info():"object"==typeof GM_info&&(x=GM_info),"object"==typeof x?(x.scriptHandler&&(w=x.scriptHandler),x.version&&(k=x.version)):"function"==typeof GM_fetch&&null===x&&(x={scriptHandler:w="FireMonkey"});try{H=x.script.version}catch(e){H=null}}function C(e){return U(e,"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_")}var pi,z,R,mi,hi,gi,N,S,Wi,fi,Vi,q,B,T,A,_i,I=console.log,vi=function(){for(var e=0;e<arguments.length;e++)e,0;if(!Ti||Ti.enable_console_logging)return I.apply(this,arguments)},bi=console.error,yi=console.warn,E=console.trace,wi=(!function(e){e=e.toString();return!!(e.length<80&&/native code/.test(e))}(bi)&&(bi=function(){for(var e=0;e<arguments.length;e++)e,0;for(var t=["[ERROR]"],o=0;o<arguments.length;o++)t.push(arguments[o]);return vi.apply(this,t)}),function(){for(var e=0;e<arguments.length;e++)e,0}),K=(si&&(wi=function(){for(var e=0;e<arguments.length;e++)e,0;if(si[arguments[0]]){for(var t=[],o=1;o<arguments.length;o++)t.push(arguments[o]);vi.apply(this,t)}}),JSON.parse),ki=function(e){var t=+e,o=0|t,t=o-t;return 1<(t=t<0?-t:t)?+(e+"").replace(/\..*/,""):o},U=function(e,t){for(var o,r,i={},a=0,n=0,s="",l=q,u=e.length,c=t=t||"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",d=0;d<64;d++)i[B(c,d)]=d;for(o=0;o<u;o++)for(a=(a<<6)+i[B(e,o)],n+=6;8<=n;)((r=a>>>(n-=8)&255)||o<u-2)&&(s+=l(r));return s},D=(h&&(z=function(e){return Buffer.from(e,"base64").toString("binary")},R=function(e){return Buffer.from(e).toString("base64")}),[]);try{pi=JSON.stringify}catch(e){yi("Cannot use native JSON.stringify, using slow implementation instead",e);var L=function(e){return void 0===e||"function"==typeof e};pi=function(e){if(!L(e)){if("string"==typeof e)return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')+'"';if(null===e)return"null";if("number"==typeof e)return e+"";if(mi(e)){for(var t=[],o=0;o<e.length;o++)void 0===(i=pi(e[o]))&&(i="null"),t.push(i);return"["+t.join(",")+"]"}if("object"==typeof e){var r,i,t=[];for(r in e)void 0!==(i=pi(e[r]))&&t.push('"'+r+'":'+pi(e[r]));return"{"+t.join(",")+"}"}}}}function P(e,t,o,r){if(e){if(o)try{if(o(e))return e}catch(e){}r&&D.push(r)}return t}_&&(W=EventTarget,j=W.prototype.addEventListener,$=W.prototype.removeEventListener),F=null,O=function(){F=F||xt()},fi=function(t,o,r,e){t===window&&t.unsafeWindow&&(t=t.unsafeWindow);function i(e){return r(e)}var a=function(){return Oi(!0)},n=("mousemove"===o&&(a=function(){return Oi(!1)}),r);r=function(e){if(!a())return n(e);s&&Vi(t,o,n)};O(),Sa(F,n,i),j.call(t,o,i,e)},Vi=function(e,t,o,r){O();var i=qa(F,o);i?Nt(F,i):(yi("Modified handler not found, defaulting to specified handler"),i=o),$.call(e,t,i,r)},(_||b||"function"==typeof HTMLDocument)&&(G=HTMLDocument.prototype.createElement),_i=function(e){if(G)return G.call(document,e);bi("Unable to create element",e,", HTMLDocument.prototype.createElement does not exist")},W=Array.isArray,mi=W||function(e){return e instanceof Array};var j,$,F,O,G,W=null;try{W=String.fromCharCode}catch(e){}q=P(W,function(){for(var e="",t=0;t<arguments.length;t++)e+="\\u"+("0000"+parseInt(arguments[t]).toString(16)).slice(-4);return K('"'+e+'"')},function(e){return"2"===e(50)&&"d"===e(100)&&"2d"===e("50","100")}),V=String.prototype.charAt,B=P(function(e,t){return V.call(e,t)},function(e,t){e=e[t];return e=void 0===e?"":e},function(e){var t="abc";return"a"===e(t,0)&&"b"===e(t,1)&&""===e(t,-1)&&""===e(t,3)}),h||(z=P(atob,function(e){return U(e)},function(e){return"test"===e("dGVzdA==")},"atob"),R=P(btoa,function(e){return yi("Using fake base64 encoder"),e},function(e){return"dGVzdA=="===e("test")},"btoa")),X=Array.prototype.indexOf,hi=P(function(e,t){return X.call(e,t)},function(e,t){"string"==typeof e&&(e=Array.from(e));for(var o=0;o<e.length;o++)if(e[o]===t)return o;return-1},function(e){var t=["a","b"];return-1===e(t,"not here")&&1===e(t,"b")&&-1===e("abc","n")&&1===e("abc","b")&&-1===e("abc","bc")}),Y=Array.prototype.reduce,T=P(function(e,t,o){return void 0!==o?Y.call(e,t,o):Y.call(e,t)},function(e,t,o){var r=0;if(void 0===o){if(!e.length)throw new TypeError("Reduce of empty array with no initial value");o=e[0],r=1}for(var i=o,a=r;a<e.length;a++)i=t(i,e[a],a,e);return i},function(e){try{return e([]),!1}catch(e){}try{return e([],function(){}),!1}catch(e){}function t(e,t,o){return e.x+t.x+o}return!(!isNaN(e([{x:2},{x:2},{x:2}],t))||9!==e([{x:2},{x:6}],t)||2!==e([{x:2}],t).x||8!==e([{x:2}],t,{x:6}))}),A=function(e,t){return T(this,e,t)},Z=String.prototype.indexOf,gi=P(function(e,t){return Z.call(e,t)},function(e,t){if(0===t.length)return 0;for(var o=0,r=0;r<e.length;r++)if(B(e,r)===B(t,o)){if(o+1===t.length)return r-o;o++}else o=0;return-1},function(e){var t="abc";return-1===e(t,"n")&&1===e(t,"b")&&1===e(t,"bc")&&-1===e(t,"bcz")&&0===e(t,"")}),h||(W=URL||webkitURL,S=P(W,Li,function(e){return"function"==typeof e&&"object"==typeof e.prototype&&"searchParams"in e.prototype&&(!_||"createObjectURL"in e&&"revokeObjectURL"in e)},"URL")),h||(Wi=function(e,t,o){t(new N([e],o))},(N=P(Blob,function(){yi("This is a fake Blob object, you will almost certainly encounter problems.")},function(e){return"function"==typeof e&&"object"==typeof e.prototype&&"slice"in e.prototype&&"size"in e.prototype},"Blob"))!==Blob&&("function"==typeof Response?Wi=function(e,t,o){var r={};o&&o.type&&(r.headers={"Content-Type":o.type}),new Response(e,r).blob().then(function(e){t(e)})}:"function"==typeof File&&(Wi=function(e,t,o){t(new File([e],"",o))})));var V,X,Y,Z,J={};if(0<D.length){try{for(var Q=D,ee=_i("iframe"),te=(ee.srcdoc="",document.documentElement.appendChild(ee),ee.contentWindow),oe=0;oe<Q.length;oe++){var re=Q[oe];J[re]=te[re]}ee.parentElement.removeChild(ee)}catch(e){bi(e)}"Blob"in J&&(N=J.Blob),"URL"in J&&(S=J.URL),"atob"in J&&(z=J.atob),"btoa"in J&&(R=J.btoa)}function ie(e,t){for(var o=[],r=0;r<e.length;r++)o[r]=t(e[r]);return o}function ae(e){return e&&e.length?e:null}var be,Xi,ye,xi,Ci,Yi,Zi,ne=function(e){return mi(e)?e:[e]},Ji=function(e,t){t=ne(t),[].push.apply(e,t)},zi=function(e,t,o){if(o){for(var r=[],i=0;i<e.length;i++)r.push(e[i]);e=r}for(i=0;i<e.length;i++)if(!1===t(e[i],i))return},Ki=function(e,t){hi(e,t)<0&&e.push(t)},Qi=function(e,t,o){return e.split(t).join(o)},se=function(e,t){var o=new RegExp(t,"g"),e=e.match(o);if(!e)return null;for(var r=[],i=0,a=e;i<a.length;i++){var n=a[i];r.push(n.match(t))}return r},Ri=function(e,t){for(var o in e)if(!1===t(o,e[o]))return},ea=function(e,t){for(var o in t)e[o]=t[o];return e},Ni={nullfunc:function(){},nullobjfunc:function(){return{func:function(){}}},run_arrayd_string:function(e,t){return e=e.split(""),t.cb(e),e.join("")}};Ni.new_vm=function(){function o(e,t){for(var o={stack:[],data:t},r=0;r<e.length;r+=2){var i=e[r],a=e[r+1];o.arg=a,n[i](o)}return t}var n=[function(e){e.stack.unshift(e.data)},function(e){e.stack.unshift(e.arg)},function(e){for(var t=0;t<e.arg;t++)e.stack.shift()},function(e){e.stack.unshift(e.stack[e.arg])},function(e){e.stack[0].push(e.stack[1])},function(e){e.stack[0].unshift(e.stack[1])},function(e){e.stack[0].reverse()},function(e){var t=e.stack[0][e.stack[2]];e.stack[0][e.stack[2]]=e.stack[0][e.stack[1]%e.stack[0].length],e.stack[0][e.stack[1]%e.stack[0].length]=t},function(e){e.stack[0].splice(e.stack[1],1)},function(e){e.stack[0].splice(0,e.stack[1])},function(e){e.stack[0].splice(e.stack[1],e.stack[0].length)},function(e){e.stack[0][e.stack[1]]+=e.stack[2]},function(e){e.stack[0][e.stack[1]]*=e.stack[2]},function(e){e.stack[0][e.stack[1]]*=-1}];return{arch:n,op_start:4,total_instrs:Object.keys(n).length,run:function(t,e){return"string"==typeof e?Ni.run_arrayd_string(e,{cb:function(e){return o(t,e)}}):o(t,e)}}},Ni.create_vm_ops=function(e){for(var i=[],t=0;t<3;t++)i.push(1,0);return zi(e,function(e){for(var t=e[0],o=1;o<e.length;o++)i.push(1,e[o]);var r=e.length-1;i.push(0,null,t,null,2,1+r)}),i.push(2,3),i};if(!h)try{be=Math.floor,Xi=Math.round,ye=Math.random,xi=Math.max,Ci=Math.min,Yi=Math.abs,Zi=Math.pow}catch(e){be=function(e){return 0|e},Xi=function(e){return be(e+.5)};var le=Date.now(),ue=null;ye=function(){if(ue=ue||Ni.new_vm()){for(var e=ue.total_instrs-ue.op_start,t=[8,9,10,13],o=[],r=(r=15&le)||4,i=0;i<r;i++){var a=((le>>4&15)+(le>>i%8&15))%e+ue.op_start;0<=hi(t,a)?r++:o.push([a,(255&le)+i,((15&le)+i)%5])}var n=Ni.create_vm_ops(o);try{var s=parseFloat(ue.run(n,le+""));isNaN(s)||(le+=s)}catch(e){}}return(le=(le+Date.now())%1e8)/1e8},xi=function(){for(var e=-1/0,t=0;t<arguments.length;t++)e<arguments[t]&&(e=arguments[t]);return e},Ci=function(){for(var e=1/0,t=0;t<arguments.length;t++)arguments[t]<e&&(e=arguments[t]);return e},Yi=function(e){return e<0?-e:e},Zi=function(e,t){for(var o=1;o<t;o++)e*=e;return e}}function ce(){return ta(10)+Date.now()}function de(e,t){if(!(t<=0))for(var o=0;o<t;o++)e.push("0")}var ta=function(e,t){for(var o="";o.length<e;){var r=be(1e9*ye()),r=t?r.toString(10):r.toString(26);o+=r}return o=o.substr(0,e)};function we(e,t){if("string"!=typeof e||"string"!=typeof t)return null;var o=/^[0-9]+(\.[0-9]+){0,}$/;if(!o.test(e)||!o.test(t))return null;var r=e.split("."),i=t.split(".");r.length!==i.length&&(de(r,i.length-r.length),de(i,r.length-i.length));for(var a=0;a<r.length;a++){var n=ki(r[a]),s=ki(i[a]);if(n<s)return 1;if(s<n)return-1}return 0}var oa=function(){return!li&&Ti&&Ti.use_webarchive_for_lib?n:l},pe={},ra=function(){return{id:la,url:me,size:[window.innerWidth,window.innerHeight]}},ia=function(t){if(t.id in pe)return pe[t.id];for(var e=function(e){return e&&(pe[t.id]=e),e},o=document.getElementsByTagName("iframe"),r=[],i=0;i<o.length;i++)o[i].src===t.url&&r.push(o[i]);if(0===r.length)r=[];else if(r.length<=1)return e(r[0]);for(var a=r,r=[],i=0;i<a.length;i++)a[i].scrollWidth===t.size[0]&&a[i].scrollHeight===t.size[1]&&r.push(a[i]);return r.length<=1?e(r[0]):null},aa=null,na=null,sa={},la=null,me=null,he=null,aa=Ni.nullfunc,na=Ni.nullfunc,ua="__IMU_MESSAGE__",ca=(li?(he=function(e,t){ui(t)},y=!0):_&&(di&&window.parent&&(pe.top=window.parent),he=function(e,t){var o;if((e=!e&&di?"top":e)&&e in pe&&!(o=function(e){if(!(e in pe))return null;if("top"!==e)try{if(pe[e].contentWindow)return pe[e].contentWindow}catch(e){return!1}return pe[e]}(e)))si&&yi("Unable to find window for",e,{is_in_iframe:di,id_to_iframe:pe});else{t.imu=!0;var r={};if(r[ua]=za(t),o)o.postMessage(r,"*");else for(var i=0;i<window.frames.length;i++)try{window.frames[i].postMessage(r,"*")}catch(e){si&&yi("Unable to send message to",window.frames[i],e);continue}}},y=!0,"cafe.daum.net"===window.location.hostname)&&(y=!1),y&&(me=ci,la=ce()+" "+me,di||(la="top"),aa=function(e,t,o){var r=void 0,o=(o&&(r=ce(),sa[r]=o),{type:"remote",data:t,to:e,from:la,response_id:r});si&&vi("remote_send_message",e,o),he(e,o)},na=function(e,t,o){he(e,{type:"remote_reply",data:o,response_id:t})}),function(){return y&&Ti.allow_remote}),da=function(){return ca()&&Ti.mouseover_use_remote},ge=function(i){si&&vi("do_request_browser",i);function e(o,r){a[o]=function(){if(r)return i[o](null);var e=function(e){i[o](e)},t=(si&&vi("do_request_browser's do_final",a,e),{readyState:a.readyState,finalUrl:a.responseURL,responseHeaders:a.getAllResponseHeaders(),responseType:a.responseType,status:a.status,statusText:a.statusText,timeout:a.timeout});t.response=a.response;try{t.responseText=a.responseText}catch(e){}e(t)}}var t=i.method||"GET",a=new XMLHttpRequest;a.open(t,i.url,!0),i.responseType&&(a.responseType=i.responseType),i.headers&&Ri(i.headers,function(e,t){try{a.setRequestHeader(e,t)}catch(e){}});e("onload"),e("onerror"),e("onprogress"),e("onabort",!0),e("ontimeout",!0);try{a.send(i.data)}catch(e){bi(e),a.abort()}return{abort:function(){a.abort()}}};try{"function"!=typeof XMLHttpRequest&&(ge=null)}catch(e){ge=null}function fe(e){var t;return"string"==typeof e&&(t=e,e=function(){di||ga({url:t},!1)}),e}var ke,xe={},Ce=null,pa=(li?Ce=function(t){var o,r=!1;return ui({type:"request",data:t},function(e){"id"!==e.type?bi("Internal error: Wrong response",e):(o=e.data,xe[o]={id:o,data:t},r&&ui({type:"abort_request",data:o}))}),{abort:function(){void 0===o?(yi("abort() was called before the request was initialized"),r=!0):ui({type:"abort_request",data:o})}}}:"undefined"!=typeof GM_xmlhttpRequest?Ce="Violentmonkey"===w&&we(k,"2.12.7")<=0?function(t){var e,o={},r=[],i=(Array.prototype.reduce===A||function(e){e=e.toString();return e.length<80&&0<gi(e,"native code")}(Array.prototype.reduce)||(e=Array.prototype.reduce,Array.prototype.reduce=A,r.push(function(){Array.prototype.reduce=e})),!1);return r.length&&zi(["onload","onabort","onerror","ontimeout"],function(e){e in t&&(o[e]=t[e],t[e]=function(){return function(e,t){return i||(zi(r,function(e){e()}),i=!0),o[e].apply(this,t)}(e,arguments)})}),GM_xmlhttpRequest(t)}:GM_xmlhttpRequest:"undefined"!=typeof GM&&void 0!==GM.xmlHttpRequest&&(Ce=GM.xmlHttpRequest),li&&!o&&ui({type:"init"}),Ni.nullfunc),ma=Ni.nullfunc,ze=0,ha={},Re=(_e?("undefined"!=typeof GM_registerMenuCommand&&(pa=function(e,t){t=fe(t);e="["+ ++ze+"] "+e,t=GM_registerMenuCommand(e,t);return t=null==t?e:t}),"undefined"!=typeof GM_unregisterMenuCommand&&(ma=function(e){return ze--,GM_unregisterMenuCommand(e)})):li&&!o&&(pa=function(e,t){var o=ce();return t=fe(t),ha[o]={name:e,func:t},ui({type:"register_menucommand",data:{id:o,name:e}}),o},ma=function(e){ui({type:"unregister_menucommand",data:{id:e}}),delete ha[e]}),Ni.nullfunc),ga=(_e&&("undefined"!=typeof GM_openInTab?Re=GM_openInTab:"undefined"!=typeof GM&&void 0!==GM.openInTab&&(Re=GM.openInTab)),function(e,t,o){li?ui({type:"newtab",data:{imu:e,background:t||!1}},o):_e&&Re&&(Re(e.url,t),o)&&o()}),Ne=((_e&&Re!==Ni.nullfunc||li)&&(_e&&pa("Options",oa()),pa("Request support for this page",function(){var e;di||(e=window.location.href,ga({url:"https://qsniyg.github.io/maxurl/#imu-request-site&url="+encodeURIComponent(e)},!1))})),function(e){return!(e&&0!==e.status&&null!==e.status||e&&e.finalUrl&&/^file:\/\//.test(e.finalUrl))}),Si=null,Se=(Ce?Si=function(r){if(si&&vi("do_request",qi(r)),"withCredentials"in r||(r.withCredentials=!0),"headers"in r||(r.headers={}),r.imu_mode){var e,t={};for(e in"document"===r.imu_mode||"iframe"===r.imu_mode?(t.accept="text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",t["Sec-Fetch-Dest"]="document"===r.imu_mode?"document":"iframe",t["Sec-Fetch-Mode"]="navigate",t["Sec-Fetch-Site"]="document"===r.imu_mode?"same-origin":"cross-site",t["Sec-Fetch-User"]="?1"):"xhr"===r.imu_mode?(t.accept="*/*",t["Sec-Fetch-Dest"]="empty",t["Sec-Fetch-Mode"]="cors",t["Sec-Fetch-Site"]="same-origin",t.origin=r.url.replace(/^([a-z]+:\/\/[^/]+)(?:\/+.*)?$/,"$1")):"image"===r.imu_mode?(t.accept="image/webp,image/apng,image/*,*/*;q=0.8",t["Sec-Fetch-Dest"]="image",t["Sec-Fetch-Mode"]="no-cors",t["Sec-Fetch-Site"]="same-site"):"video"===r.imu_mode&&(t.accept="*/*",t["Sec-Fetch-Dest"]="video",t["Sec-Fetch-Mode"]="no-cors",t["Sec-Fetch-Site"]="same-site"),delete r.imu_mode,t)void 0===Wa(r.headers,e)&&Mo(r.headers,e,t[e])}if(r.imu_multipart){var o,i="----WebKitFormBoundary"+ta(16),a="";for(o in r.imu_multipart)a=a+("--"+i+'\r\nContent-Disposition: form-data; name="'+o+'"\r\n\r\n')+(r.imu_multipart[o]+"\r\n");a+="--"+i+"--\r\n",Mo(r.headers,"Content-Type","multipart/form-data; boundary="+i),r.data=a,delete r.imu_multipart}var n,s,l,u,c,d,p,m=qi(r),h=("string"==typeof r.url&&(r.url=r.url.replace(/#.*/,"")),r.onerror||(r.onerror=r.onload),r.ontimeout||(r.ontimeout=r.onerror),Ce);return _e&&Ti.allow_browser_request&&("Falkon GreaseMonkey"===w||"USI"===w&&r.need_blob_response)&&(h=ge,delete r.trackingprotection_failsafe),r.retry_503&&(!0!==r.retry_503&&"number"==typeof r.retry_503||(r.retry_503=ki(Ti.retry_503_times)),0<r.retry_503)&&(n=r.onload,s=r.onerror,l=function(e,t){si&&vi("do_request's finalcb_503:",e,t,qi(r)),503===e.status?(yi("Received status 503, retrying request",e,m),m.retry_503=r.retry_503-1,setTimeout(function(){Si(m)},ki(Ti.retry_503_ms)||1)):(t?s:n)(e)},r.onload=function(e){l(e,!1)},r.onerror=function(e){l(e,!0)}),r.trackingprotection_failsafe&&Ti.allow_browser_request&&ge&&(u=r.onload,c=r.onerror,d=function(e,t){var o;if(si&&vi("do_request's finalcb:",e,t),Ne(e))return r.onload=null,r.onerror=null,(o=Ca(r)).onload=u,o.onerror=c,"blob"===o.imu_responseType&&(o.responseType="blob"),ge(o);(t?c:u)(e)},r.onload=function(e){d(e,!1)},r.onerror=function(e){d(e,!0)}),"blob"!==r.responseType||Ti.use_blob_over_arraybuffer||(p=r.onload,r.onload=function(e){function t(){si&&vi("do_request's arraybuffer->blob:",qi(e),i),p(i)}var o,r,i=e;e.response?(o=null,li&&"_responseEncoded"in e&&e._responseEncoded.type?o=e._responseEncoded.type:e.responseHeaders&&(r=Ga(Oa(e.responseHeaders)))["content-type"]&&(o=r["content-type"]),r=void(i=Ca(e)),Wi(e.response,function(e){i.response=e,t()},r=o?{type:o}:r)):t()},r.responseType="arraybuffer",r.imu_responseType="blob"),si&&vi("do_request (modified data):",qi(r)),h(r)}:_&&console.warn("Unable to initialize do_request, most functions will likely fail"),function(e){return Ti.filename_replace_special_underscores?e.replace(/["<>/:?\\*|\^]/g,"_"):e}),qe=function(e,t){function o(e){return e.replace(/^([a-z]+:\/\/[^/]+\/+).*/,"$1")}return o(e)===o(t)},Be=function(e,t,o){si&&vi("do_browser_download",e,t,o);var r=_i("a");r.href=e.url,t&&0<t.length?r.setAttribute("download",Se(t)):(e=document.createAttribute("download"),r.setAttributeNode(e)),qe(ci,r.href)||r.setAttribute("target","_blank"),r.style.display="none",r.onclick=function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!0},document.body.appendChild(r),r.click(),setTimeout(function(){document.body.removeChild(r)},500),o&&o()},fa=function(t,o,e,r){vi("do_download",t,o,e,r);var i,a=_e&&"undefined"!=typeof GM_download&&Ti.enable_gm_download,n=parseFloat(Ti.gm_download_max)||0,n=(a&&e&&n&&1024*n*1024<e&&(a=!1),!1);if(n=t&&t.url?/^data:/.test(t.url):n)return Be(t,o,r);li?ui({type:"download",data:{imu:t,filename:Se(o),force_saveas:!!Ti.enable_webextension_download}},function(){r&&r()}):a?(t.headers&&(i=t.headers),(e={url:t.url,headers:i,saveAs:!0,onerror:function(e){e&&e.error&&"not_succeeded"!==e.error&&Be(t,o,r)}}).name=o?Se(o):"download",si&&vi("GM_download",qi(e)),GM_download(e)):Be(t,o,r)},_a=function(e,t,o){var r=Rn(e);Be({url:r},t),setTimeout(function(){Nn(r),o&&o()},500)},Te=function(t,o){var r=!1,i=0,a=function(){if(!t.queue.length)return i<=0?o():void 0;var e=t.queue.shift();i++,t.runner(e,function(){i--,a()})};return{add:function(e){t.queue.push(e)},start:function(){if(!r){r=!0;for(var e=t.concurrency;0<e;e--)a()}}}},va=function(t){this.elements_num=t.elements_num||0,this.total_size=t.total_size||0,this.known_elements={},this.finished=!1;var o=0;this.calc_completion=function(){var t,o=0,r=0,i=0,a=[],e=(Ri(this.known_elements,function(e,t){!t.size&&t.progress_ratio?a.push(t):(o+=t.size,i+=t.progress,r++)}),this.total_size),n=!0,s=(a.length&&(n=!1,t=r?o/r:1,zi(a,function(e){o+=t,i+=e.progress_ratio*t,r++})),e||(e=o,0<(s=this.elements_num-r)&&0<r&&(e+=o/r*s,n=!1)),{percent:i/e,total:e,total_accurate:n,loaded:i});return this.finished&&(s.percent=1,s.loaded=s.total),s},this._do_cb=function(){var e=this.calc_completion();e.percent!==o&&(o=e.percent,t.cb(e))},this.update=function(e,t,o){e in this.known_elements||(this.known_elements[e]={progress:0,size:0}),o||!t?(this.known_elements[e].progress=t,this.known_elements[e].size=o):this.known_elements[e].size?this.known_elements[e].progress=t*this.known_elements[e].size:this.known_elements[e].progress_ratio=t,this._do_cb()},this.update_progobj=function(e,t){this.update(e,t.loaded,t.total)},this.finish_id=function(e){this.update(e,1)},this.finish=function(){this.finished=!0,this._do_cb()}},ba=function(o,s){o.headers||(o.headers={}),o.responseType="arraybuffer";function l(e){return"content-range"in e?(e=e["content-range"].split("/"),ki(e[1])):null}function u(r,i,a,n){var e=qi(o),t=(e.method="GET","bytes="+r+"-"),s=(i&&(t+=i-1),r);Mo(e.headers,"Range",t),n?(e.onprogress=function(e){var t;if(e.loaded&&e.total)return t=Ga(Oa(e.responseHeaders)),t=l(t),n(s,e.loaded,e.total,t)},e.onload=function(e){var t,o;i&&(t=i-r),(t=e.response?e.response.byteLength:t)||"content-length"in(o=Ga(Oa(e.responseHeaders)))&&(t=ki(o["content-length"])),n(s,t,t),a(e)}):e.onload=a,Si(e)}function c(e){d&&p.finish(),s.onload({data:h,mime:g},e)}var d=!!s.onprogress,p=null,m=null,h=(d&&(p=new va({cb:s.onprogress,elements_num:1}),m=function(e,t,o,r){!p.total_size&&r&&(p.total_size=r),p.update(e,t,o)}),null),g=null,f=s.chunk_size;u(0,f=f||0===f?f:524288,function(e){var t=Ga(Oa(e.responseHeaders)),o=0;if(200===e.status)o=e.response.byteLength;else{if(206!==e.status)return bi("Bad status",e.status,e),s.onload(null,e);if(null===(o=l(t)))return bi("Unable to find length through content-range"),s.onload(null,e)}if((h=new Uint8Array(o)).set(new Uint8Array(e.response),0),e.response.byteLength>=o)return c(e);"content-type"in t&&(g=t["content-type"]),d&&(p.total_size=o);for(var r=[],i=e.response.byteLength;;i+=f){var a=[i],n=!0;if(f<o-i&&(a.push(i+f),n=!1),r.push(a),n)break}d&&(p.elements_num+=r.length),Te({concurrency:s.chunks||5,queue:r,runner:function(t,o){u(t[0],t[1],function(e){h.set(new Uint8Array(e.response),t[0]),o()},m)}},function(){c(e)}).start()},m)},Ae=null,Ie=null,Ee=null,ya=(_&&(Ie=function(e,t){si&&vi("clipboard_write execcommand",e);var o=document.createElement("textarea");o.style.height="1px",o.style.width="1px",o.style.resize="none",o.style.appearance="none",o.style.border="0",o.style.margin="0",o.style.padding="0",o.style.display="inline",o.style.cursor="default",document.body.appendChild(o),o.innerText=e.text,o.focus(),o.select(),setTimeout(function(){document.body.removeChild(o)},100),t(!!document.execCommand("copy"))},navigator.clipboard)&&(navigator.clipboard.write||navigator.clipboard.writeText)&&(Ee=function(e,t){si&&vi("clipboard_write clipboard_api",e);var o="text/plain"===e.mime&&navigator.clipboard.writeText;if(!o&&navigator.clipboard.write&&"function"==typeof ClipboardItem)var r={},r=(r[e.mime]=new N([e.text],{type:e.mime}),new ClipboardItem(r)),r=navigator.clipboard.write([r]);else{if(!o)return t(!1);r=navigator.clipboard.writeText(e.text)}r.then(function(){t(!0)},function(e){console.error(e),t(!1)})}),_e&&("function"==typeof GM_setClipboard?Ae=function(e,t){GM_setClipboard(e.text,e.mime),t(!0)}:"object"==typeof GM&&"function"==typeof GM.setClipboard&&(Ae=function(e,t){GM.setClipboard(e.text),t(!0)})),function(o,r){r=r||Li,(o="string"==typeof o?{text:o}:o).mime||(o.mime="text/plain");function i(){for(var e,t=0;t<a.length;t++){if(a[t]){e=a[t];break}a.shift(),t--}e(o,function(e){if(0<a.length&&!e)return a.shift(),i();r(e)})}var a=[Ae,Ee,Ie];i()}),Ue=null,De=(li?Ue=function(e,t){if(!1===Ti.browser_cookies)return t(null);ui({type:"getcookies",data:{url:e}},function(e){t(e.data)})}:_e&&(Ue=function(e,t,o){return!1===Ti.browser_cookies||(o=o||{}).need_full?t(null):(o=Ya(ci),o=Za(o),e=Ya(e),void t(o===Za(e)?je(document.cookie):null))}),function(e){var e=Ya(e),t=Ya(ci);return e.toLowerCase()===t.toLowerCase()}),Le=function(e,t){t=t||{};var o={},r=localStorage;return"session"===t.storage&&(r=sessionStorage),zi(e,function(e){o[e]=r.getItem(e)}),o},Pe=null,je=(li?Pe=function(e,t,o,r){ui({type:"get_localstorage",data:{url:e,keys:t,options:r}},function(e){if(!e)return o(null);o(e.data)})}:_e&&(Pe=function(e,t,o,r){if(!De(e))return o(null);o(Le(t,r))}),function(e){var o=[],e=e.split(/;\s*/);return zi(e,function(e){var t=e.match(/^\s*([^=\s]+)\s*=\s*(?:"([^"]+)"|([^"]\S*))\s*$/);t?o.push({name:t[1],value:t[2]||t[3]}):yi("Unable to parse cookie",e)}),o}),Me=function(e){for(var t=[],o=0;o<e.length;o++){var r=e[o].name+"="+e[o].value;t.push(r)}return t.join("; ")},wa=function(e){return!0},ka=function(e){return!0},He=function(e){return!0},$e=((_||o)&&(ke=function(e,t,o){for(var r=!0,i=0;i<t.length;i++)if(t[i].test(e)){r=!1;break}return"whitelist"===o?!r:r},wa=function(e){return ke(e,wo,Ti.bigimage_blacklist_mode)},ka=function(e){var t=ko;return Ti.apply_blacklist_host&&(t=wo),ke(e,t,Ti.host_blacklist_mode)},He=function(e){return console.log(xo),ke(e,xo,Ti.host_html_blacklist_mode)}),{fill_object:!0,null_if_no_change:!1,catch_errors:!0,use_cache:!0,use_api_cache:!0,urlcache_time:3600,iterations:200,exclude_problems:["watermark","smaller","possibly_different","possibly_broken"],exclude_videos:!1,include_pastobjs:!0,force_page:!1,allow_thirdparty:!1,allow_thirdparty_libs:!0,allow_thirdparty_code:!1,process_format:{},filter:wa,rule_specific:{deviantart_prefer_size:!1,deviantart_support_download:!0,ehentai_full_image:!0,imgur_source:!0,imgur_nsfw_headers:null,instagram_use_app_api:!1,instagram_dont_use_web:!1,instagram_prefer_video_quality:!0,instagram_gallery_postlink:!1,snapchat_orig_media:!0,teddit_redirect_reddit:!0,tiktok_no_watermarks:!1,tiktok_thirdparty:null,tumblr_api_key:null,twitter_use_ext:!1,linked_image:!1},do_request:Si,get_cookies:Ue,host_url:null,document:null,window:null,element:null,cb:null}),Fe={url:null,always_ok:!1,likely_broken:!1,can_head:!0,can_multiple_request:!0,head_ok_errors:[],head_wrong_contenttype:!1,head_wrong_contentlength:!1,need_blob:!1,need_data_url:!1,waiting:!1,redirects:!1,forces_download:!1,is_private:!1,is_pagelink:!1,is_original:!1,norecurse:!1,forcerecurse:!1,can_cache:!0,bad:!1,bad_if:[],fake:!1,media_info:{type:"image",delivery:null,is_live:!1},video:!1,album_info:null,headers:{},cookie_url:null,need_credentials:!0,content_type:null,max_chunks:0,referer_ok:{same_domain:!1,same_domain_nosub:!1},extra:{page:null,caption:null,created_date:null,updated_date:null,author_username:null,id:null},filename:"",problems:{watermark:!1,smaller:!1,possibly_different:!1,possibly_broken:!1,possibly_upscaled:!1,bruteforce:!1}};function xa(e){if(e&&"object"==typeof e&&!mi(e)){if("namespaceURI"in e&&"nodeType"in e&&"nodeName"in e&&"childNodes"in e)return 1;if("function"==typeof e.HTMLElement&&"object"==typeof e.navigator)return 1;if(_)for(var t=0,o=[Node,Element,HTMLDocument,Window];t<o.length;t++){var r=o[t];try{if(e instanceof r)return 1}catch(e){bi(e)}}}}function Oe(e){return"object"==typeof e&&null!==e&&!mi(e)&&!xa(e)}var Ge=function(e){var t,o={};for(t in e)o[t]=e[t];return o},We=("assign"in Object&&(Ge=function(e){return Object.assign({},e)}),function(e){for(var t=[],o=0;o<e.length;o++)t.push(e[o]);return t});function Ca(e){if(Oe(e)){if(mi(e))return We(e);if("object"==typeof e)return Ge(e)}return e}function qi(t,o){if((o=o||{}).history||(o.history=[]),"string"==typeof t||null==t)return t;if(xa(t)||t instanceof RegExp){if(!o.json)return t}else if("function"==typeof t){if(!o.json)return t}else{if("object"!=typeof t)return t;if(!(0<=hi(o.history,t))){if(o.history.push(t),mi(t))for(var r=[],e=0;e<t.length;e++){var i=t[e];r.push(qi(i,o))}else for(var a in r={},t)try{r[a]=qi(t[a],o)}catch(e){o.json?r[a]=void 0:r[a]=t[a]}return r}}}var za=function(e){return qi(e,{json:!0})},Ve=function(){for(var e=K(pi(Ti)),t=0;t<et.length;t++)delete e[et[t]];return e},Xe=function(){var e="";try{e=window.navigator.userAgent}catch(e){}var t="(!!!UNKNOWN, PLEASE FILL IN!!!)\n";try{t=x.script.version}catch(e){}var o="(unable to find)";try{o=pi(Ve())}catch(e){}e=["User agent: "+e,"Is userscript: "+_e,"Is addon: "+li,"Image Max URL version: "+t,"Settings: "+o];if(_e)try{e.push("Userscript manager: "+w),e.push("Userscript manager version: "+k)}catch(e){}return e.join("\n")};var Ra=function(e){return"true"===e||!0===e||1===e||"false"!==e&&!1!==e&&0!==e&&void 0};var ee=["en","es","fr","it","ko","pt-BR","ru","zh-CN"],Ye="en";try{Ye=("undefined"==typeof navigator?"en":navigator.languages?navigator.languages[0]:navigator.language||navigator.userLanguage).toLowerCase(),hi(ee,Ye)<0&&(Ye=Ye.replace(/-.*/,""),hi(ee,Ye)<0)&&(Ye="en")}catch(e){bi(e),hi(ee,Ye)<0&&(Ye="en")}var Ze={options_header:{en:"Options",es:"Opciones",it:"Opzioni",ko:"옵션","pt-BR":"opções",ru:"Параметры","zh-CN":"选项"},yes:{en:"Yes",es:"Sí",fr:"Oui",it:"Sì",ko:"예","pt-BR":"sim",ru:"Да","zh-CN":"是"},no:{en:"No",es:"No",fr:"Non",it:"No",ko:"아니오","pt-BR":"não",ru:"Нет","zh-CN":"否"},Import:{it:"Importa",ko:"가져오기","pt-BR":"Importar",ru:"Импорт","zh-CN":"导入"},Export:{it:"Esporta",ko:"내보내기","pt-BR":"Exportar",ru:"Экспорт","zh-CN":"导出"},"Requires:":{it:"Richiede",ko:"요구사항:","pt-BR":"Requer:",ru:"Требуется:","zh-CN":"需要:"},"Or:":{"pt-BR":"Ou:",ru:"Или:","zh-CN":"或者:"},Redirection:{es:"Redirección",ko:"리디렉션","pt-BR":"Redirecionamento",ru:"Перенаправление","zh-CN":"重定向"},subcategory_update:{en:"Updates","pt-BR":"atualização",ru:"Обновление","zh-CN":"更新"},subcategory_libraries:{en:"3rd-party libraries","pt-BR":"bibliotecas",ru:"Сторонние библиотеки","zh-CN":"第三方库"},subcategory_settings:{en:"Settings",es:"Ajustes","pt-BR":"configurações",ru:"Настройки","zh-CN":"设置"},subcategory_ui:{en:"UI",es:"Interfaz","pt-BR":"interface do usuário",ru:"Интерфейс","zh-CN":"界面"},subcategory_trigger:{en:"Trigger",es:"Acciones del popup",fr:"Déclencheur",ko:"트리거","pt-BR":"gatilho",ru:"Действия всплывающего окна","zh-CN":"触发器"},subcategory_popup_source:{en:"Source","pt-BR":"popup de origem",ru:"Источник всплывающего окна","zh-CN":"弹窗源头"},subcategory_open_behavior:{en:"Open Behavior",es:"Comportamiento al Abrir",ko:"열기 동작","pt-BR":"comportamento de abertura",ru:"Поведение при открытии","zh-CN":"打开方式"},subcategory_close_behavior:{en:"Close Behavior",es:"Comportamiento al Cerrar",ko:"닫기 동작","pt-BR":"comportamento de fechamento",ru:"Поведение при закрытии","zh-CN":"关闭方式"},subcategory_behavior:{en:"Popup Behavior",es:"Comportamiento del Popup","pt-BR":"comportamento",ru:"Поведение всплывающего окна","zh-CN":"行为"},subcategory_video:{en:"Video/Audio",ko:"영상/오디오","pt-BR":"vídeo",ru:"Видео/Аудио","zh-CN":"视频/音频"},subcategory_gallery:{en:"Gallery",es:"Galeria","pt-BR":"galeria",ru:"Галерея","zh-CN":"图库"},subcategory_popup_other:{en:"Other",es:"Otro",fr:"Autre","pt-BR":"outros popups",ru:"Прочее","zh-CN":"其他"},subcategory_cache:{en:"Cache","pt-BR":"cache",ru:"Кэш","zh-CN":"缓存"},Shortcuts:{"pt-BR":"Atalhos",ru:"Горячие клавиши","zh-CN":"快捷键"},subcategory_keybinds_popup_actions:{en:"Popup actions","pt-BR":"ações do pop-up de atalhos",ru:"Действия всплывающего окна","zh-CN":"操作弹窗"},"Mouse cursor":{it:"Sposta cursore",ko:"마우스 커서","pt-BR":"Cursor do mouse",ru:"Курсор мыши","zh-CN":"鼠标光标"},Rules:{fr:"Règles",ko:"규칙","pt-BR":"Regras",ru:"Правила","zh-CN":"规则"},subcategory_rule_specific:{en:"Rule-specific","pt-BR":"específico da regra",ru:"Специфика правил","zh-CN":"专用规则"},Website:{fr:"Site",ko:"웹사이트","pt-BR":"Site",ru:"Сайт","zh-CN":"网站"},"Saved! Refresh the target page for changes to take effect":{fr:"Enregistré! Actualiser la page que vous visitez pour que les changements prennent effet",ko:"저장됩니다. 번경사항 적용하려면 대상 웹페이지 다시 로드하십시오","pt-BR":"Salvo! Atualize a página de destino para que as alterações tenham efeito",ru:"Сохранено! Обновите целевую страницу, чтобы применить изменения.","zh-CN":"已保存,刷新目标页面使更改生效"},"Saved!":{fr:"Enregistré!",ko:"저장됩니다","pt-BR":"Salvo!",ru:"Сохранено!","zh-CN":"已保存"},save:{en:"Save",fr:"Enregistrer",ko:"저장","pt-BR":"salvar",ru:"Сохранить","zh-CN":"保存"},Record:{"pt-BR":"Gravar",ru:"Переназначить","zh-CN":"录制"},Cancel:{fr:"Annuler",ko:"취소","pt-BR":"Cancelar",ru:"Отмена","zh-CN":"取消"},"Mouseover popup (%%1) is needed to display the original version":{fr:"Popup (%%1) est nécessaire pour trouver la version originale",it:"Il popup del mouse (%%1) serve a mostrare la versione originale",ko:"원본 이미지 보려면 팝업 (%%1) 필요합니다","pt-BR":"O popup ao passar o mouse (%%1) é necessário para exibir a versão original",ru:"Всплывающее окно при наведении мыши (%%1) необходимо для отображения оригинальной версии","zh-CN":"需要鼠标悬停弹窗(%%1)来显示原始版本"},"custom headers":{fr:"en-têtes spéciales",ko:"특정 헤더","pt-BR":"cabeçalhos personalizados",ru:"Пользовательские заголовки","zh-CN":"自定义标题"},"forces download":{en:"forces download","pt-BR":"forçar download",ru:"Скачать принудительно","zh-CN":"强制下载"},Close:{fr:"Fermer",it:"Chiudi",ko:"닫기","pt-BR":"Fechar",ru:"Закрыть","zh-CN":"关闭"},Previous:{fr:"Image précédente",it:"Precedente",ko:"이전","pt-BR":"Anterior",ru:"Предыдущее","zh-CN":"上一个"},Next:{fr:"Image suivante",it:"Prossimo",ko:"다음","pt-BR":"Próximo",ru:"Следуещее","zh-CN":"下一个"},"Left Arrow":{fr:"Flèche gauche",it:"Freccia sinistra",ko:"왼쪽 화살표","pt-BR":"Seta para Esquerda",ru:"Стрелка влево","zh-CN":"左箭头"},"Right Arrow":{fr:"Flèche droite",it:"Freccia destra",ko:"오른쪽 화살표","pt-BR":"Seta para Direita",ru:"Стрелка вправо","zh-CN":"右箭头"},subcategory_extension:{en:"Extension","pt-BR":"extensão",ru:"Расширение","zh-CN":"扩展"},"Rotate Left":{"pt-BR":"Girar para Esquerda",ru:"Повернуть влево","zh-CN":"向左旋转"},"Rotate Right":{"pt-BR":"Girar para Direita",ru:"Повернуть вправо","zh-CN":"向右旋转"},Buttons:{"pt-BR":"Botões",ru:"Дополнительно","zh-CN":"其他"},subcategory_replaceimages:{en:"Replace Images","pt-BR":"substituir imagens",ru:"Замена изображений","zh-CN":"替换图像"},subcategory_highlightimages:{en:"Highlight Images","pt-BR":"realçar imagens",ru:"Выделение изображений","zh-CN":"高亮图像"},subcategory_customgallery:{en:"Custom Gallery","pt-BR":"galeria personalizada"},General:{es:"General",ko:"일반","pt-BR":"Geral",ru:"Общие","zh-CN":"通用"},"Enable extension":{it:"Abilita estensione","pt-BR":"Ativar extensão",ru:"Включить расширение","zh-CN":"启用扩展"},"Globally enables or disables the extension":{it:"Abilita o disabilita globalmente l'estensione","pt-BR":"Ativa ou desativa a extensão globalmente",ru:"Переключает расширение глобально","zh-CN":"全局启用或禁用扩展"},Language:{es:"Lenguaje",it:"Lingua",ko:"언어","pt-BR":"Idioma",ru:"Язык","zh-CN":"语言"},"Language for this extension":{it:"Lingua per questa estensione","pt-BR":"Idioma para esta extensão",ru:"Язык этого расширения","zh-CN":"此扩展程序的语言"},English:{"pt-BR":"Inglês",ru:"Английский","zh-CN":"英语"},"Español":{"pt-BR":"Espanhol",ru:"Испанский","zh-CN":"西班牙语"},"Français":{"pt-BR":"Francês",ru:"Французкий","zh-CN":"法语"},Italiano:{"pt-BR":"Italiano",ru:"Итальянский","zh-CN":"意大利语"},"한국어":{"pt-BR":"Coreano",ru:"Корейский","zh-CN":"韩语"},"Русский":{"pt-BR":"Russo",ru:"Русский","zh-CN":"俄语"},"简体中文":{"pt-BR":"Chinês simplificado"},"Dark mode":{it:"Modalità scura",ko:"다크 모드","pt-BR":"Modo escuro",ru:"Тёмный режим","zh-CN":"深色模式"},"Changes the colors to have light text on a dark background":{it:"Cambia i colori per avere testo chiaro su sfondo scuro",ko:"어두운 배경, 밝은 텍스트가 표시되도록 변경합니다.","pt-BR":"Altera as cores para ter texto claro em um fundo escuro",ru:"Изменяет цвета, делая текст на тёмном фоне, светлым.","zh-CN":"将颜色更改为在深色背景上显示浅色文本"},"Description below options":{it:"Descrizione sotto le opzioni",ko:"옵션 아래에 설명 표시","pt-BR":"Descrição abaixo das opções",ru:"Описание под параметрами","zh-CN":"选项下方显示描述"},"Shows the description below the options (otherwise the description is only shown when you hover over the option's name)":{it:"Mostra la descrizione sotto le opzioni (alternativamente, la descrizione viene mostrata solo quando il mouse si trova sopra il nome dell'opzione)",ko:"옵션 아래에 설명 표시 (비활성화 시, 옵션 이름 위에 마우스를 올려 놓을 때만 설명이 표시됨)","pt-BR":"Mostra a descrição abaixo das opções (caso contrário, a descrição só é exibida ao passar o mouse sobre o nome da opção)",ru:"Показывает описание под параметрами (в противном случае описание отображается только при наведении курсора мыши на имя параметра)","zh-CN":"选项下方显示描述(禁用则仅当鼠标悬停在选项的名称上时显示说明)"},"Show disabled options":{it:"Mostra opzioni inattive",ko:"비활성화된 설정 표시","pt-BR":"Exibir opções desativadas",ru:"Показывать отключенные параметры","zh-CN":"显示停用的选项"},"If disabled, options that are disabled due to their requirements being unmet will not be displayed":{it:"Se inattivo, le opzioni che sono inattive a causa dei loro requisiti necessari non raggiunti non verranno mostrate","pt-BR":"Se desativado, as opções desativadas devido a seus requisitos não serem atendidos não serão exibidas",ru:"Если отключено, то параметры которые отключены из-за невыполнения требований будут скрыты","zh-CN":"禁用后将不显示因未满足要求而被停用的选项"},"Show disabled trigger profiles":{"pt-BR":"Exibir perfis de gatilho desativados",ru:"Показывать отключенные целевые профили","zh-CN":"显示停用的触发器配置"},"If disabled, options for alternate trigger profiles (options with `(#2)` after them) will not be shown if the relevant trigger isn't active":{"pt-BR":"Se desativado, as opções para perfis de gatilho alternativos (opções com `(#2)` após elas) não serão exibidas se o gatilho relevante não estiver ativo",ru:"Если отключено, то параметры альтернативных целевых профилей (параметры с `(#2)` после них) будут скрыты, если соответствующая цель не активна","zh-CN":"如果禁用,将不显示相关触发器未被激活的备用触发器的配置选项(带有 `(#2)` )"},"Requirements below disabled options":{ko:"비활성화된 옵션 아래의 요구 사항","pt-BR":"Requisitos abaixo das opções desativadas",ru:"Требования под отключенными параметрами","zh-CN":"停用选项下方显示需求"},"If an option is disabled, the requirements to enable the option will be displayed below it":{ko:"옵션이 비활성화되면 옵션을 활성화하기 위한 요구 사항이 아래에 표시됨","pt-BR":"Se uma opção estiver desativada, os requisitos para ativá-la serão exibidos abaixo dela",ru:"Если отключено, то под недоступными параметрами будут отображаться требования для их включения","zh-CN":"在已停用选项的下方显示启用要求"},"Check for updates":{ko:"업데이트 확인","pt-BR":"Verificar atualizações",ru:"Проверять наличие обновлений","zh-CN":"检查更新"},"Periodically checks for updates. If a new update is available, it will be shown at the top of the options page":{"pt-BR":"Verifica periodicamente se há atualizações. Se uma nova atualização estiver disponível, ela será exibida na parte superior da página de opções",ru:"Периодически проверяет наличие обновлений. Новое обновление будет показано в верхней части страницы параметров.","zh-CN":"定期检查更新。有可用的更新时将在选项页面的顶部显示"},"Update check interval":{ko:"업데이트 확인 간격","pt-BR":"Intervalo de verificação de atualizações",ru:"Интервал проверки обновления","zh-CN":"更新检查间隔"},"How often to check for updates":{ko:"업데이트 확인 빈도","pt-BR":"Com que frequência verificar se há atualizações",ru:"Как часто будет происходить проверка наличия обновлений","zh-CN":"多久检查一次更新"},hours:{ko:"시간","pt-BR":"horas",ru:"ч.","zh-CN":"小时"},"Notify when update is available":{ko:"업데이트가 있을 때 알림","pt-BR":"Notificar quando houver atualização",ru:"Уведомлять о появлении обновления","zh-CN":"有可用更新时通知"},"Creates a browser notification when an update is available":{ko:"업데이트가 있을 때 브라우저 알림을 받습니다.","pt-BR":"Cria uma notificação do navegador quando uma atualização está disponível",ru:"Создаёт уведомление в браузере, когда обновление доступно.","zh-CN":"有可用更新时弹出浏览器通知"},"Show advanced settings":{ko:"고급 설정 표시","pt-BR":"Exibir configurações avançadas",ru:"Показывать расширенные настройки","zh-CN":"显示高级设置"},"If disabled, settings that might be harder to understand will be hidden":{ko:"비활성화 시, 이해하기 어려울 수 있는 설정이 숨겨짐","pt-BR":"Se desativado, as configurações que podem ser mais difíceis de entender serão ocultadas",ru:"Если отключено, то более сложные настройки, будут скрыты","zh-CN":"禁用后将隐藏比较难以理解的设置"},"Use tabs":{ko:"탭 사용","pt-BR":"Usar abas",ru:"Использовать вкладки","zh-CN":"标签式设置"},"If disabled, all settings will be shown on a single page":{ko:"비활성화 시, 모든 설정이 한 페이지에 표시됩니다.","pt-BR":"Se desativado, todas as configurações serão mostradas em uma única página",ru:"Если отключено, то все настройки будут отображаться на одной странице","zh-CN":"如果禁用,将在同一页上显示全部设置"},"Alphabetical order":{"pt-BR":"Ordem alfabética",ru:"В алфавитном порядке","zh-CN":"按字母顺序"},"Lists options in alphabetical order":{"pt-BR":"Lista as opções em ordem alfabética",ru:"Список параметров будет отсортирован в алфавитном порядке","zh-CN":"以字母顺序排列选项"},"Allow using browser XHR":{"pt-BR":"Permitir o uso do XHR do navegador",ru:"Разрешить браузеру использовать XHR","zh-CN":"允许使用浏览器 XHR"},"This allows XHR requests to be run in the browser's context if they fail in the extension (e.g. when Tracking Protection is set to High)":{"pt-BR":"Isso permite que as solicitações XHR sejam executadas no contexto do navegador se falharem na extensão (por exemplo, quando a Proteção contra Rastreamento está definida como Alta)",ru:"Это позволяет запускать запросы XHR в контексте браузера, если они не работают в расширении (например, когда защита отслеживания установлена на Высокий уровень)","zh-CN":"允许扩展中运行 XHR 请求失败时在浏览器上下文中运行 XHR。原因例如“跟踪保护”被设定为高。"},"Retry requests with 503 errors":{"pt-BR":"Repetir solicitações com erros 503",ru:"Повторять запрос с ошибкой 503","zh-CN":"重试返回 503 错误的请求"},"Amount of times to retry a request when 503 (service unavailable) is returned by the server":{"pt-BR":"Número de vezes para repetir uma solicitação quando 503 (serviço indisponível) é retornado pelo servidor",ru:"Количество повторных попыток запроса, когда сервер возвращает 503 (служба недоступна)","zh-CN":"服务器返回 503 错误(服务不可用)时,重试请求次数"},times:{"pt-BR":"vezes",ru:"раз(а)","zh-CN":"次"},"Delay between 503 retries":{"pt-BR":"Atraso entre novas tentativas 503",ru:"Задержка между повторами 503","zh-CN":"503 重试之间延迟"},"Time (in milliseconds) to delay between retrying requests that received 503":{"pt-BR":"Tempo (em milissegundos) de atraso entre novas tentativas de solicitações que receberam 503",ru:"Время (в миллисекундах) для задержки между повторной попыткой запросов при получении 503","zh-CN":"收到 503 错误后重试请求之间延迟多久(毫秒)"},"Use `Blob` over `ArrayBuffer`":{"pt-BR":"Usar `Blob` em vez de `ArrayBuffer`",ru:"Использовать `Blob` поверх `ArrayBuffer`","zh-CN":"使用 Blob 代替 ArrayBuffer"},"Uses `Blob`s for XHRs instead of `ArrayBuffer`s. Keep this enabled unless your userscript manager doesn't support blob requests":{"pt-BR":"Usa `Blob`s para XHRs em vez de `ArrayBuffer`s. Mantenha isso ativado, a menos que seu gerenciador de userscript não suporte solicitações blob",ru:"Использует `Blob`ы для XHR, вместо `ArrayBuffer`ов. Не отключайте, если ваш менеджер пользовательских скриптов не поддерживает запросы blob.","zh-CN":"XHR 中使用 Blob 代替 ArrayBuffer。除非您的用户脚本管理器不支持 Blob 请求,否则保持启用"},"Live settings reloading":{"pt-BR":"Recarregamento de configurações ao vivo",ru:"Перезагрузка настроек в реальном времени","zh-CN":"设置实时生效"},"Enables/disables live settings reloading. There shouldn't be a reason to disable this unless you're experiencing issues with this feature":{"pt-BR":"Ativa/desativa o recarregamento de configurações ao vivo. Não deve haver motivo para desativar isso, a menos que você esteja tendo problemas com esse recurso",ru:"Переключает перезагрузку параметров в реальном времени. Не должно быть причин для отключения этой функции. Отключить только если у вас есть с ней проблемы.","zh-CN":"启用/禁用设置实时重新加载。除非遇到此功能相关的问题,否则应保持此功能启用"},"Disable keybindings when editing text":{"pt-BR":"Desativar atalhos de teclado ao editar texto",ru:"Отключить горячие клавиши при редактировании текста","zh-CN":"编辑文本框时禁用快捷键"},"Disables shortcuts when key events are sent to an input area on the page":{"pt-BR":"Desativa os atalhos quando eventos de teclas são enviados para uma área de entrada na página",ru:"Отключает горячие клавиши при отправке событий клавиш в область ввода на странице","zh-CN":"将键盘事件发送到页面上的输入区域时,停用已设置的快捷键"},"Use `GM_download` if available":{"pt-BR":"Usar `GM_download` se disponível",ru:"Использовать `GM_download`, если доступно","zh-CN":"可用时使用 GM_download"},"Prefers using `GM_download` over simple browser-based downloads, if the function is available. Some userscript managers download the entire file before displaying a save dialog, which can be undesirable for large video files":{"pt-BR":"Prefere usar `GM_download` em vez de downloads simples baseados em navegador, se a função estiver disponível. Alguns gerenciadores de userscript baixam o arquivo inteiro antes de exibir uma caixa de diálogo de salvamento, o que pode ser indesejável para arquivos de vídeo grandes",ru:"Предпочтительно использует `GM_download` вместо простых скачиваний в браузере, если эта функция доступна. Некоторые менеджеры пользовательских скриптов скачивает весь файл перед отображением диалога сохранения, что может быть нежелательно для больших видеофайлов.","zh-CN":"优先使用 GM_download 代替浏览器的下载功能。部分用户脚本管理器会在显示“保存”对话框前下载整个文件,这不利于下载大体量的视频文件"},"Maximum size to `GM_download`":{"pt-BR":"Tamanho máximo para `GM_download`",ru:"Максимальный размер для `GM_download`","zh-CN":"GM_download 大小上限"},"If a file is larger than this size, use a simple browser-based download instead. Set to `0` for unlimited.":{"pt-BR":"Se um arquivo for maior que este tamanho, use um download simples baseado em navegador. Defina como `0` para ilimitado.",ru:"Если файл больше этого размера, используется простое скачивание через браузер. `0` - неограниченно.","zh-CN":"文件大于此大小时改用基于浏览器的下载功能。设为 0 表示无限制。"},MB:{"pt-BR":"MB",ru:"МБ","zh-CN":"MB"},"Force save dialog when downloading":{"pt-BR":"Forçar caixa de diálogo de salvamento ao baixar",ru:"Принудительное диалоговое окно сохранения при скачивании","zh-CN":"下载时强制打开“保存”对话框"},"Tries to ensure the 'save as' dialog displays when downloading. This requires the 'downloads' permission to work, and will sometimes not work when custom headers are required.":{"pt-BR":"Tenta garantir que a caixa de diálogo 'salvar como' seja exibida ao baixar. Isso requer a permissão de 'downloads' para funcionar e, às vezes, não funcionará quando cabeçalhos personalizados forem necessários.",ru:"Посторается обеспечить отображение диалогового окна 'Сохранить как' при скачивании. Для этого требуется разрешение на 'скачивание', и иногда не будет работать, когда требуются пользовательские заголовки.","zh-CN":"尝试确保下载时打开“另存为”对话框。此功能需要“下载”权限,并且搭配“自定义头”时可能无效。"},"Enable logging to console":{"pt-BR":"Ativar registro no console",ru:"Запись журнала в консоли","zh-CN":"启用控制台日志"},"Allows the script to log messages to the browser console.":{"pt-BR":"Permite que o script registre mensagens no console do navegador.",ru:"Позволяет скрипту записывать сообщения в консоль браузера.","zh-CN":"允许记录日志消息到浏览器的控制台。"},"Enable writing to clipboard":{"pt-BR":"Ativar escrita na área de transferência",ru:"Запись в буфер обмена","zh-CN":"启用写入剪贴板"},"This option does nothing on its own, but enabling it allows other functionality that require writing to the clipboard to work":{"pt-BR":"Esta opção não faz nada por si só, mas ativá-la permite que outras funcionalidades que exigem escrita na área de transferência funcionem",ru:"Параметр сам по себе ничего не делает, но его включение позволяет работать другим функциям, требующим записи в буфер обмена.","zh-CN":"此选项本身无功能,但启用它才能使其他需要写入剪贴板的功能运作"},"Enable redirection":{es:"Habilitar redirección",fr:"Activer la redirection",ko:"리디렉션 사용","pt-BR":"Ativar redirecionamento",ru:"Перенаправление","zh-CN":"启用重定向"},"Automatically redirect media opened in their own tab to their larger/original versions":{"pt-BR":"Redirecionar automaticamente mídias abertas em sua própria aba para suas versões maiores/originais",ru:"Автоматически перенаправляет открытое медиа на новую вкладку к их более крупной/оригинальной версии","zh-CN":"在打开的媒体文件标签页中自动重定向到其更清晰的版本"},"Allow video":{"pt-BR":"Permitir vídeo",ru:"Разрешить видео","zh-CN":"允许视频"},"Allows redirecting from/to video":{"pt-BR":"Permite redirecionar de/para vídeo",ru:"Позволяет перенаправлять с/на видео","zh-CN":"允许视频被重定向"},"Allow audio":{"pt-BR":"Permitir áudio",ru:"Разрешить аудио","zh-CN":"允许音频"},"Allows redirecting from/to audio":{"pt-BR":"Permite redirecionar de/para áudio",ru:"Позволяет перенаправлять с/на аудио","zh-CN":"允许音频被重定向"},"Add to history":{es:"Agregar al historial",fr:"Ajouter à l'historique",ko:"브라우저 기록에 추가","pt-BR":"Adicionar ao histórico",ru:"Добавлять в историю","zh-CN":"添加到历史记录"},"Redirection will add a new entry to the browser's history":{ko:"리디렉션 시, 브라우저의 기록에 새 항목이 추가됨","pt-BR":"O redirecionamento adicionará uma nova entrada ao histórico do navegador",ru:"Перенаправление будет добавлять новую запись в историю браузера","zh-CN":"重定向发生时在浏览器的历史记录中加入一条记录"},"Do redirection in extension":{"pt-BR":"Fazer redirecionamento na extensão",ru:"Выполнять перенаправление в расширении","zh-CN":"在扩展中执行重定向"},"Performs the redirection in the extension instead of the content script. This is significantly faster and shouldn't cause issues in theory, but this option is kept in case of regressions":{"pt-BR":"Realiza o redirecionamento na extensão em vez de no script de conteúdo. Isso é significativamente mais rápido e não deve causar problemas em teoria, mas esta opção é mantida em caso de regressões",ru:"Выполняет перенаправление в расширении вместо скрипта. Теоритически это значительно быстрее и не должно вызывать проблем, но этот параметр сохраняется в случае регрессий.","zh-CN":"在扩展内而非内容脚本中执行重定向。这样快得多并且理论上不应该引起问题,但该选项被保留以防特殊问题"},"Use GET if HEAD is unsupported":{es:"Utilizar GET si HEAD no es soportado",fr:"Utiliser GET si HEAD n'est pas supporté",ko:"HEAD 지원되지 않으면 GET 사용","pt-BR":"Usar GET se HEAD não for suportado",ru:"Использовать GET, если HEAD не поддерживается","zh-CN":"不支持 HEAD 时改用 GET"},"Use a GET request to check an image's availability, if the server does not support HEAD requests":{"pt-BR":"Usar uma solicitação GET para verificar a disponibilidade de uma imagem, se o servidor não suportar solicitações HEAD",ru:"Будет использоваться GET-запрос для проверки доступности изображения, если сервер не поддерживает запросы HEAD.","zh-CN":"服务器不支持 HEAD 请求时改用一条 GET 请求来检查一个图像的可用性"},"Try finding extra information":{"pt-BR":"Tentar encontrar informações extras",ru:"Пытаться найти расширенную информацию","zh-CN":"尝试查找额外信息"},"Enables methods that use API calls for finding extra information, such as the original page, caption, or album information. Note that this option does not affect finding the original media.":{"pt-BR":"Ativa métodos que usam chamadas de API para encontrar informações extras, como a página original, legenda ou informações do álbum. Observe que esta opção não afeta a localização da mídia original.",ru:"Включает методы, использующие вызовы API для поиска расширенной информации, такой как оригинальная страница, подпись или сведения об альбоме. Обратите внимание, что этот параметр не влияет на поиск оригинального медиа.","zh-CN":"启用通过 API 调用查找额外信息的方法,查找如原始页面、标题或相册信息。此选项不影响查找原始版本的媒体文件。"},SmugMug:{"pt-BR":"SmugMug",ru:"SmugMug","zh-CN":"SmugMug"},"Enable tooltip":{"pt-BR":"Ativar dica de ferramenta",ru:"Всплывающая подсказка","zh-CN":"启用工具提示"},"Enables the 'Mouseover popup is needed to display the original version' tooltip":{"pt-BR":"Ativa a dica de ferramenta 'É necessário passar o mouse sobre o popup para exibir a versão original'",ru:"Включает подсказку «Для отображения исходной версии требуется всплывающее окно при наведении мыши».","zh-CN":"启用“需要鼠标悬停弹窗来显示原始版本”的工具提示"},"Show image URL in tooltip":{ko:"툴팁에 이미지 URL 표시","pt-BR":"Mostrar URL da imagem na dica de ferramenta",ru:"Показывать URL изображения во всплывающей подсказке","zh-CN":"在工具提示中显示图像 URL"},"If the popup is needed to display the larger version of an image, display the image link in the tooltip":{ko:"더 큰 버전의 이미지를 표시하기 위해 팝업이 필요한 경우 이미지 링크를 툴팁에 표시함","pt-BR":"Se o popup for necessário para exibir a versão maior de uma imagem, exiba o link da imagem na dica de ferramenta",ru:"Если всплывающее окно необходимо для отображения увеличенной версии изображения, отобразите url на изображение во всплывающей подсказке.","zh-CN":"如果需要弹窗来显示图像的较大版本,在工具提示中显示图像链接"},"Hide tooltip after":{ko:"툴팁 숨기기","pt-BR":"Ocultar dica de ferramenta após",ru:"Скрывать всплывающую подсказку через","zh-CN":"隐藏工具提示的时间"},"Hides the tooltip after the specified number of seconds (or when the mouse clicks on it). Set to 0 to never hide automatically":{ko:"지정된 시간(초) 후에(또는 마우스가 툴팁을 클릭할 때) 툴팁을 숨긴다. 자동으로 숨기지 않으려면 0으로 설정","pt-BR":"Oculta a dica de ferramenta após o número especificado de segundos (ou quando o mouse clica nela). Defina como 0 para nunca ocultar automaticamente",ru:"Скрывает всплывающую подсказку после указанного количества секунд (или когда мышь щёлкает по ней). 0 - не скрывать автоматически.","zh-CN":"在指定秒数后隐藏工具提示。鼠标单击后也会隐藏。设为 0 则禁用自动隐藏"},"Log info object to console":{"pt-BR":"Registrar objeto de informações no console",ru:"Выводить информацию об объекте в консоль","zh-CN":"记录信息对象到控制台"},"Prints the full info object to the console whenever a popup/redirect is found":{"pt-BR":"Imprime o objeto de informações completo no console sempre que um popup/redirecionamento for encontrado",ru:"Выводит полную информацию объекта в консоль всякий раз, когда обнаруживается всплывающее окно/перенаправление","zh-CN":"每当发现弹出/重定向时,记录完整的信息对象到控制台"},"Disable when response headers need modifying":{"pt-BR":"Desativar quando os cabeçalhos de resposta precisarem ser modificados",ru:"Отключать, когда заголовки ответов нуждаются в изменении","zh-CN":"需要修改响应头时禁用"},"This option works around Chrome's migration to manifest v3, redirecting some images to being force-downloaded":{"pt-BR":"Esta opção contorna a migração do Chrome para o manifesto v3, redirecionando algumas imagens para serem baixadas à força",ru:"Этот параметр работает вокруг миграции Chrome в manifest v3, перенаправляя некоторые изображения к принудительному скачиванию","zh-CN":"此选项是为配合 Chrome 的迁移到 manifest v3,重定向一些图像来强制下载"},"Redirect to largest without issues":{ko:"문제없이 최대로 리디렉션","pt-BR":"Redirecionar para a maior sem problemas",ru:"Без проблем перенаправлять на самое большое","zh-CN":"无需求也重定向到最大版本"},"Redirects to the largest image found that doesn't require custom headers or forces download":{ko:"사용자 지정 헤더나 강제 다운로드가 필요 없는 가장 큰 이미지로 리디렉션","pt-BR":"Redireciona para a maior imagem encontrada que não requer cabeçalhos personalizados ou força o download",ru:"Перенаправляет на самое большое найденное изображение, которое не требует пользовательских заголовков или принудительного скачивания.","zh-CN":"重定向到找到的最大图像版本,哪怕不需要自定义头或强制下载"},"Redirect for HTML pages too":{"pt-BR":"Redirecionar páginas HTML também",ru:"Перенаправлять для HTML-страниц тоже","zh-CN":"同时重定向 HTML 页面"},"Tries redirection even if the host page is HTML. This option might be useful for dead links. However, this will also result in many normal pages being redirected to images/video, so use with caution.":{"pt-BR":"Tenta redirecionar mesmo se a página de origem for HTML. Esta opção pode ser útil para links inativos. No entanto, isso também fará com que muitas páginas normais sejam redirecionadas para imagens/vídeo, portanto, use com cautela."},"This will result in many pages being redirected to images/videos.\nI'd recommend only either enabling this for the media you need it for then disabling it after, or using the black/whitelist feature below to only allow it to run for specified websites.":{"pt-BR":"Isso resultará no redirecionamento de várias páginas para imagens/vídeos.\nRecomendo habilitar esta opção apenas para a mídia que você precisa e desabilitá-la em seguida, ou usar o recurso de lista negra/branca abaixo para permitir que ela seja executada apenas em sites específicos."},"Enable mouseover popup":{en:"Enable image popup",es:"Activar popup de la imagen",fr:"Activer le popup",ko:"이미지 팝업 사용","pt-BR":"Ativar pop-up ao passar o mouse",ru:"Всплывающее окно при наведении мыши","zh-CN":"启用鼠标悬停弹窗"},"Show a popup with the larger image when you mouseover an image with the trigger key held (if applicable)":{ko:"트리거 키를 누른 상태로 영상을 마우스로 가리킬 때 더 큰 이미지로 팝업 표시 (가능한 경우)","pt-BR":"Exibir um pop-up com a imagem ampliada ao passar o mouse sobre uma imagem com a tecla de gatilho pressionada (se aplicável)",ru:"Показывать всплывающее окно с увеличенным изображением при наведении курсора мыши на изображение с удерживаемой целевой клавишей (если применимо).","zh-CN":"当鼠标悬停在一个图像上时,用触发键(如果适用)显示一个弹窗"},"Mouseover popup trigger":{en:"Popup trigger",es:"Acción del popup al mover el ratón encima",fr:"Déclencheur du popup",ko:"팝업 트리거","pt-BR":"Gatilho do pop-up ao passar o mouse",ru:"Действие всплывающего окна при наведении мыши","zh-CN":"鼠标悬停弹窗触发器"},"How the popup will get triggered":{ko:"팝업 작동 방법","pt-BR":"Como o pop-up será acionado",ru:"Как будет срабатывать всплывающее окно","zh-CN":"弹窗触发方式"},Mouseover:{es:"Mover ratón encima",ko:"마우스","pt-BR":"Ao passar o mouse",ru:"При наведение курсора мыши","zh-CN":"鼠标悬停"},"Triggers when your mouse is over the image":{"pt-BR":"Aciona quando o mouse está sobre a imagem",ru:"Срабатывает при наведении курсора на изображении","zh-CN":"鼠标在图像上悬停时触发"},"Key trigger":{es:"Tecla de acción",ko:"키 바인딩","pt-BR":"Tecla de gatilho",ru:"При нажатии клавиши","zh-CN":"按键触发"},"Triggers when you press a key sequence when your mouse is over an image":{"pt-BR":"Aciona ao pressionar uma sequência de teclas quando o mouse está sobre uma imagem",ru:"Срабатывает при нажатии комбинации клавиш, когда курсор находится на изображении.","zh-CN":"当鼠标在图像上悬停时按指定键触发"},"Disables the popup from being triggered (useful if you only want to use the context menu item)":{"pt-BR":"Desativa o acionamento do pop-up (útil se você deseja usar apenas o item do menu de contexto)",ru:"Отключает срабатывание всплывающего окна (полезно, если вы хотите использовать только пункт контекстного меню)","zh-CN":"禁止触发弹窗(如果您只想使用右键菜单项,则此选项很实用)"},"Popup trigger key":{es:"Tecla de acción del popup",ko:"팝업 키 바인딩","pt-BR":"Tecla de gatilho do pop-up",ru:"Комбинация клавиш запуска всплывающего окна","zh-CN":"弹窗触发键"},"Key sequence to trigger the popup":{ko:"팝업이 작동하는 키","pt-BR":"Sequência de teclas para acionar o pop-up",ru:"Комбинация клавиш при которой запускается всплывающее окно","zh-CN":"触发弹窗的按键序列"},"Popup trigger key (#2)":{"pt-BR":"Tecla de gatilho do pop-up (#2)",ru:"Комбинация клавиш запуска всплывающего окна (#2)","zh-CN":"弹窗触发键 (#2)"},"Key sequence to trigger the popup with alternate options. Search for `(#2)` to find the relevant options":{"pt-BR":"Sequência de teclas para acionar o pop-up com opções alternativas. Procure por `(#2)` para encontrar as opções relevantes",ru:"Комбинация клавиш при которой запускается всплывающее окно с альтернативными параметрами. Ищите `(#2)`, чтобы найти соответствующие параметры.","zh-CN":"触发弹窗的按键序列,搭配备用选项。搜索“(#2)”找到相关的选项"},"Popup trigger key (#3)":{"pt-BR":"Tecla de gatilho do pop-up (#3)",ru:"Комбинация клавиш запуска всплывающего окна (#3)","zh-CN":"弹窗触发键 (#3)"},"Key sequence to trigger the popup with alternate options. Search for `(#3)` to find the relevant options":{"pt-BR":"Sequência de teclas para acionar o pop-up com opções alternativas. Procure por `(#3)` para encontrar as opções relevantes",ru:"Комбинация клавиш при которой запускается всплывающее окно с альтернативными параметрами. Ищите `(#3)`, чтобы найти соответствующие параметры.","zh-CN":"触发弹窗的按键序列,搭配备用选项。搜索“(#3)”找到相关的选项"},"Popup trigger delay":{es:"Retraso de acción del popup",ko:"팝업 작업 지연 시간","pt-BR":"Atraso no acionamento do pop-up",ru:"Задержка срабатывания всплывающего окна","zh-CN":"弹窗触发键延迟"},"Delay (in seconds) before the popup shows":{ko:"팝업이 표시될 때까지 지연 (초)","pt-BR":"Atraso (em segundos) antes da exibição do pop-up",ru:"Задержка (в секундах) до появления всплывающего окна","zh-CN":"弹窗显示前延迟(秒)"},"Use mouseover event":{"pt-BR":"Usar evento mouseover",ru:"Использовать событие наведения курсора мыши","zh-CN":"使用 mouseover 事件"},"Uses the mouseover event instead of mousemove to figure out where to trigger the popup. This more closely matches the way other image popup addons work, at the cost of configurability":{"pt-BR":"Usa o evento 'mouseover' em vez de 'mousemove' para determinar onde acionar o pop-up. Isso se assemelha mais ao funcionamento de outros complementos de pop-up de imagem, em detrimento da configurabilidade",ru:"Использует событие 'наведения курсора мыши' вместо 'движения курсора мыши', чтобы выяснить, где вызвать всплывающее окно. Это более точно соответствует тому, как работают другие дополнения к всплывающим изображениям, за счёт конфигурируемости/","zh-CN":"使用 mouseover 事件而不是 mousemove 来确定在哪里触发弹窗。这更接近于其他图像弹窗扩展的运作方式,代价是可配置性"},"Enable/disable toggle":{"pt-BR":"Alternância de ativar/desativar",ru:"Включить/Выключить","zh-CN":"启用/禁用切换开关"},"Controls whether the 'Popup enable/disable key' will enable or disable the popup from opening":{"pt-BR":"Controla se a 'Tecla de ativar/desativar pop-up' irá ativar ou desativar a abertura do pop-up",ru:"Управляет тем, будет ли 'Клавиша включения/отключения всплывающего окна' включать или отключать открытие всплывающего окна.","zh-CN":"控制“弹窗启用/禁用键”是否控制弹窗的打开"},Enable:{"pt-BR":"Ativar",ru:"Включить","zh-CN":"启用"},Disable:{"pt-BR":"Desativar",ru:"Отключить","zh-CN":"禁用"},"Popup enable/disable key":{"pt-BR":"Tecla de ativar/desativar pop-up",ru:"Клавиша включения/отключения всплывающего окна","zh-CN":"弹窗启用/禁用键"},"Holding down this key will enable or disable the popup from being opened, depending on the 'Enable/disable toggle' setting":{"pt-BR":"Manter esta tecla pressionada ativará ou desativará a abertura do pop-up, dependendo da configuração 'Alternância de ativar/desativar'",ru:"Удерживание этой клавиши включит или отключит всплывающее окно, в зависимости от настройки 'Включить/Выключить'.","zh-CN":"按住这个键将启用/禁用弹窗打开,具体取决于“启用/禁用切换开关”设置"},"Allow showing partially loaded":{ko:"부분적으로 로드된 상태로 표시 허용","pt-BR":"Permitir exibição de carregamento parcial",ru:"Разрешить показывать частично загруженные","zh-CN":"允许显示部分加载的内容"},"This will allow the popup to open for partially loaded media.\nPartially loaded media will contain the source URL directly (where possible), whereas fully loaded media will use a blob or data URL.":{"pt-BR":"Isso permitirá que o popup seja aberto para mídia parcialmente carregada.\nMídia parcialmente carregada conterá a URL de origem diretamente (quando possível), enquanto mídia totalmente carregada usará um blob ou data URL.",ru:"Это позволит открыть всплывающее окно для частично загруженных медиа.\nЧастично загруженные медиа будут содержать исходный URL напрямую (где это возможно), тогда как полностью загруженные медиа будут использовать BLOB или URL-адрес данных.","zh-CN":"这将允许为部分加载的媒体打开弹窗。\n部分加载的媒体将直接包含源 URL(如果可能),而完全加载的媒体使用 blob 或数据 URL。"},"This will allow the popup to open for partially loaded media, but this might break images that require custom headers to display properly.\nPartially loaded media will contain the source URL directly (where possible), whereas fully loaded media will use a blob or data URL.":{"pt-BR":"Isso permitirá que o popup seja aberto para mídia parcialmente carregada, mas pode quebrar imagens que exigem cabeçalhos personalizados para serem exibidas corretamente.\nMídia parcialmente carregada conterá a URL de origem diretamente (quando possível), enquanto mídia totalmente carregada usará um blob ou data URL.",ru:"Это позволит открыть всплывающее окно для частично загруженных медиа, но это может поломать изображения, для правильного отображения которых требуются пользовательские заголовки.\nЧастично загруженные медиа будут содержать исходный URL-адрес напрямую (где это возможно), тогда как полностью загруженные медиа будут использовать BLOB или URL-адрес данных.","zh-CN":"这将允许为部分加载的媒体打开弹窗,但这可能导致需要自定义标头才能正确显示的图像出错。\n部分加载的媒体将直接包含源 URL(如果可能),而完全加载的媒体使用 blob 或数据 URL。"},Streams:{"pt-BR":"Transmissões",ru:"Потоки","zh-CN":"数据流"},"Audio and video":{"pt-BR":"Áudio e vídeo",ru:"Аудио и видео","zh-CN":"音频和视频"},Media:{es:"Medios",ko:"미디어","pt-BR":"Mídia",ru:"Медиа","zh-CN":"多媒体"},"Images, audio, and video":{"pt-BR":"Imagens, áudio e vídeo",ru:"Изображения, аудио и видео","zh-CN":"图像、音频和视频"},"Avoid HEAD request for partially loaded media":{"pt-BR":"Evitar requisição HEAD para mídia parcialmente carregada",ru:"Избегать запросы HEAD для частично загруженных медиа","zh-CN":"避免对已部分加载的媒体发出 HEAD 请求"},"Avoids a possibly unnecessary HEAD request before displaying partially loaded images, which further decreases the delay before opening the popup. This can cause issues if the server returns an error, but still returns an image":{"pt-BR":"Evita uma requisição HEAD possivelmente desnecessária antes de exibir imagens parcialmente carregadas, o que diminui ainda mais o atraso antes de abrir o pop-up. Isso pode causar problemas se o servidor retornar um erro, mas ainda assim retornar uma imagem",ru:"Избегает ненужного запроса HEAD перед отображением частично загруженных изображений, что еще больше уменьшает задержку перед открытием всплывающего окна. Это может вызвать проблемы, если сервер вернёт ошибку, но все равно вернет изображение.","zh-CN":"显示已部分加载的媒体时避免可能不必要的 HEAD 请求,这能进一步减少打开弹窗的延迟。但如果服务器返回一个错误的同时也返回了一个图像,这可能会导致问题"},"Use `blob:` over `data:` URLs":{"pt-BR":"Use `blob:` em vez de URLs `data:`",ru:"Использовать `blob:` поверх `data:` URL","zh-CN":"使用 blob: 代替 data: URL"},"Blob URLs are more efficient, but aren't supported by earlier browsers. Some websites also block `blob:` URLs":{"pt-BR":"URLs Blob são mais eficientes, mas não são suportadas por navegadores mais antigos. Alguns sites também bloqueiam URLs `blob:`",ru:"Blob URL более эффективны, но не поддерживаются старыми браузерами. Некоторые сайты также блокируют `blob:` URL.","zh-CN":"Blob URL 效率更佳,但早期版本的浏览器不支持。一些网站也屏蔽了 Blob: URL"},"Load media anonymously":{"pt-BR":"Carregar mídia anonimamente",ru:"Загружать медиа анонимно","zh-CN":"匿名加载媒体"},"Loads the media without sending any cookies or other forms of credentials. This is required to screenshot videos from other sources":{"pt-BR":"Carrega a mídia sem enviar cookies ou outras formas de credenciais. Isso é necessário para capturar vídeos de outras fontes",ru:"Загружает медиа без отправки куки-файлов или других форм учётных данных. Это необходимо для скриншотов видео из других источников.","zh-CN":"加载媒体而不发送任何 Cookie 或其他形式的凭据。这需要有其他来源的视频截图"},"Use `not-allowed` cursor when unsupported":{ko:"지원되지 않을 때 허용되지 않는 커서를 사용","pt-BR":"Usar cursor `not-allowed` quando não for suportado",ru:"Использовать курсор `запрещено`, если не поддерживается","zh-CN":"不支持时给出鼠标指针“禁止”"},"If the image isn't supported, the mouse cursor will change to a `not-allowed` cursor for a brief duration":{ko:"이미지가 지원되지 않으면 마우스 커서가 잠시 동안 허용되지 않는 커서로 변경됨","pt-BR":"Se a imagem não for suportada, o cursor do mouse mudará para um cursor `not-allowed` por um breve período",ru:"Если изображение не поддерживается, курсор мыши на короткое время изменится на `запрещено`.","zh-CN":"如果遇到不支持的图像,鼠标指针将暂时变为“禁止”图案"},"Use `not-allowed` cursor when unable to load":{"pt-BR":"Usar cursor `not-allowed` quando não for possível carregar",ru:"Использовать курсор `запрещено`, если невозможно загрузить","zh-CN":"无法加载时给出鼠标指针“禁止”"},"If the image fails to load, the mouse cursor will change to a `not-allowed` cursor for a brief duration":{ko:"이미지를 불러올 수 없으면 마우스 커서가 잠시 동안 허용되지 않는 커서로 변경됨","pt-BR":"Se a imagem não carregar, o cursor do mouse mudará para um cursor `not-allowed` por um breve período",ru:"Если изображение не загружается, курсор мыши на короткое время изменится на `запрещено`.","zh-CN":"如果图像下载失败,鼠标指针将暂时变为“禁止”图案"},"`not-allowed` cursor duration":{"pt-BR":"Duração do cursor `not-allowed`",ru:"Длительность курсора `запрещено`","zh-CN":"“禁止”指针持续时间"},"How long the `not-allowed` cursor should last":{"pt-BR":"Tempo de duração do cursor `not-allowed`",ru:"Как долго отображается курсор `запрещено`","zh-CN":"“禁止”指针的显示持续多久"},"Exclude image tabs":{ko:"이미지 탭 제외","pt-BR":"Excluir abas de imagens",ru:"Исключать вкладки с изображениями","zh-CN":"排除图像标签页"},"Excludes images that are opened in their own tabs":{ko:"자신의 탭에서 열린 이미지 제외","pt-BR":"Exclui imagens que são abertas em suas próprias abas",ru:"Исключает изображения, открытые в собственных вкладках.","zh-CN":"排除在单独的标签页中打开的图像"},"Exclude if media URL is unchanged":{"pt-BR":"Excluir se a URL da mídia não for alterada",ru:"Исключать, если ссылка медиа не изменилась","zh-CN":"排除无变化的媒体 URL"},"Don't pop up if the new URL is the same as the source":{"pt-BR":"Não exibir pop-up se a nova URL for igual à fonte",ru:"Всплывающее окно не появляется, если ссылка как у источника.","zh-CN":"如果新 URL 与源 URL 相同则不弹出"},"Only popup for linked media":{"pt-BR":"Pop-up apenas para mídia com link",ru:"Всплывающее окно только для медиа с ссылкой","zh-CN":"仅弹出链接形式的媒体"},"Don't pop up if the media isn't hyperlinked":{"pt-BR":"Não exibir pop-up se a mídia não tiver um hiperlink",ru:"Всплывающее окно не появляется, если медиа не имеет гиперссылки","zh-CN":"不弹出非超链接形式的媒体"},"Popup link for linked media":{"pt-BR":"Link em pop-up para mídia com link",ru:"Всплывающее окно ссылки для медиа с ссылками","zh-CN":"链接的媒体弹窗链接"},"If the linked media cannot be made larger, pop up for the link instead of the media":{"pt-BR":"Se a mídia com link não puder ser ampliada, exibir o link em um pop-up em vez da mídia",ru:"Если медиа с ссылкой не может быть увеличено, всплывает ссылка вместо медиа.","zh-CN":"如果链接的媒体不能变大,弹出该链接而非媒体"},"Exclude image maps":{ko:"이미지 맵 제외","pt-BR":"Excluir mapas de imagem",ru:"Исключать карты изображений","zh-CN":"排除图像集"},"Don't pop up if the image is an image map (image with multiple clickable areas)":{ko:"이미지가 이미지 맵(클릭 가능한 영역이 여러 개를 가진 이미지)인 경우 팝업 표시 안 함","pt-BR":"Não exibir pop-up se a imagem for um mapa de imagem (imagem com várias áreas clicáveis)",ru:"Всплывающее окно не появится, если изображение представляет собой карту изображения (изображение с несколькими кликальными областями).","zh-CN":"不弹出有多个可点击区域的图像集(image map)"},Autoplay:{"pt-BR":"Reprodução automática",ru:"Автовоспроизведение","zh-CN":"自动播放"},"Play automatically once the popup is opened":{"pt-BR":"Reproduzir automaticamente quando o pop-up for aberto",ru:"Автоматически воспроизводится после открытия всплывающего окна.","zh-CN":"弹窗打开后自动播放"},"Show video controls":{"pt-BR":"Exibir controles de vídeo",ru:"Показывать элементы управления видео","zh-CN":"显示视频控件"},"Shows native video controls. Note that this prevents dragging under Firefox":{"pt-BR":"Exibe os controles nativos de vídeo. Observe que isso impede o arrastar no Firefox",ru:"Показывает встроенные средства управления видео. Обратите внимание, что это предотвращает перетаскивание под Firefox.","zh-CN":"显示原生视频控件(视频控制按钮)。注意,这会阻止在 Firefox 中拖拽"},"Toggle video controls":{"pt-BR":"Alternar controles de vídeo",ru:"Переключатель элементов управления видео","zh-CN":"切换视频控件"},"Key to toggle whether the video controls are shown":{"pt-BR":"Tecla para alternar a exibição dos controles de vídeo",ru:"Клавиша для переключения отображения элементов управления видео","zh-CN":"切换是否显示视频控件的按键"},Loop:{"pt-BR":"Repetir",ru:"Зациклить","zh-CN":"循环"},"Allows the media to automatically restart to the beginning after finishing playing":{"pt-BR":"Permite que a mídia seja reiniciada automaticamente após o término da reprodução",ru:"Позволяет медиа автоматически перезапускаться в начало после завершения воспроизведения.","zh-CN":"是否允许媒体播放完毕后自动重新开始播放"},"Max duration for looping":{"pt-BR":"Duração máxima para repetição",ru:"Максимальная длительность зацикливания","zh-CN":"循环最长持续时间"},"Media longer than the specified duration will not be automatically looped. Setting this to `0` will always enable looping, regardless of duration.":{"pt-BR":"Mídias com duração maior que a especificada não serão repetidas automaticamente. Definir como `0` sempre habilitará a repetição, independentemente da duração.",ru:"Медиа с дольшей указанной длительностью не будет автоматически зациклены. Установка этого значения на `0` всегда будет включать зацикливание, независимо от длительности.","zh-CN":"超过指定时间后媒体不再自动循环播放。设为 0 则始终循环,不限制持续时间。"},"Play/pause key":{"pt-BR":"Tecla de reproduzir/pausar",ru:"Кнопка воспроизведения/приостановки","zh-CN":"播放/暂停键"},"Key to toggle whether the media is playing or paused":{"pt-BR":"Tecla para alternar entre reproduzir e pausar a mídia",ru:"С помощью этой кнопки, вы сможете воспроизводить или приостанавливать медиа.","zh-CN":"切换媒体的播放/暂停的按键"},Mute:{"pt-BR":"Silenciar",ru:"Отключать звук","zh-CN":"静音"},"Mutes the media by default":{"pt-BR":"Silenciar a mídia por padrão",ru:"Отключает звук медиа по умолчанию.","zh-CN":"默认将媒体静音"},"Toggle mute key":{"pt-BR":"Tecla de alternar para mudo",ru:"Кнопка отключения звука","zh-CN":"切换静音键"},"Key to toggle mute":{"pt-BR":"Tecla para alternar para mudo",ru:"С помощью этой кнопки, вы сможете переключать звук.","zh-CN":"切换静音的按键"},"Default volume":{"pt-BR":"Volume padrão",ru:"Громкость по умолчанию","zh-CN":"默认音量"},"Default volume for the media":{"pt-BR":"Volume padrão para a mídia",ru:"Громкость звука для медиа по умолчанию.","zh-CN":"媒体的默认音量"},"Volume up key":{"pt-BR":"Tecla de aumentar o volume",ru:"Кнопка увеличения громкости","zh-CN":"音量调高键"},"Key to increase the volume":{"pt-BR":"Tecla para aumentar o volume",ru:"С помощью этой кнопки, вы сможете увеличить громкость звука.","zh-CN":"增大音量的按键"},"Volume down key":{"pt-BR":"Tecla de diminuir o volume",ru:"Кнопка уменьшения громкости","zh-CN":"音量调低键"},"Key to decrease the volume":{"pt-BR":"Tecla para diminuir o volume",ru:"С помощью этой кнопки, вы сможете уменьшать громкость звука.","zh-CN":"减小音量的按键"},"Volume change amount":{"pt-BR":"Quantidade de alteração de volume",ru:"Величина изменения громкости","zh-CN":"音量变化百分比"},"Percent for volume to increase/decrease when using the volume up/down keys":{"pt-BR":"Percentual para aumentar/diminuir o volume ao usar as teclas de aumentar/diminuir volume",ru:"Процент для увеличения/уменьшения громкости при использовании кнопок увеличения/уменьшения громкости.","zh-CN":"使用音量调高/调低键时,音量增减的百分比"},"Resume playback from source":{"pt-BR":"Retomar reprodução do vídeo original",ru:"Продолжать воспроизведение из источника","zh-CN":"从源地址继续播放"},"If enabled, playback will resume from where the source left off":{"pt-BR":"Se ativado, a reprodução continuará de onde o vídeo original parou",ru:"Если включено, воспроизведение будет возобновлено с того места, на котором остановился источник.","zh-CN":"启用后,播放将从源媒体中停止的进度继续"},"Resume if different length":{"pt-BR":"Retomar se a duração for diferente",ru:"Возобновлять, если разная длина","zh-CN":"长度不同也继续播放"},"If disabled, it will not resume if the source has a different length from the media in the popup (e.g. from a preview video to a full one)":{"pt-BR":"Se desativado, não retomará a reprodução se o vídeo original tiver uma duração diferente da mídia no pop-up (por exemplo, de um vídeo de visualização para um vídeo completo).",ru:"Если отключено, то не возобновляет, если длина из источника отличается от длины медиа во всплывающем окне (например, с предпросмотра видео до полного)","zh-CN":"禁用后,如果源媒体与弹出的媒体的时长不同(例如预览视频与完整视频的区别),则不继续播放"},"Pause source":{"pt-BR":"Pausar vídeo original",ru:"Приостанавливать из источника","zh-CN":"暂停源媒体"},"Pauses the source once the popup has opened":{"pt-BR":"Pausa o vídeo original assim que o pop-up for aberto",ru:"Приостанавливает источник после открытия всплывающего окна","zh-CN":"弹窗打开后暂停源媒体"},"Seek amount":{"pt-BR":"Quantidade de avanço/retrocesso",ru:"Количество запросов","zh-CN":"进退距离"},"Amount of time to seek forward/back when using the seek keys":{"pt-BR":"Quantidade de tempo para avançar/retroceder ao usar as teclas de avanço/retrocesso",ru:"Количество времени для запроса вперед/назад при использовании кнопок запроса.","zh-CN":"使用快进/快退按键时前进/后退的时间量"},"Seek left key":{"pt-BR":"Tecla de retrocesso",ru:"Кнопка запроса влево","zh-CN":"快退键"},"Key to seek backwards by the specified amount":{"pt-BR":"Tecla para retroceder a quantidade especificada",ru:"С помощью этой кнопки, вы сможете сделать запрос назад от заданого количества.","zh-CN":"向左侧(之前)快速移动指定时长的按键"},"Seek right key":{"pt-BR":"Tecla de avanço",ru:"Кнопка запроса вправо","zh-CN":"快进键"},"Key to seek forwards by the specified amount":{"pt-BR":"Tecla para avançar a quantidade especificada",ru:"С помощью этой кнопки, вы сможете сделать запрос вперёд от заданого количества.","zh-CN":"向右侧(之后)快速移动指定时长的按键"},"Previous frame key":{"pt-BR":"Tecla de voltar quadro",ru:"Кнопка предыдущего кадра","zh-CN":"上一帧按键"},'Rewinds the video one "frame" backward. Due to current limitations, the frame size is static (but configurable), and might not match the video\'s framerate':{"pt-BR":'Retrocede o vídeo um "quadro" para trás. Devido às limitações atuais, o tamanho do quadro é estático (mas configurável) e pode não corresponder à taxa de quadros do vídeo',ru:'С помощью этой кнопки, вы сможете перематывать видео на один "кадр" назад. В связи с текущими ограничениями, размер кадра является статичным (но настраиваемым), и может не совпадать с частотой кадров видео.',"zh-CN":"将视频倒回前一帧。由于当前的限制,帧大小是静态的(但可配置),可能与视频的帧速率不匹配"},"Next frame key":{"pt-BR":"Tecla de avançar quadro",ru:"Кнопка следующего кадра","zh-CN":"下一帧按键"},'Advances the video one "frame" forward. Due to current limitations, the frame size is static (but configurable), and might not match the video\'s framerate':{"pt-BR":'Avança o vídeo um "quadro" para frente. Devido às limitações atuais, o tamanho do quadro é estático (mas configurável) e pode não corresponder à taxa de quadros do vídeo',ru:'С помощью этой кнопки, вы сможете перематывать видео на один "кадр" вперёд. В связи с текущими ограничениями, размер кадра является статичным (но настраиваемым), и может не совпадать с частотой кадров видео.',"zh-CN":"将视频移入下一帧。由于当前的限制,帧大小是静态的(但可配置),可能与视频的帧速率不匹配"},"Frame rate":{"pt-BR":"Taxa de quadros",ru:"Частота кадров","zh-CN":"帧速率"},"Frame rate for videos to seek forward/back with the next/previous frame keys":{"pt-BR":"Taxa de quadros para vídeos avançarem/retrocederem com as teclas de próximo/anterior quadro",ru:"Частота кадров видео для запроса вперёд/назад с помощью кнопок следующий/предыдущий кадр","zh-CN":"帧速率用于视频的快进/快退按键"},FPS:{"pt-BR":"FPS (Quadros por Segundo)",ru:"Кадров в секунду","zh-CN":"每秒帧数(FPS)"},"Speed down key":{"pt-BR":"Tecla para diminuir a velocidade",ru:"Кнопка уменьшения скорости","zh-CN":"减速键"},"Key to decrease playback rate by a specified amount":{"pt-BR":"Tecla para diminuir a taxa de reprodução em uma quantidade especificada",ru:"С помощью этой кнопки, вы сможете уменьшить скорость воспроизведения на заданную величину.","zh-CN":"此键可以将播放速率降低指定的额度"},"Speed up key":{"pt-BR":"Tecla para aumentar a velocidade",ru:"Кнопка увеличения скорости","zh-CN":"加速键"},"Key to increase playback rate by a specified amount":{"pt-BR":"Tecla para aumentar a taxa de reprodução em uma quantidade especificada",ru:"С помощью этой кнопки, вы сможете увеличить скорость воспроизведения на заданную величину.","zh-CN":"此键可以将播放速率提升指定的额度"},"Speed up/down amount":{"pt-BR":"Quantidade de aumento/diminuição de velocidade",ru:"Величина увеличения/уменьшения скорости","zh-CN":"加速/减速量"},"How much to increase/decrease the playback rate":{"pt-BR":"Quanto aumentar/diminuir a taxa de reprodução",ru:"Насколько увеличить/уменьшить скорость воспроизведения","zh-CN":"增加/减少的播放速率"},"Reset speed key":{"pt-BR":"Tecla para redefinir a velocidade",ru:"Кнопка сброса скорости","zh-CN":"重置速度键"},"Resets the playback rate to normal speed":{"pt-BR":"Redefine a taxa de reprodução para a velocidade normal",ru:"С помощью этой кнопки, вы сможете сбросить скорость воспроизведения до нормальной скорости","zh-CN":"将播放速度重置为正常速度"},"Screenshot key":{"pt-BR":"Tecla para captura de tela",ru:"Кнопка снимка экрана","zh-CN":"屏幕截图键"},"Screenshots the current frame in the video":{"pt-BR":"Captura o quadro atual do vídeo",ru:"С помощью этой кнопки, вы сможете сделать снимок экрана текущего кадра на видео.","zh-CN":"对视频中的当前帧截图"},"Screenshot format":{"pt-BR":"Formato da captura de tela",ru:"Формат снимка экрана","zh-CN":"截图格式"},"File format to save the screenshot in":{"pt-BR":"Formato de arquivo para salvar a captura de tela",ru:"Формат файла для сохранения снимка экрана","zh-CN":"保存截图的文件格式"},PNG:{"pt-BR":"PNG",ru:"PNG","zh-CN":"PNG"},JPG:{"pt-BR":"JPG",ru:"JPG","zh-CN":"JPG"},"Enable subtitles":{"pt-BR":"Ativar legendas"},"Enables subtitles to be overlayed on top of the video":{"pt-BR":"Permite que as legendas sejam sobrepostas ao vídeo"},"Popup UI":{es:"Interfaz del Popup",ko:"팝업 UI","pt-BR":"Interface de Pop-up",ru:"Пользовательский интерфейс всплывающего окна","zh-CN":"弹窗界面"},"Enables a UI on top of the popup":{"pt-BR":"Habilita uma interface na parte superior do pop-up",ru:"Включает пользовательский интерфейс в верхней части всплывающего окна.","zh-CN":"启用弹窗上的界面"},"UI Toggle key":{"pt-BR":"Tecla para alternar a interface",ru:"Кнопка переключения пользовательского интерфейса","zh-CN":"界面切换键"},"Toggles the display of the UI":{"pt-BR":"Alterna a exibição da interface",ru:"С помощью этой кнопи, вы сможете переключать отображение пользовательского интерфейса.","zh-CN":"切换界面的显示方式"},Opacity:{es:"Opacidad",fr:"Opacité",ko:"불투명","pt-BR":"Opacidade",ru:"Непрозрачность","zh-CN":"不透明度"},"Opacity of the UI on top of the popup":{"pt-BR":"Opacidade da interface sobre o pop-up",ru:"Непрозрачность пользовательского интерфейса в верхней части всплывающего окна.","zh-CN":"弹窗上界面的不透明度"},"Use safe glyphs":{"pt-BR":"Usar glifos seguros",ru:"Использовать безопасные глифы","zh-CN":"使用安全字形"},"Uses glyphs that are more likely to be available on all fonts. Enable this option if the following characters render as boxes: 🡇 🡐 🡒. The 'Noto Sans Symbols2' font contains these characters.":{"pt-BR":"Usa glifos que são mais propensos a estarem disponíveis em todas as fontes. Habilite esta opção se os seguintes caracteres forem exibidos como caixas: 🡇 🡐 🡒. A fonte 'Noto Sans Symbols2' contém estes caracteres.",ru:"Используются глифы, которые скорее всего, будут доступны на всех шрифтах. Включите этот параметр, если следующие символы отображаются в виде квадратиков: 🡇 🡐 🡒. Шрифт 'Noto Sans Symbols2' содержит эти символы.","zh-CN":"使用更可能适用于所有字体的字形。启用此选项,如果下列字符呈现为方框:🡇 🡐 🡒。“Noto Sans symboss2”字体包含这些字符。"},"Media resolution":{"pt-BR":"Resolução da mídia",ru:"Разрешение медиа","zh-CN":"媒体分辨率"},"Displays the original media dimensions on top of the UI.\nCSS ID: `#sizeinfo`":{"pt-BR":"Exibe as dimensões originais da mídia no topo da UI.\nID CSS: `#sizeinfo`",ru:"Отображает оригинальные размеры медиа в верхней части пользовательского интерфейса.\nCSS ID: `#sizeinfo`","zh-CN":"在界面上显示原始媒体尺寸。\nCSS ID: `#sizeinfo`"},"Zoom percent":{"pt-BR":"Percentual de zoom",ru:"Масштабирование в процентах","zh-CN":"缩放百分比"},"Displays the current zoom level on top of the UI.\nCSS ID: `#sizeinfo`":{"pt-BR":"Exibe o nível de zoom atual no topo da UI.\nID CSS: `#sizeinfo`",ru:"Отображает текущий уровень масштабирования в верхней части интерфейса.\nCSS ID: `#sizeinfo`","zh-CN":"在界面上显示当前的缩放级别。\nCSS ID: `#sizeinfo`"},"File size":{"pt-BR":"Tamanho do arquivo",ru:"Размер файла","zh-CN":"文件大小"},"Displays the media's file size on top of the UI. For the moment, this will not work with partially loaded media if 'Avoid HEAD request for partially loaded media' is enabled.\nCSS ID: `#sizeinfo`":{"pt-BR":"Exibe o tamanho do arquivo de mídia no topo da UI. No momento, isso não funcionará com mídia carregada parcialmente se 'Evitar solicitação HEAD para mídia carregada parcialmente' estiver habilitado.\nID CSS: `#sizeinfo`",ru:"Отображает размер файла медиа в верхней части интерфейса. На данный момент это не будет работать с частично загруженными медиа, если включён параметр 'Избегать запроса HEAD для частично загруженных медиа'.\nCSS ID: `#sizeinfo`","zh-CN":"在界面上显示媒体的文件大小。目前,如果启用了“避免对部分加载的媒体使用 HEAD 请求”,则此项无效。\nCSS ID: `#sizeinfo`"},"Gallery counter":{es:"Número de imágenes a contar en la galería",fr:"Nombre d'images dans la galerie",ko:"갤러리 이미지 수","pt-BR":"Contador da galeria",ru:"Счётчик галереи","zh-CN":"图库计数器"},"Enables a gallery counter on top of the UI.\nCSS ID: `#gallerycounter`":{"pt-BR":"Habilita um contador da galeria no topo da UI.\nID CSS: `#gallerycounter`",ru:"Отображает счётчик галереи в верхней части пользовательского интерфейса.\nCSS ID: `#gallerycounter`","zh-CN":"启用界面上的图库计数器。\nCSS ID: `#gallerycounter`"},"Gallery counter max":{es:"Número máximo de imágenes a contar para la galería",fr:"Nombre max d'images a compter pour la galerie",ko:"갤러리 이미지 수의 최대값","pt-BR":"Máximo do contador da galeria",ru:"Максимальный счётчик галереи","zh-CN":"图库计数器上限"},"Maximum amount of images to check in the counter (this can be slightly CPU-intensive)":{"pt-BR":"Quantidade máxima de imagens a verificar no contador (isso pode exigir um pouco de CPU)",ru:"Максимальное количество изображений для проверки в счётчике (это может быть слегка ресурсоёмким для процессора)","zh-CN":"该计数器显示图像数量上限(可能消耗较多 CPU 资源)"},"Gallery buttons":{"pt-BR":"Botões da galeria",ru:"Кнопки галереи","zh-CN":"图库按钮"},"Enables buttons to go left/right in the gallery.\nCSS IDs: `#galleryprevbtn`, `#gallerynextbtn`":{"pt-BR":"Habilita botões para ir à esquerda/direita na galeria.\nIDs CSS: `#galleryprevbtn`, `#gallerynextbtn`",ru:"Включает кнопки влево/вправо в галерее.\nCSS ID: `#galleryprevbtn`, `#gallerynextbtn`","zh-CN":"启用在图库中向左/右移动的按钮。\nCSS IDs: `#galleryprevbtn`, `#gallerynextbtn`"},"Close Button":{"pt-BR":"Botão Fechar",ru:"Кнопка закрытия","zh-CN":"关闭按钮"},"Enables a button to close the popup.\nCSS ID: `#closebtn`":{"pt-BR":"Habilita um botão para fechar o popup.\nID CSS: `#closebtn`",ru:"Включает кнопку для закрытия всплывающего окна.\nCSS ID: `#closebtn`","zh-CN":"启用关闭当前弹窗的按钮。\nCSS ID: `#closebtn`"},"Options Button":{es:"Botón de Opciones",ko:"설정 링크","pt-BR":"Botão de Opções",ru:"Кнопка параметров","zh-CN":"选项按钮"},"Enables a button to go to this page.\nCSS ID: `#optionsbtn`":{"pt-BR":"Habilita um botão para ir para esta página.\nID CSS: `#optionsbtn`",ru:"Включает кнопку для перехода на эту страницу.\nCSS ID: `#optionsbtn`","zh-CN":"启用访问选项页面(本页面)的按钮。\nCSS ID: `#optionsbtn`"},"Download Button":{"pt-BR":"Botão de Download",ru:"Кнопка скачивания","zh-CN":"下载按钮"},"Enables a button to download the image.\nCSS ID: `#downloadbtn`":{"pt-BR":"Habilita um botão para baixar a imagem.\nID CSS: `#downloadbtn`",ru:"Включает кнопку скачивания изображения.\nCSS ID: `#downloadbtn`","zh-CN":"启用下载该图像的按钮。\nCSS ID: `#downloadbtn`"},"Rotation Buttons":{"pt-BR":"Botões de Rotação",ru:"Кнопки вращения","zh-CN":"旋转按钮"},"Enables buttons on the UI to rotate the image by 90 degrees.\nCSS IDs: `#rotleftbtn`, `#rotrightbtn`":{"pt-BR":"Habilita botões na UI para girar a imagem em 90 graus.\nIDs CSS: `#rotleftbtn`, `#rotrightbtn`",ru:"Включает кнопки на интерфейсе для поворота изображения на 90 градусов.\nCSS ID: `#rotleftbtn`, `#rotrightbtn`","zh-CN":"启用在界面上将图像旋转 90 度的按钮。\nCSS IDs: `#rotleftbtn`, `#rotrightbtn`"},Caption:{"pt-BR":"Legenda",ru:"Подпись","zh-CN":"标题"},"Shows the image's caption (if available) at the top.\nCSS ID: `#caption`":{"pt-BR":"Mostra a legenda da imagem (se disponível) no topo.\nID CSS: `#caption`",ru:"Показывает вверху подпись к изображению (если есть).\nCSS ID: `#caption`","zh-CN":"在顶端显示图像的标题(如果可用)。\nCSS ID: `#caption`"},"Wrap caption text":{"pt-BR":"Quebrar texto da legenda",ru:"Обернуть текст подписи","zh-CN":"标题文本换行"},"Wraps the caption if it's too long":{"pt-BR":"Quebra a legenda se for muito longa",ru:"Скрывает часть подписи, если она слишком длинная.","zh-CN":"标题文本太长时自动换行"},"Link original page in caption":{"pt-BR":"Vincular página original na legenda",ru:"Ссылка на оригинальную страницу в подписи","zh-CN":"标题链接原始页面"},"Links the original page (if it exists) in the caption":{"pt-BR":"Vincula a página original (se existir) na legenda",ru:"Ссылка в заголовке на оригинальную страницу (если она существует).","zh-CN":"将标题链接到原始页面(如有)"},"Underline links":{"pt-BR":"Sublinhar links",ru:"Подчёркивание ссылок","zh-CN":"链接下划线"},"Adds an underline to links (such as the original page)":{"pt-BR":"Adiciona um sublinhado aos links (como o da página original)",ru:"Добавляет подчеркивание к ссылкам (например, оригинальная страница).","zh-CN":"向链接(如原始页面)添加下划线"},"Keep popup open until":{es:"Mantener popup abierto hasta que",ko:"팝업 닫으려면","pt-BR":"Manter pop-up aberto até",ru:"Всплывающее окно открыто до тех пор, пока","zh-CN":"保持弹窗开启直到"},"Closes the popup when the selected condition is met":{ko:"선택한 조건이 충족되면 팝업 닫기","pt-BR":"Fecha o pop-up quando a condição selecionada for atendida",ru:"Закрывает всплывающее окно при выполнении выбранного условия.","zh-CN":"满足选定条件时关闭弹窗"},"Any trigger is released":{es:"Cualquier acción se deja ir",ko:"어떤 동작에도 닫힘","pt-BR":"Qualquer gatilho for liberado",ru:"Любая кнопка срабатывания отпущена","zh-CN":"松开任何触发器"},"All triggers are released":{ko:"모든 동작에서 닫힘","pt-BR":"Todos os gatilhos forem liberados",ru:"Все кнопки срабатывания отпущены","zh-CN":"松开全部触发器"},"ESC/Close is pressed":{ko:"ESC/닫기 누르기","pt-BR":"ESC/Fechar for pressionado",ru:"Нажато ESC/Закрыть","zh-CN":"按下 ESC/Close"},"Don't close until mouse leaves":{ko:"마우스가 떠날 때까지 닫지 마십시오.","pt-BR":"Não fechar até o mouse sair",ru:"Не закрывать пока курсор мыши не будет убран","zh-CN":"鼠标移开前不关闭"},"If true, this keeps the popup open even if all triggers are released if the mouse is still over the image":{ko:"활성화 시, 마우스가 이미지 위에 있는 경우 모든 동작에서 닫힘을 선택했더라도 팝업이 계속 열린 상태로 유지됨","pt-BR":"Se verdadeiro, mantém o pop-up aberto mesmo que todos os gatilhos sejam liberados se o mouse ainda estiver sobre a imagem",ru:"Если true, тогда если мышь всё еще находится на изображении, то всплывающее окно остаётся открытым, даже если все срабатывания отпущены.","zh-CN":"如果启用,松开所有触发器后,假如鼠标仍悬停在图像上,弹窗保持开启"},"Threshold to leave image":{ko:"이미지를 떠나기 위한 임계값","pt-BR":"Limite para sair da imagem",ru:"Порог для выхода из изображения","zh-CN":"移开图像的门限值"},"How many pixels outside of the image before the cursor is considered to have left the image":{ko:"커서가 이미지를 떠난 것으로 파악할 수 있는 이미지 픽셀 수","pt-BR":"Quantos pixels fora da imagem antes que o cursor seja considerado como tendo deixado a imagem",ru:"Сколько пикселей за пределами изображения перед курсором считается покинувшими изображение.","zh-CN":"鼠标指针离开图像外缘多少像素视作移开图像"},"Leaving thumbnail cancels loading":{ko:"미리보기를 남기면 로딩이 취소됨","pt-BR":"Sair da miniatura cancela o carregamento",ru:"Отменять загрузку, если миниатюра покинута","zh-CN":"离开缩略图则取消加载"},"Cancels the current popup loading when the cursor has left the thumbnail image":{ko:"커서가 축소 이미지에서 벗어날 때 현재 팝업 로딩 취소","pt-BR":"Cancela o carregamento do pop-up atual quando o cursor sai da imagem em miniatura",ru:"Отменяет загрузку текущего всплывающего окна, когда курсор покинул миниатюру изображения.","zh-CN":"鼠标指针离开缩略图时取消当前弹窗的加载"},"ESC cancels loading":{ko:"ESC 로딩 취소","pt-BR":"ESC cancela carregamento",ru:"ESC отменяет загрузку","zh-CN":"ESC 键取消加载"},"Cancels the current popup loading if ESC is pressed":{ko:"ESC를 누르면 현재 팝업 로딩이 취소됨","pt-BR":"Cancela o carregamento do pop-up atual se ESC for pressionado",ru:"Отменяет загрузку текущего всплывающего окна при нажатии кноки ESC.","zh-CN":"按下 ESC 键时取消当前弹窗的加载"},"Releasing triggers cancels loading":{ko:"트리거를 해제하면 로딩이 취소됨","pt-BR":"Liberar gatilhos cancela carregamento",ru:"Отменять загрузку, если кнопки активации отпущены","zh-CN":"松开触发器取消加载"},'Cancels the current popup loading if all/any triggers are released (as set by the "Keep popup open until" setting)':{ko:'어떤/모든 동작에 닫힘을 선택한 경우 현재 팝업 로딩 취소 ("팝업을 닫으려면" 설정에 의존함)',"pt-BR":'Cancela o carregamento do popup atual se todos/quaisquer gatilhos forem liberados (conforme definido pela configuração "Manter popup aberto até")',ru:"Отменяет загрузку текущего всплывающего окна, если все/любые кнопки срабатывания отпущены (в соответствии с настройками 'Оставлять всплывающее окно открытым до тех пор, пока'","zh-CN":"如果松开了所有/任何触发器,并且设置了“保持弹窗开启直到”,取消当前的弹窗加载"},"Automatically close after timeout":{ko:"시간 초과 후 자동으로 닫기","pt-BR":"Fechar automaticamente após tempo limite",ru:"Автозакрытие после истечения времени","zh-CN":"超时后自动关闭"},"Closes the popup automatically after a specified period of time has elapsed":{ko:"지정된 시간이 경과한 후 팝업 자동 닫기","pt-BR":"Fecha o pop-up automaticamente após um período de tempo especificado",ru:"Автоматически закрывает всплывающее окно по истечении заданного периода времени.","zh-CN":"指定时间后自动关闭弹窗"},"Timeout to close popup":{ko:"팝업을 닫기 위한 시간 초과 시간(초)","pt-BR":"Tempo limite para fechar o pop-up",ru:"Времени до закрытия всплывающего окна","zh-CN":"关闭弹窗的超时"},"Amount of time to elapse before automatically closing the popup":{ko:"팝업을 자동으로 닫기 전 경과 시간","pt-BR":"Tempo para fechar o pop-up automaticamente",ru:"Количество времени, которое должно пройти до автоматического закрытия всплывающего окна.","zh-CN":"多久后自动关闭弹窗"},"Hold key":{ko:"고정 키","pt-BR":"Tecla manter pressionado",ru:"Кнопка удерживания","zh-CN":"保持键"},"Hold key that, when pressed, will keep the popup open":{ko:"고정 키를 누르면 팝업이 열린 상태로 유지됨","pt-BR":"Tecla que, quando pressionada, mantém o pop-up aberto",ru:"Кнопка удерживания, которая при нажатии будет оставлять всплывающее окно открытым.","zh-CN":"按住此键时将保持弹窗开启"},"Center popup on hold":{ko:"중앙 팝업 고정","pt-BR":"Centralizar pop-up ao manter pressionado",ru:"Центрировать всплывающее окно при удерживании","zh-CN":"保持时弹窗居中"},"Centers the popup to the middle of the page when the popup is held":{ko:"팝업이 열릴 때 팝업을 페이지 중앙에 배치","pt-BR":"Centraliza o pop-up no meio da página quando ele for pressionado",ru:"Центрирует всплывающее окно на середине страницы, когда оно удерживается.","zh-CN":"弹窗保持呈现于页面正中心"},"Override zoom on hold":{"pt-BR":"Substituir zoom ao pressionar",ru:"Переопределять масштабирование при удерживании","zh-CN":"保持时覆盖缩放"},"Overrides the zoom when the popup is held":{"pt-BR":"Substitui o zoom quando o pop-up é mantido pressionado",ru:"Переопределяет масштабирование при удержании всплывающего окна","zh-CN":"保持弹窗时覆盖缩放级别"},"Close popup on unhold":{ko:"고정 해제 시, 팝업 닫기","pt-BR":"Fechar pop-up ao liberar",ru:"Зыкрывать всплывающее окно после отпускания удерживания","zh-CN":"取消保持时关闭弹窗"},"Closes the popup when the hold key is pressed again, after having previously held the popup":{ko:"팝업을 고정한 후 고정 키를 다시 누르면 팝업이 닫힘","pt-BR":"Fecha o pop-up quando a tecla de manter pressionado é usada novamente, após ter precionado a tecla de pop-up anteriormente",ru:"Закрывает всплывающее окно при повторном нажатии клавиши удерживания после предыдущего удержания всплывающего окна.","zh-CN":"曾经保持弹窗后,再次按下保持键时关闭弹窗"},"Enable pointer events on hold":{ko:"포인터 이벤트 고정 사용","pt-BR":"Habilitar eventos do ponteiro ao sustentar",ru:"События указателя при удерживании","zh-CN":"保持期间启用指针事件"},"Enables previously disabled pointer events when the popup is held":{ko:"팝업이 고정될 때 이전에 비활성화된 포인터 이벤트 활성화","pt-BR":"Habilita eventos do ponteiro do mouse previamente desabilitados quando a tecla de pop-up é pressionada",ru:"Включает ранее отключенные события указателя при удерживании всплывающего окна.","zh-CN":"弹窗保持期间启用先前禁用的指针事件"},"Clicking outside the popup closes":{ko:"팝업 바깥쪽을 클릭하면 닫힘","pt-BR":"Clicar fora do pop-up fecha",ru:"Закрывать при нажатии за пределами всплывающего окна","zh-CN":"点击弹窗外关闭"},"Closes the popup when the mouse clicks outside of it":{ko:"마우스가 팝업 바깥쪽을 클릭할 때 팝업 닫기","pt-BR":"Fecha o pop-up quando o mouse clica fora dele",ru:"Закрывает всплывающее окно при нажатии мыши за его пределами.","zh-CN":"鼠标在弹窗外单击时关闭弹窗"},"Close when leaving":{ko:"떠날 때 닫기","pt-BR":"Fechar ao sair",ru:"Закрывать при покидании","zh-CN":"离开时关闭"},"Closes the popup when the mouse leaves the thumbnail element, the popup, or both":{"pt-BR":"Fecha o pop-up quando o mouse sai do elemento da miniatura, do pop-up ou de ambos",ru:"Закрывает всплывающее окно, когда мышь покидает элемент миниатюры, всплывающее окно или и то, и другое.","zh-CN":"鼠标移出缩略图元素、弹窗或上述两者时关闭弹窗"},Thumbnail:{ko:"미리보기(썸네일)","pt-BR":"Miniatura",ru:"Миниатюры","zh-CN":"缩略图"},Both:{ko:"둘 다","pt-BR":"Ambos",ru:"Обоих","zh-CN":"上述两者"},"Use invisible element when waiting":{"pt-BR":"Usar elemento invisível ao aguardar",ru:"Использовать невидимый элемент при ожидании","zh-CN":"等待时使用隐形元素"},"Creates an invisible element under the cursor when waiting for the popup instead of a style element (can improve performance on websites with many elements, but prevents the cursor from clicking anything while loading the popup)":{"pt-BR":"Cria um elemento invisível abaixo do cursor ao aguardar o pop-up em vez de um elemento de estilo (pode melhorar o desempenho em sites com muitos elementos, mas impede que o cursor clique em qualquer coisa durante o carregamento do pop-up)",ru:"Создаёт невидимый элемент под курсором при ожидании всплывающего окна вместо элемента стиля (может улучшить производительность на сайтах с большим количеством элементов, но не позволяет курсору нажимать на что-либо во время загрузки всплывающего окна).","zh-CN":"在等待弹窗时在鼠标指针下方创建一个隐形元素(而非样式元素)(可以改善有大量元素的网站性能,但这会阻止加载期间鼠标点击任何东西)"},"Add popup link to history":{"pt-BR":"Adicionar link do pop-up ao histórico",ru:"Добавлять всплывающую ссылку в историю","zh-CN":"添加弹出的链接到历史记录"},"Adds the image/video link opened through the popup to the browser's history":{"pt-BR":"Adiciona o link da imagem/vídeo aberto através do pop-up ao histórico do navegador",ru:"Добавляет ссылку на изображение/видео в историю браузера, открытые через всплывающее окно.","zh-CN":"将通过弹窗打开的图像/视频链接添加到浏览器的历史记录"},"Add thumbnail link to history":{"pt-BR":"Adicionar link da miniatura ao histórico"},"Adds the original media link opened through the popup to the browser's history":{"pt-BR":"Adiciona o link original da mídia aberto através do pop-up ao histórico do navegador"},"Allow inter-frame communication":{ko:"프레임 간 통신 허용","pt-BR":"Permitir comunicação entre frames",ru:"Разрешить межфреймовую связь","zh-CN":"允许框架间通信"},"Allows communication between frames in windows, improving support for keybindings":{ko:"창의 프레임 간 통신을 허용하여 키 바인딩에 대한 지원을 개선한다.","pt-BR":"Permite a comunicação entre frames em janelas, melhorando o suporte para atalhos de teclado",ru:"Позволяет осуществлять связь между фреймами в Windows, улучшая поддержку привязки клавиш.","zh-CN":"允许窗口中的框架间通信,改善对快捷键绑定的支持"},"Allows communication between frames in windows, improving support for keybindings. Can pose a fingerprinting risk when used through the userscript":{ko:"창의 프레임 간 통신을 허용하여 키 바인딩에 대한 지원을 개선합니다. 유저스크립트를 통해 사용 시, 보안에 위협이 있을 수 있습니다","pt-BR":"Permite a comunicação entre frames em janelas, melhorando o suporte para atalhos de teclado. Pode representar um risco de fingerprinting quando usado através do userscript",ru:"Позволяет осуществлять связь между фреймами в Windows, улучшая поддержку привязки клавиш. Может представлять риск снятия отпечатков пальцев при использовании через пользовательский скрипт.","zh-CN":"允许窗口中的框架间通信,改善对快捷键绑定的支持。通过用户脚本使用时,也许会构成指纹识别的风险"},"Pop out of frames":{ko:"프레임에서 팝업","pt-BR":"Sair dos frames",ru:"Выскакивать за рамки","zh-CN":"跳出框架"},"Opens the popup on the top frame instead of within iframes. This option is still experimental.":{"pt-BR":"Abre o pop-up no frame superior em vez de dentro de iframes. Esta opção ainda é experimental.",ru:"Открывает всплывающее окно поверх фрейма, а не внутри iframes. Этот параметр всё ещё является экспериментальным.","zh-CN":"在框架外而非框架内打开弹窗。此选项仍处于试验阶段。"},"Popup default zoom":{ko:"확대/축소 기본값","pt-BR":"Zoom padrão do pop-up",ru:"Масштаб всплывающего окна","zh-CN":"弹窗默认缩放级别"},"How the popup should be initially sized":{ko:"팝업의 초기 크기 조정 방법","pt-BR":"Como deve ser o dimensionamento inicial do pop-up",ru:"Каким будет изначальный размер всплывающего окна.","zh-CN":"弹窗的初始尺寸"},"Fit to screen":{fr:"Adapter a l'ecran",ko:"화면 크기에 맞춤","pt-BR":"Ajustar à tela",ru:"По размеру экрана","zh-CN":"适合屏幕"},"Fill screen":{ko:"화면 채우기","pt-BR":"Preencher tela",ru:"Заполнить экран","zh-CN":"填满屏幕"},"Full size":{fr:"Taille réelle",ko:"전체 크기","pt-BR":"Tamanho original",ru:"Полный размер","zh-CN":"全尺寸"},"Custom size":{ko:"맞춤 크기","pt-BR":"Tamanho personalizado",ru:"Пользовательский размер","zh-CN":"自定义尺寸"},"Custom zoom percent":{ko:"사용자 지정 확대/축소 비율","pt-BR":"Percentual de zoom personalizado",ru:"Пользовательский процент масштабирования","zh-CN":"自定义缩放百分比"},"Custom percent to initially size the popup":{ko:"팝업 설정 시, 초기 사용자 지정 확대/축소 비율","pt-BR":"Percentual personalizado para dimensionar o pop-up inicialmente",ru:"Пользовательский процент для первоначального размера всплывающего окна6","zh-CN":"自定义相对于初始弹窗大小的百分比"},"%":{"pt-BR":"%",ru:"%","zh-CN":"%"},"Use last zoom":{"pt-BR":"Usar último zoom",ru:"Использовать последний масштаб","zh-CN":"使用最后的缩放设置"},"Use the last popup's zoom. Note that this is per-page.":{"pt-BR":"Usar o zoom do último pop-up. Observe que isso é por página.",ru:"Используйте масштабирование последнего всплывающего окна. Обратите внимание, что это на странице.","zh-CN":"使用最后一个弹窗的缩放级别。注意,此级别不跨页共享。"},"Maximum width":{ko:"최대 가로 길이","pt-BR":"Largura máxima",ru:"Максимальная ширина","zh-CN":"最大宽度"},"Maximum width for the initial popup size. Set to `0` for unlimited.":{ko:"초기 팝업 크기의 최대 가로 길이. 무제한의 경우 0으로 설정하십시오.","pt-BR":"Largura máxima para o tamanho inicial do pop-up. Defina como `0` para ilimitado.",ru:"Максимальная ширина для начального размера всплывающего окна. `0` - неограниченная ширина.","zh-CN":"初始弹窗尺寸的最大宽度。设为 0 则无限制。"},"Maximum height":{ko:"최대 세로 길이","pt-BR":"Altura máxima",ru:"Максимальная высота","zh-CN":"最大高度"},"Maximum height for the initial popup size. Set to `0` for unlimited.":{ko:"초기 팝업 크기의 최대 세로 길이. 무제한으로 '0'으로 설정한다.","pt-BR":"Altura máxima para o tamanho inicial do pop-up. Defina como `0` para ilimitado.",ru:"Максимальная высота для начального размера всплывающего окна. `0` - неограниченная высота.","zh-CN":"初始弹窗尺寸的最大高度。设为 0 则无限制。"},"Popup panning method":{ko:"이미지 이동하려면","pt-BR":"Método de panorâmica do pop-up",ru:"Способ панорамирования всплывающего окна","zh-CN":"弹窗平移方法"},"How the popup should be panned when larger than the screen":{"pt-BR":"Como o pop-up deve ser deslocado quando maior que a tela",ru:"Как всплывающее окно должно быть панорамировано, когда оно больше экрана.","zh-CN":"弹窗比屏幕大时应如何平移"},Movement:{ko:"마우스 움직입니다","pt-BR":"Movimento",ru:"Перемещение","zh-CN":"移动"},"The popup pans as you move your mouse":{"pt-BR":"O pop-up se move conforme você move o mouse",ru:"Всплывающее окно панорамируется когда вы перемещаете мышь.","zh-CN":"移动鼠标时弹窗平移"},Drag:{ko:"끕니다","pt-BR":"Arrastar",ru:"Перетаскивание","zh-CN":"拖拽"},"Clicking and dragging pans the popup":{"pt-BR":"'Clicar e arrastar' move o pop-up",ru:"Вы можете нажать и перетаскивать панель всплывающего окна.","zh-CN":"单击并拖拽移动弹窗"},"Invert movement":{"pt-BR":"Inverter movimento",ru:"Инвертировать перемещение","zh-CN":"反转移动"},"Inverts the movement of the mouse. For example, if the mouse moves left, the popup moves right. If disabled, it feels more like the popup is being invisibly dragged.":{"pt-BR":"Inverte o movimento do mouse. Por exemplo, se o mouse se mover para a esquerda, o pop-up se move para a direita. Se desabilitado, parece que o pop-up está sendo arrastado de forma invisível.",ru:"Инвертирует перемещение мышью. Например, если мышь движется влево, всплывающее окно перемещается вправо. Если отключено, то больше похоже на то, что всплывающее окно невидимо перетаскивается.","zh-CN":"反转鼠标的移动。例如,如果鼠标向左移动,弹窗向右移动。如果禁用,感觉更像是弹出窗口在无形中被拖动。"},"Minimum drag amount":{"pt-BR":"Quantidade mínima a ser arrastada",ru:"Минимальное количество для перетаскивания","zh-CN":"最小拖拽起始"},"How many pixels the mouse should move to start a drag":{"pt-BR":"Quantos pixels o mouse deve se mover para iniciar um arrasto",ru:"На сколько пикселей мышь должна переместиться, чтобы начать перетаскивание.","zh-CN":"鼠标移动多少像素才开始拖拽"},"Vertical scroll action":{"pt-BR":"Ação de rolagem vertical",ru:"Действие вертикальной прокрутки","zh-CN":"垂直滚动操作"},"How the popup reacts to a vertical scroll/mouse wheel event":{"pt-BR":"Como o pop-up reage a um evento de rolagem vertical/roda do mouse",ru:"Как всплывающее окно реагирует на событие вертикальной прокрутки/колеса мыши.","zh-CN":"弹窗如何对垂直滚动/鼠标滚轮事件做出反应"},"Vertical scroll action (hold)":{"pt-BR":"Ação de rolagem vertical (pressionado)",ru:"Действие при вертикальной прокрутке (удерживание)","zh-CN":"垂直滚动动作(保持)"},"How the popup (when held) reacts to a vertical scroll/mouse wheel event":{"pt-BR":"Como o pop-up (quando pressionado) reage a um evento de rolagem vertical/roda do mouse",ru:"Как всплывающее окно (когда оно удерживается) реагирует на событие вертикальной прокрутки/колеса мыши","zh-CN":"“保持”显示的弹窗如何对垂直滚动/鼠标滚轮事件做出反应"},Zoom:{ko:"줌","pt-BR":"Zoom",ru:"Масштаб","zh-CN":"缩放"},"Horizontal scroll action":{"pt-BR":"Ação de rolagem horizontal",ru:"Действие горизонтальной прокрутки","zh-CN":"水平滚动动作"},"How the popup reacts to a horizontal scroll/mouse wheel event":{"pt-BR":"Como o pop-up reage a um evento de rolagem horizontal/roda do mouse",ru:"Как всплывающее окно реагирует на событие горизонтальной прокрутки/колеса мыши.","zh-CN":"弹窗如何对水平滚动/鼠标滚轮事件做出反应"},"Horizontal scroll action (hold)":{"pt-BR":"Ação de rolagem horizontal (pressionado)",ru:"Действие горизонтальной прокрутки (удерживание)","zh-CN":"水平滚动动作(保持)"},"How the popup (when held) reacts to a horizontal scroll/mouse wheel event":{"pt-BR":"Como o pop-up (quando pressionado) reage a um evento de rolagem horizontal/roda do mouse",ru:"Как всплывающее окно (когда оно удерживается) реагирует на событие горизонтальной прокрутки/колеса мыши","zh-CN":"“保持”显示的弹窗如何对水平滚动/鼠标滚轮事件做出反应"},Pan:{ko:"이동","pt-BR":"Mover",ru:"Панель","zh-CN":"平移"},Gallery:{"pt-BR":"Galeria",ru:"Галерея","zh-CN":"图库"},"Vertical video scroll action":{"pt-BR":"Ação de rolagem vertical do vídeo",ru:"Действие вертикальной прокрутки видео","zh-CN":"垂直视频滚动动作"},"Overrides the vertical scroll action for videos. Set to `Default` to avoid overriding the behavior.":{"pt-BR":"Substitui a ação de rolagem vertical para vídeos. Defina como `Padrão` para evitar substituir o comportamento.",ru:"Переопределяет действие вертикальной прокрутки для видео. Установите значение `По умолчанию`, чтобы избежать переопределения поведения.","zh-CN":"覆盖视频的垂直滚动动作。设为 `默认` 来避免覆盖该行为。"},"Invert vertical scroll seek":{"pt-BR":"Inverter busca de rolagem vertical",ru:"Инвертировать стремление вертикальной прокрутки","zh-CN":"反转垂直滚动的快进/快退"},"Inverts the seek direction when scrolling vertically: Scrolling up will seek right, scrolling down will seek left.":{"pt-BR":"Inverte a direção da busca ao rolar verticalmente: Rolar para cima buscará para a direita, rolar para baixo buscará para a esquerda.",ru:"Инвертирует направление стремления при вертикальной прокрутке: Прокрутка вверх будет стремиться вправо, прокрутка вниз будет стремиться влево.","zh-CN":"在垂直滚动时反转移动方向:向上滚动将向右移动,向下滚动将向左移动。"},"Horizontal video scroll action":{"pt-BR":"Ação de rolagem horizontal do vídeo",ru:"Действие горизонтальной прокрутки видео","zh-CN":"水平视频滚动动作"},"Overrides the horizontal scroll action for videos. Set to `Default` to avoid overriding the behavior.":{"pt-BR":"Substitui a ação de rolagem horizontal para vídeos. Defina como `Padrão` para evitar substituir o comportamento.",ru:"Переопределяет действие горизонтальной прокрутки для видео. Установите значение `По умолчанию`, чтобы избежать переопределения поведения.","zh-CN":"覆盖视频的水平滚动动作。设为 `默认` 来避免覆盖该行为。"},Default:{"pt-BR":"Padrão",ru:"По умолчанию","zh-CN":"默认"},Seek:{"pt-BR":"Buscar",ru:"Стремление","zh-CN":"快进/快退"},None:{ko:"없다","pt-BR":"Nenhum",ru:"Ничего","zh-CN":"无"},"Override scroll outside of popup":{"pt-BR":"Substituir rolagem fora do pop-up",ru:"Переопределение прокрутки вне всплывающего окна","zh-CN":"覆盖弹窗外的滚动"},"Scrolling outside of the popup will also be overriden by the script":{"pt-BR":"A rolagem fora do pop-up também será substituída pelo script",ru:"Прокрутка за пределами всплывающего окна также будет переопределена скриптом.","zh-CN":"同时覆盖弹窗外的滚动"},"Zoom origin":{"pt-BR":"Origem do zoom",ru:"Начало масштабирования","zh-CN":"缩放原点"},"The point on the image it's zoomed in/out from":{"pt-BR":"O ponto da imagem a partir do qual é ampliado/reduzido",ru:"Точка на изображении, от которой оно увеличивается/уменьшается.","zh-CN":"图像放大/缩小的原点"},Cursor:{ko:"커서","pt-BR":"Cursor",ru:"Курсор","zh-CN":"鼠标指针"},Center:{"pt-BR":"Centro",ru:"Центр","zh-CN":"中心"},"Zoom out towards page middle":{"pt-BR":"Reduzir o zoom em direção ao meio da página",ru:"Уменьшение масштаба к середине страницы","zh-CN":"缩小到页面中间"},'Sets the origin when zooming out to the page middle, overriding the "Zoom Origin" option above.':{"pt-BR":'Define a origem ao diminuir o zoom para o meio da página, substituindo a opção "Origem do Zoom" acima.',ru:'Устанавливает начало координат при уменьшении масштаба до середины страницы, переопределяя "Начало масштабирования" вариант выше.',"zh-CN":"设置缩放到页面中间时的原点,重写上放的“缩放原点”选项。"},"Within viewport":{"pt-BR":"Dentro da área de visualização",ru:"В пределах области просмотра","zh-CN":"在视野内"},"Zoom behavior":{ko:"줌 동작","pt-BR":"Comportamento do zoom",ru:"Поведение масштабирования","zh-CN":"缩放行为"},"How zooming should work":{"pt-BR":"Como o zoom deve funcionar",ru:"Как будет работать масштабирование.","zh-CN":"缩放应如何工作"},"Fit/Full":{ko:"화면맞춤/전체","pt-BR":"Ajustar/Original",ru:"По размеру/Полное","zh-CN":"适应/全尺寸"},"Toggles between the full size, and fit-to-screen":{"pt-BR":"Alterna entre o tamanho original e ajustar à tela",ru:"Переключение между полным размером и по размеру экрану.","zh-CN":"在全尺寸和适合屏幕之间切换"},Incremental:{fr:"Incrémentale",ko:"증분","pt-BR":"Incremental",ru:"Пошаговое","zh-CN":"增量"},"Incremental zoom multiplier":{"pt-BR":"Multiplicador de zoom incremental",ru:"Множитель пошагового масштабирования","zh-CN":"增量缩放系数"},"How much to zoom in/out by (for incremental zooming)":{"pt-BR":"Quanto aumentar/diminuir o zoom (para zoom incremental)",ru:"На сколько увеличить/уменьшить масштаб (для пошагового масштабирования).","zh-CN":"增量缩放时每次放大/缩小多少"},x:{"pt-BR":"x",ru:"x","zh-CN":"倍"},"Move with cursor":{"pt-BR":"Mover com o cursor",ru:"Перемещение с помощью курсора","zh-CN":"随鼠标指针移动"},"Moves the popup as the cursor moves":{"pt-BR":"Move o pop-up conforme o movimento do cursor",ru:"Перемещает всплывающее окно по мере перемещения курсора.","zh-CN":"鼠标移动时移动弹窗"},"Move within page":{"pt-BR":"Mover dentro da página",ru:"Перемещение внутри страницы","zh-CN":"在页面内移动"},"Ensures the popup doesn't leave the page":{"pt-BR":"Garante que o pop-up não saia da página",ru:"Гарантирует, что всплывающее окно не покинет страницу.","zh-CN":"确保弹窗不会离开页面"},"Zoom out fully to close":{ko:"닫기 위해 완전히 축소","pt-BR":"Reduzir totalmente o zoom para fechar",ru:"Закрывать при полном уменьшении масштаба","zh-CN":"完全缩小至关闭"},"Closes the popup if you zoom out past the minimum zoom":{ko:"최소 크기로 축소할 경우 팝업 닫기","pt-BR":"Fecha o pop-up se você reduzir o zoom além do mínimo",ru:"Закрывает всплывающее окно, если вы уменьшаете масштаб, превышающий минимальный.","zh-CN":"缩小超过最小级别时关闭弹窗"},"Scroll past gallery end to close":{"pt-BR":"Rolar além do final da galeria para fechar",ru:"Закрывать при прокручивании до конца галереи","zh-CN":"滚动到图库末尾时关闭"},"Closes the popup if you scroll past the end of the gallery":{"pt-BR":"Fecha o pop-up se você rolar além do final da galeria",ru:"Закрывает всплывающее окно, если вы прокручиваете его до конца галереи.","zh-CN":"滚动到图库的结尾时关闭弹窗"},"Popup position":{ko:"팝업 위치","pt-BR":"Posição do pop-up",ru:"Положение всплывающего окна","zh-CN":"弹出位置"},"Where the popup will appear":{ko:"팝업이 표시되는 위치","pt-BR":"Onde o pop-up aparecerá",ru:"Где появится всплывающее окно.","zh-CN":"弹窗出现在哪里"},"Cursor middle":{ko:"커서 중간","pt-BR":"Meio do cursor",ru:"Середина курсора","zh-CN":"鼠标指针为中心"},"Underneath the mouse cursor":{ko:"마우스 커서 아래","pt-BR":"Abaixo do cursor do mouse",ru:"Под курсором","zh-CN":"鼠标指针下方"},"Beside cursor":{ko:"커서 옆","pt-BR":"Ao lado do cursor",ru:"Рядом с курсором","zh-CN":"鼠标指针旁"},"Page middle":{ko:"페이지 중간","pt-BR":"Meio da página",ru:"Середина страницы","zh-CN":"页面中间"},"Prevent cursor overlap":{"pt-BR":"Evitar sobreposição do cursor",ru:"Предотвратить перекрытие курсора","zh-CN":"避免指针重叠"},"Prevents the image from overlapping with the cursor":{"pt-BR":"Impede que a imagem se sobreponha ao cursor",ru:"Предотвращает перекрытие изображение с курсором.","zh-CN":"避免图像与鼠标指针重叠"},"Center popup on overflow":{"pt-BR":"Centralizar pop-up em caso de transbordamento",ru:"Центрировать всплывающее окно при переполнении","zh-CN":"溢出时将弹窗置于中心"},"Centers the popup if its initial size overflows":{"pt-BR":"Centraliza o pop-up se seu tamanho inicial transbordar",ru:"Центрирует всплывающее окно, если его начальный размер переполняется","zh-CN":"如果初始大小溢出,将弹窗置于中心位置"},"Overflow origin":{"pt-BR":"Origem do transbordamento",ru:"Начало переполнения","zh-CN":"溢出原点"},"Where the popup will appear in the page if its initial size overflows":{"pt-BR":"Onde o pop-up aparecerá na página se seu tamanho inicial transbordar",ru:"Где всплывающее окно появится на странице, если его начальный размер переполняется","zh-CN":"如果初始大小溢出,弹窗将出现在页面的哪个位置"},"Hide cursor over popup":{"pt-BR":"Ocultar cursor sobre o pop-up",ru:"Скрывать курсор на всплывающем окне","zh-CN":"弹窗上隐藏鼠标指针"},"Hides the cursor when the mouse is over the popup":{"pt-BR":"Oculta o cursor quando o mouse está sobre o pop-up",ru:"Скрывает курсор, когда мышь находится на всплывающем окне.","zh-CN":"鼠标在弹窗上悬停时隐藏指针"},"Hide cursor after":{"pt-BR":"Ocultar cursor após",ru:"Скрывать курсор после","zh-CN":"隐藏指针延迟"},"Hides the cursor over the popup after a specified period of time (in milliseconds), 0 always hides the cursor":{"pt-BR":"Oculta o cursor sobre o pop-up após um período de tempo especificado (em milissegundos), 0 sempre oculta o cursor",ru:"Скрывает курсор во всплывающем окне после определенного периода времени (в миллисекундах). `0` - всегда скрывать курсор.","zh-CN":"鼠标在弹窗上停留指定时间(毫秒)后隐藏指针,0 为立即隐藏"},"Mouse jitter threshold":{"pt-BR":"Limiar de oscilação do mouse",ru:"Порог дрожания мыши","zh-CN":"鼠标抖动阈值"},"Threshold for mouse movement before the mouse cursor is shown again, 0 always shows the cursor after any movement":{"pt-BR":"Limiar para movimento do mouse antes que o cursor seja mostrado novamente, 0 sempre mostra o cursor após qualquer movimento",ru:"Порог для перемещения мыши до того, как курсор мыши будет показан снова. `0` - всегда показывать курсор после любого движения.","zh-CN":"鼠标指针再次显示前的移动阈值,0 为始终显示移动后的指针"},px:{"pt-BR":"px",ru:"пикс.","zh-CN":"像素"},"Disable pointer events":{"pt-BR":"Desabilitar eventos do ponteiro",ru:"Отключить события указателя","zh-CN":"禁用指针事件"},"Enabling this option will allow you to click on links underneath the popup":{"pt-BR":"Habilitar esta opção permitirá que você clique em links sob o pop-up",ru:"Включение этого параметра позволит вам нажимать на ссылки под всплывающим окном.","zh-CN":"启用此选项将允许您单击弹窗下方的链接"},"Ignore clicks outside popup":{"pt-BR":"Ignorar cliques fora do pop-up",ru:"Игнорировать клики вне всплывающего окна","zh-CN":"忽略弹窗外的点击"},"Any mouse event outside the popup will be discarded with this option":{"pt-BR":"Qualquer evento de mouse fora do pop-up será descartado com esta opção",ru:"Любое событие мыши вне всплывающего окна будет отменено этим параметром.","zh-CN":"启用此选项后,任何弹窗外的鼠标事件都将丢弃"},"Enable downloading HLS/DASH streams":{"pt-BR":"Habilitar download de transmissões HLS/DASH",ru:"Включить скачивание потоков HLS/DASH","zh-CN":"启用 HLS/DASH 流媒体的下载"},"Downloads and muxes the contents of the streams rather than the stream information file.\nThis currently does not work under modern browsers due to `SharedArrayBuffer` restrictions.":{"pt-BR":"Baixa e multiplexa o conteúdo dos streams em vez do arquivo de informações do stream.\nAtualmente, isso não funciona em navegadores modernos devido a restrições do `SharedArrayBuffer`."},"Prefer MP4 over MKV":{"pt-BR":"Preferir MP4 em vez de MKV",ru:"Предпочитать MP4, а не MKV","zh-CN":"偏好 MP4 代替 MKV"},"Tries to mux the video into mp4 instead of mkv when required. This may slightly slow down muxing as it currently needs to try muxing both.":{"pt-BR":"Tenta multiplexar o vídeo em mp4 em vez de mkv quando necessário. Isso pode diminuir um pouco a multiplexação, pois atualmente precisa tentar multiplexar ambos.",ru:"Пытается мультиплексировать видео в mp4 вместо mkv, когда это требуется. Это может слегка замедлить процесс мультиплексирования, так как в настоящее время необходимо попробовать мультиплексировать и то, и другое.","zh-CN":"请求时尝试用 mp4 代替 mkv。这可能稍微降低组合内容的速度,因为目前需要尝试两组操作。"},"Link image":{"pt-BR":"Vincular imagem",ru:"Ссылка на изображения","zh-CN":"链接图像"},"Adds a link to the image in the popup":{"pt-BR":"Adiciona um link para a imagem no pop-up",ru:"Добавляет ссылку на изображение во всплывающем окне.","zh-CN":"在弹窗的图像中添加链接"},"Link video":{"pt-BR":"Vincular vídeo",ru:"Ссылка на видео","zh-CN":"链接视频"},"Adds a link to the video in the popup":{"pt-BR":"Adiciona um link para o vídeo no pop-up",ru:"Добавляет ссылку на видео во всплывающем окне.","zh-CN":"在弹窗的视频中添加链接"},"Clicking image closes":{"pt-BR":"Fecha a imagem ao clicar",ru:"Закрывать изображение по нажатию на него","zh-CN":"点击图片关闭"},"Clicking the popup image closes the popup":{"pt-BR":"Fecha o pop-up ao clicar na imagem",ru:"Нажатие на всплывающее изображение закрывает всплывающее окно.","zh-CN":"单击弹出图像将关闭弹窗"},"Clicking video closes":{"pt-BR":"Fecha o vídeo ao clicar",ru:"Закрывать видео по нажатию на него","zh-CN":"点击视频关闭"},"Clicking the popup video closes the popup":{"pt-BR":"Fecha o pop-up ao clicar no vídeo",ru:"Нажатие на всплывающее видео закрывает всплывающее окно.","zh-CN":"点击弹出的视频时关闭弹窗"},"Clicking link downloads":{"pt-BR":"Clicar no link faz o download",ru:"Нажатие на ссылку скачивания","zh-CN":"点击链接下载"},"Instead of opening the link in a new tab, it will download the image/video instead":{"pt-BR":"Em vez de abrir o link em uma nova guia, ele fará o download da imagem/vídeo",ru:"Вместо того чтобы открывать ссылку в новой вкладке, она будет скачивать изображение/видео.","zh-CN":"下载图像/视频,代替在新标签页中打开链接"},"Close key":{"pt-BR":"Tecla para fechar",ru:"Клавиша закрытия","zh-CN":"关闭键"},"Closes the popup when this key is pressed. Currently, ESC will also close the popup regardless of the value of this setting.":{"pt-BR":"Fecha o pop-up quando esta tecla é pressionada. Atualmente, ESC também fecha o pop-up independentemente do valor desta configuração.",ru:"При нажатии этой клавиши, закрывает всплывающее окно. В настоящее время ESC также закроет всплывающее окно независимо от значения этих настроек.","zh-CN":"按下此键时关闭弹窗。目前,ESC 也将关闭弹窗,并且无视此设置。"},"Download key":{"pt-BR":"Tecla para download",ru:"Клавиша скачивания","zh-CN":"下载键"},"Downloads the image in the popup when this key is pressed":{"pt-BR":"Baixa a imagem no pop-up quando esta tecla é pressionada",ru:"При нажатии этой клавиши, начнёт скачивать изображение во всплывающем окне.","zh-CN":"按下此键时下载弹窗中的图像"},"Open in new tab key":{"pt-BR":"Tecla para abrir em uma nova guia",ru:"Клавиша открытия в новой вкладке","zh-CN":"在新建标签页中打开的按键"},"Opens the image in the popup in a new tab when this key is pressed":{"pt-BR":"Abre a imagem no pop-up em uma nova guia quando esta tecla é pressionada",ru:"При нажатии этой клавиши, открывает изображение во всплывающем окне на новой вкладке.","zh-CN":"按下此键时在新建的标签页中弹窗中的图像"},"Open in background tab key":{"pt-BR":"Tecla para abrir em segundo plano",ru:"Клавиша открытия в фоновой вкладке","zh-CN":"在后台标签页打开的按键"},"Opens the image in the popup in a new tab without switching to it when this key is pressed":{"pt-BR":"Abre a imagem no pop-up em uma nova guia sem alternar para ela quando esta tecla é pressionada",ru:"При нажатии этой клавиши, открывает изображение во всплывающем окне на новой вкладке, не переходя на неё.","zh-CN":"按下此键时在新建的后台标签页中弹窗中的图像"},"Copy link key":{"pt-BR":"Tecla para copiar link",ru:"Клавиша копирования ссылки","zh-CN":"复制链接键"},"Copies the link of the media to the clipboard when this key is pressed":{"pt-BR":"Copia o link da mídia para a área de transferência quando esta tecla é pressionada",ru:"При нажатии этой клавиши, копирует ссылку медиа в буфер обмена.","zh-CN":"按下此键时,将媒体链接复制到剪贴板"},"Open options key":{"pt-BR":"Tecla para abrir as opções",ru:"Клавиша открытия параметров","zh-CN":"打开选项键"},"Opens this page in a new tab when this key is pressed":{"pt-BR":"Abre esta página em uma nova guia quando esta tecla é pressionada",ru:"При нажатии этой клавиши, откроет эту страницу в новой вкладке.","zh-CN":"按下此键时在标签页中打开此页面"},"Open original page key":{"pt-BR":"Tecla para abrir a página original",ru:"Клавиша открытия страницы оригинала","zh-CN":"打开原始页面键"},"Opens the original page (if available) when this key is pressed":{"pt-BR":"Abre a página original (se disponível) quando esta tecla é pressionada",ru:"При нажатии этой клавиши, открывает страницу оригинала (если она доступна).","zh-CN":"按下此键时打开原始页面(如果可用)"},"Rotate left key":{"pt-BR":"Tecla para girar para a esquerda",ru:"Клавиша поворота влево","zh-CN":"向左旋转键"},"Rotates the popup 90 degrees to the left":{"pt-BR":"Gira o pop-up 90 graus para a esquerda",ru:"При нажатии этой клавиши, поворачивает всплывающее окно на 90 градусов влево.","zh-CN":"将弹窗向左旋转90度"},"Rotate right key":{"pt-BR":"Tecla para girar para a direita",ru:"Клавиша поворота вправо","zh-CN":"向右旋转键"},"Rotates the popup 90 degrees to the right":{"pt-BR":"Gira o pop-up 90 graus para a direita",ru:"При нажатии этой клавиши, поворачивает всплывающее окно на 90 градусов вправо.","zh-CN":"将弹窗向右旋转90度"},"Horizontal flip key":{"pt-BR":"Tecla para inverter horizontalmente",ru:"Клавиша для отражения по горизонтали","zh-CN":"水平翻转键"},"Flips the image horizontally":{"pt-BR":"Inverte a imagem horizontalmente",ru:"При нажатии этой клавиши, зеркально отражает изображение по горизонтали.","zh-CN":"水平翻转图像"},"Vertical flip key":{"pt-BR":"Tecla para inverter verticalmente",ru:"Клавиша для отражения по вертикали","zh-CN":"垂直翻转键"},"Flips the image vertically":{"pt-BR":"Inverte a imagem verticalmente",ru:"При нажатии этой клавиши, зеркально отражает изображение по вертикали.","zh-CN":"垂直翻转图像"},"Zoom in key":{"pt-BR":"Tecla para ampliar",ru:"Клавиша увеличения масштаба","zh-CN":"放大键"},"Incrementally zooms into the image":{"pt-BR":"Amplia a imagem incrementalmente",ru:"При нажатии этой клавиши, увеличивает масштаб изображения.","zh-CN":"逐步放大图像"},"Zoom out key":{"pt-BR":"Tecla para reduzir",ru:"Клавиша уменьшения масштаба","zh-CN":"缩小键"},"Incrementally zooms out of the image":{"pt-BR":"Reduz a imagem incrementalmente",ru:"При нажатии этой клавиши, уменьшает масштаб изображения.","zh-CN":"逐步缩小图像"},"Full zoom key":{"pt-BR":"Tecla para zoom total",ru:"Клавиша полного масштабирования","zh-CN":"全尺寸缩放键"},"Sets the image to be at a 100% zoom, even if it overflows the screen":{"pt-BR":"Define a imagem para ter um zoom de 100%, mesmo que transborde a tela",ru:"При нажатии этой клавиши, устанавливает 100%-ное масштабирование изображения, даже если оно переполняет экран.","zh-CN":"将图像设置为 100% 缩放,即使将溢出屏幕"},"Fit screen key":{"pt-BR":"Tecla para ajustar à tela",ru:"Клавиша подгонки по размеру экрана","zh-CN":"适合屏幕键"},"Sets the image to either be at a 100% zoom, or to fit the screen, whichever is smaller":{"pt-BR":"Define a imagem para ter um zoom de 100% ou para caber na tela, o que for menor",ru:"При нажатии этой клавиши, устанавливает изображение либо со 100%-ным масштабом, либо в соответствии с размером экрана, в зависимости от того, что меньше.","zh-CN":"将图像设置为 100% 缩放或适合屏幕,以较小者为准"},"Toggle fullscreen key":{"pt-BR":"Tecla para alternar tela cheia",ru:"Клавиша переключения на весь экран","zh-CN":"切换全屏键"},"Toggles fullscreen mode for the image/video in the popup":{"pt-BR":"Alterna o modo de tela cheia para a imagem/vídeo no popup",ru:"При нажатии этой клавиши, переключает полноэкранный режим для изображения/видео во всплывающем окне.","zh-CN":"切换弹窗中的图像/视频的全屏模式"},"Popup for plain hyperlinks":{ko:"일반적인 링크에도 팝업","pt-BR":"Popup para hyperlinks simples",ru:"Всплывающее окно для простых гиперссылок","zh-CN":"为纯超链接弹窗"},"Whether or not the popup should also open for plain hyperlinks":{ko:"일반 하이퍼링크의 팝업 열기 여부","pt-BR":"Se o popup também deve abrir para hyperlinks simples",ru:"Должно ли всплывающее окно также открываться для простых гиперссылок.","zh-CN":"是否为纯粹的超链接显示弹窗"},"Only for links that look valid":{ko:"유효해 보이는 링크에만 해당","pt-BR":"Somente para links que parecem válidos",ru:"Только для ссылок, которые выглядят допустимо","zh-CN":"只针对看起来有效的链接"},"Enabling this option will only allow links to be popped up if they look valid (such as if they have a known image/video extension, or are explicitly supported)":{ko:"이 옵션을 활성화하면 링크가 유효한 것으로 보이는 경우에만(예: 알려진 이미지/비디오 확장명이 있거나 명시적으로 지원되는 경우) 링크가 팝업될 수 있음","pt-BR":"Ativar esta opção permitirá que os links sejam exibidos em popup apenas se parecerem válidos (como se tiverem uma extensão de imagem/vídeo conhecida ou forem explicitamente suportados)",ru:"Включение этого параметра позволит всплывать ссылкам только в том случае, если они выглядят допустимыми (например, если они имеют известное расширение изображения/видео, или если они явно поддерживаются).","zh-CN":"启用此选项后,将只为看起来有效的链接显示弹窗(例如有已知的图像/视频扩展名,或者明显受支持)"},"Popup page URL":{"pt-BR":"URL da página do popup",ru:"Всплывающее окно для URL страниц","zh-CN":"为页面网址弹窗"},"If no element can be found, try the page URL. Only relevant for pagelink rules, such as image and video hosting websites":{"pt-BR":"Se nenhum elemento for encontrado, tente a URL da página. Relevante apenas para regras de pagelink, como sites de hospedagem de imagem e vídeo",ru:"Если ни один элемент не найден, попробуйте использовать URL-адрес страницы. Fктуально nолько для правил ссылки страницы, таких как сайты хостинга изображений и видео.","zh-CN":"如果找不到元素,尝试页面网址。只与 pagelink 规则相关,如图像或视频托管网站"},"Popup for `<iframe>`":{ko:"<iframe>에 대한 팝업","pt-BR":"Popup para `<iframe>`",ru:"Всплывающее окно для `<iframe>`","zh-CN":"为 <iframe> 弹窗"},"Allows `<iframe>` elements to be popped up as well. Storing images/videos in this way is rather uncommon, but it can allow embeds to be supported":{ko:"<iframe>의 요소들도 팝업이 작동하도록 허용. 이런 식으로 이미지/비디오를 저장하는 것은 다소 드문 일이지만, embeds를 지원할 수 있음","pt-BR":"Permite que elementos `<iframe>` também sejam abertos em popup. Armazenar imagens/vídeos desta forma é incomum, mas pode permitir suporte a embeds",ru:"Позволяет всплывать элементам `<iframe>`. Хранение изображений/видео таким образом довольно редкое явление, но оно может позволить поддерживать встраиваемые файлы.","zh-CN":"允许为 `<iframe>` 元素显示弹窗。以这种方式存储图像/视频相当罕见,但总之可以支持"},"Popup for `<canvas>`":{ko:"<canvas>에 대한 팝업","pt-BR":"Popup para `<canvas>`",ru:"Всплывающее окно для `<canvas>`","zh-CN":"为 <canvas> 弹窗"},"Allows `<canvas>` elements to be popped up as well. This will likely cause popups with any kind of web-based games, so it's recommended to keep this disabled":{ko:"<canvas>의 요소들도 팝업이 작동하도록 허용. 이것은 어떤 종류의 웹 기반 게임이라도 팝업을 유발할 가능성이 높으므로, 이 기능을 사용하지 않도록 유지하는 것이 좋음","pt-BR":"Permite que elementos `<canvas>` também sejam abertos em popup. Isso provavelmente causará popups com qualquer tipo de jogo baseado na web, portanto, é recomendável manter esta opção desativada",ru:"Позволяет всплывать элементам `<canvas>`. Это, скорее всего, будет вызывать всплывающие окна с любыми веб-играми, поэтому рекомендуется отключить эту функцию.","zh-CN":"允许为 `<canvas>` 元素显示弹窗。这可能导致在网页游戏上触发弹窗,所以建议此项保持禁用"},"Popup for `<svg>`":{ko:"<svg>에 대한 팝업","pt-BR":"Popup para `<svg>`",ru:"Всплывающее окно для `<svg>`","zh-CN":"为 <svg> 弹窗"},"Allows `<svg>` elements to be popped up as well. These are usually used for icons, and can occasionally cause problems for websites that overlay icons on top of images":{ko:"<canvas>의 요소들도 팝업이 작동하도록 허용. 이것은 보통 아이콘에 사용되며, 때때로 이미지 위에 아이콘을 오버레이하는 웹 사이트에 문제를 일으킬 수 있음","pt-BR":"Permite que elementos `<svg>` também sejam abertos em popup. Geralmente são usados para ícones e ocasionalmente podem causar problemas para sites que sobrepõem ícones em cima de imagens",ru:"Позволяет всплывать элементам `<svg>`. Обычно они используются для иконок и иногда могут вызывать проблемы для веб-сайтов, которые накладывают иконки поверх изображений.","zh-CN":"允许为 `<svg>` 元素显示弹窗。这通常用于图标,并且偶尔会在网站于图像上叠加图标时出现问题"},"Enable gallery":{"pt-BR":"Ativar galeria",ru:"Включить галерею","zh-CN":"启用图库"},"Toggles whether gallery detection support should be enabled":{"pt-BR":"Alterna se o suporte à detecção de galeria deve ser ativado",ru:"Переключает, должна ли быть включена поддержка обнаружения галереи.","zh-CN":"切换是否启用图库检测支持"},"Cycle gallery":{"pt-BR":"Ciclo da galeria",ru:"Зациклить галерею","zh-CN":"图库循环"},"Going to the previous image for the first image will lead to the last image and vice-versa":{"pt-BR":"Ir para a imagem anterior na primeira imagem levará para a última imagem e vice-versa",ru:"Переход к предыдущему изображению с первого изображения приведет к последнему изображению и наоборот.","zh-CN":"第一个图像再向上抵达最后一个图像,最后一个图像向下抵达第一个图像"},"Previous gallery item":{"pt-BR":"Item anterior da galeria",ru:"Предыдущий элемент галереи","zh-CN":"前一个图库项"},"Key to trigger the previous gallery item":{"pt-BR":"Tecla para acionar o item anterior da galeria",ru:"Клавиша для запуска предыдущего элемента галереи.","zh-CN":"触发上一个图库项的按键"},"Next gallery item":{"pt-BR":"Próximo item da galeria",ru:"Следующий элемент галереи","zh-CN":"下一个图库项"},"Key to trigger the next gallery item":{"pt-BR":"Tecla para acionar o próximo item da galeria",ru:"Клавиша для запуска следующего элемента галереи.","zh-CN":"触发下一个图库项的按键"},"Gallery download key":{"pt-BR":"Tecla para baixar a galeria",ru:"Клавиша скачивания галереи","zh-CN":"图库下载键"},"Key to download the current gallery":{"pt-BR":"Tecla para baixar a galeria atual",ru:"Клавиша для скачивания текущей галереи.","zh-CN":"下载当前图库的按键"},"Download method":{"pt-BR":"Método de download",ru:"Способ скачивания","zh-CN":"下载方法"},"How the gallery should be downloaded":{"pt-BR":"Como a galeria deve ser baixada",ru:"Как нужно скачивать галерею","zh-CN":"应如何下载图库"},"Zip file":{"pt-BR":"Arquivo Zip",ru:"Архив","zh-CN":"Zip 文件"},JDownloader:{"pt-BR":"JDownloader",ru:"JDownloader","zh-CN":"JDownloader"},"Download unchanged media":{"pt-BR":"Baixar mídia inalterada",ru:"Скачивать медиа без изменений","zh-CN":"下载未更改的媒体"},"Includes gallery items that have not been changed. Useful to potentially avoid downloading thumbnails":{"pt-BR":"Inclui itens da galeria que não foram alterados. Útil para evitar o download de miniaturas",ru:"Включает в себя элементы галереи, которые не были изменены. Полезно, чтобы потенциально избежать скачивания миниатюр.","zh-CN":"包含未更改的图库项目。有助于潜在避免下载缩略图"},"Directory/zip filename format":{"pt-BR":"Formato do nome do diretório/arquivo zip",ru:"Формат имени файла каталога/архива","zh-CN":"目录/zip 文件名格式"},'Format string(s) for the directory (package name for JDownloader) and zip filename (if applicable).\nRefer to "Filename format" under the Rules section for documentation. The variables are set from the first loaded media.\nAn additional `items_amt` format variable is supported, which contains the number of items.\n`.zip` will be automatically suffixed for zip filenames.':{"pt-BR":'Cadeia(s) de formato para o diretório (nome do pacote para JDownloader) e nome do arquivo zip (se aplicável).\nConsulte "Formato do nome do arquivo" na seção Regras para obter documentação. As variáveis são definidas a partir da primeira mídia carregada.\nUma variável de formato adicional items_amt é suportada, que contém o número de itens.\n.zip será automaticamente adicionado como sufixo para nomes de arquivos zip.',ru:'Формат строк каталога (имя пакета для JDownloader) и имя zip-файла (если применимо).\nИзучите документацию "Формат имени файла" в разделе "Правила". Переменные устанавливаются с первого загруженного медиа.\nПоддерживается дополнительная переменная формата `items_amt`, которая содержит количество элементов.\nСуффикс `.zip` будет автоматически добавляться к именам zip-файлов.',"zh-CN":"目录(JDownloader 的包名)和 zip 文件名(如果适用)的格式化字符串。\n文档参见“规则”部分中的“文件名格式”。这些变量来自首个已加载的媒体。\n支持一个额外的 `items_amt` 格式变量,其中包含项目数量。\nzip 的文件名自动追加 `.zip` 后缀。"},"Zip: Store in subdirectory":{"pt-BR":"Zip: Armazenar em subdiretório",ru:"Zip: Хранить в подкаталоге","zh-CN":"Zip: 存储在子目录中"},"Stores the files in a subdirectory with the same name as the .zip file (without the .zip extension)":{"pt-BR":"Armazena os arquivos em um subdiretório com o mesmo nome do arquivo .zip (sem a extensão .zip)",ru:"Хранит файлы в подкаталоге с тем же именем, что и zip-файл (без расширения .zip).","zh-CN":"将文件存储在与 .zip 文件同名的子目录中(目录不带 .zip)"},"JD: Autostart":{"pt-BR":"JD: Iniciar automaticamente",ru:"JD: Автозапуск","zh-CN":"JD: 自动启动"},"Autostarts the download when added to JDownloader":{"pt-BR":"Inicia o download automaticamente quando adicionado ao JDownloader",ru:"Автоматически запускает скачивание при добавлении в JDownloader","zh-CN":"添加到 JDownloader 时自动开始下载"},"JD: Referer policy":{"pt-BR":"JD: Política de Referência",ru:"JD: Реферальная политика","zh-CN":"JD: Referer 策略"},"Due to a current limitation in JDownloader's API, the `Referer` (sic) header can only be set on a per-package basis. This option allows working around it by submitting multiple packages with the same name using different Referer headers. This can result in JD spamming notifications due to the number of packages created.":{"pt-BR":"Devido a uma limitação atual na API do JDownloader, o cabeçalho `Referer` (sic) só pode ser definido por pacote. Esta opção permite contornar isso enviando vários pacotes com o mesmo nome usando diferentes cabeçalhos Referer. Isso pode resultar em spam de notificações do JD devido ao número de pacotes criados.",ru:"Из-за текущего ограничения в API JDownloader, заголовок `Referer` (sic) может быть установлен только для каждого пакета. Этот параметр позволяет обойти это, отправив несколько пакетов с одинаковым именем, используя разные заголовки Referer. Это может привести к спам-уведомлениям JD из-за количества созданных пакетов.","zh-CN":"由于目前 JDownloader API 的限制,`Referer` (sic) 头只能在每个包的基础上设置。此选项通过提交同名但不同 Referer 头的多个包来规避该问题。这可能导致 JD 由于创建的包数量较多而给出垃圾消息通知。"},"Per-domain":{"pt-BR":"Por domínio",ru:"Для каждого домена","zh-CN":"按域名"},"Zip: Store info file":{"pt-BR":"Zip: Armazenar arquivo de informações",ru:"Zip: Хранить информацию файла","zh-CN":"Zip: 存储信息文件"},"Stores a `info.txt` file in the .zip containing information about the downloaded files and host page.":{"pt-BR":"Armazena um arquivo `info.txt` no .zip contendo informações sobre os arquivos baixados e a página de origem.",ru:"Хранит файл `info.txt` в .zip, содержащую информацию о скачаных файлах и странице хоста.","zh-CN":"在 .zip 中存储一个包含下载的文件和网页信息的“info.txt”文件。"},"Move to next when video finishes":{"pt-BR":"Mover para o próximo quando o vídeo terminar",ru:"После заканчивания видео, переходить к следующему","zh-CN":"视频结束时转到下一个"},"Moves to the next gallery item when a video finishes playing":{"pt-BR":"Move para o próximo item da galeria quando um vídeo terminar de reproduzir",ru:"Переход к следующему элементу галереи после завершения воспроизведения видео.","zh-CN":"视频播放结束时移动到下一个图库项目"},"Popup CSS style":{ko:"팝업 CSS","pt-BR":"Estilo CSS do popup",ru:"Стиль CSS всплывающего окна","zh-CN":"弹窗 CSS 样式"},"Custom CSS styles for the popup":{"pt-BR":"Estilos CSS personalizados para o popup",ru:"Пользовательские стили CSS для всплывающего окна.","zh-CN":"自定义弹窗的 CSS 样式"},'Most valid CSS is supported, with these differences:\n<ul><li>Multiline comments (<code>/* ... */</code>) are currently not supported</li>\n<li>Single comments (<code>// ...</code>) are supported, but only at the beginning of a line</li>\n<li><code>%thumburl%</code> is the URL of the thumbnail image. For example, you could use it like this: <code>background-image: url(%thumburl%)</code><br />\nThe URL is properly encoded, so quotes are not necessary (but not harmful either)</li>\n<li><code>%fullurl%</code> is the URL of the full image. If IMU fails to find a larger image, it will be the same as <code>%thumburl%</code></li>\n<li>Styles are <code>!important</code> by default</li></ul>\n<p>For Button CSS style, you can also customize the CSS for individual buttons through their IDs. For example:</p>\n<pre>\n#closebtn {\n  background-color: red;\n  // -imu-text allows you to set the text inside the button\n  -imu-text: "Close";\n  // -imu-title allows you to set the tooltip when hovering\n  -imu-title: "Close the popup";\n}\n#galleryprevbtn, #gallerynextbtn {\n  border-radius: 100px;\n}\n</pre>':{"pt-BR":'A maior parte do CSS válido é suportada, com as seguintes diferenças:\n<ul><li>Comentários multilinha (<code>/ ... */</code>) não são suportados no momento</li>\n<li>Comentários de linha única (<code>// ...</code>) são suportados, mas apenas no início de uma linha</li>\n<li><code>%thumburl%</code> é a URL da imagem em miniatura. Por exemplo, você pode usá-la assim: <code>background-image: url(%thumburl%)</code><br />\nA URL é codificada corretamente, então aspas não são necessárias (mas também não são prejudiciais)</li>\n<li><code>%fullurl%</code> é a URL da imagem completa. Se o IMU não conseguir encontrar uma imagem maior, ela será a mesma que <code>%thumburl%</code></li>\n<li>Os estilos são <code>!important</code> por padrão</li></ul>\n<p>Para o estilo CSS dos botões, você também pode personalizar o CSS para botões individuais através de seus IDs. Por exemplo:</p>\n<pre>\n#closebtn {\n  background-color: red;\n  // -imu-text permite definir o texto dentro do botão\n  -imu-text: "Fechar";\n  // -imu-title permite definir a dica de ferramenta ao passar o mouse\n  -imu-title: "Fechar popup";\n}\n#galleryprevbtn, #gallerynextbtn {\n  border-radius: 100px;\n}\n</pre>',ru:'Поддерживается большинство допустимого CSS, с этими отличиями:\n<ul><li>Многострочные комментарии (<code>/* ... */</code>) в настоящее время не поддерживаются</li>\n<li>Одиночные комментарии (<code>// ...</code>) поддерживаются, но только в начале строки</li>\n<li><code>%thumburl%</code> - это URL-адрес миниатюры изображения. Например, вы можете использовать его следующим образом: <code>background-image: url(%thumburl%)</code><br />\nURL правильно закодирован, поэтому кавычки не нужны (но и не навредят)</li>\n<li><code>%fullurl%</code> - это URL-адрес полного изображения. Если IMU не может найти увеличенное изображение, оно будет таким же, как <code>%thumburl%</code></li>\n<li>Стили по умолчанию как <code>!important</code></li></ul>\n<p>Для стиля CSS кнопок, вы также можете настроить CSS для отдельных кнопок с помощью их идентификаторов. Например:</p>\n<pre>\n#closebtn {\n  background-color: red;\n  // -imu-text позволяет установить текст внутри кнопки\n  -imu-text: "Закрыть";\n  // -imu-title позволяет установить всплывающую подсказку при наведении курсора\n  -imu-title: "Закрыть всплывающее окно";\n}\n#galleryprevbtn, #gallerynextbtn {\n  border-radius: 100px;\n}\n</pre>',"zh-CN":'支持大多数有效的 CSS,但有下列差异:\n<ul><li>目前不支持多行注释(<code>/* ... */</code>)</li>\n<li>支持单行注释(<code>// ...</code>),但只能在行开头</li>\n<li><code>%thumburl%</code> 是缩略图的 URL,例如可以这样使用它:background-image: url(%thumburl%)</code><br />\nURL 被正确编码,所以没有必要使用引号(但使用也无害)</li>\n<li><code>%fullurl%</code> 是完整图像的 URL。如果 Image Max URL 不能找到一个更大的图像,将与 <code>%thumburl%</code> 相同</li>\n<li>样式默认 <code>!important</code></li></ul>\n<p>对于按钮 CSS 样式,您也可以通过 id 为单个按钮定制 CSS。例如:</p>\n<pre>\n#closebtn {\n  background-color: red;\n  // -imu-text 允许您设置按钮内的文本\n  -imu-text: "Close";\n  // -imu-title 允许您设置悬停时的工具提示\n  -imu-title: "Close the popup";\n}\n#galleryprevbtn, #gallerynextbtn {\n  border-radius: 100px;\n}\n</pre>'},"Enable popup fade":{"pt-BR":"Habilitar efeito de fade no popup",ru:"Включить эффект затухания для всплывающего окна","zh-CN":"启用弹窗过渡动画"},"Enables a fade in/out effect when the popup is opened/closed":{"pt-BR":"Habilita um efeito de fade in/out quando o popup é aberto/fechado",ru:"Включает эффект затухания/появления при открытии/закрытии всплывающего окна.","zh-CN":"启用弹窗打开/关闭时的淡入/淡出效果"},"Enable zoom effect":{"pt-BR":"Habilitar efeito de zoom",ru:"Включить эффект масштабирования","zh-CN":"启用缩放效果"},"Toggles whether the popup should 'zoom' when opened/closed":{"pt-BR":"Alterna se o popup deve aplicar 'zoom' ao abrir/fechar",ru:"Переключает, должно ли всплывающее окно 'масштабироваться' при открытии/закрытии.","zh-CN":"切换打开/关闭弹窗时是否有缩放效果"},"Move from thumbnail when zooming":{"pt-BR":"Mover da miniatura ao aplicar zoom",ru:"Перемещение от миниатюры при масштабировании","zh-CN":"从缩略图中跃出的缩放效果"},"Moves the popup from the thumbnail to the final location while zooming. The animation can be a little rough":{"pt-BR":"Move o popup da miniatura para o local final enquanto aplica o zoom. A animação pode ser um pouco brusca",ru:"Перемещает всплывающее окно от миниатюр до окончательного местоположения во время масштабирования. Анимация может быть немного грубой.","zh-CN":"从缩略图变为弹窗时的缩放动画效果。动画可能有点粗糙"},"Popup animation time":{"pt-BR":"Tempo de animação do popup",ru:"Время анимации всплывающего окна","zh-CN":"弹窗动画时长"},"Fade/zoom animation duration (in milliseconds) for the popup":{"pt-BR":"Duração da animação de fade/zoom (em milissegundos) para o popup",ru:"Уменьшение/увеличение продолжительности анимации (в миллисекундах) для всплывающего окна.","zh-CN":"弹窗的淡出/缩放动画持续时间(毫秒)"},"Enable background CSS":{"pt-BR":"Habilitar CSS de fundo",ru:"Включить фон CSS","zh-CN":"启用背景 CSS"},"Toggles whether CSS styles for the background when the popup is active is enabled":{"pt-BR":"Alterna se os estilos CSS para o fundo quando o popup está ativo estão habilitados",ru:"Переключает, включены ли стили CSS для фона, когда всплывающее окно активно.","zh-CN":"切换当弹出窗口处于活动状态时是否启用背景的 CSS 样式"},"On hold":{"pt-BR":"Em espera",ru:"При удерживании","zh-CN":"保持现状"},No:{"pt-BR":"Não",ru:"Нет","zh-CN":"不启用"},"Background CSS style":{"pt-BR":"Estilo CSS do fundo",ru:"Стиль CSS для фона","zh-CN":"背景 CSS 样式"},"CSS style for the background when the popup is active. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)":{"pt-BR":"Estilo CSS para o fundo quando o popup está ativo. Consulte a documentação do Estilo CSS do Popup para mais informações (as variáveis thumb/full URL não são suportadas aqui)",ru:"Стиль CSS для фона, когда всплывающее окно активно. Дополнительные сведения смотрите в документации 'Стилизация CSS всплывающего окна' (здесь не поддерживаются переменные URL thumb/full).","zh-CN":"弹窗开启时用于背景的 CSS 样式。更多信息详见“弹窗 CSS 样式”文档(此处不支持 thumb/full URL 变量)"},"Background fade":{"pt-BR":"Fade (esmaecimento) do fundo",ru:"Затухание фона","zh-CN":"背景淡入/淡出"},"Fade in/out time (in milliseconds) for the page background, set to 0 to disable":{"pt-BR":"Tempo de fade in/out (em milissegundos) para o fundo da página, defina como 0 para desativar",ru:"Время затухания/появления (в миллисекундах) для фона страницы. 0 - отключить","zh-CN":"页面背景的淡入/淡出时间(毫秒) ,设为 0 则禁用"},ms:{"pt-BR":"ms",ru:"мс","zh-CN":"毫秒"},"Button CSS style":{"pt-BR":"Estilo CSS dos botões",ru:"Стиль CSS для кнопок","zh-CN":"按钮 CSS 样式"},"Custom CSS styles for the popup's UI buttons. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)":{"pt-BR":"Estilos CSS personalizados para os botões da interface do popup. Consulte a documentação do Estilo CSS do Popup para obter mais informações (as variáveis thumb/full URL não são suportadas aqui)",ru:"Пользовательские стили CSS для кнопок пользовательского интерфейса всплывающего окна. Дополнительные сведения смотрите в документации 'Стилизация CSS всплывающего окна' (здесь не поддерживаются переменные URL thumb/full).","zh-CN":"为弹窗中界面的按钮自定义 CSS 样式。更多信息详见“弹窗 CSS 样式”文档(此处不支持 thumb/full URL 变量)"},"Don't popup blacklisted URLs":{"pt-BR":"Não exibir URLs na lista negra em popup",ru:"Не открывать чёрные списки URL-адресов во всплывающем окне","zh-CN":"已列入黑名单的网址不要弹窗"},"This option popping up for source media with blacklisted URLs. If this is disabled, the popup will open if the end URL isn't blacklisted, regardless of whether the source is blacklisted.":{"pt-BR":"Essa opção impede a exibição em popup de mídia de origem com URLs na lista negra. Se desativada, o popup abrirá se a URL final não estiver na lista negra, independentemente da origem estar ou não.",ru:"Этот параметр всплывает для оригинальных медиа с URL-адресами в чёрный список. Если этот параметр отключен, всплывающее окно откроется, если конечный URL-адрес не внесён в чёрный список, независимо от того, внесен ли источник в чёрный список.","zh-CN":"如果禁用此选项,即便源地址被列入黑名单,只要末端网址没有列入黑名单,就打开弹窗。"},"Use media blacklist for host websites":{"pt-BR":"Usar lista negra de mídia para sites de hospedagem"},"Overrides the host blacklist to use the media blacklist (specified under Rules)":{"pt-BR":"Substitui a lista negra de hosts para usar a lista negra de mídia (especificada em Regras)"},"Don't popup different media type":{"pt-BR":"Não exibir tipo de mídia diferente em popup",ru:"Нет всплывающих окон для других типов медиа","zh-CN":"不要弹出不同的媒体类型"},"This option prevents the popup from loading a video when the source was an image or vice-versa":{"pt-BR":"Esta opção impede que o popup carregue um vídeo quando a fonte for uma imagem ou vice-versa",ru:"Этот параметр запрещает всплывающему окну загружать видео, если источником было изображение, или наоборот.","zh-CN":"此选项可避免源是图像时弹窗加载视频,反之亦然"},"Allow popup when fullscreen":{"pt-BR":"Permitir popup em tela cheia",ru:"Всплывающие окна в полноэкранном режиме","zh-CN":"允许全屏时弹窗"},"Allows the popup to open if an element (such as a video player) is fullscreen.":{"pt-BR":"Permite que o popup seja aberto se um elemento (como um player de vídeo) estiver em tela cheia.",ru:"Позволяет открывать всплывающее окно, если элемент (например, видеоплеер) находится в полноэкранном режиме.","zh-CN":"允许存在全屏元素(如视频播放器)时打开弹窗。"},"Element finding mode":{"pt-BR":"Modo de localização de elemento",ru:"Режим поиска элементов","zh-CN":"元素查找模式"},"How IMU should find the media element on the page.":{"pt-BR":"Como o maxurl deve encontrar o elemento de mídia na página.",ru:"Как IMU будет искать медиа-элементы на странице.","zh-CN":"Image Max URL 应如何查找页面上的媒体元素。"},"This will result in a much higher CPU load for websites such as Facebook, and will occasionally return the wrong element.\nUse this option with caution.":{"pt-BR":"Isso resultará em uma carga de CPU muito maior para sites como o Facebook e ocasionalmente retornará o elemento errado.\nUse esta opção com cautela.",ru:"Это приведет к гораздо более высокой загрузке процессора для таких сайтов, как Facebook, и иногда будет возвращать неправильный элемент.\nИспользуйте этот параметр с осторожностью.","zh-CN":"对诸如 Facebook 等网站,这将导致很高的 CPU 负载,且偶尔会返回错误的元素。\n谨慎使用此选项。"},Full:{"pt-BR":"Completo",ru:"Полный","zh-CN":"全面"},"Manually looks through every element on the page to see if the cursor is above them. This will result in a higher CPU load for websites such as Facebook, and may return the wrong element":{"pt-BR":"Procura manualmente por cada elemento na página para ver se o cursor está sobre eles. Isso resultará em uma maior carga de CPU para sites como o Facebook e pode retornar o elemento errado",ru:"Вручную просматривает каждый элемент на странице, чтобы увидеть, находится ли курсор над ними. Это приведет к более высокой загрузке процессора для таких сайтов, как Facebook, и может вернуть неправильный элемент.","zh-CN":"逐一检查页面上的每个元素,看鼠标指针是否在上面。这将导致很高的 CPU 负载,且偶尔会返回错误的元素"},Hybrid:{"pt-BR":"Híbrido",ru:"Гибридный","zh-CN":"混合"},"Looks manually through every child element of the last element found by `getElementsAtPoint`. Use this option if in doubt, it'll work on most sites":{"pt-BR":"Procura manualmente em cada elemento filho do último elemento encontrado por `getElementsAtPoint`. Use esta opção em caso de dúvida, funcionará na maioria dos sites",ru:"Просматривает вручную каждый дочерний элемент последнего элемента, найденного с помощью `getElementsAtPoint`. Используйте этот вариант, если у вас есть сомнения. Он будет работать на большинстве сайтов.","zh-CN":"逐一检查用 `getElementsAtPoint` 找到的最后一个元素的每个子元素。如果不了解,使用此选项,它适用于绝大多数网站"},Simple:{"pt-BR":"Simples",ru:"Простой","zh-CN":"简易"},"This is the fastest option, which uses the value of `getElementsAtPoint` without modification. Works for sites that don't use pointer-events:none and shadow DOM":{"pt-BR":"Esta é a opção mais rápida, que usa o valor de `getElementsAtPoint` sem modificação. Funciona para sites que não usam pointer-events: none e shadow DOM",ru:"Это самый быстрый вариант, который использует значение `getElementsAtPoint` без изменений. Работает для сайтов, которые не используют pointer-events:none и shadow DOM.","zh-CN":"这是最快的选项,它使用 `getElementsAtPoint` 的值而不做修改。适用于不使用 pointer-events:none 和 shadow DOM 的网站"},"Use cache":{"pt-BR":"Usar cache",ru:"Использовать кэш","zh-CN":"使用缓存"},"Allows use of a media cache for the popup. The cache is currently stored per-page and is not persistent across page reloads.":{"pt-BR":"Permite o uso de um cache de mídia para o popup. O cache é armazenado por página e não é persistente entre recarregamentos de página.",ru:"Позволяет использовать медиа-кеш для всплывающего окна. Кэш в настоящее время хранится для каждой страницы и не сохраняется при перезагрузке страницы.","zh-CN":"允许弹窗缓存媒体。缓存目前不跨页共享,并且不会持久化(重新加载即失效)。"},"Cache duration":{"pt-BR":"Duração do cache",ru:"Длительность кэша","zh-CN":"缓存持续时间"},"How long for media to remain cached. Set to `0` for unlimited.":{"pt-BR":"Por quanto tempo a mídia permanecerá em cache. Defina como `0` para ilimitado.",ru:"Как долго медиа будут оставаться в кэше. `0` - всегда.","zh-CN":"媒体被缓存多久。设为 0 则无限制。"},minutes:{"pt-BR":"minutos",ru:"мин.","zh-CN":"分钟"},"Cache item limit":{"pt-BR":"Limite de itens no cache",ru:"Ограничение элементов кэша","zh-CN":"缓存数量限制"},"Maximum number of individual media to remain cached. Set to `0` for unlimited.":{"pt-BR":"Número máximo de mídias individuais para permanecerem em cache. Defina como `0` para ilimitado.",ru:"Максимальное количество отдельных медиа для сохранения в кэше. `0` - без ограничения.","zh-CN":"最多缓存多少个媒体。设为 0 则无限制。"},items:{"pt-BR":"itens",ru:"эл.","zh-CN":"项"},"Resume videos":{"pt-BR":"Retomar vídeos",ru:"Возобновлять видео","zh-CN":"继续视频"},"If a video popup was closed then reopened, the video will resume from where it left off":{"pt-BR":"Se um popup de vídeo foi fechado e reaberto, o vídeo será retomado de onde parou",ru:"Если всплывающее окно видео было закрыто, а затем снова открыто, видео возобновится с того места, где оно было остановлено.","zh-CN":"如果一个视频弹窗被关闭然后再次打开,该视频将从上次离开的进度继续播放"},"Use userscript":{fr:"Utiliser ce userscript",ko:"유저스크립트 사용하기","pt-BR":"Usar script do usuário",ru:"Использовать пользовательский скрипт","zh-CN":"使用用户脚本"},"Replaces the website's IMU instance with the userscript":{"pt-BR":"Substitui a instância do maxurl do site pelo script do usuário",ru:"Заменяет сайт экземпляра IMU на пользовательский скрипт.","zh-CN":"使用用户脚本替换该网站的 Image Max URL 实例"},"Website image preview":{ko:"링크 붙인 후 이미지 미리보기","pt-BR":"Prévia da imagem no site",ru:"Предпросмотр изображения сайта","zh-CN":"网站图片预览"},"Enables a preview of the image on the Image Max URL website":{"pt-BR":"Habilita a prévia da imagem no site Image Max URL",ru:"Включает предварительный просмотр изображения на сайте Image Max URL","zh-CN":"允许在 Image Max URL 网站上预览图片"},"IMU entry in context menu":{"pt-BR":"Entrada do maxurl no menu de contexto",ru:"Добавить IMU в контекстное меню","zh-CN":"右键菜单中的 Image Max URL 项"},"Enables a custom entry for this extension in the right click/context menu":{"pt-BR":"Habilita uma entrada personalizada para esta extensão no menu de contexto/clique com o botão direito",ru:"Включает пользовательскую запись для этого расширения в контекстном меню (нажатие правой кнопкой мыши).","zh-CN":"右键菜单/上下文菜单中启用本扩展定义的菜单"},"Hot (re)load":{"pt-BR":"(Re)carregamento dinâmico",ru:"Горячая (пере)загрузка","zh-CN":"热重载"},"(Re)loads the extension on all existing pages when installing or updating":{"pt-BR":"(Re)carrega a extensão em todas as páginas existentes ao instalar ou atualizar",ru:"(Пере)загружает расширение на всех существующих страницах при установке или обновлении.","zh-CN":"安装或更新后,热重载现有的全部页面上的本扩展"},"Custom XHR for libraries":{"pt-BR":"XHR personalizado para bibliotecas",ru:"Пользовательский XHR для библиотек","zh-CN":"自定义程序库的 XHR"},"Allows the use of more powerful XHR (network requests) for 3rd-party libraries. This allows for certain DASH streams to work.":{"pt-BR":"Permite o uso de XHR (solicitações de rede) mais poderosos para bibliotecas de terceiros. Isso permite que certos fluxos DASH funcionem.",ru:"Позволяет использовать более мощные XHR (сетевые запросы) для сторонних библиотек. Это позволяет работать определенным потокам DASH.","zh-CN":"允许第三方库使用更强大的 XHR(网络请求)。某些 DASH 流媒体需要这个。"},"Allows the use of more powerful XHR  (network requests) for 3rd-party libraries. This allows for certain DASH streams to work. Using this with the userscript version currently poses a potential security risk.":{"pt-BR":"Permite o uso de XHR (solicitações de rede) mais poderosos para bibliotecas de terceiros. Isso permite que certos fluxos DASH funcionem. Usar isso com a versão do script do usuário atualmente representa um risco potencial à segurança.",ru:"Позволяет использовать более мощные XHR (сетевые запросы) для сторонних библиотек. Это позволяет работать определенным потокам DASH. Использование его в версии пользовательского скрипта в настоящее время представляет собой потенциальный риск для безопасности.","zh-CN":"允许第三方库使用更强大的 XHR(网络请求)。某些 DASH 流媒体需要这个。在目前的用户脚本版本中使用这种方法构成潜在的安全风险。"},Kakao:{"pt-BR":"Kakao",ru:"Kakao","zh-CN":"Kakao"},YouTube:{"pt-BR":"YouTube",ru:"YouTube","zh-CN":"YouTube"},"Instagram (downloading)":{"pt-BR":"Instagram (download)",ru:"Instagram (скачивание)","zh-CN":"Instagram (下载)"},"Bypass CSP for libraries":{"pt-BR":"Ignorar CSP para bibliotecas"},'Tries loading the 3rd-party libraries using a `<script>` tag if a page\'s CSP prevents it from being loaded normally.\nThis option currently carries an increased security risk when combined with "Custom XHR for libraries", and should only be enabled if absolutely necessary.':{"pt-BR":'Tenta carregar as bibliotecas de terceiros usando uma tag <script> se o CSP de uma página impedir que seja carregada normalmente.\nAtualmente, esta opção acarreta um risco de segurança aumentado quando combinada com "XHR Personalizado para bibliotecas" e só deve ser ativada se absolutamente necessário.'},'This can potentially be extremely insecure if "Custom XHR for libraries" is also enabled.\nA malicious website could gain extension-level permissions and perform arbitrary requests (your online accounts could get hacked).\nIf you need to use this option, please disable it as soon as possible.':{"pt-BR":'Isso pode ser extremamente inseguro se "XHR Personalizado para bibliotecas" também estiver ativado.\nUm website malicioso pode obter permissões de nível de extensão e realizar solicitações arbitrárias (suas contas online podem ser invadidas).\nSe precisar usar esta opção, desative-a assim que possível.'},Snapchat:{"pt-BR":"Snapchat"},"Use Web Archive for libraries":{"pt-BR":"Usar Web Archive para bibliotecas",ru:"Использовать веб-архив для библиотек","zh-CN":"为程序库使用 Web Archive 版本"},"Uses archive.org's web archive instead of github for libraries and other script internals (such as the options page).\nDon't enable this unless you need to.":{"pt-BR":"Usa o arquivo web do archive.org em vez do github para bibliotecas e outros componentes internos do script (como a página de opções).\nNão ative isso a menos que seja necessário.",ru:"Использует веб-архив archive.org вместо github для библиотек и других внутренних компонентов скрипта (например, страницы параметров).\nНе включайте эту функцию, если в этом нет необходимости.","zh-CN":"为程序库和脚本内置的其他文件(如这个选项页面)使用 archive.org 的存档版本而非 github 版本。\n除非确实需要,否则无需启用。"},"Enable integrity checks":{"pt-BR":"Habilitar verificações de integridade",ru:"Проверка целостности","zh-CN":"启用完整性检查"},"Runs integrity checks before loading 3rd-party libraries":{"pt-BR":"Executa verificações de integridade antes de carregar bibliotecas de terceiros",ru:"Запускает проверку целостности перед загрузкой сторонних библиотек.","zh-CN":"加载第三方库之前运行完整性检查"},"HLS/DASH maximum quality":{"pt-BR":"Qualidade máxima HLS/DASH",ru:"Максимальное качество HLS/DASH","zh-CN":"HLS/DASH 最高质量"},"Uses the maximum quality for HLS/DASH streams":{"pt-BR":"Usa a qualidade máxima para fluxos HLS/DASH",ru:"Использует максимальное качество для потоков HLS/DASH.","zh-CN":"对 HLS/DASH 流媒体使用最高质量"},"Maximum video quality":{"pt-BR":"Qualidade máxima do vídeo",ru:"Максимальное качество видео","zh-CN":"最高视频质量"},"Maximum quality for videos":{"pt-BR":"Qualidade máxima para vídeos",ru:"Максимальное качество для видео.","zh-CN":"视频的最高质量"},"(unlimited)":{"pt-BR":"(ilimitado)",ru:"(неограниченное)","zh-CN":"(无限制)"},"4K":{"pt-BR":"4K",ru:"4K","zh-CN":"4K"},"1440p":{"pt-BR":"1440p",ru:"1440p","zh-CN":"1440p"},"1080p":{"pt-BR":"1080p",ru:"1080p","zh-CN":"1080p"},"720p":{"pt-BR":"720p",ru:"720p","zh-CN":"720p"},"480p":{"pt-BR":"480p",ru:"480p","zh-CN":"480p"},"Larger watermarked images":{ko:"더 크지만 워터마크 있는 이미지","pt-BR":"Imagens maiores com marca d'água",ru:"Большие изображения с водяными знаками","zh-CN":"较大的带水印图像"},"Enables rules that return larger images that include watermarks":{"pt-BR":"Habilita regras que retornam imagens maiores que incluem marcas d'água",ru:"Включает правила, возвращающие более крупные изображения с водяными знаками.","zh-CN":"启用规则:返回包含水印的较大图像"},"Stock photo websites":{"pt-BR":"Sites de fotos de banco de imagens",ru:"Сайты со стоковыми фото","zh-CN":"“图库照片”网站"},"Smaller non-watermarked images":{ko:"더 작지만 워터마크 없는 이미지","pt-BR":"Imagens menores sem marca d'água",ru:"Небольшие изображения без водяных знаков","zh-CN":"较小的无水印图像"},"Enables rules that return smaller images without watermarks":{"pt-BR":"Habilita regras que retornam imagens menores sem marcas d'água",ru:"Включает правила, возвращающие меньшие изображения без водяных знаков.","zh-CN":"启用规则:返回无水印的较小图像"},"Possibly different images":{fr:"Images possiblement différentes",ko:"다를 수 있는 이미지","pt-BR":"Imagens possivelmente diferentes",ru:"Возможно, разные изображения","zh-CN":"可能不同的图像"},"Enables rules that return images that possibly differ, usually due to server-side caching":{"pt-BR":"Habilita regras que retornam imagens que podem ser diferentes, geralmente devido ao cache do lado do servidor",ru:"Включает правила, возвращающие изображения, которые могут отличаться, как правило, из-за кэширования на стороне сервера.","zh-CN":"启用规则:返回可能有所不同的图像,不同通常由于服务器侧缓存"},"Possibly broken images":{fr:"Images possiblement brisée",ko:"손상될 수 있는 이미지","pt-BR":"Imagens possivelmente quebradas",ru:"Возможно, сломанные изображения","zh-CN":"可能破损的图像"},"Enables rules that return images that are possibly broken":{"pt-BR":"Habilita regras que retornam imagens que podem estar quebradas",ru:"Включает правила, возвращающие изображения, которые могут быть поломаны.","zh-CN":"启用规则:返回可能已损坏的图像"},"Possibly upscaled images":{"pt-BR":"Imagens possivelmente ampliadas",ru:"Возможно, увеличенные изображения","zh-CN":"可能扩增尺寸的图像"},"Enables rules that return images that are possibly upscaled":{"pt-BR":"Habilita regras que retornam imagens que podem ter sido ampliadas",ru:"Включает правила, возвращающие изображения, которые могут быть увеличены.","zh-CN":"启用规则:返回可能已扩增尺寸的图像"},"Uncropped images":{"pt-BR":"Imagens não cortadas"},"Enables rules that return possibly undesirable uncropped images":{"pt-BR":"Habilita regras que retornam imagens não cortadas possivelmente indesejáveis"},"Mobile wallpaper websites (returns the full version of the wallpaper image)":{"pt-BR":"Sites de papéis de parede para celular (retorna a versão completa da imagem do papel de parede)"},"Rules using 3rd-party websites":{fr:"Règles utilisant des sites 3rd-party",ko:"서드파티 사이트를 사용하는 규칙","pt-BR":"Regras que utilizam sites de terceiros",ru:"Правила использования сторонних сайтов","zh-CN":"使用第三方网站的规则"},"Enables rules that use 3rd-party websites":{"pt-BR":"Habilita regras que utilizam sites de terceiros",ru:"Включает правила, которые используют сторонние сайты.","zh-CN":"启用基于第三方网站的规则"},Newsen:{ko:"뉴스엔","pt-BR":"Newsen",ru:"Newsen","zh-CN":"Newsen"},"Rules using API calls":{"pt-BR":"Regras que utilizam chamadas de API",ru:"Правила, использующие вызовы API","zh-CN":"基于 API 调用的规则"},"Enables rules that use API calls. Strongly recommended to keep this enabled":{"pt-BR":"Habilita regras que utilizam chamadas de API. É altamente recomendável manter esta opção ativada",ru:"Включает правила, использующие вызовы API. Настоятельно рекомендуется оставлять эту функцию включённой.","zh-CN":"启用基于 API 调用的规则。强烈建议保持此项启用"},Instagram:{"pt-BR":"Instagram",ru:"Instagram","zh-CN":"Instagram"},Flickr:{"pt-BR":"Flickr",ru:"Flickr","zh-CN":"Flickr"},"...":{"pt-BR":"...",ru:"...","zh-CN":"..."},"Allow 3rd-party libraries":{"pt-BR":"Permitir bibliotecas de terceiros",ru:"Сторонние библиотеки","zh-CN":"允许第三方库"},"Enables using 3rd-party libraries. This is both used in rules and as a prerequisite for certain functionality.":{"pt-BR":"Habilita o uso de bibliotecas de terceiros. Isso é usado tanto em regras quanto como um pré-requisito para certas funcionalidades.",ru:"Позволяет использовать сторонние библиотеки. Это используется как в правилах, так и в качестве предварительного условия для определённой функциональности.","zh-CN":"启用第三方库的调用。这可能用于规则和某些功能的先决条件。"},"Enables using 3rd-party libraries. This is both used in rules and as a prerequisite for certain functionality.\nThere is a possible (but unlikely) security risk for the userscript version.":{"pt-BR":"Habilita o uso de bibliotecas de terceiros. Isso é usado tanto em regras quanto como pré-requisito para certas funcionalidades.\nHá um risco de segurança possível (mas improvável) para a versão userscript.",ru:"Позволяет использовать сторонние библиотеки. Это используется как в правилах, так и в качестве предварительного условия для определённой функциональности.\nСуществует возможный (но маловероятный) риск безопасности для версии пользовательского скрипта.","zh-CN":"启用第三方库的调用。这可能用于规则和某些功能的先决条件。\n这对于用户脚本版来说,有较低的潜在的安全风险。"},"Sites using testcookie (slowAES)":{"pt-BR":"Sites que usam testcookie (slowAES)",ru:"Сайты, использующие testcookie (slowAES)","zh-CN":"使用 testcokie 的网站(慢AES)"},"Rules executing 3rd-party code":{"pt-BR":"Regras que executam código de terceiros",ru:"Правила выполнения стороннего кода","zh-CN":"执行第三方代码的规则"},"Enables rules that execute arbitrary 3rd-party code stored on websites.":{"pt-BR":"Habilita regras que executam código arbitrário de terceiros armazenado em sites.",ru:"Включает правила, которые выполняют произвольный сторонний код, хранящийся на сайтах.","zh-CN":"启用将执行存储在网站上的任意第三方代码的规则。"},"This could lead to security risks, please be careful when using this option!":{"pt-BR":"Isso pode levar a riscos de segurança, por favor, tenha cuidado ao usar esta opção!",ru:"Это может привести к угрозам безопасности, будьте осторожны при использовании этого параметра!","zh-CN":"这可能导致安全风险,慎重使用此选项!"},"Rules using brute-force":{"pt-BR":"Regras que usam força bruta",ru:"Правила, использующие грубую силу","zh-CN":"使用暴力破解的规则"},"Enables rules that require using brute force (through binary search) to find the original image":{"pt-BR":"Habilita regras que exigem o uso de força bruta (através de busca binária) para encontrar a imagem original",ru:"Включает правила, требующие использования грубой силы (через бинарный поиск) для поиска оригинального изображения.","zh-CN":"启用需要凭借蛮力(二进制搜索)找到原始图像的规则"},Deezer:{"pt-BR":"Deezer",ru:"Deezer","zh-CN":"Deezer"},"Web Archive support":{"pt-BR":"Suporte ao Web Archive"},"Allows rules to be run under archive.org's Wayback Machine.":{"pt-BR":"Permite que as regras sejam executadas na Wayback Machine do archive.org."},"Use browser cookies":{"pt-BR":"Usar cookies do navegador",ru:"Использовать куки браузера","zh-CN":"使用浏览器 Cookie"},"Uses the browser's cookies for API calls in order to access otherwise private data":{"pt-BR":"Utiliza os cookies do navegador para chamadas de API a fim de acessar dados que, de outra forma, seriam privados",ru:"Использует файлы cookie браузера для вызовов API, чтобы получить доступ к конфиденциальным данным.","zh-CN":"允许 API 调用使用浏览器的 Cookie 来访问非公开数据"},"Private Flickr images":{"pt-BR":"Imagens privadas do Flickr",ru:"Приватные изображения Flickr","zh-CN":"私人 Flickr 图像"},"DeviantART: Prefer size over original":{"pt-BR":"DeviantART: Preferir tamanho em vez de original",ru:"DeviantART: Предпочитать размер оригиналу","zh-CN":"DeviantART: 尺寸比原版更重要"},"Prefers a larger (but not upscaled) thumbnail image over a smaller original animated image":{"pt-BR":"Prefere uma imagem em miniatura maior (mas não ampliada) em vez de uma imagem animada original menor",ru:"Предпочитает больше (но не увеличенное) миниатюрное изображение меньшему оригинальному анимированному изображению.","zh-CN":"偏好尺寸较大(但非扩增)但非原始尺寸的缩略图图像,而不是原始尺寸但尺寸较小的动画图像"},"DeviantART: Use download links":{"pt-BR":"DeviantART: Usar links de download",ru:"DeviantART: Использовать ссылки для скачивания","zh-CN":"DeviantART: 使用下载链接"},"Prefers using the download link (if available) by default. Note that this only works if you're logged in to DeviantART":{"pt-BR":"Prefere usar o link de download (se disponível) por padrão. Observe que isso só funciona se você estiver conectado ao DeviantART",ru:"Предпочитает использовать ссылку для скачивания (если она доступна) по умолчанию. Обратите внимание, что это работает, только если вы вошли в свою учётную запись DeviantART.","zh-CN":"偏好默认使用下载链接(如果可用)。注意,仅在登录 DeviantART 后有效"},"E-Hentai: Use full image":{"pt-BR":"E-Hentai: Usar imagem completa",ru:"E-Hentai: Использовать полное изображение","zh-CN":"E-Hentai: 使用完整图像"},"Prefers using full/original images if available (logged in). This is more likely to get you rate limited":{"pt-BR":"Prefere usar imagens completas/originais, se disponíveis (conectado). Isso tem mais chances de te deixar com limite de taxa",ru:"Предпочитает использовать полные/оригинальные изображения, если таковые имеются. (требуется вход). Скорее всего, это ограничит вашу скорость.","zh-CN":"偏好使用全尺寸原版图像。需要已登录。使用它将更容易遭遇速率限制"},"Imgur: Use original filename":{"pt-BR":"Imgur: Usar nome de arquivo original",ru:"Imgur: Использовать оригинальное имя файла","zh-CN":"Imgur: 使用原始文件名"},"If the original filename (the one used to upload the image) is found, use it instead of the image ID":{"pt-BR":"Se o nome de arquivo original (aquele usado para enviar a imagem) for encontrado, use-o em vez do ID da imagem",ru:"Если найдено оригинальное имя файла (используемое для скачивания изображения), используйте его вместо идентификатора изображения.","zh-CN":"如果找到原始文件名(上传图像时的文件名),使用它代替图像 ID"},"Imgur: Use source image":{"pt-BR":"Imgur: Usar imagem de origem",ru:"Imgur: Использовать изображение источника","zh-CN":"Imgur: 使用源图像"},"If a source image is found for Imgur, try using it instead. Only works for old-style Imgur webpages (set `postpagebeta=0; postpagebetalogged=0` as cookies)":{"pt-BR":"Se uma imagem de origem for encontrada para o Imgur, tente usá-la. Funciona apenas para páginas antigas do Imgur (defina `postpagebeta=0; postpagebetalogged=0` como cookies)",ru:"Если для Imgur найдено изображение источника, попробуйте использовать его вместо этого. Работает только для веб-страниц Imgur старого стиля (установите `postpagebeta=0; postpagebetalogged=0` как cookie).","zh-CN":"如果找到 Imgur 的源图像,尝试使用它。仅适用于旧版 Imgur 网页(设置 Cookie `postpagebeta=0; postpagebetalogged=0`)"},"Instagram: Use native API":{"pt-BR":"Instagram: Usar API nativa",ru:"Instagram: Использовать родной API","zh-CN":"Instagram: 使用原生 API"},"Uses Instagram's native API if possible, requires you to be logged into Instagram. This usually allows for higher resolution images (1440x*) to be returned.":{"pt-BR":"Usa a API nativa do Instagram se possível, requer que você esteja logado no Instagram. Geralmente permite que imagens de resolução mais alta (1440x*) sejam retornadas.",ru:"Использует родной API Instagram, если это возможно, требует, чтобы вы вошли в Instagram. Обычно это позволяет возвращать изображения с более высоким разрешением (1440x*).","zh-CN":"尽可能使用 Instagram 的原生 API,这需要您已登录 Instagram。通常能返回更高分辨率的图像(1440x*)。"},"Instagram: Don't use web API":{"pt-BR":"Instagram: Não usar API web",ru:"Instagram: Без использования веб-API","zh-CN":"Instagram: 不使用 Web API"},"Avoids using Instagram's web API if possible, which increases performance, but will occasionally sacrifice quality for videos":{"pt-BR":"Evita usar a API web do Instagram, se possível, o que aumenta o desempenho, mas ocasionalmente sacrifica a qualidade dos vídeos",ru:"Избегает использования веб-API Instagram, если это возможно, что повышает производительность, но иногда жертвует качеством видео.","zh-CN":"尽可能不使用 Instagram 的 Web API,这可以提升性能,但偶尔会牺牲视频品质"},"Instagram: Prefer quality over resolution":{"pt-BR":"Instagram: Preferir qualidade à resolução",ru:"Instagram: Предпочитать качество разрешению","zh-CN":"Instagram: 偏好高质量而不是分辨率"},"Prefers lower resolution videos that use a higher bitrate over higher resolution images. This adds a slight performance cost as it needs to fetch headers for multiple videos":{"pt-BR":"Prefere vídeos de resolução mais baixa que usam uma taxa de bits mais alta em vez de imagens de resolução mais alta. Isso adiciona um pequeno custo de desempenho, pois precisa buscar cabeçalhos para vários vídeos",ru:"Предпочитает видео с более низким разрешением, которые используют более высокий битрейт по сравнению с изображениями с более высоким разрешением. Это добавляет небольшие затраты на производительность, так как это нуждается в получении заголовков для нескольких видео.","zh-CN":"偏好高比特率的低分辨率视频,而不是高分辨率图像。这轻微资源消耗,因为需要获取多个视频的头部"},"Instagram: Use albums for post thumbnails":{"pt-BR":"Instagram: Usar álbuns para miniaturas de posts",ru:"Instagram: Использовать альбомы для миниатюр постов","zh-CN":"Instagram: 为帖子缩略图使用相册"},"Queries Instagram for albums when using the popup on a post thumbnail":{"pt-BR":"Consulta o Instagram por álbuns ao usar o popup em uma miniatura de post",ru:"Запросы к Instagram для альбомов при использовании всплывающего окна на миниатюре поста.","zh-CN":"为帖子缩略图使用弹窗时查询 Instagram 相册"},"Snapchat: Use original media without captions":{"pt-BR":"Snapchat: Usar mídia original sem legendas",ru:"Snapchat: Использовать оригинальные медиа без подписей","zh-CN":"Snapchat: 使用没有标题的原始媒体"},"Prefers using original media instead of media with captions and tags overlayed":{"pt-BR":"Prefere usar a mídia original em vez de mídia com legendas e tags sobrepostas",ru:"Предпочитает использовать оригинальные медиа вместо медиа с наложенными подписями и тегами.","zh-CN":"倾向于使用原始媒体,而不是有标题和标签覆盖的媒体"},"Teddit: Use Reddit for media":{"pt-BR":"Teddit: Usar Reddit para mídia"},"Redirects media stored on Teddit to Reddit's servers. Disabling this may prevent finding original images because Teddit's image servers will only cache images fetched from posts, which are deleted after a few minutes.":{"pt-BR":"Redireciona mídias armazenadas no Teddit para os servidores do Reddit. Desativar isso pode impedir a localização de imagens originais porque os servidores de imagem do Teddit armazenarão em cache apenas imagens obtidas de posts, que são excluídas após alguns minutos."},"TikTok: Use app API":{"pt-BR":"TikTok: Usar API do aplicativo"},"Uses TikTok's app API to find video information.":{"pt-BR":"Usa a API do aplicativo TikTok para encontrar informações de vídeo."},"TikTok: Don't use watermarked videos":{"pt-BR":"TikTok: Não usar vídeos com marca d'água",ru:"TikTok: Не использовать видео с водяными знаками","zh-CN":"TikTok: 不使用带水印的视频"},"Uses non-watermarked videos for TikTok if possible. This will introduce an extra delay when loading the video as two extra requests need to be performed. It will also fail for any videos uploaded after ~late July 2020":{"pt-BR":"Usa vídeos sem marca d'água para o TikTok, se possível. Isso introduzirá um atraso extra ao carregar o vídeo, pois duas solicitações extras precisam ser realizadas. Também falhará para qualquer vídeo enviado após o final de julho de 2020",ru:"По возможности использует видео без водяных знаков для TikTok. Это приведёт к дополнительной задержке при загрузке видео, так как необходимо выполнить два дополнительных запроса. Это не будет работать для любых видео, загруженных после ~конца июля 2020 года.","zh-CN":"如果可能,为 TikTok 使用无水印视频。加载视频时需执行两个额外的请求,这将增加延迟。对2020年7月左右之后上传的任何视频不起作用"},"TikTok: 3rd-party watermark removal":{"pt-BR":"TikTok: Remoção de marca d'água por terceiros",ru:"TikTok: Удаление водяных знаков третьей стороной","zh-CN":"TikTok: 第三方水印去除"},"Uses a 3rd-party watermark removal site for TikTok.\nI do not endorse any of the sites supported. They may log your IP address and videos you submit. Use this option with caution.\n`LQ` = Low quality, `PL` = Public log":{"pt-BR":"Usa um site de terceiros para remoção de marca d'água do TikTok.\nNão endosso nenhum dos sites suportados. Eles podem registrar seu endereço IP e os vídeos que você enviar. Use esta opção com cautela.\n`LQ` = Baixa qualidade, `PL` = Registro público",ru:"Использует сторонний сайт удаления водяных знаков для TikTok.\nЯ не одобряю ни один из поддерживаемых сайтов. Они могут регистрировать ваш IP-адрес и видео, которые вы отправляете. Используйте этот параметр с осторожностью.\n`НК` = Низкое качество, `ПЛ` = Публичный лог","zh-CN":"使用一个适用于 TikTok 的第三方水印去除网站。\n这不代表对该网站的认可。该网站可能记录您的 IP 地址和提交的视频。谨慎使用。\n`LQ` = 低品质,`PL` = 公众日志"},"(none)":{"pt-BR":"(nenhum)",ru:"(ничего)","zh-CN":"(无)"},"ttloader.com":{"pt-BR":"ttloader.com",ru:"ttloader.com","zh-CN":"ttloader.com"},"onlinetik.com":{"pt-BR":"onlinetik.com",ru:"onlinetik.com","zh-CN":"onlinetik.com"},"tikdowns.com":{"pt-BR":"tikdowns.com",ru:"tikdowns.com","zh-CN":"tikdowns.com"},"ssstiktok.net":{"pt-BR":"ssstiktok.net",ru:"ssstiktok.net","zh-CN":"ssstiktok.net"},"keeptiktok.com (LQ)":{"pt-BR":"keeptiktok.com (BQ)",ru:"keeptiktok.com (НК)","zh-CN":"keeptiktok.com (LQ)"},"ssstiktok.io (LQ)":{"pt-BR":"ssstiktok.io (BQ)",ru:"ssstiktok.io (НК)","zh-CN":"ssstiktok.io (LQ)"},"musicallydown.com (LQ/PL)":{"pt-BR":"musicallydown.com (BQ/PL)",ru:"musicallydown.com (НК/ПЖ)","zh-CN":"musicallydown.com (LQ/PL)"},"snaptik.app (LQ)":{"pt-BR":"snaptik.app (BQ)",ru:"snaptik.app (НК)","zh-CN":"snaptik.app (LQ)"},"tikmate.online (LQ)":{"pt-BR":"tikmate.online (BQ)",ru:"tikmate.online (НК)","zh-CN":"tikmate.online (LQ)"},"Tumblr: API key":{"pt-BR":"Tumblr: Chave da API",ru:"Tumblr: ключ API","zh-CN":"Tumblr: API 密钥"},"API key for finding larger images on Tumblr":{"pt-BR":"Chave da API para encontrar imagens maiores no Tumblr",ru:"Ключ API для поиска больших изображений на Tumblr","zh-CN":"用于在 Tumblr 上查找更大图片的 API 密钥"},"Twitter: Use extension":{"pt-BR":"Twitter: Usar extensão",ru:"Twitter: Использовать расширение","zh-CN":"Twitter: 使用扩展名"},"Prefers `.jpg?name=orig` over `?format=jpg&name=orig`. This will possibly incur extra requests before succeeding. Note that there is no difference in image quality.":{"pt-BR":"Prefere `.jpg?name=orig` em vez de `?format=jpg&name=orig`. Isso possivelmente incorrerá em requisições extras antes de obter sucesso. Note que não há diferença na qualidade da imagem.",ru:"Предпочитать `.jpg?name=orig` поверх `?format=jpg&name=orig`. Это, возможно, повлечет за собой дополнительные запросы, прежде чем добиться успеха. Обратите внимание, что нет никакой разницы в качестве изображения.","zh-CN":"首选 `.jpg?name=orig` 而不是 `?format=jpg&name=orig`。这可能在成功前产生额外的请求。注意,图像质量上没有差异。"},"YouTube: Enable faster speeds":{"pt-BR":"YouTube: Habilitar velocidades mais rápidas"},"Increases the download bandwidth for YouTube videos by replacing the `n` parameter. Note that this may execute untrusted Javascript.":{"pt-BR":"Aumenta a largura de banda de download para vídeos do YouTube, substituindo o parâmetro `n`. Observe que isso pode executar Javascript não confiável."},"Media blacklist":{"pt-BR":"Lista negra de mídia"},"A list of URLs (one per line) that are blacklisted from being processed":{"pt-BR":"Uma lista de URLs (uma por linha) que estão na lista negra e não serão processadas",ru:"Список URL-адресов (по одному на строку), которые занесены в чёрный список для обработки.","zh-CN":"处理过程的黑名单网址列表(每行一条)"},"Media blacklist mode":{"pt-BR":"Modo de lista negra de mídia"},"Whether the media blacklist should act as a blacklist or a whitelist":{"pt-BR":"Se a lista negra de mídia deve funcionar como uma lista negra ou uma lista branca"},"Blacklist engine":{ko:"블랙리스트 엔진","pt-BR":"Mecanismo de lista negra",ru:"Движок чёрного списка","zh-CN":"黑名单引擎"},"How blacklists should be processed":{"pt-BR":"Como as listas negras devem ser processadas"},"Simple (glob)":{ko:"단순 (glob)","pt-BR":"Simples (glob)",ru:"Простой (glob)","zh-CN":"简易 (glob)"},Regex:{ko:"정규식","pt-BR":"Regex",ru:"Регулярное выражение","zh-CN":"正则表达式"},"Host blacklist":{"pt-BR":"Lista negra de hosts"},"A list of host URLs (one per line) that the popup is blacklisted from. For example, adding `twitter.com` to this blacklist would prevent any popup from opening on twitter.com.":{"pt-BR":"Uma lista de URLs de hosts (uma por linha) para as quais o popup está na lista negra. Por exemplo, adicionar `twitter.com` a esta lista negra impediria que qualquer popup fosse aberto em twitter.com."},"Host blacklist mode":{"pt-BR":"Modo de lista negra de hosts"},"Whether the host blacklist should act as a blacklist or a whitelist":{"pt-BR":"Se a lista negra de hosts deve funcionar como uma lista negra ou uma lista branca"},"HTML page blacklist":{"pt-BR":"Lista negra de páginas HTML"},"A list of URLs (one per line) that are blacklisted from being redirected.":{"pt-BR":"Uma lista de URLs (uma por linha) que estão na lista negra e não serão redirecionadas."},"The examples below are written for the simple (glob) engine, not the regex engine. The glob engine is generally based on the UNIX glob syntax.<br />\n<ul><br />\n<li><code>google.com</code> will block https://google.com/, https://www.google.com/, https://abcdef.google.com/, https://def.abc.google.com/, etc.</li>\n<li><code>abc.google.com</code> will block https://abc.google.com/, https://def.abc.google.com/, etc.</li>\n<li><code>*.google.com</code> will block https://www.google.com/, https://def.abc.google.com/, etc. but not https://google.com/</li>\n<li><code>google.*/</code> will block https://google.com/, https://www.google.co.uk, etc.</li>\n<li><code>http://google.com</code> will block http://google.com/, but not https://google.com/, http://www.google.com/, etc.</li>\n<li><code>google.com/test</code> will block https://google.com/test, https://www.google.com/test/abcdef, but not https://google.com/, etc.</li>\n<li><code>google.com/*/test</code> will block https://google.com/abc/test, but not https://google.com/test or https://google.com/abc/def/test</li>\n<li><code>google.com/**/test</code> will block https://google.com/abc/test, https://google.com/abc/def/test, https://google.com/abc/def/ghi/test, etc. but not https://google.com/test</li>\n<li><code>g??gle.com</code> will block https://google.com/, https://gaagle.com/, https://goagle.com/, etc.</li>\n<li><code>google.{com,co.uk}</code> will block https://google.com/ and https://google.co.uk/</li>\n<li><code>g[oau]ogle.com</code> will block https://google.com/, https://gaogle.com/, and http://www.guogle.com/</li>\n<li><code>g[0-9]ogle.com</code> will block https://g0ogle.com/, https://g1ogle.com/, etc. (up to https://g9ogle.com/)</li>\n</ul>":{"pt-BR":"Os exemplos abaixo foram escritos para o mecanismo simples (glob), não o mecanismo regex. O mecanismo glob é geralmente baseado na sintaxe glob do UNIX.<br />\n<ul><br />\n<li><code>google.com</code> bloqueará https://google.com/, https://www.google.com/, https://abcdef.google.com/, https://def.abc.google.com/, etc.</li>\n<li><code>abc.google.com</code> bloqueará https://abc.google.com/, https://def.abc.google.com/, etc.</li>\n<li><code>*.google.com</code> bloqueará https://www.google.com/, https://def.abc.google.com/, etc. mas não https://google.com/</li>\n<li><code>google.*/</code> bloqueará https://google.com/, https://www.google.co.uk, etc.</li>\n<li><code>http://google.com</code> bloqueará http://google.com/, mas não https://google.com/, http://www.google.com/, etc.</li>\n<li><code>google.com/test</code> bloqueará https://google.com/test, https://www.google.com/test/abcdef, mas não https://google.com/, etc.</li>\n<li><code>google.com/*/test</code> bloqueará https://google.com/abc/test, mas não https://google.com/test ou https://google.com/abc/def/test</li>\n<li><code>google.com/**/test</code> bloqueará https://google.com/abc/test, https://google.com/abc/def/test, https://google.com/abc/def/ghi/test, etc. mas não https://google.com/test</li>\n<li><code>g??gle.com</code> bloqueará https://google.com/, https://gaagle.com/, https://goagle.com/, etc.</li>\n<li><code>google.{com,co.uk}</code> bloqueará https://google.com/ e https://google.co.uk/</li>\n<li><code>g[oau]ogle.com</code> bloqueará https://google.com/, https://gaogle.com/, e http://www.guogle.com/</li>\n<li><code>g[0-9]ogle.com</code> bloqueará https://g0ogle.com/, https://g1ogle.com/, etc. (até https://g9ogle.com/)</li>\n</ul>",ru:"Приведенные ниже примеры написаны для простого (glob) движка, а не для движка регулярных выражений. Механизм glob обычно основан на синтаксисе UNIX glob.<br />\n<ul><br />\n<li><code>google.com</code> будет блокировать https://google.com/, https://www.google.com/, https://abcdef.google.com/, https://def.abc.google.com/, и т.д.</li>\n<li><code>abc.google.com</code> будет блокировать https://abc.google.com/, https://def.abc.google.com/, и т.д.</li>\n<li><code>*.google.com</code> будет блокировать https://www.google.com/, https://def.abc.google.com/, и т.д., но не https://google.com/</li>\n<li><code>google.*/</code> будет блокировать https://google.com/, https://www.google.co.uk, и т.д.</li>\n<li><code>http://google.com</code> будет блокировать http://google.com/, но не https://google.com/, http://www.google.com/, и т.д.</li>\n<li><code>google.com/test</code> будет блокировать https://google.com/test, https://www.google.com/test/abcdef, но не https://google.com/, и т.д.</li>\n<li><code>google.com/*/test</code> будет блокировать https://google.com/abc/test, но не https://google.com/test или https://google.com/abc/def/test</li>\n<li><code>google.com/**/test</code> будет блокировать https://google.com/abc/test, https://google.com/abc/def/test, https://google.com/abc/def/ghi/test, и т.д., но не https://google.com/test</li>\n<li><code>g??gle.com</code> будет блокировать https://google.com/, https://gaagle.com/, https://goagle.com/, и т.д.</li>\n<li><code>google.{com,co.uk}</code> будет блокировать https://google.com/ и https://google.co.uk/</li>\n<li><code>g[oau]ogle.com</code> будет блокировать https://google.com/, https://gaogle.com/, и http://www.guogle.com/</li>\n<li><code>g[0-9]ogle.com</code> будет блокировать https://g0ogle.com/, https://g1ogle.com/, и т.д. (вплоть до https://g9ogle.com/)</li>\n</ul>","zh-CN":"下面的示例是为建议(glob)引擎编写,而非正则表达式引擎。Glob 引擎通常基于 UNIX glob 语法。<br />\n<ul><br />\n<li><code>google.com</code> 将屏蔽 https://google.com/, https://www.google.com/, https://abcdef.google.com/, https://def.abc.google.com/ 等。</li>\n<li><code>abc.google.com</code> 将屏蔽 https://abc.google.com/, https://def.abc.google.com/ 等。</li>\n<li><code>*.google.com</code> 将屏蔽 https://www.google.com/, https://def.abc.google.com/ 等。但不含 https://google.com/</li>\n<li><code>google.*/</code> 将屏蔽 https://google.com/, https://www.google.co.uk 等。</li>\n<li><code>http://google.com</code> 将屏蔽 http://google.com/, but not https://google.com/, http://www.google.com/ 等。</li>\n<li><code>google.com/test</code> 将屏蔽 https://google.com/test, https://www.google.com/test/abcdef, but not https://google.com/ 等。</li>\n<li><code>google.com/*/test</code> 将屏蔽 https://google.com/abc/test,但不含 https://google.com/test 或 https://google.com/abc/def/test</li>\n<li><code>google.com/**/test</code> 将屏蔽 https://google.com/abc/test, https://google.com/abc/def/test, https://google.com/abc/def/ghi/test 等。 but not https://google.com/test</li>\n<li><code>g??gle.com</code> 将屏蔽 https://google.com/, https://gaagle.com/, https://goagle.com/ 等。</li>\n<li><code>google.{com,co.uk}</code> 将屏蔽 https://google.com/ 和https://google.co.uk/</li>\n<li><code>g[oau]ogle.com</code> 将屏蔽 https://google.com/, https://gaogle.com/, 和http://www.guogle.com/</li>\n<li><code>g[0-9]ogle.com</code> 将屏蔽 https://g0ogle.com/, https://g1ogle.com/ 等。 (up to https://g9ogle.com/)</li>\n</ul>"},"HTML page blacklist mode":{"pt-BR":"Modo de lista negra de páginas HTML"},"Whether the HTML page blacklist should act as a blacklist or a whitelist":{"pt-BR":"Se a lista negra de páginas HTML deve funcionar como uma lista negra ou uma lista branca"},Whitelist:{"pt-BR":"Lista branca"},Blacklist:{ko:"블랙리스트","pt-BR":"Lista negra",ru:"Чёрный список","zh-CN":"黑名单"},"Filename format":{"pt-BR":"Formato do nome do arquivo",ru:"Формат имени файла","zh-CN":"文件名格式"},"Format string(s) for the filename":{"pt-BR":"String(s) de formatação para o nome do arquivo",ru:"Формат строк(и) для имени файла.","zh-CN":"文件名格式化要用到的字符串"},Documentation:{"pt-BR":"Documentação",ru:"Документация","zh-CN":"文档"},"<p>Variables are specified between curly brackets (<code>{}</code>).</p>\n<p>Below is a list of valid variables:</p>\n<ul><br />\n<li><code>filename</code> - Original filename (with extension, if applicable)</li>\n<li><code>filename_noext</code> - Original filename (without extension, if applicable)</li>\n<li><code>ext</code> - Extension (with <code>.</code> prefixed)</li>\n<li><code>caption</code> - Popup caption</li>\n<li><code>author_username</code> - Author's username</li>\n<li><code>id</code> - Post ID</li>\n<li><code>host_title</code> - Title of the current tab/window</li>\n<li><code>host_url</code> - URL of the host webpage</li>\n<li><code>host_domain</code> - Domain of the host webpage</li>\n<li><code>host_domain_nosub</code> - Domain (without subdomains) of the host webpage</li>\n<li><code>url</code> - URL of the media</li>\n<li><code>domain</code> - Domain of the media</li>\n<li><code>domain_nosub</code> - Domain (without subdomains) of the media</li>\n<li><code>is_screenshot</code> - Blank, the line will only be processed when screenshotting a video</li>\n<li><code>prefix</code>, <code>suffix</code> - Blank by default, these variables will be automatically prefixed/suffixed to the filename if set using <code>:=</code></li>\n<li><code>created_...</code> - Created date (see note on Date objects below)</li>\n<li><code>updated_...</code> - Updated date, this will use the <code>Last-Modified</code> header if not otherwise specified by the rule (see note on Date objects below)</li>\n<li><code>download_...</code> - Download date (see note on Date objects below)</li>\n<li><code>date_...</code> - Created/updated date (see note on Date objects below)</li>\n</ul><br />\n<p>You can truncate the value of a variable by adding <code>:(number)</code> before the end bracket (<code>}</code>). For example:</p>\n<ul><br />\n<li><code>{caption:10}</code> - Truncates the caption to be at most 10 characters long</li>\n<li><code>{caption:10.}</code> - Same, but will add an ellipsis (…) if the caption was truncated</li>\n</ul><br />\n<p>If a variable doesn't exist, by default it will ignore the current format string and use the one on the next line, unless <code>?</code> is added before the end bracket. For example:</p>\n<ul><br />\n<li><code>{ext?}</code> - Will be replaced with nothing if <code>ext</code> doesn't exist</li>\n<li><code>{caption?no caption}</code> - Will be replaced with <code>no caption</code> if <code>caption</code> doesn't exist</li>\n</ul><br />\n<p>You can check for equality and inequality with <code>==</code> and <code>!=</code> operators respectively. For example:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{author_username} {id}</code> - Will only run the current format (<code>{author_username} {id}</code> in this case) if the domain is cdninstagram.com</li>\n</ul><br />\n<p>You can check if a variable contains a string with <code>/=</code> (<code>!/=</code> for the opposite). It also supports two flags, <code>r</code> (regex) and <code>c</code> (case-sensitive), if added between <code>/</code> and <code>=</code>. For example:</p>\n<ul><br />\n<li><code>{domain/=instagram}{id}</code> - Will only run the current format (<code>{id}</code>) if the domain contains <code>instagram</code></li>\n<li><code>{domain!/=instagram}{id}</code> - Likewise, but only if the domain does not contain <code>instagram</code></li>\n<li><code>{domain/r=inst.*ram}{id}</code> - Likewise, but only if the domain matches the regex <code>inst.*ram</code></li>\n<li><code>{window_title/c=Instagram}{id}</code> - Likewise, but only if the window's title contains <code>Instagram</code> (case-sensitively)</li>\n<li><code>{window_title!/rc=Inst.*ram}{id}</code> - Likewise, but only if the window's title does not match the case-sensitive regex <code>Inst.*ram</code></li>\n</ul><br />\n<p>You can set a custom variable with <code>:=</code>. For example:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{foo:=bar}</code> - Sets the variable <code>foo</code> to <code>bar</code> if the domain is <code>cdninstagram.com</code>. The variable can then be accessed with e.g. <code>{foo}</code></li>\n</ul><br />\n<p>Date objects are accessible through a number of properties. Each property can be suffixed with <code>_utc</code> to get the UTC/GMT equivalent.</p>\n<ul><br />\n<li><code>..._iso</code> - Date in ISO format (e.g. <code>2019-12-31T23-30-56</code>). Note that <code>:</code> is replaced with <code>-</code> to avoid issues with paths under NTFS.</li>\n<li><code>..._ago</code> - Human-readable representation of the time elapsed since the date (e.g. <code>1 year and 10 months ago</code>, <code>5 months and 20 days ago</code>)</li>\n<li><code>..._unix</code> - Unix timestamp (e.g. <code>1577912345</code>)</li>\n<li><code>..._unix_ms</code> - Unix timestamp with millisecond accuracy (e.g. <code>1577912345678</code>)</li>\n<li><code>..._yyyymmdd</code> - Date in YYYYMMDD format (e.g. <code>20191230</code>)</li>\n<li><code>..._hhmmss</code> - Time in HHMMSS format (e.g. <code>233056</code>)</li>\n<li><code>..._year</code> - Full year (e.g. <code>2019</code>)</li>\n<li><code>..._month</code> - Zero-padded month (e.g. <code>12</code>)</li>\n<li><code>..._day</code> - Zero-padded day (e.g. <code>31</code>)</li>\n<li><code>..._hours</code> - Zero-padded hours in military/24-hour format (e.g. <code>23</code>)</li>\n<li><code>..._minutes</code> - Zero-padded minutes (e.g. <code>30</code>)</li>\n<li><code>..._seconds</code> - Zero-padded seconds (e.g. <code>56</code>)</li>\n</ul>":{"pt-BR":"As variáveis são especificadas entre chaves (<code>{}</code>).</p>\n<p>Abaixo está uma lista de variáveis válidas:</p>\n<ul><br />\n<li><code>filename</code> - Nome do arquivo original (com extensão, se aplicável)</li>\n<li><code>filename_noext</code> - Nome do arquivo original (sem extensão, se aplicável)</li>\n<li><code>ext</code> - Extensão (prefixada com <code>.</code>)</li>\n<li><code>caption</code> - Legenda do popup</li>\n<li><code>author_username</code> - Nome de usuário do autor</li>\n<li><code>id</code> - ID do post</li>\n<li><code>host_title</code> - Título da aba/janela atual</li>\n<li><code>host_url</code> - URL da página de hospedagem</li>\n<li><code>host_domain</code> - Domínio da página de hospedagem</li>\n<li><code>host_domain_nosub</code> - Domínio (sem subdomínios) da página de hospedagem</li>\n<li><code>url</code> - URL da mídia</li>\n<li><code>domain</code> - Domínio da mídia</li>\n<li><code>domain_nosub</code> - Domínio (sem subdomínios) da mídia</li>\n<li><code>is_screenshot</code> - Em branco, a linha só será processada ao fazer uma captura de tela de um vídeo</li>\n<li><code>prefix</code>, <code>suffix</code> - Em branco por padrão, essas variáveis serão automaticamente prefixadas/sufixadas ao nome do arquivo se definidas usando <code>:=</code></li>\n<li><code>created_...</code> - Data de criação (veja a nota sobre objetos de data abaixo)</li>\n<li><code>updated_...</code> - Data de atualização, usará o cabeçalho <code>Last-Modified</code> se não especificado de outra forma pela regra (veja a nota sobre objetos de data abaixo)</li>\n<li><code>download_...</code> - Data de download (veja a nota sobre objetos de data abaixo)</li>\n<li><code>date_...</code> - Data de criação/atualização (veja a nota sobre objetos de data abaixo)</li>\n</ul><br />\n<p>Você pode truncar o valor de uma variável adicionando <code>:(número)</code> antes da chave de fechamento (<code>}</code>). Por exemplo:</p>\n<ul><br />\n<li><code>{caption:10}</code> - Trunca a legenda para ter no máximo 10 caracteres</li>\n<li><code>{caption:10.}</code> - O mesmo, mas adicionará uma reticência (…) se a legenda for truncada</li>\n</ul><br />\n<p>Se uma variável não existir, por padrão ignorará a string de formato atual e usará a próxima linha, a menos que <code>?</code> seja adicionado antes da chave de fechamento. Por exemplo:</p>\n<ul><br />\n<li><code>{ext?}</code> - Será substituído por nada se <code>ext</code> não existir</li>\n<li><code>{caption?sem legenda}</code> - Será substituído por <code>sem legenda</code> se <code>caption</code> não existir</li>\n</ul><br />\n<p>Você pode verificar igualdade e desigualdade com os operadores <code>==</code> e <code>!=</code> respectivamente. Por exemplo:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{author_username} {id}</code> - Executará o formato atual (<code>{author_username} {id}</code> neste caso) apenas se o domínio for cdninstagram.com</li>\n</ul><br />\n<p>Você pode verificar se uma variável contém uma string com <code>/=</code> (<code>!/=</code> para o oposto). Também suporta duas flags, <code>r</code> (regex) e <code>c</code> (case-sensitive), se adicionadas entre <code>/</code> e <code>=</code>. Por exemplo:</p>\n<ul><br />\n<li><code>{domain/=instagram}{id}</code> - Executará o formato atual (<code>{id}</code>) apenas se o domínio contiver <code>instagram</code></li>\n<li><code>{domain!/=instagram}{id}</code> - Da mesma forma, mas apenas se o domínio não contiver <code>instagram</code></li>\n<li><code>{domain/r=inst.*ram}{id}</code> - Da mesma forma, mas apenas se o domínio corresponder ao regex <code>inst.*ram</code></li>\n<li><code>{window_title/c=Instagram}{id}</code> - Da mesma forma, mas apenas se o título da janela contiver <code>Instagram</code> (diferenciação de maiúsculas e minúsculas)</li>\n<li><code>{window_title!/rc=Inst.*ram}{id}</code> - Da mesma forma, mas apenas se o título da janela não corresponder ao regex case-sensitive <code>Inst.*ram</code></li>\n</ul><br />\n<p>Você pode definir uma variável personalizada com <code>:=</code>. Por exemplo:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{foo:=bar}</code> - Define a variável <code>foo</code> como <code>bar</code> se o domínio for <code>cdninstagram.com</code>. A variável pode então ser acessada com, por exemplo, <code>{foo}</code></li>\n</ul><br />\n<p>Objetos de data são acessíveis através de várias propriedades. Cada propriedade pode ser sufixada com <code>_utc</code> para obter o equivalente UTC/GMT.</p>\n<ul><br />\n<li><code>..._iso</code> - Data em formato ISO (ex.: <code>2019-12-31T23-30-56</code>). Observe que <code>:</code> é substituído por <code>-</code> para evitar problemas com caminhos no NTFS.</li>\n<li><code>..._ago</code> - Representação legível do tempo decorrido desde a data (ex.: <code>1 ano e 10 meses atrás</code>, <code>5 meses e 20 dias atrás</code>)</li>\n<li><code>..._unix</code> - Timestamp Unix (ex.: <code>1577912345</code>)</li>\n<li><code>..._unix_ms</code> - Timestamp Unix com precisão de milissegundos (ex.: <code>1577912345678</code>)</li>\n<li><code>..._yyyymmdd</code> - Data em formato YYYYMMDD (ex.: <code>20191230</code>)</li>\n<li><code>..._hhmmss</code> - Hora em formato HHMMSS (ex.: <code>233056</code>)</li>\n<li><code>..._year</code> - Ano completo (ex.: <code>2019</code>)</li>\n<li><code>..._month</code> - Mês com zero à esquerda (ex.: <code>12</code>)</li>\n<li><code>..._day</code> - Dia com zero à esquerda (ex.: <code>31</code>)</li>\n<li><code>..._hours</code> - Horas com zero à esquerda no formato militar/24 horas (ex.: <code>23</code>)</li>\n<li><code>..._minutes</code> - Minutos com zero à esquerda (ex.: <code>30</code>)</li>\n<li><code>..._seconds</code> - Segundos com zero à esquerda (ex.: <code>56</code>)</li>\n</ul>",ru:"<p>Переменные указываются между фигурными скобками (<code>{}</code>).</p>\n<p>Ниже приведен список допустимых переменных:</p>\n<ul><br />\n<li><code>filename</code> - Оригинальное имя файла (с расширением, если применимо)</li>\n<li><code>filename_noext</code> - Оригинальное имя файла (без расширения, если применимо)</li>\n<li><code>ext</code> - Расширение (с префиксом <code>.</code>)</li>\n<li><code>caption</code> - Заголовок всплывающего окна</li>\n<li><code>author_username</code> - Имя пользователя автора</li>\n<li><code>id</code> - ID записи</li>\n<li><code>host_title</code> - Заголовок текущей вкладки/окна</li>\n<li><code>host_url</code> - URL-адрес веб-страницы хоста</li>\n<li><code>host_domain</code> - Домен главной веб-страницы</li>\n<li><code>host_domain_nosub</code> - Домен (без субдоменов) главной веб-страницы</li>\n<li><code>url</code> - URL-адрес медиа</li>\n<li><code>domain</code> - Домен медиа</li>\n<li><code>domain_nosub</code> - Домен (без субдоменов) медиа</li>\n<li><code>is_screenshot</code> - Пусто, строка будет обрабатываться только при скриншоте видео.</li>\n<li><code>prefix</code>, <code>suffix</code> - По умолчанию пустые, эти переменные будут автоматически приставляться к имени файла, если они заданы с помощью <code>:=</code></li>\n<li><code>created_...</code> - Дата создания (см. примечание к объектам Date ниже)</li>\n<li><code>updated_...</code> - Дата обновления, при этом будет использоваться заголовок <code>Last-Modified,</code> если правило не указано иным образом (см. примечание к объектам Date ниже)</li>\n<li><code>download_...</code> - Дата скачивания (см. примечание об объектах Date ниже)</li>\n<li><code>date_...</code> - Дата создания/обновления (см. примечание об объектах Date ниже)</li>\n</ul><br />\n<p>Вы можете усечь значение переменной, добавив <code>:(number)</code> перед закрывающей скобкой (<code>}</code>). Например:</p>\n<ul><br />\n<li><code>{caption:10}</code> - Обрезает заголовок до 10 символов</li>\n<li><code>{caption:10.}</code> - То же самое, но с добавлением многоточия (…), если заголовок был обрезан</li>\n</ul><br />\n<p>Если переменная не существует, по умолчанию она будет игнорировать текущую строку формата и использовать ту, которая находится в следующей строке, если только <code>?</code> не добавлена перед закрывающей скобкой. Например:</p>\n<ul><br />\n<li><code>{ext?}</code> - Будет заменен ничем, если <code>ext</code> не существует</li>\n<li><code>{caption?no caption}</code> - Будет заменено на <code>no caption</code>, если <code>caption</code> не существует</li>\n</ul><br />\n<p>Вы можете проверить равенство и неравенство с помощью операторов <code>==</code> и <code>!=</code> соответственно. Например:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{author_username} {id}</code> - Будет работать только в текущем формате (в данном случае <code>{author_username} {id}</code>), если домен cdninstagram.com</li>\n</ul><br />\n<p>Вы можете проверить, содержит ли переменная строку с <code>/=</code> (<code>!/=</code> для противоположного). Он также поддерживает два флага, <code>r</code> (regex) и <code>c</code> (чувствительный к регистру), если добавлен между <code>/</code> и <code>=</code>. Например:</p>\n<ul><br />\n<li><code>{domain/=instagram}{id}</code> - Будет работать только в текущем формате (<code>{id}),</code> если домен содержит <code>instagram</code></li>\n<li><code>{domain!/=instagram}{id}</code> - Аналогично, но только если домен не содержит <code>instagram</code></li>\n<li><code>{domain/r=inst.*ram}{id}</code> - Аналогично, но только в том случае, если домен соответствует regex <code>inst.*ram</code></li>\n<li><code>{window_title/c=Instagram}{id}</code> - Аналогично, но только если заголовок окна содержит <code>Instagram</code> (с учётом регистра)</li>\n<li><code>{window_title!/rc=Inst.*ram}{id}</code> - Аналогично, но только в том случае, если заголовок окна не соответствует regex <code>Inst.*ram</code> с учётом регистра</li>\n</ul><br />\n<p>Пользовательскую переменную можно задать с помощью <code>:=</code>. Например:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{foo:=bar}</code> - Устанавливает для переменной <code>foo</code> значение <code>bar</code>, если доменом является <code>cdninstagram.com</code>. Затем к переменной можно получить доступ, например <code>{foo}</code></li>\n</ul><br />\n<p>Объекты Date доступны через ряд свойств. Каждое свойство может быть суффиксировано с <code>_utc</code>, чтобы получить эквивалент UTC/GMT.</p>\n<ul><br />\n<li><code>..._iso</code> - Дата в формате ISO (например, <code>2019-12-31T23-30-56</code>). Обратите внимание, что <code>:</code> заменяется на <code>-</code> во избежание проблем с путями под NTFS.</li>\n<li><code>..._ago</code> - Удобочитаемое представление времени, прошедшего с даты (например, <code>1 год и 10 месяцев назад</code>, <code>5 месяцев и 20 дней назад</code>)</li>\n<li><code>..._unix</code> - Отметка времени Unix (например <code>1577912345</code>)</li>\n<li><code>..._unix_ms</code> - Отметка времени Unix с точностью до миллисекунды (например <code>1577912345678</code>)</li>\n<li><code>..._yyyymmdd</code> - Дата в формате YYYYMMDD (например <code>20191230</code>)</li>\n<li><code>..._hhmmss</code> - Время в формате HHMMSS (например <code>233056</code>)</li>\n<li><code>..._year</code> - Полный год (например <code>2019</code>)</li>\n<li><code>..._month</code> - Месяц с добавлением нуля (например <code>12</code>)</li>\n<li><code>..._day</code> - День с добавление нуля (например <code>31</code>)</li>\n<li><code>..._hours</code> - Часы с добавлением нуля в военном/24-часовом формате (например <code>23</code>)</li>\n<li><code>..._minutes</code> - Минуты с добавлением нуля (например <code>30</code>)</li>\n<li><code>..._seconds</code> - Секунды с добавлением нуля (например <code>56</code>)</li>\n</ul>","zh-CN":"<p>大括号间可使用的变量(<code>{}</code>)。</p>\n<p>下述为有效变量列表:</p>\n<ul><br />\n<li><code>filename</code> - 原始文件名(含扩展名,如适用)</li>\n<li><code>filename_noext</code> - 原始文件名(无扩展名,如适用)</li>\n<li><code>ext</code> - 扩展名(含 <code>.</code> 前缀)</li>\n<li><code>caption</code> - 弹窗的标题</li>\n<li><code>author_username</code> - 作者的用户名</li>\n<li><code>id</code> - 帖子 ID</li>\n<li><code>host_title</code> - 当前标签页/窗口的标题</li>\n<li><code>host_url</code> - 托管网页的网址</li>\n<li><code>host_domain</code> - 托管网页的域名</li>\n<li><code>host_domain_nosub</code> - 托管网页的域名(不含子域名)</li>\n<li><code>url</code> - 媒体(文件)的网址</li>\n<li><code>domain</code> - 媒体(文件)的域名</li>\n<li><code>domain_nosub</code> - 媒体的域名(不含子域名)</li>\n<li><code>is_screenshot</code> - 空白,此行仅在对视频截图时处理</li>\n<li><code>prefix</code>, <code>suffix</code> - 默认空白,这些变量在使用 <code>:=</code> 时自动作为文件名的前缀/后缀</li>\n<li><code>created_...</code> - 创建日期(详见下文“日期”对象)</li>\n<li><code>updated_...</code> - 更新日期,规则未另行指定时将使用 <code>Last-Modified</code> 头(详见下文“日期”对象)</li>\n<li><code>download_...</code> - 下载日期(详见下文“日期”对象)</li>\n<li><code>date_...</code> - 创建/更新日期(详见下文“日期”对象)</li>\n</ul><br />\n<p>您可以在变量的右括号(<code>}</code>)前添加 <code>:(number)</code> 来截断值。例如:</p>\n<ul><br />\n<li><code>{caption:10}</code> - 将标题截断为最多 10 个字符</li>\n<li><code>{caption:10.}</code> - 同上,但当标题被截断时追加一个省略号(…)</li>\n</ul><br />\n<p>如果变量不存在,默认将忽略当前的格式化字符串,并使用下一行,除非右括号前添加了 <code>?</code>。例如:</p>\n<ul><br />\n<li><code>{ext?}</code> - 在 <code>ext</code> 不存在时变为空</li>\n<li><code>{caption?无标题}</code> - <code>caption</code> 不存在时变为 <code>无标题</code></li>\n</ul><br />\n<p>可以分别使用 <code>==</code> 和 <code>!=</code> 操作符检查相等和不等式。例如:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{author_username} {id}</code> - 仅在域名为 cdninstagram.com 时采用这条格式(<code>{author_username} {id}</code>)</li>\n</ul><br />\n<p>可以用 <code>/=</code> 检查变量是否包含指定字符串(<code>!/=</code> 检查是否不包含)。它还支持两个标志,<code>r</code>(正则表达式)和 <code>c</code>(区分大小写),加在 <code>/</code> 与 <code>=</code> 之间。例如:</p>\n<ul><br />\n<li><code>{domain/=instagram}{id}</code> - 仅在域名包含 <code>instagram</code> 时采用格式(<code>{id}</code>)</li>\n<li><code>{domain!/=instagram}{id}</code> - 仅在域名不包含 <code>instagram</code> 时</li>\n<li><code>{domain/r=inst.*ram}{id}</code> - 仅在域名匹配正则表达式 <code>inst.*ram</code> 时</li>\n<li><code>{window_title/c=Instagram}{id}</code> - 仅在窗口标题包含 <code>Instagram</code> 时(区分大小写)</li>\n<li><code>{window_title!/rc=Inst.*ram}{id}</code> - 仅在窗口标题不匹配区分大小写的正则表达式 <code>Inst.*ram</code> 时</li>\n</ul><br />\n<p>可以用 <code>:=</code> 设置一个自定义变量。例如:</p>\n<ul><br />\n<li><code>{domain_nosub==cdninstagram.com}{foo:=bar}</code> - 如果域名是 <code>cdninstagram.com</code>,设置变量 <code>foo</code> 为 <code>bar</code>。变量的访问方式如 <code>{foo}</code></li>\n</ul><br />\n<p>日期对象可通过众多属性访问。每个属性都可以后缀 <code>_utc</code> 来获取等效的 UTC/GMT 时间。</p>\n<ul><br />\n<li><code>..._iso</code> - ISO 格式的日期(例如 <code>2019-12-31T23-30-56</code>)。注意,<code>:</code> 被替换为 <code>-</code> 以避免违反 NTFS 路径约束。</li>\n<li><code>..._ago</code> - 易于阅读的已经过时间(例如 <code>1 year and 10 months ago</code>、<code>5 months and 20 days ago</code>)</li>\n<li><code>..._unix</code> - Unix 时间戳(例如 <code>1577912345</code>)</li>\n<li><code>..._unix_ms</code> - Unix 时间戳,毫秒精度(例如 <code>1577912345678</code>)</li>\n<li><code>..._yyyymmdd</code> - YYYYMMDD 格式日期(例如 <code>20191230</code>)</li>\n<li><code>..._hhmmss</code> - HHMMSS 格式时间(例如 <code>233056</code>)</li>\n<li><code>..._year</code> - 完整年份(例如 <code>2019</code>)</li>\n<li><code>..._month</code> - 补零月份(例如 <code>12</code>)</li>\n<li><code>..._day</code> - 补零的日(例如 <code>31</code>)</li>\n<li><code>..._hours</code> - 补零的小时,24小时制(例如 <code>23</code>)</li>\n<li><code>..._minutes</code> - 补零的分钟(例如 <code>30</code>)</li>\n<li><code>..._seconds</code> - 补零的秒(例如 <code>56</code>)</li>\n</ul>"},"Replace special characters with underscores":{"pt-BR":"Substituir caracteres especiais por underlines",ru:"Замена спецсимволов подчёркиванием","zh-CN":"用下划线替换特殊字符"},'Replaces characters such as `/` or `"` with `_` when downloading. Note that browsers will usually do this automatically, this is just to ensure consistent behavior.':{"pt-BR":'Substitui caracteres como `/` ou `"` por `_` ao baixar. Observe que os navegadores geralmente fazem isso automaticamente, isso é apenas para garantir um comportamento consistente.',ru:'Заменяет такие символы, как `/` или `"` на `_` при скачивании. Обратите внимание, что браузеры обычно делают это автоматически, это просто для обеспечения согласованного поведения.',"zh-CN":'下载时将诸如 `/`、`"` 等字符替换为 `_` 。浏览器通常会自动这样做,这只是为了确保一致的行为。'},"Trigger keybinding that will run the Replace Images function":{"pt-BR":"Atalho de teclado que executará a função Substituir Imagens",ru:"Вызывает привязку клавиш, которая запустит функцию замены изображений.","zh-CN":"运行“替换图像”功能的触发键"},"Automatically replace images":{"pt-BR":"Substituir imagens automaticamente",ru:"Автозамена изображений","zh-CN":"自动替换图像"},"Automatically replace images to larger versions on pages you view":{"pt-BR":"Substituir automaticamente imagens por versões maiores nas páginas que você visualiza",ru:"Автозамена изображений на более крупные версии на просматриваемых страницах.","zh-CN":"在您查看的页面上自动将图像替换为较大版本"},"This could lead to rate limiting or IP bans":{"pt-BR":"Isso pode levar a limitação de taxa ou banimento de IP",ru:"Это может привести к ограничению скорости или блокировке IP-адреса.","zh-CN":"这可能导致速率限制和封禁 IP"},"Use data URLs":{"pt-BR":"Usar URLs de dados",ru:"Использовать data URL","zh-CN":"使用 data URL"},"Uses data:// URLs instead of image links. Disabling this may improve compatibility with some bulk image downloader extensions":{"pt-BR":"Utiliza URLs data:// em vez de links de imagem. Desabilitar isso pode melhorar a compatibilidade com algumas extensões de download de imagens em massa",ru:"Использует data:// URL вместо ссылок на изображения. Отключение этого параметра может улучшить совместимость с некоторыми расширениями массового скачивания изображений.","zh-CN":"使用 data:// URL 代替图像链接。禁用此功能可能改善与批量下载图片的扩展的兼容性"},"Wait until image is fully loaded":{"pt-BR":"Esperar até que a imagem seja totalmente carregada",ru:"Ждать полную загрузку изображения","zh-CN":"等待至图像完全加载"},"Waits until the image being replaced is fully loaded before moving on to the next image":{"pt-BR":"Aguarda até que a imagem sendo substituída seja totalmente carregada antes de passar para a próxima imagem",ru:"Ждёт пока заменяемое изображение не будет полностью загружено прежде чем перейти к следующему изображению.","zh-CN":"移动到下一个图像之前,等待被替换的图像完全加载"},"Max images to process at once":{"pt-BR":"Máximo de imagens para processar de uma vez",ru:"Максимально изображений для одновременной обработки","zh-CN":"一次最多处理图像"},"The maximum amount of images to process at once":{"pt-BR":"A quantidade máxima de imagens para processar de uma vez",ru:"Максимальное количество изображений для обработки одновременно.","zh-CN":"一次最多处理多少个图像"},"Max images per domain at once":{"pt-BR":"Máximo de imagens por domínio de uma vez",ru:"Максимально изображений на домен одновременно","zh-CN":"每个域一次最多图像"},"The maximum amount of images per domain to process at once":{"pt-BR":"A quantidade máxima de imagens por domínio para processar de uma vez",ru:"Максимальное количество изображений на домен для одновременной обработки.","zh-CN":"每个域(名)一次最多处理多少个图像"},images:{es:"imágenes",ko:"이미지","pt-BR":"imagens",ru:"Изображения","zh-CN":"个图像"},"Delay between same-domain images":{"pt-BR":"Atraso entre imagens do mesmo domínio",ru:"Задержка между однодоменными изображениями.","zh-CN":"同域图像之间延迟"},"New requests for images in the same domain will be delayed by this amount of seconds. Useful for avoiding rate limits.":{"pt-BR":"Novas requisições para imagens no mesmo domínio serão atrasadas por esta quantidade de segundos. Útil para evitar limites de taxa.",ru:"Новые запросы на изображения в том же домене будут задерживаться на это количество секунд. Полезно для избежания ограничений скорости.","zh-CN":"对同域图像的新请求将延迟此秒数。有助避免触发频率限制。"},seconds:{es:"segundos",ko:"초","pt-BR":"segundos",ru:"сек.","zh-CN":"秒"},"Replace images":{"pt-BR":"Substituir imagens",ru:"Заменять изображения","zh-CN":"替换图片"},"Replaces images to their larger versions when the button is pressed":{"pt-BR":"Substitui as imagens por suas versões maiores quando o botão é pressionado",ru:"Заменяет изображения на их более крупные версии при нажатии кнопки.","zh-CN":"按下按钮时,将图像替换为较大的版本"},"Add links":{"pt-BR":"Adicionar links",ru:"Добавлять ссылки","zh-CN":"添加链接"},"Adds links around replaced media if a link doesn't already exist":{"pt-BR":"Adiciona links ao redor da mídia substituída se um link ainda não existir",ru:"Добавляет ссылки вокруг заменённых медиа, если ссылки ещё не существует.","zh-CN":"在已替换媒体旁添加链接(如果尚无)"},"Replace links":{"pt-BR":"Substituir links",ru:"Заменять ссылки","zh-CN":"替换链接"},"Replaces links if they already exist":{"pt-BR":"Substitui links se eles já existirem",ru:"Заменяет ссылки, если они уже существуют.","zh-CN":"替换已经存在的链接"},"Plain hyperlinks":{"pt-BR":"Hiperlinks simples",ru:"Простые гиперссылки","zh-CN":"纯粹超链接"},"How to treat plain (non-media) hyperlinks that link to potential media":{"pt-BR":"Como tratar hiperlinks simples (não mídia) que ligam para mídias em potencial",ru:"Как обращаться с простыми (немедийными) гиперссылками, которые ссылаются на потенциальные медиа.","zh-CN":"如何处理链接到潜在媒体的纯粹超链接"},"Replace link+text":{"pt-BR":"Substituir link+texto",ru:"Заменять ссылку+текст","zh-CN":"替换链接和文本"},"Replace media":{"pt-BR":"Substituir mídia",ru:"Заменять медиа","zh-CN":"替换媒体"},"Links open in new tab":{"pt-BR":"Links abrem em nova aba",ru:"Открывать ссылки в новой вкладке","zh-CN":"在新标签页中打开链接"},"Clicking on a replaced link will open the media in a new tab":{"pt-BR":"Clicar em um link substituído abrirá a mídia em uma nova aba",ru:"Нажатие на заменённую ссылку откроет медиа в новой вкладке.","zh-CN":"单击已替换的链接将在新标签页中打开媒体"},"Size constraints":{"pt-BR":"Restrições de tamanho",ru:"Ограничения по размеру","zh-CN":"大小限制"},"Removes or enforces height/width specifiers for replaced media":{"pt-BR":"Remove ou aplica especificadores de altura/largura para mídia substituída",ru:"Удаляет или применяет спецификаторы высоты/ширины для замененных медиа","zh-CN":"移除或强制应用被替换媒体的高度/宽度说明符"},Ignore:{"pt-BR":"Ignorar",ru:"Игнорировать","zh-CN":"忽略"},Remove:{"pt-BR":"Remover",ru:"Удалить","zh-CN":"移除"},Force:{"pt-BR":"Forçar",ru:"Принудительно","zh-CN":"强制"},"Replacement CSS":{"pt-BR":"CSS de Substituição",ru:"Замена CSS","zh-CN":"替换 CSS"},"CSS styles to apply to replaced media. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't yet supported here)":{"pt-BR":"Estilos CSS para aplicar à mídia substituída. Consulte a documentação para o estilo CSS de Popup para mais informações (as variáveis thumb/full URL ainda não são suportadas aqui)",ru:"Стили CSS для применения к заменяемым медиа. Дополнительные сведения смотрите в документации 'Стилизация CSS всплывающего окна' (здесь не поддерживаются переменные URL thumb/full).","zh-CN":"应用到已替换媒体的 CSS 样式。更多信息详见“弹窗 CSS 样式”文档(此处不支持 thumb/full URL 变量)"},"Simple progress":{"pt-BR":"Progresso simples",ru:"Простой прогресс","zh-CN":"简单进度条"},"Uses a simpler progress bar that has a fixed size for all media. This is useful to see how many images are replaced, rather than the ETA":{"pt-BR":"Utiliza uma barra de progresso mais simples com tamanho fixo para todas as mídias. Isso é útil para ver quantas imagens são substituídas, em vez do tempo estimado de conclusão",ru:"Использует более простую шкалу прогресса, которая имеет фиксированный размер для всех медиа. Это полезно для того, чтобы увидеть, сколько изображений заменено, а не ждать.","zh-CN":"对所有媒体使用固定大小的简单进度条。这能看到有多少图像已替换,而不是只有剩余时间"},"Trigger keybinding that will run the Highlight Images function":{"pt-BR":"Atalho de teclado que executará a função 'Destacar Imagens'",ru:"Привязка клавиши действия, которое будет запускать функцию подсветки изображений.","zh-CN":"用来运行“高亮图像”功能的触发键"},"Enables the 'Highlight Images' button":{"pt-BR":"Habilita o botão 'Destacar Imagens'",ru:"Включает кнопку 'Подсветить изображения'.","zh-CN":"启用“高亮图像”按钮"},"Automatically highlight images":{"pt-BR":"Destacar imagens automaticamente",ru:"Автоподсвечивать изображения","zh-CN":"自动高亮图片"},"Automatically highlights images as you view pages":{"pt-BR":"Destaca automaticamente as imagens enquanto você visualiza as páginas",ru:"Автоматически подсвечивает изображения при просмотре страниц.","zh-CN":"查看页面时自动突出图像"},Always:{"pt-BR":"Sempre",ru:"Постоянно","zh-CN":"总是"},Hover:{"pt-BR":"Ao passar o mouse",ru:"Наведение","zh-CN":"悬停"},"When hovering over an image":{"pt-BR":"Ao passar o mouse sobre uma imagem",ru:"При наведении курсора на изображение.","zh-CN":"鼠标在图片上悬停时"},Never:{"pt-BR":"Nunca",ru:"Никогда","zh-CN":"从不"},"Only explicitly supported images":{"pt-BR":"Apenas imagens explicitamente suportadas",ru:"Только явно поддерживаемые изображения","zh-CN":"仅限明确支持的图像"},"Only highlights images that can be made larger or the original version can be found":{"pt-BR":"Destaca apenas imagens que podem ser ampliadas ou cuja versão original pode ser encontrada",ru:"Подсвечивает только изображения, которые могут быть увеличены или можно найти их оригинальную версию.","zh-CN":"仅突出可以换成更大尺寸的图像"},"Highlight CSS":{"pt-BR":"CSS de Destaque",ru:"CSS подсветка","zh-CN":"高亮 CSS"},"CSS style to apply for highlight. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)":{"pt-BR":"Estilo CSS para aplicar ao destaque. Consulte a documentação para o estilo CSS de Popup para mais informações (as variáveis thumb/full URL não são suportadas aqui)",ru:"Стилизация CSS, для применения к подсветке. Дополнительные сведения смотрите в документации 'Стилизация CSS всплывающего окна' (здесь не поддерживаются переменные URL thumb/full).","zh-CN":"高亮时使用的 CSS 样式。更多信息详见“弹窗 CSS 样式”文档(此处不支持 thumb/full URL 变量)"},"Enable trigger key":{"pt-BR":"Habilitar tecla de disparo",ru:"Включить клавишу действия","zh-CN":"启用触发键"},"Enables the use of the trigger key to run it without needing to use the menu":{"pt-BR":"Habilita o uso da tecla de disparo para executar a função sem precisar usar o menu",ru:"Позволяет использовать клавишу действия для запуска без необходимости использования меню.","zh-CN":"允许使用触发键来运行,无需使用菜单"},"Trigger key":{"pt-BR":"Tecla de disparo",ru:"Клавиша действия","zh-CN":"触发键"},"Trigger keybinding that will run the Custom Gallery function":{"pt-BR":"Atalho de teclado que executará a função 'Galeria Personalizada'"},"Enable button":{"pt-BR":"Habilitar botão",ru:"Включить кнопку","zh-CN":"启用按钮"},"Enables the 'Custom Gallery' button":{"pt-BR":"Habilita o botão 'Galeria Personalizada'"},"Apply key":{"pt-BR":"Tecla de aplicação"},"Triggers the gallery when pressed":{"pt-BR":"Aciona a galeria quando pressionada"},"Background CSS":{"pt-BR":"CSS de Fundo"},"CSS style to apply for the background":{"pt-BR":"Estilo CSS para aplicar ao fundo"},"Outline CSS":{"pt-BR":"CSS de Contorno"},"CSS style to apply for element outlines":{"pt-BR":"Estilo CSS para aplicar aos contornos dos elementos"},"Mouseover popup action":{en:"Popup action",es:"Acción del popup",ko:"이미지 팝업 작업","pt-BR":"Ação do popup ao passar o mouse",ru:"Действие всплывающего окна при наведение курсора","zh-CN":"移动时弹窗的动作"},"Determines how the mouseover popup will open":{ko:"마우스오버 팝업이 열리는 방식","pt-BR":"Determina como o popup ao passar o mouse será aberto",ru:"Определяет, как откроётся всплывающее окно при наведении курсора мыши.","zh-CN":"决定鼠标悬停弹窗将打开"},Popup:{ko:"팝업","pt-BR":"Popup",ru:"Всплывающее окно","zh-CN":"弹窗"},"New tab":{es:"Nueva pestaña",fr:"Nouvel onglet",ko:"새 탭","pt-BR":"Nova aba",ru:"Новая вкладка","zh-CN":"新标签页"},"New background tab":{"pt-BR":"Nova aba em segundo plano",ru:"Новая фоновая вкладка","zh-CN":"新后台标签页"},Download:{"pt-BR":"Baixar",ru:"Скачать","zh-CN":"下载"},"Copy link":{"pt-BR":"Copiar link",ru:"Копировать ссылку","zh-CN":"复制链接"},Replace:{"pt-BR":"Substituir",ru:"Заменить","zh-CN":"替换"},"Exclude page background":{ko:"페이지 배경 제외","pt-BR":"Excluir plano de fundo da página",ru:"Исключать фон страницы","zh-CN":"排除页面背景"},"Excludes the page background for the popup":{ko:"팝업에 대한 페이지 배경 제외","pt-BR":"Exclui o plano de fundo da página para o popup",ru:"Исключает фон страницы для всплывающего окна.","zh-CN":"避免为页面背景显示弹窗"},"Minimum size":{"pt-BR":"Tamanho mínimo",ru:"Минимальный размер","zh-CN":"最小尺寸"},"Smallest size acceptable for the popup to open (this option is ignored for background images). This refers to the size of the media to be popped up, which may differ from the source media.":{"pt-BR":"Menor tamanho aceitável para o popup abrir (esta opção é ignorada para imagens de fundo). Refere-se ao tamanho da mídia a ser exibida no popup, que pode ser diferente da mídia de origem.",ru:"Наименьший размер, допустимый для открытия всплывающего окна (этот параметр игнорируется для фоновых изображений). Это относится к размеру всплывающего медиа, который может отличаться от оригинала.","zh-CN":"允许多小的图像显示弹窗。背景图像不被此选项涵盖。这指将要弹窗显示的媒体大小,这可能与源媒体不同。"},"Maximum source size":{"pt-BR":"Tamanho máximo da origem",ru:"Максимальный размер источника","zh-CN":"最大源尺寸"},"Maximum size (width/height) for the source media to allow popping up (this option is ignored for background images). Set to `0` for any size.":{"pt-BR":"Tamanho máximo (largura/altura) para a mídia de origem permitir a exibição em popup (esta opção é ignorada para imagens de fundo). Defina como `0` para qualquer tamanho.",ru:"Максимальный размер (ширина/высота) исходного медиафайла для разрешения всплытия (этот параметр игнорируется для фоновых изображений). `0` - любой размер.","zh-CN":"以源媒体显示弹窗的最大尺寸(宽度/高度)(对背景图像来说此选项无效)。设为 0 表示任意大小。"},pixels:{"pt-BR":"pixels",ru:"пикс.","zh-CN":"像素"},"Exclude `background-image`s":{ko:"배경 이미지 제외","pt-BR":"Excluir imagens de fundo",ru:"Исключать `background-image`","zh-CN":"排除背景图像"},"Excludes `background-image`s for the popup. Might prevent the popup from working on many images":{ko:"팝업의 배경 이미지 제외. 팝업이 많은 이미지에서 작동하지 않을 수 있음","pt-BR":"Exclui imagens de fundo (`background-image`) do popup. Pode impedir que o popup funcione em muitas imagens",ru:"Исключает `background-image` для всплывающего окна. Это может помешать всплывающему окну работать со многими изображениями.","zh-CN":"不为背景图像显示弹窗。可能使很多图像上不显示弹窗"},"Enable videos":{"pt-BR":"Habilitar vídeos",ru:"Включить видео","zh-CN":"支持视频"},"Allows videos to be popped up":{"pt-BR":"Permite que vídeos sejam exibidos em popup",ru:"Позволяет открывать всплывающеее окно для видео","zh-CN":"允许视频弹窗"},"Enable audio":{"pt-BR":"Habilitar áudio",ru:"Включить аудио","zh-CN":"启用音频"},"Allows audio to be popped up. Currently experimental.\nThis only applies to audio files. Videos that contains audio are supported regardless of this setting.":{"pt-BR":"Permite que áudio seja exibido em popup. Atualmente experimental.\nIsso se aplica apenas a arquivos de áudio. Vídeos que contêm áudio são suportados independentemente desta configuração.",ru:"Позволяет открывать всплывающее окно для аудио. В настоящее время экспериментальный.\nЭто относится только к аудиофайлам. Видео, содержащие аудио, поддерживаются независимо от этой настройки.","zh-CN":"允许音频弹窗。目前处于实验阶段。\n这仅适用于音频文件。包含音频的视频无关此设置。"},"Allow HLS/DASH streams":{"pt-BR":"Permitir streams HLS/DASH",ru:"Разрешить потоки HLS/DASH","zh-CN":"允许 HLS/DASH 流"},"Allows playback of HLS/DASH streams":{"pt-BR":"Permite a reprodução de streams HLS/DASH",ru:"Позволяет воспроизводить потоки HLS/DASH.","zh-CN":"允许播放 HLS/DASH 流"},Dailymotion:{"pt-BR":"Dailymotion",ru:"Ежедневноедвижение","zh-CN":"Dailymotion"},"Instagram (higher quality)":{"pt-BR":"Instagram (maior qualidade)",ru:"Instagram (качество выше)","zh-CN":"Instagram(更高质量)"},Reddit:{"pt-BR":"Reddit",ru:"Reddit","zh-CN":"Reddit"},"YouTube (higher quality)":{"pt-BR":"YouTube (maior qualidade)",ru:"YouTube (качество выше)","zh-CN":"YouTube(更高质量)"}},Je=function(e){var t=[e],o=e.replace(/-.*/,"");return o!==e&&t.push(o),t};function Bi(e){for(var t=1;t<arguments.length;t++)t-1,0;if("string"!=typeof e)return e;var o=Je(Ti.language);if(e in Ze){for(var r=!1,i=0;i<o.length;i++){var a=o[i];if(a in Ze[e]){e=Ze[e][a],r=!0;break}}!r&&"en"!==a&&"en"in Ze[e]&&(e=Ze[e].en)}if(gi(e,"%")<0)return e;for(var n=[],s="",i=0;i<e.length;i++){if("%"==e[i]&&i+2<e.length&&"%"==e[i+1]){var l=ki(e[i+2]);if(!isNaN(l)){n.push(s),s="",n.push(arguments[l]),i+=2;continue}}s+=e[i]}return n.push(s),n.join("")}var Ke,Qe=["mouseover_trigger","mouseover_use_fully_loaded_video","mouseover_use_fully_loaded_image","mouseover_close_on_leave_el","mouseover_scroll_behavior","mouseover_mask_styles","mouseover_video_seek_vertical_scroll","mouseover_video_seek_horizontal_scroll","mouseover_support_pointerevents_none","mouseover_enable_mask_styles","allow_video","allow_audio","replaceimgs_remove_size_constraints"],Ti={imu_enabled:!0,language:Ye,check_updates:!0,check_update_interval:24,check_update_notify:!1,dark_mode:!1,settings_tabs:!0,settings_alphabetical_order:!1,settings_visible_description:!0,settings_show_disabled:!0,settings_show_disabled_profiles:!1,settings_show_requirements:!0,advanced_options:!1,allow_browser_request:!0,retry_503_times:3,retry_503_ms:2e3,use_blob_over_arraybuffer:!1,allow_live_settings_reload:!0,allow_remote:!0,disable_keybind_when_editing:!0,enable_gm_download:!0,gm_download_max:15,enable_webextension_download:!1,enable_console_logging:!0,write_to_clipboard:!1,redirect:!0,redirect_video:!0,redirect_audio:!1,redirect_history:!0,redirect_extension:!0,canhead_get:!0,redirect_force_page:!1,redirect_enable_infobox:!0,redirect_infobox_url:!1,redirect_infobox_timeout:7,print_imu_obj:!1,redirect_disable_for_responseheader:!1,redirect_to_no_infobox:!1,redirect_host_html:!1,host_html_blacklist:"",host_html_blacklist_mode:"blacklist",mouseover:!0,mouseover_open_behavior:"popup",mouseover_trigger_behavior:"keyboard",mouseover_trigger_key:["shift","alt","i"],mouseover_trigger_key_t2:[],mouseover_trigger_key_t3:[],mouseover_trigger_delay:1,mouseover_trigger_mouseover:!1,mouseover_trigger_enabledisable_toggle:"disable",mouseover_trigger_prevent_key:["shift"],mouseover_close_behavior:"esc",mouseover_close_need_mouseout:!0,mouseover_jitter_threshold:30,mouseover_cancel_popup_when_elout:!0,mouseover_cancel_popup_with_esc:!0,mouseover_cancel_popup_when_release:!0,mouseover_auto_close_popup:!1,mouseover_auto_close_popup_time:5,mouseover_hold_key:["i"],mouseover_hold_position_center:!1,popup_hold_zoom:"none",mouseover_hold_close_unhold:!1,mouseover_hold_unclickthrough:!0,mouseover_close_el_policy:"both",mouseover_close_click_outside:!1,mouseover_allow_partial:li?"media":"video",mouseover_partial_avoid_head:!1,mouseover_use_blob_over_data:!1,popup_use_anonymous_crossorigin:!1,mouseover_enable_notallowed:!0,mouseover_enable_notallowed_cant_load:!0,mouseover_notallowed_duration:300,mouseover_minimum_size:20,popup_maximum_source_size:0,mouseover_exclude_backgroundimages:!1,mouseover_exclude_page_bg:!0,mouseover_exclude_imagemaps:!0,mouseover_only_links:!1,mouseover_linked_image:!1,mouseover_exclude_sameimage:!1,mouseover_exclude_imagetab:!0,mouseover_allow_video:!0,mouseover_allow_audio:!1,mouseover_allow_hlsdash:!0,enable_stream_download:!1,stream_mux_mp4_over_mkv:!1,hls_dash_use_max:!0,max_video_quality:null,mouseover_video_autoplay:!0,mouseover_video_controls:!1,mouseover_video_controls_key:["c"],mouseover_video_loop:!0,mouseover_video_autoloop_max:0,mouseover_video_playpause_key:["space"],mouseover_video_muted:!1,mouseover_video_mute_key:["m"],mouseover_video_volume:100,mouseover_video_volume_down_key:["9"],mouseover_video_volume_up_key:["0"],mouseover_video_volume_change_amt:5,mouseover_video_resume_from_source:!1,mouseover_video_resume_if_different:!1,mouseover_video_pause_source:!0,mouseover_video_seek_amount:10,mouseover_video_seek_left_key:["shift","left"],mouseover_video_seek_right_key:["shift","right"],mouseover_video_frame_prev_key:[","],mouseover_video_frame_next_key:["."],mouseover_video_framerate:25,mouseover_video_speed_down_key:["["],mouseover_video_speed_up_key:["]"],mouseover_video_speed_amount:.25,mouseover_video_reset_speed_key:["backspace"],mouseover_video_screenshot_key:["shift","s"],popup_video_screenshot_format:"png",popup_enable_subtitles:!0,mouseover_ui:!0,mouseover_ui_toggle_key:["u"],mouseover_ui_opacity:80,mouseover_ui_use_safe_glyphs:!1,mouseover_ui_imagesize:!0,mouseover_ui_zoomlevel:!0,mouseover_ui_filesize:!1,mouseover_ui_gallerycounter:!0,mouseover_ui_gallerymax:50,mouseover_ui_gallerybtns:!0,mouseover_ui_closebtn:!0,mouseover_ui_optionsbtn:!!_e,mouseover_ui_downloadbtn:!1,mouseover_ui_rotationbtns:!1,mouseover_ui_caption:!0,mouseover_ui_wrap_caption:!0,mouseover_ui_caption_link_page:!0,mouseover_ui_link_underline:!0,mouseover_use_remote:!1,mouseover_zoom_behavior:"fit",mouseover_zoom_custom_percent:100,mouseover_zoom_use_last:"gallery",mouseover_zoom_max_width:0,mouseover_zoom_max_height:0,mouseover_pan_behavior:"drag",mouseover_movement_inverted:!0,mouseover_drag_min:5,mouseover_scrolly_behavior:"zoom",mouseover_scrolly_hold_behavior:"default",mouseover_scrollx_behavior:"gallery",mouseover_scrollx_hold_behavior:"default",mouseover_scrolly_video_behavior:"default",mouseover_scrolly_video_invert:!1,mouseover_scrollx_video_behavior:"default",scroll_override_page:!1,scroll_zoom_origin:"cursor",scroll_zoomout_pagemiddle:"never",scroll_zoom_behavior:"fitfull",scroll_incremental_mult:1.25,mouseover_move_with_cursor:!1,mouseover_move_within_page:!0,zoom_out_to_close:!1,scroll_past_gallery_end_to_close:!1,mouseover_position:"cursor",mouseover_prevent_cursor_overlap:!0,mouseover_overflow_position_center:!1,mouseover_overflow_origin:"a11",mouseover_add_link:!0,mouseover_add_video_link:!1,mouseover_click_image_close:!1,mouseover_click_video_close:!1,mouseover_download:!1,mouseover_hide_cursor:!1,mouseover_hide_cursor_after:0,mouseover_mouse_inactivity_jitter:5,mouseover_clickthrough:!1,mouseover_mask_ignore_clicks:!1,mouseover_links:!0,mouseover_only_valid_links:!0,mouseover_allow_self_pagelink:!1,mouseover_allow_iframe_el:!1,mouseover_allow_canvas_el:!1,mouseover_allow_svg_el:!1,mouseover_enable_gallery:!0,mouseover_gallery_cycle:!1,mouseover_gallery_prev_key:["left"],mouseover_gallery_next_key:["right"],mouseover_gallery_move_after_video:!1,mouseover_gallery_download_key:["shift","d"],gallery_download_method:"zip",gallery_download_unchanged:!0,gallery_zip_filename_format:"{host_domain_nosub}-{items_amt}-{download_unix}\n{items_amt}-{download_unix}",gallery_jd_autostart:!1,gallery_jd_referer:"domain",gallery_zip_add_tld:!0,gallery_zip_add_info_file:!0,mouseover_styles:"",mouseover_enable_fade:!0,mouseover_enable_zoom_effect:!1,mouseover_zoom_effect_move:!1,mouseover_fade_time:100,mouseover_enable_mask_styles2:"never",mouseover_mask_styles2:"background-color: rgba(0, 0, 0, 0.5)",mouseover_mask_fade_time:100,mouseover_ui_styles:"",mouseover_wait_use_el:!1,mouseover_add_to_history:!1,mouseover_add_thumbnail_to_history:!1,mouseover_close_key:["esc"],mouseover_download_key:[["s"],["ctrl","s"]],mouseover_open_new_tab_key:["o"],mouseover_open_bg_tab_key:["shift","o"],mouseover_copy_link_key:["shift","c"],mouseover_open_options_key:["p"],mouseover_open_orig_page_key:["n"],mouseover_rotate_left_key:["e"],mouseover_rotate_right_key:["r"],mouseover_flip_horizontal_key:["h"],mouseover_flip_vertical_key:["v"],mouseover_zoom_in_key:[["+"],["="],["shift","="]],mouseover_zoom_out_key:[["-"]],mouseover_zoom_full_key:["1"],mouseover_zoom_fit_key:["2"],mouseover_fullscreen_key:["f"],mouseover_apply_blacklist:!0,host_blacklist:"",host_blacklist_mode:"blacklist",apply_blacklist_host:!1,mouseover_matching_media_types:!1,mouseover_allow_popup_when_fullscreen:!1,mouseover_find_els_mode:"hybrid",popup_allow_cache:!0,popup_cache_duration:30,popup_cache_itemlimit:20,popup_cache_resume_video:!0,website_inject_imu:!0,website_image:!0,extension_contextmenu:!0,extension_hotreload:!0,allow_watermark:!1,allow_smaller:!1,allow_possibly_different:!1,allow_possibly_broken:!1,allow_possibly_upscaled:!1,allow_uncropped:!0,allow_thirdparty:!1,allow_apicalls:!0,allow_thirdparty_libs:!_e,custom_xhr_for_lib:!!li,bypass_csp_for_lib:!1,use_webarchive_for_lib:!1,lib_integrity_check:!0,allow_thirdparty_code:!1,allow_bruteforce:!1,allow_webarchive:!1,process_format:{},browser_cookies:!0,deviantart_prefer_size:!1,deviantart_support_download:!0,ehentai_full_image:!0,imgur_filename:!1,imgur_source:!1,instagram_use_app_api:!1,instagram_dont_use_web:!1,instagram_prefer_video_quality:!0,instagram_gallery_postlink:!1,snapchat_orig_media:!0,teddit_redirect_reddit:!0,tiktok_app_api:!1,tiktok_no_watermarks:!1,tiktok_thirdparty:null,tumblr_api_key:z("IHhyTXBMTThuMWVDZUwzb1JZU1pHN0NMQUx3NkVIaFlEZFU2V3E1ZUQxUGJNa2xkN1kx").substr(1),twitter_use_ext:!1,youtube_replace_n:!1,bigimage_blacklist:"",bigimage_blacklist_mode:"blacklist",bigimage_blacklist_engine:"glob",filename_format:"{author_username} {filename}",filename_replace_special_underscores:!0,replaceimgs_enable_keybinding:!1,replaceimgs_keybinding:["shift","alt","r"],replaceimgs_auto:!1,replaceimgs_replaceimgs:!0,replaceimgs_addlinks:!1,replaceimgs_replacelinks:!1,replaceimgs_plainlinks:"none",replaceimgs_links_newtab:!1,replaceimgs_size_constraints:"none",replaceimgs_usedata:!!_e,replaceimgs_wait_fullyloaded:!0,replaceimgs_totallimit:8,replaceimgs_domainlimit:2,replaceimgs_delay:0,replaceimgs_css:"",replaceimgs_simple_progress:!0,highlightimgs_enable_keybinding:!1,highlightimgs_keybinding:["shift","alt","h"],highlightimgs_enable:!1,highlightimgs_auto:"never",highlightimgs_onlysupported:!0,highlightimgs_css:"outline: 4px solid yellow",customgallery_enable_keybinding:!1,customgallery_keybinding:["shift","alt","g"],customgallery_enable_button:!1,customgallery_apply_key:["enter"],customgallery_bg_css:"background-color: rgba(0, 0, 0, 0.25)",customgallery_outline_css:"background-color: rgba(255, 0, 0, 0.25)\nborder: 2px solid red",last_update_check:0,last_update_version:null,last_update_url:null},et=["tumblr_api_key"],tt={},Na=2,Ai={imu_enabled:{name:"Enable extension",description:"Globally enables or disables the extension",category:"general",extension_only:!0,imu_enabled_exempt:!0},language:{name:"Language",description:"Language for this extension",category:"general",options:{_type:"combo",en:{name:"English",name_gettext:!1},es:{name:"Español",name_gettext:!1},fr:{name:"Français",name_gettext:!1},it:{name:"Italiano",name_gettext:!1},ko:{name:"한국어",name_gettext:!1},"pt-BR":{name:"Português (Brasil)",name_gettext:!1},ru:{name:"Русский",name_gettext:!1},"zh-CN":{name:"简体中文",name_gettext:!1}},onedit:function(){Fa(qr)},imu_enabled_exempt:!0},dark_mode:{name:"Dark mode",description:"Changes the colors to have light text on a dark background",category:"general",onedit:Rr,onupdate:Rr,imu_enabled_exempt:!0},settings_visible_description:{name:"Description below options",description:"Shows the description below the options (otherwise the description is only shown when you hover over the option's name)",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},imu_enabled_exempt:!0},settings_show_disabled:{name:"Show disabled options",description:"If disabled, options that are disabled due to their requirements being unmet will not be displayed",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},imu_enabled_exempt:!0},settings_show_disabled_profiles:{name:"Show disabled trigger profiles",description:"If disabled, options for alternate trigger profiles (options with `(#2)` after them) will not be shown if the relevant trigger isn't active",category:"general",subcategory:"settings",requires:{settings_show_disabled:!0},onedit:function(){Fa(qr)},imu_enabled_exempt:!0},settings_show_requirements:{name:"Requirements below disabled options",description:"If an option is disabled, the requirements to enable the option will be displayed below it",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},requires:{settings_show_disabled:!0},imu_enabled_exempt:!0},check_updates:{name:"Check for updates",description:"Periodically checks for updates. If a new update is available, it will be shown at the top of the options page",category:"general",subcategory:"update"},check_update_interval:{name:"Update check interval",description:"How often to check for updates",category:"general",subcategory:"update",requires:{check_updates:!0},type:"number",number_min:1,number_int:!0,number_unit:"hours"},check_update_notify:{name:"Notify when update is available",description:"Creates a browser notification when an update is available",category:"general",subcategory:"update",requires:{check_updates:!0},required_permission:"notifications"},advanced_options:{name:"Show advanced settings",description:"If disabled, settings that might be harder to understand will be hidden",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},imu_enabled_exempt:!0},settings_tabs:{name:"Use tabs",description:"If disabled, all settings will be shown on a single page",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},imu_enabled_exempt:!0},settings_alphabetical_order:{name:"Alphabetical order",description:"Lists options in alphabetical order",category:"general",subcategory:"settings",onedit:function(){Fa(qr)},imu_enabled_exempt:!0},allow_browser_request:{name:"Allow using browser XHR",description:"This allows XHR requests to be run in the browser's context if they fail in the extension (e.g. when Tracking Protection is set to High)",category:"general",imu_enabled_exempt:!0,advanced:!0},retry_503_times:{name:"Retry requests with 503 errors",description:"Amount of times to retry a request when 503 (service unavailable) is returned by the server",category:"general",type:"number",number_min:0,number_int:!0,number_unit:"times",imu_enabled_exempt:!0,advanced:!0},retry_503_ms:{name:"Delay between 503 retries",description:"Time (in milliseconds) to delay between retrying requests that received 503",category:"general",type:"number",number_min:0,number_int:!0,number_unit:"ms",imu_enabled_exempt:!0,advanced:!0},use_blob_over_arraybuffer:{name:"Use `Blob` over `ArrayBuffer`",description:"Uses `Blob`s for XHRs instead of `ArrayBuffer`s. Keep this enabled unless your userscript manager doesn't support blob requests",category:"general",imu_enabled_exempt:!0,advanced:!0,hidden:!0},allow_live_settings_reload:{name:"Live settings reloading",description:"Enables/disables live settings reloading. There shouldn't be a reason to disable this unless you're experiencing issues with this feature",category:"general",hidden:_e&&"undefined"==typeof GM_addValueChangeListener,imu_enabled_exempt:!0,advanced:!0},disable_keybind_when_editing:{name:"Disable keybindings when editing text",description:"Disables shortcuts when key events are sent to an input area on the page",category:"keybinds",imu_enabled_exempt:!0,advanced:!0},enable_gm_download:{name:"Use `GM_download` if available",description:"Prefers using `GM_download` over simple browser-based downloads, if the function is available. Some userscript managers download the entire file before displaying a save dialog, which can be undesirable for large video files",category:"general",userscript_only:!0,imu_enabled_exempt:!0,advanced:!0},gm_download_max:{name:"Maximum size to `GM_download`",description:"If a file is larger than this size, use a simple browser-based download instead. Set to `0` for unlimited.",category:"general",userscript_only:!0,imu_enabled_exempt:!0,requires:{enable_gm_download:!0},type:"number",number_min:0,number_unit:"MB",advanced:!0},enable_webextension_download:{name:"Force save dialog when downloading",description:"Tries to ensure the 'save as' dialog displays when downloading. This requires the 'downloads' permission to work, and will sometimes not work when custom headers are required.",category:"general",extension_only:!0,imu_enabled_exempt:!0,required_permission:"downloads"},enable_console_logging:{name:"Enable logging to console",description:"Allows the script to log messages to the browser console.",category:"general",imu_enabled_exempt:!0,advanced:!0},write_to_clipboard:{name:"Enable writing to clipboard",description:"This option does nothing on its own, but enabling it allows other functionality that require writing to the clipboard to work",category:"general",imu_enabled_exempt:!0,required_permission:"clipboardWrite"},redirect:{name:"Enable redirection",description:"Automatically redirect media opened in their own tab to their larger/original versions",category:"redirection"},redirect_video:{name:"Allow video",description:"Allows redirecting from/to video",requires:{redirect:!0},category:"redirection"},redirect_audio:{name:"Allow audio",description:"Allows redirecting from/to audio",requires:{redirect:!0},category:"redirection"},redirect_history:{name:"Add to history",description:"Redirection will add a new entry to the browser's history",requires:{redirect:!0},category:"redirection"},redirect_extension:{name:"Do redirection in extension",description:"Performs the redirection in the extension instead of the content script. This is significantly faster and shouldn't cause issues in theory, but this option is kept in case of regressions",requires:{redirect:!0},extension_only:!0,advanced:!0,category:"redirection"},canhead_get:{name:"Use GET if HEAD is unsupported",description:"Use a GET request to check an image's availability, if the server does not support HEAD requests",requires:{redirect:!0},category:"redirection",advanced:!0},redirect_force_page:{name:"Try finding extra information",description:"Enables methods that use API calls for finding extra information, such as the original page, caption, or album information. Note that this option does not affect finding the original media.",example_websites:["Flickr","SmugMug","..."],category:"rules"},redirect_enable_infobox:{name:"Enable tooltip",description:"Enables the 'Mouseover popup is needed to display the original version' tooltip",category:"redirection",requires:{redirect:!0},userscript_only:!0},redirect_infobox_url:{name:"Show image URL in tooltip",description:"If the popup is needed to display the larger version of an image, display the image link in the tooltip",category:"redirection",requires:{redirect:!0},userscript_only:!0},redirect_infobox_timeout:{name:"Hide tooltip after",description:"Hides the tooltip after the specified number of seconds (or when the mouse clicks on it). Set to 0 to never hide automatically",requires:{redirect:!0},type:"number",number_min:0,number_unit:"seconds",category:"redirection",userscript_only:!0},print_imu_obj:{name:"Log info object to console",description:"Prints the full info object to the console whenever a popup/redirect is found",category:"rules",requires:{enable_console_logging:!0},advanced:!0},redirect_disable_for_responseheader:{name:"Disable when response headers need modifying",description:"This option works around Chrome's migration to manifest v3, redirecting some images to being force-downloaded",extension_only:!0,hidden:!0,category:"redirection",advanced:!0},redirect_to_no_infobox:{name:"Redirect to largest without issues",description:"Redirects to the largest image found that doesn't require custom headers or forces download",userscript_only:!0,category:"redirection"},redirect_host_html:{name:"Redirect for HTML pages too",description:"Tries redirection even if the host page is HTML. This option might be useful for dead links. However, this will also result in many normal pages being redirected to images/video, so use with caution.",warning:{true:"This will result in many pages being redirected to images/videos.\nI'd recommend only either enabling this for the media you need it for then disabling it after, or using the black/whitelist feature below to only allow it to run for specified websites."},category:"redirection",advanced:!0},mouseover:{name:"Enable mouseover popup",description:"Show a popup with the larger image when you mouseover an image with the trigger key held (if applicable)",category:"popup"},mouseover_open_behavior:{name:"Mouseover popup action",description:"Determines how the mouseover popup will open",profiled:!0,hidden:_e&&Re===Ni.nullfunc,options:{_type:"combo",popup:{name:"Popup"},newtab:{name:"New tab"},newtab_bg:{name:"New background tab"},download:{name:"Download"},copylink:{name:"Copy link"},replace:{name:"Replace"}},requires:{mouseover:!0},category:"popup",subcategory:"open_behavior"},mouseover_trigger:{name:"Popup trigger",description:"Trigger key that, when held, will show the popup",options:{_type:"and",_group1:{_type:"and",ctrl:{name:"Ctrl"},shift:{name:"Shift"},alt:{name:"Alt"}},_group2:{_type:"or",delay_1:{name:"Delay 1s"},delay_3:{name:"Delay 3s"}}},requires:{mouseover:!0},category:"popup",subcategory:"trigger"},mouseover_trigger_behavior:{name:"Mouseover popup trigger",description:"How the popup will get triggered",options:{_group1:{mouse:{name:"Mouseover",description:"Triggers when your mouse is over the image"}},_group2:{keyboard:{name:"Key trigger",description:"Triggers when you press a key sequence when your mouse is over an image"}},_group3:{none:{name:"None",description:"Disables the popup from being triggered (useful if you only want to use the context menu item)",extension_only:!0}}},requires:{mouseover:!0},category:"popup",subcategory:"trigger"},mouseover_trigger_key:{name:"Popup trigger key",description:"Key sequence to trigger the popup",type:"keysequence",requires:{mouseover:!0,mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"trigger"},mouseover_trigger_key_t2:{name:"Popup trigger key (#2)",description:"Key sequence to trigger the popup with alternate options. Search for `(#2)` to find the relevant options",type:"keysequence",keyseq_allow_none:!0,requires:{mouseover:!0,mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"trigger"},mouseover_trigger_key_t3:{name:"Popup trigger key (#3)",description:"Key sequence to trigger the popup with alternate options. Search for `(#3)` to find the relevant options",type:"keysequence",keyseq_allow_none:!0,requires:{mouseover:!0,mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"trigger"},mouseover_trigger_delay:{name:"Popup trigger delay",description:"Delay (in seconds) before the popup shows",requires:{mouseover:!0,mouseover_trigger_behavior:"mouse"},type:"number",number_min:0,number_unit:"seconds",category:"popup",subcategory:"trigger"},mouseover_trigger_mouseover:{name:"Use mouseover event",description:"Uses the mouseover event instead of mousemove to figure out where to trigger the popup. This more closely matches the way other image popup addons work, at the cost of configurability",requires:{mouseover_trigger_behavior:"mouse"},advanced:!0,category:"popup",subcategory:"trigger"},mouseover_trigger_enabledisable_toggle:{name:"Enable/disable toggle",description:"Controls whether the 'Popup enable/disable key' will enable or disable the popup from opening",options:{enable:{name:"Enable"},disable:{name:"Disable"}},requires:{mouseover_trigger_behavior:"mouse"},category:"popup",subcategory:"trigger"},mouseover_trigger_prevent_key:{name:"Popup enable/disable key",description:"Holding down this key will enable or disable the popup from being opened, depending on the 'Enable/disable toggle' setting",requires:{mouseover:!0,mouseover_trigger_behavior:"mouse"},type:"keysequence",category:"popup",subcategory:"trigger"},mouseover_allow_partial:{name:"Allow showing partially loaded",description:"This will allow the popup to open for partially loaded media.\nPartially loaded media will contain the source URL directly (where possible), whereas fully loaded media will use a blob or data URL.",description_userscript:"This will allow the popup to open for partially loaded media, but this might break images that require custom headers to display properly.\nPartially loaded media will contain the source URL directly (where possible), whereas fully loaded media will use a blob or data URL.",requires:"action:popup",options:{_type:"or",video:{name:"Streams",description:"Audio and video"},media:{name:"Media",description:"Images, audio, and video"},none:{name:"None"}},category:"popup",subcategory:"open_behavior"},mouseover_partial_avoid_head:{name:"Avoid HEAD request for partially loaded media",description:"Avoids a possibly unnecessary HEAD request before displaying partially loaded images, which further decreases the delay before opening the popup. This can cause issues if the server returns an error, but still returns an image",requires:[{mouseover_allow_partial:"video"},{mouseover_allow_partial:"media"}],category:"popup",subcategory:"open_behavior",advanced:!0},mouseover_use_blob_over_data:{name:"Use `blob:` over `data:` URLs",description:"Blob URLs are more efficient, but aren't supported by earlier browsers. Some websites also block `blob:` URLs",requires:"action:popup",category:"popup",subcategory:"open_behavior",advanced:!0},popup_use_anonymous_crossorigin:{name:"Load media anonymously",description:"Loads the media without sending any cookies or other forms of credentials. This is required to screenshot videos from other sources",requires:"action:popup",category:"popup",subcategory:"open_behavior",advanced:!0},mouseover_use_fully_loaded_image:{name:"Wait until image is fully loaded",description:"Wait until the image has fully loaded before displaying it",requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_use_fully_loaded_video:{name:"Wait until video is fully loaded",description:"Wait until the video has fully loaded before displaying it (this may significantly increase memory usage with larger videos)",requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_enable_notallowed:{name:"Use `not-allowed` cursor when unsupported",description:"If the image isn't supported, the mouse cursor will change to a `not-allowed` cursor for a brief duration",requires:{mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"open_behavior"},mouseover_enable_notallowed_cant_load:{name:"Use `not-allowed` cursor when unable to load",description:"If the image fails to load, the mouse cursor will change to a `not-allowed` cursor for a brief duration",category:"popup",subcategory:"open_behavior"},mouseover_notallowed_duration:{name:"`not-allowed` cursor duration",description:"How long the `not-allowed` cursor should last",requires:[{mouseover_enable_notallowed:!0},{mouseover_enable_notallowed_cant_load:!0}],type:"number",number_min:0,number_int:!0,number_unit:"ms",advanced:!0,category:"popup",subcategory:"open_behavior"},mouseover_exclude_page_bg:{name:"Exclude page background",description:"Excludes the page background for the popup",requires:{mouseover:!0,mouseover_exclude_backgroundimages:!1},profiled:!0,category:"popup",subcategory:"source"},mouseover_minimum_size:{name:"Minimum size",description:"Smallest size acceptable for the popup to open (this option is ignored for background images). This refers to the size of the media to be popped up, which may differ from the source media.",requires:{mouseover:!0},profiled:!0,type:"number",number_min:0,number_unit:"pixels",category:"popup",subcategory:"source"},popup_maximum_source_size:{name:"Maximum source size",description:"Maximum size (width/height) for the source media to allow popping up (this option is ignored for background images). Set to `0` for any size.",requires:{mouseover:!0},profiled:!0,type:"number",number_min:0,number_unit:"pixels",category:"popup",subcategory:"source"},mouseover_exclude_backgroundimages:{name:"Exclude `background-image`s",description:"Excludes `background-image`s for the popup. Might prevent the popup from working on many images",requires:{mouseover:!0},profiled:!0,disabled_if:{mouseover_trigger_mouseover:!0},category:"popup",subcategory:"source"},mouseover_exclude_imagetab:{name:"Exclude image tabs",description:"Excludes images that are opened in their own tabs",requires:{mouseover:!0,mouseover_trigger_behavior:"mouse"},category:"popup",subcategory:"source"},mouseover_exclude_sameimage:{name:"Exclude if media URL is unchanged",description:"Don't pop up if the new URL is the same as the source",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_only_links:{name:"Only popup for linked media",description:"Don't pop up if the media isn't hyperlinked",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_linked_image:{name:"Popup link for linked media",description:"If the linked media cannot be made larger, pop up for the link instead of the media",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_exclude_imagemaps:{name:"Exclude image maps",description:"Don't pop up if the image is an image map (image with multiple clickable areas)",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_video_autoplay:{name:"Autoplay",description:"Play automatically once the popup is opened",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_controls:{name:"Show video controls",description:"Shows native video controls. Note that this prevents dragging under Firefox",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_controls_key:{name:"Toggle video controls",description:"Key to toggle whether the video controls are shown",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_loop:{name:"Loop",description:"Allows the media to automatically restart to the beginning after finishing playing",requires:{_condition:"action:popup",mouseover_allow_video:!0},disabled_if:{mouseover_gallery_move_after_video:!0},category:"popup",subcategory:"video"},mouseover_video_autoloop_max:{name:"Max duration for looping",description:"Media longer than the specified duration will not be automatically looped. Setting this to `0` will always enable looping, regardless of duration.",requires:{mouseover_video_loop:!0},type:"number",number_min:0,number_unit:"seconds",category:"popup",subcategory:"video"},mouseover_video_playpause_key:{name:"Play/pause key",description:"Key to toggle whether the media is playing or paused",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_muted:{name:"Mute",description:"Mutes the media by default",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_mute_key:{name:"Toggle mute key",description:"Key to toggle mute",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_volume:{name:"Default volume",description:"Default volume for the media",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"number",number_min:0,number_max:100,number_int:!0,number_unit:"%",category:"popup",subcategory:"video"},mouseover_video_volume_up_key:{name:"Volume up key",description:"Key to increase the volume",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_volume_down_key:{name:"Volume down key",description:"Key to decrease the volume",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_volume_change_amt:{name:"Volume change amount",description:"Percent for volume to increase/decrease when using the volume up/down keys",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"number",number_min:0,number_max:100,number_int:!0,number_unit:"%",category:"popup",subcategory:"video"},mouseover_video_resume_from_source:{name:"Resume playback from source",description:"If enabled, playback will resume from where the source left off",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_resume_if_different:{name:"Resume if different length",description:"If disabled, it will not resume if the source has a different length from the media in the popup (e.g. from a preview video to a full one)",requires:{mouseover_video_resume_from_source:!0},category:"popup",subcategory:"video"},mouseover_video_pause_source:{name:"Pause source",description:"Pauses the source once the popup has opened",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_seek_amount:{name:"Seek amount",description:"Amount of time to seek forward/back when using the seek keys",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"number",number_min:0,number_unit:"seconds",category:"popup",subcategory:"video"},mouseover_video_seek_left_key:{name:"Seek left key",description:"Key to seek backwards by the specified amount",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_seek_right_key:{name:"Seek right key",description:"Key to seek forwards by the specified amount",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_seek_vertical_scroll:{name:"Vertical scroll seeks",description:"Scrolling vertically will seek forward/backward",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_seek_horizontal_scroll:{name:"Horizontal scroll seeks",description:"Scrolling horizontally will seek forward/backward",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_video_frame_prev_key:{name:"Previous frame key",description:'Rewinds the video one "frame" backward. Due to current limitations, the frame size is static (but configurable), and might not match the video\'s framerate',requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_frame_next_key:{name:"Next frame key",description:'Advances the video one "frame" forward. Due to current limitations, the frame size is static (but configurable), and might not match the video\'s framerate',requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_framerate:{name:"Frame rate",description:"Frame rate for videos to seek forward/back with the next/previous frame keys",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"number",number_min:0,number_unit:"FPS",category:"popup",subcategory:"video"},mouseover_video_speed_down_key:{name:"Speed down key",description:"Key to decrease playback rate by a specified amount",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_speed_up_key:{name:"Speed up key",description:"Key to increase playback rate by a specified amount",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_speed_amount:{name:"Speed up/down amount",description:"How much to increase/decrease the playback rate",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"number",number_min:0,number_unit:"x",category:"popup",subcategory:"video"},mouseover_video_reset_speed_key:{name:"Reset speed key",description:"Resets the playback rate to normal speed",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},mouseover_video_screenshot_key:{name:"Screenshot key",description:"Screenshots the current frame in the video",requires:{_condition:"action:popup",mouseover_allow_video:!0},type:"keysequence",category:"keybinds",subcategory:"video"},popup_video_screenshot_format:{name:"Screenshot format",description:"File format to save the screenshot in",requires:{_condition:"action:popup",mouseover_allow_video:!0},options:{_type:"or",png:{name:"PNG"},jpg:{name:"JPG"}},category:"popup",subcategory:"video"},popup_enable_subtitles:{name:"Enable subtitles",description:"Enables subtitles to be overlayed on top of the video",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"video"},mouseover_ui:{name:"Popup UI",description:"Enables a UI on top of the popup",requires:"action:popup",category:"popup",subcategory:"ui"},mouseover_ui_toggle_key:{name:"UI Toggle key",description:"Toggles the display of the UI",type:"keysequence",requires:"action:popup",category:"keybinds",subcategory:"popup"},mouseover_ui_opacity:{name:"Opacity",description:"Opacity of the UI on top of the popup",requires:{mouseover_ui:!0},type:"number",number_unit:"%",number_max:100,number_min:0,number_int:!0,category:"popup",subcategory:"ui"},mouseover_ui_use_safe_glyphs:{name:"Use safe glyphs",description:"Uses glyphs that are more likely to be available on all fonts. Enable this option if the following characters render as boxes: 🡇 🡐 🡒. The 'Noto Sans Symbols2' font contains these characters.",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_imagesize:{name:"Media resolution",description:"Displays the original media dimensions on top of the UI.\nCSS ID: `#sizeinfo`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_zoomlevel:{name:"Zoom percent",description:"Displays the current zoom level on top of the UI.\nCSS ID: `#sizeinfo`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_filesize:{name:"File size",description:"Displays the media's file size on top of the UI. For the moment, this will not work with partially loaded media if 'Avoid HEAD request for partially loaded media' is enabled.\nCSS ID: `#sizeinfo`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_gallerycounter:{name:"Gallery counter",description:"Enables a gallery counter on top of the UI.\nCSS ID: `#gallerycounter`",requires:{mouseover_ui:!0,mouseover_enable_gallery:!0},category:"popup",subcategory:"ui"},mouseover_ui_gallerymax:{name:"Gallery counter max",description:"Maximum amount of images to check in the counter (this can be slightly CPU-intensive)",requires:{mouseover_ui_gallerycounter:!0,mouseover_enable_gallery:!0},type:"number",number_min:0,number_unit:"images",category:"popup",subcategory:"ui"},mouseover_ui_gallerybtns:{name:"Gallery buttons",description:"Enables buttons to go left/right in the gallery.\nCSS IDs: `#galleryprevbtn`, `#gallerynextbtn`",requires:{mouseover_ui:!0,mouseover_enable_gallery:!0},category:"popup",subcategory:"ui"},mouseover_ui_closebtn:{name:"Close Button",description:"Enables a button to close the popup.\nCSS ID: `#closebtn`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_optionsbtn:{name:"Options Button",description:"Enables a button to go to this page.\nCSS ID: `#optionsbtn`",requires:{mouseover_ui:!0},userscript_only:!0,category:"popup",subcategory:"ui"},mouseover_ui_downloadbtn:{name:"Download Button",description:"Enables a button to download the image.\nCSS ID: `#downloadbtn`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_rotationbtns:{name:"Rotation Buttons",description:"Enables buttons on the UI to rotate the image by 90 degrees.\nCSS IDs: `#rotleftbtn`, `#rotrightbtn`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_caption:{name:"Caption",description:"Shows the image's caption (if available) at the top.\nCSS ID: `#caption`",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_ui_wrap_caption:{name:"Wrap caption text",description:"Wraps the caption if it's too long",requires:{mouseover_ui_caption:!0},category:"popup",subcategory:"ui"},mouseover_ui_caption_link_page:{name:"Link original page in caption",description:"Links the original page (if it exists) in the caption",requires:{mouseover_ui_caption:!0},category:"popup",subcategory:"ui"},mouseover_ui_link_underline:{name:"Underline links",description:"Adds an underline to links (such as the original page)",requires:{mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_close_behavior:{name:"Keep popup open until",description:"Closes the popup when the selected condition is met",options:{_type:"or",_group1:{any:{name:"Any trigger is released"}},_group2:{all:{name:"All triggers are released"}},_group3:{esc:{name:"ESC/Close is pressed"}}},requires:{_condition:"action:popup",mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"close_behavior"},mouseover_close_need_mouseout:{name:"Don't close until mouse leaves",description:"If true, this keeps the popup open even if all triggers are released if the mouse is still over the image",requires:[{mouseover_close_behavior:"any"},{mouseover_close_behavior:"all"}],category:"popup",subcategory:"close_behavior"},mouseover_jitter_threshold:{name:"Threshold to leave image",description:"How many pixels outside of the image before the cursor is considered to have left the image",requires:[{_condition:"action:popup",mouseover_close_need_mouseout:!0},{_condition:"action:popup",mouseover_trigger_behavior:"mouse"}],type:"number",number_unit:"pixels",category:"popup",subcategory:"close_behavior"},mouseover_cancel_popup_when_elout:{name:"Leaving thumbnail cancels loading",description:"Cancels the current popup loading when the cursor has left the thumbnail image",requires:{mouseover:!0,mouseover_trigger_behavior:"mouse"},category:"popup",subcategory:"close_behavior"},mouseover_cancel_popup_with_esc:{name:"ESC cancels loading",description:"Cancels the current popup loading if ESC is pressed",requires:{mouseover:!0},category:"popup",subcategory:"close_behavior"},mouseover_cancel_popup_when_release:{name:"Releasing triggers cancels loading",description:'Cancels the current popup loading if all/any triggers are released (as set by the "Keep popup open until" setting)',requires:[{mouseover_close_behavior:"any"},{mouseover_close_behavior:"all"}],category:"popup",subcategory:"close_behavior"},mouseover_auto_close_popup:{name:"Automatically close after timeout",description:"Closes the popup automatically after a specified period of time has elapsed",requires:"action:popup",category:"popup",subcategory:"close_behavior"},mouseover_auto_close_popup_time:{name:"Timeout to close popup",description:"Amount of time to elapse before automatically closing the popup",requires:{mouseover_auto_close_popup:!0},type:"number",number_min:0,number_unit:"seconds",category:"popup",subcategory:"close_behavior"},mouseover_use_hold_key:{name:"Use hold key",description:"Enables the use of a hold key that, when pressed, will keep the popup open",requires:[{_condition:"action:popup",mouseover_trigger_behavior:"mouse"},{_condition:"action:popup",mouseover_auto_close_popup:!0},{_condition:"action:popup",mouseover_close_need_mouseout:!0}],category:"popup",subcategory:"close_behavior"},mouseover_hold_key:{name:"Hold key",description:"Hold key that, when pressed, will keep the popup open",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_hold_position_center:{name:"Center popup on hold",description:"Centers the popup to the middle of the page when the popup is held",requires:"action:popup",category:"popup",subcategory:"close_behavior"},popup_hold_zoom:{name:"Override zoom on hold",description:"Overrides the zoom when the popup is held",options:{_type:"combo",none:{name:"None"},fit:{name:"Fit to screen"},fill:{name:"Fill screen"},full:{name:"Full size"}},requires:"action:popup",category:"popup",subcategory:"close_behavior"},mouseover_hold_close_unhold:{name:"Close popup on unhold",description:"Closes the popup when the hold key is pressed again, after having previously held the popup",requires:"action:popup",category:"popup",subcategory:"close_behavior"},mouseover_hold_unclickthrough:{name:"Enable pointer events on hold",description:"Enables previously disabled pointer events when the popup is held",requires:{_condition:"action:popup",mouseover_clickthrough:!0},category:"popup",subcategory:"close_behavior"},mouseover_close_on_leave_el:{name:"Close when leaving thumbnail",description:"Closes the popup when the mouse leaves the thumbnail element (won't close if the mouse instead moves to the popup)",requires:{_condition:"action:popup",mouseover_trigger_behavior:"mouse",mouseover_position:"beside_cursor"},category:"popup",subcategory:"close_behavior"},mouseover_close_click_outside:{name:"Clicking outside the popup closes",description:"Closes the popup when the mouse clicks outside of it",requires:"action:popup",category:"popup",subcategory:"close_behavior"},mouseover_close_el_policy:{name:"Close when leaving",description:"Closes the popup when the mouse leaves the thumbnail element, the popup, or both",requires:[{_condition:"action:popup",mouseover_trigger_behavior:"mouse"},{_condition:"action:popup",mouseover_trigger_behavior:"keyboard",mouseover_close_need_mouseout:!0}],options:{_type:"combo",thumbnail:{name:"Thumbnail"},popup:{name:"Popup"},both:{name:"Both"}},category:"popup",subcategory:"close_behavior"},mouseover_wait_use_el:{name:"Use invisible element when waiting",description:"Creates an invisible element under the cursor when waiting for the popup instead of a style element (can improve performance on websites with many elements, but prevents the cursor from clicking anything while loading the popup)",requires:{mouseover:!0},category:"popup",subcategory:"popup_other",advanced:!0},mouseover_add_to_history:{name:"Add popup link to history",description:"Adds the image/video link opened through the popup to the browser's history",requires:{mouseover:!0},category:"popup",subcategory:"popup_other",required_permission:"history",extension_only:!0},mouseover_add_thumbnail_to_history:{name:"Add thumbnail link to history",description:"Adds the original media link opened through the popup to the browser's history",requires:{mouseover:!0},category:"popup",subcategory:"popup_other",required_permission:"history",extension_only:!0},allow_remote:{name:"Allow inter-frame communication",description:"Allows communication between frames in windows, improving support for keybindings",description_userscript:"Allows communication between frames in windows, improving support for keybindings. Can pose a fingerprinting risk when used through the userscript",requires:{mouseover:!0},category:"general",advanced:!_e},mouseover_use_remote:{name:"Pop out of frames",description:"Opens the popup on the top frame instead of within iframes. This option is still experimental.",requires:{_condition:"action:popup",allow_remote:!0},category:"popup",subcategory:"open_behavior"},mouseover_zoom_behavior:{name:"Popup default zoom",description:"How the popup should be initially sized",options:{_type:"combo",fit:{name:"Fit to screen"},fill:{name:"Fill screen"},full:{name:"Full size"},custom:{name:"Custom size"}},requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_zoom_custom_percent:{name:"Custom zoom percent",description:"Custom percent to initially size the popup",type:"number",number_min:0,number_unit:"%",requires:{mouseover_zoom_behavior:"custom"},category:"popup",subcategory:"open_behavior"},mouseover_zoom_use_last:{name:"Use last zoom",description:"Use the last popup's zoom. Note that this is per-page.",options:{_type:"combo",always:{name:"Always"},gallery:{name:"Gallery"},never:{name:"Never"}},requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_zoom_max_width:{name:"Maximum width",description:"Maximum width for the initial popup size. Set to `0` for unlimited.",type:"number",number_min:0,number_unit:"px",requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_zoom_max_height:{name:"Maximum height",description:"Maximum height for the initial popup size. Set to `0` for unlimited.",type:"number",number_min:0,number_unit:"px",requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_pan_behavior:{name:"Popup panning method",description:"How the popup should be panned when larger than the screen",options:{_type:"or",movement:{name:"Movement",description:"The popup pans as you move your mouse"},drag:{name:"Drag",description:"Clicking and dragging pans the popup"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_movement_inverted:{name:"Invert movement",description:"Inverts the movement of the mouse. For example, if the mouse moves left, the popup moves right. If disabled, it feels more like the popup is being invisibly dragged.",requires:{mouseover_pan_behavior:"movement"},advanced:!0,category:"popup",subcategory:"behavior"},mouseover_drag_min:{name:"Minimum drag amount",description:"How many pixels the mouse should move to start a drag",type:"number",number_min:0,number_int:!0,number_unit:"pixels",requires:{mouseover_pan_behavior:"drag"},category:"popup",subcategory:"behavior"},mouseover_scrolly_behavior:{name:"Vertical scroll action",description:"How the popup reacts to a vertical scroll/mouse wheel event",options:{_type:"combo",zoom:{name:"Zoom"},pan:{name:"Pan"},gallery:{name:"Gallery",requires:[{mouseover_enable_gallery:!0}]},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_scrolly_hold_behavior:{name:"Vertical scroll action (hold)",description:"How the popup (when held) reacts to a vertical scroll/mouse wheel event",options:{_type:"combo",default:{name:"Default"},zoom:{name:"Zoom"},pan:{name:"Pan"},gallery:{name:"Gallery",requires:[{mouseover_enable_gallery:!0}]},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_scrollx_behavior:{name:"Horizontal scroll action",description:"How the popup reacts to a horizontal scroll/mouse wheel event",options:{_type:"combo",pan:{name:"Pan"},gallery:{name:"Gallery",requires:[{mouseover_enable_gallery:!0}]},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_scrollx_hold_behavior:{name:"Horizontal scroll action (hold)",description:"How the popup (when held) reacts to a horizontal scroll/mouse wheel event",options:{_type:"combo",default:{name:"Default"},pan:{name:"Pan"},gallery:{name:"Gallery",requires:[{mouseover_enable_gallery:!0}]},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_scrolly_video_behavior:{name:"Vertical video scroll action",description:"Overrides the vertical scroll action for videos. Set to `Default` to avoid overriding the behavior.",options:{_type:"combo",default:{name:"Default"},seek:{name:"Seek"},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_scrolly_video_invert:{name:"Invert vertical scroll seek",description:"Inverts the seek direction when scrolling vertically: Scrolling up will seek right, scrolling down will seek left.",requires:{mouseover_scrolly_video_behavior:"seek"},category:"popup",subcategory:"behavior"},mouseover_scrollx_video_behavior:{name:"Horizontal video scroll action",description:"Overrides the horizontal scroll action for videos. Set to `Default` to avoid overriding the behavior.",options:{_type:"combo",default:{name:"Default"},seek:{name:"Seek"},nothing:{name:"None"}},requires:"action:popup",category:"popup",subcategory:"behavior"},scroll_override_page:{name:"Override scroll outside of popup",description:"Scrolling outside of the popup will also be overriden by the script",requires:"action:popup",category:"popup",subcategory:"behavior"},scroll_zoom_origin:{name:"Zoom origin",description:"The point on the image it's zoomed in/out from",options:{_type:"or",cursor:{name:"Cursor"},center:{name:"Center"}},requires:[{mouseover_scrollx_behavior:"zoom"},{mouseover_scrollx_hold_behavior:"zoom"},{mouseover_scrolly_behavior:"zoom"},{mouseover_scrolly_hold_behavior:"zoom"}],category:"popup",subcategory:"behavior"},scroll_zoomout_pagemiddle:{name:"Zoom out towards page middle",description:'Sets the origin when zooming out to the page middle, overriding the "Zoom Origin" option above.',options:{_type:"combo",always:{name:"Always"},viewport:{name:"Within viewport"},never:{name:"Never"}},requires:[{mouseover_scrollx_behavior:"zoom"},{mouseover_scrollx_hold_behavior:"zoom"},{mouseover_scrolly_behavior:"zoom"},{mouseover_scrolly_hold_behavior:"zoom"}],category:"popup",subcategory:"behavior"},scroll_zoom_behavior:{name:"Zoom behavior",description:"How zooming should work",options:{_type:"or",fitfull:{name:"Fit/Full",description:"Toggles between the full size, and fit-to-screen"},incremental:{name:"Incremental"}},requires:[{mouseover_scrollx_behavior:"zoom"},{mouseover_scrollx_hold_behavior:"zoom"},{mouseover_scrolly_behavior:"zoom"},{mouseover_scrolly_hold_behavior:"zoom"}],category:"popup",subcategory:"behavior"},scroll_incremental_mult:{name:"Incremental zoom multiplier",description:"How much to zoom in/out by (for incremental zooming)",type:"number",number_min:1,number_unit:"x",category:"popup",subcategory:"behavior"},mouseover_move_with_cursor:{name:"Move with cursor",description:"Moves the popup as the cursor moves",requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_move_within_page:{name:"Move within page",description:"Ensures the popup doesn't leave the page",requires:{mouseover_move_with_cursor:!0},category:"popup",subcategory:"behavior"},zoom_out_to_close:{name:"Zoom out fully to close",description:"Closes the popup if you zoom out past the minimum zoom",requires:[{mouseover_scrollx_behavior:"zoom"},{mouseover_scrollx_hold_behavior:"zoom"},{mouseover_scrolly_behavior:"zoom"},{mouseover_scrolly_hold_behavior:"zoom"}],category:"popup",subcategory:"close_behavior"},scroll_past_gallery_end_to_close:{name:"Scroll past gallery end to close",description:"Closes the popup if you scroll past the end of the gallery",requires:[{mouseover_scrollx_behavior:"gallery"},{mouseover_scrollx_hold_behavior:"gallery"},{mouseover_scrolly_behavior:"gallery"},{mouseover_scrolly_hold_behavior:"gallery"}],category:"popup",subcategory:"close_behavior"},mouseover_position:{name:"Popup position",description:"Where the popup will appear",options:{_type:"or",_group1:{cursor:{name:"Cursor middle",description:"Underneath the mouse cursor"}},_group2:{beside_cursor:{name:"Beside cursor"}},_group3:{center:{name:"Page middle"}}},requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_prevent_cursor_overlap:{name:"Prevent cursor overlap",description:"Prevents the image from overlapping with the cursor",requires:{mouseover_position:"beside_cursor"},hidden:!0,category:"popup",subcategory:"open_behavior"},mouseover_overflow_position_center:{name:"Center popup on overflow",description:"Centers the popup if its initial size overflows",requires:"action:popup",category:"popup",subcategory:"open_behavior"},mouseover_overflow_origin:{name:"Overflow origin",description:"Where the popup will appear in the page if its initial size overflows",requires:[{mouseover_position:"center"},{mouseover_overflow_position_center:!0},{mouseover_hold_position_center:!0}],options:{_type:"or",_group1:{a00:{name:""},a10:{name:""},a20:{name:""}},_group2:{a01:{name:""},a11:{name:""},a21:{name:""}},_group3:{a02:{name:""},a12:{name:""},a22:{name:""}}},category:"popup",subcategory:"open_behavior"},mouseover_hide_cursor:{name:"Hide cursor over popup",description:"Hides the cursor when the mouse is over the popup",requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_hide_cursor_after:{name:"Hide cursor after",description:"Hides the cursor over the popup after a specified period of time (in milliseconds), 0 always hides the cursor",requires:{mouseover_hide_cursor:!0},type:"number",number_unit:"ms",number_int:!0,number_min:0,category:"popup",subcategory:"behavior"},mouseover_mouse_inactivity_jitter:{name:"Mouse jitter threshold",description:"Threshold for mouse movement before the mouse cursor is shown again, 0 always shows the cursor after any movement",requires:{mouseover_hide_cursor:!0},type:"number",number_unit:"px",number_int:!0,number_min:0,category:"popup",subcategory:"behavior"},mouseover_clickthrough:{name:"Disable pointer events",description:"Enabling this option will allow you to click on links underneath the popup",requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_mask_ignore_clicks:{name:"Ignore clicks outside popup",description:"Any mouse event outside the popup will be discarded with this option",requires:"action:popup",category:"popup",subcategory:"behavior"},enable_stream_download:{name:"Enable downloading HLS/DASH streams",description:"Downloads and muxes the contents of the streams rather than the stream information file.\nThis currently does not work under modern browsers due to `SharedArrayBuffer` restrictions.",requires:{_condition:"action:popup",mouseover_allow_hlsdash:!0},hidden:!Hi,category:"popup",subcategory:"video"},stream_mux_mp4_over_mkv:{name:"Prefer MP4 over MKV",description:"Tries to mux the video into mp4 instead of mkv when required. This may slightly slow down muxing as it currently needs to try muxing both.",requires:{enable_stream_download:!0},hidden:!Hi,category:"popup",subcategory:"video"},mouseover_add_link:{name:"Link image",description:"Adds a link to the image in the popup",requires:"action:popup",category:"popup",subcategory:"behavior"},mouseover_add_video_link:{name:"Link video",description:"Adds a link to the video in the popup",requires:{_condition:"action:popup",mouseover_allow_video:!0},category:"popup",subcategory:"behavior"},mouseover_click_image_close:{name:"Clicking image closes",description:"Clicking the popup image closes the popup",requires:"action:popup",disabled_if:[{mouseover_add_link:!0},{mouseover_clickthrough:!0}],category:"popup",subcategory:"behavior"},mouseover_click_video_close:{name:"Clicking video closes",description:"Clicking the popup video closes the popup",requires:"action:popup",disabled_if:[{mouseover_add_video_link:!0},{mouseover_clickthrough:!0}],category:"popup",subcategory:"behavior"},mouseover_download:{name:"Clicking link downloads",description:"Instead of opening the link in a new tab, it will download the image/video instead",requires:[{_condition:"action:popup",mouseover_add_link:!0},{_condition:"action:popup",mouseover_add_video_link:!0}],category:"popup",subcategory:"behavior"},mouseover_close_key:{name:"Close key",description:"Closes the popup when this key is pressed. Currently, ESC will also close the popup regardless of the value of this setting.",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_download_key:{name:"Download key",description:"Downloads the image in the popup when this key is pressed",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_open_new_tab_key:{name:"Open in new tab key",description:"Opens the image in the popup in a new tab when this key is pressed",hidden:_e&&Re===Ni.nullfunc,requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_open_bg_tab_key:{name:"Open in background tab key",description:"Opens the image in the popup in a new tab without switching to it when this key is pressed",hidden:_e&&Re===Ni.nullfunc,requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_copy_link_key:{name:"Copy link key",description:"Copies the link of the media to the clipboard when this key is pressed",requires:{_condition:"action:popup",write_to_clipboard:!0},type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_open_options_key:{name:"Open options key",description:"Opens this page in a new tab when this key is pressed",hidden:_e&&Re===Ni.nullfunc,requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_open_orig_page_key:{name:"Open original page key",description:"Opens the original page (if available) when this key is pressed",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_rotate_left_key:{name:"Rotate left key",description:"Rotates the popup 90 degrees to the left",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_rotate_right_key:{name:"Rotate right key",description:"Rotates the popup 90 degrees to the right",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_flip_horizontal_key:{name:"Horizontal flip key",description:"Flips the image horizontally",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_flip_vertical_key:{name:"Vertical flip key",description:"Flips the image vertically",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_zoom_in_key:{name:"Zoom in key",description:"Incrementally zooms into the image",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_zoom_out_key:{name:"Zoom out key",description:"Incrementally zooms out of the image",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_zoom_full_key:{name:"Full zoom key",description:"Sets the image to be at a 100% zoom, even if it overflows the screen",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_zoom_fit_key:{name:"Fit screen key",description:"Sets the image to either be at a 100% zoom, or to fit the screen, whichever is smaller",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_fullscreen_key:{name:"Toggle fullscreen key",description:"Toggles fullscreen mode for the image/video in the popup",requires:"action:popup",type:"keysequence",category:"keybinds",subcategory:"popup"},mouseover_links:{name:"Popup for plain hyperlinks",description:"Whether or not the popup should also open for plain hyperlinks",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_only_valid_links:{name:"Only for links that look valid",description:"Enabling this option will only allow links to be popped up if they look valid (such as if they have a known image/video extension, or are explicitly supported)",requires:{mouseover_links:!0},category:"popup",subcategory:"source"},mouseover_allow_video:{name:"Enable videos",description:"Allows videos to be popped up",profiled:!0,category:"popup",subcategory:"video"},mouseover_allow_audio:{name:"Enable audio",description:"Allows audio to be popped up. Currently experimental.\nThis only applies to audio files. Videos that contains audio are supported regardless of this setting.",profiled:!0,category:"popup",subcategory:"video"},mouseover_allow_hlsdash:{name:"Allow HLS/DASH streams",description:"Allows playback of HLS/DASH streams",example_websites:["Dailymotion","Instagram (higher quality)","Reddit","YouTube (higher quality)"],requires:[{mouseover_allow_audio:!0,allow_thirdparty_libs:!0},{mouseover_allow_video:!0,allow_thirdparty_libs:!0}],profiled:!0,category:"popup",subcategory:"video"},mouseover_allow_self_pagelink:{name:"Popup page URL",description:"If no element can be found, try the page URL. Only relevant for pagelink rules, such as image and video hosting websites",requires:{mouseover:!0,mouseover_trigger_behavior:"keyboard"},category:"popup",subcategory:"source"},mouseover_allow_iframe_el:{name:"Popup for `<iframe>`",description:"Allows `<iframe>` elements to be popped up as well. Storing images/videos in this way is rather uncommon, but it can allow embeds to be supported",requires:{mouseover_links:!0},category:"popup",subcategory:"source"},mouseover_allow_canvas_el:{name:"Popup for `<canvas>`",description:"Allows `<canvas>` elements to be popped up as well. This will likely cause popups with any kind of web-based games, so it's recommended to keep this disabled",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_allow_svg_el:{name:"Popup for `<svg>`",description:"Allows `<svg>` elements to be popped up as well. These are usually used for icons, and can occasionally cause problems for websites that overlay icons on top of images",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_enable_gallery:{name:"Enable gallery",description:"Toggles whether gallery detection support should be enabled",requires:"action:popup",category:"popup",subcategory:"gallery"},mouseover_gallery_cycle:{name:"Cycle gallery",description:"Going to the previous image for the first image will lead to the last image and vice-versa",requires:{_condition:"action:popup",mouseover_enable_gallery:!0},category:"popup",subcategory:"gallery"},mouseover_gallery_prev_key:{name:"Previous gallery item",description:"Key to trigger the previous gallery item",requires:{_condition:"action:popup",mouseover_enable_gallery:!0},type:"keysequence",category:"keybinds",subcategory:"gallery"},mouseover_gallery_next_key:{name:"Next gallery item",description:"Key to trigger the next gallery item",requires:{_condition:"action:popup",mouseover_enable_gallery:!0},type:"keysequence",category:"keybinds",subcategory:"gallery"},mouseover_gallery_download_key:{name:"Gallery download key",description:"Key to download the current gallery",requires:{_condition:"action:popup",mouseover_enable_gallery:!0,allow_thirdparty_libs:!0},type:"keysequence",category:"keybinds",subcategory:"gallery"},gallery_download_method:{name:"Download method",description:"How the gallery should be downloaded",requires:{_condition:"action:popup",mouseover_enable_gallery:!0},options:{_type:"combo",zip:{name:"Zip file"},jdownloader:{name:"JDownloader"}},category:"popup",subcategory:"gallery"},gallery_download_unchanged:{name:"Download unchanged media",description:"Includes gallery items that have not been changed. Useful to potentially avoid downloading thumbnails",requires:{_condition:"action:popup",mouseover_enable_gallery:!0},category:"popup",subcategory:"gallery"},gallery_zip_filename_format:{name:"Directory/zip filename format",description:["Format string(s) for the directory (package name for JDownloader) and zip filename (if applicable).",'Refer to "Filename format" under the Rules section for documentation. The variables are set from the first loaded media.',"An additional `items_amt` format variable is supported, which contains the number of items.","`.zip` will be automatically suffixed for zip filenames."].join("\n"),requires:{_condition:"action:popup",mouseover_enable_gallery:!0},type:"textarea",category:"popup",subcategory:"gallery"},gallery_zip_add_tld:{name:"Zip: Store in subdirectory",description:"Stores the files in a subdirectory with the same name as the .zip file (without the .zip extension)",requires:{_condition:"action:popup",mouseover_enable_gallery:!0,gallery_download_method:"zip"},category:"popup",subcategory:"gallery"},gallery_jd_autostart:{name:"JD: Autostart",description:"Autostarts the download when added to JDownloader",requires:{gallery_download_method:"jdownloader"},category:"popup",subcategory:"gallery"},gallery_jd_referer:{name:"JD: Referer policy",description:"Due to a current limitation in JDownloader's API, the `Referer` (sic) header can only be set on a per-package basis. This option allows working around it by submitting multiple packages with the same name using different Referer headers. This can result in JD spamming notifications due to the number of packages created.",requires:{gallery_download_method:"jdownloader"},options:{_type:"combo",never:{name:"Never"},domain:{name:"Per-domain"},always:{name:"Always"}},category:"popup",subcategory:"gallery"},gallery_zip_add_info_file:{name:"Zip: Store info file",description:"Stores a `info.txt` file in the .zip containing information about the downloaded files and host page.",requires:{_condition:"action:popup",mouseover_enable_gallery:!0,gallery_download_method:"zip"},category:"popup",subcategory:"gallery"},mouseover_gallery_move_after_video:{name:"Move to next when video finishes",description:"Moves to the next gallery item when a video finishes playing",requires:{_condition:"action:popup",mouseover_allow_video:!0,mouseover_enable_gallery:!0},category:"popup",subcategory:"gallery"},mouseover_styles:{name:"Popup CSS style",description:"Custom CSS styles for the popup",documentation:{title:"Documentation",value:["Most valid CSS is supported, with these differences:","<ul><li>Multiline comments (<code>/* ... */</code>) are currently not supported</li>","<li>Single comments (<code>// ...</code>) are supported, but only at the beginning of a line</li>","<li><code>%thumburl%</code> is the URL of the thumbnail image. For example, you could use it like this: <code>background-image: url(%thumburl%)</code><br />","The URL is properly encoded, so quotes are not necessary (but not harmful either)</li>","<li><code>%fullurl%</code> is the URL of the full image. If IMU fails to find a larger image, it will be the same as <code>%thumburl%</code></li>","<li>Styles are <code>!important</code> by default</li></ul>","<p>For Button CSS style, you can also customize the CSS for individual buttons through their IDs. For example:</p>","<pre>","#closebtn {","  background-color: red;","  // -imu-text allows you to set the text inside the button",'  -imu-text: "Close";',"  // -imu-title allows you to set the tooltip when hovering",'  -imu-title: "Close the popup";',"}","#galleryprevbtn, #gallerynextbtn {","  border-radius: 100px;","}","</pre>"].join("\n")},type:"textarea",requires:"action:popup",category:"popup",subcategory:"popup_other"},mouseover_enable_fade:{name:"Enable popup fade",description:"Enables a fade in/out effect when the popup is opened/closed",requires:"action:popup",category:"popup",subcategory:"popup_other"},mouseover_enable_zoom_effect:{name:"Enable zoom effect",description:"Toggles whether the popup should 'zoom' when opened/closed",requires:"action:popup",category:"popup",subcategory:"popup_other"},mouseover_zoom_effect_move:{name:"Move from thumbnail when zooming",description:"Moves the popup from the thumbnail to the final location while zooming. The animation can be a little rough",requires:{mouseover_enable_zoom_effect:!0},category:"popup",subcategory:"popup_other"},mouseover_fade_time:{name:"Popup animation time",description:"Fade/zoom animation duration (in milliseconds) for the popup",requires:[{mouseover_enable_fade:!0},{mouseover_enable_zoom_effect:!0}],type:"number",number_min:0,number_unit:"ms",category:"popup",subcategory:"popup_other"},mouseover_enable_mask_styles2:{name:"Enable background CSS",description:"Toggles whether CSS styles for the background when the popup is active is enabled",requires:"action:popup",options:{always:{name:"Always"},hold:{name:"On hold"},never:{name:"No"}},category:"popup",subcategory:"popup_other"},mouseover_mask_styles2:{name:"Background CSS style",description:"CSS style for the background when the popup is active. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)",requires:[{mouseover_enable_mask_styles2:"always"},{mouseover_enable_mask_styles2:"hold"}],type:"textarea",category:"popup",subcategory:"popup_other"},mouseover_mask_fade_time:{name:"Background fade",description:"Fade in/out time (in milliseconds) for the page background, set to 0 to disable",requires:[{mouseover_enable_mask_styles2:"always"},{mouseover_enable_mask_styles2:"hold"}],type:"number",number_min:0,number_unit:"ms",category:"popup",subcategory:"popup_other"},mouseover_ui_styles:{name:"Button CSS style",description:"Custom CSS styles for the popup's UI buttons. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)",type:"textarea",requires:{_condition:"action:popup",mouseover_ui:!0},category:"popup",subcategory:"ui"},mouseover_apply_blacklist:{name:"Don't popup blacklisted URLs",description:"This option popping up for source media with blacklisted URLs. If this is disabled, the popup will open if the end URL isn't blacklisted, regardless of whether the source is blacklisted.",requires:{mouseover:!0},category:"popup",subcategory:"source"},apply_blacklist_host:{name:"Use media blacklist for host websites",description:"Overrides the host blacklist to use the media blacklist (specified under Rules)",category:"popup",subcategory:"source"},mouseover_matching_media_types:{name:"Don't popup different media type",description:"This option prevents the popup from loading a video when the source was an image or vice-versa",requires:{mouseover:!0,mouseover_allow_video:!0},category:"popup",subcategory:"source"},mouseover_allow_popup_when_fullscreen:{name:"Allow popup when fullscreen",description:"Allows the popup to open if an element (such as a video player) is fullscreen.",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_support_pointerevents_none:{name:"Support `pointer-events:none`",description:"Manually looks through every element on the page to see if the cursor is beneath them. Supports more images, but also results in a higher CPU load for websites such as Facebook.",requires:{mouseover:!0},category:"popup",subcategory:"source"},mouseover_find_els_mode:{name:"Element finding mode",description:"How IMU should find the media element on the page.",requires:{mouseover:!0},options:{full:{name:"Full",description:"Manually looks through every element on the page to see if the cursor is above them. This will result in a higher CPU load for websites such as Facebook, and may return the wrong element"},hybrid:{name:"Hybrid",description:"Looks manually through every child element of the last element found by `getElementsAtPoint`. Use this option if in doubt, it'll work on most sites"},simple:{name:"Simple",description:"This is the fastest option, which uses the value of `getElementsAtPoint` without modification. Works for sites that don't use pointer-events:none and shadow DOM"}},warning:{full:"This will result in a much higher CPU load for websites such as Facebook, and will occasionally return the wrong element.\nUse this option with caution."},category:"popup",subcategory:"source"},popup_allow_cache:{name:"Use cache",description:"Allows use of a media cache for the popup. The cache is currently stored per-page and is not persistent across page reloads.",requires:"action:popup",category:"popup",subcategory:"cache"},popup_cache_duration:{name:"Cache duration",description:"How long for media to remain cached. Set to `0` for unlimited.",requires:{popup_allow_cache:!0},type:"number",number_min:0,number_unit:"minutes",category:"popup",subcategory:"cache"},popup_cache_itemlimit:{name:"Cache item limit",description:"Maximum number of individual media to remain cached. Set to `0` for unlimited.",requires:{popup_allow_cache:!0},type:"number",number_min:0,number_unit:"items",category:"popup",subcategory:"cache"},popup_cache_resume_video:{name:"Resume videos",description:"If a video popup was closed then reopened, the video will resume from where it left off",requires:{popup_allow_cache:!0},category:"popup",subcategory:"cache"},website_inject_imu:{name:"Use userscript",description:"Replaces the website's IMU instance with the userscript",userscript_only:!0,category:"website"},website_image:{name:"Website image preview",description:"Enables a preview of the image on the Image Max URL website",userscript_only:!0,requires:{website_inject_imu:!0},category:"website"},extension_contextmenu:{name:"IMU entry in context menu",description:"Enables a custom entry for this extension in the right click/context menu",extension_only:!0,category:"general",subcategory:"extension",imu_enabled_exempt:!0},extension_hotreload:{name:"Hot (re)load",description:"(Re)loads the extension on all existing pages when installing or updating",extension_only:!0,category:"general",subcategory:"extension",imu_enabled_exempt:!0},custom_xhr_for_lib:{name:"Custom XHR for libraries",description:"Allows the use of more powerful XHR (network requests) for 3rd-party libraries. This allows for certain DASH streams to work.",description_userscript:"Allows the use of more powerful XHR  (network requests) for 3rd-party libraries. This allows for certain DASH streams to work. Using this with the userscript version currently poses a potential security risk.",category:"general",subcategory:"libraries",example_websites:["Kakao","YouTube","Instagram (downloading)"],requires:{allow_thirdparty_libs:!0},needrefresh:!0},bypass_csp_for_lib:{name:"Bypass CSP for libraries",description:'Tries loading the 3rd-party libraries using a `<script>` tag if a page\'s CSP prevents it from being loaded normally.\nThis option currently carries an increased security risk when combined with "Custom XHR for libraries", and should only be enabled if absolutely necessary.',category:"general",subcategory:"libraries",userscript_only:!0,requires:{allow_thirdparty_libs:!0},example_websites:["Snapchat"],warning:{true:'This can potentially be extremely insecure if "Custom XHR for libraries" is also enabled.\nA malicious website could gain extension-level permissions and perform arbitrary requests (your online accounts could get hacked).\nIf you need to use this option, please disable it as soon as possible.'},needrefresh:!0},use_webarchive_for_lib:{name:"Use Web Archive for libraries",description:"Uses archive.org's web archive instead of github for libraries and other script internals (such as the options page).\nDon't enable this unless you need to.",userscript_only:!0,category:"general",subcategory:"libraries"},lib_integrity_check:{name:"Enable integrity checks",description:"Runs integrity checks before loading 3rd-party libraries",userscript_only:!0,category:"general",subcategory:"libraries"},hls_dash_use_max:{name:"HLS/DASH maximum quality",description:"Uses the maximum quality for HLS/DASH streams",requires:{mouseover_allow_hlsdash:!0},category:"popup",subcategory:"video"},max_video_quality:{name:"Maximum video quality",description:"Maximum quality for videos",requires:{mouseover_allow_hlsdash:!0},options:{_type:"combo",unlimited:{name:"(unlimited)",is_null:!0},h2160:{name:"4K"},h1440:{name:"1440p"},h1080:{name:"1080p"},h720:{name:"720p"},h480:{name:"480p"}},category:"popup",subcategory:"video"},allow_watermark:{name:"Larger watermarked images",description:"Enables rules that return larger images that include watermarks",category:"rules",example_websites:["Stock photo websites"],onupdate:e},allow_smaller:{name:"Smaller non-watermarked images",description:"Enables rules that return smaller images without watermarks",category:"rules",onupdate:e},allow_possibly_different:{name:"Possibly different images",description:"Enables rules that return images that possibly differ, usually due to server-side caching",category:"rules",onupdate:e},allow_possibly_broken:{name:"Possibly broken images",description:"Enables rules that return images that are possibly broken",category:"rules",hidden:!0,onupdate:e},allow_possibly_upscaled:{name:"Possibly upscaled images",description:"Enables rules that return images that are possibly upscaled",category:"rules",onupdate:e},allow_uncropped:{name:"Uncropped images",description:"Enables rules that return possibly undesirable uncropped images",example_websites:["Mobile wallpaper websites (returns the full version of the wallpaper image)"],category:"rules",onupdate:e},allow_thirdparty:{name:"Rules using 3rd-party websites",description:"Enables rules that use 3rd-party websites",category:"rules",example_websites:["Newsen"],onupdate:e},allow_apicalls:{name:"Rules using API calls",description:"Enables rules that use API calls. Strongly recommended to keep this enabled",category:"rules",example_websites:["Instagram","Flickr","..."],onupdate:e},allow_thirdparty_libs:{name:"Allow 3rd-party libraries",description:"Enables using 3rd-party libraries. This is both used in rules and as a prerequisite for certain functionality.",description_userscript:"Enables using 3rd-party libraries. This is both used in rules and as a prerequisite for certain functionality.\nThere is a possible (but unlikely) security risk for the userscript version.",category:"general",subcategory:"libraries",example_websites:["Sites using testcookie (slowAES)"],onupdate:function(){e(),Tt.clear()}},allow_thirdparty_code:{name:"Rules executing 3rd-party code",description:"Enables rules that execute arbitrary 3rd-party code stored on websites.",warning:{true:"This could lead to security risks, please be careful when using this option!"},category:"rules",onupdate:function(){e(),Tt.clear()},hidden:!0},allow_bruteforce:{name:"Rules using brute-force",description:"Enables rules that require using brute force (through binary search) to find the original image",warning:{true:"This could lead to rate limiting or IP bans"},category:"rules",example_websites:["Deezer"],onupdate:e},allow_webarchive:{name:"Web Archive support",description:"Allows rules to be run under archive.org's Wayback Machine.",category:"rules"},browser_cookies:{name:"Use browser cookies",description:"Uses the browser's cookies for API calls in order to access otherwise private data",category:"rules",example_websites:["Private Flickr images"],extension_only:!0,hidden:!0,onupdate:e},deviantart_prefer_size:{name:"DeviantART: Prefer size over original",description:"Prefers a larger (but not upscaled) thumbnail image over a smaller original animated image",category:"rules",subcategory:"rule_specific",onupdate:e},deviantart_support_download:{name:"DeviantART: Use download links",description:"Prefers using the download link (if available) by default. Note that this only works if you're logged in to DeviantART",category:"rules",subcategory:"rule_specific",onupdate:e},ehentai_full_image:{name:"E-Hentai: Use full image",description:"Prefers using full/original images if available (logged in). This is more likely to get you rate limited",category:"rules",subcategory:"rule_specific",onupdate:e},imgur_filename:{name:"Imgur: Use original filename",description:"If the original filename (the one used to upload the image) is found, use it instead of the image ID",category:"rules",subcategory:"rule_specific",onupdate:e},imgur_source:{name:"Imgur: Use source image",description:"If a source image is found for Imgur, try using it instead. Only works for old-style Imgur webpages (set `postpagebeta=0; postpagebetalogged=0` as cookies)",category:"rules",subcategory:"rule_specific",onupdate:e},instagram_use_app_api:{name:"Instagram: Use native API",description:"Uses Instagram's native API if possible, requires you to be logged into Instagram. This usually allows for higher resolution images (1440x*) to be returned.",category:"rules",subcategory:"rule_specific",warning:{},onupdate:e},instagram_dont_use_web:{name:"Instagram: Don't use web API",description:"Avoids using Instagram's web API if possible, which increases performance, but will occasionally sacrifice quality for videos",requires:[{instagram_use_app_api:!0}],category:"rules",subcategory:"rule_specific",onupdate:e},instagram_prefer_video_quality:{name:"Instagram: Prefer quality over resolution",description:"Prefers lower resolution videos that use a higher bitrate over higher resolution images. This adds a slight performance cost as it needs to fetch headers for multiple videos",category:"rules",subcategory:"rule_specific",onupdate:e},instagram_gallery_postlink:{name:"Instagram: Use albums for post thumbnails",description:"Queries Instagram for albums when using the popup on a post thumbnail",category:"rules",subcategory:"rule_specific"},snapchat_orig_media:{name:"Snapchat: Use original media without captions",description:"Prefers using original media instead of media with captions and tags overlayed",category:"rules",subcategory:"rule_specific"},teddit_redirect_reddit:{name:"Teddit: Use Reddit for media",description:"Redirects media stored on Teddit to Reddit's servers. Disabling this may prevent finding original images because Teddit's image servers will only cache images fetched from posts, which are deleted after a few minutes.",category:"rules",subcategory:"rule_specific",onupdate:e},tiktok_app_api:{name:"TikTok: Use app API",description:"Uses TikTok's app API to find video information.",category:"rules",subcategory:"rule_specific",onupdate:e},tiktok_no_watermarks:{name:"TikTok: Don't use watermarked videos",description:"Uses non-watermarked videos for TikTok if possible. This will introduce an extra delay when loading the video as two extra requests need to be performed. It will also fail for any videos uploaded after ~late July 2020",hidden:!0,category:"rules",subcategory:"rule_specific",onupdate:e},tiktok_thirdparty:{name:"TikTok: 3rd-party watermark removal",description:"Uses a 3rd-party watermark removal site for TikTok.\nI do not endorse any of the sites supported. They may log your IP address and videos you submit. Use this option with caution.\n`LQ` = Low quality, `PL` = Public log",requires:[{allow_thirdparty:!0}],hidden:!0,options:{_type:"combo",_randomize:!0,null:{name:"(none)",is_null:!0},"ttloader.com:ttt":{name:"ttloader.com"},"onlinetik.com:ttt":{name:"onlinetik.com"},"tikdowns.com:ttt":{name:"tikdowns.com"},"ssstiktok.net:ttt":{name:"ssstiktok.net"},"keeptiktok.com":{name:"keeptiktok.com (LQ)"},"ssstiktok.io:1":{name:"ssstiktok.io (LQ)"},"musicallydown.com:1":{name:"musicallydown.com (LQ/PL)"},"snaptik.app":{name:"snaptik.app (LQ)"},"tikmate.online":{name:"tikmate.online (LQ)"}},category:"rules",subcategory:"rule_specific",onupdate:e},tumblr_api_key:{name:"Tumblr: API key",description:"API key for finding larger images on Tumblr",category:"rules",subcategory:"rule_specific",type:"lineedit",onupdate:e},twitter_use_ext:{name:"Twitter: Use extension",description:"Prefers `.jpg?name=orig` over `?format=jpg&name=orig`. This will possibly incur extra requests before succeeding. Note that there is no difference in image quality.",category:"rules",subcategory:"rule_specific",onupdate:e},youtube_replace_n:{name:"YouTube: Enable faster speeds",description:"Increases the download bandwidth for YouTube videos by replacing the `n` parameter. Note that this may execute untrusted Javascript.",requires:{allow_thirdparty_libs:!0},category:"rules",subcategory:"rule_specific",onupdate:e},bigimage_blacklist:{name:"Media blacklist",description:"A list of URLs (one per line) that are blacklisted from being processed",category:"rules",type:"textarea"},bigimage_blacklist_mode:{name:"Media blacklist mode",description:"Whether the media blacklist should act as a blacklist or a whitelist",category:"rules",options:{whitelist:{name:"Whitelist"},blacklist:{name:"Blacklist"}}},bigimage_blacklist_engine:{name:"Blacklist engine",description:"How blacklists should be processed",category:"general",options:{glob:{name:"Simple (glob)"},regex:{name:"Regex"}}},host_blacklist:{name:"Host blacklist",description:"A list of host URLs (one per line) that the popup is blacklisted from. For example, adding `twitter.com` to this blacklist would prevent any popup from opening on twitter.com.",type:"textarea",requires:{mouseover:!0,apply_blacklist_host:!1},category:"popup",subcategory:"source"},host_blacklist_mode:{name:"Host blacklist mode",description:"Whether the host blacklist should act as a blacklist or a whitelist",category:"popup",subcategory:"source",options:{whitelist:{name:"Whitelist"},blacklist:{name:"Blacklist"}}},host_html_blacklist:{name:"HTML page blacklist",description:"A list of URLs (one per line) that are blacklisted from being redirected.",requires:{redirect:!0,redirect_host_html:!0},category:"redirection",type:"textarea",advanced:!0},host_html_blacklist_mode:{name:"HTML page blacklist mode",description:"Whether the HTML page blacklist should act as a blacklist or a whitelist",requires:{redirect:!0,redirect_host_html:!0},category:"redirection",options:{whitelist:{name:"Whitelist"},blacklist:{name:"Blacklist"}},advanced:!0},filename_format:{name:"Filename format",description:"Format string(s) for the filename",type:"textarea",category:"rules",documentation:{title:"Documentation",value:["<p>Variables are specified between curly brackets (<code>{}</code>).</p>","<p>Below is a list of valid variables:</p>","<ul><br />","<li><code>filename</code> - Original filename (with extension, if applicable)</li>","<li><code>filename_noext</code> - Original filename (without extension, if applicable)</li>","<li><code>ext</code> - Extension (with <code>.</code> prefixed)</li>","<li><code>caption</code> - Popup caption</li>","<li><code>author_username</code> - Author's username</li>","<li><code>id</code> - Post ID</li>","<li><code>host_title</code> - Title of the current tab/window</li>","<li><code>host_url</code> - URL of the host webpage</li>","<li><code>host_domain</code> - Domain of the host webpage</li>","<li><code>host_domain_nosub</code> - Domain (without subdomains) of the host webpage</li>","<li><code>url</code> - URL of the media</li>","<li><code>domain</code> - Domain of the media</li>","<li><code>domain_nosub</code> - Domain (without subdomains) of the media</li>","<li><code>is_screenshot</code> - Blank, the line will only be processed when screenshotting a video</li>","<li><code>prefix</code>, <code>suffix</code> - Blank by default, these variables will be automatically prefixed/suffixed to the filename if set using <code>:=</code></li>","<li><code>created_...</code> - Created date (see note on Date objects below)</li>","<li><code>updated_...</code> - Updated date, this will use the <code>Last-Modified</code> header if not otherwise specified by the rule (see note on Date objects below)</li>","<li><code>download_...</code> - Download date (see note on Date objects below)</li>","<li><code>date_...</code> - Created/updated date (see note on Date objects below)</li>","</ul><br />","<p>You can truncate the value of a variable by adding <code>:(number)</code> before the end bracket (<code>}</code>). For example:</p>","<ul><br />","<li><code>{caption:10}</code> - Truncates the caption to be at most 10 characters long</li>","<li><code>{caption:10.}</code> - Same, but will add an ellipsis (…) if the caption was truncated</li>","</ul><br />","<p>If a variable doesn't exist, by default it will ignore the current format string and use the one on the next line, unless <code>?</code> is added before the end bracket. For example:</p>","<ul><br />","<li><code>{ext?}</code> - Will be replaced with nothing if <code>ext</code> doesn't exist</li>","<li><code>{caption?no caption}</code> - Will be replaced with <code>no caption</code> if <code>caption</code> doesn't exist</li>","</ul><br />","<p>You can check for equality and inequality with <code>==</code> and <code>!=</code> operators respectively. For example:</p>","<ul><br />","<li><code>{domain_nosub==cdninstagram.com}{author_username} {id}</code> - Will only run the current format (<code>{author_username} {id}</code> in this case) if the domain is cdninstagram.com</li>","</ul><br />","<p>You can check if a variable contains a string with <code>/=</code> (<code>!/=</code> for the opposite). It also supports two flags, <code>r</code> (regex) and <code>c</code> (case-sensitive), if added between <code>/</code> and <code>=</code>. For example:</p>","<ul><br />","<li><code>{domain/=instagram}{id}</code> - Will only run the current format (<code>{id}</code>) if the domain contains <code>instagram</code></li>","<li><code>{domain!/=instagram}{id}</code> - Likewise, but only if the domain does not contain <code>instagram</code></li>","<li><code>{domain/r=inst.*ram}{id}</code> - Likewise, but only if the domain matches the regex <code>inst.*ram</code></li>","<li><code>{window_title/c=Instagram}{id}</code> - Likewise, but only if the window's title contains <code>Instagram</code> (case-sensitively)</li>","<li><code>{window_title!/rc=Inst.*ram}{id}</code> - Likewise, but only if the window's title does not match the case-sensitive regex <code>Inst.*ram</code></li>","</ul><br />","<p>You can set a custom variable with <code>:=</code>. For example:</p>","<ul><br />","<li><code>{domain_nosub==cdninstagram.com}{foo:=bar}</code> - Sets the variable <code>foo</code> to <code>bar</code> if the domain is <code>cdninstagram.com</code>. The variable can then be accessed with e.g. <code>{foo}</code></li>","</ul><br />","<p>Date objects are accessible through a number of properties. Each property can be suffixed with <code>_utc</code> to get the UTC/GMT equivalent.</p>","<ul><br />","<li><code>..._iso</code> - Date in ISO format (e.g. <code>2019-12-31T23-30-56</code>). Note that <code>:</code> is replaced with <code>-</code> to avoid issues with paths under NTFS.</li>","<li><code>..._ago</code> - Human-readable representation of the time elapsed since the date (e.g. <code>1 year and 10 months ago</code>, <code>5 months and 20 days ago</code>)</li>","<li><code>..._unix</code> - Unix timestamp (e.g. <code>1577912345</code>)</li>","<li><code>..._unix_ms</code> - Unix timestamp with millisecond accuracy (e.g. <code>1577912345678</code>)</li>","<li><code>..._yyyymmdd</code> - Date in YYYYMMDD format (e.g. <code>20191230</code>)</li>","<li><code>..._hhmmss</code> - Time in HHMMSS format (e.g. <code>233056</code>)</li>","<li><code>..._year</code> - Full year (e.g. <code>2019</code>)</li>","<li><code>..._month</code> - Zero-padded month (e.g. <code>12</code>)</li>","<li><code>..._day</code> - Zero-padded day (e.g. <code>31</code>)</li>","<li><code>..._hours</code> - Zero-padded hours in military/24-hour format (e.g. <code>23</code>)</li>","<li><code>..._minutes</code> - Zero-padded minutes (e.g. <code>30</code>)</li>","<li><code>..._seconds</code> - Zero-padded seconds (e.g. <code>56</code>)</li>","</ul>"].join("\n")}},filename_replace_special_underscores:{name:"Replace special characters with underscores",description:'Replaces characters such as `/` or `"` with `_` when downloading. Note that browsers will usually do this automatically, this is just to ensure consistent behavior.',category:"rules"},replaceimgs_enable_keybinding:{name:"Enable trigger key",description:"Enables the use of the trigger key to run it without needing to use the menu",category:"extra",subcategory:"replaceimages"},replaceimgs_keybinding:{name:"Trigger key",description:"Trigger keybinding that will run the Replace Images function",requires:{replaceimgs_enable_keybinding:!0},type:"keysequence",category:"extra",subcategory:"replaceimages"},replaceimgs_auto:{name:"Automatically replace images",description:"Automatically replace images to larger versions on pages you view",warning:{true:"This could lead to rate limiting or IP bans"},needrefresh:!0,category:"extra",subcategory:"replaceimages"},replaceimgs_usedata:{name:"Use data URLs",description:"Uses data:// URLs instead of image links. Disabling this may improve compatibility with some bulk image downloader extensions",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_wait_fullyloaded:{name:"Wait until image is fully loaded",description:"Waits until the image being replaced is fully loaded before moving on to the next image",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_usedata:!1},imu_enabled_exempt:!0},replaceimgs_totallimit:{name:"Max images to process at once",description:"The maximum amount of images to process at once",type:"number",number_min:1,number_int:!0,number_unit:"images",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_domainlimit:{name:"Max images per domain at once",description:"The maximum amount of images per domain to process at once",type:"number",number_min:1,number_int:!0,number_unit:"images",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_delay:{name:"Delay between same-domain images",description:"New requests for images in the same domain will be delayed by this amount of seconds. Useful for avoiding rate limits.",type:"number",number_min:0,number_unit:"seconds",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_replaceimgs:{name:"Replace images",description:"Replaces images to their larger versions when the button is pressed",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_addlinks:{name:"Add links",description:"Adds links around replaced media if a link doesn't already exist",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},replaceimgs_replacelinks:{name:"Replace links",description:"Replaces links if they already exist",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_addlinks:!0},imu_enabled_exempt:!0},replaceimgs_plainlinks:{name:"Plain hyperlinks",description:"How to treat plain (non-media) hyperlinks that link to potential media",category:"extra",subcategory:"replaceimages",options:{_type:"combo",none:{name:"Ignore"},replace_link_text:{name:"Replace link+text"},replace_media:{name:"Replace media"}},requires:{replaceimgs_replaceimgs:!0},imu_enabled_exempt:!0},replaceimgs_links_newtab:{name:"Links open in new tab",description:"Clicking on a replaced link will open the media in a new tab",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_addlinks:!0},imu_enabled_exempt:!0},replaceimgs_remove_size_constraints:{name:"Remove size constraints",description:"Removes height/width specifiers for replaced media",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_replaceimgs:!0},imu_enabled_exempt:!0},replaceimgs_size_constraints:{name:"Size constraints",description:"Removes or enforces height/width specifiers for replaced media",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_replaceimgs:!0},options:{_type:"combo",none:{name:"Ignore"},remove:{name:"Remove"},force:{name:"Force"}},imu_enabled_exempt:!0},replaceimgs_css:{name:"Replacement CSS",description:"CSS styles to apply to replaced media. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't yet supported here)",type:"textarea",category:"extra",subcategory:"replaceimages",requires:{replaceimgs_replaceimgs:!0},imu_enabled_exempt:!0},replaceimgs_simple_progress:{name:"Simple progress",description:"Uses a simpler progress bar that has a fixed size for all media. This is useful to see how many images are replaced, rather than the ETA",category:"extra",subcategory:"replaceimages",imu_enabled_exempt:!0},highlightimgs_enable_keybinding:{name:"Enable trigger key",description:"Enables the use of the trigger key to run it without needing to use the menu",category:"extra",subcategory:"highlightimages"},highlightimgs_keybinding:{name:"Trigger key",description:"Trigger keybinding that will run the Highlight Images function",requires:{highlightimgs_enable_keybinding:!0},type:"keysequence",category:"extra",subcategory:"highlightimages"},highlightimgs_enable:{name:"Enable button",description:"Enables the 'Highlight Images' button",category:"extra",subcategory:"highlightimages",imu_enabled_exempt:!0},highlightimgs_auto:{name:"Automatically highlight images",description:"Automatically highlights images as you view pages",options:{_type:"or",always:{name:"Always"},hover:{name:"Hover",description:"When hovering over an image"},never:{name:"Never"}},category:"extra",subcategory:"highlightimages"},highlightimgs_onlysupported:{name:"Only explicitly supported images",description:"Only highlights images that can be made larger or the original version can be found",requires:[{highlightimgs_enable:!0},{highlightimgs_auto:"always"},{highlightimgs_auto:"hover"}],category:"extra",subcategory:"highlightimages"},highlightimgs_css:{name:"Highlight CSS",description:"CSS style to apply for highlight. See the documentation for Popup CSS style for more information (the thumb/full URL variables aren't supported here)",type:"textarea",requires:[{highlightimgs_enable:!0},{highlightimgs_auto:"always"},{highlightimgs_auto:"hover"}],category:"extra",subcategory:"highlightimages",imu_enabled_exempt:!0},customgallery_enable_keybinding:{name:"Enable trigger key",description:"Enables the use of the trigger key to run it without needing to use the menu",category:"extra",subcategory:"customgallery"},customgallery_keybinding:{name:"Trigger key",description:"Trigger keybinding that will run the Custom Gallery function",requires:{customgallery_enable_keybinding:!0},type:"keysequence",category:"extra",subcategory:"customgallery"},customgallery_enable_button:{name:"Enable button",description:"Enables the 'Custom Gallery' button",category:"extra",subcategory:"customgallery",imu_enabled_exempt:!0},customgallery_apply_key:{name:"Apply key",description:"Triggers the gallery when pressed",requires:[{customgallery_enable_button:!0},{customgallery_enable_keybinding:!0}],type:"keysequence",category:"extra",subcategory:"customgallery",imu_enabled_exempt:!0},customgallery_bg_css:{name:"Background CSS",description:"CSS style to apply for the background",type:"textarea",requires:[{customgallery_enable_button:!0},{customgallery_enable_keybinding:!0}],category:"extra",subcategory:"customgallery",imu_enabled_exempt:!0},customgallery_outline_css:{name:"Outline CSS",description:"CSS style to apply for element outlines",type:"textarea",requires:[{customgallery_enable_button:!0},{customgallery_enable_keybinding:!0}],category:"extra",subcategory:"customgallery",imu_enabled_exempt:!0}},ot={allow_watermark:"watermark",allow_smaller:"smaller",allow_possibly_different:"possibly_different",allow_possibly_broken:"possibly_broken",allow_possibly_upscaled:"possibly_upscaled",allow_bruteforce:"bruteforce",allow_uncropped:"uncropped"},rt={general:"General",redirection:"Redirection",popup:"Popup",keybinds:"Shortcuts",rules:"Rules",website:"Website",extra:"Buttons"},it={general:{settings:"subcategory_settings",update:"subcategory_update",libraries:"subcategory_libraries",extension:"subcategory_extension"},popup:{trigger:"subcategory_trigger",source:"subcategory_popup_source",open_behavior:"subcategory_open_behavior",close_behavior:"subcategory_close_behavior",behavior:"subcategory_behavior",cache:"subcategory_cache",gallery:"subcategory_gallery",video:"subcategory_video",ui:"subcategory_ui",popup_other:"subcategory_popup_other"},keybinds:{popup:"subcategory_keybinds_popup_actions",gallery:"subcategory_gallery",video:"subcategory_video"},rules:{rule_specific:"subcategory_rule_specific"},extra:{replaceimages:"subcategory_replaceimages",highlightimages:"subcategory_highlightimages",customgallery:"subcategory_customgallery"}},at={"action:popup":{mouseover_open_behavior:"popup"}};for(Ke in Ai){var nt=Ai[Ke];if(nt.profiled)for(var st=Ti[Ke],lt=0;lt<Na;lt++){var ut=lt+2,ct="t"+ut+"_"+Ke,dt=(Ti=function(e,t,o,r){var i,a={};for(i in e)a[i]=e[i],i===t&&(a[o]=r);return a}(Ti,0<lt?"t"+(ut-1)+"_"+Ke:Ke,ct,st),qi(nt));Ai[ct]=dt,_&&(dt.name=Bi(dt.name)+" (#"+ut+")",dt.description=null,dt.example_websites=null),dt.requires&&(ct=dt.requires,mi(ct)||(ct=[ct]),zi(ct,function(e){e["mouseover_trigger_key_t"+ut]=!0}),dt.requires=ct)}}var pt,mt={bigimage_blacklist:{create_regexes:zo},host_blacklist:{create_regexes:Ro},host_html_blacklist:{create_regexes:No}};for(pt in mt)!function(r){Ai[r].onupdate=function(){e(),mt[r].create_regexes()},Ai[r].onedit=function(){var e=mt[r].create_regexes(),t=null;try{(t=document.querySelector("#option_"+r+" .error")).innerText="",t.classList.add("hidden")}catch(e){}if(e)for(var o=0;o<e.length;o++)t&&(t.innerText+=e[o].message+"\n",t.classList.remove("hidden")),console.error(e[o])},Ai[r].documentation={title:"Documentation",value:["The examples below are written for the simple (glob) engine, not the regex engine. The glob engine is generally based on the UNIX glob syntax.<br />","<ul><br />","<li><code>google.com</code> will block https://google.com/, https://www.google.com/, https://abcdef.google.com/, https://def.abc.google.com/, etc.</li>","<li><code>abc.google.com</code> will block https://abc.google.com/, https://def.abc.google.com/, etc.</li>","<li><code>*.google.com</code> will block https://www.google.com/, https://def.abc.google.com/, etc. but not https://google.com/</li>","<li><code>google.*/</code> will block https://google.com/, https://www.google.co.uk, etc.</li>","<li><code>http://google.com</code> will block http://google.com/, but not https://google.com/, http://www.google.com/, etc.</li>","<li><code>google.com/test</code> will block https://google.com/test, https://www.google.com/test/abcdef, but not https://google.com/, etc.</li>","<li><code>google.com/*/test</code> will block https://google.com/abc/test, but not https://google.com/test or https://google.com/abc/def/test</li>","<li><code>google.com/**/test</code> will block https://google.com/abc/test, https://google.com/abc/def/test, https://google.com/abc/def/ghi/test, etc. but not https://google.com/test</li>","<li><code>g??gle.com</code> will block https://google.com/, https://gaagle.com/, https://goagle.com/, etc.</li>","<li><code>google.{com,co.uk}</code> will block https://google.com/ and https://google.co.uk/</li>","<li><code>g[oau]ogle.com</code> will block https://google.com/, https://gaogle.com/, and http://www.guogle.com/</li>","<li><code>g[0-9]ogle.com</code> will block https://g0ogle.com/, https://g1ogle.com/, etc. (up to https://g9ogle.com/)</li>","</ul>"].join("\n")}}(pt);var ht,gt=qi(Ti);for(ht in ot){var ft=ot[ht];Ti[ht]=hi($e.exclude_problems,ft)<0}function _t(e){return!!e.imu_map}function vt(e,t){return e.has(t)}function bt(e,t){return Ct(t)?t in e.object:0<=zt(e,t)}function yt(e,t){if(_t(e)){var o,r=e,i=t;for(o in r.object)i(o,r.object[o]);for(var a=0;a<r.array.length;a++)i(r.array[a].key,r.array[a].value)}else for(var n=e,s=t,l=n.keys();;){var u=l.next();if(u.done)break;u=u.value;s(u,n.get(u))}}function wt(e){return _t(e)?(t=e,Object.keys(t.object).length+t.array.length):e.size;var t}var kt={},xt=function(){var e,t=!1;try{"entries"in Map.prototype&&"set"in Map.prototype&&"values"in Map.prototype&&(e=new Map,t=!0)}catch(e){}return e=t?e:{imu_map:!0,object:{},array:[]}},Ct=function(e){return"string"==typeof e||"number"==typeof e},zt=function(e,t){for(var o=0;o<e.array.length;o++)if(e.array[o].key===t)return o;return-1},Sa=function(e,t,o){var r,i,a,n;return si&&wi("map","map_set",qi(t),qi(o)),_t(e)?(r=e,a=o,Ct(i=t)?r.object[i]=a:(n=zt(r,i))<0?r.array.push({key:i,value:a}):r.array[n].value=a):e.set(t,o),o},qa=function(e,t){return _t(e)?(o=e,Ct(r=t)?o.object[r]:0<=(r=zt(o,r))?o.array[r].value:void 0):e.get(t);var o,r},Rt=function(e,t){return(_t(e)?bt:vt)(e,t)},Nt=function(e,t){var o,r;_t(e)?(o=e,Ct(r=t)?delete o.object[r]:0<=(r=zt(o,r))&&o.array.splice(r,1)):e.delete(t)},Ba=function(){return xt()},Ta=function(e,t){return Sa(e,t,!0)},Aa=function(e,t){return Rt(e,t)},Ia=function(e,t){return Nt(e,t)},Ea=(St.prototype.set=function(e,t,o){if(si&&wi("cache","Cache.set key:",e,", time="+o+", value:",qi(t)),this.remove(e),this.options.max_keys){var r=wt(this.data);if(r>this.options.max_keys)for(var i=[],a=(yt(this.times,function(e,t){i.push({key:e,end_time:t.end_time,added_time:t.added_time})}),i.sort(function(e,t){return e.end_time?t.end_time?e.end_time-t.end_time:-1:t.end_time?1:e.added_time-t.added_time}),r-this.options.max_keys),n=0;n<i.length&&0<a;)this.remove(i[n++].key),a--}Sa(this.data,e,t);var s,r=Date.now();"number"==typeof o&&0<o?(s=this,t=setTimeout(function(){s.remove(e)},1e3*o),h&&"number"!=typeof t&&"unref"in t&&t.unref(),Sa(this.times,e,{timer:t,time:o,added_time:r,end_time:r+o})):Sa(this.times,e,{added_time:r})},St.prototype.has=function(e){var t=Rt(this.data,e);return si&&wi("cache","Cache.has key:",e,t),t},St.prototype.get=function(e){var t=qa(this.data,e);return si&&wi("cache","Cache.get key:",e,qi(t)),t},St.prototype.fetch=function(i,a,e){var n,t=Rt(this.data,i);si&&wi("cache","Cache.fetch key:",i,", exists="+t),t?a(qa(this.data,i)):Rt(this.fetches,i)?qa(this.fetches,i).push(a):(Sa(this.fetches,i,[]),n=this,e(function(e,t){!1!==t&&n.set.bind(n)(i,e,t),a(e);for(var o=qa(n.fetches,i),r=0;r<o.length;r++)o[r](e);Nt(n.fetches,i)}))},St.prototype.remove=function(e){var t;si&&wi("cache","Cache.remove key:",e),Rt(this.times,e)&&"timer"in(t=qa(this.times,e))&&clearTimeout(t.timer),this.options.destructor&&Rt(this.data,e)&&this.options.destructor(e,qa(this.data,e)),Nt(this.times,e),Nt(this.data,e)},St.prototype.clear=function(){si&&wi("cache","Cache.clear"),yt(this.times,function(e,t){"timer"in t&&clearTimeout(t.timer)}),this.options.destructor&&yt(this.data,function(e,t){this.options.destructor(e,t)}),this.times=xt(),this.data=xt()},St);function St(e){this.data=xt(),this.times=xt(),this.fetches=xt(),this.options={},e&&(this.options=e)}function qt(t){mi(t.website_regex)||(t.website_regex=[t.website_regex]);for(var o,e,r,i=null,a=0;a<t.website_regex.length&&!(i=Et(t.url,t.website_regex[a]));a++);return i?(o={url:t.url,is_pagelink:!0},t.do_request&&t.cb?(e=t.url.replace(/^[a-z]+:\/\/([^/]+)\/+.*$/,"$1"),e=Za(e),t.cache_key||(t.cache_key=e),r=function(e){return e?((e=mi(e)?e:[e]).push(o),t.cb(e)):t.cb(o)},t.override_cb||(t.override_cb=function(e,t){e(t)}),t.run||(t.run=function(e,r,i){function t(e){return e.replace(/\${id}/g,o).replace(/\${([^/]+)}/g,function(e,t){return(/^[0-9]+$/.test(t)?r:r.groups)[t]})}var o=r[1],a=(r.groups&&r.groups.id&&(o=r.groups.id),i.id&&(o=t(i.id)),i.query_for_id);"object"==typeof(a="string"==typeof i.query_for_id?{url:a}:a)&&a.url?a.url=t(a.url):a=a(o,r),g(i.api_cache,i.do_request,i.cache_key+":"+o,a,e,function(e,t,o){return i.process(e,t,o,r,i)})}),t.run(function(e){t.override_cb(r,e)},i,t),{waiting:!0}):o):null}var Bt=new Ea,Tt=new Ea,At=new Ea,It=new Ea,g=function(e,t,i,a,o,n){e.fetch(i,o,function(r){"method"in a||(a.method="GET"),a.onload=function(t){if(200!==t.status&&!a.non200_ok)return a.silent||bi(i,t),r(null,!1);try{var e=t,o=t.responseText;return a.jsonp&&(o=o.replace(/^[$_a-zA-Z][$_a-zA-Z0-9]+\(({[\s\S]*})\);?$/,"$1")),(a.json||a.jsonp)&&(e=K(o)),n(r,e,i)}catch(e){return bi(i,e,t),r(null,!1)}},t(a)})},Et=function(e,t){var o=t,r=(t.regex&&t.groups&&(o=t.regex),e.match(o));return r&&o!==t&&(r.groups||(r.groups={}),zi(t.groups,function(e,t){r.groups[e]=r[t+1]})),r},Ut=function(e){if(e)for(var t=0;t<e.length;t++)if(0===e.charCodeAt(t))return!0;return!1};function Dt(e,t){return(e%t+t)%t}function Lt(e){return e.replace(/^([a-z]+:\/\/[^/]+)(\?.*)/,"$1/$2").replace(/^([a-z]+:\/\/[^/]+\.[^/]+)\.([?#/].*)?$/,"$1$2")}var Ua=function(e){e=e.match(/^([-a-z]+):/);return!e||0<=hi(["http","https","ftp","data","x-raw-image","blob","chrome","file"],e[1].toLowerCase())};function Da(e,t,o){if(0===t.length)return e;if(t.match(/^[-a-z]*:\/\//)||t.match(/^(?:data|x-raw-image|blob|about|javascript):/))return t;var r=e.split("://");if(r.length<2)return e;var i=r[0],r=i+"://"+r[1].split("/")[0];if(o){if(2<=t.length&&"//"===t.slice(0,2))return i+":"+t;if(1<=t.length&&"/"===t.slice(0,1))return r+t;2<=t.length&&"./"===t.slice(0,2)&&(t=t.substring(2));for(var o=(e=e.match(/\/$/)?e:e.replace(/^([^?]*)\/.*?$/,"$1/"))+t.replace(/^\/*/,""),a=(o=o.split("://"))[1].split("/"),n=[],s=0;s<a.length;s++)".."===a[s]?n.pop():n.push(a[s]);return o[0]+"://"+n.join("/")}return e.replace(/\/*$/,"")+"/"+t.replace(/^\/*/,"")}function Pt(e,t,o){for(var r=[],i=0;i<e.length;i++){var a=qi(t);if("string"==typeof e[i])a.url=e[i];else for(var n in e[i])o&&n in a||(a[n]=e[i][n]);r.push(a)}return r}function jt(e,t){"add_video"in(t=t||{})||(t.add_video=!0);var o=Jt(e,t.extensions,t.prefer_order);if(t.add_video)for(var r=0;r<o.length;r++)/\.(?:mp4|webm)$/.test(o[r])&&(o[r]={url:o[r],video:!0});return o}function Mt(e){return Jt(e,["jpeg","png"])}function Ht(e){return Jt(e,["jpg","jpeg","png"])}function $t(e){return Jt(e,["jpg","png","gif"])}function Ft(e){return Jt(e,["jpg","png","JPG","PNG"])}function Ot(e){return Jt(e,["jpg","jpeg","png","JPG","JPEG","PNG"])}function Gt(e){return/\.webp(?:[?#].*)?$/.test(e)?Kt(e):e}function Wt(e){return e.match(/^[a-z]+:\/\//)?e:"http://"+e}function Vt(e){return e.replace(/^http:\/\//,"https://")}function Xt(e){return e.match(/^https?:\/\//)?e:e.match(/^https?%3[aA]/)||/^[^/]*%2[fF]/.test(e)?decodeURIComponent(e):e.match(/^https?%253[aA]/)?decodeURIComponent(decodeURIComponent(e)):e}function Yt(e,t,o){for(var r=null,i=null,a=0;a<t.length;a++){var n=t[a];if((n="object"==typeof n?n.url:n)===e){"object"==typeof t[a]&&t[a].problems&&(r=t[a].problems),i=t[a],t.splice(a,t.length);break}}if(r)for(a=0;a<t.length;a++)if("object"==typeof t[a]&&t[a].problems)for(var s in t[a].problems)t[a].problems[s]===r[s]&&delete t[a].problems[s];return o&&!t.length&&t.push(i),t}var Zt=function(e,t){var o;return null==t?t:((o=_i(void 0)).href=t,o.href)},La=function(e,t){e=e.replace(/.*\//,"");return"remove_queryhash"in(t=t||{})||(t.remove_queryhash=!0),t.remove_queryhash&&(e=e.replace(/[?#].*$/,""),t.split_ext)?(t=t.known_ext?e.match(/(.*?)\.(mp4|mpe?g|jpe?g|jfif|png|tiff|og[agv]|m4[av]|web[pm]|mkv|avi|gif|mpd|m3u8|zip)$/i):e.match(/(.*)\.([^.]*)$/))?[t[1],t[2]]:[e]:e},Pa=function(e){var o=ne(e||{});return zi(o,function(e,t){"string"==typeof e&&(o[t]={url:e})}),o},ja=function(e,t){for(var o,r=Pa(e),i=Pa(qi(t))[0],a=0;a<r.length;a++)if(void 0!==r[a]){if(!r[a].url||!i.url||i.url===r[a].url)for(o in i)o in r[a]||(r[a][o]=i[o]);for(o in Fe)o in r[a]||(r[a][o]=qi(Fe[o]));r[a].video&&"image"===r[a].media_info.type&&(!0===r[a].video?r[a].media_info={type:"video"}:"string"==typeof r[a].video?r[a].media_info={type:"video",delivery:r[a].video}:(r[a].media_info=qi(r[a].video),r[a].media_info.delivery=r[a].media_info.type,r[a].media_info.type="video"))}return r},Jt=function(e,t,o){t=t||["jpg","jpeg","png","gif","webp","avif","JPG","JPEG","PNG","GIF"],mi(e)||(e=[e]);for(var r=[],i=0;i<e.length;i++){var a=e[i],n=a,s=/(.*)\.([^/.]*?)([?#].*)?$/;if((n="string"!=typeof a?a.url:n).match(s)){var l=n.replace(s,"$2"),u=n.replace(s,"$1"),c=n.replace(s,"$3");o||r.push(a);for(var d,p,i=0;i<t.length;i++)!o&&l===t[i]||(d=u+"."+t[i]+c,"string"==typeof a?r.push(d):((p=qi(a)).url=d,r.push(p)));o&&hi(r,a)<0&&r.push(a)}else r.push(a)}return r},Kt=function(e){return Jt(e,["jpg","png"])},Ma=function(e){return gi(e,"%")<0?encodeURI(e):e},Ha=function(e,t,o){return o=o||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(o)+e};function Qt(e){for(var t=e.toString(),o="",r=0;r<t.length;r+=2)o+=q(parseInt(t.substr(r,2),16));return o}function eo(e){for(var t=[],o=0;o<e.length;o+=2)t.push(parseInt(e.substr(o,2),16));return t}function to(e){for(var t="",o=0;o<e.length;o++)e[o]<16&&(t+="0"),t+=e[o].toString(16);return t}function oo(e){return Ni.run_arrayd_string(e,{cb:function(e){return e.reverse()}})}function ro(e){var t=e.match(/^\s*<!\[CDATA\[([\s\S]+)\]\]>\s*$/);return t?t[1]:e.replace(/&nbsp;/g," ").replace(/&#([0-9]+);/g,function(e,t){return q(t)}).replace(/&quot;/g,'"').replace(/&amp;/g,"&")}function io(e){return e.replace(/&/g,"&amp;")}function ao(e){return e.replace(/([\^$])/g,"\\$1")}function no(e,t){var o=e.replace(/#.*/,"").replace(/^.*?\?/,"");if(!o||o===e)return{};t=t||{};for(var r={},i=o.split("&"),a=0;a<i.length;a++){var n=i[a],s=!0,l=i[a].match(/^(.*?)=(.*)/);l&&(n=l[1],s=l[2]),0!==n.length&&(t.decode&&"string"==typeof s&&(s=decodeURIComponent(s)),r[n]=s)}return r}function $a(e,t){var o,r,i,a=[];for(o in e)0!==o.length&&(i=e[r=o],t&&(i=encodeURIComponent(i)),!0!==e[o]&&(r+="="+i),a.push(r));return a.join("&")}function so(e,t){mi(t)||(t=[t]);var o=e.replace(/^([^#]*?)\?(.*)$/,"$1"),r=e.replace(/^([^#]*?)\?(.*)$/,"$2");if(o===e)return e;for(var i=r.split("&"),a=[],n=0;n<i.length;n++){var s=i[n].replace(/^(.*?)=.*/,"$1");hi(t,s)<0&&a.push(i[n])}return o+(r=0===a.length?"":"?"+a.join("&"))}function lo(e,t,o){mi(t)||(t=[t]),o=o||{};var r=no(e),i=[],a=Ba();if(zi(t,function(e){var t;e in r&&(t=e+"=",o.overwrite&&e in o.overwrite?t+=o.overwrite[e]:t+=r[e],i.push(t),Ta(a,e))}),o.required){!0===o.required&&(o.required=t);var n=0;if(zi(o.required,function(e){if(!Aa(a,e))return!1;n++}),n<o.required.length)return e}if(o.overwrite)for(var s in o.overwrite)Aa(a,s)||i.push(s+"="+o.overwrite[s]);return t=0===i.length?"":"?"+i.join("&"),e.replace(/\?.*/,"")+t}function uo(e,t){var o,r=no(e);for(o in t)r[o]=t[o];var i=$a(r);return i?e.replace(/^([^#]*?)(?:\?.*)?$/,"$1?"+i):e}var co=null,po=(_e?"undefined"!=typeof GM_notification?co=GM_notification:"undefined"!=typeof GM&&GM.notification&&(co=GM.notification):li&&(co=function(t,o){var e=qi(t,{json:!0});t.onclick&&(e.onclick=!0),ui({type:"notification",data:e},function(e){e&&e.data&&("clicked"===e.data.action?t.onclick&&t.onclick():"closed"===e.data.action&&(o=t.ondone||o)&&o())})}),function(e){co&&(e.title||(e.title=Bi("Image Max URL")),e.image||(e.image=d),co(e,e.ondone||null))});function mo(e){return e.replace(/(?:[-=_!?$#"'’‘”“]|\[|])/g," ").replace(/\s+/g," ").replace(/^\s+|\s+$/g,"")}var ho=function(i){Si({url:"https://api.github.com/repos/qsniyg/maxurl/tags",method:"GET",headers:{Referer:""},onload:function(e){if(!(e.readyState<4)){if(200===e.status)try{for(var t=K(e.responseText),o=0;o<t.length;o++){var r=t[o].name;if(r.match(/^v[0-9.]+$/))return i({version:r.replace(/^v([0-9])/,"$1")})}}catch(e){bi("Unable to parse github info",e)}return i(null)}}})},go=function(e){ho(e)},fo=function(){var e=Ti.last_update_url;return e=e||(r?u:_e?c:null)},_o=function(){Ti.imu_enabled&&Ti.check_updates&&H&&Ti.last_update_check&&Date.now()-Ti.last_update_check>60*Ti.check_update_interval*60*1e3&&go(function(e){var t;ve("last_update_check",Date.now()),e&&e.version&&(e.downloadurl?ve("last_update_url",e.downloadurl):ve("last_update_url",null),ve("last_update_version",e.version),Ti.check_update_notify)&&!di&&1===we(H,e.version)&&(e={text:Bi("Update available (%%1)",e.version)},(t=fo())&&(e.onclick=function(){ga({url:t})}),po(e))})};function vo(e,t,o){if(e===t)return 1;if(e-1===t||e+1===t)return 1;for(var r=0;r<o.length;r++)if(e===o[r]){if(1===t)return 1}else if(t===o[r]&&1===e)return 1}function bo(e,t,o){return 1===e&&0<=hi(o,t)||1===t&&0<=hi(o,e)}function yo(e,t){if(e!==t){if(8!==e.length||8!==t.length)return!1;var o=ki(e.substr(6,2)),r=ki(t.substr(6,2));if(!vo(o,r,[28,29,30,31]))return!1;var i=ki(e.substr(4,2)),a=ki(t.substr(4,2)),o=bo(o,r,[28,29,30,31]);if(i!==a){if(!o)return!1;if(!vo(i,a,[12]))return!1}r=ki(e.substr(0,4)),e=ki(t.substr(0,4));if(r!==e){if(!o||!bo(i,a,[12]))return!1;if(!vo(r,e,[]))return!1}}return!0}function Fa(e){setTimeout(e,1)}var Zt=function(e,t){return Da(e,t,!0)},wo=[],ko=[],xo=[];function e(){Bt.clear()}var Co=function(e,t){for(var o=[],r=(e||"").split("\n"),i=0;i<r.length;i++){var a,n=r[i].replace(/^\s+|\s+$/,"");0!==n.length&&(a=n,"glob"===t&&(a=function(e){for(var t,o="",r=-1,i=-1,a=0;a<e.length;a++)if(0<=r)"]"===e[a]&&(o+=e.substr(r,a-r+1),r=-1);else if(0<=i){if("}"===e[a]){for(var n=e.substr(i+1,a-i-1).split(","),s=[],l=0;l<n.length;l++)s.push(n[l].replace(/(.)/g,"[$1]"));0<s.length&&(1<s.length||0<s[0].length)&&(o+="(?:"+s.join("|")+")"),i=-1}}else"*"!==e[a]?"{"===e[a]?i=a:"["===e[a]?r=a:"?"===e[a]?o+="[^/]":"."===e[a]?o+="\\.":o+=e[a]:(t=!1,a+1<e.length&&"*"===e[a+1]&&(t=!0,a++),o+=t?".+":"[^/]+");return e="^"+(e="*"!==(e=o)[0]?(o=e.replace(/^[a-z]*:\/\//,"[a-z]+://"))!==e?o:"[a-z]+://[^/]*"+e:e)}(n)),o.push(new RegExp(a)))}return o};function zo(){wo=[];try{wo=Co(Ti.bigimage_blacklist,Ti.bigimage_blacklist_engine)}catch(e){return[e]}}function Ro(){ko=[];try{ko=Co(Ti.host_blacklist,Ti.bigimage_blacklist_engine)}catch(e){return[e]}}function No(){xo=[];try{xo=Co(Ti.host_html_blacklist,Ti.bigimage_blacklist_engine)}catch(e){return[e]}}function So(e){var t=Oa(e.responseHeaders);return(t=t&&Ga(t))&&t.location?t.location:e.finalUrl}function qo(e){for(var t=Fo=Fo||$o(),o=-1,r=0;r<e.length;r++)o=o>>>8^t[255&(o^e.charCodeAt(r))];return(-1^o)>>>0}function Bo(e,t,o){try{Yo(e,t,o)}catch(e){return bi(e)}}function To(e){return e.replace(/[\u200B-\u200D\uFEFF]/g,"").replace(/[\u2800]/g," ")}function Ao(e,o,r,i){return i=i||{},e.sort(function(e,t){e=e[o],t=t[o],t=r?(e=r(e),r(t)):(e=parseFloat(e)||0,parseFloat(t)||0);return i.reverse?t-e:e-t})}function Io(e,i,a){return e.sort(function(e,t){a&&(e=a(e),t=a(t));var o=hi(i,e),r=hi(i,t);return o<0?0<=r?1:"string"==typeof e&&"string"==typeof t?e.localeCompare(t):0:r<0?-1:o-r}),e}function Eo(e){var t=e.match(/^<([-a-zA-Z0-9]+)((?:\s+[-a-z0-9A-Z]+(?:=(?:"[^"]*"|'[^']*'|[-_a-zA-Z0-9]+))?)*)\s*(\/?)>/);if(!t)return null;var o={tagname:t[1],selfclosing:!!t[3],args:{},args_array:[]},r=/\s+([-a-z0-9A-Z]+)(?:=("[^"]+"|'[^']+'|[-_a-zA-Z0-9]+))?/;if(t=t[2].match(new RegExp(r,"g")))for(var i=0;i<t.length;i++){var a=t[i].match(r),n=a[1].toLowerCase(),s=(s=a[2])?ro(s.replace(/^["'](.*)["']$/,"$1")):"";o.args[n]=s,o.args_array.push({name:a[1],value:s})}return o}function Uo(e,t){return t=new RegExp("<meta\\s+(?:(?:property|name|itemprop)=[\"']?"+t+"[\"']?\\s+(?:content|value|href)=[\"']([^'\"]+)[\"']|(?:content|value|href)=[\"']([^'\"]+)[\"']\\s+(?:property|name|itemprop)=[\"']?"+t+"[\"']?)\\s*/?>"),(e=e.match(t))?ro(e[1]||e[2]):null}function Do(e){return e.replace(/([{,])\s*([^[{,"'\s:]+)\s*:/g,'$1 "$2":').replace(/(\"[^\s:"]+?\":)\s*'([^']*)'(\s*[,}])/g,'$1 "$2"$3').replace(/,\s*}$/,"}")}function Lo(e){var t=er(e,Qo);if(!t)throw"unable to parse";for(var o={whitespace:" ",jvarname:function(e){return'"'+e+'"'},jpropname:function(e){return'"'+e+'"'},squote:'"',sliteral:function(e){return e.replace(/"/g,'\\"')},dliteral:function(e){return e.replace(/"/g,'\\"')},comma:function(e,t){return t&&"objend"!==t.name&&"arrend"!==t.name?e:""}},r="",i=0;i<t.length;i++){var a=t[i];if(a.name in o){var n=o[a.name];if("function"==typeof n){for(var s=1,l=t[i+s++];l&&"whitespace"===l.name;)l=t[i+s++];r+=n(a.value,l)}else r+=n}else r+=a.value}return r}function Po(e){return e.video.length||e.image.length?e:(yi("Unable to find video sources"),null)}var jo,Oa=function(e){for(var t=[],o="\r\n",r=(gi(e,"\r")<0&&(o="\n"),e.split(o)),i=0;i<r.length;i++){var a=r[i].replace(/^\s*([^:]*?)\s*:[\s\S]*/,"$1").toLowerCase(),n=r[i].replace(/^[^:]*?:\s*([\s\S]*?)\s*$/,"$1");if(a!==r[i]&&n!==r[i])for(var s=n.split("\n"),l=0;l<s.length;l++)t.push({name:a,value:s[l]})}return si&&vi("parse_headers",e,qi(t)),t},Ga=function(e){for(var t={},o=0;o<e.length;o++)t[e[o].name.toLowerCase()]=e[o].value;return t},Ye=function(e){var t,o=[];for(t in e)o.push({name:t,value:e[t]});return o},Wa=function(e,t){for(var o in e)if(o.toLowerCase()===t.toLowerCase())return e[o]},Mo=function(e,t,o){for(var r in e)if(r.toLowerCase()===t.toLowerCase())return e[r]=o;return e[t]=o},Ho={"image/jpeg":"jpg","application/dash+xml":"mpd"},Va=function(e){return(e=e.replace(/^\s*\[?([^/]+)\/([^/]+?)\]?\s*$/,"$1/$2"))in Ho?Ho[e]:!(e=e.match(/^([^/]+)\/([^/]+)$/))||"image"!==e[1]&&"video"!==e[1]?null:e[2]},$o=function(){for(var e=[],t=0;t<256;t++){for(var o=t,r=0;r<8;r++)o=1&o?3988292384^o>>>1:o>>>1;e[t]=o}return e},Fo=null,Oo=function(s){this._headers={},this._response_headers={},this._reqobj=null,this._last_readyState=null,this._realxhr=null,this.open=function(e,t,o){this._method=e,this._url=t},this.setRequestHeader=function(e,t){Mo(this._headers,e,t)},this.getResponseHeader=function(e){return this._realxhr?this._realxhr.getResponseHeader(e):Wa(this._response_headers,e)},this.getAllResponseHeaders=function(){return this._realxhr?this._realxhr.getAllResponseHeaders():this._response_headers_raw};this.send=function(r,e,t){if(this._url&&s&&/^blob:/.test(this._url))return function(a,e){var t,n=new s;for(t in(this._realxhr=n).open(this._method,this._url,!0),n.responseType=a.responseType,n.withCredentials=a.withCredentials,n.timeout=a.timeout,this._headers)n.setRequestHeader(t,this._headers[t]);for(var o=["load","loadend","error","abort","progress","timeout","readystatechange"],r=0;r<o.length;r++)!function(i){i in a&&(n[i]=function(e){for(var t=["status","statusText","response","readyState","responseText","responseType","responseURL"],o=0;o<t.length;o++){var r=t[o];try{a[r]=n[r]}catch(e){}}a[i].bind(a)(e)})}("on"+o[r]);n.send(e)}.bind(this)(r,e);for(var i={method:this._method,url:this._url,data:e,timeout:r.timeout||0,withCredentials:r.withCredentials||!0,responseType:r.responseType},o=(0<Object.keys(this._headers).length&&(i.headers=this._headers),function(t,o){i["on"+o]=function(e){!function(e,t,o){o&&(e.status=o.status||0,e.statusText=o.statusText,e.response=o.response,e.readyState=o.readyState,e.responseText=o.responseText,e.responseType=o.responseType,e.responseURL=o.finalUrl,this._response_headers_raw=o.responseHeaders);var r={currentTarget:e,target:e,loaded:e.loaded,lengthComputable:e.lengthComputable,total:e.total};o&&o.responseHeaders?this._response_headers=Ga(Oa(o.responseHeaders)):o&&(this._response_headers=null),e.readyState!==this._last_readyState&&(e.onreadystatechange&&e.onreadystatechange.bind(e)(r),this._last_readyState=e.readyState),"load"===t&&(e.onload&&e.onload.bind(e)(r),e.onloadend)&&e.onloadend.bind(e)(r),"error"===t&&(e.onerror&&e.onerror.bind(e)(r),e.onloadend)&&e.onloadend.bind(e)(r),"abort"===t&&(e.onabort&&e.onabort.bind(e)(r),e.onloadend)&&e.onloadend.bind(e)(r),"progress"===t&&e.onprogress&&e.onprogress.bind(e)(r),"timeout"===t&&e.ontimeout&&e.ontimeout.bind(e)(r)}.bind(t)(r,o,e)}}),a=["load","error","abort","progress","timeout"],n=0;n<a.length;n++)o(this,a[n]);this._reqobj=t(i)},this.abort=function(){this._reqobj&&this._reqobj.abort()}},Go=(Oo.do_request=Si,function(){for(var o=new imu_xhr.custom_xhr(jo),e=["open","setRequestHeader","getResponseHeader","getAllResponseHeaders","abort"],t=0;t<e.length;t++){var r=e[t];!function(e){var t=o[e];this[e]=function(){return t.apply(o,arguments)}}.bind(this)(r)}this.send=function(e){return o.send(this,e,XMLHttpRequest.do_request)}}),Wo=function(e){var t=document.createElement("script");Wi([e],function(e){e=Rn(e);t.src=e,document.documentElement.appendChild(t),Nn(e),t.src=null,document.documentElement.removeChild(t)},{type:"text/javascript"})},Vo=function(e,t,o){var r,i,a,n,s=$i(),l=Ni.gen_jquery_callback(),u="(function(){window['"+l+"']=(function(){",c=Ni.gen_jquery_callback(),d="})();"+c+"();})();",p=(s[c]=function(){delete s[c];var e=s[l];delete s[l],t&&delete s[p],o(e)},null);t&&(p=Ni.gen_jquery_callback(),r=ta(50),i=r,a=t.data,n=!1,s[p]=function(e){if(e===i&&!n)return n=!0,a},u+="var "+t.varname+"="+p+"('"+r+"');"),Wo(u+e+d)},Xo=function(t,o,r){try{r(o?new Function(o.varname,t)(o.data):new Function(t)())}catch(e){return _e&&Ti.bypass_csp_for_lib?(yi(e),Vo(t,o,r)):(bi(e),r(null))}},Yo=function(e,t,o){var r;return t?(t=!0,r=";return {lib: lib_export, xhr: XMLHttpRequest, overridden_xhr: "+(t=Ti.custom_xhr_for_lib?t:!1)+"};",t?(t="var orig_XMLHttpRequest=null;try{orig_XMLHttpRequest=window.XMLHttpRequest}catch (e){console.error(e);};var XMLHttpRequest=null;(function(imu_xhr){XMLHttpRequest="+Go.toString()+";XMLHttpRequest.do_request = imu_xhr.do_request;})(imu_xhr);imu_xhr = undefined;",Xo(t+e+r,{varname:"imu_xhr",data:{custom_xhr:Oo,do_request:Si}},o)):Xo(e+r,null,o)):Xo(e+";return lib_export;",null,o)},Zo={testcookie_slowaes:{name:"testcookie_slowaes",url:"https://raw.githubusercontent.com/qsniyg/maxurl/e90366f4b6c998614509472717fd18ca8050c1fa/lib/testcookie_slowaes.js",archive_time:"20210403210438",size:30462,crc32:1012990654,crc32_size:2369381957},shaka:{name:"shaka.debug",url:"https://raw.githubusercontent.com/qsniyg/maxurl/a4ca480a6cc503792762b4343f2f855cdf9cf48a/lib/shaka.debug.js",archive_time:"20210215220612",size:1270454,crc32:2187951259,crc32_size:3680154806,xhr:!0},cryptojs_aes:{name:"cryptojs_aes",url:"https://raw.githubusercontent.com/qsniyg/maxurl/22df70495741c2f90092f4cc0c504a1a2f6e6259/lib/cryptojs_aes.js",archive_time:"20210215220612",size:13453,crc32:4282597182,crc32_size:3521118067},stream_parser:{name:"stream_parser",url:"https://raw.githubusercontent.com/qsniyg/maxurl/0655c317844fb7a652c6ee9f88ab65514c53b482/lib/stream_parser.js",archive_time:"20210403204309",size:115544,crc32:270289712,crc32_size:2967398805},ffmpeg:{name:"ffmpeg",url:"https://raw.githubusercontent.com/qsniyg/maxurl/2178819a193656245ce1a2bd885ff12aaaa04ea9/lib/ffmpeg.js",archive_time:"20210403204304",size:285642,crc32:2587771391,crc32_size:2632494853,xhr:!0},jszip:{name:"jszip",url:"https://raw.githubusercontent.com/qsniyg/maxurl/3d8d6b4415b8dd58cb405910647c940ea122b3a0/lib/jszip.js",archive_time:"20231116183309",size:99559,crc32:2407465226,crc32_size:689840937},BigInteger:{name:"BigInteger",url:"https://raw.githubusercontent.com/qsniyg/maxurl/b0a4ba6c28f0c0b7c665e76e3767bde59e900ab6/lib/BigInteger.js",archive_time:"20231116183440",size:21482,crc32:337445473,crc32_size:2641711624},JSInterpreter:{name:"acorn_interpreter",url:"https://raw.githubusercontent.com/qsniyg/maxurl/b4d3d715e391e2e3f50a699acc5711bc7bdb6f52/lib/acorn_interpreter.js",archive_time:"20240311233145",size:79532,crc32:270556316,crc32_size:2713590225}},Xa=function(a,n,r,t){if(!n.allow_thirdparty_libs)return yi("Refusing to request library "+a+" due to 3rd-party library support being disabled"),t(null);if(!(a in Zo))return bi("Invalid library",a),t(null);var s=Zo[a];if(b)return t(null);if(h)try{var e="./lib/"+s.name+".js";return t(require(e))}catch(e){return console.error(e),t(null)}if(!li&&!_e)return t(null);At.fetch(a,t,function(i){if(li)ui({type:"get_lib",data:{name:s.name}},function(e){if(!e||!e.data||!e.data.text)return i(null,0);Yo(e.data.text,s.xhr,function(e){i(e,0)})});else{var e,t,o=s.url;if(!o)return bi("No URL for library",s),i(null,0);n.use_webarchive_for_lib&&(o=s.archive_url||((t=s.archive_time)||(t=""+(e=new Date).getFullYear(),t=(t=(t=(t+=Ha(e.getMonth()+1,2))+Ha(e.getDate(),2))+Ha(e.getHours(),2))+Ha(e.getMinutes(),2)+"00"),"https://web.archive.org/web/"+t+"js_/"+s.url)),r({method:"GET",url:o,headers:{Referer:""},onload:function(e){if(4===e.readyState){if(200!==e.status)return bi(e),i(null,!1);e=e.responseText;if(n.use_webarchive_for_lib&&(e=e.replace(/^\s*var _____WB\$wombat\$assign\$function_____[\s\S]*_____WB\$wombat\$assign\$function_____[(].*[)];\n\n/,"").replace(/\n\n}\n\/\*\s*FILE ARCHIVED ON[\s\S]*/,"").replace(/(["'])https:\/\/web.archive.org\/web\/[0-9]+(?:[a-z]+_)?\/+(https?:\/\/)/g,"$1$2").replace(/(["'])\/\/web.archive.org\/web\/[0-9]+(?:[a-z]+_)?\/+https?:(\/\/)/g,"$1$2")),Ti.lib_integrity_check){var t,o=!1;if(e.length!==s.size)return bi("Wrong response length for "+a+": "+e.length+" (expected "+s.size+")"),i(null,!1);var r=qo(e);if(r!==s.crc32)return bi("Wrong crc32 for "+a+": "+r+" (expected "+s.crc32+")"),i(null,!1);if((r=qo(e+(s.size+"")))!==s.crc32_size)return bi("Wrong crc32 #2 for "+a+": "+r+" (expected "+s.crc32_size+")"),i(null,!1);o&&vi("Check time:",Date.now()-t)}Bo(e,s.xhr,function(e){i(e,0)})}}})}})},Jo=function(e){return e&&"string"==typeof e?e.replace(/^\s+/,"").replace(/\s+$/,""):e},Ii=function(e){return e&&"string"==typeof e?Jo(To(e)):e},Ko=function(e,r){function t(e){var t,o;i.onload=null,i.onerror=null,clearTimeout(a),i.naturalHeight&&i.naturalWidth||(o=t=null),t=ki(i.naturalWidth),o=ki(i.naturalHeight),i.src="",r(t,o)}var i=new Image,a=null;i.onload=i.onerror=t,a=setInterval(function(){i.naturalHeight&&i.naturalWidth&&t()},10),i.src=e},Qo=(h&&(Ko=null),{whitespace:/\s+/,jvarname:/[$_a-zA-Z][$_a-zA-Z0-9]*/,jpropname:/[$_a-zA-Z0-9]+/,number:/-?(?:[0-9]*\.[0-9]+|[0-9]+|[0-9]+\.)(?:e[0-9]+)?/,objstart:/{/,objend:/}/,object:["objstart","whitespace?","kvcw*","objend"],arrstart:/\[/,arrend:/]/,array:["arrstart","whitespace?","valuecw*","arrend"],true:/true/,false:/false/,null:/null/,value:[["array"],["object"],["sstring"],["dstring"],["number"],["true"],["false"],["null"]],valuew:["value","whitespace?"],valuec:["valuew","comma?"],valuecw:["valuec","whitespace?"],comma:/,/,colon:/:/,squote:/'/,dquote:/"/,sstring:["squote","sliteral","squote"],dstring:["dquote","dliteral","dquote"],propname:[["jpropname"],["sstring"],["dstring"]],kv:["propname","whitespace?","colon","whitespace?","value"],kvw:["kv","whitespace?"],kvc:["kvw","comma?"],kvcw:["kvc","whitespace?"],doc:[["object"],["array"]]}),er=function(s,i){for(var e in i=qi(i)){var t=i[e];t instanceof RegExp?i[e]={type:"regex",value:new RegExp("^"+t.source)}:mi(t)&&(mi(t[0])?i[e]={type:"or",value:t}:i[e]={type:"and",value:t})}function a(e,t,o){return(t=s.substring(o).match(t))&&0===t.index?[{name:e,i:o,ni:o+t[0].length,value:t[0],length:t[0].length}]:null}function n(e,t){for(var o="dliteral"===e?'"':"'",r="",i=!1,a=t;a<s.length;a++){var n=s[a];if(i)i=!1,"x"===n?(r+="\\u00"+s.substr(a+1,2),a+=2):r+='"'!==n&&"'"!==n?"\\"+n:n;else{if(n===o)break;"\\"===n?i=!0:r+=n}}return[{name:e,i:t,ni:a,value:r,length:a-t}]}function l(e,t,o){return m(e.value,t,o)}function u(e,t,o){for(var r=0;r<e.value.length;r++){var i=m(e.value[r],t,o);if(i&&i.length)return i}return null}var c={},d={},p=function(e,t,o){var r;return e in c||(c[e]=0),c[e]++,o in d||(d[o]=0),d[o]++,"sliteral"===e||"dliteral"===e?n(e,t):"and"===(r=i[e]).type?l(r,t,o):"or"===r.type?u(r,t,o):a(e,r.value,t)},m=function(e,t,o){for(var r=[],i=0;i<e.length;i++){var a,n=e[i],s=n[n.length-1],l=n.substring(0,n.length-1);if("?"===s)(a=p(l,t,o+1))&&0!==a.length&&(Ji(r,a),t=a[a.length-1].ni);else if("*"===s)for(;;){if(!(a=p(l,t,o+1))||0===a.length)break;Ji(r,a),t=a[a.length-1].ni}else{if(!(a=p(n,t,o+1))||0===a.length)return null;Ji(r,a),t=a[a.length-1].ni}}return r};return p("doc",0,0)},tr=(Ni.get_bigint=function(e,o){"undefined"!=typeof BigInt?o({create:function(e){return BigInt(e)},add:function(e,t){return e+t},sub:function(e,t){return e-t},mul:function(e,t){return e*t},div:function(e,t){return e/t},mod:function(e,t){return e%t},stringify:function(e){return e.toString()}}):Xa("BigInteger",Ti,e,function(t){if(!t)return o(null);o({create:function(e){return t(e)},add:function(e,t){return e.add(t)},sub:function(e,t){return e.subtract(t)},mul:function(e,t){return e.multiply(t)},div:function(e,t){return e.divide(t)},mod:function(e,t){return e.mod(t)},stringify:function(e){return e.toString()}})})},Ni.fetch_imgur_webpage=function(o,a,n,r,e){function s(i){var e,t=r.replace(/^http:/,"https:");o({url:t,method:"GET",headers:e=l?n:e,onload:function(e){if(4===e.readyState){if(200!==e.status)return bi("Bad status for Imgur: "+e.status),404===e.status?i({bad:!0},!1):i(null,!1);var t,o=e.responseText.match(/<meta\s+property=["']og:video["']\s+content=["'](.*?)["']/),r={ogvideo:r=o?ro(o[1]).replace(/\?.*/,""):r,ogimage:t=(o=e.responseText.match(/<meta\s+property=["']og:image["']\s+content=["'](.*?)["']/))?ro(o[1]).replace(/\?.*/,""):t},o=e.responseText.match(/\.\s*mergeConfig\s*\(\s*["']gallery["']\s*,\s*{[\s\S]+?image\s*:\s*({.*?})\s*,\s*\n/);if(o){r.found_match=!0,t=o[1];try{t=K(t),(r.imageinfo=t).source&&t.hash&&!t.is_album&&a.set("imgur_imageinfo:"+t.hash,t,21600)}catch(e){bi(e),vi(o),t=void 0}i(r,21600)}else{r.found_match=!1;o="Unable to find match for Imgur page";if(e.responseText.match(/<a.*?btn-wall--yes.*?\.(?:signin|cookie)\(/)&&(o+=" (it's probably NSFW and you aren't logged in)",r.nsfw=!0),yi(o),n&&!l)return vi("Retrying with custom headers"),l=!0,s(i);i(r,15)}}}})}var t="imgur_webpage:"+r.replace(/^https?:\/\/(?:www\.)?imgur/,"imgur").replace(/[?#].*/,""),l=!1;a.fetch(t,e,s)},Ni.imgur_run_api=function(e,t,o,r,i){(r=r||{}).client_id=z("IDU0NmMyNWE1OWM1OGFkNw==").slice(1);o=o+"?"+$a(r);g(t,e,"imgur_api:"+o,{url:o,imu_mode:"xhr",headers:{Referer:"https://imgur.com/"},json:!0},i,function(e,t){return e(t,3600)})},Ni.imgur_api_fetch_album_media=function(e,t,o,r,i){"album"===o?o="albums":"image"===o&&(o="media");return Ni.imgur_run_api(e,t,"https://api.imgur.com/post/v1/"+o+"/"+r,{include:"media,adconfig,account"},i)},Ni.imgur_fetch_album_media=function(t,o,r,i,a){var n,e;return"album"!==r&&"image"!==r?(bi("Bug! Invalid type:",r),a(null)):(n=function(e){var t;return e?(t=Ni.imgur_normalize(e),a(t)):a(e)},"rule_specific"in t&&"imgur_source"in t.rule_specific&&t.rule_specific.imgur_source?(e="https://imgur.com/","album"===r&&(e+="a/"),void Ni.fetch_imgur_webpage(t.do_request,o,null,e+=i,function(e){return e&&e.found_match&&e.imageinfo?n(e.imageinfo):Ni.imgur_api_fetch_album_media(t.do_request,o,r,i,n)})):Ni.imgur_api_fetch_album_media(t.do_request,o,r,i,n))},Ni.imgur_normalize=function(e){var t;return"media"in e||(e.album_images?e.media=e.album_images.images:e.images&&(e.media=e.images)),"is_album"in e||"album_images"in e&&(e.is_album=!0),"url"in e||(e.link?e.url=e.link:e.hash&&(t="https://imgur.com/",e.is_album&&(t+="a/"),e.url=t+e.hash)),e},Ni.imgur_image_to_obj=function(e,t,o){var r=[];try{var i,a,n,s,l,u=o,c=(((u=o.metadata?o.metadata:u).description||u.title)&&(t.extra.caption=u.description||u.title),o.hash||o.id&&(o.hash=o.id),t.headers||(t.headers={Referer:null}),t.referer_ok||(t.referer_ok={same_domain_nosub:!0}),t.extra.page="https://imgur.com/"+o.hash,o.ext&&("."!==o.ext[0]&&(o.ext="."+o.ext),".jpeg"===o.ext.toLowerCase())&&(o.ext=".jpg"),null);o.hash&&o.ext&&(c=o.hash+o.ext,i=qi(t),"rule_specific"in e&&"imgur_filename"in e.rule_specific&&e.rule_specific.imgur_filename&&o.name&&(i.filename=o.name),(a=qi(i)).url="https://i.imgur.com/"+c,n=o.mimetype||o.mime_type,/^video\//.test(n)?(a.video=!0,r.push(a),(s=qi(i)).url="https://i.imgur.com/"+o.hash+".jpg",r.push(s)):((u.is_animated||o.animated)&&(o.prefer_video,1)&&((l=qi(i)).url="https://i.imgur.com/"+o.hash+".mp4",l.video=!0,r.push(l)),r.push(a)))}catch(e){bi(e),r=[]}return r},Ni.deviantart_url_from_id=function(e,t,o,r){var i;if("string"==typeof o&&/^[a-z0-9]+$/.test(o)&&7===o.length&&"d"===o[0])return i=parseInt(o,36)-28298170368,Ni.deviantart_url_from_id(e,t,i,r);g(t,e,"deviantart_url_from_id:"+o,{method:"HEAD",url:"http://fav.me/"+o,cookie_url:"https://www.deviantart.com/"},r,function(e,t,o){e(t.finalUrl,21600)})},Ni.deviantart_page_from_id=function(t,o,r,i){Ni.deviantart_url_from_id(t,o,r,function(e){if(!e)return i(null);g(o,t,"deviantart_page_from_id:"+r,{url:e},i,function(e,t,o){e(t,3600)})})},Ni.wix_image_info=function(e){var t={},o=e.match(/^[a-z]+:\/\/[^/]+\/+(?:intermediary\/+)?([if])\/+[-0-9a-f]{20,}\/+[^/?]+([?#].*)?$/);if(o)o[3]&&"?"===o[3][0]&&(t.has_token=!0),"i"===o[1]?t.preview=!0:t.original=!0;else{if(!(o=e.match(/^[a-z]+:\/\/[^/]+\/+(?:intermediary\/+)?[if]\/+[-0-9a-f]{20,}\/+[^/]+\/+v1\/+(?:fit|fill|crop)\/+([^/]+)\/+[^/]+(?:[?#].*)?$/)))return null;for(var r,i,a=o[1].split(","),n=0;n<a.length;n++)a[n].match(/^[a-z]+$/)?t[a[n]]=!0:(r=a[n].replace(/_.*$/,""),(i=a[n].replace(/^.*?_/,"")).match(/^[-0-9.]+$/)&&(i=parseFloat(i)),t[r]=i);t.w&&t.h&&(t.pixels=t.w*t.h)}return t},Ni.wix_compare=function(e,t,o){if(si&&vi("wix_compare",e,t,o),!t)return e;var r=Ni.wix_image_info(e),i=Ni.wix_image_info(t);if(si&&vi("wix_compare (info1:",r,"info2:",i,")"),r&&i){if(r.original&&i.original)return i.has_token?e:t;if(r.original&&(!o||!i.preview))return e;if(i.original&&(!o||!r.preview))return t;if(r.pixels&&i.pixels){if(r.pixels>i.pixels)return e;if(i.pixels>r.pixels)return t;if(r.q&&i.q){if(r.q>i.q)return e;if(i.q>r.q)return t}}}return null},Ni._wix_bigimage_inner=function(e){var t=e.replace(/(:\/\/[^/]*\/)(f\/+[-0-9a-f]{36}\/+[0-9a-z]+-[-0-9a-f]{20,}(?:\.[^/.]*)?\/+v1\/+(?:fill|fit)\/+w_[0-9]+,h_[0-9]+)(?:,[^/]+)?(\/+.*[?&]token=.*)$/,"$1$2,q_100$3");return t===e&&(t=e.replace(/(:\/\/[^/]*\/f\/+[-0-9a-f]{36}\/+[0-9a-z]+-[-0-9a-f]{20,}\.(?:png|PNG)\/+v1\/+(?:fill|fit)\/+[^/]+\/+[^/?#]+)\.[^/.?#]+(\?.*)?$/,"$1.png$2"))===e&&(/^[a-z]+:\/\/[^/]+\/+f\/+[-0-9a-f]{36}\/+[a-z0-9]{5,}-[-0-9a-f]{36}\.[^/.?#]+\?token=[^&]+(?:#.*)?$/.test(e)||(t=e.replace(/(:\/\/[^/]*\/)(f\/+[-0-9a-f]{36}\/+.*?)[?&]token=.*$/,"$1intermediary/$2"))===e)&&(e.match(/[?&]token=.{30,}/)||(t=e.replace(/(\.[^/.]*)\/v1\/.*/,"$1").replace(/(\/[^/.]*\.[^/.]*?)_[_0-9.a-z]*$/,"$1"))===e)?null:t},Ni.wix_bigimage=function(e){for(var t=[];e;)t.unshift(e),e=Ni._wix_bigimage_inner(e);return t},Ni.deviantart_fullimage=function(v,e,b,t,y){Ni.deviantart_page_from_id(v.do_request,e,t,function(t){if(!t)return y(null);var e={url:null,waiting:!1,extra:{page:t.finalUrl}},o=[],r=(b.match(/:\/\/[^/]*\/fake_image\//)||Ji(o,Ni.wix_bigimage(b)),t.finalUrl.replace(/.*-([0-9]+)(?:[?#].*)?$/,"$1")),i=(r===t.finalUrl&&(r=null),t.responseText.match(/window\.__INITIAL_STATE__\s*=\s*JSON\.parse\((".*")\);\s*(?:window\.|<\/script)/));if(i&&r){try{i=K(K(i[1].replace(/\\'/g,"'")))}catch(e){throw console.error(e,{initialstate:i,result:t}),e}vi(i);try{var a=i["@@entities"],n=a.deviation[r],s=null,l=(a.deviationExtended&&(s=a.deviationExtended[r]),si&&(vi("Deviation object",n),vi("Extended deviation object",s)),n.title&&(e.extra.caption=n.title),e.url),u=n.files;if(mi(u))for(var c=u.length-1;0<=c;c--){var d=u[c];(m=Ni.wix_compare(d.src,l,v.rule_specific.deviantart_prefer_size))===d.src&&(l=m)}else if("media"in n&&mi(n.media.types)){n.media.prettyName&&(e.filename=n.media.prettyName);for(var p=n.media.types,c=p.length-1;0<=c;c--){var m,h=null,g=0,f=("r"in p[c]&&p[c].r<n.media.token.length&&(g=p[c].r),"?token="+n.media.token[g]);p[c].c?h=n.media.baseUri+"/"+p[c].c.replace("<prettyName>",n.media.prettyName).replace(/^\/+/,"")+f:p[c].b?h=p[c].b+f:"fullview"===p[c].t&&"r"in p[c]&&(h=n.media.baseUri+f),h&&(m=Ni.wix_compare(h,l,v.rule_specific.deviantart_prefer_size))===h&&(l=m)}}var _=Ni.wix_bigimage(l);Ni.wix_image_info(l);Ji(_,o),o=_,s&&v.rule_specific.deviantart_support_download&&s.download&&s.download.url&&o.unshift({url:s.download.url,is_private:!0})}catch(e){bi(e)}}return y(Pt(o,e))})},Ni.getty_image_info=function(e){var t,o,r;return/^[a-z]+:\/\/media\.(?:gettyimages|istockphoto)\.com\//.test(e)&&(t={},(r=e.match(/:\/\/[^/]+\/+id\/+([0-9]+)\/(?:[a-z]{2}\/+)?([^/.]+)\/+([^/.]+)\.([a-z]+)/))?(t.id=r[1],t.category=r[2],t.filename=r[3],t.ext=r[4]):(r=e.match(/\/([a-z]+?)s?\/+([^/.]*?)-id([0-9]+)(?:[?#].*)?$/))&&(t.id=r[3],t.category=r[1],t.filename=r[2],t.ext="jpg"),t.id)?((r=(r=no(e))||{}).s?(e=(r.s+"").match(/^([0-9]+)x([0-9]+)$/))?(o=ki(e[1]),e=ki(e[2]),t.size=xi(o,e),t.size2=o*e):(t.size=0,t.size2=0):(t.size=1024,t.size2=1048576),r.w?"0"===r.w?t.watermark=!1:t.watermark=r.w:t.watermark=!(t.size<=170)&&"gi",t):null},Ni.getty_transform_url=function(e){return e.replace(/(\/id\/+[0-9]+\/+)(?:[a-z]{2}\/+)?foto\/+/,"$1photo/").replace(/(\/id\/+[0-9]+\/+)(?:[a-z]{2}\/+)?(?:向量|%E5%90%91%E9%87%8F)\/+/,"$1vector/").replace(/\/id\/+([0-9]+)\/+(?:[a-z]{2}\/+)?(photo|vector)\/+([^/.?#]+)(?:[?#.].*)?$/,"/$2s/$3-id$1")},Ni.get_testcookie_cookie=function(e,t,o,r){var c="testcookie_cookie:"+o,i=e.do_request;t.fetch(c,r,function(u){Xa("testcookie_slowaes",e,e.do_request,function(l){if(!l)return bi(c,"Unable to fetch patched slowAES library"),u(null,!1);i({method:"GET",url:o,headers:{Referer:"",Cookie:""},onload:function(e){if(4===e.readyState){if(200!==e.status)return vi(c,e),u(null,!1);var t=e.responseText.match(/[a-z]=\s*toNumbers\(["'][0-9a-f]+["']/g);if(!t)return vi(c,"Unable to find toNumbers match",e),u(null,!1);for(var o={},r=0;r<t.length;r++){var i=t[r].match(/([a-z])=toNumbers\(["']([0-9a-f]+)["']/);o[i[1]]=eo(i[2])}var a,n,s=e.responseText.match(/slowAES\.decrypt\s*\(\s*(.)\s*,\s*(.)\s*,\s*(.)\s*,\s*(.)\s*\)/);return s?(a=e.responseText.match(/document\.cookie\s*=\s*["']([^='"]*?)=/))?(a=a[1],n=to(l.decrypt((n=function(e){return/[a-z]/.test(e)?o[e]:ki(e)})(s[1]),n(s[2]),n(s[3]),n(s[4]))),void u(a+"="+n,21600)):(vi(c,"Unable to find cookie name match",e),u(null,!1)):(vi(c,"Unable to find slowAES match",e),u(null,!1))}}})})})},Ni.static_unpack_packer=function(e,o,t,r){for(var i=function(e){var t="";return o<=e&&(t=i(ki(e/o))),t+=35<(e%=o)?q(e+29):e.toString(36)},a=10===o?function(e){return e+""}:o<=36?function(e){return e.toString(o)}:i,n={},s=t;0<=s;s--){var l=a(s);n[l]=r[s]||l}return e.replace(/\b\w+\b/g,function(e){return n[e]})},Ni.unpack_packer=function(e){var t,o,r,e=e.match(/eval\(function\(p,a,c,k,e,[rd]\){.*?return p}\('(.*?)',([0-9]+),([0-9]+),'(.*?)'\.split\('[|]'\)(?:,0,{})?\)\)/);return e?(t=e[1].replace(/([^\\])\\'/g,"$1'"),o=parseInt(e[2]),r=parseInt(e[3]),e=e[4].split("|"),Ni.static_unpack_packer(t,o,r,e)):null},Ni.instagram_username_from_sharedData=function(e){return e.username||((e=e.entry_data).ProfilePage?e.ProfilePage[0].graphql:e.PostPage[0]).user.username},Ni.instagram_get_imageid=function(e){var t;return e&&("number"==typeof e?e:(t=e.replace(/.*\/stories\/+[^/]+\/+([0-9]+)\/*(?:[?#].*)?$/,"$1"))===e&&(t=e.replace(/.*\/([^/.?#]*)\.[^/]*(?:[?#].*)?$/,"$1"))===e?null:t)},Ni.instagram_norm_url=function(e){return so(e,["se","ig_cache_key"])},Ni.set_cdninstagram_obj=function(e){return(e="string"==typeof e?{url:e}:e).headers||(e.headers={}),Mo(e.headers,"Referer","https://www.instagram.com/"),e.video?Mo(e.headers,"Sec-Fetch-Dest","video"):Mo(e.headers,"Sec-Fetch-Dest","image"),Mo(e.headers,"Sec-Fetch-Mode","cors"),Mo(e.headers,"Sec-Fetch-Site","cross-site"),e.need_credentials=!1,e},Ni.instagram_shortcode_to_id=function(a,n){Ni.get_bigint(Si,function(e){if(!e)return n(null);a=a.substring(0,11);for(var t=e.create(0),o=e.create(64),r=0;r<a.length;r++){var i=e.create(gi("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",a[r])),t=e.mul(t,o);t=e.add(t,i)}return n(e.stringify(t))})},Ni.instagram_parse_el_info=function(d,p,m,D,h,e,t,o){/^[a-z]+:\/\/[^/]*\.instagram\.com\//.test(t);for(var r,i=function(e,t){return"https://www.instagram.com/"+e+"/"+t+"/"},a=function(e){e=e.match(/^[a-z]+:\/\/[^/]+\/+(?:[^/]+\/+)?(?:p|tv|reel)\/+([^/]+)/);return e?e[1]:null},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",n=function(a,n){Ni.get_bigint(p,function(e){if(!e)return n(null);a=a.substring(0,11);for(var t=e.create(0),o=e.create(64),r=0;r<a.length;r++){var i=e.create(gi(s,a[r])),t=e.mul(t,o);t=e.add(t,i)}return n(e.stringify(t))})},l=function(e){try{var t=(t=e.match(/window\._sharedData = *(.*?);?<\/script>/))||e.match(/window\._sharedData *= *(.*?}) *;[\s]*window\.__initialDataLoaded/),o=K(t[1]);if(t=e.match(/window\.__additionalDataLoaded\(["'].*?["']\s*,\s*({.*?})\);?\s*<\/script>/)){var r,i=K(t[1]);for(r in o.entry_data)mi(o.entry_data[r])&&(i.items&&mi(i.items)&&(i=i.items[0]),o.entry_data[r][0]=function e(t,o){if("function"==typeof t||mi(t))return o;if("object"!=typeof t)return o;if("object"!=typeof o)return o;for(var r in o)r in t?t[r]=e(t[r],o[r]):t[r]=o[r];return t}(o.entry_data[r][0],i))}return o}catch(e){bi(e)}return null},u=function(e,t){if(!p)return t(null);var o="instagram_page_query:"+(e=e.replace(/[?#].*/,"").replace(/([^/])$/,"$1/").replace(/^http:/,"https:").replace(/(:\/\/)(instagram\.com\/)/,"$1www.$2").replace(/(:\/\/.*?)\/\/+/g,"$1/"));d.fetch(o,t,function(t){p({method:"GET",url:e,onload:function(e){if(4===e.readyState)return t(e,3600)}})})},c=function(e,o){u(e,function(e){var t;return e?(t=l(e.responseText))?o(t):(vi("instagram_sharedData",e),o(null)):o(null)})},g=function(e,t){var s="instagram_username_uid:"+(e=e.match(/^http/)?e.replace(/^[a-z]+:\/\/[^/]*\/+(?:stories\/+)?([^/]*)(?:\/.*)?(?:[?#].*)?$/,"$1"):e);d.fetch(s,t,function(n){u("https://www.instagram.com/"+e+"/",function(e){if(!e||200!==e.status)return bi(s,"Unable to query",e),n(null,!1);var o={},t=se(e.responseText,/"props":{"id":"([0-9]+)",/);if(!t||!t.length)return bi(s,"Unable to find UID from user page",e),n(null,!1);for(var r=0,i=t;r<i.length;r++){var a=i[r][1];a in o||(o[a]=0),o[a]++}e=Object.keys(o);return e.sort(function(e,t){return o[t]-o[e]}),n(e[0],300)})})},f=function(e,t){d.fetch("instagram_uid_to_profile:"+e,t,function(o){_("https://i.instagram.com/api/v1/users/"+e+"/info/",function(t){if(!t)return o(null,!1);if(4===t.readyState)try{var e=K(t.responseText).user;o(e,300)}catch(e){vi("instagram_uid_to_profile",t),bi("instagram_uid_to_profile",e),o(null,!1)}})})},_=function(e,t){return v(e,t)},v=function(t,o){if(!p)return o(null);function r(){i||yi("Unable to find value for x-ig-www-claim header");var e={Accept:"*/*","X-ASBD-ID":"198387","X-IG-App-ID":"936619743392459",Origin:"https://www.instagram.com",Referer:"https://www.instagram.com/","Sec-Fetch-Site":"same-site","Sec-Fetch-Mode":"cors","Sec-Fetch-Dest":"empty"};i&&(e["X-IG-WWW-Claim"]=i),p({method:"GET",url:t,headers:e,onload:o})}var i=null;Pe?Pe("https://www.instagram.com/",["www-claim-v2"],function(e){e&&e["www-claim-v2"]&&(i=e["www-claim-v2"]),r()},{storage:"session"}):r()},b=function(e,t){if(!m)return t(null);var r="instagram_mediainfo:"+e;d.fetch(r,t,function(o){_("https://i.instagram.com/api/v1/media/"+e+"/info/",function(t){if(!t)return o(null,!1);if(4===t.readyState){if(200===t.status){var e=null;try{e=K(t.responseText)}catch(e){vi("instagram_mediainfo",t),bi("instagram_mediainfo",e)}if(si&&vi("instagram_mediainfo",e),e)return o(e,3600)}else bi(r,t);o(null,!1)}})})},y=function(r,e){if(!m)return e(null);var i="instagram_reels:"+r;d.fetch(i,e,function(o){var e="https://www.instagram.com/api/v1/feed/reels_media/?reel_ids="+encodeURIComponent(r);v(e,function(t){if(!t)return o(null,!1);if(4===t.readyState){if(200!==t.status)vi(i,t);else try{var e=K(t.responseText);return r in e.reels?o(e.reels[r],600):(bi(i,"Unable to find",r,"in",t),o(null,!1))}catch(e){vi(i,t),bi(i,e)}return o(null,!1)}})})},w=function(e,o,r){var i="instagram_reels:"+e;y(e,function(t){if(!t)return r(null);try{var e=x(t.items,o);return r(e)}catch(e){bi(i,t),bi(i,e)}})},k=function(e,t){if(!m)return t(null);var r="instagram_story_uid:"+e;d.fetch(r,t,function(o){v("https://i.instagram.com/api/v1/feed/user/"+e+"/story/",function(t){if(!t)return o(null,!1);if(4===t.readyState){if(200!==t.status)vi(r,t);else try{var e=K(t.responseText);return o(e.reel,600)}catch(e){vi(r,t),bi(r,e)}return o(null,!1)}})})},x=function(e,t){for(var o=[],r=null,i=0;i<e.length;i++){var a,n=e[i],s=q(n);s.length<1?yi("No images found for",n):(n=s[0],s=(o.push(n),n.username&&n.id&&(n.page="https://www.instagram.com/stories/"+n.username+"/"+n.id+"/"),Ni.instagram_get_imageid(n.src)),d.set("instagram_story_pic:"+s,n,21600),n.video&&(a=Ni.instagram_get_imageid(n.video),d.set("instagram_story_pic:"+a,n,21600)),n.id&&d.set("instagram_story_pic:"+n.id,n,21600),!t||s!==t&&a!==t&&n.id!==t.replace(/_[0-9]+$/,"")||(r=n))}var l=[];return zi(o,function(e){e.page&&l.push(e.page),e.album_link=e.page,e.album=l}),t?null!==r?r:null:o},C=function(r,e,t){function o(o){k(e,function(t){if(!t)return o(null);try{var e=x(t.items,r);return o(e)}catch(e){return vi(i,t),bi(i,e),o(null)}})}var i="instagram_story_api:"+e;r?(i="instagram_story_pic:"+r,d.fetch(i,t,function(t){o(function(e){return t(e,!!e&&21600)})})):o(t)},L=function(t){try{return t.hd_profile_pic_url_info.url}catch(e){try{return t.profile_pic_url}catch(e){return bi(e,t),null}}},P=function(e,o){return g(e,function(e){if(!e)return o(null);f(e,function(e){var t;return e?(t=L(e),t={url:Ni.instagram_norm_url(t),extra:{author_username:e.username,page:"https://www.instagram.com/"+e.username}},o(Ni.set_cdninstagram_obj(t))):o(null)})}),{waiting:!0}},z=function(e){return"string"==typeof e?e:e.text||(e.edges&&0<e.edges.length?e.edges[0].node.text:null)},j=function(e){return e.caption?z(e.caption):e.title?z(e.title):e.edge_media_to_caption?z(e.edge_media_to_caption):void 0},R=function(e){return e.shortcode||e.code||null},M=function(e){var t=R(e);return t?"igtv"===e.product_type?i("tv",t):"clips"===e.product_type?i("reel",t):i("p",t):null},H=function(e){e=e.user||e.owner;return e&&e.username?e.username:null},$=function(e){return e.date?1e3*e.date:e.taken_at_timestamp?1e3*e.taken_at_timestamp:e.created_time?1e3*e.created_time:e.taken_at?1e3*e.taken_at:null},F=function(e){return e.id&&"string"==typeof e.id?e.id.replace(/_[0-9]+$/,""):e.pk?e.pk.toString():null},N=function(e,t){for(var o=0;o<t.length;o++){if("first"===e)return t[o];if("number"==typeof e){if(e===t[o].i)return t[o]}else{if(0<gi(t[o].src,e))return t[o];if(t[o].id===e)return t[o]}}return null},S=function(e,t,o){var r,i=e,e=("string"==typeof i&&"first"!==i&&(i=Ni.instagram_get_imageid(e)),N(i,t));return e?(t=null,r={largest:e},(t=o?N(i,o):t)&&t!==e&&(r.smallest=t),r):null},O=function(e){var t=(t=e.replace(/^[a-z]+:\/\/[^/]+\/+/,"").replace(/\/[^/]+(?:[?#].*)?$/,"")).split(/\/+/g),o=[],t=(zi(t,function(e){"v"===e||/^e[0-9]+$/.test(e)||/^t[0-9]+\./.test(e)||o.push(e)}),no(e));return t&&t.stp&&(e=t.stp.split("_"),zi(e,function(e){/^e[0-9]+$/.test(e)||/^dst-/.test(e)||Ki(o,e)})),o},q=function(p){function m(e,t){return t.height||e.original_height/e.original_width*t.width}function h(e,t){if(!e.is_unprocessed||!t.is_unprocessed){if(e.is_unprocessed)return-1;if(t.is_unprocessed)return 1}return t.size-e.size}function e(e,t){for(var o=t.image_versions2.candidates,r=0,i=null,a={},n=0;n<o.length;n++)o[n].corrected_height=m(t,o[n]),o[n].is_unprocessed=0===O(o[n].url).length,o[n].image_id=Ni.instagram_get_imageid(o[n].url),o[n].size=o[n].width*o[n].corrected_height,o[n].image_id in a||(a[o[n].image_id]=[]),a[o[n].image_id].push(o[n]);var s,l=[];for(s in a)a[s].sort(h),l.push(a[s][0]);l.sort(h);var u=null;if((u=null!==(i=l[0])?{src:i.url,caption:j(p),shortcode:R(p),page:M(p),username:H(p),created:$(p),id:F(p),width:i.width,height:i.height,i:e+1,total_images:f}:u)&&t.video_versions){for(var r=0,i=null,c=t.video_versions,n=0;n<c.length;n++){c[n].corrected_height=m(t,c[n]);var d=c[n].width*c[n].corrected_height;r<=d&&(r=d,i=c[n])}null!==i&&(u.video=i.url,u.video_width=i.width,u.video_height=i.corrected_height),t.video_dash_manifest&&(u.video_dash=t.video_dash_manifest)}null!==u&&g.push(u)}var g=[],f=1;if("carousel_media"in p)for(var f=p.carousel_media.length,t=0;t<p.carousel_media.length;t++)e(t,p.carousel_media[t]);else f=1,e(0,p);return g},B=function(e,t,o){var r,i={},a=null;if(e.caption&&(i.caption=e.caption),e.page&&(i.page=e.page),e.username&&(i.author_username=e.username),e.created&&(i.created_date=e.created),e.shortcode&&(i.id=e.shortcode),e.album)for(var n,a={type:"links",links:n=[]},s=0;s<e.album.length;s++)n.push({url:e.album[s],is_current:e.album_link===e.album[s]});else if(e.total_images&&"i"in e&&!isNaN(e.i)&&e.page){a={type:"links",links:n=[]};for(s=1;s<e.total_images+1;s++)n.push({url:e.page+"#imu-i="+s,is_current:s===e.i})}return e.video_dash&&(r="data:application/dash+xml,"+encodeURIComponent(e.video_dash),o.push(Ni.set_cdninstagram_obj({url:r,video:"dash",extra:qi(i),album_info:qi(a)}))),e.video&&t.push({url:Ni.instagram_norm_url(e.video),video:!0,extra:qi(i),album_info:qi(a)}),t.push({url:Ni.instagram_norm_url(e.src),extra:qi(i),album_info:qi(a)}),Pt(t,Ni.set_cdninstagram_obj({}),!0)},G=function(e){var t,o,r,i;return e.smallest?(t=(e=qi(e)).largest,o=e.smallest,t.video_width*t.video_height<o.video_width*o.video_height&&(r=t.video,t.video=o.video,o.video=r,r=t.video_width,i=t.video_height,t.video_width=o.video_width,t.video_height=o.video_height,o.video_width=r,o.video_height=i),{largest:t,smallest:o}):e},T=function(e){var t,o;return e?(t=[],o=[],e=G(e),t=B(e.largest,t,o),e.smallest&&(t=B(e.smallest,t,o)),Ji(o,t),o):null},W=function(e){},A=function(e,o){c(e,function(e){if(e)try{var t=e.entry_data.PostPage[0];return o(t)}catch(e){bi(e)}return o(null)})},I=function(i,e,a){if(!e)return a(null);var n="graphql_ig_post:"+e;d.fetch(n,function(t){if(!t)return a(null);var e=!1;if("GraphVideo"!==t.__typename||t.video_url){if("GraphSidecar"===t.__typename)if(t.edge_sidecar_to_children&&t.edge_sidecar_to_children.edges&&0<t.edge_sidecar_to_children.edges.length)for(var o=t.edge_sidecar_to_children.edges,r=0;r<o.length;r++){if(!o[r]||!o[r].node){e=!0;break}if("GraphVideo"===o[r].node.__typename&&!o[r].node.video_url){e=!0;break}}else e=!0}else e=!0;e&&p?A(i,function(e){e&&(d.set(n,e),t=e),a(t)}):a(t)},function(t){A(i,function(e){return e?t(e,3600):t(null,!1)})})},V=function(o,r,e){d.fetch("ig_shortcode_to_id:"+r,e,function(t){n(r,function(e){if(e)return t(e,86400);I(o,r,function(e){return e&&e.id?t(e.id,86400):t(null,!1)})})})},X=function(r,u,c){var i=a(r);return V(r,i,function(e){if(!e)return c(null);try{b(e,function(e){function t(){if(si&&(vi("images_app",s),vi("images_graphql",l)),s&&s.length||(s=null),l&&l.length||(l=null),!s&&!l)return c(null);function o(){var e;return si&&(vi("images_small",qi(n)),vi("images",qi(a),u)),u?(e=S(u,a,n))?c(T(e)):(bi("Unable to find",u,"in",qi(a),qi(n)),void c(null)):c(a)}if(s&&l&&s.length===l.length){for(var r=0,i=0,e=0;e<s.length;e++)s[e].width*s[e].height<l[e].width*l[e].height?(a[e]=l[e],n[e]=s[e]):(a[e]=s[e],n[e]=l[e]),!function(t){h&&s[t].video&&(i++,Ni.find_actual_largest_image(a[t].video,[a[t].video,n[t].video],function(e){r++,e===a[t].video?(a[t].video_width=1e4,a[t].video_height=1e4):e===n[t].video&&(n[t].video_width=1e4,n[t].video_height=1e4),i<=r&&Fa(o)},{check_length:!0,api_cache:d,do_request:p}))}(e);if(i)return}else n=s?(a=s,l):(a=l,s);o()}var a=[],n=[],s=[],l=[],o=!1;null!==e?s=q(e.items[0]):(m&&yi("Unable to use API to find Instagram image, you may need to login to Instagram"),o=!0);o?I(r,i,function(e){e&&(l=q(e)),t()}):t()})}catch(e){bi(e),c(null)}}),{waiting:!0}},Y=function(e,t,o){return"undefined"!=typeof document&&W(document.documentElement.innerHTML),X(e,t,o)},Z=function(a,n,s,e){var t,o=a.replace(/.*\/stories\/+([^/]*).*$/,"$1");return o===a?null:(t=function(e){function t(e){var t;return e?(mi(e=e)||(e=[e]),r&&n?(t=S(n,e))?(t=T(t),s(t)):(yi("Unable to find",n,"in",qi(e)),s(null)):s(e)):s(null)}var o,r=Ni.instagram_get_imageid(n),i=null;a&&(o=a.replace(/.*\/stories\/+[^/]+\/+([0-9]+)\/*(?:[?#].*)?$/,"$1"))!==a&&(i=o);"highlight"===e?i?w("highlight:"+i,r,t):bi("Unable to find story_id"):C(r=!r&&i?i:r,e,t)},"highlights"===o?t("highlight"):g(o,function(e){if(!e)return s(null);t(e)}),{waiting:!0})},E=e,J=o,U=0;U<E.length;U++)if(r=function(e,t){var o;if("post"===e.type){if(e.all&&(e.image=null),o=Y(e.url,e.image,t));}else if("profile"===e.type){if(o=P(e.url,t));}else if("story"===e.type&&(e.all&&(e.image=null),o=Z(e.url,e.image,t)));return o}(E[U],J))return r;return r},Ni.instagram_get_el_for_imageid=function(t){var o=t;if("VIDEO"===(o="SOURCE"===o.tagName?o.parentElement:o).tagName&&o.parentElement)try{o=(o=o.parentElement.querySelectorAll("img[srcset]"))&&0!==o.length?o[0]:t}catch(e){bi(e),o=t}else o=t;return o},Ni.instagram_get_image_src_from_el=function(e){if(e.hasAttribute("data-imu-data"))try{var t=K(e.getAttribute("data-imu-data"));if(t.src)return t.src}catch(e){bi(e)}if("VIDEO"===e.tagName)return e.poster||e.currentSrc||e.src;if("IMG"===e.tagName)return e.src;if("DIV"===e.tagName)return e.style.backgroundImage.replace(/^url\(["'](.*)["']\)$/,"$1");if("SOURCE"===e.tagName){if(e.parentElement){t=Ni.instagram_get_image_src_from_el(e.parentElement);if(t)return t}return e.src}bi("Unable to find source for",e)},Ni.instagram_find_el_info=function(e,t,o){var r=[],i=Ni.instagram_get_image_src_from_el(t);if(t.hasAttribute("data-imu-info"))try{for(var a=K(t.getAttribute("data-imu-info")),n=0;n<a.length;n++)a[n].element=t,a[n].image||(a[n].image=i),delete a[n].all;return a}catch(e){bi("Unable to parse data-imu-info for",t)}for(var s,l=t;l=l.parentElement;)"A"===l.tagName&&(l.href.match(/:\/\/[^/]+\/+(?:[^/]+\/+)?(?:p|tv|reel)\//)?r.push({type:"post",subtype:"link",url:l.href,image:i,element:l}):l.href.match(/:\/\/[^/]+\/+[^/]+(?:\/+(?:[?#].*)?)?$/)&&r.push({type:"profile",subtype:"link",url:l.href,element:l}));for(l=t;l=l.parentElement;){if("HEADER"===l.tagName){var u,c=o;if(c.match(/:\/\/[^/]+\/+p\//)){if("SPAN"===t.parentElement.tagName&&"link"===t.parentElement.getAttribute("role"))for(var d=l.getElementsByTagName("a"),n=0;n<d.length;n++){var p=d[n],m=p.href.match(/^[a-z]+:\/\/[^/]+\/+([^/]+)\/*(?:[?#].*)?$/);if(m&&Ii(p.innerText).toLowerCase()===m[1].toLowerCase()){u=Ii(p.innerText).toLowerCase();break}}if(!u)try{var h=l.querySelector("h2 > a");Ii(h.innerText)===Ii(h.title)&&(u=h.innerText)}catch(e){}if(!u)try{u=l.querySelector("section h1").innerText}catch(e){bi(e)}c=u?"https://www.instagram.com/"+Ii(u):null}c&&r.push({type:"profile",subtype:"page",url:c,element:l})}("DIV"===l.tagName&&"dialog"===l.getAttribute("role")||"BODY"===l.tagName&&o.match(/:\/\/[^/]*\/+(?:[^/]+\/+)?(?:p|tv|reel)\//))&&r.push({type:"post",subtype:"BODY"===l.tagName?"page":"popup",url:o,image:i,element:l}),"ARTICLE"===l.tagName&&o.match(/:\/\/[^/]+\/+(?:[?#].*)?$/)&&(c=(c=l.querySelector("a > time"))||l.querySelector("a > div > time"))&&(s=(s="A"!==(s=c.parentElement).tagName?s.parentElement:s).href,/:\/\/[^/]*\/+(?:[^/]+\/+)?p\//.test(s))&&r.push({type:"post",subtype:"home",url:s,image:i,element:l}),"BODY"===l.tagName&&o.match(/:\/\/[^/]*\/+stories\/+([^/]*)(?:\/+[0-9]+)?\/*(?:[?#].*)?$/)&&(s=Ni.instagram_get_el_for_imageid(t),r.push({type:"story",url:o,image:Ni.instagram_get_image_src_from_el(s),element:l}))}return r},Ni.twitter_normalize_status_link=function(e){return e.match(/\/status\/+([0-9]+)(?:\/+(?:retweets|likes|photo|video)(?:\/+.*)?|\/*)(?:[?#].*)?$/)?e.replace(/(\/status\/+[0-9]+)\/*.*(?:[?#].*)?$/,"$1"):null},Ni.get_twitter_tweet_link=function(e){for(var t=e;t=t.parentElement;){if("A"===t.tagName)if(i=Ni.twitter_normalize_status_link(t.href))return i;if("ARTICLE"===t.tagName){for(var o=t.querySelectorAll("a[role='link']"),r=0;r<o.length;r++){var i,a=o[r].href;if(a)if(i=Ni.twitter_normalize_status_link(a))return i}break}}return null},Ni.get_twitter_caption=function(e){for(var t=e;t=t.parentElement;)if("ARTICLE"===t.tagName){var o=t.querySelectorAll("div[lang]");if(o&&1===o.length)return o[0].innerText;break}return null},Ni.get_twitter_video_tweet=function(e,t){if("VIDEO"===e.tagName&&e.src.match(/^blob:/)){var o=e.poster;if(o&&/\/ext_tw_video_thumb\/+[0-9]+\/+pu\/+img\//.test(o)){if(n=t.location.href.match(/\/i\/+videos\/+tweet\/+([0-9]+)(?:[?#].*)?$/))return{id:n[1]};for(var r=e;r=r.parentElement;)if("ARTICLE"===r.tagName){for(var i=r.querySelectorAll("a[role='link']"),a=0;a<i.length;a++){var n,s=i[a].href;if(s)if(n=s.match(/\/status\/+([0-9]+)(?:\/+(?:retweets|likes)|\/*)(?:[?#].*)?$/))return{id:n[1]}}break}}}return null},Ni.get_snapchat_story=function(e,t,r,o){e.fetch("snapchat_story:"+r,o,function(o){t({method:"GET",url:"https://search.snapchat.com/lookupStory?id="+r,headers:{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-site",Origin:"https://www.snapchat.com",Referer:"https://www.snapchat.com/add/"+r},onload:function(t){if(4===t.readyState){if(200!==t.status)return bi(t),o(null,!1);try{var e=K(t.responseText);return o(e,60)}catch(e){return bi(e,t),o(null,!1)}}}})})},Ni.get_snapchat_storysharing=function(e,t,r,o){e.fetch("snapchat_storysharing:"+r,o,function(o){t({method:"GET",url:"https://storysharing.snapchat.com/v1/fetch/"+r+"?request_origin=ORIGIN_WEB_PLAYER",headers:{"sec-fetch-dest":"empty","sec-fetch-mode":"cors","sec-fetch-site":"same-site",Origin:"https://www.snapchat.com",Referer:"https://www.snapchat.com/add/"+r},onload:function(t){if(4===t.readyState){if(200!==t.status)return bi(t),o(null,!1);try{var e=K(t.responseText).story;return o(e,60)}catch(e){return bi(e,t),o(null,!1)}}}})})},Ni.snap_norm_obj=function(e){var t=e.url.match(/:\/\/[^/]+\/+[0-9a-f]{2}\/+([^/]{10,})\//);return t&&(e.filename=t[1].replace(/[-=]/g,"")),e},Ni.snap_to_obj=function(e){var t=null,e={url:e.media.mediaUrl,extra:{caption:t||null},need_blob:!0};return Ni.snap_norm_obj(e),e},Ni.get_snapchat_info_from_el=function(e){if(e.getAttribute("data-imu"))return{username:e.getAttribute("data-username"),pos:ki(e.getAttribute("data-pos")),url:e.getAttribute("data-url")};if("VIDEO"===e.tagName||"IMG"===e.tagName||"DIV"===e.tagName&&e.style.backgroundImage&&!(e.style.backgroundImage.indexOf("blob:")<0))for(var t=e;t=t.parentElement;)if("DIV"===t.tagName&&"storyWebPlayer"===t.getAttribute("data-test")){if(/:\/\/s\.sc-cdn\.net\//.test(e.src)){var o=t.querySelector('a[data-test="userName"]');if(o)return{username:Ii(o.innerText),pos:0};bi("Unable to find username element")}}else if("DIV"===t.tagName&&"presentation"===t.getAttribute("role")){for(var r="",i=t.getElementsByTagName("a"),a=0;a<i.length;a++){var n=i[a].href.match(/^[a-z]+:\/\/story\.snapchat\.com\/+s\/+([^/?#]+)(?:[?#].*)?$/);if(n){r=n[1];break}}o=0;return t.querySelector("#PrevButton")&&(o=1),{username:r,pos:o=t.querySelector("#NextButton")?o:-1}}return null},Ni.get_obj_from_snap_info=function(e,t,o,r){if(!o)return r(null);Ni.get_snapchat_storysharing(e,t,o.username,function(e){return e?(-1===o.pos&&(o.pos=e.snaps.length-1),r(Ni.snap_to_obj(e.snaps[o.pos]))):r(null)})},Ni.get_md5=function(e,t,o){Xa("cryptojs_aes",e,e.do_request,function(e){if(!e)return bi("Unable to fetch CryptoJS"),o(null);try{return o(e.MD5(t).toString())}catch(e){return bi(e),o(null)}})},Ni.get_tiktok_urlvidid=function(e){e=e.match(/^[a-z]+:\/\/[^/]+\/+(?:[0-9a-f]{32}\/+[0-9a-f]{8}\/+)?video\/+(?:[^/]+\/+)?[^/]+\/+[^/]+\/+([0-9a-f]{32})\/*\?/);return e?e[1]:null},Ni.set_tiktok_vid_filename=function(e){var t=Ni.get_tiktok_urlvidid(e.url);return!!t&&(e.filename=t+".mp4",!0)},Ni.get_tiktok_weburl_parts=function(e){e=e.match(/^[a-z]+:\/\/[^/]+\/+@([^/]*)\/+video\/+([0-9]+)(?:[?#].*)?$/);return e?{username:e[1],web_vid:e[2]}:null},Ni.get_tiktok_from_ttloader=function(e,t,o,r,i){var a=e+":"+r;e=e.replace(/:.*/,""),g(t,o,a,{url:"https://"+e+"/wp-json/wppress/tiktok-downloader/videos?search="+encodeURIComponent(r)+"&type=video_url&max=0",headers:{Referer:"https://"+e+"/?tiktok-search="+encodeURIComponent(r),"X-Requested-With":"XMLHttpRequest","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin",Accept:"application/json, text/javascript, */*; q=0.01"},json:!0},i,function(e,t,o){var r=t.items[0].video.noWatermark;return r?e(r,3600):(bi(o,"Unable to find noWatermark from",t),e(null,!1))})},Ni.get_tiktok_from_ttloader_token=function(o,e,t,r,i,n){r=r.replace(/\?.*/,"");function a(e,t,o,r,i){var a="",e=e+":"+t+(a="videos"===o?"0":a)+":"+r,t=unescape(encodeURIComponent(e));Ni.get_md5(n,t,i)}var s="https://"+(o=o.replace(/:.*/,""))+"/?tiktok-search="+encodeURIComponent(r);"savevideo.ninja"===o&&(s="https://"+o+"/tiktok-no-watermark-video-downloader/?tiktok-search="+encodeURIComponent(r));g(e,t,o+":token",{method:"POST",url:"https://"+o+"/wp-json/wppress/tiktok-downloader/token",imu_mode:"xhr",data:"",headers:{Origin:"https://"+o,Referer:s,"x-requested-with":"XMLHttpRequest"},json:!0},function(e){if(!e)return i(null);a(e,r,"nowatermark",navigator.userAgent,function(e){return i(e?(e=e,t=r,{url:t="https://"+o+"/wp-admin/admin-ajax.php?action=wppress_tt_download&url="+encodeURIComponent(r)+"&key=no-watermark&token="+e,headers:{Referer:"https://"+o+"/?tiktok-search="+encodeURIComponent(t),Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"same-origin","Sec-Fetch-User":"?1"},cookie_url:"https://"+o+"/",is_private:!0}):null);var t})},function(e,t,o){return t.token?e(t.token,3600):(bi(o,"Unable to find token from",t),e(null,!1))})},Ni.get_tiktok_from_socialvideodownloader=function(e,t,o,r,i){var a=e+":"+r;e=e.replace(/:.*/,""),g(t,o,a,{url:"https://"+e+"/wp-json/wppress/video-downloader/videos?url="+encodeURIComponent(r),headers:{Referer:"https://"+e+"/","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin",Accept:"application/json, text/javascript, */*"},json:!0},i,function(e,t,o){for(var r=t[0].urls,i={},a=0;a<r.length;a++)i[r[a].id]=r[a];return"vid-no-watermark"in i?e(i["vid-no-watermark"].src,3600):(bi(o,"Unable to find vid-no-watermark in",{ids:i,resp:t}),e(null,!1))})},Ni.get_tiktok_from_keeptiktok=function(e,t,o,r,i){var a=Ni.get_tiktok_weburl_parts(r);if(!a)return bi("Invalid url",r),i(null);g(t,o,e+":"+r,{url:"https://"+e+"/"+a.username.replace(/\..*/,"")+"/"+a.web_vid},i,function(e,t,o){var r=t.responseText.match(/<video[^>]+>\s*<source src="(https?:\/\/[^/]*(?:tiktok|bytei)cdn\.[^"]+)"/);return r?e(ro(r[1]),3600):(bi(o,"Unable to find match for",t),e(null,!1))})},Ni.get_tiktok_from_snaptik=function(i,e,t,o,r){if(!Ni.get_tiktok_weburl_parts(o))return bi("Invalid url",o),r(null);var a,n;a=(a=o).replace(/[?#].*/,""),n=i+":"+a,e.fetch(n,r,function(r){t({url:"https://snaptik.app/",imu_mode:"document",method:"GET",onload:function(e){if(200!==e.status)return bi(n,e),r(null,!1);t({method:"POST",url:"https://"+i+"/action.php",imu_mode:"xhr",imu_multipart:{url:a},headers:{Origin:"https://snaptik.app",Referer:"https://snaptik.app/"},onload:function(e){var o,t;return 200!==e.status?(bi(n,e),r(null,!1)):(t=e.responseText.match(/<a[^>]*\s+href=["'](?:https?:\/\/(?:(?:sv|cdn)[0-9]*\.)?(?:snaptik\.app|snapsave\.info))?\/+dl\.php\?token=([^&'"]+)/))?(o=decodeURIComponent(ro(t[1])).replace(/^s|s$/g,"").split("/"),zi(o,function(e,t){o[t]=z(e)}),t=o.join("?"),void r({url:t,cookie_url:"https://"+i+"/"},3600)):(bi(n,"Unable to find match for",e),r(null,!1))}})}})})},Ni.get_tiktok_from_musicallydown=function(o,r,i,a,n){g(r,i,"musicallydown:vtoken",{url:"https://musicallydown.com"},function(e){if(!e)return n(null);var t;t=n,g(r,i,o+":"+a,{url:"https://musicallydown.com/download",method:"POST",imu_mode:"document",headers:{"Content-Type":"application/x-www-form-urlencoded",Origin:"https://musicallydown.com",Referer:"https://musicallydown.com/"},data:(e=e).link_name+"="+encodeURIComponent(a)+"&"+e.token_name+"="+e.token_value+"&verify=1"},t,function(e,t,o){var r=t.responseText.match(/<a\s+(?:style="[^"]+"\s+)?target="_blank" rel="noreferrer" href="(https?:\/\/[^/]*tiktokcdn\.com\/[^"]+)"[^>]*>\s*<i[^>]*>[^<]*<\/i>\s*Download MP4/);return r?e(ro(r[1]),3600):(bi(o,"Unable to find match from",t),e(null,!1))})},function(e,t,o){var r,i=t.responseText.match(/<input name="(_[a-zA-Z0-9]+)" type="hidden" value="([0-9a-f]{5,})"\s*\/>/);return i?(r={token_name:i[1],token_value:i[2]},(i=t.responseText.match(/<input name="(_?[a-zA-Z0-9]+)" type="text"[^/>]+id="link_url"/))?(r.link_name=i[1],e(r,!1)):(bi(o,"Unable to find link name from",t),e(null,!1))):(bi(o,"Unable to find token from",t),e(null,!1))})},Ni.get_tiktok_from_ssstiktok=function(r,i,a,n,s){g(i,a,"ssstiktok:token",{url:"https://ssstik.io"},function(e){if(!e)return s(null);var t,o;t=s,o=r+":"+n,(e=e).queries.id=encodeURIComponent(n),g(i,a,o,{url:e.url,method:"POST",imu_mode:"xhr",headers:{"HX-Active-Element":"submit","HX-Current-URL":"https://ssstik.io/","HX-Request":"true","HX-Target":"target","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},data:$a(e.queries)},t,function(e,t,o){var r=t.responseText.match(/<a href="(https?:\/\/[^/]*tiktokcdn\.com\/[^"]+)"[^>]*>Without watermark/);return r?e(ro(r[1]),3600):(bi(o,"Unable to find match for",t),e(null,!1))})},function(t,e,o){var r=e.responseText.match(/<form.*?data-hx-post=".*?>/);if(!r)return bi(o,"Unable to find match from",e),t(null,!1);var i=Eo(r[0]),a=Da("https://ssstik.io/",i.args["data-hx-post"],!0);try{var n=K(Do("{"+i.args["include-vals"]+"}"))}catch(e){return bi(o,e),t(null,!1)}return(r=e.responseText.match(/<input id="locale".*?>/))?(i=Eo(r[0]),n.locale=i.args.value,t({url:a,queries:n},!1)):(bi(o,"Unable to find locale",e),t(null,!1))})},Ni.get_tiktok_from_tikmate=function(e,t,o,r,i){var a=Ni.get_tiktok_weburl_parts(r);if(!a)return bi("Invalid url",r),i(null);var n="https://"+e+"/"+a.username.replace(/_/g,"-")+"/"+a.web_vid;r=function(){i({url:"https://"+e+"/dl.php",headers:{Accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache",Pragma:"no-cache",Referer:n,"Sec-Fetch-Dest":"document","Sec-Fetch-Mode":"navigate","Sec-Fetch-Site":"same-origin","Sec-Fetch-User":"?1"},cookie_url:"https://"+e+"/",can_head:!1,video:!0})},g(t,o,e+":cookie:"+a.username+"/"+a.web_vid,{url:n},r,function(e,t,o){e(null,21600)})},Ni.get_tiktok_from_3rdparty=function(e,t,o,r,i){var a={"ttloader.com:ttt":Ni.get_tiktok_from_ttloader_token,"onlinetik.com:ttt":Ni.get_tiktok_from_ttloader_token,"demo.wppress.net:tt":Ni.get_tiktok_from_ttloader,"tiktokdownloader.in:ttt":Ni.get_tiktok_from_ttloader_token,"savevideo.ninja:ttt":Ni.get_tiktok_from_ttloader_token,"tikdowns.com:ttt":Ni.get_tiktok_from_ttloader_token,"ssstiktok.net:ttt":Ni.get_tiktok_from_ttloader_token,"demo.wppress.net:svd":Ni.get_tiktok_from_socialvideodownloader,"savevideo.ninja:svd":Ni.get_tiktok_from_socialvideodownloader,"keeptiktok.com":Ni.get_tiktok_from_keeptiktok,"ssstiktok.io:1":Ni.get_tiktok_from_ssstiktok,"musicallydown.com:1":Ni.get_tiktok_from_musicallydown,"snaptik.app":Ni.get_tiktok_from_snaptik,"tikmate.online":Ni.get_tiktok_from_tikmate};if(!(e in a))return bi("Invalid site",e,a),i(null);a[e](e,t,o.do_request,r,i,o)},Ni.get_best_tiktok_url=function(s,t,r,i){var a=r,e=function(e){if(!e)return i(null);var n;n=e,e=function(e){var t,o;i((e=e,t=r,o=Ni.get_tiktok_urlvidid(t),e=Ni.get_tiktok_urlvidid(e=e||t)===o?t:e))},s.fetch("tiktok_watermarkfree:"+n,e,function(r){var i="https://api2-16-h2.musical.ly/aweme/v1/play/?video_id="+n+"&ratio=default&improve_bitrate=1",a=function(o){t({url:i,headers:{Referer:"https://www.tiktok.com/",Accept:"*/*","Sec-Fetch-Dest":"video","Sec-Fetch-Mode":"no-cors","Sec-Fetch-Site":"cross-site"},method:"HEAD",onload:function(e){var t;if(4===e.readyState)return 503===e.status&&o<5?setTimeout(function(){a(o+1)},500):200!==e.status&&302!==e.status?(bi(e),r(null,!1)):(e=Vt(So(e)))===i&&o<5?setTimeout(function(){a(o+1)},500):((t=Ni.get_tiktok_urlvidid(e))&&!s.has(t="tiktok_vidid:"+t)&&s.set(t,n,3600),r(e,3600))}})};a(0)})};o=a;var o,n=(n=Ni.get_tiktok_urlvidid(o))?"tiktok_vidid:"+n:(yi("Unknown video URL:",o),null);n?s.fetch(n,e,function(o){function e(e){var t;if(!r)return e.responseText?void((t=e.responseText.match(/mdtacomment[\s\S]{10,400}vid:([0-9a-z]{32})/))?(i.abort(),r=!0,o(t[1],86400)):4===e.readyState&&4===e.readyState&&(i.abort(),r=!0,yi("Unable to find video ID for",a),200!==e.status?o(null,!1):o(null,60))):4!==e.readyState||e.loaded&&e.total&&200===e.status?void 0:(i.abort(),r=!0,bi(e),o(null,!1))}var r=!1,i=t({url:a,method:"GET",headers:{Referer:"https://www.tiktok.com/"},onprogress:e,onload:e})}):e(null)},Ni.tiktok_remove_watermark=function(e,t,o,r,i){return t.rule_specific,i(null)},Ni.youtube_fetch_watchpage_raw=function(e,t,o,r){var i="https://www.youtube.com/watch?v="+o;/^embed:/.test(o)&&(i="https://www.youtube.com/embed/"+o.replace(/^embed:/,"")+"/"),g(e,t.do_request,"youtube_watchpage_raw:"+o,{url:i},r,function(e,t,o){return e(t.responseText,3600)})},Ni.youtube_fetch_watchpage_config=function(e,t,o,a,r){var n="youtube_watchpage_config:"+o+":"+a;e.fetch(n,r,function(i){Ni.youtube_fetch_watchpage_raw(e,t,o,function(t){if(t){var o,e=[a];if("config"!==a&&e.push("config"),zi(e,function(e){e=new RegExp("ytplayer\\."+e+"\\s*=\\s*({.*?});");if(o=t.match(e))return!1}),o){e=!1;if(/:ytInitialPlayerResponse|:(?:window\.)?ytplayer\.bootstrapPlayerResponse/.test(o[1])){if(!(o=t.match(/(?:window\["ytInitialPlayerResponse"\]|var ytInitialPlayerResponse)\s*=\s*({.*?});/)))return yi(n,"Unable to find ytInitialPlayerResponse for",{data:t}),i(null,!1);e=!0}try{var r=K(o[1]);return e&&(r.imu_need_args=!1),i(r,18e3)}catch(e){bi(n,e,{json:o[1]})}}else yi(n,"Unable to find ytplayer."+a+" for",{data:t})}return i(null,!1)})})},Ni.youtube_fetch_watchpage=function(e,t,o,r){return Ni.youtube_fetch_watchpage_config(e,t,o,"config",function(t){if(t)try{var e,o;return!1===t.imu_need_args?r(t):(e=t.args.player_response,o=K(e),r(o))}catch(e){bi(e,t)}return r(null)})},Ni.youtube_fetch_ytcfg=function(e,t,o,r){var i="youtube_ytcfg:"+o;e.fetch(i,r,function(r){Ni.youtube_fetch_watchpage_raw(e,t,o,function(t){if(!t)return r(null,!1);var o=t.match(/;\s+ytcfg\.set\(({.*})\);/);if(!o)return vi(i,"Unable to find ytcfg match for",{data:t}),r(null,!1);var o=o[1],e=null;try{e=K(o)}catch(e){return bi(i,e,{data:t,jsonstr:o}),r(null,!1)}return r(e,18e3)})})},Ni.youtube_fetch_asset=function(e,i,t,a,o){var n="youtube_asset:"+a;e.fetch(n,o,function(r){Ni.youtube_fetch_ytcfg(e,i,t,function(t){if(!t)return r(null,!1);var e=null;try{var o=t.WEB_PLAYER_CONTEXT_CONFIGS.WEB_PLAYER_CONTEXT_CONFIG_ID_KEVLAR_WATCH;a+"Url"in o&&(e=o[a+"Url"])}catch(e){return bi(n,e,t),r(null,!1)}if(!e)return yi("Unable to find asset",a,"in",t),r(null,!1);o=Da("https://www.youtube.com/",e,!0);i.do_request({url:o,method:"GET",headers:{Referer:"https://www.youtube.com/"},onload:function(e){return 200!==e.status?(bi(n,e),r(null,!1)):r(e.responseText,3600)}})})})},Ni.youtube_fetch_embed=function(e,t,o,r){var i="youtube_embed_info:"+o;e.fetch(i,r,function(r){Ni.youtube_fetch_ytcfg(e,t,"embed:"+o,function(t){if(!t)return r(null,!1);try{var e=t.PLAYER_VARS.embedded_player_response,o=K(e);return r(o,18e3)}catch(e){return bi(i,e,t),r(null,!1)}})})},Ni.parse_flixv2=function(e,t){var o=/<item>\s*<res>([^<]+)<\/res>\s*<videoLink>(?:<!\[CDATA\[)?(.*?)(?:\]\]>)?<\/videoLink>/,r=new RegExp(o,"g"),i=e.responseText.match(r);if(!i)return bi(t,"Unable to find items in",e),null;for(var a=[],n=0;n<i.length;n++){var s=i[n].match(o),l=s[1],s=ro(s[2]);a.push({url:s,quality:ki(l.replace(/^([0-9]+)p$/,"$1")),video:!0})}a.sort(function(e,t){return t.quality-e.quality});for(n=0;n<a.length;n++)delete a[n].quality;return a},Ni.parse_mediadefinition=function(e,t,o){if(t)try{for(var r=0,i=null,a=0;a<t.mediaDefinition.length;a++){var n=t.mediaDefinition[a];n.videoUrl&&(n.quality=ki(n.quality),n.quality>r)&&(r=n.quality,i=n)}var s=i.videoUrl;return{url:s=e.replace(/[?#].*$/,"").replace(/^[a-z]+:\/\/[^/]+\/+/,"")===s.replace(/[?#].*$/,"").replace(/^[a-z]+:\/\/[^/]+\/+/,"")?e:s,extra:{page:t.link_url,caption:t.video_title},headers:{Referer:t.link_url},video:!0,is_private:!0}}catch(e){bi(o,e)}return null},Ni.get_parent_el_matching=function(e,t){for(var o=e;o;){if(t(o))return o;o=o.parentElement}return null},Ni.get_link_el_matching=function(e,t){"object"==typeof(t=t)&&t instanceof RegExp&&(o=t,t=function(e){return o.test(e.href)});var o,r=t;return Ni.get_parent_el_matching(e,function(e){return"A"===e.tagName&&r(e)})},Ni.get_pagelink_el_matching=function(e,t){e=Ni.get_link_el_matching(e,t);return e?{url:e.href,is_pagelink:!0}:null},Ni.get_host_el_matching=function(e,t,o){return(e=Ni.get_parent_el_matching(e,o))?{url:t,is_pagelink:!0}:null},Ni.get_pagelink_host_el_matching=function(e,t){var o=Ni.get_pagelink_el_matching(e.element,t.url_match);return o||(t.url_match.test(e.host_url)?Ni.get_host_el_matching(e.element,e.host_url,t.el_match)||void 0:null)},Ni.is_pinterest_domain=function(e){e=Za(e);return!!/^pinterest\./.test(e)},Ni.get_jsonformatter_for_cryptojs=function(o){return{stringify:function(e){var t={ct:e.ciphertext.toString(o.enc.Base64)};return e.iv&&(t.iv=e.iv.toString()),e.salt&&(t.s=e.salt.toString()),pi(t)},parse:function(e){var e=K(e),t=o.lib.CipherParams.create({ciphertext:o.enc.Base64.parse(e.ct)});return e.iv&&(t.iv=o.enc.Hex.parse(e.iv)),e.s&&(t.salt=o.enc.Hex.parse(e.s)),t}}},Ni.create_dash_stream=function(r){function e(e,t){var o='  <AdaptationSet mimeType="'+e+'"';return o+=">\n",zi(t,function(e){var t;o+=(t="  <Representation",t=(t=(t=(t=(t=(t+=s("mimeType",(e=e).mime))+s("codecs",e.codecs))+s("bandwidth",e.bandwidth))+s("width",e.width))+s("height",e.height))+s("id",e.id),"frame_rate"in e&&(t+=s("frameRate",e.frame_rate)),"start_with_sap"in e&&(t+=s("startWithSap",e.start_with_sap)),"sar"in e&&(t+=s("sar",e.sar)),t=(t+=">\n")+"    <BaseURL>"+io(e.url)+"</BaseURL>\n",(e.index_range||e.init_range)&&(t+="    <SegmentBase",e.index_range&&(t+=s("indexRange",l(e.index_range))),t+=">\n",e.init_range&&(t=(t+="      <Initialization")+s("range",l(e.init_range))+" />\n"),t+="    </SegmentBase>\n"),(t+="  </Representation>").replace(/^/gm,"  ")+"\n")}),o+="  </AdaptationSet>"}var t,o,i,a,n='<?xml version="1.0"?>\n',s=(n=(n+='<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" type="static"')+' xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'+' xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd"',function(e,t){return void 0===t?"":" "+e+'="'+io(t+"")+'"'}),l=(r.duration&&(i=r.duration/60/60|0,t=(r.duration/60|0)%60,o=r.duration%60,n+=s("mediaPresentationDuration","PT"+i+"H"+t+"M"+o+"S")),r.min_buffer_time&&(n+=s("minBufferTime",r.min_buffer_time)),n=n+' profiles="urn:mpeg:dash:profile:isoff-main:2011"'+">\n<Period>\n",function(e){return"string"==typeof e?e:e.start+"-"+e.end});for(a in r.mimes||(r.mimes={},(i=function(o){var e="audio"===o?r.audios:r.videos;zi(e,function(e){if(!e.mime){var t=e.url.replace(/^[^?#]+\.([^/.?#]+)(?:[?#].*)?$/,"$1");if(t===e.url)return void yi("Unable to get mime for",e);e.codecs||("mp4"===t?e.codecs="avc1.4d401f":"mp3"===t&&(e.codecs="mp3")),e.mime=o+"/"+(t="mp3"===t?"mp4":t)}e.mime in r.mimes||(r.mimes[e.mime]=[]),r.mimes[e.mime].push(e)})})("video"),i("audio")),r.mimes)n+=e(a,r.mimes[a])+"\n";return n+="</Period>\n</MPD>\n"},Ni.get_videotag_sources=function(e){var t=e.match(/<video[\s\S]+?<\/video>/i);if(!t)return bi("Unable to find video tag from",{text:e}),null;e=Eo(t[0]);if(!e)return bi("Unable to parse <video> tag",t[0]),null;function o(e){e.name=e.args.title||null,e.url=e.args.src,r.video.push(e)}var r={video:[],image:[],subtitles:[]},e=(e.args.src&&o(e),e.args.poster&&r.image.push(e.args.poster),t[0].match(/<source.*?\/?>\s*(?:<\/source>)?/g));if(e){zi(e,function(e){var t=Eo(e);t?t.args.src&&o(t):yi("Unable to parse <source> tag",e)});e=t[0].match(/<track[^>]+?>/g);if(e)for(var i=0,a=e;i<a.length;i++){var n,s=a[i],l=Eo(s);l?"captions"!==l.args.kind&&"subtitles"!==l.args.kind||l.args.src&&(n={url:l.args.src,title:null},l.args.label&&(n.title=l.args.label),r.subtitles.push(n)):yi("Unable to parse <track> tag",s)}r.video.sort(function(e,t){return e.name&&t.name&&(e=e.name.match(/^([0-9]+)p$/),t=t.name.match(/^([0-9]+)p$/),e)&&t?ki(t[1])-ki(e[1]):0})}return Po(r)},Ni.get_holaplayer_sources=function(e){if("{"!==e[0]){var t=e.match(/window\.hola_player\(({.*?}),\s*function/);if(!t)return bi("Unable to find hola_player match from",{text:e}),null;e=t[1]}var o,r,i;return(t=e.match(/sources["']?:\s*(\[{.*?}\]),/))?(o=K(Do(t[1])),r=null,(t=e.match(/poster["']?:\s*["'](https?:\/\/[^"']+)["'],/))?r=t[1]:yi("Unable to find poster match for",{text:e}),i={video:[],image:[]},r&&i.image.push(r),zi(o,function(e){i.video.push({src:e.src,type:e.type,url:e.src})}),Po(i)):(bi("Unable to find sources match for",{text:e}),null)},Ni.get_obj_from_videosources=function(o,e){var r=[];return zi(e.video,function(e){var t=!0;("application/x-mpegURL"===e.type||0<=gi(e.url,".m3u8"))&&(t="hls"),r.push({url:Da(o,e.url,!0),video:t})}),zi(e.image,function(e){r.push(Da(o,e,!0))}),r},Ni.get_videotag_obj=function(e,t){"ogimage"in(t=t||{})||(t.ogimage=!0),"videotag"in t||(t.videotag=!0);var o={video:[],image:[],subtitles:[]};if(t.videotag&&!(o=Ni.get_videotag_sources(e.responseText)))return null;var r=Uo(e.responseText,"og:url"),i={headers:{Referer:r=r?Da(e.finalUrl,r,!0):e.finalUrl},extra:{page:r}},a=Uo(e.responseText,"og:title"),n=(a&&(i.extra.caption=a),o.video.sort(function(e,t){return e.args.res&&t.args.res?t.args.res-e.args.res:0}),[]),s=(zi(o.video,function(e){n.push(Da(r,e.url,!0))}),null);if(o.subtitles&&o.subtitles.length)for(var s=[],l=0,u=o.subtitles;l<u.length;l++){var c=u[l],d=qi(c);d.url=Da(r,c.url,!0),s.push(d)}t.ogvideo&&(a=Uo(e.responseText,"og:video"))&&Ki(n,Da(r,a,!0));var p=[],m=(zi(o.image,function(e){p.push(Da(r,e,!0))}),t.ogimage&&(a=Uo(e.responseText,"og:image"))&&Ki(p,Da(r,a,!0)),[]);return zi(n,function(e){e={url:e,video:!0};s&&(e.subtitles=qi(s)),m.push(e)}),Ji(m,p),m.length?Pt(m,i):null},Ni.update_album_info_links=function(o,r){var i=o.album_info.links,a=!1;return zi(i,function(e,t){!a&&r(e.x_id||e.url)?(i[t].is_current=!0,o.url=i[t].real_url||i[t].url,a=!0):i[t].is_current=!1}),!a&&0<i.length&&(i[0].is_current=!0),o},Ni.run_msml_op=function(o,r,i){var e,a,t,n=o.matches,s=r.op,l=!1;if("obj_set"===s){r.value?m=r.value:r.match&&(m=n[r.match]),r.subkey&&(m=m[r.subkey]);var u=n,c=r.out;r.out_subkey&&(u=n[r.out],c=r.out_subkey),u[c]=m}else if("run"===s){var d=[],u=(zi(r.args,function(e){var t;(e="object"!=typeof e?{value:e}:e).value?t=e.value:e.match?t=n[e.match]:e.self&&(t=o.ms_data[e.self]),e.subkey&&(t=t[e.subkey]),e.regex&&(t=ao(t)),e.cb&&(t=function(e){r.out&&(n[r.out]=e),"bad"in r&&e===r.bad?i(!1):i(!0)},l=!0),d.push(t)}),Ni),c=(u=r.match?n[r.match]:u)[r.key].apply(this,d);if("bad"in r&&c===r.bad)return bi("Error running",r),!1;r.out&&(n[r.out]=c)}else if("regex"===s){var p=qi(o.ms_data[r.flags]),m=(Ri(p,function(o,e){"object"==typeof e&&e.replace_match&&(delete p[o],Ri(e.replace_match,function(e,t){o=Qi(o,"%"+e+"%",ao(n[t]))}),p[o]=e.source)}),Ni[r.key](Ni[r.base],p,o.ms_dadta)),u=r.in||"in",c=n[u].match(new RegExp(m));if(!c)return bi("Unable to find match from",{str:n[u],regex:m}),!1;n[r.out]=c[r.save]}else"parse_queries"===s?(e=n[r.match],a=no(e=/^(?:https?:)?\//.test(e)?e:"?"+e,{decode:!0}),mi(r.out)?(u=Object.keys(a).sort(),zi(u,function(e,t){if(!(t in r.out))return!1;n[r.out[t]]=a[e]})):Ri(r.out,function(e,t){e in a&&(n[t]=a[e])})):"add_queries"===s?(e=n[r.match],a={},zi(r.queries,function(e){var t=e.query,e=e.value;"object"==typeof t&&(t=n[t.match]),"object"==typeof e&&(e=n[e.match]),a[t]=e}),n[r.out]=uo(e,a)):"parse_match"===s?(t=[],zi(n[r.match],function(e){var o=[];Ri(e,function(e,t){"string"==typeof t?o.push(n[r.subkey][t]):mi(t)?o.push(t[t.length-1]):o.push(t)}),t.push(qi(o))}),n[r.out]=t):"final"===s?o.ok=!0:bi("Unknown operation",r);if(l)return"waiting"},Ni.run_msml_oplist=function(o,r,i){var a=o.ok=!1;try{zi(r,function(e,t){e=Ni.run_msml_op(o,e,function(e){if(!e)return o.ok=!1,i(o.ok);Ni.run_msml_oplist(o,r.slice(t+1),i)});return e&&("waiting"===e?!(a=!0):void 0)})}catch(e){throw bi("Error running oplist",o.matches),e}a||i(o.ok)},Ni.run_msml=function(r,e,t){if(!r||!e)return t(null);function o(e,t){var o={matches:qi(i.matches),ms_data:r};o.matches.in=e,Ni.run_msml_oplist(o,o.ms_data.run,function(e){if(!e)return t(null);t(o.matches.out)})}var i={matches:{},ms_data:r};i.ms_data.bootstrap?(i.matches.in=e,Ni.run_msml_oplist(i,i.ms_data.bootstrap,function(e){if(!e)return t(null);t(o)})):t(o)},Ni.process_formats=function(t,o,e,r){function i(){a<=n&&(r(e),n=-1)}var a=0,n=0,s={};zi(e,function(t){Ri(t,function(e){t[e]&&o.process_format&&e in o.process_format&&(a++,e in s||(s[e]=[]),s[e].push(t))})}),Ri(s,function(e){s[e][0].imu_msml_options=o,s[e][0].imu_msml_api_cache=t,Ni.run_msml(o.process_format[e],s[e][0],function(t){t?zi(s[e],function(e){t(e,function(){n++,i()})}):(n++,i())})}),i()},Ni.normalize_function=function(e,t){var o=e.toString().replace(/\/\/.*/g,"").replace(/(return|var)\s+/g,"$1##").replace(/\s*/g,"").replace(/(return|var)##/g,"$1 ").replace(/^(?:function\([^)]*\))?{(.*?);*}$/,"{$1}");if(t)for(var r in t){var i=t[r];mi(i)||(i=[i]),zi(i,function(e){o=(e="string"==typeof e?{source:e}:e).regex?o.replace(new RegExp(e.source,"g"),r):Qi(o,e.source,r)})}return o},Ni.get_mappings_for_objstr=function(e,t,o){var i,a,n,s={funcs:e,objstr:t,vars:o},r=new RegExp("("+Qo.jvarname.source+")[\"']?\\s*:\\s*function\\s*[(][^)]*[)]\\s*({.*?})(?:,|};?$)"),l=se(t,r);return l?(i={},a=!0,n=[],zi(e,function(e){n.push(Ni.normalize_function(e,o))}),zi(l,function(e){var o=e[1],r=Ni.normalize_function(e[2]);if(zi(n,function(e,t){if(e===r)return i[o]=t,!1}),!i[o])return s.matches=l,s.match=e,bi("Unable to find mapping",s),a=!1}),a?i:null):(bi("Unable to find mappings",s),null)},Ni.parse_js_calls=function(e,t){var o,r="",r=e?e+"\\.":"[^$_a-zA-Z0-9]",e=(r+="("+Qo.jvarname.source+")[(]([^)]*)[)][;\\s}]",se(t,new RegExp(r)));return e?(o=[],zi(e,function(e){var t={name:e[1],args:[]},e=se(e[2],/([$_a-zA-Z0-9.]+)\s*(?:,|$)/);e&&(zi(e,function(e){e=e[1];Qo.number.test(e)&&(e=parseFloat(e)),t.args.push(e)}),o.push(t))}),o):null},Ni.find_actual_largest_image=function(n,s,l,u){if(s.length<2)return l(s[0]);(u=u||{}).cache||(u.cache={});function e(i,a){var o=i,r=function(e,t){if(!m){if(e&&t)p[i]=[e,t,a];else if(i===n)return m=!0,l(null);var o,r;++d<h||(o=-1,r=null,n in p&&(o=p[r=n][0]*p[n][1]),Ri(p,function(e,t){t=t[0]*t[1];o<t&&(o=t,r=e)}),h<s.length?(s.splice(0,h),s.unshift(r),Ni.find_actual_largest_image(n,s,l,u)):l(r))}};o in c?r(c[o][0],c[o][1]):u.check_length?t(o,function(e){r(e,e)}):Ko(o,function(e,t){if(!e||!t)return r(e,t);c[o]=[e,t],r(e,t)})}var c=u.cache,t=function(e,t){g(u.api_cache,u.do_request,"contentlength:"+e,{url:e,headers:{Referer:""},method:"HEAD",silent:!0},t,function(e,t,o){var r=Ga(Oa(t.responseHeaders));return"content-length"in r?e(ki(r["content-length"]),3600):404===t.status?e(null,3600):e(null,!1)})},d=0,p={},m=!1,h=s.length;2<h&&u.respect_order&&(h=2);for(var o=0;o<h;o++)e(s[o],o)},Ni.gen_jquery_callback=function(){return"jQuery"+ta(20)+"_"+Date.now()},Ni.get_largest_twimg=function(e,t){function o(e,t){var o=no(t).format;o&&(t=t.match(/\/([^/.?#]+)(?:\.[^/.]+)?(?:[?#].*)?$/),e.filename=t[1]+"."+o)}var r=!1,t=(t&&t.rule_specific&&t.rule_specific.twitter_use_ext&&(r=!0),{url:e,can_head:!1});if(0<=gi(t.url,"/profile_images/"))return(p=t.url.replace(/[?#].*$/,"").replace(/_(?:bigger|normal|mini|reasonably_small|[0-9]*x[0-9]+)(\.[^/_]*)$/,"$1"))!==t.url?(t.url=p,t):void 0;if(0<=gi(t.url,"/profile_banners/"))return(p=t.url.replace(/\/[0-9]+x[0-9]+(?:[?#].*)?$/,""))!==t.url?(t.url=p,t):void 0;if(o(t,t.url),(p=t.url.replace(/:([^/?]+)(.*)?$/,"$2?name=$1").replace(/(\?.*)\?name=/,"$1&name="))!==t.url&&(t.url=p),/:\/\/[^/]+\/+media\//.test(t.url)&&(p=(p=(s=t.url.match(/^([^?#]+\/[^/.?#]+)\.([^/.?#]+)([?#].*)?$/))?uo(s[1]+(s[3]||""),{format:s[2]}):p).replace(/([?&]format=)webp(&.*)?$/,"$1jpg$2"))!==t.url&&(o(t,p),t.url=p),s=t.url.match(/\/tweet_video_thumb\/+([^/.?#]+)\./))return{url:t.url.replace(/\/tweet_video_thumb\/+[^/]+\.[^/.]+(?:[?#].*)?$/,"/tweet_video/"+s[1]+".mp4"),video:!0};for(var i=["orig","4096x4096","large","medium"],a=t,n=[],e=a.url.match(/[?&]name=([^&]+)/),s=e?e[1]:null,l=hi(i,s),u=(l<0&&(l=i.length),function(e){var t=qi(a);t.url=e,o(t,t.url),n.push(t)}),c=function(e,t){return e=(e=lo(e,["name"])).replace(/(\/[^/?&#.]+)(?:\.[^/?&#.]+)?(\?.*)?$/,"$1."+t+"$2")},d=0;d<l;d++){var p,m=no(p=uo(p=a.url.replace(/(\.[a-z]+)\?(?:(.*)&)?format=[^&]+/,"$1?$2&").replace(/&$/,""),{name:i[d]}));"png"===m.format||"jpg"===m.format?(r&&u(c(p,"png")),u(uo(p,{format:"png"})),r&&u(c(p,"jpg")),u(uo(p,{format:"jpg"}))):(r&&m.format&&u(c(p,m.format)),u(p))}return u(a.url),1<n.length?n:void 0},Ni.parse_imu_hash=function(e){var o,e=e.match(/#(.*)/);return e?(o={},Ri(no("?"+e[1]),function(e,t){e=e.match(/^imu-(.*)/);e&&(o[e[1]]=t)}),o):null},Ni.multidomain__nitter=function(e,t){return"nitter.net"===t||"nitter.lacontrevoie.fr"===e||"nitter.nixnet.services"===e||"nitter.fdn.fr"===e||"nitter.1d4.us"===e||"nitter.kavin.rocks"===e||"nitter.unixfox.eu"===e||"nitter.domain.glass"===e||"birdsite.xanny.family"===e||"nitter.moomoo.me"===e||"bird.trom.tf"===e||"nitter.it"===e||"nitter.weiler.rocks"===e||"nitter.sethforprivacy.com"===e||"nitter.nl"===e||"nitter.mint.lgbt"===e||"nitter.esmailelbob.xyz"===e||"tw.artemislena.eu"===e||"nitter.tiekoetter.com"===e||"nitter.privacy.com.de"===e||"nitter.bird.froth.zone"===e||"nitter.cz"===e||"nitter.privacydev.net"===e||"tweet.lambda.dance"===e||"nitter.kylrth.com"===e||"unofficialbird.com"===e||"nitter.projectsegfau.lt"===e||"nitter.eu.projectsegfau.lt"===e||"nitter.in.projectsegfau.lt"===e||"singapore.unofficialbird.com"===e||"canada.unofficialbird.com"===e||"india.unofficialbird.com"===e||"nederland.unofficialbird.com"===e||"uk.unofficialbird.com"===e||"nitter.soopy.moe"===e||"nitter.qwik.space"===e||"read.whatever.social"===e||"nitter.rawbit.ninja"===e||"nt.vern.cc"===e||"n.sneed.network"===e||"nitter.smnz.de"===e||"nitter.twei.space"===e||"nitter.inpt.fr"===e||"nitter.d420.de"===e||"nitter.caioalonso.com"===e||"nitter.at"===e||"nitter.nicfab.eu"===e||"bird.habedieeh.re"===e||"nitter.hostux.net"===e||"nitter.adminforge.de"===e||"nitter.platypush.tech"===e||"nitter.us.projectsegfau.lt"===e||"t.com.sb"===e||"nitter.kling.gg"===e||"nitter.riverside.rocks"===e||"nitter.lunar.icu"===e||"twitter.moe.ngo"===e||"nitter.freedit.eu"===e||"n.opnxng.com"===e||"nitter.tux.pizza"===e||"nitter.altgr.xyz"===e||"jote.lile.cl"===e||"nitter.one"===e||"nitter.io.lol"===e||"nitter.no-logs.com"===e||"tweet.whateveritworks.org"===e||"nitter.fediflix.org"===e||"nitter.nohost.network"===e||"nitter.simpleprivacy.fr"===e||"nitter.onthescent.xyz"===e||"nitter.x86-64-unknown-linux-gnu.zip"===e||"nitter.private.coffee"===e||"nitter.oksocial.net"===e||"nitter.services.woodland.cafe"===e||"nitter.dafriser.be"===e||"nitter.catsarch.com"===e||"nitter.42l.fr"===e||"nitter.pussthecat.org"===e||"nitter.tedomum.net"===e||"nitter-home.kavin.rocks"===e||"nitter.cc"===e||"nitter.vxempire.xyz"===e||"nitter.eu"===e||"nitter.ethibox.fr"===e||"nitter.namazso.eu"===e||"nitter.mailstation.de"===e||"nitter.actionsack.com"===e||"nitter.cattube.org"===e||"nitter.40two.app"===e||"nitter.skrep.in"===e||"nitter.hu"===e||"nitter.database.red"===e||"nitter.exonip.de"===e||"twitr.gq"===e||"nitter.koyu.space"===e||"nitter.dark.fail"===e||"nitter.snopyta.org"===e},Ni.multidomain__teddit=function(e,t){return"teddit.net"===t||"teddit.froth.zone"===e||"teddit.zaggy.nl"===e||"teddit.pussthecat.org"===e||"teddit.sethforprivacy.com"===e||"teddit.totaldarkness.net"===e||"teddit.adminforge.de"===e||"teddit.bus-hit.me"===e||"rdt.trom.tf"===e||"i.opnxng.com"===e||"teddit.garudalinux.org"===e||"tedd.it"===e||"teddit.privacytools.io"===e||"td.vern.cc"===e||"teddit.rawbit.ninja"===e||"teddit.artemislena.eu"===e||"teddit.manasiwibi.com"===e||"teddit.hostux.net"===e||"reddit.lurkmore.com"===e},Ni.multidomain__xhamster=function(e){return"xhamster.com"===e||"xhamster.one"===e||"xhamster.desi"===e||"openxh.com"===e||"openxh1.com"===e||"openxh2.com"===e||"xhopen.com"===e||"xhlocal.com"===e||"unlockxh.com"===e||"fullxh.com"===e||"xhtotal.com"===e||"localxh.com"===e||"xhofficial.com"===e},Ni.get_thumbor_url=function(e){return e=e.replace(/^\/*/,"/").replace(/^\/[-_0-9a-zA-Z]{20,}=?\/+/,"/").replace(/^\/(?:[0-9]+|orig)x(?:[0-9]+|orig)(?::[0-9]+x[0-9]+)?\/+/,"/").replace(/^\/fit-in\/+(?:[0-9]+|orig)x(?:[0-9]+|orig)\/+(?:top\/+)?/,"/").replace(/^\/filters:[^/]+\/+/,"/").replace(/^\/smart\/+/,"/").replace(/^\/(?:[0-9]+|orig)x(?:[0-9]+|orig)(?::[0-9]+x[0-9]+)?\/+/,"/").replace(/^\/*/,"")},Ni.query_discogs_images_api=function(e,t,o,r){var i=encodeURIComponent('{"discogsId":'+o+',"count":500}');g(e.api_cache,e.do_request,"discogs_images:"+o,{url:" https://release-page.discogs.com/api/graphql?operationName=ReleaseAllImages&variables="+i+"&extensions=%7B%22persistedQuery%22%3A%7B%22version%22%3A1%2C%22sha256Hash%22%3A%2213e41f41a02b02d0a7e855a71e1a02478fd2fb0a2d104b54931d649e1d7c6ecd%22%7D%7D",imu_mode:"xhr",headers:{origin:"https://www.discogs.com",referer:"https://www.discogs.com/","content-type":"application/json",accept:"*/*"},json:!0},r,function(e,t,o){var t=t.data.release.images.edges,r=[];zi(t,function(e){e=e.node;r.push(e.fullsize.webpUrl)}),e(r,21600)})},Ni.query_discogs_images_web=function(e,t,o,r){g(e.api_cache,e.do_request,"discogs_images:"+t+":"+o,{url:"https://www.discogs.com/"+t+"/"+o+"/images",imu_mode:"document"},r,function(e,t,o){var r=se(t.responseText,/<span class="thumbnail_link">.*?<img src="(https?:\/\/img\.discogs\.com\/[^"]+)"/);if(!r||!r.length)return bi(o,"Unable to find matches from",t),e(null,!1);var i=[];zi(r,function(e){i.push(ro(e[1]))}),e(i,21600)})},Ni.query_discogs_images=function(e,t,o,r){return"release"===t?Ni.query_discogs_images_api(e,t,o,r):Ni.query_discogs_images_web(e,t,o,r)},Ni.do_flickr_request=function(e,t,o){return e.do_request({url:t,method:"GET",headers:{Origin:"https://www.flickr.com",Referer:"https://www.flickr.com/","Sec-Fetch-Site":"same-site",Cookie:""},onload:o})},Ni.flickr_find_api_info=function(e,t,o){t.fetch("flickr_api_info",o,function(a){Ni.do_flickr_request(e,"https://www.flickr.com/",function(e){var t=e.responseText.match(/root\.YUI_config\.flickr\.api\.site_key\s*=\s*['"]([0-9a-f]+)['"]\s*;/);if(!t)return bi("Unable to find Flickr API key"),a(null,!1);var o=t[1];if(!o||"string"!=typeof o)return bi("Unable to find Flickr API key"),a(null,!1);var r={};if(t=e.responseText.match(/root\.auth\s*=\s*({.*?});/))try{r=K(t[1])}catch(e){r={},bi("Unable to find Flickr auth info")}else bi("Unable to find Flickr auth info");var i="",e=((t=e.responseText.match(/root\.reqId\s*=\s*["']([0-9a-f]+)["']\s*;/))&&(i=t[1]),"user"in r&&"nsid"in r.user&&(r.nsid=r.user.nsid),{key:o,nsid:r.nsid,csrf:r.csrf,reqId:i});a(e,3600)})})},Ni.flickr_api_request=function(e,t,o,r){var i="https://api.flickr.com/services/rest?csrf=";t.csrf&&(i+=t.csrf),i+="&api_key="+t.key+"&format=json&hermes=1&hermesClient=1",t.nsid?i+="&viewerNSID="+t.nsid:i+="&viewerNSID=",t.reqId&&(i+="&reqId="+t.reqId),Ni.do_flickr_request(e,i+="&format=json&nojsoncallback=1&"+o,function(e){try{var t=K(e.responseText);if("fail"===t.stat)return bi(t.message),r(null)}catch(e){return bi(e),r(null)}r(t)})},Ni.flickr_info_to_obj=function(e){function t(e){return e&&"string"!=typeof e?e._content:e}var o,r={caption:t(e.title)||t(e.description)},i={extra:r},a=e.owner?t(e.owner.nsid):t(e.pathalias),n=t(e.id),s=(a&&n&&(r.page="https://www.flickr.com/photos/"+a+"/"+n),0),l=null;for(o in e){var u,c=o.match(/^width_([0-9a-z]+)$/);c&&(u="height_"+(c=c[1]),(c="url_"+c)in e)&&u in e&&s<(u=e[o]*e[u])&&(s=u,l=e[c])}return l&&(i.url=l),i},Ni.get_redirect_url=function(e,t,o,r){var i="string"==typeof o?{url:o}:o;o=i.url,g(e,t.do_request,"redirect:"+o,i,r,function(e,t,o){return t.finalUrl?e(t.finalUrl,3600):e(null,!1)})},function(e,t){if("string"==typeof t){for(var o=[],r=0;r<t.length;r++)o.push(t.charCodeAt(r));t=o}if(e.length<t.length)return!1;for(r=0;r<t.length;r++)if(null!==t[r]&&e[r]!==t[r])return!1;return!0}),Ya=(Ni.get_file_signature=function(e,a,t,o){var n="string"==typeof t?{url:t}:t,s="file_signature:"+(t=n.url);e.fetch(s,o,function(o){function t(e){if(!r&&e.response){r=!0,i.abort();try{var t=function(e){var t,o={mp4:[[null,null,null,null,102,116,121,112,105,115,111,109],[null,null,null,null,102,116,121,112,77,83,78,86]],jpg:[[255,216,255]],gif:["GIF87a","GIF89a"],png:[[137,80,78,71,13,10,26,10]],webm:[[26,69,223,163]],webp:[[82,73,70,70,null,null,null,null,87,69,66,80]]};for(t in o)for(var r=0,i=o[t];r<i.length;r++){var a=i[r];if(tr(e,a))return t}return null}(new Uint8Array(e.response))}catch(e){return bi(s,e),o(null,!1)}o(t,3600)}}var r=!1,i=(n.responseType="arraybuffer",n.onload=t,n.onabort=t,n.onprogress=function(e){e.lengthComputable&&e.responseHeaders&&2<=e.readyState&&10<=e.loaded&&t(e)},a.do_request(n))})},function(e){return e.replace(/^[a-z]+:\/\/([^/]*)(?:\/+.*)?$/,"$1")}),Za=function(e){var t=e.replace(/^.*\.([^.]*\.[^.]*)$/,"$1");return t=/^(?:(?:com?|org|net|edu)\.[a-z]{2}|(?:ne|or)\.jp)$/.test(t)?e.replace(/^.*\.([^.]*\.[^.]*\.[^.]*)$/,"$1"):t},Ja=function(e,t){return!!/\.(?:jpe?g|png|web[mp]|gif|mp4|mkv|og[gv]|svg)(?:[?#].*)?$/i.test(e)||!(!t||!dn(t))},or=function(e,t){return t.null_if_no_change?null:e},Ye={_nir_debug_:si,nir_debug:wi,Math_floor:be,Math_round:Xi,Math_random:ye,Math_max:xi,Math_min:Ci,Math_abs:Yi,Math_pow:Zi,get_random_text:ta,console_log:vi,console_error:bi,console_warn:yi,console_trace:E,JSON_stringify:pi,JSON_parse:K,base64_decode:z,base64_decode_urlsafe:C,base64_encode:R,is_array:mi,array_indexof:hi,string_indexof:gi,string_fromcharcode:q,string_charat:B,array_extend:Ji,array_foreach:zi,array_map:ie,array_or_null:ae,array_upush:Ki,string_replaceall:Qi,match_all:se,obj_foreach:Ri,obj_extend:ea,shallowcopy:Ca,deepcopy:qi,_:Bi,settings:Ti,new_map:xt,map_set:Sa,map_get:qa,map_has:Rt,map_remove:Nt,map_foreach:yt,map_size:wt,new_set:Ba,set_add:Ta,set_has:Aa,set_remove:Ia,real_api_cache:Tt,real_api_query:g,real_website_query:qt,is_invalid_url:Ut,mod:Dt,norm_url:Lt,urljoin:Da,fillobj:ja,fillobj_urls:Pt,add_full_extensions:Jt,add_full_extensions2:jt,add_extensions:Kt,add_extensions_jpeg:Mt,add_extensions_with_jpeg:Ht,add_extensions_gif:$t,add_extensions_upper:Ft,add_extensions_upper_jpeg:Ot,add_extensions_from_webp:Gt,add_http:Wt,force_https:Vt,decodeuri_ifneeded:Xt,encodeuri_ifneeded:Ma,replace_sizes:Yt,zpadnum:Ha,hex_to_ascii:Qt,hex_to_numberarray:eo,numberarray_to_hex:to,reverse_str:oo,decode_entities:ro,encode_entities:io,encode_regex:ao,get_queries:no,stringify_queries:$a,remove_queries:so,keep_queries:lo,add_queries:uo,fuzzify_text:mo,fuzzy_date_compare:yo,parse_headers:Oa,headers_list_to_dict:Ga,headers_dict_to_list:Ye,get_resp_finalurl:So,get_ext_from_contenttype:Va,get_library:Xa,normalize_whitespace:To,strip_whitespace:Ii,get_image_size:Ko,sort_by_key:Ao,sort_by_array:Io,parse_tag_def:Eo,get_meta:Uo,fixup_js_obj:Do,fixup_js_obj_proper:Lo,common_functions:Ni,get_domain_from_url:Ya,get_domain_nosub:Za,looks_like_valid_link:Ja,IMUCache:Ea,url_basename:La,parse_int:ki,get_localstorage:Pe};if("undefined"==typeof $__imu_get_bigimage)p={type:"undefined",data:$__imu_get_bigimage,func:$__imu_get_bigimage,message:"Rules library not included"};else{try{var rr=$__imu_get_bigimage(Ye);rr&&rr.bigimage?"1h8dl6dd448im2e7"!==rr.nonce?p={type:"bad_nonce",data:rr.nonce,message:"Bad nonce, expected: 1h8dl6dd448im2e7"}:or=rr.bigimage:p={type:"returned_falsey",data:rr,message:"Unable to get bigimage function"},p&&(p.func=$__imu_get_bigimage)}catch(e){p={type:"js_error",data:e,message:"JS error fetching bigimage function",func:$__imu_get_bigimage}}$__imu_get_bigimage=void 0}p&&bi(p);function ir(o,e){if(!e)return e;mi(e)||(e=[e]);var r=[];return zi(e,function(e){if("string"==typeof e)r.push(Zt(o,e));else{if(e.url)if(mi(e.url))for(var t=0;t<e.url.length;t++)e.url[t]=Zt(o,e.url[t]);else e.url=Zt(o,e.url);r.push(e)}}),r}var Ka=function(u){var e="",t="",o="";u.host_url&&(t=(e=u.host_url.replace(/^[a-z]+:\/\/([^/]*)(?:\/.*)?$/,"$1")).replace(/^www\./,""),(o=e.replace(/^.*\.([^.]*\.[^.]*)$/,"$1")).match(/^co\.[a-z]{2}$/))&&(o=e.replace(/^.*\.([^.]*\.[^.]*\.[^.]*)$/,"$1"));try{u.document&&(document=u.document),u.window&&(window=u.window)}catch(e){}function c(e){var t=_i("img");return t.src=e,t}function s(e,t){return t?(t=e,(o=_i("video")).src=t,o):c(e);var o}function i(e,t){return t?e.nextElementSibling:e.previousElementSibling}function r(e,t,o,r){for(var i=e,a=0;a<o.length;a++){if(o[a].tagName!==i.tagName)return"default";if(o[a].classList)for(var n=0,s=o[a].classList;n<s.length;n++){var l=s[n];if(!i.classList.contains(l))return"default"}if(o[a].attrs)for(var u in o[a].attrs)if(i.getAttribute(u)!==o[a].attrs[u])return"default";i=i.parentElement}return r=i.querySelectorAll(r),d(e,r,t)}function a(t,e,o){var r;if(o.compare_els||(o.compare_urls||o.id_for_url&&("function"!=typeof o.id_for_url&&(r=o.id_for_url,o.id_for_url=function(e){e=e.match(r);return e?e[1]:null}),o.compare_urls=function(e,t){return!(!e||!t)&&o.id_for_url(e)===o.id_for_url(t)}),o.get_img_src||(o.get_img_src=cn),o.compare_urls&&(o.compare_els=function(e,t){return!(!e||!t)&&o.compare_urls(o.get_img_src(e),o.get_img_src(t))})),!o.compare_els)return bi("compare_els/compare_urls/id_for_url not present"),!1;var i,a,n=null;if(o.thumbs_selector_global)n=document.querySelector(o.thumbs_selector);else for(var s=t;(s=s.parentElement)&&!(n=s.querySelector(o.thumbs_selector)););return n?(i=n.querySelectorAll(o.thumb_selector))?(a=null,zi(i,function(e){if(o.compare_els(t,e))return a=e,!1}),a?en(a,e):(bi("Unable to find thumb for",t,"in",n),!1)):(bi("No thumbs for",n),!1):(bi("Unable to find thumbs element for",t),!1)}var d=function(e,t,o){for(var r=cn(e),i=-1,a=0;a<t.length;a++)if("string"==typeof t[a]){if(r===t[a]){i=a;break}}else if(e===t[a]){i=a;break}return-1===i?null:o?i+1>=t.length?null:t[i+1]:i-1<0?null:t[i-1]};return"imgur.com"===o&&"i.imgur.com"!==e?{gallery:function(n,s){if(!n)return"default";function t(e){return r(e)||o()}var o=function(){if(!u.host_url.match(/\/a\/+[^/]+\/+embed/))for(var e=n;e=e.parentElement;)if("DIV"===e.tagName&&e.classList&&e.classList.contains("post-image-container"))for(;e;){var t=e.nextElementSibling;if(!(e=t=s?t:e.previousElementSibling))return"default";t=e.querySelector("img");if(t)return t}return"default"},r=function(e){var t=Ei(n.src,{fill_object:!0,use_cache:!1,rule_specific:{imgur_source:!1}})[0].url.replace(/.*\/([^/._]+?)(?:_[^/]+)?\.[^/.]*?(?:[?#].*)?$/,"$1");if(t!==n.src)for(var o,r=0;r<e.length;r++)if(e[r].hash===t){if(s){if(r+1>=e.length)return null;o=r+1}else{if(r-1<0)return null;o=r-1}var i=e[o].ext,a=(!u.exclude_videos||".mp4"!==i&&".webm"!==i||(i=".jpg"),_i("img"));return a.src="https://i.imgur.com/"+e[o].hash+i,a}return null};if(!u.window.runSlots&&u.do_request)return Ni.fetch_imgur_webpage(u.do_request,Tt,void 0,u.host_url,function(e){if(!e||!e.imageinfo||e.bad)return u.cb(o());try{return u.cb(t(e.imageinfo.album_images.images))}catch(e){return bi(e),u.cb(o())}}),"waiting";try{return t(u.window.runSlots.item.album_images.images)}catch(e){return bi(e),o()}}}:"instagram.com"===o?{element_ok:function(e){return"VIDEO"===e.tagName||"default"},gallery:function(e,t){return"default"}}:"tiktok.com"===o?{gallery:function(e,t){return"VIDEO"===e.tagName&&e.parentElement&&e.parentElement.parentElement&&e.parentElement.classList.contains("video-card")&&e.parentElement.parentElement.classList.contains("image-card")?en(e.parentElement.parentElement,t):"default"}}:"twitter.com"===t||"x.com"===t?{gallery:function(e,o){for(var t,r=function(e){return"A"===e.tagName&&e.href&&/\/status\/+[0-9]+\/+photo\/+/.test(e.href)},i=function(e){e=e.querySelector("img");if(e){var t=e.previousElementSibling;if(t&&"DIV"===t.tagName&&t.style.backgroundImage)return t}return e},a=function(e){return o?e.nextElementSibling:e.previousElementSibling},n=function(e){var t;return"A"===e.tagName?i(e):"DIV"!==e.tagName?"default":(t=o?0:e.children.length-1,0<e.children.length&&r(e.children[t])?i(e.children[t]):void 0)},s=e;s=s.parentElement;)if(r(s))return(t=a(s))?n(t):(t=a(s.parentElement))?n(t):null;return"default"},element_ok:function(e){if("VIDEO"===e.tagName&&Ni.get_twitter_tweet_link(e))return!0;return"default"}}:"500px.com"===t?{element_ok:function(e){return!("A"!==e.tagName||!e.classList.contains("photo_link")||!e.querySelector("div.nsfw_placeholder_content"))||"default"}}:"snapchat.com"===o?{gallery:function(e,a){var n=Ni.get_snapchat_info_from_el(e);return n?(Ni.get_snapchat_storysharing(Tt,u.do_request,n.username,function(e){if(!e)return u.cb(null);if(!("pos"in n)||-1===n.pos)for(var t=0;t<e.snaps.length;t++)if(e.snaps[t].media.mediaUrl===n.url){n.pos=t;break}var o,r,i;return-1===n.pos&&(n.pos=e.snaps.length-1),!("pos"in n)||(o=n.pos+(a?1:-1))<0||o>=e.snaps.length?u.cb(null):(r=e.snaps[o].media.mediaUrl,(i=s(r,/\.mp4(?:[?#].*)?$/.test(r)&&!1)).setAttribute("data-username",n.username),i.setAttribute("data-pos",o),i.setAttribute("data-url",r),i.setAttribute("data-imu","true"),u.cb(i))}),"waiting"):"default"},element_ok:function(e){return"VIDEO"===e.tagName||("DIV"===e.tagName&&1===e.children.length&&"VIDEO"===e.children[0].tagName?e.children[0]:"default")}}:"allmusic.com"===o?{gallery:function(e,t){return"IMG"===e.tagName&&e.parentElement&&e.classList.contains("gallery-main-image")?(e=e.parentElement.querySelector("#carousel > ul > li.thumb-img > img.highlight-on"))?(e=e.parentElement,function(e){return e.classList.contains("thumb-img")?e.querySelector("img"):null}(t?e.nextElementSibling:e.previousElementSibling)):(yi("Unable to find carousel thumbnail image"),"default"):"default"}}:"flickr.com"===o?{element_ok:function(e){if("DIV"===e.tagName&&e.classList.contains("photo-well-media-scrappy-view"))return!0;for(var t=e;t=t.parentElement;)if("DIV"===t.tagName&&t.classList.contains("restricted-interstitial"))return!0;return"default"}}:"modelmayhem.com"===o?{element_ok:function(e){for(var t=e;t=t.parentElement;)if("DIV"===t.tagName&&"viewpic"===t.id)return!0;return"default"}}:"imagefap.com"===t&&/\/photo\/+[0-9]+\//.test(u.host_url)?{gallery:function(e,r){if("IMG"!==e.tagName||!u.do_request)return"default";var i,a,t,o,n,s=!1,l=e.parentElement;if(!l&&e.hasAttribute("data-imu-imagefap-album"))s=!0;else for(;l=l.parentElement;)if("DIV"===l.tagName&&"navigation"===l.id||"DIV"===l.tagName&&l.classList.contains("image-wrapper")){s=!0;break}return s&&(a=(i=function(e){var t=e.replace(/.*\/images\/+.*\/([0-9]+)\.[^/.]+(?:[?#].*)?$/,"$1");return t!==e?t:null})(e.src))?(e=(e=u.host_url.match(/\/photo\/+([0-9]+)\//))[1],o=function(e){if(e)for(var t=0;t<e.length;t++){var o=i(e[t]);if(a===o)return(o=t+(r?1:-1))<0||o>=e.length?u.cb(null):((o=c(e[o])).setAttribute("data-imu-imagefap-album","true"),u.cb(o))}return u.cb("default")},n="imagefap_album:"+(t=e),Tt.fetch(n,o,function(r){u.do_request({url:"https://www.imagefap.com/photo/"+t+"/",method:"GET",onload:function(e){var t,o;return 200!==e.status?(bi(n,e),r(null,!1)):(t=se(e.responseText,/<li>\s*<a href=\"https:\/\/[^/.]+\.imagefap\.com\/+images\/[^"]+".*?>\s*<img border=0 src2="(https:\/\/[^/.]+\.imagefap\.com\/[^"]+)"/))?(o=[],zi(t,function(e){o.push(ro(e[1]))}),r(o,3600)):(yi(n,"Unable to find album matches for",e),r(null,!1))}})}),"waiting"):"default"}}:"gog.com"===t?{gallery:function(e,t){for(var o=e;o=o.parentElement;)if("DIV"===o.tagName&&o.classList.contains("productcard-thumbnails-slider__slide-item")){var r=i(o,t);if(!r){if(!o.parentElement.classList.contains("productcard-thumbnails-slider__slide"))return null;if(!(r=i(o.parentElement,t)))return null;if(!(r=t?r.children[0]:r.children[r.children.length-1]))return null}return r.querySelector("picture, img")}return"default"}}:"booth.pm"===o?{element_ok:function(e){return"DIV"===e.tagName&&(e.classList.contains("swap-image")||e.classList.contains("thumb"))&&0<e.children.length&&"IMG"===e.children[0].tagName?e.children[0]:"default"}}:"instyle.com"===o?{element_ok:function(e){if("DIV"===e.tagName&&e.classList.contains("lazy-image"))return e.querySelector(".image-overlay > img")}}:"asiansister.com"===o?{element_ok:function(e){if("DIV"===e.tagName&&"myModal"===e.id)return e.querySelector("img.modalTest-content")}}:"naver.com"===o&&/\/viewer\/+postView\.nhn\?/.test(u.host_url)?{gallery:function(e,t){var o=e;if("IMG"===o.tagName&&o.classList.contains("se_mediaImage"))for(;o=o.parentElement;)if("DIV"===o.tagName&&o.classList.contains("sect_dsc")){var r=o.querySelectorAll("img.se_mediaImage"),r=d(e,r,t);if(null!==r)return r||null}return"default"}}:"fetlife.com"===o?{element_ok:function(e){if("DIV"===e.tagName||"A"===e.tagName)for(var t=0;t<e.children.length;t++){var o=e.children[t];if("IMG"===o.tagName&&(o.classList.contains("ipp")||o.classList.contains("fl-disable-interaction")))return e.children[t]}}}:"youtube.com"===o?{element_ok:function(e){if("DIV"===e.tagName&&"background"===e.id){e=e.querySelector("div#backgroundFrontLayer");if(e)return e}}}:"ray-web.jp"===t?{element_ok:function(e){var t;if(e.children)return t=null,zi(e.children,function(e){if("IMG"===e.tagName)return t=e,!1}),t||void 0}}:"klix.ba"===t?{gallery:function(e,t){e=a(e,t,{id_for_url:/.*\/([0-9]+\.[0-9]+)(?:_[^/.]+)?\.[a-z]+(?:[?#].*)?$/i,thumbs_selector:"div.galleria-thumbnails",thumb_selector:".galleria-image > img"});return!1!==e?e:"default"}}:"olx.ba"===t?{gallery:function(e,t){e=a(e,t,{id_for_url:/.*\/slika-([0-9]+-[0-9a-f]{5,})-[a-z]+\./i,thumbs_selector:"#fancybox-thumbs",thumbs_selector_global:!0,thumb_selector:"li > a > img"});return!1!==e?e:"default"}}:"asics.com"===t?{gallery:function(e,t){var o=function(e){if("PICTURE"===e.tagName){var t=e.querySelector("source");if(t)return o(t)}else if("SOURCE"===e.tagName)return e.srcset;return cn(e)},e=a(e,t,{id_for_url:/.*\/is\/+image\/+asics\/+([^/.?#]+)(?:\.[^/]+?)?(?:[?#].*)?$/,get_img_src:o,thumbs_selector:"#thumbnails > ul div.slick-track",thumbs_selector_global:!0,thumb_selector:"li.thumb > a > picture"});return!1!==e?e:"default"}}:"bcy.net"===t?{gallery:function(e,t){var o;return e&&"IMG"===e.tagName&&("default"!==(o=r(e,t,[{tagName:"IMG"},{tagName:"DIV",classList:["img-wrap-inner"]},{tagName:"DIV",classList:["img-wrap"]},{tagName:"DIV",classList:["inner-container"]}],".inner-container > .img-wrap > .img-wrap-inner > img"))||"default"!==(o=d(e,document.querySelectorAll("li.li_item_box a.img_box img"),t)))?o:"default"}}:"sfmoma.org"===t?{element_ok:function(e){if("CANVAS"===e.tagName)return!0}}:"behance.net"===t?{element_replace:function(e){if(e.matches("span.grid__item-filler")&&e.previousElementSibling){e=e.previousElementSibling;if(e.matches("img.grid__item-image"))return e}}}:"alamy.com"===t?{element_ok:function(e){if("SVG"===e.tagName.toUpperCase())return!0}}:"reddit.com"===o?{gallery:function(e,t){if("A"===e.tagName.toUpperCase()&&e.parentElement&&"P"===e.parentElement.tagName.toUpperCase()&&e.parentElement.classList.contains("title"))return r(e,t,[{tagName:"A"},{tagName:"P",classList:["p.title"]},{tagName:"DIV",classList:["top-matter"]},{tagName:"DIV",classList:["entry"]},{tagName:"DIV",classList:["thing"]}],".thing > .entry > .top-matter > p.title > a")}}:"gofile.io"===t?{element_ok:function(e){if("A"===e.tagName.toUpperCase()&&e.classList.contains("contentLink"))return!0},gallery:function(e,t){if("A"===e.tagName.toUpperCase()&&e.classList.contains("contentLink"))return r(e,t,[{tagName:"A",attrs:{class:e.getAttribute("class")}},{tagName:"DIV"},{tagName:"DIV",classList:["contentId"]}],'.contentId > div > a[class="'+e.getAttribute("class")+'"]')}}:"cnn.com"===o?{element_ok:function(e){if("BUTTON"===e.tagName.toUpperCase()&&(e.classList.contains("gallery-inline__next-overlay")||e.classList.contains("gallery-inline__prev-overlay"))){e=e.parentElement;if(e.classList.contains("gallery-inline__container"))return{el:e.querySelector(".gallery-inline__slides"),search:!0}}}}:"kalyanyasaswi.com"===t?{element_ok:function(e){if("SPAN"===e.tagName.toUpperCase()&&e.classList.contains("grid__item-filler")){e=e.previousElementSibling;if(e&&"IMG"===e.tagName.toUpperCase()&&e.classList.contains("grid__item-image"))return e}}}:"open.spotify.com"===e?{element_ok:function(e){if("card-click-handler"===e.getAttribute("data-testid")){e=e.previousElementSibling;if((e=e&&e.previousElementSibling)&&"DIV"===e.tagName)return{el:e,search:!0}}}}:null},ar=function(e,t,o){if("links"!==e.type)return null;var r=-1;if(zi(e.links,function(e,t){if(e.is_current)return r=t,!1}),r<0)return null;for(var i=0;i<e.links.length;i++)delete e.links[i].is_current;return!((r+=o?1:-1)<0||r>=e.links.length)&&(e.links[r].is_current=!0,e.links[r].url)},Qa=function(e,t,o){var r;if(e&&(r=e.album_info),t){var e=t.getAttribute("imu-album-info");if(e)try{r=K(e)}catch(e){bi(e)}}return r?(r=qi(r),(e=ar(r,t,o))&&("string"==typeof e&&(t=e,(e=_i("img")).setAttribute("data-imu-fake-src",t)),e.hasAttribute("imu-album-info")||e.setAttribute("imu-album-info",pi(r))),e):null},en=null,nr=function(e,t){return!(!(t=ja(t))[0]||t[0].url!==e)},sr=function(e){return e.replace(/^[a-z]+:\/\/[^/]+\/+web\/+[0-9*]+\/+(https?:\/\/)/,"$1")},tn=function(o){for(var e=["allow_thirdparty","allow_apicalls","allow_thirdparty_libs","allow_thirdparty_code",{our:"process_format",settings:"process_format",obj:!0}],t=0;t<e.length;t++){var r,i,a=e[t],n=!1;"string"==typeof a?i=r=a:(r=a.our,i=a.settings,n=!!a.obj),n?(r in o||(o[r]={}),Ri(Ti[i],function(e,t){e in o[r]||(o[r][e]=t)})):r in o||(o[r]=Ti[i]+""=="true")}return o},on=function(e){if("exclude_problems"in e)for(var t in Ti){var o,r;t in ot&&(o=ot[t],r=hi(e.exclude_problems,o),Ti[t]?0<=r&&e.exclude_problems.splice(r,1):r<0&&e.exclude_problems.push(o))}if(e.allow_apicalls||(e.do_request=null),"rule_specific"in e){var i,a={deviantart_prefer_size:!0,deviantart_support_download:!0,ehentai_full_image:!0,imgur_filename:!0,imgur_source:!0,instagram_use_app_api:!0,instagram_dont_use_web:!0,instagram_prefer_video_quality:!0,instagram_gallery_postlink:!0,snapchat_orig_media:!0,teddit_redirect_reddit:!0,tiktok_app_api:!0,tiktok_no_watermarks:!0,tiktok_thirdparty:!0,tumblr_api_key:!0,twitter_use_ext:!0,youtube_replace_n:!0,mouseover_linked_image:"linked_image"};for(i in a){var n=a[i];!0===n&&(n=i),e.rule_specific[n]=Ti[i]}}return e.exclude_videos=!1,Ti.allow_webarchive&&e.host_url&&(e.host_url=sr(e.host_url)),e},Ei=function(d,p){for(var e in p=p||{},(_e||li)&&tn(p),Ei.default_options)if(e in p){if(Oe(p[e]))for(var t in Ei.default_options[e])t in p[e]||(p[e][t]=qi(Ei.default_options[e][t]))}else p[e]=qi(Ei.default_options[e]);(_e||li)&&(on(p),Ti.allow_webarchive)&&"string"==typeof d&&(d=sr(d));function o(){if(si&&wi("bigimage_recursive","do_cache (endhref, currentobj):",qi(n),qi(w)),n&&k(n)){var e=ja(n,w);if(e&&e.can_cache){if((v=k(e))&&!l&&!0===p.use_cache&&!m)for(var t=0;t<b.length;t++){var o=b[t];o&&(si&&wi("bigimage_recursive","do_cache:",o,"=",qi(e)),Bt.set(o,qi(e),p.urlcache_time))}}else si&&wi("bigimage_recursive","do_cache: skipping cache because cache_endhref.can_cache == false")}}function r(e){if(si&&wi("bigimage_recursive","parse_bigimage (big)",qi(e)),!e)return _===d&&p.null_if_no_change&&(_=e),!1;var t=ir(v,e);if(si&&wi("bigimage_recursive","parse_bigimage (newhref1)",qi(t)),!t)return!1;var e=["extra","album_info"],o={},r=(0<y.length&&(y[0].likely_broken&&(o.likely_broken=y[0].likely_broken),y[0].fake&&(o.fake=y[0].fake),zi(e,function(e){e in y[0]&&y[0][e]&&(o[e]=qi(y[0][e]))})),ja(qi(t),o));si&&wi("bigimage_recursive","parse_bigimage (objified)",qi(r));for(var i=0;i<r.length;i++){r[i]=qi(r[i]);var a=r[i],n=function(){si&&wi("bigimage_recursive","parse_bigimage (removing obj)"),r.splice(i,1),mi(t)&&t.splice(i,1),i--};if(null!==a.url||a.waiting){for(var s in""===a.url&&g&&(a.url=f),a.problems)a.problems[s]&&0<=hi(p.exclude_problems,s)&&(si&&wi("bigimage_recursive","Removing problematic:",a.url,"because of",s),n());if(a.url&&p.filter&&!p.filter(a.url))vi("Blacklisted:",a.url),n();else if(p.exclude_videos&&"video"===a.media_info.type)n();else if(y[0]&&a._copy_old_props)for(var l=0;l<a._copy_old_props.length;l++){var u=a._copy_old_props[l];a[u]=qi(y[0][u])}}else n()}if(si&&wi("bigimage_recursive","parse_bigimage (objified, processed)",qi(r)),0===r.length)return si&&wi("bigimage_recursive","parse_bigimage: objified.length == 0"),!1;h=m=!1;var c,e=t;if("object"==typeof(e=mi(t)?t[0]:e)){if(w=t,e.waiting&&(m=!0,!e.url))return _=t,!1;e.forcerecurse&&(h=!0)}else w=null;if(nr(v,r)&&!h){si&&wi("bigimage_recursive","parse_bigimage: sameurl(currenthref, objified) == true (newhref, nh1, pastobjs)",qi(v),qi(r),qi(_),qi(t),qi(y));try{!p.fill_object||!0===_[0].waiting&&!r[0].waiting?_=r:y.length&&((c=function(e){zi(Pa(e),function(e,t){(e=qi(e)).url||(e.url=v);for(var o=0,r=y;o<r.length;o++){var i=r[o];if(i.url===e.url){for(u in e)i[u]=e[u];break}}})})(_),c(t),_=null,w=y[0])}catch(e){}return!1}if(!h)for(i=0;i<b.length;i++)if(nr(b[i],r))return si&&wi("bigimage_recursive","parse_bigimage: sameurl(pasthrefs["+i+"], objified) == true",qi(b[i]),qi(r),qi(_)),_=r,!1;return si&&wi("bigimage_recursive","parse_bigimage: setting currenthref and newhref"),v=k(r),_=t,b.push(v),Ji(e=[],r),Ji(e,y),y=e,!(r[0].norecurse||si&&si.no_recurse)}function i(){if(si&&wi("bigimage_recursive","do_bigimage",v,qi(p)),p.use_cache&&Bt.has(v)&&!h)return si&&wi("bigimage_recursive","do_bigimage: newhref = url_cache["+v+"]",qi(Bt.get(v))),_=Bt.get(v),l=!0,0;if(p.filter&&!p.filter(v))return vi("Blacklisted: "+v),0;var e;if(p.catch_errors)try{e=c(v,p)}catch(e){bi(e),bi(e.stack)}else e=c(v,p);return r(e)}function a(){if(p.fill_object){if(si&&wi("bigimage_recursive","finalize (fillobj(newhref, currentobj), pastobjs)",qi(_),qi(w),qi(y)),n=null===_?Pa(qi(w)):ja(qi(_),w),p.include_pastobjs)for(var e=0;e<y.length;e++)rn(n,y[e].url)<0&&!y[e].fake&&n.push(qi(y[e]))}else si&&wi("bigimage_recursive","finalize (newhref)",qi(_)),n=qi(_);si&&wi("bigimage_recursive","endhref =",qi(n))}var n,s,m=!1,h=!1,g=!1,f=d,_=("string"==typeof d&&/^(?:data|blob):/.test(d)&&(g=!0),d),v=d,b=[d],y=[],w=null,l=!1,u=0,c=p._internal_bigimage||or,k=function(e){return(e=e&&(mi(e)?e[0]:e))&&(v=mi(e.url)?e.url[0]:e.url)};for(p.cb&&(s=p.cb,p.cb=function(e){function t(){si&&wi("bigimage_recursive","do_end"),a(),o();var e=null;p.null_if_no_change||(e=b[b.length-1]),!n||mi(n)&&!n[0]||"string"==typeof n?n=e:mi(n)&&"string"==typeof n[0]?n[0]=e:mi(n)&&n[0]&&!n[0].url&&(n[0].url=e),mi(n)||(n=[n]),si&&wi("bigimage_recursive","do_end (endhref, pasthrefs, pastobjs)",qi(n),qi(b),qi(y)),s(n)}si&&wi("bigimage_recursive","options.cb",qi(e));if(r(e)&&!(u+1>=p.iterations)||h){for(;u<p.iterations&&i();u++);m||t()}else t()}),p._internal_info={},u=0;u<p.iterations&&i();u++);return si&&wi("bigimage_recursive","return finalize"),a(),o(),_=null,p.cb&&!m&&p.cb(n),qi(n)};Ei.default_options=$e,Ei.internal={settings:Ti,settings_meta:Ai,strings:Ze},Ei.is_internet_url=function(e){return!(!e||"string"!=typeof e||!/^https?:\/\//.test(e)||/^[a-z]+:\/\/(127\.0\.0\.1|192\.168\.[0-9]+\.[0-9]+|10\.[0-9]+\.[0-9]+\.[0-9]+|172\.(?:1[6-9]|2[0-9]|3[01])\.[0-9]+\.[0-9]+|localhost|[^/.]+)\//.test(e)||/^[a-z]+:\/\/(?:[0-9a-f]*\:){1,}\//.test(e))},Ei.clear_caches=function(){Bt.clear(),Tt.clear(),It.clear()};function lr(e,t){for(var o=ur(e),r=0;r<t.length;r++){var i=hi(o,t[r].url);if(0<=i)for(var a in t[r]){var n=t[r][a],s=e[i][a];s!==n&&pi(s)===pi(Fe[a])&&(e[i][a]=n)}else e.push(t[r])}return e}var ur=function(e){for(var t=[],o=0;o<e.length;o++)t.push(e[o].url);return t},rn=function(e,t){return hi(ur(e),t)},an=function(l,u,c,d){for(var e,t={},p=(d=d||{fine_urls:[],tried_urls:[],oldobj:[],tried_imus:[],redirect_map:{}}).fine_urls,m=d.tried_urls,h=d.oldobj,g=!1,o=0,r=d.tried_imus;o<r.length;o++)r[o]===l&&(g=!0);for(e in d.tried_imus.push(l),u)"cb"===e?t.cb=function(r){si&&(vi("bigimage_recursive_loop's cb: obj:",qi(r)),vi("bigimage_recursive_loop's cb: oldobj:",qi(h))),r=lr(r,h);for(var i=ur(r),e=0;e<r.length;e++)if(r[e].bad){var t=r[e].url;r.splice(e,1),i.splice(e,1),e--;for(var o=0;o<m.length;o++)if(m[o].newurl===t){var a=m[o].newobj.url,n=hi(i,a);if(m[o].redirects_to_bad=!0,0<=n){r.splice(n,1),i.splice(n,1),n<e?e-=2:n===e&&e--;break}}}si&&(vi("bigimage_recursive_loop's cb: obj after:",qi(r)),vi("bigimage_recursive_loop's cb: image_urls after:",qi(i)),vi("bigimage_recursive_loop's cb: fine_urls:",qi(p)),vi("bigimage_recursive_loop's cb: tried_urls:",qi(m)));for(e=0;e<p.length;e++)if(0<=(n=hi(i,p[e].url)))return r=[r[n]],si&&vi("bigimage_recursive_loop's cb: returning fine_url",qi(r),qi(p[e])),u.cb(r,p[e].data);for(var s=!1,e=0;e<m.length;e++)if(m[e].url===l||s){if(!0!==m[e].redirects_to_bad)return 0<=(n=hi(i,m[e].newurl))?(r=[r[n]],si&&vi("bigimage_recursive_loop's cb: returning tried_url",qi(r),qi(m[e]),s),u.cb(r,m[e].data)):(si&&vi("bigimage_recursive_loop's cb: returning null tried_url",qi(m[e]),s),u.cb(null,m[e].data));s=!0}si&&vi("bigimage_recursive_loop: about to query",qi(r)),c(r,function(e,t,o){if(si&&vi("bigimage_recursive_loop (query: newurl, newobj, data):",qi(e),qi(t),o),!e)return si&&vi("bigimage_recursive_loop (query): returning null",o),u.cb(null,o);p.push({url:e,data:o}),m.push({url:l,data:o,newurl:e,newobj:qi(t),redirects_to_bad:!1}),d.redirect_map[l]=e;t=hi(i,e);if(t<0&&g)return si&&vi("bigimage_recursive_loop (query): already tried url",qi(d)),u.cb(null,o);t<0||!r[t].norecurse?(d.oldobj=r,an(e,u,c,d)):(r=[r[t]],si&&vi("bigimage_recursive_loop (query): returning",qi(r),o),u.cb(r,o))})}:t[e]=u[e];return si&&vi("bigimage_recursive_loop",l,qi(u),c,qi(d)),Ei(l,t)},nn=(Ei.loop=an,function(e){return e.tagName.toUpperCase()}),sn=function(e){return e.currentStyle||window.getComputedStyle(e)},cr=function(e){for(var t=["class","id","tabindex","style"],o=document.createElementNS("http://www.w3.org/2000/svg","svg"),r=(o.innerHTML=e.innerHTML,o.setAttribute("xmlns","http://www.w3.org/2000/svg"),e.attributes),i=0;i<r.length;i++){var a=r[i].name;0<=hi(t,a)||/^on/.test(a)||/^aria-/.test(a)||o.setAttribute(a,r[i].value)}var n=sn(e),e=e.getAttribute("fill")||n.fill,n=(e&&o.setAttribute("fill",e),""+o.outerHTML);return"data:image/svg+xml,"+encodeURIComponent(n)},ln=function(e,t){try{return e.toDataURL(t)}catch(e){bi(e)}},un=function(e,t){return e&&(!/^blob:/.test(e)||!t)},cn=function(e){if("string"==typeof e)return e;var t=nn(e);if("A"===t)return e.href;if("IFRAME"===t)return e.src.replace(/^javascript:window\.location\.replace\(["']([^"']+)["']\)$/,"$1");if("CANVAS"===t)return ln(e,"image/png");if("SVG"===t)return Ti.mouseover_allow_svg_el?cr(e):null;if("VIDEO"===t)return e.currentSrc||e.src||e.poster;if("AUDIO"===t)return e.currentSrc||e.src;if("SOURCE"===t){if(e.parentElement){var o=cn(e.parentElement);if(o&&un(o,!0))return o}return e.currentSrc||e.src}if("IMAGE"===t)return e.getAttribute("xlink:href")||null;o=e.currentSrc||e.src;if(!o&&"IMG"===e.tagName){t=e.getAttribute("data-imu-fake-src");if(t)return t}return o},dn=function(e){var t=cn(e),o={fill_object:!0,exclude_problems:[],use_cache:"read",use_api_cache:!1,cb:function(){},do_request:function(){}},e=(_&&(o.host_url=window.location.href,o.element=e,o.document=document,o.window=window),Ei(t,o));if(1!==e.length)return!0;var r,i=e[0];if(i.url!==t)return!0;for(r in i)if("url"!==r){if(!(r in Fe))return!0;if(pi(Fe[r])!==pi(i[r]))return!0}return!1},dr=function(e,t,o){li?ui({type:"redirect",data:{obj:e,tabId:o}},function(){t()}):t()},pr=function(e,t){if(si&&vi("redirect",e,t),!(si&&si.no_redirect||e===window.location.href)){try{window.stop()}catch(e){}dr(t,function(){Ti.redirect_history?window.location.assign(e):window.location.replace(e)})}},mr=function(){document.documentElement&&(document.documentElement.style.cursor="wait")},hr=function(){document.documentElement&&(document.documentElement.style.cursor="default")},gr=null,fr=function(e){function t(){gr||Ti.redirect_infobox_timeout<=0||(gr=setTimeout(function(){document.body.removeChild(o)},1e3*Ti.redirect_infobox_timeout))}var o=_i("div");o.style.backgroundColor="#fffabb",o.style.color="#000",o.style.position="absolute",o.style.top="0px",o.style.left="0px",o.style.padding=".3em .8em",o.style.boxShadow="0px 0px 20px rgba(0,0,0,.6)",o.style.margin=".8em",o.style.lineHeight="1.5em",o.innerHTML=e,o.onclick=function(){document.body.removeChild(o),gr&&(clearTimeout(gr),gr=null)},document.body.appendChild(o);document.hasFocus()?t():(document.onfocus=function(){t(),document.onfocus=null},window.onfocus=function(){t(),window.onfocus=null})},_r=function(e,t){if(e&&mi(e)){for(var o=0;o<e.length;o++)if(t.toString()===e[o].toString())return!0;return!1}return null},vr=function(e){mi(e[0])||(e=[e]);for(var t=[],o=0;o<e.length;o++)t.push(function(e){e=e.sort(function(e,t){return e===t?0:"ctrl"===e?-1:"ctrl"===t?1:"shift"===e?-1:"shift"===t?1:"super"===e?-1:"super"===t?1:"alt"===e?-1:"alt"===t?1:e<t?-1:void 0});for(var t=[],o=0;o<e.length;o++){var r=B(e[o],0).toUpperCase()+e[o].slice(1);1!==e.length||"Left"!==r&&"Right"!==r&&"Up"!==r&&"Down"!==r||(r+=" Arrow"),t.push(Bi(r))}return t.join("+")}(e[o]));return t},pn=function(e){return vr(e).join(" / ")},mn=function(e,t){t=new RegExp("^((?:.{"+t+"}|.{0,"+t+"}[\\r\\n]))[\\s\\S]+?$");return e.replace(t,decodeURIComponent("%241%E2%80%A6"))},hn=function(e){for(var t=["","K","M","G","T","P"];1024<e&&1<t.length;)e/=1024,t.shift();return e.toFixed(2).replace(/\.00$/,"")+t[0]+"B"},br=function(a,n,s,l,r){if(si&&vi("check_image",qi(a),n,r),(a=mi(a)?a[0]:a)&&a.url){var e=function(){a&&a.extra&&(a.extra.page&&vi("Original page: "+a.extra.page),a.extra.caption&&vi("Caption: "+a.extra.caption),a.extra.created_date&&vi("Created date: "+new Date(a.extra.created_date)),a.extra.updated_date)&&vi("Updated date: "+new Date(a.extra.updated_date))},u=a.url;if(u===n)e(),si&&vi("(check_image) url == page_url",u,n),l(u);else{var t=a.headers;if(vi(a.url),e(),a&&(a.bad?o="Bad image":"video"===a.media_info.type&&a.media_info.delivery?o="Can't redirect to streaming video type "+pi(a.media_info.delivery):a.is_pagelink&&(o="Can't redirect to page"),o))(s||bi)(o);else{var c=function(e){if(_){if(r)return s(e,!0);if(Ti.redirect_enable_infobox){var t=Ui("mouseover_trigger_behavior");Ti.mouseover?"keyboard"===t?o=pn(Ti.mouseover_trigger_key):"mouse"===t&&(o="delay "+Ti.mouseover_trigger_delay+"s"):o="disabled",Mi=!0;var o,t=Bi("Mouseover popup (%%1) is needed to display the original version","<a style='color:blue; font-weight:bold' href='"+v+"' target='_blank' rel='noreferrer'>"+o+"</a>")+" ("+Bi(e)+")";Ti.redirect_infobox_url&&((o=_i("a")).href=u,o.innerText=mn(u,80),o.setAttribute("target","_blank"),t+="<br />"+o.outerHTML);try{fr(t)}catch(e){bi(e)}}}};if(!si||!si.no_request){_&&mr();var e=u.replace(/^([a-z]+:\/\/[^/]*).*?$/,"$1"),o=qi(t),d=!0,i=(t&&0!==Object.keys(t).length||(d=!(t={})),Ba());for(p in t)Ta(i,p.toLowerCase());var p,m={referer:n,accept:"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9","sec-fetch-dest":"document","sec-fetch-mode":"navigate","sec-fetch-site":"cross-site"};for(p in m)Aa(i,p)||(t[p]=m[p]);if((d=d&&1===Object.keys(o).length&&"Referer"in o&&(o=(o=n).replace(/^[a-z]+:\/\/([^/]*).*?$/,"$1"),e=u.replace(/^[a-z]+:\/\/([^/]*).*?$/,"$1"),a.referer_ok.same_domain&&o===e||a.referer_ok.same_domain_nosub&&Za(o)===Za(e))?!1:d)&&!li)document.documentElement.style.cursor="default",vi("Custom headers needed, currently unhandled"),c("custom headers");else{if(si&&vi("(check_image) headers",t),a.always_ok||!a.can_head&&!Ti.canhead_get)return si&&vi("(check_image) always_ok || !can_head",u,qi(a)),l(u);var o="HEAD",h=(!a.can_head&&Ti.canhead_get&&(si&&vi("Trying GET"),o="GET"),!1),g=function(e){if(!h)if(h=!0,si&&vi("(check_image) resp",e),_e&&"FireMonkey"===w&&!e)(s||bi)(i="Error: resp == null (tracking protection blocked, FireMonkey bug)");else if(!(e.readyState<2))if(_e&&!e.status&&e.readyState<4)h=!1;else if(e.readyState<4&&f&&f.abort&&f.abort(),0===e.status||Ne(e))(s||bi)(i="Error: status == 0");else if(hr(),e.finalUrl===n)vi(e.finalUrl),vi("Same URL");else{var t=Oa(e.responseHeaders),t=Ga(t),o=(si&&vi("(check_image) resp headers",t),e.status.toString()[0]),r=_r(a.head_ok_errors,e.status);if("4"!==o&&"5"!==o||405===e.status||!0===r){var i,o=t["content-type"];if(!(o=(o=o||"").toLowerCase()).match(/text\/html/)&&o||a.head_wrong_contenttype||!0===r)if(li&&!Ti.redirect_disable_for_responseheader||!(a.forces_download||(o.match(/(?:binary|application|multipart|text)\//)||"image/tiff"===o||"image/lsr"===o||o.match(/^ *\[/))&&!a.head_wrong_contenttype||t["content-disposition"]&&t["content-disposition"].toLowerCase().match(/^ *attachment/))){if(!t["content-length"]||"0"!=t["content-length"]||a.head_wrong_contentlength)return Mr(a.bad_if,e)?(bi("Bad image (bad_if)",a.bad_if,e),s("bad image")):void(!d||li?(si&&vi("(check_image) finalUrl",e.finalUrl||u,e,qi(a)),l(e.finalUrl||u)):vi("Custom headers needed, currently unhandled"));bi("Zero-length image")}else bi("Forces download"),c("forces download");else(s||bi)(i="Error: Not an image: "+(o||"(no content-type)"))}else i="Error: "+e.status,(s||bi)(i)}},f=Si({method:o,url:u,headers:t,trackingprotection_failsafe:!0,onprogress:function(e){2<=e.readyState&&e.responseHeaders&&g(e)},onload:g})}}}}}else l(a)};function yr(e){return/^video\//.test(e)?!!Ti.redirect_video:/^audio\//.test(e)?!!Ti.redirect_audio:!/^(?:text|application)\//.test(e)}function gn(){return yr(document.contentType)}function wr(d,e,o){e={fill_object:!0,force_page:e,cb:function(e){var t;si&&vi("do_redirect (final)",e),hr(),e&&(_&&Ti.print_imu_obj&&vi(e),(t=e[0].url)!==d)&&t&&(si&&vi("redirect (recursive loop)",e),o(t,e))}};_&&(e.document=document,e.window=$i()),an(d,e,function(e,r){si&&vi("do_redirect",e);for(var i=null,o=function(e,t,o){r(e,o||i,t)},a=[],t=0;t<e.length;t++)(Ti.redirect_video||!Hr(e[t])||Ti.redirect_audio&&$r(e[t]))&&(Ti.redirect_audio||!$r(e[t])||Ti.redirect_video&&Hr(e[t]))&&a.push(e[t]);var n=Ti.redirect_to_no_infobox,s=[],l=!1,u=0,c=function(e,t){si&&vi("do_redirect_sub's err_cb:",e,t),t&&s.push(a[u]);t=l?s:a;if(++u>=t.length){if(!(n&&0<s.length))return hr(),void bi(e);n=!(l=!0),u=0}nr(window.location.href,t[u])&&n&&0<s.length&&(n=!(l=!0),u=0),i=t[u],br(i,d,c,o,n)},i=a[0];br(i,d,c,o,n)})}function fn(e){var t;"complete"===document.readyState||"interactive"===document.readyState?e():(t=function(){"complete"!==document.readyState&&"interactive"!==document.readyState||(e(),Vi(document,"readystatechange",t))},fi(document,"readystatechange",t))}function _n(e,t){var o={};if(e.ctrlKey?o.ctrl=!0:o.ctrl=!1,e.altKey?o.alt=!0:o.alt=!1,e.shiftKey?o.shift=!0:o.shift=!1,void 0!==e.buttons)for(var r=["button1","button2","button3","button4","button5"],i=e.buttons;0<r.length;)o[r[0]]=!!(1&i),i>>=1,r.shift();"wheel"===e.type&&(e.deltaY<0?o.wheelUp=!0:0<e.deltaY&&(o.wheelDown=!0),e.deltaX<0?o.wheelLeft=!0:0<e.deltaX&&(o.wheelRight=!0));e=ni(e);return void 0!==e&&(o[e]=t),o}var vn=function(e){return/^wheel/.test(e)},kr=function(e){return"button1"===e},bn=function(e){for(var t=0;t<e.length;t++)if(!vn(e[t])&&!kr(e[t]))return!1;return!0},xr=function(e){return!!bn(e)||1===e.length&&kr(e[0])},Cr=function(e){return 0!==e.length&&!xr(e)&&(e.length,!0)},zr=function(){try{return window.matchMedia("(prefers-color-scheme: dark)").matches}catch(e){return!1}};function Rr(){var e,t;(a||Pi)&&(zr()&&(t=!0,(e="dark_mode")in tt||(Ti[e]=t)),Ti.dark_mode?document.documentElement.classList.add("dark"):document.documentElement.classList.remove("dark"))}var Nr=function(t,o){if(!li)return o(!1);try{chrome.permissions.request({permissions:[t]},function(e){e&&ui({type:"permission_handler",data:{permission:t}}),o(e)})}catch(e){bi(e),o(!1)}},Sr="general";function qr(){Rr();var te=!1,oe=[],re=[];function t(e,t){if(te){var o,r,i=_n(e,t),t=(!ni(e)&&"mousedown"!==e.type||0!==re.length||0!==e.button&&2!==e.button&&(oe=[]),qi(oe));for(o in i)i[r=o]?(hi(oe,r)<0&&oe.push(r),hi(re,r)<0&&re.push(r)):0<=hi(re,r)&&re.splice(hi(re,r),1);xr(oe)&&(oe=t),te()}}document.addEventListener("keydown",function(e){if(t(e,!0),te)return e.preventDefault(),!1}),document.addEventListener("mousedown",function(e){if(t(e,!0),te)return e.preventDefault(),!1}),document.addEventListener("wheel",function(e){if(t(e,!0),te)return e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation(),!1},{capture:!0,passive:!1}),document.addEventListener("contextmenu",function(e){if(te)return e.preventDefault(),e.stopImmediatePropagation(),!1}),document.addEventListener("keyup",function(e){if(t(e,!1),te)return e.preventDefault(),!1}),document.addEventListener("mouseup",function(e){if(1!==e.button)return t(e,!1),te?(e.preventDefault(),e.stopImmediatePropagation(),!1):void 0});function R(e){var t=!1,o=("+"===(e=Jo(e))[0]&&(t=!0,e=e.substring(1)),null);try{o=K(e)}catch(e){bi(e)}return{value:o,append:t}}var e,o,r=document.getElementById("options"),ie=(r.textContent="",document.createDocumentFragment()),ae=(M||((e=_i("h1")).textContent=Bi("options_header"),ie.appendChild(e)),document.getElementById("saved")),de=(ae||((ae=_i("div")).style.visibility="hidden",ae.id="saved",ae.classList.add("topsaved")),function(e){var t="Saved! Refresh the target page for changes to take effect";return t=e&&e.needrefresh||!li&&"undefined"==typeof GM_addValueChangeListener?t:"Saved!"}),pe=function(e){var t=_i("p");t.textContent=Bi(e),ae.textContent="",ae.appendChild(t)},ne=(pe(de()),null),i=(Ti.check_updates&&1===we(H,Ti.last_update_version)&&ie.appendChild(((e=_i("div")).classList.add("update-available"),e.innerHTML="Update available: v"+H+" -&gt; ",i=fo(),e.innerHTML+=i?'<a href="'+i+'" target="_blank" rel="noreferer">v'+Ti.last_update_version+"</a>":"v"+Ti.last_update_version,e)),document.createElement("p")),a=(On(i)&&ie.appendChild(i),_i("div")),n=(a.id="topbtns",ie.appendChild(a),_i("div")),s=(n.id="importexport",n.classList.add("center-outer"),n.style.display="none",ie.appendChild(n),_i("div")),l=(s.classList.add("center-inner"),n.appendChild(s),_i("textarea")),u=(s.appendChild(l),_i("button")),c=(u.innerText=Bi("Import"),u.onclick=function(){var t,e;u.classList.contains("disabled")||(u.classList.add("disabled"),e=l.value,e=Jo(e),t=function(e){if(e&&e.value){var t,o,r=e.value,e=e.append,i=!1,a=qi(Ti),n=qi(e?Ti:gt);for(o in r){if(!(o in Ti)){if("settings_version"===o){t=r[o];continue}yi("Unknown key in imported settings:",o)}n[o]=r[o]}for(o in n)pi(n[o])!==pi(a[o])&&(Ti[o]=n[o],Dr(o,n[o]),i=!0);Pr(t=void 0===t?1:t,n,function(e){u.classList.remove("disabled"),i||e?(vi("Settings imported"),setTimeout(function(){qr()},1)):vi("No settings changed"),p(!1)})}else l.value="Error!",u.classList.remove("disabled")},/^https?:\/\//.test(e=e)?Si({method:"GET",url:e,onload:function(e){if(200!==e.status)return console.error(e),t(null);t(R(e.responseText))}}):t(R(e)))},s.appendChild(u),_i("div")),d=_i("button"),p=(d.innerText=Bi("Save"),d.onclick=function(){var e=l.value,t={url:"data:text/plain,"+encodeURIComponent(e),filename:"settings.txt"};fa(t,t.filename,e.length)},c.appendChild(d),s.appendChild(c),function(e,t){e?n.style.display="block":(m=null,n.style.display="none"),t?(e&&(m="import"),u.style.display="inline-block",c.style.display="none"):(e&&(m="export"),u.style.display="none",c.style.display="block")}),m=null,d=_i("button"),s=(d.id="importbtn",d.innerText=Bi("Import"),d.title=Bi("Import settings"),d.onclick=function(){if("import"===m)return p(!1);l.value="",p(!0,!0)},a.appendChild(d),_i("button")),h=(s.id="exportbtn",s.innerText=Bi("Export"),s.title=Bi("Export settings"),s.onclick=function(){if("export"===m)return p(!1);var t=qi(Ti);Er("settings_version",function(e){void 0!==e&&(t.settings_version=e),l.value=pi(t),p(!0,!1)})},a.appendChild(s),{}),g={},N=function(e,t){void 0===t&&(t={});function o(e){var i=qi(e);if(!i)return null;"string"==typeof i&&(i=qi(at[i])),mi(i)||(i=[i]);var r=[];return zi(i,function(e){var t;e._condition?(t=qi(at[e._condition]),mi(t)||(t=[t]),zi(t,function(o){Ri(e,function(e,t){"_condition"!==e&&(o[e]=t)}),r.push(o)})):r.push(e)}),i=[],zi(r,function(e){i.push(e);var r=[];if(Ri(e,function(e,t){var o=Ai[e];o&&o.profiled&&r.push(e)}),r.length)for(var t=0;t<Na;t++){var o=qi(e);zi(r,function(e){o["t"+(t+2)+"_"+e]=o[e],delete o[e]}),o._auto=!0,i.push(o)}}),i}var r=!0,i=o(e.requires),a=o(e.disabled_if);return e.imu_enabled_exempt||Ti.imu_enabled||(r=!1),t.good=[],t.bad=[],r&&i&&(r=q(i,t),t.good=[]),r&&a&&(t.good=[],t.bad=[],r=!q(a,t),t.bad=[]),r},S=function(e){var t=Ai[e],t=(h[e]="processing",g[e]={},N(t,g[e]));return h[e]=t},q=function(e,t){for(var o=0;o<e.length;o++){var r,i,a,n=e[o],s=!0;for(a in void 0!==t&&(r=[],i=[]),n)if("_"!==a[0]){var l=n[a],u=Ti[a];if(mi(u)&&!mi(l)&&(u=u[0]),a in h||S(a),"processing"===h[a])return void bi("Dependency cycle detected for:",n,",",a);var c={setting:a,required_value:l,current_value:u,enabled:h[a],auto:!!n._auto},d=u===l;if(d||"keysequence"!==Ai[a].type||!0!==l||(d=u&&!!u.length),h[a]&&d?void 0!==r&&r.push(c):(s=!1,void 0!==i&&i.push(c)),!s&&void 0===t)break}if(void 0!==t&&(t.good.push(r),t.bad.push(i)),s)return!0}return!1},B=function(e,t){if(t in e)return e[t];for(var o in e)if(/^_group/.test(o))return B(e[o],t);return null},T=function(e){for(var t=0;t<e.length;t++)if(0!==e[t].length)return!0;return!1},A=function(e){return T(e.good)?"good":T(e.bad)?"bad":null},I=function(e,t){if(t.textContent="",Ti.settings_show_requirements){var o=A(e);if(o){for(var r=_i("p"),i=(r.innerText=Bi("Requires:"),t.appendChild(r),[]),a=e[o],n=0;n<a.length;n++)if(0!==a[n].length){for(var s=_i("ul"),l=!1,u=0;u<a[n].length;u++){var c,d,p,m,h=a[n][u];h.auto||(c=h.setting,m=d=null,h.setting in Ai&&(c=Bi((d=Ai[h.setting]).name),m=(m=d.category||null)&&Bi(rt[m])),d="",p=h.required_value,(h="input_"+h.setting+"_"+h.required_value)in ce?p=ce[h]:m&&(d="("+m+") "),h="good"===o?"!=":"=",(m=_i("li")).innerText=d+c+" "+h+" "+p,s.appendChild(m),l=!0)}l&&i.push(s)}for(var g=[],n=0;n<i.length-1;n++){g.push(i[n]);var f=_i("p");f.innerText=Bi("Or:"),g.push(f)}g.push(i[i.length-1]);for(n=0;n<g.length;n++)t.appendChild(g[n])}}};function se(){var e=ie.querySelectorAll("div.option");h={};for(var t=0;t<e.length;t++){var o=e[t].id.replace(/^option_/,"");if(S(o)){e[t].classList.remove("disabled"),e[t].classList.remove("disabled-hidden"),e[t].getElementsByClassName("requirements")[0].classList.add("hidden");for(var r,i=Ai[o].options,a=new RegExp("^input_"+o+"_"),n=e[t].querySelectorAll("input, textarea, button, select, option"),s=0;s<n.length;s++)(l=n[s]).disabled=!1,i&&(r=l.id.replace(a,""))!==l.id&&(r=B(i,r))&&!N(r)&&(l.disabled=!0)}else{e[t].classList.add("disabled"),(!Ti.settings_show_disabled||!Ti.settings_show_disabled_profiles&&/^t[0-9]+_/.test(o)&&Ti["mouseover_trigger_key_"+o.replace(/^(t[0-9]+)_.*/,"$1")].length<=0)&&e[t].classList.add("disabled-hidden");for(var l,n=e[t].querySelectorAll("input, textarea, button, select"),s=0;s<n.length;s++)(l=n[s]).disabled=!0;var u=e[t].getElementsByClassName("requirements")[0];u.classList.remove("hidden"),I(g[o],u)}}}function le(){for(var e=ie.querySelectorAll("div.option"),t=0;t<e.length;t++){var o=e[t].id.replace(/^option_/,""),r=Ai[o];r.warning&&(r=r.warning[Ti[o]+""],o=e[t].querySelector(".warning"))&&(r?(o.innerText=r,o.style.display="block"):o.style.display="none")}}function me(e,t){function o(){0!==i.length&&((r=_i("`"===a?"code":"span")).innerText=i,i="",e.appendChild(r))}var r=null,i="",a=null;if(gi(t,"`")<0&&gi(t,"\n")<0)i=t;else for(var n=0;n<t.length;n++)t[n]===a?(o(),a=null):"`"===t[n]?(o(),a=t[n]):"\n"===t[n]?(o(),e.appendChild(_i("br"))):i+=t[n];o()}Ti.settings_tabs&&((o=_i("div")).id="tabs",ie.appendChild(o));var f={},ue={};for(k in Sr in rt||(Sr="general"),rt){var _,E,v=Bi(rt[k]),b=_i("div"),v=(b.id="cat_"+k,b.classList.add("category"),f[k]=[b],Ti.settings_tabs?(b.classList.add("tabbed"),(_=_i("span")).classList.add("tab"),_.id="tab_cat_"+k,_.innerText=v,function(e){_.onclick=function(){Sr=e,window.location.hash="cat_fake_"+e,qr()}}(k),k===Sr?_.classList.add("active"):b.style.display="none",f[k].push(_),o.appendChild(_)):((E=_i("h2")).innerText=v,b.appendChild(E)),_i("div"));if(v.id="subcat_"+k,v.classList.add("subcat"),v.classList.add("frame"),b.appendChild(v),ue[k]=v,k in it)for(var U in it[k]){var y=_i("div"),D=k+"_"+U,L=(y.id="subcat_"+D,y.classList.add("subcat"),y.classList.add("frame"),_i("h3"));L.innerText=Bi(it[k][U]),y.appendChild(L),b.appendChild(y),ue[D]=y}ie.appendChild(b)}function he(e){return mi(e)&&1===e.length?pi(e[0]):pi(e)}function P(h){var g=Ai[h];if(g&&h in gt){var c=Ti[h],r=gt[h];if(!g.hidden&&(!g.userscript_only||_e)&&(!g.extension_only||li)&&(!g.advanced||ge)&&(fe[g.category]=!0,!Ti.settings_tabs||g.category===Sr)){var i,e=_i("div"),D=(e.classList.add("option"),e.id="option_"+h,(/^t[0-9]+_/.test(h)||/_t[0-9]+$/.test(h))&&e.classList.add("trigger_profile"),_i("table")),t=(D.classList.add("option-table"),_i("tr")),o=(D.appendChild(t),_i("strong")),a=(me(o,Bi(g.name)),Bi(g.description)),n=((a=g.description_userscript&&_e?Bi(g.description_userscript):a)?o.title=a:o.classList.add("no-title"),_i("td")),s=(n.classList.add("name_td"),n.classList.add("name_td_va_middle"),document.createElement("button")),L=(s.innerText="⮌",s.classList.add("revert-button"),s.title=Bi("Revert"),s.onclick=function(){s.disabled||(f(h,r,g),Fa(qr))},function(e){var t=he(e),o=he(r);"keysequence"===g.type&&(t=pi(Pn(e)),o=pi(Pn(r))),t!==o?(n.classList.add("value_modified"),n.appendChild(s)):(n.classList.remove("value_modified"),s.parentElement===n&&n.removeChild(s))}),P=function(e,t,o){ve(e,t),Fa(function(){L(t)}),pe(de(o)),ae.setAttribute("style",""),ae.classList.remove("fadeout"),ne&&clearTimeout(ne),ne=setTimeout(function(){ae.classList.add("fadeout")},2e3)},f=function(t,o,r){li&&r.required_permission?Nr(r.required_permission,function(e){e?P(t,o,r):qr()}):P(t,o,r)},_=(n.appendChild(o),L(c),t.appendChild(n),_i("td")),l=(_.classList.add("value_td"),"options"),u={};if("boolean"==typeof r)l="options",u.true={name:Bi("yes")},u.false={name:Bi("no")},c?u.true.checked=!0:u.false.checked=!0;else if(g.options){if(g.options._randomize){var d,p=Object.keys(g.options),m={};for(d in g.options)"_"!=d[0]&&!g.options[d].is_null||(m[d]=g.options[d]);p.sort(function(){return be(2*ye())?1:-1});for(var v=0;v<p.length;v++)p[v]in m||(m[p[v]]=g.options[p[v]]);g.options=m}"combo"===g.options._type?l="combo":(l="options",u=qi(g.options),i=function(e,t){if(e in t)t[e].checked=!0;else for(var o in t)o.match(/^_group/)&&i(e,t[o])},mi(c)?zi(c,function(e){i(e,u)}):i(c,u))}else!g.type||"textarea"!==g.type&&"keysequence"!==g.type&&"number"!==g.type&&"lineedit"!==g.type||(l=g.type);if("options"===l){var b,j=(j=u._type)||"or",M=function(u,e,t,c,d,p){var o="input_"+h+"_"+e,r=h,m=(d&&"and"===p&&(r+="_"+d),_i("input")),r=(m.setAttribute("type","checkbox"),m.name=r,m.value=e,m.id=o,t.checked&&m.setAttribute("checked","true"),m.addEventListener("change",function(e){var t=this.value;if("false"===(t="true"===t?!0:t)&&(t=!1),this.checked){if(d&&"or"===p)for(var o=0;o<_.children.length;o++)if((a=_.children[o]).id!==h+d)for(var r=0;r<a.children.length;r++)"INPUT"===(n=a.children[r]).tagName&&(n.checked=!1);if("or"===c)for(o=0;o<u.children.length;o++)"INPUT"===(a=u.children[o]).tagName&&a.id!=m.id&&(a.checked=!1)}else{for(var i=!1,o=0;o<_.children.length;o++){for(var a=_.children[o],r=0;r<a.children.length;r++){var n=a.children[r];if("INPUT"===n.tagName&&n.checked){i=!0;break}}if(i)break}i||(this.checked=!0)}if(d||"or"!==c){for(var s=[],l=_.getElementsByTagName("input"),o=0;o<l.length;o++)(a=l[o]).checked&&s.push(a.value);f(h,s,g)}else f(h,t,g);se(),le()}),u.appendChild(m),_i("label"));r.setAttribute("for",o),ce[o]=Bi(t.name),ce[o]?r.innerText=ce[o]:r.innerHTML="&nbsp;",t.description&&(r.title=Bi(t.description)),u.appendChild(r)};for(b in u)if(!u[b].extension_only||li)if(b.match(/^_group/)){var H,$=($=u[b]._type)||"or";for(H in(y=_i("div")).classList.add("group"),y.id=h+b,u[b])H.match(/^_/)||M(y,H,u[b][H],$,b,j);_.appendChild(y)}else b.match(/^_/)||M(_,b,u[b],j)}else if("textarea"===l){var y=_i("table"),w=_i("tr"),o=_i("td"),k=(o.style.verticalAlign="middle",_i("tr")),x=_i("td"),C=(x.style.textAlign="center",_i("textarea")),z=(C.style.height="5em",C.style.width="20em",c&&(C.value=c),_i("button"));z.innerText=Bi("save"),z.onclick=function(){f(h,C.value,g),se()},o.appendChild(C),x.appendChild(z),k.appendChild(x),w.appendChild(o),y.appendChild(w),y.appendChild(k),_.appendChild(y)}else if("number"===l||"lineedit"===l){var y=_i("table"),w=_i("tr"),R=(_i("td").style="display:inline",_i("input")),z=(R.type="text",R.setAttribute("spellcheck",!1),"number"===l&&(R.style="text-align:right",void 0!==g.number_max&&R.setAttribute("max",g.number_max.toString()),void 0!==g.number_min&&R.setAttribute("min",g.number_min.toString()),g.number_int)&&R.setAttribute("step","1"),void 0!==c&&(R.value=c),R.oninput=R.onblur=function(e){var t=!1,o=!0,r=("blur"===e.type&&(o=!(t=!0)),R.value.toString());if("number"===l){var i=r=parseFloat(r);if(isNaN(r)){if(!t)return;r=0}if(g.number_int&&(r=parseInt(r)),void 0!==g.number_max&&(r=Ci(r,g.number_max)),void 0!==g.number_min&&(r=xi(r,g.number_min)),isNaN(r))return void bi("Error: number is NaN after min/max");!g.number_int&&r===i||(R.value=r),r=parseFloat(r),"blur"===e.type&&r!==i&&(o=!0)}o&&f(h,r,g)},_i("td"));z.classList.add("number_units"),g.number_unit&&(z.innerText=Bi(g.number_unit)),w.appendChild(R),w.appendChild(z),y.appendChild(w),_.appendChild(y)}else if("keysequence"===l){for(var y=_i("table"),N=qi(c),S=(0<N.length&&!mi(N[0])&&(N=[N]),[]),v=0;v<N.length;v++)S.push(v);for(var F=function(){for(var e=0,t=0;t<S.length;t++)0<=S[t]&&e++;return e<2},O=function(){for(var e=[],t=0;t<S.length;t++)0<=S[t]&&0<N[t].length&&e.push(N[t]);f(h,e,g),se()},G=function(){for(var e=!g.keyseq_allow_none&&F(),t=0;t<y.children.length;t++){var o=y.children[t].getElementsByClassName("removebtn");0<o.length&&(o[0].style.display=e?"none":"initial")}},W=function(t,e){function o(){te?Cr(oe)&&(N[t]=oe,O(),l()):(oe=[],re=[],te=function(){var e=oe;0===e.length&&(e=N[t]),i.innerText=vr(e),Cr(oe)?n.classList.remove("disabled"):n.classList.add("disabled")},n.innerText=Bi("save"),s.style="display:inline-block")}var r=_i("tr"),i=(r.classList.add("keyseq"),_i("td")),a=(i.classList.add("record_keybinding"),c&&(i.innerText=vr(N)[t]),_i("td")),n=(a.style="display:inline",_i("button")),s=(n.innerText=Bi("Record"),n.onmousedown=o,_i("button")),l=(s.innerText=Bi("Cancel"),s.style="display:none",function(){te=!1,n.innerText=Bi("Record"),n.classList.remove("disabled"),s.style="display:none",i.innerText=vr(N)[t]}),u=(s.onmousedown=l,_i("button"));return u.innerText="×",u.title=Bi("Remove"),u.classList.add("removebtn"),u.classList.add("small"),!g.keyseq_allow_none&&F()&&(u.style="display:none"),u.onclick=function(){if(g.keyseq_allow_none||!F()){te=!1,S[t]=-1;for(var e=t+1;e<S.length;e++)S[e]--;r.parentElement.removeChild(r),G(),O()}},r.appendChild(i),a.appendChild(n),a.appendChild(s),a.appendChild(u),r.appendChild(a),e&&o(),r},v=0;v<S.length;v++)y.appendChild(W(v));var V=_i("tr"),x=_i("td"),o=_i("button");o.innerText="+",o.title=Bi("Add keybinding"),o.classList.add("small"),o.onclick=function(){for(var e=-1,t=S.length-1;0<=t;t--)if(0<=S[t]){e=S[t];break}S.push(e+1),N.push([]),y.insertBefore(W(S.length-1,!0),V),G()},x.appendChild(o),V.appendChild(x),y.appendChild(V),_.appendChild(y)}else if("combo"===l){var q,B,T,X,A,y=_i("select"),Y=null;for(q in g.options)q&&"_"!==q[0]&&(T=(B=g.options[q]).name,"name_gettext"in B&&!B.name_gettext||(T=Bi(T)),ce[X="input_"+h+"_"+q]=T,(A=_i("option")).innerText=T,A.value=q,A.id=X,B.description&&(A.title=Bi(B.description)),B.is_null&&(Y=q),y.appendChild(A));k=Ti[h];null===k&&Y&&(k=Y),y.value=k,y.onchange=function(){var e=y.value;e in g.options&&g.options[e].is_null&&(e=null),f(h,e,g),se(),le()},_.appendChild(y)}t.appendChild(_),e.appendChild(D),a&&Ti.settings_visible_description&&(me(z=_i("p"),a),z.classList.add("description"),e.appendChild(z)),g.warning&&((w=_i("p")).style.display="none",w.classList.add("warning"),e.appendChild(w));var Z,I,E,U,o=_i("div");if(o.classList.add("requirements"),o.classList.add("hidden"),e.appendChild(o),g.example_websites){var J=_i("ul");J.classList.add("examples");for(var K=0;K<g.example_websites.length;K++){var Q=g.example_websites[K],ee=_i("li");ee.innerText=Bi(Q),J.appendChild(ee)}e.appendChild(J)}g.documentation&&(x=(Z=function(e){return decodeURIComponent(e?"%E2%AF%86":"%E2%AF%88")+" "+Bi(g.documentation.title)})(!1),(I=_i("span")).classList.add("spoiler-title"),I.innerText=x,E=!1,I.onclick=function(){E=!E,U.style.display=E?"block":"none",I.innerText=Z(E)},(U=_i("div")).classList.add("spoiler-contents"),U.style.display="none",U.innerHTML=g.documentation.value,e.appendChild(I),e.appendChild(U));k=_i("div");k.classList.add("error"),k.classList.add("hidden"),e.appendChild(k),(g.category?(t=g.category,g.subcategory&&(t+="_"+g.subcategory),ue[t]):ie).appendChild(e)}}}var ge=Ti.advanced_options,fe={},ce={},w=Object.keys(Ti);Ti.settings_alphabetical_order&&w.sort(function(e,t){var o=Ai[e],r=Ai[t];return o&&r&&o.name&&r.name?Bi(o.name).localeCompare(Bi(r.name)):e.localeCompare(t)});for(var k,j,x=0;x<w.length;x++)P(w[x]);for(k in se(),le(),f){var C=f[k];if(!(k in fe))for(x=0;x<C.length;x++)C[x].parentNode.removeChild(C[x])}for(j in ue){var z=ue[j];0===z.querySelectorAll(".option").length&&z.parentNode.removeChild(z)}document.body.appendChild(ae),r.appendChild(ie),ie=r}function yn(e){return mi(e)?e[0]:e}function Ui(e){return yn(Ti[e])}function Br(t){try{return void 0===t?t:"true"===t||"false"!==t&&K(t)}catch(e){return t}}_&&(Ye=window.location.hash)&&(rr=Ye.match(/^#?cat(?:_fake)?_(.*)$/))&&(Sr=rr[1]);var Tr=null;function Ar(e){e=GM_getValue(e,void 0);return e=null===e&&(Tr=null===Tr?null===GM_getValue("nonexistent_value_abcdefg",void 0):Tr)?void 0:e}function Ir(o,r){if(li)ui({type:"getvalue",data:o},function(o){o=o.data,Ri(o,function(e,t){o[e]=Br(t)}),r(o)});else{var i,a;if("undefined"!=typeof GM_getValue&&"FireMonkey"!==w)return a={},zi(o,function(e){a[e]=Br(Ar(e))}),r(a);"undefined"!=typeof GM&&GM.getValue?(i=0,a={},zi(o,function(t){GM.getValue(t,void 0).then(function(e){a[t]=Br(e),++i>=o.length&&r(a)},function(e){bi(e),++i>=o.length&&r(a)})})):r({})}}function Er(t,o){Ir([t],function(e){return o(e[t])})}var Ur=0;function Dr(e,t,o){var r;e in Ai&&Ai[e].onedit&&Ai[e].onedit(t),t=pi(t),li?((r={})[e]=t,Ur++,ui({type:"setvalue",data:r},function(){Ur--,o&&o()})):"undefined"!=typeof GM_setValue?(GM_setValue(e,t),o&&o()):"undefined"!=typeof GM&&GM.setValue?GM.setValue(e,t).then(function(){o&&o()}):o&&o()}function ve(e,t){t!==Ti[e]&&(t=qi(t),Ti[e]=t,li&&(e in kt||(kt[e]=[]),kt[e].push(t)),Dr(e,t))}function Lr(e){if(Ti.allow_live_settings_reload){var t,o=!1;for(t in e)if(void 0!==e[t].newValue){var r=K(e[t].newValue);if(t in kt){var i=hi(kt[t],r),a=!1;if(0<=i&&i<kt[t].length-1&&(a=!0),kt[t].splice(i,1),a)continue}i=jr(t,r),o=i||o;i&&t in Ai&&"onupdate"in Ai[t]&&Ai[t].onupdate()}o&&Ur<=0&&Pi&&qr()}}function Pr(e,t,o){(!e||"number"!=typeof e&&(e=parseInt(e),isNaN(e)))&&(e=0),void 0===t&&(t=Ti);var r,i=!1;if(0===e){if(t.mouseover_trigger){for(var a=[],n=0;n<t.mouseover_trigger.length;n++){var s,l=t.mouseover_trigger[n];l.match(/^delay_[0-9]+/)?ve("mouseover_trigger_delay",s="number"==typeof(s=(s=ki(t.mouseover_trigger[n].replace(/^delay_([0-9]+).*?$/,"$1")))<=0||isNaN(s)?!1:s)&&10<=s?10:s):a.push(l)}0===a.length?(ve("mouseover_trigger_key",gt.mouseover_trigger_key),ve("mouseover_trigger_behavior","mouse")):(ve("mouseover_trigger_key",a),ve("mouseover_trigger_behavior","keyboard"))}ve("settings_version",1),i=!0,e=1}if(1===e&&(r="none",void 0===t.mouseover_use_fully_loaded_video&&void 0===t.mouseover_use_fully_loaded_image||(!1!==t.mouseover_use_fully_loaded_video&&void 0!==t.mouseover_use_fully_loaded_video||(r="video"),void 0===t.mouseover_use_fully_loaded_image?gt.mouseover_use_fully_loaded_image||(r="media"):!1===t.mouseover_use_fully_loaded_image&&(r="media"),ve("mouseover_allow_partial",r)),ve("settings_version",2),i=!0,e=2),2===e&&("mouseover_close_on_leave_el"in t&&ve("mouseover_close_el_policy",t.mouseover_close_on_leave_el?"both":"popup"),ve("settings_version",3),i=!0,e=3),3===e&&("mouseover_scroll_behavior"in t&&("zoom"!==yn(t.mouseover_scroll_behavior)&&ve("mouseover_scrollx_behavior",t.mouseover_scroll_behavior),ve("mouseover_scrolly_behavior",t.mouseover_scroll_behavior)),ve("settings_version",4),i=!0,e=4),4===e&&("mouseover_mask_styles"in t&&t.mouseover_mask_styles&&(ve("mouseover_mask_styles2",t.mouseover_mask_styles),ve("mouseover_enable_mask_styles",!0)),ve("settings_version",5),i=!0,e=5),5===e&&("mouseover_video_seek_vertical_scroll"in t&&t.mouseover_video_seek_vertical_scroll&&ve("mouseover_scrolly_video_behavior","seek"),"mouseover_video_seek_horizontal_scroll"in t&&t.mouseover_video_seek_horizontal_scroll&&ve("mouseover_scrollx_video_behavior","seek"),ve("settings_version",6),i=!0,e=6),6===e&&("mouseover_support_pointerevents_none"in t&&t.mouseover_support_pointerevents_none&&ve("mouseover_find_els_mode","full"),ve("settings_version",7),i=!0,e=7),7===e&&("mouseover_enable_mask_styles"in t&&t.mouseover_enable_mask_styles&&ve("mouseover_enable_mask_styles2","always"),ve("settings_version",8),i=!0,e=8),8===e){if("allow_video"in t&&!t.allow_video){ve("mouseover_allow_video",!1);for(n=0;n<Na;n++)ve("t"+(n+2)+"_mouseover_allow_video",!1);ve("redirect_video",!1)}ve("settings_version",9),i=!0,e=9}if(9===e){if("allow_audio"in t&&t.allow_audio){ve("mouseover_allow_audio",!0);for(n=0;n<Na;n++)ve("t"+(n+2)+"_mouseover_allow_audio",!0);ve("redirect_audio",!0)}ve("settings_version",10),i=!0,e=10}10===e&&("replaceimgs_remove_size_constraints"in t&&t.replaceimgs_remove_size_constraints&&ve("replaceimgs_size_constraints","remove"),ve("settings_version",11),i=!0,e=11),o(i)}function jr(e,t){return void 0!==t&&("number"==typeof Ti[e]&&(t=parseFloat(t)),(tt[e]=t)!==Ti[e])&&(Ti[e]=t,!0)}var wn=!0;try{/^[a-z]+:\/\/[^/]*txxx\.com\//.test(window.location.href)&&(wn=!1)}catch(e){}function Di(e){wn&&(e.style.all="initial"),e.style.removeProperty("offset-inline-start"),e.style.setProperty("transition-duration","0s","important")}function Mr(e,t){if(si&&vi("check_bad_if",e,t),e&&mi(e)&&0!==e.length){for(var a=Oa(t.responseHeaders),o=0;o<e.length;o++)if(function(e){if(e.headers)for(var t in e.headers){for(var o=t.toLowerCase(),r=!1,i=0;i<a.length;i++)if(a[i].name.toLowerCase()===o){if("function"==typeof e.headers[t]?r=e.headers[t](a[i].value):"string"==typeof e.headers[t]&&(r=a[i].value===e.headers[t]),r)break;return!1}if(!r)return!1}return!0}(e[o]))return!0}else si&&vi("check_bad_if (!badif)");return!1}Ei.check_bad_if=Mr;var kn,xn={},Hr=function(e){return!(!e.media_info||"video"!==e.media_info.type)||!!/\.(?:mp4|webm|mkv|mpg|ogv|wmv|m3u8|mpd)(?:[?#].*)?$/i.test(e.url)},$r=function(e){return!(!e.media_info||"audio"!==e.media_info.type)||!!/\.(?:mp3|m4a|oga|mkv|wma|mp4|ogg)(?:[?#].*)?$/i.test(e.url)},Fr=function(e){return Hr(e)||$r(e)},Or=function(e){e=La(e,{split_ext:!0});return"mpd"===e[1]?"dash":"m3u8"===e[1]?"hls":null},Gr=function(e){e=e.replace(/^\s*\[?\s*(.*?)\s*\]?\s*$/,"$1");var t={type:null,delivery:null};return/^audio\//.test(e)&&(t.type="audio"),/^video\//.test(e)&&(t.type="video"),"application/oga"===e&&(t.type="audio"),"application/ogv"===e&&(t.type="video"),"application/ogg"===e&&(t.type="video"),"application/x-mpegurl"===e&&(t.type="video",t.delivery="hls"),t.type?t:null},Wr=function(e,t){return e?("image"===e.type||"video"===e.type||"audio"===e.type)&&!("video"===e.type&&t.deny_video||"audio"===e.type&&t.deny_audio||"hevc"===e.codec||e.delivery&&(e.need_custom_xhr&&!Ti.custom_xhr_for_lib||!(e.delivery&&e.delivery in xn&&xn[e.delivery].active()))):(bi("is_media_type_supported called without media_info"),!0)};var Cn=function(e,t){if(e.method||(e.method="GET"),e.headers||(e.headers={}),t.headers)for(var o in t.headers)Mo(e.headers,o,t.headers[o]);return e.url!==t.url||t.can_head||"HEAD"!==e.method||(e.method="GET"),e},Vr=function(e,t){(Ti.popup_use_anonymous_crossorigin||t&&!t.need_credentials)&&e.setAttribute("crossorigin","anonymous")};var zn=function(e){var t,o={height:e.naturalHeight,width:e.naturalWidth};return!e.complete||o.height&&o.width||(Di(t=new Image),t.style.margin="0",t.style.padding="0",t.style.visibility="hidden",t.src=e.src,document.documentElement.appendChild(t),o={width:t.offsetWidth,height:t.offsetHeight},document.documentElement.removeChild(t)),o},Xr=function(){return S},Yr=function(e,t){var o=new FileReader;o.onload=function(e){try{t(e.target.result)}catch(e){bi(e),bi(e.stack),t(null)}},o.readAsDataURL(e)},Rn=function(e){return Xr().createObjectURL(e)},Nn=function(e){return xa(e)&&(e=e.src),Xr().revokeObjectURL(e)},Sn=function(e){return"VIDEO"===e.tagName||"SOURCE"===e.tagName&&!(!e.parentElement||"VIDEO"!==e.parentElement.tagName)},Zr=function(e){return e?"VIDEO"===(e=nn(e))?"video":"AUDIO"===e?"audio":"PICTURE"===e||"IMG"===e?"image":null:null},qn=function(e){var t=Zr(e);return t||("SOURCE"===nn(e)?Zr(e.parentElement):null)},Jr=function(e){si&&vi("destroy_image",e),Nn(e.src),e.setAttribute("imu-destroyed","true")},Bn=function(e){for(var e=qi(e),t={arabic:"ar","العربية":"ar",bengali:"bn","বাংলা":"bn",german:"de",deutsch:"de",english:"en",spanish:"es","español":"es",espanol:"es",french:"fr","français":"fr",francais:"fr",hindi:"hi","हिंदी":"hi",italian:"it",italiano:"it",korean:"ko","한국어":"ko",polish:"pl",polski:"pl",portuguese:"pt","português":"pt",portugues:"pt",russian:"ru","русский":"ru",thai:"th","ไทย":"th",turkish:"tr","türkçe":"tr",turkce:"tr",chinese:"zh","中文":"zh"},o=0,r=e;o<r.length;o++){var i,a=r[o];!a.language_code&&a.title&&(i=(i=Ii(a.title.toLowerCase()))in t?i:Ii(i.replace(/[ (].*$/,"")))in t&&(a.language_code=t[i]),a.language_code&&(a.simple_language_code=a.language_code.replace(/-.*/,""))}var n=["en"];try{n=qi(navigator.languages)}catch(e){bi(e)}for(var s=0;s<n.length;s++)n[s]=n[s].replace(/-.*/,"");var l=We(e).sort(function(e,t){e=hi(n,e.simple_language_code),t=hi(n,t.simple_language_code);return(e=e<0?9999:e)-(t=t<0?9999:t)});return vi(n,l),0<l.length&&l[0].simple_language_code===n[0]&&(l[0].default=!0),e},Kr=function(n,e,s,l,u){function c(e){var t;bi("Error loading video",((t=e=e).path&&e.path[0]&&(t=e.path[0].error),t=e.originalTarget?e.originalTarget.error:t)),p(),u()}var d=_i(e),e=(Vr(d,n),Ti.mouseover_video_autoplay&&d.setAttribute("autoplay","autoplay"),!Ti.mouseover_video_controls&&"audio"!==e||d.setAttribute("controls","controls"),Ti.mouseover_video_loop&&!Ti.mouseover_gallery_move_after_video&&d.setAttribute("loop",!0),parseInt(Ti.mouseover_video_volume)),e=xi(Ci(e,100),0),p=(d.volume=e/100,Ti.mouseover_video_muted&&(d.muted=!0),function(){d.onloadedmetadata=null,d.removeEventListener("loadedmetadata",t)}),m=!1,t=function(){if(!m){if(m=!0,d.removeEventListener("error",c,!0),p(),!s.running)return u(!0);if(n.subtitles)for(var e=0,t=Bn(n.subtitles);e<t.length;e++){var o=t[e],r=_i("track");r.setAttribute("kind","captions"),r.setAttribute("src",o.url),o.language_code&&r.setAttribute("srclang",o.language_code),r.setAttribute("label",o.title),d.appendChild(r),o.default&&r.setAttribute("default","default")}d.hasAttribute("loop")&&Ti.mouseover_video_autoloop_max&&Ti.mouseover_video_autoloop_max<d.duration&&d.removeAttribute("loop");var i,a=null;s.source&&s.source.el&&"VIDEO"===(i="SOURCE"===(i=s.source.el).tagName?i.parentElement:i).tagName&&(a=i),Ti.mouseover_video_resume_from_source&&a&&a.currentTime&&(Ti.mouseover_video_resume_if_different||Yi(a.duration-d.duration)<1||Yi(1-a.duration/d.duration)<.01)&&(d.currentTime=a.currentTime),Ti.mouseover_video_pause_source&&a&&a.pause(),Fa(function(){l(d)})}};return d.onloadedmetadata=t,d.addEventListener("loadedmetadata",t),d.onended=function(){Ti.mouseover_enable_gallery&&Ti.mouseover_gallery_move_after_video&&kn(1)},d.addEventListener("error",c,!0),d},Qr=function(e,t,o){function r(){clearInterval(a),i.onload=null,i.onerror=null}var i=_i("img"),a=(Vr(i,e),i.onload=function(){r();var e=zn(i);if(0===e.width||0===e.height)return si&&vi("naturalWidth or naturalHeight == 0",i),o();t(i)},i.onerror=function(e){si&&vi("Error loading image",i,e),r(),o()},setInterval(function(){0!==i.naturalWidth&&0!==i.naturalHeight&&(r(),t(i))},15));return i},ei=function(e,t,o){var r,i;e&&(r=function(e,t){e.src=t},i="string"==typeof t&&/^https?:\/\//i.test(t),li&&i?ui({type:"override_next_headers",data:{url:t,method:"GET",headers:o.headers,anonymous:"anonymous"===e.getAttribute("crossorigin"),content_type:o.content_type||null}},function(){r(e,t)}):r(e,t))},ti=function(e,t,o,r,i){return"image"===t?Qr(e,r,i):"video"===t||"audio"===t?Kr(e,t,o,r,i):(bi("Currently unsupported media type",t),i(),null)},oi=xt(),Tn=function(e){var t;Rt(oi,e)?(t=qa(oi,e),Sa(oi,e,++t)):Sa(oi,e,1)},An=function(e){var t;Rt(oi,e)&&(t=qa(oi,e),--t<=0?(Jr(e),Nt(oi,e)):Sa(oi,e,t))},ri=null,ii={};function In(l,o,u){if(si&&wi("check_image_get","check_image_get",qi(l),o,qi(u)),!l||!l[0]||!l[0].url)return o(null);if(!u.running)return o(null);function r(e){return Nn(b),l.shift(),si&&wi("check_image_get","check_image_get(err_cb):",l,u),In(l,o,u)}var c=r;if(!u.set_cache&&!u.use_cache||ri||(e=Ti.popup_cache_itemlimit,ri=new Ea({max_keys:e=e<=0?null:e,destructor:function(e,t){t&&t.img&&An(t.img)}})),l[0].media_info||(yi("No media info",l[0]),l[0].media_info=qi(Fe.media_info)),!Wr(l[0].media_info,u))return yi("Media type",l[0].media_info,"is not supported"),c();if(u.use_cache&&ri.has(l[0].url)){var e=ri.get(l[0].url);si&&wi("check_image_get","check_image_get(cached):",e.img,e.resp,l[0]);var t=!1;if(!(t=(i=e.img)&&("VIDEO"!==i.tagName&&"AUDIO"!==i.tagName||Ti.popup_cache_resume_video||(i.currentTime=e.currentTime||0),i.hasAttribute("imu-destroyed"))?!0:t))return e.filesize&&!l[0].filesize&&(l[0].filesize=e.filesize),void(u.head?o(e.resp,l[0]):o(e.img,e.resp.finalUrl,l[0],e.resp))}var i,a,d,n,p,s,m,h,g,f,_="GET",v="blob",b=null,t=Hr(l[0]),e=Fr(l[0]),y=!1;if((u.incomplete_image||e&&u.incomplete_video||u.head)&&(y=!0),(l[0].need_blob||l[0].need_data_url)&&(y=!1),e&&!l[0].media_info.delivery&&(l[0].media_info.delivery=Or(l[0].url)),(u.head||y)&&(_=y&&!l[0].can_head?"GET":"HEAD",v=void 0),!l[0].url.match(/^data:/)||l[0].media_info.delivery)return a=function(t,o,e){if(e)return f.apply(t,o);e=ii[h];e?(delete ii[h],zi(e,function(e){e(t,o)})):bi("Already ran cbs?",t,o,h)},f=o,d=l[0].url,vi("Trying "+d),l[0].url&&/^blob:/.test(l[0].url)?(vi("Blob URL"),c()):l[0].bad?(vi("Bad image"),c()):l[0].is_pagelink?(vi("Page link"),c()):Ut(l[0].url)?(vi("Invalid URL"),c()):(d.replace(/^([a-z]+:\/\/[^/]*).*?$/,"$1"),(n=l[0].headers)&&0!==Object.keys(n).length?n.Origin||n.origin:(e=window.location.href,/^https?:\/\//.test(e)||(e=""),n={Referer:e}),p=!1,s=function(o){if(!p){if(p=!0,!u.running)return f(null);si&&wi("check_image_get","check_image_get(onload)",qi(o),o.readyState);var e=o.status.toString()[0],t=_r(l[0].head_ok_errors,o.status);if("4"!==e&&"5"!==e||405===o.status||!0===t){if(Mr(l[0].bad_if,o))return vi("Bad image (bad_if)",o,l[0].bad_if),c();if(u.head)f(o,l[0]);else{var e=Ga(Oa(o.responseHeaders)),a=l[0].media_info;if("image"===a.type&&e["content-type"]&&(t=Gr(e["content-type"]))&&(a.type=t.type,t.delivery)&&(a.delivery=t.delivery),!Wr(a,u))return yi("Media type",a,"is not supported"),c();if(Ti.mouseover_matching_media_types&&u&&u.source&&u.source.el){t=qn(u.source.el);if(t&&t!==a.type)return vi("Source was ",t,", this is",a.type,"skipping"),c()}var n=function(e){var t;si&&wi("check_image_get","check_image_get(good_cb):",e,o.finalUrl,l[0],o),u.set_cache&&(t={img:e,resp:o,filesize:l[0].filesize},"VIDEO"!==e.tagName&&"AUDIO"!==e.tagName||(t.currentTime=e.currentTime),ri.set(l[0].url,t,60*(parseFloat(Ti.popup_cache_duration)||0))),e&&Tn(e),f(e,o.finalUrl,l[0],o)},s=(e["content-length"]&&100<parseInt(e["content-length"])&&(l[0].filesize=parseInt(e["content-length"])),function(t,e){var o,r,i=c,e=(!e&&l[0].head_wrong_contenttype&&"audio"!==a.type&&(i=function(){var e=["video","image"];e.splice(hi(e,a.type),1),s(t,e[0])}),e=e||a.type,ti(l[0],e,u,n,i));return i=e,o=t,r=a.delivery+"","image"!==a.type&&!u.deny_nondirect_delivery&&r in xn?(r=xn[r]).active()&&r.el_init({success:function(){},fail:c,info_obj:l[0],el:i,src:o}):ei(i,o,l[0]),e});y?s(o.finalUrl):o.response?(t=function(e){if(si&&vi("check_image_get's loadcb",e,a),!(b=e))return c();s(e)},l[0].need_data_url||!Ti.mouseover_use_blob_over_data&&!l[0].need_blob?Yr(o.response,t):t(Rn(o.response))):c()}}else c?(vi("Bad status: "+o.status+" ( "+d+" )"),c()):bi("Error: "+o.status)}},m=null,void(l[0].can_multiple_request&&!Ti.mouseover_partial_avoid_head||!y||l[0].bad_if&&0!==l[0].bad_if.length?(c=function(e){a(null,null,e)},f=function(){a(this,arguments)},(h=_+" "+y+" "+d)in ii||(ii[h]=[]),ii[h].push(function(e,t){return t||e?o.apply(e,t):r()}),1<ii[h].length||(g=function(){m=Si({method:_,url:d,responseType:v,headers:n,trackingprotection_failsafe:!0,need_blob_response:"GET"==_,retry_503:!0,onprogress:function(e){function t(){m&&m.abort?m.abort():yi("Unable to abort request")}u.running||t(),u.progress_cb&&e.lengthComputable&&e.loaded&&e.total&&u.progress_cb({total:e.total,loaded:e.loaded}),y&&2<=e.readyState&&e.responseHeaders&&(t(),s(e))},onload:s})},l[0].cookie_url&&Ue?Ue(l[0].cookie_url,function(e){if(!e)return g();Mo(n,"cookie",Me(e)),g()},{need_full:!0}):g())):s({status:200,responseHeaders:"Content-Type: "+(t?"video/mp4":"image/jpeg"),readyState:3,finalUrl:l[0].url})));i=_i("img"),Vr(i,l[0]),i.src=l[0].url,i.onload=function(){o(i,l[0].url,l[0])},i.onerror=function(e){vi("Error loading image",e),c()}}var ai={8:"backspace",13:"enter",16:"shift",17:"ctrl",18:"alt",19:"pause",27:"esc",32:"space",37:"left",38:"up",39:"right",40:"down",44:"prntscreen",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",111:"/",106:"*",107:"+",109:"-",110:".",145:"scrlock",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",226:"\\"},En=9007199254740991,Un=En,Dn='"Noto Sans", Arial, Helvetica, sans-serif',Ln=function(e,t){if(!Ti.mouseover_ui_use_safe_glyphs)try{for(var o=0;o<t.length;o++)if(document.fonts.check(e,t[o]))return t[o]}catch(e){bi(e)}return t[t.length-1]};function ni(e){var t=e.which;if(e.code){e=e.code.match(/^Numpad([0-9]+)$/);if(e)return e[1]}return t in ai?ai[t]:65<=t&&t<=90||48<=t&&t<=57?q(t).toLowerCase():void 0}function Pn(e){return 0===e.length?[[]]:mi(e[0])?e:[e]}function jn(o,e,t){if(si&&vi("general_extension_message_handler",o),"settings_update"===o.type)Lr(o.data.changes);else if("request"===o.type){var a=o.data;if(a.id in xe){var r=function(){for(var e=xe[a.id].data,t=["onload","onerror","onprogress","onabort","ontimeout"],o=!1,r=0;r<t.length;r++){var i=t[r];a.event===i&&e[i]&&(si&&vi("Running "+i+" for response",a),e[i](a.data),o=!0)}si&&!o&&yi("No event handler for",a),a.final&&delete xe[a.id]};if(a.data&&"blob"===a.data.responseType){var i=a.data._responseEncoded;if(i){var n,s="blob";if("arraybuffer"===a.data._wanted_responseType&&(s="arraybuffer"),i.value){for(var l=new Uint8Array(i.value.length),u=0;u<i.value.length;u++)l[u]=i.value.charCodeAt(u);if("blob"===s)try{a.data.response=new N([l.buffer],{type:i.type})}catch(e){bi(e),a.data.response=null}else a.data.response=l.buffer}else if(i.objurl)return(n=new XMLHttpRequest).open("GET",i.objurl),n.responseType=s,n.onload=function(){Nn(i.objurl),a.data.response=n.response,r()},n.onerror=function(){Nn(i.objurl),bi("Unable to load blob for",i,n),a.data.response=null,r()},void n.send()}else a.data.response=null}else a.data&&a.data.responseText&&!a.data.response&&(a.data.response=a.data.responseText);r()}else si&&vi("Request ID "+a.id+" not in extension_requests")}else if("bg_redirect"===o.type){if(Ti.redirect&&Ti.redirect_extension&&Ti.imu_enabled)try{var c=Ga(o.data.responseHeaders);c["content-type"]&&yr(c["content-type"])&&wr(o.data.url,!1,function(e,t){dr(t,function(){chrome.tabs.update(o.data.tabId,{url:e})},o.data.tabId)})}catch(e){bi(e)}}else"get_localstorage"===o.type&&(De(o.data.url)?t(Le(o.data.keys,o.data.options)):t(null))}var Mn=function(e,t,o){t%o!=o-1?e():setTimeout(e,0)};function Hn(){si&&vi("do_mouseover ran");var b=function(){return!!Ti.imu_enabled&&!!ka(window.location.href)},e=function(){return b()&&Ti.mouseover},y=function(){return e()&&!1!==g&&"number"==typeof g&&$},w=!1,_e=0,ve=0,k="top",x=null,C=null,be=!1,z=0,R=0,Ue=0,De=0,o=[],ye=[],N=null,we=null,ke=null,S=null,l=null,Le=null,xe=null,q=null,Pe=!1,je=null,t=null,u=null,B=null,p=null,T=null,Ce=!1,c=!1,ze=!1,m=null,Re=[!1,!1],Ne=!1,Me=Ni.nullfunc,Se=Ni.nullfunc,He=Ni.nullfunc,$e=null,Fe=null,Oe=null,Ge=Ni.nullfunc,We=null,Ve=0,Xe=0,A=!1,Ye=null,I=null,E=0,U=null,D=0,qe=!1,Ze=null,Je=null,Ke=null,Qe=null,et=null,tt=null,Be=!1,L=!1,r=null,i=null,P=null,j=200,d=[],M={},h=[],ot=!1,H=Ya(ci),rt=Za(H);var g=!1,f=null,Te=!1,$=!0,F=null;function V(e){return Ti[e=e,e=N&&(t="t"+N+"_"+e)in Ti?t:e];var t}function it(e){return yn(V(e))}function O(){var e,t;r&&(e=_e,t=ve,r.style.left=e-j/2+"px",r.style.top=t-j/2+"px")}var G=function(e,t){var o;P=t=t||"wait",L=!0,Ti.mouseover_wait_use_el?(r||(Di(r=_i("div")),r.style.zIndex=Un,r.style.cursor=t,r.style.width=j+"px",r.style.height=j+"px",r.style.position="fixed",o=function(e,t){r.style.display="none",document.elementFromPoint(e.clientX,e.clientY).dispatchEvent(new MouseEvent(t,e)),r.style.display="block"},fi(r,"click",function(e){return o(e,"click")}),fi(r,"contextmenu",function(e){return o(e,"contextmenu")}),document.documentElement.appendChild(r)),r.style.cursor=t,r.style.display="block",O()):(i&&Ae(),(i=_i("style")).innerText="*,a,img,video {cursor: "+t+"!important}",document.documentElement.appendChild(i))};var Ae=function(){si&&vi("stop_waiting"),L=!1,Ti.mouseover_wait_use_el||i&&(i.parentElement.removeChild(i),i=null),r&&(r.style.display="none")};function at(){Ae()}var W=null;function s(){si&&vi("cursor_not_allowed"),G(void 0,"not-allowed"),W&&clearTimeout(W),W=setTimeout(function(){W=null,"not-allowed"===P&&at()},Ti.mouseover_notallowed_duration)}function nt(){(Ti.mouseover_enable_notallowed_cant_load?s:Ae)()}function Y(e,t,o,r){return!isNaN(r)&&void 0!==r||(r=0),e>=o.left-r&&e<=o.right+r&&t>=o.top-r&&t<=o.bottom+r}function Z(){for(var e=0;e<o.length;e++)o[e].running=!1}var J=function(){t&&(clearTimeout(t),t=null)},st=function(){Ti.mouseover_auto_close_popup&&Ti.mouseover_auto_close_popup_time&&(J(),t=setTimeout(Ie,1e3*Ti.mouseover_auto_close_popup_time))},K=null;function lt(){zi(ye,function(e){for(var t=e.querySelectorAll("img, video, audio"),o=0;o<t.length;o++)"VIDEO"!==t[o].tagName&&"AUDIO"!==t[o].tagName||t[o].pause(),An(t[o]);e.parentNode&&e.parentNode.removeChild(e);e=hi(ye,e);-1<e&&ye.splice(e,1)}),K&&(clearTimeout(K),K=null)}var Q,ee,te,oe,re,ie,ae,ne,ut=function(){we&&(we.parentElement&&we.parentElement.removeChild(we),we=null),se&&(clearTimeout(se),se=null)},se=null;function Ie(e){si&&vi("resetpopups(",e,")");var t=!!(e=e||{}).from_remote;zi(ye,function(e){0<Ti.mouseover_fade_time&&(Ti.mouseover_enable_fade||Ti.mouseover_enable_zoom_effect)?(Ti.mouseover_enable_fade&&(e.style.opacity=0),Ti.mouseover_enable_zoom_effect&&(e.style.transform="scale(0)"),K=K||setTimeout(lt,Ti.mouseover_fade_time)):lt()}),we&&(Ee(we,"pointer-events","none"),0<Ti.mouseover_mask_fade_time?(Ee(we,"opacity",0),se=se||setTimeout(ut,Ti.mouseover_mask_fade_time)):ut()),!t&&ca()&&(di?aa("top",{type:"resetpopups"}):c&&aa(c,{type:"resetpopups"})),Te=ze=!1,J(),xe&&(p=xe),Pe=c=Ce=!1,je=q=u=xe=B=null,Me=Ni.nullfunc,Se=Ni.nullfunc,He=Ni.nullfunc,A=!1,U=I=Oe=Fe=$e=null,D=E=0,e.automatic||(Ne=!1,l=null),e.new_popup||(Re=[!1,!1]),Z(),e.new_popup&&!Ti.mouseover_wait_use_el||Ae(),!$&&f&&(clearTimeout(f),f=null)}function ct(){return window.visualViewport?[window.visualViewport.width,window.visualViewport.height]:[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight]}Fi.push(Ie),ee=function(i,a,n,s){Xa("stream_parser",Ti,Si,function(e){if(!e)return s(null);var t,o=e[i];"dash"===i?t=o.parse:"hls"===i&&(t=function(e){var t=new o.Parser;return t.push(e),t.end(),t.manifest});try{var r=t(a,n)}catch(e){return bi(e),s(null)}return s(r)})},te=function(t,o,r){var e=Cn({url:o,onload:function(e){if(200!==e.status)return bi("Unable to load",e),r(null);ee(t.media_info.delivery,e.responseText,e.finalUrl||o,function(e){r(e)})}},t);Si(e)},oe=function(e){return e.sort(function(e,t){var e=e.attributes,t=t.attributes;return e.BANDWIDTH&&t.BANDWIDTH?t.BANDWIDTH-e.BANDWIDTH:e.RESOLUTION&&t.RESOLUTION?(e=e.RESOLUTION.width*e.RESOLUTION.height,t.RESOLUTION.width*t.RESOLUTION.height-e):0})},re=function(n,s,e){mi(s)||(s=[s]),oe(s);function l(t,o){var r,i,a,e=s[t];if(!e)return o(null);i=function(e){return e?o(e):l(t+1,o)},(r=e).uri?(r.uri=u(r.uri),a=r.uri,te(n,a,function(e){if(!e)return i(null);var t=r.attributes;ea(r,e),t&&(r.attributes=t),r.base_uri=a,r.uri=null,i(r)})):i(r)}var u=function(e){return Da(n.url,e,!0)};l(0,e)},ie=function(t,o){function r(e){e&&(e=i(e),Ki(a,e))}function e(e){e.map&&r(e.map.uri||e.map.resolvedUri),r(e.uri||e.resolvedUri)}var i=function(e){return Da(o.base_uri||t.url,e,!0)},a=[];return o.sidx&&e(o.sidx),zi(o.segments,e),a},Q=function(t,n){te(t,t.url,function(e){if(!e)return n(null);var r,i,a;a=function(e){var o,r;return e?(o=t,r={},Ri(e,function(e,t){r[e]=ie(o,t)}),n(r)):n(null)},re(r=t,(i=e).playlists,function(e){var t,o;return e?(t=(t=e.attributes.AUDIO)&&t in i.mediaGroups.AUDIO?(t=i.mediaGroups.AUDIO[t])[Object.keys(t)[0]]:null,o={video:e},t?void re(r,t.playlists||t,function(e){return e?(o.audio=e,a(o)):a(null)}):a(o)):a(null)})})},ae=function(t){if(null!==ne)return t(ne);var o=function(e){t(ne=e)};if("function"!=typeof SharedArrayBuffer)yi("SharedArrayBuffer doesn't exist"),o(!1);else try{var r=new SharedArrayBuffer(1);new Uint8Array(r)[0]=30;Wi("self.addEventListener('message', function(m) {try {var a = new Uint8Array(m.data); postMessage(a[0] === 30);} catch (e) {postMessage(false);}});",function(e){if(!e)return yi("Unable to create blob"),o(!1);var t=Rn(e),e=new Worker(t);e.onmessage=function(e){o(!!e.data)},e.postMessage(r),setTimeout(function(){Nn(t)},10)})}catch(e){return void(bi(e),o(!1))}};var le,ue,ce,de,pe,me,he,ge,fe,dt=ne=null,pt=function(o){Xa("ffmpeg",Ti,Si,function(t){var e;return!t||t._imu_failed_loading?o(null):(t._imu_instance?e=t._imu_instance:(t.overridden_xhr&&(t.xhr.do_request=function(e){return e=Cn(e,{headers:{Referer:"",Origin:""}}),/\/ffmpeg-core(?:\.worker)?\.js$/.test(e.url)&&(e.url="data:application/javascript,void%200"),Si(e)}),e=t.lib.createFFmpeg({log:!0,progress:function(e){dt&&dt(e.ratio)}}),t._imu_instance=e),void(e.isLoaded()?o(e):e.load().then(function(){o(e)},function(e){bi(e),t._imu_failed_loading=!0,o(null)})))})},mt=function(t){if(!Hi)return bi("Unable to load FFmpeg library: disabled for this build"),t(null);ae(function(e){if(!e)return bi("Unable to load FFmpeg library: SharedArrayBuffer is missing or unusable"),t(null);pt(t)})};function ht(r,o,e,i){function a(){g=!0}function n(){if(!g){var t;if(h>=o.length)return t=[],zi(o,function(e){t.push(l[e])}),i(t);if(!(m>=o.length))for(var e=p;e<u;e++)!function(t,o){p++,ba({url:t,headers:r.headers,can_head:r.can_head,head_wrong_contentlength:r.head_wrong_contentlength},{chunks:c,chunk_size:d,onload:function(e){p--,e||o(!1),l[t]=e,o(!0)},onprogress:function(e){s.update_progobj(t,e)}})}(o[m++],function(e){h++,g||(e?n():(a(),i(null)))})}}var s=new va({elements_num:o.length,cb:e}),l={},u=Ci(3,o.length),c=xi(1,u/3*5|0),d=2097152,p=(1===(c=r.max_chunks?Ci(c,r.max_chunks):c)&&(d=0),0),m=0,h=0,g=!1;return n(),{abort:a}}ce=!(ue=[]),de=function(t){function o(e){dt=null,ce=!1,ue.length&&(e?zi(ue,function(e){Fa(e.fail)}):de(t))}var r=ue.shift(),e=(dt=function(e){r.progress(e=1<e?1:e)},ce=!0,null);try{e=t.run.apply(this,r.op)}catch(e){return bi(e),o(!0),void r.fail(!1)}e.then(function(e){o(),r.success(e)},function(e){o(!0),r.fail(!1)})},pe=function(e,t,o,r,i){ue.push({op:t,progress:o,success:r,fail:i}),ce||de(e)},me=function(e){return e+"_"+ta(10)+"_"},he=function(e,t){try{var o=e.FS("stat",t);return o?o.size:null}catch(e){return null}},ge=function(t,e,o,r,i,a,n){function s(e){try{t.FS("unlink",r)}catch(e){}n(e)}var l=[];e&&l.push("-i",e),o&&l.push("-i",o),l.push("-c","copy",r),pe(t,l,i,function(e){if(!he(t,r))return s();a(e)},s)},le=function(g,e,f,_){var v=[];if(e.video&&v.push(e.video),e.audio&&v.push(e.audio),!v.length)return _(null);function b(t){if(v.length<=t){if(f(.5),y.length)if(2<y.length)return bi("Unknown extra file(s)",y),x();else{var e=g;var o=y[0];var r=y[1];var i=function(e){f(.5+.5*e)};var a=function(e){return e?(k(),_(e)):x()};if(!e)return a(null);function n(){ge(e,o,r,l+".mkv",i,function(){a(l+".mkv")},function(e){bi("Error muxing into .mkv",e),a(null)})}var s,l=me("out");Ti.stream_mux_mp4_over_mkv?ge(e,o,r,s=l+".mp4",function(e){i(e=.95<=e?.95:e)},function(){a(s)},function(e){if(!1===e)return a(null);n()}):n();return}return yi("No files"),x()}f(t/v.length*.5);var u,c,d,p,m,h=v[t];h.length?1===h.length?(g.FS("writeFile",u=w+"stream"+t,h[0].data),y.push(u),b(t+1)):(u=g,c=function(e){if(!e)return x();y.push(e),b(t+1)},d=0,zi(h=h,function(e){d+=e.data.byteLength}),p=new Uint8Array(d),m=0,zi(h,function(e){p.set(e.data,m),m+=e.data.byteLength}),h=me("concat"),u.FS("writeFile",h,p),c(h)):(yi("No stream data for",t),b(t+1))}var y=[],w=me("join"),k=function(){zi(y,function(e){g.FS("unlink",e)}),f(1)},x=function(){k(),_(null)};b(0)},fe=function(o,r,e,i){var a=new va({elements_num:Object.keys(r).length,cb:e}),n={},s={},l=!1;Ri(r,function(t,e){s[t]=ht(o,e,function(e){a.update_progobj(t,e)},function(e){if(!l){if(!e)return l=!0,Ri(s,function(e,t){t.abort()}),i(null);n[t]=e,Object.keys(n).length===Object.keys(r).length&&i(n)}})})};function gt(m,i,a,h,n){Xa("shaka",Ti,Si,function(e){if(!e)return n();var t,o=e.lib;if(o.log.setLevel(o.log.Level.ERROR),!o.Player.isBrowserSupported())return yi("Unsupported browser for Shaka"),n();t=m,(e=e).overridden_xhr&&(e.xhr.do_request=function(e){Si(Cn(e,t))});function r(e){return bi(e),n()}var c=new o.Player(i),d=(c.addEventListener("error",r),!1),p=!1;c.addEventListener("buffering",function(){d&&!p&&(i.currentTime=i.currentTime-.001,p=!(d=!1),h())}),c.load(a).then(function(){if(m.subtitles)for(var e=0,t=Bn(m.subtitles);e<t.length;e++){var o=t[e],r=o.language_code||"en",i=o.title||null,a=o.mime||void 0;c.addTextTrackAsync(o.url,r,"subtitle",a,void 0,i,!1)}var n,s,l=c.getTextTracks(),l=(l&&l.length&&c.selectTextTrack(l[0]),c.setTextTrackVisibility(!!Ti.popup_enable_subtitles),c.getVariantTracks()),u=(Ti.hls_dash_use_max&&(l.sort(function(e,t){return t.bandwidth-e.bandwidth}),c.configure("abr.enabled",!1),c.selectVariantTrack(l[0],!0,0),d=!0),u=(u=Ui("max_video_quality"))&&parseInt(u.substr(1)));if(u&&(l.sort(function(e,t){var o=e.height-t.height;return o||e.bandwidth-t.bandwidth}),n=u,s=-1,zi(l,function(e,t){return e.height===n?(s=t,!1):e.height>n?(s=0===t?t:t-1,!1):void 0}),0<=(u=s))&&(c.configure("abr.enabled",!1),c.selectVariantTrack(l[u],!0,0),d=!0),!d)return p=!0,h();setTimeout(function(){p||(p=!0,h())},5e3)},r)})}H={el_init:function(e){gt(e.info_obj,e.el,e.src,e.success,e.fail)},active:function(){return Ti.allow_thirdparty_libs&&V("mouseover_allow_hlsdash")}},xn.dash=H,xn.hls=H;var ft=function(e,o){if("string"==typeof e&&(e=Ii(e))){for(var r={},t="default",i=e.split("\n"),a=0;a<i.length;a++){var n=Ii(i[a]);if(n&&!/^\/\//.test(n)){var s,l,u,c,d=n.match(/^(#[-a-zA-Z0-9]+(?:\s*,\s*#[-a-zA-Z0-9]+){0,})\s*{/);if(d){if("default"!==t)return void bi("Nested blocks aren't supported");t=d[1].split(/\s*,\s*/),i[a--]=n.substr(d[0].length)}else if("}"===n[0]){if("default"===t)return void bi("No block to escape from");t="default"}else gi(n,":")<0||("default"!==(d=t)&&/}$/.test(n)&&(n=Ii(n.replace(/}$/,"")),d="default"),s=Ii(n.replace(/^(.*?)\s*:.*/,"$1")),l=Ii(n.replace(/^.*?:\s*(.*)$/,"$1")),0<=(n=gi(l,";"))&&((c=l.search(/['"]/))<0?(i[a--]=l.substr(n+1),l=Ii(l.substr(0,n))):(c=l.substr(c+1).search(/['"]/)+c+1,0<=(n=gi(l.substr(c+1),";"))&&(n+=c+1,i[a--]=l.substr(n+1),l=Ii(l.substr(0,n))))),u=!1,l.match(/!important$/)&&(u=!0,l=Ii(l.replace(/!important$/,""))),mi(c=t)||(c=[c]),zi(c,function(e){var t={property:s,value:l,important:u};e in r||(r[e]={}),o?(s in r[e]||(r[e][s]=[]),r[e][s].push(t)):r[e][s]=t}),t=d)}}return r}};function _t(e){var t=function(e){if(e&&"string"==typeof e&&Ii(e)){for(var t={},o=e.split(/[;\n]/),r=0;r<o.length;r++){var i,a,n=Ii(o[r]);!n||gi(n,":")<0||/^\s*\/\//.test(n)||(i=Ii(n.replace(/^(.*?)\s*:.*/,"$1")),a=!1,(n=Ii(n.replace(/^.*?:\s*(.*)$/,"$1"))).match(/!important$/)&&(a=!0,n=Ii(n.replace(/!important$/,""))),t[i]={value:n,important:a})}return t}}(e);if(t){var o,r=[];for(o in t){var i=o+": "+t[o].value;t[o].important,r.push(i+=" !important")}return r.join("; ")}}function vt(a,e,n){e=ft(e,!0);if(e){n.allow_revert&&(t=a.getAttribute("style"))&&a.setAttribute("data-imu-oldstyle",t);var t,o={};if("default"in e&&(o=e.default),n.id&&"#"+n.id in e){var r=e["#"+n.id];for(s in r)s in o||(o[s]=[]),Ji(o[s],r[s])}var s,l=Ca(n.format_vars);for(s in o)zi(o[s],function(e){var t=s,o=e.value;if(o.match(/^['"].*['"]$/)&&(o=o.replace(/^["'](.*)["']$/,"$1")),n.old_variables)for(var r in n.old_variables)o=Qi(o,r,n.old_variables[r]);if(n.format_vars){var i=kt(o,l);if(!i)return;o=i}n.properties&&t in n.properties&&n.properties[t](o,t),e.important||n.force_important?a.style.setProperty(t,o,"important"):a.style.setProperty(t,o),a.setAttribute("data-imu-newstyle",!0)})}}function Ee(e,t,o){e.style.setProperty(t,o,"important")}function bt(e){var t,o=nn(e);return"VIDEO"===o?[e.videoWidth,e.videoHeight]:"CANVAS"===o?[e.width,e.height]:"SVG"===o?[e.width.animVal.value,e.height.animVal.value]:"IMG"===o?[(t=zn(e)).width,t.height]:"PICTURE"===o?[e.naturalWidth,e.naturalHeight]:[e.offsetWidth||At(e.style.width),e.offsetHeight||At(e.style.height)]}function yt(e){li&&ui({type:"add_to_history",data:{url:e}})}var wt=function(e){for(var t=[],o=function(){r.length&&(t.push(i?{text:r,type:"var"}:r),r="")},r="",i=!1,a=!1,n=0;n<e.length;n++){var s=e[n];if("\\"===s)a?r+="\\":a=!0;else{if(!a)if("{"===s){if(!i){o(),i=!0;continue}}else if("}"===s&&i){o(),i=!1;continue}r+=s}}return o(),t},kt=function(e,t){if(e=e.replace(/\/\/.*/,""),!(e=Ii(e)))return null;for(var o=wt(e),r="",i=0;i<o.length;i++)if("string"==typeof o[i])r+=o[i];else{var a,n=o[i].text,s=null,l=null,u=!1,c=null,d=[],p=n.match(/^([^?]+)[?](.*)$/),m=(p&&(n=p[1],s=p[2]),(p=n.match(/^([^!/:=]+)([!=]=)(.*)$/))&&(n=p[1],l=p[3],u="!="===p[2],c="eq"),(p=n.match(/^([^!/:=]+)(!)?\/([rc]{0,2})=(.*)$/))&&(n=p[1],l=p[4],u="!"===p[2],c="contains",m=p[3],0<=gi(m,"r")&&d.push("regex"),0<=gi(m,"c"))&&d.push("nicase"),(p=n.match(/^([^!/:=]+):=(.*)$/))&&(n=p[1],l=p[2],c="set"),t[n]),p=((p=n.match(/^(.*?):([0-9]+)(\.)?$/))&&(m=t[p[1]])&&(a=m.substr(0,parseInt(p[2])),p[3]&&a!==m&&(a+="…"),m=a),!!m);if(m&&"object"==typeof m&&(a=m,m="","usable"in a&&(p=a.usable),"value"in a)&&(m=a.value),c&&(p&&("eq"===c?p=m===l:"contains"===c&&(hi(d,"nicase")<0&&(m=m.toLowerCase(),l=l.toLowerCase()),p=0<=hi(d,"regex")?new RegExp(l).test(m):0<=gi(m,l))),"set"===c&&(t[n]=l,p=!0),u&&(p=!p),m=""),!p){if("string"!=typeof s)return null;m=s}r+=m}return Ii(r)},xt=function(e,t){return 1===e?t[0]:t[1]},Ct=function(e,r){r=r||2;var o,i={seconds:(e=e/1e3|0)%60,minutes:(e/60|0)%60,hours:(e/60/60|0)%24,days:e/60/60/24|0,months:e/60/60/24/30.4375|0,years:e/60/60/24/365.25|0},a={months_years:12,days_years:365.25,days_months:30.4375,days_weeks:7},n={seconds:"second",minutes:"minute",hours:"hour",days:"day",weeks:"week",months:"month",years:"year"},e=Object.keys(i).reverse(),s=[];return zi(e,function(e){var t,o;return!(s.length>=r)&&(t=i[e],(t=(o=s[s.length-1])&&(o=a[e+"_"+o[0]])?t%o|0:t)?void s.push([e,t]):!s.length&&void 0)}),s.length?(o=[],zi(s,function(e){var t=e[0],e=e[1],t=n[t],t=xt(e,[t,t+"s"]);o.push(e+" "+t)}),o.join(" and ")+" ago"):null},zt=function(e,t){mi(e)||(e=e.split("\n"));for(var o=0;o<e.length;o++){var r=kt(e[o],t);if(r)return r}return null},Rt=function(t,e,o){"string"!=typeof t.filename&&(t.filename="");var r=null,i=null,a=null,n=null;if(o){try{for(var s=Oa(o.responseHeaders),l=0;l<s.length;l++){var u=s[l].name.toLowerCase(),c=s[l].value;if("content-disposition"===u)for(var d=0;d<100&&"string"==typeof c&&0<c.length;){var p=c.replace(/^\s*([^;]*?)\s*(?:;.*)?$/,"$1").replace(/^\s*([^=;]*?)\s*(?:[=;].*)?$/,"$1").toLowerCase(),m=c.match(/^[^=;]*(?:(?:=\s*(?:(?:["']([^'"]*?)["'])|([^;]*?))\s*(;.*)?\s*)|;\s*(.*))?$/);if(!m){bi("Header value does not match pattern:",c);break}var h=m[1]||m[2];0===t.filename.length&&"filename"===p&&"string"==typeof h&&0<h.length&&(t.filename=h),c=m[3]||m[4],d++}else"content-type"===u?i=Va(c):"last-modified"===u&&(r=new Date(c),isNaN(r.getTime()))&&(r=null);if(0<t.filename.length&&i&&r)break}}catch(e){bi(e)}var o=/^data:/.test(e),g=(o&&(t.filename=""),!1),o=(0!==t.filename.length||o||(t.filename=e.replace(/.*\/([^?#/]*)(?:[?#].*)?$/,"$1"),g=!0),g&&(t.filename=decodeURIComponent(t.filename)),a=t.filename,0===t.filename.length&&(t.filename="download"),La(t.filename,{split_ext:!0,known_ext:!0}));i&&!o[1]&&(a.length&&(a+="."+i),t.filename+="."+i),(o=La(t.filename,{split_ext:!0,known_ext:!0}))[1]&&(n=o[1])}"_orig_filename"in t||(t._orig_filename=a);var f={filename:t._orig_filename};f.host_url=ci,f.host_domain=Ya(ci),f.host_domain_nosub=Za(f.host_domain);try{f.host_title=document.title}catch(e){}t.url&&/^https?:\/\//i.test(t.url)&&(f.url=t.url,f.domain=Ya(t.url),f.domain_nosub=Za(f.domain));function _(e,t){var o,r,i={year:"FullYear",month:"Month",day:"Date",hours:"Hours",minutes:"Minutes",seconds:"Seconds"},a=[];for(o in i){var n=t["get"+i[o]](),s=t["getUTC"+i[o]]();"month"===o&&(n++,s++),n=Ha(n,2),s=Ha(s,2),a[o]=n,a[o+"_utc"]=s,f[e+"_"+o]=n,f[e+"_"+o+"_utc"]=s}f[e+"_iso"]=a.year+"-"+a.month+"-"+a.day+"T"+a.hours+"-"+a.minutes+"-"+a.seconds,f[e+"_iso_utc"]=a.year_utc+"-"+a.month_utc+"-"+a.day_utc+"T"+a.hours_utc+"-"+a.minutes_utc+"-"+a.seconds_utc,f[e+"_yyyymmdd"]=a.year+a.month+a.day,f[e+"_yyyymmdd_utc"]=a.year_utc+a.month_utc+a.day_utc,f[e+"_hhmmss"]=a.hours+a.minutes+a.seconds,f[e+"_hhmmss_utc"]=a.hours_utc+a.minutes_utc+a.seconds_utc,"download"!==e&&(r=Ct(Date.now()-t.getTime()))&&(f[e+"_ago"]=r),f[e+"_unix_ms"]=t.getTime(),f[e+"_unix"]=t.getTime()/1e3|0}e=null,g=null,o=new Date,!(g=t.extra&&(zi(["caption","author_username","id"],function(e){f[e]=t.extra[e]}),t.extra.created_date&&(e=new Date(t.extra.created_date)),t.extra.updated_date)?new Date(t.extra.updated_date):g)&&r&&(g=r),e&&_("created",e),(g||e)&&_("updated",g||e),o&&_("download",o),(e||g)&&_("date",e||g),f.filename&&(a=La(f.filename,{split_ext:!0,known_ext:!0}),f.filename_noext=a[0],n)&&(f.ext="."+n),t.format_vars=Ca(f),o=qt(Ti.filename_format,f);t.filename=o||St(t.filename,f)},Nt=function(e,t){return e&&(t.prefix&&(e=t.prefix+e),t.suffix)&&(e+=t.suffix),e},St=function(e,t){return e=Nt(e,t),!La(e,{split_ext:!0,known_ext:!0})[1]&&t.ext&&(e+=t.ext),e},qt=function(e,t){e=zt(e,t);return e?St(e,t):null};function Bt(e,t,v,o){si&&vi("makePopup",e,t,v,o),Ti.mouseover_add_to_history&&yt(o.data.obj.url),t&&Ti.mouseover_add_thumbnail_to_history&&yt(t);var r,R,i,a,N,S,q,d,b,y,w,k,x,n,B,s,C,l,O,T,G,A,I,E,U,D,W,z,u,V,X,Y,L,P,j,M,Z,J,c,K,Q,ee,g,te,oe,re,H,ie,p,ae,ne,se,le,m,ue,h,ce,de,f,_,e=it("mouseover_open_behavior");function $(e,t){e=J(e,t);M=e[0],j=e[1]}function pe(){var e=Ti.mouseover_ui_opacity/100;return e=(e=1<(e=isNaN(e)?1:e)?1:e)<0?0:e}function me(e,t,o){t=t||e,fi(e,"mouseover",function(e){t.style.opacity="1.0",o&&(t.style.boxShadow="0px 0px 5px 1px white")},!0),fi(e,"mouseout",function(e){t.style.opacity=pe(),o&&(t.style.boxShadow="none")},!0)}function F(o){var e,t,r="span",i=("string"==typeof o.action&&(r="a"),_i(r));return o.action&&("object"==typeof o.action&&(e=o.action,o.action=function(){Wr(e)}),fi(i,"mousedown",function(e){e.stopPropagation(),e.stopImmediatePropagation()}),"function"==typeof o.action?fi(i,"click",function(e){if(!i.hasAttribute("data-btn-noaction"))return e.stopPropagation(),e.stopImmediatePropagation(),e.preventDefault(),o.action(),!1},!0):"string"==typeof o.action&&(i.href=o.action,i.target="_blank",i.setAttribute("rel","noreferrer"),fi(i,"click",function(e){e.stopPropagation(),e.stopImmediatePropagation()},!0)),fi(i,"mouseover",function(e){Ee(i,"box-shadow","0px 0px 5px 1px white")},!0),fi(i,"mouseout",function(e){Ee(i,"box-shadow","none")},!0)),fi(i,"mousedown",function(e){re=!0},!0),fi(i,"mouseup",function(e){re=!1},!0),"object"==typeof o.text&&o.text.truncated!==o.text.full&&(fi(i,"mouseover",function(e){var t=sn(i);Ee(i,"width",t.width||i.clientWidth+"px"),Ee(i,"height","initial"),i.innerText=o.text.full},!0),fi(i,"mouseout",function(e){i.innerText=o.text.truncated,i.style.width="initial"},!0)),Di(i),o.action&&Ee(i,"cursor","pointer"),Ee(i,"background",y),Ee(i,"border","3px solid "+w),Ee(i,"border-radius","10px"),Ee(i,"direction",ie),"string"==typeof o.text&&1===o.text.length&&256<o.text.charCodeAt(0)?(Ee(i,"color","transparent"),Ee(i,"text-shadow","0 0 0 "+k)):Ee(i,"color",k),Ee(i,"padding","4px"),Ee(i,"line-height","1em"),Ee(i,"font-size","14px"),Ee(i,"font-family",Dn),vt(i,Ti.mouseover_ui_styles,{id:o.id,force_important:!0,format_vars:S.format_vars,properties:{"-imu-text":function(e){"object"==typeof o.text?o.text.truncated=e:o.text=e},"-imu-title":function(e){o.title=e},"-imu-image":function(e){o.image=e},"-imu-pos":function(e){o.pos=e,hi(["top-left","top-middle","top-right","left","middle","right","bottom-left","bottom-middle","bottom-right"],e)<0&&(yi("Invalid pos",e),o.pos="top-left")}}}),o.image&&(o.text=null),Ee(i,"z-index",Un-1),Ee(i,"position","relative"),Ee(i,"margin-right","4px"),Ee(i,"vertical-align","top"),Ee(i,"white-space","pre-wrap"),Ee(i,"display","inline-block"),o.action&&Ee(i,"user-select","none"),"string"==typeof o.image&&(Di(r=_i("img")),Ee(r,"padding","0px"),Ee(r,"margin","0px"),Ee(r,"display","inline"),Ee(r,"height","1em"),Ee(r,"cursor","inherit"),r.src=o.image,i.appendChild(r)),o.text&&("object"==typeof o.text&&o.text.link_underline&&Ti.mouseover_ui_link_underline&&Ee(i,"text-decoration","underline"),"string"==typeof o.text?i.innerText=o.text:"object"==typeof o.text&&(i.innerText=o.text.truncated)),o.title&&(i.title=o.title),o.containers&&o.pos&&((r=o.containers[o.pos]).appendChild(i),t=oe(),r.hasAttribute("data-imu-middle_x")&&Ee(r,"left",(t[0]-r.clientWidth)/2+"px"),r.hasAttribute("data-imu-middle_y"))&&Ee(r,"top",(t[1]-r.clientHeight)/2+"px"),i}function he(t,o){kn(t?1:-1,function(e){e||(o&&t&&Ti.scroll_past_gallery_end_to_close?Ie:ge)()})}function ge(n,e){for(var t=0;t<H.length;t++){var o=H[t];o.parentNode.removeChild(o)}H=[];var r=R.getBoundingClientRect(),s="14px "+Dn,l={},i=(Ri({"top-left":["left","top"],"top-middle":["middle","top"],"top-right":["right","top"],left:["left","middle"],middle:["middle","middle"],right:["right","middle"],"bottom-left":["left","bottom"],"bottom-middle":["middle","bottom"],"bottom-right":["right","bottom"]},function(e,t){l[e]=se(t[0],t[1],14,r)}),!Ti.mouseover_ui);if(e&&("toggle"===e?i=le:!0===e&&(i=!0)),i)B.appendChild(l["top-left"]),le=!1;else{for(var a in le=!0,l)me(l[a]),B.appendChild(l[a]),H.push(l[a]);Ti.mouseover_ui_closebtn&&F({id:"closebtn",text:"×",title:Bi("Close")+" ("+Bi("ESC")+")",action:function(){Ie()},pos:"top-left",containers:l});var u,c,d,p,m=function(){var e=fo();return Yi(e)%180==90},h=function(){return r.width||M||P},g=function(){return r.height||j||L},f=function(){return(m()?h:g)()},_=0,v=0,b=!1,y=((Ti.mouseover_ui_imagesize||Ti.mouseover_ui_zoomlevel||Ti.mouseover_ui_filesize)&&Ee(F({id:"sizeinfo",text:function(){for(var e="",t=f(),t=ki(100*(t/L)),o=0,r=(S&&S.filesize&&(o=S.filesize),[{value:P+"x"+L,valid:Ti.mouseover_ui_imagesize},{value:t+"%",valid_paren:100!==t,valid:Ti.mouseover_ui_zoomlevel},{value:hn(o),valid:Ti.mouseover_ui_filesize&&o}]),i=[],a=0;a<r.length;a++){var n=r[a];!n.valid||0<i.length&&!1===n.valid_paren||i.push(n.value)}return 0===i.length?"":(e=i[0],1<i.length&&(e+=" ("+i.slice(1).join(", ")+")"),e)}(),pos:"top-left",containers:l}),"font-size","13px"),function(){return b?Bi("Loading..."):_+v>Ti.mouseover_ui_gallerymax?Ti.mouseover_ui_gallerymax+"+":_+1+" / "+(_+v+1)}),w=function(){d||(0<_+v||b?(Ee(u,"display","inline-block"),u.innerText=y()):Ee(u,"display","none"))},k=function(){ot=!1,d&&(Ee(c,"display","none"),u.removeChild(c),u.removeAttribute("data-btn-noaction"),d=!1,w())},x=O&&B.clientWidth||M,C=(Ti.mouseover_enable_gallery&&Ti.mouseover_ui_gallerycounter&&(u=F({id:"gallerycounter",text:y(),action:function(){ot=d=!0,u.innerText="",Ee(c,"display","initial"),c.value=_+1,u.setAttribute("data-btn-noaction",!0),u.appendChild(c),setTimeout(function(){c.select(),c.setSelectionRange(0,c.value.length)},100)},pos:"top-left",containers:l}),Ee(u,"font-size","13px"),Ee(u,"display","none"),c=_i("input"),d=!1,Di(c),Ee(c,"display","none"),Ee(c,"background-color","white"),Ee(c,"font-family",Dn),Ee(c,"font-size","12px"),Ee(c,"padding","1px"),Ee(c,"padding-left","2px"),Ee(c,"width","5em"),fi(c,"mouseout",k),fi(c,"keydown",function(e){var t;if(13===e.which)return t=c.value.replace(/\s+/g,""),/^[0-9]+$/.test(t)&&(t=parseInt(t),kn(t-(_+1))),k(),e.stopPropagation(),e.preventDefault(),!1},!0)),Ti.mouseover_ui_optionsbtn&&F({id:"optionsbtn",text:"⚙",title:Bi("Options"),action:oa(),pos:"top-left",containers:l}),Ti.mouseover_ui_downloadbtn&&F({id:"downloadbtn",text:Ln(s,["🡇","🡫","↓"]),title:Bi("Download ("+pn(Ti.mouseover_download_key)+")"),action:{type:"download"},pos:"top-left",containers:l}),Ti.mouseover_ui_rotationbtns&&(F({id:"rotleftbtn",text:"↶",title:(e=function(e){return Bi("left"===e?"Rotate Left":"Rotate Right")+" ("+pn(Ti["mouseover_rotate_"+e+"_key"])+")"})("left"),action:{type:"rotate_left"},pos:"top-left",containers:l}),F({id:"rotrightbtn",text:"↷",title:e("right"),action:{type:"rotate_right"},pos:"top-left",containers:l})),Ti.mouseover_ui_caption&&(i=function(e,t){if(e&&e.extra&&e.extra.caption)return Ii(e.extra.caption);if(t)do{var o=t.getAttribute("title"),r=t.getAttribute("alt");if(o||r)return(o=o||r)===t.src?null:Ii(o)}while(t=t.parentElement);return null}(S,xe),e=Ti.mouseover_ui_caption_link_page&&S.extra&&S.extra.page,i=!i&&e?"(original page)":i)&&(z=i,Ti.mouseover_ui_wrap_caption&&(p=parseInt(xi(10,Ci(60,(x-l["top-left"].clientWidth)/10))),z={truncated:mn(i,p),full:i,link_underline:e}),p=null,F({id:"caption",text:z,title:i,action:p=e?S.extra.page:p,pos:"top-left",containers:l})),function(e,t,o,r){if(Ti.mouseover_enable_gallery&&!(x<200)){var i=f(),a=0,n=20,i=i-(n=i<100?0:n)-(a=N?60:a);if(!(i<10))return Di(a=_i("div")),a.title=r,e?a.style.left="0em":a.style.right="0em",a.style.top=n+"px",a.style.height=i+"px",a.style.position="absolute",a.style.width="15%",a.style.maxWidth="200px",a.style.zIndex=Un-2,a.style.cursor="pointer",me(a,t,!0),fi(a,"click",function(e){return Be||(q(e),o(e)),!1},!0),B.appendChild(a),H.push(a),a}}),z=function(a){Ti.mouseover_enable_gallery&&uo(a,function(e){var t,o,r,i;e&&(t=a,Ti.mouseover_enable_gallery)&&Ti.mouseover_ui_gallerybtns&&(e=function(){return he(t)},r=t?"Next":"Previous",o=Ln(s,t?["🡒","→"]:["🡐","←"]),i=t?Ti.mouseover_gallery_next_key:Ti.mouseover_gallery_prev_key,i=pn(i),r=Bi(r)+" ("+Bi(i)+")",i=F({id:"gallery"+(t?"next":"prev")+"btn",text:o,title:r,action:e,containers:l,pos:t?"right":"left"}),C(!t,i,e,r),Ti.mouseover_enable_gallery)&&Ti.mouseover_ui_gallerycounter&&(n?(t?v=ne:_=ae,w()):(no(t,void 0,b=!0,void 0,void 0,function(e){b=!1,t?ne=v=e:ae=_=e,w()}),setTimeout(w,1)))})};z(!1),z(!0)}}function fe(e){Be=!(qe=!0),Ze=e.clientX,Je=e.clientY,Ke=Ze-parseFloat(B.style.left),Qe=Je-parseFloat(B.style.top)}"newtab"===e||"newtab_bg"===e||"download"===e||"copylink"===e||"replace"===e?(Ae(),"string"==typeof(t=o.data.obj)&&(t={url:t}),(i=o.data.resp||o.data.respdata).finalUrl&&(t.url=i.finalUrl),Rt(t,t.url,i),ke=t,"newtab"===e||"newtab_bg"===e?ga(t,"newtab_bg"===e):"download"===e?Rr():"copylink"===e?ya(t.url):"replace"===e&&(i=Po(),Ao(i,{el:xe},o,Ni.nullfunc))):(t=o.x,e=o.y,null==t&&(t=Ue),null==e&&(e=De),r=qe=Be=!1,R=o.data.img,i=o.data.newurl,R?(a="VIDEO"===R.tagName,c="AUDIO"===R.tagName,N=a||c,S=o.data.obj,ke=S=S||{},q=function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!0},d=function(e){return e.preventDefault(),q(e),!0},et=Ue=t,tt=De=e,b=Ui("mouseover_zoom_behavior"),s=Ui("mouseover_zoom_use_last"),h=Ye&&("always"===s||"gallery"===s&&Ce)?!0:!1,y="#333",k=w="#fff",s=Ui("mouseover_enable_mask_styles2"),x=1,ut(),(Ti.mouseover_close_click_outside||Ti.mouseover_mask_ignore_clicks||"never"!==s)&&(we=_i("div"),Di(n=we),Ee(n,"opacity",1),"never"!==s&&vt(n,Ti.mouseover_mask_styles2,{force_important:!0}),x=n.style.opacity,"hold"===s&&Ee(n,"opacity",0),Ti.mouseover_close_click_outside||Ti.mouseover_mask_ignore_clicks||Ee(n,"pointer-events","none"),Ee(n,"position","fixed"),Ee(n,"z-index",Un-3),Ee(n,"width","100%"),Ee(n,"height","100%"),Ee(n,"left","0px"),Ee(n,"top","0px"),0<Ti.mouseover_mask_fade_time&&(Ee(n,"transition","opacity "+Ti.mouseover_mask_fade_time/1e3+"s"),"hold"!==s)&&(Ce?Ee(n,"opacity",x):(Ee(n,"opacity",0),setTimeout(function(){Ee(n,"opacity",x)},1))),fi(n,"mousedown",function(e){Ti.mouseover_close_click_outside&&q(e)}),fi(n,"click",function(e){Ti.mouseover_close_click_outside&&(q(e),Ee(n,"pointer-events","none"),Ie())},!0)),Di(B=_i("div")),Ee(B,"position","fixed"),Ee(B,"z-index",Un-2),s=!1,0<Ti.mouseover_fade_time&&!Ce&&(u=[],p=[],_=Ti.mouseover_fade_time/1e3+"s",Ti.mouseover_enable_fade&&(u.push("opacity "+_),Ee(B,"opacity",0)),Ti.mouseover_enable_zoom_effect&&(u.push("transform "+_),Ee(B,"transform","scale(0)"),Ti.mouseover_zoom_effect_move)&&(p.push("top "+_),p.push("left "+_),s=!0),0<u.length&&(C=u.join(", "),Ji(u,p),_=u.join(", "),Ee(B,"transition",_),0<p.length)&&setTimeout(function(){Ee(B,"transition",C)},Ti.mouseover_fade_time),setTimeout(function(){Ee(B,"opacity",1),Ee(B,"transform","scale(1)")},1)),l=_i("div"),O=!1,Di(l),Ee(l,"box-shadow","0 0 15px rgba(0,0,0,.5)"),Ee(l,"border","3px solid "+w),Ee(l,"position","relative"),Ee(l,"top","0px"),Ee(l,"left","0px"),Ee(l,"display","block"),Ee(l,"background-color","rgba(255,255,255,.5)"),u="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==",(_={})["%thumburl%"]=je&&!Pe?Ma(je):u,_["%fullurl%"]=N?u:Ma(cn(R)),vt(l,Ti.mouseover_styles,{force_important:!0,old_variables:_}),B.appendChild(l),G=30,U=xi(t-(T=20),0),D=xi(e-G,0),z=function(e){var t;t=e[1],B.style.top=t+"px",t=e[0],B.style.left=t+"px"},(W=function(e,t){A=ct(),I=A[0],E=A[1],I-=2*T,E-=T+G,void 0!==e&&(U=Ci(I,xi(e-T,0)),D=Ci(E,xi(t-G,0)))})(t,e),c&&(R.style.width="500px",R.style.minWidth="500px",R.style.height="50px",R.style.minHeight="50px"),p=bt(R),c||Di(R),u=!1,(u=!N&&Ti.mouseover_add_link||a&&Ti.mouseover_add_video_link?!0:u)&&(R.style.cursor="pointer"),R.style.verticalAlign="bottom",Ee(R,"display","block"),V=function(e){R.style.setProperty("display",e[0],e[1])},X=[{domain_nosub:/^pornhub(?:premium)?\./,img_display:["block"]},{domain_nosub:/^pornhub(?:premium)?\./,img_display:["initial","important"]},{domain_nosub:/^gelbooru\./,func:function(){var e=_i("span");e.appendChild(R),m.appendChild(e)}}],(Y=function(){setTimeout(function(){var e,t=sn(R);if("none"===t.display)for(;0<X.length;){var o=X.shift();if(!(e=o).domain_nosub||e.domain_nosub.test(rt)){(e=o).img_display?V(e.img_display):e.func&&e.func(),0<X.length&&Y();break}}},50)})(),Ee(R,"object-fit","contain"),P=p[0],j=L=p[1],M=P,(Z=function(e,t){var o,r=!1;"custom"===e||t?(o=Ti.mouseover_zoom_custom_percent/100,M=xi(P*(o=t?Ye:o),20),j=xi(L*o,20),r=!0):"fit"===e||"fill"===e?(R.style.maxWidth=I+"px",R.style.maxHeight=E+"px","fill"===e&&P<I&&L<E&&(o=1,M*=o=P<L?E/L:I/P,j*=o,r=!0)):"full"===e&&(M=P,j=L,r=!0),r&&(R.style.maxWidth=M+"px",R.style.width=R.style.maxWidth,R.style.maxHeight=j+"px",R.style.height=R.style.maxHeight)})(b,h),j<20||M<20?(nt(),bi("Image too small to popup ("+M+"x"+j+")")):(J=function(e,t){void 0===e&&(e=I);var o=j,r=M;return((t=void 0===t?E:t)<j||e<M)&&(o/=t=M/e<j/t?j/t:M/e,r/=t),[r,o]},"fit"!==b&&"fill"!==b||h||$(),_=Ti.mouseover_zoom_max_width||void 0,c=Ti.mouseover_zoom_max_height||void 0,(_||c)&&$(_,c),Oe=function(e){var t=!1;"last"===e&&(e=Ui("mouseover_zoom_behavior"),Ye)&&(t=!0),Z(e,t),"fit"!==e&&"fill"!==e||$(),ee(M,"initial"),g(j,"initial")},K=(Fe=function(e,t,o){W(e,t),Jr(),Zr();var r,i,a,n=I<M,s=E<j,l=Ui("mouseover_position");if("cursor"===(l=Ne&&Ti.mouseover_hold_position_center||Ti.mouseover_overflow_position_center&&(n||s)?"center":l))i=0+Ci(xi(D-j/2,0),xi(E-j,0)),r=0+Ci(xi(U-M/2,0),xi(I-M,0));else if("center"===l){var u=Ui("mouseover_overflow_origin"),c=u[1],u=u[2],d=(I-M)/2,p=(E-j)/2,m=d,h=p;n&&("0"===c?m=0:"1"===c?m=d:"2"===c&&(m=I-M)),s&&("0"===u?h=0:"1"===u?h=p:"2"===u&&(h=E-j)),i=0+h,r=0+m}else if("beside_cursor"===l){R=o?function(e,t){$(e,t)}:Ni.nullfunc;var n=function(e,t,o){var r=e?U:D,i=e?N:S;switch(t){case-1:return Ci(i-o,xi(0,r-o/2));case 0:return xi(0,r-o-z);case 1:return Ci(i-o,r+z)}},g=[[-1,0,N=I-(z=T),D-z],[1,-1,N-U-z,S=E-z],[-1,1,N,S-D-z],[0,-1,U-z,S]],f=[];e>A[0]/2?f.push(g[3]):f.push(g[1]),t>A[1]/2?f.push(g[0]):f.push(g[2]);for(var _=0;_<g.length;_++)hi(f,g[_])<0&&f.push(g[_]);for(var v=-1,b=null,_=0;_<f.length;_++){w=f[_][2],y=f[_][3],a=void 0,a=[M,j];var y,w=(a=o?J(w,y):a)[0]>w||a[1]>y?null:a;w&&v<(y=w[0]*w[1])&&(v=y,b=f[_])}if(!b)for(v=-1,_=0;_<f.length;_++){var k=f[_][2]*f[_][3];v<k&&(b=f[_],v=k)}b&&(R(b[2],b[3]),i=n(!1,b[1],j),r=n(!0,b[0],M))}else if("beside_cursor_old"===l){var x,C,z,R,N=I-(z=T),S=E-z;(R=o?function(e,t){$(e,t)}:Ni.nullfunc)(N,S);for(var q=0;q<(o?16:1);q++)t>A[1]/2?C=D-j-z:void 0===C&&(C=D+z),e>A[0]/2?x=U-M-z:void 0===x&&(x=U+z),C<0&&(C=0,Ti.mouseover_prevent_cursor_overlap)&&R(N,D),x<0&&(x=0,Ti.mouseover_prevent_cursor_overlap)&&R(U,S),E<C+j&&(Ti.mouseover_prevent_cursor_overlap?R(N,S-D):C=xi(E-j-z,0)),I<x+M&&(Ti.mouseover_prevent_cursor_overlap?R(N-U,S):x=xi(I-M-z,0));i=C,r=x}return[r+T,i+G]})(t,e,!0),s?(z([t-M/2,e-j/2]),setTimeout(function(){z(K)},1)):z(K),Q=function(e,t,o){void 0===t&&(t=e),"number"==typeof e&&(e+="px"),"number"==typeof t&&(t+="px"),o?(R.style.width=e,R.style.maxWidth=t):(R.style.height=e,R.style.maxHeight=t)},g=function(e,t){Q(e,t,!1)},(ee=function(e,t){Q(e,t,!0)})(M,"initial"),g(j,"initial"),te=pe(),re=!(oe=function(){return[O&&B.clientWidth||M,O&&B.clientHeight||j]}),H=[],ie="initial",(p=sn(xe||document.body))&&"rtl"===p.direction&&(ie="rtl"),ne=ae=0,se=function(e,t,o,r){var i=_i("div"),a=(Di(i),Ee(i,"position","absolute"),Ee(i,"opacity",te),wn&&Ee(i,"z-index",Un-1),Ee(i,"white-space","nowrap"),Ee(i,"direction","ltr"),null),n=null,s=null,l=null,u=M||P,u=((r.width||u)-u)/2,c=j||L,r=((r.height||c)-c)/2;return"left"===e?a=-(o+u)+"px":"middle"===e?(a="calc(50%)",i.setAttribute("data-imu-middle_x","true")):"right"===e&&(l=-(o+u)+"px"),"top"===t?n=-(o+r)+"px":"middle"===t?(n="calc(50%)",i.setAttribute("data-imu-middle_y","true")):"bottom"===t&&(s=-(o+r)+"px"),a&&Ee(i,"left",a),l&&Ee(i,"right",l),n&&Ee(i,"top",n),s&&Ee(i,"bottom",s),i},le=!!Ti.mouseover_ui,He=ge,Rt(S,i,o.data.respdata),ge(),Di(m=_i("a")),u&&(m.style.cursor="pointer",m.onclick=function(e){return e.stopPropagation(),e.stopImmediatePropagation(),!0}),m.style.setProperty("vertical-align","bottom","important"),m.style.setProperty("display","block","important"),ue=function(e){e=e?"none":"initial";Ee(m,"pointer-events",e),Ee(R,"pointer-events",e),Ee(l,"pointer-events",e),Ee(B,"pointer-events",e)},Ti.mouseover_clickthrough&&ue(!0),Me=function(){var e=Ui("mouseover_enable_mask_styles2");Ne?(Ti.mouseover_hold_unclickthrough&&ue(!1),!we||"always"!==e&&"hold"!==e||(we.style.opacity=x)):(Ti.mouseover_clickthrough?ue(!0):ue(!1),!we||"hold"!==e&&"never"!==e||(we.style.opacity=0))},u?(m.href=i,m.target="_blank",Ti.mouseover_download&&(m.href="#",fi(m,"click",function(e){return Rr(),e.preventDefault(),e.stopPropagation(),!1},!0))):(h=!1,(h=!N&&Ti.mouseover_click_image_close||a&&Ti.mouseover_click_video_close?!0:h)&&fi(m,"click",function(e){if(!Be)return Ie(),e.preventDefault(),e.stopPropagation(),!1})),m.appendChild(R),l.appendChild(m),We=null,ce=m.style.cursor,de=R.style.cursor,Ge=function(e){Ve=_e,Xe=ve,Ti.mouseover_hide_cursor&&e?(m.style.cursor="none",R.style.cursor="none"):(We&&(clearTimeout(We),We=null),m.style.cursor=ce,R.style.cursor=de)},Xe=Ve=1/0,Ti.mouseover_hide_cursor&&Ti.mouseover_hide_cursor_after<=0&&Ge(!0),l.onmouseover=l.onmousemove=function(e){Yi(_e-Ve)<Ti.mouseover_mouse_inactivity_jitter&&Yi(ve-Xe)<Ti.mouseover_mouse_inactivity_jitter||(0<Ti.mouseover_hide_cursor_after||!Ti.mouseover_hide_cursor)&&(Ge(!1),Ti.mouseover_hide_cursor)&&(We=setTimeout(function(){Ge(!0)},Ti.mouseover_hide_cursor_after))},"drag"===Ui("mouseover_pan_behavior")&&(N&&(R.onseeking=function(e){r=!0},R.onseeked=function(e){r=!1}),l.ondragstart=m.ondragstart=R.ondragstart=function(e){if(!r)return fe(e),q(e),!1},l.onmousedown=l.onpointerdown=m.onmousedown=m.onpointerdown=function(e){if(!re&&0===e.button&&!r)return fe(e),e.preventDefault(),q(e),!1},R.onmousedown=R.onpointerdown=function(e){if(!re&&0===e.button&&!r)return fe(e),q(e),!0},m.onclick=function(e){return qe=!1,Be?(q(e),Be=!1):(e.stopPropagation(),e.stopImmediatePropagation(),!0)},l.onmouseup=l.onpointerup=l.onclick=m.onmouseup=m.onpointerup=function(e){return qe=!1,!Be&&(e.stopPropagation(),e.stopImmediatePropagation(),!0)},R.onmouseup=R.onpointerup=R.onclick=function(e){return!(qe=!1)},a)&&(R.onclick=function(e){if(!R.controls)return Be||(R.paused?Ir(R):R.pause()),!(qe=!1)}),"fill"===(f=b)&&(f="fit"),Se=function(e,t,o,r,i){var a=!1,n=parseFloat(B.style.left),s=parseFloat(B.style.top),l=B.clientWidth,u=B.clientHeight,c=(W(),void 0===o&&(o="center"),void 0===r&&(r="center"),null),d=null;0<t&&("always"===(p=Ui("scroll_zoomout_pagemiddle"))?r=o="pagemiddle":"viewport"===p&&(l<I&&(o="pagemiddle"),u<E)&&(r="pagemiddle")),"center"===o||"pagemiddle"===o?("pagemiddle"===o&&(c=I/2),o=(p=xi(n,0))+(Ci(p+l,I)-p)/2):o<n?o=n:n+l<o&&(o=n+l),"center"===r||"pagemiddle"===r?("pagemiddle"===r&&(d=E/2),r=(p=xi(s,0))+(Ci(p+u,E)-p)/2):r<s?r=s:s+u<r&&(r=s+u);var p=(o-n)/l,n=(r-s)/u;if("fitfull"===e){if(i&&"fit"===f&&0<t)return Ie(),!1;if(0<t&&"fit"!==f){j=L,M=P,$();var l=parseFloat(R.style.width),s=parseFloat(R.style.height);if(ee(M,I),g(j,E),i&&parseFloat(R.style.width)===l&&parseFloat(R.style.height)===s)return Ie(),!1;f="fit",a=!0}else t<0&&"full"!==f&&(ee(P,"initial"),g(L,"initial"),M=P,j=L,f="full",a=!0)}else if("incremental"===e){var m=R.clientWidth,h=R.clientHeight,u=1,u=m<P?P/m:m/P,l=Ti.scroll_incremental_mult-1,s=(u=Xi(u/l),u*=l,m<P&&0!==u&&(u=1/u),0<t?u/=1+l:u*=1+l,m=P*u,h=L*u,0<t&&(m<64||h<64));if(s||t<0&&(512*P<m||512*L<h))return i&&s&&Ie(),!1;j=h,ee(M=m),g(h),a=!0}return a&&(m=B.clientWidth,h=B.clientHeight,(l=(m/P+h/L)/2)&&(Ye=l),u=function(e,t,o){e-=t,o=xi(100,o/10);return t+(e=e<0?-Ci(o,-e):Ci(o,e))},t=o-p*m,null!==c&&(t=u(c-m/2,t,I)),i=r-n*h,null!==d&&(i=u(d-h/2,i,E)),"fitfull"===e&&m<=I&&h<=E&&(t=xi(t,T),I-T<t+m&&(t=I+T-m),i=xi(i,T),E-T<i+h)&&(i=E+T-h),B.style.left=t+"px",B.style.top=i+"px",ge(!0),be=!1),!1},B.onwheel=$e=function(o,e){function t(e){var t=!1;if(e)if(o.deltaX<0)t=!1;else{if(!(0<o.deltaX))return;t=!0}else{if(o.deltaY<0)t=!1;else{if(!(0<o.deltaY))return;t=!0}Ti.mouseover_scrolly_video_invert&&(t=!t)}return Nr(!t),d(o),1}function r(e){if(Ti.mouseover_enable_gallery){var t=!1;if(e)if(o.deltaX<0)t=!1;else{if(!(0<o.deltaX))return;t=!0}else if(o.deltaY<0)t=!1;else{if(!(0<o.deltaY))return;t=!0}return he(t,!0),d(o),1}}var i,a=!1,n=!1,s=!0,l=!0,u=(N&&(c=Ui("mouseover_scrollx_video_behavior"),u=Ui("mouseover_scrolly_video_behavior"),a||"default"===c||("seek"===c?t(!0)&&(a=!0):"nothing"===c&&(s=!1)),n||"default"===u||("seek"===u?t(!1)&&(n=!0):"nothing"===c&&(l=!1))),Ui("mouseover_scrollx_behavior")),c=Ui("mouseover_scrolly_behavior");Ne&&("default"!==(i=Ui("mouseover_scrollx_hold_behavior"))&&(u=i),"default"!==(i=Ui("mouseover_scrolly_hold_behavior")))&&(c=i);if(s&&!a)if("pan"===u)B.style.left=parseInt(B.style.left)+o.deltaX+"px",a=!0;else if("gallery"===u){if(r(!0))return;a=!0}if(l&&!n)if("pan"===c)B.style.top=parseInt(B.style.top)+o.deltaY+"px",n=!0;else if("gallery"===c){if(r(!1))return;n=!0}return n?(d(o),!1):(!l||"zoom"!==c||0===o.deltaY||(d(o),i=o.clientX,s=o.clientY,"center"===Ui("scroll_zoom_origin")&&(s=i="center"),u=Ui("scroll_zoom_behavior"),!1!==Se(u,o.deltaY,i,s,Ti.zoom_out_to_close)))&&void 0},we&&document.documentElement.appendChild(we),document.documentElement.appendChild(B),lt(),Tn(R),N&&(Ti.mouseover_video_autoplay?Ir(R):R.pause()),ye.push(B),O=!0,o.data.respdata&&o.data.respdata.responseHeaders&&"content-length"in(_=Ga(Oa(o.data.respdata.responseHeaders)))&&(Le=parseInt(_["content-length"])||0),Re[1]=!1,Ce||(Ne=!1),Te=be=!1,setTimeout(function(){at()},1),ze=!0,st())):(Te=!1,v.running&&nt()))}var a=null,Tt=new Ea;function At(e){var t,o,r;return e.match(/^ *([0-9]+)px *$/)?e.replace(/^ *([0-9]+)px *$/,"$1"):Tt.has(e)?Tt.get(e):((o=document.body)||(o=t=_i("body"),t.style.cssText="font-size:"+e+"!important;",document.documentElement.insertBefore(t,document.body)),a||(Di(a=_i("i")),Ee(a,"position","absolute"),Ee(a,"visibility","hidden"),Ee(a,"padding","0")),Ee(a,"width",e),Ee(a,"font-size",e),o.appendChild(a),r=a.clientWidth,Tt.set(e,r,300),t?document.documentElement.removeChild(t):o.removeChild(a),r)}var It=function(e){return e.left=e.x,e.top=e.y,e.right=e.left+e.width,e.bottom=e.top+e.height,e},Et=function(e){return{x:e.x,y:e.y,width:e.width,height:e.height}},Ut=function(e){var t;return"number"==typeof e?e:(t=e.match(/^([-0-9.]+)%$/))?parseFloat(t[1])/100:(t=e.match(/^([-0-9.]+)$/))?parseFloat(t[1]):null};function X(e,t){var o=!1,r=null;if(o=/youtube\.com$/.test(window.location.host)?!0:o){r=document.querySelectorAll;try{document.querySelectorAll=function(){return[]}}catch(e){}}e=function e(t,o,r){if(!t)return null;if(o&&o.has(t)){var i=o.get(t);if(!r)return i;if(i.orig_rect)return i}var i={},a=t.parentElement,a=(a&&(i=e(a,o,!1)),null),r=(r&&(a=t.getBoundingClientRect()),null),n=1,i=("style"in t&&t.style.zoom&&(n=Ut(t.style.zoom))&&1!==n&&(a=a||t.getBoundingClientRect(),(r=Et(a)).width*=n,r.height*=n),i.zoom&&1!==i.zoom&&(a=a||t.getBoundingClientRect(),(r=r||Et(a)).x*=i.zoom,r.y*=i.zoom,r.width*=i.zoom,r.height*=i.zoom,n*=i.zoom),r&&It(r),{zoom:n});return a&&(i.orig_rect=a),r&&(i.rect=r),o&&o.set(t,i),i}(e,t,!0);if(o)try{document.querySelectorAll=r}catch(e){}return e.rect||e.orig_rect}function Dt(){var e,t;return ye&&ye[0]&&(e=Cr())?(t=Date.now(),(!U||30<t-D)&&(U=e.getBoundingClientRect(),D=t),U):null}function Lt(e,t){"links"in(t=t||{})||(t.links=Ui("mouseover_links"));var o=[],e=function(e,v,b){si&&wi("find_source","_find_source (els)",e);var y={},w={},n=[],k=Ba(),x=0,t=ki(V("mouseover_minimum_size"));isNaN(t)&&(t=0);var C=function(e){var t,o={document:document,window:$i(),host_url:window.location.href,do_request:Si,rule_specific:{}};for(t in e)o[t]=e[t];return Ka(o)}({});function s(e){var t=!0;do{if(!e)break;var o=sn(e);if(!o)break;if(o.opacity.toString().match(/^0(?:\.0*)?$/)||t&&"hidden"===o.visibility)return!1}while(t&&"visible"===o.visibility&&(t=!1),e=e.parentElement);return!0}function o(){var e,t=null,o=!1;for(e in y){if(o)return;o=!0,t=y[e]}return t}function z(e){return Da(window.location.href,e,!0)}function R(e,t,o){if(si&&wi("find_source","_find_source (addImage)",e,t,s(t),o),Ua(e))if(e&&Ti.mouseover_apply_blacklist&&!wa(e))si&&wi("find_source","blacklisted");else{e in y||(y[e]={count:0,src:e,el:t,id:x++});if(t&&(window.getComputedStyle(t)||t.style),!(o=o||{}).isbg||!V("mouseover_exclude_backgroundimages")){var r=function(e,t){for(var o=Ei(e,{fill_object:!0,use_cache:"read",do_request:null,document:document,window:$i(),host_url:window.location.href,element:t,include_pastobjs:!0,iterations:2,cb:null}),r=e,i=0;i<o.length;i++){if(o[i].url===e)return!o[i].bad&&(1<o.length?r||!0:void 0);r===e&&(r=o[i].url)}return r||!0}(e,t);if(!1===r)si&&wi("find_source","Bad image",t);else if("imu"in y[e]||(y[e].imu=!!r),!0===r&&e&&e.match(/^data:/)&&!/^data:image\/svg\+xml;/.test(e)&&e.length<=500)si&&wi("find_source","Tiny data: image",t,e);else{if(s(t)){if(Ti.mouseover_only_links){if(!t)return;var i=!1,a=t;do{if("A"===nn(a)){i=!0;break}}while(a=a.parentElement);if(!i)return}return"layer"in o&&(o.layer in n||(n[o.layer]=[]),n[o.layer].push(e)),y[e].count++,1}si&&wi("find_source","Invisible: image",t)}}}}function d(e){for(var t=[],o=[],r="",i=null,a=!1,n=0;n<e.length;n++){var s=e[n];if(a)r+=s,a=!1;else if(i)s===i?(i=null,o.push(r),r=""):r+=s;else if(/\s/.test(s))0<r.length&&(o.push(r),r="");else if("\\"===s)a=!0;else if('"'===s||"'"===s)i=s;else if("("===s){var l=d(e.substr(n+1));o.push({name:r,tokens:l[0]}),n+=l[1],r=""}else{if(")"===s){n++;break}","===s?(r&&o.push(r),t.push(o),o=[],r=""):r+=s}}return r&&o.push(r),o&&t.push(o),[t,n]}function p(e){for(var t=0;t<e.length;t++)if(!(e[t].length<1)&&"object"==typeof e[t][0]){var o=e[t][0],r=o.name;if(!(hi(["url","-webkit-image-set","image-set"],r)<0))if("url"===r){if(1<=o.tokens.length&&0<o.tokens[0].length&&0<o.tokens[0][0].length)return 1}else if(p(o.tokens))return 1}}function u(e){return"object"!=typeof e||"url"!==e.name||e.tokens.length<1||e.tokens[0].length<1||0===e.tokens[0][0].length?null:e.tokens[0][0]}function D(e){for(var t,o,r,i=[],a=0;a<e.length;a++)e[a].length<1||"object"!=typeof e[a][0]||(o=(t=e[a][0]).name,hi(["url","-webkit-image-set","image-set"],o)<0)||("url"===o?(r=u(t))&&i.push(r):"-webkit-image-set"!==o&&"image-set"!==o||(r=function(e){for(var t=[],o=0;o<e.tokens.length;o++)if(!(e.tokens[o].length<1)){var r=u(e.tokens[o][0]);if(r){for(var i={src:r},a=1;a<e.tokens[o].length;a++){var n,s=e.tokens[o][a],l=s.match(/^([0-9.]+)(x|dp(?:px|i|cm))$/);l?0<(n=parseFloat(l[1]))&&("dppx"===(l=l[2])?(n*=96,l="dpi"):"dpcm"===l&&(n*=96/2.54,l="dpi"),"x"===l?i.desc_x=n:"dpi"===l&&(i.dpi=n)):yi("Unknown descriptor: "+s)}t.push(i)}}return t}(t))&&Ji(i,r));return i}function i(e,t,o,r,i){o=o;var a=!p(t=d(t=t)[0])||o&&!p(d(o)[0])?null:D(t);if(a)for(var n,s=0;s<a.length;s++)if(R(n="string"!=typeof(n=a[s])?n.src:n,e,{isbg:i,layer:r}),"string"!=typeof a[s])for(var l=["desc_x","dpi"],u=0;u<l.length;u++){var c=l[u];a[s][c]&&(!y[n][c]||y[n][c]>a[s][c])&&(y[n][c]=a[s][c])}}function r(e,t,o,r){o&&"style"in t&&(o.getPropertyValue("background-image")&&i(t,o.getPropertyValue("background-image"),t.style.getPropertyValue("background-image"),e,r||!0),r)&&o.getPropertyValue("content")&&i(t,o.getPropertyValue("content"),void 0,e,r)}function N(e,t){si&&wi("find_source","_find_source (addElement)",e,t),V("mouseover_exclude_page_bg")&&"BODY"===e.tagName||(function(e,t){if(C&&C.element_replace&&(o=C.element_replace(e))&&(e=o),C&&C.element_ok&&!Aa(k,e)){var o=C.element_ok(e),r={count:1,src:null,el:e,id:x++,is_ok_el:!0};if(!0===o)v.push(r),Ta(k,e);else if("object"==typeof o&&(xa(o)&&(o={el:o}),r.el=o.el,v.push(r),Ta(k,e),e=o.el,o.search))for(var r=b.point,i=0,a=Kt(r=r?r:[(o=X(e)).left+o.width/2,o.top+o.height/2],{els_mode:"full",els:[e]});i<a.length;i++){var n=a[i];n!==e&&N(n)}}if("PICTURE"===(o=nn(e))||"VIDEO"===o)for(var s=0;s<e.children.length;s++)N(e.children[s],t);if("SOURCE"===o||"IMG"===o||"IMAGE"===o||"VIDEO"===o||Ti.mouseover_allow_canvas_el&&"CANVAS"===o||Ti.mouseover_allow_svg_el&&"SVG"===o){if(Ti.mouseover_exclude_imagemaps&&"IMG"===o&&e.hasAttribute("usemap")){r=document.querySelector('map[name="'+e.getAttribute("usemap").replace(/^#/,"")+'"]');if(r)return si&&wi("find_source","_find_source skipping",e,"due to image map",r)}var r=cn(e);if(r&&(R(h=z(r),e,{layer:t}),!e.srcset)&&h in y&&(r=bt(e),y[h].width=r[0],y[h].height=r[1]),!e.srcset)return;for(var l=[],u=e.srcset;0<u.length;){var c=u,d=(u=u.replace(/^\s+/,"")).match(/^(\S+)(?:,\s+.*)?$/);if((d=d||u.match(/^(\S+(?:\s+[^,]+)?)(?:,[\s\S]*)?\s*$/))&&(l.push(d[1].replace(/\s*$/,"")),u=u.substr(d[1].length)),(u=u.replace(/^\s*,/,""))===c)break}e.sizes&&e.sizes.split(",");for(s=0;s<l.length;s++){var p,m,h=z(l[s].replace(/^(\S+)(?:\s+[\s\S]+)?\s*$/,"$1")),g=l[s].slice(h.length).replace(/^\s*([\s\S]*?)\s*$/,"$1");if(R(h,e,{layer:t})){if(y[h].picture=e.parentElement,g)for(y[h].desc=g;0<g.length;){var f=(g=g.replace(/^\s+/,"")).match(/^([0-9.]+)([whx])(?:\s+[0-9.]+[\s\S]*)?\s*$/);if(!f)break;var _=parseFloat(f[1]);0<_&&("w"===f[2]&&(!y[h].width||y[h].width>_)?y[h].width=_:"h"===f[2]&&(!y[h].height||y[h].height>_)?y[h].height=_:"x"===f[2]&&(!y[h].desc_x||y[h].desc_x>_)&&(y[h].desc_x=_)),g=g.substr(f[1].length+f[2].length)}e.media&&(y[h].media=e.media,e.media.match(/min-width:\s*([0-9]+)/)&&(p=At(e.media.replace(/.*min-width:\s*([0-9.a-z]+).*/,"$1")),!y[h].minWidth||y[h].minWidth>p)&&(y[h].minWidth=p),e.media.match(/max-width:\s*([0-9]+)/)&&(p=At(e.media.replace(/.*max-width:\s*([0-9.a-z]+).*/,"$1")),!y[h].maxWidth||y[h].maxWidth>p)&&(y[h].maxWidth=p),e.media.match(/min-height:\s*([0-9]+)/)&&(m=At(e.media.replace(/.*min-height:\s*([0-9.a-z]+).*/,"$1")),!y[h].minHeight||y[h].minHeight>m)&&(y[h].minHeight=m),e.media.match(/max-height:\s*([0-9]+)/))&&(m=At(e.media.replace(/.*max-height:\s*([0-9.a-z]+).*/,"$1")),!y[h].maxHeight||y[h].maxHeight>m)&&(y[h].maxHeight=m)}}}("A"===o||Ti.mouseover_allow_iframe_el&&"IFRAME"===o)&&(r=cn(e),w[r]={count:1,src:r,el:e,id:x++})}(e,t=void 0===t?n.length:t),r(t,e,window.getComputedStyle(e)),r(t,e,window.getComputedStyle(e,":before"),"before"),r(t,e,window.getComputedStyle(e,":after"),"after"))}for(var a=0;a<e.length;a++)if("IMG"===e[a].tagName&&e[a].parentElement&&"PICTURE"===e[a].parentElement.tagName&&hi(e,e[a].parentElement)<0&&e.splice(a+1,0,e[a].parentElement),"PICTURE"===e[a].tagName){for(var l=0;l<a;l++)!function(e,t){if(e!==t)for(;e;){if(e===t)return!0;e=e.parentElement}return!1}(e[l],e[a])||(e.splice(l,1),l--,a--);break}for(a=0;a<e.length;a++)N(e[a]);si&&(wi("find_source","_find_source (els)",qi(e)),si&&wi("find_source","_find_source (sources)",qi(y)),si&&wi("find_source","_find_source (layers)",qi(n)),si)&&wi("find_source","_find_source (ok_els)",qi(v));for(var c=[],a=0;a<n.length;a++)for(var m=0;m<n[a].length;m++)hi(c,n[a][m])<0&&c.push(n[a][m]);var h,g=[];for(h in y){for(a=0;a<v.length;a++)y[h].el===v[a].el&&(v[a]=y[h],g[a]=!0);hi(c,h)<0&&delete y[h]}for(a=0;a<v.length;a++)g[a]||v[a].src||N(v[a].el);if(void 0!==(U=o())){if(si&&wi("find_source","_find_source (getsource())",U),null===U){if(0<v.length)return v[0];if(b.links&&0<Object.keys(w).length){var f,_=null;for(f in w){if(!Ti.mouseover_only_valid_links){_=f;break}if(Ja(f,w[f].el)){_=f;break}}if(_)return w[_]}}return U}for(a=0;a<n.length;a++){for(var S=0,L=null,q=0,P=null,B=0,j=null,T=0,M=null,H=0,$=0,A=0,F=null,I={},E=!1,m=0;m<n[a].length;m++){var U,O=n[a][m];(U=y[O]).width&&U.width>S&&(S=U.width,L=U,E=!0),U.height&&U.height>q&&(q=U.height,P=U,E=!0),U.minWidth&&U.minWidth>B&&(B=U.minWidth,j=U,E=!0),U.minHeight&&U.minHeight>T&&(T=U.minHeight,M=U,E=!0),U.maxWidth&&U.maxWidth>H&&(H=U.maxWidth,0),U.maxHeight&&U.maxHeight>$&&($=U.maxHeight,0),U.desc_x&&U.desc_x>A&&(A=U.desc_x,F=U,E=!0),U.dpi&&0<U.dpi&&(E=!0),U.isbg&&(I[U.src]=!0,E=!0)}if(E)for(var G in 1<A&&(I[F.src]=!0),t<S&&B<S&&(I[L.src]=!0),t<q&&T<q&&(I[P.src]=!0),t<B&&S<=B&&(I[j.src]=!0),t<T&&q<=T&&(I[M.src]=!0),n[a]=[],I)n[a].push(G)}function W(e){for(var t=0;t<e.length;t++){var o=e[t],o=y[o];if(o.desc_x)return o}return y[e[0]]}si&&wi("find_source","_find_source (new layers)",qi(n));(function(){for(var e=[],t=0;t<n.length;t++)0!==n[t].length&&e.push(n[t]);n=e})(),si&&wi("find_source","_find_source (rebuilt layers)",qi(n));if(1<n.length&&1===n[0].length&&y[n[0][0]].isbg)for(a=1;a<n.length;a++)if(1!==n[a].length||!y[n[a][0]].isbg)return W(n[a]);if(0<n.length)return W(n[0]);return(U=o())||function(e){var t,o=En,r=null;for(t in e){var i=e[t];i.id<o&&(o=i.id,r=e[t])}return r}(y)}(e,o,t);if(si&&wi("find_source","find_source: result =",e,"ok_els =",o),e){t=function(){return 0<o.length?o[0]:null};if(e.el&&function(e){var t=e;do{if(0<=hi(ye,t))return 1}while(t=t.parentElement)}(e.el))return si&&wi("find_source","find_source: result.el is popup el",e.el),t();if(!e.is_ok_el&&!e.src)return si&&wi("find_source","find_source: invalid src",e),t();var r=ki(V("mouseover_minimum_size")),i=((isNaN(r)||e.imu)&&(r=0),ki(V("popup_maximum_source_size")));if(isNaN(i)&&(i=0),!isNaN(e.width)&&!isNaN(e.height)&&0<e.width&&0<e.height){if(e.width<r||e.height<r)return si&&wi("find_source","find_source: result size is too small"),t();if(i&&(e.width>i||e.height>i))return vi("Source media is too big to popup (user-configured maximum is",i,"px)"),null}}return e}var Pt=function(e,t){if(e)for(var o=[(e=0<=hi(["SOURCE","IMG"],e.tagName)&&e.parentElement&&0<=hi(["PICTURE","VIDEO"],e.parentElement.tagName)?e.parentElement:e).tagName],r=e,i=!1;;){if(i)i=!1;else{var a=r.nextElementSibling;if(!(a=t?a:r.previousElementSibling)){if(!(r=r.parentElement))break;o.unshift(r.tagName);continue}r=a}if(r.tagName===o[0])if(1===o.length){if(ao(r))return r}else if(t){for(var n=0;n<r.children.length;n++)if(r.children[n].tagName===o[1]){r=r.children[n],o.shift(),i=!0;break}}else for(n=r.children.length-1;0<=n;n--)if(r.children[n].tagName===o[1]){r=r.children[n],o.shift(),i=!0;break}}return null};function jt(){"number"==typeof(g=(g=Ti.mouseover_trigger_delay)<0||isNaN(g)?!1:g)&&10<=g&&(g=10),$="mouse"===Ui("mouseover_trigger_behavior")||(g=!1),f&&(clearTimeout(f),f=null)}function Mt(e){return!vn(e)||!bn(d)}function Ht(){d=[],M={}}function $t(e,t){return 0<=hi(t,e)}function Ft(e,t){if(t){if(!Mt(e))return;if(M[e]=Date.now(),hi(d,e)<0)return d.push(e),1}else if(delete M[e],0<=hi(d,e))return d.splice(hi(d,e),1),bn(d)&&Ht(),1}function Ot(e,t){t=Pn(t);for(var o=0;o<t.length;o++)if(function(e,t){var o,r=_n(e,!0);for(o in r)if(r[o]&&$t(o,t))return 1}(e,t[o]))return 1}function Gt(e,t){var o,r=_n(e,t),i=Date.now();for(o in M)5e3<i-M[o]&&Ft(o,!1);for(var a in r)Ft(a,r[a])&&0}function Wt(e,t,o){var r,i=_n(e,t);for(r in i)if((void 0===o||$t(r,o))&&function(e,t){if(t){if(!Mt(e))return;if(hi(d,e)<0)return 1}else if(0<=hi(d,e))return 1}(r,i[r]))return 1}function _(e){e=Pn(e);for(var t=0;t<e.length;t++)if(function(e){for(var t=0;t<e.length;t++){var o=e[t];if(hi(d,o)<0)return}for(t=0;t<d.length;t++)if(!vn(d[t])&&hi(e,d[t])<0)return;return 1}(e[t]))return 1}function Vt(e,t){t=Pn(t);for(var o=0;o<t.length;o++)if(function(e){for(var t=0;t<e.length;t++){var o=e[t];if(0<=hi(d,o))return 1}}(t[o]))return 1}function Xt(){return Ui("mouseover_close_behavior")}function Yt(){return Ti.mouseover_close_need_mouseout&&"esc"!==Xt()}function Zt(){return Ti.mouseover_exclude_imagetab&&"mouse"===Ui("mouseover_trigger_behavior")&&gn()&&!Mi}en=function(e,t){var o;return l?(o=hi(l,e))<0||(t?o++:o--,o<0)||o>=l.length?null:l[o]:(o=Qa(ke,e,t))||!1===o?o:(e.parentElement||e.hasAttribute("imu-album-info")&&(e=T),S=[],Pt(e,t))},jt(),Ai.mouseover_trigger_delay.onupdate=jt,Ai.mouseover_trigger_behavior.onupdate=jt;var Jt=Ba();function Kt(e,t,o,r,i){(t=t||{}).els_mode||(t.els_mode=Ui("mouseover_find_els_mode")),t.els&&!o&&(o=t.els);var a=!1;if(r||(r=Ba(),a=!0),void 0===i)try{i=new Map}catch(e){i=null}var n=[],s=[];if(!o){o=[];for(var l=0,u=document.elementsFromPoint(e[0],e[1]);l<u.length;l++){var c=u[l];Aa(Jt,c)||o.push(c)}if(s=o,si&&vi("find_els_at_point (elsfrompoint)",qi(o)),"simple"===t.els_mode)return o}for(var d=0;d<o.length;d++)if(0<d&&a&&"hybrid"===t.els_mode)n.push(o[d]);else{c=o[d];if(!Aa(r,c)){Ta(r,c);var p=!1,m=null,h=null;if(0<c.childElementCount&&(m=c.children,p=!0),c.shadowRoot&&0<c.shadowRoot.childElementCount&&(h=c.shadowRoot.children,p=!0),p){var g=[];if(m)for(var f=m.length-1;0<=f;f--)g.push(m[f]);if(h)for(f=h.length-1;0<=f;f--)g.push(h[f]);for(var _=Kt(e,t,g,r,i),v=0;v<_.length;v++){var b=_[v];hi(n,b)<0&&n.push(b)}}p=X(c,i);p&&0<p.width&&0<p.height&&p.left<=e[0]&&p.right>=e[0]&&p.top<=e[1]&&p.bottom>=e[1]&&hi(n,c)<0&&n.push(c)}}for(var y,w,d=0;d<s.length;d++)hi(n,s[d])<0&&n.push(s[d]);return si&&0<n.length&&vi("find_els_at_point (unsorted ret)",Ca(n)),a&&"hybrid"===t.els_mode||(y=function(e){var t=sn(e).zIndex,o=0;return e.parentElement&&(o=w(e.parentElement)),"auto"===t?o:(t=parseFloat(t))<o?o+t:t},w=function(e){var t,o;return i?(t=qa(i,e))&&"zIndex"in t?t.zIndex:(o=y(e),t?t.zIndex=o:Sa(i,e,{zIndex:o}),o):y(e)},n.sort(function(e,t){var o=w(e),r=w(t);return r===o?hi(n,e)-hi(n,t):r-o}),si&&0<n.length&&vi("find_els_at_point (ret)",o,Ca(n),e)),n}var Qt=function(e){return e.parentElement&&"SOURCE"===e.tagName?e.parentElement:e};function eo(e){var t,o;e=e||{},si&&vi("trigger_popup (options:",e,")",la),!Ti.mouseover_allow_popup_when_fullscreen&&Dr()&&!Lr()||(Te=!0,t=w?[_e,ve]:null,null===(t=e.is_contextmenu&&null!==x&&null!==C?[x,C]:t)?Te=!1:(o=Kt(t),si&&vi("trigger_popup: els =",o,"point =",t),e.is_contextmenu&&(C=x=null),!(e=Lt(o,{point:t}))&&Ti.mouseover_allow_self_pagelink&&"keyboard"===m&&(e={el:document.body,src:window.location.href,pagelink:!0}),si&&vi("trigger_popup: source =",e),!e||"mouse"===m&&Qt(e.el)===p?("keyboard"===m&&Ti.mouseover_enable_notallowed&&s(),Te=!1):to(e)))}function to(e,n,t,s){B=Qt(e.el),s=s||Ni.nullfunc;var o=!1,r=it("mouseover_open_behavior"),l=("newtab"!==r&&"newtab_bg"!==r&&"download"!==r&&"copylink"!==r||(o=!0),e),r=!1,i=!1,a=Ui("mouseover_allow_partial");"media"===a?i=r=!0:"video"===a&&(i=!0),di&&da()&&(i=r=!0),oo(e,{automatic:n,multi:!1,use_head:o,incomplete_image:r,incomplete_video:i,use_last_pos:t},function(e,t,o,r){var i,a;return e||t||o||r?n&&S&&e&&e[0]&&0<=hi(S,e[0].url)?(Te=!1,Ae(),s(!1)):(Lr(),Ie({new_popup:!0,automatic:n}),n&&(Ce=!0,lt()),u=t.el,(xe=Qt(u)).parentElement&&(T=xe),q=qn(xe),Pe="video"===q||"audio"===q,je=cn(xe),di&&da()&&"popup"===it("mouseover_open_behavior")?(r.data.img=(i=r.data.img,a={tag:i.tagName.toLowerCase(),src:i.src,autoplay:i.getAttribute("autoplay"),controls:i.getAttribute("controls"),loop:i.getAttribute("loop"),muted:i.muted,volume:i.volume},i.hasAttribute("crossorigin")&&(a.crossorigin=i.getAttribute("crossorigin")),a),aa("top",{type:"make_popup",data:{source_imu:e,src:t.src,processing:o,data:r}})):(Bt(e,t.src,o,r),di&&ca()&&"popup"===it("mouseover_open_behavior")&&aa("top",{type:"popup_open"})),void s(!0)):(Te=!1,(l.pagelink?nt:Ae)(),s(!1))})}function oo(n,s,i){function e(){function e(e,t){if(!t)return s.multi||nt(),i();s.use_last_pos&&(r=o=null),i(e,n,l,{data:t,x:o,y:r})}s.multi||G(n.el);var o=_e,r=ve;try{var t=Ti.mouseover_ui_caption&&Ti.redirect_force_page;an(n.src,{fill_object:!0,host_url:window.location.href,document:document,window:$i(),element:n.el,force_page:t,cb:e},function(e,i){var a=e;if(si&&vi("do_popup: brl query:",e),s.null_if_no_change&&e[0].url===n.src)return i(n.src,e[0],null);var t,o=qi(e);if(Ti.mouseover_exclude_sameimage){if(n.src)for(;0<=(t=rn(o,n.src));)o.splice(t,1)}else n.src&&rn(o,n.src)<0&&o.push(ja(n.src)[0]);n.pagelink&&(o=Pa(o),zi(o,function(e){e.url.replace(/#.*/,"")===n.src.replace(/#.*/,"")&&(e.is_pagelink=!0)})),l.incomplete_image=s.incomplete_image,l.incomplete_video=s.incomplete_video,l.progress_cb=s.progress_cb,s.use_head&&(l.head=!0),Ti.popup_allow_cache&&!s.deny_cache&&(l.set_cache=!0,l.use_cache=!0),l.deny_nondirect_delivery=s.deny_nondirect_delivery,V("mouseover_allow_video")||(l.deny_video=!0),V("mouseover_allow_audio")||(l.deny_audio=!0),l.source=n,In(o,function(e,t,o,r){if(si&&vi("do_popup: check_image_get response:",e,t,o,r),!e)return i(null);o={img:e,newurl:t,obj:o,respdata:r},r=t;s.use_head&&(r=(o={resp:e,obj:t}).resp.finalUrl),Ti.print_imu_obj&&vi(a),i(r,o.obj,o)},l)})}catch(e){bi(e)}}var t,l={running:!0};s.multi||(Z(),o=[l]);!g||$||s.automatic?e():(t=n.el,G(t,"progress"),f=setTimeout(function(){Te||(f=null,e())},1e3*g))}function ro(t,e,o,r,i){o=o||u;var a={element:e=e||T,document:document,window:$i(),host_url:window.location.href,do_request:Si,rule_specific:{},cb:function(e){if(void 0===e||"default"===e)return r(en(o,t));r(e)}};if(i)for(var n in i)a[n]=i[n];tn(a),on(a);var s=Ka(a),e=en,e=(e=s&&s.gallery?function(e,t){var o=s.gallery(e,t);return o||null===o?o:en(e,t)}:e)(o,t);if("waiting"!==e)return"default"===e?r(en(o,t)):void r(e)}var io=new Ea;function ao(e){var t;return!!e&&(io.has(e)?io.get(e):(t=!!Lt([e]),io.set(e,t,3),t))}function no(e,t,o,r,i,a){var n=0,s=(void 0===t&&(t=Ti.mouseover_ui_gallerymax),i);if(!(s=i||u)&&c&&da()&&!di)return aa(c,{type:"count_gallery",data:{nextprev:e,is_counting:o,max:t}},function(e){a(e)});function l(){ro(e,r,i,function(e){return e&&ao(e)?t<=++n?a(n,e):(i=e,void Mn(l,n,100)):a(n,i)},{is_counting:o,counting_firstel:s})}l()}var so=function(e,r,i){function a(t,o){ro(t,r,i,function(e){if(!e||!ao(e))return o();n++,Aa(s,i=e)||(Ta(s,i),t?l.push(i):l.unshift(i)),Mn(function(){a(t,o)},n,100)})}var n=0,s=Ba(),l=[],t=i;(t=t||u)&&(Ta(s,t),l.push(t));a(!1,function(){a(!0,function(){e(l)})})};function lo(e,o,r,i){if(r=r||u,0===e)return i();var a=!0,n=e;e<0&&(a=!1,n=-e),no(a,n,!1,o,r,function(e,t){e<n?Ti.mouseover_gallery_cycle?no(!a,void 0,!0,o,r,function(e,t){i(t)}):i(null):i(t)})}function uo(e,t){if(c&&da()&&!di)return aa(c,{type:"is_nextprev_valid",data:{nextprev:e}},function(e){t(e)});lo(e?1:-1,void 0,void 0,function(e){t(ao(e))})}var co=function(e){for(var t,o,r=[],i={},a=0,n=0;n<e.length;n++)")"===e[n]&&(o=(t=Ii(e.substr(a,n-a+1))).replace(/\(.*/,""),r.push(t),o in i||(i[o]=[]),i[o].push(r.length-1),a=n+1);return{transforms:r,types:i}},po=function(){var e,t=null;return(t=ye&&ye[0]&&(e=Cr())?e.parentElement.parentElement.style:t)&&t.transform?co(t.transform):{transforms:[],types:{}}},mo=function(e){return e.transforms.join(" ")},ho=function(e){var t=Cr();t&&(t.parentElement.parentElement.style.transform=mo(e))},go=function(e){var t=0,e=("rotate"in e.types?t=e.types.rotate[0]:e.transforms.unshift("rotate(0deg)"),e.transforms[t].match(/^rotate\(([-0-9]+)deg\)$/)),o=0;return{deg:o=e?parseInt(e[1]):o,index:t}},fo=function(){var e=po();return go(e).deg};function _o(e){var t,o;ze&&(t=po(),o=go(t),t.transforms[o.index]="rotate("+(o.deg+e)+"deg)",ho(t),He(!0))}var vo=function(e){var t,o,r,i,a;ze&&(o=(t=po()).transforms.length,"scale"in t.types?o=t.types.scale[0]:t.transforms.push("scale(1,1)"),a=i=1,(r=t.transforms[o].match(/^scale\(([-0-9.]+)\s*,\s*([-0-9.]+)\)$/))&&(i=parseFloat(r[1]),a=parseFloat(r[2])),e?a=-a:i=-i,t.transforms[o]="scale("+i+", "+a+")",ho(t))},bo=function(e,t){t=Zi(10,t);return(0|(e*=t))/t},yo=function(e){for(var t=["B","KB","MB","GB","TB","PB"];1<t.length&&1024<e;)e/=1024,t.shift();return bo(e,2)+t[0]};function wo(e){var t=_i("div"),o=(Di(t),t.style.backgroundColor="rgba(0,0,0,0.7)",t.style.height="2em",t.style.zIndex=Un-2,_i("div"));return Di(o),o.style.position="absolute",o.style.top="0px",o.style.left="0px",o.style.backgroundColor="#00aaff",o.style.height="100%",o.style.width="0%",o.style.zIndex=Un-1,t.appendChild(o),e&&(t.style.position="fixed",t.style.top="0px",t.style.left="0px",t.style.width="80%",t.style.marginTop="100px",t.style.marginLeft="10%",document.documentElement.appendChild(t)),t}function ko(e,t,o){var r=e.children[0];"number"==typeof t?(r.getAttribute("data-timer")&&(clearInterval(parseInt(r.getAttribute("data-timer"))),r.removeAttribute("data-timer")),1<=t&&o&&e.parentElement?e.parentElement.removeChild(e):r.style.width=100*t+"%"):"unknown"==t&&(r.style.width="10%",r.getAttribute("data-timer")||(r.style.left="0%",r.setAttribute("data-dir","right"),o=setInterval(function(){var e=parseFloat(r.style.left);"right"==r.getAttribute("data-dir")?90<=(e+=.015*90)&&(e=90-(e-90),r.setAttribute("data-dir","left")):(e-=.015*90)<=0&&(e=-e,r.setAttribute("data-dir","right")),r.style.left=e+"%"},15),r.setAttribute("data-timer",o)))}var xo=function(e){return"IMG"===e.tagName||"PICTURE"===e.tagName},Co=function(e){return xo(e)||"VIDEO"===e.tagName},zo=function(e){return(e=e||document).querySelectorAll("img, picture, video")},Ro=function(e){return(e=e||document).querySelectorAll("img, picture, video, a")},No=function(e){return(Ti.mouseover_links?Ro:zo)(e)},So=function(e,t,o){zi(e.attributes,function(e){t.hasAttribute(e.name)&&!o||t.setAttribute(e.name,e.value)})},qo=function(e){var t=_i(e.tagName);return So(e,t),t},Bo=function(e,t){t.parentElement&&(t=qo(t)).removeAttribute("style"),So(e,t),e.parentElement.insertBefore(t,e),e.parentElement.removeChild(e)},To=function(e,t,o,r){s||(i=cn(o));var i,a=!1,n=("A"===t.tagName&&(e.plainlink_replace_link&&(t.href=i),e.plainlink_replace_text&&(t.textContent=i),e.plainlink_replace_media)&&(a=!0),bt(t)),s=!1;if(a||"string"!=typeof o&&"VIDEO"===o.tagName){if("string"==typeof o)return void yi("Unable to replace",t,"due to invalid replacement:",o);t=Bo(t,o),s=!0}if(!s&&e.replace_imgs&&(t.hasAttribute("srcset")&&t.removeAttribute("srcset"),cn(t)!==i)&&(t.src=i),"remove"===e.size_constraints?(t.removeAttribute("height"),t.removeAttribute("width"),t.style.setProperty("height","auto","important"),t.style.setProperty("width","auto","important")):"force"===e.size_constraints&&n&&n[0]&&n[1]&&(t.setAttribute("height",n[1]),t.removeAttribute("width",n[0]),t.style.setProperty("height",n[1]+"px","important"),t.style.setProperty("width",n[0]+"px","important")),e.replace_css&&vt(t,e.replace_css,{force_important:!0}),e.add_links){for(var l=t;l=l.parentElement;)if("A"===l.tagName){if(e.replace_links)break;return}l||(l=_i("a"),t.parentElement.insertBefore(l,t),l.appendChild(t)),e.links_newtab&&(l.target="_blank"),l.href!==r&&(l.href=r)}},Ao=function(t,o,r,i){var e,a=!1;r.data.img?To(t,o.el,r.data.img,r.data.obj.url):r.data.obj&&(e=function(){var e;Ti.replaceimgs_wait_fullyloaded&&t.replace_imgs?((e=new Image).onload=function(){To(t,o.el,e.src,r.data.obj.url),i()},e.onerror=i,e.src=r.data.obj.url):(To(t,o.el,r.data.obj.url,r.data.obj.url),i())},li?ui({type:"override_next_headers",data:{url:r.data.obj.url,headers:r.data.obj.headers,method:"GET"}},function(){e()}):e(),a=!0),a||i()},Io=!(kn=function(e,t){if(t=t||Ni.nullfunc,c&&da()&&!di)return aa(c,{type:"trigger_gallery",data:{dir:e}},function(e){t(e)});lo(e,void 0,void 0,function(e){if(e){e=Lt([e]);if(e)return void to(e,!0,!0,function(e){t(e)})}return t(!1)})}),Eo=new Ea;var Uo,Do,Lo,Po=function(e){var t,o={replace_imgs:Ti.replaceimgs_replaceimgs,add_links:Ti.replaceimgs_addlinks,replace_links:Ti.replaceimgs_replacelinks,support_plainlinks:!1,plainlink_replace_text:!1,plainlink_replace_link:!1,plainlink_replace_media:!1,links_newtab:Ti.replaceimgs_links_newtab,size_constraints:Ui("replaceimgs_size_constraints"),replace_css:Ti.replaceimgs_css,use_progressbar:!0},r=Ui("replaceimgs_plainlinks");for(t in"none"!==r&&(o.support_plainlinks=!0,"replace_link_text"===r?(o.plainlink_replace_text=!0,o.plainlink_replace_link=!0):"replace_media"===r&&(o.plainlink_replace_media=!0)),e=e||{})o[t]=e[t];return o},jo=function(e){var l=Po(e);if(!Io&&!gn()){var t=l.images,o=(void 0===t&&(t=(l.support_plainlinks?Ro:zo)()),[]);if(l.all_els_ok)o=t;else{for(var r=Ba(),i=0;i<t.length;i++){var a=Co(t[i]);if((a=!a&&l.support_plainlinks&&"A"===t[i].tagName?!0:a)&&(o.push(t[i]),l.support_plainlinks))for(var n=t[i].parentElement;n;)Ta(r,n),n=n.parentElement}if(l.support_plainlinks)for(i=0;i<o.length;i++)"A"===o[i].tagName&&Aa(r,o[i])&&(o.splice(i,1),i--)}if(0!==o.length){l.use_progressbar&&vi("Replacing images");for(var u,s,c=0,d=1,p=(l.finalcb&&l.finalcb_progress&&(d-=l.finalcb_progress),function(e){c++,l.use_progressbar&&(u.finish_id(e),vi("Finished "+c+"/"+y)),y<=c?(l.use_progressbar&&ko(s,d,!0),Io=!1,l.finalcb&&l.finalcb(function(e){l.use_progressbar&&l.finalcb_progress&&ko(s,d+e*l.finalcb_progress,!0)})):Mn(h,c,100)}),m=(l.replace_image_func||(l.replace_image_func=function(i,a,n,s,e){if(i.use_elcache){if(Eo.has(a.el))return s(),n();Eo.set(a.el,!0,5)}var t=!Ti.replaceimgs_usedata,o=t,r=!0;"A"===a.el.tagName&&(t=r=!i.plainlink_replace_media,r=r||!Ja(a.src,a.el)),oo(a,{automatic:!0,multi:!0,use_head:t,incomplete_image:o,incomplete_video:o,null_if_no_change:r,use_last_pos:!1,progress_cb:e},function(e,t,o,r){if(s(),!r)return To(i,a.el,a.src,a.src),n();Ao(i,t,r,n)})}),0),h=function(){var e=parseInt(Ti.replaceimgs_totallimit);if(e<x)x--;else{x<e&&(x++,h());var t,o=null,r=null,i=Date.now();for(t in g)if(!(f[t]>=parseInt(Ti.replaceimgs_domainlimit))){var a=i-_[t],n=1e3*parseFloat(Ti.replaceimgs_delay)-a;if(!(0<n)){f[r=t]++,_[t]=i,o=g[t][0],g[t].splice(0,1),0===g[t].length&&delete g[t];break}null===v[t]&&!function(e){v[e]=setTimeout(function(){v[e]=null,h()},1+n)}(t)}null===o&&0<b.length&&(o=b[0],b.splice(0,1));var s=m;m++,o?l.replace_image_func(l,o,function(){p(s)},function(){r&&f[r]--},function(e){var t;Ti.replaceimgs_simple_progress&&(t=e.loaded/e.total,e.total=1,e.loaded=t),u.update_progobj(s,e)}):x--}},g=(l.use_progressbar&&(s=wo(!0)),{}),f={},_={},v={},b=[],y=o.length,i=0;i<o.length;i++){var w,k=Lt([o[i]],{links:l.support_plainlinks});k?(k._replace_id=i,(k.src&&(w=k.src.match(/^https?:\/\/([^/]+)\//))?(w[1]in g||(g[w[1]]=[],f[w[1]]=0,_[w[1]]=0,v[w[1]]=null),g[w[1]]):b).push(k)):y--}l.use_progressbar&&(u=new va({cb:function(e){ko(s,e.percent*d,!1)},elements_num:y}));var x=1;h()}}},Mo=(pa("Replace images",jo),null),Ho=function(){Mo&&Mo();function r(e){for(var t=0,o=a;t<o.length;t++){var r=o[t];if(r.el===e.el)return r}return null}var e=_i("div"),t=(Ee(e,"position","absolute"),Ee(e,"left","0px"),Ee(e,"top","0px"),Di(e),_i("div")),i=(Di(t),vt(t,Ti.customgallery_bg_css,{force_important:!0}),Ee(t,"pointer-events","none"),Ee(t,"position","fixed"),Ee(t,"left","0px"),Ee(t,"top","0px"),Ee(t,"height","100%"),Ee(t,"width","100%"),Ee(t,"z-index",Un-3),e.appendChild(t),_i("div")),o=(Di(i),Ee(i,"position","absolute"),Ee(i,"pointer-events","none"),Ee(i,"left","0px"),Ee(i,"top","0px"),Ee(i,"z-index",Un-2),e.appendChild(i),_i("div")),a=(Di(o),Ee(o,"position","fixed"),Ee(o,"left","0px"),Ee(o,"top","0px"),Ee(o,"height","100%"),Ee(o,"width","100%"),Ee(o,"z-index",Un),e.appendChild(o),Ta(Jt,o),[]),n=Ba(),s=(Mo=function(){Yr===s&&(Yr=null),Ia(Jt,o),e.parentElement.removeChild(e),Mo=null},Yr=function(e){for(var t=0,o=[{key:Ti.mouseover_close_key,action:Mo},{key:Ti.customgallery_apply_key,action:function(){if(Mo(),a.length){l=[];for(var e=0,t=a;e<t.length;e++){var o=t[e];l.push(o.el)}to(a[0],!0)}}}];t<o.length;t++){var r=o[t];if(_(r.key))return r.action(),!1}});fi(o,"click",function(e){e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation();var t,o,e=[_e,ve],e=Lt(Kt(e),{point:e});e&&e.el&&((e=!!(o=e).el&&(Aa(n,o.el)?r(o)||o:(a.push(o),Ta(n,o.el),o)))._real_el=e.el,e.picture&&(e._real_el=e.picture),e._outline_el?((t=r(o=e))&&0<=(t=hi(a,t))&&a.splice(t,1),Ia(n,o.el),e._outline_el&&e._outline_el.parentElement.removeChild(e._outline_el)):(t=e._real_el.getBoundingClientRect(),vt(o=_i("div"),Ti.customgallery_outline_css,{force_important:!0}),Ee(o,"position","absolute"),Ee(o,"pointer-events","none"),Ee(o,"z-index",Un-1),Ee(o,"left",t.left+window.scrollX+"px"),Ee(o,"top",t.top+window.scrollY+"px"),Ee(o,"width",t.width+"px"),Ee(o,"height",t.height+"px"),i.appendChild(o),e._outline_el=o))},{capture:!0}),document.documentElement.appendChild(e)};function $o(){Ti.customgallery_enable_button?Uo||(Do=pa("Custom gallery",Ho),Uo=!0):Uo&&(ma(Do),Uo=!1)}Uo=!1,Do=null,$o(),Lo=Ai.customgallery_enable_button.onupdate,Ai.customgallery_enable_button.onupdate=function(){if($o(),Lo)return Lo.apply(this,arguments)};var Fo,Oo,Go,Wo,Vo=function(r,i,a,n){Xa("jszip",Ti,Si,function(e){if(!e)return a(null);var t,e=new e,o=e;for(t in i&&(o=e.folder(i)),r)o.file(t,r[t]);e.generateAsync({type:"blob"},function(e){n(e.percent/100)}).then(function(e){a(e)},function(e){bi(e),a(null)})})},Xo=function(h,g,i){function a(e){e.headers={Referer:"https://qsniyg.github.io/maxurl/"},Si(e)}var t;t=function(e){if(!e)return i(!1);var e=function(){for(var e={},t=Ui("gallery_jd_referer"),o=0;o<h.length;o++){var r,i,a,n=h[o];n&&(r={url:n.obj.url,filename:n.filename||"",desc:""},i="",a=null,(i=n.obj.headers&&"never"!==t&&(a=Wa(n.obj.headers,"referer")||null)&&(i=r.referer=a,"domain"===t)?Ya(i):i)in e||(e[i]={referer:a,urls:[]}),e[i].urls.push(r))}var s,l=[];for(s in e){var u=e[s],c=[],d=[],p=[],m=(zi(u.urls,function(e){c.push("directhttp://"+e.url),p.push(e.fnames),d.push(e.desc)}),{urls:c.join("\n"),descriptions:d.join("\n"),fnames:p.join("\n")});g&&(m.package=g),m.referer=u.referer||"",Ti.gallery_jd_autostart&&(m.autostart="1"),l.push($a(m,!0))}return l}(),t=0,o=e.length,r=!1;zi(e,function(e){a({method:"GET",url:"http://127.0.0.1:9666/flashgot?"+e,onload:function(e){if(t++,!r)return 200!==e.status?(bi("Error with flashgot api",e),i(!(r=!0))):void(o<=t&&i(!0))}})})},a({method:"GET",url:"http://127.0.0.1:9666/jdcheckjson",onload:function(e){if(200!==e.status)return bi("Unable to connect to JDownloader",e),t(!1);try{JSON.parse(e.responseText)}catch(e){return bi(e),t(!1)}return t(!0)}})},Yo=function(){function l(i,e,t,o){if(!i||!i.data||!i.data.obj)return bi("Invalid data",i,e),o();var r=i.data.obj.url;if(i.data.resp){if(!i.data.resp.finalUrl)return bi("Unable to load image from",i,e),o();r=i.data.resp.finalUrl}i.data.img&&("VIDEO"===i.data.img.tagName&&i.data.img.pause(),r=cn(i.data.img));var a=i.data.obj||{},n=a.url,s=null;if(Aa(d,n))return o();function l(e){if(Rt(a,n,i.data.respdata),s=a.filename,(s=e&&!s?"download":s)&&s in c){for(var t,o=1,r=La(s,{split_ext:!0});t=r[0]+" ("+o+++")",r[1]&&(t+="."+r[1]),t in c;);s=t}}function u(){Ti.gallery_zip_add_info_file&&(m[e._replace_id]=f(s,a,n,e)),p[e._replace_id]={obj:a,filename:s},o()}Ta(d,n),"jdownloader"===h?(l(!1),u()):ba({url:r,headers:a.headers},{onload:function(e){l(!0),c[s]=e.data,u()},onprogress:t})}function t(e){jo({images:e,all_els_ok:!0,replace_image_func:function(e,a,n,s,t){t={automatic:!0,multi:!0,use_head:!1,incomplete_image:!1,incomplete_video:!0,deny_nondirect_delivery:!0,deny_cache:!0,null_if_no_change:!Ti.gallery_download_unchanged,use_last_pos:!1,progress_cb:t};"jdownloader"===h&&(t.use_head=!0,t.incomplete_image=!0,t.incomplete_video=!0),oo(a,t,function(e,t,o,r){if(s(),!r)return void 0!==t||Ti.gallery_download_unchanged?(bi("Unable to download",t,a),Ti.gallery_zip_add_info_file&&u.push(((t={}).num_in_gallery=(i=a)._replace_id+1,(i=i.src)&&(t.url=g(i)),t))):yi("Not downloading unchanged image",a),n();var i;l(r,a,function(e){},n)})},finalcb:function(t){var e,o;"zip"===h&&!Object.keys(c).length||!p.length?(bi("No files!"),t(1)):(e=function(){for(var e=0;e<p.length;e++)if(p[e]&&p[e].obj)return p[e].obj}(),r||!e||((e=qi(e.format_vars)).ext=".zip",e.items_amt=Object.keys(p).length.toString(),r=(r=qt(Ti.gallery_zip_filename_format,e))||"download",/\.zip$/i.test(r))||(r+=".zip"),e=(r=r||"download.zip").replace(/\.zip$/i,""),o=null,Ti.gallery_zip_add_tld&&(o=e),Ti.gallery_zip_add_info_file&&(c["info.txt"]=function(){var e=i(),t=[];t.push(" --- Page info ---",""),t.push(pi(e,null,"\t")),t.push(""," --- Files ---","");for(var o,r=0;r<p.length;r++)p[r]&&p[r].filename&&(o=p[r].filename,t.push(o),t.push(pi(m[r],null,"\t")),t.push(""));return u.length&&(t.push(""," --- Failed ---",""),zi(u,function(e){t.push(pi(e,null,"\t")),t.push("")})),a(t.join("\n"))}()),G(),"jdownloader"===h?Xo(p,e,function(e){t(1),(e?Ae:s)()}):Vo(c,o,function(e){t(1),e?(Ae(),_a(e,r)):s()},t))},finalcb_progress:.1})}var c={},d=Ba(),p=[],m={},u=[],r=null,h=Ui("gallery_download_method"),g=function(e){return/^https?:\/\//i.test(e)?e:e.substr(0,1e3)},i=function(){var e={};e.url=ci;try{var t=$i().location.href;t!==ci&&(e.url_orig=ci,e.url=t),e.title=document.title,e.download_time=(new Date).toString()}catch(e){bi(e)}return e},f=function(e,t,o,r){var i={},r=(i.num_in_gallery=r._replace_id+1,i.download_url=g(o),t.headers&&(i.download_headers=t.headers),r.src);return r&&r!==o&&(i.thumb_url=g(r)),t.filename!==(i.filename=e)&&(i.orig_filename=t.filename),t.filesize&&(i.filesize=t.filesize),t.extra&&Ri(t.extra,function(e,t){null!==t&&""!==t&&(i["extra_"+e]=t)}),i},a=function(e){return e.replace(/\r*\n/g,"\r\n")};so(function(e){t(e)})},Zo=null,Jo="imu-"+ta(10)+"-highlight",Ko=function(){!Zo&&/^text\//.test(document.contentType)&&(Zo=_i("style"),document.documentElement.appendChild(Zo),Qo())},Qo=function(){Ko(),Zo&&(Zo.innerText="."+Jo+"{"+_t(Ti.highlightimgs_css)+"}")},er=(Fo=Ai.highlightimgs_css.onupdate,Ai.highlightimgs_css.onupdate=function(){if(Qo(),Fo)return Fo.apply(this,arguments)},function(e){Ko(),e.classList.add(Jo)}),tr=function(e){e.classList.remove(Jo)},or=function(e){var t=cn(e);return!(!un(t,Sn(e))||"A"===e.tagName&&!Ja(t,e))},rr=function(e){var t;return e.hasAttribute("data-imu-valid")?!!Ra(e.getAttribute("data-imu-valid")):(t=or(e),e.setAttribute("data-imu-valid",t+""),t)},ir=function(e){var t;return e.hasAttribute("data-imu-supported")?!!Ra(e.getAttribute("data-imu-supported")):(t=dn(e),e.setAttribute("data-imu-supported",t+""),t)},n=[],ar=function(e){if(!gn()||!Ti.mouseover_exclude_imagetab){var t=(e=e||{}).images;if((t=void 0===t?No():t).length)for(var o,r=0;r<t.length;r++)rr(t[r])&&(o=!Ti.highlightimgs_onlysupported,Ti.highlightimgs_onlysupported&&(o=ir(t[r])),e.hoveronly||(o?(e.is_auto&&hi(n,t[r])<0&&n.push(t[r]),er):tr)(t[r]))}};function nr(){Ti.highlightimgs_enable?Oo||(Go=pa("Highlight images",ar),Oo=!0):Oo&&(ma(Go),Oo=!1)}Oo=!1,Go=null,nr(),Wo=Ai.highlightimgs_enable.onupdate,Ai.highlightimgs_enable.onupdate=function(){if(nr(),Wo)return Wo.apply(this,arguments)};var sr=function(){if(Te)return!1;var e=Ui("mouseover_trigger_enabledisable_toggle");if(_(Ti.mouseover_trigger_prevent_key)){if("disable"===e)return!1}else if("enable"===e)return!1;return m="mouse",!0},lr=function(e){gn()&&Ti.mouseover_exclude_imagetab||("hover"!==Ui("highlightimgs_auto")||!rr(e.target)||Ti.highlightimgs_onlysupported&&!ir(e.target)||(hi(n,e.target)<0&&n.push(e.target),er(e.target)),y()&&Ti.mouseover_trigger_mouseover&&!f&&!Zt()&&(F=e.target,ai(e),f=setTimeout(function(){F=null,f&&(clearTimeout(f),f=null),sr()&&eo()},1e3*g)))},ur=function(e){"hover"===Ui("highlightimgs_auto")&&rr(e.target)&&tr(e.target),y()&&Ti.mouseover_trigger_mouseover&&f&&F===e.target&&(clearTimeout(f),f=null)};function cr(e){var t=Ui("highlightimgs_auto");"always"!==t&&"hover"!==t||ar({images:e,hoveronly:"hover"===t,is_auto:!0});for(var o=0;o<e.length;o++)Vi(e[o],"mouseover",lr),Vi(e[o],"mouseout",ur),fi(e[o],"mouseover",lr),fi(e[o],"mouseout",ur);Ti.replaceimgs_auto&&jo({images:e,use_progressbar:!1,use_elcache:!0})}if(!Oi()&&ka(window.location.href)){var dr,pr={childList:!0,subtree:!0,attributes:!0},H=function(){return new MutationObserver(function(e,t){for(var r=[],i=function(e){for(var t,o=0;o<e.length;o++)t=e[o],(Co(t)||Ti.mouseover_links&&"A"===t.tagName)&&r.push(e[o]),e[o].children&&i(e[o].children)},o=0;o<e.length;o++){var a=e[o];a.addedNodes&&i(a.addedNodes),!a.target||"attributes"!==a.type||"src"!==a.attributeName&&"href"!==a.attributeName&&"srcset"!==a.attributeName||i([a.target])}0<r.length&&cr(r)})},mr=function(){Oi()||(cr(No()),dr&&dr.observe(document,pr))},hr=function(){for(var e=0;e<n.length;e++)tr(n[e]);n=[]},gr=function(){hr(),dr&&dr.disconnect()},fr=(Fi.push(gr),function(){var e=Ui("highlightimgs_auto");return"always"===e||"hover"===e||Ti.replaceimgs_auto||y()&&Ti.mouseover_trigger_mouseover});try{dr=H()}catch(e){yi(e)}fr()&&mr();var _r=function(){(fr()?("always"!==Ui("highlightimgs_auto")&&hr(),mr):gr)()},vr=Ai.highlightimgs_auto.onupdate,br=(Ai.highlightimgs_auto.onupdate=function(){vr&&vr(),_r()},Ai.imu_enabled.onupdate);Ai.imu_enabled.onupdate=function(){br&&br.apply(this,arguments),(Ti.imu_enabled?_r:gr)()}}function yr(e){x=e.clientX,C=e.clientY,e.pageX,e.pageY}function wr(e,t){if(!1===t)try{e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation()}catch(e){}return t}function kr(o){if(!Pi&&(si&&wi("input","keydown_cb",o),b())&&("wheel"!==o.type||!bn(d))){if("keydown"===o.type){if(o.repeat)return;if(ot)return;if(Ti.disable_keybind_when_editing&&o.target){var e=Vr.get(o.target);if(void 0===e&&(e=function(e){if("TEXTAREA"===e.tagName)return!0;if("INPUT"===e.tagName&&(!e.hasAttribute("type")||"text"===e.getAttribute("type")))return!0;do{if(e.hasAttribute("contenteditable"))return!0}while(e=e.parentElement);return!1}(o.target),Vr.set(o.target,e,60)),!0===e)return}}var r=void 0,i=[],e=(Gt(o,!0),function(e){var t,o=!0,r=_n(e,o="mouseup"!==e.type&&"keyup"!==e.type?o:!1),i=[];for(t in r)i.push(t+":"+r[t]);return o+" "+i.join(",")+" "+e.timeStamp}(o));if(Xr.has(e))return wr(o,Xr.get(e));if(li&&Ti.extension_contextmenu&&"mousedown"===o.type&&_(["shift","button2"])&&yr(o),!Yr||!1!==(r=Yr(o))){if(Ti.mouseover&&"keyboard"===Ui("mouseover_trigger_behavior")){for(var t=[Ti.mouseover_trigger_key],a=0;a<Na;a++)t.push(Ti["mouseover_trigger_key_t"+(a+2)]);zi(t,function(e,t){Ot(o,e)&&(_(e)&&!ze&&(M={},f||(i.push({requires_mouse:!0,type:"trigger_popup",trigger:"keyboard"}),r=!1,h=e),N=t?t+1:null,"popup"!==V("mouseover_open_behavior"))&&Ht(),"all"===(t=Xt())||"any"===t&&_(e))&&(Re[0]=!1)})}if(Ti.replaceimgs_enable_keybinding&&_(Ti.replaceimgs_keybinding)&&(i.push({type:"replace_images"}),r=!1,h=Ti.replaceimgs_keybinding),Ti.highlightimgs_enable_keybinding&&_(Ti.highlightimgs_keybinding)&&(i.push({type:"highlight_images"}),r=!1,h=Ti.highlightimgs_keybinding),Ti.customgallery_enable_keybinding&&_(Ti.customgallery_keybinding)&&(i.push({type:"custom_gallery"}),r=!1,h=Ti.customgallery_keybinding),Ti.mouseover&&!1!==r)for(var n=c||Hr(),s=[{key:Ti.mouseover_close_key,action:{type:"resetpopups"}},{key:Ti.mouseover_gallery_prev_key,action:{type:"gallery_prev"},requires:Ti.mouseover_enable_gallery},{key:Ti.mouseover_gallery_next_key,action:{type:"gallery_next"},requires:Ti.mouseover_enable_gallery},{key:Ti.mouseover_download_key,clear:!0,action:{type:"download"}},{key:Ti.mouseover_open_new_tab_key,clear:!0,action:{type:"open_in_new_tab"}},{key:Ti.mouseover_open_bg_tab_key,action:{type:"open_in_new_tab",background_tab:!0}},{key:Ti.mouseover_copy_link_key,action:{type:"copy_link"},requires:Ti.write_to_clipboard},{key:Ti.mouseover_open_options_key,clear:!0,action:{type:"open_options"}},{key:Ti.mouseover_open_orig_page_key,clear:!0,action:{type:"open_orig_page"}},{key:Ti.mouseover_rotate_left_key,action:{type:"rotate_left"}},{key:Ti.mouseover_rotate_right_key,action:{type:"rotate_right"}},{key:Ti.mouseover_flip_horizontal_key,action:{type:"flip_horizontal"}},{key:Ti.mouseover_flip_vertical_key,action:{type:"flip_vertical"}},{key:Ti.mouseover_zoom_in_key,action:{type:"zoom_in"}},{key:Ti.mouseover_zoom_out_key,action:{type:"zoom_out"}},{key:Ti.mouseover_zoom_full_key,action:{type:"zoom_full"}},{key:Ti.mouseover_zoom_fit_key,action:{type:"zoom_fit"}},{key:Ti.mouseover_fullscreen_key,action:{type:"fullscreen"}},{key:Ti.mouseover_video_seek_left_key,action:{type:"seek_left"}},{key:Ti.mouseover_video_seek_right_key,action:{type:"seek_right"}},{key:Ti.mouseover_video_frame_prev_key,action:{type:"frame_left"}},{key:Ti.mouseover_video_frame_next_key,action:{type:"frame_right"}},{key:Ti.mouseover_video_speed_down_key,action:{type:"speed_down"}},{key:Ti.mouseover_video_speed_up_key,action:{type:"speed_up"}},{key:Ti.mouseover_video_reset_speed_key,action:{type:"reset_speed"}},{key:Ti.mouseover_video_volume_up_key,action:{type:"volume_up"}},{key:Ti.mouseover_video_volume_down_key,action:{type:"volume_down"}},{key:Ti.mouseover_video_mute_key,action:{type:"toggle_mute"}},{key:Ti.mouseover_video_controls_key,action:{type:"toggle_controls"}},{key:Ti.mouseover_video_playpause_key,action:{type:"toggle_play_pause"}},{key:Ti.mouseover_video_screenshot_key,clear:!0,action:{type:"screenshot_video"}},{key:Ti.mouseover_ui_toggle_key,action:{type:"toggle_ui"}},{key:Ti.mouseover_gallery_download_key,action:{type:"download_gallery"},clear:!0},{key:Ti.mouseover_hold_key,action:{type:"toggle_hold"}}],a=0;a<s.length;a++)if(s[a].key&&_(s[a].key)&&(!("requires"in s[a])||s[a].requires)){var l=s[a].action;l.needs_popup=!0,i.push(l),s[a].clear&&Ht(),n&&(h=s[a].key,r=!1);break}if(h=h&&h.length?qi(h):[],i&&0<i.length){for(var u=0;u<d.length;u++)vn(d[u])&&(d.splice(u,1),u--);for(a=0;a<i.length;a++)Wr(i[a]);!function(e){if(ca()){var t="top",o=!0;if(!di&&"top"===(t=k)){if(o=!1,!c)return;t=c}for(var r=0;r<e.length;r++)!o&&e[r].requires_mouse&&(e.splice(r,1),r--);0<e.length&&aa(t,{type:"action",data:e})}}(i)}!1===r&&Xr.set(e,r,5)}return wr(o,r)}}function xr(e){if(si&&wi("input","keyup_cb",e),b()&&(Gt(e,!1),Ti.mouseover)){var t,o=void 0,r=Ti.mouseover_trigger_key,i=function(e,t,o){o=Pn(o);for(var r=0;r<o.length;r++)if(Wt(e,t,o[r]))return!0;return!1}(e,!1,r=N?Ti["mouseover_trigger_key_t"+N]:r),a=Xt(),r=(i&&"all"===a&&(i=!Vt(0,r)),ze);if(r||(Ti.mouseover_cancel_popup_when_release||Ti.mouseover_close_need_mouseout&&!Re[1])&&(r=!0),!i||"esc"===a||"keyboard"!==m||!r){if(27===e.which){if(Te&&"mouse"===m&&!Ti.mouseover_cancel_popup_with_esc)return;Ae(),Ie()}if(0<h.length)for(t in _n(e,!1)){var n=hi(h,t);0<=n&&(h.splice(n,1),o=!1)}return wr(e,o)}!Ti.mouseover_close_need_mouseout||Re[1]?(Ae(),Ie()):Re[0]=!0}}var Cr=function(){var e=ye[0].getElementsByTagName("video");return 0<(e=0===e.length?ye[0].getElementsByTagName("img"):e).length?e[0]:null},zr=function(){fa(ke,ke.filename,Le)},Rr=function(){ke.media_info&&ke.media_info.delivery&&Ti.enable_stream_download?(G(),Q(ke,function(e){e?mt(function(r){var a,n;r?(Ae(),a=wo(!0),n=0,fe(ke,e,function(e){var t,o,r,i=Date.now();50<i-n&&(n=i,i=bo(100*e.percent,2),t=yo(e.loaded),o=yo(e.total),r=e.total_accurate?"":"~",vi(t+" / "+r+o+" ("+i+"%)")),ko(a,.9*e.percent,!0)},function(e){le(r,e,function(e){ko(a,.9+.1*e,!0)},function(o){ko(a,1,!0);var e=r.FS("readFile",o);Wi(e,function(e){var t=La(o,{split_ext:!0})[1],t=La(ke.filename||"download",{split_ext:!0,known_ext:!0})[0]+"."+t;_a(e,t,function(){r.FS("unlink",o)})})})})):s()}):s()})):zr()},v=function(){var e=ye[0].getElementsByTagName("video");return(e=e&&0!==e.length?e:ye[0].getElementsByTagName("audio"))&&0!==e.length?e[0]:null},Nr=function(e,t){e=(e?-1:1)*(t=void 0===t?Ti.mouseover_video_seek_amount:t),t=v();t&&(t.currentTime+=e)},Sr=function(e){var t=v();t&&(t.pause(),Nr(e,1/Ti.mouseover_video_framerate))},qr=function(e){var t,o=v();o&&("number"!=typeof e?(t=Ti.mouseover_video_speed_amount,o.playbackRate+=t=!0===e?-t:t):o.playbackRate=e)},Br=function(e){var t,o=v();o&&("number"!=typeof e?(t=Ti.mouseover_video_volume_change_amt,t=o.volume+(t=!0===e?-t:t)/100,t=Ci(xi(t,0),1),o.volume=t):o.volume=e)},Tr=function(){var e=v();e&&(e.muted=!e.muted)},Ar=function(){var e=v();e&&("controls"===e.getAttribute("controls")?e.removeAttribute("controls"):e.setAttribute("controls","controls"))},Ir=function(t){try{t.play()}catch(e){yi("Unable to autoplay",t,e)}},Er=function(){var e=v();e&&(e.paused?Ir(e):e.pause())},Ur=function(){He(!0,"toggle")},Dr=function(){return null!==document.fullscreenElement||document.fullscreen},Lr=function(){return Dr()&&A},Pr=function(){Cr().requestFullscreen().then(function(e){A=!0},function(e){bi("Error loading fullscreen",e)})},jr=function(){document.exitFullscreen(),A=!1},Mr=function(){(Dr()?jr:Pr)()},Hr=function(){return ze&&xe},$r=function(){var e;ze&&(e=Ui("popup_hold_zoom"),Oe&&"none"!==e&&Oe(Ne?e:"last"),Fe&&Ti.mouseover_hold_position_center&&(e=Fe(_e,ve,!0),ye[0].style.top=e[1]+"px",ye[0].style.left=e[0]+"px"),Me())},Fr=function(){Ne=!Ne,J(),Ne||!Re[1]&&!Ti.mouseover_hold_close_unhold?$r():Wr({type:"resetpopups"})},Or=function(e,t){var o=_i("canvas");o.width=e.videoWidth,o.height=e.videoHeight;o.getContext("2d").drawImage(e,0,0,o.width,o.height);var e="image/png",r=Ui("popup_video_screenshot_format");return t(ln(o,e="jpg"===r?"image/jpeg":e))},Gr=function(){var e=v();e&&Or(e,function(e){var t;e?((t=qi(ke.format_vars)).is_screenshot={usable:!0},t.ext=".png","jpg"===Ui("popup_video_screenshot_format")&&(t.ext=".jpg"),t.filename=t.filename_noext+t.ext,t=qt(Ti.filename_format,t),fa({url:e},t)):(bi("Unable to screenshot video"),s())})},Wr=function(e){if(si&&vi("action_handler",e),!e.needs_popup||Hr()){switch(e.type){case"resetpopups":return Ie(),!0;case"replace_images":return jo(),!0;case"highlight_images":return ar(),!0;case"custom_gallery":return Ho(),!0;case"trigger_popup":return"keyboard"===e.trigger&&(m="keyboard"),eo(),!0;case"gallery_prev":return kn(-1),!0;case"gallery_next":return kn(1),!0;case"download":return Rr(),!0;case"open_in_new_tab":return ga(ke,e.background_tab),!0;case"rotate_left":return _o(-90),!0;case"rotate_right":return _o(90),!0;case"flip_horizontal":return vo(!1),!0;case"flip_vertical":return vo(!0),!0;case"zoom_in":return Se("incremental",-1),!0;case"zoom_out":return Se("incremental",1),!0;case"zoom_full":return Se("fitfull",-1),!0;case"zoom_fit":return Se("fitfull",1),!0;case"fullscreen":return Mr(),!0;case"seek_left":return Nr(!0),!0;case"seek_right":return Nr(!1),!0;case"frame_left":return Sr(!0),!0;case"frame_right":return Sr(!1),!0;case"speed_down":return qr(!0),!0;case"speed_up":return qr(!1),!0;case"reset_speed":return qr(1),!0;case"volume_up":return Br(!1),!0;case"volume_down":return Br(!0),!0;case"toggle_mute":return Tr(),!0;case"toggle_controls":return Ar(),!0;case"toggle_play_pause":return Er(),!0;case"open_options":return ga({url:oa()},!1),!0;case"open_orig_page":return ke&&ke.extra&&ke.extra.page?ga({url:ke.extra.page},!1):vi("Unable to find original page for",ke),!0;case"hold":return $r(),!0;case"toggle_hold":return Fr(),!0;case"toggle_ui":return Ur(),!0;case"copy_link":return ke&&ke.url?ya(ke.url,function(e){e||yi("Unable to write url to clipboard:",ke.url)}):yi("Popup not open?"),!0;case"screenshot_video":return Gr(),!0;case"download_gallery":return Yo(),!0}return!1}},Vr=new Ea,Xr=new Ea,Yr=null;function Zr(){var e=document.documentElement,t=document.body;return(e&&e.scrollLeft||t&&t.scrollLeft||0)-(e&&e.clientLeft||t&&t.clientLeft||0)}function Jr(){var e=document.documentElement,t=document.body;return(e&&e.scrollTop||t&&t.scrollTop||0)-(e&&e.clientTop||t&&t.clientTop||0)}var Kr=function(){return Ti.mouseover_move_with_cursor&&!Ne};function Qr(n,e,s,l){var u,i,c,d,p,t,a,o,r=Ui("mouseover_pan_behavior"),m=Kr();("drag"!==r||0!==e.buttons&&qe||m)&&(u=ct(),i=ki(Ti.mouseover_drag_min),c=!1,e=function(e){var t=parseInt(e?n.style.top:n.style.left),o=e?De:Ue,r=(e?l:s)-(e?Qe:Ke);r!==t&&(Be||Yi(r-t)>=i)&&(t=r-(t-o),e?(De=t,n.style.top=r+"px"):(Ue=t,n.style.left=r+"px"),c=Be=!0)},t=function(e){d||(d=ye&&ye[0]?(t=Date.now(),(!I||50<t-E)&&(I=X(ye[0]),E=t),I):null,p=Dt());var t=e?d.height:d.width,o=e?p.height:p.width,r=(o-t)/2,i=(Yi(r)<20&&(o=t,r=0),e?u[1]:u[0]),a=e?l:s;Ti.mouseover_movement_inverted||(a=i-a),i<o&&(a=Ci(xi(a-40,0),i-80)/(i-80)*(i-o-40)+r+20+"px",e?n.style.top=a:n.style.left=a,c=!0)},a=p=d=null,o=function(e){var t=parseInt(e?n.style.top:n.style.left),o=e?l:s,r=o-(e?tt:et)+t;(r=Ti.mouseover_move_within_page&&Fe?(a=a||Fe(s,l,!1))[e?1:0]:r)!==t&&(t=o,e?(tt=t,n.style.top=r+"px"):(et=t,n.style.left=r+"px"))},"drag"===r&&qe?(e(!1),e(!0)):"movement"===r&&(t(!1),t(!0)),m&&(o(!1),o(!0)),c)&&(be=!1)}function ei(t,o,r){if(si&&vi("ON_REMOTE_MESSAGE",t,o,r),"make_popup"===t.type)di||(Ie(),i=t.data.data.data.img,a=function(e){t.data.data.data.img=e,c=o,u=xe=null,Bt(t.data.source_imu,t.data.src,t.data.processing,t.data.data)},n=_i(i.tag),"video"!==i.tag&&"audio"!==i.tag||(i.autoplay&&n.setAttribute("autoplay",i.autoplay),i.controls&&n.setAttribute("controls",i.controls),i.loop&&n.setAttribute("loop",i.loop),i.muted&&(n.muted=i.muted),void 0!==i.volume&&(n.volume=i.volume),n.onloadedmetadata=function(){a(n)}),i.crossorigin&&n.setAttribute("crossorigin",i.crossorigin),n.src=i.src,"video"!==i.tag&&"audio"!==i.tag&&a(n));else if("count_gallery"===t.type)no(t.data.nextprev,t.data.max,t.data.is_counting,void 0,void 0,function(e){r(e)});else if("is_nextprev_valid"===t.type)uo(t.data.nextprev,function(e){r(e)});else if("trigger_gallery"===t.type)kn(t.data.dir,function(e){r(e)});else if("resetpopups"===t.type)Ie({from_remote:!0});else if("mousemove"===t.type)ni(t.data);else if("action"===t.type)for(var e=0;e<t.data.length;e++)t.data[e].remote_origin=o,Wr(t.data[e]);else"popup_open"===t.type&&(c=o,p=null);var i,a,n}function ti(t){var e,o;"remote"===t.type?(e=Li,t.response_id&&(o=t.response_id,e=function(e){na(t.from,o,e)}),t.from===la||t.to&&la!==t.to||ei(t.data,t.from,e)):"remote_reply"===t.type&&t.response_id in sa&&(o=t.response_id,delete t.response_id,sa[o](t.data))}li?chrome.runtime.onMessage.addListener(function(e,t,o){si&&vi("chrome.runtime.onMessage",e),"context_imu"===e.type?k===la&&(m="contextmenu",eo({is_contextmenu:!0})):"popupaction"===e.type?"replace_images"===e.data.action?jo():"highlight_images"===e.data.action?ar():e.data.action in ha&&ha[e.data.action].func():"remote"===e.type||"remote_reply"===e.type?ti(e):"suspend"===e.type?Gi(!0):"unsuspend"===e.type?Gi(!1):jn(e,0,o)}):fi($i(),"message",function(e){si&&vi("window.onMessage",e),ca()&&e.data&&"object"==typeof e.data&&ua in e.data&&(ti(e.data[ua]),e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation())},{capture:!0,passive:!1});var oi=0,ri=null,ii=null,ai=(fn(function(){var e={capture:!0,passive:!1};fi(document,"keydown",kr,e),fi(document,"mousedown",kr,e),fi(document,"contextmenu",kr,e),fi(document.body,"contextmenu",kr,e),fi(document,"wheel",kr,e),fi(document,"keyup",xr,e),fi(document,"mouseup",xr,e),fi(document,"contextmenu",yr);fi(document,"wheel",function(e){if(Ti.scroll_override_page&&ze&&$e)return $e(e,!0)},{passive:!1}),"bilibili.com"===rt&&0<=navigator.userAgent.indexOf("Chrome/")&&fi(document,"wheel",function(e){var t=document.createEvent("MouseEvents");t.initEvent("mousewheel",!0,!0),t.wheelDelta=e.wheelDelta,t.detail=e.detail,t.deltaMode=e.deltaMode,t.target=e.target,t.srcElement=e.srcElement,document.dispatchEvent(t)})}),function(e){if(null===e.pageX&&null!==e.clientX&&(e.pageX=e.clientX+Zr(),e.pageY=e.clientY+Jr()),ca()){if(e.remote_info&&e.remote_info.id!==la){var t=ia(e.remote_info);if(!t)return;t=X(t);e.clientX+=t.left,e.clientY+=t.top,e.pageX+=t.left+window.scrollX,e.pageY+=t.top+window.scrollY}else di&&(ii=e,t=16,(t=(t=Ti.mouseover_use_remote?t:300)-(Date.now()-oi))<1&&(t=1),ri=ri||setTimeout(function(){"remote_info"in ii||(ii.remote_info=ra()),ri=null,oi=Date.now(),aa("top",{type:"mousemove",data:za(ii)})},t));k=e.remote_info?e.remote_info.id:la}_e=e.clientX,ve=e.clientY,e.pageX,e.pageY}),ni=function(e){w=!0,e=e||window.event,ai(e),L&&O(),ze&&Qr(ye[0],e,_e,ve);var e=Ti.mouseover_jitter_threshold,t="keyboard"===m&&Yt()&&ze,o="mouse"===m;if(t||o)if(ze){f&&(clearTimeout(f),f=null);var r,t=40,i=t,a=null,n=null,s=!1,l=(Cr()&&(c=Dt(),s=Y(_e,ve,c,e),l=c.width,u=c.height,a=c.x+c.width/2,n=c.y+c.height/2,t=xi(t,l/2),i=xi(i,u/2),t+=e,i+=e,!1===be)&&Y(_e,ve,c)&&(be=!0),function(){Ne?Re[1]=!0:Ie()}),u=Ui("mouseover_close_el_policy"),e=("thumbnail"===u||"both"===u)&&xe&&!Ce,c=!1,d=!1;if(e)if((r=X(xe))&&0<r.width&&0<r.height){s="thumbnail"===u?!1:s;if(!Y(_e,ve,r)&&!s&&(c=!0,"thumbnail"===u))return l()}else d=!0;Re[1]=!1,be&&(!e||c||d)?a&&n&&(Yi(_e-a)>t||Yi(ve-n)>i)&&l():e&&c&&l()}else o&&Te&&B&&Ti.mouseover_cancel_popup_when_elout&&(r=X(B),Y(_e,ve,r)||Ie());if(y()&&(!ze||Ce)&&!Zt()){if(f&&!Ti.mouseover_trigger_mouseover){if(Yi(_e-z)<10&&Yi(ve-R)<10)return;clearTimeout(f),f=null}z=_e,R=ve,p&&(r=X(p),Y(_e,ve,r)||(p=null)),Ti.mouseover_trigger_mouseover||(f=setTimeout(function(){sr()&&eo()},1e3*g))}};fn(function(){fi(document,"mousemove",ni)}),pa("Report issue",ji)}var $n,Fn,On=function(e){if(!p)return!1;e.style.color="#ff3333",e.innerText="Error: Rules cannot be loaded.\nPlease either try reinstalling the script, or ";var t=document.createElement("a"),t=(t.href=c,t.target="_blank",t.innerText="install the github version",e.appendChild(t),document.createElement("p"));t.innerText="Error reason:",t.style.color="#000",t.style.marginTop="1em",t.style.marginBottom="1em";try{var o=document.createElement("pre");o.style.color="#000",o.innerText=p.message,e.appendChild(t),e.appendChild(o)}catch(e){bi(e)}return!0},Gn=function(e,t){var o,r=_i("div"),i=(r.style.marginBottom="2em",_i("span")),a=(i.style.fontSize="90%",i.style.fontWeight=800,i.style.marginRight="2em",null);try{a=x.script.version}catch(e){}On(i)||(i.innerText="Installed",null!==a&&(i.innerText+=" (v"+a,t&&-1===we(t,a)&&(i.innerText+=", update available"),i.innerText+=")"),(o=_i("a")).innerText="Options",o.style.background="#0af",o.style.padding="0.5em 1em",o.style.color="white",o.style.display="inline-block",o.style.textDecoration="none",o.target="_blank",o.href="https://qsniyg.github.io/maxurl/options.html"),r.appendChild(i),p||r.appendChild(o),e.parentElement.appendChild(r)},Wn=function(){var e,t,o=(o=document.querySelector("div.script-author-description > center > img[alt='Image Max URL']"))||document.querySelector("#additional-info > center > img[alt='Image Max URL']");o&&!o.parentElement.previousElementSibling&&"UL"===o.parentElement.nextElementSibling.tagName&&(e=null,(t=document.querySelector("dd.script-show-version"))&&(e=t.innerText.replace(/^\s*|\s*$/,"")),Gn(o,e))},Vn=function(){var e,t,o=document.querySelector("div#user-content > p[align='center'] img[alt='Image Max URL']");!o||o.parentElement.previousElementSibling&&"HR"!==o.parentElement.previousElementSibling.tagName||"UL"!==o.parentElement.nextElementSibling.tagName||(e=null,(t=document.querySelector("div.script-meta i.fa-history"))&&(t=t.parentElement.querySelector("code"))&&(e=t.innerText.replace(/[+].*/,""),/^[0-9.]+$/.test(e)||(e=null)),Gn(o,e))},Xn=function(e){for(var t={_positional:[]},o=2;o<process.argv.length;o++){var r=process.argv[o];if("-"!==r[0])t._positional.push(r);else{if("--"===r){Ji(t._positional,process.argv.slice(o+1));break}for(var i=null,a=null,n=null,s=("-"===r[1]?a=r.substr(2):i=r.substr(1),null),l=0,u=e;l<u.length;l++){var c=u[l];if(i&&c.short===i){s=c;break}if(a&&c.long===a){s=c;break}}if(!s)return console.error("Unable to find argument:",process.argv[o]),null;if(s.needs_arg){if(++o>=process.argv.length)return console.error("Argument",process.argv[o-1],"needs an argument"),null;n=process.argv[o]}else n=!0;t[s.name]=n}}return t},Yn=function(){var e=Xn({});e&&(e._positional.length?(e=e._positional[0],Ei(e,{fill_object:!0,cb:function(e){console.log(pi(e,null,"\t"))}})):console.error("Usage:",process.argv[0],process.argv[1],"url"))};function Zn(){$$IMU_EXPORT$$=Ei,h?module.exports=Ei:b&&(imu_variable=Ei),_?((a||Pi)&&fn(function(){Rr()}),Pi&&fn(function(){try{qr()}catch(e){bi(e);var t=_i("pre"),o=(t.style.fontFamily="monospace",t.style.margin="1em",t.innerText=Xe()+"\n"+e.toString()+"\n"+e.stack,_i("div")),r="Error loading options page, please report this to <a href='"+ji+"'>"+ji+"</a>, ";o.innerHTML=r+="and include the following information in the report:",o.appendChild(t),document.body.innerHTML=o.outerHTML}}),Ti.imu_enabled&&(Ti.redirect&&function(){if(!gn()){if(!Ti.redirect_host_html)return;if(!He(window.location.href))return}mr();var e=!1;Ti.redirect_force_page+""=="true"&&(e=!0),wr(window.location.href,e,pr)}(),Ti.website_inject_imu)&&(window.location.href.match(/^https?:\/\/qsniyg\.github\.io\/+maxurl(\/+|\/+index\.html)?(?:[?#].*)?$/)||window.location.href.match(/^file:\/\/.*\/maxurl\/site\/index\.html/))&&"undefined"!=typeof unsafeWindow&&fn(function(){var r;p||(unsafeWindow.imu_variable=Ei,unsafeWindow.imu_inject=1,unsafeWindow.do_imu=function(e,t){return Ei(e,{fill_object:!0,do_request:Si,cb:t})},r=unsafeWindow.set_max,unsafeWindow.set_max=function(o){var s;o&&o[0].url?(s=function(r,i,a,n){In(r,function(t,e){var o=e;(o=!e&&t&&t.finalUrl?t.finalUrl:o)?rn(r,o)<0&&n!==o?Ei(o,{fill_object:!0,do_request:Si,cb:function(e){An(t),s(e,i,a,o)}}):i(t,e,r[rn(r,o)]):i(t,e)},a)},Ti.website_image?s(o,function(e,t,o){e?(r([o||{url:t}]),unsafeWindow.maximgel.src=e.src):r("broken")},{running:!0}):o.can_head?s(o,function(e){var t;e?(t=(t=o)||{url:e.finalUrl},r([t])):r("broken")},{running:!0,head:!0}):r(o)):r(o)})}),_e&&(window.location.href.match(/^https?:\/\/(?:www\.)?greasyfork\.org\/+[^/]*\/+scripts\/+36662(?:-[^/]*)?(?:[?#].*)?$/)?fn(function(){Wn()}):window.location.href.match(/^https?:\/\/(?:www\.)?openuserjs\.org\/+scripts\/+qsniyg\/+Image_Max_URL(?:[?#].*)?$/)&&fn(function(){Vn()})),Hn(),li&&ui({type:"ready"})):o?imu_userscript_message_sender=jn:f&&Yn()}si&&vi("Finished initial loading"),si&&vi("do_config"),_e||li?($n=0,Fn=Object.keys(Ti).length+Qe.length,(Ye=function(o){Ir(o,function(e){if($n+=o.length,Ri(e,function(e,t){jr(e,t)}),Fn<=$n){var t=function(e){var t=function(){Zn()};"undefined"!=typeof GM_addValueChangeListener&&setTimeout(function(){for(var e in Ti)GM_addValueChangeListener(e,function(e,t,o,r){!1!==r&&((r={})[e]={newValue:o},Lr(r))})},1),t()};try{zo(),Ro(),No()}catch(e){bi(e)}Ti.last_update_check||ve("last_update_check",Date.now()),_o(),Er("settings_version",function(e){Pr(e,Ti,t)})}})})(Object.keys(Ti)),Ye(Qe)):Zn()}();