[{"data":1,"prerenderedAt":1084},["ShallowReactive",2],{"post:\u002Fblog\u002Fpi-hole-czyli-po-co-mi-prywatny-dns":3,"surround:\u002Fblog\u002Fpi-hole-czyli-po-co-mi-prywatny-dns":297,"related:\u002Fblog\u002Fpi-hole-czyli-po-co-mi-prywatny-dns":307,"categories":308,"post-author:maciek-walczak":379,"tags":393},{"id":4,"title":5,"author":6,"body":7,"categories":270,"comments":272,"cover":273,"coverAlt":5,"date":274,"description":275,"draft":276,"extension":277,"hidden":276,"meta":278,"navigation":272,"path":279,"readingTime":280,"redirectFrom":281,"seo":282,"sitemap":283,"slug":286,"stem":287,"tags":288,"updated":294,"wpId":295,"__hash__":296},"blog\u002Fblog\u002F2022-05-11-pi-hole-czyli-po-co-mi-prywatny-dns.md","Pi-hole – czyli po co mi prywatny DNS?","maciek-walczak",{"type":8,"value":9,"toc":256},"minimark",[10,27,32,49,52,55,59,62,67,70,73,76,85,88,92,95,98,101,109,112,115,118,122,125,129,132,135,139,142,145,179,188,192,199,202,221,224,227,231,238,241,244,247,250,253],[11,12,13,14,19,20,26],"p",{},"W poprzednim wpisie o ",[15,16,18],"a",{"href":17},"\u002Fblog\u002Fmodernizacja-domowej-sieci-komputerowej","modernizacji domowej sieci komputerowej"," wspomniałem w kilku zdaniach o własnym serwerze DNS w postaci ",[15,21,25],{"href":22,"rel":23},"https:\u002F\u002Fpi-hole.net\u002F",[24],"nofollow","Pi-hole"," zainstalowanym na RaspberryPi. Dziś chciałbym ten temat rozwinąć i opowiedzieć trochę więcej o możliwych zastosowaniach.",[28,29,31],"h2",{"id":30},"co-to-jest-dns","Co to jest DNS?",[33,34,35,42],"blockquote",{},[11,36,37,41],{},[38,39,40],"strong",{},"Domain Name System"," (DNS, pol. system nazw domen) – to hierarchiczny rozproszony system nazw sieciowych, który odpowiada na zapytania o nazwy domen.",[11,43,44],{},[15,45,48],{"href":46,"rel":47},"https:\u002F\u002Fpl.wikipedia.org\u002Fwiki\u002FDomain%5C_Name%5C_System",[24],"https:\u002F\u002Fpl.wikipedia.org\u002Fwiki\u002FDomain\\_Name\\_System",[11,50,51],{},"W Wikipedii opis jest oczywiście dużo dłuższy i bardziej szczegółowy, ale na nasze potrzeby wystarczy, że przyjmiemy iż DNS tłumaczy przyjazne nam nazwy domenowe na adresy IP – czyli jeśli wpisujemy w przeglądarce np. onet.pl, to komputer wysyła zapytanie do DNS, a ten odpowiada, że komputer przypisany do tej nazwy jest dostępny pod adresem: 75.2.92.173. To jest dopiero forma zrozumiała dla komputerów w komunikacji sieciowej. Działa to zarówno w skali micro jak i macro – czyli zarówno w małych sieciach domowych (nawet z 1 komputerem), jak i w globalnej sieci Internet.",[11,53,54],{},"Generalnie człowiek jest istotą dość leniwą z natury i lubi sobie ułatwiać życie – szybko okazało się, że dużo łatwiej i wygodniej jest zapamiętać przyjazną nazwę niż ciąg cyfr. Plus takiego rozwiązania jest też taki, że taka nazwa może być niezmienna (a także bardzo cenna), a adres IP przypisany do serwera może się bez problemu zmienić – nie wpłynie to na dostępność usługi (dopóki działa propagowanie tej informacji pomiędzy serwerami DNS).",[28,56,58],{"id":57},"po-co-mi-prywatny-dns","Po co mi prywatny DNS?",[11,60,61],{},"Powodów do posiadania własnego DNSa jest kilka.",[63,64,66],"h3",{"id":65},"_1-bezpieczeństwo-sieci-domowej","1. Bezpieczeństwo sieci domowej",[11,68,69],{},"W naszej rodzinie mamy 3 dzieci, w wieku aktualnie 10, 8 i 4 lata. Urządzeń podłączonych do internetu jest co najmniej kilkanaście: komputery, telefony, tablet, TV, konsola itp. W tak różnorodnym cyfrowym ekosystemie nie ma sposobu na jednolite zarządzanie treścią i włączenie ochrony rodzicielskiej. Różne systemy, różne platformy – ochrona jest realizowana różnie i nie zawsze skutecznie.",[11,71,72],{},"Zastosowanie własnego DNSa, przez który przepuszczamy CAŁY ruch sieciowy z domowej sieci LAN pozwala na globalne blokowanie niechcianych treści. Mam tu na myśli głownie pornografię, jak też inne potencjalnie niebezpieczne witryny.",[11,74,75],{},"Ochrona na poziomie DNS możliwa jest poprzez dodanie do czarnej listy konkretnych domen. Trudno to jednak robić ręcznie i samemu – dlatego są dostępne w internecie już przygotowane block-listy – spisy domen zawierające setki tysięcy pozycji. Wystarczy wczytać taką listę w Pi-hole i po problemie. Ja mam dodane 3 takie listy – w sumie blokuję ponad 600 000 adresów.",[77,78,82],"figure",{"height":79,"src":80,"width":81},127,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002Fwp\u002F2022\u002F05\u002FZrzut-ekranu-2022-05-11-o-20.38.37.png",1008,[11,83,84],{},"Statystyki blokowanych domen",[11,86,87],{},"Taka ochrona jest o tyle skuteczna, że próba wejścia z dowolnego urządzenia w sieci domowej na blokowany adres kończy się informacją o niedostępności strony. Log z takiego wydarzenia oczywiście się odkłada i jest dostępny dla administratora.",[63,89,91],{"id":90},"_2-blokada-niechcianych-reklam","2. Blokada niechcianych reklam",[11,93,94],{},"Dostępne w internecie block-listy są zwykle odpowiednio profilowane – jedne blokują treści NSFW (not safe for work), a inne serwery reklamowe. Blokowanie reklam ma swoje plusy i minusy – w przypadku jednak dzieci chroni je przed nawet przypadkowym kliknięciem w reklamę – po prostu takie treści w ogóle się nie załadują – ani w przeglądarce www, ani w aplikacjach mobilnych.",[11,96,97],{},"Taka blokada ruchu dotyczy też wszelkich usług zbierających statystyki. Dzięki temu unikamy zbędnego profilowania i przetwarzania naszych danych przez gigantów big-data.",[11,99,100],{},"Jeśli jednak z jakiegoś powodu chcemy widzieć reklamy lub odkładać informacje statystyczne, możemy ręcznie odblokować ruch na konkretne adresy – per urządzenie lub dla całej zdefiniowanej grupy urządzeń.",[77,102,106],{"height":103,"src":104,"width":105},725,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002Fwp\u002F2022\u002F05\u002FZrzut-ekranu-2022-05-11-o-20.46.55.png",1024,[11,107,108],{},"Onet.pl bez reklam",[11,110,111],{},"Efekt blokady jest dość spektakularny – nagle czołowe portale mają mnóstwo dziur w treści i jakoś szybciej się ładują 🙂",[11,113,114],{},"Ktoś może powiedzieć – to samo można zrobić adblokiem. Tak to prawda, ale nie do końca. Adbloki działają w przeglądarce www i tylko tam, gdzie możemy je zainstalować. O ile na komputerze to nie problem, to już na telefonie nie każda przeglądarka na to pozwoli, a na TV czy w aplikacjach mobilnych możemy o tym po prostu zapomnieć.",[11,116,117],{},"Prawda jest też taka, że nie wszystkie reklamy poprzez DNS zablokujemy – dlatego idealny jest tandem DNS + adblock (przez adblock rozumiem tu dowolne rozszerzenie blokujące reklamy, a nie konkretnie Adblock).",[63,119,121],{"id":120},"_3-ograniczenie-zbędnego-ruchu-sieciowego","3. Ograniczenie zbędnego ruchu sieciowego",[11,123,124],{},"Kolejną zaletą blokowania ruchu jest fakt, że wycięcie go już na etapie DNSa powoduje, że niechciane zasoby w ogóle nie są pobierane z sieci – w efekcie oszczędzamy transfer, a reszta zasobów wczytuje się dzięki temu szybciej. Ok, na szybkim domowym łączu może to nie być zauważalne, ale jednak zawsze lepiej jest nie ładować śmieci. Nazwijmy to takim eko-działaniem, zapewne można to przeliczyć na jakieś ilości zaoszczędzonego CO2…",[63,126,128],{"id":127},"_4-własne-domeny-w-sieci-lokalnej","4. Własne domeny w sieci lokalnej",[11,130,131],{},"Na ostatnim miejscu – choć z punktu widzenia programisty bardzo istotnym – jest fakt, że własny serwer DNS może służyć do definiowania własnych lokalnych domen. Oczywiście możemy to też zrobić w pliku \u002Fetc\u002Fhosts, ale to rozwiązanie działa w obrębie pojedynczego urządzenia, a wpis w DNS daje dostęp do takiej domeny w całej sieci lokalnej. W efekcie – jeśli wystawiamy na komputerze roboczym lub lokalnym serwerze jakąś stronę lub usługę – dodanie lokalnej domeny w DNS powoduje, że jest ona dostępna na każdym urządzeniu w naszej sieci.",[11,133,134],{},"Ja na przykład dodałem sobie domenę pi.local wskazującą na adres IP mojej malinki i dzięki temu nie muszę pamiętać tego adresu IP gdy łączę się po SSH do tej maszyny.",[28,136,138],{"id":137},"dlaczego-akurat-pi-hole","Dlaczego akurat Pi-hole?",[11,140,141],{},"Prawdę mówiąc trochę przez przypadek. Gdy szukałem na YT różnych filmików odnośnie szaf rackowych i organizacji własnej sieci domowej, trafiłem na kilka poświęconych właśnie Pi-hole. A że akurat miałem na stanie Raspberry Pi, które mogłem wykorzystać, to decyzja była szybka.",[11,143,144],{},"Zapewne jest więcej takich rozwiązań na własnego DNSa, ale Pi-hole ma swoje zalety:",[146,147,148,152,155,158,161,164,167,170,173,176],"ul",{},[149,150,151],"li",{},"jest dostępny na różne urządzenia\u002Fdystrybucje linuxa",[149,153,154],{},"można użyć instalacji Dockerowej, jak też gotowego obrazu",[149,156,157],{},"jest bardzo prosty w instalacji i obsłudze",[149,159,160],{},"posiada czytelny interfejs webowy dostępny z dowolnej przeglądarki w sieci lokalnej",[149,162,163],{},"pozwala na zbieranie logów i ich analizę",[149,165,166],{},"udostępnia statystyki ruchu",[149,168,169],{},"pozwala na łatwe zarządzanie widzianymi urządzeniami\u002Finterfejsami sieciowymi",[149,171,172],{},"pozwala na tworzenie grup i przypisywanie do nich poszczególnych klientów",[149,174,175],{},"pozwala na tworzenie white i black list, obsługuje importowanie list z internetu",[149,177,178],{},"pozwala na łatwe tworzenie własnych wpisów DNS (domena, CNAME)",[11,180,181],{},[182,183],"img",{"alt":184,"height":185,"src":186,"width":187},"",809,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002Fwp\u002F2022\u002F05\u002FZrzut-ekranu-2022-05-11-o-21.22.01.png",1004,[28,189,191],{"id":190},"konfiguracja-sieciowa","Konfiguracja sieciowa",[11,193,194,195],{},"Nie będę opisywać samej instalacji oprogramowania, bo może być ona różna w zależności gdzie i jak je instalujemy. Opis jest dostępny na stronie ",[15,196,197],{"href":197,"rel":198},"https:\u002F\u002Fgithub.com\u002Fpi-hole\u002Fpi-hole\u002F#one-step-automated-install",[24],[11,200,201],{},"Podstawowe założenia konfiguracyjne w domowej sieci są następujące:",[203,204,205,211,218],"ol",{},[149,206,207,208],{},"Urządzenie z Pi-hole MUSI mieć ",[38,209,210],{},"statyczny lokalny IP",[149,212,213,214,217],{},"W ustawieniach LAN routera ustawiamy ",[38,215,216],{},"DNS Override"," na adres naszego DNSa",[149,219,220],{},"Urządzenia klienckie w sieci ustawiamy albo na DHCP, albo na statyczny IP (tu może być też potrzebne ręczne zdefiniowanie adresu DNS – zależy od systemu i urządzenia)",[11,222,223],{},"Jeśli nasz router nie ma opcji DNS Override, wtedy koniecznie trzeba ręcznie ustawić jako jedyny DNS adres urządzenia z Pi-hole na każdym kliencie.",[11,225,226],{},"W ten sposób cały ruch lokalny sieciowy przepuścimy przez naszego DNSa.",[28,228,230],{"id":229},"czy-to-jest-100-pewne-rozwiązanie","Czy to jest 100% pewne rozwiązanie?",[11,232,233,234,237],{},"Jak zwykle odpowiedź brzmi: ",[38,235,236],{},"to zależy",".",[11,239,240],{},"W przypadku małego dziecka lub laika korzystającego z domowego WiFi lub po kablu sieciowym – raczej tak.",[11,242,243],{},"Jednak nie ma rozwiązań idealnych – jeśli dziecko ma telefon z kartą SIM i wyłączy WiFi – zaczyna korzystać z internetu za pomocą operatora GSM – czyli poza naszą kontrolą. Siłą rzeczy blokada na lokalnym DNS tu nie zadziała. No ale mówimy tu jednak o ochronie rodzicielskiej małych dzieci – żeby przypadkiem nie kliknęły w coś niebezpiecznego. Jeśli dziecko jest większe i zdecydowane dokopać się do takich treści, to taka blokada niewiele pomoże – użyje albo innego łącza albo urządzenia u kolegi. To już jednak kwestia bardziej zaufania i edukacji, a nie sztucznych zakazów.",[11,245,246],{},"Jeszcze jedną pułapką jest połączenie po VPN – w tym momencie korzystamy z zewnętrznego serwera i jego DNSa – tu też nasza lokalna ochrona nie zadziała. Warto o tym pamiętać pracując z domu i na firmowym VPNie…",[11,248,249],{},"Ochrona rodzicielska to znacznie szerszy temat – lokalny DNS z blokadą niebezpiecznych treści to tylko jeden klocek w calej układance.",[11,251,252],{},"W kolejnych wpisach postaram się nieco bardziej przybliżyć takie usługi jak Google Family, Microsoft Family i Apple Family. Różne rozwiązania, różne platformy i różne możliwości, ale użyte z głową pozwolą na znacznie większą kontrolę nad treściami jakie dziecko konsumuje – poczynając od ograniczeń wiekowych, poprzez limity czasowe, dostępne saldo na zakupy i finalnie kontrolę instalowanych aplikacji.",[11,254,255],{},"Ale o tym następnym razem…",{"title":184,"searchDepth":257,"depth":257,"links":258},2,[259,260,267,268,269],{"id":30,"depth":257,"text":31},{"id":57,"depth":257,"text":58,"children":261},[262,264,265,266],{"id":65,"depth":263,"text":66},3,{"id":90,"depth":263,"text":91},{"id":120,"depth":263,"text":121},{"id":127,"depth":263,"text":128},{"id":137,"depth":257,"text":138},{"id":190,"depth":257,"text":191},{"id":229,"depth":257,"text":230},[271],"artykuly",true,"https:\u002F\u002F5icqmonbzxnrw2bn.public.blob.vercel-storage.com\u002Fwp\u002F2022\u002F05\u002Fcropped-mug-2018-05-patreon.png","2022-05-11","W poprzednim wpisie o modernizacji domowej sieci komputerowej wspomniałem w kilku zdaniach o własnym serwerze DNS w postaci Pi-hole zainstalowanym na…",false,"md",{},"\u002Fblog\u002Fpi-hole-czyli-po-co-mi-prywatny-dns",7,[],{"title":5,"description":275},{"loc":279,"images":284},[285],{"loc":186},"pi-hole-czyli-po-co-mi-prywatny-dns","blog\u002F2022-05-11-pi-hole-czyli-po-co-mi-prywatny-dns",[289,290,291,292,293],"blokowanie-reklam","dns","ochrona-rodzicielska","pi-hole","prywatny-dns",null,537,"7XUD4uFd-E7Oy3dUnEpRLOFanWuei0yuIBNHMOksl2g",[298,302],{"title":299,"path":17,"stem":300,"description":301,"children":-1},"Modernizacja domowej sieci komputerowej","blog\u002F2022-04-18-modernizacja-domowej-sieci-komputerowej","Dziś temat nieco odbiegający od spraw związanych z typowym front-endem, ale jednak powiązany z moją pracą i domowym biurem. Postanowiłem zrobić porządek i…",{"title":303,"path":304,"stem":305,"description":306,"children":-1},"Proxmox na Lenovo M710q – czyli domowy serwer po taniości","\u002Fblog\u002Fproxmox-na-lenovo-m710q-czyli-domowy-serwer-po-taniosci","blog\u002F2022-06-05-proxmox-na-lenovo-m710q-czyli-domowy-serwer-po-taniosci","W artykule o modernizacji domowej sieci komputerowej pisałem o moich planach zakupu dedykowanego serwera NAS: Synology RX418. Serwer ten jest o tyle ciekawy…",[],[309,316,323,330,337,344,351,358,365,372],{"id":310,"description":294,"extension":311,"meta":312,"name":313,"slug":271,"stem":314,"__hash__":315},"categories\u002Fcategories\u002Fartykuly.yml","yml",{},"Artykuły","categories\u002Fartykuly","aw37OCuccDz54Q07CDyESiid8VqHzN1nGf8cMOk_mI0",{"id":317,"description":294,"extension":311,"meta":318,"name":319,"slug":320,"stem":321,"__hash__":322},"categories\u002Fcategories\u002Fdostepnosc-cyfrowa.yml",{},"Dostępność cyfrowa","dostepnosc-cyfrowa","categories\u002Fdostepnosc-cyfrowa","6m7Ag8ZZ1EzfdgLuQnAUAMmRcjkgb2tpFM9n1qxANOM",{"id":324,"description":294,"extension":311,"meta":325,"name":326,"slug":327,"stem":328,"__hash__":329},"categories\u002Fcategories\u002Fkonferencje.yml",{},"Konferencje","konferencje","categories\u002Fkonferencje","dQl4MW7163iEG-b7Cv6FJ2gUxLqnpaiMOLixCXvhHTw",{"id":331,"description":294,"extension":311,"meta":332,"name":333,"slug":334,"stem":335,"__hash__":336},"categories\u002Fcategories\u002Fkonfiguracja.yml",{},"Konfiguracja","konfiguracja","categories\u002Fkonfiguracja","ESTOPlJnBPnwuuqgOm7yqGAwgllsRJfSPVk22K_nQe0",{"id":338,"description":294,"extension":311,"meta":339,"name":340,"slug":341,"stem":342,"__hash__":343},"categories\u002Fcategories\u002Fnauka.yml",{},"Nauka","nauka","categories\u002Fnauka","3hQRPpuXqoNblW09Gj46arWFgH-3YfsMcgDyd4xLkN4",{"id":345,"description":294,"extension":311,"meta":346,"name":347,"slug":348,"stem":349,"__hash__":350},"categories\u002Fcategories\u002Fosx.yml",{},"OSX","osx","categories\u002Fosx","WW8-0hUIqcivgAUl8WQuAvJ3-xVLRLjLkmP00PP4eXY",{"id":352,"description":294,"extension":311,"meta":353,"name":354,"slug":355,"stem":356,"__hash__":357},"categories\u002Fcategories\u002Fpolecane.yml",{},"Polecane","polecane","categories\u002Fpolecane","ckLXqMEBUHLxZavR7FGvpQjhxc7ycP_sQ7myEw64R9I",{"id":359,"description":294,"extension":311,"meta":360,"name":361,"slug":362,"stem":363,"__hash__":364},"categories\u002Fcategories\u002Fpomoce.yml",{},"Pomoce","pomoce","categories\u002Fpomoce","3oKSrG-VgrihP1nofQwuUItxUsyzVfgEfTMF2vq7EIw",{"id":366,"description":294,"extension":311,"meta":367,"name":368,"slug":369,"stem":370,"__hash__":371},"categories\u002Fcategories\u002Fprezentacje.yml",{},"Prezentacje","prezentacje","categories\u002Fprezentacje","4L5LUH8zxl0qXRvdymYTwtrkuj1tQun8R7yYz_OfndE",{"id":373,"description":294,"extension":311,"meta":374,"name":375,"slug":376,"stem":377,"__hash__":378},"categories\u002Fcategories\u002Fvue-js.yml",{},"Vue.js","vue-js","categories\u002Fvue-js","wOIuiF3jWQ-Zph8v7hYGNuLdJbCx0VguVg0loyh-Mwk",{"id":380,"avatar":381,"bio":382,"extension":311,"intro":383,"links":384,"meta":389,"name":390,"slug":6,"stem":391,"__hash__":392},"authors\u002Fauthors\u002Fmaciek-walczak.yml","\u002Fmaciek.png","Front-End Developer, Team Leader, trener i wykładowca na kursach programowania.","Cześć! Nazywam się Maciek i od 2005 roku pracuję jako programista – najpierw Full Stack, a obecnie jako Front-End Developer i Team Leader. Udzielam się też jako trener – prowadzę zajęcia w ramach kursów dla osób, które chcą rozpocząć swoją przygodę z programowaniem. Miałem też okazję występować jako prelegent na spotkaniach z serii tech3camp. Zapraszam do lektury mojego bloga, gdzie staram się publikować swoje przemyślenia w tematach mniej lub bardziej związanych z front-endem.",[385],{"label":386,"url":387,"icon":388},"YouTube","https:\u002F\u002Fwww.youtube.com\u002Fchannel\u002FUCMG_PvHPcSe0TCmnIXvzB1Q","i-lucide-youtube",{},"Maciej Walczak","authors\u002Fmaciek-walczak","6aJnd9c5TZ6nsZd_ycEjnlIJ4stHJREQCAgigfsc_Hk",[394,400,407,414,421,428,434,440,447,454,461,468,475,482,489,496,502,509,515,521,527,533,539,545,551,557,564,570,576,582,588,595,601,608,615,621,628,635,641,646,651,657,664,671,677,684,691,696,703,710,716,722,729,734,741,748,754,761,766,772,779,785,792,798,804,810,816,822,828,835,841,847,854,861,868,875,881,887,894,901,908,914,921,928,935,941,948,954,961,968,974,980,986,993,999,1005,1012,1019,1026,1032,1038,1044,1050,1056,1063,1070,1077],{"id":395,"extension":311,"meta":396,"name":397,"slug":397,"stem":398,"__hash__":399},"tags\u002Ftags\u002Faccessibility.yml",{},"accessibility","tags\u002Faccessibility","luflFOwd8bzxVK2qeBv80Pzxhje6x-hbJYaDUihuwOk",{"id":401,"extension":311,"meta":402,"name":403,"slug":404,"stem":405,"__hash__":406},"tags\u002Ftags\u002Fangular.yml",{},"Angular","angular","tags\u002Fangular","z6SH0xA8FvB2X9kVmW-gtOdfx__mVrgIuA7HVCzfLjo",{"id":408,"extension":311,"meta":409,"name":410,"slug":411,"stem":412,"__hash__":413},"tags\u002Ftags\u002Fapache2.yml",{},"Apache2","apache2","tags\u002Fapache2","unCvGoDYof2-UiVE0lnN8eq5ru5roRg5_2mAo4TdEHk",{"id":415,"extension":311,"meta":416,"name":417,"slug":418,"stem":419,"__hash__":420},"tags\u002Ftags\u002Faplikacje-i-uslugi-internetowe.yml",{},"aplikacje i usługi internetowe","aplikacje-i-uslugi-internetowe","tags\u002Faplikacje-i-uslugi-internetowe","G2Vojqp3Zd7QgL3zFleglcNCFkjzkAAeDQCScU6P8bc",{"id":422,"extension":311,"meta":423,"name":424,"slug":425,"stem":426,"__hash__":427},"tags\u002Ftags\u002Fasynchronicznosc.yml",{},"asynchroniczność","asynchronicznosc","tags\u002Fasynchronicznosc","9RMRbHed9wQxDzVpEjO6Ay9zxWDCI0e4hE8F4zqGgj0",{"id":429,"extension":311,"meta":430,"name":431,"slug":431,"stem":432,"__hash__":433},"tags\u002Ftags\u002Fautomatyzacja.yml",{},"automatyzacja","tags\u002Fautomatyzacja","vfUpLN8opVGvKUQgjGwEYxKfsZsLo3jxneMF9YMMVD0",{"id":435,"extension":311,"meta":436,"name":437,"slug":289,"stem":438,"__hash__":439},"tags\u002Ftags\u002Fblokowanie-reklam.yml",{},"blokowanie reklam","tags\u002Fblokowanie-reklam","lq-tfiZ_uB_SerIlaIQFMOXvGIF3QoVVVyPxjwrEsR4",{"id":441,"extension":311,"meta":442,"name":443,"slug":444,"stem":445,"__hash__":446},"tags\u002Ftags\u002Fblue-media.yml",{},"Blue Media","blue-media","tags\u002Fblue-media","z8G577CxZ7uSy-oNOkWtn3XgbsbjeKhuNby5Q6BCRuM",{"id":448,"extension":311,"meta":449,"name":450,"slug":451,"stem":452,"__hash__":453},"tags\u002Ftags\u002Fchrome-extensions.yml",{},"chrome extensions","chrome-extensions","tags\u002Fchrome-extensions","Ip0fOTD9TMJiHcbXwgvAB2mFf_D1rlP5ZfkJG3GbCL0",{"id":455,"extension":311,"meta":456,"name":457,"slug":458,"stem":459,"__hash__":460},"tags\u002Ftags\u002Fcmr.yml",{},"CMR","cmr","tags\u002Fcmr","eNv_ncSDXVsAFBCM8A4uJqAJItqSOP29I1Kabpm-l3Y",{"id":462,"extension":311,"meta":463,"name":464,"slug":465,"stem":466,"__hash__":467},"tags\u002Ftags\u002Fcodersday.yml",{},"CodersDay","codersday","tags\u002Fcodersday","jLWUVGvGvi2irKFpFs0Ea6hkW71mLoiroOaGDcv1KWw",{"id":469,"extension":311,"meta":470,"name":471,"slug":472,"stem":473,"__hash__":474},"tags\u002Ftags\u002Fcoderslab.yml",{},"CodersLab","coderslab","tags\u002Fcoderslab","NQEy1mD_tk9h71yZtjSoC4LhXGE54DGYaYgj3JOoUqY",{"id":476,"extension":311,"meta":477,"name":478,"slug":479,"stem":480,"__hash__":481},"tags\u002Ftags\u002Fcolor-contrast-analyzer.yml",{},"Color Contrast Analyzer","color-contrast-analyzer","tags\u002Fcolor-contrast-analyzer","hGu3gO_owf9Tn4p5-FssJGVt4ToSsRfgjMjWdX2YgEI",{"id":483,"extension":311,"meta":484,"name":485,"slug":486,"stem":487,"__hash__":488},"tags\u002Ftags\u002Fcolor-contrast-checker.yml",{},"Color Contrast Checker","color-contrast-checker","tags\u002Fcolor-contrast-checker","w8QKUWUH691wTFtUWDJMjbCvC6zlFZo6j4UDDSg1NDY",{"id":490,"extension":311,"meta":491,"name":492,"slug":493,"stem":494,"__hash__":495},"tags\u002Ftags\u002Fconfrontjs.yml",{},"ConFrontJS","confrontjs","tags\u002Fconfrontjs","G4ePmrCbuLVA_ccxs7rcKSveQ3Kvn7y6-Ie9-H_5gpc",{"id":497,"extension":311,"meta":498,"name":499,"slug":499,"stem":500,"__hash__":501},"tags\u002Ftags\u002Fcss3.yml",{},"css3","tags\u002Fcss3","f5Gtp9yzvmyMSZ-IN--19c7OR-v5LXzdvhNaEmiOsuw",{"id":503,"extension":311,"meta":504,"name":505,"slug":506,"stem":507,"__hash__":508},"tags\u002Ftags\u002Fdesi-2020.yml",{},"DESI 2020","desi-2020","tags\u002Fdesi-2020","KeSFSj6VcXN0OciAUSTR8C1kiGUE3nLzGR1Pi5h_USE",{"id":510,"extension":311,"meta":511,"name":512,"slug":290,"stem":513,"__hash__":514},"tags\u002Ftags\u002Fdns.yml",{},"DNS","tags\u002Fdns","_TzsfpRL_ROm8MT5opDE1gg4GnuukbCyKY87W-IFl68",{"id":516,"extension":311,"meta":517,"name":518,"slug":320,"stem":519,"__hash__":520},"tags\u002Ftags\u002Fdostepnosc-cyfrowa.yml",{},"dostępność cyfrowa","tags\u002Fdostepnosc-cyfrowa","8xZ6WRsys1qnr-vWH_Y4Ne8ac2RBONWyLrrm31u00xI",{"id":522,"extension":311,"meta":523,"name":524,"slug":524,"stem":525,"__hash__":526},"tags\u002Ftags\u002Febook.yml",{},"ebook","tags\u002Febook","2Eqjl28-mK0fxpryAfGFMCel8MSByJVuQRsvy_S_cgY",{"id":528,"extension":311,"meta":529,"name":530,"slug":530,"stem":531,"__hash__":532},"tags\u002Ftags\u002Felgato.yml",{},"elgato","tags\u002Felgato","ys3dC5VhSFe1JP_z6vIBB8W8WSJmrbB2C3gwTjSkINM",{"id":534,"extension":311,"meta":535,"name":536,"slug":536,"stem":537,"__hash__":538},"tags\u002Ftags\u002Fevent.yml",{},"event","tags\u002Fevent","xcUCN7zoFrW8LCakRgx4s2r8YTGvycTdYQEyx_Yg7Fk",{"id":540,"extension":311,"meta":541,"name":542,"slug":542,"stem":543,"__hash__":544},"tags\u002Ftags\u002Ffacebook.yml",{},"facebook","tags\u002Ffacebook","xk1FSKdOP155PdsTUy6lbefdoi6pOrwzZtVO8B52vMo",{"id":546,"extension":311,"meta":547,"name":548,"slug":548,"stem":549,"__hash__":550},"tags\u002Ftags\u002Ffanpage.yml",{},"fanpage","tags\u002Ffanpage","RoMU1ceix1opnNG2LPoGzfOjVZE128Gmk12ZtDAQxrM",{"id":552,"extension":311,"meta":553,"name":554,"slug":554,"stem":555,"__hash__":556},"tags\u002Ftags\u002Ffront-end.yml",{},"front-end","tags\u002Ffront-end","xKzeWb2B7yr2l4WBGtpyUzD1T_sBK5i-sb21-MEDOWw",{"id":558,"extension":311,"meta":559,"name":560,"slug":561,"stem":562,"__hash__":563},"tags\u002Ftags\u002Ffront-end-developer.yml",{},"front-end developer","front-end-developer","tags\u002Ffront-end-developer","rHwMfWcbpd8wXqIVD1HzPWxBheHq8V_9TdHCHkz4Sp8",{"id":565,"extension":311,"meta":566,"name":567,"slug":567,"stem":568,"__hash__":569},"tags\u002Ftags\u002Ffrontend.yml",{},"frontend","tags\u002Ffrontend","CxnBlT8roa7DydGYGxgRVXKKTvJrkjMMQrvHZQMxukA",{"id":571,"extension":311,"meta":572,"name":573,"slug":573,"stem":574,"__hash__":575},"tags\u002Ftags\u002Fgamepad.yml",{},"gamepad","tags\u002Fgamepad","Gsi3HzAfw68AJR6qCt8qeuS7Euw22ZMSpnaKNw0QV-A",{"id":577,"extension":311,"meta":578,"name":579,"slug":579,"stem":580,"__hash__":581},"tags\u002Ftags\u002Fgoalkicker.yml",{},"goalkicker","tags\u002Fgoalkicker","L_zNfxJfO6lZOUiLaE5m_ggQUX0komBXXth0SrszFUk",{"id":583,"extension":311,"meta":584,"name":585,"slug":585,"stem":586,"__hash__":587},"tags\u002Ftags\u002Fhandbook.yml",{},"handbook","tags\u002Fhandbook","D0-VmrV-_WQQnlVvaePXWciWrJ8zuWNJoJULW_rOpmI",{"id":589,"extension":311,"meta":590,"name":591,"slug":592,"stem":593,"__hash__":594},"tags\u002Ftags\u002Fhtml-api.yml",{},"HTML API","html-api","tags\u002Fhtml-api","DBZv8DJ2hZR64GhJALF_-YzUG4mZWG9m2VZE76eM_wY",{"id":596,"extension":311,"meta":597,"name":598,"slug":598,"stem":599,"__hash__":600},"tags\u002Ftags\u002Fhtml5.yml",{},"html5","tags\u002Fhtml5","fcqPnoul30jPoEk6tO8K9WWwU8XyFz3N7-GAse2uwsQ",{"id":602,"extension":311,"meta":603,"name":604,"slug":605,"stem":606,"__hash__":607},"tags\u002Ftags\u002Finteligentny-dom.yml",{},"inteligentny dom","inteligentny-dom","tags\u002Finteligentny-dom","LwWCH_MYDfKSgfl9wyRWrWegvCgb2hAnXMlON3OQ0dk",{"id":609,"extension":311,"meta":610,"name":611,"slug":612,"stem":613,"__hash__":614},"tags\u002Ftags\u002Fjaws.yml",{},"Jaws","jaws","tags\u002Fjaws","aklZIj6z2_fzRQ_h9RtAfvXgDhHH9v02f224m6u8B7s",{"id":616,"extension":311,"meta":617,"name":618,"slug":618,"stem":619,"__hash__":620},"tags\u002Ftags\u002Fjunior.yml",{},"junior","tags\u002Fjunior","ega8Cjq-Z5swNxexQG-ROW8hvi0eaDCJj-l4ILDW-4U",{"id":622,"extension":311,"meta":623,"name":624,"slug":625,"stem":626,"__hash__":627},"tags\u002Ftags\u002Fkariera-w-it.yml",{},"kariera w IT","kariera-w-it","tags\u002Fkariera-w-it","tyqsMUw9eQaVgTnsZy9DZAHFQXZNe0sDZavdgJ0KTcA",{"id":629,"extension":311,"meta":630,"name":631,"slug":632,"stem":633,"__hash__":634},"tags\u002Ftags\u002Fkobiety-w-it.yml",{},"kobiety w IT","kobiety-w-it","tags\u002Fkobiety-w-it","Gm0D6QX7IUT1CDThH6LuhQtWOOWFop09QiDZwX_Tm7c",{"id":636,"extension":311,"meta":637,"name":638,"slug":638,"stem":639,"__hash__":640},"tags\u002Ftags\u002Fkonferencja.yml",{},"konferencja","tags\u002Fkonferencja","-n95F1XvVC7rR9O9sOxyxnKIJBm4i5o3Md_Q-Z72occ",{"id":642,"extension":311,"meta":643,"name":327,"slug":327,"stem":644,"__hash__":645},"tags\u002Ftags\u002Fkonferencje.yml",{},"tags\u002Fkonferencje","Qf_9S1xyR0mqWi1CzdU_iGIwcU8Z0ET_3JBEIOWhaxA",{"id":647,"extension":311,"meta":648,"name":334,"slug":334,"stem":649,"__hash__":650},"tags\u002Ftags\u002Fkonfiguracja.yml",{},"tags\u002Fkonfiguracja","r2NNwL_ZY7xvPy0pUN2IPK8U6qBXSfay_MZbt1FpC2I",{"id":652,"extension":311,"meta":653,"name":654,"slug":654,"stem":655,"__hash__":656},"tags\u002Ftags\u002Fkoronawirus.yml",{},"koronawirus","tags\u002Fkoronawirus","8DgCLCZ1uSF_kl0dmgiEVVM-KkZFxGpXJus3fmMH4sE",{"id":658,"extension":311,"meta":659,"name":660,"slug":661,"stem":662,"__hash__":663},"tags\u002Ftags\u002Fksiazki-programistyczne.yml",{},"książki programistyczne","ksiazki-programistyczne","tags\u002Fksiazki-programistyczne","DF1l0MrjODlaeQ0evw8JedIJJb3v4MpesV0Fi6HpViQ",{"id":665,"extension":311,"meta":666,"name":667,"slug":668,"stem":669,"__hash__":670},"tags\u002Ftags\u002Flenovo-m710q.yml",{},"lenovo m710q","lenovo-m710q","tags\u002Flenovo-m710q","H2DSlpm_FUSkpZXj5AZxrXjTzdGXcfWhIFXE8MAjoJw",{"id":672,"extension":311,"meta":673,"name":674,"slug":674,"stem":675,"__hash__":676},"tags\u002Ftags\u002Fmid.yml",{},"mid","tags\u002Fmid","61US_hzDYC5fw5yPUWya7ZNjc9fOddRUJyOJU3oVKaM",{"id":678,"extension":311,"meta":679,"name":680,"slug":681,"stem":682,"__hash__":683},"tags\u002Ftags\u002Fmini-pc.yml",{},"mini pc","mini-pc","tags\u002Fmini-pc","zCEZkcdMTwLbaNGmGiT8qGCtnECxEafkiJ-glDrozw0",{"id":685,"extension":311,"meta":686,"name":687,"slug":688,"stem":689,"__hash__":690},"tags\u002Ftags\u002Fnas.yml",{},"NAS","nas","tags\u002Fnas","RsN64SVV6BmbaR7e4pVVvGgbxQ0q8ihj5J4b_1oPH2k",{"id":692,"extension":311,"meta":693,"name":341,"slug":341,"stem":694,"__hash__":695},"tags\u002Ftags\u002Fnauka.yml",{},"tags\u002Fnauka","bMIyGRMcT5SRj0bxdrER6sibTNLAHr1enmElQI67jTo",{"id":697,"extension":311,"meta":698,"name":699,"slug":700,"stem":701,"__hash__":702},"tags\u002Ftags\u002Fnauka-programowania.yml",{},"nauka programowania","nauka-programowania","tags\u002Fnauka-programowania","M04c5RtH0Fu4ikOuW9fLy2-g2YBIAX0Yj9SHKEwOuUg",{"id":704,"extension":311,"meta":705,"name":706,"slug":707,"stem":708,"__hash__":709},"tags\u002Ftags\u002Fnvda.yml",{},"NVDA","nvda","tags\u002Fnvda","AS3XsW73sA9-MAI4JVv4y7luo2oGkpXrGptc51MKLQY",{"id":711,"extension":311,"meta":712,"name":713,"slug":291,"stem":714,"__hash__":715},"tags\u002Ftags\u002Fochrona-rodzicielska.yml",{},"ochrona rodzicielska","tags\u002Fochrona-rodzicielska","DZHsS1aBzb6OmeQFhCXy3Qu3QUMHsrbbN62bXmyBB0Q",{"id":717,"extension":311,"meta":718,"name":719,"slug":719,"stem":720,"__hash__":721},"tags\u002Ftags\u002Foptimization.yml",{},"optimization","tags\u002Foptimization","fJedkuv-GIoYXYs-z7AFgjvCxunavWHOWZDesN1EgFU",{"id":723,"extension":311,"meta":724,"name":725,"slug":726,"stem":727,"__hash__":728},"tags\u002Ftags\u002Forganizacja-pracy.yml",{},"organizacja pracy","organizacja-pracy","tags\u002Forganizacja-pracy","IJWHAuqRIlzOIgQbp6B0dYJLpApXOyvDii-k8n_CUCQ",{"id":730,"extension":311,"meta":731,"name":347,"slug":348,"stem":732,"__hash__":733},"tags\u002Ftags\u002Fosx.yml",{},"tags\u002Fosx","QymfouNjzTcNrsPkrZeaPTZdKpMsdYilpn7HRI1FxQQ",{"id":735,"extension":311,"meta":736,"name":737,"slug":738,"stem":739,"__hash__":740},"tags\u002Ftags\u002Fpanel-macro.yml",{},"panel macro","panel-macro","tags\u002Fpanel-macro","WrhWywY5PTfhm7n_TuxTZEWwebeWKfYiQf6n6nh19t4",{"id":742,"extension":311,"meta":743,"name":744,"slug":745,"stem":746,"__hash__":747},"tags\u002Ftags\u002Fpassword-manager.yml",{},"password manager","password-manager","tags\u002Fpassword-manager","viAfKlsGbzjczJJrb8pwaB4tInjCfLzynbSm-GRQz4Y",{"id":749,"extension":311,"meta":750,"name":751,"slug":751,"stem":752,"__hash__":753},"tags\u002Ftags\u002Fpdf.yml",{},"pdf","tags\u002Fpdf","UTB02hK82S5LzDB9kqZWrDRFb8SYzHfFRgCsqFwdBcE",{"id":755,"extension":311,"meta":756,"name":757,"slug":758,"stem":759,"__hash__":760},"tags\u002Ftags\u002Fphp.yml",{},"PHP","php","tags\u002Fphp","Id59psmnOEw6xZ04LGSXqaCSXElgAZVfZdIWk4TTMmU",{"id":762,"extension":311,"meta":763,"name":292,"slug":292,"stem":764,"__hash__":765},"tags\u002Ftags\u002Fpi-hole.yml",{},"tags\u002Fpi-hole","1YJ1tr1Tr23ItFg6rYXw6iKjvPJCdYb2MB_5W1FdZNw",{"id":767,"extension":311,"meta":768,"name":769,"slug":769,"stem":770,"__hash__":771},"tags\u002Ftags\u002Fpixel-mania.yml",{},"pixel-mania","tags\u002Fpixel-mania","N9WX_K8mFmAndjRdRzZX1PonLHyneP4XCJe9kQlGOpY",{"id":773,"extension":311,"meta":774,"name":775,"slug":776,"stem":777,"__hash__":778},"tags\u002Ftags\u002Fplaywright.yml",{},"PlayWright","playwright","tags\u002Fplaywright","fZAbd5k3k85yeGire7iJzvnRk00Wfww8OTu1h6rEuZM",{"id":780,"extension":311,"meta":781,"name":782,"slug":782,"stem":783,"__hash__":784},"tags\u002Ftags\u002Fpraca.yml",{},"praca","tags\u002Fpraca","ra3_bHnZqDrux1PiJ_pW6eqfX7l-uIFUPUhPqaq5cf4",{"id":786,"extension":311,"meta":787,"name":788,"slug":789,"stem":790,"__hash__":791},"tags\u002Ftags\u002Fpraca-zdalna.yml",{},"praca zdalna","praca-zdalna","tags\u002Fpraca-zdalna","HD5EOgzs-b3t5KIBRxlWQr0FuQVJ4N7eLQJV77YWcqc",{"id":793,"extension":311,"meta":794,"name":795,"slug":795,"stem":796,"__hash__":797},"tags\u002Ftags\u002Fprezentacja.yml",{},"prezentacja","tags\u002Fprezentacja","eiP5x-l400TtOy-gxO3TyOqYwcD4LP65jJ--7H-jyng",{"id":799,"extension":311,"meta":800,"name":801,"slug":801,"stem":802,"__hash__":803},"tags\u002Ftags\u002Fprivacy.yml",{},"privacy","tags\u002Fprivacy","Ln1AAZQ3fPOzuMJB0BWwUsjwaWTI7cFtzI6TaPrvKXc",{"id":805,"extension":311,"meta":806,"name":807,"slug":807,"stem":808,"__hash__":809},"tags\u002Ftags\u002Fprogramowanie.yml",{},"programowanie","tags\u002Fprogramowanie","EUO8owu6V8cJivzRtVvD12KgW4ojOCp-N7aI4euHEa0",{"id":811,"extension":311,"meta":812,"name":813,"slug":813,"stem":814,"__hash__":815},"tags\u002Ftags\u002Fproxmox.yml",{},"proxmox","tags\u002Fproxmox","2AZfZmPZffxT3YuTVGHbsGvqKzpNRfot-OjFS6kkSYs",{"id":817,"extension":311,"meta":818,"name":819,"slug":293,"stem":820,"__hash__":821},"tags\u002Ftags\u002Fprywatny-dns.yml",{},"prywatny DNS","tags\u002Fprywatny-dns","kq-27-SNzP2YitFANg5iLgu0kdzyufoiOCLYApAehUc",{"id":823,"extension":311,"meta":824,"name":825,"slug":825,"stem":826,"__hash__":827},"tags\u002Ftags\u002Fprzekwalifikowanie.yml",{},"przekwalifikowanie","tags\u002Fprzekwalifikowanie","TqQNM6H8dfkRMTjNT8ZWyzynSMGeFjxseCt7-fZq0nA",{"id":829,"extension":311,"meta":830,"name":831,"slug":832,"stem":833,"__hash__":834},"tags\u002Ftags\u002Freact.yml",{},"React","react","tags\u002Freact","nXIcvF19iFz3UIXk2jbbJKRrr1_S9NLNYH3PUX_a2C4",{"id":836,"extension":311,"meta":837,"name":838,"slug":838,"stem":839,"__hash__":840},"tags\u002Ftags\u002Fredux.yml",{},"redux","tags\u002Fredux","CYtiFQKJae6MZE4Z_2qWwt7OGctPAutMzfD9f35a6-A",{"id":842,"extension":311,"meta":843,"name":844,"slug":844,"stem":845,"__hash__":846},"tags\u002Ftags\u002Fretro.yml",{},"retro","tags\u002Fretro","5AjMkMU44tDn8TV2FSTzbrvxoE7rplMmkLej7E-RIYM",{"id":848,"extension":311,"meta":849,"name":850,"slug":851,"stem":852,"__hash__":853},"tags\u002Ftags\u002Fretropi.yml",{},"RetroPi","retropi","tags\u002Fretropi","v_z0VjrAHiqYkzENB2DRMmo-V9VwE-8D2V_pRT-EBxw",{"id":855,"extension":311,"meta":856,"name":857,"slug":858,"stem":859,"__hash__":860},"tags\u002Ftags\u002Frozwoj.yml",{},"rozwój","rozwoj","tags\u002Frozwoj","RkL4It2FQnfcyHt1gNPjQ7cLqxrpgMy9ewFnPkF5sms",{"id":862,"extension":311,"meta":863,"name":864,"slug":865,"stem":866,"__hash__":867},"tags\u002Ftags\u002Frzemieslnik.yml",{},"rzemieślnik","rzemieslnik","tags\u002Frzemieslnik","fLVgsq47mga12X6gNKQ6QM5tpWdwICnLJwfSDwk1xEE",{"id":869,"extension":311,"meta":870,"name":871,"slug":872,"stem":873,"__hash__":874},"tags\u002Ftags\u002Fsamodzielnosc.yml",{},"samodzielność","samodzielnosc","tags\u002Fsamodzielnosc","mu6DqJVN-dhRiXCnV4A5ewTRx_ndkWH_pu7Fdf7n6XI",{"id":876,"extension":311,"meta":877,"name":878,"slug":878,"stem":879,"__hash__":880},"tags\u002Ftags\u002Fselfhosting.yml",{},"selfhosting","tags\u002Fselfhosting","ScAMu2i5h-QpOOGEuIvBN9fQn0ZmfyYfvD-561cUzKs",{"id":882,"extension":311,"meta":883,"name":884,"slug":884,"stem":885,"__hash__":886},"tags\u002Ftags\u002Fsenior.yml",{},"senior","tags\u002Fsenior","DFUFihqxLSI2g34_DFYLVSXQnP79966itG8NnBs44TE",{"id":888,"extension":311,"meta":889,"name":890,"slug":891,"stem":892,"__hash__":893},"tags\u002Ftags\u002Fsieci-komputerowe.yml",{},"sieci komputerowe","sieci-komputerowe","tags\u002Fsieci-komputerowe","lziU51DXijHvzSYVgbK5r_aRCBS9KLdgU5FWjE3pD4s",{"id":895,"extension":311,"meta":896,"name":897,"slug":898,"stem":899,"__hash__":900},"tags\u002Ftags\u002Fsmart-home.yml",{},"smart home","smart-home","tags\u002Fsmart-home","wjGS16vdTWjBvPIfyZ7Jjv2rSAUfgKxYQTfVmfE_oNc",{"id":902,"extension":311,"meta":903,"name":904,"slug":905,"stem":906,"__hash__":907},"tags\u002Ftags\u002Fsmr.yml",{},"SMR","smr","tags\u002Fsmr","hd_86HRNRQ5vp9GFDgvFR3iXcRs57XNvESz05e-vh-o",{"id":909,"extension":311,"meta":910,"name":911,"slug":911,"stem":912,"__hash__":913},"tags\u002Ftags\u002Fspotkanie.yml",{},"spotkanie","tags\u002Fspotkanie","G-4xZsmDWDaZnA1t7fWrsGY0CvA2PWBRch_ISxgV3eY",{"id":915,"extension":311,"meta":916,"name":917,"slug":918,"stem":919,"__hash__":920},"tags\u002Ftags\u002Fstore-management.yml",{},"store management","store-management","tags\u002Fstore-management","BDlb8jliEvzP4ByR_nwh5YcPAphegyjsvxnwheppvwM",{"id":922,"extension":311,"meta":923,"name":924,"slug":925,"stem":926,"__hash__":927},"tags\u002Ftags\u002Fstream-deck.yml",{},"stream deck","stream-deck","tags\u002Fstream-deck","ETKaTcPMSGRXiF8fX9HaCChrkWvjK1Qhc8DCtKNRLFo",{"id":929,"extension":311,"meta":930,"name":931,"slug":932,"stem":933,"__hash__":934},"tags\u002Ftags\u002Fstudia-podyplomowe.yml",{},"studia podyplomowe","studia-podyplomowe","tags\u002Fstudia-podyplomowe","CllbIMrpHwk7nHpdgNS5EJlfoY37AYtu6D28xcL7B8Y",{"id":936,"extension":311,"meta":937,"name":938,"slug":938,"stem":939,"__hash__":940},"tags\u002Ftags\u002Fswitch.yml",{},"switch","tags\u002Fswitch","PqeuQm8ai89DcVFTdIBBYnrs6IVq0oystkF3JdV2cbQ",{"id":942,"extension":311,"meta":943,"name":944,"slug":945,"stem":946,"__hash__":947},"tags\u002Ftags\u002Fszafa-rack.yml",{},"szafa rack","szafa-rack","tags\u002Fszafa-rack","Tdq-0TqjtHfOvyhnHIwrDsPzQYMI6Rkb3iJBoqgudAc",{"id":949,"extension":311,"meta":950,"name":951,"slug":951,"stem":952,"__hash__":953},"tags\u002Ftags\u002Fszkolenia.yml",{},"szkolenia","tags\u002Fszkolenia","Ty9KLofCdboQngGvYkJOH1YZpBX-E3_Y1SLrdGucptY",{"id":955,"extension":311,"meta":956,"name":957,"slug":958,"stem":959,"__hash__":960},"tags\u002Ftags\u002Fszkolenie-front-end.yml",{},"szkolenie front-end","szkolenie-front-end","tags\u002Fszkolenie-front-end","yv2XwBbhwF8m1vceHXglBt_lax32HDj4iqYS8ymfIpM",{"id":962,"extension":311,"meta":963,"name":964,"slug":965,"stem":966,"__hash__":967},"tags\u002Ftags\u002Fszkolnictwo-zawodowe.yml",{},"szkolnictwo zawodowe","szkolnictwo-zawodowe","tags\u002Fszkolnictwo-zawodowe","wHy70cvPzW-iXNTesa8dnmsUN3GZ6RQ_08rvp2jcr-o",{"id":969,"extension":311,"meta":970,"name":971,"slug":971,"stem":972,"__hash__":973},"tags\u002Ftags\u002Ftech3camp.yml",{},"tech3camp","tags\u002Ftech3camp","2xN4prsqldeVcTsCibyLj-T84k_q27SekfsQ9H3ml6w",{"id":975,"extension":311,"meta":976,"name":977,"slug":977,"stem":978,"__hash__":979},"tags\u002Ftags\u002Ftestowanie.yml",{},"testowanie","tags\u002Ftestowanie","bQ7J7HLrZe6c9Me3bn_3VCbshav5tsqNTBIwd0xkRaQ",{"id":981,"extension":311,"meta":982,"name":983,"slug":983,"stem":984,"__hash__":985},"tags\u002Ftags\u002Ftesty.yml",{},"testy","tags\u002Ftesty","JDNtVkIDLY5e-th779qHOQFRrQ6Ywoq8us2HXlBz9PY",{"id":987,"extension":311,"meta":988,"name":989,"slug":990,"stem":991,"__hash__":992},"tags\u002Ftags\u002Ftruenas.yml",{},"TrueNas","truenas","tags\u002Ftruenas","jGviBDrcOLcc4LIDAMUINs_clt6cqQIbnmCsGjlBoEU",{"id":994,"extension":311,"meta":995,"name":996,"slug":996,"stem":997,"__hash__":998},"tags\u002Ftags\u002Ftuya.yml",{},"tuya","tags\u002Ftuya","MwpPoYlxeAiebaRVNdxytmFq9k0BpiTEbiEvwh4pfq4",{"id":1000,"extension":311,"meta":1001,"name":1002,"slug":1002,"stem":1003,"__hash__":1004},"tags\u002Ftags\u002Fublock.yml",{},"ublock","tags\u002Fublock","EPnKEvKkfWB2hbpkolTIytNQ9c12jSrnctf8CWEVbUM",{"id":1006,"extension":311,"meta":1007,"name":1008,"slug":1009,"stem":1010,"__hash__":1011},"tags\u002Ftags\u002Fvirtual-host.yml",{},"virtual host","virtual-host","tags\u002Fvirtual-host","Ru2r4wU7txKcWDbL3hq2QGx7v8gKwTJE25BItrzjqCQ",{"id":1013,"extension":311,"meta":1014,"name":1015,"slug":1016,"stem":1017,"__hash__":1018},"tags\u002Ftags\u002Fvoiceover.yml",{},"VoiceOver","voiceover","tags\u002Fvoiceover","7_jZqkfOk163vezQCATCpkIhdxmxfXe5dsLjgORGRWc",{"id":1020,"extension":311,"meta":1021,"name":1022,"slug":1023,"stem":1024,"__hash__":1025},"tags\u002Ftags\u002Fvue.yml",{},"Vue","vue","tags\u002Fvue","9ztytvQnoFLSGIXCwVz0HDl1yEBgdxBtwfIb4xxED8w",{"id":1027,"extension":311,"meta":1028,"name":1029,"slug":376,"stem":1030,"__hash__":1031},"tags\u002Ftags\u002Fvue-js.yml",{},"vue.js","tags\u002Fvue-js","ZEglZJ4b32MxGRUCWg3ij0_Sz-YkJDI60yOFUG3Dip8",{"id":1033,"extension":311,"meta":1034,"name":1035,"slug":1035,"stem":1036,"__hash__":1037},"tags\u002Ftags\u002Fvuejs.yml",{},"vuejs","tags\u002Fvuejs","Qz3030ujqXE_33tL5hbF8n1MGIh1jpRtdzXVrQT79jA",{"id":1039,"extension":311,"meta":1040,"name":1041,"slug":1041,"stem":1042,"__hash__":1043},"tags\u002Ftags\u002Fvuenews.yml",{},"vuenews","tags\u002Fvuenews","5I7T-cG9aZzeR62I-tWYDruQvjkSbRxtAeDI9otWrR8",{"id":1045,"extension":311,"meta":1046,"name":1047,"slug":1047,"stem":1048,"__hash__":1049},"tags\u002Ftags\u002Fvuetoolbox.yml",{},"vuetoolbox","tags\u002Fvuetoolbox","y5NXiZfQviI16DIkNjTxSwnLQIyrXs7OBZjVY1IyNmk",{"id":1051,"extension":311,"meta":1052,"name":1053,"slug":1053,"stem":1054,"__hash__":1055},"tags\u002Ftags\u002Fvuex.yml",{},"vuex","tags\u002Fvuex","ksF82HLoN49mJn2cJ0DhYz_Dt6mlrJDT82Ufu6QKmKQ",{"id":1057,"extension":311,"meta":1058,"name":1059,"slug":1060,"stem":1061,"__hash__":1062},"tags\u002Ftags\u002Fweb-development.yml",{},"web development","web-development","tags\u002Fweb-development","144N0DLmtEIX98zdSuOWIsCZYMHyxStp8_ZksWK2M7E",{"id":1064,"extension":311,"meta":1065,"name":1066,"slug":1067,"stem":1068,"__hash__":1069},"tags\u002Ftags\u002Fwladyslawowo.yml",{},"Władysławowo","wladyslawowo","tags\u002Fwladyslawowo","LgrtfAzosbyNoEeZ6_GWMrueP29fN7fPL3N5Kp5Wm4w",{"id":1071,"extension":311,"meta":1072,"name":1073,"slug":1074,"stem":1075,"__hash__":1076},"tags\u002Ftags\u002Fwork-life-balance.yml",{},"work-life balance","work-life-balance","tags\u002Fwork-life-balance","hXw9EMtMUVm71LSUBz1o6Ttz7xlyrsnMo-VOEfMJwr0",{"id":1078,"extension":311,"meta":1079,"name":1080,"slug":1081,"stem":1082,"__hash__":1083},"tags\u002Ftags\u002Fxbox.yml",{},"XBOX","xbox","tags\u002Fxbox","tDsqBFEx88ZSQxV8Q78dFlkSdjNdQOwFU4jn0D2wcYQ",1790284814604]