1<!DOCTYPE html> 2<html dir='ltr' lang='en' xmlns='http://www.w3.org/1999/xhtml' xmlns:b='http://www.google.com/2005/gml/b' xmlns:data='http://www.google.com/2005/gml/data' xmlns:expr='http://www.google.com/2005/gml/expr'> 3<head> 4<meta content='width=device-width, initial-scale=1' name='viewport'/> 5<title>H4hacks</title> 6<meta content='text/html; charset=UTF-8' http-equiv='Content-Type'/> 7<!-- Chrome, Firefox OS and Opera --> 8<meta content='#444444' name='theme-color'/> 9<!-- Windows Phone --> 10<meta content='#444444' name='msapplication-navbutton-color'/> 11<meta content='blogger' name='generator'/> 12<link href='https://www.h4hacks.com/favicon.ico' rel='icon' type='image/x-icon'/> 13<link href='https://www.h4hacks.com/2026/' rel='canonical'/> 14<link rel="alternate" type="application/atom+xml" title="H4hacks - Atom" href="https://www.h4hacks.com/feeds/posts/default" /> 15<link rel="alternate" type="application/rss+xml" title="H4hacks - RSS" href="https://www.h4hacks.com/feeds/posts/default?alt=rss" /> 16<link rel="service.post" type="application/atom+xml" title="H4hacks - Atom" href="https://www.blogger.com/feeds/6383593460046105926/posts/default" /> 17<!--Can't find substitution for tag [blog.ieCssRetrofitLinks]--> 18<meta content='Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security' name='description'/> 19<meta content='https://www.h4hacks.com/2026/' property='og:url'/> 20<meta content='H4hacks' property='og:title'/> 21<meta content='Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security' property='og:description'/> 22<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1200-h630-n-k-no-nu' property='og:image'/> 23<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w1200-h630-n-k-no-nu' property='og:image'/> 24<meta content='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w1200-h630-n-k-no-nu' property='og:image'/> 25<style type='text/css'>@font-face{font-family:'Damion';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZkZGw2ATE.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Damion';font-style:normal;font-weight:400;font-display:swap;src:url(//fonts.gstatic.com/s/damion/v15/hv-XlzJ3KEUe_YZkamw2.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDTbtPY_Q.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDYbtPY_Q.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDZbtPY_Q.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Playfair Display';font-style:normal;font-weight:900;font-display:swap;
25src:url(//fonts.gstatic.com/s/playfairdisplay/v40/nuFvD-vYSZviVYUb_rj3ij__anPXJzDwcbmjWBN2PKfsunDXbtM.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAX-k2Qn.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAz-k2Qn.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAT-k2Qn.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAv-k2Qn.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuHT-k2Qn.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuGb-k2Qn.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAf-k2Qn.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAb-k2Qn.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:italic;font-weight:300;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFOKCnqEu92Fr1Mu53ZEC9_Vu3r1gIhOszmOClHrs6ljXfMMLt_QuAj-kw.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3GUBGEe.woff2)format('woff2');unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3iUBGEe.woff2)format('woff2');unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3CUBGEe.woff2)format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3-UBGEe.woff2)format('woff2');unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMawCUBGEe.woff2)format('woff2');unicode-range:U+0302-0303,U+0305,U+0307-0308,U+0310,U+0312,U+0315,U+031A,U+0326-0327,U+032C,U+032F-0330,U+0332-0333,U+0338,U+033A,U+0346,U+034D,U+0391-03A1,U+03A3-03A9,U+03B1-03C9,U+03D1,U+03D5-03D6,U+03F0-03F1,U+03F4-03F5,U+2016-2017,U+2034-2038,U+203C,U+2040,U+2043,U+2047,U+2050,U+2057,U+205F,U+2070-2071,U+2074-208E,U+2090-209C,U+20D0-20DC,U+20E1,U+20E5-20EF,U+2100-2112,U+2114-2115,U+2117-2121,U+2123-214F,U+2190,U+2192,U+2194-21AE,U+21B0-21E5,U+21F1-21F2,U+21F4-2211,U+2213-2214,U+2216-22FF,U+2308-230B,U+2310,U+2319,U+231C-2321,U+2336-237A,U+237C,U+2395,U+239B-23B7,U+23D0,U+23DC-23E1,U+2474-2475,U+25AF,U+25B3,U+25B7,U+25BD,U+25C1,U+25CA,U+25CC,U+25FB,U+266D-266F,U+27C0-27FF,U+2900-2AFF,U+2B0E-2B11,U+2B30-2B4C,U+2BFE,U+3030,U+FF5B,U+FF5D,U+1D400-1D7FF,U+1EE00-1EEFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMaxKUBGEe.woff2)format('woff2');unicode-range:U+0001-000C,U+000E-001F,U+007F-009F,U+20DD-20E0,U+20E2-20E4,U+2150-218F,U+2190,U+2192,U+2194-2199,U+21AF,U+21E6-21F0,U+21F3,U+2218-2219,U+2299,U+22C4-22C6,U+2300-243F,U+2440-244A,U+2460-24FF,U+25A0-27BF,U+2800-28FF,U+2921-2922,U+2981,U+29BF,U+29EB,U+2B00-2BFF,U+4DC0-4DFF,U+FFF9-FFFB,U+10140-1018E,U+10190-1019C,U+101A0,U+101D0-101FD,U+102E0-102FB,U+10E60-10E7E,U+1D2C0-1D2D3,U+1D2E0-1D37F,U+1F000-1F0FF,U+1F100-1F1AD,U+1F1E6-1F1FF,U+1F30D-1F30F,U+1F315,U+1F31C,U+1F31E,U+1F320-1F32C,U+1F336,U+1F378,U+1F37D,U+1F382,U+1F393-1F39F,U+1F3A7-1F3A8,U+1F3AC-1F3AF,U+1F3C2,U+1F3C4-1F3C6,U+1F3CA-1F3CE,U+1F3D4-1F3E0,U+1F3ED,U+1F3F1-1F3F3,U+1F3F5-1F3F7,U+1F408,U+1F415,U+1F41F,U+1F426,U+1F43F,U+1F441-1F442,U+1F444,U+1F446-1F449,U+1F44C-1F44E,U+1F453,U+1F46A,U+1F47D,U+1F4A3,U+1F4B0,U+1F4B3,U+1F4B9,U+1F4BB,U+1F4BF,U+1F4C8-1F4CB,U+1F4D6,U+1F4DA,U+1F4DF,U+1F4E3-1F4E6,U+1F4EA-1F4ED,U+1F4F7,U+1F4F9-1F4FB,U+1F4FD-1F4FE,U+1F503,U+1F507-1F50B,U+1F50D,U+1F512-1F513,U+1F53E-1F54A,U+1F54F-1F5FA,U+1F610,U+1F650-1F67F,U+1F687,U+1F68D,U+1F691,U+1F694,U+1F698,U+1F6AD,U+1F6B2,U+1F6B9-1F6BA,U+1F6BC,U+1F6C6-1F6CF,U+1F6D3-1F6D7,U+1F6E0-1F6EA,U+1F6F0-1F6F3,U+1F6F7-1F6FC,U+1F700-1F7FF,U+1F800-1F80B,U+1F810-1F847,U+1F850-1F859,U+1F860-1F887,U+1F890-1F8AD,U+1F8B0-1F8BB,U+1F8C0-1F8C1,U+1F900-1F90B,U+1F93B,U+1F946,U+1F984,U+1F996,U+1F9E9,U+1FA00-1FA6F,U+1FA70-1FA7C,U+1FA80-1FA89,U+1FA8F-1FAC6,U+1FACE-1FADC,U+1FADF-1FAE9,U+1FAF0-1FAF8,U+1FB00-1FBFF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;
25src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3OUBGEe.woff2)format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3KUBGEe.woff2)format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(//fonts.gstatic.com/s/roboto/v51/KFO7CnqEu92Fr1ME7kSn66aGLdTylUAMa3yUBA.woff2)format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}</style> 26<style id='page-skin-1' type='text/css'><!-- 27/*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0} 28/*!************************************************ 29* Blogger Template Style 30* Name: Contempo 31**************************************************/ 32body{ 33overflow-wrap:break-word; 34word-break:break-word; 35word-wrap:break-word 36} 37.hidden{ 38display:none 39} 40.invisible{ 41visibility:hidden 42} 43.container::after,.float-container::after{ 44clear:both; 45content:""; 46display:table 47} 48.clearboth{ 49clear:both 50} 51#comments .comment .comment-actions,.subscribe-popup .FollowByEmail .follow-by-email-submit,.widget.Profile .profile-link,.widget.Profile .profile-link.visit-profile{ 52background:0 0; 53border:0; 54box-shadow:none; 55color:#2196f3; 56cursor:pointer; 57font-size:14px; 58font-weight:700; 59outline:0; 60text-decoration:none; 61text-transform:uppercase; 62width:auto 63} 64.dim-overlay{ 65background-color:rgba(0,0,0,.54); 66height:100vh; 67left:0; 68position:fixed; 69top:0; 70width:100% 71} 72#sharing-dim-overlay{ 73background-color:transparent 74} 75input::-ms-clear{ 76display:none 77} 78.blogger-logo,.svg-icon-24.blogger-logo{ 79fill:#ff9800; 80opacity:1 81} 82.loading-spinner-large{ 83-webkit-animation:mspin-rotate 1.568s infinite linear; 84animation:mspin-rotate 1.568s infinite linear; 85height:48px; 86overflow:hidden; 87position:absolute; 88width:48px; 89z-index:200 90} 91.loading-spinner-large>div{ 92-webkit-animation:mspin-revrot 5332ms infinite steps(4); 93animation:mspin-revrot 5332ms infinite steps(4) 94} 95.loading-spinner-large>div>div{ 96-webkit-animation:mspin-singlecolor-large-film 1333ms infinite steps(81); 97animation:mspin-singlecolor-large-film 1333ms infinite steps(81); 98background-size:100%; 99height:48px; 100width:3888px 101} 102.mspin-black-large>div>div,.mspin-grey_54-large>div>div{ 103background-image:url(https://www.blogblog.com/indie/mspin_black_large.svg) 104} 105.mspin-white-large>div>div{ 106background-image:url(https://www.blogblog.com/indie/mspin_white_large.svg) 107} 108.mspin-grey_54-large{ 109opacity:.54 110} 111@-webkit-keyframes mspin-singlecolor-large-film{ 112from{ 113-webkit-transform:translateX(0); 114transform:translateX(0) 115} 116to{ 117-webkit-transform:translateX(-3888px); 118transform:translateX(-3888px) 119} 120} 121@keyframes mspin-singlecolor-large-film{ 122from{ 123-webkit-transform:translateX(0); 124transform:translateX(0) 125} 126to{ 127-webkit-transform:translateX(-3888px); 128transform:translateX(-3888px) 129} 130} 131@-webkit-keyframes mspin-rotate{ 132from{ 133-webkit-transform:rotate(0); 134transform:rotate(0) 135} 136to{ 137-webkit-transform:rotate(360deg); 138transform:rotate(360deg) 139} 140} 141@keyframes mspin-rotate{ 142from{ 143-webkit-transform:rotate(0); 144transform:rotate(0) 145} 146to{ 147-webkit-transform:rotate(360deg); 148transform:rotate(360deg) 149} 150} 151@-webkit-keyframes mspin-revrot{ 152from{ 153-webkit-transform:rotate(0); 154transform:rotate(0) 155} 156to{ 157-webkit-transform:rotate(-360deg); 158transform:rotate(-360deg) 159} 160} 161@keyframes mspin-revrot{ 162from{ 163-webkit-transform:rotate(0); 164transform:rotate(0) 165} 166to{ 167-webkit-transform:rotate(-360deg); 168transform:rotate(-360deg) 169} 170} 171.skip-navigation{ 172background-color:#fff; 173box-sizing:border-box; 174color:#000; 175display:block; 176height:0; 177left:0; 178line-height:50px; 179overflow:hidden; 180padding-top:0; 181position:fixed; 182text-align:center; 183top:0;
184-webkit-transition:box-shadow .3s,height .3s,padding-top .3s; 185transition:box-shadow .3s,height .3s,padding-top .3s; 186width:100%; 187z-index:900 188} 189.skip-navigation:focus{ 190box-shadow:0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12),0 2px 4px -1px rgba(0,0,0,.2); 191height:50px 192} 193#main{ 194outline:0 195} 196.main-heading{ 197position:absolute; 198clip:rect(1px,1px,1px,1px); 199padding:0; 200border:0; 201height:1px; 202width:1px; 203overflow:hidden 204} 205.Attribution{ 206margin-top:1em; 207text-align:center 208} 209.Attribution .blogger img,.Attribution .blogger svg{ 210vertical-align:bottom 211} 212.Attribution .blogger img{ 213margin-right:.5em 214} 215.Attribution div{ 216line-height:24px; 217margin-top:.5em 218} 219.Attribution .copyright,.Attribution .image-attribution{ 220font-size:.7em; 221margin-top:1.5em 222} 223.BLOG_mobile_video_class{ 224display:none 225} 226.bg-photo{ 227background-attachment:scroll!important 228} 229body .CSS_LIGHTBOX{ 230z-index:900 231} 232.extendable .show-less,.extendable .show-more{ 233border-color:#2196f3; 234color:#2196f3; 235margin-top:8px 236} 237.extendable .show-less.hidden,.extendable .show-more.hidden{ 238display:none 239} 240.inline-ad{ 241display:none; 242max-width:100%; 243overflow:hidden 244} 245.adsbygoogle{ 246display:block 247} 248#cookieChoiceInfo{ 249bottom:0; 250top:auto 251} 252iframe.b-hbp-video{ 253border:0 254} 255.post-body img{ 256max-width:100% 257} 258.post-body iframe{ 259max-width:100% 260} 261.post-body a[imageanchor="1"]{ 262display:inline-block 263} 264.byline{ 265margin-right:1em 266} 267.byline:last-child{ 268margin-right:0 269} 270.link-copied-dialog{ 271max-width:520px; 272outline:0 273} 274.link-copied-dialog .modal-dialog-buttons{ 275margin-top:8px 276} 277.link-copied-dialog .goog-buttonset-default{ 278background:0 0; 279border:0 280} 281.link-copied-dialog .goog-buttonset-default:focus{ 282outline:0 283} 284.paging-control-container{ 285margin-bottom:16px 286} 287.paging-control-container .paging-control{ 288display:inline-block 289} 290.paging-control-container .comment-range-text::after,.paging-control-container .paging-control{ 291color:#2196f3 292} 293.paging-control-container .comment-range-text,.paging-control-container .paging-control{ 294margin-right:8px 295} 296.paging-control-container .comment-range-text::after,.paging-control-container .paging-control::after{ 297content:"\b7"; 298cursor:default; 299padding-left:8px; 300pointer-events:none 301} 302.paging-control-container .comment-range-text:last-child::after,.paging-control-container .paging-control:last-child::after{ 303content:none 304} 305.byline.reactions iframe{ 306height:20px 307} 308.b-notification{ 309color:#000; 310background-color:#fff; 311border-bottom:solid 1px #000; 312box-sizing:border-box; 313padding:16px 32px; 314text-align:center 315} 316.b-notification.visible{ 317-webkit-transition:margin-top .3s cubic-bezier(.4,0,.2,1); 318transition:margin-top .3s cubic-bezier(.4,0,.2,1) 319} 320.b-notification.invisible{ 321position:absolute 322} 323.b-notification-close{ 324position:absolute; 325right:8px; 326top:8px 327} 328.no-posts-message{ 329line-height:40px; 330text-align:center 331} 332@media screen and (max-width:800px){ 333body.item-view .post-body a[imageanchor="1"][style*="float: left;"],body.item-view .post-body a[imageanchor="1"][style*="float: right;"]{ 334float:none!important; 335clear:none!important 336} 337body.item-view .post-body a[imageanchor="1"] img{ 338display:block; 339height:auto; 340margin:0 auto 341} 342body.item-view .post-body>.separator:first-child>a[imageanchor="1"]:first-child{ 343margin-top:20px 344} 345.post-body a[imageanchor]{ 346display:block 347} 348body.item-view .post-body a[imageanchor="1"]{ 349margin-left:0!important; 350margin-right:0!important 351} 352body.item-view .post-body a[imageanchor="1"]+a[imageanchor="1"]{ 353margin-top:16px 354} 355} 356.item-control{ 357display:none 358} 359#comments{ 360border-top:1px dashed rgba(0,0,0,.54); 361margin-top:20px; 362padding:20px 363} 364#comments .comment-thread ol{ 365margin:0; 366padding-left:0; 367padding-left:0 368} 369#comments .comment .comment-replybox-single,#comments .comment-thread .comment-replies{ 370margin-left:60px 371} 372#comments .comment-thread .thread-count{ 373display:none 374} 375#comments .comment{ 376list-style-type:none; 377padding:0 0 30px; 378position:relative 379} 380#comments .comment .comment{ 381padding-bottom:8px 382} 383.comment .avatar-image-container{ 384position:absolute 385} 386.comment .avatar-image-container img{ 387border-radius:50% 388} 389.avatar-image-container svg,.comment .avatar-image-container .avatar-icon{ 390border-radius:50%; 391border:solid 1px #ffffff; 392box-sizing:border-box; 393fill:#ffffff; 394height:35px; 395margin:0; 396padding:7px; 397width:35px 398} 399.comment .comment-block{ 400margin-top:10px; 401margin-left:60px; 402padding-bottom:0 403} 404#comments .comment-author-header-wrapper{ 405margin-left:40px 406} 407#comments .comment .thread-expanded .comment-block{ 408padding-bottom:20px 409} 410#comments .comment .comment-header .user,#comments .comment .comment-header .user a{ 411color:#ffffff; 412font-style:normal;
413font-weight:700 414} 415#comments .comment .comment-actions{ 416bottom:0; 417margin-bottom:15px; 418position:absolute 419} 420#comments .comment .comment-actions>*{ 421margin-right:8px 422} 423#comments .comment .comment-header .datetime{ 424bottom:0; 425color:rgba(255,255,255,.54); 426display:inline-block; 427font-size:13px; 428font-style:italic; 429margin-left:8px 430} 431#comments .comment .comment-footer .comment-timestamp a,#comments .comment .comment-header .datetime a{ 432color:rgba(255,255,255,.54) 433} 434#comments .comment .comment-content,.comment .comment-body{ 435margin-top:12px; 436word-break:break-word 437} 438.comment-body{ 439margin-bottom:12px 440} 441#comments.embed[data-num-comments="0"]{ 442border:0; 443margin-top:0; 444padding-top:0 445} 446#comments.embed[data-num-comments="0"] #comment-post-message,#comments.embed[data-num-comments="0"] div.comment-form>p,#comments.embed[data-num-comments="0"] p.comment-footer{ 447display:none 448} 449#comment-editor-src{ 450display:none 451} 452.comments .comments-content .loadmore.loaded{ 453max-height:0; 454opacity:0; 455overflow:hidden 456} 457.extendable .remaining-items{ 458height:0; 459overflow:hidden; 460-webkit-transition:height .3s cubic-bezier(.4,0,.2,1); 461transition:height .3s cubic-bezier(.4,0,.2,1) 462} 463.extendable .remaining-items.expanded{ 464height:auto 465} 466.svg-icon-24,.svg-icon-24-button{ 467cursor:pointer; 468height:24px; 469width:24px; 470min-width:24px 471} 472.touch-icon{ 473margin:-12px; 474padding:12px 475} 476.touch-icon:active,.touch-icon:focus{ 477background-color:rgba(153,153,153,.4); 478border-radius:50% 479} 480svg:not(:root).touch-icon{ 481overflow:visible 482} 483html[dir=rtl] .rtl-reversible-icon{ 484-webkit-transform:scaleX(-1); 485-ms-transform:scaleX(-1); 486transform:scaleX(-1) 487} 488.svg-icon-24-button,.touch-icon-button{ 489background:0 0; 490border:0; 491margin:0; 492outline:0; 493padding:0 494} 495.touch-icon-button .touch-icon:active,.touch-icon-button .touch-icon:focus{ 496background-color:transparent 497} 498.touch-icon-button:active .touch-icon,.touch-icon-button:focus .touch-icon{ 499background-color:rgba(153,153,153,.4); 500border-radius:50% 501} 502.Profile .default-avatar-wrapper .avatar-icon{ 503border-radius:50%; 504border:solid 1px #ffffff; 505box-sizing:border-box; 506fill:#ffffff; 507margin:0 508} 509.Profile .individual .default-avatar-wrapper .avatar-icon{ 510padding:25px 511} 512.Profile .individual .avatar-icon,.Profile .individual .profile-img{ 513height:120px; 514width:120px 515} 516.Profile .team .default-avatar-wrapper .avatar-icon{ 517padding:8px 518} 519.Profile .team .avatar-icon,.Profile .team .default-avatar-wrapper,.Profile .team .profile-img{ 520height:40px; 521width:40px 522} 523.snippet-container{ 524margin:0; 525position:relative; 526overflow:hidden 527} 528.snippet-fade{ 529bottom:0; 530box-sizing:border-box; 531position:absolute; 532width:96px 533} 534.snippet-fade{ 535right:0 536} 537.snippet-fade:after{ 538content:"\2026" 539} 540.snippet-fade:after{ 541float:right 542} 543.post-bottom{ 544-webkit-box-align:center; 545-webkit-align-items:center; 546-ms-flex-align:center; 547align-items:center; 548display:-webkit-box; 549display:-webkit-flex; 550display:-ms-flexbox; 551display:flex; 552-webkit-flex-wrap:wrap; 553-ms-flex-wrap:wrap; 554flex-wrap:wrap 555} 556.post-footer{ 557-webkit-box-flex:1; 558-webkit-flex:1 1 auto; 559-ms-flex:1 1 auto; 560flex:1 1 auto; 561-webkit-flex-wrap:wrap; 562-ms-flex-wrap:wrap; 563flex-wrap:wrap; 564-webkit-box-ordinal-group:2; 565-webkit-order:1; 566-ms-flex-order:1; 567order:1 568} 569.post-footer>*{ 570-webkit-box-flex:0; 571-webkit-flex:0 1 auto; 572-ms-flex:0 1 auto; 573flex:0 1 auto 574} 575.post-footer .byline:last-child{ 576margin-right:1em 577} 578.jump-link{ 579-webkit-box-flex:0; 580-webkit-flex:0 0 auto; 581-ms-flex:0 0 auto; 582flex:0 0 auto; 583-webkit-box-ordinal-group:3; 584-webkit-order:2; 585-ms-flex-order:2; 586order:2 587} 588.centered-top-container.sticky{ 589left:0; 590position:fixed; 591right:0; 592top:0; 593width:auto; 594z-index:50; 595-webkit-transition-property:opacity,-webkit-transform; 596transition-property:opacity,-webkit-transform; 597transition-property:transform,opacity; 598transition-property:transform,opacity,-webkit-transform; 599-webkit-transition-duration:.2s; 600transition-duration:.2s; 601-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1); 602transition-timing-function:cubic-bezier(.4,0,.2,1) 603} 604.centered-top-placeholder{ 605display:none 606} 607.collapsed-header .centered-top-placeholder{ 608display:block 609} 610.centered-top-container .Header .replaced h1,.centered-top-placeholder .Header .replaced h1{ 611display:none 612} 613.centered-top-container.sticky .Header .replaced h1{ 614display:block 615} 616.centered-top-container.sticky .Header .header-widget{ 617background:0 0 618} 619.centered-top-container.sticky .Header .header-image-wrapper{ 620display:none 621} 622.centered-top-container img,.centered-top-placeholder img{ 623max-width:100% 624} 625.collapsible{ 626-webkit-transition:height .3s cubic-bezier(.4,0,.2,1); 627transition:height .3s cubic-bezier(.4,0,.2,1) 628} 629.collapsible,.collapsible>summary{ 630display:block; 631overflow:hidden 632} 633.collapsible>:not(summary){ 634display:none 635} 636.collapsible[open]>:not(summary){ 637display:block 638} 639.collapsible:focus,.collapsible>summary:focus{ 640outline:0 641} 642.collapsible>summary{ 643cursor:pointer; 644display:block; 645padding:0 646} 647.collapsible:focus>summary,.collapsible>summary:focus{ 648background-color:transparent 649} 650.collapsible>summary::-webkit-details-marker{ 651display:none 652} 653.collapsible-title{ 654-webkit-box-align:center; 655-webkit-align-items:center; 656-ms-flex-align:center; 657align-items:center; 658display:-webkit-box; 659display:-webkit-flex; 660display:-ms-flexbox; 661display:flex 662} 663.collapsible-title .title{ 664-webkit-box-flex:1; 665-webkit-flex:1 1 auto;
666-ms-flex:1 1 auto; 667flex:1 1 auto; 668-webkit-box-ordinal-group:1; 669-webkit-order:0; 670-ms-flex-order:0; 671order:0; 672overflow:hidden; 673text-overflow:ellipsis; 674white-space:nowrap 675} 676.collapsible-title .chevron-down,.collapsible[open] .collapsible-title .chevron-up{ 677display:block 678} 679.collapsible-title .chevron-up,.collapsible[open] .collapsible-title .chevron-down{ 680display:none 681} 682.flat-button{ 683cursor:pointer; 684display:inline-block; 685font-weight:700; 686text-transform:uppercase; 687border-radius:2px; 688padding:8px; 689margin:-8px 690} 691.flat-icon-button{ 692background:0 0; 693border:0; 694margin:0; 695outline:0; 696padding:0; 697margin:-12px; 698padding:12px; 699cursor:pointer; 700box-sizing:content-box; 701display:inline-block; 702line-height:0 703} 704.flat-icon-button,.flat-icon-button .splash-wrapper{ 705border-radius:50% 706} 707.flat-icon-button .splash.animate{ 708-webkit-animation-duration:.3s; 709animation-duration:.3s 710} 711.overflowable-container{ 712max-height:46px; 713overflow:hidden; 714position:relative 715} 716.overflow-button{ 717cursor:pointer 718} 719#overflowable-dim-overlay{ 720background:0 0 721} 722.overflow-popup{ 723box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); 724background-color:#1d1d1d; 725left:0; 726max-width:calc(100% - 32px); 727position:absolute; 728top:0; 729visibility:hidden; 730z-index:101 731} 732.overflow-popup ul{ 733list-style:none 734} 735.overflow-popup .tabs li,.overflow-popup li{ 736display:block; 737height:auto 738} 739.overflow-popup .tabs li{ 740padding-left:0; 741padding-right:0 742} 743.overflow-button.hidden,.overflow-popup .tabs li.hidden,.overflow-popup li.hidden{ 744display:none 745} 746.pill-button{ 747background:0 0; 748border:1px solid; 749border-radius:12px; 750cursor:pointer; 751display:inline-block; 752padding:4px 16px; 753text-transform:uppercase 754} 755.ripple{ 756position:relative 757} 758.ripple>*{ 759z-index:1 760} 761.splash-wrapper{ 762bottom:0; 763left:0; 764overflow:hidden; 765pointer-events:none; 766position:absolute; 767right:0; 768top:0; 769z-index:0 770} 771.splash{ 772background:#ccc; 773border-radius:100%; 774display:block; 775opacity:.6; 776position:absolute; 777-webkit-transform:scale(0); 778-ms-transform:scale(0); 779transform:scale(0) 780} 781.splash.animate{ 782-webkit-animation:ripple-effect .4s linear; 783animation:ripple-effect .4s linear 784} 785@-webkit-keyframes ripple-effect{ 786100%{ 787opacity:0; 788-webkit-transform:scale(2.5); 789transform:scale(2.5) 790} 791} 792@keyframes ripple-effect{ 793100%{ 794opacity:0; 795-webkit-transform:scale(2.5); 796transform:scale(2.5) 797} 798} 799.search{ 800display:-webkit-box; 801display:-webkit-flex; 802display:-ms-flexbox; 803display:flex; 804line-height:24px; 805width:24px 806} 807.search.focused{ 808width:100% 809} 810.search.focused .section{ 811width:100% 812} 813.search form{ 814z-index:101 815} 816.search h3{ 817display:none 818} 819.search form{ 820display:-webkit-box; 821display:-webkit-flex; 822display:-ms-flexbox; 823display:flex; 824-webkit-box-flex:1; 825-webkit-flex:1 0 0; 826-ms-flex:1 0 0px; 827flex:1 0 0; 828border-bottom:solid 1px transparent; 829padding-bottom:8px 830} 831.search form>*{ 832display:none 833} 834.search.focused form>*{ 835display:block 836} 837.search .search-input label{ 838display:none 839} 840.centered-top-placeholder.cloned .search form{ 841z-index:30 842} 843.search.focused form{ 844border-color:#ffffff; 845position:relative; 846width:auto 847} 848.collapsed-header .centered-top-container .search.focused form{ 849border-bottom-color:transparent 850} 851.search-expand{ 852-webkit-box-flex:0; 853-webkit-flex:0 0 auto; 854-ms-flex:0 0 auto; 855flex:0 0 auto 856} 857.search-expand-text{ 858display:none 859} 860.search-close{ 861display:inline; 862vertical-align:middle 863} 864.search-input{ 865-webkit-box-flex:1; 866-webkit-flex:1 0 1px; 867-ms-flex:1 0 1px; 868flex:1 0 1px 869} 870.search-input input{ 871background:0 0; 872border:0; 873box-sizing:border-box; 874color:#ffffff; 875display:inline-block; 876outline:0; 877width:calc(100% - 48px) 878} 879.search-input input.no-cursor{ 880color:transparent; 881text-shadow:0 0 0 #ffffff 882} 883.collapsed-header .centered-top-container .search-action,.collapsed-header .centered-top-container .search-input input{ 884color:#ffffff 885} 886.collapsed-header .centered-top-container .search-input input.no-cursor{ 887color:transparent; 888text-shadow:0 0 0 #ffffff 889} 890.collapsed-header .centered-top-container .search-input input.no-cursor:focus,.search-input input.no-cursor:focus{ 891outline:0 892} 893.search-focused>*{ 894visibility:hidden 895} 896.search-focused .search,.search-focused .search-icon{ 897visibility:visible 898} 899.search.focused .search-action{ 900display:block 901} 902.search.focused .search-action:disabled{ 903opacity:.3 904} 905.widget.Sharing .sharing-button{ 906display:none 907} 908.widget.Sharing .sharing-buttons li{ 909padding:0 910} 911.widget.Sharing .sharing-buttons li span{ 912display:none 913} 914.post-share-buttons{ 915position:relative 916} 917.centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{ 918fill:#ffffff 919} 920.sharing-open.touch-icon-button:active .touch-icon,.sharing-open.touch-icon-button:focus .touch-icon{ 921background-color:transparent 922} 923.share-buttons{ 924background-color:#1d1d1d; 925border-radius:2px; 926box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); 927color:#ffffff; 928list-style:none; 929margin:0; 930padding:8px 0; 931position:absolute; 932top:-11px;
933min-width:200px; 934z-index:101 935} 936.share-buttons.hidden{ 937display:none 938} 939.sharing-button{ 940background:0 0; 941border:0; 942margin:0; 943outline:0; 944padding:0; 945cursor:pointer 946} 947.share-buttons li{ 948margin:0; 949height:48px 950} 951.share-buttons li:last-child{ 952margin-bottom:0 953} 954.share-buttons li .sharing-platform-button{ 955box-sizing:border-box; 956cursor:pointer; 957display:block; 958height:100%; 959margin-bottom:0; 960padding:0 16px; 961position:relative; 962width:100% 963} 964.share-buttons li .sharing-platform-button:focus,.share-buttons li .sharing-platform-button:hover{ 965background-color:rgba(128,128,128,.1); 966outline:0 967} 968.share-buttons li svg[class*=" sharing-"],.share-buttons li svg[class^=sharing-]{ 969position:absolute; 970top:10px 971} 972.share-buttons li span.sharing-platform-button{ 973position:relative; 974top:0 975} 976.share-buttons li .platform-sharing-text{ 977display:block; 978font-size:16px; 979line-height:48px; 980white-space:nowrap 981} 982.share-buttons li .platform-sharing-text{ 983margin-left:56px 984} 985.sidebar-container{ 986background-color:#1d1d1d; 987max-width:284px; 988overflow-y:auto; 989-webkit-transition-property:-webkit-transform; 990transition-property:-webkit-transform; 991transition-property:transform; 992transition-property:transform,-webkit-transform; 993-webkit-transition-duration:.3s; 994transition-duration:.3s; 995-webkit-transition-timing-function:cubic-bezier(0,0,.2,1); 996transition-timing-function:cubic-bezier(0,0,.2,1); 997width:284px; 998z-index:101; 999-webkit-overflow-scrolling:touch 1000} 1001.sidebar-container .navigation{ 1002line-height:0; 1003padding:16px 1004} 1005.sidebar-container .sidebar-back{ 1006cursor:pointer 1007} 1008.sidebar-container .widget{ 1009background:0 0; 1010margin:0 16px; 1011padding:16px 0 1012} 1013.sidebar-container .widget .title{ 1014color:#c5c1c1; 1015margin:0 1016} 1017.sidebar-container .widget ul{ 1018list-style:none; 1019margin:0; 1020padding:0 1021} 1022.sidebar-container .widget ul ul{ 1023margin-left:1em 1024} 1025.sidebar-container .widget li{ 1026font-size:16px; 1027line-height:normal 1028} 1029.sidebar-container .widget+.widget{ 1030border-top:1px dashed #cccccc 1031} 1032.BlogArchive li{ 1033margin:16px 0 1034} 1035.BlogArchive li:last-child{ 1036margin-bottom:0 1037} 1038.Label li a{ 1039display:inline-block 1040} 1041.BlogArchive .post-count,.Label .label-count{ 1042float:right; 1043margin-left:.25em 1044} 1045.BlogArchive .post-count::before,.Label .label-count::before{ 1046content:"(" 1047} 1048.BlogArchive .post-count::after,.Label .label-count::after{ 1049content:")" 1050} 1051.widget.Translate .skiptranslate>div{ 1052display:block!important 1053} 1054.widget.Profile .profile-link{ 1055display:-webkit-box; 1056display:-webkit-flex; 1057display:-ms-flexbox; 1058display:flex 1059} 1060.widget.Profile .team-member .default-avatar-wrapper,.widget.Profile .team-member .profile-img{ 1061-webkit-box-flex:0; 1062-webkit-flex:0 0 auto; 1063-ms-flex:0 0 auto; 1064flex:0 0 auto; 1065margin-right:1em 1066} 1067.widget.Profile .individual .profile-link{ 1068-webkit-box-orient:vertical; 1069-webkit-box-direction:normal; 1070-webkit-flex-direction:column; 1071-ms-flex-direction:column; 1072flex-direction:column 1073} 1074.widget.Profile .team .profile-link .profile-name{ 1075-webkit-align-self:center; 1076-ms-flex-item-align:center; 1077align-self:center; 1078display:block; 1079-webkit-box-flex:1; 1080-webkit-flex:1 1 auto; 1081-ms-flex:1 1 auto; 1082flex:1 1 auto 1083} 1084.dim-overlay{ 1085background-color:rgba(0,0,0,.54); 1086z-index:100 1087} 1088body.sidebar-visible{ 1089overflow-y:hidden 1090} 1091@media screen and (max-width:1439px){ 1092.sidebar-container{ 1093bottom:0; 1094position:fixed; 1095top:0; 1096left:0; 1097right:auto 1098} 1099.sidebar-container.sidebar-invisible{ 1100-webkit-transition-timing-function:cubic-bezier(.4,0,.6,1); 1101transition-timing-function:cubic-bezier(.4,0,.6,1); 1102-webkit-transform:translateX(-284px); 1103-ms-transform:translateX(-284px); 1104transform:translateX(-284px) 1105} 1106} 1107@media screen and (min-width:1440px){ 1108.sidebar-container{ 1109position:absolute; 1110top:0; 1111left:0; 1112right:auto 1113} 1114.sidebar-container .navigation{ 1115display:none 1116} 1117} 1118.dialog{ 1119box-shadow:0 2px 2px 0 rgba(0,0,0,.14),0 3px 1px -2px rgba(0,0,0,.2),0 1px 5px 0 rgba(0,0,0,.12); 1120background:#1d1d1d; 1121box-sizing:border-box; 1122color:#9ba2a8; 1123padding:30px; 1124position:fixed; 1125text-align:center; 1126width:calc(100% - 24px); 1127z-index:101 1128} 1129.dialog input[type=email],.dialog input[type=text]{ 1130background-color:transparent; 1131border:0; 1132border-bottom:solid 1px rgba(155,162,168,.12); 1133color:#9ba2a8; 1134display:block; 1135font-family:Roboto, sans-serif; 1136font-size:16px; 1137line-height:24px; 1138margin:auto; 1139padding-bottom:7px; 1140outline:0; 1141text-align:center; 1142width:100% 1143} 1144.dialog input[type=email]::-webkit-input-placeholder,.dialog input[type=text]::-webkit-input-placeholder{ 1145color:#9ba2a8 1146} 1147.dialog input[type=email]::-moz-placeholder,.dialog input[type=text]::-moz-placeholder{ 1148color:#9ba2a8 1149} 1150.dialog input[type=email]:-ms-input-placeholder,.dialog input[type=text]:-ms-input-placeholder{ 1151color:#9ba2a8 1152} 1153.dialog input[type=email]::-ms-input-placeholder,.dialog input[type=text]::-ms-input-placeholder{ 1154color:#9ba2a8 1155} 1156.dialog input[type=email]::placeholder,.dialog input[type=text]::placeholder{ 1157color:#9ba2a8 1158} 1159.dialog input[type=email]:focus,.dialog input[type=text]:focus{ 1160border-bottom:solid 2px #2196f3; 1161padding-bottom:6px 1162} 1163.dialog input.no-cursor{ 1164color:transparent; 1165text-shadow:0 0 0 #9ba2a8 1166} 1167.dialog input.no-cursor:focus{ 1168outline:0 1169} 1170.dialog input.no-cursor:focus{ 1171outline:0 1172} 1173.dialog input[type=submit]{ 1174font-family:Roboto, sans-serif 1175} 1176.dialog .goog-buttonset-default{ 1177color:#2196f3 1178} 1179.subscribe-popup{ 1180max-width:364px 1181} 1182.subscribe-popup h3{ 1183color:#ffffff; 1184font-size:1.8em; 1185margin-top:0 1186} 1187.subscribe-popup .FollowByEmail h3{ 1188display:none 1189} 1190.subscribe-popup .FollowByEmail .follow-by-email-submit{ 1191color:#2196f3; 1192display:inline-block; 1193margin:0 auto; 1194margin-top:24px; 1195width:auto; 1196white-space:normal 1197} 1198.subscribe-popup .FollowByEmail .follow-by-email-submit:disabled{ 1199cursor:default; 1200opacity:.3 1201} 1202@media (max-width:800px){ 1203.blog-name div.widget.Subscribe{ 1204margin-bottom:16px 1205} 1206body.item-view .blog-name div.widget.Subscribe{ 1207margin:8px auto 16px auto; 1208width:100% 1209} 1210} 1211.tabs{ 1212list-style:none 1213} 1214.tabs li{ 1215display:inline-block 1216} 1217.tabs li a{ 1218cursor:pointer; 1219display:inline-block;
1220font-weight:700; 1221text-transform:uppercase; 1222padding:12px 8px 1223} 1224.tabs .selected{ 1225border-bottom:4px solid #ffffff 1226} 1227.tabs .selected a{ 1228color:#ffffff 1229} 1230body#layout .bg-photo,body#layout .bg-photo-overlay{ 1231display:none 1232} 1233body#layout .page_body{ 1234padding:0; 1235position:relative; 1236top:0 1237} 1238body#layout .page{ 1239display:inline-block; 1240left:inherit; 1241position:relative; 1242vertical-align:top; 1243width:540px 1244} 1245body#layout .centered{ 1246max-width:954px 1247} 1248body#layout .navigation{ 1249display:none 1250} 1251body#layout .sidebar-container{ 1252display:inline-block; 1253width:40% 1254} 1255body#layout .hamburger-menu,body#layout .search{ 1256display:none 1257} 1258.centered-top-container .svg-icon-24,body.collapsed-header .centered-top-placeholder .svg-icon-24{ 1259fill:#ffffff 1260} 1261.sidebar-container .svg-icon-24{ 1262fill:#ffffff 1263} 1264.centered-bottom .svg-icon-24,body.collapsed-header .centered-top-container .svg-icon-24{ 1265fill:#ffffff 1266} 1267.centered-bottom .share-buttons .svg-icon-24,.share-buttons .svg-icon-24{ 1268fill:#ffffff 1269} 1270body{ 1271background-color:#444444; 1272color:#9ba2a8; 1273font:15px Roboto, sans-serif; 1274margin:0; 1275min-height:100vh 1276} 1277img{ 1278max-width:100% 1279} 1280h3{ 1281color:#9ba2a8; 1282font-size:16px 1283} 1284a{ 1285text-decoration:none; 1286color:#2196f3 1287} 1288a:visited{ 1289color:#2196f3 1290} 1291a:hover{ 1292color:#2196f3 1293} 1294blockquote{ 1295color:#dddddd; 1296font:italic 300 15px Roboto, sans-serif; 1297font-size:x-large; 1298text-align:center 1299} 1300.pill-button{ 1301font-size:12px 1302} 1303.bg-photo-container{ 1304height:480px; 1305overflow:hidden; 1306position:absolute; 1307width:100%; 1308z-index:1 1309} 1310.bg-photo{ 1311background:#444444 url(https://themes.googleusercontent.com/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa) no-repeat scroll top center /* Credit: Radius Images (http://www.offset.com/photos/225860) */;; 1312background-attachment:scroll; 1313background-size:cover; 1314-webkit-filter:blur(0px); 1315filter:blur(0px); 1316height:calc(100% + 2 * 0px); 1317left:0px; 1318position:absolute; 1319top:0px; 1320width:calc(100% + 2 * 0px) 1321} 1322.bg-photo-overlay{ 1323background:rgba(0,0,0,.26); 1324background-size:cover; 1325height:480px; 1326position:absolute; 1327width:100%; 1328z-index:2 1329} 1330.hamburger-menu{ 1331float:left; 1332margin-top:0 1333} 1334.sticky .hamburger-menu{ 1335float:none; 1336position:absolute 1337} 1338.search{ 1339border-bottom:solid 1px rgba(255, 255, 255, 0); 1340float:right; 1341position:relative; 1342-webkit-transition-property:width; 1343transition-property:width; 1344-webkit-transition-duration:.5s; 1345transition-duration:.5s; 1346-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1); 1347transition-timing-function:cubic-bezier(.4,0,.2,1); 1348z-index:101 1349} 1350.search .dim-overlay{ 1351background-color:transparent 1352} 1353.search form{ 1354height:36px; 1355-webkit-transition-property:border-color; 1356transition-property:border-color; 1357-webkit-transition-delay:.5s; 1358transition-delay:.5s; 1359-webkit-transition-duration:.2s; 1360transition-duration:.2s; 1361-webkit-transition-timing-function:cubic-bezier(.4,0,.2,1); 1362transition-timing-function:cubic-bezier(.4,0,.2,1) 1363} 1364.search.focused{ 1365width:calc(100% - 48px) 1366} 1367.search.focused form{ 1368display:-webkit-box; 1369display:-webkit-flex; 1370display:-ms-flexbox; 1371display:flex; 1372-webkit-box-flex:1; 1373-webkit-flex:1 0 1px; 1374-ms-flex:1 0 1px; 1375flex:1 0 1px; 1376border-color:#ffffff; 1377margin-left:-24px; 1378padding-left:36px; 1379position:relative; 1380width:auto 1381} 1382.item-view .search,.sticky .search{ 1383right:0; 1384float:none; 1385margin-left:0; 1386position:absolute 1387} 1388.item-view .search.focused,.sticky .search.focused{ 1389width:calc(100% - 50px) 1390} 1391.item-view .search.focused form,.sticky .search.focused form{ 1392border-bottom-color:#9ba2a8 1393} 1394.centered-top-placeholder.cloned .search form{ 1395z-index:30 1396} 1397.search_button{ 1398-webkit-box-flex:0; 1399-webkit-flex:0 0 24px; 1400-ms-flex:0 0 24px; 1401flex:0 0 24px; 1402-webkit-box-orient:vertical; 1403-webkit-box-direction:normal; 1404-webkit-flex-direction:column; 1405-ms-flex-direction:column; 1406flex-direction:column 1407} 1408.search_button svg{ 1409margin-top:0 1410} 1411.search-input{ 1412height:48px 1413} 1414.search-input input{ 1415display:block; 1416color:#ffffff; 1417font:16px Roboto, sans-serif; 1418height:48px; 1419line-height:48px; 1420padding:0; 1421width:100% 1422} 1423.search-input input::-webkit-input-placeholder{ 1424color:#ffffff; 1425opacity:.3 1426} 1427.search-input input::-moz-placeholder{ 1428color:#ffffff; 1429opacity:.3 1430} 1431.search-input input:-ms-input-placeholder{ 1432color:#ffffff; 1433opacity:.3 1434} 1435.search-input input::-ms-input-placeholder{ 1436color:#ffffff; 1437opacity:.3 1438} 1439.search-input input::placeholder{ 1440color:#ffffff; 1441opacity:.3 1442} 1443.search-action{ 1444background:0 0; 1445border:0; 1446color:#ffffff; 1447cursor:pointer; 1448display:none; 1449height:48px; 1450margin-top:0 1451} 1452.sticky .search-action{ 1453color:#9ba2a8 1454} 1455.search.focused .search-action{ 1456display:block 1457} 1458.search.focused .search-action:disabled{ 1459opacity:.3 1460} 1461.page_body{ 1462position:relative; 1463z-index:20 1464} 1465.page_body .widget{ 1466margin-bottom:16px 1467} 1468.page_body .centered{ 1469box-sizing:border-box; 1470display:-webkit-box; 1471display:-webkit-flex; 1472display:-ms-flexbox; 1473display:flex; 1474-webkit-box-orient:vertical; 1475-webkit-box-direction:normal; 1476-webkit-flex-direction:column; 1477-ms-flex-direction:column; 1478flex-direction:column; 1479margin:0 auto; 1480max-width:922px; 1481min-height:100vh; 1482padding:24px 0 1483} 1484.page_body .centered>*{ 1485-webkit-box-flex:0; 1486-webkit-flex:0 0 auto;
1487-ms-flex:0 0 auto; 1488flex:0 0 auto 1489} 1490.page_body .centered>#footer{ 1491margin-top:auto 1492} 1493.blog-name{ 1494margin:24px 0 16px 0 1495} 1496.item-view .blog-name,.sticky .blog-name{ 1497box-sizing:border-box; 1498margin-left:36px; 1499min-height:48px; 1500opacity:1; 1501padding-top:12px 1502} 1503.blog-name .subscribe-section-container{ 1504margin-bottom:32px; 1505text-align:center; 1506-webkit-transition-property:opacity; 1507transition-property:opacity; 1508-webkit-transition-duration:.5s; 1509transition-duration:.5s 1510} 1511.item-view .blog-name .subscribe-section-container,.sticky .blog-name .subscribe-section-container{ 1512margin:0 0 8px 0 1513} 1514.blog-name .PageList{ 1515margin-top:16px; 1516padding-top:8px; 1517text-align:center 1518} 1519.blog-name .PageList .overflowable-contents{ 1520width:100% 1521} 1522.blog-name .PageList h3.title{ 1523color:#ffffff; 1524margin:8px auto; 1525text-align:center; 1526width:100% 1527} 1528.centered-top-container .blog-name{ 1529-webkit-transition-property:opacity; 1530transition-property:opacity; 1531-webkit-transition-duration:.5s; 1532transition-duration:.5s 1533} 1534.item-view .return_link{ 1535margin-bottom:12px; 1536margin-top:12px; 1537position:absolute 1538} 1539.item-view .blog-name{ 1540display:-webkit-box; 1541display:-webkit-flex; 1542display:-ms-flexbox; 1543display:flex; 1544-webkit-flex-wrap:wrap; 1545-ms-flex-wrap:wrap; 1546flex-wrap:wrap; 1547margin:0 48px 27px 48px 1548} 1549.item-view .subscribe-section-container{ 1550-webkit-box-flex:0; 1551-webkit-flex:0 0 auto; 1552-ms-flex:0 0 auto; 1553flex:0 0 auto 1554} 1555.item-view #header,.item-view .Header{ 1556margin-bottom:5px; 1557margin-right:15px 1558} 1559.item-view .sticky .Header{ 1560margin-bottom:0 1561} 1562.item-view .Header p{ 1563margin:10px 0 0 0; 1564text-align:left 1565} 1566.item-view .post-share-buttons-bottom{ 1567margin-right:16px 1568} 1569.sticky{ 1570background:#1d1d1d; 1571box-shadow:0 0 20px 0 rgba(0,0,0,.7); 1572box-sizing:border-box; 1573margin-left:0 1574} 1575.sticky #header{ 1576margin-bottom:8px; 1577margin-right:8px 1578} 1579.sticky .centered-top{ 1580margin:4px auto; 1581max-width:890px; 1582min-height:48px 1583} 1584.sticky .blog-name{ 1585display:-webkit-box; 1586display:-webkit-flex; 1587display:-ms-flexbox; 1588display:flex; 1589margin:0 48px 1590} 1591.sticky .blog-name #header{ 1592-webkit-box-flex:0; 1593-webkit-flex:0 1 auto; 1594-ms-flex:0 1 auto; 1595flex:0 1 auto; 1596-webkit-box-ordinal-group:2; 1597-webkit-order:1; 1598-ms-flex-order:1; 1599order:1; 1600overflow:hidden 1601} 1602.sticky .blog-name .subscribe-section-container{ 1603-webkit-box-flex:0; 1604-webkit-flex:0 0 auto; 1605-ms-flex:0 0 auto; 1606flex:0 0 auto; 1607-webkit-box-ordinal-group:3; 1608-webkit-order:2; 1609-ms-flex-order:2; 1610order:2 1611} 1612.sticky .Header h1{ 1613overflow:hidden; 1614text-overflow:ellipsis; 1615white-space:nowrap; 1616margin-right:-10px; 1617margin-bottom:-10px; 1618padding-right:10px; 1619padding-bottom:10px 1620} 1621.sticky .Header p{ 1622display:none 1623} 1624.sticky .PageList{ 1625display:none 1626} 1627.search-focused>*{ 1628visibility:visible 1629} 1630.search-focused .hamburger-menu{ 1631visibility:visible 1632} 1633.item-view .search-focused .blog-name,.sticky .search-focused .blog-name{ 1634opacity:0 1635} 1636.centered-bottom,.centered-top-container,.centered-top-placeholder{ 1637padding:0 16px 1638} 1639.centered-top{ 1640position:relative 1641} 1642.item-view .centered-top.search-focused .subscribe-section-container,.sticky .centered-top.search-focused .subscribe-section-container{ 1643opacity:0 1644} 1645.page_body.has-vertical-ads .centered .centered-bottom{ 1646display:inline-block; 1647width:calc(100% - 176px) 1648} 1649.Header h1{ 1650color:#ffffff; 1651font:bold 45px Roboto, sans-serif; 1652line-height:normal; 1653margin:0 0 13px 0; 1654text-align:center; 1655width:100% 1656} 1657.Header h1 a,.Header h1 a:hover,.Header h1 a:visited{ 1658color:#ffffff 1659} 1660.item-view .Header h1,.sticky .Header h1{ 1661font-size:24px; 1662line-height:24px; 1663margin:0; 1664text-align:left 1665} 1666.sticky .Header h1{ 1667color:#9ba2a8 1668} 1669.sticky .Header h1 a,.sticky .Header h1 a:hover,.sticky .Header h1 a:visited{ 1670color:#9ba2a8 1671} 1672.Header p{ 1673color:#ffffff; 1674margin:0 0 13px 0; 1675opacity:.8; 1676text-align:center 1677} 1678.widget .title{ 1679line-height:28px 1680} 1681.BlogArchive li{ 1682font-size:16px 1683} 1684.BlogArchive .post-count{ 1685color:#9ba2a8 1686} 1687#page_body .FeaturedPost,.Blog .blog-posts .post-outer-container{ 1688background:#1d1d1d; 1689min-height:40px; 1690padding:30px 40px; 1691width:auto 1692} 1693.Blog .blog-posts .post-outer-container:last-child{ 1694margin-bottom:0 1695} 1696.Blog .blog-posts .post-outer-container .post-outer{ 1697border:0; 1698position:relative; 1699padding-bottom:.25em 1700} 1701.post-outer-container{ 1702margin-bottom:16px 1703} 1704.post:first-child{ 1705margin-top:0 1706} 1707.post .thumb{ 1708float:left; 1709height:20%; 1710width:20% 1711} 1712.post-share-buttons-bottom,.post-share-buttons-top{ 1713float:right 1714} 1715.post-share-buttons-bottom{ 1716margin-right:24px 1717} 1718.post-footer,.post-header{ 1719clear:left; 1720color:rgba(255,255,255,0.54); 1721margin:0; 1722width:inherit 1723} 1724.blog-pager{ 1725text-align:center 1726} 1727.blog-pager a{ 1728color:#2196f3 1729} 1730.blog-pager a:visited{ 1731color:#2196f3 1732} 1733.blog-pager a:hover{ 1734color:#2196f3 1735} 1736.post-title{ 1737font:bold 22px Roboto, sans-serif; 1738float:left; 1739margin:0 0 8px 0; 1740max-width:calc(100% - 48px) 1741} 1742.post-title a{ 1743font:bold 30px Roboto, sans-serif 1744} 1745.post-title,.post-title a,.post-title a:hover,.post-title a:visited{ 1746color:#ffffff 1747} 1748.post-body{ 1749color:#9ba2a8; 1750font:15px Roboto, sans-serif; 1751line-height:1.6em; 1752margin:1.5em 0 2em 0; 1753display:block 1754} 1755.post-body img{ 1756height:inherit 1757} 1758.post-body .snippet-thumbnail{ 1759float:left; 1760margin:0; 1761margin-right:2em; 1762max-height:128px; 1763max-width:128px 1764} 1765.post-body .snippet-thumbnail img{ 1766max-width:100% 1767} 1768.main .FeaturedPost .widget-content{ 1769border:0; 1770position:relative; 1771padding-bottom:.25em 1772} 1773.FeaturedPost img{ 1774margin-top:2em 1775} 1776.FeaturedPost .snippet-container{ 1777margin:2em 0 1778} 1779.FeaturedPost .snippet-container p{ 1780margin:0 1781} 1782.FeaturedPost .snippet-thumbnail{ 1783float:none; 1784height:auto; 1785margin-bottom:2em; 1786margin-right:0; 1787overflow:hidden; 1788max-height:calc(600px + 2em); 1789max-width:100%; 1790text-align:center; 1791width:100% 1792} 1793.FeaturedPost .snippet-thumbnail img{ 1794max-width:100%; 1795width:100% 1796} 1797.byline{ 1798color:rgba(255,255,255,0.54); 1799display:inline-block; 1800line-height:24px; 1801margin-top:8px; 1802vertical-align:top 1803} 1804.byline.post-author:first-child{ 1805margin-right:0 1806} 1807.byline.reactions .reactions-label{ 1808line-height:22px; 1809vertical-align:top 1810} 1811.byline.post-share-buttons{ 1812position:relative; 1813display:inline-block; 1814margin-top:0; 1815width:100% 1816} 1817.byline.post-share-buttons .sharing{ 1818float:right 1819} 1820.flat-button.ripple:hover{ 1821background-color:rgba(33,150,243,.12) 1822} 1823.flat-button.ripple .splash{ 1824background-color:rgba(33,150,243,.4) 1825} 1826a.timestamp-link,a:active.timestamp-link,a:visited.timestamp-link{ 1827color:inherit; 1828font:inherit; 1829text-decoration:inherit 1830} 1831.post-share-buttons{ 1832margin-left:0 1833} 1834.clear-sharing{ 1835min-height:24px 1836} 1837.comment-link{ 1838color:#2196f3; 1839position:relative 1840} 1841.comment-link .num_comments{ 1842margin-left:8px; 1843vertical-align:top 1844} 1845#comment-holder .continue{ 1846display:none 1847} 1848#comment-editor{ 1849margin-bottom:20px; 1850margin-top:20px 1851} 1852#comments .comment-form h4,#comments h3.title{ 1853position:absolute; 1854clip:rect(1px,1px,1px,1px); 1855padding:0; 1856border:0; 1857height:1px; 1858width:1px; 1859overflow:hidden 1860} 1861.post-filter-message{ 1862background-color:rgba(0,0,0,.7); 1863color:#fff; 1864display:table; 1865margin-bottom:16px; 1866width:100% 1867} 1868.post-filter-message div{ 1869display:table-cell; 1870padding:15px 28px 1871} 1872.post-filter-message div:last-child{ 1873padding-left:0; 1874text-align:right 1875} 1876.post-filter-message a{ 1877white-space:nowrap 1878} 1879.post-filter-message .search-label,.post-filter-message .search-query{
1880font-weight:700; 1881color:#2196f3 1882} 1883#blog-pager{ 1884margin:2em 0 1885} 1886#blog-pager a{ 1887color:#2196f3; 1888font-size:14px 1889} 1890.subscribe-button{ 1891border-color:#ffffff; 1892color:#ffffff 1893} 1894.sticky .subscribe-button{ 1895border-color:#9ba2a8; 1896color:#9ba2a8 1897} 1898.tabs{ 1899margin:0 auto; 1900padding:0 1901} 1902.tabs li{ 1903margin:0 8px; 1904vertical-align:top 1905} 1906.tabs .overflow-button a,.tabs li a{ 1907color:#cccccc; 1908font:700 normal 15px Roboto, sans-serif; 1909line-height:18px 1910} 1911.tabs .overflow-button a{ 1912padding:12px 8px 1913} 1914.overflow-popup .tabs li{ 1915text-align:left 1916} 1917.overflow-popup li a{ 1918color:#9ba2a8; 1919display:block; 1920padding:8px 20px 1921} 1922.overflow-popup li.selected a{ 1923color:#ffffff 1924} 1925a.report_abuse{ 1926font-weight:400 1927} 1928.Label li,.Label span.label-size,.byline.post-labels a{ 1929background-color:#444444; 1930border:1px solid #444444; 1931border-radius:15px; 1932display:inline-block; 1933margin:4px 4px 4px 0; 1934padding:3px 8px 1935} 1936.Label a,.byline.post-labels a{ 1937color:#ffffff 1938} 1939.Label ul{ 1940list-style:none; 1941padding:0 1942} 1943.PopularPosts{ 1944background-color:#444444; 1945padding:30px 40px 1946} 1947.PopularPosts .item-content{ 1948color:#9ba2a8; 1949margin-top:24px 1950} 1951.PopularPosts a,.PopularPosts a:hover,.PopularPosts a:visited{ 1952color:#2196f3 1953} 1954.PopularPosts .post-title,.PopularPosts .post-title a,.PopularPosts .post-title a:hover,.PopularPosts .post-title a:visited{ 1955color:#ffffff; 1956font-size:18px; 1957font-weight:700; 1958line-height:24px 1959} 1960.PopularPosts,.PopularPosts h3.title a{ 1961color:#9ba2a8; 1962font:15px Roboto, sans-serif 1963} 1964.main .PopularPosts{ 1965padding:16px 40px 1966} 1967.PopularPosts h3.title{ 1968font-size:14px; 1969margin:0 1970} 1971.PopularPosts h3.post-title{ 1972margin-bottom:0 1973} 1974.PopularPosts .byline{ 1975color:rgba(255,255,255,0.54) 1976} 1977.PopularPosts .jump-link{ 1978float:right; 1979margin-top:16px 1980} 1981.PopularPosts .post-header .byline{ 1982font-size:.9em; 1983font-style:italic; 1984margin-top:6px 1985} 1986.PopularPosts ul{ 1987list-style:none; 1988padding:0; 1989margin:0 1990} 1991.PopularPosts .post{ 1992padding:20px 0 1993} 1994.PopularPosts .post+.post{ 1995border-top:1px dashed #cccccc 1996} 1997.PopularPosts .item-thumbnail{ 1998float:left; 1999margin-right:32px 2000} 2001.PopularPosts .item-thumbnail img{ 2002height:88px; 2003padding:0; 2004width:88px 2005} 2006.inline-ad{ 2007margin-bottom:16px 2008} 2009.desktop-ad .inline-ad{ 2010display:block 2011} 2012.adsbygoogle{ 2013overflow:hidden 2014} 2015.vertical-ad-container{ 2016float:right; 2017margin-right:16px; 2018width:128px 2019} 2020.vertical-ad-container .AdSense+.AdSense{ 2021margin-top:16px 2022} 2023.inline-ad-placeholder,.vertical-ad-placeholder{ 2024background:#1d1d1d; 2025border:1px solid #000; 2026opacity:.9; 2027vertical-align:middle; 2028text-align:center 2029} 2030.inline-ad-placeholder span,.vertical-ad-placeholder span{ 2031margin-top:290px; 2032display:block; 2033text-transform:uppercase; 2034font-weight:700; 2035color:#ffffff 2036} 2037.vertical-ad-placeholder{ 2038height:600px 2039} 2040.vertical-ad-placeholder span{ 2041margin-top:290px; 2042padding:0 40px 2043} 2044.inline-ad-placeholder{ 2045height:90px 2046} 2047.inline-ad-placeholder span{ 2048margin-top:36px 2049} 2050.Attribution{ 2051color:#9ba2a8 2052} 2053.Attribution a,.Attribution a:hover,.Attribution a:visited{ 2054color:#2196f3 2055} 2056.Attribution svg{ 2057fill:#ffffff 2058} 2059.sidebar-container{ 2060box-shadow:1px 1px 3px rgba(0,0,0,.1) 2061} 2062.sidebar-container,.sidebar-container .sidebar_bottom{ 2063background-color:#1d1d1d 2064} 2065.sidebar-container .navigation,.sidebar-container .sidebar_top_wrapper{ 2066background-color:#1d1d1d 2067} 2068.sidebar-container .sidebar_top{ 2069overflow:auto 2070} 2071.sidebar-container .sidebar_bottom{ 2072width:100%; 2073padding-top:16px 2074} 2075.sidebar-container .widget:first-child{ 2076padding-top:0 2077} 2078.sidebar_top .widget.Profile{ 2079padding-bottom:16px 2080} 2081.widget.Profile{ 2082margin:0; 2083width:100% 2084} 2085.widget.Profile h2{ 2086display:none 2087} 2088.widget.Profile h3.title{ 2089color:#c5c1c1; 2090margin:16px 32px 2091} 2092.widget.Profile .individual{ 2093text-align:center 2094} 2095.widget.Profile .individual .profile-link{ 2096padding:1em 2097} 2098.widget.Profile .individual .default-avatar-wrapper .avatar-icon{ 2099margin:auto 2100} 2101.widget.Profile .team{ 2102margin-bottom:32px; 2103margin-left:32px; 2104margin-right:32px 2105} 2106.widget.Profile ul{ 2107list-style:none; 2108padding:0 2109} 2110.widget.Profile li{ 2111margin:10px 0 2112} 2113.widget.Profile .profile-img{ 2114border-radius:50%; 2115float:none 2116} 2117.widget.Profile .profile-link{ 2118color:#ffffff; 2119font-size:.9em; 2120margin-bottom:1em; 2121opacity:.87; 2122overflow:hidden 2123} 2124.widget.Profile .profile-link.visit-profile{ 2125border-style:solid; 2126border-width:1px; 2127border-radius:12px; 2128cursor:pointer; 2129font-size:12px;
2130font-weight:400; 2131padding:5px 20px; 2132display:inline-block; 2133line-height:normal 2134} 2135.widget.Profile dd{ 2136color:rgba(238, 238, 238, 0.54); 2137margin:0 16px 2138} 2139.widget.Profile location{ 2140margin-bottom:1em 2141} 2142.widget.Profile .profile-textblock{ 2143font-size:14px; 2144line-height:24px; 2145position:relative 2146} 2147body.sidebar-visible .page_body{ 2148overflow-y:scroll 2149} 2150body.sidebar-visible .bg-photo-container{ 2151overflow-y:scroll 2152} 2153@media screen and (min-width:1440px){ 2154.sidebar-container{ 2155margin-top:480px; 2156min-height:calc(100% - 480px); 2157overflow:visible; 2158z-index:32 2159} 2160.sidebar-container .sidebar_top_wrapper{ 2161background-color:#1d1d1d; 2162height:480px; 2163margin-top:-480px 2164} 2165.sidebar-container .sidebar_top{ 2166display:-webkit-box; 2167display:-webkit-flex; 2168display:-ms-flexbox; 2169display:flex; 2170height:480px; 2171-webkit-box-orient:horizontal; 2172-webkit-box-direction:normal; 2173-webkit-flex-direction:row; 2174-ms-flex-direction:row; 2175flex-direction:row; 2176max-height:480px 2177} 2178.sidebar-container .sidebar_bottom{ 2179max-width:284px; 2180width:284px 2181} 2182body.collapsed-header .sidebar-container{ 2183z-index:15 2184} 2185.sidebar-container .sidebar_top:empty{ 2186display:none 2187} 2188.sidebar-container .sidebar_top>:only-child{ 2189-webkit-box-flex:0; 2190-webkit-flex:0 0 auto; 2191-ms-flex:0 0 auto; 2192flex:0 0 auto; 2193-webkit-align-self:center; 2194-ms-flex-item-align:center; 2195align-self:center; 2196width:100% 2197} 2198.sidebar_top_wrapper.no-items{ 2199display:none 2200} 2201} 2202.post-snippet.snippet-container{ 2203max-height:120px 2204} 2205.post-snippet .snippet-item{ 2206line-height:24px 2207} 2208.post-snippet .snippet-fade{ 2209background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2210background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2211color:#9ba2a8; 2212height:24px 2213} 2214.popular-posts-snippet.snippet-container{ 2215max-height:72px 2216} 2217.popular-posts-snippet .snippet-item{ 2218line-height:24px 2219} 2220.PopularPosts .popular-posts-snippet .snippet-fade{ 2221color:#9ba2a8; 2222height:24px 2223} 2224.main .popular-posts-snippet .snippet-fade{ 2225background:-webkit-linear-gradient(left,#444444 0,#444444 20%,rgba(68, 68, 68, 0) 100%); 2226background:linear-gradient(to left,#444444 0,#444444 20%,rgba(68, 68, 68, 0) 100%) 2227} 2228.sidebar_bottom .popular-posts-snippet .snippet-fade{ 2229background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2230background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%) 2231} 2232.profile-snippet.snippet-container{ 2233max-height:192px 2234} 2235.has-location .profile-snippet.snippet-container{ 2236max-height:144px 2237} 2238.profile-snippet .snippet-item{ 2239line-height:24px 2240} 2241.profile-snippet .snippet-fade{ 2242background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2243background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2244color:rgba(238, 238, 238, 0.54); 2245height:24px 2246} 2247@media screen and (min-width:1440px){ 2248.profile-snippet .snippet-fade{ 2249background:-webkit-linear-gradient(left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%); 2250background:linear-gradient(to left,#1d1d1d 0,#1d1d1d 20%,rgba(29, 29, 29, 0) 100%) 2251} 2252} 2253@media screen and (max-width:800px){ 2254.blog-name{ 2255margin-top:0 2256} 2257body.item-view .blog-name{ 2258margin:0 48px 2259} 2260.centered-bottom{ 2261padding:8px 2262} 2263body.item-view .centered-bottom{ 2264padding:0 2265} 2266.page_body .centered{ 2267padding:10px 0 2268} 2269body.item-view #header,body.item-view .widget.Header{ 2270margin-right:0 2271} 2272body.collapsed-header .centered-top-container .blog-name{ 2273display:block 2274} 2275body.collapsed-header .centered-top-container .widget.Header h1{ 2276text-align:center 2277} 2278.widget.Header header{ 2279padding:0 2280} 2281.widget.Header h1{ 2282font-size:24px; 2283line-height:24px; 2284margin-bottom:13px 2285} 2286body.item-view .widget.Header h1{ 2287text-align:center 2288} 2289body.item-view .widget.Header p{ 2290text-align:center 2291} 2292.blog-name .widget.PageList{ 2293padding:0 2294} 2295body.item-view .centered-top{ 2296margin-bottom:5px 2297} 2298.search-action,.search-input{ 2299margin-bottom:-8px 2300} 2301.search form{ 2302margin-bottom:8px 2303} 2304body.item-view .subscribe-section-container{ 2305margin:5px 0 0 0; 2306width:100% 2307} 2308#page_body.section div.widget.FeaturedPost,div.widget.PopularPosts{ 2309padding:16px 2310} 2311div.widget.Blog .blog-posts .post-outer-container{ 2312padding:16px 2313} 2314div.widget.Blog .blog-posts .post-outer-container .post-outer{ 2315padding:0 2316} 2317.post:first-child{ 2318margin:0 2319} 2320.post-body .snippet-thumbnail{ 2321margin:0 3vw 3vw 0 2322} 2323.post-body .snippet-thumbnail img{ 2324height:20vw; 2325width:20vw; 2326max-height:128px; 2327max-width:128px 2328} 2329div.widget.PopularPosts div.item-thumbnail{ 2330margin:0 3vw 3vw 0 2331} 2332div.widget.PopularPosts div.item-thumbnail img{ 2333height:20vw; 2334width:20vw; 2335max-height:88px; 2336max-width:88px 2337} 2338.post-title{ 2339line-height:1 2340} 2341.post-title,.post-title a{ 2342font-size:20px 2343} 2344#page_body.section div.widget.FeaturedPost h3 a{ 2345font-size:22px 2346} 2347.mobile-ad .inline-ad{ 2348display:block 2349} 2350.page_body.has-vertical-ads .vertical-ad-container,.page_body.has-vertical-ads .vertical-ad-container ins{ 2351display:none 2352} 2353.page_body.has-vertical-ads .centered .centered-bottom,.page_body.has-vertical-ads .centered .centered-top{ 2354display:block; 2355width:auto 2356} 2357div.post-filter-message div{ 2358padding:8px 16px 2359} 2360} 2361@media screen and (min-width:1440px){ 2362body{ 2363position:relative 2364} 2365body.item-view .blog-name{ 2366margin-left:48px 2367} 2368.page_body{ 2369margin-left:284px 2370} 2371.search{ 2372margin-left:0 2373} 2374.search.focused{ 2375width:100% 2376} 2377.sticky{ 2378padding-left:284px 2379} 2380.hamburger-menu{ 2381display:none 2382} 2383body.collapsed-header .page_body .centered-top-container{ 2384padding-left:284px; 2385padding-right:0; 2386width:100% 2387} 2388body.collapsed-header .centered-top-container .search.focused{ 2389width:100% 2390} 2391body.collapsed-header .centered-top-container .blog-name{ 2392margin-left:0 2393} 2394body.collapsed-header.item-view .centered-top-container .search.focused{ 2395width:calc(100% - 50px) 2396} 2397body.collapsed-header.item-view .centered-top-container .blog-name{ 2398margin-left:40px 2399} 2400} 2401 2402--></style> 2403<style id='template-skin-1' type='text/css'><!-- 2404body#layout .hidden, 2405body#layout .invisible { 2406display: inherit; 2407} 2408body#layout .navigation { 2409display: none; 2410} 2411body#layout .page, 2412body#layout .sidebar_top, 2413body#layout .sidebar_bottom { 2414display: inline-block; 2415left: inherit; 2416position: relative; 2417vertical-align: top; 2418} 2419body#layout .page { 2420float: right; 2421margin-left: 20px; 2422width: 55%; 2423} 2424body#layout .sidebar-container { 2425float: right; 2426width: 40%; 2427} 2428body#layout .hamburger-menu { 2429display: none; 2430} 2431--></style> 2432<style> 2433 .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa);} 2434 2435@media (max-width: 480px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w480);}} 2436@media (max-width: 640px) and (min-width: 481px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w640);}} 2437@media (max-width: 800px) and (min-width: 641px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w800);}} 2438@media (max-width: 1200px) and (min-width: 801px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w1200);}} 2439/* Last tag covers anything over one higher than the previous max-size cap. */ 2440@media (min-width: 1201px) { .bg-photo {background-image:url(https\:\/\/themes.googleusercontent.com\/image?id=rabMT9PC10wCtkMoMM2KrjGV5ejCGidFlmg3elSmmoRNnd0FxKwY5T0RGV948R08752LcEb6qEXa&options=w1600);}} 2441 </style>
2442<script async='async' src='//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js'></script>
vendor: 1 bytes, line 2442
2442
2443<script type='text/javascript'>
vendor: 374 bytes, lines 2443-2448
2443 2444 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 2445 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 2446 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 2447 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 2448 ga('create', '
2448UA-39676116-1
vendor: 31 bytes, lines 2448-2449
2448', 'auto', 'blogger'); 2449
2449ga('blogger.send', 'pageview'); 2450 </script>
vendor: 1 bytes, line 2450
2450
2451<script async='async' src='https://www.gstatic.com/external_hosted/clipboardjs/clipboard.min.js'></script>
2451 2452<style type='text/css'> 2453/* h4hacks: keep third-party embeds inside the sidebar column. Telegram and 2454 Facebook widgets force a fixed pixel width (Telegram renders at 320px in a 2455 252px column) which is what made the sidebar bleed past its border. */ 2456.sidebar .widget iframe, .sidebar_bottom .widget iframe, .sidebar_top .widget iframe { max-width: 100% !important; min-width: 0 !important; width: 100% !important; border: 0; } 2457/* Telegram's own script sets an inline min-width of 320px, and per the CSS 2458 spec min-width beats max-width -- so capping max-width alone left the 2459 iframe overflowing and merely clipped by the rule below. */ 2460.sidebar .widget, .sidebar_bottom .widget, .sidebar_top .widget { overflow-x: hidden; } 2461.sidebar .widget-content, .sidebar_bottom .widget-content { overflow-x: hidden; } 2462/* The Telegram feed renders its entire history: 1149px of chat against a 2463 1424px post list. Cap it and let it scroll on its own. */ 2464/* Telegram lays its content out at a fixed 320px internally. Squeezing the 2465 iframe narrower just clips the text mid-word, and the iframe is cross-origin 2466 so its inside cannot be restyled. Keep the native width and scale the whole 2467 widget down to fit the column instead: 320 * 0.7875 = 252px. */ 2468#HTML3 .widget-content iframe { width: 320px !important; min-width: 320px !important; max-width: none !important; transform: scale(0.7875); transform-origin: top left; } 2469#HTML3 .widget-content { max-height: 360px; overflow-y: auto; overflow-x: hidden; } 2470#HTML2 .widget-content { max-height: 320px; overflow-y: auto; } 2471#HTML1 .widget-content { max-height: 220px; overflow-y: auto; } 2472/* Featured Post shows a broken placeholder when a post leads with a video 2473 embed instead of an image. */ 2474.FeaturedPost img[src=''], .FeaturedPost .snippet-thumbnail img[src=''] { display: none; } 2475</style> 2476<meta name='google-adsense-platform-account' content='ca-host-pub-1556223355139109'/> 2477<meta name='google-adsense-platform-domain' content='blogspot.com'/> 2478 2479<!-- data-ad-client=ca-pub-7526045351349686 --> 2480 2481</head> 2482<body class='archive-view version-1-3-3'> 2483<a class='skip-navigation' href='#main' tabindex='0'> 2484Skip to main content 2485</a> 2486<div class='page'> 2487<div class='bg-photo-overlay'></div> 2488<div class='bg-photo-container'> 2489<div class='bg-photo'></div> 2490</div> 2491<div class='page_body has-vertical-ads'> 2492<div class='centered'> 2493<div class='centered-top-placeholder'></div> 2494<header class='centered-top-container' role='banner'> 2495<div class='centered-top'> 2496<button class='svg-icon-24-button hamburger-menu flat-icon-button ripple'> 2497<svg class='svg-icon-24'> 2498<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_menu_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2499</svg> 2500</button> 2501<div class='search'> 2502<button aria-label='Search' class='search-expand touch-icon-button'> 2503<div class='flat-icon-button ripple'> 2504<svg class='svg-icon-24 search-expand-icon'> 2505<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_search_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2506</svg> 2507</div> 2508</button> 2509<div class='section' id='search_top' name='Search (Top)'><div class='widget BlogSearch' data-version='2' id='BlogSearch1'> 2510<h3 class='title'> 2511Search This Blog 2512</h3> 2513<div class='widget-content' role='search'> 2514<form action='https://www.h4hacks.com/search' target='_top'> 2515<div class='search-input'> 2516<input aria-label='Search this blog' autocomplete='off' name='q' placeholder='Search this blog' value=''/> 2517</div> 2518<input class='search-action flat-button' type='submit' value='Search'/> 2519</form> 2520</div> 2521</div></div> 2522</div> 2523<div class='clearboth'></div> 2524<div class='blog-name container'> 2525<div class='container section' id='header' name='Header'><div class='widget Header' data-version='2' id='Header1'> 2526<div class='header-widget'> 2527<div> 2528<h1> 2529<a href='https://www.h4hacks.com/'> 2530H4hacks 2531</a> 2532</h1> 2533</div> 2534<p> 2535Robotics, DIY, hacking, 3d printing, Hardware Hacking, penetration testing, prusa i3, linux, python, information security, SSL, qualys, arduino, 3d printer etc 2536</p> 2537</div> 2538</div></div> 2539<nav role='navigation'> 2540<div class='clearboth section' id='page_list_top' name='Page List (Top)'><div class='widget PageList' data-version='2' id='PageList1'> 2541<h3 class='title'> 2542Pages 2543</h3> 2544<div class='widget-content'> 2545<div class='overflowable-container'> 2546<div class='overflowable-contents'> 2547<div class='container'> 2548<ul class='tabs'> 2549<li class='overflowable-item'> 2550<a href='http://www.h4hacks.com/'>Home</a> 2551</li> 2552<li class='overflowable-item'> 2553<a href='https://www.h4hacks.com/p/my-3d-printing-saga.html'>My 3D Printing saga</a> 2554</li> 2555<li class='overflowable-item'> 2556<a href='https://www.h4hacks.com/p/hello-world-welcome-to-h4hacks-this-is.html'>About h4hacks</a> 2557</li> 2558</ul> 2559</div> 2560</div> 2561<div class='overflow-button hidden'> 2562<a>More…</a> 2563</div> 2564</div> 2565</div> 2566</div></div> 2567</nav> 2568</div> 2569</div> 2570</header> 2571<div> 2572<div class='vertical-ad-container section' id='ads' name='Ads'><div class='widget AdSense' data-version='2' id='AdSense1'> 2573<div class='widget-content'>
2574<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7526045351349686&host=ca-host-pub-1556223355139109" crossorigin="anonymous"></script>
2574 2575<!-- h4hacks-mohesh_ads_AdSense1_1x1_as --> 2576<ins class="adsbygoogle" 2577 style="display:block" 2578 data-ad-client="ca-pub-7526045351349686" 2579 data-ad-host="ca-host-pub-1556223355139109" 2580 data-ad-slot="8993779025" 2581 data-ad-format="auto" 2582 data-full-width-responsive="true"></ins>
2583<script> 2584(adsbygoogle = window.adsbygoogle || []).push({}); 2585</script>
2585 2586</div> 2587</div><div class='widget AdSense' data-version='2' id='AdSense2'> 2588<div class='widget-content'>
2589<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-7526045351349686&host=ca-host-pub-1556223355139109" crossorigin="anonymous"></script>
2589 2590<!-- h4hacks-mohesh_ads_AdSense2_1x1_as --> 2591<ins class="adsbygoogle" 2592 style="display:block" 2593 data-ad-client="ca-pub-7526045351349686" 2594 data-ad-host="ca-host-pub-1556223355139109" 2595 data-ad-slot="3685612029" 2596 data-ad-format="auto" 2597 data-full-width-responsive="true"></ins>
2598<script> 2599(adsbygoogle = window.adsbygoogle || []).push({}); 2600</script>
2600 2601</div> 2602</div></div> 2603<main class='centered-bottom' id='main' role='main' tabindex='-1'> 2604<h2 class='main-heading'>Posts</h2> 2605<div class='post-filter-message'> 2606<div> 2607Showing posts from 2026 2608</div> 2609<div> 2610<a class='flat-button ripple' href='https://www.h4hacks.com/'> 2611Show all 2612</a> 2613</div> 2614</div> 2615<div class='main section' id='page_body' name='Page Body'><div class='widget FeaturedPost' data-version='2' id='FeaturedPost1'> 2616<h3 class='title'> 2617Featured Post 2618</h3> 2619<div class='widget-content'> 2620<div role='feed'> 2621<article class='post' role='article'> 2622<h3 class='post-title'><a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ONX3248G035</a></h3> 2623<div class='post-share-buttons post-share-buttons-top'> 2624<div class='byline post-share-buttons goog-inline-block'> 2625<div aria-owns='sharing-popup-FeaturedPost1-byline-1489533363326807711' class='sharing' data-title='Running four AI models fully offline on a Nextion ONX3248G035'> 2626<button aria-controls='sharing-popup-FeaturedPost1-byline-1489533363326807711' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-FeaturedPost1-byline-1489533363326807711' role='button'> 2627<div class='flat-icon-button ripple'> 2628<svg class='svg-icon-24'> 2629<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2630</svg> 2631</div> 2632</button> 2633<div class='share-buttons-container'> 2634<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-FeaturedPost1-byline-1489533363326807711' role='menu'> 2635<li> 2636<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Get link'> 2637<svg class='svg-icon-24 touch-icon sharing-link'> 2638<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2639</svg> 2640<span class='platform-sharing-text'>Get link</span> 2641</span> 2642</li> 2643<li> 2644<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=facebook' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Facebook'> 2645<svg class='svg-icon-24 touch-icon sharing-facebook'> 2646<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2647</svg> 2648<span class='platform-sharing-text'>Facebook</span> 2649</span> 2650</li> 2651<li> 2652<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=twitter' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to X'> 2653<svg class='svg-icon-24 touch-icon sharing-twitter'> 2654<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2655</svg> 2656<span class='platform-sharing-text'>X</span> 2657</span> 2658</li> 2659<li> 2660<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=pinterest' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> 2661<svg class='svg-icon-24 touch-icon sharing-pinterest'> 2662<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2663</svg> 2664<span class='platform-sharing-text'>Pinterest</span> 2665</span> 2666</li> 2667<li> 2668<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=email' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Email'> 2669<svg class='svg-icon-24 touch-icon sharing-email'> 2670<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2671</svg> 2672<span class='platform-sharing-text'>Email</span> 2673</span> 2674</li> 2675<li aria-hidden='true' class='hidden'> 2676<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to other apps'> 2677<svg class='svg-icon-24 touch-icon sharing-sharingOther'> 2678<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2679</svg> 2680<span class='platform-sharing-text'>Other Apps</span> 2681</span> 2682</li> 2683</ul> 2684</div> 2685</div> 2686</div> 2687</div> 2688<div class='post-header'> 2689<div class='post-header-line-1'> 2690<span class='byline post-timestamp'> 2691- 2692<meta content='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'/> 2693<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' rel='bookmark' title='permanent link'> 2694<time class='published' datetime='2026-07-30T22:12:00+05:30' title='2026-07-30T22:12:00+05:30'> 2695July 30, 2026 2696</time> 2697</a> 2698</span> 2699</div> 2700</div> 2701<div class='snippet-thumbnail'>
2702<img alt='Image' data-ess='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_vgKJ9z7RdT1TIZw4Q2RYJKP5xyb5r4NQqQdQOMOIPOl0HJTr2LV73x7DPG7S2_qONy0jrp2I_zs0G9MOdvytQgm5U2dMUzdKTqKBs2hvwRhv5bWZpHxA=w945-h600-pd' sizes='(min-width: 954px) 842px, (min-width: 801px) calc(100vw - 112px), calc(100vw - 64px)' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w256-h162-n-k-no-nu 256w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w512-h325-n-k-no-nu 512w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w945-h600-n-k-no-nu 945w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1684-h1069-n-k-no-nu 1684w'/> 2703</div> 2704<div class='post-snippet snippet-container r-snippet-container'> 2705<div class='snippet-item r-snippetized'> 2706A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever since, and one question kept nagging: this thing has 8 MB of PSRAM and a dual-core ESP32-S3. Could it run an actual language model? Not talk to one over WiFi — run one. Turns out: yes. Four of them, in fact. No internet, no server, no phone, no PC. Everything in this video is generated by the chip on the board. All four models, on the board, offline. Loading a model from the SD card, then generating. What is actually running The board boots into a menu. Tap a model, it loads and starts generating. All of these were trained from scratch on an M2 Max in well under an hour. Malayalam English Arithmetic Icons Parameters 7.6M 7.6M 1.0M 577K Flash 3.95 MB 3.95 MB 0.41 MB 0.58 MB Speed 13.0 tok/s 14.9 tok/s 20.7 tok/s 3.4 s/image First things first: this is not a Nextion HMI The ONX3248G035 is sold under Nextion branding, and the name is... 2707</div> 2708<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'></a> 2709</div> 2710<div class='post-bottom'> 2711<div class='post-footer float-container'> 2712<div class='post-footer-line post-footer-line-1'> 2713<span class='byline post-comment-link container'> 2714<a class='comment-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html#comments' onclick=''> 2715<svg class='svg-icon-24 touch-icon'> 2716<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2717</svg> 2718<span class='num_comments'> 27193 comments 2720</span> 2721</a> 2722</span> 2723</div> 2724<div class='post-footer-line post-footer-line-2'> 2725</div> 2726<div class='post-footer-line post-footer-line-3'> 2727</div> 2728</div> 2729<div class='jump-link flat-button ripple'> 2730<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' title='Running four AI models fully offline on a Nextion ONX3248G035'> 2731Read more 2732</a> 2733</div> 2734</div> 2735</article> 2736</div> 2737</div> 2738</div><div class='widget Blog' data-version='2' id='Blog1'> 2739<div class='blog-posts hfeed container'> 2740<article class='post-outer-container'> 2741<div class='post-outer'> 2742<div class='post'>
2743<script type='application/ld+json'>{ 2744 "@context": "http://schema.org", 2745 "@type": "BlogPosting", 2746 "mainEntityOfPage": { 2747 "@type": "WebPage", 2748 "@id": "https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html" 2749 }, 2750 "headline": "Running four AI models fully offline on a Nextion ONX3248G035","description": "A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever s...","datePublished": "2026-07-30T22:12:00+05:30", 2751 "dateModified": "2026-07-30T22:43:54+05:30","image": { 2752 "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w1200-h630-n-k-no-nu", 2753 "height": 630, 2754 "width": 1200},"publisher": { 2755 "@type": "Organization", 2756 "name": "Blogger", 2757 "logo": { 2758 "@type": "ImageObject", 2759 "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/", 2760 "width": 206, 2761 "height": 60 2762 } 2763 },"author": { 2764 "@type": "Person", 2765 "name": "Observer" 2766 } 2767}</script>
2767 2768<a name='1489533363326807711'></a> 2769<h3 class='post-title entry-title'> 2770<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ONX3248G035</a> 2771</h3> 2772<div class='post-share-buttons post-share-buttons-top'> 2773<div class='byline post-share-buttons goog-inline-block'> 2774<div aria-owns='sharing-popup-Blog1-byline-1489533363326807711' class='sharing' data-title='Running four AI models fully offline on a Nextion ONX3248G035'> 2775<button aria-controls='sharing-popup-Blog1-byline-1489533363326807711' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-1489533363326807711' role='button'> 2776<div class='flat-icon-button ripple'> 2777<svg class='svg-icon-24'> 2778<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2779</svg> 2780</div> 2781</button> 2782<div class='share-buttons-container'> 2783<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-1489533363326807711' role='menu'> 2784<li> 2785<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Get link'> 2786<svg class='svg-icon-24 touch-icon sharing-link'> 2787<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2788</svg> 2789<span class='platform-sharing-text'>Get link</span> 2790</span> 2791</li> 2792<li> 2793<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=facebook' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Facebook'> 2794<svg class='svg-icon-24 touch-icon sharing-facebook'> 2795<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2796</svg> 2797<span class='platform-sharing-text'>Facebook</span> 2798</span> 2799</li> 2800<li> 2801<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=twitter' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to X'> 2802<svg class='svg-icon-24 touch-icon sharing-twitter'> 2803<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2804</svg> 2805<span class='platform-sharing-text'>X</span> 2806</span> 2807</li> 2808<li> 2809<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=pinterest' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> 2810<svg class='svg-icon-24 touch-icon sharing-pinterest'> 2811<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2812</svg> 2813<span class='platform-sharing-text'>Pinterest</span> 2814</span> 2815</li> 2816<li> 2817<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=1489533363326807711&target=email' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Email'> 2818<svg class='svg-icon-24 touch-icon sharing-email'> 2819<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2820</svg> 2821<span class='platform-sharing-text'>Email</span> 2822</span> 2823</li> 2824<li aria-hidden='true' class='hidden'> 2825<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' role='menuitem' tabindex='-1' title='Share to other apps'> 2826<svg class='svg-icon-24 touch-icon sharing-sharingOther'> 2827<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2828</svg> 2829<span class='platform-sharing-text'>Other Apps</span> 2830</span> 2831</li> 2832</ul> 2833</div> 2834</div> 2835</div> 2836</div> 2837<div class='post-header'> 2838<div class='post-header-line-1'> 2839<span class='byline post-timestamp'> 2840- 2841<meta content='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'/> 2842<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' rel='bookmark' title='permanent link'> 2843<time class='published' datetime='2026-07-30T22:12:00+05:30' title='2026-07-30T22:12:00+05:30'> 2844July 30, 2026 2845</time> 2846</a> 2847</span> 2848</div> 2849</div> 2850<div class='container post-body entry-content' id='post-snippet-1489533363326807711'> 2851<div class='snippet-thumbnail'> 2852<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6P
2852XZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ=w256-h256-n-k-no-nu 256w'/> 2853</div> 2854<div class='post-snippet snippet-container r-snippet-container'> 2855<div class='snippet-item r-snippetized'> 2856A while back I unboxed a Nextion touchscreen dev board and vibe-coded a WiFi auditor onto it . That board has been sitting on my desk ever since, and one question kept nagging: this thing has 8 MB of PSRAM and a dual-core ESP32-S3. Could it run an actual language model? Not talk to one over WiFi — run one. Turns out: yes. Four of them, in fact. No internet, no server, no phone, no PC. Everything in this video is generated by the chip on the board. All four models, on the board, offline. Loading a model from the SD card, then generating. What is actually running The board boots into a menu. Tap a model, it loads and starts generating. All of these were trained from scratch on an M2 Max in well under an hour. Malayalam English Arithmetic Icons Parameters 7.6M 7.6M 1.0M 577K Flash 3.95 MB 3.95 MB 0.41 MB 0.58 MB Speed 13.0 tok/s 14.9 tok/s 20.7 tok/s 3.4 s/image First things first: this is not a Nextion HMI The ONX3248G035 is sold under Nextion branding, and the name is... 2857</div> 2858<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'></a> 2859</div> 2860</div> 2861<div class='post-bottom'> 2862<div class='post-footer float-container'> 2863<div class='post-footer-line post-footer-line-1'> 2864<span class='byline post-comment-link container'> 2865<a class='comment-link' href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html#comments' onclick=''> 2866<svg class='svg-icon-24 touch-icon'> 2867<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2868</svg> 2869<span class='num_comments'> 28703 comments 2871</span> 2872</a> 2873</span> 2874</div> 2875<div class='post-footer-line post-footer-line-2'> 2876</div> 2877<div class='post-footer-line post-footer-line-3'> 2878</div> 2879</div> 2880<div class='jump-link flat-button ripple'> 2881<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html' title='Running four AI models fully offline on a Nextion ONX3248G035'> 2882Read more 2883</a> 2884</div> 2885</div> 2886</div> 2887</div> 2888</article> 2889<div class='desktop-ad mobile-ad'> 2890<div class='inline-ad'> 2891<ins class='adsbygoogle' data-ad-client='ca-pub-7526045351349686' data-ad-format='auto' data-ad-host='ca-h
2891ost-pub-1556223355139109' data-analytics-uacct='UA-39676116-1' style='/* Done in css. */'> 2892</ins>
2893<script> 2894 (adsbygoogle = window.adsbygoogle || []).push({}); 2895 </script>
2895 2896</div> 2897</div> 2898<article class='post-outer-container'> 2899<div class='post-outer'> 2900<div class='post'>
2901<script type='application/ld+json'>{ 2902 "@context": "http://schema.org", 2903 "@type": "BlogPosting", 2904 "mainEntityOfPage": { 2905 "@type": "WebPage", 2906 "@id": "https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html" 2907 }, 2908 "headline": "Meet Dhara — send files without the cloud, without accounts, without internet","description": "DHARA SHARE FILES · NO CLOUD · NO ACCOUNTS · NO INTERNET A cross-platform file-share app that runs a tiny HTTP server on you...","datePublished": "2026-07-05T23:29:00+05:30", 2909 "dateModified": "2026-08-01T17:49:49+05:30","image": { 2910 "@type": "ImageObject","url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/w1200/", 2911 "height": 348, 2912 "width": 1200},"publisher": { 2913 "@type": "Organization", 2914 "name": "Blogger", 2915 "logo": { 2916 "@type": "ImageObject", 2917 "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/", 2918 "width": 206, 2919 "height": 60 2920 } 2921 },"author": { 2922 "@type": "Person", 2923 "name": "Observer" 2924 } 2925}</script>
2925 2926<a name='6065616582831346989'></a> 2927<h3 class='post-title entry-title'> 2928<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'>Meet Dhara — send files without the cloud, without accounts, without internet</a> 2929</h3> 2930<div class='post-share-buttons post-share-buttons-top'> 2931<div class='byline post-share-buttons goog-inline-block'> 2932<div aria-owns='sharing-popup-Blog1-byline-6065616582831346989' class='sharing' data-title='Meet Dhara — send files without the cloud, without accounts, without internet'> 2933<button aria-controls='sharing-popup-Blog1-byline-6065616582831346989' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-6065616582831346989' role='button'> 2934<div class='flat-icon-button ripple'> 2935<svg class='svg-icon-24'> 2936<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2937</svg> 2938</div> 2939</button> 2940<div class='share-buttons-container'> 2941<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-6065616582831346989' role='menu'> 2942<li> 2943<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Get link'> 2944<svg class='svg-icon-24 touch-icon sharing-link'> 2945<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2946</svg> 2947<span class='platform-sharing-text'>Get link</span> 2948</span> 2949</li> 2950<li> 2951<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=facebook' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to Facebook'> 2952<svg class='svg-icon-24 touch-icon sharing-facebook'> 2953<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2954</svg> 2955<span class='platform-sharing-text'>Facebook</span> 2956</span> 2957</li> 2958<li> 2959<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=twitter' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to X'> 2960<svg class='svg-icon-24 touch-icon sharing-twitter'> 2961<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2962</svg> 2963<span class='platform-sharing-text'>X</span> 2964</span> 2965</li> 2966<li> 2967<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=pinterest' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> 2968<svg class='svg-icon-24 touch-icon sharing-pinterest'> 2969<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2970</svg> 2971<span class='platform-sharing-text'>Pinterest</span> 2972</span> 2973</li> 2974<li> 2975<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6065616582831346989&target=email' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Email'> 2976<svg class='svg-icon-24 touch-icon sharing-email'> 2977<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2978</svg> 2979<span class='platform-sharing-text'>Email</span> 2980</span> 2981</li> 2982<li aria-hidden='true' class='hidden'> 2983<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' role='menuitem' tabindex='-1' title='Share to other apps'> 2984<svg class='svg-icon-24 touch-icon sharing-sharingOther'> 2985<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 2986</svg> 2987<span class='platform-sharing-text'>Other Apps</span> 2988</span> 2989</li> 2990</ul> 2991</div> 2992</div> 2993</div> 2994</div> 2995<div class='post-header'> 2996<div class='post-header-line-1'> 2997<span class='byline post-timestamp'> 2998- 2999<meta content='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'/> 3000<a class='timestamp-link' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' rel='bookmark' title='permanent link'> 3001<time class='published' datetime='2026-07-05T23:29:00+05:30' title='2026-07-05T23:29:00+05:30'> 3002July 05, 2026 3003</time> 3004</a> 3005</span> 3006</div> 3007</div> 3008<div class='container post-body entry-content' id='post-snippet-6065616582831346989'> 3009<div class='post-snippet snippet-container r-snippet-container'> 3010<div class='snippet-item r-snippetized'> 3011 DHARA SHARE FILES · NO CLOUD · NO ACCOUNTS · NO INTERNET A cross-platform file-share app that runs a tiny HTTP server on your device. Anyone on the same Wi-Fi (or your phone's hotspot) can pull the files straight from you — from any browser, no app required. TL;DR — Dhara turns your phone or Mac into a temporary file server. You pick a folder or files, Dhara spins up a local HTTP server, and any device on the same network opens the URL and grabs what it needs. No signup, no upload to a third party, no data leaving the local network. Just launched on the iOS App Store; macOS in review; Android and Windows on the runway. Why I built Dhara Every "share this file to my other device" workflow in 2026 involves at least one of the following annoyances: Upload to a cloud you don't own so it can come back down two feet away. Create an account on some third-party service that now has your file in its logs. Pair devices , install the same ... 3012</div> 3013<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'></a> 3014</div> 3015</div> 3016<div class='post-bottom'> 3017<div class='post-footer float-container'> 3018<div class='post-footer-line post-footer-line-1'> 3019<span class='byline post-comment-link container'> 3020<a class='comment-link' href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html#comments' onclick=''> 3021<svg class='svg-icon-24 touch-icon'> 3022<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3023</svg> 3024<span class='num_comments'> 30252 comments 3026</span> 3027</a> 3028</span> 3029</div> 3030<div class='post-footer-line post-footer-line-2'> 3031</div> 3032<div class='post-footer-line post-footer-line-3'> 3033</div> 3034</div> 3035<div class='jump-link flat-button ripple'> 3036<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html' title='Meet Dhara — send files without the cloud, without accounts, without internet'> 3037Read more 3038</a> 3039</div> 3040</div> 3041</div> 3042</div> 3043</article> 3044<article class='post-outer-container'> 3045<div class='post-outer'> 3046<div class='post'>
3047<script type='application/ld+json'>{ 3048 "@context": "http://schema.org", 3049 "@type": "BlogPosting", 3050 "mainEntityOfPage": { 3051 "@type": "WebPage", 3052 "@id": "https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html" 3053 }, 3054 "headline": "Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal","description": "Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal A surprising number of buildin...","datePublished": "2026-06-29T11:05:00+05:30", 3055 "dateModified": "2026-06-29T11:05:12+05:30","image": { 3056 "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w1200-h630-n-k-no-nu", 3057 "height": 630, 3058 "width": 1200},"publisher": { 3059 "@type": "Organization", 3060 "name": "Blogger", 3061 "logo": { 3062 "@type": "ImageObject", 3063 "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/", 3064 "width": 206, 3065 "height": 60 3066 } 3067 },"author": { 3068 "@type": "Person", 3069 "name": "Observer" 3070 } 3071}</script>
3071 3072<a name='6051265452619665271'></a> 3073<h3 class='post-title entry-title'> 3074<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'>Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal</a> 3075</h3> 3076<div class='post-share-buttons post-share-buttons-top'> 3077<div class='byline post-share-buttons goog-inline-block'> 3078<div aria-owns='sharing-popup-Blog1-byline-6051265452619665271' class='sharing' data-title='Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal'> 3079<button aria-controls='sharing-popup-Blog1-byline-6051265452619665271' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-6051265452619665271' role='button'> 3080<div class='flat-icon-button ripple'> 3081<svg class='svg-icon-24'> 3082<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3083</svg> 3084</div> 3085</button> 3086<div class='share-buttons-container'> 3087<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-6051265452619665271' role='menu'> 3088<li> 3089<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Get link'> 3090<svg class='svg-icon-24 touch-icon sharing-link'> 3091<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3092</svg> 3093<span class='platform-sharing-text'>Get link</span> 3094</span> 3095</li> 3096<li> 3097<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=facebook' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to Facebook'> 3098<svg class='svg-icon-24 touch-icon sharing-facebook'> 3099<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3100</svg> 3101<span class='platform-sharing-text'>Facebook</span> 3102</span> 3103</li> 3104<li> 3105<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=twitter' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to X'> 3106<svg class='svg-icon-24 touch-icon sharing-twitter'> 3107<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3108</svg> 3109<span class='platform-sharing-text'>X</span> 3110</span> 3111</li> 3112<li> 3113<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=pinterest' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> 3114<svg class='svg-icon-24 touch-icon sharing-pinterest'> 3115<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3116</svg> 3117<span class='platform-sharing-text'>Pinterest</span> 3118</span> 3119</li> 3120<li> 3121<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=6051265452619665271&target=email' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Email'> 3122<svg class='svg-icon-24 touch-icon sharing-email'> 3123<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3124</svg> 3125<span class='platform-sharing-text'>Email</span> 3126</span> 3127</li> 3128<li aria-hidden='true' class='hidden'> 3129<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' role='menuitem' tabindex='-1' title='Share to other apps'> 3130<svg class='svg-icon-24 touch-icon sharing-sharingOther'> 3131<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3132</svg> 3133<span class='platform-sharing-text'>Other Apps</span> 3134</span> 3135</li> 3136</ul> 3137</div> 3138</div> 3139</div> 3140</div> 3141<div class='post-header'> 3142<div class='post-header-line-1'> 3143<span class='byline post-timestamp'> 3144- 3145<meta content='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'/> 3146<a class='timestamp-link' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' rel='bookmark' title='permanent link'> 3147<time class='published' datetime='2026-06-29T11:05:00+05:30' title='2026-06-29T11:05:00+05:30'> 3148June 29, 2026 3149</time> 3150</a> 3151</span> 3152</div> 3153</div> 3154<div class='container post-body entry-content' id='post-snippet-6051265452619665271'> 3155<div class='snippet-thumbnail'> 3156<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN=w256-h256-n-k-no-nu 256w'/> 3157</div> 3158<div class='post-snippet snippet-container r-snippet-container'> 3159<div class='snippet-item r-snippetized'> 3160Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal A surprising number of buildings hand each tenant a little plastic fob to open the parking barr
3160ier — and a surprising number of those fobs are not what you'd call secure. If the building installer cheaped out (or just picked the default jumper settings), the remote sends a fixed sub-GHz signal every single time. No rolling code, no challenge, no cryptography. Just the same packet, on the same frequency, every press. Which means anyone with a Flipper Zero and a few minutes can clone it. Here's a 90-second demo of doing exactly that on a CAME barrier — and the technical context for why it works. The setup The gate is a CAME -branded barrier, the kind you see at almost every apartment compound parking entrance. Every tenant is given a static remote — not rolling code. Why? Cheaper. Static encoders like Princeton's PT2262 (and the dozens of clones ... 3161</div> 3162<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'></a> 3163</div> 3164</div> 3165<div class='post-bottom'> 3166<div class='post-footer float-container'> 3167<div class='post-footer-line post-footer-line-1'> 3168<span class='byline post-comment-link container'> 3169<a class='comment-link' href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html#comments' onclick=''> 3170<svg class='svg-icon-24 touch-icon'> 3171<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3172</svg> 3173<span class='num_comments'> 31741 comment 3175</span> 3176</a> 3177</span> 3178</div> 3179<div class='post-footer-line post-footer-line-2'> 3180</div> 3181<div class='post-footer-line post-footer-line-3'> 3182</div> 3183</div> 3184<div class='jump-link flat-button ripple'> 3185<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html' title='Cloning a CAME parking-gate remote with a Flipper Zero — why static Princeton codes are a security own-goal'> 3186Read more 3187</a> 3188</div> 3189</div> 3190</div> 3191</div> 3192</article> 3193<article class='post-outer-container'> 3194<div class='post-outer'> 3195<div class='post'>
3196<script type='application/ld+json'>{ 3197 "@context": "http://schema.org", 3198 "@type": "BlogPosting", 3199 "mainEntityOfPage": { 3200 "@type": "WebPage", 3201 "@id": "https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html" 3202 }, 3203 "headline": "From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor","description": "From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor A parcel landed at my door from Nextion Systems : the new Open Ne...","datePublished": "2026-06-27T19:46:00+05:30", 3204 "dateModified": "2026-06-27T19:46:50+05:30","image": { 3205 "@type": "ImageObject","url": "https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w1200-h630-n-k-no-nu", 3206 "height": 630, 3207 "width": 1200},"publisher": { 3208 "@type": "Organization", 3209 "name": "Blogger", 3210 "logo": { 3211 "@type": "ImageObject", 3212 "url": "https://blogger.googleusercontent.com/img/b/U2hvZWJveA/AVvXsEgfMvYAhAbdHksiBA24JKmb2Tav6K0GviwztID3Cq4VpV96HaJfy0viIu8z1SSw_G9n5FQHZWSRao61M3e58ImahqBtr7LiOUS6m_w59IvDYwjmMcbq3fKW4JSbacqkbxTo8B90dWp0Cese92xfLMPe_tg11g/h60/", 3213 "width": 206, 3214 "height": 60 3215 } 3216 },"author": { 3217 "@type": "Person", 3218 "name": "Observer" 3219 } 3220}</script>
3220 3221<a name='8357775696645137267'></a> 3222<h3 class='post-title entry-title'> 3223<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'>From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor</a> 3224</h3> 3225<div class='post-share-buttons post-share-buttons-top'> 3226<div class='byline post-share-buttons goog-inline-block'> 3227<div aria-owns='sharing-popup-Blog1-byline-8357775696645137267' class='sharing' data-title='From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor'> 3228<button aria-controls='sharing-popup-Blog1-byline-8357775696645137267' aria-label='Share' class='sharing-button touch-icon-button' id='sharing-button-Blog1-byline-8357775696645137267' role='button'> 3229<div class='flat-icon-button ripple'> 3230<svg class='svg-icon-24'> 3231<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_share_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3232</svg> 3233</div> 3234</button> 3235<div class='share-buttons-container'> 3236<ul aria-hidden='true' aria-label='Share' class='share-buttons hidden' id='sharing-popup-Blog1-byline-8357775696645137267' role='menu'> 3237<li> 3238<span aria-label='Get link' class='sharing-platform-button sharing-element-link' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Get link'> 3239<svg class='svg-icon-24 touch-icon sharing-link'> 3240<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_link_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3241</svg> 3242<span class='platform-sharing-text'>Get link</span> 3243</span> 3244</li> 3245<li> 3246<span aria-label='Share to Facebook' class='sharing-platform-button sharing-element-facebook' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=facebook' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to Facebook'> 3247<svg class='svg-icon-24 touch-icon sharing-facebook'> 3248<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_facebook_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3249</svg> 3250<span class='platform-sharing-text'>Facebook</span> 3251</span> 3252</li> 3253<li> 3254<span aria-label='Share to X' class='sharing-platform-button sharing-element-twitter' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=twitter' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to X'> 3255<svg class='svg-icon-24 touch-icon sharing-twitter'> 3256<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_twitter_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3257</svg> 3258<span class='platform-sharing-text'>X</span> 3259</span> 3260</li> 3261<li> 3262<span aria-label='Share to Pinterest' class='sharing-platform-button sharing-element-pinterest' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=pinterest' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to Pinterest'> 3263<svg class='svg-icon-24 touch-icon sharing-pinterest'> 3264<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_pinterest_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3265</svg> 3266<span class='platform-sharing-text'>Pinterest</span> 3267</span> 3268</li> 3269<li> 3270<span aria-label='Email' class='sharing-platform-button sharing-element-email' data-href='https://www.blogger.com/share-post.g?blogID=6383593460046105926&postID=8357775696645137267&target=email' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Email'> 3271<svg class='svg-icon-24 touch-icon sharing-email'> 3272<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_24_email_dark' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3273</svg> 3274<span class='platform-sharing-text'>Email</span> 3275</span> 3276</li> 3277<li aria-hidden='true' class='hidden'> 3278<span aria-label='Share to other apps' class='sharing-platform-button sharing-element-other' data-url='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' role='menuitem' tabindex='-1' title='Share to other apps'> 3279<svg class='svg-icon-24 touch-icon sharing-sharingOther'> 3280<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_more_horiz_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3281</svg> 3282<span class='platform-sharing-text'>Other Apps</span> 3283</span> 3284</li> 3285</ul> 3286</div> 3287</div> 3288</div> 3289</div> 3290<div class='post-header'> 3291<div class='post-header-line-1'> 3292<span class='byline post-timestamp'> 3293- 3294<meta content='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'/> 3295<a class='timestamp-link' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' rel='bookmark' title='permanent link'> 3296<time class='published' datetime='2026-06-27T19:46:00+05:30' title='2026-06-27T19:46:00+05:30'> 3297June 27, 2026 3298</time> 3299</a> 3300</span> 3301</div> 3302</div> 3303<div class='container post-body entry-content' id='post-snippet-835
33037775696645137267'> 3304<div class='snippet-thumbnail'> 3305<img alt='Image' sizes='(max-width: 800px) 20vw, 128px' src='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g' srcset='https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w32-h32-n-k-no-nu 32w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w64-h64-n-k-no-nu 64w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w128-h128-n-k-no-nu 128w, https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g=w256-h256-n-k-no-nu 256w'/> 3306</div> 3307<div class='post-snippet snippet-container r-snippet-container'> 3308<div class='snippet-item r-snippetized'> 3309From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor A parcel landed at my door from Nextion Systems : the new Open Nextion — an ESP32-based board with a built-in capacitive touch display. Came in two flavors (3.5" and 2.8"), plus a speaker, a dual-microphone board, and an IO adapter. The kind of package that's begging to be turned into something it was never meant to do. So, naturally, I did exactly that. What's actually in the box Before any of the fun started, here's what the Open Nextion package shipped with: Two Open Nextion boards — 3.5" and 2.8" variants Onboard speaker Dual-microphone board (for stereo capture / wake-word work) IO adapter for breaking out the rest of the GPIO The board itself is generous on connectivity: USB-C , a battery connector with a real RTC , I2C, UART , a camera interface, SD card , plus mic and speaker pins. It's basically a tiny computer with a touchscreen bol... 3310</div> 3311<a class='snippet-fade r-snippet-fade hidden' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'></a> 3312</div> 3313</div> 3314<div class='post-bottom'> 3315<div class='post-footer float-container'> 3316<div class='post-footer-line post-footer-line-1'> 3317<span class='byline post-comment-link container'> 3318<a class='comment-link' href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html#comments' onclick=''> 3319<svg class='svg-icon-24 touch-icon'> 3320<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_mode_comment_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3321</svg> 3322<span class='num_comments'> 33231 comment 3324</span> 3325</a> 3326</span> 3327</div> 3328<div class='post-footer-line post-footer-line-2'> 3329</div> 3330<div class='post-footer-line post-footer-line-3'> 3331</div> 3332</div> 3333<div class='jump-link flat-button ripple'> 3334<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html' title='From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor'> 3335Read more 3336</a> 3337</div> 3338</div> 3339</div> 3340</div> 3341</article> 3342<div class='mobile-ad'> 3343<div class='inline-ad'> 3344<ins class='adsbygoogle' data-ad-client='ca-pub-7526045351349686' data-ad-format='auto' data-ad-host='ca-h
3344ost-pub-1556223355139109' data-analytics-uacct='UA-39676116-1' style='/* Done in css. */'> 3345</ins>
3346<script> 3347 (adsbygoogle = window.adsbygoogle || []).push({}); 3348 </script>
3348 3349</div> 3350</div> 3351</div> 3352<div class='blog-pager container' id='blog-pager'> 3353<a class='blog-pager-older-link flat-button ripple' href='https://www.h4hacks.com/search?updated-max=2026-06-27T19:46:00%2B05:30&max-results=7' title='More posts'> 3354More posts 3355</a> 3356</div> 3357<style> 3358 .post-body a.b-tooltip-container { 3359 position: relative; 3360 display: inline-block; 3361 } 3362 3363 .post-body a.b-tooltip-container .b-tooltip { 3364 display: block !important; 3365 position: absolute; 3366 top: 100%; 3367 left: 50%; 3368 transform: translate(-20%, 1px); 3369 visibility: hidden; 3370 opacity: 0; 3371 z-index: 1; 3372 transition: opacity 0.2s ease-in-out; 3373 } 3374 3375 .post-body a.b-tooltip-container .b-tooltip iframe { 3376 width: 200px; 3377 height: 198px; 3378 max-width: none; 3379 border: none; 3380 border-radius: 20px; 3381 box-shadow: 1px 1px 3px 1px rgba(0, 0, 0, 0.2); 3382 } 3383 3384 @media (hover: hover) { 3385 .post-body a.b-tooltip-container:hover .b-tooltip { 3386 visibility: visible; 3387 opacity: 1; 3388 } 3389 } 3390 </style> 3391</div> 3392</div> 3393</main> 3394</div> 3395<footer class='footer section' id='footer' name='Footer'><div class='widget Attribution' data-version='2' id='Attribution1'> 3396<div class='widget-content'> 3397<div class='blogger'> 3398<a href='https://www.blogger.com' rel='nofollow'> 3399<svg class='svg-icon-24'> 3400<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_post_blogger_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3401</svg> 3402Powered by Blogger 3403</a> 3404</div> 3405<div class='image-attribution'> 3406Theme images by <a href="http://www.offset.com/photos/225860">Radius Images</a> 3407</div> 3408</div> 3409</div></footer> 3410</div> 3411</div> 3412</div> 3413<aside class='sidebar-container container sidebar-invisible' role='complementary'> 3414<div class='navigation'> 3415<button class='svg-icon-24-button flat-icon-button ripple sidebar-back'> 3416<svg class='svg-icon-24'> 3417<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_arrow_back_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3418</svg> 3419</button> 3420</div> 3421<div class='sidebar_top_wrapper'> 3422<div class='sidebar_top section' id='sidebar_top' name='Sidebar (Top)'><div class='widget Profile' data-version='2' id='Profile1'> 3423<div class='wrapper solo'> 3424<div class='widget-content individual'> 3425<a href='https://www.blogger.com/profile/12902040797859045174' rel='nofollow'> 3426<img alt='My photo' class='profile-img' height='120' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQGEzXGAAavcVK6bnAiuZyvDrOIE1XMIPkXapluHktd7axLNeMdIFd4McjUYPvTcDnxjdxNr7jjPHBLPoo4WHRlUCIUS7BiOV13PrvabWlbuuL5oThGMwFmBSBwyUC5g/s220/IMG_20201231_200026.jpg' width='120'/> 3427</a> 3428<div class='profile-info'> 3429<dl class='profile-datablock'> 3430<dt class='profile-data'> 3431<a class='profile-link g-profile' href='https://www.blogger.com/profile/12902040797859045174' rel='author nofollow'> 3432Observer 3433</a> 3434</dt> 3435</dl> 3436<a class='profile-link visit-profile pill-button' href='https://www.blogger.com/profile/12902040797859045174' rel='author'> 3437Visit profile 3438</a> 3439</div> 3440</div> 3441</div> 3442</div></div> 3443</div> 3444<div class='sidebar_bottom section' id='sidebar_bottom' name='Sidebar (Bottom)'><div class='widget BlogArchive' data-version='2' id='BlogArchive1'> 3445<details class='collapsible extendable' open='open'> 3446<summary> 3447<div class='collapsible-title'> 3448<h3 class='title'> 3449Older posts 3450</h3> 3451<svg class='svg-icon-24 chevron-down'> 3452<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3453</svg> 3454<svg class='svg-icon-24 chevron-up'> 3455<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3456</svg> 3457</div> 3458</summary> 3459<div class='widget-content'> 3460<div id='ArchiveList'> 3461<div id='BlogArchive1_ArchiveList'> 3462<div class='first-items'> 3463<ul class='hierarchy'> 3464<li class='archivedate'> 3465<div class='hierarchy-title'> 3466<a class='post-count-link' href='https://www.h4hacks.com/2026/'> 34672026 3468<span class='post-count'>4</span> 3469</a> 3470</div> 3471<div class='hierarchy-content'> 3472<ul class='hierarchy'> 3473<li class='archivedate'> 3474<div class='hierarchy-title'> 3475<a class='post-count-link' href='https://www.h4hacks.com/2026/07/'> 3476Jul
3477<span class='post-count'>2</span> 3478</a> 3479</div> 3480<div class='hierarchy-content'> 3481<ul class='posts hierarchy'> 3482<li> 3483<a href='https://www.h4hacks.com/2026/07/running-four-ai-models-fully-offline-on.html'>Running four AI models fully offline on a Nextion ...</a> 3484</li> 3485<li> 3486<a href='https://www.h4hacks.com/2026/07/meet-dhara-send-files-without-cloud.html'>Meet Dhara — send files without the cloud, without...</a> 3487</li> 3488</ul> 3489</div> 3490</li> 3491<li class='archivedate'> 3492<div class='hierarchy-title'> 3493<a class='post-count-link' href='https://www.h4hacks.com/2026/06/'> 3494Jun 3495<span class='post-count'>2</span> 3496</a> 3497</div> 3498<div class='hierarchy-content'> 3499<ul class='posts hierarchy'> 3500<li> 3501<a href='https://www.h4hacks.com/2026/06/cloning-came-parking-gate-remote-with.html'>Cloning a CAME parking-gate remote with a Flipper ...</a> 3502</li> 3503<li> 3504<a href='https://www.h4hacks.com/2026/06/from-unboxing-touchscreen-dev-board-to.html'>From unboxing a touchscreen dev board to vibe-codi...</a> 3505</li> 3506</ul> 3507</div> 3508</li> 3509</ul> 3510</div> 3511</li> 3512</ul> 3513</div> 3514<div class='remaining-items'> 3515<ul class='hierarchy'> 3516<li class='archivedate'> 3517<div class='hierarchy-title'> 3518<a class='post-count-link' href='https://www.h4hacks.com/2023/'> 35192023 3520<span class='post-count'>1</span> 3521</a> 3522</div> 3523<div class='hierarchy-content'> 3524<ul class='hierarchy'> 3525<li class='archivedate'> 3526<div class='hierarchy-title'> 3527<a class='post-count-link' href='https://www.h4hacks.com/2023/06/'> 3528Jun 3529<span class='post-count'>1</span> 3530</a> 3531</div> 3532<div class='hierarchy-content'> 3533</div> 3534</li> 3535</ul> 3536</div> 3537</li> 3538<li class='archivedate'> 3539<div class='hierarchy-title'> 3540<a class='post-count-link' href='https://www.h4hacks.com/2022/'> 35412022 3542<span class='post-count'>2</span> 3543</a> 3544</div> 3545<div class='hierarchy-content'> 3546<ul class='hierarchy'> 3547<li class='archivedate'> 3548<div class='hierarchy-title'> 3549<a class='post-count-link' href='https://www.h4hacks.com/2022/03/'> 3550Mar 3551<span class='post-count'>1</span> 3552</a> 3553</div> 3554<div class='hierarchy-content'> 3555</div> 3556</li> 3557<li class='archivedate'> 3558<div class='hierarchy-title'> 3559<a class='post-count-link' href='https://www.h4hacks.com/2022/01/'> 3560Jan 3561<span class='post-count'>1</span> 3562</a> 3563</div> 3564<div class='hierarchy-content'> 3565</div> 3566</li> 3567</ul> 3568</div> 3569</li> 3570<li class='archivedate'> 3571<div class='hierarchy-title'> 3572<a class='post-count-link' href='https://www.h4hacks.com/2017/'> 35732017 3574<span class='post-count'>1</span> 3575</a> 3576</div> 3577<div class='hierarchy-content'> 3578<ul class='hierarchy'> 3579<li class='archivedate'> 3580<div class='hierarchy-title'> 3581<a class='post-count-link' href='https://www.h4hacks.com/2017/03/'> 3582Mar 3583<span class='post-count'>1</span> 3584</a> 3585</div> 3586<div class='hierarchy-content'> 3587</div> 3588</li> 3589</ul> 3590</div> 3591</li> 3592<li class='archivedate'> 3593<div class='hierarchy-title'> 3594<a class='post-count-link' href='https://www.h4hacks.com/2016/'> 35952016 3596<span class='post-count'>1</span> 3597</a> 3598</div> 3599<div class='hierarchy-content'> 3600<ul class='hierarchy'> 3601<li class='archivedate'> 3602<div class='hierarchy-title'> 3603<a class='post-count-link' href='https://www.h4hacks.com/2016/05/'> 3604May 3605<span class='post-count'>1</span> 3606</a> 3607</div> 3608<div class='hierarchy-content'> 3609</div> 3610</li> 3611</ul> 3612</div> 3613</li> 3614<li class='archivedate'> 3615<div class='hierarchy-title'> 3616<a class='post-count-link' href='https://www.h4hacks.com/2015/'> 36172015 3618<span class='post-count'>7</span> 3619</a> 3620</div> 3621<div class='hierarchy-content'> 3622<ul class='hierarchy'> 3623<li class='archivedate'> 3624<div class='hierarchy-title'> 3625<a class='post-count-link' href='https://www.h4hacks.com/2015/10/'> 3626Oct 3627<span class='post-count'>1</span> 3628</a> 3629</div> 3630<div class='hierarchy-content'> 3631</div> 3632</li> 3633<li class='archivedate'> 3634<div class='hierarchy-title'> 3635<a class='post-count-link' href='https://www.h4hacks.com/2015/08/'> 3636Aug 3637<span class='post-count'>1</span> 3638</a> 3639</div> 3640<div class='hierarchy-content'> 3641</div> 3642</li> 3643<li class='archivedate'> 3644<div class='hierarchy-title'> 3645<a class='post-count-link' href='https://www.h4hacks.com/2015/07/'> 3646Jul
3647<span class='post-count'>2</span> 3648</a> 3649</div> 3650<div class='hierarchy-content'> 3651</div> 3652</li> 3653<li class='archivedate'> 3654<div class='hierarchy-title'> 3655<a class='post-count-link' href='https://www.h4hacks.com/2015/06/'> 3656Jun 3657<span class='post-count'>3</span> 3658</a> 3659</div> 3660<div class='hierarchy-content'> 3661</div> 3662</li> 3663</ul> 3664</div> 3665</li> 3666<li class='archivedate'> 3667<div class='hierarchy-title'> 3668<a class='post-count-link' href='https://www.h4hacks.com/2014/'> 36692014 3670<span class='post-count'>3</span> 3671</a> 3672</div> 3673<div class='hierarchy-content'> 3674<ul class='hierarchy'> 3675<li class='archivedate'> 3676<div class='hierarchy-title'> 3677<a class='post-count-link' href='https://www.h4hacks.com/2014/11/'> 3678Nov 3679<span class='post-count'>1</span> 3680</a> 3681</div> 3682<div class='hierarchy-content'> 3683</div> 3684</li> 3685<li class='archivedate'> 3686<div class='hierarchy-title'> 3687<a class='post-count-link' href='https://www.h4hacks.com/2014/10/'> 3688Oct 3689<span class='post-count'>2</span> 3690</a> 3691</div> 3692<div class='hierarchy-content'> 3693</div> 3694</li> 3695</ul> 3696</div> 3697</li> 3698</ul> 3699</div> 3700<span class='show-more pill-button'>Show more</span> 3701<span class='show-less hidden pill-button'>Show less</span> 3702</div> 3703</div> 3704</div> 3705</details> 3706</div><div class='widget Label' data-version='2' id='Label1'> 3707<details class='collapsible extendable'> 3708<summary> 3709<div class='collapsible-title'> 3710<h3 class='title'> 3711Labels 3712</h3> 3713<svg class='svg-icon-24 chevron-down'> 3714<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_more_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3715</svg> 3716<svg class='svg-icon-24 chevron-up'> 3717<use xlink:href='/responsive/sprite_v1_6.css.svg#ic_expand_less_black_24dp' xmlns:xlink='http://www.w3.org/1999/xlink'></use> 3718</svg> 3719</div> 3720</summary> 3721<div class='widget-content list-label-widget-content'> 3722<div class='first-items'> 3723<ul> 3724<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20print'>3d print</a></li> 3725<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20printing'>3d printing</a></li> 3726<li><a class='label-name' href='https://www.h4hacks.com/search/label/3d%20printing%20in%20india'>3d printing in india</a></li> 3727<li><a class='label-name' href='https://www.h4hacks.com/search/label/AI'>AI</a></li> 3728<li><a class='label-name' href='https://www.h4hacks.com/search/label/AirTag'>AirTag</a></li> 3729<li><a class='label-name' href='https://www.h4hacks.com/search/label/arduino'>arduino</a></li> 3730<li><a class='label-name' href='https://www.h4hacks.com/search/label/arnold'>arnold</a></li> 3731<li><a class='label-name' href='https://www.h4hacks.com/search/label/arnold%20schwarzenegger'>arnold schwarzenegger</a></li> 3732<li><a class='label-name' href='https://www.h4hacks.com/search/label/auto%20exposure'>auto exposure</a></li> 3733<li><a class='label-name' href='https://www.h4hacks.com/search/label/BLE'>BLE</a></li> 3734</ul> 3735</div> 3736<div class='remaining-items'> 3737<ul> 3738<li><a class='label-name' href='https://www.h4hacks.com/search/label/bug%20zapper'>bug zapper</a></li> 3739<li><a class='label-name' href='https://www.h4hacks.com/search/label/bypass%20otp'>bypass otp</a></li> 3740<li><a class='label-name' href='https://www.h4hacks.com/search/label/CAME'>CAME</a></li> 3741<li><a class='label-name' href='https://www.h4hacks.com/search/label/camera%20module'>camera module</a></li> 3742<li><a class='label-name' href='https://www.h4hacks.com/search/label/cheap%203d%20printer'>cheap 3d printer</a></li> 3743<li><a class='label-name' href='https://www.h4hacks.com/search/label/chromedriver'>chromedriver</a></li> 3744<li><a class='label-name' href='https://www.h4hacks.com/search/label/Claude%20AI'>Claude AI</a></li> 3745<li><a class='label-name' href='https://www.h4hacks.com/search/label/container'>container</a></li> 3746<li><a class='label-name' href='https://www.h4hacks.com/search/label/cool%20project'>cool project</a></li> 3747<li><a class='label-name' href='https://www.h4hacks.com/search/label/criticality'>criticality</a></li> 3748<li><a class='label-name' href='https://www.h4hacks.com/search/label/cvss'>cvss</a></li> 3749<li><a class='label-name' href='https://www.h4hacks.com/search/label/cvssv3'>cvssv3</a></li> 3750<li><a class='label-name' href='https://www.h4hacks.com/search/label/Cybersecurity'>Cybersecurity</a></li> 3751<li><a class='label-name' href='https://www.h4hacks.com/search/label/day%20night%20timelapse'>day night timelapse</a></li> 3752<li><a class='label-name' href='https://www.h4hacks.com/search/label/desktop%20toy'>desktop toy</a></li> 3753<li><a class='label-name' href='https://www.h4hacks.com/search/label/digilocker'>digilocker</a></li> 3754<li><a class='label-name' href='https://www.h4hacks.com/search/label/diy'>diy</a></li> 3755<li><a class='label-name' href='https://www.h4hacks.com/search/label/diy%20hacking'>diy hacking</a></li> 3756<li><a class='label-name' href='https://www.h4hacks.com/search/label/do%20it%20yourself'>do it yourself</a></li> 3757<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP-IDF'>ESP-IDF</a></li> 3758<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP32'>ESP32</a></li> 3759<li><a class='label-name' href='https://www.h4hacks.com/search/label/ESP32-S3'>ESP32-S3</a></li> 3760<li><a class='label-name' href='https://www.h4hacks.com/search/label/ethical%20hacking'>ethical hacking</a></li> 3761<li><a class='label-name' href='https://www.h4hacks.com/search/label/fix'>fix</a></li> 3762<li><a class='label-name' href='https://www.h4hacks.com/search/label/Flipper%20Zero'>Flipper Zero</a></li> 3763<li><a class='label-name' href='https://www.h4hacks.com/search/label/fun'>fun</a></li> 3764<li><a class='label-name' href='https://www.h4hacks.com/search/label/governance'>governance</a></li> 3765<li><a class='label-name' href='https://www.h4hacks.com/search/label/hacking'>hacking</a></li> 3766<li><a class='label-name' href='https://www.h4hacks.com/search/label/hacks'>hacks</a></li> 3767<li><a class='label-name' href='https://www.h4hacks.com/search/label/Hardware%20Hacking'>Hardware Hacking</a></li> 3768<li><a class='label-name' href='https://www.h4hacks.com/search/label/hologram'>hologram</a></li> 3769<li><a class='label-name' href='https://www.h4hacks.com/search/label/how%20to%20make%203d%20printer'>how to make 3d printer</a></li> 3770<li><a class='label-name' href='https://www.h4hacks.com/search/label/i2c'>i2c</a></li> 3771<li><a class='label-name' href='https://www.h4hacks.com/search/label/india'>india</a></li> 3772<li><a class='label-name' href='https://www.h4hacks.com/search/label/india%203d%20printer'>india 3d printer</a></li> 3773<li><a class='label-name' href='https://www.h4hacks.com/search/label/ipa
3773d'>ipad</a></li> 3774<li><a class='label-name' href='https://www.h4hacks.com/search/label/kali%20linux'>kali linux</a></li> 3775<li><a class='label-name' href='https://www.h4hacks.com/search/label/kickstarter'>kickstarter</a></li> 3776<li><a class='label-name' href='https://www.h4hacks.com/search/label/kids'>kids</a></li> 3777<li><a class='label-name' href='https://www.h4hacks.com/search/label/LLM'>LLM</a></li> 3778<li><a class='label-name' href='https://www.h4hacks.com/search/label/Machine%20Learning'>Machine Learning</a></li> 3779<li><a class='label-name' href='https://www.h4hacks.com/search/label/Malayalam'>Malayalam</a></li> 3780<li><a class='label-name' href='https://www.h4hacks.com/search/label/mk808'>mk808</a></li> 3781<li><a class='label-name' href='https://www.h4hacks.com/search/label/mobile%20hacking'>mobile hacking</a></li> 3782<li><a class='label-name' href='https://www.h4hacks.com/search/label/mobile%20security'>mobile security</a></li> 3783<li><a class='label-name' href='https://www.h4hacks.com/search/label/moorebot'>moorebot</a></li> 3784<li><a class='label-name' href='https://www.h4hacks.com/search/label/moorebot%20scout'>moorebot scout</a></li> 3785<li><a class='label-name' href='https://www.h4hacks.com/search/label/motion%20detection'>motion detection</a></li> 3786<li><a class='label-name' href='https://www.h4hacks.com/search/label/multithreaded'>multithreaded</a></li> 3787<li><a class='label-name' href='https://www.h4hacks.com/search/label/Nextion'>Nextion</a></li> 3788<li><a class='label-name' href='https://www.h4hacks.com/search/label/old%20post'>old post</a></li> 3789<li><a class='label-name' href='https://www.h4hacks.com/search/label/OLED'>OLED</a></li> 3790<li><a class='label-name' href='https://www.h4hacks.com/search/label/password%20audit'>password audit</a></li> 3791<li><a class='label-name' href='https://www.h4hacks.com/search/label/password%20spray'>password spray</a></li> 3792<li><a class='label-name' href='https://www.h4hacks.com/search/label/pen-test%20platform'>pen-test platform</a></li> 3793<li><a class='label-name' href='https://www.h4hacks.com/search/label/penetration%20testing'>penetration testing</a></li> 3794<li><a class='label-name' href='https://www.h4hacks.com/search/label/Pentesting'>Pentesting</a></li> 3795<li><a class='label-name' href='https://www.h4hacks.com/search/label/picamera'>picamera</a></li> 3796<li><a class='label-name' href='https://www.h4hacks.com/search/label/Princeton'>Princeton</a></li> 3797<li><a class='label-name' href='https://www.h4hacks.com/search/label/prusa%20i3'>prusa i3</a></li> 3798<li><a class='label-name' href='https://www.h4hacks.com/search/label/PT2262'>PT2262</a></li> 3799<li><a class='label-name' href='https://www.h4hacks.com/search/label/python'>python</a></li> 3800<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20api'>qualys api</a></li> 3801<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20ssllabs'>qualys ssllabs</a></li> 3802<li><a class='label-name' href='https://www.h4hacks.com/search/label/qualys%20ssllabs%20api'>qualys ssllabs api</a></li> 3803<li><a class='label-name' href='https://www.h4hacks.com/search/label/raspberry%20pi'>raspberry pi</a></li> 3804<li><a class='label-name' href='https://www.h4hacks.com/search/label/rating'>rating</a></li> 3805<li><a class='label-name' href='https://www.h4hacks.com/search/label/Re%20purpose'>Re purpose</a></li> 3806<li><a class='label-name' href='https://www.h4hacks.com/search/label/Replay%20Attack'>Replay Attack</a></li> 3807<li><a class='label-name' href='https://www.h4hacks.com/search/label/robot'>robot</a></li> 3808<li><a class='label-name' href='https://www.h4hacks.com/search/label/Rolling%20Code'>Rolling Code</a></li> 3809<li><a class='label-name' href='https://www.h4hacks.com/search/label/SANS'>SANS</a></li> 3810<li><a class='label-name' href='https://www.h4hacks.com/search/label/scout'>scout</a></li> 3811<li><a class='label-name' href='https://www.h4hacks.com/search/label/SEC575'>SEC575</a></li> 3812<li><a class='label-name' href='https://www.h4hacks.com/search/label/security'>security</a></li> 3813<li><a class='label-name' href='https://www.h4hacks.com/search/label/selenium'>selenium</a></li> 3814<li><a class='label-name' href='https://www.h4hacks.com/search/label/smartphone'>smartphone</a></li> 3815<li><a class='label-name' href='https://www.h4hacks.com/search/label/SSD1306'>SSD1306</a></li> 3816<li><a class='label-name' href='https://www.h4hacks.com/search/label/ssl%20labs'>ssl labs</a></li> 3817<li><a class='label-name' href='https://www.h4hacks.com/search/label/Sub-GHz'>Sub-GHz</a></li> 3818<li><a class='label-name' href='https://www.h4hacks.com/search/label/Sub-GHz%20Radio'>Sub-GHz Radio</a></li> 3819<li><a class='label-name' href='https://www.h4hacks.com/search/label/t800'>t800</a></li> 3820<li><a class='label-name' href='https://www.h4hacks.com/search/label/tablet'>tablet</a></li> 3821<li><a class='label-name' href='https://www.h4hacks.com/search/label/terminator'>terminator</a></li> 3822<li><a class='label-name' href='https://www.h4hacks.com/search/label/terminator%20genisys'>terminator genisys</a></li> 3823<li><a class='label-name' href='https://www.h4hacks.com/search/label/timelapse'>timelapse</a></li> 3824<li><a class='label-name' href='https://www.h4hacks.com/search/label/TinyML'>TinyML</a></li> 3825<li><a class='label-name' href='https://www.h4hacks.com/search/label/usb%20toy'>usb toy</a></li> 3826<li><a class='label-name' href='https://www.h4hacks.com/search/label/Vibe%20Coding'>Vibe Coding</a></li> 3827<li><a class='label-name' href='https://www.h4hacks.com/search/label/vmware%20tools'>vmware tools</a></li> 3828<li><a class='label-name' href='https://www.h4hacks.com/search/label/WiFi%20Security'>WiFi Security</a></li> 3829</ul> 3830</div> 3831<span class='show-more pill-button'>Show more</span> 3832<span class='show-less hidden pill-button'>Show less</span> 3833</div> 3834</details> 3835</div><div class='widget ReportAbuse' data-version='2' id='ReportAbuse1'> 3836<h3 class='title'> 3837<a class='report_abuse' href='https://www.blogger.com/go/report-abuse' rel='noopener nofollow' target='_blank'> 3838Report Abuse 3839</a> 3840</h3> 3841</div><div class='widget Stats' data-version='2' id='Stats1'> 3842<h3 class='title'> 3843Stats 3844</h3> 3845<div class='widget-content'> 3846<div id='Stats1_content' style='display: none;'>
3847<script src='https://www.gstatic.com/charts/loader.js' type='text/javascript'></script>
3847 3848<span id='Stats1_sparklinespan' style='display:inline-block; width:75px; height:30px'></span> 3849<span class='counter-wrapper text-counter-wrapper' id='Stats1_totalCount'> 3850</span> 3851</div> 3852</div> 3853</div><div class='widget HTML' data-version='2' id='HTML1'> 3854<h3 class='title'> 3855Please subscibe 3856</h3> 3857<div class='widget-content'>
3858<script src="https://apis.google.com/js/platform.js"></script>
3858 3859<br /> 3860<div class="g-ytsubscribe" data-channelid="UCsNXd6AQGDWVzyo7aX5MWWw" data-layout="full" data-theme="dark" data-count="default"></div> 3861</div> 3862</div><div class='widget HTML' data-version='2' id='HTML2'> 3863<h3 class='title'> 3864Follow my facebook page 3865</h3> 3866<div class='widget-content'> 3867<div id="fb-root"></div>
3868<script async="async" defer="defer" crossorigin="anonymous" src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v13.0&appId=367647723348582&autoLogAppEvents=1" nonce="GRsbqH5h"></script>
3868 3869<br /> 3870 3871<div class="fb-page" data-href="https://www.facebook.com/h4hacks/" data-tabs="timeline" data-width="" data-height="" data-small-header="false" data-adapt-container-width="true" data-hide-cover="false" data-show-facepile="true"><blockquote cite="https://www.facebook.com/h4hacks/" class="fb-xfbml-parse-ignore"><a href="https://www.facebook.com/h4hacks/">H4hacks</a></blockquote></div> 3872</div> 3873</div><div class='widget HTML' data-version='2' id='HTML3'> 3874<h3 class='title'> 3875Join us on telegram 3876</h3> 3877<div class='widget-content'> 3878<br />
3879<script async="async" src="https://telegram.org/js/telegram-widget.js?15" data-telegram-post="h4hack/36" data-width="10%" data-dark="1"></script>
3879 3880</div> 3881</div></div> 3882</aside>
3883<script type="text/javascript" src="https://resources.blogblog.com/blogblog/data/res/608349471-indie_compiled.js" async="true"></script>
3883 3884
3885<script type="text/javascript" src="https://www.blogger.com/static/v1/widgets/851759228-widgets.js"></script>
vendor: 1 bytes, line 3885
3885
3886<script type='text/javascript'> 3887window['__wavt'] = 'AAPvtVkaJej-exP32pQ-iIbP--Hj:1790259232200';_WidgetManager._Init('//www.blogger.com/rearrange?blogID\x3d6383593460046105926','//www.h4hacks.com/2026/','6383593460046105926'); 3888_WidgetManager._SetDataContext([{'name': 'blog', 'data': {'blogId': '6383593460046105926', 'title': 'H4hacks', 'url': 'https://www.h4hacks.com/2026/', 'canonicalUrl': 'https://www.h4hacks.com/2026/', 'homepageUrl': 'https://www.h4hacks.com/', 'searchUrl': 'https://www.h4hacks.com/search', 'canonicalHomepageUrl': 'https://www.h4hacks.com/', 'blogspotFaviconUrl': 'https://www.h4hacks.com/favicon.ico', 'bloggerUrl': 'https://www.blogger.com', 'hasCustomDomain': true, 'httpsEnabled': true, 'enabledCommentProfileImages': true, 'gPlusViewType': 'FILTERED_POSTMOD', 'adultContent': false, 'analyticsAccountNumber': 'UA-39676116-1', 'encoding': 'UTF-8', 'locale': 'en', 'localeUnderscoreDelimited': 'en', 'languageDirection': 'ltr', 'isPrivate': false, 'isMobile': false, 'isMobileRequest': false, 'mobileClass': '', 'isPrivateBlog': false, 'isDynamicViewsAvailable': true, 'feedLinks': '\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22H4hacks - Atom\x22 href\x3d\x22https://www.h4hacks.com/feeds/posts/default\x22 /\x3e\n\x3clink rel\x3d\x22alternate\x22 type\x3d\x22application/rss+xml\x22 title\x3d\x22H4hacks - RSS\x22 href\x3d\x22https://www.h4hacks.com/feeds/posts/default?alt\x3drss\x22 /\x3e\n\x3clink rel\x3d\x22service.post\x22 type\x3d\x22application/atom+xml\x22 title\x3d\x22H4hacks - Atom\x22 href\x3d\x22https://www.blogger.com/feeds/6383593460046105926/posts/default\x22 /\x3e\n', 'meTag': '', 'adsenseClientId': 'ca-pub-7526045351349686', 'adsenseHostId': 'ca-host-pub-1556223355139109', 'adsenseHasAds': true, 'adsenseAutoAds': false, 'boqCommentIframeForm': true, 'loginRedirectParam': '', 'isGoogleEverywhereLinkTooltipEnabled': true, 'view': '', 'dynamicViewsCommentsSrc': '//www.blogblog.com/dynamicviews/4224c15c4e7c9321/js/comments.js', 'dynamicViewsScriptSrc': '//www.blogblog.com/dynamicviews/7ce469edaf870342', 'plusOneApiSrc': 'https://apis.google.com/js/platform.js', 'disableGComments': true, 'interstitialAccepted': false, 'sharing': {'platforms': [{'name': 'Get link', 'key': 'link', 'shareMessage': 'Get link', 'target': ''}, {'name': 'Facebook', 'key': 'facebook', 'shareMessage': 'Share to Facebook', 'target': 'facebook'}, {'name': 'BlogThis!', 'key': 'blogThis', 'shareMessage': 'BlogThis!', 'target': 'blog'}, {'name': 'X', 'key': 'twitter', 'shareMessage': 'Share to X', 'target': 'twitter'}, {'name': 'Pinterest', 'key': 'pinterest', 'shareMessage': 'Share to Pinterest', 'target': 'pinterest'}, {'name': 'Email', 'key': 'email', 'shareMessage': 'Email', 'target': 'email'}], 'disableGooglePlus': true, 'googlePlusShareButtonWidth': 0, 'googlePlusBootstrap': '\x3cscript type\x3d\x22text/javascript\x22\x3ewindow.___gcfg \x3d {\x27lang\x27: \x27en\x27};\x3c/script\x3e'}
3888, 'hasCustomJumpLinkMessage': false, 'jumpLinkMessage': 'Read more', 'pageType': 'archive', 'pageName': '2026', 'pageTitle': 'H4hacks: 2026', 'metaDescription': 'Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security'}}, {'name': 'features', 'data': {}}, {'name': 'messages', 'data': {'edit': 'Edit', 'linkCopiedToClipboard': 'Link copied to clipboard!', 'ok': 'Ok', 'postLink': 'Post Link'}}, {'name': 'template', 'data': {'name': 'custom', 'localizedName': 'Custom', 'isResponsive': true, 'isAlternateRendering': false, 'isCustom': true}}, {'name': 'view', 'data': {'classic': {'name': 'classic', 'url': '?view\x3dclassic'}, 'flipcard': {'name': 'flipcard', 'url': '?view\x3dflipcard'}, 'magazine': {'name': 'magazine', 'url': '?view\x3dmagazine'}, 'mosaic': {'name': 'mosaic', 'url': '?view\x3dmosaic'}, 'sidebar': {'name': 'sidebar', 'url': '?view\x3dsidebar'}, 'snapshot': {'name': 'snapshot', 'url': '?view\x3dsnapshot'}, 'timeslide': {'name': 'timeslide', 'url': '?view\x3dtimeslide'}, 'isMobile': false, 'title': 'H4hacks', 'description': 'Website about Hacks, Hacking, Do it yourself, 3d printing, robotics, 3d printers, prusa i3, raspberry pi, arduino, information security', 'url': 'https://www.h4hacks.com/2026/', 'type': 'feed', 'isSingleItem': false, 'isMultipleItems': true, 'isError': false, 'isPage': false, 'isPost': false, 'isHomepage': false, 'isArchive': true, 'isLabelSearch': false, 'archive': {'year': 2026, 'rangeMessage': 'Showing posts from 2026'}}}, {'name': 'widgets', 'data': [{'title': 'Search This Blog', 'type': 'BlogSearch', 'sectionId': 'search_top', 'id': 'BlogSearch1'}, {'title': 'H4hacks (Header)', 'type': 'Header', 'sectionId': 'header', 'id': 'Header1'}, {'title': 'Pages', 'type': 'PageList', 'sectionId': 'page_list_top', 'id': 'PageList1'}, {'type': 'AdSense', 'sectionId': 'ads', 'id': 'AdSense1'}, {'type': 'AdSense', 'sectionId': 'ads', 'id': 'AdSense2'}, {'title': 'Featured Post', 'type': 'FeaturedPost', 'sectionId': 'page_body', 'id': 'FeaturedPost1', 'postId': '1489533363326807711'}, {'title': 'Blog Posts', 'type': 'Blog', 'sectionId': 'page_body', 'id': 'Blog1', 'posts': [{'id': '1489533363326807711', 'title': 'Running four AI models fully offline on a Nextion ONX3248G035', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sht6PXZ6KQlbT19iCKM-IQg2YvBB1XvnU3u3rlZ86owI-4EfywRm4GFlwVIJwrFWuLOpUMPITPEE0czDAgLzLsgScw9wMwHP_5by7NcJdqUkGmaQ', 'showInlineAds': true}, {'id': '6065616582831346989', 'title': 'Meet Dhara \u2014 send files without the cloud, without accounts, without internet', 'showInlineAds': true}, {'id': '6051265452619665271', 'title': 'Cloning a CAME parking-gate remote with a Flipper Zero \u2014 why static Princeton codes are a security own-goal', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_t03Xkb4ZJofI61fkEO34H24wI7s9I7pPCcUH7_8CVx4lCn3E2dH7P0eg8nSkmNrVsKPJlplUm1EjoHCjSA6QLvhMNHSAgQw0HJAaNFmawNwgVN', 'showInlineAds': true}, {'id': '8357775696645137267', 'title': 'From unboxing a touchscreen dev board to vibe-coding a full WiFi auditor', 'featuredImage': 'https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_sS_jorSqB7nsCV-PZqAsV9AAucgZrDjpB3W6gH6J2GqeE1ykUzBLZ7pSCOm517OlsT2vdfWjZwEq5gOZvqigWk9hjWykzFMFL5YJUOiG1vNkeL6g', 'showInlineAds': true}], 'headerByline': {'regionName': 'header1', 'items': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': '-'}]}, 'footerBylines': [{'regionName': 'footer1', 'items': [{'name': 'comments', 'label': 'comments'}]}, {'regionName': 'footer2', 'items': [{'name': 'labels', 'label': ''}]}, {'regionName': 'footer3', 'items': [{'name': 'location', 'label': 'Location:'}]}], 'allBylineItems': [{'name': 'share', 'label': ''}, {'name': 'timestamp', 'label': '-'}, {'name': 'comments', 'label': 'comments'}, {'name': 'labels', 'label': ''}, {'name': 'location', 'label': 'Location:'}]}, {'title': '', 'type': 'PopularPosts', 'sectionId': 'page_body', 'id': 'PopularPosts1', 'posts': [{'title': 'Qualys SSL labs API - A MultiThreaded python script to scan large number of servers and produce neat results', 'id': 4995393246652549565}, {'title': 'Re-Post : How I managed to gain access to The Indian Digital treasure \u2013 3 Billion documents on Digilocker', 'id': 7266409350508753041}, {'title': 'Fixing VMWARE tools on kali linux to enable copy paste properly - especially when you are doing OSCP', 'id': 7307300108556001075}]}, {'type': 'Attribution', 'sectionId': 'footer', 'id': 'Attribution1'}, {'title': 'About Me', 'type': 'Profile', 'sectionId': 'sidebar_top', 'id': 'Profile1'}, {'title': 'Older posts', 'type': 'BlogArchive', 'sectionId': 'sidebar_bottom', 'id': 'BlogArchive1'}, {'title': 'Labels', 'type': 'Label', 'sectionId': 'sidebar_bottom', 'id': 'Label1'}, {'title': '', 'type': 'ReportAbuse', 'sectionId': 'sidebar_bottom', 'id': 'ReportAbuse1'}, {'title': 'Stats', 'type': 'Stats', 'sectionId': 'sidebar_bottom', 'id': 'Stats1'}, {'title': 'Please subscibe', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML1'}, {'title': 'Follow my facebook page', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML2'}, {'title': 'Join us on telegram', 'type': 'HTML', 'sectionId': 'sidebar_bottom', 'id': 'HTML3'}]}]); 3889_WidgetManager._RegisterWidget('_BlogSearchView', new _WidgetInfo('BlogSearch1', 'search_top', document.getElementById('BlogSearch1'), {}, 'displayModeFull'));
3890_WidgetManager._RegisterWidget('_HeaderView', new _WidgetInfo('Header1', 'header', document.getElementById('Header1'), {}, 'displayModeFull')); 3891_WidgetManager._RegisterWidget('_PageListView', new _WidgetInfo('PageList1', 'page_list_top', document.getElementById('PageList1'), {'title': 'Pages', 'links': [{'isCurrentPage': false, 'href': 'http://www.h4hacks.com/', 'title': 'Home'}, {'isCurrentPage': false, 'href': 'https://www.h4hacks.com/p/my-3d-printing-saga.html', 'id': '4024638140521500763', 'title': 'My 3D Printing saga'}, {'isCurrentPage': false, 'href': 'https://www.h4hacks.com/p/hello-world-welcome-to-h4hacks-this-is.html', 'id': '3893750772079799418', 'title': 'About h4hacks'}], 'mobile': false, 'showPlaceholder': true, 'hasCurrentPage': false}, 'displayModeFull')); 3892_WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense1', 'ads', document.getElementById('AdSense1'), {}, 'displayModeFull')); 3893_WidgetManager._RegisterWidget('_AdSenseView', new _WidgetInfo('AdSense2', 'ads', document.getElementById('AdSense2'), {}, 'displayModeFull')); 3894_WidgetManager._RegisterWidget('_FeaturedPostView', new _WidgetInfo('FeaturedPost1', 'page_body', document.getElementById('FeaturedPost1'), {}, 'displayModeFull')); 3895_WidgetManager._RegisterWidget('_BlogView', new _WidgetInfo('Blog1', 'page_body', document.getElementById('Blog1'), {'cmtInteractionsEnabled': false, 'lightboxEnabled': true, 'lightboxModuleUrl': 'https://www.blogger.com/static/v1/jsbin/120969204-lbx.js', 'lightboxCssUrl': 'https://www.blogger.com/static/v1/v-css/828616780-lightbox_bundle.css'}, 'displayModeFull')); 3896_WidgetManager._RegisterWidget('_PopularPostsView', new _WidgetInfo('PopularPosts1', 'page_body', document.getElementById('PopularPosts1'), {}, 'displayModeFull')); 3897_WidgetManager._RegisterWidget('_AttributionView', new _WidgetInfo('Attribution1', 'footer', document.getElementById('Attribution1'), {}, 'displayModeFull')); 3898_WidgetManager._RegisterWidget('_ProfileView', new _WidgetInfo('Profile1', 'sidebar_top', document.getElementById('Profile1'), {}, 'displayModeFull')); 3899_WidgetManager._RegisterWidget('_BlogArchiveView', new _WidgetInfo('BlogArchive1', 'sidebar_bottom', document.getElementById('BlogArchive1'), {'languageDirection': 'ltr', 'loadingMessage': 'Loading\x26hellip;'}, 'displayModeFull')); 3900_WidgetManager._RegisterWidget('_LabelView', new _WidgetInfo('Label1', 'sidebar_bottom', document.getElementById('Label1'), {}, 'displayModeFull')); 3901_WidgetManager._RegisterWidget('_ReportAbuseView', new _WidgetInfo('ReportAbuse1', 'sidebar_bottom', document.getElementById('ReportAbuse1'), {}, 'displayModeFull')); 3902_WidgetManager._RegisterWidget('_StatsView', new _WidgetInfo('Stats1', 'sidebar_bottom', document.getElementById('Stats1'), {'title': 'Stats', 'showGraphicalCounter': false, 'showAnimatedCounter': false, 'showSparkline': true, 'statsUrl': '//www.h4hacks.com/b/stats?style\x3dBLACK_TRANSPARENT\x26timeRange\x3dALL_TIME\x26token\x3dAEz_qU-mqTGfgKtiwHp3huKiT21x6rdNmIeDTrlgidAajDCOnLdmOn4vFKNoggSSg_66KlQt93u4UZaykHPoaQo'}, 'displayModeFull')); 3903_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML1', 'sidebar_bottom', document.getElementById('HTML1'), {}, 'displayModeFull')); 3904_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML2', 'sidebar_bottom', document.getElementById('HTML2'), {}, 'displayModeFull')); 3905_WidgetManager._RegisterWidget('_HTMLView', new _WidgetInfo('HTML3', 'sidebar_bottom', document.getElementById('HTML3'), {}, 'displayModeFull')); 3906</script>
3906 3907</body> 3908</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.