PageSourceSearch

https://auth.ceramic.ai/apps/hosted-authkit/production/_next/static/chunks/5550.3bd6fef46297376d.js

js ceramic.ai collected 2026-10-02 04:18:51 UTC 241,542 bytes, 274 lines download raw bytes

1!function(){try{var e="u">typeof window?window:"u">typeof global?global:"u">typeof globalThis?globalThis:"u">typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="dc454102-8921-446d-950b-59815d7961f8",e._sentryDebugIdIdentifier="sentry-dbid-dc454102-8921-446d-950b-59815d7961f8")}catch(e){}}();"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5550],{5550:(e,t,n)=>{let a,o,r,i,l,s,c,d;n.r(t),n.d(t,{fingerprint:()=>eH});let m=!self.document&&self.WorkerGlobalScope,u=void[].constructor,g=80==u,p=58==u,h=77==u,b=g&&"flat"in Array.prototype&&!("ReportingObserver"in self);function f(){return"brave"in navigator&&"Brave"==Object.getPrototypeOf(navigator.brave).constructor.name&&"function isBrave() { [native code] }"==navigator.brave.isBrave.toString()}function S(){let e={unknown:!1,allow:!1,standard:!1,strict:!1};try{if((()=>{try{window.OfflineAudioContext=OfflineAudioContext||webkitOfflineAudioContext}catch(e){}if(!window.OfflineAudioContext)return!1;let e=new OfflineAudioContext(1,1,44100).createAnalyser(),t=new Float32Array(e.frequencyBinCount);return e.getFloatFrequencyData(t),new Set(t).size>1})())return e.strict=!0,e;let t=/(Chrom(e|ium)|Microsoft Edge) PDF (Plugin|Viewer)/,n=[...navigator.plugins],a=2==n.filter(e=>t.test(e.name)).length;if(n.length&&!a)return e.standard=!0,e;return e.allow=!0,e}catch(t){return e.unknown=!0,e}}b&&navigator?.keyboard;let E=e=>/windows phone/ig.test(e)?"Windows Phone":/win(dows|16|32|64|95|98|nt)|wow64/ig.test(e)?"Windows":/android/ig.test(e)?"Android":/cros/ig.test(e)?"Chrome OS":/linux/ig.test(e)?"Linux":/ipad/ig.test(e)?"iPad":/iphone/ig.test(e)?"iPhone":/ipod/ig.test(e)?"iPod":/ios/ig.test(e)?"iOS":/mac/ig.test(e)?"Mac":"Other",{userAgent:y,platform:k}=self.navigator||{},[A,w]=(r=/win(dows|16|32|64|95|98|nt)|wow64/ig.test(y)?"Windows":/android|linux|cros/ig.test(y)?"Linux":/(i(os|p(ad|hone|od)))|mac/ig.test(y)?"Apple":"Other",k?[r,/win/ig.test(k)?"Windows":/android|arm|linux/ig.test(k)?"Linux":/(i(os|p(ad|hone|od)))|mac/ig.test(k)?"Apple":"Other"]:[r]),{logTestResult:M}=(i={},l=0,{logTestResult:e=>{let{test:t,passed:n,time:a=0}=e;l+=a;let o=`${a.toFixed(2)}ms`;return i[t]=o,console.log(`%c${n?"✔":"-"}${a?` (${o})`:""} ${t} ${n?"passed":"failed"}`,`color:${n?"#4cca9f":"lightcoral"}`)},getLog:()=>i,getTotal:()=>l}),D=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e.stop(),new Promise(n=>setTimeout(()=>n(e.start()),t)).catch(e=>{})},v=[[128512],[9786],[129333,8205,9794,65039],[9832],[9784],[9895],[8265],[8505],[127987,65039,8205,9895,65039],[129394],[9785],[9760],[129489,8205,129456],[129487,8205,9794,65039],[9975],[129489,8205,129309,8205,129489],[9752],[9968],[9961],[9972],[9992],[9201],[9928],[9730],[9969],[9731],[9732],[9976],[9823],[9937],[9e3],[9993],[9999],[128105,8205,10084,65039,8205,128139,8205,128104],[128104,8205,128105,8205,128103,8205,128102],[128104,8205,128105,8205,128102],[128512],[169],[174],[8482],[128065,65039,8205,128488,65039],[10002],[9986],[9935],[9874],[9876],[9881],[9939],[9879],[9904],[9905],[9888],[9762],[9763],[11014],[8599],[10145],[11013],[9883],[10017],[10013],[9766],[9654],[9197],[9199],[9167],[9792],[9794],[10006],[12336],[9877],[9884],[10004],[10035],[10055],[9724],[9642],[10083],[10084],[9996],[9757],[9997],[10052],[9878],[8618],[9775],[9770],[9774],[9745],[10036],[127344],[127359]].map(e=>String.fromCodePoint(...e)),x=`
2	'Segoe Fluent Icons',
3	'Ink Free',
4	'Bahnschrift',
5	'Segoe MDL2 Assets',
6	'HoloLens MDL2 Assets',
7	'Leelawadee UI',
8	'Javanese Text',
9	'Segoe UI Emoji',
10	'Aldhabi',
11	'Gadugi',
12	'Myanmar Text',
13	'Nirmala UI',
14	'Lucida Console',
15	'Cambria Math',
16	'Bai Jamjuree',
17	'Chakra Petch',
18	'Charmonman',
19	'Fahkwang',
20	'K2D',
21	'Kodchasan',
22	'KoHo',
23	'Sarabun',
24	'Srisakdi',
25	'Galvji',
26	'MuktaMahee Regular',
27	'InaiMathi Bold',
28	'American Typewriter Semibold',
29	'Futura Bold',
30	'SignPainter-HouseScript Semibold',
31	'PingFang HK Light',
32	'Kohinoor Devanagari Medium',
33	'Luminari',
34	'Geneva',
35	'Helvetica Neue',
36	'Droid Sans Mono',
37	'Dancing Script',
38	'Roboto',
39	'Ubuntu',
40	'Liberation Mono',
41	'Source Code Pro',
42	'DejaVu Sans',
43	'OpenSymbol',
44	'Chilanka',
45	'Cousine',
46	'Arimo',
47	'Jomolhari',
48	'MONO',
49	'Noto Color Emoji',
50	sans-serif !important
51`,C={},T={AUDIO:!1,CANVAS:!1,FONTS:!1,SCREEN:!1,TIME_ZONE:!1,WEBGL:!1},N=e=>{},R=()=>({stop:()=>{},start:()=>{}});function I(e,t,n){return e?(e.parentNode?.replaceChild(t,e),"function"!=typeof n||n()):null}function P(e){for(var t=arguments.length,n=Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];let o=document.createElement("template");return o.innerHTML=e.map((e,t)=>`${e}${n[t]||""}`).join(""),document.importNode(o.content,!0)}let L=(s=[],{getErrors:()=>s,captureError:function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";console.error(e);let{name:n,message:a}=e,o=/.+(\s).+/g.test(a)?t?`${a} [${t}]`:a:void 0;
51s.push({trustedName:{Error:!0,EvalError:!0,InternalError:!0,RangeError:!0,ReferenceError:!0,SyntaxError:!0,TypeError:!0,URIError:!0,InvalidStateError:!0,SecurityError:!0}[n]?n:void 0,trustedMessage:o})}}),{captureError:O}=L,B=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";try{return e()}catch(e){if(t)return O(e,t);return O(e)}},H=function(e){let t,n,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]&&arguments[3];try{t=e()}catch(e){return}let i=a.length,l=t;try{for(n=0;n<i;n++)l=l[a[n]]}catch(e){return}return r&&o.length?l.apply(t,o):r&&!o.length?l.apply(t):l};try{speechSynthesis.getVoices()}catch(e){}let F=(c={},{getRecords:()=>c,documentLie:(e,t)=>{let n=t instanceof Array;return c[e]?n?c[e]=[...c[e],...t]:c[e].push(t):n?c[e]=t:c[e]=[t]}}),{documentLie:G}=F,V=`
52	height: 100vh;
53	width: 100vw;
54	position: absolute;
55	left: 0;
56  top: -100vh;
57	visibility: hidden;
58`;function _(){return String.fromCharCode(26*Math.random()+97)+Math.random().toString(36).slice(-7)}_();let W="Reflect"in self;function z(e){let{spawnErr:t,withStack:n,final:a}=e;try{throw t(),Error()}catch(e){if("TypeError"!=e.constructor.name)return!0;return!!n&&n(e)}finally{a&&a()}}function j(e){return{[`function ${e}() { [native code] }`]:!0,[`function get ${e}() { [native code] }`]:!0,"function () { [native code] }":!0,[`function ${e}() {
59    [native code]
60}`]:!0,[`function get ${e}() {
61    [native code]
62}`]:!0,[`function () {
63    [native code]
64}`]:!0}}function U(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1;return 0===n?t.test(e.message):t.test(e.stack.split("\n")[n])}let X=/at Function\.toString /,$=/at Object\.toString/,q=/at (Function\.)?\[Symbol.hasInstance\]/,K=/at (Proxy\.)?\[Symbol.hasInstance\]/,Q=/strict mode/;function Y(e){let{scope:t,apiFunction:n,proto:a,obj:o,lieProps:r}=e;if("function"!=typeof n)return{lied:0,lieTypes:[]};let i=n.name.replace(/get\s/,""),l=o?.name,s=Object.getPrototypeOf(n),c={"failed illegal error":!!o&&z({spawnErr:()=>o.prototype[i]}),"failed undefined properties":!!o&&/^(screen|navigator)$/i.test(l)&&!!(Object.getOwnPropertyDescriptor(self[l.toLowerCase()],i)||W&&Reflect.getOwnPropertyDescriptor(self[l.toLowerCase()],i)),"failed call interface error":z({spawnErr:()=>{new n,n.call(a)}}),"failed apply interface error":z({spawnErr:()=>{new n,n.apply(a)}}),"failed new instance error":z({spawnErr:()=>new n}),"failed class extends error":!h&&z({spawnErr:()=>{}}),"failed null conversion error":z({spawnErr:()=>Object.setPrototypeOf(n,null).toString(),final:()=>Object.setPrototypeOf(n,s)}),"failed toString":!j(i)[t.Function.prototype.toString.call(n)]||!j("toString")[t.Function.prototype.toString.call(n.toString)],'failed "prototype" in function':"prototype"in n,"failed descriptor":!!(Object.getOwnPropertyDescriptor(n,"arguments")||Reflect.getOwnPropertyDescriptor(n,"arguments")||Object.getOwnPropertyDescriptor(n,"caller")||Reflect.getOwnPropertyDescriptor(n,"caller")||Object.getOwnPropertyDescriptor(n,"prototype")||Reflect.getOwnPropertyDescriptor(n,"prototype")||Object.getOwnPropertyDescriptor(n,"toString")||Reflect.getOwnPropertyDescriptor(n,"toString")),"failed own property":!!(n.hasOwnProperty("arguments")||n.hasOwnProperty("caller")||n.hasOwnProperty("prototype")||n.hasOwnProperty("toString")),"failed descriptor keys":"length,name"!=Object.keys(Object.getOwnPropertyDescriptors(n)).sort().toString(),"failed own property names":"length,name"!=Object.getOwnPropertyNames(n).sort().toString(),"failed own keys names":W&&"length,name"!=Reflect.ownKeys(n).sort().toString(),"failed object toString error":z({spawnErr:()=>Object.create(n).toString(),withStack:e=>g&&!U(e,X)})||z({spawnErr:()=>Object.create(new Proxy(n,{})).toString(),withStack:e=>g&&!U(e,$)}),"failed at incompatible proxy error":z({spawnErr:()=>{n.arguments,n.caller},withStack:e=>p&&!U(e,Q,0)}),"failed at toString incompatible proxy error":z({spawnErr:()=>{n.toString.arguments,n.toString.caller},withStack:e=>p&&!U(e,Q,0)}),"failed at too much recursion error":z({spawnErr:()=>{Object.setPrototypeOf(n,Object.create(n)).toString()},final:()=>Object.setPrototypeOf(n,s)})};if("toString"==i||r["Function.toString"]||r["Permissions.query"]){let e=new Proxy(n,{}),t=new Proxy(n,{}),a=new Proxy(n,{});c={...c,"failed at too much recursion __proto__ error":!z({spawnErr:()=>{n.__proto__=proxy,n++},final:()=>Object.setPrototypeOf(n,s)}),"failed at chain cycle error":!z({spawnErr:()=>{Object.setPrototypeOf(e,Object.create(e)).toString()},final:()=>Object.setPrototypeOf(e,s)}),"failed at chain cycle __proto__ error":!z({spawnErr:()=>{t.__proto__=t,t++},final:()=>Object.setPrototypeOf(t,s)}),"failed at reflect set proto":W&&z({spawnErr:()=>{throw Reflect.setPrototypeOf(n,Object.create(n)),TypeError()},final:()=>Object.setPrototypeOf(n,s)}),"failed at reflect set proto proxy":W&&!z({spawnErr:()=>{Reflect.setPrototypeOf(a,Object.create(a))},final:()=>Object.setPrototypeOf(a,s)}),"failed at instanceof check error":g&&(z({spawnErr:()=>{},withStack:e=>!U(e,q)})||z({spawnErr:()=>{new Proxy(n,{})},withStack:e=>!U(e,K)})),"failed at define properties":g&&W&&function(e){try{return e(),!1}catch(e){return!0}}(()=>{Object.defineProperty(n,"",{configurable:!0}).toString(),Reflect.deleteProperty(n,"")})}}let d=Object.keys(c).filter(e=>!!c[e]);return{lied:d.length,lieTypes:d}}let{iframeWindow:J,div:Z}=function(){if(m)return{iframeWindow:self};try{let e=self.length,t=new DocumentFragment,n=document.createElement("div"),a=_();n.setAttribute("id",a),t.appendChild(n),n.innerHTML=`<div style="${V}"><iframe></iframe></div>`,document.body.appendChild(t);let o=self[e];return{iframeWindow:function(e){try{if(!g)return e;let t=e.document.createElement("div");t.setAttribute("data-fingerprint-client",""),t.setAttribute("id",_()),t.setAttribute("style",V),t.innerHTML="<div><iframe></iframe></div>",e.document.body.appendChild(t);let n=[...[...t.childNodes][0].childNodes][0];if(!n)return null;let{contentWindow:a}=n||{};if(!a)return null;let o=a.document.createElement("div");return o.innerHTML="<div><iframe></iframe></div>",a.document.body.appendChild(o),[...[...o.childNodes][0].childNodes][0].contentWindow}catch(t){return O(t,"client blocked behemoth iframe"),e}}(o)||self,div:n}}catch(e){return O(e,"client blocked phantom iframe"),{iframeWindow:self}}}()||{}
64,ee=performance.now(),{lieDetector:et,lieList:en,lieDetail:ea,propsSearched:eo}=function(e){let t,n,a=(t={},n=[],{getProps:()=>t,getPropsSearched:()=>n,searchLies:(a,o)=>{let r,{target:i,ignore:l}=o||{};try{let e;if(e=r=a(),void 0===e||!e)return}catch(e){return}let s=r.prototype?r.prototype:r;[...new Set([...Object.getOwnPropertyNames(s),...Object.keys(s)])].sort().forEach(a=>{if("constructor"==a||i&&!new Set(i).has(a)||l&&new Set(l).has(a))return;let o=/\s(.+)\]/,s=`${r.name?r.name:o.test(r)?o.exec(r)?.[1]:void 0}.${a}`;n.push(s);try{let n,o=r.prototype?r.prototype:r;try{let r=o[a];if("function"==typeof r){if((n=Y({scope:e,apiFunction:o[a],proto:o,obj:null,lieProps:t})).lied)return G(s,n.lieTypes),t[s]=n.lieTypes;return}if("name"!=a&&"length"!=a&&a[0]!==a[0].toUpperCase()){let e=["failed descriptor.value undefined"];return G(s,e),t[s]=e}}catch(e){}let i=Object.getOwnPropertyDescriptor(o,a).get;if((n=Y({scope:e,apiFunction:i,proto:o,obj:r,lieProps:t})).lied)return G(s,n.lieTypes),t[s]=n.lieTypes;return}catch(n){let e="failed prototype test execution";return G(s,e),t[s]=[e]}})}}),{searchLies:o}=a;o(()=>Function,{target:["toString"],ignore:["caller","arguments"]}),o(()=>AnalyserNode),o(()=>AudioBuffer,{target:["copyFromChannel","getChannelData"]}),o(()=>BiquadFilterNode,{target:["getFrequencyResponse"]}),o(()=>CanvasRenderingContext2D,{target:["getImageData","getLineDash","isPointInPath","isPointInStroke","measureText","quadraticCurveTo","fillText","strokeText","font"]}),o(()=>CSSStyleDeclaration,{target:["setProperty"]}),o(()=>CSS2Properties,{target:["setProperty"]}),o(()=>Date,{target:["getDate","getDay","getFullYear","getHours","getMinutes","getMonth","getTime","getTimezoneOffset","setDate","setFullYear","setHours","setMilliseconds","setMonth","setSeconds","setTime","toDateString","toJSON","toLocaleDateString","toLocaleString","toLocaleTimeString","toString","toTimeString","valueOf"]}),o(()=>GPU,{target:["requestAdapter"]}),o(()=>GPUAdapter,{target:["requestAdapterInfo"]}),o(()=>Intl.DateTimeFormat,{target:["format","formatRange","formatToParts","resolvedOptions"]}),o(()=>Document,{target:["createElement","createElementNS","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","referrer","write","writeln"],ignore:["onreadystatechange","onmouseenter","onmouseleave"]}),o(()=>DOMRect),o(()=>DOMRectReadOnly),o(()=>Element,{target:["append","appendChild","getBoundingClientRect","getClientRects","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","prepend","replaceChild","replaceWith","setAttribute"]}),o(()=>FontFace,{target:["family","load","status"]}),o(()=>HTMLCanvasElement),o(()=>HTMLElement,{target:["clientHeight","clientWidth","offsetHeight","offsetWidth","scrollHeight","scrollWidth"],ignore:["onmouseenter","onmouseleave"]}),o(()=>HTMLIFrameElement,{target:["contentDocument","contentWindow"]}),o(()=>IntersectionObserverEntry,{target:["boundingClientRect","intersectionRect","rootBounds"]}),o(()=>Math,{target:["acos","acosh","asinh","atan","atan2","atanh","cbrt","cos","cosh","exp","expm1","log","log10","log1p","sin","sinh","sqrt","tan","tanh"]}
64),o(()=>MediaDevices,{target:["enumerateDevices","getDisplayMedia","getUserMedia"]}),o(()=>Navigator,{target:["appCodeName","appName","appVersion","buildID","connection","deviceMemory","getBattery","getGamepads","getVRDisplays","hardwareConcurrency","language","languages","maxTouchPoints","mimeTypes","oscpu","platform","plugins","product","productSub","sendBeacon","serviceWorker","storage","userAgent","vendor","vendorSub","webdriver","gpu"]}),o(()=>Node,{target:["appendChild","insertBefore","replaceChild"]}),o(()=>OffscreenCanvas,{target:["convertToBlob","getContext"]}),o(()=>OffscreenCanvasRenderingContext2D,{target:["getImageData","getLineDash","isPointInPath","isPointInStroke","measureText","quadraticCurveTo","font"]}),o(()=>Permissions,{target:["query"]}),o(()=>Range,{target:["getBoundingClientRect","getClientRects"]}),o(()=>Intl.RelativeTimeFormat,{target:["resolvedOptions"]}),o(()=>Screen),o(()=>speechSynthesis,{target:["getVoices"]}),o(()=>String,{target:["fromCodePoint"]}),o(()=>StorageManager,{target:["estimate"]}),o(()=>SVGRect),o(()=>SVGRectElement,{target:["getBBox"]}),o(()=>SVGTextContentElement,{target:["getExtentOfChar","getSubStringLength","getComputedTextLength"]}),o(()=>TextMetrics),o(()=>WebGLRenderingContext,{target:["bufferData","getParameter","readPixels"]}),o(()=>WebGL2RenderingContext,{target:["bufferData","getParameter","readPixels"]});let r=a.getProps(),i=a.getPropsSearched();
64return{lieDetector:a,lieList:Object.keys(r).sort(),lieDetail:r,lieCount:Object.keys(r).reduce((e,t)=>e+r[t].length,0),propsSearched:i}}(J);if(!m){let e;a=Object.keys(e=et.getProps()).reduce((t,n)=>{let a;return t[n]=(a=e[n])?a.filter(e=>!/object toString|toString incompatible proxy/.test(e)).length:a,t},{}),o=JSON.parse(JSON.stringify(ea)),(performance.now()-ee).toFixed(2)}let er=/[cC]f|[jJ][bcdfghlmprsty]|[qQ][bcdfghjklmnpsty]|[vV][bfhjkmpt]|[xX][dkrz]|[yY]y|[zZ][fr]|[cCxXzZ]j|[bBfFgGjJkKpPvVqQtTwWyYzZ]q|[cCfFgGjJpPqQwW]v|[jJqQvV]w|[bBcCdDfFgGhHjJkKmMpPqQsSvVwWxXzZ]x|[bBfFhHjJkKmMpPqQ]z/g,ei=function(e){let{strict:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!e)return[];let n=[];[/([A-Z]{3,}[a-z])/g,/([a-z][A-Z]{3,})/g,/([a-z][A-Z]{2,}[a-z])/g,/([a-z][\d]{2,}[a-z])/g,/([A-Z][\d]{2,}[a-z])/g,/([a-z][\d]{2,}[A-Z])/g].forEach(t=>{let a=e.match(t);if(a)return n.push(a.join(", "))});let a=[],o=e.replace(/\d|\W|_/g," ").replace(/\s+/g," ").trim().split(" ").join("_"),r=o.length,i=[...o];i.forEach((e,t)=>{let n=t+1,o=i[n];if("_"!==o&&"_"!==e&&n!==r){let t=e+o;er.test(t)&&a.push(t)}});let l=[...!t&&a.length<3?[]:a,...!t&&n.length<4?[]:n],s=["bz","cf","fx","mx","vb","xd","gx","PCIe","vm","NVIDIAGa"];return l.filter(e=>!s.includes(e))},el=(d=[],{getBin:()=>d,sendToTrash:function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return d.push({name:e,value:"function"==typeof t?"proxy behavior detected":t}),n}}),{sendToTrash:es}=el,ec={7:["Cambria Math","Lucida Console"],8:["Aldhabi","Gadugi","Myanmar Text","Nirmala UI"],"8.1":["Leelawadee UI","Javanese Text","Segoe UI Emoji"],10:["HoloLens MDL2 Assets","Segoe MDL2 Assets","Bahnschrift","Ink Free"],11:["Segoe Fluent Icons"]},ed={"10.9":["Helvetica Neue","Geneva"],"10.10":["Kohinoor Devanagari Medium","Luminari"],"10.11":["PingFang HK Light"],"10.
6412":["American Typewriter Semibold","Futura Bold","SignPainter-HouseScript Semibold"],"10.13-10.14":["InaiMathi Bold"],"10.15-11":["Galvji","MuktaMahee Regular"],12:["Noto Sans Gunjala Gondi Regular","Noto Sans Masaram Gondi Regular","Noto Serif Yezidi Regular"],13:["Apple SD Gothic Neo ExtraBold","STIX Two Math Regular","STIX Two Text Regular","Noto Sans Canadian Aboriginal Regular"]},em={"Microsoft Outlook":["MS Outlook"],"Adobe Acrobat":["ZWAdobeF"],LibreOffice:["Amiri","KACSTOffice","Liberation Mono","Source Code Pro"],OpenOffice:["DejaVu Sans","Gentium Book Basic","OpenSymbol"]},eu=[...Object.keys(ed).map(e=>ed[e]).flat(),...Object.keys(ec).map(e=>ec[e]).flat(),"Arimo","Chilanka","Cousine","Jomolhari","MONO","Noto Color Emoji","Ubuntu","Dancing Script","Droid Sans Mono","Roboto",...Object.keys(em).map(e=>em[e]).flat()].sort();async function eg(){let e=async e=>{try{let t=[];document.fonts.check(`0px "${_()}"`)||(t=e.reduce((e,t)=>(document.fonts.check(`0px "${t}"`)&&e.push(t),e),[]));let n=e.map(e=>new FontFace(e,`local("${e}")`)),a=(await Promise.allSettled(n.map(e=>e.load()))).reduce((e,t)=>("fulfilled"==t.status&&e.push(t.value.family),e),[]);return[...new Set([...t,...a])].sort()}catch(e){return console.error(e),[]}};try{let t=R();await D(t);let n=J&&J.document&&J.document.body?J.document:document,o="font-fingerprint",r=n.createElement("div");r.setAttribute("id",o),n.body.appendChild(r);let{emojiSet:i,pixelSizeSystemSum:l}=(e=>{let{doc:t,id:n,emojis:a}=e;try{I(t.getElementById(n),P`
65				<div id="pixel-emoji-container">
66				<style>
67					.pixel-emoji {
68						font-family: ${x};
69						font-size: 200px !important;
70						height: auto;
71						position: absolute !important;
72						transform: scale(1.000999);
73					}
74					</style>
75					${a.map(e=>`<div class="pixel-emoji">${e}</div>`).join("")}
76				</div>
77			`);let e=new Set,o=[...t.getElementsByClassName("pixel-emoji")].reduce((t,n,o)=>{let r=getComputedStyle(n),i=a[o],{height:l,width:s}={width:r.inlineSize,height:r.blockSize},c=`${s},${l}`;return e.has(c)||(e.add(c),t.add(i)),t},new Set),r=1e-5*[...e].map(e=>e.split(",").map(e=>+e.replace("px","")).reduce((e,t)=>e+=+t||0,0)).reduce((e,t)=>e+=t,0);return t.body.removeChild(t.getElementById("pixel-emoji-container")),{emojiSet:[...o],pixelSizeSystemSum:r}}catch(e){return console.error(e),{emojiSet:[],pixelSizeSystemSum:0}}})({doc:n,id:o,emojis:v})||{},s=await e(eu),c=(e=>{let{fonts:t,fontMap:n}=e,a={11:n["11"].find(e=>t.includes(e)),10:n["10"].find(e=>t.includes(e)),"8.1":n["8.1"].find(e=>t.includes(e)),8:n["8"].find(e=>t.includes(e)),7:n["7"].filter(e=>t.includes(e)).length==n["7"].length},o={"10,11,7,8,8.1":"11","10,7,8,8.1":"10","7,8,8.1":"8.1","11,7,8,8.1":"8.1","7,8":"8","10,7,8":"8","10,11,7,8":"8",7:"7","7,8.1":"7","10,7,8.1":"7","10,11,7,8.1":"7"}[""+Object.keys(a).sort().filter(e=>!!a[e])];return o?`Windows ${o}`:void 0})({fonts:s,fontMap:ec})||(e=>{let{fonts:t,fontMap:n}=e,a={13:n["13"].find(e=>t.includes(e)),12:n["12"].find(e=>t.includes(e)),"10.15-11":n["10.15-11"].find(e=>t.includes(e)),"10.13-10.14":n["10.13-10.14"].find(e=>t.includes(e)),"10.12":n["10.12"].find(e=>t.includes(e)),"10.11":n["10.11"].find(e=>t.includes(e)),"10.10":n["10.10"].find(e=>t.includes(e)),"10.9":n["10.9"].filter(e=>t.includes(e)).length==n["10.9"].length},o={"10.10,10.11,10.12,10.13-10.14,10.15-11,10.9,12,13":"Ventura","10.10,10.11,10.12,10.13-10.14,10.15-11,10.9,12":"Monterey","10.10,10.11,10.12,10.13-10.14,10.15-11,10.9":"10.15-11","10.10,10.11,10.12,10.13-10.14,10.9":"10.13-10.14","10.10,10.11,10.12,10.9":"Sierra","10.10,10.11,10.9":"El Capitan","10.10,10.9":"Yosemite","10.9":"Mavericks"}[""+Object.keys(a).sort().filter(e=>!!a[e])];return o?`macOS ${o}`:void 0})({fonts:s,fontMap:ed}),d=Object.keys(em).reduce((e,t)=>{let n=em[t];return n.filter(e=>s.includes(e)).length==n.length?[...e,t]:e},[]),m=a["FontFace.load"]||a["FontFace.family"]||a["FontFace.status"]||a["String.fromCodePoint"]||a["CSSStyleDeclaration.setProperty"]||a["CSS2Properties.setProperty"];return function(e,t){if(!e||!t||!t.length)return!1;let n=t.reduce((e,t)=>(e[t]=!0,e),{}),a="Helvetica Neue"in n||"Luminari"in n||"PingFang HK Light"in n||"InaiMathi Bold"in n||"Galvji"in n||"Chakra Petch"in n,o="Arimo"in n||"MONO"in n||"Ubuntu"in n||"Noto Color Emoji"in n||"Dancing Script"in n||"Droid Sans Mono"in n;return("Cambria Math"in n||"Nirmala UI"in n||"Leelawadee UI"in n||"HoloLens MDL2 Assets"in n||"Segoe Fluent Icons"in n)&&"Windows"!=e||!!a&&"Apple"!=e||!!o&&"Linux"!=e||!1}(A,s)&&(T.FONTS=!0,C.FontOsIsBad=!0,es("platform",`${A} system and fonts are uncommon`)),N({time:t.stop(),test:"fonts",passed:!0}),{fontFaceLoadFonts:s,platformVersion:c,apps:d,emojiSet:i,pixelSizeSystemSum:l,lied:m}}catch(e){N({test:"fonts",passed:!1}),O(e);return}}let ep=e=>{let t=`${JSON.stringify(e)}`;return("0000000"+(t.split("").reduce((e,n,a)=>Math.imul(31,e)+t.charCodeAt(a)|0,0x811c9dc5)>>>0).toString(16)).substr(-8)},eh=()=>String.fromCharCode(26*Math.random()+97)+Math.random().toString(36).slice(-7),eb=function(e){let t=arguments.length>
771&&void 0!==arguments[1]?arguments[1]:"SHA-256",n=`${JSON.stringify(e)}`,a=new TextEncoder().encode(n);return crypto.subtle.digest(t,a).then(e=>Array.from(new Uint8Array(e)).map(e=>("00"+e.toString(16)).slice(-2)).join(""))},ef=Math.random();async function eS(){let e=new OfflineAudioContext(1,100,44100),t=e.createOscillator();return t.frequency.value=0,t.start(0),e.startRendering(),new Promise(t=>{e.oncomplete=e=>{let n=e.renderedBuffer.getChannelData?.(0);n||t(!1),t(""+[...new Set(n)]!="0")}}).finally(()=>t.disconnect())}async function eE(){try{let e,t=R();await D(t);try{window.OfflineAudioContext=OfflineAudioContext||webkitOfflineAudioContext}catch(e){}if(!window.OfflineAudioContext)return void N({test:"audio",passed:!1});let n=a["AudioBuffer.getChannelData"],o=a["AudioBuffer.copyFromChannel"],r=n||o||!1,i=new OfflineAudioContext(1,5e3,44100),l=i.createAnalyser(),s=i.createOscillator(),c=i.createDynamicsCompressor(),d=i.createBiquadFilter(),m=new Float32Array(l.frequencyBinCount);l.getFloatFrequencyData?.(m);let u=new Set(m).size;if(u>1){r=!0;let e=`expected -Infinity (silence) and got ${u} frequencies`;G("AnalyserNode.getFloatFrequencyData",e)}let g={"AnalyserNode.channelCount":B(()=>l.channelCount),"AnalyserNode.channelCountMode":B(()=>l.channelCountMode),"AnalyserNode.channelInterpretation":B(()=>l.channelInterpretation),"AnalyserNode.context.sampleRate":B(()=>l.context.sampleRate),"AnalyserNode.fftSize":B(()=>l.fftSize),"AnalyserNode.frequencyBinCount":B(()=>l.frequencyBinCount),"AnalyserNode.maxDecibels":B(()=>l.maxDecibels),"AnalyserNode.minDecibels":B(()=>l.minDecibels),"AnalyserNode.numberOfInputs":B(()=>l.numberOfInputs),"AnalyserNode.numberOfOutputs":B(()=>l.numberOfOutputs),"AnalyserNode.smoothingTimeConstant":B(()=>l.smoothingTimeConstant),"AnalyserNode.context.listener.forwardX.maxValue":B(()=>H(()=>l.context.listener.forwardX.maxValue)),"BiquadFilterNode.gain.maxValue":B(()=>d.gain.maxValue),"BiquadFilterNode.frequency.defaultValue":B(()=>d.frequency.defaultValue),"BiquadFilterNode.frequency.maxValue":B(()=>d.frequency.maxValue),"DynamicsCompressorNode.attack.defaultValue":B(()=>c.attack.defaultValue),"DynamicsCompressorNode.knee.defaultValue":B(()=>c.knee.defaultValue),"DynamicsCompressorNode.knee.maxValue":B(()=>c.knee.maxValue),"DynamicsCompressorNode.ratio.defaultValue":B(()=>c.ratio.defaultValue),"DynamicsCompressorNode.ratio.maxValue":B(()=>c.ratio.maxValue),"DynamicsCompressorNode.release.defaultValue":B(()=>c.release.defaultValue),"DynamicsCompressorNode.release.maxValue":B(()=>c.release.maxValue),"DynamicsCompressorNode.threshold.defaultValue":B(()=>c.threshold.defaultValue),"DynamicsCompressorNode.threshold.minValue":B(()=>c.threshold.minValue),"OscillatorNode.detune.maxValue":B(()=>s.detune.maxValue),"OscillatorNode.detune.minValue":B(()=>s.detune.minValue),"OscillatorNode.frequency.defaultValue":B(()=>s.frequency.defaultValue),"OscillatorNode.frequency.maxValue":B(()=>s.frequency.maxValue),"OscillatorNode.frequency.minValue":B(()=>s.frequency.minValue)};await D(t);let[p,h]=await Promise.all([(e=new OfflineAudioContext(1,5e3,44100),new Promise(t=>{let n=e.createAnalyser(),a=e.createOscillator(),o=e.createDynamicsCompressor();try{a.type="triangle",a.frequency.value=1e4,o.threshold.value=-50,o.knee.value=40,o.attack.value=0}catch(e){}return a.connect(o),o.connect(n),o.connect(e.destination),a.start(0),e.startRendering(),e.addEventListener("complete",e=>{try{o.disconnect(),a.disconnect();let r=new Float32Array(n.frequencyBinCount);n.getFloatFrequencyData?.(r);let i=new Float32Array(n.fftSize);return"getFloatTimeDomainData"in n&&n.getFloatTimeDomainData(i),t({floatFrequencyData:r,floatTimeDomainData:i,buffer:e.renderedBuffer,compressorGainReduction:o.reduction.value||o.reduction})}catch(e){return t(null)}})})),eS().catch(()=>!1)]),{floatFrequencyData:b,floatTimeDomainData:f,buffer:S,compressorGainReduction:E}=p||{};await D(t);let y=(e,t,n)=>{let a=[];for(let o=t;o<n;o++)a.push(e[o]);return a},k=e=>e?[...e].reduce((e,t)=>e+=Math.abs(t),0):0,A=k(b),w=k(f),M=new Float32Array(5e3),v=new Float32Array;S&&(S.copyFromChannel?.(M,0),v=S.getChannelData?.(0)||[]);let x=y([...M],4500,4600),C=y([...v],4500,4600),I=k(y([...v],4500,5e3));h&&(r=!0,G("AudioBuffer","audio is fake"));let P="copyFromChannel"in AudioBuffer.prototype;P&&""+C!=""+x&&(r=!0,G("AudioBuffer","getChannelData and copyFromChannel samples mismatch"));let L=new Set([...v]).size;if(5e3==L){let e=`${L} unique samples of 5000 is too high`;es("AudioBuffer",e)}let O=(()=>{try{var e,t;
77let n,a=[...new Set([...((e,t,n)=>{let a,{length:o}=t,r=(a=o-21,Math.floor(Math.random()*(a-275+1))+275),i=r+10,l=r+20;t.getChannelData(0)[r]=e,t.getChannelData(0)[i]=e,t.getChannelData(0)[l]=e,t.copyFromChannel(n,0);let s=[0===t.getChannelData(0)[r]?Math.random():0,0===t.getChannelData(0)[i]?Math.random():0,0===t.getChannelData(0)[l]?Math.random():0];return[...new Set([...t.getChannelData(0),...n,...s])].filter(e=>0!==e)})(ef,new AudioBuffer({length:2e3,sampleRate:44100}),new Float32Array(2e3)),...(e=new AudioBuffer({length:2e3,sampleRate:44100}),t=new Float32Array(2e3),e.copyToChannel(t.map(()=>ef),0),n=e.getChannelData(0)[0],[...e.getChannelData(0)].map(e=>e===n&&e?e:Math.random()).filter(e=>e!==n))])];return+(1!==a.length&&a.reduce((e,t)=>e+=+t,0))}catch(e){return console.error(e),0}})()||[...new Set(v.slice(0,100))].reduce((e,t)=>e+=t,0);O&&(r=!0,G("AudioBuffer","sample noise detected"));let F={"-20.538286209106445,164537.64796829224,502.5999283068122":[124.04347527516074],"-20.538288116455078,164537.64796829224,502.5999283068122":[124.04347527516074],"-20.538288116455078,164537.64795303345,502.5999283068122":[124.04347527516074,124.04347518575378,124.04347519320436,124.04347523045726],"-20.538286209106445,164537.64805984497,502.5999283068122":[124.04347527516074],"-20.538288116455078,164537.64805984497,502.5999283068122":[124.04347527516074,124.04347518575378,124.04347520065494,124.04347523790784,124.043475252809,124.04347526025958,124.04347522300668,124.04347523045726,124.04347524535842],"-20.538288116455078,164881.9727935791,502.59990317908887":[124.04344884395687],"-20.538288116455078,164881.9729309082,502.59990317908887":[124.04344884395687],"-20.538286209106445,164882.2082748413,502.59990317911434":[124.0434488439787],"-20.538288116455078,164882.20836639404,502.59990317911434":[124.0434488439787],"-20.538286209106445,164863.45319366455,502.5999033495791":[124.04344968475198],"-20.538288116455078,164863.45319366455,502.5999033495791":[124.04344968475198,124.04375314689969,124.04341541208123],"-20.538288116455078,164531.82670593262,502.59992767886797":[124.04347503720783,124.04347494780086,124.04347495525144,124.04347499250434,124.0434750074055],"-20.538286209106445,164540.1567993164,502.59992209258417":[124.04347657808103],"-20.538288116455078,164540.1567993164,502.59992209258417":[124.04347657808103,124.0434765110258,124.04347656317987,124.04347657063045,124.04378004022874],"-20.538288116455078,164540.1580810547,502.59992209258417":[124.04347657808103],"-20.535268783569336,164940.360786438,502.69695458233764":[124.080722568091],"-20.538288116455078,164538.55073928833,502.5999307175407":[124.04347730590962],"-20.535268783569336,164948.14596557617,502.6969545823631":[124.08072256811283],"-20.535268783569336,164926.65912628174,502.6969610930064":[124.08072766105033],"-20.535268783569336,164932.96168518066,502.69696179985476":[124.08072787802666],"-20.535268783569336,164931.54252624512,502.6969617998802":[124.08072787804849],"-20.535268783569336,164591.9659729004,502.6969925059784":[124.08074500028306],"-20.535268783569336,164590.4111480713,502.6969947774742":[124.0807470110085],"-20.535268783569336,164590.41115570068,502.6969947774742":[124.0807470110085],"-20.535268783569336,164593.64263916016,502.69700490119067":[124.08075528279005],"-20.535268783569336,164595.0285797119,502.69700578315314":[124.08075643483608],"-20.538288116455078,164860.96576690674,502.6075748118915":[124.0434496279413],"-20.538288116455078,164860.9938583374,502.6073723861407":[124.04344962817413],"-20.538288116455078,164862.14078521729,502.59991004130643":[124.04345734833623],"-20.538288116455078,164534.50047683716,502.61542110471055":[124.04347520368174],"-20.538288116455078,164535.1324043274,502.6079200572931":[124.04347521997988],"-20.538288116455078,164535.51135635376,502.60633126448374":[124.04347522952594],"-31.509262084960938,167722.6894454956,148.42717787250876":[35.7383295930922],"-31.509262084960938,167728.72756958008,148.427184343338":[35.73833402246237],"-31.50218963623047,167721.27517700195,148.47537828609347":[35.74996031448245],"-31.502185821533203,167727.52931976318,148.47542023658752":[35.7499681673944],"-31.502185821533203,167700.7530517578,148.475412953645":[35.749968223273754],"-31.502187728881836,167697.23177337646,148.47
77541113197803":[35.74996626004577],"-20.538288116455078,164873.80361557007,502.59989904452596":[124.0434485301812],"-20.538288116455078,164863.47760391235,502.5999033453372":[124.0434496849557],"-20.538288116455078,164876.62466049194,502.5998911961724":[124.043453265891],"-20.538288116455078,164862.14879989624,502.59991004130643":[124.04345734833623],"-20.538288116455078,164896.54167175293,502.5999054916465":[124.04345808873768],"-29.837873458862305,163206.43050384521,0":[35.10892717540264],"-29.837873458862305,163224.69785308838,0":[35.10892752557993],"-29.83786964416504,163209.17245483398,0":[35.10893232002854],"-29.83786964416504,163202.77336883545,0":[35.10893253237009]}[""+[E,A,w]];return F&&!F.includes(I)&&(T.AUDIO=!0,es("AudioBuffer","suspicious frequency data")),N({time:t.stop(),test:"audio",passed:!0}),{totalUniqueSamples:L,compressorGainReduction:E,floatFrequencyDataSum:A,floatTimeDomainDataSum:w,sampleSum:I,binsSample:C,copySample:P?x:[void 0],values:g,noise:O,lied:r}}catch(e){N({test:"audio",passed:!1}),O(e,"OfflineAudioContext failed or blocked by client");return}}let ey=e=>{let{canvas:t,context:n,strokeText:a=!1,cssFontFamily:o="",area:r={width:50,height:50},rounds:i=10,maxShadowBlur:l=50,seed:s=500,offset:c=0x7744d641,multiplier:d=15e3}=e;if(!n)return;n.clearRect(0,0,t.width,t.height),t.width=r.width,t.height=r.height,t.style&&(t.style.display="none");let{getNextSeed:m}=(e=>{let{seed:t,offset:n,multiplier:a}=e,o=Number(t)%Number(n);return{getNextSeed:()=>o=Number(a)*o%Number(n)}})({seed:s,offset:c,multiplier:d}),u=function(e,t,n){let a=arguments.length>3&&void 0!==arguments[3]&&arguments[3],o=(e-1)/t*(n||1)||0;return a?o:Math.floor(o)},g=["#FF6633","#FFB399","#FF33FF","#FFFF99","#00B3E6","#E6B333","#3366E6","#999966","#99FF99","#B34D4D","#80B300","#809900","#E6B3B3","#6680B3","#66991A","#FF99E6","#CCFF1A","#FF1A66","#E6331A","#33FFCC","#66994D","#B366CC","#4D8000","#B33300","#CC80CC","#66664D","#991AFF","#E666FF","#4DB3FF","#1AB399","#E666B3","#33991A","#CC9999","#B3B31A","#00E680","#4D8066","#809980","#E6FF80","#1AFF33","#999933","#FF3380","#CCCC00","#66E64D","#4D80CC","#9900B3","#E64D66","#4DB380","#FF4D4D","#99E6E6","#6666FF"],p=[(e,t,n,a)=>{let{width:o,height:r}=n;e.beginPath(),e.arc(u(a(),t,o),u(a(),t,r),u(a(),t,Math.min(o,r)),u(a(),t,2*Math.PI,!0),u(a(),t,2*Math.PI,!0)),e.stroke()},(e,t,n,a)=>{let{width:o,height:r}=n;e.beginPath(),e.moveTo(u(a(),t,o),u(a(),t,r)),e.bezierCurveTo(u(a(),t,o),u(a(),t,r),u(a(),t,o),u(a(),t,r),u(a(),t,o),u(a(),t,r)),e.stroke()},(e,t,n,a)=>{let{width:o,height:r}=n;e.beginPath(),e.moveTo(u(a(),t,o),u(a(),t,r)),e.quadraticCurveTo(u(a(),t,o),u(a(),t,r),u(a(),t,o),u(a(),t,r)),e.stroke()}];h||p.push((e,t,n,a)=>{if(!("ellipse"in e))return;let{width:o,height:r}=n;e.beginPath(),e.ellipse(u(a(),t,o),u(a(),t,r),u(a(),t,Math.floor(o/2)),u(a(),t,Math.floor(r/2)),u(a(),t,2*Math.PI,!0),u(a(),t,2*Math.PI,!0),u(a(),t,2*Math.PI,!0)),e.stroke()}),a&&p.push((e,t,n,a)=>{let{width:r,height:i}=n;e.font=`${i/2.99}px ${o.replace(/!important/gm,"")}`,e.strokeText("\uD83D\uDC7EA",u(a(),t,r),u(a(),t,i),u(a(),t,r))}),[...Array(i)].forEach(e=>{((e,t,n,a,o)=>{let{width:r,height:i}=n,l=e.createRadialGradient(u(o(),t,r),u(o(),t,i),u(o(),t,r),u(o(),t,r),u(o(),t,i),u(o(),t,r));l.addColorStop(0,a[u(o(),t,a.length)]),l.addColorStop(1,a[u(o(),t,a.length)]),e.fillStyle=l})(n,c,r,g,m),n.shadowBlur=u(m(),c,l,!0),n.shadowColor=g[u(m(),c,g.length)],(0,p[u(m(),c,p.length)])(n,c,r,m),n.fill()})};async function ek(){try{let e=R();await D(e);let t=a["HTMLCanvasElement.toDataURL"],n=a["HTMLCanvasElement.getContext"],o=a["CanvasRenderingContext2D.fillText"]||a["CanvasRenderingContext2D.font"]||a["CanvasRenderingContext2D.getImageData"]||a["CanvasRenderingContext2D.strokeText"],r=a["String.fromCodePoint"],i=!!(a["CanvasRenderingContext2D.measureText"]||a["TextMetrics.actualBoundingBoxAscent"]||a["TextMetrics.actualBoundingBoxDescent"]||a["TextMetrics.actualBoundingBoxLeft"]||a["TextMetrics.actualBoundingBoxRight"]||a["TextMetrics.fontBoundingBoxAscent"]||a["TextMetrics.fontBoundingBoxDescent"]||a["TextMetrics.width"]),l=t||n||o||i||r||!1,s=window;!b&&J&&(s=J);let c=s.document,d=c.createElement("canvas"),m=d.getContext("2d"),u=c.createElement("canvas"),f=u.getContext("2d",{desynchronized:!0,willReadFrequently:!0});if(!m)throw Error("canvas context blocked");await D(e);let S=h?50:75;ey({canvas:d,context:m,strokeText:!0,cssFontFamily:x,area:{width:S,height:S},rounds:10});let E=d.toDataURL();await D(e);let y=(()=>{let e=[],t=[];try{let n={willReadFrequently:!0,desynchronized:!0},a=document.createElement("canvas"),o=document.createElement("canvas"),r=document.createElement("canvas"),i=document.createElement("canvas"),l=a.getContext("2d",n),s=o.getContext("2d",n),c=r.getContext("2d",n),d=i.getContext("2d",n);if(!l||!s||!c||!d)throw Error("canvas context blocked");a.width=40,a.height=40,o.width=40,o.height=40,r.width=8,r.height=8,i.width=8,i.height=8,[...Array(8)].forEac
77h((t,n)=>[...Array(8)].forEach((t,a)=>{let o=~~(256*Math.random()),r=~~(256*Math.random()),i=~~(256*Math.random()),s=`${o}, ${r}, ${i}, 255`;return c.fillStyle=`rgba(${s})`,c.fillRect(n,a,1,1),l.fillStyle=`rgba(${s})`,l.fillRect(5*n,5*a,5,5),e.push(s)})),[...Array(8)].forEach((e,n)=>[...Array(8)].forEach((e,a)=>{let{data:[o,r,i,l]}=c.getImageData(n,a,1,1)||{},m=`${o}, ${r}, ${i}, ${l}`;d.fillStyle=`rgba(${m})`,d.fillRect(n,a,1,1);let{data:[u,g,p,h]}=d.getImageData(n,a,1,1)||{},b=`
78				${o!=u?u:255},
79				${r!=g?g:255},
80				${i!=p?p:255},
81				${l!=h?h:1}
82			`;return s.fillStyle=`rgba(${b})`,s.fillRect(5*n,5*a,5,5),t.push(m)}));let m=[],u=new Set;[...Array(e.length)].forEach((n,a)=>{let o=e[a],r=t[a];if(o!=r){let e=o.split(","),t=r.split(","),n=[e[0]!=t[0]?"r":"",e[1]!=t[1]?"g":"",e[2]!=t[2]?"b":"",e[3]!=t[3]?"a":""].join("");u.add(n),m.push([a,n])}}),a.toDataURL();let g=o.toDataURL(),p=u.size?[...u].sort().join(", "):void 0,h=m.length||void 0;return{rgba:p,pixels:h,pixelImage:g}}catch(e){return console.error(e)}})();await D(e),m.font=`10px ${x.replace(/!important/gm,"")}`;let k=new Set,A=v.reduce((e,t)=>{let{actualBoundingBoxAscent:n,actualBoundingBoxDescent:a,actualBoundingBoxLeft:o,actualBoundingBoxRight:r,fontBoundingBoxAscent:i,fontBoundingBoxDescent:l,width:s}=m.measureText(t)||{},c=[n,a,o,r,i,l,s].join(",");return k.has(c)||(k.add(c),e.add(t)),e},new Set),w=1e-5*[...k].map(e=>e.split(",").reduce((e,t)=>e+=+t||0,0)).reduce((e,t)=>e+=t,0);await D(e),ey({canvas:d,context:m,area:{width:75,height:75}});let M=d.toDataURL();await D(e),ey({canvas:u,context:f,area:{width:75,height:75}});let I=u.toDataURL();m.restore(),m.clearRect(0,0,d.width,d.height),d.width=50,d.height=50,m.font=`50px ${x.replace(/!important/gm,"")}`,m.fillText("A",7,37);let P=d.toDataURL();m.restore(),m.clearRect(0,0,d.width,d.height),d.width=50,d.height=50,m.font=`35px ${x.replace(/!important/gm,"")}`,m.fillText("\uD83D\uDC7E",0,37);let L=d.toDataURL();m.clearRect(0,0,d.width,d.height),(y&&y.pixels||Math.max(...m.getImageData(0,0,8,8).data))&&(l=!0,G("CanvasRenderingContext2D.getImageData","pixel data modified")),d.width=2,d.height=2,m.fillStyle="#000",m.fillRect(0,0,d.width,d.height),m.fillStyle="#fff",m.fillRect(2,2,1,1),m.beginPath(),m.arc(0,0,2,0,1,!0),m.closePath(),m.fill();let O=m.getImageData(0,0,2,2).data.join("");return C.imageDataLowEntropy=O,g&&!["255255255255178178178255246246246255555555255","255255255255192192192255240240240255484848255","255255255255177177177255246246246255535353255","255255255255128128128255191191191255646464255","255255255255178178178255247247247255565656255","255255255255174174174255242242242255474747255","255255255255229229229255127127127255686868255","255255255255192192192255244244244255535353255"].includes(O)||p&&!["255255255255191191191255207207207255646464255","255255255255192192192255240240240255484848255","255255255255191191191255239239239255646464255","255255255255191191191255223223223255606060255","255255255255171171171255223223223255606060255","255255255255188188188255245245245255525252255"].includes(O)?T.CANVAS=!0:h&&!["255255255255185185185255233233233255474747255","255255255255185185185255229229229255474747255","255255255255185185185255218218218255474747255","255255255255192192192255240240240255484848255","255255255255178178178255247247247255565656255","255255255255178178178255247247247255565656255","255255255255192192192255240240240255484848255","255255255255186186186255218218218255464646255"].includes(O)&&(T.CANVAS=!0),T.CANVAS&&es("CanvasRenderingContext2D.getImageData","suspicious pixel data"),await D(e),(e=>{let{actualBoundingBoxAscent:t,actualBoundingBoxDescent:n,actualBoundingBoxLeft:a,actualBoundingBoxRight:o,fontBoundingBoxAscent:r,fontBoundingBoxDescent:i}=e.measureText("")||{};return[t,n,a,o,r,i].find(e=>(e||0)%1!=0)})(m)&&(i=!0,l=!0,G("CanvasRenderingContext2D.measureText","metric noise detected")),N({time:e.stop(),test:"canvas 2d",passed:!0}),{dataURI:E,paintURI:M,paintCpuURI:I,textURI:P,emojiURI:L,mods:y,textMetricsSystemSum:w,liedTextMetrics:i,emojiSet:[...A],lied:l}}catch(e){N({test:"canvas 2d",passed:!1}),O(e);return}}async function eA(){try{let e=R();await D(e);let t=e=>({bottom:e.bottom,height:e.height,left:e.left,right:e.right,width:e.width,top:e.top,x:e.x,y:e.y}),n=a["Element.getClientRects"]||a["Element.getBoundingClientRect"]||a["Range.getClientRects"]||a["Range.getBoundingClientRect"]||a["String.fromCodePoint"]||!1,o=J&&J.document&&J.document.body?J.document:document,r=`${eh()}-client-rects-div`,i=document.createElement("div");i.setAttribute("id",r),o.body.appendChild(i),I(i,P`
83		<div id="${r}">
84			<style>
85			.rect-ghost,
86			.rect-known {
87				top: 0;
88				left: 0;
89				position: absolute;
90				visibility: hidden;
91			}
92			.rect-known {
93				width: 100px;
94				height: 100px;
95				transform: rotate(45deg);
96			}
97			.rect-ghost {
98				width: 0;
99				height: 0;
100			}
101			</style>
102			<div class="rect-known"></div>
103			<div class="rect-ghost"></div>
104			<div style="perspective:100px;width:1000.099%;" id="rect-container">
105				<style>
106				.rects {
107					width: 1000%;
108					height: 1000%;
109					max-width: 1000%;
110				}
111				.absolute {
112					position: absolute;
113				}
114				#cRect1 {
115					border: solid 2.715px;
116					border-color: #F72585;
117					padding: 3.98px;
118					margin-left: 12.12px;
119				}
120				#cRect2 {
121					border: solid 2px;
122					border-color: #7209B7;
123					font-size: 30px;
124					margin-top: 20px;
125					padding: 3.98px;
126					transform: skewY(23.1753218deg) rotate3d(10.00099, 90, 0.100000000000009, 60000000000008.00000009deg);
127				}
128				#cRect3 {
129					border: solid 2.89px;
130					border-color: #3A0CA3;
131					font-size: 45px;
132					transform: skewY(-23.1753218deg) scale(1099.0000000099, 1.89) matrix(1.11, 2.0001, -1.0001, 1.009, 150, 94.4);
133					margin-top: 50px;
134				}
135				#cRect4 {
136					border: solid 2px;
137					border-color: #4361EE;
138					transform: matrix(1.11, 2.0001, -1.0001, 1.009, 150, 94.4);
139					margin-top: 11.1331px;
140					margin-left: 12.1212px;
141					padding: 4.4545px;
142					left: 239.4141px;
143					top: 8.5050px;
144				}
145				#cRect5 {
146					border: solid 2px;
147					border-color: #4CC9F0;
148					margin-left: 42.395pt;
149				}
150				#cRect6 {
151					border: solid 2px;
152					border-color: #F72585;
153					transform: perspective(12890px) translateZ(101.5px);
154					padding: 12px;
155				}
156				#cRect7 {
157					margin-top: -350.552px;
158					margin-left: 0.9099rem;
159					border: solid 2px;
160					border-color: #4361EE;
161				}
162				#cRect8 {
163					margin-top: -150.552px;
164					margin-left: 15.9099rem;
165					border: solid 2px;
166					border-color: #3A0CA3;
167				}
168				#cRect9 {
169					margin-top: -110.552px;
170					margin-left: 15.9099rem;
171					border: solid 2px;
172					border-color: #7209B7;
173				}
174				#cRect10 {
175					margin-top: -315.552px;
176					margin-left: 15.9099rem;
177					border: solid 2px;
178					border-color: #F72585;
179				}
180				#cRect11 {
181					width: 10px;
182					height: 10px;
183					margin-left: 15.0000009099rem;
184					border: solid 2px;
185					border-color: #F72585;
186				}
187				#cRect12 {
188					width: 10px;
189					height: 10px;
190					margin-left: 15.0000009099rem;
191					border: solid 2px;
192					border-color: #F72585;
193				}
194				#rect-container .shift-dom-rect {
195					top: 1px !important;
196					left: 1px !important;
197				}
198				</style>
199				<div id="cRect1" class="rects"></div>
200				<div id="cRect2" class="rects"></div>
201				<div id="cRect3" class="rects"></div>
202				<div id="cRect4" class="rects absolute"></div>
203				<div id="cRect5" class="rects"></div>
204				<div id="cRect6" class="rects"></div>
205				<div id="cRect7" class="rects absolute"></div>
206				<div id="cRect8" class="rects absolute"></div>
207				<div id="cRect9" class="rects absolute"></div>
208				<div id="cRect10" class="rects absolute"></div>
209				<div id="cRect11" class="rects"></div>
210				<div id="cRect12" class="rects"></div>
211				<div id="emoji" class="emojis"></div>
212			</div>
213			<div id="emoji-container">
214				<style>
215				.domrect-emoji {
216					font-family: ${x};
217					font-size: 200px !important;
218					height: auto;
219					position: absolute !important;
220					transform: scale(1.000999);
221				}
222				</style>
223				${v.map(e=>`<div class="domrect-emoji">${e}</div>`).join("")}
224			</div>
225		</div>
226		`);let l=new Set;await D(e);let s=o.getElementById(r),c=[...s.getElementsByClassName("domrect-emoji")].reduce((e,t,n)=>{var r;let i,s=v[n],{height:c,width:d}=(r=t,a["Element.getClientRects"]?a["Element.getBoundingClientRect"]?a["Range.getClientRects"]?((i=o.createRange()).selectNode(r),i.getBoundingClientRect()):((i=o.createRange()).selectNode(r),i.getClientRects()[0]):r.getBoundingClientRect():r.getClientRects()[0]),m=`${d},${c}`;return l.has(m)||(l.add(m),e.add(s)),e},new Set),d=1e-5*[...l].map(e=>e.split(",").reduce((e,t)=>e+=+t||0,0)).reduce((e,t)=>e+=t,0),m=document.createRange(),u=s.getElementsByClassName("rects"),h=[...u].map(e=>t(e.getClientRects()[0])),b=[...u].map(e=>t(e.getBoundingClientRect())),f=[...u].map(e=>(m.selectNode(e),t(m.getClientRects()[0]))),S=[...u].map(e=>(m.selectNode(e),t(e.getBoundingClientRect()))),E=[...u][3],{top:y}=h[3];E.classList.add("shift-dom-rect");let{top:k}=t(E.getClientRects()[0]);E.classList.remove("shift-dom-rect");let{top:A}=t(E.getClientRects()[0]);y-k!=A-k&&(n=!0,G("Element.getClientRects","failed unshift calculation"));let w=!1;h.forEach(e=>{let{right:t,left:a,width:o,bottom:r,top:i,height:l,x:s,y:c}=e;(t-a!=o||r-i!=l||t-s!=o||r-c!=l)&&(n=!0,w=!0)}),w&&G("Element.getClientRects","failed math calculation");let{right:M,left:C}=h[10],{right:T,left:L}=h[11];(M!=T||C!=L)&&(G("Element.getClientRects","equal elements mismatch"),n=!0);let O=[...s.getElementsByClassName("rect-known")][0],B=t(O.getClientRects()[0]),H=ep(B);g?({"9d9215cc":!0,"47ded322":!0,d0eceaa8:!0})[H]||(G("Element.getClientRects","unknown rotate dimensions"),n=!0):p&&(({e38453f0:!0})[H]||(G("Element.getClientRects","unknown rotate dimensions"),n=!0));let F=[...s.getElementsByClassName("rect-ghost")][0],V=t(F.getClientRects()[0]);return Object.keys(V).some(e=>0!==V[e])&&(G("Element.getClientRects","unknown ghost dimensions"),n=!0),o.body.removeChild(s),N({time:e.stop(),test:"rects",passed:!0}),{elementClientRects:h,elementBoundingClientRect:b,rangeClientRects:f,rangeBoundingClientRect:S,emojiSet:[...c],domrectSystemSum:d,lied:n}}catch(e){N({test:"rects",passed:!1}),O(e);return}}let ew=g?"Chrome":p?"Firefox":"",eM=e=>e.sort((e,t)=>
226/\d+/.exec(e)[0]-/\d+/.exec(t)[0]).reverse(),eD=function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,{version:a}={Chrome:{version:115,windowKeys:"Object, Function, Array, Number, parseFloat, parseInt, Infinity, NaN, undefined, Boolean, String, Symbol, Date, Promise, RegExp, Error, AggregateError, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, globalThis, JSON, Math, Intl, ArrayBuffer, Atomics, Uint8Array, Int8Array, Uint16Array, Int16Array, Uint32Array, Int32Array, Float32Array, Float64Array, Uint8ClampedArray, BigUint64Array, BigInt64Array, DataView, Map, BigInt, Set, WeakMap, WeakSet, Proxy, Reflect, FinalizationRegistry, WeakRef, decodeURI, decodeURIComponent, encodeURI, encodeURIComponent, escape, unescape, eval, isFinite, isNaN, console, Option, Image, Audio, webkitURL, webkitRTCPeerConnection, webkitMediaStream, WebKitMutationObserver, WebKitCSSMatrix, XSLTProcessor, XPathResult, XPathExpression, XPathEvaluator, XMLSerializer, XMLHttpRequestUpload, XMLHttpRequestEventTarget, XMLHttpRequest, XMLDocument, WritableStreamDefaultWriter, WritableStreamDefaultController, WritableStream, Worker, Window, WheelEvent, WebSocket, WebGLVertexArrayObject, WebGLUniformLocation, WebGLTransformFeedback, WebGLTexture, WebGLSync, WebGLShaderPrecisionFormat, WebGLShader, WebGLSampler, WebGLRenderingContext, WebGLRenderbuffer, WebGLQuery, WebGLProgram, WebGLFramebuffer, WebGLContextEvent, WebGLBuffer, WebGLActiveInfo, WebGL2RenderingContext, WaveShaperNode, VisualViewport, VirtualKeyboardGeometryChangeEvent, ValidityState, VTTCue, UserActivation, URLSearchParams, URLPattern, URL, UIEvent, TrustedTypePolicyFactory, TrustedTypePolicy, TrustedScriptURL, TrustedScript, TrustedHTML, TreeWalker, TransitionEvent, TransformStreamDefaultController, TransformStream, TrackEvent, TouchList, TouchEvent, Touch, TimeRanges, TextTrackList, TextTrackCueList, TextTrackCue, TextTrack, TextMetrics, TextEvent, TextEncoderStream, TextEncoder, TextDecoderStream, TextDecoder, Text, TaskSignal, TaskPriorityChangeEvent, TaskController, TaskAttributionTiming, SyncManager, SubmitEvent, StyleSheetList, StyleSheet, StylePropertyMapReadOnly, StylePropertyMap, StorageEvent, Storage, StereoPannerNode, StaticRange, SourceBufferList, SourceBuffer, ShadowRoot, Selection, SecurityPolicyViolationEvent, ScriptProcessorNode, ScreenOrientation, Screen, Scheduling, Scheduler, SVGViewElement, SVGUseElement, SVGUnitTypes, SVGTransformList, SVGTransform, SVGTitleElement, SVGTextPositioningElement, SVGTextPathElement, SVGTextElement, SVGTextContentElement, SVGTSpanElement, SVGSymbolElement, SVGSwitchElement, SVGStyleElement, SVGStringList, SVGStopElement, SVGSetElement, SVGScriptElement, SVGSVGElement, SVGRectElement, SVGRect, SVGRadialGradientElement, SVGPreserveAspectRatio, SVGPolylineElement, SVGPolygonElement, SVGPointList, SVGPoint, SVGPatternElement, SVGPathElement, SVGNumberList, SVGNumber, SVGMetadataElement, SVGMatrix, SVGMaskElement, SVGMarkerElement, SVGMPathElement, SVGLinearGradientElement, SVGLineElement, SVGLengthList, SVGLength, SVGImageElement, SVGGraphicsElement, SVGGradientElement, SVGGeometryElement, SVGGElement, SVGForeignObjectElement, SVGFilterElement, SVGFETurbulenceElement, SVGFETileElement, SVGFESpotLightElement, SVGFESpecularLightingElement, SVGFEPointLightElement, SVGFEOffsetElement, SVGFEMorphologyElement, SVGFEMergeNodeElement, SVGFEMergeElement, SVGFEImageElement, SVGFEGaussianBlurElement, SVGFEFuncRElement, SVGFEFuncGElement, SVGFEFuncBElement, SVGFEFuncAElement, SVGFEFloodElement, SVGFEDropShadowElement, SVGFEDistantLightElement, SVGFEDisplacementMapElement, SVGFEDiffuseLightingElement, SVGFEConvolveMatrixElement, SVGFECompositeElement, SVGFEComponentTransferElement, SVGFEColorMatrixElement, SVGFEBlendElement, SVGEllipseElement, SVGElement, SVGDescElement, SVGDefsElement, SVGComponentTransferFunctionElement, SVGClipPathElement, SVGCircleElement, SVGAnimationElement, SVGAnimatedTransformList, SVGAnimatedString, SVGAnimatedRect, SVGAnimatedPreserveAspectRatio, SVGAnimatedNumberList, SVGAnimatedNumber, SVGAnimatedLengthList, SVGAnimatedLength, SVGAnimatedInteger, SVGAnimatedEnumeration, SVGAnimatedBoolean, SVGAnimatedAngle, SVGAnimateTransformElement, SVGAnimateMotionElement, SVGAnimateElement, SVGAngle, SVGAElement, Response, ResizeObserverSize, ResizeObserverEntry, ResizeObserver, Request, ReportingObserver, ReadableStreamDefaultReader, ReadableStreamDefaultController, ReadableStreamBYOBRequest, ReadableStreamBYOBReader, ReadableStream, ReadableByteStreamController, Range, RadioNodeList, RTCTrackEvent, RTCStatsReport, RTCSessionDescription, RTCSctpTransport, RTCRtpTransceiver, RTCRtpSender, RTCRtpReceiver, RTCPeerConnectionIceEvent, RTCPeerConnectionIceErrorEvent, RTCPeerConnection, RTCIceTransport, RTCIceCandidate, RTCErrorEvent, RTCError, RTCEncodedVideoFrame, RTCEncodedAudioFrame, RTCDtlsTransport, RTCDataChannelEvent, RTCDataChannel, RTCDTMFToneChangeEvent, RTCDTMFSender, RTCCertificate, PromiseRejectionEvent, ProgressEvent, Profiler, ProcessingInstruction, PopStateEvent, PointerEvent, PluginArray, Plugin, PictureInPictureWindow, PictureInPictureEvent, PeriodicWave, PerformanceTiming, PerformanceServerTiming, PerformanceResourceTiming, PerformancePaintTiming, PerformanceObserverEntryList, PerformanceObserver, PerformanceNavigationTiming, PerformanceNavigation, PerformanceMeasure, PerformanceMark, PerformanceLongTaskTiming, PerformanceEventTiming, PerformanceEntry, PerformanceElementTiming, Performance, Path2D, PannerNode, PageTransitionEvent, OverconstrainedError, OscillatorNode, OffscreenCanvasRenderingContext2D, OffscreenCanvas, OfflineAudioContext, OfflineAudioCompletionEvent, NodeList, NodeIterator, NodeFilter, Node, NetworkInformation, Navigator, NavigationTransition, NavigationHistoryEntry, NavigationDestination, NavigationCurrentEntryChangeEvent, Navigation, NavigateEvent, NamedNodeMap, MutationRecord, MutationObserver, MutationEvent, MouseEvent, MimeTypeArray, MimeType, MessagePort, MessageEvent, MessageChannel, MediaStreamTrackProcessor, MediaStreamTrackGenerator, MediaStreamTrackEvent, MediaStreamTrack, MediaStreamEvent, MediaStreamAudioSourceNode, MediaStreamAudioDestinationNode, MediaStream, MediaSourceHandle, MediaSource, MediaRecorder, MediaQueryListEvent, MediaQueryList, MediaList, MediaError, MediaEncryptedEvent, MediaElementAudioSourceNode, MediaCapabilities, Location, LayoutShiftAttribution, LayoutShift, LargestContentfulPaint, KeyframeEffect, KeyboardEvent, IntersectionObserverEntry, IntersectionObserver, InputEvent, InputDeviceInfo, InputDeviceCapabilities, ImageData, ImageCapture, ImageBitmapRenderingContext, ImageBitmap, IdleDeadline, IIRFilterNode, IDBVersionChangeEvent, IDBTransaction, IDBRequest, IDBOpenDBRequest, IDBObjectStore, IDBKeyRange, IDBIndex, IDBFactory, IDBDatabase, IDBCursorWithValue, IDBCursor, History, Headers, HashChangeEvent, HTMLVideoElement, HTMLUnknownElement, HTMLUListElement, HTMLTrackElement, HTMLTitleElement, HTMLTimeElement, HTMLTextAreaElement, HTMLTemplateElement, HTMLTableSectionElement, HTMLTableRowElement, HTMLTableElement, HTMLTableColElement, HTMLTableCellElement, HTMLTableCaptionElement, HTMLStyleElement, HTMLSpanElement, HTMLSourceElement, HTMLSlotElement, HTMLSelectElement, HTMLScriptElement, HTMLQuoteElement, HTMLProgressElement, HTMLPreElement, HTMLPictureElement, HTMLParamElement, HTMLParagraphElement, HTMLOutputElement, HTMLOptionsCollection, HTMLOptionElement, HTMLOptGroupElement, HTMLObjectElement, HTMLOListElement, HTMLModElement, HTMLMeterElement, HTMLMetaElement, HTMLMenuElement, HTMLMediaElement, HTMLMarqueeElement, HTMLMapElement, HTMLLinkElement, HTMLLegendElement, HTMLLabelElement, HTMLLIElement, HTMLInputElement, HTMLImageElement, HTMLIFrameElement, HTMLHtmlElement, HTMLHeadingElement, HTMLHeadElement, HTMLHRElement, HTMLFrameSetElement, HTMLFrameElement, HTMLFormElement, HTMLFormControlsCollection, HTMLFontElement, HTMLFieldSetElement, HTMLEmbedElement, HTMLElement, HTMLDocument, HTMLDivElement, HTMLDirectoryElement, HTMLDialogElement, HTMLDetailsElement, HTMLDataListElement, HTMLDataElement, HTMLDListElement, HTMLCollection, HTMLCanvasElement, HTMLButtonElement, HTMLBodyElement, HTMLBaseElement, HTMLBRElement, HTMLAudioElement, HTMLAreaElement, HTMLAnchorElement, HTMLAllCollection, GeolocationPositionError, GeolocationPosition, GeolocationCoordinates, Geolocation, GamepadHapticActuator, GamepadEvent, GamepadButton, Gamepad, GainNode, FormDataEvent, FormData, FontFaceSetLoadEvent, FontFace, FocusEvent, FileReader, FileList, File, FeaturePolicy, Exter
226nal, EventTarget, EventSource, EventCounts, Event, ErrorEvent, ElementInternals, Element, DynamicsCompressorNode, DragEvent, DocumentType, DocumentFragment, Document, DelayNode, DecompressionStream, DataTransferItemList, DataTransferItem, DataTransfer, DOMTokenList, DOMStringMap, DOMStringList, DOMRectReadOnly, DOMRectList, DOMRect, DOMQuad, DOMPointReadOnly, DOMPoint, DOMParser, DOMMatrixReadOnly, DOMMatrix, DOMImplementation, DOMException, DOMError, CustomStateSet, CustomEvent, CustomElementRegistry, Crypto, CountQueuingStrategy, ConvolverNode, ConstantSourceNode, CompressionStream, CompositionEvent, Comment, CloseEvent, ClipboardEvent, CharacterData, ChannelSplitterNode, ChannelMergerNode, CanvasRenderingContext2D, CanvasPattern, CanvasGradient, CanvasCaptureMediaStreamTrack, CSSVariableReferenceValue, CSSUnparsedValue, CSSUnitValue, CSSTranslate, CSSTransformValue, CSSTransformComponent, CSSSupportsRule, CSSStyleValue, CSSStyleSheet, CSSStyleRule, CSSStyleDeclaration, CSSSkewY, CSSSkewX, CSSSkew, CSSScale, CSSRuleList, CSSRule, CSSRotate, CSSPropertyRule, CSSPositionValue, CSSPerspective, CSSPageRule, CSSNumericValue, CSSNumericArray, CSSNamespaceRule, CSSMediaRule, CSSMatrixComponent, CSSMathValue, CSSMathSum, CSSMathProduct, CSSMathNegate, CSSMathMin, CSSMathMax, CSSMathInvert, CSSMathClamp, CSSLayerStatementRule, CSSLayerBlockRule, CSSKeywordValue, CSSKeyframesRule, CSSKeyframeRule, CSSImportRule, CSSImageValue, CSSGroupingRule, CSSFontPaletteValuesRule, CSSFontFaceRule, CSSCounterStyleRule, CSSContainerRule, CSSConditionRule, CSS, CDATASection, ByteLengthQueuingStrategy, BroadcastChannel, BlobEvent, Blob, BiquadFilterNode, BeforeUnloadEvent, BeforeInstallPromptEvent, BaseAudioContext, BarProp, AudioWorkletNode, AudioSinkInfo, AudioScheduledSourceNode, AudioProcessingEvent, AudioParamMap, AudioParam, AudioNode, AudioListener, AudioDestinationNode, AudioContext, AudioBufferSourceNode, AudioBuffer, Attr, AnimationEvent, AnimationEffect, Animation, AnalyserNode, AbstractRange, AbortSignal, AbortController, window, self, document, name, location, customElements, history, navigation, locationbar, menubar, personalbar, scrollbars, statusbar, toolbar, status, closed, frames, length, top, opener, parent, frameElement, navigator, origin, external, screen, innerWidth, innerHeight, scrollX, pageXOffset, scrollY, pageYOffset, visualViewport, screenX, screenY, outerWidth, outerHeight, devicePixelRatio, event, clientInformation, offscreenBuffering, screenLeft, screenTop, styleMedia, onsearch, isSecureContext, trustedTypes, performance, onappinstalled, onbeforeinstallprompt, crypto, indexedDB, sessionStorage, localStorage, onbeforexrselect, onabort, onbeforeinput, onblur, oncancel, oncanplay, oncanplaythrough, onchange, onclick, onclose, oncontextlost, oncontextmenu, oncontextrestored, oncuechange, ondblclick, ondrag, ondragend, ondragenter, ondragleave, ondragover, ondragstart, ondrop, ondurationchange, onemptied, onended, onerror, onfocus, onformdata, oninput, oninvalid, onkeydown, onkeypress, onkeyup, onload, onloadeddata, onloadedmetadata, onloadstart, onmousedown, onmouseenter, onmouseleave, onmousemove, onmouseout, onmouseover, onmouseup, onmousewheel, onpause, onplay, onplaying, onprogress, onratechange, onreset, onresize, onscroll, onsecuritypolicyviolation, onseeked, onseeking, onselect, onslotchange, onstalled, onsubmit, onsuspend, ontimeupdate, ontoggle, onvolumechange, onwaiting, onwebkitanimationend, onwebkitanimationiteration, onwebkitanimationstart, onwebkittransitionend, onwheel, onauxclick, ongotpointercapture, onlostpointercapture, onpointerdown, onpointermove, onpointerrawupdate, onpointerup, onpointercancel, onpointerover, onpointerout, onpointerenter, onpointerleave, onselectstart, onselectionchange, onanimationend, onanimationiteration, onanimationstart, ontransitionrun, ontransitionstart, ontransitionend, ontransitioncancel, onafterprint, onbeforeprint, onbeforeunload, onhashchange, onlanguagechange, onmessage, onmessageerror, onoffline, ononline, onpagehide, onpageshow, onpopstate, onrejectionhandled, onstorage, onunhandledrejection, onunload, crossOriginIsolated, scheduler, alert, atob, blur, btoa, c
226ancelAnimationFrame, cancelIdleCallback, captureEvents, clearInterval, clearTimeout, close, confirm, createImageBitmap, fetch, find, focus, getComputedStyle, getSelection, matchMedia, moveBy, moveTo, open, postMessage, print, prompt, queueMicrotask, releaseEvents, reportError, requestAnimationFrame, requestIdleCallback, resizeBy, resizeTo, scroll, scrollBy, scrollTo, setInterval, setTimeout, stop, structuredClone, webkitCancelAnimationFrame, webkitRequestAnimationFrame, chrome, WebAssembly, credentialless, caches, cookieStore, ondevicemotion, ondeviceorientation, ondeviceorientationabsolute, launchQueue, onbeforematch, onbeforetoggle, AbsoluteOrientationSensor, Accelerometer, AudioWorklet, BatteryManager, Cache, CacheStorage, Clipboard, ClipboardItem, CookieChangeEvent, CookieStore, CookieStoreManager, Credential, CredentialsContainer, CryptoKey, DeviceMotionEvent, DeviceMotionEventAcceleration, DeviceMotionEventRotationRate, DeviceOrientationEvent, FederatedCredential, GravitySensor, Gyroscope, Keyboard, KeyboardLayoutMap, LinearAccelerationSensor, Lock, LockManager, MIDIAccess, MIDIConnectionEvent, MIDIInput, MIDIInputMap, MIDIMessageEvent, MIDIOutput, MIDIOutputMap, MIDIPort, MediaDeviceInfo, MediaDevices, MediaKeyMessageEvent, MediaKeySession, MediaKeyStatusMap, MediaKeySystemAccess, MediaKeys, NavigationPreloadManager, NavigatorManagedData, OrientationSensor, PasswordCredential, RelativeOrientationSensor, Sanitizer, ScreenDetailed, ScreenDetails, Sensor, SensorErrorEvent, ServiceWorker, ServiceWorkerContainer, ServiceWorkerRegistration, StorageManager, SubtleCrypto, VirtualKeyboard, WebTransport, WebTransportBidirectionalStream, WebTransportDatagramDuplexStream, WebTransportError, Worklet, XRDOMOverlayState, XRLayer, XRWebGLBinding, AudioData, EncodedAudioChunk, EncodedVideoChunk, ImageTrack, ImageTrackList, VideoColorSpace, VideoFrame, AudioDecoder, AudioEncoder, ImageDecoder, VideoDecoder, VideoEncoder, AuthenticatorAssertionResponse, AuthenticatorAttestationResponse, AuthenticatorResponse, PublicKeyCredential, Bluetooth, BluetoothCharacteristicProperties, BluetoothDevice, BluetoothRemoteGATTCharacteristic, BluetoothRemoteGATTDescriptor, BluetoothRemoteGATTServer, BluetoothRemoteGATTService, CaptureController, EyeDropper, FileSystemDirectoryHandle, FileSystemFileHandle, FileSystemHandle, FileSystemWritableFileStream, FontData, FragmentDirective, GPU, GPUAdapter, GPUAdapterInfo, GPUBindGroup, GPUBindGroupLayout, GPUBuffer, GPUBufferUsage, GPUCanvasContext, GPUColorWrite, GPUCommandBuffer, GPUCommandEncoder, GPUCompilationInfo, GPUCompilationMessage, GPUComputePassEncoder, GPUComputePipeline, GPUDevice, GPUDeviceLostInfo, GPUError, GPUExternalTexture, GPUInternalError, GPUMapMode, GPUOutOfMemoryError, GPUPipelineError, GPUPipelineLayout, GPUQuerySet, GPUQueue, GPURenderBundle, GPURenderBundleEncoder, GPURenderPassEncoder, GPURenderPipeline, GPUSampler, GPUShaderModule, GPUShaderStage, GPUSupportedFeatures, GPUSupportedLimits, GPUTexture, GPUTextureUsage, GPUTextureView, GPUUncapturedErrorEvent, GPUValidationError, HID, HIDConnectionEvent, HIDDevice, HIDInputReportEvent, IdentityCredential, IdleDetector, LaunchParams, LaunchQueue, OTPCredential, PaymentAddress, PaymentRequest, PaymentResponse, PaymentMethodChangeEvent, Presentation, PresentationAvailability, PresentationConnection, PresentationConnectionAvailableEvent, PresentationConnectionCloseEvent, PresentationConnectionList, PresentationReceiver, PresentationRequest, Serial, SerialPort, ToggleEvent, USB, USBAlternateInterface, USBConfiguration, USBConnectionEvent, USBDevice, USBEndpoint, USBInTransferResult, USBInterface, USBIsochronousInTransferPacket, USBIsochronousInTransferResult, USBIsochronousOutTransferPacket, USBIsochronousOutTransferResult, USBOutTransferResult, WakeLock, WakeLockSentinel, WindowControlsOverlay, WindowControlsOverlayGeometryChangeEvent, XRAnchor, XRAnchorSet, XRBoundedReferenceSpace, XRCPUDepthInformation, XRCamera, XRDepthInformation, XRFrame, XRHitTestResult, XRHitTestSource, XRInputSource, XRInputSourceArray, XRInputSourceEvent, XRInputSourcesChangeEvent, XRLightEstimate, XRLightProbe, XRPose, XRRay, XRReferenceSpace, XRReferenceSpaceEvent, XRRenderState, XRRigidTransform, XRSession, XRSessionEvent, XRSpace, XRSystem, XRTransientInputHitTestResult, XRTransientInputHitTestSource, XRView, XRViewerPose, XRViewport, XRWebGLDepthInformation, XRWebGLLayer, getScreenDetails, queryLocalFonts, showDirectoryPicker, showOpenFilePicker, showSaveFilePicker, originAgentCluster, speechSynthesis, oncontentvisibilityautostatechange, onscrollend, AnimationPlaybackEvent, AnimationTimeline, CSSAnimation, CSSTransition, DocumentTimeline, Backgroun
226dFetchManager, BackgroundFetchRecord, BackgroundFetchRegistration, BluetoothUUID, BrowserCaptureMediaStreamTrack, CropTarget, ContentVisibilityAutoStateChangeEvent, DelegatedInkTrailPresenter, Ink, Highlight, HighlightRegistry, MathMLElement, MediaMetadata, MediaSession, NavigatorUAData, Notification, PaymentManager, PaymentRequestUpdateEvent, PeriodicSyncManager, PermissionStatus, Permissions, PushManager, PushSubscription, PushSubscriptionOptions, RemotePlayback, SharedWorker, SpeechSynthesisErrorEvent, SpeechSynthesisEvent, SpeechSynthesisUtterance, VideoPlaybackQuality, ViewTransition, webkitSpeechGrammar, webkitSpeechGrammarList, webkitSpeechRecognition, webkitSpeechRecognitionError, webkitSpeechRecognitionEvent, openDatabase, webkitRequestFileSystem, webkitResolveLocalFileSystemURL",cssKeys:"cssText, length, parentRule, cssFloat, getPropertyPriority, getPropertyValue, item, removeProperty, setProperty, constructor, accent-color, align-content, align-items, align-self, alignment-baseline, animation-composition, animation-delay, animation-direction, animation-duration, animation-fill-mode, animation-iteration-count, animation-name, animation-play-state, animation-timing-function, app-region, appearance, backdrop-filter, backface-visibility, background-attachment, background-blend-mode, background-clip, background-color, background-image, background-origin, background-position, background-repeat, background-size, baseline-shift, baseline-source, block-size, border-block-end-color, border-block-end-style, border-block-end-width, border-block-start-color, border-block-start-style, border-block-start-width, border-bottom-color, border-bottom-left-radius, border-bottom-right-radius, border-bottom-style, border-bottom-width, border-collapse, border-end-end-radius, border-end-start-radius, border-image-outset, border-image-repeat, border-image-slice, border-image-source, border-image-width, border-inline-end-color, border-inline-end-style, border-inline-end-width, border-inline-start-color, border-inline-start-style, border-inline-start-width, border-left-color, border-left-style, border-left-width, border-right-color, border-right-style, border-right-width, border-start-end-radius, border-start-start-radius, border-top-color, border-top-left-radius, border-top-right-radius, border-top-style, border-top-width, bottom, box-shadow, box-sizing, break-after, break-before, break-inside, buffered-rendering, caption-side, caret-color, clear, clip, clip-path, clip-rule, color, color-interpolation, color-interpolation-filters, color-rendering, column-count, column-gap, column-rule-color, column-rule-style, column-rule-width, column-span, column-width, contain-intrinsic-block-size, contain-intrinsic-height, contain-intrinsic-inline-size, contain-intrinsic-size, contain-intrinsic-width, container-name, container-type, content, cursor, cx, cy, d, direction, display, dominant-baseline, empty-cells, fill, fill-opacity, fill-rule, filter, flex-basis, flex-direction, flex-grow, flex-shrink, flex-wrap, float, flood-color, flood-opacity, font-family, font-kerning, font-optical-sizing, font-palette, font-size, font-stretch, font-style, font-synthesis-small-caps, font-synthesis-style, font-synthesis-weight, font-variant, font-variant-alternates, font-variant-caps, font-variant-east-asian, font-variant-ligatures, font-variant-numeric, font-weight, grid-auto-columns, grid-auto-flow, grid-auto-rows, grid-column-end, grid-column-start, grid-row-end, grid-row-start, grid-template-areas, grid-template-columns, grid-template-rows, height, hyphenate-character, hyphenate-limit-chars, hyphens, image-orientation, image-rendering, initial-letter, inline-size, inset-block-end, inset-block-start, inset-inline-end, inset-inline-start, isolation, justify-content, justify-items, justify-self, left, letter-spacing, lighting-color, line-break, line-height, list-style-image, list-style-position, list-style-type, margin-block-end, margin-block-start, margin-bottom, margin-inline-end, margin-inline-start, margin-left, margin-right, margin-top, marker-end, marker-mid, marker-start, mask-type, math-depth, math-shift, math-style, max-block-size, max-height, max-inline-size, max-width, min-block-size, min-height, min-inline-size, min-width, mix-blend-mode, object-fit, object-position, object-view-box, offset-distance, offset-path, offset-rotate, opacity, order, orphans, outline-color, outline-offset, outline-style, outline-width, overflow-anchor, overflow-clip-margin, overflow-wrap, overflow-x, overflow-y, overscroll-behavior-block, overscroll-behavior-inline, padding-block-end, padding-block-start, padding-bottom, padding-inline-end, padding-inline-start, padding-left, padding-right, padding-top, paint-order, perspective, perspective-origin, pointer-events, position, r, resize, right, rotate, row-gap, ruby-position, rx, ry, scale, scroll-behavior, scroll-margin-block-end, scroll-margin-block-start, scroll-margin-inline-end, scroll-margin-inline-start, scroll-padding-block-end, scroll-padding-block-start, scroll-padding-inline-end, scroll-padding-inline-start, scrollbar-gutter, shape-image-threshold, shape-margin, shape-outside, shape-rendering, speak, stop-color, stop-opacity, stroke, stroke-dasharray, stroke-dashoffset, stroke-linecap, stroke-linejoin, stroke-miterlimit, stroke-opacity, stroke-width, tab-size, table-layout, text-align, text-align-last, text-anchor, text-decoration, text-decoration-color, text-decoration-line, text-decoration-skip-ink, text-decoration-style, text-emphasis-color, text-emphasis-position, text-emphasis-style, text-indent, text-overflow, text-rendering, text-shadow, text-size-adjust, text-transform, text-underline-position, text-wrap, top, touch-action, transform, transform-origin, transform-style, transition-delay, transition-duration, transition-property, transition-timing-function, translate, unicode-bidi, user-select, vector-effect, vertical-align, view-transition-name, visibility, white-space-collapse, widows, width, will-change, word-break, word-spacing, writing-mode, x, y, z-index, zoom, -webkit-border-horizontal-spacing, -webkit-border-image, -webkit-border-vertical-spacing, -webkit-box-align, -webkit-box-decoration-break, -webkit-box-direction, -webkit-box-flex, -webkit-box-ordinal-group, -webkit-box-orient, -webkit-box-pack, -webkit-box-reflect, -webkit-font-smoothing, -webkit-highlight, -webkit-line-break, -webkit-line-clamp, -webkit-locale, -webkit-mask-box-image, -webkit-mask-box-image-outset, -webkit-mask-box-image-repeat, -webkit-mask-box-image-slice, -webkit-mask-box-image-source, -webkit-mask-box-image-width, -webkit-mask-clip, -webkit-mask-composite, -webkit-mask-image, -webkit-mask-origin, -webkit-mask-position, -webkit-mask-repeat, -webkit-mask-size, -webkit-print-color-adjust, -webkit-rtl-ordering, -webkit-tap-highlight-color, -webkit-text-combine, -webkit-text-decorations-in-effect, -webkit-text-fill-color, -webkit-text-orientation, -webkit-text-security, -webkit-text-stroke-color, -webkit-text-stroke-width, -webkit-user-drag, -webkit-user-modify, -webkit-writing-mode, accentColor, additiveSymbols, al
226ignContent, alignItems, alignSelf, alignmentBaseline, all, animation, animationComposition, animationDelay, animationDirection, animationDuration, animationFillMode, animationIterationCount, animationName, animationPlayState, animationTimingFunction, appRegion, ascentOverride, aspectRatio, backdropFilter, backfaceVisibility, background, backgroundAttachment, backgroundBlendMode, backgroundClip, backgroundColor, backgroundImage, backgroundOrigin, backgroundPosition, backgroundPositionX, backgroundPositionY, backgroundRepeat, backgroundRepeatX, backgroundRepeatY, backgroundSize, basePalette, baselineShift, baselineSource, blockSize, border, borderBlock, borderBlockColor, borderBlockEnd, borderBlockEndColor, borderBlockEndStyle, borderBlockEndWidth, borderBlockStart, borderBlockStartColor, borderBlockStartStyle, borderBlockStartWidth, borderBlockStyle, borderBlockWidth, borderBottom, borderBottomColor, borderBottomLeftRadius, borderBottomRightRadius, borderBottomStyle, borderBottomWidth, borderCollapse, borderColor, borderEndEndRadius, borderEndStartRadius, borderImage, borderImageOutset, borderImageRepeat, borderImageSlice, borderImageSource, borderImageWidth, borderInline, borderInlineColor, borderInlineEnd, borderInlineEndColor, borderInlineEndStyle, borderInlineEndWidth, borderInlineStart, borderInlineStartColor, borderInlineStartStyle, borderInlineStartWidth, borderInlineStyle, borderInlineWidth, borderLeft, borderLeftColor, borderLeftStyle, borderLeftWidth, borderRadius, borderRight, borderRightColor, borderRightStyle, borderRightWidth, borderSpacing, borderStartEndRadius, borderStartStartRadius, borderStyle, borderTop, borderTopColor, borderTopLeftRadius, borderTopRightRadius, borderTopStyle, borderTopWidth, borderWidth, boxShadow, boxSizing, breakAfter, breakBefore, breakInside, bufferedRendering, captionSide, caretColor, clipPath, clipRule, colorInterpolation, colorInterpolationFilters, colorRendering, colorScheme, columnCount, columnFill, columnGap, columnRule, columnRuleColor, columnRuleStyle, columnRuleWidth, columnSpan, columnWidth, columns, contain, containIntrinsicBlockSize, containIntrinsicHeight, containIntrinsicInlineSize, containIntrinsicSize, containIntrinsicWidth, container, containerName, containerType, contentVisibility, counterIncrement, counterReset, counterSet, descentOverride, dominantBaseline, emptyCells, fallback, fillOpacity, fillRule, flex, flexBasis, flexDirection, flexFlow, flexGrow, flexShrink, flexWrap, floodColor, floodOpacity, font, fontDisplay, fontFamily, fontFeatureSettings, fontKerning, fontOpticalSizing, fontPalette, fontSize, fontStretch, fontStyle, fontSynthesis, fontSynthesisSmallCaps, fontSynthesisStyle, fontSynthesisWeight, fontVariant, fontVariantAlternates, fontVariantCaps, fontVariantEastAsian, fontVariantLigatures, fontVariantNumeric, fontVariationSettings, fontWeight, forcedColorAdjust, gap, grid, gridArea, gridAutoColumns, gridAutoFlow, gridAutoRows, gridColumn, gridColumnEnd, gridColumnGap, gridColumnStart, gridGap, gridRow, gridRowEnd, gridRowGap, gridRowStart, gridTemplate, gridTemplateAreas, gridTemplateColumns, gridTemplateRows, hyphenateCharacter, hyphenateLimitChars, imageOrientation, imageRendering, inherits, initialLetter, initialValue, inlineSize, inset, insetBlock, insetBlockEnd, insetBlockStart, insetInline, insetInlineEnd, insetInlineStart, justifyContent, justifyItems, justifySelf, letterSpacing, lightingColor, lineBreak, lineGapOverride, lineHeight, listStyle, listStyleImage, listStylePosition, listStyleType, margin, marginBlock, marginBlockEnd, marginBlockStart, marginBottom, marginInline, marginInlineEnd, marginInlineStart, marginLeft, marginRight, marginTop, marker, markerEnd, markerMid, markerStart, mask, maskType, mathDepth, mathShift, mathStyle, maxBlockSize, maxHeight, maxInlineSize, maxWidth, minBlockSize, minHeight, minInlineSize, minWidth, mixBlendMode, negative, objectFit, objectPosition, objectViewBox, offset, offsetDistance, offsetPath, offsetRotate, outline, outlineColor, outlineOffset, outlineStyle, outlineWidth, overflow, overflowAnchor, overflowClipMargin, overflowWrap, overflowX, overflowY, overrideColors, overscrollBehavior, overscrollBehaviorBlock, overscrollBehaviorInline, overscrollBehaviorX, overscrollBehaviorY, pad, padding, paddingBlock, paddingBlockEnd, paddingBlockStart, paddingBottom, paddingInline, paddingInlineEnd, paddingInlineStart, paddingLeft, paddingRight, paddingTop, page, pageBreakAfter, pageBreakBefore, pageBreakInside, pageOrientation, paintOrder, perspectiveOrigin, placeContent, placeItems, placeSelf, pointerEvents, prefix, quotes, range, rowGap, rubyPosition, scrollBehavior, scrollMargin, scrollMarginBlock, scrollMarginBlockEnd, scrollMarginBlockStart, scrollMarginBottom, scrollMarginInline, scrollMarginInlineEnd, scrollMarginInlineStart, scrollMarginLeft, scrollMarginRight, scrollMarginTop, scrollPadding, scrollPaddingBlock, scrollPaddingBlockEnd, scrollPaddingBlockStart, scrollPaddingBottom, scrollPaddingInline, scrollPaddingInlineEnd, scrollPaddingInlineStart, scrollPaddingLeft, scrollPaddingRight, scrollPaddingTop, scrollSnapAlign, scrollSnapStop, scrollSnapType, scrollbarGutter, shapeImageThreshold, shapeMargin, shapeOutside, shapeRendering, size, sizeAdjust, speakAs, src, stopColor, stopOpacity, strokeDasharray, strokeDashoffset, strokeLinecap, strokeLinejoin, strokeMiterlimit, strokeOpacity, strokeWidth, suffix, symbols, syntax, system, tabSize, tableLayout, textAlign, textAlignLast, textAnchor, textCombineUpright, textDecoration, textDecorationColor, textDecorationLine, textDecorationSkipInk, textDecorationStyle, textDecorationThickness, textEmphasis, textEmphasisColor, textEmphasisPosition, textEmphasisStyle, textIndent, textOrientation, textOverflow, textRendering, textShadow, textSizeAdjust, textTransform, textUnderlineOffset, textUnderlinePosition, textWrap, touchAction, transformBox, transformOrigin, transformStyle, transition, transitionDelay, transitionDuration, transitionProperty, transitionTimingFunction, unicodeBidi, unicodeRange, userSelect, vectorEffect, verticalAlign, viewTransitionName, webkitAlignContent, webkitAlignItems, webkitAlignSelf, webkitAnimation, webkitAnimationDelay, webkitAnimationDirection, webkitAnimationDuration, webkitAnimationFillMode, webkitAnimationIterationCount, webkitAnimationName, webkitAnimationPlayState, webkitAnimationTimingFunction, webkitAppRegion, webkitAppearance, webkitBackfaceVisibility, webkitBackgroun
226dClip, webkitBackgroundOrigin, webkitBackgroundSize, webkitBorderAfter, webkitBorderAfterColor, webkitBorderAfterStyle, webkitBorderAfterWidth, webkitBorderBefore, webkitBorderBeforeColor, webkitBorderBeforeStyle, webkitBorderBeforeWidth, webkitBorderBottomLeftRadius, webkitBorderBottomRightRadius, webkitBorderEnd, webkitBorderEndColor, webkitBorderEndStyle, webkitBorderEndWidth, webkitBorderHorizontalSpacing, webkitBorderImage, webkitBorderRadius, webkitBorderStart, webkitBorderStartColor, webkitBorderStartStyle, webkitBorderStartWidth, webkitBorderTopLeftRadius, webkitBorderTopRightRadius, webkitBorderVerticalSpacing, webkitBoxAlign, webkitBoxDecorationBreak, webkitBoxDirection, webkitBoxFlex, webkitBoxOrdinalGroup, webkitBoxOrient, webkitBoxPack, webkitBoxReflect, webkitBoxShadow, webkitBoxSizing, webkitClipPath, webkitColumnBreakAfter, webkitColumnBreakBefore, webkitColumnBreakInside, webkitColumnCount, webkitColumnGap, webkitColumnRule, webkitColumnRuleColor, webkitColumnRuleStyle, webkitColumnRuleWidth, webkitColumnSpan, webkitColumnWidth, webkitColumns, webkitFilter, webkitFlex, webkitFlexBasis, webkitFlexDirection, webkitFlexFlow, webkitFlexGrow, webkitFlexShrink, webkitFlexWrap, webkitFontFeatureSettings, webkitFontSmoothing, webkitHighlight, webkitHyphenateCharacter, webkitJustifyContent, webkitLineBreak, webkitLineClamp, webkitLocale, webkitLogicalHeight, webkitLogicalWidth, webkitMarginAfter, webkitMarginBefore, webkitMarginEnd, webkitMarginStart, webkitMask, webkitMaskBoxImage, webkitMaskBoxImageOutset, webkitMaskBoxImageRepeat, webkitMaskBoxImageSlice, webkitMaskBoxImageSource, webkitMaskBoxImageWidth, webkitMaskClip, webkitMaskComposite, webkitMaskImage, webkitMaskOrigin, webkitMaskPosition, webkitMaskPositionX, webkitMaskPositionY, webkitMaskRepeat, webkitMaskRepeatX, webkitMaskRepeatY, webkitMaskSize, webkitMaxLogicalHeight, webkitMaxLogicalWidth, webkitMinLogicalHeight, webkitMinLogicalWidth, webkitOpacity, webkitOrder, webkitPaddingAfter, webkitPaddingBefore, webkitPaddingEnd, webkitPaddingStart, webkitPerspective, webkitPerspectiveOrigin, webkitPerspectiveOriginX, webkitPerspectiveOriginY, webkitPrintColorAdjust, webkitRtlOrdering, webkitRubyPosition, webkitShapeImageThreshold, webkitShapeMargin, webkitShapeOutside, webkitTapHighlightColor, webkitTextCombine, webkitTextDecorationsInEffect, webkitTextEmphasis, webkitTextEmphasisColor, webkitTextEmphasisPosition, webkitTextEmphasisStyle, webkitTextFillColor, webkitTextOrientation, webkitTextSecurity, webkitTextSizeAdjust, webkitTextStroke, webkitTextStrokeColor, webkitTextStrokeWidth, webkitTransform, webkitTransformOrigin, webkitTransformOriginX, webkitTransformOriginY, webkitTransformOriginZ, webkitTransformStyle, webkitTransition, webkitTransitionDelay, webkitTransitionDuration, webkitTransitionProperty, webkitTransitionTimingFunction, webkitUserDrag, webkitUserModify, webkitUserSelect, webkitWritingMode, whiteSpace, whiteSpaceCollapse, willChange, wordBreak, wordSpacing, wordWrap, writingMode, zIndex, additive-symbols, ascent-override, aspect-ratio, background-position-x, background-position-y, background-repeat-x, background-repeat-y, base-palette, border-block, border-block-color, border-block-end, border-block-start, border-block-style, border-block-width, border-bottom, border-color, border-image, border-inline, border-inline-color, border-inline-end, border-inline-start, border-inline-style, border-inline-width, border-left, border-radius, border-right, border-spacing, border-style, border-top, border-width, color-scheme, column-fill, column-rule, content-visibility, counter-increment, counter-reset, counter-set, descent-override, flex-flow, font-display, font-feature-settings, font-synthesis, font-variation-settings, forced-color-adjust, grid-area, grid-column, grid-column-gap, grid-gap, grid-row, grid-row-gap, grid-template, initial-value, inset-block, inset-inline, line-gap-override, list-style, margin-block, margin-inline, override-colors, overscroll-behavior, overscroll-behavior-x, overscroll-behavior-y, padding-block, padding-inline, page-break-after, page-break-before, page-break-inside, page-orientation, place-content, place-items, place-self, scroll-margin, scroll-margin-block, scroll-margin-bottom, scroll-margin-inline, scroll-margin-left, scroll-margin-right, scroll-margin-top, scroll-padding, scroll-padding-block, scroll-padding-bottom, scroll-padding-inline, scroll-padding-left, scroll-padding-right, scroll-padding-top, scroll-snap-align, scroll-snap-stop, scroll-snap-type, size-adjust, speak-as, text-combine-upright, text-decoration-thickness, text-emphasis, text-orientation, text-underline-offset, transform-box, unicode-range, -webkit-align-content, -webkit-align-items, -webkit-align-self, -webkit-animation, -webkit-animation-delay, -webkit-animation-direction, -webkit-animation-duration, -webkit-animation-fill-mode, -webkit-animation-iteration-count, -webkit-animation-name, -webkit-animation-play-state, -webkit-animation-timing-function, -webkit-app-region, -webkit-appearance, -webkit-backface-visibility, -webkit-background-clip, -webkit-background-origin, -webkit-background-size, -webkit-border-after, -webkit-border-after-color, -webkit-border-after-style, -webkit-border-after-width, -webkit-border-before, -webkit-border-before-color, -webkit-border-before-style, -webkit-border-before-width, -webkit-border-bottom-left-radius, -webkit-border-bottom-right-radius, -webkit-border-end, -webkit-border-end-color, -webkit-border-end-style, -webkit-border-end-width, -webkit-border-radius, -webkit-border-start, -webkit-border-start-color, -webkit-border-start-style, -webkit-border-start-width, -webkit-border-top-left-radius, -webkit-border-top-right-radius, -webkit-box-shadow, -webkit-box-sizing, -webkit-clip-path, -webkit-column-break-after, -webkit-column-break-before, -webkit-column-break-inside, -webkit-column-count, -webkit-column-gap, -webkit-column-rule, -webkit-column-rule-color, -webkit-column-rule-style, -webkit-column-rule-width, -webkit-column-span, -webkit-column-width, -webkit-columns, -webkit-filter, -webkit-flex, -webkit-flex-basis, -webkit-flex-direction, -webkit-flex-flow, -webkit-flex-grow, -webkit-flex-shrink, -webkit-flex-wrap, -webkit-font-feature-settings, -webkit-hyphenate-character, -webkit-ju
226stify-content, -webkit-logical-height, -webkit-logical-width, -webkit-margin-after, -webkit-margin-before, -webkit-margin-end, -webkit-margin-start, -webkit-mask, -webkit-mask-position-x, -webkit-mask-position-y, -webkit-mask-repeat-x, -webkit-mask-repeat-y, -webkit-max-logical-height, -webkit-max-logical-width, -webkit-min-logical-height, -webkit-min-logical-width, -webkit-opacity, -webkit-order, -webkit-padding-after, -webkit-padding-before, -webkit-padding-end, -webkit-padding-start, -webkit-perspective, -webkit-perspective-origin, -webkit-perspective-origin-x, -webkit-perspective-origin-y, -webkit-ruby-position, -webkit-shape-image-threshold, -webkit-shape-margin, -webkit-shape-outside, -webkit-text-emphasis, -webkit-text-emphasis-color, -webkit-text-emphasis-position, -webkit-text-emphasis-style, -webkit-text-size-adjust, -webkit-text-stroke, -webkit-transform, -webkit-transform-origin, -webkit-transform-origin-x, -webkit-transform-origin-y, -webkit-transform-origin-z, -webkit-transform-style, -webkit-transition, -webkit-transition-delay, -webkit-transition-duration, -webkit-transition-property, -webkit-transition-timing-function, -webkit-user-select, white-space, word-wrap",jsKeys:"Object.assign, Object.getOwnPropertyDescriptor, Object.getOwnPropertyDescriptors, Object.getOwnPropertyNames, Object.getOwnPropertySymbols, Object.hasOwn, Object.is, Object.preventExtensions, Object.seal, Object.create, Object.defineProperties, Object.defineProperty, Object.freeze, Object.getPrototypeOf, Object.setPrototypeOf, Object.isExtensible, Object.isFrozen, Object.isSealed, Object.keys, Object.entries, Object.fromEntries, Object.values, Object.__defineGetter__, Object.__defineSetter__, Object.hasOwnProperty, Object.__lookupGetter__, Object.__lookupSetter__, Object.isPrototypeOf, Object.propertyIsEnumerable, Object.toString, Object.valueOf, Object.__proto__, Object.toLocaleString, Function.apply, Function.bind, Function.call, Function.toString, Boolean.toString, Boolean.valueOf, Symbol.for, Symbol.keyFor, Symbol.asyncIterator, Symbol.hasInstance, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.match, Symbol.matchAll, Symbol.replace, Symbol.search, Symbol.species, Symbol.split, Symbol.toPrimitive, Symbol.toStringTag, Symbol.unscopables, Symbol.toString, Symbol.valueOf, Symbol.description, Error.captureStackTrace, Error.stackTraceLimit, Error.message, Error.toString, Number.isFinite, Number.isInteger, Number.isNaN, Number.isSafeInteger, Number.parseFloat, Number.parseInt, Number.MAX_VALUE, Number.MIN_VALUE, Number.NaN, Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER, Number.EPSILON, Number.toExponential, Number.toFixed, Number.toPrecision, Number.toString, Number.valueOf, Number.toLocaleString, BigInt.asUintN, BigInt.asIntN, BigInt.toLocaleString, BigInt.toString, BigInt.valueOf, Math.abs, Math.acos, Math.acosh, Math.asin, Math.asinh, Math.atan, Math.atanh, Math.atan2, Math.ceil, Math.cbrt, Math.expm1, Math.clz32, Math.cos, Math.cosh, Math.exp, Math.floor, Math.fround, Math.hypot, Math.imul, Math.log, Math.log1p, Math.log2, Math.log10, Math.max, Math.min, Math.pow, Math.random, Math.round, Math.sign, Math.sin, Math.sinh, Math.sqrt, Math.tan, Math.tanh, Math.trunc, Math.E, Math.LN10, Math.LN2, Math.LOG10E, Math.LOG2E, Math.PI, Math.SQRT1_2, Math.SQRT2, Date.now, Date.parse, Date.UTC, Date.toString, Date.toDateString, Date.toTimeString, Date.toISOString, Date.toUTCString, Date.toGMTString, Date.getDate, Date.setDate, Date.getDay, Date.getFullYear, Date.setFullYear, Date.getHours, Date.setHours, Date.getMilliseconds, Date.setMilliseconds, Date.getMinutes, Date.setMinutes, Date.getMonth, Date.setMonth, Date.getSeconds, Date.setSeconds, Date.getTime, Date.setTime, Date.getTimezoneOffset, Date.getUTCDate, Date.setUTCDate, Date.getUTCDay, Date.getUTCFullYear, Date.setUTCFullYear, Date.getUTCHours, Date.setUTCHours, Date.getUTCMilliseconds, Date.setUTCMilliseconds, Date.getUTCMinutes, Date.setUTCMinutes, Date.getUTCMonth, Date.setUTCMonth, Date.getUTCSeconds, Date.setUTCSeconds, Date.valueOf, Date.getYear, Date.setYear, Date.toJSON, Date.toLocaleStr
226ing, Date.toLocaleDateString, Date.toLocaleTimeString, String.fromCharCode, String.fromCodePoint, String.raw, String.anchor, String.at, String.big, String.blink, String.bold, String.charAt, String.charCodeAt, String.codePointAt, String.concat, String.endsWith, String.fontcolor, String.fontsize, String.fixed, String.includes, String.indexOf, String.italics, String.lastIndexOf, String.link, String.localeCompare, String.match, String.matchAll, String.normalize, String.padEnd, String.padStart, String.repeat, String.replace, String.replaceAll, String.search, String.slice, String.small, String.split, String.strike, String.sub, String.substr, String.substring, String.sup, String.startsWith, String.toString, String.trim, String.trimStart, String.trimLeft, String.trimEnd, String.trimRight, String.toLocaleLowerCase, String.toLocaleUpperCase, String.toLowerCase, String.toUpperCase, String.valueOf, String.isWellFormed, String.toWellFormed, RegExp.input, RegExp.$_, RegExp.lastMatch, RegExp.$&, RegExp.lastParen, RegExp.$+, RegExp.leftContext, RegExp.$`, RegExp.rightContext, RegExp.$', RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6, RegExp.$7, RegExp.$8, RegExp.$9, RegExp.exec, RegExp.dotAll, RegExp.flags, RegExp.global, RegExp.hasIndices, RegExp.ignoreCase, RegExp.multiline, RegExp.source, RegExp.sticky, RegExp.unicode, RegExp.compile, RegExp.toString, RegExp.test, RegExp.unicodeSets, Array.isArray, Array.from, Array.of, Array.at, Array.concat, Array.copyWithin, Array.fill, Array.find, Array.findIndex, Array.findLast, Array.findLastIndex, Array.lastIndexOf, Array.pop, Array.push, Array.reverse, Array.shift, Array.unshift, Array.slice, Array.sort, Array.splice, Array.includes, Array.indexOf, Array.join, Array.keys, Array.entries, Array.values, Array.forEach, Array.filter, Array.flat, Array.flatMap, Array.map, Array.every, Array.some, Array.reduce, Array.reduceRight, Array.toLocaleString, Array.toString, Array.toReversed, Array.toSorted, Array.toSpliced, Array.with, Map.get, Map.set, Map.has, Map.delete, Map.clear, Map.entries, Map.forEach, Map.keys, Map.size, Map.values, Set.has, Set.add, Set.delete, Set.clear, Set.entries, Set.forEach, Set.size, Set.values, Set.keys, WeakMap.delete, WeakMap.get, WeakMap.set, WeakMap.has, WeakSet.delete, WeakSet.has, WeakSet.add, Atomics.load, Atomics.store, Atomics.add, Atomics.sub, Atomics.and, Atomics.or, Atomics.xor, Atomics.exchange, Atomics.compareExchange, Atomics.isLockFree, Atomics.wait, Atomics.waitAsync, Atomics.notify, JSON.parse, JSON.stringify, JSON.rawJSON, JSON.isRawJSON, Promise.all, Promise.allSettled, Promise.any, Promise.race, Promise.resolve, Promise.reject, Promise.then, Promise.catch, Promise.finally, Reflect.defineProperty, Reflect.deleteProperty, Reflect.apply, Reflect.construct, Reflect.get, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.set, Reflect.setPrototypeOf, Proxy.revocable, Intl.getCanonicalLocales, Intl.supportedValuesOf, Intl.DateTimeFormat, Intl.NumberFormat, Intl.Collator, Intl.v8BreakIterator, Intl.PluralRules, Intl.RelativeTimeFormat, Intl.ListFormat, Intl.Locale, Intl.DisplayNames, Intl.Segmenter, WebAssembly.compile, WebAssembly.validate, WebAssembly.instantiate, WebAssembly.compileStreaming, WebAssembly.instantiateStreaming, WebAssembly.Module, WebAssembly.Instance, WebAssembly.Table, WebAssembly.Memory, WebAssembly.Global, WebAssembly.Tag, WebAssembly.Exception, WebAssembly.CompileError, WebAssembly.LinkError, WebAssembly.RuntimeError, Document.implementation, Document.URL, Document.documentURI, Document.compatMode, Document.characterSet, Document.charset, Document.inputEncoding, Document.contentType, Document.doctype, Document.documentElement, Document.xmlEncoding, Document.xmlVersion, Document.xmlStandalone, Document.domain, Document.referrer, Document.cookie, Document.lastModified, Document.readyState, Document.title, Document.dir, Document.body, Document.head, Document.images, Document.embeds, Document.plugins, Document.links, Document.forms, Document.scripts, Document.currentScript, Document.defaultView, Document.designMode, Document.onreadystatechange, Document.anchors, Document.applets, Document.fgColor, Document.linkColor, Document.vlinkColor, Document.alinkColor, Document.bgColor, Document.all, Document.scrollingElement, Document.onpointerlockchange, Document.onpointerlockerror, Document.hidden, Document.visibilityState, Document.wasDiscarded, Document.prerendering, Document.featurePolicy, Document.webkitVisibilityState, Document.webkitHidden, Document.onbeforecopy, Document.onbeforecut, Document.onbeforepaste, Document.onfreeze, Document.onprerenderingchange, Document.onresume, Document.onsearch, Document.onvisibilitychange, Document.fullscreenEnabled, Document.fullscreen, Document.onfullscreenchange, Document.onfullscreenerror, Document.webkitIsFullScreen, Document.webkitCurrentFullScreenElement, Document.webkitFullscreenEnabled, Document.webkitFullscreenElement, Document.onwebkitfullscreenchange, Document.onwebkitfullscreenerror, Document.rootElement, Document.pictureInPictureEnabled, Document.pictureInPictureElement, Document.onbeforexrselect, Document.onabort, Document.onbeforeinput, Document.onblur, Document.oncancel, Document.oncanplay, Document.oncanplaythrough, Document.onchange, Document.onclick, Document.onclose, Document.oncontextlost, Document.oncontextmenu, Document.oncontextrestored, Document.oncuechange, Document.ondblclick, Document.ondrag, Document.ondragend, Document.ondragenter, Document.ondragleave, Document.ondragover, Document.ondragstart, Document.ondrop, Document.ondurationchange, Document.onemptied, Document.onended, Document.onerror, Document.onfocus, Document.onformdata, Document.oninput, Document.oninvalid, Document.onkeydown, Document.onkeypress, Document.onkeyup, Document.onload, Document.onloadeddata, Document.onloadedmetadata, Document.onloadstart, Document.onmousedown, Document.onmouseenter, Document.onmouseleave, Document.onmousemove, Document.onmouseout, Document.onmouseover, Document.onmouseup, Document.onmousewheel, Document.onpause, Document.onplay, Document.onplaying, Document.onprogress, Document.onratechange, Document.onreset, Document.onresize, Document.onscroll, Document.onsecuritypolicyviolation, Document.onseeked, Document.onseeking, Document.onselect, Document.onslotchange, Document.onstalled, Document.onsubmit, Document.onsuspend, Document.ontimeupdate, Document.ontoggle, Document.onvolumechange, Document.onwaiting, Document.onwebkitanimationend, Document.onwebkitanimationiteration, Document.onwebkitanimationstart, Document.onwebkittransitionend, Document.onwheel, Document.onauxcl
226ick, Document.ongotpointercapture, Document.onlostpointercapture, Document.onpointerdown, Document.onpointermove, Document.onpointerrawupdate, Document.onpointerup, Document.onpointercancel, Document.onpointerover, Document.onpointerout, Document.onpointerenter, Document.onpointerleave, Document.onselectstart, Document.onselectionchange, Document.onanimationend, Document.onanimationiteration, Document.onanimationstart, Document.ontransitionrun, Document.ontransitionstart, Document.ontransitionend, Document.ontransitioncancel, Document.oncopy, Document.oncut, Document.onpaste, Document.children, Document.firstElementChild, Document.lastElementChild, Document.childElementCount, Document.activeElement, Document.styleSheets, Document.pointerLockElement, Document.fullscreenElement, Document.adoptedStyleSheets, Document.fonts, Document.adoptNode, Document.append, Document.captureEvents, Document.caretRangeFromPoint, Document.clear, Document.close, Document.createAttribute, Document.createAttributeNS, Document.createCDATASection, Document.createComment, Document.createDocumentFragment, Document.createElement, Document.createElementNS, Document.createEvent, Document.createExpression, Document.createNSResolver, Document.createNodeIterator, Document.createProcessingInstruction, Document.createRange, Document.createTextNode, Document.createTreeWalker, Document.elementFromPoint, Document.elementsFromPoint, Document.evaluate, Document.execCommand, Document.exitFullscreen, Document.exitPictureInPicture, Document.exitPointerLock, Document.getElementById, Document.getElementsByClassName, Document.getElementsByName, Document.getElementsByTagName, Document.getElementsByTagNameNS, Document.getSelection, Document.hasFocus, Document.importNode, Document.open, Document.prepend, Document.queryCommandEnabled, Document.queryCommandIndeterm, Document.queryCommandState, Document.queryCommandSupported, Document.queryCommandValue, Document.querySelector, Document.querySelectorAll, Document.releaseEvents, Document.replaceChildren, Document.webkitCancelFullScreen, Document.webkitExitFullscreen, Document.write, Document.writeln, Document.fragmentDirective, Document.onbeforematch, Document.onbeforetoggle, Document.timeline, Document.oncontentvisibilityautostatechange, Document.onscrollend, Document.getAnimations, Document.startViewTransition, Element.namespaceURI, Element.prefix, Element.localName, Element.tagName, Element.id, Element.className, Element.classList, Element.slot, Element.attributes, Element.shadowRoot, Element.part, Element.assignedSlot, Element.innerHTML, Element.outerHTML, Element.scrollTop, Element.scrollLeft, Element.scrollWidth, Element.scrollHeight, Element.clientTop, Element.clientLeft, Element.clientWidth, Element.clientHeight, Element.onbeforecopy, Element.onbeforecut, Element.onbeforepaste, Element.onsearch, Element.elementTiming, Element.onfullscreenchange, Element.onfullscreenerror, Element.onwebkitfullscreenchange, Element.onwebkitfullscreenerror, Element.role, Element.ariaAtomic, Element.ariaAutoComplete, Element.ariaBusy, Element.ariaBrailleLabel, Element.ariaBrailleRoleDescription, Element.ariaChecked, Element.ariaColCount, Element.ariaColIndex, Element.ariaColSpan, Element.ariaCurrent, Element.ariaDescription, Element.ariaDisabled, Element.ariaExpanded, Element.ariaHasPopup, Element.ariaHidden, Element.ariaInvalid, Element.ariaKeyShortcuts, Element.ariaLabel, Element.ariaLevel, Element.ariaLive, Element.ariaModal, Element.ariaMultiLine, Element.ariaMultiSelectable, Element.ariaOrientation, Element.ariaPlaceholder, Element.ariaPosInSet, Element.ariaPressed, Element.ariaReadOnly, Element.ariaRelevant, Element.ariaRequired, Element.ariaRoleDescription, Element.ariaRowCount, Element.ariaRowIndex, Element.ariaRowSpan, Element.ariaSelected, Element.ariaSetSize, Element.ariaSort, Element.ariaValueMax, Element.ariaValueMin, Element.ariaValueNow, Element.ariaValueText, Element.children, Element.firstElementChild, Element.lastElementChild, Element.childElementCount, Element.previousElementSibling, Element.nextElementSibling, Element.after, Element.animate, Element.append, Element.attachShadow, Element.before, Element.closest, Element.computedStyleMap, Element.getAttribute, Element.getAttributeNS, Element.getAttributeNames, Element.getAttributeNode, Element.getAttributeNodeNS, Element.getBoundingClientRect, Element.getClientRects, Element.getElementsByClassName, Element.getElementsByTagName, Element.getElementsByTagNameNS, Element.getInnerHTML, Element.hasAttribute, Element.hasAttributeNS, Element.hasAttributes, Element.hasPointerCapture, Element.insertAdjacentElement, Element.insertAdjacentHTML, Element.insertAdjacentText, Element.matches, Element.prepe
226nd, Element.querySelector, Element.querySelectorAll, Element.releasePointerCapture, Element.remove, Element.removeAttribute, Element.removeAttributeNS, Element.removeAttributeNode, Element.replaceChildren, Element.replaceWith, Element.requestFullscreen, Element.requestPointerLock, Element.scroll, Element.scrollBy, Element.scrollIntoView, Element.scrollIntoViewIfNeeded, Element.scrollTo, Element.setAttribute, Element.setAttributeNS, Element.setAttributeNode, Element.setAttributeNodeNS, Element.setPointerCapture, Element.toggleAttribute, Element.webkitMatchesSelector, Element.webkitRequestFullScreen, Element.webkitRequestFullscreen, Element.checkVisibility, Element.getAnimations, Element.setHTML"},Firefox:{version:112,windowKeys:"undefined, globalThis, Array, Boolean, JSON, Date, Math, Number, String, RegExp, Error, InternalError, AggregateError, EvalError, RangeError, ReferenceError, SyntaxError, TypeError, URIError, ArrayBuffer, Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, Float64Array, Uint8ClampedArray, BigInt64Array, BigUint64Array, BigInt, Proxy, WeakMap, Set, DataView, Symbol, Intl, Reflect, WeakSet, Atomics, WebAssembly, FinalizationRegistry, WeakRef, NaN, Infinity, isNaN, isFinite, parseFloat, parseInt, escape, unescape, decodeURI, encodeURI, decodeURIComponent, encodeURIComponent, CryptoKey, FocusEvent, CSSRuleList, MediaStreamTrackAudioSourceNode, SVGGeometryElement, SVGElement, SVGPatternElement, WebSocket, HTMLAllCollection, UIEvent, PageTransitionEvent, AuthenticatorAssertionResponse, ScreenOrientation, MediaCapabilitiesInfo, SVGImageElement, NodeIterator, SVGFEOffsetElement, AnimationPlaybackEvent, MessageChannel, TextDecoderStream, ShadowRoot, SVGAnimatedNumberList, SVGEllipseElement, DOMStringMap, AudioWorkletNode, TextMetrics, SVGPointList, SVGSymbolElement, DocumentType, StorageEvent, SVGAnimatedLength, PerformanceObserver, WebGLSampler, PushSubscription, CustomElementRegistry, SVGUnitTypes, SVGFEMorphologyElement, NodeFilter, File, Geolocation, ProcessingInstruction, AudioScheduledSourceNode, FileReader, IDBObjectStore, SVGStringList, HTMLParagraphElement, IDBDatabase, SVGLinearGradientElement, Animation, HTMLIFrameElement, HTMLTableSectionElement, Worker, TimeRanges, Navigator, InputEvent, GamepadHapticActuator, SVGMatrix, Worklet, SVGFEMergeNodeElement, DOMTokenList, MediaQueryListEvent, HTMLParamElement, MessagePort, SVGLengthList, ResizeObserverSize, TextEncoderStream, PromiseRejectionEvent, SVGTransformList, DOMPoint, SVGTextElement, WebGL2RenderingContext, PluginArray, IDBVersionChangeEvent, FontFaceSetLoadEvent, CSSStyleDeclaration, SVGGraphicsElement, HTMLOListElement, HTMLTextAreaElement, Storage, XPathEvaluator, MouseScrollEvent, HTMLCanvasElement, HTMLBodyElement, HTMLCollection, HTMLHtmlElement, MediaList, HTMLAudioElement, IDBFactory, SVGAnimatedTransformList, MimeType, SVGAnimatedPreserveAspectRatio, HTMLFrameElement, HTMLLegendElement, HTMLMapElement, SVGAnimateMotionElement, HTMLFrameSetElement, CSSGroupingRule, Clipboard, IIRFilterNode, ReadableStreamDefaultController, FileSystemFileHandle, HTMLElement, CSSConditionRule, CSS, SVGFEComponentTransferElement, DOMRectList, AudioWorklet, SourceBuffer, HTMLStyleElement, DocumentTimeline, IDBKeyRange, DOMRequest, PerformanceTiming, GeolocationPosition, SVGTextPositioningElement, OfflineResourceList, IDBOpenDBRequest, SVGFEFuncGElement, MouseEvent, FontFaceSet, OffscreenCanvasRenderingContext2D, OscillatorNode, SpeechSynthesisUtterance, AudioContext, FileSystemEntry, PaintRequest, SVGFEConvolveMatrixElement, ChannelSplitterNode, AudioBufferSourceNode, CaretPosition, AbortSignal, HTMLBRElement, XSLTProcessor, SVGFESpecularLightingElement, mozRTCPeerConnection, XMLSerializer, StorageManager, HTMLImageElement, WebGLQuery, FileSystemHandle, Permissions, BaseAudioContext, MediaStream, History, DOMStringList, StereoPannerNode, ReadableStreamDefaultReader, HTMLDListElement, MutationEvent, SVGComponentTransferFunctionElement, Notification, DynamicsCompressorNode, LockManager, Option, HTMLMeterElement, RTCPeerConnection, CloseEvent, AudioBuffer, ByteLengthQueuingStrategy, SVGFECompositeElement, HTMLTrackElement, ServiceWorkerContainer, MediaStreamTrack, WebGLContextEvent, WritableStreamDefaultController, SVGPathElement, BarProp, PerformanceObserverEntryList, RTCRtpReceiver, StyleSheet, WebGLUniformLocation, HTMLMetaElement, CanvasPattern, OffscreenCanvas, SVGTransform, SVGTextContentElement, PerformanceServerTiming, TrackEvent, XPathExpression, AnimationTimeline, MediaError, HTMLAnchorElement, XMLHttpRequest, SecurityPolicyViolationEvent, CSSMozDocumentRule, CSSImportRule, SVGLength, WaveShaperNode, RTCTrackEvent, RTCRtpSender, CSSAnimation, CSSFontPaletteValuesRule, AnimationEffect, CSSContainerRule, RTCStatsReport, SourceBufferList, HTMLHeadingElement, CanvasCaptureMediaStream, HTMLOptionElement, SVGSVGElement, WebGLActiveInfo, MIDIPort, HTMLUListElement, XPathResult, SVGUseElement, Credential, PublicKeyCredential, DOMQuad, Selection, HTMLDataElement, CSSLayerStatementRule, WebGLShader, Location, MIDIAccess, MediaRecorderErrorEvent, SVGFEGaussianBlurElement, MediaStreamEvent, CSSFontFeatureValuesRule, AbortController, RTCIceCandidate, HTMLLabelElement, PerformanceMeasure, HTMLDirectoryElement, SVGStopElement, PermissionStatus, PerformancePaintTiming, FileSystemFileEntry, SVGMarkerElement, console, SharedWorker, WebGLVertexArrayObject, HTMLOptionsCollection, HTMLTitleElement, TreeWalker, CompositionEvent, IDBCursor, TransformStream, PerformanceNavigation, Blob, SpeechSynthesisErrorEvent, CSSStyleSheet, HTMLUnknownElement, KeyEvent, HTMLOptGroupElement, CanvasGradient, AnalyserNode, Element, AnimationEvent, HTMLFieldSetElement, MediaSession, MutationObserver, SVGAnimateTransformElement, OfflineAudioContext, CacheStorage, MediaKeyStatusMap, GamepadEvent, RTCPeerConnectionIceEvent, AudioParam, AbstractRange, TextEncoder, FileSystemDirectoryHandle, CSSSupportsRule, SVGPreserveAspectRatio, PerformanceEntry, mozRTCSessionDescription, VideoPlaybackQuality, HTMLTableRowElement, HTMLFontElement, MediaKeys, DataTransfer, CSSPageRule, SVGAngle, WebGLFramebuffer, WebGLRenderbuffer, Directory, HTMLAreaElement, MimeTypeArray, NamedNodeMap, CSSKeyframeRule, XMLDocument, HTMLSlotElement, MediaDevices, IDBTransaction, HTMLModElement, MediaKeyError, SVGFEFloodElement, DOMParser, HTMLScriptElement, ReadableStreamBYOBReader, HTMLDataListElement, MediaElementAudioSourceNode, PeriodicWave, DragEvent, SVGStyleElement, SubtleCrypto, TransformStreamDefaultController, MessageEvent, WebGLProgram, SVGSetElement, WebGLShaderPrecisionFormat, ErrorEvent, NodeList, GamepadButton, MediaDeviceInfo, HTMLMediaElement, DeviceMotionEvent, ImageData, Range, PushSub
226scriptionOptions, OfflineAudioCompletionEvent, DOMPointReadOnly, DocumentFragment, Attr, BroadcastChannel, HTMLLinkElement, DOMMatrixReadOnly, AuthenticatorAttestationResponse, IdleDeadline, ImageBitmapRenderingContext, MediaKeySystemAccess, SVGPoint, SVGFEDropShadowElement, SVGFEDiffuseLightingElement, SVGRadialGradientElement, RTCDataChannelEvent, Headers, FileSystemDirectoryReader, SVGFEDisplacementMapElement, SVGDefsElement, SVGFEDistantLightElement, HTMLFormControlsCollection, WebGLRenderingContext, HTMLTableElement, SVGNumber, SVGAnimatedInteger, VisualViewport, SpeechSynthesisVoice, WheelEvent, SVGAnimatedNumber, GamepadPose, ResizeObserver, TextDecoder, FormDataEvent, FileSystem, IntersectionObserverEntry, SVGPolylineElement, Text, CanvasRenderingContext2D, CSSFontFaceRule, SVGGradientElement, WritableStream, SVGNumberList, SpeechSynthesisEvent, WritableStreamDefaultWriter, SVGFilterElement, URL, SVGRect, SVGFEImageElement, AudioDestinationNode, IDBRequest, MathMLElement, HTMLTimeElement, TextTrackCue, RadioNodeList, SVGTSpanElement, SVGAnimatedLengthList, SVGAnimatedString, HTMLSourceElement, Lock, ProgressEvent, PopupBlockedEvent, ValidityState, WebKitCSSMatrix, AudioListener, HTMLFormElement, PerformanceEventTiming, HTMLProgressElement, Gamepad, MediaKeySession, MediaStreamAudioSourceNode, CSSRule, HTMLPreElement, webkitURL, AuthenticatorResponse, HTMLEmbedElement, HTMLDivElement, MediaStreamAudioDestinationNode, CredentialsContainer, SVGScriptElement, MutationRecord, ConvolverNode, SVGFEPointLightElement, Screen, ClipboardEvent, SVGFETurbulenceElement, SVGFEBlendElement, GeolocationCoordinates, TextTrackList, FontFace, HTMLInputElement, Request, SVGGElement, SVGClipPathElement, TimeEvent, TextTrackCueList, BiquadFilterNode, SVGTitleElement, SVGFETileElement, SVGFEFuncRElement, HTMLButtonElement, Path2D, HTMLTableCellElement, StaticRange, SVGLineElement, CSSCounterStyleRule, HTMLQuoteElement, AudioParamMap, DeviceOrientationEvent, IDBCursorWithValue, MediaKeyMessageEvent, SVGAnimatedEnumeration, MIDIOutput, HTMLHRElement, ImageBitmap, CSSStyleRule, MIDIOutputMap, SVGAElement, ElementInternals, VTTCue, MediaMetadata, PannerNode, SVGForeignObjectElement, SVGSwitchElement, HTMLVideoElement, MediaEncryptedEvent, EventSource, SVGAnimateElement, DOMException, CSSTransition, Image, VTTRegion, CharacterData, SVGFEFuncAElement, SVGDescElement, SubmitEvent, RTCSessionDescription, SVGAnimatedBoolean, StyleSheetList, HTMLTableColElement, HTMLMarqueeElement, CSSKeyframesRule, SVGMetadataElement, MIDIInputMap, PushManager, GainNode, DOMRect, SVGMaskElement, HTMLMenuElement, RTCDTMFToneChangeEvent, IDBIndex, CSSMediaRule, HashChangeEvent, ServiceWorker, SVGFEFuncBElement, BlobEvent, DOMImplementation, GeolocationPositionError, SVGMPathElement, SVGFEColorMatrixElement, KeyboardEvent, HTMLLIElement, RTCCertificate, SpeechSynthesis, ReadableStreamBYOBRequest, DelayNode, XMLHttpRequestEventTarget, PopStateEvent, Cache, ScrollAreaEvent, RTCDtlsTransport, SVGTextPathElement, XMLHttpRequestUpload, HTMLOutputElement, MediaRecorder, PaintRequestList, SVGRectElement, AudioNode, DOMMatrix, MediaSource, FormData, NavigationPreloadManager, HTMLTableCaptionElement, CustomEvent, MediaCapabilities, SVGFEMergeElement, MediaStreamTrackEvent, Audio, CSS2Properties, FileList, SVGAnimatedRect, FileSystemWritableFileStream, ReadableStream, HTMLPictureElement, HTMLSelectElement, AudioProcessingEvent, PerformanceResourceTiming, Plugin, Crypto, CSSLayerBlockRule, ConstantSourceNode, HTMLSpanElement, DataTransferItem, ServiceWorkerRegistration, WebGLTransformFeedback, SVGViewElement, CSSNamespaceRule, URLSearchParams, WebGLBuffer, MediaQueryList, PointerEvent, SVGPolygonElement, KeyframeEffect, RTCDTMFSender, ResizeObserverEntry, SVGCircleElement, SVGAnimationElement, WebGLTexture, DOMRectReadOnly, WebGLSync, IntersectionObserver, MIDIMessageEvent, ReadableByteStreamController, HTMLBaseElement, CountQueuingStrategy, mozRTCIceCandidate, DataTransferItemList, HTMLHeadElement, CDATASection, HTMLDialogElement, HTMLTemplateElement, RTCDataChannel, PerformanceMark, SVGFESpotLightElement, BeforeUnloadEvent, MIDIConnectionEvent, RTCRtpTransceiver, TextTrack, TransitionEvent, HTMLDetailsElement, Comment, HTMLObjectElement, ChannelMergerNode, SVGAnimatedAngle, Response, FileSystemDirectoryEntry, MIDIInput, ScriptProcessorNode, Function, Object, eval, EventTarget, Window, close, stop, focus, blur, open, alert, confirm, prompt, print, postMessage, captureEvents, releaseEvents, getSelection, getComputedStyle, matchMedia, moveTo, moveBy, resizeTo, resizeBy, scroll, scrollTo, scrollBy, getDefaultComputedStyle, scrollByLines, scrollByPages, sizeToContent, updateCommands, find, dump, setResizable, requestIdleCallback, cancelIdleCallback, requestAnimationFrame, cancelAnimationFrame, reportError, btoa, atob, setTimeout, clearTimeout, setInterval, clearInterval, queueMicrotask, createImageBitmap, structuredClone, fetch, self, name, history, customElements, locationbar, menubar, personalbar, scrollbars, statusbar, toolbar, status, closed, event, frames, length, opener, parent, frameElement, navigator, clientInformation, external, applicationCache, screen, innerWidth, innerHeight, scrollX, pageXOffset, scrollY, pageYOffset, screenLeft, screenTop, screenX, screenY, outerWidth, outerHeight, performance, mozInnerScreenX, mozInnerScreenY, devicePixelRatio, scrollMaxX, scrollMaxY, fullScreen, ondevicemotion, ondeviceorientation, ondeviceorientationabsolute, InstallTrigger, visualVie
226wport, crypto, onabort, onblur, onfocus, onauxclick, onbeforeinput, oncanplay, oncanplaythrough, onchange, onclick, onclose, oncontextmenu, oncopy, oncuechange, oncut, ondblclick, ondrag, ondragend, ondragenter, ondragexit, ondragleave, ondragover, ondragstart, ondrop, ondurationchange, onemptied, onended, onformdata, oninput, oninvalid, onkeydown, onkeypress, onkeyup, onload, onloadeddata, onloadedmetadata, onloadstart, onmousedown, onmouseenter, onmouseleave, onmousemove, onmouseout, onmouseover, onmouseup, onwheel, onpaste, onpause, onplay, onplaying, onprogress, onratechange, onreset, onresize, onscroll, onscrollend, onsecuritypolicyviolation, onseeked, onseeking, onselect, onslotchange, onstalled, onsubmit, onsuspend, ontimeupdate, onvolumechange, onwaiting, onselectstart, onselectionchange, ontoggle, onpointercancel, onpointerdown, onpointerup, onpointermove, onpointerout, onpointerover, onpointerenter, onpointerleave, ongotpointercapture, onlostpointercapture, onmozfullscreenchange, onmozfullscreenerror, onanimationcancel, onanimationend, onanimationiteration, onanimationstart, ontransitioncancel, ontransitionend, ontransitionrun, ontransitionstart, onwebkitanimationend, onwebkitanimationiteration, onwebkitanimationstart, onwebkittransitionend, onerror, speechSynthesis, onafterprint, onbeforeprint, onbeforeunload, onhashchange, onlanguagechange, onmessage, onmessageerror, onoffline, ononline, onpagehide, onpageshow, onpopstate, onrejectionhandled, onstorage, onunhandledrejection, onunload, ongamepadconnected, ongamepaddisconnected, localStorage, origin, crossOriginIsolated, isSecureContext, indexedDB, caches, sessionStorage, window, document, location, top, netscape, Node, Document, HTMLDocument, EventCounts, Map, Promise, Event",cssKeys:"alignContent, align-content, alignItems, align-items, alignSelf, align-self, aspectRatio, aspect-ratio, backfaceVisibility, backface-visibility, borderCollapse, border-collapse, borderImageRepeat, border-image-repeat, boxDecorationBreak, box-decoration-break, boxSizing, box-sizing, breakInside, break-inside, captionSide, caption-side, clear, colorInterpolation, color-interpolation, colorInterpolationFilters, color-interpolation-filters, columnCount, column-count, columnFill, column-fill, columnSpan, column-span, contain, containerType, container-type, direction, display, dominantBaseline, dominant-baseline, emptyCells, empty-cells, flexDirection, flex-direction, flexWrap, flex-wrap, cssFloat, float, fontKerning, font-kerning, fontLanguageOverride, font-language-override, fontOpticalSizing, font-optical-sizing, fontSizeAdjust, font-size-adjust, fontStretch, font-stretch, fontStyle, font-style, fontVariantCaps, font-variant-caps, fontVariantEastAsian, font-variant-east-asian, fontVariantLigatures, font-variant-ligatures, fontVariantNumeric, font-variant-numeric, fontVariantPosition, font-variant-position, fontWeight, font-weight, gridAutoFlow, grid-auto-flow, hyphens, imageOrientation, image-orientation, imageRendering, image-rendering, imeMode, ime-mode, isolation, justifyContent, justify-content, justifyItems, justify-items, justifySelf, justify-self, lineBreak, line-break, listStylePosition, list-style-position, maskType, mask-type, mixBlendMode, mix-blend-mode, MozBoxAlign, -moz-box-align, MozBoxDirection, -moz-box-direction, MozBoxOrient, -moz-box-orient, MozBoxPack, -moz-box-pack, MozFloatEdge, -moz-float-edge, MozOrient, -moz-orient, MozTextSizeAdjust, -moz-text-size-adjust, MozUserFocus, -moz-user-focus, MozUserInput, -moz-user-input, MozUserModify, -moz-user-modify, MozWindowDragging, -moz-window-dragging, objectFit, object-fit, offsetRotate, offset-rotate, outlineStyle, outline-style, overflowAnchor, overflow-anchor, overflowWrap, overflow-wrap, paintOrder, paint-order, pointerEvents, pointer-events, position, printColorAdjust, print-color-adjust, resize, rubyAlign, ruby-align, rubyPosition, ruby-position, scrollBehavior, scroll-behavior, scrollSnapAlign, scroll-snap-align, scrollSnapStop, scroll-snap-stop, scrollSnapType, scroll-snap-type, scrollbarGutter, scrollbar-gutter, scrollbarWidth, scrollbar-width, shapeRendering, shape-rendering, strokeLinecap, stroke-linecap, strokeLinejoin, stroke-linejoin, tableLayout, table-layout, textAlign, text-align, textAlignLast, text-align-last, textAnchor, text-anchor, textCombineUpright, text-combine-upright, textDecorationLine, text-decoration-line, textDecorationSkipInk, text-decoration-skip-ink, textDecorationStyle, text-decoration-style, textEmphasisPosition, text-emphasis-position, textJustify, text-ju
226stify, textOrientation, text-orientation, textRendering, text-rendering, textTransform, text-transform, textUnderlinePosition, text-underline-position, touchAction, touch-action, transformBox, transform-box, transformStyle, transform-style, unicodeBidi, unicode-bidi, userSelect, user-select, vectorEffect, vector-effect, visibility, webkitLineClamp, WebkitLineClamp, -webkit-line-clamp, whiteSpace, white-space, wordBreak, word-break, writingMode, writing-mode, zIndex, z-index, appearance, MozForceBrokenImageIcon, -moz-force-broken-image-icon, breakAfter, break-after, breakBefore, break-before, clipRule, clip-rule, fillRule, fill-rule, fillOpacity, fill-opacity, strokeOpacity, stroke-opacity, fontSynthesisSmallCaps, font-synthesis-small-caps, fontSynthesisStyle, font-synthesis-style, fontSynthesisWeight, font-synthesis-weight, MozBoxOrdinalGroup, -moz-box-ordinal-group, order, flexGrow, flex-grow, flexShrink, flex-shrink, MozBoxFlex, -moz-box-flex, strokeMiterlimit, stroke-miterlimit, overflowBlock, overflow-block, overflowInline, overflow-inline, overflowX, overflow-x, overflowY, overflow-y, overscrollBehaviorBlock, overscroll-behavior-block, overscrollBehaviorInline, overscroll-behavior-inline, overscrollBehaviorX, overscroll-behavior-x, overscrollBehaviorY, overscroll-behavior-y, floodOpacity, flood-opacity, opacity, shapeImageThreshold, shape-image-threshold, stopOpacity, stop-opacity, borderBlockEndStyle, border-block-end-style, borderBlockStartStyle, border-block-start-style, borderBottomStyle, border-bottom-style, borderInlineEndStyle, border-inline-end-style, borderInlineStartStyle, border-inline-start-style, borderLeftStyle, border-left-style, borderRightStyle, border-right-style, borderTopStyle, border-top-style, columnRuleStyle, column-rule-style, accentColor, accent-color, animationDelay, animation-delay, animationDirection, animation-direction, animationDuration, animation-duration, animationFillMode, animation-fill-mode, animationIterationCount, animation-iteration-count, animationName, animation-name, animationPlayState, animation-play-state, animationTimingFunction, animation-timing-function, backdropFilter, backdrop-filter, backgroundAttachment, background-attachment, backgroundBlendMode, background-blend-mode, backgroundClip, background-clip, backgroundImage, background-image, backgroundOrigin, background-origin, backgroundPositionX, background-position-x, backgroundPositionY, background-position-y, backgroundRepeat, background-repeat, backgroundSize, background-size, borderImageOutset, border-image-outset, borderImageSlice, border-image-slice, borderImageWidth, border-image-width, borderSpacing, border-spacing, boxShadow, box-shadow, caretColor, caret-color, clip, clipPath, clip-path, color, colorScheme, color-scheme, columnWidth, column-width, containerName, container-name, content, counterIncrement, counter-increment, counterReset, counter-reset, counterSet, counter-set, cursor, d, filter, flexBasis, flex-basis, fontFamily, font-family, fontFeatureSettings, font-feature-settings, fontPalette, font-palette, fontSize, font-size, fontVariantAlternates, font-variant-alternates, fontVariationSettings, font-variation-settings, gridTemplateAreas, grid-template-areas, hyphenateCharacter, hyphenate-character, letterSpacing, letter-spacing, lineHeight, line-height, listStyleType, list-style-type, maskClip, mask-clip, maskComposite, mask-composite, maskImage, mask-image, maskMode, mask-mode, maskOrigin, mask-origin, maskPositionX, mask-position-x, maskPositionY, mask-position-y, maskRepeat, mask-repeat, maskSize, mask-size, offsetPath, offset-path, page, perspective, quotes, rotate, scale, scrollbarColor, scrollbar-color, shapeOutside, shape-outside, strokeDasharray, stroke-dasharray, strokeDashoffset, stroke-dashoffset, strokeWidth, stroke-width, tabSize, tab-size, textDecorationThickness, text-decoration-thickness, textEmphasisStyle, text-emphasis-style, textOverflow, text-overflow, textShadow, text-shadow, transitionDelay, transition-delay, transitionDuration, transition-duration, transitionProperty, transition-property, transitionTimingFunction, transition-timing-function, translate, verticalAlign, vertical-align, willChange, will-change, wordSpacing, word-spacing, objectPosition, object-position, perspectiveOrigin, perspective-origin, offsetAnchor, offset-anchor, fill, stroke, transformOrigin, transform-origin, gridTemplateColumns, grid-template-columns, gridTemplateRows, grid-template-rows, borderImageSource, border-image-source, listStyleImage, list-style-image, gridAutoColumns, grid-auto-columns, gridAutoRows, grid-auto-rows, transform, columnGap, column-gap, rowGap, row-gap, markerEnd, marker-end, markerMid, marker-mid, markerStart, marker-start, containIntrinsicBlockSize, contain-intrinsic-block-size, containIntrinsicHeight, contain-intrinsic-height, containIntrinsicInlineSize, contain-intrinsic-inline-size, containIntrinsicWidth, contain-intrinsic-width, gridColumnEnd, grid-column-end, gridColumnStart, grid-column-start, gridRowEnd, grid-row-end, gridRowStart, grid-row-start, maxBlockSize, max-block-size, maxHeight, max-height, maxInlineSize, max-inline-size, maxWidth, max-width, cx, cy, offsetDistance, offset-distance, textIndent, text-indent, x, y, borderBottomLeftRadius, border-bottom-left-radius, borderBottomRightRadius, border-bottom-right-radius, borderEndEndRadius, border-end-end-radius, borderEndStartRadius, border-end-start-radius, borderStartEndRadius, border-start-end-radius, borderStartStartRadius, border-start-start-radius, borderTopLeftRadius, border-top-left-radius, borderTopRightRadius, border-top-right-radius, blockSize, block-size, height, inlineSize, inline-size, minBlockSize, min-block-size, minHeight, min-height, minInlineSize, min-inline-size, minWidth, min-width, width, paddingBlockEnd, padding-block-end, paddingBlockStart, padding-block-start, paddingBottom, padding-bottom, paddingInlineEnd, padding-inline-end, paddingInlineStart, padding-inline-start, paddingLeft, padding-left, paddingRight, padding-right, paddingTop, padding-top, r, shapeMargin, shape-margin, rx, ry, scrollPaddingBlockEnd, scroll-padding-block-end, scrollPaddingBlockStart, scroll-padding-block-start, scrollPaddingBottom, scroll-padding-bottom, scrollPaddingInlineEnd, scroll-padding-inline-end, scrollPaddingInlineStart, scroll-padding-inline-start, scrollPaddingLeft, scroll-padding-left, scrollPaddingRight, scroll-padding-right, scrollPaddingTop, scroll-padding-top, borderBlockEndWidth, border-block-end-width, borderBlockStartWidth, border-block-start-width, borderBottomWidth, border-bottom-width, borderInlineEndWidth, border-inline-end-width, borderInlineStartWidth, border-inline-start-width, borderLeftWidth, border-left-width, borderRightWidth, border-right-width, borderTopWidth, border-top-width, columnRuleWidth, column-rule-width, outlineWidth, outline-width, webkitTextStrokeWidth, WebkitTextStrokeWidth, -webkit-text-stroke-width, outlineOffset, outline-offset, overflowClipMargin, overflow-clip-margin, scrollMarginBlockEnd, scroll-margin-block-end, scrollMarginBlockStart, scroll-margin-block-start, scrollMarginBottom, scroll-margin-bottom, scrollMarginInlineEnd, scroll-margin-inline-end, scrollMarginInlineStart, scroll-margin-inline-start, scrollMarginLeft, scroll-margin-left, scrollMarginRight, scroll-margin-right, scrollMarginTop, scroll-margin-top, bottom, insetBlockEnd, inset-block-end, insetBlockStart, inset-block-start, insetInlineEnd, inset-inline-end, insetInlineStart, inset-inline-start, left, marginBlockEnd, margin-block-end, marginBlockStart, margin-block-start, marginBottom, margin-bottom, marginInlineEnd, margin-inline-end, marginInlineStart, margin-inline-start, marginLeft, margin-left, marginRight, margin-right, marginTop, margin-top, right, textUnderlineOffset, text-underline-offset, top, backgroundColor, background-color, borderBlockEndColor, border-block-end-color, borderBlockStartColor, border-block-start-color, borderBottomColor, border-bottom-color, borderInlineEndColor, border-inline-end-color, borderInlineStartColor, border-inline-start-color, borderLeftColor, border-left-color, borderRightColor, border-right-color, borderTopColor, border-top-color, columnRuleColor, column-rule-color, floodColor, flood-color, lightingColor, lighting-color, outlineColor, outline-color, stopColor, stop-color, textDecorationColor, text-decoration-color, textEmphasisColor, text-emphasis-color, webkitTextFillColor, WebkitTextFillColor, -webkit-text-fill-color, webkitTextStrokeColor, WebkitTextStrokeColor, -webkit-text-stroke-color, background, backgroundPosition, background-position, borderColor, border-color, borderStyle, border-style, borderWidth, border-width, borderTop, border-top, borderRight, border-right, borderBottom, border-bottom, borderLeft, border-left, borderBlockStart, border-block-start, borderBlockEnd, border-block-end, borderInlineStart, border-inline-start, borderInlineEnd, border-inline-end, border, borderRadius, border-radius, borderImage, border-image, borderBlockWidth, border-block-width, borderBlockStyle, border-block-style, borderBlockColor, border-block-color, borderInlineWidth, border-inline-width, borderInlineStyle, border-inline-style, borderInlineColor, border-inline-color, borderBlock, border-block, borderInline, border-inline, overflow, overscrollBehavior, overscroll-behavior, container, pageBreakBefore, page-break-before, pageBreakAfter, page-break-after, pageBreakInside, page-break-inside, offset, columns, columnRule, column-rule, font, fontVariant, font-variant, fontSynthesis, font-synthesis, marker, textEmphasis, text-emphasis, webkitTextStroke, WebkitTextStroke, -webkit-text-stroke, listStyle, list-style, margin, marginBlock, margin-block, marginInline, margin-inline, scrollMargin, scroll-margin, scrollMarginBlock, scroll-margin-block, scrollMarginInline, scroll-margin-inline, outline, padding, paddingBlock, padding-block, paddingInline, padding-inline, scrollPadding, scroll-padding, scrollPaddingBlock, scroll-padding-block, scrollPaddingInline, scroll-padding-inline, flexFlow, flex-flow, flex, gap, gridRow, grid-row, gridColumn, grid-column, gridArea, grid-area, gridTemplate, grid-template, grid, placeContent, place-content, placeSelf, place-self, placeItems, place-items, inset, insetBlock, inset-block, insetInline, inset-inline, 
226containIntrinsicSize, contain-intrinsic-size, mask, maskPosition, mask-position, textDecoration, text-decoration, transition, animation, all, webkitBackgroundClip, WebkitBackgroundClip, -webkit-background-clip, webkitBackgroundOrigin, WebkitBackgroundOrigin, -webkit-background-origin, webkitBackgroundSize, WebkitBackgroundSize, -webkit-background-size, MozBorderStartColor, -moz-border-start-color, MozBorderStartStyle, -moz-border-start-style, MozBorderStartWidth, -moz-border-start-width, MozBorderEndColor, -moz-border-end-color, MozBorderEndStyle, -moz-border-end-style, MozBorderEndWidth, -moz-border-end-width, webkitBorderTopLeftRadius, WebkitBorderTopLeftRadius, -webkit-border-top-left-radius, webkitBorderTopRightRadius, WebkitBorderTopRightRadius, -webkit-border-top-right-radius, webkitBorderBottomRightRadius, WebkitBorderBottomRightRadius, -webkit-border-bottom-right-radius, webkitBorderBottomLeftRadius, WebkitBorderBottomLeftRadius, -webkit-border-bottom-left-radius, MozTransform, -moz-transform, webkitTransform, WebkitTransform, -webkit-transform, MozPerspective, -moz-perspective, webkitPerspective, WebkitPerspective, -webkit-perspective, MozPerspectiveOrigin, -moz-perspective-origin, webkitPerspectiveOrigin, WebkitPerspectiveOrigin, -webkit-perspective-origin, MozBackfaceVisibility, -moz-backface-visibility, webkitBackfaceVisibility, WebkitBackfaceVisibility, -webkit-backface-visibility, MozTransformStyle, -moz-transform-style, webkitTransformStyle, WebkitTransformStyle, -webkit-transform-style, MozTransformOrigin, -moz-transform-origin, webkitTransformOrigin, WebkitTransformOrigin, -webkit-transform-origin, MozAppearance, -moz-appearance, webkitAppearance, WebkitAppearance, -webkit-appearance, webkitBoxShadow, WebkitBoxShadow, -webkit-box-shadow, webkitFilter, WebkitFilter, -webkit-filter, MozFontFeatureSettings, -moz-font-feature-settings, MozFontLanguageOverride, -moz-font-language-override, colorAdjust, color-adjust, MozHyphens, -moz-hyphens, webkitTextSizeAdjust, WebkitTextSizeAdjust, -webkit-text-size-adjust, wordWrap, word-wrap, MozTabSize, -moz-tab-size, MozMarginStart, -moz-margin-start, MozMarginEnd, -moz-margin-end, MozPaddingStart, -moz-padding-start, MozPaddingEnd, -moz-padding-end, webkitFlexDirection, WebkitFlexDirection, -webkit-flex-direction, webkitFlexWrap, WebkitFlexWrap, -webkit-flex-wrap, webkitJustifyContent, WebkitJustifyContent, -webkit-justify-content, webkitAlignContent, WebkitAlignContent, -webkit-align-content, webkitAlignItems, WebkitAlignItems, -webkit-align-items, webkitFlexGrow, WebkitFlexGrow, -webkit-flex-grow, webkitFlexShrink, WebkitFlexShrink, -webkit-flex-shrink, webkitAlignSelf, WebkitAlignSelf, -webkit-align-self, webkitOrder, WebkitOrder, -webkit-order, webkitFlexBasis, WebkitFlexBasis, -webkit-flex-basis, MozBoxSizing, -moz-box-sizing, webkitBoxSizing, WebkitBoxSizing, -webkit-box-sizing, gridColumnGap, grid-column-gap, gridRowGap, grid-row-gap, webkitClipPath, WebkitClipPath, -webkit-clip-path, webkitMaskRepeat, WebkitMaskRepeat, -webkit-mask-repeat, webkitMaskPositionX, WebkitMaskPositionX, -webkit-mask-position-x, webkitMaskPositionY, WebkitMaskPositionY, -webkit-mask-position-y, webkitMaskClip, WebkitMaskClip, -webkit-mask-clip, webkitMaskOrigin, WebkitMaskOrigin, -webkit-mask-origin, webkitMaskSize, WebkitMaskSize, -webkit-mask-size, webkitMaskComposite, WebkitMaskComposite, -webkit-mask-composite, webkitMaskImage, WebkitMaskImage, -webkit-mask-image, MozUserSelect, -moz-user-select, webkitUserSelect, WebkitUserSelect, -webkit-user-select, MozTransitionDuration, -moz-transition-duration, webkitTransitionDuration, WebkitTransitionDuration, -webkit-transition-duration, MozTransitionTimingFunction, -moz-transition-timing-function, webkitTransitionTimingFunction, WebkitTransitionTimingFunction, -webkit-transition-timing-function, MozTransitionProperty, -moz-transition-property, webkitTransitionProperty, WebkitTransitionProperty, -webkit-transition-property, MozTransitionDelay, -moz-transition-delay, webkitTransitionDelay, WebkitTransitionDelay, -webkit-transition-delay, MozAnimationName, -moz-animation-name, webkitAnimationName, WebkitAnimationName, -webkit-animation-name, MozAnimationDuration, -moz-animation-duration, webkitAnimationDuration, WebkitAnimationDuration, -webkit-animation-duration, MozAnimationTimingFunction, -moz-animation-timing-function, webkitAnimationTimingFunction, WebkitAnimationTimingFunction, -webkit-animation-timing-function, MozAnimationIterationCount, -moz-animation-iteration-count, webkitAnimationIterationCount, WebkitAnimationIterationCount, -webkit-animation-iteration-count, MozAnimationDirection, -moz-animation-direction, webkitAnimationDirection, WebkitAnimationDirection, -webkit-animation-direction, MozAnimationPlayState, -moz-animation-play-state, webkitAnimationPlayState, WebkitAnimationPlayState, -webkit-animation-play-state, MozAnimationFillMode, -moz-animation-fill-mode, webkitAnimationFillMode, WebkitAnimationFillMode, -webkit-animation-fill-mode, MozAnimationDelay, -moz-animation-delay, webkitAnimationDelay, WebkitAnimationDelay, -webkit-animation-delay, webkitBoxAlign, WebkitBoxAlign, -webkit-box-align, webkitBoxDirection, WebkitBoxDirection, -webkit-box-direction, webkitBoxFlex, WebkitBoxFlex, -webkit-box-flex, webkitBoxOrient, WebkitBoxOrient, -webkit-box-orient, webkitBoxPack, WebkitBoxPack, -webkit-box-pack, webkitBoxOrdinalGroup, WebkitBoxOrdinalGroup, -webkit-box-ordinal-group, MozBorderStart, -moz-border-start, MozBorderEnd, -moz-border-end, webkitBorderRadius, WebkitBorderRadius, -webkit-border-radius, MozBorderImage, -moz-border-image, webkitBorderImage, WebkitBorderImage, -webkit-border-image, webkitFlexFlow, WebkitFlexFlow, -webkit-flex-flow, webkitFlex, WebkitFlex, -webkit-flex, gridGap, grid-gap, webkitMask, WebkitMask, -webkit-mask, webkitMaskPosition, WebkitMaskPosition, -webkit-mask-position, MozTransition, -moz-transition, webkitTransition, WebkitTransition, -webkit-transition, MozAnimation, -moz-animation, webkitAnimation, WebkitAnimation, -webkit-animation, constructor",jsKeys:"Ob
226ject.assign, Object.getPrototypeOf, Object.setPrototypeOf, Object.getOwnPropertyDescriptor, Object.getOwnPropertyDescriptors, Object.keys, Object.values, Object.entries, Object.is, Object.defineProperty, Object.defineProperties, Object.create, Object.getOwnPropertyNames, Object.getOwnPropertySymbols, Object.isExtensible, Object.preventExtensions, Object.freeze, Object.isFrozen, Object.seal, Object.isSealed, Object.fromEntries, Object.hasOwn, Object.toString, Object.toLocaleString, Object.valueOf, Object.hasOwnProperty, Object.isPrototypeOf, Object.propertyIsEnumerable, Object.__defineGetter__, Object.__defineSetter__, Object.__lookupGetter__, Object.__lookupSetter__, Object.__proto__, Function.toString, Function.apply, Function.call, Function.bind, Boolean.toString, Boolean.valueOf, Symbol.for, Symbol.keyFor, Symbol.isConcatSpreadable, Symbol.iterator, Symbol.match, Symbol.replace, Symbol.search, Symbol.species, Symbol.hasInstance, Symbol.split, Symbol.toPrimitive, Symbol.toStringTag, Symbol.unscopables, Symbol.asyncIterator, Symbol.matchAll, Symbol.toString, Symbol.valueOf, Symbol.description, Error.toString, Error.message, Error.stack, Number.isFinite, Number.isInteger, Number.isNaN, Number.isSafeInteger, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.MAX_VALUE, Number.MIN_VALUE, Number.MAX_SAFE_INTEGER, Number.MIN_SAFE_INTEGER, Number.EPSILON, Number.parseInt, Number.parseFloat, Number.NaN, Number.toString, Number.toLocaleString, Number.valueOf, Number.toFixed, Number.toExponential, Number.toPrecision, BigInt.asUintN, BigInt.asIntN, BigInt.valueOf, BigInt.toString, BigInt.toLocaleString, Math.abs, Math.acos, Math.asin, Math.atan, Math.atan2, Math.ceil, Math.clz32, Math.cos, Math.exp, Math.floor, Math.imul, Math.fround, Math.log, Math.max, Math.min, Math.pow, Math.random, Math.round, Math.sin, Math.sqrt, Math.tan, Math.log10, Math.log2, Math.log1p, Math.expm1, Math.cosh, Math.sinh, Math.tanh, Math.acosh, Math.asinh, Math.atanh, Math.hypot, Math.trunc, Math.sign, Math.cbrt, Math.E, Math.LOG2E, Math.LOG10E, Math.LN2, Math.LN10, Math.PI, Math.SQRT2, Math.SQRT1_2, Date.UTC, Date.parse, Date.now, Date.getTime, Date.getTimezoneOffset, Date.getYear, Date.getFullYear, Date.getUTCFullYear, Date.getMonth, Date.getUTCMonth, Date.getDate, Date.getUTCDate, Date.getDay, Date.getUTCDay, Date.getHours, Date.getUTCHours, Date.getMinutes, Date.getUTCMinutes, Date.getSeconds, Date.getUTCSeconds, Date.getMilliseconds, Date.getUTCMilliseconds, Date.setTime, Date.setYear, Date.setFullYear, Date.setUTCFullYear, Date.setMonth, Date.setUTCMonth, Date.setDate, Date.setUTCDate, Date.setHours, Date.setUTCHours, Date.setMinutes, Date.setUTCMinutes, Date.setSeconds, Date.setUTCSeconds, Date.setMilliseconds, Date.setUTCMilliseconds, Date.toUTCString, Date.toLocaleString, Date.toLocaleDateString, Date.toLocaleTimeString, Date.toDateString, Date.toTimeString, Date.toISOString, Date.toJSON, Date.toString, Date.valueOf, Date.toGMTString, String.fromCharCode, String.fromCodePoint, String.raw, String.toString, String.valueOf, String.toLowerCase, String.toUpperCase, String.charAt, String.charCodeAt, String.substring, String.padStart, String.padEnd, String.codePointAt, String.includes, String.indexOf, String.lastIndexOf, String.startsWith, String.endsWith, String.trim, String.trimStart, Str
226ing.trimEnd, String.toLocaleLowerCase, String.toLocaleUpperCase, String.localeCompare, String.repeat, String.normalize, String.match, String.matchAll, String.search, String.replace, String.replaceAll, String.split, String.substr, String.concat, String.slice, String.at, String.bold, String.italics, String.fixed, String.strike, String.small, String.big, String.blink, String.sup, String.sub, String.anchor, String.link, String.fontcolor, String.fontsize, String.trimLeft, String.trimRight, RegExp.input, RegExp.lastMatch, RegExp.lastParen, RegExp.leftContext, RegExp.rightContext, RegExp.$1, RegExp.$2, RegExp.$3, RegExp.$4, RegExp.$5, RegExp.$6, RegExp.$7, RegExp.$8, RegExp.$9, RegExp.$_, RegExp.$&, RegExp.$+, RegExp.$`, RegExp.$', RegExp.toString, RegExp.compile, RegExp.exec, RegExp.test, RegExp.flags, RegExp.hasIndices, RegExp.global, RegExp.ignoreCase, RegExp.multiline, RegExp.dotAll, RegExp.source, RegExp.sticky, RegExp.unicode, Array.isArray, Array.from, Array.of, Array.toString, Array.toLocaleString, Array.join, Array.reverse, Array.sort, Array.push, Array.pop, Array.shift, Array.unshift, Array.splice, Array.concat, Array.slice, Array.lastIndexOf, Array.indexOf, Array.forEach, Array.map, Array.filter, Array.reduce, Array.reduceRight, Array.some, Array.every, Array.find, Array.findIndex, Array.copyWithin, Array.fill, Array.entries, Array.keys, Array.values, Array.includes, Array.flatMap, Array.flat, Array.at, Array.findLast, Array.findLastIndex, Map.get, Map.has, Map.set, Map.delete, Map.keys, Map.values, Map.clear, Map.forEach, Map.entries, Map.size, Set.has, Set.add, Set.delete, Set.entries, Set.clear, Set.forEach, Set.values, Set.keys, Set.size, WeakMap.has, WeakMap.get, WeakMap.delete, WeakMap.set, WeakSet.add, WeakSet.delete, WeakSet.has, Atomics.compareExchange, Atomics.load, Atomics.store, Atomics.exchange, Atomics.add, Atomics.sub, Atomics.and, Atomics.or, Atomics.xor, Atomics.isLockFree, Atomics.wait, Atomics.notify, Atomics.wake, JSON.parse, JSON.stringify, Promise.all, Promise.allSettled, Promise.any, Promise.race, Promise.reject, Promise.resolve, Promise.then, Promise.catch, Promise.finally, Reflect.apply, Reflect.construct, Reflect.defineProperty, Reflect.deleteProperty, Reflect.get, Reflect.getOwnPropertyDescriptor, Reflect.getPrototypeOf, Reflect.has, Reflect.isExtensible, Reflect.ownKeys, Reflect.preventExtensions, Reflect.set, Reflect.setPrototypeOf, Proxy.revocable, Intl.getCanonicalLocales, Intl.supportedValuesOf, Intl.Collator, Intl.DateTimeFormat, Intl.DisplayNames, Intl.ListFormat, Intl.Locale, Intl.NumberFormat, Intl.PluralRules, Intl.RelativeTimeFormat, WebAssembly.compile, WebAssembly.instantiate, WebAssembly.validate, WebAssembly.compileStreaming, WebAssembly.instantiateStreaming, WebAssembly.Module, WebAssembly.Instance, WebAssembly.Memory, WebAssembly.Table, WebAssembly.Global, WebAssembly.CompileError, WebAssembly.LinkError, WebAssembly.RuntimeError, WebAssembly.Tag, WebAssembly.Exception, Document.getElementsByTagName, Document.getElementsByTagNameNS, Document.getElementsByClassName, Document.getElementById, Document.createElement, Document.createElementNS, Document.createDocumentFragment, Document.createTextNode, Document.createComment, Document.createProcessingInstruction, Document.importNode, Document.adoptNode, Document.createEvent, Document.createRange, Document.createNodeIterator, Document.createTreeWalker, Document.createCDATASection, Document.createAttribute, Document.createAttributeNS, Document.getElementsByName, Document.open, Document.close, Document.write, Document.writeln, Document.hasFocus, Document.execCommand, Document.queryCommandEnabled, Document.queryCommandIndeterm, Document.queryCommandState, Document.queryCommandSupported, Document.queryCommandValue, Document.releaseCapture, Document.mozSetImageElement, Document.clear, Document.captureEvents, Document.releaseEvents, Document.exitFullscreen, Document.mozCancelFullScreen, Document.exitPointerLock, Document.enableStyleSheetsForSet, Document.caretPositionFromPoint, Document.querySelector, Document.querySelectorAll, Document.getSelection, Document.hasStorageAccess, Document.requestStorageAccess, Document.elementFromPoint, Document.elementsFromPoint, Document.getAnimations, Document.prepe
226nd, Document.append, Document.replaceChildren, Document.createExpression, Document.createNSResolver, Document.evaluate, Document.implementation, Document.URL, Document.documentURI, Document.compatMode, Document.characterSet, Document.charset, Document.inputEncoding, Document.contentType, Document.doctype, Document.documentElement, Document.domain, Document.referrer, Document.cookie, Document.lastModified, Document.readyState, Document.title, Document.dir, Document.body, Document.head, Document.images, Document.embeds, Document.plugins, Document.links, Document.forms, Document.scripts, Document.defaultView, Document.designMode, Document.onreadystatechange, Document.onbeforescriptexecute, Document.onafterscriptexecute, Document.currentScript, Document.fgColor, Document.linkColor, Document.vlinkColor, Document.alinkColor, Document.bgColor, Document.anchors, Document.applets, Document.all, Document.fullscreen, Document.mozFullScreen, Document.fullscreenEnabled, Document.mozFullScreenEnabled, Document.onfullscreenchange, Document.onfullscreenerror, Document.onpointerlockchange, Document.onpointerlockerror, Document.hidden, Document.visibilityState, Document.onvisibilitychange, Document.selectedStyleSheetSet, Document.lastStyleSheetSet, Document.preferredStyleSheetSet, Document.styleSheetSets, Document.scrollingElement, Document.timeline, Document.rootElement, Document.activeElement, Document.styleSheets, Document.pointerLockElement, Document.fullscreenElement, Document.mozFullScreenElement, Document.adoptedStyleSheets, Document.fonts, Document.onabort, Document.onblur, Document.onfocus, Document.onauxclick, Document.onbeforeinput, Document.oncanplay, Document.oncanplaythrough, Document.onchange, Document.onclick, Document.onclose, Document.oncontextmenu, Document.oncopy, Document.oncuechange, Document.oncut, Document.ondblclick, Document.ondrag, Document.ondragend, Document.ondragenter, Document.ondragexit, Document.ondragleave, Document.ondragover, Document.ondragstart, Document.ondrop, Document.ondurationchange, Document.onemptied, Document.onended, Document.onformdata, Document.oninput, Document.oninvalid, Document.onkeydown, Document.onkeypress, Document.onkeyup, Document.onload, Document.onloadeddata, Document.onloadedmetadata, Document.onloadstart, Document.onmousedown, Document.onmouseenter, Document.onmouseleave, Document.onmousemove, Document.onmouseout, Document.onmouseover, Document.onmouseup, Document.onwheel, Document.onpaste, Document.onpause, Document.onplay, Document.onplaying, Document.onprogress, Document.onratechange, Document.onreset, Document.onresize, Document.onscroll, Document.onscrollend, Document.onsecuritypolicyviolation, Document.onseeked, Document.onseeking, Document.onselect, Document.onslotchange, Document.onstalled, Document.onsubmit, Document.onsuspend, Document.ontimeupdate, Document.onvolumechange, Document.onwaiting, Document.onselectstart, Document.onselectionchange, Document.ontoggle, Document.onpointercancel, Document.onpointerdown, Document.onpointerup, Document.onpointermove, Document.onpointerout, Document.onpointerover, Document.onpointerenter, Document.onpointerleave, Document.ongotpointercapture, Document.onlostpointercapture, Document.onmozfullscreenchange, Document.onmozfullscreenerror, Document.onanimationcancel, Document.onanimationend, Document.onanimationiteration, Document.onanimationstart, Document.ontransitioncancel, Document.ontransitionend, Document.ontransitionrun, Document.ontransitionstart, Document.onwebkitanimationend, Document.onwebkitanimationiteration, Document.onwebkitanimationstart, Document.onwebkittransitionend, Document.onerror, Document.children, Document.firstElementChild, Document.lastElementChild, Document.childElementCount, Element.getAttributeNames, Element.getAttribute, Element.getAttributeNS, Element.toggleAttribute, Element.setAttribute, Element.setAttributeNS, Element.removeAttribute, Element.removeAttributeNS, Element.hasAttribute, Element.hasAttributeNS, Element.hasAttributes, Element.closest, Element.matches, Element.webkitMatchesSelector, Element.getElementsByTagName, Element.getElementsByTagNameNS, Element.getElementsByClassName, Element.insertAdjacentElement, Element.insertAdjacentText, Element.mozMatchesSelector, Element.setPointerCapture, Element.releasePointerCapture, Element.hasPointerCapture, Element.setCapture, Element.releaseCapture, Element.getAttributeNode, Element.setAttributeNode, Element.removeAttributeNode, Element.getAttributeNodeNS, Element.setAttributeNodeNS, Element.getClientRects, Element.getBoundingClientRect, Element.checkVisibility, Element.scrollIntoView, Element.scroll, Element.scrollTo, Element.scrollBy, Element.insertAdjacentHTML, Element.querySelector, Element.querySelectorAll, Element.attachShadow, Element.requestFullscreen, Element.mozRequestFullScreen, Element.requestPointerLock, Element.animate, Element.getAnimations, Element.before, Element.after, Element.replaceWith, Element.remove, Element.prepe
226nd, Element.append, Element.replaceChildren, Element.namespaceURI, Element.prefix, Element.localName, Element.tagName, Element.id, Element.className, Element.classList, Element.part, Element.attributes, Element.scrollTop, Element.scrollLeft, Element.scrollWidth, Element.scrollHeight, Element.clientTop, Element.clientLeft, Element.clientWidth, Element.clientHeight, Element.scrollTopMax, Element.scrollLeftMax, Element.innerHTML, Element.outerHTML, Element.shadowRoot, Element.assignedSlot, Element.slot, Element.onfullscreenchange, Element.onfullscreenerror, Element.previousElementSibling, Element.nextElementSibling, Element.children, Element.firstElementChild, Element.lastElementChild, Element.childElementCount"}}[ew]||{};if(!(e&&t))return{};let[o,r]=t?t.split("-"):[],i=r||o,l=+e<o-n,s=!(+i==a&&+e>a)&&(+e>+i+n||l),c=s?Math.abs(e-(l?o:i)):0;return{liedVersion:s,distance:c}};async function ev(e){let{cssComputed:t,navigatorComputed:n,windowFeaturesComputed:a}=e;try{let e,o,r=R();await D(r);let i=J||window;if(!t||!a)return void N({test:"features",passed:!1});let l=(e=>{try{return["Object","Function","Boolean","Symbol","Error","Number","BigInt","Math","Date","String","RegExp","Array","Map","Set","WeakMap","WeakSet","Atomics","JSON","Promise","Reflect","Proxy","Intl","WebAssembly","Document","Element"].reduce((t,n)=>{let a=["name","length","constructor","prototype","arguments","caller"],o=Object.keys(Object.getOwnPropertyDescriptors(e[n]||{})),r=Object.keys(Object.getOwnPropertyDescriptors((e[n]||{}).prototype||{})),i=[...new Set([...o,...r].filter(e=>!a.includes(e)))].map(e=>`${n}.${e}`);return[...t,...i]},[])}catch(e){return console.error(e),[]}})(i),{keys:s}=t.computedStyle||{},{keys:c}=a||{},{userAgentParsed:d}=n||{},m=function(){let{context:e={},allKeys:t=[],engineMap:n={},checkNative:a=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o=new Set(t),r=new Set,i=Object.keys(n).reduce((t,i)=>{let l=n[i],s=l.length,c=l.filter(t=>{if("!"==t.charAt(0)){let e=t.slice(1);return!o.has(e)&&r.add(t)}return o.has(t)&&(!a||/\[native code\]/.test(e[t]+"")&&"prototype"in e[t]&&e[t].prototype.constructor.name===t)&&r.add(t)}).length;return s==c?[...t,i]:t},[]);return{version:eM(i)[0],features:r}},{css:u,win:g,js:p}=(e="Chrome"==ew,o="Firefox"==ew,{css:e?{76:["backdrop-filter"],"77-80":["overscroll-behavior-block","overscroll-behavior-inline"],81:["color-scheme","image-orientation"],83:["contain-intrinsic-size"],84:["appearance","ruby-position"],"85-86":["content-visibility","counter-set","inherits","initial-value","page-orientation","syntax"],87:["ascent-override","border-block","border-block-color","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-style","border-inline-width","descent-override","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","line-gap-override","margin-block","margin-inline","padding-block","padding-inline","text-decoration-thickness","text-underline-offset"],88:["aspect-ratio"],89:["border-end-end-radius","border-end-start-radius","border-start-end-radius","border-start-start-radius","forced-color-adjust"],90:["overflow-clip-margin"],91:["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"],92:["size-adjust"],93:["accent-color"],94:["scrollbar-gutter"],"95-96":["app-region","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-width"],"97-98":["font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-synthesis"],"99-100":["text-emphasis-color","text-emphasis-position","text-emphasis-style","text-emphasis"],"101-103":["font-palette","base-palette","override-colors"],104:["object-view-box"],105:["container-name","container-type","container"],"106-107":["hyphenate-character"],108:["hyphenate-character","!orientation","!max-zoom","!min-zoom","!user-zoom"],109:["hyphenate-limit-chars","math-depth","math-shift","math-style"],110:["initial-letter"],"111-113":["baseline-source","font-variant-alternates","view-transition-name"],"114-115":["text-wrap","white-space-collapse"]}:o?{71:["-moz-column-span"],72:["offset","offset-anchor","offset-distance","offset-path","offset-rotate","rotate","scale","translate"],73:["overscroll-behavior-block","overscroll-behavior-inline"],"74-79":["!-moz-stack-sizing","text-underline-position"],"80-88":["appearance"],"89-90":["!-moz-outline-radius","!-moz-outline-radius-bottomleft","!-moz-outline-radius-bottomright","!-moz-outline-radius-topleft","!-moz-outline-radius-topright","aspect-ratio"],91:["tab-size"],"92-95":["accent-color"],96:["color-scheme"],97:["print-color-adjust","scrollbar-gutter","d"],"98-101":["hyphenate-character"],102:["overflow-clip-margin"],"103-106":["scroll-snap-stop"],"107-108"
226:["backdrop-filter","font-palette","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-width","contain-intrinsic-size"],109:["-webkit-clip-path"],110:["container-type","container-name","page","container"],111:["font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight"],112:["font-synthesis-small-caps","!-moz-image-region"]}:{},win:e?{80:["CompressionStream","DecompressionStream","FeaturePolicy","FragmentDirective","PeriodicSyncManager","VideoPlaybackQuality"],81:["SubmitEvent","XRHitTestResult","XRHitTestSource","XRRay","XRTransientInputHitTestResult","XRTransientInputHitTestSource"],83:["BarcodeDetector","XRDOMOverlayState","XRSystem"],84:["AnimationPlaybackEvent","AnimationTimeline","CSSAnimation","CSSTransition","DocumentTimeline","FinalizationRegistry","LayoutShiftAttribution","ResizeObserverSize","WakeLock","WakeLockSentinel","WeakRef","XRLayer"],85:["AggregateError","CSSPropertyRule","EventCounts","XRAnchor","XRAnchorSet"],86:["RTCEncodedAudioFrame","RTCEncodedVideoFrame"],87:["CookieChangeEvent","CookieStore","CookieStoreManager","Scheduling"],88:["Scheduling","!BarcodeDetector"],89:["ReadableByteStreamController","ReadableStreamBYOBReader","ReadableStreamBYOBRequest","ReadableStreamDefaultController","XRWebGLBinding"],90:["AbstractRange","CustomStateSet","NavigatorUAData","XRCPUDepthInformation","XRDepthInformation","XRLightEstimate","XRLightProbe","XRWebGLDepthInformation"],91:["CSSCounterStyleRule","GravitySensor","NavigatorManagedData"],92:["CSSCounterStyleRule","!SharedArrayBuffer"],93:["WritableStreamDefaultController"],94:["AudioData","AudioDecoder","AudioEncoder","EncodedAudioChunk","EncodedVideoChunk","IdleDetector","ImageDecoder","ImageTrack","ImageTrackList","VideoColorSpace","VideoDecoder","VideoEncoder","VideoFrame","MediaStreamTrackGenerator","MediaStreamTrackProcessor","Profiler","VirtualKeyboard","DelegatedInkTrailPresenter","Ink","Scheduler","TaskController","TaskPriorityChangeEvent","TaskSignal","VirtualKeyboardGeometryChangeEvent"],"95-96":["URLPattern"],"97-98":["WebTransport","WebTransportBidirectionalStream","WebTransportDatagramDuplexStream","WebTransportError"],99:["CanvasFilter","CSSLayerBlockRule","CSSLayerStatementRule"],100:["CSSMathClamp"],"101-104":["CSSFontPaletteValuesRule"],"105-106":["CSSContainerRule"],"107-108"
226:["XRCamera"],109:["MathMLElement"],110:["AudioSinkInfo"],"111-112":["ViewTransition"],"113-115":["ViewTransition","!CanvasFilter"]}:o?{71:["MathMLElement","!SVGZoomAndPan"],"72-73":["!BatteryManager","FormDataEvent","Geolocation","GeolocationCoordinates","GeolocationPosition","GeolocationPositionError","!mozPaintCount"],74:["FormDataEvent","!uneval"],75:["AnimationTimeline","CSSAnimation","CSSTransition","DocumentTimeline","SubmitEvent"],"76-77":["AudioParamMap","AudioWorklet","AudioWorkletNode","Worklet"],78:["Atomics"],"79-81":["AggregateError","FinalizationRegistry"],82:["MediaMetadata","MediaSession","Sanitizer"],83:["MediaMetadata","MediaSession","!Sanitizer"],84:["PerformancePaintTiming"],"85-86":["PerformancePaintTiming","!HTMLMenuItemElement","!onshow"],87:["onbeforeinput"],88:["onbeforeinput","!VisualViewport"],"89-92":["!ondevicelight","!ondeviceproximity","!onuserproximity"],"93-95":["ElementInternals"],96:["Lock","LockManager"],97:["CSSLayerBlockRule","CSSLayerStatementRule"],98:["HTMLDialogElement"],99:["NavigationPreloadManager"],"100-104":["WritableStream"],"105-106":["TextDecoderStream","OffscreenCanvasRenderingContext2D","OffscreenCanvas","TextEncoderStream"],"107-109":["CSSFontPaletteValuesRule"],110:["CSSContainerRule"],111:["FileSystemFileHandle","FileSystemDirectoryHandle"],112:["FileSystemFileHandle","!U2F"]}:{},js:e?{76:["Document.onsecuritypolicyviolation","Promise.allSettled"],77:["Document.onformdata","Document.onpointerrawupdate"],78:["Element.elementTiming"],79:["Document.onanimationend","Document.onanimationiteration","Document.onanimationstart","Document.ontransitionend"],80:["!Document.registerElement","!Element.createShadowRoot","!Element.getDestinationInsertionPoints"],81:["Document.onwebkitanimationend","Document.onwebkitanimationiteration","Document.onwebkitanimationstart","Document.onwebkittransitionend","Element.ariaAtomic","Element.ariaAutoComplete","Element.ariaBusy","Element.ariaChecked","Element.ariaColCount","Element.ariaColIndex","Element.ariaColSpan","Element.ariaCurrent","Element.ariaDisabled","Element.ariaExpanded","Element.ariaHasPopup","Element.ariaHidden","Element.ariaKeyShortcuts","Element.ariaLabel","Element.ariaLevel","Element.ariaLive","Element.ariaModal","Element.ariaMultiLine","Element.ariaMultiSelectable","Element.ariaOrientation","Element.ariaPlaceholder","Element.ariaPosInSet","Element.ariaPressed","Element.ariaReadOnly","Element.ariaRelevant","Element.ariaRequired","Element.ariaRoleDescription","Element.ariaRowCount","Element.ariaRowIndex","Element.ariaRowSpan","Element.ariaSelected","Element.ariaSort","Element.ariaValueMax","Element.ariaValueMin","Element.ariaValueNow","Element.ariaValueText","Intl.DisplayNames"],83:["Element.ariaDescription","Element.onbeforexrselect"],84:["Document.getAnimations","Document.timeline","Element.ariaSetSize","Element.getAnimations"],85:["Promise.any","String.replaceAll"],86:["Document.fragmentDirective","Document.replaceChildren","Element.replaceChildren","!Atomics.wake"],"87-89":["Atomics.waitAsync","Document.ontransitioncancel","Document.ontransitionrun","Document.ontransitionstart","Intl.Segmenter"],90:["Document.onbeforexrselect","RegExp.hasIndices","!Element.onbeforexrselect"],91:["Element.getInnerHTML"],92:["Array.at","String.at"],93:["Error.cause","Object.hasOwn"],94:["!Error.cause","Object.hasOwn"],"95-96":["WebAssembly.Exception","WebAssembly.Tag"],"97-98":["Array.findLast","Array.findLastIndex","Document.onslotchange"],"99-101":["Intl.supportedValuesOf","Document.oncontextlost","Document.oncontextrestored"],102:["Element.ariaInvalid","Document.onbeforematch"],"103-106":["Element.role"],"107-109":["Element.ariaBrailleLabel","Element.ariaBrailleRoleDescription"],110:["Array.toReversed","Array.toSorted","Array.toSpliced","Array.with"],111:["String.isWellFormed","String.toWellFormed","Document.startViewTransition"],"112-113":["RegExp.unicodeSets"],"114-115":["JSON.rawJSON","JSON.isRawJSON"]}:o?{71:["Promise.allSettled"],"72-73":["Document.onformdata","Element.part"],74:["!Array.toSource","!Boolean.toSource","!Date.toSource","!Error.toSource","!Function.toSource","!Intl.toSource","!JSON.toSource","!Math.toSource","!Number.toSource","!Object.toSource","!RegExp.toSource","!String.toSource","!WebAssembly.toSource"],"75-76":["Document.getAnimations","Document.timeline","Element.getAnimations","Intl.Locale"],77:["String.replaceAll"],78:["Atomics.add","Atomics.and","Atomics.compareExchange","Atomics.exchange","Atomics.isLockFree","Atomics.load","Atomics.notify","Atomics.or","Atomics.store","Atomics.sub","Atomics.wait","Atomics.wake","Atomics.xor","Document.replaceChildren","Element.replaceChildren","Intl.ListFormat","RegExp.dotAll"],"79-84":["Promise.any"],85:["!Document.onshow","Promise.any"],86:["Intl.DisplayNames"],87:["Document.onbeforeinput"],"88-89":["RegExp.hasIndices"],"90-91":["Array.at","String.at"],92:["Object.hasOwn"],"93-99":["Intl.supportedValuesOf","Document.onsecuritypolicyviolation","Document.onslotchange"],100:["WebAssembly.Tag","WebAssembly.Exception"],"101-103":["Document.adoptedStyleSheets"],"104-108":["Array.findLast","Array.findLastIndex"],"109-112":["Document.onscrollend"]}:{}}),{version:h,features:b}=m({context:i,allKeys:s,engineMap:u}),{version:f,features:S}=m({context:i,allKeys:c,engineMap:g,checkNative:!0}),{version:E,features:y}=m({context:i,allKeys:l,engineMap:p}),k=new Set([h,f,E]);k.delete(void 0);let A=eM([...k].reduce((e,t)=>
226[...e,...t.split("-")],[])),w=((e,t)=>{let n=t.find(e=>e&&!/-/.test(e));if(n)return n;let a=e.length,o=e[0],r=e[a-1];return a?1==a?o:`${r}-${o}`:""})(A,[h,f,E]),M=(/\d+/.exec(d)||[])[0],{liedVersion:v,distance:x}=eD(M,h),{liedVersion:C,distance:T}=eD(M,E),{liedVersion:I,distance:P}=eD(M,f);return v&&(es("userAgent",`v${M} failed v${h} CSS features`),x>1&&G("Navigator.userAgent",`v${M} failed CSS features by ${x} versions`)),C&&(es("userAgent",`v${M} failed v${E} JS features`),T>2&&G("Navigator.userAgent",`v${M} failed JS features by ${T} versions`)),I&&(es("userAgent",`v${M} failed v${f} Window features`),P>3&&G("Navigator.userAgent",`v${M} failed Window features by ${P} versions`)),N({time:r.stop(),test:"features",passed:!0}),{versionRange:A,version:w,cssVersion:h,windowVersion:f,jsVersion:E,cssFeatures:[...b],windowFeatures:[...S],jsFeatures:[...y],jsFeaturesKeys:l}}catch(e){N({test:"features",passed:!1}),O(e);return}}let ex=["caption","icon","menu","message-box","small-caption","status-bar"],eC={"-apple-system":"Mac","Segoe UI":"Windows",Tahoma:"Windows","Yu Gothic UI":"Windows","Microsoft JhengHei UI":"Windows","Microsoft YaHei UI":"Windows","Meiryo UI":"Windows",Cantarell:"Linux",Ubuntu:"Linux",Sans:"Linux","sans-serif":"Linux","Fira Sans":"Linux",Roboto:"Android"};async function eT(e){let{webgl:t,workerScope:n}=e;try{let e,o=R();await D(o);let r=Object.keys({...navigator.mimeTypes}),i=function(){let{body:e}=document,t=document.createElement("div");e.appendChild(t);try{let e=String([...ex.reduce((e,n)=>(t.setAttribute("style",`font: ${n} !important`),e.add(getComputedStyle(t).fontFamily)),new Set)]),n=eC[e];return eC[e]?`${e}:${n}`:e}catch(e){return""}finally{e.removeChild(t)}}(),[l,s,c]=function(){if(!g)return[];let e="getVideoPlaybackQuality"in HTMLVideoElement.prototype,t=CSS.supports("color-scheme: initial"),n=CSS.supports("appearance: initial"),a="DisplayNames"in Intl,o=CSS.supports("aspect-ratio: initial"),r=CSS.supports("border-end-end-radius: initial"),i="randomUUID"in Crypto.prototype,l="BarcodeDetector"in window,s="downlinkMax"in(window.NetworkInformation?.prototype||{}),c="ContentIndex"in window,d="ContactsManager"in window,m="EyeDropper"in window,u="FileSystemWritableFileStream"in window,p="HID"in window&&"HIDDevice"in window,h="SerialPort"in window&&"Serial"in window,b="SharedWorker"in window,f="ontouchstart"in Window&&"TouchEvent"in window,S="setAppBadge"in Navigator.prototype,E=(e,t)=>e?[t]:[],y={Android:[...E(o,l),...E(n,c),...E(e,d),s,...E(i,!m),...E(a,!u),...E(r,!p),...E(r,!h),!b,f,...E(t,!S)],"Chrome OS":[...E(o,l),...E(n,!c),...E(e,!d),s,...E(i,m),...E(a,u),...E(r,p),...E(r,h),b,f||!f,...E(t,!S)],Windows:[...E(o,!l),...E(n,!c),...E(e,!d),!s,...E(i,m),...E(a,u),...E(r,p),...E(r,h),b,f||!f,...E(t,S)],Mac:[...E(o,l),...E(n,!c),...E(e,!d),!s,...E(i,m),...E(a,u),...E(r,p),...E(r,h),b,!f,...E(t,S)],Linux:[...E(o,!l),...E(n,!c),...E(e,!d),!s,...E(i,m),...E(a,u),...E(r,p),...E(r,h),b,!f||!f,...E(t,!S)]},k=Object.keys(y).reduce((e,t)=>{let n=y[t],a=+(n.filter(e=>e).length/n.length).toFixed(2);return e[t]=a,e},{}),A=Object.keys(k).reduce((e,t)=>k[e]>k[t]?e:t),w=k[A];return[k,w,{noContentIndex:n&&!c,noContactsManager:e&&!d,noDownlinkMax:!s}]}(),d={chromium:g,likeHeadless:{noChrome:g&&!("chrome"in window),hasPermissionsBug:g&&"permissions"in navigator&&await (async()=>{let e=await navigator.permissions.query({name:"notifications"});return"prompt"==e.state&&"Notification"in window&&"denied"===Notification.permission})(),noPlugins:g&&0===navigator.plugins.length,noMimeTypes:g&&0===r.length,notificationIsDenied:g&&"Notification"in window&&"denied"==Notification.permission,hasKnownBgColor:g&&(()=>{let e=Z;if(Z||(e=document.createElement("div"),document.body.appendChild(e)),!e)return!1;e.setAttribute("style","background-color: ActiveText");let{backgroundColor:t}=getComputedStyle(e)||[];return Z||document.body.removeChild(e),"rgb(255, 0, 0)"===t})(),prefersLightColor:matchMedia("(prefers-color-scheme: light)").matches,uaDataIsBlank:"userAgentData"in navigator&&(navigator.userAgentData?.platform===""||await navigator.userAgentData.getHighEntropyValues(["platform"]).platform===""),pdfIsDisabled:"pdfViewerEnabled"in navigator&&!1===navigator.pdfViewerEnabled,noTaskbar:screen.height===screen.availHeight&&screen.width===screen.availWi
226dth,hasVvpScreenRes:innerWidth===screen.width&&outerHeight===screen.height||"visualViewport"in window&&visualViewport.width===screen.width&&visualViewport.height===screen.height,hasSwiftShader:/SwiftShader/.test(n?.webglRenderer),noWebShare:g&&CSS.supports("accent-color: initial")&&(!("share"in navigator)||!("canShare"in navigator)),noContentIndex:!!c?.noContentIndex,noContactsManager:!!c?.noContactsManager,noDownlinkMax:!!c?.noDownlinkMax},headless:{webDriverIsOn:CSS.supports("border-end-end-radius: initial")&&void 0===navigator.webdriver||!!navigator.webdriver||!!a["Navigator.webdriver"],hasHeadlessUA:/HeadlessChrome/.test(navigator.userAgent)||/HeadlessChrome/.test(navigator.appVersion),hasHeadlessWorkerUA:!!n&&/HeadlessChrome/.test(n.userAgent)},stealth:{hasIframeProxy:(()=>{try{let e=document.createElement("iframe");return e.srcdoc=eh(),!!e.contentWindow}catch(e){return!0}})(),hasHighChromeIndex:(e="chrome",Object.keys(window).slice(-50).includes(e)&&Object.getOwnPropertyNames(window).slice(-50).includes(e)),hasBadChromeRuntime:(()=>{if(!("chrome"in window&&"runtime"in chrome))return!1;try{if("prototype"in chrome.runtime.sendMessage||"prototype"in chrome.runtime.connect)return!0;return new chrome.runtime.sendMessage,new chrome.runtime.connect,!0}catch(e){return"TypeError"!=e.constructor.name}})(),hasToStringProxy:!!a["Function.toString"],hasBadWebGL:(()=>{let{UNMASKED_RENDERER_WEBGL:e}=t?.parameters||{},{webglRenderer:a}=n||{};return e&&a&&e!==a})()}},{likeHeadless:m,headless:u,stealth:p}=d,h=Object.keys(m),b=Object.keys(u),f=Object.keys(p),S=+(h.filter(e=>m[e]).length/h.length*100).toFixed(0),E=+(b.filter(e=>u[e]).length/b.length*100).toFixed(0),y=+(f.filter(e=>p[e]).length/f.length*100).toFixed(0);return N({time:o.stop(),test:"headless",passed:!0}),{...d,likeHeadlessRating:S,headlessRating:E,stealthRating:y,systemFonts:i,platformEstimate:[l,s]}}catch(e){N({test:"headless",passed:!1}),O(e);return}}async function eN(){try{var e;let t=R();await D(t);let n=a["Intl.Collator.resolvedOptions"]||a["Intl.DateTimeFormat.resolvedOptions"]||a["Intl.DisplayNames.resolvedOptions"]||a["Intl.ListFormat.resolvedOptions"]||a["Intl.NumberFormat.resolvedOptions"]||a["Intl.PluralRules.resolvedOptions"]||a["Intl.RelativeTimeFormat.resolvedOptions"]||!1,o=H(()=>new Intl.DateTimeFormat(void 0,{month:"long",timeZoneName:"long"}).format(9636444e5)),r=H(()=>new Intl.DisplayNames(void 0,{type:"language"}).of("en-US")),i=H(()=>new Intl.ListFormat(void 0,{style:"long",type:"disjunction"}).format(["0","1"])),l=H(()=>new Intl.NumberFormat(void 0,{notation:"compact",compactDisplay:"long"}).format(21e6)),s=H(()=>new Intl.PluralRules().select(1)),c=H(()=>new Intl.RelativeTimeFormat(void 0,{localeMatcher:"best fit",numeric:"auto",style:"long"}).format(1,"year")),d=(e=Intl,[...new Set(["Collator","DateTimeFormat","DisplayNames","ListFormat","NumberFormat","PluralRules","RelativeTimeFormat"].reduce((t,n)=>{try{let a=new e[n];if(!a)return t;let{locale:o}=a.resolvedOptions()||{};return[...t,o]}catch(e){return t}},[]))]);return N({time:t.stop(),test:"intl",passed:!0}),{dateTimeFormat:o,displayNames:r,listFormat:i,numberFormat:l,pluralRules:s,relativeTimeFormat:c,locale:""+d,lied:n}}catch(e){N({test:"intl",passed:!1}),O(e);return}}async function eR(){try{let e=R();e.start();let t=(()=>{try{let e=['audio/ogg; codecs="vorbis"',"audio/mpeg","audio/mpegurl",'audio/wav; codecs="1"',"audio/x-m4a","audio/aac",'video/ogg; codecs="theora"',"video/quicktime",'video/mp4; codecs="avc1.42E01E"','video/webm; codecs="vp8"','video/webm; codecs="vp9"',"video/x-matroska"].sort(),t=document.createElement("video"),n=new Audio,a="MediaRecorder"in window;return e.reduce((e,o)=>{let r={mimeType:o,audioPlayType:n.canPlayType(o),videoPlayType:t.canPlayType(o),mediaSource:MediaSource.isTypeSupported(o),mediaRecorder:!!a&&MediaRecorder.isTypeSupported(o)};return(r.audioPlayType||r.videoPlayType||r.mediaSource||r.mediaRecorder)&&e.push(r),e},[])}catch(e){return}})();return N({time:e.stop(),test:"media",passed:!0}),{mimeTypes:t}}catch(e){N({test:"media",passed:!1}),O(e);return}}async function eI(e){try{var t;let n,o=R();await D(o);let r=a["Navigator.appVersion"]||a["Navigator.deviceMemory"]||a["Navigator.doNotTrack"]||a["Navigator.hardwareConcurrency"]||a["Navigator.language"]||a["Navigator.languages"]||a["Navigator.maxTouchPoints"]||a["Navigator.oscpu"]||a["Navigator.platform"]||a["Navigator.userAgent"]||a["Navigator.vendor"]||a["Navigator.plugins"]||a["Navigator.mimeTypes"]||!1,i=!("chrome"in window)||navigator.userAgent.includes(navigator.appVersion),l={platform:B(()=>{let{platform:t}=navigator;return"string"==typeof t&&["win","linux","mac","arm","pike","linux","iphone","ipad","ipod","android","x11"].filter(e=>t.toLowerCase().includes(e))[0]||es("platform",`${t} is unusual`),A!==w&&(r=!0,G("Navigator.platform",`${w} platform and ${A} user agent do not match`)),e&&t!=e.platform&&(r=!0),t}),system:B(()=>E(navigator.userAgent),"userAgent system failed"),userAgentParsed:await B(async()=>{let e=H(()=>navigator.userAgent),t=E(e),n=await f();return(e=>{let{ua:t,os:n,isBrave:a}=e,o=/ipad|iphone|ipod|ios|mac/ig.test(n),r=/OPR\//g.test(t),i=/Vivaldi/g.test(t),l=/DuckDuckGo/g.test(t),s=/YaBrowser/g.test(t),c=t.match(/(palemoon)\/(\d+)./i),d=t.match(/(edgios|edg|edge|edga)\/(\d+)./i),m=d&&/edgios/i.test(d[1]),u=t.match(/(crios|chrome)\/(\d+)./i),g=t.match(/(fxios|firefox)\/(\d+)./i),p=/AppleWeb
226Kit/g.test(t)&&/Safari/g.test(t)&&!g&&!u&&!d&&t.match(/(version)\/(\d+)\.(\d|\.)+\s(mobile|safari)/i);if(u){let e=u[1],t=u[2],n=r?" Opera":i?" Vivaldi":l?" DuckDuckGo":s?" Yandex":d?" Edge":a?" Brave":"";return`${e} ${t}${n}`}if(m){let e=d[1],t=d[2];return`${e} ${t}`}if(g){let e=c?c[1]:g[1],t=c?c[2]:g[2];return`${e} ${t}`}if(o&&p){let e=p[2];return`Safari ${e}`}return"unknown"})({ua:e,os:t,isBrave:n})}),device:B(()=>(e=>{let{userAgent:t,excludeBuild:n=!0}=e;if(!t)return"unknown";let a=/\((.+)\)/,o=/^(linux|[a-z]|wv|mobile|[a-z]{2}(-|_)[a-z]{2}|[a-z]{2})$|windows|(rv:|trident|webview|iemobile).+/i,r=/android( |-)\d+/i,i=/^(windows|ms(-|)office|microsoft|compatible|[a-z]|x64|[a-z]{2}(-|_)[a-z]{2}|[a-z]{2})$|(rv:|outlook|ms(-|)office|microsoft|trident|\.net|msie|httrack|media center|infopath|aol|opera|iemobile|webbrowser).+/i,l=/^([a-z]|x11|[a-z]{2}(-|_)[a-z]{2}|[a-z]{2})$|(rv:|trident).+/i,s=/^([a-z]|x11|unknown|compatible|[a-z]{2}(-|_)[a-z]{2}|[a-z]{2})$|(rv:|java|oracle|\+http|http|unknown|mozilla|konqueror|valve).+/i,c=/^([a-z]|macintosh|compatible|mimic|[a-z]{2}(-|_)[a-z]{2}|[a-z]{2}|rv|\d+\.\d+)$|(rv:|silk|valve).+/i,d=/(ppc |intel |)(mac|mac |)os (x |x|)(\d{2}(_|\.)\d{1,2}|\d{2,})/i,m=/((symbianos|nokia|blackberry|morphos|mac).+)|\/linux|freebsd|symbos|series \d+|win\d+|unix|hp-ux|bsdi|bsd|x86_64/i,u=(e,t)=>e.filter(e=>t.test(e)).length;if(t=t.trim().replace(/\s{2,}/," ").replace(/\((khtml|unlike|vizio|like gec|internal dummy|org\.eclipse|openssl|ipv6|via translate|safari|cardamon).+|xt\d+\)/ig,""),!a.test(t))return"unknown";{let e=t.match(a)[0].slice(1,-1).replace(/,/g,";").split(";").map(e=>e.trim());if(u(e,/((android).+)/i))return e.map(e=>r.test(e)?r.exec(e)[0].replace("-"," "):e).filter(e=>!o.test(e)).join(" ").replace(n?/build\/.+\s|\sbuild\/.+/i:"","").trim().replace(/\s{2,}/," ");{if(u(e,/((windows).+)/i))return e.filter(e=>!i.test(e)).join(" ").replace(/\sNT (\d+\.\d+)/,(e,t)=>"10.0"==t?" 10":"6.3"==t?" 8.1":"6.2"==t?" 8":"6.1"==t?" 7":"6.0"==t?" Vista":"5.2"==t?" XP Pro":"5.1"==t?" XP":"5.0"==t?" 2000":"4.0"==t?e:" "+t).replace(/w(ow|in)64/i,"(64-bit)").trim().replace(/\s{2,}/," ");if(u(e,/cros/i))return e.filter(e=>!l.test(e)).join(" ").replace(n?/\d+\.\d+\.\d+/i:"","").trim().replace(/\s{2,}/," ");if(u(e,/linux|x11|ubuntu|debian/i))return e.filter(e=>!s.test(e)).join(" ").trim().replace(/\s{2,}/," ");if(u(e,/(cpu iphone|cpu os|iphone os|mac os|macos|intel os|ppc mac).+/i))return e.map(e=>{if(d.test(e)){let t=d.exec(e)[0],n=((/(\d{2}(_|\.)\d{1,2}|\d{2,})/.exec(t)||[])[0]||"").replace(/\./g,"_"),a={"10_7":"Lion","10_8":"Mountain Lion","10_9":"Mavericks","10_10":"Yosemite","10_11":"El Capitan","10_12":"Sierra","10_13":"High Sierra","10_14":"Mojave","10_15":"Catalina",11:"Big Sur",12:"Monterey",13:"Ventura"}[/^10/.test(n)?n:(/^\d{2,}/.exec(n)||[])[0]];return a?`macOS ${a}`:t}return e}).filter(e=>!c.test(e)).join(" ").replace(/\slike mac.+/ig,"").trim().replace(/\s{2,}/," ");let t=e.filter(e=>m.test(e));return t.length?t.join(" ").trim().replace(/\s{2,}/," "):e.join(" ")}}})({userAgent:navigator.userAgent}),"userAgent device failed"),userAgent:B(()=>{let{userAgent:t}=navigator;return i||es("userAgent",`${t} does not match appVersion`),/\s{2,}|^\s|\s$/g.test(t)&&es("userAgent","extra spaces detected"),ei(t).length&&es("userAgent is gibberish",t),e&&t!=e.userAgent&&(r=!0),t.trim().replace(/\s{2,}/," ")},"userAgent failed"),uaPostReduction:(t=(navigator||{}).userAgent,n=(/Mozilla\/5\.0 \((Macintosh; Intel Mac OS X 10_15_7|Windows NT 10\.0; Win64; x64|(X11; (CrOS|Linux) x86_64)|(Linux; Android 10(; K|)))\) AppleWebKit\/537\.36 \(KHTML, like Gecko\) Chrome\/\d+\.0\.0\.0( Mobile|) Safari\/537\.36/.exec(t)||[])[1],g&&!!n),appVersion:B(()=>{let{appVersion:e}=navigator;return i||es("appVersion",`${e} does not match userAgent`),"appVersion"in navigator&&!e&&es("appVersion","Living Standard property returned falsy value"),/\s{2,}|^\s|\s$/g.test(e)&&es("appVersion","extra spaces detected"),e.trim().replace(/\s{2,}/," ")},"appVersion failed"),deviceMemory:B(()=>{if(!("deviceMemory"in navigator))return;let{deviceMemory:t}=navigator;({"0.25":!0,"0.5":!0,1:!0,2:!0,4:!0,8:!0})[t]||es("deviceMemory",`${t} is not a valid value [0.25, 0.5, 1, 2, 4, 8]`);let n=performance?.memory?.jsHeapSizeLimit||null,a=n?+(n/0x40000000).toFixed(1):0;return a>t&&es("deviceMemory",`available memory ${a}GB is greater than device memory ${t}GB`),e&&t!==e.deviceMemory&&(r=!0),t},"deviceMemory failed"),doNotTrack:B(()=>{let{doNotTrack:e}=navigator;return({1:!0,true:!0,yes:!0,0:!0,false:!0,no:!0,unspecified:!0,null:!0,undefined:!0})[e]||es("doNotTrack - unusual result",e),e},"doNotTrack failed"),globalPrivacyControl:B(()=>
226{if(!("globalPrivacyControl"in navigator))return;let{globalPrivacyControl:e}=navigator;return({1:!0,true:!0,yes:!0,0:!0,false:!0,no:!0,unspecified:!0,null:!0,undefined:!0})[e]||es("globalPrivacyControl - unusual result",e),e},"globalPrivacyControl failed"),hardwareConcurrency:B(()=>{if(!("hardwareConcurrency"in navigator))return;let{hardwareConcurrency:t}=navigator;return e&&t!==e.hardwareConcurrency&&(r=!0),t},"hardwareConcurrency failed"),language:B(()=>{let{language:t,languages:n}=navigator;if(t&&n){let e=/^.{0,2}/g.exec(t)[0];return/^.{0,2}/g.exec(n[0])[0]!=e&&es("language/languages",`${[t,n].join(" ")} mismatch`),`${n.join(", ")} (${t})`}return e&&t!=e.language&&(r=!0,G("Navigator.language",`${t} does not match worker scope`)),e&&n!==e.languages&&(r=!0,G("Navigator.languages",`${n} does not match worker scope`)),`${t} ${n}`},"language(s) failed"),maxTouchPoints:B(()=>"maxTouchPoints"in navigator?navigator.maxTouchPoints:null,"maxTouchPoints failed"),vendor:B(()=>navigator.vendor,"vendor failed"),mimeTypes:B(()=>{let{mimeTypes:e}=navigator;return e?[...e].map(e=>e.type):[]},"mimeTypes failed"),oscpu:B(()=>navigator.oscpu,"oscpu failed"),plugins:B(()=>{var e,t;let n,a,o,i,l,s,c,d,m,{plugins:u}=navigator;if(!(u instanceof PluginArray))return;let g=u?[...u].map(e=>({name:e.name,description:e.description,filename:e.filename,version:e.version})):[],{lies:p}=(e=u,t=navigator.mimeTypes,n=[],a=Object.getOwnPropertyNames(e).filter(e=>isNaN(+e)),o=Object.getOwnPropertyNames(t).filter(e=>isNaN(+e)),i=[...e],l=[...t],s=new Set(o),c=[...new Set(l.map(e=>e.enabledPlugin))],d=new Set(a),m=c.map(e=>e&&e.name),[...d].forEach(e=>{new Set(m).has(e)||d.delete(e)}),i.filter(e=>{try{let t="MimeType"==Object.getPrototypeOf(e[0]).constructor.name;return t||d.delete(e.name),!t}catch(t){return d.delete(e.name),!0}}).length&&n.push("missing mimetype"),i.map(e=>Object.values(e)).flat().map(e=>e.type).forEach(e=>{s.has(e)||s.delete(e)}),i.forEach(e=>Object.values(e).map(e=>e.type).forEach(t=>{if(!s.has(t))return n.push("invalid mimetype"),d.delete(e.name)})),{validPlugins:i.filter(e=>d.has(e.name)),validMimeTypes:l.filter(e=>s.has(e.type)),lies:[...new Set(n)]});return p.length&&(r=!0,p.forEach(e=>G("Navigator.plugins",e))),g.length&&g.forEach(e=>{let{name:t,description:n}=e,a=ei(t),o=ei(n);a.length&&es("plugin name is gibberish",t),o.length&&es("plugin description is gibberish",n)}),g},"plugins failed"),properties:B(()=>Object.keys(Object.getPrototypeOf(navigator)),"navigator keys failed")};return await D(o),Promise.all([B(()=>{if(navigator.userAgentData&&navigator.userAgentData.getHighEntropyValues)return navigator.userAgentData.getHighEntropyValues(["platform","platformVersion","architecture","bitness","model","uaFullVersion"]).then(e=>{let{brands:t,mobile:n}=navigator.userAgentData||{},a=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.filter(e=>!/Not/.test(e.brand)).map(e=>`${e.brand}${t?` ${e.version}`:""}`)},o=e=>e.length>1?e.filter(e=>!/Chromium/.test(e)):e;return e.brands||(e.brands=t),e.brandsVersion=a(e.brands,!0),e.brands=a(e.brands),e.brandsVersion=o(e.brandsVersion),e.brands=o(e.brands),e.mobile||(e.mobile=n),Object.keys(e).sort().reduce((t,n)=>(t[n]=e[n],t),{})})},"userAgentData failed"),B(()=>{if("bluetooth"in navigator&&navigator.bluetooth&&navigator.bluetooth.getAvailability)return navigator.bluetooth.getAvailability()},"bluetoothAvailability failed"),B(()=>{let e=e=>navigator.permissions.query({name:e}).then(t=>({name:e,state:t.state})).catch(t=>({name:e,state:"unknown"}));return"permissions"in navigator?Promise.all([e("accelerometer"),e("ambient-light-sensor"),e("background-fetch"),e("background-sync"),e("bluetooth"),e("camera"),e("clipboard"),e("device-info"),e("display-capture"),e("gamepad"),e("geolocation"),e("gyroscope"),e("magnetometer"),e("microphone"),e("midi"),e("nfc"),e("notifications"),e("persistent-storage"),e("push"),e("screen-wake-lock"),e("speaker"),e("speaker-selection")]).then(e=>e.reduce((e,t)=>{let{state:n,name:a}=t||{};return e[n]?e[n].push(a):e[n]=[a],e},{})).catch(e=>console.error(e)):void 0},"permissions failed"),B(()=>
226{if("gpu"in navigator)return navigator.gpu.requestAdapter().then(e=>{if(!e)return;let{limits:t={},features:n=[]}=e||{},a=e=>{let{architecture:a,description:o,device:r,vendor:i}=e,l=[i,a,o,r],s=[...n.values()],c=(e=>{let t={};for(let n in e)t[n]=e[n];return t})(t);return C.webGpuAdapter=l,C.webGpuFeatures=s,C.webGpuLimits=ep(c),{adapterInfo:l,limits:c}},{info:o}=e;return o?a(o):e.requestAdapterInfo().then(a)})},"webgpu failed")]).then(e=>{let[t,n,a,i]=e;return N({time:o.stop(),test:"navigator",passed:!0}),{...l,userAgentData:t,bluetoothAvailability:n,permissions:a,webgpu:i,lied:r}}).catch(e=>(console.error(e),N({time:o.stop(),test:"navigator",passed:!0}),{...l,lied:r}))}catch(e){N({test:"navigator",passed:!1}),O(e,"Navigator failed or blocked by client");return}}async function eP(){try{let e=R();await D(e);let t={extensionHashPattern:void 0,privacy:void 0,security:void 0,mode:void 0,extension:void 0,engine:g?"Blink":p?"Gecko":""},n=e=>RegExp(`${e}+$`),a=function(e,t){let a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;return new Promise(o=>setTimeout(()=>{let e=a||+new Date,r=n(t).test(e)?n(t).exec(e)[0]:e;return o(r)},e))},r=async()=>{let e=+new Date,t=+(""+e).slice(-1),n=await a(0,t,e),o=await a(1,t),r=await a(2,t),i=await a(3,t),l=await a(4,t),s=await a(5,t),c=await a(6,t),d=await a(7,t),m=await a(8,t),u=await a(9,t),g=(""+n).slice(-1),p=(""+o).slice(-1),h=(""+r).slice(-1),b=(""+i).slice(-1),f=(""+l).slice(-1),S=(""+s).slice(-1),E=(""+c).slice(-1),y=(""+d).slice(-1),k=(""+m).slice(-1),A=(""+u).slice(-1),w=g==p&&g==h&&g==b&&g==f&&g==S&&g==E&&g==y&&g==k&&g==A,M=(""+n).length,D=[n,o,r,i,l,s,c,d,m,u];return{protection:w,delays:D.map(e=>(""+e).length>M?(""+e).slice(-M):e),precision:w?Math.min(...D.map(e=>(""+e).length)):void 0,precisionValue:w?g:void 0}},[i,l]=await Promise.all([f(),g?void 0:r()]);if(i){let e=S();t.privacy="Brave",t.security={FileSystemWritableFileStream:"FileSystemWritableFileStream"in window,Serial:"Serial"in window,ReportingObserver:"ReportingObserver"in window},t.mode=e.allow?"allow":e.standard?"standard":e.strict?"strict":""}let{protection:s}=l||{};if(p&&s){let e={OfflineAudioContext:"OfflineAudioContext"in window,WebGL2RenderingContext:"WebGL2RenderingContext"in window,WebAssembly:"WebAssembly"in window,maxTouchPoints:"maxTouchPoints"in navigator,RTCRtpTransceiver:"RTCRtpTransceiver"in window,MediaDevices:"MediaDevices"in window,Credential:"Credential"in window},n=Object.keys(e),a=new Set(["RTCRtpTransceiver","MediaDevices","Credential"]),o=n.filter(t=>a.has(t)&&!e[t]).length==a.size,r=!e.WebAssembly;t.privacy=o?"Tor Browser":"Firefox",t.security={reduceTimerPrecision:!0,...e},t.mode=o?r?"safer":"standard":"resistFingerprinting"}let c=Object.keys(o).length,d="c767712b";await D(e);let m={contentDocumentHash:ep(o["HTMLIFrameElement.contentDocument"]),contentWindowHash:ep(o["HTMLIFrameElement.contentWindow"]),createElementHash:ep(o["Document.createElement"]),getElementByIdHash:ep(o["Document.getElementById"]),appendHash:ep(o["Element.append"]),insertAdjacentElementHash:ep(o["Element.insertAdjacentElement"]),insertAdjacentHTMLHash:ep(o["Element.insertAdjacentHTML"]),insertAdjacentTextHash:ep(o["Element.insertAdjacentText"]),prependHash:ep(o["Element.prepend"]),replaceWithHash:ep(o["Element.replaceWith"]),appendChildHash:ep(o["Node.appendChild"]),insertBeforeHash:ep(o["Node.insertBefore"]),replaceChildHash:ep(o["Node.replaceChild"]),getContextHash:ep(o["HTMLCanvasElement.getContext"]),toDataURLHash:ep(o["HTMLCanvasElement.toDataURL"]),toBlobHash:ep(o["HTMLCanvasElement.toBlob"]),getImageDataHash:ep(o["CanvasRenderingContext2D.getImageData"]),getByteFrequencyDataHash:ep(o["AnalyserNode.getByteFrequencyData"]),getByteTimeDomainDataHash:ep(o["AnalyserNode.getByteTimeDomainData"]),getFloatFrequencyDataHash:ep(o["AnalyserNode.getFloatFrequencyData"]),getFloatTimeDomainDataHash:ep(o["AnalyserNode.getFloatTimeDomainData"]),copyFromChannelHash:ep(o["AudioBuffer.copyFromChannel"]),getChannelDataHash:ep(o["AudioBuffer.getChannelData"]),hardwareConcurrencyHash:ep(o["Navigator.hardwareConcurrency"]),availHeightHash:ep(o["Screen.availHeight"]),availLeftHash:ep(o["Screen.availLeft"]),availTopHash:ep(o["Screen.availTop"]),availWi
226dthHash:ep(o["Screen.availWidth"]),colorDepthHash:ep(o["Screen.colorDepth"]),pixelDepthHash:ep(o["Screen.pixelDepth"])};return t.extensionHashPattern=Object.keys(m).reduce((e,t)=>{let n=m[t];return n==d||(e[t.replace("Hash","")]=n),e},{}),t.extension=(e=>{let{pattern:t,hash:n,prototypeLiesLen:a}=e,{noscript:o,trace:r,cydec:i,canvasblocker:l,chameleon:s,duckduckgo:c,privacybadger:d,privacypossum:m,jshelter:u,puppeteerExtra:g,fakeBrowser:p}=t;if(a){if(a>=7&&r.contentDocumentHash.includes(n.contentDocumentHash)&&r.contentWindowHash.includes(n.contentWindowHash)&&r.createElementHash.includes(n.createElementHash)&&r.getElementByIdHash.includes(n.getElementByIdHash)&&r.toDataURLHash.includes(n.toDataURLHash)&&r.toBlobHash.includes(n.toBlobHash)&&r.getImageDataHash.includes(n.getImageDataHash))return"Trace";if(a>=7&&i.contentDocumentHash.includes(n.contentDocumentHash)&&i.contentWindowHash.includes(n.contentWindowHash)&&i.createElementHash.includes(n.createElementHash)&&i.getElementByIdHash.includes(n.getElementByIdHash)&&i.toDataURLHash.includes(n.toDataURLHash)&&i.toBlobHash.includes(n.toBlobHash)&&i.getImageDataHash.includes(n.getImageDataHash))return"CyDec";if(a>=6&&l.contentDocumentHash.includes(n.contentDocumentHash)&&l.contentWindowHash.includes(n.contentWindowHash)&&l.appendHash.includes(n.appendHash)&&l.toDataURLHash.includes(n.toDataURLHash)&&l.toBlobHash.includes(n.toBlobHash)&&l.getImageDataHash.includes(n.getImageDataHash))return"CanvasBlocker";if(a>=9&&s.appendHash.includes(n.appendHash)&&s.insertAdjacentElementHash.includes(n.insertAdjacentElementHash)&&s.insertAdjacentHTMLHash.includes(n.insertAdjacentHTMLHash)&&s.insertAdjacentTextHash.includes(n.insertAdjacentTextHash)&&s.prependHash.includes(n.prependHash)&&s.replaceWithHash.includes(n.replaceWithHash)&&s.appendChildHash.includes(n.appendChildHash)&&s.insertBeforeHash.includes(n.insertBeforeHash)&&s.replaceChildHash.includes(n.replaceChildHash))return"Chameleon";if(a>=7&&c.toDataURLHash.includes(n.toDataURLHash)&&c.toBlobHash.includes(n.toBlobHash)&&c.getImageDataHash.includes(n.getImageDataHash)&&c.getByteFrequencyDataHash.includes(n.getByteFrequencyDataHash)&&c.getByteTimeDomainDataHash.includes(n.getByteTimeDomainDataHash)&&c.getFloatFrequencyDataHash.includes(n.getFloatFrequencyDataHash)&&c.getFloatTimeDomainDataHash.includes(n.getFloatTimeDomainDataHash)&&c.copyFromChannelHash.includes(n.copyFromChannelHash)&&c.getChannelDataHash.includes(n.getChannelDataHash)&&c.hardwareConcurrencyHash.includes(n.hardwareConcurrencyHash)&&c.availHeightHash.includes(n.availHeightHash)&&c.availLeftHash.includes(n.availLeftHash)&&c.availTopHash.includes(n.availTopHash)&&c.availWidthHash.includes(n.availWidthHash)&&c.colorDepthHash.includes(n.colorDepthHash)&&c.pixelDepthHash.includes(n.pixelDepthHash))return"DuckDuckGo";if(a>=2&&d.getImageDataHash.includes(n.getImageDataHash)&&d.toDataURLHash.includes(n.toDataURLHash))return"Privacy Badger";if(a>=3&&m.hardwareConcurrencyHash.includes(n.hardwareConcurrencyHash)&&m.availWidthHash.includes(n.availWidthHash)&&m.colorDepthHash.includes(n.colorDepthHash))return"Privacy Possum";if(a>=2&&o.contentDocumentHash.includes(n.contentDocumentHash)&&o.contentWindowHash.includes(n.contentDocumentHash)&&o.getContextHash.includes(n.getContextHash)&&"c767712b"==n.hardwareConcurrencyHash)return"NoScript";if(a>=14&&u.contentDocumentHash.includes(n.contentDocumentHash)&&u.contentWindowHash.includes(n.contentDocumentHash)&&u.appendHash.includes(n.appendHash)&&u.insertAdjacentElementHash.includes(n.insertAdjacentElementHash)&&u.insertAdjacentHTMLHash.includes(n.insertAdjacentHTMLHash)&&u.prependHash.includes(n.prependHash)&&u.replaceWithHash.includes(n.replaceWithHash)&&u.appendChildHash.includes(n.appendChildHash)&&u.insertBeforeHash.includes(n.insertBeforeHash)&&u.replaceChildHash.includes(n.replaceChildHash)&&u.hardwareConcurrencyHash.includes(n.hardwareConcurrencyHash))return"JShelter";if(a>=13&&g.contentDocumentHash.includes(n.contentDocumentHash)&&g.contentWindowHash.includes(n.contentWindowHash)&&g.createElementHash.includes(n.createElementHash)&&g.getElementByIdHash.includes(n.getElementByIdHash)&&g.appendHash.includes(n.appendHash)&&g.insertAdjacentElementHash.includes(n.insertAdjacentElementHash)&&g.insertAdjacentHTMLHash.includes(n.insertAdjacentHTMLHash)&&g.insertAdjacentTextHash.includes(n.insertAdjacentTextHash)&&g.prependHash.includes(n.prependHash)&&g.replaceWithHash.includes(n.replaceWithHash)&&g.appendChildHash.includes(n.appendChildHash)&&g.insertBeforeHash.includes(n.insertBeforeHash)&&g.contentDocumentHash.includes(n.contentDocumentHash)&&g.replaceChildHash.includes(n.replaceChildHash)&&g.getContextHash.includes(n.getContextHash)&&g.toDataURLHash.includes(n.toDataURLHash)&&g.toBlobHash.includes(n.toBlobHash)&&g.getImageDataHash.includes(n.getImageDataHash)&&g.hardwareConcurrencyHash.includes(n.hardwareConcurrencyHash))return"puppeteer-extra";if(a>=12&&p.appendChildHash.includes(n.appendChildHash)&&p.getContextHash.includes(n.getContextHash)&&p.toDataURLHash.includes(n.toDataURLHash)&&p.toBlobHash.includes(n.toBlobHash)&&p.getImageDataHash.includes(n.getImageDataHash)&&p.hardwareConcurrencyHash.includes(n.hardwareConcurrencyHash)&&p.availHeightHash.includes(n.availHeightHash)&&p.availLeftHash.includes(n.availLeftHash)&&p.availTopHash.includes(n.availTopHash)&&p.availWi
226dthHash.includes(n.availWidthHash)&&p.colorDepthHash.includes(n.colorDepthHash)&&p.pixelDepthHash.includes(n.pixelDepthHash))return"FakeBrowser"}})({pattern:{noscript:{contentDocumentHash:["0b637a33","37e2f32e","318390d1"],contentWindowHash:["0b637a33","37e2f32e","318390d1"],getContextHash:["0b637a33","081d6d1b",d]},trace:{contentDocumentHash:["ca9d9c2f"],contentWindowHash:["ca9d9c2f"],createElementHash:["77dea834"],getElementByIdHash:["77dea834"],getImageDataHash:["77dea834"],toBlobHash:["77dea834",d],toDataURLHash:["77dea834",d]},cydec:{contentDocumentHash:["945b0c78","15771efa","403a1a21","55e9b959"],contentWindowHash:["945b0c78","15771efa","403a1a21","55e9b959"],createElementHash:["3dd86d6f","cc7cb598","4237b44c","1466aaf0","0cb0c682","73c662d9","72b1ee2b","ae3d02c9"],getElementByIdHash:["3dd86d6f","cc7cb598","4237b44c","1466aaf0","0cb0c682","73c662d9","72b1ee2b","ae3d02c9"],getImageDataHash:["044f14c2","db60d7f9","15771efa","db60d7f9","55e9b959"],toBlobHash:["044f14c2","15771efa","afec348d","55e9b959","0dbbf456"],toDataURLHash:["ecb498d9","15771efa","6b838fb6","d19104ec","6985d315","55e9b959","fe88259f"]},canvasblocker:{contentDocumentHash:["98ec858e","dbbaf31f"],contentWindowHash:["98ec858e","dbbaf31f"],appendHash:["98ec858e","dbbaf31f"],getImageDataHash:["98ec858e","a2971888","dbbaf31f",d],toBlobHash:["9f1c3dfe","a2971888","dbbaf31f",d],toDataURLHash:["98ec858e","a2971888","dbbaf31f",d]},chameleon:{appendHash:["77dea834"],insertAdjacentElementHash:["77dea834"],insertAdjacentHTMLHash:["77dea834"],insertAdjacentTextHash:["77dea834"],prependHash:["77dea834"],replaceWithHash:["77dea834"],appendChildHash:["77dea834"],insertBeforeHash:["77dea834"],replaceChildHash:["77dea834"]},duckduckgo:{toDataURLHash:["fd00bf5d","8ee7df22",d],toBlobHash:["fd00bf5d","8ee7df22",d],getImageDataHash:["fd00bf5d","8ee7df22",d],getByteFrequencyDataHash:["fd00bf5d","8ee7df22",d],getByteTimeDomainDataHash:["fd00bf5d","8ee7df22",d],getFloatFrequencyDataHash:["fd00bf5d","8ee7df22",d],getFloatTimeDomainDataHash:["fd00bf5d","8ee7df22",d],copyFromChannelHash:["fd00bf5d","8ee7df22",d],getChannelDataHash:["fd00bf5d","8ee7df22",d],hardwareConcurrencyHash:["dfd41ab4"],availHeightHash:["dfd41ab4"],availLeftHash:["dfd41ab4"],availTopHash:["dfd41ab4"],availWidthHash:["dfd41ab4"],colorDepthHash:["dfd41ab4"],pixelDepthHash:["dfd41ab4"]},privacybadger:{getImageDataHash:["0cb0c682"],toDataURLHash:["0cb0c682"]},privacypossum:{hardwareConcurrencyHash:["452924d5"],availWidthHash:["452924d5"],colorDepthHash:["452924d5"]},jshelter:{contentDocumentHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],contentWindowHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],appendHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],insertAdjacentElementHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],insertAdjacentHTMLHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],prependHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],replaceWithHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],appendChildHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],insertBeforeHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],replaceChildHash:["0007ab4e","0b637a33","866fa7e7","318390d1"],hardwareConcurrencyHash:["dfd41ab4"]},puppeteerExtra:{contentDocumentHash:["55e9b959"],contentWindowHash:["55e9b959","50a281b5"],createElementHash:["55e9b959"],getElementByIdHash:["55e9b959"],appendHash:["55e9b959"],insertAdjacentElementHash:["55e9b959"],insertAdjacentHTMLHash:["55e9b959"],insertAdjacentTextHash:["55e9b959"],prependHash:["55e9b959"],replaceWithHash:["55e9b959"],appendChildHash:["55e9b959"],insertBeforeHash:["55e9b959"],replaceChildHash:["55e9b959"],getContextHash:["55e9b959",d],toDataURLHash:["55e9b959",d],toBlobHash:["55e9b959",d],getImageDataHash:["55e9b959"],hardwareConcurrencyHash:["efbd4cf9","a63491fb","b011fd1c","194ecf17","55e9b959"]},fakeBrowser:{appendChildHash:["8dfec2ec","f43e6134"],getContextHash:["83b825ab","a63491fb"],toDataURLHash:["83b825ab","a63491fb"],toBlobHash:["83b825ab","a63491fb"],getImageDataHash:["83b825ab","a63491fb"],hardwareConcurrencyHash:["83b825ab","a63491fb"],availHeightHash:["83b825ab","a63491fb"],availLeftHash:["83b825ab","a63491fb"],availTopHash:["83b825ab","a63491fb"],availWi
226dthHash:["83b825ab","a63491fb"],colorDepthHash:["83b825ab","a63491fb"],pixelDepthHash:["83b825ab","a63491fb"]}},hash:m,prototypeLiesLen:c}),N({time:e.stop(),test:"resistance",passed:!0}),t}catch(e){N({test:"resistance",passed:!1}),O(e);return}}async function eL(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0];try{let t=R();t.start();let n=a["Screen.width"]||a["Screen.height"]||a["Screen.availWidth"]||a["Screen.availHeight"]||a["Screen.colorDepth"]||a["Screen.pixelDepth"]||!1,{width:o,height:r,availWidth:i,availHeight:l,colorDepth:s,pixelDepth:c}=window.screen||{},d=window.devicePixelRatio||0;!(p&&1!=d)&&(matchMedia(`(device-width: ${o}px) and (device-height: ${r}px)`).matches||(n=!0,G("Screen","failed matchMedia")));let m=!matchMedia(`(resolution: ${d}dppx)`).matches;!h&&m&&(n=!0,G("Window.devicePixelRatio","lied dpr")),o>800&&!(o-i||r-l)&&(T.SCREEN=!0);let u={width:o,height:r,availWidth:i,availHeight:l,colorDepth:s,pixelDepth:c,touch:function(){try{return"ontouchstart"in window&&!!document.createEvent("TouchEvent")}catch(e){return!1}}(),lied:n};return e&&N({time:t.stop(),test:"screen",passed:!0}),u}catch(t){e&&N({test:"screen",passed:!1}),O(t);return}}async function eO(){return await new Promise(e=>setTimeout(()=>e(void 0),50)),new Promise(async e=>{try{let t=R();await D(t);let n="speechSynthesis"in window;if(n&&speechSynthesis.getVoices(),!n)return N({test:"speech",passed:!1}),e(null);let o=!!a["SpeechSynthesis.getVoices"],r=setTimeout(()=>(N({test:"speech",passed:!1}),e(null)),300),i=()=>{let n,a=speechSynthesis.getVoices(),i=(a||[]).find(e=>e.localService);if(!a||!a.length||g&&!i)return;clearTimeout(r);let l=(n=new Set,a.filter(e=>{let{voiceURI:t}=e;return!n.has(t)&&(n.add(t),!0)})),s=l.filter(e=>e.localService).map(e=>e.name),c=l.filter(e=>!e.localService).map(e=>e.name),d=[...new Set(l.map(e=>e.lang))],m=l.filter(e=>e.default&&e.localService),u="",p="";if(1===m.length){let{name:e,lang:t}=m[0];u=e,p=(t||"").replace(/_/,"-")}let{locale:h}=Intl.DateTimeFormat().resolvedOptions();return p&&p.split("-")[0]!==h.split("-")[0]&&(C.voiceLangMismatch=!0,T.TIME_ZONE=!0),N({time:t.stop(),test:"speech",passed:!0}),e({local:s,remote:c,languages:d,defaultVoiceName:u,defaultVoiceLang:p,lied:o})};if(i(),speechSynthesis.addEventListener)return speechSynthesis.addEventListener("voiceschanged",i);speechSynthesis.onvoiceschanged=i}catch(t){return N({test:"speech",passed:!1}),O(t),e(null)}})}async function eB(){let e=e=>{let t="BigInt64Array"in window&&h&&!/(Cr|Fx)iOS/.test(navigator.userAgent);if(!e||t)return;e.clear(e.COLOR_BUFFER_BIT);let n=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,n);let a=new Float32Array([-.9,-.7,0,.8,-.7,0,0,.5,0]);e.bufferData(e.ARRAY_BUFFER,a,e.STATIC_DRAW);let o=e.createProgram(),r=e.createShader(e.VERTEX_SHADER);e.shaderSource(r,`
227			attribute vec2 attrVertex;
228			varying vec2 varyinTexCoordinate;
229			uniform vec2 uniformOffset;
230			void main(){
231				varyinTexCoordinate = attrVertex + uniformOffset;
232				gl_Position = vec4(attrVertex, 0, 1);
233			}
234		`),e.compileShader(r),e.attachShader(o,r);let i=e.createShader(e.FRAGMENT_SHADER);return e.shaderSource(i,`
235			precision mediump float;
236			varying vec2 varyinTexCoordinate;
237			void main() {
238				gl_FragColor = vec4(varyinTexCoordinate, 1, 1);
239			}
240		`),e.compileShader(i),e.attachShader(o,i),e.linkProgram(o),e.useProgram(o),o.vertexPosAttrib=e.getAttribLocation(o,"attrVertex"),o.offsetUniform=e.getUniformLocation(o,"uniformOffset"),e.enableVertexAttribArray(o.vertexPosArray),e.vertexAttribPointer(o.vertexPosAttrib,3,e.FLOAT,!1,0,0),e.uniform2f(o.offsetUniform,1,1),e.drawArrays(e.LINE_LOOP,0,3),e};try{var t;let n,o,r=R();await D(r);let i=a["HTMLCanvasElement.toDataURL"],l=a["HTMLCanvasElement.getContext"],s=a["WebGLRenderingContext.getParameter"]||a["WebGL2RenderingContext.getParameter"]||a["WebGLRenderingContext.getExtension"]||a["WebGL2RenderingContext.getExtension"],c=i||l||s||a["WebGLRenderingContext.getSupportedExtensions"]||a["WebGL2RenderingContext.getSupportedExtensions"]||!1,d=window;!b&&J&&(d=J);let m=d.document;
240"OffscreenCanvas"in window?(n=new d.OffscreenCanvas(256,256),o=new d.OffscreenCanvas(256,256)):(n=m.createElement("canvas"),o=m.createElement("canvas"));let u=(e,t)=>{try{if("webgl2"==t)return e.getContext("webgl2")||e.getContext("experimental-webgl2");return e.getContext("webgl")||e.getContext("experimental-webgl")||e.getContext("moz-webgl")||e.getContext("webkit-3d")}catch(e){return}},g=u(n,"webgl"),p=u(o,"webgl2");if(!g)return void N({test:"webgl",passed:!1});let h=(e,t)=>{if(!e)return;let n=B(()=>e.getShaderPrecisionFormat(e[t],e.LOW_FLOAT)),a=B(()=>e.getShaderPrecisionFormat(e[t],e.MEDIUM_FLOAT)),o=B(()=>e.getShaderPrecisionFormat(e[t],e.HIGH_FLOAT)),r=B(()=>e.getShaderPrecisionFormat(e[t],e.HIGH_INT));return{LOW_FLOAT:n,MEDIUM_FLOAT:a,HIGH_FLOAT:o,HIGH_INT:r}},f=(e,t)=>{let n={};for(let a in t){let o=t[a];n[e+"."+a+".precision"]=o?B(()=>o.precision):void 0,n[e+"."+a+".rangeMax"]=o?B(()=>o.rangeMax):void 0,n[e+"."+a+".rangeMin"]=o?B(()=>o.rangeMin):void 0}return n},S=e=>{if(!e)return{};let t=new Set(["ALIASED_POINT_SIZE_RANGE","ALIASED_LINE_WIDTH_RANGE","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","MAX_TEXTURE_SIZE","MAX_VIEWPORT_DIMS","SUBPIXEL_BITS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VARYING_VECTORS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_IMAGE_UNITS","MAX_FRAGMENT_UNIFORM_VECTORS","SHADING_LANGUAGE_VERSION","VENDOR","RENDERER","VERSION","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_RENDERBUFFER_SIZE","MAX_3D_TEXTURE_SIZE","MAX_ELEMENTS_VERTICES","MAX_ELEMENTS_INDICES","MAX_TEXTURE_LOD_BIAS","MAX_DRAW_BUFFERS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_VERTEX_UNIFORM_COMPONENTS","MAX_ARRAY_TEXTURE_LAYERS","MAX_PROGRAM_TEXEL_OFFSET","MAX_VARYING_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_COLOR_ATTACHMENTS","MAX_SAMPLES","MAX_VERTEX_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_UNIFORM_BUFFER_BINDINGS","MAX_UNIFORM_BLOCK_SIZE","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_SERVER_WAIT_TIMEOUT","MAX_ELEMENT_INDEX","MAX_CLIENT_WAIT_TIMEOUT_WEBGL"].sort());return Object.getOwnPropertyNames(Object.getPrototypeOf(e)).filter(e=>t.has(e)).reduce((t,n)=>{let a=e.getParameter(e[n]);return a&&"buffer"in Object.getPrototypeOf(a)?t[n]=[...a]:t[n]=a,t},{})},E=e=>{let t=e?e.getExtension("WEBGL_debug_renderer_info"):null;return t?{UNMASKED_VENDOR_WEBGL:e.getParameter(t.UNMASKED_VENDOR_WEBGL),UNMASKED_RENDERER_WEBGL:e.getParameter(t.UNMASKED_RENDERER_WEBGL)}:{}},y=e=>{if(!e)return[];let t=B(()=>e.getSupportedExtensions());return t||[]},k=(t,n)=>{if(!t)return{dataURI:void 0,pixels:void 0};try{e(t);let{drawingBufferWidth:a,drawingBufferHeight:o}=t,r="";if("OffscreenCanvas"===t.canvas.constructor.name){let t=document.createElement("canvas");e(u(t,n)),r=t.toDataURL()}else r=t.canvas.toDataURL();let i=a/15,l=o/6,s=new Uint8Array(i*l*4);try{t.readPixels(0,0,i,l,t.RGBA,t.UNSIGNED_BYTE,s)}catch(e){return{dataURI:r,pixels:void 0}}return{dataURI:r,pixels:[...s]}}catch(e){return O(e)}};await D(r);let A={...S(g),...E(g)},w={...S(p),...E(p)},M={ALIASED_LINE_WIDTH_RANGE:!0,SHADING_LANGUAGE_VERSION:!0,VERSION:!0},v=Object.keys(w).filter(e=>!!A[e]&&!M[e]&&""+A[e]!=""+w[e]);v.length&&es("webgl/webgl2 mirrored params mismatch",v.toString()),await D(r);let{dataURI:x,pixels:I}=k(g,"webgl")||{},{dataURI:P,pixels:L}=k(p,"webgl2")||{},H={extensions:[...y(g),...y(p)],pixels:I,pixels2:L,dataURI:x,dataURI2:P,parameters:{...{...A,...w},...{antialias:g.getContextAttributes()?g.getContextAttributes().antialias:void 0,MAX_VIEWPORT_DIMS:B(()=>[...g.getParameter(g.MAX_VIEWPORT_DIMS)]),MAX_TEXTURE_MAX_ANISOTROPY_EXT:(e=>{if(!e)return;let t=e.getExtension("EXT_texture_filter_anisotropic")||e.getExtension("MOZ_EXT_texture_filter_anisotropic")||e.getExtension("WEBKIT_EXT_texture_filter_anisotropic");return t?e.getParameter(t.MAX_TEXTURE_MAX_ANISOTROPY_EXT):void 0})(g),...f("VERTEX_SHADER",h(g,"VERTEX_SHADER")),...f("FRAGMENT_SHADER",h(g,"FRAGMENT_SHADER")),MAX_DRAW_BUFFERS_WEBGL:B(()=>{let e=g.getExtension("WEBGL_draw_buffers");return e?g.getParameter(e.MAX_DRAW_BUFFERS_WEBGL):void 0})}},parameterOrExtensionLie:s,lied:c},F=H.parameters?[...new Set(Object.values(H.parameters).filter(e=>e&&"string"!=typeof e).flat().map(e=>Number(e)))].sort((e,t)=>
240e-t):void 0,G=(t=H.parameters?.UNMASKED_RENDERER_WEBGL)?/radeon/i.test(t)?"AMD":/geforce/i.test(t)?"NVIDIA":(/(adreno|amd|apple|intel|llvm|mali|microsoft|nvidia|parallels|powervr|samsung|swiftshader|virtualbox|vmware)/i.exec(t)?.[0]||"other").toLocaleUpperCase():null,V=""+F,_=G&&V?ep([G,V]):void 0,W=F?F.reduce((e,t,n)=>e^+t+n,0):void 0;C.webglParams=V,C.webglBrandCapabilities=_,C.webglCapabilities=W;let z=_&&!["e9bdc904","fca66520","b62321c3","b362c2f5","0eb2fc19","55e821f7","6951838b","08847ba5","c00582e9","6edf1720","2b80fd96","6346cf49","2259b706","e796b84e","5a5658f1","58871380","5a90a5f8","cfd20274","5582debe","e4569a5b","f2293447","c04889b1","1b251fd7","ea59b343","b8ea6e7f","16c481a6","58fdc720","bf06317e","6294d84e","e6464c9f","a397a568","81b9cd29","1bfd326c","70859bdb","70a095b1","230d6a0d","3bf321b8","c04e374a","be2dfaea","f9714b3d","461f97e1","d09c1c07","a1c808d5","0b2d4333","5ddb9237","39ead506","802e2547","49bf7358","c026469d","581f3282","f0d5a3c7","6357365c","ae2c4777","849ccb64","e965d541","794f8929","2402c3d2","e15afab0","696e1548","afa583bc","ea54d525","5ca55292","f51cab9a","087d5759","8d371161","d860ff42","1453d59a","12e92e62","b504662d","cf9643e6","dd67b076","a581f55e","b224cc7c","2f014c41","33bc5492","0fc123c7","dbdbe7a4","d2172943","6864dcb0","3fea1100","d913dafa","d6bf35ad","a26e9aa9","171831c5","534002ab","12f8ac14","3ff82303","99b1a1c6","74daf866","fc37fe1f","6aa1ff7e","ec928655","8428fc8e","d8bd9e5a","8bd0b91b","52e348ba","c2bce496","e142d1f9","2f582ed9","4065cd69","66628310","903c8847","1ff7c7e7","402e1064","eb799d34","ef8f5db1","e155c47e","177cc258","6f81cbe7","6b290cd4","f1077334","d1e76c89","5d786cef","eaa13804","fafa14c0","2c04c2eb","c93b5366","4962ada1","25a760b8","bf610cdb","bcf7315f","801d73af","00fe1ec9","0f39d057","f8e65486","3999a5e1","ad01a422","dc271c35","b50edd99","e68b5c4e","82a9a2f1","0cdb985d","a2383001","ce2e3d16","c9bc4ffd","eed2e5e1","e10339b3","f7451c92","43038e3d","8541aa4c","fa994f33","b2d6fc98","6a75ae3b","67995996","0f840379","e574bef6","b5494027","3660b71f","a22788f8","e16bb1bb","e5962ba3","c5e9a883","5ee41456","3a91d0d6","c05f7596","ded74044","f5d19934","c79634c2","18579e83","1e8a9a79","508d1625","d05a66eb","34270469","f3c6ea11","55d3aa56","7b2e5242","e965d180","258789d0","d2dc2474","d498797d","ea7f90ea","a4d34176","c04b0635","02b3eea3","6b07d4f8","6c168801","ab40bece","a4b988da","4c9e8f5d","5aea1af1","795e5c95","27db292c","057857ac","23d1ce20","917871e7","beffda26","482c81b2","c092fdf8","6248d9e3","e316e4c0","ade75c4f","7360ebd1","300ee927","5bef9a39","3740c4c7","668f0f93","6dfae3cb","9b67b7dc","de793ead","149a1efa","79a57aa9","bfe1c212","62bf7ef1","25f9385d","4027d193","e9dbb8d5","cba1878b","4503e771","cbeade8c","c07307c6","cefb72ca","623c3bfd","00b72507","8219e1a4","61d9464e","7238c5dd","b4d40dcc","0463627d","5831d5fd","0586e20b","467b99a5","b10c2a85","f221fef5","7b811cdd","99ef2c3b","5b6a17aa","a5a477ae","19594666","464d51ac","a97d3858","2048bc5a","6e806ffc","698c5c2e","27938830","66d992e8","c7e37ca0","78640859","502c402c","d970d345","ec050bb6","741688e4","61178f2a","9c814c1b","79284c47","d734ea08","101e0582","ea8f5ad0","61eecaae","dcd9a29e","48af038f","bb77a469","85479b99","0639a81a","df9daeb6","9fd76352","3b724916","2bb488da","fe0997b6","9e2b5e94","f33d918e","b8961d15","a3f9ee34","a9640880","bc0f9686","2d15287f","aa73f3a4","00c1b42d"].includes(_),j=W&&![-0x7ffd0302,-0x7ffe73eb,-0x7ffe23e9,-0x7ffe7400,-0x7ffe2400,-0x7fe8f954,-0x7fe8f946,-0x7ffd031a,-0x7ffaa935,-0x7fef389b,-0x7ffd224e,-0x7fef3883,-0x4464b9fd,-0x7ffe77ce,-0x7fe8d9d1,-0x7fff7161,-0x446047e9,349912,-0x7fff2b51,-0x7fff9fd7,-0x7fef388b,-0x4464e9f1,-0x7fe8d9c7,-0x7fff5726,-0x44721353,1229835,-0x7ffe27c8,-0x7ffdc32b,-0x7ffdb3fe,-0x7ffed7cd,-0x7fff7179,-0x7ffd729f,-0x7fed3379,-0x4464b9eb,0x3b8decba,-0x7fedbb66,-0x7fedbb7f,-0x4464e9e9,-0x446067d4,-0x7ffab348,-0x7ffe73cd,-0x7fff716d,-0x7ffd032e,-0x7eff4a48,-0x7fed3b7d,-0x447771e7,-0x7ffe87c7,-0x7ffe23ef,-0x446707f6,-0x7ffe33e7,-0x44643c7f,-0x74ffc826,-0x7fffbedc,-0x7fe8d9c1,-0x45658052,-0x7ffe81e1,-0x7ffe23ee,0x4468bb7a,-0x7ffd030c,-0x7ffdc326,-0x7fffa831,-0x7fffdf98,-0x4475d2c2,-0x7fef3999,-0x7ffe23c3,-0x7ffd4301,-0x7ffe91ea,-0x7ffe83b4,-0x74ffe832,-0x7ffde12e,-0x7fff7147,-0x7fff7152,0x3b888e00,-0x8094023,-0x7fff7441,-0x7ffde93b,-0x7fedbbf7,-0x7ffe91ff,-0x7ef7baa4,0xb0017db,-0x7ffea28c,0x600017d9,-0x4f652794,0x7fff5736,351513,-0x7fef7880,-0x7fec39f6,-0x4460474f,1197075,0x3b8a2d24,-0x7ffd2269,-0x7ef7b9c2,-0x7ffe81f9,-0x7ef7bb42,-0x4469821a,-0x3fffa823,-0x7fefb983,-0x7ffe3380,0x3b8dcc35,-0x6ff1b394,-0x2862b790,-0x7f8fa23,-0x7ffa93d3,-0x7fff8b05,-0x7ef7da9d,-0x44643c67,-0x7ff1664b,-0x7fecf91f,-0x7ffee3fd,-0x7ffef3fd,-0x7fe8f981,-0x7ffd4b51,-0x7ffe63e2,-0x7fecfa5c,-0x7fe8d94e,-0x7fff8b48,-0x7ffd12ac,-0x7fffcb5d,-0x260ea823,-0x4fffa823,-0x7fffbfa4,-0x7fe8f8d9,-0x4467a76f,-0x7fff7454,83625,-0x7fece8b7,-0x7ffd2271,-0x7fed3b67,-0x7ffd729e,-0x7fff2b67,-0x7ffe93fd,-0x7ffd1246,-0x7ff166d6,-0x7fff7156,-0x7fef38f8,21667,-0x7fe8f9c9,-0x7ffd1782,-0x7fed3363,1099536,-0x7ffacb1d,-0x7fef28b3,-0x7ffe33c3,-0x7fef792c,-0x7ffd2218,-0x7fed33a1,-0x6ff19389,-0x7fe8f847,0x7fffde8d,-0x7ffea2cb,-0x7fece993,-0x7ffeb979,-0x7ffef3ac,-0x7fff51ac,-0x7fee3ba4,-0x7ffed3ce,-0x4477793d,-0x7fed9762,0x7ff26008,-0x7fef796c,-0x7ffef2cd,-0x7fef1981,-0x7ffe87e4,-0x7ffe83d6,-0x74ff603a,-0x7ef7ba9e,-0x7fe85950,-0x7fff7478,-0x7fff7710,-0x7fe8f86c,-0x7ffaa933,-0x7fe879d9,-0x7ffed71b,-0x7fff7175,-0x7ffd32b3,0x7fffee8d,-0x456d71de,-0x7fece812,-0x7fe8f96d,-0x7fff8b47,-0x7fef7e88,-0x7ffe3362,-0x7fef38a2,-0x7fffdf97,-0x7fece8a0,-0x7fecf8ac,-0x7fff7458,-0x7ffd224f,-0x3b9a9810,-0x7fe8d969,-0x7ffaadfe,-0x44643c69,-0x7ffea3b4,-0xff8832,-0x7fece994,-0x447233de,-0x7fece90e,-0x7fef7168,-0x456d70bf,-0x7fffbecc,-0x4467a7e0,-0x4477f92b,-0x44645bf2,-0x7ffe337f,-0x7ffdc334,-0x7fe8e9e2,-0x7ffa8928,-0x7ffef3cb,-0x7ffe535a,-0x7ffe53a0,-0x44654790,-0x27ffe832,-0x7ffe2374,-0x7ffe5400,-0x7ffd031b,-0x7fe8f944,1508998,-0x7ffe6379,-0x7ffe53d0,-0x7ffee3fa,-0x7fe8b954,-0x7ffdc33e,-0x7ffe7372,-0x7ffd0303].includes(W);return z&&(T.WEBGL=!0,es("WebGLRenderingContext.getParameter","suspicious gpu")),j&&(T.WEBGL=!0,es("WebGLRenderingContext.getParameter","suspicious capabilities")),N({time:r.stop(),test:"webgl",passed:!0}),{...H,gpu:{...(e=>{if(!e)return;let t=[...new Set(["AMD","ANGLE","ASUS","ATI","ATI Radeon","ATI Technologies Inc","Adreno","Android Emulator","Apple","Apple GPU","Apple M1","Chipset","D3D11","Direct3D","Express Chipset","GeForce","Generation","Generic Renderer","Google","Google SwiftShader","Graphics","Graphics Media Accelerator","HD Graphics Family","Intel","Intel(R) HD Graphics","Intel(R) UHD Graphics","Iris","KBL Graphics","Mali","Mesa","Mesa DRI","Metal","Microsoft","Microsoft Basic Render Driver","Microsoft Corporation","NVIDIA","NVIDIA Corporation","NVIDIAGameReadyD3D","OpenGL","OpenGL Engine","Open Source Technology Center","Parallels","Parallels Display Adapter","PCIe","Plus Graphics","PowerVR","Pro Graphics","Quadro","Radeon","Radeon Pro","Radeon Pro Vega","Samsung","SSE2","VMware","VMware SVGA 3D","Vega","VirtualBox","VirtualBox Graphics Adapter","Vulkan","Xe Graphics","llvmpipe"].filter(t=>(""+e).includes(t)))].sort().join(", "),n=t.length,a=/\s{2,}|^\s|\s$/.test(e),o=/^ANGLE/.test(e)&&!(/^ANGLE \((.+)\)/.exec(e)||[])[1],r=ei(e,{strict:!0}).join(", "),i=n&&!a&&!o,l=i&&!r.length?"high":i&&r.length?"moderate":"low",s=new Set([a?"foun
240d extra spaces":void 0,o?"broken angle structure":void 0]);return s.delete(void 0),{parts:t,warnings:[...s],gibbers:r,confidence:l,grade:"high"==l?"A":"moderate"==l?"C":"F"}})((H.parameters||{}).UNMASKED_RENDERER_WEBGL)||{},compressedGPU:function(e){if(e)return(""+e).replace(/ANGLE \(|\sDirect3D.+|\sD3D.+|\svs_.+\)|\((DRM|POLARIS|LLVM).+|Mesa.+|(ATI|INTEL)-.+|Metal\s-\s.+|NVIDIA\s[\d|\.]+/ig,"").replace(/(\s(ti|\d{1,2}GB|super)$)/ig,"").replace(/\s{2,}/g," ").trim().replace(/((r|g)(t|)(x|s|\d) |Graphics |GeForce |Radeon (HD |Pro |))(\d+)/i,function(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return`${t[1]}${t[6][0]}${t[6].slice(1).replace(/\d/g,"0")}s`})}((H.parameters||{}).UNMASKED_RENDERER_WEBGL)}}}catch(e){N({test:"webgl",passed:!1}),O(e);return}}async function eH(){let e,t,n,o=!!g&&await f(),r=o?S():{},i=o&&(r.standard||r.strict),[l,s,c,d,m,u,h,b,E,y,k,A,w,M,D,v,x]=await Promise.all([eO(),eE(),eB(),ek(),function(){try{let e=R();e.start();let t=J||window,n=Object.getOwnPropertyNames(t).filter(e=>!/_|\d{3,}/.test(e));n.sort();let a="Event";if(p){let e=n.indexOf(a);-1!=e&&(n=[...n=n.slice(0,e).concat(n.slice(e+1)),a]),["PerformanceNavigationTiming","Performance"].forEach(e=>{let t=n.indexOf(e);return -1!=t&&(n=n.slice(0,t).concat(n.slice(t+1))),n})}let o=n.filter(e=>/moz/i.test(e)).length,r=n.filter(e=>/webkit/i.test(e)).length,i=n.filter(e=>/apple/i.test(e)).length,l={keys:n,apple:i,moz:o,webkit:r};return N({time:e.stop(),test:"window",passed:!0}),{...l}}catch(e){N({test:"window",passed:!1}),O(e);return}}(),function(){try{let e=R();e.start();let t=Object.getOwnPropertyNames(document.documentElement).filter(e=>!e.startsWith("__react"));return N({time:e.stop(),test:"html element",passed:!0}),{keys:t}}catch(e){N({test:"html element",passed:!1}),O(e);return}}(),function(){try{let e=R();e.start();let t=((e,t)=>{let{require:[n]}=t;try{let t="getComputedStyle"==e?getComputedStyle(document.body):"HTMLElement.style"==e?document.body.style:"CSSRuleList.style"==e?document.styleSheets[0].cssRules[0].style:void 0;if(!t)throw TypeError("invalid argument string");let n=Object.getPrototypeOf(t),a=Object.getOwnPropertyNames(n),o=[],r=/^--.*$/;Object.keys(t).forEach(e=>{let n=!isNaN(+e),a=t[e],i=r.test(e),l=r.test(a);return n&&!l?o.push(a):n||i?void 0:o.push(e)});let i={},l=e=>e.charAt(0).toUpperCase()+e.slice(1),s=/[A-Z]/g;o.forEach(e=>{let n;if(i[e])return;let a=e.indexOf("-")>-1,o=s.test(e),r=e.charAt(0),c=a&&"-"==r,d=o&&r==r.toUpperCase();if(e=c?e.slice(1):d?(n=e).charAt(0).toLowerCase()+n.slice(1):e,a){let n=e.split("-").map((e,t)=>0==t?e:l(e)).join("");n in t?i[n]=!0:l(n)in t&&(i[l(n)]=!0)}else if(o){let n=e.replace(s,e=>"-"+e.toLowerCase());n in t?i[n]=!0:`-${n}`in t&&(i[`-${n}`]=!0)}});let c=[...new Set([...a,...o,...Object.keys(i)])],d=(""+n).match(/\[object (.+)\]/)[1];return{keys:c,interfaceName:d}}catch(e){n(e);return}})("getComputedStyle",{require:[O]}),n=(e=>{try{let t=["ActiveBorder","ActiveCaption","ActiveText","AppWorkspace","Background","ButtonBorder","ButtonFace","ButtonHighlight","ButtonShadow","ButtonText","Canvas","CanvasText","CaptionText","Field","FieldText","GrayText","Highlight","HighlightText","InactiveBorder","InactiveCaption","InactiveCaptionText","InfoBackground","InfoText","LinkText","Mark","MarkText","Menu","MenuText","Scrollbar","ThreeDDarkShadow","ThreeDFace","ThreeDHighlight","ThreeDLightShadow","ThreeDShadow","VisitedText","Window","WindowFrame","WindowText"],n=["caption","icon","menu","message-box","small-caption","status-bar"],a=e=>({colors:t.map(t=>(e.setAttribute("style",`background-color: ${t} !important`),{[t]:getComputedStyle(e).backgroundColor})),fonts:n.map(t=>{e.setAttribute("style",`font: ${t} !important`);let n=getComputedStyle(e);return{[t]:`${n.fontSize} ${n.fontFamily}`}})});if(!e){e=document.createElement("div"),document.body.append(e);let t=a(e);return e.parentNode.removeChild(e),t}return a(e)}catch(e){O(e);return}})(Z);return N({time:e.stop(),test:"computed style",passed:!0}),{computedStyle:t,system:n}}catch(e){N({test:"computed style",passed:!1}),O(e);return}}
240(),function(){let e=(t,n)=>0==n?t:e(n,t%n),t=e=>{let{body:t,type:n,rangeStart:a,rangeLen:o}=e,r=[...Array(o)].map((e,t)=>(t+=a,`@media(device-${n}:${t}px){body{--device-${n}:${t};}}`)).join("");return t.innerHTML=`<style>${r}</style>`,getComputedStyle(t).getPropertyValue(`--device-${n}`).trim()};try{let n,a=R();a.start();let o=J.window,{body:r}=o.document,{width:i,availWidth:l,height:s,availHeight:c}=o.screen,d=!(i-l||s-c);(screen.width!==i||i>800&&d)&&(T.IFRAME_SCREEN=!0);let m=(n=e(i,s),`${i/n}/${s/n}`),u={"prefers-reduced-motion":o.matchMedia("(prefers-reduced-motion: no-preference)").matches?"no-preference":o.matchMedia("(prefers-reduced-motion: reduce)").matches?"reduce":void 0,"prefers-color-scheme":o.matchMedia("(prefers-color-scheme: light)").matches?"light":o.matchMedia("(prefers-color-scheme: dark)").matches?"dark":void 0,monochrome:o.matchMedia("(monochrome)").matches?"monochrome":o.matchMedia("(monochrome: 0)").matches?"non-monochrome":void 0,"inverted-colors":o.matchMedia("(inverted-colors: inverted)").matches?"inverted":o.matchMedia("(inverted-colors: none)").matches?"none":void 0,"forced-colors":o.matchMedia("(forced-colors: none)").matches?"none":o.matchMedia("(forced-colors: active)").matches?"active":void 0,"any-hover":o.matchMedia("(any-hover: hover)").matches?"hover":o.matchMedia("(any-hover: none)").matches?"none":void 0,hover:o.matchMedia("(hover: hover)").matches?"hover":o.matchMedia("(hover: none)").matches?"none":void 0,"any-pointer":o.matchMedia("(any-pointer: fine)").matches?"fine":o.matchMedia("(any-pointer: coarse)").matches?"coarse":o.matchMedia("(any-pointer: none)").matches?"none":void 0,pointer:o.matchMedia("(pointer: fine)").matches?"fine":o.matchMedia("(pointer: coarse)").matches?"coarse":o.matchMedia("(pointer: none)").matches?"none":void 0,"device-aspect-ratio":o.matchMedia(`(device-aspect-ratio: ${m})`).matches?m:void 0,"device-screen":o.matchMedia(`(device-width: ${i}px) and (device-height: ${s}px)`).matches?`${i} x ${s}`:void 0,"display-mode":o.matchMedia("(display-mode: fullscreen)").matches?"fullscreen":o.matchMedia("(display-mode: standalone)").matches?"standalone":o.matchMedia("(display-mode: minimal-ui)").matches?"minimal-ui":o.matchMedia("(display-mode: browser)").matches?"browser":void 0,"color-gamut":o.matchMedia("(color-gamut: srgb)").matches?"srgb":o.matchMedia("(color-gamut: p3)").matches?"p3":o.matchMedia("(color-gamut: rec2020)").matches?"rec2020":void 0,orientation:o.matchMedia("(orientation: landscape)").matches?"landscape":o.matchMedia("(orientation: portrait)").matches?"portrait":void 0};r.innerHTML=`
241		<style>
242		@media (prefers-reduced-motion: no-preference) {body {--prefers-reduced-motion: no-preference}}
243		@media (prefers-reduced-motion: reduce) {body {--prefers-reduced-motion: reduce}}
244		@media (prefers-color-scheme: light) {body {--prefers-color-scheme: light}}
245		@media (prefers-color-scheme: dark) {body {--prefers-color-scheme: dark}}
246		@media (monochrome) {body {--monochrome: monochrome}}
247		@media (monochrome: 0) {body {--monochrome: non-monochrome}}
248		@media (inverted-colors: inverted) {body {--inverted-colors: inverted}}
249		@media (inverted-colors: none) {body {--inverted-colors: none}}
250		@media (forced-colors: none) {body {--forced-colors: none}}
251		@media (forced-colors: active) {body {--forced-colors: active}}
252		@media (any-hover: hover) {body {--any-hover: hover}}
253		@media (any-hover: none) {body {--any-hover: none}}
254		@media (hover: hover) {body {--hover: hover}}
255		@media (hover: none) {body {--hover: none}}
256		@media (any-pointer: fine) {body {--any-pointer: fine}}
257		@media (any-pointer: coarse) {body {--any-pointer: coarse}}
258		@media (any-pointer: none) {body {--any-pointer: none}}
259		@media (pointer: fine) {body {--pointer: fine}}
260		@media (pointer: coarse) {body {--pointer: coarse}}
261		@media (pointer: none) {body {--pointer: none}}
262		@media (device-aspect-ratio: ${m}) {body {--device-aspect-ratio: ${m}}}
263		@media (device-width: ${i}px) and (device-height: ${s}px) {body {--device-screen: ${i} x ${s}}}
264		@media (display-mode: fullscreen) {body {--display-mode: fullscreen}}
265		@media (display-mode: standalone) {body {--display-mode: standalone}}
266		@media (display-mode: minimal-ui) {body {--display-mode: minimal-ui}}
267		@media (display-mode: browser) {body {--display-mode: browser}}
268		@media (color-gamut: srgb) {body {--color-gamut: srgb}}
269		@media (color-gamut: p3) {body {--color-gamut: p3}}
270		@media (color-gamut: rec2020) {body {--color-gamut: rec2020}}
271		@media (orientation: landscape) {body {--orientation: landscape}}
272		@media (orientation: portrait) {body {--orientation: portrait}}
273		</style>
274		`;let g=getComputedStyle(r),p={"prefers-reduced-motion":g.getPropertyValue("--prefers-reduced-motion").trim()||void 0,"prefers-color-scheme":g.getPropertyValue("--prefers-color-scheme").trim()||void 0,monochrome:g.getPropertyValue("--monochrome").trim()||void 0,"inverted-colors":g.getPropertyValue("--inverted-colors").trim()||void 0,"forced-colors":g.getPropertyValue("--forced-colors").trim()||void 0,"any-hover":g.getPropertyValue("--any-hover").trim()||void 0,hover:g.getPropertyValue("--hover").trim()||void 0,"any-pointer":g.getPropertyValue("--any-pointer").trim()||void 0,pointer:g.getPropertyValue("--pointer").trim()||void 0,"device-aspect-ratio":g.getPropertyValue("--device-aspect-ratio").trim()||void 0,"device-screen":g.getPropertyValue("--device-screen").trim()||void 0,"display-mode":g.getPropertyValue("--display-mode").trim()||void 0,"color-gamut":g.getPropertyValue("--color-gamut").trim()||void 0,orientation:g.getPropertyValue("--orientation").trim()||void 0},h=(e=>{let{body:n,width:a,height:o}=e,r=t({body:n,type:"width",rangeStart:a,rangeLen:1}),i=t({body:n,type:"height",rangeStart:o,rangeLen:1});return r&&i?{width:a,height:o}:([...Array(10)].find((e,a)=>(r||(r=t({body:n,type:"width",rangeStart:1e3*a,rangeLen:1e3})),i||(i=t({body:n,type:"height",rangeStart:1e3*a,rangeLen:1e3})),r&&i)),{width:+r,height:+i})})({body:r,width:i,height:s});return N({time:a.stop(),test:"css media",passed:!0}),{mediaCSS:p,matchMediaCSS:u,screenQuery:h}}catch(e){N({test:"css media",passed:!1}),O(e);return}}(),eL(),function(){try{let e=R();e.start();let t=!1;["acos","acosh","asin","asinh","atan","atanh","atan2","cbrt","cos","cosh","expm1","exp","hypot","log","log1p","log10","sin","sinh","sqrt","tan","tanh","pow"].forEach(e
274=>{a[`Math.${e}`]&&(t=!0);let n="cos"==e?[1e308]:"acos"==e||"asin"==e||"atanh"==e?[.5]:"pow"==e||"atan2"==e?[Math.PI,2]:[Math.PI],o=Math[e](...n),r=Math[e](...n);isNaN(o)&&isNaN(r)||o==r||(t=!0,G(`Math.${e}`,"expected x and got y"))});let n=[["acos",[.123],"acos(0.123)",1.4474840516030247,NaN,NaN,1.4474840516030245],["acos",[Math.SQRT1_2],"acos(Math.SQRT1_2)",.7853981633974483,NaN,NaN,NaN],["acosh",[1e308],"acosh(1e308)",709.889355822726,NaN,NaN,NaN],["acosh",[Math.PI],"acosh(Math.PI)",1.811526272460853,NaN,NaN,NaN],["acosh",[Math.SQRT2],"acosh(Math.SQRT2)",.881373587019543,NaN,NaN,.8813735870195432],["asin",[.123],"asin(0.123)",.12331227519187199,NaN,NaN,NaN],["asinh",[1e300],"asinh(1e308)",691.4686750787736,NaN,NaN,NaN],["asinh",[Math.PI],"asinh(Math.PI)",1.8622957433108482,NaN,NaN,NaN],["atan",[2],"atan(2)",1.1071487177940904,NaN,NaN,1.1071487177940906],["atan",[Math.PI],"atan(Math.PI)",1.2626272556789115,NaN,NaN,NaN],["atanh",[.5],"atanh(0.5)",.5493061443340548,NaN,NaN,.5493061443340549],["atan2",[1e-310,2],"atan2(1e-310, 2)",5e-311,NaN,NaN,NaN],["atan2",[Math.PI,2],"atan2(Math.PI)",1.0038848218538872,NaN,NaN,NaN],["cbrt",[100],"cbrt(100)",4.641588833612779,NaN,NaN,NaN],["cbrt",[Math.PI],"cbrt(Math.PI)",1.4645918875615231,NaN,NaN,1.4645918875615234],["cos",[.123],"cos(0.123)",.9924450321351935,NaN,NaN,NaN],["cos",[Math.PI],"cos(Math.PI)",-1,NaN,NaN,NaN],["cos",[5860847362277284e23],"cos(5.860847362277284e+38)",-.10868049424995659,NaN,-.9779661551196617,NaN],["cos",[-1e308],"cos(-1e308)",-.8913089376870335,NaN,.99970162388838,NaN],["cos",[13*Math.E],"cos(13*Math.E)",-.7108118501064331,-.7108118501064332,NaN,NaN],["cos",[57*Math.E],"cos(57*Math.E)",-.536911695749024,-.5369116957490239,NaN,NaN],["cos",[21*Math.LN2],"cos(21*Math.LN2)",-.4067775970251724,-.40677759702517235,-.6534063185820197,NaN],["cos",[51*Math.LN2],"cos(51*Math.LN2)",-.7017203400855446,-.7017203400855445,NaN,NaN],["cos",[21*Math.LOG2E],"cos(21*Math.LOG2E)",.4362848063618998,.43628480636189976,NaN,NaN],["cos",[25*Math.SQRT2],"cos(25*Math.SQRT2)",-.6982689820462377,-.6982689820462376,NaN,NaN],["cos",[50*Math.SQRT1_2],"cos(50*Math.SQRT1_2)",-.6982689820462377,-.6982689820462376,NaN,NaN],["cos",[21*Math.SQRT1_2],"cos(21*Math.SQRT1_2)",-.6534063185820198,NaN,NaN,NaN],["cos",[17*Math.LOG10E],"cos(17*Math.LOG10E)",.4537557425982784,.45375574259827833,NaN,NaN],["cos",[2*Math.LOG10E],"cos(2*Math.LOG10E)",.6459044007438142,NaN,.6459044007438141,NaN],["cosh",[1],"cosh(1)",1.5430806348152437,NaN,NaN,NaN],["cosh",[Math.PI],"cosh(Math.PI)",11.591953275521519,NaN,NaN,NaN],["cosh",[492*Math.LOG2E],"cosh(492*Math.LOG2E)",9199870313877772e292,9199870313877774e292,NaN,NaN],["cosh",[502*Math.SQRT2],"cosh(502*Math.SQRT2)",10469199669023138e292,1046919966902314e293,NaN,NaN],["expm1",[1],"expm1(1)",1.718281828459045,NaN,NaN,1.7182818284590453],["expm1",[Math.PI],"expm1(Math.PI)",22.140692632779267,NaN,NaN,NaN],["exp",[.123],"exp(0.123)",1.1308844209474893,NaN,NaN,NaN],["exp",[Math.PI],"exp(Math.PI)",23.140692632779267,NaN,NaN,NaN],["hypot",[1,2,3,4,5,6],"hypot(1, 2, 3, 4, 5, 6)",9.539392014169456,NaN,NaN,NaN],["hypot",[5860847362277284e23,5860847362277284e23],"hypot(5.860847362277284e+38, 5.860847362277284e+38)",8288489826731116e23,8288489826731114e23,NaN,NaN],["hypot",[2*Math.E,-100],"hypot(2*Math.E, -100)",100.14767208675259,100.14767208675258,NaN,NaN],["hypot",[6*Math.PI,-100],"hypot(6*Math.PI, -100)",101.76102278593319,101.7610227859332,NaN,NaN],["hypot",[2*Math.LN2,-100],"hypot(2*Math.LN2, -100)",100.0096085986525,100.00960859865252,NaN,NaN],["hypot",[Math.LOG2E,-100],"hypot(Math.LOG2E, -100)",100.01040630344929,100.01040630344927,NaN,NaN],["hypot",[Math.SQRT2,-100],"hypot(Math.SQRT2, -100)",100.00999950004999,100.00999950005,NaN,NaN],["hypot",[Math.SQRT1_2,-100],"hypot(Math.SQRT1_2, -100)",100.0024999687508,100.00249996875078,NaN,NaN],["hypot",[2*Math.LOG10E,-100],"hypot(2*Math.LOG10E, -100)",100.00377216279416,100.00377216279418,NaN,NaN],["log",[.123],"log(0.123)",-2.0955709236097197,NaN,NaN,NaN],["log",[Math.PI],"log(Math.PI)",1.1447298858494002,NaN,NaN,NaN],["log1p",[.123],"log1p(0.123)",.11600367575630613,NaN,NaN,NaN],["log1p",[Math.PI],"log1p(Math.PI)",1.4210804127942926,NaN,NaN,NaN],["log10",[.123],"log10(0.123)",-.9100948885606021,NaN,NaN,NaN],["log10",[Math.PI],"log10(Math.PI)",.4971498726941338,.49714987269413385,NaN,NaN],["log10",[Math.E],"log10(Math.E)",.4342944819032518,NaN,NaN,NaN],["log10",[34*Math.E],"log10(34*Math.E)",1.9657733989455068,1.9
27465773398945507,NaN,NaN],["log10",[Math.LN2],"log10(Math.LN2)",-.1591745389548616,NaN,NaN,NaN],["log10",[11*Math.LN2],"log10(11*Math.LN2)",.8822181462033634,.8822181462033635,NaN,NaN],["log10",[Math.LOG2E],"log10(Math.LOG2E)",.15917453895486158,NaN,NaN,NaN],["log10",[43*Math.LOG2E],"log10(43*Math.LOG2E)",1.792642994534448,1.7926429945344482,NaN,NaN],["log10",[Math.LOG10E],"log10(Math.LOG10E)",-.36221568869946325,NaN,NaN,NaN],["log10",[7*Math.LOG10E],"log10(7*Math.LOG10E)",.4828823513147936,.48288235131479357,NaN,NaN],["log10",[Math.SQRT1_2],"log10(Math.SQRT1_2)",-.15051499783199057,NaN,NaN,NaN],["log10",[2*Math.SQRT1_2],"log10(2*Math.SQRT1_2)",.1505149978319906,.15051499783199063,NaN,NaN],["log10",[Math.SQRT2],"log10(Math.SQRT2)",.1505149978319906,.15051499783199063,NaN,NaN],["sin",[5860847362277284e23],"sin(5.860847362277284e+38)",.994076732536068,NaN,-.20876350121720488,NaN],["sin",[Math.PI],"sin(Math.PI)",12246467991473532e-32,NaN,12246063538223773e-32,NaN],["sin",[39*Math.E],"sin(39*Math.E)",-.7181630308570677,-.7181630308570678,NaN,NaN],["sin",[35*Math.LN2],"sin(35*Math.LN2)",-.7659964138980511,-.765996413898051,NaN,NaN],["sin",[110*Math.LOG2E],"sin(110*Math.LOG2E)",.9989410140273756,.9989410140273757,NaN,NaN],["sin",[7*Math.LOG10E],"sin(7*Math.LOG10E)",.10135692924965616,.10135692924965614,NaN,NaN],["sin",[35*Math.SQRT1_2],"sin(35*Math.SQRT1_2)",-.3746357547858202,-.37463575478582023,NaN,NaN],["sin",[21*Math.SQRT2],"sin(21*Math.SQRT2)",-.9892668187780498,-.9892668187780497,NaN,NaN],["sinh",[1],"sinh(1)",1.1752011936438014,NaN,NaN,NaN],["sinh",[Math.PI],"sinh(Math.PI)",11.548739357257748,NaN,NaN,11.548739357257746],["sinh",[Math.E],"sinh(Math.E)",7.544137102816975,NaN,NaN,NaN],["sinh",[Math.LN2],"sinh(Math.LN2)",.75,NaN,NaN,NaN],["sinh",[Math.LOG2E],"sinh(Math.LOG2E)",1.9978980091062795,NaN,NaN,NaN],["sinh",[492*Math.LOG2E],"sinh(492*Math.LOG2E)",9199870313877772e292,9199870313877774e292,NaN,NaN],["sinh",[Math.LOG10E],"sinh(Math.LOG10E)",.44807597941469024,
274NaN,NaN,NaN],["sinh",[Math.SQRT1_2],"sinh(Math.SQRT1_2)",.7675231451261164,NaN,NaN,NaN],["sinh",[Math.SQRT2],"sinh(Math.SQRT2)",1.935066822174357,NaN,NaN,1.9350668221743568],["sinh",[502*Math.SQRT2],"sinh(502*Math.SQRT2)",10469199669023138e292,1046919966902314e293,NaN,NaN],["sqrt",[.123],"sqrt(0.123)",.3507135583350036,NaN,NaN,NaN],["sqrt",[Math.PI],"sqrt(Math.PI)",1.7724538509055159,NaN,NaN,NaN],["tan",[-1e308],"tan(-1e308)",.5086861259107568,NaN,NaN,.5086861259107567],["tan",[Math.PI],"tan(Math.PI)",-12246467991473532e-32,NaN,NaN,NaN],["tan",[6*Math.E],"tan(6*Math.E)",.6866761546452431,.686676154645243,NaN,NaN],["tan",[6*Math.LN2],"tan(6*Math.LN2)",1.6182817135715877,1.618281713571588,NaN,1.6182817135715875],["tan",[10*Math.LOG2E],"tan(10*Math.LOG2E)",-3.3537128705376014,-3.353712870537601,NaN,-3.353712870537602],["tan",[17*Math.SQRT2],"tan(17*Math.SQRT2)",-1.9222955461799982,-1.922295546179998,NaN,NaN],["tan",[34*Math.SQRT1_2],"tan(34*Math.SQRT1_2)",-1.9222955461799982,-1.922295546179998,NaN,NaN],["tan",[10*Math.LOG10E],"tan(10*Math.LOG10E)",2.5824856130712432,2.5824856130712437,NaN,NaN],["tanh",[.123],"tanh(0.123)",.12238344189440875,NaN,NaN,.12238344189440876],["tanh",[Math.PI],"tanh(Math.PI)",.99627207622075,NaN,NaN,NaN],["pow",[.123,-100],"pow(0.123, -100)",1022089333584519e76,10220893335845176e75,NaN,NaN],["pow",[Math.PI,-100],"pow(Math.PI, -100)",19275814160560204e-66,19275814160560185e-66,NaN,19275814160560206e-66],["pow",[Math.E,-100],"pow(Math.E, -100)",37200759760208555e-60,3720075976020851e-59,NaN,NaN],["pow",[Math.LN2,-100],"pow(Math.LN2, -100)",0x1d60a09913011a,0x1d60a09913012a,NaN,NaN],["pow",[Math.LN10,-100],"pow(Math.LN10, -100)",6003867926738829e-52,6003867926738811e-52,NaN,NaN],["pow",[Math.LOG2E,-100],"pow(Math.LOG2E, -100)",120933355845501e-30,12093335584550061e-32,NaN,NaN],["pow",[Math.LOG10E,-100],"pow(Math.LOG10E, -100)",16655929347585958e20,1665592934758592e21,NaN,16655929347585955e20],["pow",[Math.SQRT1_2,-100],"pow(Math.SQRT1_2, -100)",1125899906842616.3,1125899906842611.5,NaN,NaN],["pow",[Math.SQRT2,-100],"pow(Math.SQRT2, -100)",8881784197001191e-31,8881784197001154e-31,NaN,NaN],["polyfill",[7888609052210102e254],"polyfill pow(2e-3, -100)",7888609052210102e254,7888609052210126e254,NaN,NaN]],o={};return n.forEach(e=>{o[e[2]]=B(()=>{let t="polyfill"!=e[0]?Math[e[0]](...e[1]):e[1],n=t==e[3],a=!!e[4]&&t==e[4],o=!!e[5]&&t==e[5],r=!!e[6]&&t==e[6];return{result:t,chrome:n,firefox:a,torBrowser:o,safari:r}})}),N({time:e.stop(),test:"math",passed:!0}),{data:o,lied:t}}catch(e){N({test:"math",passed:!1}),O(e);return}}(),function(){try{let e=R();e.start();let t=function(e){let t,n=[],a=e.length;for(t=0;t<a;t++)try{e[t]()}catch(e){n.push(e.message)}return n}([()=>Function('alert(")')(),()=>Function("const foo;foo.bar")(),()=>Function("null.bar")(),()=>Function("abc.xyz = 123")(),()=>Function("const foo;foo.bar")(),()=>Function("(1).toString(1000)")(),()=>Function("[...undefined].length")(),()=>Function("var x = new Array(-1)")(),()=>Function("const a=1; const a=2;")()]);return N({time:e.stop(),test:"console errors",passed:!0}),{errors:t}}catch(e){N({test:"console errors",passed:!1}),O(e);return}}(),function(){let e=["UTC","GMT","Etc/GMT+0","Etc/GMT+1","Etc/GMT+10","Etc/GMT+11","Etc/GMT+12","Etc/GMT+2","Etc/GMT+3","Etc/GMT+4","Etc/GMT+5","Etc/GMT+6","Etc/GMT+7","Etc/GMT+8","Etc/GMT+9","Etc/GMT-1","Etc/GMT-10","Etc/GMT-11","Etc/GMT-12","Etc/GMT-13","Etc/GMT-14","Etc/GMT-2","Etc/GMT-3","Etc/GMT-4","Etc/GMT-5","Etc/GMT-6","Etc/GMT-7","Etc/GMT-8","Etc/GMT-9","Etc/GMT","Africa/Abidjan","Africa/Accra","Africa/Addis_Ababa","Africa/Algiers","Africa/Asmara","Africa/Bamako","Africa/Bangui","Africa/Banjul","Africa/Bissau","Africa/Blantyre","Africa/Brazzaville","Africa/Bujumbura","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/Conakry","Africa/Dakar","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Douala","Africa/El_Aaiun","Africa/Freetown","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Kigali","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Lome","Africa/Luanda","Africa/Lubumbashi","Africa/Lusaka","Africa/Malabo","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Africa/Mogadishu","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Niamey","Africa/Nouakchott","Africa/Ouagadougou","Africa/Porto-Novo","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Anguilla","America/Antigua","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Aruba","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Cayman","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Dominica","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fort_Nelson","America/Fortaleza","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/Kralendijk","America/La_Paz","America/Lima","America/Los_Angeles","America/Lower_Princes","America/Maceio","America/Managua","America/Manaus","America/Marigot","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Montserrat","America/Nassau","America/Ne
274w_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Barthelemy","America/St_Johns","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Tortola","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/McMurdo","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Arctic/Longyearbyen","Asia/Aden","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Bahrain","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Calcutta","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Kuwait","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Muscat","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Phnom_Penh","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vientiane","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/St_Helena","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Bratislava","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Busingen","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Guernsey","Europe/Helsinki","Europe/Isle_of_Man","Europe/Istanbul","Europe/Jersey","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/Ljubljana","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Mariehamn","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Podgorica","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/San_Marino","Europe/Sarajevo","Europe/Saratov","Europe/Simferopol","Europe/Skopje","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zagreb","Europe/Zaporozhye","Europe/Zurich","Indian/Antananarivo","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Comoro","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Mayotte","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Midway","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Saipan","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],t=e=>{let t,{year:n,city:a=null}=e;return((t=a?+new Date(new Intl.DateTimeFormat("en",{timeZone:"",year:"numeric",month:"numeric",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",timeZone:a}).format(new Date(`7/1/${n}`))):+new Date(`7/1/${n}`))-new Date(`${n}-07-01`))/6e4},n=(e,t)=>{let a=e.length,o=Math.floor(a/2),[r,i]=[e.slice(0,o),e.slice(o,a)],l=t(r);return 1==a||l.length?l:n(i,t)},o=e=>{try{return e.replace(/_/," ").split("/").join(", ")}catch(e){}return e};try{let r=R();r.start();let i=a["Date.getTimezoneOffset"]||a["Intl.DateTimeFormat.resolvedOptions"]||a["Intl.RelativeTimeFormat.resolvedOptions"]||!1,{timeZone:l}=Intl.DateTimeFormat().resolvedOptions(),s=(a=>{let{year:o,timeZone:r}=a,i=t({year:o}),l=t({year:o,city:r}),s=i==l?[r]:n(e,e=>e.filter(e=>i==t({year:o,city:e})));return 1==s.length&&s[0]==r?r:ep(s)})({year:1113,timeZone:l}),c=+new Date(new Date("7/1/1113")),d={zone:(""+new Date).replace(/.*\(|\).*/g,""),location:o(l),locationMeasured:o(s),locationEpoch:c,offset:new Date().getTimezoneOffset(),offsetComputed:(()=>{let[e,t,n]=JSON.stringify(new Date).slice(1,11).split("-"),a=`${t}/${n}/${e}`,o=`${e}-${t}-${n}`,r=+new Date(a),i=+new Date(o);return~~((r-i)/6e4)})(),lied:i};return N({time:r.stop(),test:"timezone",passed:!0}),{...d}}catch(e){N({test:"timezone",passed:!1}),O(e);return}}(),eA(),eg(),eR(),eP(),eN()]).catch(e=>console.error(e.message)),C,I=await eI(C).catch(e=>console.error(e.message)),[P,H]=await Promise.all([eT({webgl:c,workerScope:C}),ev({cssComputed:h,navigatorComputed:I,windowFeaturesComputed:m})]).catch(e=>console.error(e.message)),[V,_,W]=await Promise.all([(t=Object.keys(e=F.getRecords()).reduce((t,n)=>t+=e[n].length,0),{data:e,totalLies:t}),{trashBin:el.getBin()},{data:L.getErrors()}]).catch(e=>console.error(e.message)),{parameters:z}=c||{},j={...i?(n=new Set(["FRAGMENT_SHADER.HIGH_FLOAT.precision","FRAGMENT_SHADER.HIGH_FLOAT.rangeMax","FRAGMENT_SHADER.HIGH_FLOAT.rangeMin","FRAGMENT_SHADER.HIGH_INT.precision","FRAGMENT_SHADER.HIGH_INT.rangeMax","FRAGMENT_SHADER.HIGH_INT.rangeMin","FRAGMENT_SHADER.LOW_FLOAT.precision","FRAGMENT_SHADER.LOW_FLOAT.rangeMax","FRAGMENT_SHADER.LOW_FLOAT.rangeMin","FRAGMENT_SHADER.MEDIUM_FLOAT.precision","FRAGMENT_SHADER.MEDIUM_FLOAT.rangeMax","FRAGMENT_SHADER.MEDIUM_FLOAT.rangeMin","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_DRAW_BUFFERS_WEBGL","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_UNIFORM_BUFFER_BINDINGS","MAX_VARYING_COMPONENTS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","SHADING_LANGUAGE_VERSION","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","VERSION","VERTEX_SHADER.HIGH_FLOAT.precision","VERTEX_SHADER.HIGH_FLOAT.rangeMax","VERTEX_SHADER.HIGH_FLOAT.rangeMin","VERTEX_SHADER.HIGH_INT.precision","VERTEX_SHADER.HIGH_INT.rangeMax","VERTEX_SHADER.HIGH_INT.rangeMin","VERTEX_SHADER.LOW_FLOAT.precision","VERTEX_SHADER.LOW_FLOAT.rangeMax","VERTEX_SHADER.LOW_FLOAT.rangeMin","VERTEX_SHADER.MEDIUM_FLOAT.precision","VERTEX_SHADER.MEDIUM_FLOAT.rangeMax","VERTEX_SHADER.MEDIUM_FLOAT.rangeMin"]),Object.keys(z).reduce((e,t)=>
274(n.has(t)||(e[t]=z[t]),e),{})):z,RENDERER:void 0,SHADING_LANGUAGE_VERSION:void 0,UNMASKED_RENDERER_WEBGL:void 0,UNMASKED_VENDOR_WEBGL:void 0,VERSION:void 0,VENDOR:void 0},[U,X,$,q,K,Q,Y,ee,et,en,ea,eo,er,ei,es,ec,ed,em,eu,eh,ef,eS,ey,ew,eM,eD,ex,eC,eH,eF,eG,eV,e_,eW,ez,ej,eU]=await Promise.all([eb(m),eb(P),eb((u||{}).keys),eb(b),eb(h),eb((h||{}).computedStyle),eb((h||{}).system),eb(E),eb(l),eb(d),eb((d||{}).dataURI),eb((d||{}).paintURI),eb((d||{}).textURI),eb((d||{}).emojiURI),eb(c),eb((c||{}).dataURI),eb(j),((c||{}).pixels||[]).length?eb(c.pixels):void 0,((c||{}).pixels2||[]).length?eb(c.pixels2):void 0,eb((y||{}).data),eb((k||{}).errors),eb(A),eb(w),eb([(w||{}).elementBoundingClientRect,(w||{}).elementClientRects,(w||{}).rangeBoundingClientRect,(w||{}).rangeClientRects]),eb(s),eb(M),eb(C),eb(D),eb((D||{}).mimeTypes),eb(I),eb(V),eb(_),eb(W),eb(v),eb(x),eb(H),eb((()=>{let{bluetoothAvailability:e,device:t,deviceMemory:n,hardwareConcurrency:a,maxTouchPoints:o,oscpu:r,platform:i,system:l,userAgentData:s}=I||{},{architecture:c,bitness:d,mobile:m,model:u,platform:g,platformVersion:p}=s||{},{"any-pointer":h}=b?.mediaCSS||{},{colorDepth:f,pixelDepth:S,height:y,width:k}=E||{},{location:w,locationEpoch:M,zone:D}=A||{},{deviceMemory:v,hardwareConcurrency:x,gpu:T,platform:N,system:R,timezoneLocation:P,userAgentData:L}=C||{},{compressedGPU:O,confidence:B}=T||{},{architecture:H,bitness:F,mobile:G,model:V,platform:_,platformVersion:W}=L||{};return[h,c,H,d,F,e,f,...O&&"low"!=B?[O]:[],t,n,v,a,x,y,w,P,M,o,m,G,u,V,r,S,i,N,p,W,l,R,g,_,k,D]})())]).catch(e=>console.error(e.message)),eX={navigator:I?{...I,$hash:eF}:void 0,windowFeatures:m?{...m,$hash:U}:void 0,headless:P?{...P,$hash:X}:void 0,htmlElementVersion:u?{...u,$hash:$}:void 0,cssMedia:b?{...b,$hash:q}:void 0,css:h?{...h,$hash:K}:void 0,screen:E?{...E,$hash:ee}:void 0,voices:l?{...l,$hash:et}:void 0,media:D?{...D,$hash:eC}:void 0,canvas2d:d?{...d,$hash:en}:void 0,canvasWebgl:c?{...c,pixels:em,pixels2:eu,$hash:es}:void 0,maths:y?{...y,$hash:eh}:void 0,consoleErrors:k?{...k,$hash:ef}:void 0,timezone:A?{...A,$hash:eS}:void 0,clientRects:w?{...w,$hash:ey}:void 0,offlineAudioContext:s?{...s,$hash:eM}:void 0,fonts:M?{...M,$hash:eD}:void 0,lies:V?{...V,$hash:eG}:void 0,trash:_?{..._,$hash:eV}:void 0,capturedErrors:W?{...W,$hash:e_}:void 0,resistance:v?{...v,$hash:eW}:void 0,intl:x?{...x,$hash:ez}:void 0,features:H?{...H,$hash:ej}:void 0},e$=Object.entries(eX).filter(e=>{let[t,n]=e;return void 0!==n&&!n.lied}).map(e=>{let[t,{$hash:n}]=e;return`${t}:${n}`});return{fingerprint:eX,hashes:{fingerprintHash:await eb(e$),styleSystemHash:Y,styleHash:Q,domRectHash:ew,mimeTypesHash:eH,canvas2dImageHash:ea,canvasWebglImageHash:ec,canvas2dPaintHash:eo,canvas2dTextHash:er,canvas2dEmojiHash:ei,canvasWebglParametersHash:ed,deviceOfTimezoneHash:eU}}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.