Inteligența artificială locală și automatizare: agenți, securitate și cazuri din lumea reală

Ultima actualizare: Mai 17 2026
  • Inteligența artificială locală permite agenților autonomi să efectueze sarcini complexe pe propriul hardware, menținând în același timp confidențialitatea datelor.
  • Stack-uri precum NVIDIA NemoClaw integrează modele deschise, sandboxing și control granular al instrumentelor pentru o implementare securizată.
  • Proiecte precum OpenClaw, Jan AI, PocketBot sau Ollama+Open WebUI aduc automatizarea locală pe PC-uri și telefoane mobile fără taxe.
  • Capturile de ecran, înregistrările vocale, extragerea de date web și folderele personale structurate vă permit să automatizați o mare parte din viața digitală.

Inteligența artificială locală și automatizarea pe computer

Automatizarea locală prin inteligență artificială depășește limita de a fi doar pentru pasionații de tehnologie cu servere de acasă și devine o opțiune viabilă pentru oricine caută un control, o confidențialitate și o flexibilitate sporite. Astăzi, nu mai trebuie să vă bazați pe cloud-ul unei companii mari pentru a avea agenți capabili să vă citească ecranul, să miște mouse-ul, să lucreze cu fișierele dvs. sau să execute fluxuri de lucru complexe în fundal.

Peisajul a explodat: de la stive complete precum NemoClaw de la NVIDIA pentru agenți autonomi pe propriul hardware, la aplicații mobile precum PocketBot care transformă limbajul natural în automatizări telefonice, la platforme deschise precum OpenClaw, asistenți precum Jan AI și ghiduri practice pentru construirea propriului „ChatGPT făcut acasă” cu Ollama și Open WebUI. Scopul este același: să construim un ecosistem în care IA să trăiască pe computerul nostru, să interacționeze cu programele noastre și să automatizeze sarcinile zilnice fără a elimina datele din sistem.

Ce este automatizarea locală prin inteligență artificială și de ce este importantă?

Când vorbim despre inteligența artificială locală pentru automatizare , ne referim la modele și agenți care rulează pe propriul dispozitiv (PC, server, DGX, mobil) fără a trimite date sensibile către servere externe. Modelul ia decizii, execută cod, citește fișiere, apelează API-uri și coordonează instrumente, dar totul se întâmplă în mediul controlat.

Evoluția a fost dramatică: de la simpli chatboți care răspundeau doar la întrebări, am trecut la agenți de inteligență artificială capabili să execute secvențe de sarcini , să orchestreze mai mulți pași, să consulte diferite surse de date și să ia decizii autonome. Acest lucru a schimbat complet modul în care înțelegem automatizarea: modelul nu mai este doar „cel care răspunde”, ci „cel care acționează”.

Această schimbare are o consecință evidentă: o autonomie mai mare înseamnă un risc mai mare . Dacă oferiți unui agent acces la sistemul de fișiere, la acreditările dvs., la browserul dvs. sau la instrumentele de dezvoltare, aveți nevoie de un design de securitate robust. Aici excelează abordările locale, deoarece puteți limita permisiunile, izola procesele și monitoriza îndeaproape ce face modelul în orice moment.

În plus, modelele open-source cu licențe gratuite precum Apache 2.0 sau MIT (cum ar fi multe Falcon, Bark, Jan etc.) vă permit să construiți soluții fără a fi legați de contracte sau politici de utilizare opace. Puteți audita codul, ajusta modelul, aplica ajustări fine și chiar îl puteți integra cu hardware specific, cum ar fi GPU-urile A100 sau stațiile de lucru NVIDIA DGX.

Pentru multe sectoare (sănătate, bancar, juridic, administrații publice), unde confidențialitatea și stocarea securizată sunt sacre, combinația dintre inteligența artificială locală + agenți autonomi + modele deschise face diferența: automatizezi, dar datele nu părăsesc perimetrul tău.

Stive locale de inteligență artificială pentru automatizare avansată: NemoClaw, OpenShell și OpenClaw

NVIDIA a intrat puternic pe această piață cu NemoClaw , o stivă open-source concepută pentru a implementa în siguranță agenți autonomi la nivel local și pentru a asigura că aceștia sunt mereu activi. Este concepută să ruleze pe mașini puternice precum NVIDIA DGX Spark, dar filosofia este aplicabilă și altor medii certificate.

NemoClaw acționează ca un strat de orchestrare : instalează și coordonează OpenShell (rularea de securitate) și OpenClaw (framework-ul de agenți multicanal), configurează inferența modelului (prin Ollama sau NVIDIA NIM) și aplică politici de securitate de la bun început, nu ca un patch de ultim moment.

În centrul stivei se află de obicei NVIDIA Nemotron 3 Super 120B , un model cu 120.000 de miliarde de parametri optimizat pentru agenți: foarte bun la urmărirea instrucțiunilor complexe, la gestionarea instrumentelor și la raționamentul în mai mulți pași. Cu toate acestea, pentru a rula ceva de această dimensiune, ai nevoie de un GPU serios și multă memorie; doar pentru model se așteaptă aproximativ 87 GB.

Inferența este de obicei servită folosind Ollama ca runtime local , care expune o API REST pe mașina locală. NemoClaw comunică cu această API pentru a trimite solicitări, a primi răspunsuri și a coordona apelurile de instrumente folosind modelul de apelare a instrumentelor.

Componenta OpenShell este esențială pentru securitate : impune sandboxing, controlează acreditările, acționează ca un proxy de rețea și aplică principiul privilegiilor minime. Monitorizează conexiunile pe care agentul le încearcă și vă permite să aprobați sau să blocați endpoint-uri dintr-o interfață de tip TUI. În acest fel, dacă modelul încearcă să acceseze un serviciu nou, nu se întâmplă nimic fără aprobarea dumneavoastră.

În cadrul sandbox-ului se află OpenClaw, stratul de agenți multicanal . Acesta gestionează comunicarea cu platforme precum Telegram, Slack și Discord, gestionează memoria agenților, conectează instrumente (scripturi, API-uri, browsere) și menține conversații pe termen lung. Dacă doriți un asistent mereu activ, accesibil prin mesagerie și cu memorie persistentă, aceasta este componenta care face acest lucru posibil.

Securitate, sandboxing și implementare locală pas cu pas

Unul dintre marile puncte forte ale acestei stive este faptul că securitatea este încorporată încă din etapa de proiectare , nu este adăugată ulterior. Greșeala tipică în proiectele cu agenți este de a implementa mai întâi toate funcționalitățile și apoi de a încerca să „fortifice” ceea ce a fost deja construit, creând vulnerabilități peste tot.

  Cele mai bune distribuții Linux pentru a vă proteja securitatea și confidențialitatea

Mecanismul principal este sandboxing-ul de execuție . Tot codul pe care agentul dorește să îl ruleze este executat într-un mediu izolat: nu are acces direct la sistemul de fișiere al gazdei, nu poate efectua apeluri arbitrare de rețea și nu poate escalada privilegii dincolo de ceea ce este definit în configurație.

Acest lucru atenuează considerabil impactul atacurilor de tip „prompt injection” sau al instrucțiunilor rău intenționate. Dacă modelul decide să facă ceva neobișnuit, daunele rămân limitate la sandbox. Chiar și așa, NVIDIA recunoaște că niciun sandbox nu este perfect, așa că recomandă testarea întotdeauna a unor instrumente noi pe sisteme izolate.

În plus, NemoClaw implementează control granular, în timp real, al instrumentelor și politicilor . În mod implicit, agentul poate comunica doar cu un număr limitat de endpoint-uri de rețea. Când încearcă ceva nou, OpenShell îl blochează și puteți vedea exact ce încearcă să facă (gazdă, port, proces). Apoi îl puteți aproba pentru sesiunea respectivă sau puteți adăuga o politică permanentă pe gazdă.

Fluxul de implementare într-un DGX Spark urmează de obicei acești pași: configurați Ubuntu 24.04 LTS cu drivere NVIDIA urmând un ghid de asamblare a computerului , instalați Docker 28.xo sau o versiune ulterioară cu runtime GPU, instalați Ollama și descărcați modelul Nemotron 3 Super 120B și, în final, lansați instalarea NemoClaw cu o singură comandă care declanșează un expert de configurare.

Acest proces de integrare vă ghidează prin numele sandbox-ului, furnizorul de inferențe, modelul ales, presetările de securitate și, dacă doriți, integrarea Telegram. Timpul de configurare activă este estimat la 20-30 de minute, plus încă 15-30 de minute pentru descărcarea modelului, în funcție de lățimea de bandă.

În ceea ce privește performanța, trebuie să fim realiști: un răspuns cu un model de parametri de 120B poate dura între 30 și 90 de secunde într-un context local. Nu este o problemă în sine, dar trebuie luată în considerare la proiectarea fluxurilor de utilizare și a tipurilor de sarcini pe care le atribuiți agentului.

Acces de la distanță, interfață web și hardware concepute pentru inteligența artificială locală

Odată ce totul este configurat, puteți interacționa cu agentul în mai multe moduri. Cel mai comun este prin Telegram , folosind un bot creat cu @BotFather. Este o alegere practică: API robust, criptare, aplicații pentru toate tipurile de dispozitive și nu este nevoie să expuneți porturile serverului către lumea exterioară.

Botul primește mesajele tale, le redirecționează agentului de pe DGX și îți trimite un răspuns. Interesant este că, deși conversația trece prin infrastructura Telegram, inferența și accesul la datele sensibile rămân 100% locale pe mașina ta.

În plus, NemoClaw oferă o interfață web privată accesibilă printr-o adresă URL tokenizată generată o singură dată la sfârșitul procesului de integrare. Este esențial să salvați imediat această adresă URL, deoarece nu va fi afișată din nou. Pentru a o vizualiza de pe o altă mașină din rețea, trebuie să configurați un tunel SSH și o redirecționare de port folosind OpenShell.

Un detaliu mic, dar important, este că URL-ul trebuie să se deschidă cu 127.0.0.1 în loc de localhost . Utilizarea localhost poate cauza erori de „origine neautorizată” (CORS), ceea ce vă poate pierde timpul dacă nu sunteți conștient de acest lucru.

Pentru operarea zilnică, există câteva comenzi CLI utile : deschiderea unui shell în interiorul sandbox-ului, vizualizarea stării, urmărirea jurnalelor în timp real, listarea sandbox-urilor, pornirea sau oprirea podului Telegram, activarea redirecționării porturilor sau rularea unui script de dezinstalare curat care elimină întreaga stivă.

În ceea ce privește hardware-ul, NVIDIA DGX Spark este în mod clar conceput pentru aceste cazuri de utilizare. Este un sistem compact cu GPU-uri NVIDIA și memorie unificată cu lățime de bandă mare, ideal pentru rularea modelelor de dimensiuni medii și mari cu latență redusă, fără a necesita configurarea completă a unui centru de date.

Memoria unificată este utilă în special în cazul unuia dintre blocajele clasice: mutarea datelor între procesor și GPU. Prin partajarea spațiului de memorie, modelul accesează datele mult mai eficient, permițând încărcarea modelelor cu zeci de miliarde de parametri în timp (aproape) real - ceva de neconceput până de curând în hardware-ul de larg consum.

Agenți IA locali populari: exemple și cazuri de utilizare

Dincolo de ecosistemul NVIDIA, există o serie de agenți AI și platforme orientate spre automatizare disponibile pe propriul computer care merită explorate. Fiecare dintre ele vizează un tip diferit de utilizator și un set distinct de sarcini.

OpenClaw, de exemplu, a devenit popular ca platformă open-source pentru agenți care acționează ca un asistent personal. Permite utilizatorilor să creeze agenți personalizați pentru a-și curăța inbox-ul, a trimite mesaje, a-și gestiona calendarul, a organiza călătorii sau a automatiza sarcini repetitive din viața lor digitală.

Poate fi instalat pe Windows, macOS și Linux și este conceput să funcționeze local cu modele LLM, ceea ce îmbunătățește confidențialitatea și reduce dependența de cloud. În plus, se integrează cu aplicații de mesagerie precum WhatsApp, Telegram, Discord, Slack, Signal și Apple Messages, astfel încât agentul tău rulează „în culisele” chat-urilor pe care le folosești deja.

Prin intermediul pluginurilor, puteți acorda acces la browser, rețele sociale, clienți de e-mail și alte aplicații, precum și le puteți permite să interacționeze cu sistemul de fișiere, să execute comenzi și scripturi sau să automatizeze sarcini tipice de birou și de productivitate. Toate acestea se fac cu un accent clar pe a permite utilizatorului să aleagă ce foldere, aplicații și servicii poate accesa agentul.

  Mullvad Public DNS: Ghid complet în spaniolă

În ecosistemul mai generalist, ies în evidență platforme precum Perplexity Computer , transformând Perplexity dintr-un simplu motor de căutare conversațional într-un asistent capabil să execute fluxuri de lucru complexe. Acest mod Computer permite utilizatorilor să navigheze pe web, să creeze și să gestioneze documente, să scrie cod, să proceseze date și să se coordoneze cu servicii precum Gmail, Slack, GitHub și Notion.

Punctul său forte constă în utilizarea unor modele precum Claude, GPT, Gemini sau Sonar, propriul program de la Perplexity, pentru a gestiona volume mari de date și a împărți sarcinile complexe în subsarcini care pot fi executate în serie sau în paralel. Deși nu sunt întotdeauna complet locale, modelul de agent și integrarea cu instrumentele sunt foarte similare cu cele ale agenților care rulează pe mașina dumneavoastră.

În domeniul exclusiv open-source și local, Jan AI se prezintă ca un înlocuitor pentru ChatGPT, care poate fi instalat pe Windows, Mac și Linux. Îți permite să utilizezi modele locale precum Llama (Meta) sau Gemma (Google) sau să te conectezi la modele online precum ChatGPT, Claude, Gemini, Mistral, Qwen sau DeepSeek, dacă ești interesat de o combinație.

Jan AI funcționează atât ca un asistent conversațional clasic (care întreabă, redactează, rezumă, traduce, rescrie, explică), cât și ca un agent capabil să proceseze fișiere și documente, să execute comenzi și să genereze cod în diverse limbaje. În plus, accentul pus pe personalizare facilitează crearea propriului agent cu instrucțiuni specifice și comutarea între diferite „profiluri” în funcție de sarcina respectivă.

Agenți pe dispozitiv: PocketBot și automatizare mobilă

Conceptul de inteligență artificială locală nu se limitează la PC-uri . De asemenea, are un impact puternic asupra dispozitivelor mobile, unde tot mai multe proiecte se concentrează pe modele mici, dar specializate, pentru a automatiza telefonul fără a se baza pe cloud.

Un exemplu clar este PocketBot, un agent care rulează direct pe iPhone folosind llama.cpp pe Metal . Misiunea sa este de a converti limbajul natural în automatizări telefonice: în loc să accesezi nenumărate meniuri sau comenzi rapide, descrii ceea ce dorești, iar agentul traduce mesajul în acțiuni.

PocketBot folosește un model cuantizat cu 3 miliarde de parametri , care rulează complet local și fără a trimite date către servere externe. Memoria disponibilă pe un iPhone 15 Pro este de obicei de doar 3.000-4 GB înainte ca iOS să înceapă să termine procesele, ceea ce face ca dimensiunea modelului și cuantizarea să fie critice.

Una dintre provocările menționate de creatorii săi este găsirea unor modele fiabile și mici pentru apelarea instrumentelor și ieșirea JSON structurată. Folosind Qwen3, de exemplu, aceștia întâmpină probleme precum nume de parametri inventate, JSON malformat (paranteze lipsă) și aderență inconsistentă la scheme, ceea ce necesită implementarea straturilor de autocorecție și reîncercare.

Există, de asemenea, multe dezbateri despre punctul optim de cuantizare pentru a obține cel mai bun raport calitate/memorie, opțiuni precum q4_K_M sau q5_K_S fiind luate în considerare în funcție de generația cipului și de memoria disponibilă. Fiecare bit mai puțin în cuantizare are ca rezultat modele mai ușor de gestionat, dar poate avea un impact negativ asupra raționamentului și a preciziei în apelurile de instrumente.

O altă zonă de interes este ajustarea parametrilor de eșantionare în funcție de sarcină. Configurațiile tipice includ temperatura 0,7, top_p 0,8, top_k 20 și repeat_penalty 1,1, dar există interes în separarea strategiilor de generare pentru conversații fluide față de cele de tip „tool-calling”, unde determinismul este mai important decât creativitatea.

În cele din urmă, pe mobil, gestionarea contextului este deosebit de delicată: promptul de sistem este de obicei stocat în memoria cache KV pentru a evita reprocesarea acestuia, iar ferestrele glisante sunt folosite pentru a evita depășirea capacității; de aceea este important să știi cum să salvezi și să organizezi prompturile.

Dincolo de acestea, există loc pentru trucuri de sumarizare incrementală, memorie selectivă sau scheme hibride care combină istoria comprimată și contextul imediat.

Configurați-vă propriul „ChatGPT local” cu Ollama și Open WebUI

Pentru cei care nu au nevoie de un stack atât de complex precum NemoClaw, dar își doresc un asistent de tip ChatGPT care să ruleze pe computerul lor , o abordare foarte practică bazată pe Ollama și Open WebUI a devenit populară.

Ideea este simplă: Ollama descarcă și servește modele (Llama, Gemma, Qwen etc.) pe mașina ta prin intermediul unui API local, iar Open WebUI oferă o interfață web foarte similară cu ChatGPT, dar care rulează în întregime pe mașina ta. Tot traficul dintre interfața cu utilizatorul și model trece prin localhost.

Un ghid simplu, pas cu pas, detaliază cum, cu aproximativ 15 comenzi de terminal , puteți avea această configurație funcțională în mai puțin de o oră. Acesta include instalarea Python 3.11, configurația de bază a sistemului, instalarea Ollama și implementarea Open WebUI, împreună cu capturi de ecran și sfaturi de depanare.

Rezultatul este un mediu în care vă bucurați de costuri zero de abonament , confidențialitate totală (datele nu părăsesc niciodată computerul), timpi de răspuns competitivi (fără cozi de server partajate) și libertate completă de a personaliza asistenți specializați pentru a se potrivi propriilor nevoi.

În plus, Open WebUI integrează funcții avansate precum căutarea web, un interpretor de cod, crearea de modele personalizate din configurații specifice și pregătește capabilități RAG avansate pentru construirea de baze de cunoștințe personale. Ideea este că puteți avea un „copilot” instruit pentru documentele și fluxurile de lucru fără a vă baza pe terți.

  Criptarea end-to-end în Gmail: un ghid complet și practic

După câteva luni de utilizare, mulți utilizatori raportează că această combinație le-a înlocuit complet abonamentele plătite la soluții cloud , îmbunătățind în același timp integrarea cu propriile date și instrumente locale. Următorul pas logic este conectarea acestui „ChatGPT intern” cu agenți, scripturi și servicii pentru a coordona automatizări mai complexe.

Automatizează-ți viața digitală: exemple practice cu inteligență artificială locală

Toate acestea sună grozav din punct de vedere tehnic, dar ce poți face de fapt în operațiunile zilnice cu agenți locali bine configurați ? Posibilitățile sunt destul de extinse dacă combini modele multimodale, acces la ecran, instrumente și stocare structurată.

Există propuneri concepute pentru a automatiza utilizarea propriului computer cu agenți care primesc capturi de ecran și acționează în funcție de ele. Fluxul de lucru ar fi cam așa: sistemul face o captură de ecran, agentul o procesează cu un model capabil să lucreze cu imagini, înțelege ce aplicație este deschisă, ce butoane sunt prezente, ce text apare și, pe baza solicitării dvs., decide ce să facă în continuare.

Cu această idee, ați putea, de exemplu, să configurați agenți de traducere specializați : sistemul capturează partea de ecran pe care doriți să o traduceți, o mărește într-o fereastră de tip „lupă” și generează o traducere aproape instantanee folosind un model mic (de exemplu, de parametri 4B) ajustat fin pentru traducere, precum o variantă ajustată fin a PHI.

Un alt domeniu interesant îl reprezintă modelele vizuale care transformă capturile de ecran în fișiere PDF . Imaginați-vă un instrument care, din capturi de ecran ale prezentărilor, tablourilor de bord sau documentelor, generează fișiere PDF bine formatate pe care le puteți rafina sau utiliza direct în prezentările dvs. Prin integrarea Python cu Acrobat, ați putea automatiza întregul proces.

Pentru a lucra cu webul fără a depinde de servicii externe, tehnologii veterane precum BeautifulSoup sunt încă foarte utilePuteți configura un scraper ușor care accesează cu crawlere mai multe pagini, păstrând doar codul HTML necesar (de exemplu, extragând doar , p, h1, h2, h3) și transmit modelului doar textul filtrat. Acest lucru reduce zgomotul, vă oferă control complet asupra a ceea ce vede inteligența artificială și elimină dependența de API-uri terțe. Dacă agentul are acces și la cursor și la instrumentele de editare video , acest lucru deschide calea către automatizarea sarcinilor în programe precum DaVinci Resolve sau Adobe After Effects. Agentul va compara ultima captură de ecran cu următoarea, va deduce unde trebuie să plaseze mouse-ul și ce acțiune trebuie efectuată pentru a avansa către rezultatul solicitat. În ceea ce privește sunetul, puteți integra un sistem vocal cu evaluare umană : agentul generează o frază (de exemplu, „Bună dimineața, dragostea mea”), îi acordați un scor de la 1 la 10 și decideți dacă o salvați. Această clasificare poate fi utilizată pentru a ajusta parametri precum temperatura de generare sau o puteți regla manual dintr-o fereastră dedicată. Prin salvarea vocilor în fișiere precum {phrase}-{number}.mp3 sau .wav , puteți reutiliza și recombina vocile în sesiunile viitoare. Modele precum Bark, licențiate de MIT, se pretează foarte bine acestei personalizări aproape infinite, adăugând chiar și nuanțe emoționale atunci când are sens. Pentru a organiza toate aceste informații, este esențial să îi oferiți agentului un folder personal structurat pe mașina dvs.: user-info/, search-data/, screenshots/, screenshots-for-translate/, voices/, lang/, code-spaces/… În loc să încărcați codul pe GitHub, puteți salva proiectele local și puteți alege ce depozite sau foldere folosește agentul ca și context în fiecare sesiune. În cele din urmă, dacă doriți ca modelul să ți se adapteze pentru o anumită perioadă de timp, puteți explora tehnici ușoare de reglare fină, cum ar fi LoRA sau QLoRA . Aceste abordări vă permit să ajustați modelul la stilul sau domeniul dvs. fără a fi nevoie să reinstruiți totul de la zero, deși în mediile în care productivitatea pură este primordială, s-ar putea să nu merite să îl aveți mereu activ; în mod ideal, ar trebui să puteți activa sau dezactiva această personalizare. În acest context, alegerea modelului de bază devine, de asemenea, importantă: mulți dezvoltatori caută modele Apache-2.0 sau MIT , atât în ​​dimensiuni mici (2-4B parametri) pentru prototipuri și dispozitive modeste, cât și în modele 30B antrenate cu hardware de ultimă generație (de exemplu, GPU-uri A100) pentru reglaje fine la scară largă. Se estimează că câteva luni de muncă serioasă în acest domeniu pot da rezultate foarte competitive. Privind întregul ecosistem în ansamblu, automatizarea IA locală se transformă dintr-un experiment într-o infrastructură solidă , atât pentru utilizatorii individuali sătui de taxele lunare, cât și pentru companiile care nu își permit să transfere date sensibile în afara sediului. Desde stacks listos para producción como NemoClaw hasta configuraciones caseras con Ollama y Open WebUI, pasando por agentes de escritorio y móviles como OpenClaw, Jan AI o PocketBot, el denominador común es el mismo: más control, más privacidad y una autonomía de la IA que, por primera vez, puedes gobernar tú.</p> <div class="post-relacionado-wrapper"><a href="https://informatecdigital.com/microsoft-mu-la-nueva-ia-local-que-revoluciona-la-configuracion-en-windows-11/?utm_source=destacado-inside" class="post-relacionado"><picture fetchpriority="high" decoding="async" class="attachment-medium size-medium wp-post-image"> <source type="image/webp" data-lazy-srcset="https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-400x225.jpg.webp 400w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-768x432.jpg.webp 768w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0.jpg.webp 1200w" sizes="(max-width: 400px) 100vw, 400px"/> <img fetchpriority="high" decoding="async" width="400" height="225" src="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20400%20225'%3E%3C/svg%3E" alt="microsoft mu ia-0" data-lazy-srcset="https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-400x225.jpg 400w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-768x432.jpg 768w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0.jpg 1200w" data-lazy-sizes="(max-width: 400px) 100vw, 400px" data-lazy-src="https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-400x225.jpg"/><noscript><img fetchpriority="high" decoding="async" width="400" height="225" src="https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-400x225.jpg" alt="microsoft mu ia-0" srcset="https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-400x225.jpg 400w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0-768x432.jpg 768w, https://informatecdigital.com/wp-content/uploads/2025/06/microsoft-mu-ia-0.jpg 1200w" sizes="(max-width: 400px) 100vw, 400px"/></noscript> </picture> <div><div>Related article:</div><div class="post-relacionado-title">Microsoft Mu: la nueva IA local que revoluciona la configuración en Windows 11</div></div></a></div> <div id="toc_container" role="navigation" aria-label="Table of Contents" data-nosnippet class="no_bullets toc_title_center"><p class="toc_title">Tabla de Contenidos</p><ul class="toc_list"><li><a href="#Que_es_la_automatizacion_con_IA_local_y_por_que_importa">Qué es la automatización con IA local y por qué importa</a></li><li><a href="#Stacks_de_IA_local_para_automatizacion_avanzada_NemoClaw_OpenShell_y_OpenClaw">Stacks de IA local para automatización avanzada: NemoClaw, OpenShell y OpenClaw</a></li><li><a href="#Seguridad_sandboxing_y_despliegue_local_paso_a_paso">Seguridad, sandboxing y despliegue local paso a paso</a></li><li><a href="#Acceso_remoto_interfaz_web_y_hardware_pensado_para_IA_local">Acceso remoto, interfaz web y hardware pensado para IA local</a></li><li><a href="#Agentes_de_IA_locales_populares_ejemplos_y_casos_de_uso">Agentes de IA locales populares: ejemplos y casos de uso</a></li><li><a href="#Agentes_en_el_dispositivo_PocketBot_y_automatizacion_en_el_movil">Agentes en el dispositivo: PocketBot y automatización en el móvil</a></li><li><a href="#Montar_tu_propio_ChatGPT_local_con_Ollama_y_Open_WebUI">Montar tu propio “ChatGPT local” con Ollama y Open WebUI</a></li><li><a href="#Automatizar_tu_vida_digital_ejemplos_practicos_con_IA_local">Automatizar tu vida digital: ejemplos prácticos con IA local</a></li></ul></div> <!-- CONTENT END 1 --> </div> <footer class="entry-meta" aria-label="Meta de entradas"> <span class="cat-links"><span class="gp-icon icon-categories"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path d="M0 112c0-26.51 21.49-48 48-48h110.014a48 48 0 0143.592 27.907l12.349 26.791A16 16 0 00228.486 128H464c26.51 0 48 21.49 48 48v224c0 26.51-21.49 48-48 48H48c-26.51 0-48-21.49-48-48V112z" /></svg></span><span class="screen-reader-text">Categorías </span><a href="https://informatecdigital.com/inteligencia-artificial/" rel="category tag">Inteligencia Artificial</a>, <a href="https://informatecdigital.com/seguridad/" rel="category tag">Seguridad</a></span> <nav id="nav-below" class="post-navigation" aria-label="Entradas"> <div class="nav-previous"><span class="gp-icon icon-arrow-left"><svg viewBox="0 0 192 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M178.425 138.212c0 2.265-1.133 4.813-2.832 6.512L64.276 256.001l111.317 111.277c1.7 1.7 2.832 4.247 2.832 6.513 0 2.265-1.133 4.813-2.832 6.512L161.43 394.46c-1.7 1.7-4.249 2.832-6.514 2.832-2.266 0-4.816-1.133-6.515-2.832L16.407 262.514c-1.699-1.7-2.832-4.248-2.832-6.513 0-2.265 1.133-4.813 2.832-6.512l131.994-131.947c1.7-1.699 4.249-2.831 6.515-2.831 2.265 0 4.815 1.132 6.514 2.831l14.163 14.157c1.7 1.7 2.832 3.965 2.832 6.513z" fill-rule="nonzero" /></svg></span><span class="prev"><a href="https://informatecdigital.com/personalidad-en-smart-home-del-hogar-conectado-al-hogar-que-te-entiende/" rel="prev">Personalidad en smart home: del hogar conectado al hogar que te entiende</a></span></div><div class="nav-next"><span class="gp-icon icon-arrow-right"><svg viewBox="0 0 192 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill-rule="evenodd" clip-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="1.414"><path d="M178.425 256.001c0 2.266-1.133 4.815-2.832 6.515L43.599 394.509c-1.7 1.7-4.248 2.833-6.514 2.833s-4.816-1.133-6.515-2.833l-14.163-14.162c-1.699-1.7-2.832-3.966-2.832-6.515 0-2.266 1.133-4.815 2.832-6.515l111.317-111.316L16.407 144.685c-1.699-1.7-2.832-4.249-2.832-6.515s1.133-4.815 2.832-6.515l14.163-14.162c1.7-1.7 4.249-2.833 6.515-2.833s4.815 1.133 6.514 2.833l131.994 131.993c1.7 1.7 2.832 4.249 2.832 6.515z" fill-rule="nonzero" /></svg></span><span class="next"><a href="https://informatecdigital.com/como-ampliar-ram-y-memoria-virtual-en-windows-paso-a-paso/" rel="next">Cómo ampliar RAM y memoria virtual en Windows paso a paso</a></span></div> </nav> </footer> </div> </article> </main> </div> <div data-rocket-location-hash="0b9fe17c76c2e58ac880f2c41872dd87" class="widget-area sidebar is-right-sidebar" id="right-sidebar"> <div class="inside-right-sidebar"> </div> </div> </div><!-- #content --> </div><!-- #page --> <div class="no-wpr-lazyrender site-footer"> <footer class="gb-container gb-container-925a2a1e"> <div class="gb-container gb-container-cbee1dca"> <div class="gb-grid-wrapper gb-grid-wrapper-51f71b20"> <div class="gb-grid-column gb-grid-column-4f4cf5cf"><div class="gb-container gb-container-4f4cf5cf"> <h2 class="gb-headline gb-headline-5c3b3482 gb-headline-text">Informática y Tecnología Digital</h2> <p class="gb-headline gb-headline-e29c0825 gb-headline-text">En <strong>InformaTecDigital</strong> nos dedicamos a proporcionarte las noticias más recientes y sugerencias efectivas, para que estés siempre al día y bien informado. Nuestro objetivo es ser tu socio de confianza en este emocionante recorrido tecnológico, haciendo más fácil tu experiencia con cada nuevo descubrimiento.</p> </div></div> <div class="gb-grid-column gb-grid-column-04e24954"><div class="gb-container gb-container-04e24954"> <h2 class="gb-headline gb-headline-3e937023 gb-headline-text">Categorías</h2> <p class="gb-headline gb-headline-3f1b1c14 gb-headline-text"><a href="https://informatecdigital.com/tecnologia/">Tecnología</a></p> <p class="gb-headline gb-headline-6500416f gb-headline-text"><a href="https://informatecdigital.com/inteligencia-artificial/">Inteligencia Artificial</a></p> <p class="gb-headline gb-headline-86bfcc6a gb-headline-text"><a href="https://informatecdigital.com/programacion/">Programación</a></p> <p class="gb-headline gb-headline-f9d791fe gb-headline-text"><a href="https://informatecdigital.com/algoritmos/">Algoritmos</a></p> <p class="gb-headline gb-headline-1d5a060c gb-headline-text"><a href="https://informatecdigital.com/informatica/">Informática</a></p> <p class="gb-headline gb-headline-ebbabf05 gb-headline-text"><a href="https://informatecdigital.com/internet/">Internet</a></p> </div></div> <div class="gb-grid-column gb-grid-column-1d8f8f12"><div class="gb-container gb-container-1d8f8f12"> <h2 class="gb-headline gb-headline-529b3704 gb-headline-text">síguenos</h2> <div class="gb-container gb-container-8d3b0714"> <a class="gb-button gb-button-8a872c76" href="https://x.com/informatecd" target="_blank" rel="noopener noreferrer" aria-label="Follow Us on Twitter"><span class="gb-icon"><svg aria-hidden="true" role="img" height="1em" width="1em" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="currentColor" d="M389.2 48h70.6L305.6 224.2 487 464H345L233.7 318.6 106.5 464H35.8L200.7 275.5 26.8 48H172.4L272.9 180.9 389.2 48zM364.4 421.8h39.1L151.1 88h-42L364.4 421.8z"></path></svg></span></a> </div> </div></div> </div> <div class="gb-container gb-container-68b619a0"> <p class="gb-headline gb-headline-368a465b gb-headline-text">© 2026 InformaTecDigital</p> <div class="gb-container gb-container-26043e29"> <p class="gb-headline gb-headline-fcb53bf6 gb-headline-text"><a href="https://informatecdigital.com/quienes-somos/">Quienes Somos</a></p> <p class="gb-headline gb-headline-e38f9197 gb-headline-text"><a href="https://informatecdigital.com/aviso-legal/" data-type="page" data-id="24">Aviso Legal</a></p> <p class="gb-headline gb-headline-f9af17bf gb-headline-text"><a href="https://informatecdigital.com/formulario-de-contacto/">Contacto</a></p> </div> </div> </div> </footer> <p class="wp-block-paragraph"></p> </div><!-- .site-footer --> <div class='ai-viewports ai-viewport-3 ai-insert-4-50704696' data-insertion-position='after' data-selector='.abn-keypoints' data-code='PGRpdiBjbGFzcz0nY29kZS1ibG9jayBjb2RlLWJsb2NrLTQnIHN0eWxlPSdtYXJnaW46IDhweCBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsnPgo8IS0tIGluZm9ybWF0ZWNkaWdpdGFsLWtleXBvaW50cyAtLT4KPGlucyBjbGFzcz0iYWRzYnlnb29nbGUiCiAgICAgc3R5bGU9ImRpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjMyMHB4O2hlaWdodDoxMDBweCIKICAgICBkYXRhLWFkLWNsaWVudD0iY2EtcHViLTI3NDAxMzQ2ODE0NzU4NzgiCiAgICAgZGF0YS1hZC1zbG90PSI2MTgxNDUyODkwIgogICAgIGRhdGEtZnVsbC13aWR0aC1yZXNwb25zaXZlPSJmYWxzZSI+PC9pbnM+CjxzY3JpcHQ+CiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsKPC9zY3JpcHQ+PC9kaXY+Cg==' data-block='4'></div> <script type="speculationrules"> {"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/abn-generatepress-adsense/*","/wp-content/themes/generatepress/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} </script> <script id="abnSchemaJsonWebsite" type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"WebSite","name":"Inform\u00e1tica y Tecnolog\u00eda Digital","url":"https:\/\/informatecdigital.com"}</script><script id="abnSchemaJsonNewsArticle" type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"NewsArticle","headline":"IA local y automatizaci\u00f3n: agentes, seguridad y casos reales","description":"Descubre c\u00f3mo usar IA local para automatizar tu PC y m\u00f3vil con agentes seguros, privados y sin suscripciones en la nube.","datePublished":"2026-05-17T16:27:03+02:00","wordCount":3337,"mainEntityOfPage":{"@type":"WebPage","@id":"https:\/\/informatecdigital.com\/ia-local-y-automatizacion-agentes-seguridad-y-casos-reales\/","name":"IA local y automatizaci\u00f3n: agentes, seguridad y casos reales","url":"https:\/\/informatecdigital.com\/ia-local-y-automatizacion-agentes-seguridad-y-casos-reales\/","inLanguage":"es","datePublished":"2026-05-17T16:27:03+02:00","description":"Descubre c\u00f3mo usar IA local para automatizar tu PC y m\u00f3vil con agentes seguros, privados y sin suscripciones en la nube.","speakable":{"@type":"SpeakableSpecification","xpath":["\/html\/head\/title","\/html\/head\/meta[@name='description']\/@content"]}},"articleBody":"La automatizaci\u00f3n con IA local est\u00e1 dejando de ser cosa de frikis con servidores en casa para convertirse en una opci\u00f3n real para cualquiera que quiera m\u00e1s control, privacidad y flexibilidad. Astăzi nu mai depindeți de cloud-ul unei companii mari pentru a avea agenți capabili să vă citească ecranul, să miște mouse-ul, să lucreze cu fișierele dvs. sau să ruleze fluxuri de lucru complexe în fundal. Peisajul a explodat: de la stive complete precum NemoClaw de la NVIDIA pentru agenți autonomi pe propriul hardware, la aplicații mobile precum PocketBot care transformă limbajul natural în automatizări telefonice, la platforme deschise precum OpenClaw, asistenți precum Jan AI și ghiduri practice pentru configurarea propriului „ChatGPT făcut acasă” cu Ollama și Open WebUI. Scopul este același: să construim un ecosistem în care inteligența artificială (IA) trăiește pe computerul tău, comunică cu programele tale și îți automatizează activitatea zilnică fără a muta datele în afara sediului tău. Ce este automatizarea locală prin IA și de ce contează? Când vorbim despre IA locală pentru automatizare, ne referim la modele și agenți care rulează pe propriul dispozitiv (PC, server, DGX, mobil) fără a trimite date sensibile către servere externe. Modelul decide, execută cod, citește fișiere, apelează API-uri și coordonează instrumente, dar totul se întâmplă în mediul controlat.\n\nEvoluția a fost brutală: de la simpli chatboți care răspundeau doar la întrebări, am trecut la agenți AI capabili să execute lanțuri de sarcini, să orchestreze diverși pași, să consulte diferite surse de date și să ia decizii autonome. Acest lucru a schimbat complet modul în care înțelegem automatizarea: modelul nu mai este doar „cel care răspunde”, ci „cel care acționează”. Această schimbare are o consecință evidentă: mai multă autonomie înseamnă mai mult risc. Dacă îi oferi unui agent acces la sistemul de fișiere, la acreditările tale, la browserul tău sau la instrumentele de dezvoltare, ai nevoie de un design de securitate serios. Aici excelează abordările locale, deoarece puteți limita permisiunile, izola procesele și monitoriza îndeaproape ce face modelul în orice moment. În plus, modelele deschise cu licențe gratuite, cum ar fi Apache-2.0 sau MIT (cum ar fi multe Falcon, Bark, Jan etc.), vă permit să construiți soluții fără a fi legați de contracte sau politici de utilizare opace. Puteți audita codul, ajusta modelul, aplica reglaje fine și chiar îl puteți integra cu hardware specific, cum ar fi GPU-uri A100 sau stații de lucru NVIDIA DGX.\n\nPentru multe sectoare (sănătate, bancar, juridic, administrație publică), unde confidențialitatea și stocarea securizată sunt primordiale, combinația dintre IA locală + agenți autonomi + modele deschise face toată diferența: automatizați, dar datele nu părăsesc perimetrul dvs.\n\nStive locale de IA pentru automatizare avansată: NemoClaw, OpenShell și OpenClaw\n\nNVIDIA a intrat puternic în acest joc cu NemoClaw, o stivă open-source concepută pentru a implementa agenți autonomi în siguranță, local și mereu activi. Este conceput să ruleze pe mașini puternice precum NVIDIA DGX Spark, dar filosofia este aplicabilă și altor medii certificate.\n\nNemoClaw acționează ca un strat de orchestrare: instalează și coordonează OpenShell (rularea de securitate) și OpenClaw (framework-ul de agenți multicanal), configurează inferența modelului (prin Ollama sau NVIDIA NIM) și aplică politici de securitate de la început, nu ca un patch de ultim moment.\n\nÎn centrul stivei se află de obicei NVIDIA Nemotron 3 Super 120B, un model cu 120 de miliarde de parametri optimizat pentru agenți: foarte bun la urmărirea instrucțiunilor complexe, la gestionarea instrumentelor și la raționamentul în mai mulți pași. Totuși, pentru a rula ceva de această dimensiune, ai nevoie de o placă grafică puternică și multă memorie; vorbim despre 87 GB doar pentru model.\n\nInference este în mod normal servit cu Ollama ca runtime local, care expune o API REST pe mașina însăși. NemoClaw comunică cu această API pentru a trimite solicitări, a primi răspunsuri și a coordona apelurile instrumentelor folosind modelul de apelare a instrumentelor.\n\nComponenta OpenShell este esențială pentru securitate: impune sandboxing, controlează acreditările, acționează ca proxy de rețea și aplică principiul privilegiilor minime. Monitorizează conexiunile pe care agentul încearcă să le stabilească și vă permite să aprobați sau să blocați punctele finale dintr-o interfață de tip TUI. În acest fel, dacă modelul încearcă să acceseze un serviciu nou, nu se întâmplă nimic fără aprobarea dumneavoastră.\n\nOpenClaw, stratul agentului multicanal, se află în sandbox. Este responsabil pentru comunicarea cu platforme precum Telegram, Slack sau Discord, gestionarea memoriei agentului, conectarea instrumentelor (scripturi, API-uri, browsere) și menținerea conversației pe termen lung. Dacă doriți un asistent mereu activ, accesibil prin mesagerie și cu memorie persistentă, iată instrumentul care face acest lucru posibil.\n\nSecuritate, sandboxing și implementare locală pas cu pas\n\nUnul dintre marile puncte forte ale acestei stive este faptul că securitatea este încorporată prin proiectare, nu este adăugată ulterior. Greșeala tipică în proiectele cu agenți este de a construi mai întâi toate funcționalitățile și apoi de a încerca să „sigilezi” ceea ce a fost deja construit, creând găuri peste tot.\n\nMecanismul central este sandboxing-ul de execuție. Tot codul pe care agentul dorește să îl execute rulează într-un mediu izolat: nu are acces direct la sistemul de fișiere al gazdei, nu poate efectua apeluri arbitrare în rețea sau escalada privilegii dincolo de ceea ce este definit în configurație. Acest lucru atenuează considerabil impactul atacurilor de tip prompt injection sau al instrucțiunilor rău intenționate. Dacă modelul decide să facă ceva ciudat, daunele rămân limitate la sandbox. Chiar și așa, NVIDIA recunoaște că niciun sandbox nu este perfect, așa că recomandă testarea întotdeauna a noilor instrumente pe sisteme izolate. În plus, NemoClaw implementează un control granular al instrumentelor și politicilor în timp real. În mod implicit, agentul poate comunica doar cu un număr minim de puncte de acces ale rețelei. Când încearcă ceva nou, OpenShell îl blochează și vezi exact ce încearcă să facă (gazdă, port, proces). Puteți aproba sesiunea respectivă sau puteți adăuga o politică permanentă pe gazdă.\n\nFluxul de implementare într-un DGX Spark urmează de obicei acești pași: configurați Ubuntu 24.04 LTS cu drivere NVIDIA urmând un ghid de asamblare a computerului, instalați Docker 28.x sau o versiune ulterioară cu runtime GPU, instalați Ollama și descărcați modelul Nemotron 3 Super 120B și, în final, lansați instalarea NemoClaw cu o singură comandă care declanșează un expert de configurare.\n\nAceastă integrare vă ghidează prin numele sandbox-ului, furnizorul de inferențe, modelul ales, presetările de securitate și, dacă doriți, integrarea Telegram. Timpul de configurare activă este estimat la 20-30 de minute, plus încă 15-30 de minute pentru descărcarea modelului, în funcție de lățimea de bandă. În ceea ce privește performanța, trebuie să fim realiști: un răspuns cu un model de 120B de parametri poate dura între 30 și 90 de secunde într-un context local. Nu este o problemă în sine, dar trebuie luată în considerare la proiectarea fluxurilor de utilizare și a tipului de sarcini pe care le atribuiți agentului.\n\nAcces de la distanță, interfață web și hardware concepute pentru inteligența artificială locală\n\nOdată ce totul este configurat, puteți interacționa cu agentul în mai multe moduri. Cea mai comună metodă este prin Telegram, folosind un bot creat cu @BotFather. Este o alegere practică: API robust, criptare, aplicații pentru toate tipurile de dispozitive și nu este nevoie să expuneți porturile serverului către exterior. Botul primește mesajele dvs., le transmite agentului din DGX și vă returnează răspunsul. Interesant este că, deși conversația trece prin infrastructura Telegram, inferența și accesul la datele sensibile rămân 100% locale pe mașina ta. În plus, NemoClaw oferă o interfață web privată accesibilă printr-o adresă URL tokenizată, generată o singură dată la sfârșitul procesului de integrare. Este esențial să salvați adresa URL respectivă în acest moment, deoarece nu va fi afișată din nou. Pentru a-l vizualiza de pe o altă mașină din rețea, trebuie să configurați un terminal SSH și redirecționarea porturilor prin OpenShell. Un detaliu mic, dar important, este că URL-ul trebuie deschis cu 127.0.0.1 în loc de localhost. Utilizarea localhost poate cauza erori de tip sursă neautorizată (CORS), ceea ce vă poate pierde timpul dacă nu sunteți conștient de acest lucru.\n\nPentru operarea zilnică, există mai multe comenzi CLI utile: deschiderea unui shell în interiorul sandbox-ului, vizualizarea stării, monitorizarea jurnalelor în timp real, listarea sandbox-urilor, pornirea sau oprirea podului Telegram, activarea redirecționării porturilor sau rularea unui script de dezinstalare curat care elimină întregul stack.\n\nÎn ceea ce privește hardware-ul, NVIDIA DGX Spark este în mod clar conceput pentru aceste cazuri de utilizare. Este un sistem compact cu GPU-uri NVIDIA și memorie unificată cu lățime de bandă mare, ideal pentru rularea modelelor de dimensiuni medii și mari cu latență redusă, fără a fi nevoie să configurați un centru de date complet. Memoria unificată este utilă în special în cazul unuia dintre blocajele clasice: mutarea datelor între procesor și GPU. Prin partajarea spațiului de memorie, modelul accesează datele mult mai eficient, permițând încărcarea modelelor cu zeci de miliarde de parametri în timp (aproape) real - lucru de neconceput până de curând pe hardware-ul de larg consum.\n\nAgenți IA locali populari: exemple și cazuri de utilizare\n\nDincolo de ecosistemul NVIDIA, există un număr mare de agenți IA și platforme orientate spre automatizare pe propria mașină care merită cunoscute. Fiecare vizează un alt tip de utilizator și un set diferit de sarcini.\n\nOpenClaw, de exemplu, a devenit popular ca platformă de agenți open-source care acționează ca un asistent personal. Îți permite să creezi agenți personalizați pentru a-ți curăța inbox-ul, a trimite mesaje, a gestiona calendarul, a organiza călătorii sau a automatiza sarcini repetitive din viața ta digitală. Poate fi instalat pe Windows, macOS și Linux și este gata să funcționeze cu modele LLM la nivel local, ceea ce îmbunătățește confidențialitatea și reduce dependența de cloud. În plus, se integrează cu aplicații de mesagerie precum WhatsApp, Telegram, Discord, Slack, Signal și Apple Messages, astfel încât agentul tău se află „în spatele” chat-urilor pe care le folosești deja. Prin intermediul plugin-urilor, îi poți oferi acces la browser, rețele sociale, clienți de e-mail și alte aplicații, precum și îi poți permite să interacționeze cu sistemul de fișiere, să execute comenzi și scripturi sau să automatizeze sarcini tipice de birou și productivitate. Toate acestea cu un accent clar pe permiterea utilizatorului să aleagă ce foldere, aplicații și servicii sunt accesibile agentului.\n\nÎn ecosistemul mai generalist, platforme precum Perplexity Computer ies în evidență, transformând Perplexity dintr-un simplu motor de căutare conversațional într-un asistent care poate executa fluxuri de lucru complexe. Acest mod Computer vă permite să navigați pe web, să creați și să gestionați documente, să programați cod, să procesați date și să vă coordonați cu servicii precum Gmail, Slack, GitHub sau Notion. Punctul său forte constă în utilizarea unor modele precum Claude, GPT, Gemini sau Sonar, propriul program Perplexity, pentru a gestiona volume mari de informații și a împărți sarcinile complexe în subsarcini care pot fi executate în serie sau în paralel. Deși nu sunt întotdeauna complet locale, modelul de agent și integrarea instrumentelor sunt foarte similare cu cele ale agenților care rulează pe mașina dvs.\n\nÎn domeniul pur open source și local, Jan AI se prezintă ca un înlocuitor pentru ChatGPT, instalabil pe Windows, Mac și Linux. Îți permite să utilizezi modele locale precum Llama (Meta) sau Gemma (Google) sau să te conectezi la modele online precum ChatGPT, Claude, Gemini, Mistral, Qwen sau DeepSeek, dacă ești interesat de o combinație. Jan AI funcționează atât ca un asistent conversațional clasic (întrebări, redactare, rezumare, traducere, rescriere, explicații), cât și ca un agent capabil să proceseze fișiere și documente, să execute comenzi și să genereze cod în diverse limbaje. În plus, accentul pus pe personalizare facilitează crearea propriului agent cu instrucțiuni specifice și comutarea între diferite „profiluri” în funcție de ceea ce faceți.\n\nAgenți pe dispozitiv: PocketBot și automatizare pe mobil\n\nConceptul de inteligență artificială locală nu rămâne pe PC. De asemenea, are un impact puternic asupra dispozitivelor mobile, unde tot mai multe proiecte optează pentru modele mici, dar specializate, pentru a automatiza telefonul fără a trece prin cloud. Un exemplu clar este PocketBot, un agent care rulează direct pe iPhone folosind llama.cpp pe Metal. Misiunea sa este de a converti limbajul natural în automatizări telefonice: în loc să navigați prin nenumărate meniuri sau comenzi rapide, descrieți ceea ce doriți, iar agentul traduce acest lucru în acțiuni. PocketBot folosește un model cuantizat de 3 miliarde de parametri, rulând în întregime local și fără a trimite date către servere externe. Memoria disponibilă pe un iPhone 15 Pro este de obicei de 3-4 GB utilizabili înainte ca iOS să înceapă să oprească procesele, așa că dimensiunea modelului și cuantizarea sunt esențiale. Una dintre provocările menționate de creatorii săi este găsirea unor modele mici și fiabile pentru apelarea instrumentelor și ieșirea JSON structurată. Folosind Qwen3, de exemplu, aceștia întâmpină probleme precum nume de parametri inventate, JSON malformat (paranteze lipsă) și respectarea inconsistentă a schemei, forțând implementarea straturilor de autocorecție și reîncercare. Există, de asemenea, multe dezbateri despre punctul optim de cuantizare pentru a obține cel mai bun raport calitate/memorie, luând în considerare opțiuni precum q4_K_M sau q5_K_S, în funcție de generația cipului și de memoria disponibilă. Fiecare bit mai puțin în cuantizare înseamnă modele mai ușor de gestionat, dar poate penaliza raționamentul și precizia în apelurile instrumentelor. Un alt aspect este ajustarea parametrilor de eșantionare în funcție de sarcină. Configurațiile tipice includ temperatura 0,7, top_p 0,8, top_k 20 și repeat_penalty 1,1, dar există interes în separarea strategiilor de generare pentru conversația liberă de apelarea instrumentelor, unde determinismul este mai important, iar creativitatea mai puțin.\n\nÎn cele din urmă, pe mobil, gestionarea contextului este deosebit de delicată: promptul de sistem este de obicei stocat în memoria cache KV pentru a evita reprocesarea acestuia, iar ferestrele glisante sunt aplicate pentru a evita depășirea capacității; De aceea este util să știi cum să salvezi și să organizezi prompturile.\n\nDincolo de asta, există loc pentru trucuri de sumarizare incrementală, memorie selectivă sau scheme hibride care combină istoricul comprimat și contextul imediat.\n\nConfigurarea propriului „ChatGPT” local cu Ollama și Open WebUI\n\nPentru cei care nu au nevoie de o stivă la fel de complexă precum NemoClaw, dar doresc un asistent de tip ChatGPT care să ruleze pe computerul lor, o abordare foarte practică bazată pe Ollama și Open WebUI a devenit populară.\n\nIdeea este simplă: Ollama se ocupă de descărcarea și servirea modelelor (Llama, Gemma, Qwen etc.) pe mașina ta prin intermediul unui API local, iar Open WebUI oferă o interfață web foarte similară cu ChatGPT, dar care rulează complet pe computer. Tot traficul dintre interfața utilizator și model trece prin localhost.\n\nUn ghid pas cu pas foarte simplu detaliază cum, cu aproximativ 15 comenzi de terminal, puteți avea această configurație funcțională în mai puțin de o oră. Include instalarea Python 3.11, configurația de bază a sistemului, instalarea Ollama și implementarea Open WebUI, împreună cu capturi de ecran și sfaturi de depanare. Rezultatul este un mediu în care vă bucurați de costuri zero de abonament, confidențialitate completă (datele nu părăsesc niciodată computerul), timpi de răspuns competitivi (fără cozi de server partajate) și libertate totală de a personaliza asistenți specializați pentru a se potrivi nevoilor dumneavoastră. În plus, Open WebUI integrează funcții avansate precum căutare web, interpretor de cod, crearea de modele personalizate din configurații specifice și pregătește capabilități RAG avansate pentru construirea de baze de cunoștințe personale. Ideea este că poți avea un „copilot” instruit, familiarizat cu documentele și fluxurile tale de lucru, fără a te baza pe terți. După câteva luni de utilizare, mulți utilizatori raportează că această combinație le-a înlocuit complet abonamentele plătite la soluții cloud, îmbunătățind în același timp integrarea cu propriile date și instrumente locale. Următorul pas firesc este conectarea acelui „ChatGPT” creat acasă cu agenți, scripturi și servicii pentru a coordona automatizări mai complexe.\n\nAutomatizarea vieții digitale: exemple practice cu inteligență artificială locală\n\nToate acestea sună grozav la nivel tehnic, dar ce poți face în viața de zi cu zi cu agenți locali bine configurați? Posibilitățile sunt destul de largi dacă combinați modele multimodale, acces la ecran, instrumente și stocare structurată. Există propuneri concepute pentru a automatiza utilizarea propriului computer cu agenți care primesc capturi de ecran și acționează pe baza lor. Fluxul ar fi cam așa: sistemul face o captură de ecran, agentul o procesează cu un model capabil să lucreze cu imagini, înțelege ce aplicație este deschisă, ce butoane sunt prezente, ce text apare și, pe baza solicitării dvs., decide ce să facă în continuare. Cu această idee, ați putea, de exemplu, configura agenți specializați în traducere: sistemul capturează partea de ecran pe care doriți să o traduceți, o mărește într-o fereastră de tip „traducător lupă” și generează o traducere aproape instantanee folosind un model mic (de exemplu, cu parametri 4B) ajustat fin pentru traducere, ca o variantă ajustată fin a PHI.\n\nUn alt front interesant este cel al modelelor vizuale care transformă capturile în PDF-uri. Imaginează-ți un instrument care, din capturi de ecran ale prezentărilor, tablourilor de bord sau documentelor, generează PDF-uri bine formatate pe care le poți apoi perfecționa sau utiliza direct în prezentările tale. Integrarea Python cu Acrobat vă permite să automatizați întregul proces. Pentru a lucra cu webul fără a vă baza pe servicii externe, tehnologiile veterane precum BeautifulSoup rămân foarte utile. Puteți configura un scraper ușor care parcurge mai multe pagini, păstrează doar codul HTML necesar (de exemplu, extragând doar , p, h1, h2, h3) și transmite modelului doar textul filtrat. Acest lucru reduce zgomotul, vă oferă un control precis asupra a ceea ce vede inteligența artificială și elimină dependența de API-uri terțe. În plus, dacă agentul are acces la cursor și la instrumentele de editare video, deschide ușa către automatizarea sarcinilor în programe precum DaVinci Resolve sau Adobe After Effects. Agentul ar compara ultima captură de ecran cu următoarea, ar deduce unde să plaseze mouse-ul și ce acțiune să efectueze pentru a avansa către rezultatul solicitat. La nivel audio, puteți integra un sistem vocal cu evaluare umană: agentul generează o frază (de exemplu, „Bună dimineața, dragostea mea”), o evaluați de la 1 la 10 și decideți dacă o salvați. Această clasificare poate fi utilizată pentru a ajusta parametri precum temperatura de generare sau o puteți regla manual dintr-o fereastră dedicată. Prin salvarea vocilor în fișiere precum {phrase}-{number}.mp3 sau .wav, puteți reutiliza și recombina vocile în sesiunile viitoare. Modele precum Bark, licențiate sub licența MIT, se pretează foarte bine acestei personalizări aproape infinite, adăugând chiar și nuanțe emoționale atunci când are sens. Pentru a organiza toate aceste informații, este esențial să oferiți agentului un folder personal structurat pe mașina dvs.: user-info/, search-data/, screenshots/, screenshots-for-translate/, voices/, lang/, code-spaces/… În loc să încărcați codul pe GitHub, puteți salva proiectele local și puteți alege ce depozite sau foldere folosește agentul ca și context în fiecare sesiune. În cele din urmă, dacă doriți ca modelul să se adapteze la dvs. în timp, puteți explora tehnici ușoare de reglare fină, cum ar fi LoRa sau QLoRA. Aceste abordări vă permit să ajustați modelul la stilul sau domeniul dvs. fără a fi nevoie să reantrenați totul de la zero, deși în mediile în care productivitatea pură este primordială, s-ar putea să nu merite să îl aveți mereu activ; în mod ideal, ar trebui să puteți activa sau dezactiva această personalizare. În acest context, alegerea modelului de bază devine, de asemenea, importantă: mulți dezvoltatori caută modele Apache-2.0 sau MIT, atât în ​​dimensiuni mici (2-4B parametri) pentru prototipuri și dispozitive modeste, cât și în modele 30B antrenate cu hardware de ultimă generație (de exemplu, GPU-uri A100) pentru reglaje fine la scară largă. Se estimează că câteva luni de muncă serioasă în acest domeniu pot da rezultate foarte competitive. Privind întregul ecosistem în ansamblu, automatizarea IA locală se transformă dintr-un experiment într-o infrastructură solidă, atât pentru utilizatorii individuali sătui de taxele lunare, cât și pentru companiile care nu își permit să trimită date sensibile în afara locației. De la stive pregătite pentru producție, precum NemoClaw, la configurații pentru acasă cu Ollama și Open WebUI, inclusiv agenți desktop și mobili precum OpenClaw, Jan AI și PocketBot, numitorul comun este același: mai mult control, mai multă confidențialitate și autonomie AI pe care, pentru prima dată, o puteți guverna.\n\nArticol conex: Microsoft Mu: noua AI locală care revoluționează configurația în Windows 11","thumbnailUrlhttps:\/\/informatecdigital.com\/wp-content\/uploads\/2026\/05\/local-AI-automatizacion.jpg","author":{"@typePersonnameTecnoDigitalurlhttps:\/\/informatecdigital.com\/author\/tecnodigital\/jobTitleEditordescriptionPasionat de tehnologie și dezvoltare software, mă aprofundez în lumea sistemelor și IT-ului cu scopul de a promova inovația și de a rezolva provocări complexe."},"publisher":{"@typeOrganizationnameInformatică și Digital Technologyurlhttps:\/\/informatecdigital.comparentOrganization":{"@typeOrganizationnameBlog de evenimente curente","url":"https:\/\/www.actualidadblog.com\/"}},"copyrightHolder":{"@type":"Organizație","name":"Inform\u00e1tica y Tehnologia Digital","url":"https:\/\/informatecdigital.com"},"articleSection":"Inteligență artificială","image":{"@type":"Obiect imagine","url":"https:\/\/informatecdigital.com\/wp-content\/uploads\/2026\/05\/local-AI-automatizacion.jpg","width":1920,"height":1280}} !function(){"use strict";if("querySelector"in document&&"addEventListener"in window){var e=document.body;e.addEventListener("pointerdown",(function(){e.classList.add("using-mouse")}),{passive:!0}),e.addEventListener("keydown",(function(){e.classList.remove("using-mouse")}),{passive:!0})}}(); Caută: value="" name="s" /> <button aria-label="Buscar"><span class="gp-icon icon-search"><svg viewBox="0 0 512 512" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" width="1em" height="1em"><path fill-rule="evenodd" clip-rule="evenodd" d="M208 48c-88.366 0-160 71.634-160 160s71.634 160 160 160 160-71.634 160-160S296.366 48 208 48zM0 208C0 93.125 93.125 0 208 0s208 93.125 208 208c0 48.741-16.765 93.566-44.843 129.024l133.826 134.018c9.366 9.379 9.355 24.575-.025 33.941-9.379 9.366-24.575 9.355-33.941-.025L337.238 370.987C301.747 399.167 256.839 416 208 416 93.125 416 0 322.875 0 208z" /></svg></span></button> </div> </form> </div> </div> </div> <script type="text/rocketlazyloadscript" id="generate-sticky-js" data-rocket-src="https://informatecdigital.com/wp-content/plugins/gp-premium/menu-plus/functions/js/sticky.min.js?ver=2.5.6" data-rocket-defer defer></script> <script id="toc-front-js-extra"> var tocplus = {"visibility_show":"mostrar","visibility_hide":"ocultar","toggle_style":"brackets","visibility_hide_by_default":"1","width":"100%"}; //# sourceURL=toc-front-js-extra </script> <script type="text/rocketlazyloadscript" id="toc-front-js" data-rocket-src="https://informatecdigital.com/wp-content/plugins/table-of-contents-plus/assets/front.min.js?ver=202609.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" id="generate-menu-js-before"> var generatepressMenu = {"toggleOpenedSubMenus":true,"openSubMenuLabel":"Abrir el submen\u00fa","closeSubMenuLabel":"Cerrar el submen\u00fa"}; //# sourceURL=generate-menu-js-before </script> <script type="text/rocketlazyloadscript" id="generate-menu-js" data-rocket-src="https://informatecdigital.com/wp-content/themes/generatepress/assets/js/menu.min.js?ver=3.6.1" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript" data-minify="1" id="generate-modal-js" data-rocket-src="https://informatecdigital.com/wp-content/cache/min/1/wp-content/themes/generatepress/assets/dist/modal.js?ver=1790397692" data-rocket-defer defer></script> <script type="text/rocketlazyloadscript"> function b2a(a){var b,c=0,l=0,f="",g=[];if(!a)return a;do{var e=a.charCodeAt(c++);var h=a.charCodeAt(c++);var k=a.charCodeAt(c++);var d=e<<16|h<<8|k;e=63&d>>18;h=63&d>>12;k=63&d>>6;d&=63;g[l++]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(e)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(h)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(k)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".charAt(d)}while(c< a.length);return f=g.join(""),b=a.length%3,(b?f.slice(0,b-3):f)+"===".slice(b||3)}function a2b(a){var b,c,l,f={},g=0,e=0,h="",k=String.fromCharCode,d=a.length;for(b=0;64>b;b++)f["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(b)]=b;for(c=0;d>c;c++)for(b=f[a.charAt(c)],g=(g<<6)+b,e+=6;8<=e;)((l=255&g>>>(e-=8))||d-2>c)&&(h+=k(l));return h}b64e=function(a){return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(b,a){return String.fromCharCode("0x"+a)}))}; b64d=function(a){return decodeURIComponent(atob(a).split("").map(function(a){return"%"+("00"+a.charCodeAt(0).toString(16)).slice(-2)}).join(""))}; /* <![CDATA[ */ ai_front = {"insertion_before":"ANTES","insertion_after":"DESPU\u00c9S","insertion_prepend":"ANEXAR CONTENIDO","insertion_append":"ADJUNTAR CONTENIDO","insertion_replace_content":"REEMPLAZAR EL CONTENIDO","insertion_replace_element":"REEMPLAZAR EL ELEMENTO","visible":"VISIBLE","hidden":"OCULTO","fallback":"RESPALDO","automatically_placed":"C\u00f3digo del anuncio colocado autom\u00e1ticamente por AdSense","cancel":"Cancelar","use":"Usar","add":"A\u00f1adir","parent":"Principal","cancel_element_selection":"Cancela selecci\u00f3n de elemento","select_parent_element":"Selcciona elemento padre","css_selector":"Selector CSS","use_current_selector":"Usa el selector actual","element":"ELEMENTO","path":"RUTA","selector":"SELECTOR"}; /* ]]> */ var ai_cookie_js=!0,ai_block_class_def="code-block"; /* js-cookie v3.0.5 | MIT JavaScript Cookie v2.2.0 https://github.com/js-cookie/js-cookie Copyright 2006, 2015 Klaus Hartl & Fagner Brack Released under the MIT license */ if("undefined"!==typeof ai_cookie_js){(function(a,f){"object"===typeof exports&&"undefined"!==typeof module?module.exports=f():"function"===typeof define&&define.amd?define(f):(a="undefined"!==typeof globalThis?globalThis:a||self,function(){var b=a.Cookies,c=a.Cookies=f();c.noConflict=function(){a.Cookies=b;return c}}())})(this,function(){function a(b){for(var c=1;c<arguments.length;c++){var g=arguments[c],e;for(e in g)b[e]=g[e]}return b}function f(b,c){function g(e,d,h){if("undefined"!==typeof document){h= a({},c,h);"number"===typeof h.expires&&(h.expires=new Date(Date.now()+864E5*h.expires));h.expires&&(h.expires=h.expires.toUTCString());e=encodeURIComponent(e).replace(/%(2[346B]|5E|60|7C)/g,decodeURIComponent).replace(/[()]/g,escape);var l="",k;for(k in h)h[k]&&(l+="; "+k,!0!==h[k]&&(l+="="+h[k].split(";")[0]));return document.cookie=e+"="+b.write(d,e)+l}}return Object.create({set:g,get:function(e){if("undefined"!==typeof document&&(!arguments.length||e)){for(var d=document.cookie?document.cookie.split("; "): [],h={},l=0;l<d.length;l++){var k=d[l].split("="),p=k.slice(1).join("=");try{var n=decodeURIComponent(k[0]);h[n]=b.read(p,n);if(e===n)break}catch(q){}}return e?h[e]:h}},remove:function(e,d){g(e,"",a({},d,{expires:-1}))},withAttributes:function(e){return f(this.converter,a({},this.attributes,e))},withConverter:function(e){return f(a({},this.converter,e),this.attributes)}},{attributes:{value:Object.freeze(c)},converter:{value:Object.freeze(b)}})}return f({read:function(b){'"'===b[0]&&(b=b.slice(1,-1)); return b.replace(/(%[\dA-F]{2})+/gi,decodeURIComponent)},write:function(b){return encodeURIComponent(b).replace(/%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,decodeURIComponent)}},{path:"/"})});AiCookies=Cookies.noConflict();function m(a){if(null==a)return a;'"'===a.charAt(0)&&(a=a.slice(1,-1));try{a=JSON.parse(a)}catch(f){}return a}ai_check_block=function(a){var f="undefined"!==typeof ai_debugging;if(null==a)return!0;var b=m(AiCookies.get("aiBLOCKS"));ai_debug_cookie_status="";null==b&&(b={});"undefined"!== typeof ai_delay_showing_pageviews&&(b.hasOwnProperty(a)||(b[a]={}),b[a].hasOwnProperty("d")||(b[a].d=ai_delay_showing_pageviews,f&&console.log("AI CHECK block",a,"NO COOKIE DATA d, delayed for",ai_delay_showing_pageviews,"pageviews")));if(b.hasOwnProperty(a)){for(var c in b[a]){if("x"==c){var g="",e=document.querySelectorAll('span[data-ai-block="'+a+'"]')[0];"aiHash"in e.dataset&&(g=e.dataset.aiHash);e="";b[a].hasOwnProperty("h")&&(e=b[a].h);f&&console.log("AI CHECK block",a,"x cookie hash",e,"code hash", g);var d=new Date;d=b[a][c]-Math.round(d.getTime()/1E3);if(0<d&&e==g)return ai_debug_cookie_status=b="closed for "+d+" s = "+Math.round(1E4*d/3600/24)/1E4+" days",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1;f&&console.log("AI CHECK block",a,"removing x");ai_set_cookie(a,"x","");b[a].hasOwnProperty("i")||b[a].hasOwnProperty("c")||ai_set_cookie(a,"h","")}else if("d"==c){if(0!=b[a][c])return ai_debug_cookie_status=b="delayed for "+b[a][c]+" pageviews",f&&console.log("AI CHECK block",a, b),f&&console.log(""),!1}else if("i"==c){g="";e=document.querySelectorAll('span[data-ai-block="'+a+'"]')[0];"aiHash"in e.dataset&&(g=e.dataset.aiHash);e="";b[a].hasOwnProperty("h")&&(e=b[a].h);f&&console.log("AI CHECK block",a,"i cookie hash",e,"code hash",g);if(0==b[a][c]&&e==g)return ai_debug_cookie_status=b="max impressions reached",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1;if(0>b[a][c]&&e==g){d=new Date;d=-b[a][c]-Math.round(d.getTime()/1E3);if(0<d)return ai_debug_cookie_status= b="max imp. atins ("+Math.round(1E4*d/24/3600)/1E4+" zile = "+d+" s)",f&&console.log("AI CHECK block",a,b),f&&console.log("" ),!1;f&&console.log("AI CHECK block",a,"eliminarea i");ai_set_cookie(a,"i","");b[a].hasOwnProperty("c")||b[ a].hasOwnProperty("x")||(f&&console.log("AI CHECK block",a,"cookie h eliminat"),ai_set_cookie(a,"h",""))}}if("ipt" ==c&&0==b[a][c]&&(d=nouă dată,g=Math.round(d.getTime()/1E3),d=b[a].it-g,0 per time reached ("+Math.round(1E4*d/24/ 3600)/1E4+" days = "+d+" s)",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1;if("c"==c){g="";e=document.querySelectorAll('span[data-ai-block="'+a+'"]')[0];"aiHash"in e.dataset&&(g=e.dataset.aiHash);e="";b[a].hasOwnProperty("h")&&(e=b[a].h);f&&console.log("AI CHECK block",a,"c cookie hash",e,"code hash",g);if(0==b[a][c]&&e==g)return ai_debug_cookie_status=b="max clicks reached",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1;if(0>b[a][c]&&e==g){d=new Date;d=-b[a][c]-Math.round(d.getTime()/ 1E3);if(0<d)return ai_debug_cookie_status=b="max clicks reached ("+Math.round(1E4*d/24/3600)/1E4+" days = "+d+" s)",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1;f&&console.log("AI CHECK block",a,"removing c");ai_set_cookie(a,"c","");b[a].hasOwnProperty("i")||b[a].hasOwnProperty("x")||(f&&console.log("AI CHECK block",a,"cookie h removed"),ai_set_cookie(a,"h",""))}}if("cpt"==c&&0==b[a][c]&&(d=new Date,g=Math.round(d.getTime()/1E3),d=b[a].ct-g,0<d))return ai_debug_cookie_status=b="max clicks per time reached ("+ Math.round(1E4*d/24/3600)/1E4+" days = "+d+" s)",f&&console.log("AI CHECK block",a,b),f&&console.log(""),!1}if(b.hasOwnProperty("G")&&b.G.hasOwnProperty("cpt")&&0==b.G.cpt&&(d=new Date,g=Math.round(d.getTime()/1E3),d=b.G.ct-g,0<d))return ai_debug_cookie_status=b="max global clicks per time reached ("+Math.round(1E4*d/24/3600)/1E4+" days = "+d+" s)",f&&console.log("AI CHECK GLOBAL",b),f&&console.log(""),!1}ai_debug_cookie_status="OK";f&&console.log("AI CHECK block",a,"OK");f&&console.log("");return!0}; ai_check_and_insert_block=function(a,f){var b="undefined"!==typeof ai_debugging;if(null==a)return!0;var c=document.getElementsByClassName(f);if(c.length){c=c[0];var g=c.closest("."+ai_block_class_def),e=ai_check_block(a);!e&&0!=parseInt(c.getAttribute("limits-fallback"))&&c.hasAttribute("data-fallback-code")&&(b&&console.log("AI CHECK FAILED, INSERTING FALLBACK BLOCK",c.getAttribute("limits-fallback")),c.setAttribute("data-code",c.getAttribute("data-fallback-code")),null!=g&&g.hasAttribute("data-ai")&& c.hasAttribute("fallback-tracking")&&c.hasAttribute("fallback_level")&&g.setAttribute("data-ai-"+c.getAttribute("fallback_level"),c.getAttribute("fallback-tracking")),e=!0);c.removeAttribute("data-selector");e?(ai_insert_code(c),g&&(b=g.querySelectorAll(".ai-debug-block"),b.length&&(g.classList.remove("ai-list-block"),g.classList.remove("ai-list-block-ip"),g.classList.remove("ai-list-block-filter"),g.style.visibility="",g.classList.contains("ai-remove-position")&&(g.style.position="")))):(b=c.closest("div[data-ai]"), null!=b&&"undefined"!=typeof b.getAttribute("data-ai")&&(e=JSON.parse(b64d(b.getAttribute("data-ai"))),"undefined"!==typeof e&&e.constructor===Array&&(e[1]="",b.setAttribute("data-ai",b64e(JSON.stringify(e))))),g&&(b=g.querySelectorAll(".ai-debug-block"),b.length&&(g.classList.remove("ai-list-block"),g.classList.remove("ai-list-block-ip"),g.classList.remove("ai-list-block-filter"),g.style.visibility="",g.classList.contains("ai-remove-position")&&(g.style.position=""))));c.classList.remove(f)}c=document.querySelectorAll("."+ f+"-dbg");g=0;for(b=c.length;g<b;g++)e=c[g],e.querySelector(".ai-status").textContent=ai_debug_cookie_status,e.querySelector(".ai-cookie-data").textContent=ai_get_cookie_text(a),e.classList.remove(f+"-dbg")};ai_load_cookie=function(){var a="undefined"!==typeof ai_debugging,f=m(AiCookies.get("aiBLOCKS"));null==f&&(f={},a&&console.log("AI COOKIE NOT PRESENT"));a&&console.log("AI COOKIE LOAD",f);return f};ai_set_cookie=function(a,f,b){var c="undefined"!==typeof ai_debugging;c&&console.log("AI COOKIE SET block:", a,"property:",f,"value:",b);var g=ai_load_cookie();if(""===b){if(g.hasOwnProperty(a)){delete g[a][f];a:{f=g[a];for(e in f)if(f.hasOwnProperty(e)){var e=!1;break a}e=!0}e&&delete g[a]}}else g.hasOwnProperty(a)||(g[a]={}),g[a][f]=b;0===Object.keys(g).length&&g.constructor===Object?(AiCookies.remove("aiBLOCKS"),c&&console.log("AI COOKIE REMOVED")):AiCookies.set("aiBLOCKS",JSON.stringify(g),{expires:365,path:"/"});if(c)if(a=m(AiCookies.get("aiBLOCKS")),"undefined"!=typeof a){console.log("AI COOKIE NEW", a);console.log("AI COOKIE DATA:");for(var d in a){for(var h in a[d])"x"==h?(c=new Date,c=a[d][h]-Math.round(c.getTime()/1E3),console.log(" BLOCK",d,"closed for",c,"s = ",Math.round(1E4*c/3600/24)/1E4,"days")):"d"==h?console.log(" BLOCK",d,"delayed for",a[d][h],"pageviews"):"e"==h?console.log(" BLOCK",d,"show every",a[d][h],"pageviews"):"i"==h?(e=a[d][h],0<=e?console.log(" BLOCK",d,a[d][h],"impressions until limit"):(c=new Date,c=-e-Math.round(c.getTime()/1E3),console.log(" BLOCK",d,"max impressions, closed for", c,"s =",Math.round(1E4*c/3600/24)/1E4,"days"))):"ipt"==h?console.log(" BLOCK",d,a[d][h],"impressions until limit per time period"):"it"==h?(c=new Date,c=a[d][h]-Math.round(c.getTime()/1E3),console.log(" BLOCK",d,"impressions limit expiration in",c,"s =",Math.round(1E4*c/3600/24)/1E4,"days")):"c"==h?(e=a[d][h],0<=e?console.log(" BLOCK",d,e,"clicks until limit"):(c=new Date,c=-e-Math.round(c.getTime()/1E3),console.log(" BLOCK",d,"max clicks, closed for",c,"s =",Math.round(1E4*c/3600/24)/1E4,"days"))): "cpt"==h?console.log(" BLOCK",d,a[d][h],"clicks until limit per time period"):"ct"==h?(c=new Date,c=a[d][h]-Math.round(c.getTime()/1E3),console.log(" BLOCK",d,"clicks limit expiration in ",c,"s =",Math.round(1E4*c/3600/24)/1E4,"days")):"h"==h?console.log(" BLOCK",d,"hash",a[d][h]):console.log(" ?:",d,":",h,a[d][h]);console.log("")}}else console.log("AI COOKIE NOT PRESENT");return g};ai_get_cookie_text=function(a){var f=m(AiCookies.get("aiBLOCKS"));null==f&&(f={});var b="";f.hasOwnProperty("G")&& (b="G["+JSON.stringify(f.G).replace(/"/g,"").replace("{","").replace("}","")+"] ");var c="";f.hasOwnProperty(a)&&(c=JSON.stringify(f[a]).replace(/"/g,"").replace("{","").replace("}",""));return b+c}}; var ai_insertion_js=!0,ai_block_class_def="code-block"; if("undefined"!=typeof ai_insertion_js){ai_insert=function(a,h,l){if(-1!=h.indexOf(":eq("))if(window.jQuery&&window.jQuery.fn)var n=jQuery(h);else{console.error("AI INSERT USING jQuery QUERIES:",h,"- jQuery not found");return}else n=document.querySelectorAll(h);for(var u=0,y=n.length;u<y;u++){var d=n[u];selector_string=d.hasAttribute("id")?"#"+d.getAttribute("id"):d.hasAttribute("class")?"."+d.getAttribute("class").replace(RegExp(" ","g"),"."):"";var w=document.createElement("div");w.innerHTML=l; var m=w.getElementsByClassName("ai-selector-counter")[0];null!=m&&(m.innerText=u+1);m=w.getElementsByClassName("ai-debug-name ai-main")[0];if(null!=m){var r=a.toUpperCase();"undefined"!=typeof ai_front&&("before"==a?r=ai_front.insertion_before:"after"==a?r=ai_front.insertion_after:"prepend"==a?r=ai_front.insertion_prepend:"append"==a?r=ai_front.insertion_append:"replace-content"==a?r=ai_front.insertion_replace_content:"replace-element"==a&&(r=ai_front.insertion_replace_element));-1==selector_string.indexOf(".ai-viewports")&& (m.innerText=r+" "+h+" ("+d.tagName.toLowerCase()+selector_string+")")}m=document.createRange();try{var v=m.createContextualFragment(w.innerHTML)}catch(t){}"before"==a?d.parentNode.insertBefore(v,d):"after"==a?d.parentNode.insertBefore(v,d.nextSibling):"prepend"==a?d.insertBefore(v,d.firstChild):"append"==a?d.insertBefore(v,null):"replace-content"==a?(d.innerHTML="",d.insertBefore(v,null)):"replace-element"==a&&(d.parentNode.insertBefore(v,d),d.parentNode.removeChild(d));z()}};ai_insert_code=function(a){function h(m, r){return null==m?!1:m.classList?m.classList.contains(r):-1<(" "+m.className+" ").indexOf(" "+r+" ")}function l(m,r){null!=m&&(m.classList?m.classList.add(r):m.className+=" "+r)}function n(m,r){null!=m&&(m.classList?m.classList.remove(r):m.className=m.className.replace(new RegExp("(^|\\b)"+r.split(" ").join("|")+"(\\b|$)","gi")," "))}if("undefined"!=typeof a){var u=!1;if(h(a,"no-visibility-check")||a.offsetWidth||a.offsetHeight||a.getClientRects().length){u=a.getAttribute("data-code");var y=a.getAttribute("data-insertion-position"), d=a.getAttribute("data-selector");if(null!=u)if(null!=y&&null!=d){if(-1!=d.indexOf(":eq(")?window.jQuery&&window.jQuery.fn&&jQuery(d).length:document.querySelectorAll(d).length)ai_insert(y,d,b64d(u)),n(a,"ai-viewports")}else{y=document.createRange();try{var w=y.createContextualFragment(b64d(u))}catch(m){}a.parentNode.insertBefore(w,a.nextSibling);n(a,"ai-viewports")}u=!0}else w=a.previousElementSibling,h(w,"ai-debug-bar")&&h(w,"ai-debug-script")&&(n(w,"ai-debug-script"),l(w,"ai-debug-viewport-invisible")), n(a,"ai-viewports");return u}};ai_insert_list_code=function(a){var h=document.getElementsByClassName(a)[0];if("undefined"!=typeof h){var l=ai_insert_code(h),n=h.closest("div."+ai_block_class_def);if(n){l||n.removeAttribute("data-ai");var u=n.querySelectorAll(".ai-debug-block");n&&u.length&&(n.classList.remove("ai-list-block"),n.classList.remove("ai-list-block-ip"),n.classList.remove("ai-list-block-filter"),n.style.visibility="",n.classList.contains("ai-remove-position")&&(n.style.position=""))}h.classList.remove(a); l&&z()}};ai_insert_viewport_code=function(a){var h=document.getElementsByClassName(a)[0];if("undefined"!=typeof h){var l=ai_insert_code(h);h.classList.remove(a);l&&(a=h.closest("div."+ai_block_class_def),null!=a&&(l=h.getAttribute("style"),null!=l&&a.setAttribute("style",a.getAttribute("style")+" "+l)));setTimeout(function(){h.removeAttribute("style")},2);z()}};ai_insert_adsense_fallback_codes=function(a){a.style.display="none";var h=a.closest(".ai-fallback-adsense"),l=h.nextElementSibling;l.getAttribute("data-code")? ai_insert_code(l)&&z():l.style.display="block";h.classList.contains("ai-empty-code")&&null!=a.closest("."+ai_block_class_def)&&(a=a.closest("."+ai_block_class_def).getElementsByClassName("code-block-label"),0!=a.length&&(a[0].style.display="none"))};ai_insert_code_by_class=function(a){var h=document.getElementsByClassName(a)[0];"undefined"!=typeof h&&(ai_insert_code(h),h.classList.remove(a))};ai_insert_client_code=function(a,h){var l=document.getElementsByClassName(a)[0];if("undefined"!=typeof l){var n= l.getAttribute("data-code");null!=n&&ai_check_block()&&(l.setAttribute("data-code",n.substring(Math.floor(h/19))),ai_insert_code_by_class(a),l.remove())}};ai_process_elements_active=!1;function z(){ai_process_elements_active||setTimeout(function(){ai_process_elements_active=!1;"function"==typeof ai_process_rotations&&ai_process_rotations();"function"==typeof ai_process_lists&&ai_process_lists();"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses();"function"==typeof ai_process_filter_hooks&& ai_process_filter_hooks();"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks();"function"==typeof ai_process_impressions&&1==ai_tracking_finished&&ai_process_impressions();"function"==typeof ai_install_click_trackers&&1==ai_tracking_finished&&ai_install_click_trackers();"function"==typeof ai_install_close_buttons&&ai_install_close_buttons(document);"function"==typeof ai_process_wait_for_interaction&&ai_process_wait_for_interaction();"function"==typeof ai_process_delayed_blocks&&ai_process_delayed_blocks()}, 5);ai_process_elements_active=!0}const B=document.querySelector("body");(new MutationObserver(function(a,h){for(const l of a)"attributes"===l.type&&"data-ad-status"==l.attributeName&&"unfilled"==l.target.dataset.adStatus&&l.target.closest(".ai-fallback-adsense")&&ai_insert_adsense_fallback_codes(l.target)})).observe(B,{attributes:!0,childList:!1,subtree:!0});var Arrive=function(a,h,l){function n(t,c,e){d.addMethod(c,e,t.unbindEvent);d.addMethod(c,e,t.unbindEventWithSelectorOrCallback);d.addMethod(c, e,t.unbindEventWithSelectorAndCallback)}function u(t){t.arrive=r.bindEvent;n(r,t,"unbindArrive");t.leave=v.bindEvent;n(v,t,"unbindLeave")}if(a.MutationObserver&&"undefined"!==typeof HTMLElement){var y=0,d=function(){var t=HTMLElement.prototype.matches||HTMLElement.prototype.webkitMatchesSelector||HTMLElement.prototype.mozMatchesSelector||HTMLElement.prototype.msMatchesSelector;return{matchesSelector:function(c,e){return c instanceof HTMLElement&&t.call(c,e)},addMethod:function(c,e,f){var b=c[e];c[e]= function(){if(f.length==arguments.length)return f.apply(this,arguments);if("function"==typeof b)return b.apply(this,arguments)}},callCallbacks:function(c,e){e&&e.options.onceOnly&&1==e.firedElems.length&&(c=[c[0]]);for(var f=0,b;b=c[f];f++)b&&b.callback&&b.callback.call(b.elem,b.elem);e&&e.options.onceOnly&&1==e.firedElems.length&&e.me.unbindEventWithSelectorAndCallback.call(e.target,e.selector,e.callback)},checkChildNodesRecursively:function(c,e,f,b){for(var g=0,k;k=c[g];g++)f(k,e,b)&&b.push({callback:e.callback, elem:k}),0<k.childNodes.length&&d.checkChildNodesRecursively(k.childNodes,e,f,b)},mergeArrays:function(c,e){var f={},b;for(b in c)c.hasOwnProperty(b)&&(f[b]=c[b]);for(b in e)e.hasOwnProperty(b)&&(f[b]=e[b]);return f},toElementsArray:function(c){"undefined"===typeof c||"number"===typeof c.length&&c!==a||(c=[c]);return c}}}(),w=function(){var t=function(){this._eventsBucket=[];this._beforeRemoving=this._beforeAdding=null};t.prototype.addEvent=function(c,e,f,b){c={target:c,selector:e,options:f,callback:b, firedElems:[]};this._beforeAdding&&this._beforeAdding(c);this._eventsBucket.push(c);return c};t.prototype.removeEvent=function(c){for(var e=this._eventsBucket.length-1,f;f=this._eventsBucket[e];e--)c(f)&&(this._beforeRemoving&&this._beforeRemoving(f),(f=this._eventsBucket.splice(e,1))&&f.length&&(f[0].callback=null))};t.prototype.beforeAdding=function(c){this._beforeAdding=c};t.prototype.beforeRemoving=function(c){this._beforeRemoving=c};return t}(),m=function(t,c){var e=new w,f=this,b={fireOnAttributesModification:!1}; e.beforeAdding(function(g){var k=g.target;if(k===a.document||k===a)k=document.getElementsByTagName("html")[0];var p=new MutationObserver(function(x){c.call(this,x,g)});var q=t(g.options);p.observe(k,q);g.observer=p;g.me=f});e.beforeRemoving(function(g){g.observer.disconnect()});this.bindEvent=function(g,k,p){k=d.mergeArrays(b,k);for(var q=d.toElementsArray(this),x=0;x<q.length;x++)e.addEvent(q[x],g,k,p)};this.unbindEvent=function(){var g=d.toElementsArray(this);e.removeEvent(function(k){for(var p= 0;p<g.length;p++)if(this===l||k.target===g[p])return!0;return!1})};this.unbindEventWithSelectorOrCallback=function(g){var k=d.toElementsArray(this);e.removeEvent("function"===typeof g?function(p){for(var q=0;q<k.length;q++)if((this===l||p.target===k[q])&&p.callback===g)return!0;return!1}:function(p){for(var q=0;q<k.length;q++)if((this===l||p.target===k[q])&&p.selector===g)return!0;return!1})};this.unbindEventWithSelectorAndCallback=function(g,k){var p=d.toElementsArray(this);e.removeEvent(function(q){for(var x= 0;x<p.length;x++)if((this===l||q.target===p[x])&&q.selector===g&&q.callback===k)return!0;return!1})};return this},r=new function(){function t(f,b,g){return d.matchesSelector(f,b.selector)&&(f._id===l&&(f._id=y++),-1==b.firedElems.indexOf(f._id))?(b.firedElems.push(f._id),!0):!1}var c={fireOnAttributesModification:!1,onceOnly:!1,existing:!1};r=new m(function(f){var b={attributes:!1,childList:!0,subtree:!0};f.fireOnAttributesModification&&(b.attributes=!0);return b},function(f,b){f.forEach(function(g){var k= g.addedNodes,p=g.target,q=[];null!==k&&0<k.length?d.checkChildNodesRecursively(k,b,t,q):"attributes"===g.type&&t(p,b,q)&&q.push({callback:b.callback,elem:p});d.callCallbacks(q,b)})});var e=r.bindEvent;r.bindEvent=function(f,b,g){"undefined"===typeof g?(g=b,b=c):b=d.mergeArrays(c,b);var k=d.toElementsArray(this);if(b.existing){for(var p=[],q=0;q<k.length;q++)for(var x=k[q].querySelectorAll(f),A=0;A<x.length;A++)p.push({callback:g,elem:x[A]});if(b.onceOnly&&p.length)return g.call(p[0].elem,p[0].elem); setTimeout(d.callCallbacks,1,p)}e.call(this,f,b,g)};return r},v=new function(){function t(f,b){return d.matchesSelector(f,b.selector)}var c={};v=new m(function(){return{childList:!0,subtree:!0}},function(f,b){f.forEach(function(g){g=g.removedNodes;var k=[];null!==g&&0<g.length&&d.checkChildNodesRecursively(g,b,t,k);d.callCallbacks(k,b)})});var e=v.bindEvent;v.bindEvent=function(f,b,g){"undefined"===typeof g?(g=b,b=c):b=d.mergeArrays(c,b);e.call(this,f,b,g)};return v};h&&u(h.fn);u(HTMLElement.prototype); u(NodeList.prototype);u(HTMLCollection.prototype);u(HTMLDocument.prototype);u(Window.prototype);h={};n(r,h,"unbindAllArrive");n(v,h,"unbindAllLeave");return h}}(window,"undefined"===typeof jQuery?null:jQuery,void 0)}; var ai_rotation_triggers=[],ai_block_class_def="code-block"; if("undefined"!=typeof ai_rotation_triggers){ai_process_rotation=function(b){var d="number"==typeof b.length;window.jQuery&&window.jQuery.fn&&b instanceof jQuery&&(b=d?Array.prototype.slice.call(b):b[0]);if(d){var e=!1;b.forEach((c,h)=>{if(c.classList.contains("ai-unprocessed")||c.classList.contains("ai-timer"))e=!0});if(!e)return;b.forEach((c,h)=>{c.classList.remove("ai-unprocessed");c.classList.remove("ai-timer")})}else{if(!b.classList.contains("ai-unprocessed")&&!b.classList.contains("ai-timer"))return; b.classList.remove("ai-unprocessed");b.classList.remove("ai-timer")}var a=!1;if(d?b[0].hasAttribute("data-info"):b.hasAttribute("data-info")){var f="div.ai-rotate.ai-"+(d?JSON.parse(atob(b[0].dataset.info)):JSON.parse(atob(b.dataset.info)))[0];ai_rotation_triggers.includes(f)&&(ai_rotation_triggers.splice(ai_rotation_triggers.indexOf(f),1),a=!0)}if(d)for(d=0;d<b.length;d++)0==d?ai_process_single_rotation(b[d],!0):ai_process_single_rotation(b[d],!1);else ai_process_single_rotation(b,!a)};ai_process_single_rotation= function(b,d){var e=[];Array.from(b.children).forEach((g,p)=>{g.matches(".ai-rotate-option")&&e.push(g)});if(0!=e.length){e.forEach((g,p)=>{g.style.display="none"});if(b.hasAttribute("data-next")){k=parseInt(b.getAttribute("data-next"));var a=e[k];if(a.hasAttribute("data-code")){var f=document.createRange(),c=!0;try{var h=f.createContextualFragment(b64d(a.dataset.code))}catch(g){c=!1}c&&(a=h)}0!=a.querySelectorAll("span[data-ai-groups]").length&&0!=document.querySelectorAll(".ai-rotation-groups").length&& setTimeout(function(){B()},5)}else if(e[0].hasAttribute("data-group")){var k=-1,u=[];document.querySelectorAll("span[data-ai-groups]").forEach((g,p)=>{(g.offsetWidth||g.offsetHeight||g.getClientRects().length)&&u.push(g)});1<=u.length&&(timed_groups=[],groups=[],u.forEach(function(g,p){active_groups=JSON.parse(b64d(g.dataset.aiGroups));var r=!1;g=g.closest(".ai-rotate");null!=g&&g.classList.contains("ai-timed-rotation")&&(r=!0);active_groups.forEach(function(t,v){groups.push(t);r&&timed_groups.push(t)})}), groups.forEach(function(g,p){-1==k&&e.forEach((r,t)=>{var v=b64d(r.dataset.group);option_group_items=v.split(",");option_group_items.forEach(function(C,E){-1==k&&C.trim()==g&&(k=t,timed_groups.includes(v)&&b.classList.add("ai-timed-rotation"))})})}))}else if(b.hasAttribute("data-shares"))for(f=JSON.parse(atob(b.dataset.shares)),a=Math.round(100*Math.random()),c=0;c<f.length&&(k=c,0>f[c]||!(a<=f[c]));c++);else f=b.classList.contains("ai-unique"),a=new Date,f?("number"!=typeof ai_rotation_seed&&(ai_rotation_seed= (Math.floor(1E3*Math.random())+a.getMilliseconds())%e.length),f=ai_rotation_seed,f>e.length&&(f%=e.length),a=parseInt(b.dataset.counter),a<=e.length?(k=parseInt(f+a-1),k>=e.length&&(k-=e.length)):k=e.length):(k=Math.floor(Math.random()*e.length),a.getMilliseconds()%2&&(k=e.length-k-1));if(b.classList.contains("ai-rotation-scheduling"))for(k=-1,f=0;f<e.length;f++)if(a=e[f],a.hasAttribute("data-scheduling")){c=b64d(a.dataset.scheduling);a=!0;0==c.indexOf("^")&&(a=!1,c=c.substring(1));var q=c.split("="), m=-1!=c.indexOf("%")?q[0].split("%"):[q[0]];c=m[0].trim().toLowerCase();m="undefined"!=typeof m[1]?m[1].trim():0;q=q[1].replace(" ","");var n=(new Date).getTime();n=new Date(n);var l=0;switch(c){case "s":l=n.getSeconds();break;case "i":l=n.getMinutes();break;case "h":l=n.getHours();break;case "d":l=n.getDate();break;case "m":l=n.getMonth();break;case "y":l=n.getFullYear();break;case "w":l=n.getDay(),l=0==l?6:l-1}c=0!=m?l%m:l;m=q.split(",");q=!a;for(n=0;n<m.length;n++)if(l=m[n],-1!=l.indexOf("-")){if(l= l.split("-"),c>=l[0]&&c<=l[1]){q=a;break}}else if(c==l){q=a;break}if(q){k=f;break}}if(!(0>k||k>=e.length)){a=e[k];var z="",w=b.classList.contains("ai-timed-rotation");e.forEach((g,p)=>{g.hasAttribute("data-time")&&(w=!0)});if(a.hasAttribute("data-time")){f=atob(a.dataset.time);if(0==f&&1<e.length){c=k;do{c++;c>=e.length&&(c=0);m=e[c];if(!m.hasAttribute("data-time")){k=c;a=e[k];f=0;break}m=atob(m.dataset.time)}while(0==m&&c!=k);0!=f&&(k=c,a=e[k],f=atob(a.dataset.time))}if(0<f&&(c=k+1,c>=e.length&& (c=0),b.hasAttribute("data-info"))){m=JSON.parse(atob(b.dataset.info))[0];b.setAttribute("data-next",c);var x="div.ai-rotate.ai-"+m;ai_rotation_triggers.includes(x)&&(d=!1);d&&(ai_rotation_triggers.push(x),setTimeout(function(){var g=document.querySelectorAll(x);g.forEach((p,r)=>{p.classList.add("ai-timer")});ai_process_rotation(g)},1E3*f));z=" ("+f+" s)"}}else a.hasAttribute("data-group")||e.forEach((g,p)=>{p!=k&&g.remove()});a.style.display="";a.style.visibility="";a.style.position="";a.style.width= "";a.style.height="";a.style.top="";a.style.left="";a.classList.remove("ai-rotate-hidden");a.classList.remove("ai-rotate-hidden-2");b.style.position="";if(a.hasAttribute("data-code")){e.forEach((g,p)=>{g.innerText=""});d=b64d(a.dataset.code);f=document.createRange();c=!0;try{h=f.createContextualFragment(d)}catch(g){c=!1}a.append(h);D()}f=parseInt(a.dataset.index);var y=b64d(a.dataset.name);d=b.closest(".ai-debug-block");if(null!=d){h=d.querySelectorAll("kbd.ai-option-name");d=d.querySelectorAll(".ai-debug-block"); if(0!=d.length){var A=[];d.forEach((g,p)=>{g.querySelectorAll("kbd.ai-option-name").forEach((r,t)=>{A.push(r)})});h=Array.from(h);h=h.slice(0,h.length-A.length)}0!=h.length&&(separator=h[0].hasAttribute("data-separator")?h[0].dataset.separator:"",h.forEach((g,p)=>{g.innerText=separator+y+z}))}d=!1;a=b.closest(".ai-adb-show");null!=a&&a.hasAttribute("data-ai-tracking")&&(h=JSON.parse(b64d(a.getAttribute("data-ai-tracking"))),"undefined"!==typeof h&&h.constructor===Array&&(h[1]=f,h[3]=y,a.setAttribute("data-ai-tracking", b64e(JSON.stringify(h))),a.classList.add("ai-track"),w&&ai_tracking_finished&&a.getAttribute("class").includes("ai-impression")&&a.classList.add("ai-no-pageview"),d=!0));d||(d=b.closest("div[data-ai]"),null!=d&&d.hasAttribute("data-ai")&&(h=JSON.parse(b64d(d.getAttribute("data-ai"))),"undefined"!==typeof h&&h.constructor===Array&&(h[1]=f,h[3]=y,d.setAttribute("data-ai",b64e(JSON.stringify(h))),d.classList.add("ai-track"),w&&ai_tracking_finished&&d.getAttribute("class").includes("ai-impression")&& d.classList.add("ai-no-pageview"))))}}};ai_process_rotations=function(){document.querySelectorAll("div.ai-rotate").forEach((b,d)=>{ai_process_rotation(b)})};function B(){document.querySelectorAll("div.ai-rotate.ai-rotation-groups").forEach((b,d)=>{b.classList.add("ai-timer");ai_process_rotation(b)})}ai_process_rotations_in_element=function(b){null!=b&&b.querySelectorAll("div.ai-rotate").forEach((d,e)=>{ai_process_rotation(d)})};(function(b){"complete"===document.readyState||"loading"!==document.readyState&& !document.documentElement.doScroll?b():document.addEventListener("DOMContentLoaded",b)})(function(){setTimeout(function(){ai_process_rotations()},10)});ai_process_elements_active=!1;function D(){ai_process_elements_active||setTimeout(function(){ai_process_elements_active=!1;"function"==typeof ai_process_rotations&&ai_process_rotations();"function"==typeof ai_process_lists&&ai_process_lists();"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses();"function"==typeof ai_process_filter_hooks&& ai_process_filter_hooks();"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks();"function"==typeof ai_process_impressions&&1==ai_tracking_finished&&ai_process_impressions();"function"==typeof ai_install_click_trackers&&1==ai_tracking_finished&&ai_install_click_trackers();"function"==typeof ai_install_close_buttons&&ai_install_close_buttons(document)},5);ai_process_elements_active=!0}}; ;!function(a,b){a(function(){"use strict";function a(a,b){return null!=a&&null!=b&&a.toLowerCase()===b.toLowerCase()}function c(a,b){var c,d,e=a.length;if(!e||!b)return!1;for(c=b.toLowerCase(),d=0;d<e;++d)if(c===a[d].toLowerCase())return!0;return!1}function d(a){for(var b in a)i.call(a,b)&&(a[b]=new RegExp(a[b],"i"))}function e(a){return(a||"").substr(0,500)}function f(a,b){this.ua=e(a),this._cache={},this.maxPhoneWidth=b||600}var g={};g.mobileDetectRules={phones:{iPhone:"\\biPhone\\b|\\biPod\\b",BlackBerry:"BlackBerry|\\bBB10\\b|rim[0-9]+|\\b(BBA100|BBB100|BBD100|BBE100|BBF100|STH100)\\b-[0-9]+",Pixel:"; \\bPixel\\b",HTC:"HTC|HTC.*(Sensation|Evo|Vision|Explorer|6800|8100|8900|A7272|S510e|C110e|Legend|Desire|T8282)|APX515CKT|Qtek9090|APA9292KT|HD_mini|Sensation.*Z710e|PG86100|Z715e|Desire.*(A8181|HD)|ADR6200|ADR6400L|ADR6425|001HT|Inspire 4G|Android.*\\bEVO\\b|T-Mobile G1|Z520m|Android [0-9.]+; Pixel",Nexus:"Nexus One|Nexus S|Galaxy.*Nexus|Android.*Nexus.*Mobile|Nexus 4|Nexus 5|Nexus 5X|Nexus 6",Dell:"Dell[;]? (Streak|Aero|Venue|Venue Pro|Flash|Smoke|Mini 3iX)|XCD28|XCD35|\\b001DL\\b|\\b101DL\\b|\\bGS01\\b",Motorola:"Motorola|DROIDX|DROID BIONIC|\\bDroid\\b.*Build|Android.*Xoom|HRI39|MOT-|A1260|A1680|A555|A853|A855|A953|A955|A956|Motorola.*ELECTRIFY|Motorola.*i1|i867|i940|MB200|MB300|MB501|MB502|MB508|MB511|MB520|MB525|MB526|MB611|MB612|MB632|MB810|MB855|MB860|MB861|MB865|MB870|ME501|ME502|ME511|ME525|ME600|ME632|ME722|ME811|ME860|ME863|ME865|MT620|MT710|MT716|MT720|MT810|MT870|MT917|Motorola.*TITANIUM|WX435|WX445|XT300|XT301|XT311|XT316|XT317|XT319|XT320|XT390|XT502|XT530|XT531|XT532|XT535|XT603|XT610|XT611|XT615|XT681|XT701|XT702|XT711|XT720|XT800|XT806|XT860|XT862|XT875|XT882|XT883|XT894|XT901|XT907|XT909|XT910|XT912|XT928|XT926|XT915|XT919|XT925|XT1021|\\bMoto E\\b|XT1068|XT1092|XT1052",Samsung:"\\bSamsung\\b|SM-G950F|SM-G955F|SM-G9250|GT-19300|SGH-I337|BGT-S5230|GT-B2100|GT-B2700|GT-B2710|GT-B3210|GT-B3310|GT-B3410|GT-B3730|GT-B3740|GT-B5510|GT-B5512|GT-B5722|GT-B6520|GT-B7300|GT-B7320|GT-B7330|GT-B7350|GT-B7510|GT-B7722|GT-B7800|GT-C3010|GT-C3011|GT-C3060|GT-C3200|GT-C3212|GT-C3212I|GT-C3262|GT-C3222|GT-C3300|GT-C3300K|GT-C3303|GT-C3303K|GT-C3310|GT-C3322|GT-C3330|GT-C3350|GT-C3500|GT-C3510|GT-C3530|GT-C3630|GT-C3780|GT-C5010|GT-C5212|GT-C6620|GT-C6625|GT-C6712|GT-E1050|GT-E1070|GT-E1075|GT-E1080|GT-E1081|GT-E1085|GT-E1087|GT-E1100|GT-E1107|GT-E1110|GT-E1120|GT-E1125|GT-E1130|GT-E1160|GT-E1170|GT-E1175|GT-E1180|GT-E1182|GT-E1200|GT-E1210|GT-E1225|GT-E1230|GT-E1390|GT-E2100|GT-E2120|GT-E2121|GT-E2152|GT-E2220|GT-E2222|GT-E2230|GT-E2232|GT-E2250|GT-E2370|GT-E2550|GT-E2652|GT-E3210|GT-E3213|GT-I5500|GT-I5503|GT-I5700|GT-I5800|GT-I5801|GT-I6410|GT-I6420|GT-I7110|GT-I7410|GT-I7500|GT-I8000|GT-I8150|GT-I8160|GT-I8190|GT-I8320|GT-I8330|GT-I8350|GT-I8530|GT-I8700|GT-I8703|GT-I8910|GT-I9000|GT-I9001|GT-I9003|GT-I9010|GT-I9020|GT-I9023|GT-I9070|GT-I9082|GT-I9100|GT-I9103|GT-I9220|GT-I9250|GT-I9300|GT-I9305|GT-I9500|GT-I9505|GT-M3510|GT-M5650|GT-M7500|GT-M7600|GT-M7603|GT-M8800|GT-M8910|GT-N7000|GT-S3110|GT-S3310|GT-S3350|GT-S3353|GT-S3370|GT-S3650|GT-S3653|GT-S3770|GT-S3850|GT-S5210|GT-S5220|GT-S5229|GT-S5230|GT-S5233|GT-S5250|GT-S5253|GT-S5260|GT-S5263|GT-S5270|GT-S5300|GT-S5330|GT-S5350|GT-S5360|GT-S5363|GT-S5369|GT-S5380|GT-S5380D|GT-S5560|GT-S5570|GT-S5600|GT-S5603|GT-S5610|GT-S5620|GT-S5660|GT-S5670|GT-S5690|GT-S5750|GT-S5780|GT-S5830|GT-S5839|GT-S6102|GT-S6500|GT-S7070|GT-S7200|GT-S7220|GT-S7230|GT-S7233|GT-S7250|GT-S7500|GT-S7530|GT-S7550|GT-S7562|GT-S7710|GT-S8000|GT-S8003|GT-S8500|GT-S8530|GT-S8600|SCH-A310|SCH-A530|SCH-A570|SCH-A610|SCH-A630|SCH-A650|SCH-A790|SCH-A795|SCH-A850|SCH-A870|SCH-A890|SCH-A930|SCH-A950|SCH-A970|SCH-A990|SCH-I100|SCH-I110|SCH-I400|SCH-I405|SCH-I500|SCH-I510|SCH-I515|SCH-I600|SCH-I730|SCH-I760|SCH-I770|SCH-I830|SCH-I910|SCH-I920|SCH-I959|SCH-LC11|SCH-N150|SCH-N300|SCH-R100|SCH-R300|SCH-R351|SCH-R400|SCH-R410|SCH-T300|SCH-U310|SCH-U320|SCH-U350|SCH-U360|SCH-U365|SCH-U370|SCH-U380|SCH-U410|SCH-U430|SCH-U450|SCH-U460|SCH-U470|SCH-U490|SCH-U540|SCH-U550|SCH-U620|SCH-U640|SCH-U650|SCH-U660|SCH-U700|SCH-U740|SCH-U750|SCH-U810|SCH-U820|SCH-U900|SCH-U940|SCH-U960|SCS-26UC|SGH-A107|SGH-A117|SGH-A127|SGH-A137|SGH-A157|SGH-A167|SGH-A177|SGH-A187|SGH-A197|SGH-A227|SGH-A237|SGH-A257|SGH-A437|SGH-A517|SGH-A597|SGH-A637|SGH-A657|SGH-A667|SGH-A687|SGH-A697|SGH-A707|SGH-A717|SGH-A727|SGH-A737|SGH-A747|SGH-A767|SGH-A777|SGH-A797|SGH-A817|SGH-A827|SGH-A837|SGH-A847|SGH-A867|SGH-A877|SGH-A887|SGH-A897|SGH-A927|SGH-B100|SGH-B130|SGH-B200|SGH-B220|SGH-C100|SGH-C110|SGH-C120|SGH-C130|SGH-C140|SGH-C160|SGH-C170|SGH-C180|SGH-C200|SGH-C207|SGH-C210|SGH-C225|SGH-C230|SGH-C417|SGH-C450|SGH-D307|SGH-D347|SGH-D357|SGH-D407|SGH-D415|SGH-D780|SGH-D807|SGH-D980|SGH-E105|SGH-E200|SGH-E315|SGH-E316|SGH-E317|SGH-E335|SGH-E590|SGH-E635|SGH-E715|SGH-E890|SGH-F300|SGH-F480|SGH-I200|SGH-I300|SGH-I320|SGH-I550|SGH-I577|SGH-I600|SGH-I607|SGH-I617|SGH-I627|SGH-I637|SGH-I677|SGH-I700|SGH-I717|SGH-I727|SGH-i747M|SGH-I777|SGH-I780|SGH-I827|SGH-I847|SGH-I857|SGH-I896|SGH-I897|SGH-I900|SGH-I907|SGH-I917|SGH-I927|SGH-I937|SGH-I997|SGH-J150|SGH-J200|SGH-L170|SGH-L700|SGH-M110|SGH-M150|SGH-M200|SGH-N105|SGH-N500|SGH-N600|SGH-N620|SGH-N625|SGH-N700|SGH-N710|SGH-P107|SGH-P207|SGH-P300|SGH-P310|SGH-P520|SGH-P735|SGH-P777|SGH-Q105|SGH-R210|SGH-R220|SGH-R225|SGH-S105|SGH-S307|SGH-T109|SGH-T119|SGH-T139|SGH-T209|SGH-T219|SGH-T229|SGH-T239|SGH-T249|SGH-T259|SGH-T309|SGH-T319|SGH-T329|SGH-T339|SGH-T349|SGH-T359|SGH-T369|SGH-T379|SGH-T409|SGH-T429|SGH-T439|SGH-T459|SGH-T469|SGH-T479|SGH-T499|SGH-T509|SGH-T519|SGH-T539|SGH-T559|SGH-T589|SGH-T609|SGH-T619|SGH-T629|SGH-T639|SGH-T659|SGH-T669|SGH-T679|SGH-T709|SGH-T719|SGH-T729|SGH-T739|SGH-T746|SGH-T749|SGH-T759|SGH-T769|SGH-T809|SGH-T819|SGH-T839|SGH-T919|SGH-T929|SGH-T939|SGH-T959|SGH-T989|SGH-U100|SGH-U200|SGH-U800|SGH-V205|SGH-V206|SGH-X100|SGH-X105|SGH-X120|SGH-X140|SGH-X426|SGH-X427|SGH-X475|SGH-X495|SGH-X497|SGH-X507|SGH-X600|SGH-X610|SGH-X620|SGH-X630|SGH-X700|SGH-X820|SGH-X890|SGH-Z130|SGH-Z150|SGH-Z170|SGH-ZX10|SGH-ZX20|SHW-M110|SPH-A120|SPH-A400|SPH-A420|SPH-A460|SPH-A500|SPH-A560|SPH-A600|SPH-A620|SPH-A660|SPH-A700|SPH-A740|SPH-A760|SPH-A790|SPH-A800|SPH-A820|SPH-A840|SPH-A880|SPH-A900|SPH-A940|SPH-A960|SPH-D600|SPH-D700|SPH-D710|SPH-D720|SPH-I300|SPH-I325|SPH-I330|SPH-I350|SPH-I500|SPH-I600|SPH-I700|SPH-L700|SPH-M100|SPH-M220|SPH-M240|SPH-M300|SPH-M305|SPH-M320|SPH-M330|SPH-M350|SPH-M360|SPH-M370|SPH-M380|SPH-M510|SPH-M540|SPH-M550|SPH-M560|SPH-M570|SPH-M580|SPH-M610|SPH-M620|SPH-M630|SPH-M800|SPH-M810|SPH-M850|SPH-M900|SPH-M910|SPH-M920|SPH-M930|SPH-N100|SPH-N200|SPH-N240|SPH-N300|SPH-N400|SPH-Z400|SWC-E100|SCH-i909|GT-N7100|GT-N7105|SCH-I535|SM-N900A|SGH-I317|SGH-T999L|GT-S5360B|GT-I8262|GT-S6802|GT-S6312|GT-S6310|GT-S5312|GT-S5310|GT-I9105|GT-I8510|GT-S6790N|SM-G7105|SM-N9005|GT-S5301|GT-I9295|GT-I9195|SM-C101|GT-S7392|GT-S7560|GT-B7610|GT-I5510|GT-S7582|GT-S7530E|GT-I8750|SM-G9006V|SM-G9008V|SM-G9009D|SM-G900A|SM-G900D|SM-G900F|SM-G900H|SM-G900I|SM-G900J|SM-G900K|SM-G900L|SM-G900M|SM-G900P|SM-G900R4|SM-G900S|SM-G900T|SM-G900V|SM-G900W8|SHV-E160K|SCH-P709|SCH-P729|SM-T2558|GT-I9205|SM-G9350|SM-J120F|SM-G920F|SM-G920V|SM-G930F|SM-N910C|SM-A310F|GT-I9190|SM-J500FN|SM-G903F|SM-J330F|SM-G610F|SM-G981B|SM-G892A|SM-A530F",LG:"\\bLG\\b;|LG[- ]?(C800|C900|E400|E610|E900|E-900|F160|F180K|F180L|F180S|730|855|L160|LS740|LS840|LS970|LU6200|MS690|MS695|MS770|MS840|MS870|MS910|P500|P700|P705|VM696|AS680|AS695|AX840|C729|E970|GS505|272|C395|E739BK|E960|L55C|L75C|LS696|LS860|P769BK|P350|P500|P509|P870|UN272|US730|VS840|VS950|LN272|LN510|LS670|LS855|LW690|MN270|MN510|P509|P769|P930|UN200|UN270|UN510|UN610|US670|US740|US760|UX265|UX840|VN271|VN530|VS660|VS700|VS740|VS750|VS910|VS920|VS930|VX9200|VX11000|AX840A|LW770|P506|P925|P999|E612|D955|D802|MS323|M257)|LM-G710",Sony:"SonyST|SonyLT|SonyEricsson|SonyEricssonLT15iv|LT18i|E10i|LT28h|LT26w|SonyEricssonMT27i|C5303|C6902|C6903|C6906|C6943|D2533|SOV34|601SO|F8332",Asus:"Asus.*Galaxy|PadFone.*Mobile",Xiaomi:"^(?!.*\\bx11\\b).*xiaomi.*$|POCOPHONE F1|MI 8|Redmi Note 9S|Redmi Note 5A Prime|N2G47H|M2001J2G|M2001J2I|M1805E10A|M2004J11G|M1902F1G|M2002J9G|M2004J19G|M2003J6A1G",NokiaLumia:"Lumia [0-9]{3,4}",Micromax:"Micromax.*\\b(A210|A92|A88|A72|A111|A110Q|A115|A116|A110|A90S|A26|A51|A35|A54|A25|A27|A89|A68|A65|A57|A90)\\b",Palm:"PalmSource|Palm",Vertu:"Vertu|Vertu.*Ltd|Vertu.*Ascent|Vertu.*Ayxta|Vertu.*Constellation(F|Quest)?|Vertu.*Monika|Vertu.*Signature",Pantech:"PANTECH|IM-A850S|IM-A840S|IM-A830L|IM-A830K|IM-A830S|IM-A820L|IM-A810K|IM-A810S|IM-A800S|IM-T100K|IM-A725L|IM-A780L|IM-A775C|IM-A770K|IM-A760S|IM-A750K|IM-A740S|IM-A730S|IM-A720L|IM-A710K|IM-A690L|IM-A690S|IM-A650S|IM-A630K|IM-A600S|VEGA PTL21|PT003|P8010|ADR910L|P6030|P6020|P9070|P4100|P9060|P5000|CDM8992|TXT8045|ADR8995|IS11PT|P2030|P6010|P8000|PT002|IS06|CDM8999|P9050|PT001|TXT8040|P2020|P9020|P2000|P7040|P7000|C790",Fly:"IQ230|IQ444|IQ450|IQ440|IQ442|IQ441|IQ245|IQ256|IQ236|IQ255|IQ235|IQ245|IQ275|IQ240|IQ285|IQ280|IQ270|IQ260|IQ250",Wiko:"KITE 4G|HIGHWAY|GETAWAY|STAIRWAY|DARKSIDE|DARKFULL|DARKNIGHT|DARKMOON|SLIDE|WAX 4G|RAINBOW|BLOOM|SUNSET|GOA(?!nna)|LENNY|BARRY|IGGY|OZZY|CINK FIVE|CINK PEAX|CINK PEAX 2|CINK SLIM|CINK SLIM 2|CINK +|CINK KING|CINK PEAX|CINK SLIM|SUBLIM",iMobile:"i-mobile (IQ|i-STYLE|idea|ZAA|Hitz)",SimValley:"\\b(SP-80|XT-930|SX-340|XT-930|SX-310|SP-360|SP60|SPT-800|SP-120|SPT-800|SP-140|SPX-5|SPX-8|SP-100|SPX-8|SPX-12)\\b",Wolfgang:"AT-B24D|AT-AS50HD|AT-AS40W|AT-AS55HD|AT-AS45q2|AT-B26D|AT-AS50Q",Alcatel:"Alcatel",Nintendo:"Nintendo (3DS|Switch)",Amoi:"Amoi",INQ:"INQ",OnePlus:"ONEPLUS",GenericPhone:"Tapatalk|PDA;|SAGEM|\\bmmp\\b|pocket|\\bpsp\\b|symbian|Smartphone|smartfon|treo|up.browser|up.link|vodafone|\\bwap\\b|nokia|Series40|Series60|S60|SonyEricsson|N900|MAUI.*WAP.*Browser"},tablets:{iPad:"iPad|iPad.*Mobile",NexusTablet:"Android.*Nexus[\\s]+(7|9|10)",GoogleTablet:"Android.*Pixel C",SamsungTablet:"SAMSUNG.*Tablet|Galaxy.*Tab|SC-01C|GT-P1000|GT-P1003|GT-P1010|GT-P3105|GT-P6210|GT-P6800|GT-P6810|GT-P7100|GT-P7300|GT-P7310|GT-P7500|GT-P7510|SCH-I800|SCH-I815|SCH-I905|SGH-I957|SGH-I987|SGH-T849|SGH-T859|SGH-T869|SPH-P100|GT-P3100|GT-P3108|GT-P3110|GT-P5100|GT-P5110|GT-P6200|GT-P7320|GT-P7511|GT-N8000|GT-P8510|SGH-I497|SPH-P500|SGH-T779|SCH-I705|SCH-I915|GT-N8013|GT-P3113|GT-P5113|GT-P8110|GT-N8010|GT-N8005|GT-N8020|GT-P1013|GT-P6201|GT-P7501|GT-N5100|GT-N5105|GT-N5110|SHV-E140K|SHV-E140L|SHV-E140S|SHV-E150S|SHV-E230K|SHV-E230L|SHV-E230S|SHW-M180K|SHW-M180L|SHW-M180S|SHW-M180W|SHW-M300W|SHW-M305W|SHW-M380K|SHW-M380S|SHW-M380W|SHW-M430W|SHW-M480K|SHW-M480S|SHW-M480W|SHW-M485W|SHW-M486W|SHW-M500W|GT-I9228|SCH-P739|SCH-I925|GT-I9200|GT-P5200|GT-P5210|GT-P5210X|SM-T311|SM-T310|SM-T310X|SM-T210|SM-T210R|SM-T211|SM-P600|SM-P601|SM-P605|SM-P900|SM-P901|SM-T217|SM-T217A|SM-T217S|SM-P6000|SM-T3100|SGH-I467|XE500|SM-T110|GT-P5220|GT-I9200X|GT-N5110X|GT-N5120|SM-P905|SM-T111|SM-T2105|SM-T315|SM-T320|SM-T320X|SM-T321|SM-T520|SM-T525|SM-T530NU|SM-T230NU|SM-T330NU|SM-T900|XE500T1C|SM-P605V|SM-P905V|SM-T337V|SM-T537V|SM-T707V|SM-T807V|SM-P600X|SM-P900X|SM-T210X|SM-T230|SM-T230X|SM-T325|GT-P7503|SM-T531|SM-T330|SM-T530|SM-T705|SM-T705C|SM-T535|SM-T331|SM-T800|SM-T700|SM-T537|SM-T807|SM-P907A|SM-T337A|SM-T537A|SM-T707A|SM-T807A|SM-T237|SM-T807P|SM-P607T|SM-T217T|SM-T337T|SM-T807T|SM-T116NQ|SM-T116BU|SM-P550|SM-T350|SM-T550|SM-T9000|SM-P9000|SM-T705Y|SM-T805|GT-P3113|SM-T710|SM-T810|SM-T815|SM-T360|SM-T533|SM-T113|SM-T335|SM-T715|SM-T560|SM-T670|SM-T677|SM-T377|SM-T567|SM-T357T|SM-T555|SM-T561|SM-T713|SM-T719|SM-T813|SM-T819|SM-T580|SM-T355Y?|SM-T280|SM-T817A|SM-T820|SM-W700|SM-P580|SM-T587|SM-P350|SM-P555M|SM-P355M|SM-T113NU|SM-T815Y|SM-T585|SM-T285|SM-T825|SM-W708|SM-T835|SM-T830|SM-T837V|SM-T720|SM-T510|SM-T387V|SM-P610|SM-T290|SM-T515|SM-T590|SM-T595|SM-T725|SM-T817P|SM-P585N0|SM-T395|SM-T295|SM-T865|SM-P610N|SM-P615|SM-T970|SM-T380|SM-T5950|SM-T905|SM-T231|SM-T500|SM-T860",Kindle:"Kindle|Silk.*Accelerated|Android.*\\b(KFOT|KFTT|KFJWI|KFJWA|KFOTE|KFSOWI|KFTHWI|KFTHWA|KFAPWI|KFAPWA|WFJWAE|KFSAWA|KFSAWI|KFASWI|KFARWI|KFFOWI|KFGIWI|KFMEWI)\\b|Android.*Silk/[0-9.]+ like Chrome/[0-9.]+ (?!Mobile)",SurfaceTablet:"Windows NT [0-9.]+; ARM;.*(Tablet|ARMBJS)",HPTablet:"HP Slate (7|8|10)|HP ElitePad 900|hp-tablet|EliteBook.*Touch|HP 8|Slate 21|HP SlateBook 10",AsusTablet:"^.*PadFone((?!Mobile).)*$|Transformer|TF101|TF101G|TF300T|TF300TG|TF300TL|TF700T|TF700KL|TF701T|TF810C|ME171|ME301T|ME302C|ME371MG|ME370T|ME372MG|ME172V|ME173X|ME400C|Slider SL101|\\bK00F\\b|\\bK00C\\b|\\bK00E\\b|\\bK00L\\b|TX201LA|ME176C|ME102A|\\bM80TA\\b|ME372CL|ME560CG|ME372CG|ME302KL| K010 | K011 | K017 | K01E |ME572C|ME103K|ME170C|ME171C|\\bME70C\\b|ME581C|ME581CL|ME8510C|ME181C|P01Y|PO1MA|P01Z|\\bP027\\b|\\bP024\\b|\\bP00C\\b",BlackBerryTablet:"PlayBook|RIM Tablet",HTCtablet:"HTC_Flyer_P512|HTC Flyer|HTC Jetstream|HTC-P715a|HTC EVO View 4G|PG41200|PG09410",MotorolaTablet:"xoom|sholest|MZ615|MZ605|MZ505|MZ601|MZ602|MZ603|MZ604|MZ606|MZ607|MZ608|MZ609|MZ615|MZ616|MZ617",NookTablet:"Android.*Nook|NookColor|nook browser|BNRV200|BNRV200A|BNTV250|BNTV250A|BNTV400|BNTV600|LogicPD Zoom2",AcerTablet:"Android.*; \\b(A100|A101|A110|A200|A210|A211|A500|A501|A510|A511|A700|A701|W500|W500P|W501|W501P|W510|W511|W700|G100|G100W|B1-A71|B1-710|B1-711|A1-810|A1-811|A1-830)\\b|W3-810|\\bA3-A10\\b|\\bA3-A11\\b|\\bA3-A20\\b|\\bA3-A30|A3-A40",ToshibaTablet:"Android.*(AT100|AT105|AT200|AT205|AT270|AT275|AT300|AT305|AT1S5|AT500|AT570|AT700|AT830)|TOSHIBA.*FOLIO",LGTablet:"\\bL-06C|LG-V909|LG-V900|LG-V700|LG-V510|LG-V500|LG-V410|LG-V400|LG-VK810\\b",FujitsuTablet:"Android.*\\b(F-01D|F-02F|F-05E|F-10D|M532|Q572)\\b",PrestigioTablet:"PMP3170B|PMP3270B|PMP3470B|PMP7170B|PMP3370B|PMP3570C|PMP5870C|PMP3670B|PMP5570C|PMP5770D|PMP3970B|PMP3870C|PMP5580C|PMP5880D|PMP5780D|PMP5588C|PMP7280C|PMP7280C3G|PMP7280|PMP7880D|PMP5597D|PMP5597|PMP7100D|PER3464|PER3274|PER3574|PER3884|PER5274|PER5474|PMP5097CPRO|PMP5097|PMP7380D|PMP5297C|PMP5297C_QUAD|PMP812E|PMP812E3G|PMP812F|PMP810E|PMP880TD|PMT3017|PMT3037|PMT3047|PMT3057|PMT7008|PMT5887|PMT5001|PMT5002",LenovoTablet:"Lenovo TAB|Idea(Tab|Pad)( A1|A10| K1|)|ThinkPad([ ]+)?Tablet|YT3-850M|YT3-X90L|YT3-X90F|YT3-X90X|Lenovo.*(S2109|S2110|S5000|S6000|K3011|A3000|A3500|A1000|A2107|A2109|A1107|A5500|A7600|B6000|B8000|B8080)(-|)(FL|F|HV|H|)|TB-X103F|TB-X304X|TB-X304F|TB-X304L|TB-X505F|TB-X505L|TB-X505X|TB-X605F|TB-X605L|TB-8703F|TB-8703X|TB-8703N|TB-8704N|TB-8704F|TB-8704X|TB-8704V|TB-7304F|TB-7304I|TB-7304X|Tab2A7-10F|Tab2A7-20F|TB2-X30L|YT3-X50L|YT3-X50F|YT3-X50M|YT-X705F|YT-X703F|YT-X703L|YT-X705L|YT-X705X|TB2-X30F|TB2-X30L|TB2-X30M|A2107A-F|A2107A-H|TB3-730F|TB3-730M|TB3-730X|TB-7504F|TB-7504X|TB-X704F|TB-X104F|TB3-X70F|TB-X705F|TB-8504F|TB3-X70L|TB3-710F|TB-X704L",DellTablet:"Venue 11|Venue 8|Venue 7|Dell Streak 10|Dell Streak 7",YarvikTablet:"Android.*\\b(TAB210|TAB211|TAB224|TAB250|TAB260|TAB264|TAB310|TAB360|TAB364|TAB410|TAB411|TAB420|TAB424|TAB450|TAB460|TAB461|TAB464|TAB465|TAB467|TAB468|TAB07-100|TAB07-101|TAB07-150|TAB07-151|TAB07-152|TAB07-200|TAB07-201-3G|TAB07-210|TAB07-211|TAB07-212|TAB07-214|TAB07-220|TAB07-400|TAB07-485|TAB08-150|TAB08-200|TAB08-201-3G|TAB08-201-30|TAB09-100|TAB09-211|TAB09-410|TAB10-150|TAB10-201|TAB10-211|TAB10-400|TAB10-410|TAB13-201|TAB274EUK|TAB275EUK|TAB374EUK|TAB462EUK|TAB474EUK|TAB9-200)\\b",MedionTablet:"Android.*\\bOYO\\b|LIFE.*(P9212|P9514|P9516|S9512)|LIFETAB",ArnovaTablet:"97G4|AN10G2|AN7bG3|AN7fG3|AN8G3|AN8cG3|AN7G3|AN9G3|AN7dG3|AN7dG3ST|AN7dG3ChildPad|AN10bG3|AN10bG3DT|AN9G2",IntensoTablet:"INM8002KP|INM1010FP|INM805ND|Intenso Tab|TAB1004",IRUTablet:"M702pro",MegafonTablet:"MegaFon V9|\\bZTE V9\\b|Android.*\\bMT7A\\b",EbodaTablet:"E-Boda (Supreme|Impresspeed|Izzycomm|Essential)",AllViewTablet:"Allview.*(Viva|Alldro|City|Speed|All TV|Frenzy|Quasar|Shine|TX1|AX1|AX2)",ArchosTablet:"\\b(101G9|80G9|A101IT)\\b|Qilive 97R|Archos5|\\bARCHOS (70|79|80|90|97|101|FAMILYPAD|)(b|c|)(G10| Cobalt| TITANIUM(HD|)| Xenon| Neon|XSK| 2| XS 2| PLATINUM| CARBON|GAMEPAD)\\b",AinolTablet:"NOVO7|NOVO8|NOVO10|Novo7Aurora|Novo7Basic|NOVO7PALADIN|novo9-Spark",NokiaLumiaTablet:"Lumia 2520",SonyTablet:"Sony.*Tablet|Xperia Tablet|Sony Tablet S|SO-03E|SGPT12|SGPT13|SGPT114|SGPT121|SGPT122|SGPT123|SGPT111|SGPT112|SGPT113|SGPT131|SGPT132|SGPT133|SGPT211|SGPT212|SGPT213|SGP311|SGP312|SGP321|EBRD1101|EBRD1102|EBRD1201|SGP351|SGP341|SGP511|SGP512|SGP521|SGP541|SGP551|SGP621|SGP641|SGP612|SOT31|SGP771|SGP611|SGP612|SGP712",PhilipsTablet:"\\b(PI2010|PI3000|PI3100|PI3105|PI3110|PI3205|PI3210|PI3900|PI4010|PI7000|PI7100)\\b",CubeTablet:"Android.*(K8GT|U9GT|U10GT|U16GT|U17GT|U18GT|U19GT|U20GT|U23GT|U30GT)|CUBE U8GT",CobyTablet:"MID1042|MID1045|MID1125|MID1126|MID7012|MID7014|MID7015|MID7034|MID7035|MID7036|MID7042|MID7048|MID7127|MID8042|MID8048|MID8127|MID9042|MID9740|MID9742|MID7022|MID7010",MIDTablet:"M9701|M9000|M9100|M806|M1052|M806|T703|MID701|MID713|MID710|MID727|MID760|MID830|MID728|MID933|MID125|MID810|MID732|MID120|MID930|MID800|MID731|MID900|MID100|MID820|MID735|MID980|MID130|MID833|MID737|MID960|MID135|MID860|MID736|MID140|MID930|MID835|MID733|MID4X10",MSITablet:"MSI \\b(Primo 73K|Primo 73L|Primo 81L|Primo 77|Primo 93|Primo 75|Primo 76|Primo 73|Primo 81|Primo 91|Primo 90|Enjoy 71|Enjoy 7|Enjoy 10)\\b",SMiTTablet:"Android.*(\\bMID\\b|MID-560|MTV-T1200|MTV-PND531|MTV-P1101|MTV-PND530)",RockChipTablet:"Android.*(RK2818|RK2808A|RK2918|RK3066)|RK2738|RK2808A",FlyTablet:"IQ310|Fly Vision",bqTablet:"Android.*(bq)?.*\\b(Elcano|Curie|Edison|Maxwell|Kepler|Pascal|Tesla|Hypatia|Platon|Newton|Livingstone|Cervantes|Avant|Aquaris ([E|M]10|M8))\\b|Maxwell.*Lite|Maxwell.*Plus",HuaweiTablet:"MediaPad|MediaPad 7 Youth|IDEOS S7|S7-201c|S7-202u|S7-101|S7-103|S7-104|S7-105|S7-106|S7-201|S7-Slim|M2-A01L|BAH-L09|BAH-W09|AGS-L09|CMR-AL19",NecTablet:"\\bN-06D|\\bN-08D",PantechTablet:"Pantech.*P4100",BronchoTablet:"Broncho.*(N701|N708|N802|a710)",VersusTablet:"TOUCHPAD.*[78910]|\\bTOUCHTAB\\b",ZyncTablet:"z1000|Z99 2G|z930|z990|z909|Z919|z900",PositivoTablet:"TB07STA|TB10STA|TB07FTA|TB10FTA",NabiTablet:"Android.*\\bNabi",KoboTablet:"Kobo Touch|\\bK080\\b|\\bVox\\b Build|\\bArc\\b Build",DanewTablet:"DSlide.*\\b(700|701R|702|703R|704|802|970|971|972|973|974|1010|1012)\\b",TexetTablet:"NaviPad|TB-772A|TM-7045|TM-7055|TM-9750|TM-7016|TM-7024|TM-7026|TM-7041|TM-7043|TM-7047|TM-8041|TM-9741|TM-9747|TM-9748|TM-9751|TM-7022|TM-7021|TM-7020|TM-7011|TM-7010|TM-7023|TM-7025|TM-7037W|TM-7038W|TM-7027W|TM-9720|TM-9725|TM-9737W|TM-1020|TM-9738W|TM-9740|TM-9743W|TB-807A|TB-771A|TB-727A|TB-725A|TB-719A|TB-823A|TB-805A|TB-723A|TB-715A|TB-707A|TB-705A|TB-709A|TB-711A|TB-890HD|TB-880HD|TB-790HD|TB-780HD|TB-770HD|TB-721HD|TB-710HD|TB-434HD|TB-860HD|TB-840HD|TB-760HD|TB-750HD|TB-740HD|TB-730HD|TB-722HD|TB-720HD|TB-700HD|TB-500HD|TB-470HD|TB-431HD|TB-430HD|TB-506|TB-504|TB-446|TB-436|TB-416|TB-146SE|TB-126SE",PlaystationTablet:"Playstation.*(Portable|Vita)",TrekstorTablet:"ST10416-1|VT10416-1|ST70408-1|ST702xx-1|ST702xx-2|ST80208|ST97216|ST70104-2|VT10416-2|ST10216-2A|SurfTab",PyleAudioTablet:"\\b(PTBL10CEU|PTBL10C|PTBL72BC|PTBL72BCEU|PTBL7CEU|PTBL7C|PTBL92BC|PTBL92BCEU|PTBL9CEU|PTBL9CUK|PTBL9C)\\b",AdvanTablet:"Android.* \\b(E3A|T3X|T5C|T5B|T3E|T3C|T3B|T1J|T1F|T2A|T1H|T1i|E1C|T1-E|T5-A|T4|E1-B|T2Ci|T1-B|T1-D|O1-A|E1-A|T1-A|T3A|T4i)\\b ",DanyTechTablet:"Genius Tab G3|Genius Tab S2|Genius Tab Q3|Genius Tab G4|Genius Tab Q4|Genius Tab G-II|Genius TAB GII|Genius TAB GIII|Genius Tab S1",GalapadTablet:"Android [0-9.]+; [a-z-]+; \\bG1\\b",MicromaxTablet:"Funbook|Micromax.*\\b(P250|P560|P360|P362|P600|P300|P350|P500|P275)\\b",KarbonnTablet:"Android.*\\b(A39|A37|A34|ST8|ST10|ST7|Smart Tab3|Smart Tab2)\\b",AllFineTablet:"Fine7 Genius|Fine7 Shine|Fine7 Air|Fine8 Style|Fine9 More|Fine10 Joy|Fine11 Wide",PROSCANTablet:"\\b(PEM63|PLT1023G|PLT1041|PLT1044|PLT1044G|PLT1091|PLT4311|PLT4311PL|PLT4315|PLT7030|PLT7033|PLT7033D|PLT7035|PLT7035D|PLT7044K|PLT7045K|PLT7045KB|PLT7071KG|PLT7072|PLT7223G|PLT7225G|PLT7777G|PLT7810K|PLT7849G|PLT7851G|PLT7852G|PLT8015|PLT8031|PLT8034|PLT8036|PLT8080K|PLT8082|PLT8088|PLT8223G|PLT8234G|PLT8235G|PLT8816K|PLT9011|PLT9045K|PLT9233G|PLT9735|PLT9760G|PLT9770G)\\b",YONESTablet:"BQ1078|BC1003|BC1077|RK9702|BC9730|BC9001|IT9001|BC7008|BC7010|BC708|BC728|BC7012|BC7030|BC7027|BC7026",ChangJiaTablet:"TPC7102|TPC7103|TPC7105|TPC7106|TPC7107|TPC7201|TPC7203|TPC7205|TPC7210|TPC7708|TPC7709|TPC7712|TPC7110|TPC8101|TPC8103|TPC8105|TPC8106|TPC8203|TPC8205|TPC8503|TPC9106|TPC9701|TPC97101|TPC97103|TPC97105|TPC97106|TPC97111|TPC97113|TPC97203|TPC97603|TPC97809|TPC97205|TPC10101|TPC10103|TPC10106|TPC10111|TPC10203|TPC10205|TPC10503",GUTablet:"TX-A1301|TX-M9002|Q702|kf026",PointOfViewTablet:"TAB-P506|TAB-navi-7-3G-M|TAB-P517|TAB-P-527|TAB-P701|TAB-P703|TAB-P721|TAB-P731N|TAB-P741|TAB-P825|TAB-P905|TAB-P925|TAB-PR945|TAB-PL1015|TAB-P1025|TAB-PI1045|TAB-P1325|TAB-PROTAB[0-9]+|TAB-PROTAB25|TAB-PROTAB26|TAB-PROTAB27|TAB-PROTAB26XL|TAB-PROTAB2-IPS9|TAB-PROTAB30-IPS9|TAB-PROTAB25XXL|TAB-PROTAB26-IPS10|TAB-PROTAB30-IPS10",OvermaxTablet:"OV-(SteelCore|NewBase|Basecore|Baseone|Exellen|Quattor|EduTab|Solution|ACTION|BasicTab|TeddyTab|MagicTab|Stream|TB-08|TB-09)|Qualcore 1027",HCLTablet:"HCL.*Tablet|Connect-3G-2.0|Connect-2G-2.0|ME Tablet U1|ME Tablet U2|ME Tablet G1|ME Tablet X1|ME Tablet Y2|ME Tablet Sync",DPSTablet:"DPS Dream 9|DPS Dual 7",VistureTablet:"V97 HD|i75 3G|Visture V4( HD)?|Visture V5( HD)?|Visture V10",CrestaTablet:"CTP(-)?810|CTP(-)?818|CTP(-)?828|CTP(-)?838|CTP(-)?888|CTP(-)?978|CTP(-)?980|CTP(-)?987|CTP(-)?988|CTP(-)?989",MediatekTablet:"\\bMT8125|MT8389|MT8135|MT8377\\b",ConcordeTablet:"Concorde([ ]+)?Tab|ConCorde ReadMan",GoCleverTablet:"GOCLEVER TAB|A7GOCLEVER|M1042|M7841|M742|R1042BK|R1041|TAB A975|TAB A7842|TAB A741|TAB A741L|TAB M723G|TAB M721|TAB A1021|TAB I921|TAB R721|TAB I720|TAB T76|TAB R70|TAB R76.2|TAB R106|TAB R83.2|TAB M813G|TAB I721|GCTA722|TAB I70|TAB I71|TAB S73|TAB R73|TAB R74|TAB R93|TAB R75|TAB R76.1|TAB A73|TAB A93|TAB A93.2|TAB T72|TAB R83|TAB R974|TAB R973|TAB A101|TAB A103|TAB A104|TAB A104.2|R105BK|M713G|A972BK|TAB A971|TAB R974.2|TAB R104|TAB R83.3|TAB A1042",ModecomTablet:"FreeTAB 9000|FreeTAB 7.4|FreeTAB 7004|FreeTAB 7800|FreeTAB 2096|FreeTAB 7.5|FreeTAB 1014|FreeTAB 1001 |FreeTAB 8001|FreeTAB 9706|FreeTAB 9702|FreeTAB 7003|FreeTAB 7002|FreeTAB 1002|FreeTAB 7801|FreeTAB 1331|FreeTAB 1004|FreeTAB 8002|FreeTAB 8014|FreeTAB 9704|FreeTAB 1003",VoninoTablet:"\\b(Argus[ _]?S|Diamond[ _]?79HD|Emerald[ _]?78E|Luna[ _]?70C|Onyx[ _]?S|Onyx[ _]?Z|Orin[ _]?HD|Orin[ _]?S|Otis[ _]?S|SpeedStar[ _]?S|Magnet[ _]?M9|Primus[ _]?94[ _]?3G|Primus[ _]?94HD|Primus[ _]?QS|Android.*\\bQ8\\b|Sirius[ _]?EVO[ _]?QS|Sirius[ _]?QS|Spirit[ _]?S)\\b",ECSTablet:"V07OT2|TM105A|S10OT1|TR10CS1",StorexTablet:"eZee[_']?(Tab|Go)[0-9]+|TabLC7|Looney Tunes Tab",VodafoneTablet:"SmartTab([ ]+)?[0-9]+|SmartTabII10|SmartTabII7|VF-1497|VFD 1400",EssentielBTablet:"Smart[ ']?TAB[ ]+?[0-9]+|Family[ ']?TAB2",RossMoorTablet:"RM-790|RM-997|RMD-878G|RMD-974R|RMT-705A|RMT-701|RME-601|RMT-501|RMT-711",iMobileTablet:"i-mobile i-note",TolinoTablet:"tolino tab [0-9.]+|tolino shine",AudioSonicTablet:"\\bC-22Q|T7-QC|T-17B|T-17P\\b",AMPETablet:"Android.* A78 ",SkkTablet:"Android.* (SKYPAD|PHOENIX|CYCLOPS)",TecnoTablet:"TECNO P9|TECNO DP8D",JXDTablet:"Android.* \\b(F3000|A3300|JXD5000|JXD3000|JXD2000|JXD300B|JXD300|S5800|S7800|S602b|S5110b|S7300|S5300|S602|S603|S5100|S5110|S601|S7100a|P3000F|P3000s|P101|P200s|P1000m|P200m|P9100|P1000s|S6600b|S908|P1000|P300|S18|S6600|S9100)\\b",iJoyTablet:"Tablet (Spirit 7|Essentia|Galatea|Fusion|Onix 7|Landa|Titan|Scooby|Deox|Stella|Themis|Argon|Unique 7|Sygnus|Hexen|Finity 7|Cream|Cream X2|Jade|Neon 7|Neron 7|Kandy|Scape|Saphyr 7|Rebel|Biox|Rebel|Rebel 8GB|Myst|Draco 7|Myst|Tab7-004|Myst|Tadeo Jones|Tablet Boing|Arrow|Draco Dual Cam|Aurix|Mint|Amity|Revolution|Finity 9|Neon 9|T9w|Amity 4GB Dual Cam|Stone 4GB|Stone 8GB|Andromeda|Silken|X2|Andromeda II|Halley|Flame|Saphyr 9,7|Touch 8|Planet|Triton|Unique 10|Hexen 10|Memphis 4GB|Memphis 8GB|Onix 10)",FX2Tablet:"FX2 PAD7|FX2 PAD10",XoroTablet:"KidsPAD 701|PAD[ ]?712|PAD[ ]?714|PAD[ ]?716|PAD[ ]?717|PAD[ ]?718|PAD[ ]?720|PAD[ ]?721|PAD[ ]?722|PAD[ ]?790|PAD[ ]?792|PAD[ ]?900|PAD[ ]?9715D|PAD[ ]?9716DR|PAD[ ]?9718DR|PAD[ ]?9719QR|PAD[ ]?9720QR|TelePAD1030|Telepad1032|TelePAD730|TelePAD731|TelePAD732|TelePAD735Q|TelePAD830|TelePAD9730|TelePAD795|MegaPAD 1331|MegaPAD 1851|MegaPAD 2151",ViewsonicTablet:"ViewPad 10pi|ViewPad 10e|ViewPad 10s|ViewPad E72|ViewPad7|ViewPad E100|ViewPad 7e|ViewSonic VB733|VB100a",VerizonTablet:"QTAQZ3|QTAIR7|QTAQTZ3|QTASUN1|QTASUN2|QTAXIA1",OdysTablet:"LOOX|XENO10|ODYS[ -](Space|EVO|Xpress|NOON)|\\bXELIO\\b|Xelio10Pro|XELIO7PHONETAB|XELIO10EXTREME|XELIOPT2|NEO_QUAD10",CaptivaTablet:"CAPTIVA PAD",IconbitTablet:"NetTAB|NT-3702|NT-3702S|NT-3702S|NT-3603P|NT-3603P|NT-0704S|NT-0704S|NT-3805C|NT-3805C|NT-0806C|NT-0806C|NT-0909T|NT-0909T|NT-0907S|NT-0907S|NT-0902S|NT-0902S",TeclastTablet:"T98 4G|\\bP80\\b|\\bX90HD\\b|X98 Air|X98 Air 3G|\\bX89\\b|P80 3G|\\bX80h\\b|P98 Air|\\bX89HD\\b|P98 3G|\\bP90HD\\b|P89 3G|X98 3G|\\bP70h\\b|P79HD 3G|G18d 3G|\\bP79HD\\b|\\bP89s\\b|\\bA88\\b|\\bP10HD\\b|\\bP19HD\\b|G18 3G|\\bP78HD\\b|\\bA78\\b|\\bP75\\b|G17s 3G|G17h 3G|\\bP85t\\b|\\bP90\\b|\\bP11\\b|\\bP98t\\b|\\bP98HD\\b|\\bG18d\\b|\\bP85s\\b|\\bP11HD\\b|\\bP88s\\b|\\bA80HD\\b|\\bA80se\\b|\\bA10h\\b|\\bP89\\b|\\bP78s\\b|\\bG18\\b|\\bP85\\b|\\bA70h\\b|\\bA70\\b|\\bG17\\b|\\bP18\\b|\\bA80s\\b|\\bA11s\\b|\\bP88HD\\b|\\bA80h\\b|\\bP76s\\b|\\bP76h\\b|\\bP98\\b|\\bA10HD\\b|\\bP78\\b|\\bP88\\b|\\bA11\\b|\\bA10t\\b|\\bP76a\\b|\\bP76t\\b|\\bP76e\\b|\\bP85HD\\b|\\bP85a\\b|\\bP86\\b|\\bP75HD\\b|\\bP76v\\b|\\bA12\\b|\\bP75a\\b|\\bA15\\b|\\bP76Ti\\b|\\bP81HD\\b|\\bA10\\b|\\bT760VE\\b|\\bT720HD\\b|\\bP76\\b|\\bP73\\b|\\bP71\\b|\\bP72\\b|\\bT720SE\\b|\\bC520Ti\\b|\\bT760\\b|\\bT720VE\\b|T720-3GE|T720-WiFi",OndaTablet:"\\b(V975i|Vi30|VX530|V701|Vi60|V701s|Vi50|V801s|V719|Vx610w|VX610W|V819i|Vi10|VX580W|Vi10|V711s|V813|V811|V820w|V820|Vi20|V711|VI30W|V712|V891w|V972|V819w|V820w|Vi60|V820w|V711|V813s|V801|V819|V975s|V801|V819|V819|V818|V811|V712|V975m|V101w|V961w|V812|V818|V971|V971s|V919|V989|V116w|V102w|V973|Vi40)\\b[\\s]+|V10 \\b4G\\b",JaytechTablet:"TPC-PA762",BlaupunktTablet:"Endeavour 800NG|Endeavour 1010",DigmaTablet:"\\b(iDx10|iDx9|iDx8|iDx7|iDxD7|iDxD8|iDsQ8|iDsQ7|iDsQ8|iDsD10|iDnD7|3TS804H|iDsQ11|iDj7|iDs10)\\b",EvolioTablet:"ARIA_Mini_wifi|Aria[ _]Mini|Evolio X10|Evolio X7|Evolio X8|\\bEvotab\\b|\\bNeura\\b",LavaTablet:"QPAD E704|\\bIvoryS\\b|E-TAB IVORY|\\bE-TAB\\b",AocTablet:"MW0811|MW0812|MW0922|MTK8382|MW1031|MW0831|MW0821|MW0931|MW0712",MpmanTablet:"MP11 OCTA|MP10 OCTA|MPQC1114|MPQC1004|MPQC994|MPQC974|MPQC973|MPQC804|MPQC784|MPQC780|\\bMPG7\\b|MPDCG75|MPDCG71|MPDC1006|MP101DC|MPDC9000|MPDC905|MPDC706HD|MPDC706|MPDC705|MPDC110|MPDC100|MPDC99|MPDC97|MPDC88|MPDC8|MPDC77|MP709|MID701|MID711|MID170|MPDC703|MPQC1010",CelkonTablet:"CT695|CT888|CT[\\s]?910|CT7 Tab|CT9 Tab|CT3 Tab|CT2 Tab|CT1 Tab|C820|C720|\\bCT-1\\b",WolderTablet:"miTab \\b(DIAMOND|SPACE|BROOKLYN|NEO|FLY|MANHATTAN|FUNK|EVOLUTION|SKY|GOCAR|IRON|GENIUS|POP|MINT|EPSILON|BROADWAY|JUMP|HOP|LEGEND|NEW AGE|LINE|ADVANCE|FEEL|FOLLOW|LIKE|LINK|LIVE|THINK|FREEDOM|CHICAGO|CLEVELAND|BALTIMORE-GH|IOWA|BOSTON|SEATTLE|PHOENIX|DALLAS|IN 101|MasterChef)\\b",MediacomTablet:"M-MPI10C3G|M-SP10EG|M-SP10EGP|M-SP10HXAH|M-SP7HXAH|M-SP10HXBH|M-SP8HXAH|M-SP8MXA",MiTablet:"\\bMI PAD\\b|\\bHM NOTE 1W\\b",NibiruTablet:"Nibiru M1|Nibiru Jupiter One",NexoTablet:"NEXO NOVA|NEXO 10|NEXO AVIO|NEXO FREE|NEXO GO|NEXO EVO|NEXO 3G|NEXO SMART|NEXO KIDDO|NEXO MOBI",LeaderTablet:"TBLT10Q|TBLT10I|TBL-10WDKB|TBL-10WDKBO2013|TBL-W230V2|TBL-W450|TBL-W500|SV572|TBLT7I|TBA-AC7-8G|TBLT79|TBL-8W16|TBL-10W32|TBL-10WKB|TBL-W100",UbislateTablet:"UbiSlate[\\s]?7C",PocketBookTablet:"Pocketbook",KocasoTablet:"\\b(TB-1207)\\b",HisenseTablet:"\\b(F5281|E2371)\\b",Hudl:"Hudl HT7S3|Hudl 2",TelstraTablet:"T-Hub2",GenericTablet:"Android.*\\b97D\\b|Tablet(?!.*PC)|BNTV250A|MID-WCDMA|LogicPD Zoom2|\\bA7EB\\b|CatNova8|A1_07|CT704|CT1002|\\bM721\\b|rk30sdk|\\bEVOTAB\\b|M758A|ET904|ALUMIUM10|Smartfren Tab|Endeavour 1010|Tablet-PC-4|Tagi Tab|\\bM6pro\\b|CT1020W|arc 10HD|\\bTP750\\b|\\bQTAQZ3\\b|WVT101|TM1088|KT107"},oss:{AndroidOS:"Android",BlackBerryOS:"blackberry|\\bBB10\\b|rim tablet os",PalmOS:"PalmOS|avantgo|blazer|elaine|hiptop|palm|plucker|xiino",SymbianOS:"Symbian|SymbOS|Series60|Series40|SYB-[0-9]+|\\bS60\\b",WindowsMobileOS:"Windows CE.*(PPC|Smartphone|Mobile|[0-9]{3}x[0-9]{3})|Windows Mobile|Windows Phone [0-9.]+|WCE;",WindowsPhoneOS:"Windows Phone 10.0|Windows Phone 8.1|Windows Phone 8.0|Windows Phone OS|XBLWP7|ZuneWP7|Windows NT 6.[23]; ARM;",iOS:"\\biPhone.*Mobile|\\biPod|\\biPad|AppleCoreMedia",iPadOS:"CPU OS 13",SailfishOS:"Sailfish",MeeGoOS:"MeeGo",MaemoOS:"Maemo",JavaOS:"J2ME/|\\bMIDP\\b|\\bCLDC\\b",webOS:"webOS|hpwOS",badaOS:"\\bBada\\b",BREWOS:"BREW"},uas:{Chrome:"\\bCrMo\\b|CriOS|Android.*Chrome/[.0-9]* (Mobile)?",Dolfin:"\\bDolfin\\b",Opera:"Opera.*Mini|Opera.*Mobi|Android.*Opera|Mobile.*OPR/[0-9.]+$|Coast/[0-9.]+",Skyfire:"Skyfire",Edge:"\\bEdgiOS\\b|Mobile Safari/[.0-9]* Edge",IE:"IEMobile|MSIEMobile",Firefox:"fennec|firefox.*maemo|(Mobile|Tablet).*Firefox|Firefox.*Mobile|FxiOS",Bolt:"bolt",TeaShark:"teashark",Blazer:"Blazer",Safari:"Version((?!\\bEdgiOS\\b).)*Mobile.*Safari|Safari.*Mobile|MobileSafari",WeChat:"\\bMicroMessenger\\b",UCBrowser:"UC.*Browser|UCWEB",baiduboxapp:"baiduboxapp",baidubrowser:"baidubrowser",DiigoBrowser:"DiigoBrowser",Mercury:"\\bMercury\\b",ObigoBrowser:"Obigo",NetFront:"NF-Browser",GenericBrowser:"NokiaBrowser|OviBrowser|OneBrowser|TwonkyBeamBrowser|SEMC.*Browser|FlyFlow|Minimo|NetFront|Novarra-Vision|MQQBrowser|MicroMessenger",PaleMoon:"Android.*PaleMoon|Mobile.*PaleMoon"},props:{Mobile:"Mobile/[VER]",Build:"Build/[VER]",Version:"Version/[VER]",VendorID:"VendorID/[VER]",iPad:"iPad.*CPU[a-z ]+[VER]",iPhone:"iPhone.*CPU[a-z ]+[VER]",iPod:"iPod.*CPU[a-z ]+[VER]",Kindle:"Kindle/[VER]",Chrome:["Chrome/[VER]","CriOS/[VER]","CrMo/[VER]"],Coast:["Coast/[VER]"],Dolfin:"Dolfin/[VER]",Firefox:["Firefox/[VER]","FxiOS/[VER]"],Fennec:"Fennec/[VER]",Edge:"Edge/[VER]",IE:["IEMobile/[VER];","IEMobile [VER]","MSIE [VER];","Trident/[0-9.]+;.*rv:[VER]"],NetFront:"NetFront/[VER]",NokiaBrowser:"NokiaBrowser/[VER]",Opera:[" OPR/[VER]","Opera Mini/[VER]","Version/[VER]"],"Opera Mini":"Opera Mini/[VER]","Opera Mobi":"Version/[VER]",UCBrowser:["UCWEB[VER]","UC.*Browser/[VER]"],MQQBrowser:"MQQBrowser/[VER]",MicroMessenger:"MicroMessenger/[VER]",baiduboxapp:"baiduboxapp/[VER]",baidubrowser:"baidubrowser/[VER]",SamsungBrowser:"SamsungBrowser/[VER]",Iron:"Iron/[VER]",Safari:["Version/[VER]","Safari/[VER]"],Skyfire:"Skyfire/[VER]",Tizen:"Tizen/[VER]",Webkit:"webkit[ /][VER]",PaleMoon:"PaleMoon/[VER]",SailfishBrowser:"SailfishBrowser/[VER]",Gecko:"Gecko/[VER]",Trident:"Trident/[VER]",Presto:"Presto/[VER]",Goanna:"Goanna/[VER]",iOS:" \\bi?OS\\b [VER][ ;]{1}",Android:"Android [VER]",Sailfish:"Sailfish [VER]",BlackBerry:["BlackBerry[\\w]+/[VER]","BlackBerry.*Version/[VER]","Version/[VER]"],BREW:"BREW [VER]",Java:"Java/[VER]","Windows Phone OS":["Windows Phone OS [VER]","Windows Phone [VER]"],"Windows Phone":"Windows Phone [VER]","Windows CE":"Windows CE/[VER]","Windows NT":"Windows NT [VER]",Symbian:["SymbianOS/[VER]","Symbian/[VER]"],webOS:["webOS/[VER]","hpwOS/[VER];"]},utils:{Bot:"Googlebot|facebookexternalhit|Google-AMPHTML|s~amp-validator|AdsBot-Google|Google Keyword Suggestion|Facebot|YandexBot|YandexMobileBot|bingbot|ia_archiver|AhrefsBot|Ezooms|GSLFbot|WBSearchBot|Twitterbot|TweetmemeBot|Twikle|PaperLiBot|Wotbox|UnwindFetchor|Exabot|MJ12bot|YandexImages|TurnitinBot|Pingdom|contentkingapp|AspiegelBot",MobileBot:"Googlebot-Mobile|AdsBot-Google-Mobile|YahooSeeker/M1A1-R2D2",DesktopMode:"WPDesktop",TV:"SonyDTV|HbbTV",WebKit:"(webkit)[ /]([\\w.]+)",Console:"\\b(Nintendo|Nintendo WiiU|Nintendo 3DS|Nintendo Switch|PLAYSTATION|Xbox)\\b",Watch:"SM-V700"}},g.detectMobileBrowsers={fullPattern:/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i, shortPattern:/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i,tabletPattern:/android|ipad|playbook|silk/i};var h,i=Object.prototype.hasOwnProperty;return g.FALLBACK_PHONE="UnknownPhone",g.FALLBACK_TABLET="UnknownTablet",g.FALLBACK_MOBILE="UnknownMobile",h="isArray"in Array?Array.isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},function(){var a,b,c,e,f,j,k=g.mobileDetectRules;for(a in k.props)if(i.call(k.props,a)){for(b=k.props[a],h(b)||(b=[b]),f=b.length,e=0;e<f;++e)c=b[e],j=c.indexOf("[VER]"),j>=0&&(c=c.substring(0,j)+"([\\w._\\+]+)"+c.substring(j+5)),b[e]=new RegExp(c,"i");k.props[a]=b}d(k.oss),d(k.phones),d(k.tablets),d(k.uas),d(k.utils),k.oss0={WindowsPhoneOS:k.oss.WindowsPhoneOS,WindowsMobileOS:k.oss.WindowsMobileOS}}(),g.findMatch=function(a,b){for(var c in a)if(i.call(a,c)&&a[c].test(b))return c;return null},g.findMatches=function(a,b){var c=[];for(var d in a)i.call(a,d)&&a[d].test(b)&&c.push(d);return c},g.getVersionStr=function(a,b){var c,d,e,f,h=g.mobileDetectRules.props;if(i.call(h,a))for(c=h[a],e=c.length,d=0;d<e;++d)if(f=c[d].exec(b),null!==f)return f[1];return null},g.getVersion=function(a,b){var c=g.getVersionStr(a,b);return c?g.prepareVersionNo(c):NaN},g.prepareVersionNo=function(a){var b;return b=a.split(/[a-z._ \/\-]/i),1===b.length&&(a=b[0]),b.length>1&&(a=b[0]+".",b.shift(),a+=b.join("")),Number(a)},g.isMobileFallback=function(a){return g.detectMobileBrowsers.fullPattern.test(a)||g.detectMobileBrowsers.shortPattern.test(a.substr(0,4))},g.isTabletFallback=function(a){return g.detectMobileBrowsers.tabletPattern.test(a)},g.prepareDetectionCache=function(a,c,d){if(a.mobile===b){var e,h,i;return(h=g.findMatch(g.mobileDetectRules.tablets,c))?(a.mobile=a.tablet=h,void(a.phone=null)):(e=g.findMatch(g.mobileDetectRules.phones,c))?(a.mobile=a.phone=e,void(a.tablet=null)):void(g.isMobileFallback(c)?(i=f.isPhoneSized(d),i===b?(a.mobile=g.FALLBACK_MOBILE,a.tablet=a.phone=null):i?(a.mobile=a.phone=g.FALLBACK_PHONE,a.tablet=null):(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null)):g.isTabletFallback(c)?(a.mobile=a.tablet=g.FALLBACK_TABLET,a.phone=null):a.mobile=a.tablet=a.phone=null)}},g.mobileGrade=function(a){var b=null!==a.mobile();return a.os("iOS")&&a.version("iPad")>=4.3||a.os("iOS")&&a.version("iPhone")>=3.1||a.os("iOS")&&a.version("iPod")>=3.1||a.version("Android")>2.1&&a.is("Webkit")||a.version("Windows Phone OS")>=7||a.is("BlackBerry")&&a.version("BlackBerry")>=6||a.match("Playbook.*Tablet")||a.version("webOS")>=1.4&&a.match("Palm|Pre|Pixi")||a.match("hp.*TouchPad")||a.is("Firefox")&&a.version("Firefox")>=12||a.is("Chrome")&&a.is("AndroidOS")&&a.version("Android")>=4||a.is("Skyfire")&&a.version("Skyfire")>=4.1&&a.is("AndroidOS")&&a.version("Android")>=2.3||a.is("Opera")&&a.version("Opera Mobi")>11&&a.is("AndroidOS")||a.is("MeeGoOS")||a.is("Tizen")||a.is("Dolfin")&&a.version("Bada")>=2||(a.is("UC Browser")||a.is("Dolfin"))&&a.version("Android")>=2.3||a.match("Kindle Fire")||a.is("Kindle")&&a.version("Kindle")>=3||a.is("AndroidOS")&&a.is("NookTablet")||a.version("Chrome")>=11&&!b||a.version("Safari")>=5&&!b||a.version("Firefox")>=4&&!b||a.version("MSIE")>=7&&!b||a.version("Opera")>=10&&!b?"A":a.os("iOS")&&a.version("iPad")<4.3||a.os("iOS")&&a.version("iPhone")<3.1||a.os("iOS")&&a.version("iPod")<3.1||a.is("Blackberry")&&a.version("BlackBerry")>=5&&a.version("BlackBerry")<6||a.version("Opera Mini")>=5&&a.version("Opera Mini")<=6.5&&(a.version("Android")>=2.3||a.is("iOS"))||a.match("NokiaN8|NokiaC7|N97.*Series60|Symbian/3")||a.version("Opera Mobi")>=11&&a.is("SymbianOS")?"B":(a.version("BlackBerry")<5||a.match("MSIEMobile|Windows CE.*Mobile")||a.version("Windows Mobile")<=5.2,"C")},g.detectOS=function(a){return g.findMatch(g.mobileDetectRules.oss0,a)||g.findMatch(g.mobileDetectRules.oss,a)},g.getDeviceSmallerSide=function(){return window.screen.width<window.screen.height?window.screen.width:window.screen.height},f.prototype={constructor:f,mobile:function(){return g.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.mobile},phone:function(){return g.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.phone},tablet:function(){return g.prepareDetectionCache(this._cache,this.ua,this.maxPhoneWidth),this._cache.tablet},userAgent:function(){return this._cache.userAgent===b&&(this._cache.userAgent=g.findMatch(g.mobileDetectRules.uas,this.ua)),this._cache.userAgent},userAgents:function(){return this._cache.userAgents===b&&(this._cache.userAgents=g.findMatches(g.mobileDetectRules.uas,this.ua)),this._cache.userAgents},os:function(){return this._cache.os===b&&(this._cache.os=g.detectOS(this.ua)),this._cache.os},version:function(a){return g.getVersion(a,this.ua)},versionStr:function(a){return g.getVersionStr(a,this.ua)},is:function(b){return c(this.userAgents(),b)||a(b,this.os())||a(b,this.phone())||a(b,this.tablet())||c(g.findMatches(g.mobileDetectRules.utils,this.ua),b)},match:function(a){return a instanceof RegExp||(a=new RegExp(a,"i")),a.test(this.ua)},isPhoneSized:function(a){return f.isPhoneSized(a||this.maxPhoneWidth)},mobileGrade:function(){return this._cache.grade===b&&(this._cache.grade=g.mobileGrade(this)),this._cache.grade}},"undefined"!=typeof window&&window.screen?f.isPhoneSized=function(a){return a<0?b:g.getDeviceSmallerSide()<=a}:f.isPhoneSized=function(){},f._impl=g,f.version="1.4.5 2021-03-13",f})}(function(a){if("undefined"!=typeof module&&module.exports)return function(a){module.exports=a()};if("function"==typeof define&&define.amd)return define;if("undefined"!=typeof window)return function(a){window.MobileDetect=a()};throw new Error("unknown environment")}());var ai_lists=!0,ai_block_class_def="code-block"; if("undefined"!=typeof ai_lists){function X(b,e){for(var n=[];b=b.previousElementSibling;)("undefined"==typeof e||b.matches(e))&&n.push(b);return n}function fa(b,e){for(var n=[];b=b.nextElementSibling;)("undefined"==typeof e||b.matches(e))&&n.push(b);return n}var host_regexp=RegExp(":\\/\\/(.[^/:]+)","i");function ha(b){b=b.match(host_regexp);return null!=b&&1<b.length&&"string"===typeof b[1]&&0<b[1].length?b[1].toLowerCase():null}function Q(b){return b.includes(":")?(b=b.split(":"),1E3*(3600*parseInt(b[0])+ 60*parseInt(b[1])+parseInt(b[2]))):null}function Y(b){try{var e=Date.parse(b);isNaN(e)&&(e=null)}catch(n){e=null}if(null==e&&b.includes(" ")){b=b.split(" ");try{e=Date.parse(b[0]),e+=Q(b[1]),isNaN(e)&&(e=null)}catch(n){e=null}}return e}function Z(){null==document.querySelector("#ai-iab-tcf-bar")&&null==document.querySelector(".ai-list-manual")||"function"!=typeof __tcfapi||"function"!=typeof ai_load_blocks||"undefined"!=typeof ai_iab_tcf_callback_installed||(__tcfapi("addEventListener",2,function(b, e){!e||"useractioncomplete"!==b.eventStatus&&"loaded"!==b.cmpStatus||(ai_tcData=b,ai_load_blocks(),b=document.querySelector("#ai-iab-tcf-status"),null!=b&&(b.textContent="IAB TCF 2.0 DATA LOADED"),b=document.querySelector("#ai-iab-tcf-bar"),null!=b&&(b.classList.remove("status-error"),b.classList.add("status-ok")))}),ai_iab_tcf_callback_installed=!0)}ai_process_lists=function(b){function e(a,c,h){if(0==a.length){if("!@!"==h)return!0;c!=h&&("true"==h.toLowerCase()?h=!0:"false"==h.toLowerCase()&&(h= !1));return c==h}if("object"!=typeof c&&"array"!=typeof c)return!1;var k=a[0];a=a.slice(1);if("*"==k)for(let [,p]of Object.entries(c)){if(e(a,p,h))return!0}else if(k in c)return e(a,c[k],h);return!1}function n(a,c,h){if("object"!=typeof a||-1==c.indexOf("["))return!1;c=c.replace(/]| /gi,"").split("[");return e(c,a,h)}function z(){if("function"==typeof __tcfapi){var a=document.querySelector("#ai-iab-tcf-status"),c=document.querySelector("#ai-iab-tcf-bar");null!=a&&(a.textContent="IAB TCF 2.0 DETECTED"); __tcfapi("getTCData",2,function(h,k){k||"object"!=typeof ai_tcData||(h=ai_tcData,k=!0);k?(null!=c&&(c.classList.remove("status-error"),c.classList.add("status-ok")),"tcloaded"==h.eventStatus||"useractioncomplete"==h.eventStatus)?(ai_tcData=h,h.gdprApplies?null!=a&&(a.textContent="IAB TCF 2.0 DATA LOADED"):null!=a&&(a.textContent="IAB TCF 2.0 GDPR DOES NOT APPLY"),null!=c&&(c.classList.remove("status-error"),c.classList.add("status-ok")),setTimeout(function(){ai_process_lists()},10)):"cmpuishown"== h.eventStatus&&(ai_cmpuishown=!0,null!=a&&(a.textContent="IAB TCF 2.0 CMP UI SHOWN"),null!=c&&(c.classList.remove("status-error"),c.classList.add("status-ok"))):(null!=a&&(a.textContent="IAB TCF 2.0 __tcfapi getTCData failed"),null!=c&&(c.classList.remove("status-ok"),c.classList.add("status-error")))})}}function C(a){"function"==typeof __tcfapi?(ai_tcfapi_found=!0,"undefined"==typeof ai_iab_tcf_callback_installed&&Z(),"undefined"==typeof ai_tcData_requested&&(ai_tcData_requested=!0,z(),cookies_need_tcData= !0)):a&&("undefined"==typeof ai_tcfapi_found&&(ai_tcfapi_found=!1,setTimeout(function(){ai_process_lists()},10)),a=document.querySelector("#ai-iab-tcf-status"),null!=a&&(a.textContent="IAB TCF 2.0 MISSING: __tcfapi function not found"),a=document.querySelector("#ai-iab-tcf-bar"),null!=a&&(a.classList.remove("status-ok"),a.classList.add("status-error")))}if(null==b)b=document.querySelectorAll("div.ai-list-data, meta.ai-list-data");else{window.jQuery&&window.jQuery.fn&&b instanceof jQuery&&(b=Array.prototype.slice.call(b)); var x=[];b.forEach((a,c)=>{a.matches(".ai-list-data")?x.push(a):(a=a.querySelectorAll(".ai-list-data"),a.length&&a.forEach((h,k)=>{x.push(h)}))});b=x}if(b.length){b.forEach((a,c)=>{a.classList.remove("ai-list-data")});var L=ia(window.location.search);if(null!=L.referrer)var A=L.referrer;else A=document.referrer,""!=A&&(A=ha(A));var R=window.navigator.userAgent,S=R.toLowerCase(),aa=navigator.language,M=aa.toLowerCase();if("undefined"!==typeof MobileDetect)var ba=new MobileDetect(R);b.forEach((a,c)=> {var h=document.cookie.split(";");h.forEach(function(f,l){h[l]=f.trim()});c=a.closest("div."+ai_block_class_def);var k=!0;if(a.hasAttribute("referer-list")){var p=a.getAttribute("referer-list");p=b64d(p).split(",");var v=a.getAttribute("referer-list-type"),E=!1;p.every((f,l)=>{f=f.trim();if(""==f)return!0;if("*"==f.charAt(0))if("*"==f.charAt(f.length-1)){if(f=f.substr(1,f.length-2),-1!=A.indexOf(f))return E=!0,!1}else{if(f=f.substr(1),A.substr(-f.length)==f)return E=!0,!1}else if("*"==f.charAt(f.length- 1)){if(f=f.substr(0,f.length-1),0==A.indexOf(f))return E=!0,!1}else if("#"==f){if(""==A)return E=!0,!1}else if(f==A)return E=!0,!1;return!0});var r=E;switch(v){case "B":r&&(k=!1);break;case "W":r||(k=!1)}}if(k&&a.hasAttribute("client-list")&&"undefined"!==typeof ba)switch(p=a.getAttribute("client-list"),p=b64d(p).split(","),v=a.getAttribute("client-list-type"),r=!1,p.every((f,l)=>{if(""==f.trim())return!0;f.split("&&").every((d,t)=>{t=!0;var w=!1;for(d=d.trim();"!!"==d.substring(0,2);)t=!t,d=d.substring(2); "language:"==d.substring(0,9)&&(w=!0,d=d.substring(9).toLowerCase());var q=!1;w?"*"==d.charAt(0)?"*"==d.charAt(d.length-1)?(d=d.substr(1,d.length-2).toLowerCase(),-1!=M.indexOf(d)&&(q=!0)):(d=d.substr(1).toLowerCase(),M.substr(-d.length)==d&&(q=!0)):"*"==d.charAt(d.length-1)?(d=d.substr(0,d.length-1).toLowerCase(),0==M.indexOf(d)&&(q=!0)):d==M&&(q=!0):"*"==d.charAt(0)?"*"==d.charAt(d.length-1)?(d=d.substr(1,d.length-2).toLowerCase(),-1!=S.indexOf(d)&&(q=!0)):(d=d.substr(1).toLowerCase(),S.substr(-d.length)== d&&(q=!0)):"*"==d.charAt(d.length-1)?(d=d.substr(0,d.length-1).toLowerCase(),0==S.indexOf(d)&&(q=!0)):ba.is(d)&&(q=!0);return(r=q?t:!t)?!0:!1});return r?!1:!0}),v){case "B":r&&(k=!1);break;case "W":r||(k=!1)}var N=p=!1;for(v=1;2>=v;v++)if(k){switch(v){case 1:var g=a.getAttribute("cookie-list");break;case 2:g=a.getAttribute("parameter-list")}if(null!=g){g=b64d(g);switch(v){case 1:var y=a.getAttribute("cookie-list-type");break;case 2:y=a.getAttribute("parameter-list-type")}g=g.replace("tcf-gdpr","tcf-v2[gdprApplies]=true"); g=g.replace("tcf-no-gdpr","tcf-v2[gdprApplies]=false");g=g.replace("tcf-google","tcf-v2[vendor][consents][755]=true && tcf-v2[purpose][consents][1]=true");g=g.replace("tcf-no-google","!!tcf-v2[vendor][consents][755]");g=g.replace("tcf-media.net","tcf-v2[vendor][consents][142]=true && tcf-v2[purpose][consents][1]=true");g=g.replace("tcf-no-media.net","!!tcf-v2[vendor][consents][142]");g=g.replace("tcf-amazon","tcf-v2[vendor][consents][793]=true && tcf-v2[purpose][consents][1]=true");g=g.replace("tcf-no-amazon", "!!tcf-v2[vendor][consents][793]");g=g.replace("tcf-ezoic","tcf-v2[vendor][consents][347]=true && tcf-v2[purpose][consents][1]=true");g=g.replace("tcf-no-ezoic","!!tcf-v2[vendor][consents][347]");var F=g.split(","),ca=[];h.forEach(function(f){f=f.split("=");try{var l=JSON.parse(decodeURIComponent(f[1]))}catch(d){l=decodeURIComponent(f[1])}ca[f[0]]=l});r=!1;var I=a;F.every((f,l)=>{f.split("&&").every((d,t)=>{t=!0;for(d=d.trim();"!!"==d.substring(0,2);)t=!t,d=d.substring(2);var w=d,q="!@!",T="tcf-v2"== w&&"!@!"==q,B=-1!=d.indexOf("["),J=0==d.indexOf("tcf-v2")||0==d.indexOf("euconsent-v2");J=J&&(B||T);-1!=d.indexOf("=")&&(q=d.split("="),w=q[0],q=q[1],B=-1!=w.indexOf("["),J=(J=0==w.indexOf("tcf-v2")||0==w.indexOf("euconsent-v2"))&&(B||T));if(J)document.querySelector("#ai-iab-tcf-status"),B=document.querySelector("#ai-iab-tcf-bar"),null!=B&&(B.style.display="block"),T&&"boolean"==typeof ai_tcfapi_found?r=ai_tcfapi_found?t:!t:"object"==typeof ai_tcData?(null!=B&&(B.classList.remove("status-error"), B.classList.add("status-ok")),w=w.replace(/]| /gi,"").split("["),w.shift(),r=(w=e(w,ai_tcData,q))?t:!t):"undefined"==typeof ai_tcfapi_found&&(I.classList.add("ai-list-data"),N=!0,"function"==typeof __tcfapi?C(!1):"undefined"==typeof ai_tcData_retrying&&(ai_tcData_retrying=!0,setTimeout(function(){"function"==typeof __tcfapi?C(!1):setTimeout(function(){"function"==typeof __tcfapi?C(!1):setTimeout(function(){C(!0)},3E3)},1E3)},600)));else if(B)r=(w=n(ca,w,q))?t:!t;else{var U=!1;"!@!"==q?h.every(function(ja){return ja.split("=")[0]== d?(U=!0,!1):!0}):U=-1!=h.indexOf(d);r=U?t:!t}return r?!0:!1});return r?!1:!0});r&&(N=!1,I.classList.remove("ai-list-data"));switch(y){case "B":r&&(k=!1);break;case "W":r||(k=!1)}}}a.classList.contains("ai-list-manual")&&(k?(I.classList.remove("ai-list-data"),I.classList.remove("ai-list-manual")):(p=!0,I.classList.add("ai-list-data")));(k||!p&&!N)&&a.hasAttribute("data-debug-info")&&(g=document.querySelector("."+a.dataset.debugInfo),null!=g&&(g=g.parentElement,null!=g&&g.classList.contains("ai-debug-info")&& g.remove()));y=X(a,".ai-debug-bar.ai-debug-lists");var ka=""==A?"#":A;0!=y.length&&y.forEach((f,l)=>{l=f.querySelector(".ai-debug-name.ai-list-info");null!=l&&(l.textContent=ka,l.title=R+"\n"+aa);l=f.querySelector(".ai-debug-name.ai-list-status");null!=l&&(l.textContent=k?ai_front.visible:ai_front.hidden)});g=!1;if(k&&a.hasAttribute("scheduling-start")&&a.hasAttribute("scheduling-end")&&a.hasAttribute("scheduling-days")){var u=a.getAttribute("scheduling-start");v=a.getAttribute("scheduling-end"); y=a.getAttribute("scheduling-days");g=!0;u=b64d(u);F=b64d(v);var V=parseInt(a.getAttribute("scheduling-fallback")),O=parseInt(a.getAttribute("gmt"));if(u.includes("-")||F.includes("-"))P=Y(u)+O,K=Y(F)+O;else var P=Q(u),K=Q(F);P??=0;K??=0;var W=b64d(y).split(",");y=a.getAttribute("scheduling-type");var D=(new Date).getTime()+O;v=new Date(D);var G=v.getDay();0==G?G=6:G--;u.includes("-")||F.includes("-")||(u=(new Date(v.getFullYear(),v.getMonth(),v.getDate())).getTime()+O,D-=u,0>D&&(D+=864E5));scheduling_start_date_ok= D>=P;scheduling_end_date_ok=0==K||D<K;u=scheduling_start_date_ok&&scheduling_end_date_ok&&W.includes(G.toString());switch(y){case "B":u=!u}u||(k=!1);var la=v.toISOString().split(".")[0].replace("T"," ");y=X(a,".ai-debug-bar.ai-debug-scheduling");0!=y.length&&y.forEach((f,l)=>{l=f.querySelector(".ai-debug-name.ai-scheduling-info");null!=l&&(l.textContent=la+" "+G+" current_time: "+Math.floor(D.toString()/1E3)+" start_date:"+Math.floor(P/1E3).toString()+"=>"+scheduling_start_date_ok.toString()+" end_date:"+ Math.floor(K/1E3).toString()+"=>"+scheduling_end_date_ok.toString()+" days:"+W.toString()+"=>"+W.includes(G.toString()).toString());l=f.querySelector(".ai-debug-name.ai-scheduling-status");null!=l&&(l.textContent=k?ai_front.visible:ai_front.hidden);k||0==V||(f.classList.remove("ai-debug-scheduling"),f.classList.add("ai-debug-fallback"),l=f.querySelector(".ai-debug-name.ai-scheduling-status"),null!=l&&(l.textContent=ai_front.fallback+" = "+V))})}if(p||!k&&N)return!0;a.style.visibility="";a.style.position= "";a.style.width="";a.style.height="";a.style.zIndex="";if(k){if(null!=c&&(c.style.visibility="",c.classList.contains("ai-remove-position")&&(c.style.position="")),a.hasAttribute("data-code")){p=b64d(a.dataset.code);u=document.createRange();g=!0;try{H=u.createContextualFragment(p)}catch(f){g=!1}g&&(null!=a.closest("head")?(a.parentNode.insertBefore(H,a.nextSibling),a.remove()):a.append(H));da(a)}}else if(g&&!u&&0!=V){null!=c&&(c.style.visibility="",c.classList.contains("ai-remove-position")&&c.css({position:""})); p=fa(a,".ai-fallback");0!=p.length&&p.forEach((f,l)=>{f.classList.remove("ai-fallback")});if(a.hasAttribute("data-fallback-code")){p=b64d(a.dataset.fallbackCode);u=document.createRange();g=!0;try{var H=u.createContextualFragment(p)}catch(f){g=!1}g&&a.append(H);da(a)}else a.style.display="none",null!=c&&null==c.querySelector(".ai-debug-block")&&c.hasAttribute("style")&&-1==c.getAttribute("style").indexOf("height:")&&(c.style.display="none");null!=c&&c.hasAttribute("data-ai")&&(c.getAttribute("data-ai"), a.hasAttribute("fallback-tracking")&&(H=a.getAttribute("fallback-tracking"),c.setAttribute("data-ai-"+a.getAttribute("fallback_level"),H)))}else a.style.display="none",null!=c&&(c.removeAttribute("data-ai"),c.classList.remove("ai-track"),null!=c.querySelector(".ai-debug-block")?(c.style.visibility="",c.classList.remove("ai-close"),c.classList.contains("ai-remove-position")&&(c.style.position="")):c.hasAttribute("style")&&-1==c.getAttribute("style").indexOf("height:")&&(c.style.display="none"));a.setAttribute("data-code", "");a.setAttribute("data-fallback-code","");null!=c&&c.classList.remove("ai-list-block")})}};function ea(b){b=`; ${document.cookie}`.split(`; ${b}=`);if(2===b.length)return b.pop().split(";").shift()}function ma(b,e,n){ea(b)&&(document.cookie=b+"="+(e?";path="+e:"")+(n?";domain="+n:"")+";expires=Thu, 01 Jan 1970 00:00:01 GMT")}function m(b){ea(b)&&(ma(b,"/",window.location.hostname),document.cookie=b+"=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;")}(function(b){"complete"===document.readyState|| "loading"!==document.readyState&&!document.documentElement.doScroll?b():document.addEventListener("DOMContentLoaded",b)})(function(){setTimeout(function(){ai_process_lists();setTimeout(function(){Z();if("function"==typeof ai_load_blocks){document.addEventListener("cmplzEnableScripts",e);document.addEventListener("cmplz_event_marketing",e);function e(n){"cmplzEnableScripts"!=n.type&&"all"!==n.consentLevel||ai_load_blocks()}document.addEventListener("cmplz_enable_category",function(n){"marketing"=== n.detail.category&&ai_load_blocks()})}},50);var b=document.querySelector(".ai-debug-page-type");null!=b&&b.addEventListener("dblclick",e=>{e=document.querySelector("#ai-iab-tcf-status");null!=e&&(e.textContent="CONSENT COOKIES");e=document.querySelector("#ai-iab-tcf-bar");null!=e&&(e.style.display="block")});b=document.querySelector("#ai-iab-tcf-bar");null!=b&&b.addEventListener("click",e=>{m("euconsent-v2");m("__lxG__consent__v2");m("__lxG__consent__v2_daisybit");m("__lxG__consent__v2_gdaisybit"); m("CookieLawInfoConsent");m("cookielawinfo-checkbox-advertisement");m("cookielawinfo-checkbox-analytics");m("cookielawinfo-checkbox-necessary");m("complianz_policy_id");m("complianz_consent_status");m("cmplz_marketing");m("cmplz_consent_status");m("cmplz_preferences");m("cmplz_statistics-anonymous");m("cmplz_choice");m("cmplz_banner-status");m("cmplz_functional");m("cmplz_policy_id");m("cmplz_statistics");m("moove_gdpr_popup");m("real_cookie_banner-blog:1-tcf");m("real_cookie_banner-blog:1");e=document.querySelector("#ai-iab-tcf-status"); null!=e&&(e.textContent="CONSENT COOKIES DELETED")})},5)});function da(b){setTimeout(function(){"function"==typeof ai_process_rotations_in_element&&ai_process_rotations_in_element(b);"function"==typeof ai_process_lists&&ai_process_lists();"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses();"function"==typeof ai_process_filter_hooks&&ai_process_filter_hooks();"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks(b);"function"==typeof ai_process_impressions&&1==ai_tracking_finished&& ai_process_impressions();"function"==typeof ai_install_click_trackers&&1==ai_tracking_finished&&ai_install_click_trackers();"function"==typeof ai_install_close_buttons&&ai_install_close_buttons(document)},5)}function ia(b){var e=b?b.split("?")[1]:window.location.search.slice(1);b={};if(e){e=e.split("#")[0];e=e.split("&");for(var n=0;n<e.length;n++){var z=e[n].split("="),C=void 0,x=z[0].replace(/\[\d*\]/,function(L){C=L.slice(1,-1);return""});z="undefined"===typeof z[1]?"":z[1];x=x.toLowerCase();z= z.toLowerCase();b[x]?("string"===typeof b[x]&&(b[x]=[b[x]]),"undefined"===typeof C?b[x].push(z):b[x][C]=z):b[x]=z}}return b}}; var ai_ip=!0,ai_use_maxmind="0",ai_data_id="65e45c0104",ai_ajax_url="https://informatecdigital.com/wp-admin/admin-ajax.php",ai_block_class_def="code-block"; if("undefined"!=typeof ai_ip){function u(b,g){g||(g=window.location.href);b=b.replace(/[\[\]]/g,"\\$&");return(b=(new RegExp("[?&]"+b+"(=([^&#]*)|&|#|$)")).exec(g))?b[2]?decodeURIComponent(b[2].replace(/\+/g," ")):"":null}function y(){return(new Date).getTime()+"-"+Math.round(1E5*Math.random())}function v(b){b.forEach((a,c)=>{a.classList.remove("ai-ip-data")});var g=!1;if(""!=ai_ip_data){try{var l=JSON.parse(ai_ip_data),f=l[0],r=l[1],p=l[2],q=l[3]}catch(a){return}var t=!1;-1!=f.indexOf("#")&&(t=!0, f=f.replace("#",""));var e="";t&&(e="CFP BLOCKED, ");e=e+f+", "+r;null!=p&&null!=q&&(e=e+":"+p+":"+q);null==p&&(p="");null==q&&(q="");null!=l&&b.forEach((a,c)=>{c=a.closest("div."+ai_block_class_def);g=!0;if(a.hasAttribute("ip-addresses")){var h=a.getAttribute("ip-addresses").split(","),m=a.getAttribute("ip-address-list"),k=!1;h.every((d,n)=>{if("*"==d.charAt(0))if("*"==d.charAt(d.length-1)){if(d=d.substr(1,d.length-2),-1!=f.indexOf(d))return k=!0,!1}else{if(d=d.substr(1),f.substr(-d.length)==d)return k= !0,!1}else if("*"==d.charAt(d.length-1)){if(d=d.substr(0,d.length-1),0==f.indexOf(d))return k=!0,!1}else if("#"==d){if(""==f)return k=!0,!1}else if("CFP"==d.toUpperCase()){if(t)return k=!0,!1}else if(d==f)return k=!0,!1;return!0});switch(m){case "B":k&&(g=!1);break;case "W":k||(g=!1)}}if(g&&a.hasAttribute("countries"))switch(h=a.getAttribute("countries").split(","),m=a.getAttribute("country-list"),k=!1,h.every((d,n)=>{n=d.trim().split(":");if(null==n[1]||""==p)n[1]="";if(null==n[2]||""==q)n[2]=""; d=n.join(":").toUpperCase();n=(r+":"+(""==n[1]?"":p)+":"+(""==n[2]?"":q)).toUpperCase();return d==n?(k=!0,!1):!0}),m){case "B":k&&(g=!1);break;case "W":k||(g=!1)}a.style.visibility="";a.style.position="";a.style.width="";a.style.height="";a.style.zIndex="";for(h=a.previousElementSibling;h&&!h.matches(".ai-debug-bar");)h=h.previousElementSibling;null!=h&&(m=h.querySelector(".ai-debug-name.ai-ip-country"),null!=m&&(m.textContent=e),m=h.querySelector(".ai-debug-name.ai-ip-status"),null!=m&&(m.textContent= g?ai_front.visible:ai_front.hidden));if(g){if(null!=c&&(c.style.visibility="",c.classList.contains("ai-remove-position")&&(c.style.position="")),a.hasAttribute("data-code")){h=b64d(a.dataset.code);m=document.createRange();var w=!0;try{var x=m.createContextualFragment(h)}catch(d){w=!1}w&&(null!=a.closest("head")?(a.parentNode.insertBefore(x,a.nextSibling),a.remove()):a.append(x));a.removeAttribute("data-code");z(a)}}else a.style.display="none",null!=c&&(c.removeAttribute("data-ai"),c.classList.remove("ai-track"), null!=c.querySelector(".ai-debug-block")?(c.style.visibility="",c.classList.remove("ai-close"),c.classList.contains("ai-remove-position")&&(c.style.position=""),a.hasAttribute("data-code")&&(c.classList.remove("ai-list-block"),c.classList.remove("ai-list-block-filter"),null!=c.previousElementSibling&&c.previousElementSibling.classList.contains("ai-debug-info")&&c.previousElementSibling.remove())):c.hasAttribute("style")&&-1==c.getAttribute("style").indexOf("height:")&&(c.style.display="none"));null!= c&&c.classList.remove("ai-list-block-ip")})}}ai_process_ip_addresses=function(b){if(null==b)b=document.querySelectorAll("div.ai-ip-data, meta.ai-ip-data");else{window.jQuery&&window.jQuery.fn&&b instanceof jQuery&&(b=Array.prototype.slice.call(b));var g=[];b.forEach((e,a)=>{e.matches(".ai-ip-data")?g.push(e):(e=e.querySelectorAll(".ai-ip-data"),e.length&&e.forEach((c,h)=>{g.push(c)}))});b=g}if(b.length)if("undefined"!=typeof ai_ip_data)v(b);else if("undefined"==typeof ai_ip_data_requested){ai_ip_data_requested= !0;var l=ai_ajax_url+"?action=ai_ajax&ip-data="+("1"==ai_use_maxmind?"ip-address-country-city":"ip-address-country"),f=u("ai-debug-ip-address");null!=f&&(l+="&ai-debug-ip-address="+f);f=u("ai-debug-country");null!=f&&(l+="&ai-debug-country="+f);f={ai_check:ai_data_id,version:y()};var r=[],p;for(p in f){var q=encodeURIComponent(p),t=encodeURIComponent(f[p]);r.push(q+"="+t)}r=r.join("&");(async function(){return await (await fetch(l,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}, body:r})).text()})().then(e=>{ai_ip_data=e;if(""==e){var a="Ajax request returned empty data, geo-targeting disabled";console.error(a);"undefined"!=typeof ai_js_errors&&ai_js_errors.push([a,l,0])}else try{JSON.parse(e)}catch(c){a="Ajax call returned invalid data, geo-targeting disabled",console.error(a,e),"undefined"!=typeof ai_js_errors&&ai_js_errors.push([a,l,0])}b=document.querySelectorAll("div.ai-ip-data, meta.ai-ip-data");b.length&&v(b)}).catch(e=>{document.querySelectorAll("div.ai-ip-data").forEach((a, c)=>{a.style.display="none";a.style.visibility="";a.style.position="";a.style.width="";a.style.height="";a.style.zIndex="";a.classList.remove("ai-ip-data")})})}};(function(b){"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?b():document.addEventListener("DOMContentLoaded",b)})(function(){setTimeout(function(){ai_process_ip_addresses()},5)});function z(b){setTimeout(function(){"function"==typeof ai_process_rotations_in_element&&ai_process_rotations_in_element(b); "function"==typeof ai_process_lists&&ai_process_lists();"function"==typeof ai_process_ip_addresses&&ai_process_ip_addresses();"function"==typeof ai_process_filter_hooks&&ai_process_filter_hooks();"function"==typeof ai_adb_process_blocks&&ai_adb_process_blocks(b);"function"==typeof ai_process_impressions&&1==ai_tracking_finished&&ai_process_impressions();"function"==typeof ai_install_click_trackers&&1==ai_tracking_finished&&ai_install_click_trackers();"function"==typeof ai_install_close_buttons&&ai_install_close_buttons(document)}, 5)}}; ai_run_200441842383 = function(){ ai_document_write=document.write;document.write=function(a){"interactive"==document.readyState?(console.error("document.write called after page load: ",a),"undefined"!=typeof ai_js_errors&&ai_js_errors.push(["document.write called after page load",a,0])):ai_document_write.call(document,a)}; ai_insert_viewport_code ('ai-insert-4-50704696'); ai_insert ('after', '.entry-header', b64d ('PGRpdiBjbGFzcz0nY29kZS1ibG9jayBjb2RlLWJsb2NrLTMnIHN0eWxlPSdtYXJnaW46IDhweCBhdXRvOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGRpc3BsYXk6IGJsb2NrOyBjbGVhcjogYm90aDsnPgo8IS0tIGluZm9ybWF0ZWNkaWdpdGFsLXNreSAtLT4KPGlucyBjbGFzcz0iYWRzYnlnb29nbGUiCiAgICAgc3R5bGU9ImRpc3BsYXk6YmxvY2siCiAgICAgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi0yNzQwMTM0NjgxNDc1ODc4IgogICAgIGRhdGEtYWQtc2xvdD0iMTY0NDE5OTI4MSIKICAgICBkYXRhLWFkLWZvcm1hdD0iYXV0byIKICAgICBkYXRhLWZ1bGwtd2lkdGgtcmVzcG9uc2l2ZT0idHJ1ZSI+PC9pbnM+CjxzY3JpcHQ+CiAgICAgKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsKPC9zY3JpcHQ+PC9kaXY+Cg==')); }; if (document.readyState === 'complete' || (document.readyState !== 'loading' && !document.documentElement.doScroll)) ai_run_200441842383 (); else document.addEventListener ('DOMContentLoaded', ai_run_200441842383); ai_js_code = true; </script> <script>window.lazyLoadOptions=[{elements_selector:"img[data-lazy-src],.rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,callback_loaded:function(element){if(element.tagName==="IFRAME"&&element.dataset.rocketLazyload=="fitvidscompatible"){if(element.classList.contains("lazyloaded")){if(typeof window.jQuery!="undefined"){if(jQuery.fn.fitVids){jQuery(element).parent().fitVids()}}}}}},{elements_selector:".rocket-lazyload",data_src:"lazy-src",data_srcset:"lazy-srcset",data_sizes:"lazy-sizes",class_loading:"lazyloading",class_loaded:"lazyloaded",threshold:300,}];window.addEventListener('LazyLoad::Initialized',function(e){var lazyLoadInstance=e.detail.instance;if(window.MutationObserver){var observer=new MutationObserver(function(mutations){var image_count=0;var iframe_count=0;var rocketlazy_count=0;mutations.forEach(function(mutation){for(var i=0;i<mutation.addedNodes.length;i++){if(typeof mutation.addedNodes[i].getElementsByTagName!=='function'){continue} if(typeof mutation.addedNodes[i].getElementsByClassName!=='function'){continue} images=mutation.addedNodes[i].getElementsByTagName('img');is_image=mutation.addedNodes[i].tagName=="IMG";iframes=mutation.addedNodes[i].getElementsByTagName('iframe');is_iframe=mutation.addedNodes[i].tagName=="IFRAME";rocket_lazy=mutation.addedNodes[i].getElementsByClassName('rocket-lazyload');image_count+=images.length;iframe_count+=iframes.length;rocketlazy_count+=rocket_lazy.length;if(is_image){image_count+=1} if(is_iframe){iframe_count+=1}}});if(image_count>0||iframe_count>0||rocketlazy_count>0){lazyLoadInstance.update()}});var b=document.getElementsByTagName("body")[0];var config={childList:!0,subtree:!0};observer.observe(b,config)}},!1)</script><script data-no-minify="1" async src="https://informatecdigital.com/wp-content/plugins/wp-rocket/assets/js/lazyload/17.8.3/lazyload.min.js"></script><script type="text/rocketlazyloadscript"> /** * Des-Re-Valorizador * Código para hackear valoraciones * Quita el contenido de la columna Valoración de la tabla generada * por el plugin AAWP y asigna una valoración aleatoria entre 4, 4.5 y 5 estrellas. * */ let colRatings = document.querySelectorAll( 'td.aawp-table__td-rating' ); colRatings.forEach( col => col.innerHTML = addRating() ); let colRatings2 = document.querySelectorAll( 'span.aawp-product__no-rating' ); colRatings2.forEach( col => col.innerHTML = addRating() ); function addRating() { const ratings = [ 80, 90, 100 ]; const randomRating = ratings[ Math.floor( Math.random() * ratings.length ) ]; return '<span class="aawp-star-rating aawp-star-rating--small aawp-star-rating--v1"><span style="width: ' + randomRating + '%;"></span></span>'; } </script> <script>var rocket_beacon_data = {"ajax_url":"https:\/\/informatecdigital.com\/wp-admin\/admin-ajax.php","nonce":"65d4371936","url":"https:\/\/informatecdigital.com\/ia-local-y-automatizacion-agentes-seguridad-y-casos-reales","is_mobile":false,"width_threshold":1600,"height_threshold":700,"delay":500,"debug":null,"status":{"atf":true,"lrc":true,"preload_fonts":true,"preconnect_external_domain":true},"elements":"img, video, picture, p, main, div, li, svg, section, header, span","lrc_threshold":1800,"preload_fonts_exclusions":["api.fontshare.com","cdn.fontshare.com"],"processed_extensions":["woff2","woff","ttf"],"external_font_exclusions":[],"preconnect_external_domain_elements":["link","script","iframe"],"preconnect_external_domain_exclusions":["informatecdigital.com","com","hreflang","static.cloudflareinsights.com","rel=\"profile\"","rel=\"preconnect\"","rel=\"dns-prefetch\"","rel=\"icon\""]}</script><script data-name="wpr-wpr-beacon" src='https://informatecdigital.com/wp-content/plugins/wp-rocket/assets/js/wpr-beacon.min.js' async></script></body> </html> <!-- Performance optimized by Redis Object Cache. Află mai multe: https://wprediscache.com Au fost preluate 5085 obiecte (2 MB) din Redis folosind PhpRedis (v6.3.0). --> Performanță optimizată de WP Rocket. Află mai multe: https://wp-rocket.me -->